Initial push
BIN
.jekyll-metadata
Normal file
674
COPYING
Normal file
@@ -0,0 +1,674 @@
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 3, 29 June 2007
|
||||
|
||||
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The GNU General Public License is a free, copyleft license for
|
||||
software and other kinds of works.
|
||||
|
||||
The licenses for most software and other practical works are designed
|
||||
to take away your freedom to share and change the works. By contrast,
|
||||
the GNU General Public License is intended to guarantee your freedom to
|
||||
share and change all versions of a program--to make sure it remains free
|
||||
software for all its users. We, the Free Software Foundation, use the
|
||||
GNU General Public License for most of our software; it applies also to
|
||||
any other work released this way by its authors. You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
them if you wish), that you receive source code or can get it if you
|
||||
want it, that you can change the software or use pieces of it in new
|
||||
free programs, and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to prevent others from denying you
|
||||
these rights or asking you to surrender the rights. Therefore, you have
|
||||
certain responsibilities if you distribute copies of the software, or if
|
||||
you modify it: responsibilities to respect the freedom of others.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must pass on to the recipients the same
|
||||
freedoms that you received. You must make sure that they, too, receive
|
||||
or can get the source code. And you must show them these terms so they
|
||||
know their rights.
|
||||
|
||||
Developers that use the GNU GPL protect your rights with two steps:
|
||||
(1) assert copyright on the software, and (2) offer you this License
|
||||
giving you legal permission to copy, distribute and/or modify it.
|
||||
|
||||
For the developers' and authors' protection, the GPL clearly explains
|
||||
that there is no warranty for this free software. For both users' and
|
||||
authors' sake, the GPL requires that modified versions be marked as
|
||||
changed, so that their problems will not be attributed erroneously to
|
||||
authors of previous versions.
|
||||
|
||||
Some devices are designed to deny users access to install or run
|
||||
modified versions of the software inside them, although the manufacturer
|
||||
can do so. This is fundamentally incompatible with the aim of
|
||||
protecting users' freedom to change the software. The systematic
|
||||
pattern of such abuse occurs in the area of products for individuals to
|
||||
use, which is precisely where it is most unacceptable. Therefore, we
|
||||
have designed this version of the GPL to prohibit the practice for those
|
||||
products. If such problems arise substantially in other domains, we
|
||||
stand ready to extend this provision to those domains in future versions
|
||||
of the GPL, as needed to protect the freedom of users.
|
||||
|
||||
Finally, every program is threatened constantly by software patents.
|
||||
States should not allow patents to restrict development and use of
|
||||
software on general-purpose computers, but in those that do, we wish to
|
||||
avoid the special danger that patents applied to a free program could
|
||||
make it effectively proprietary. To prevent this, the GPL assures that
|
||||
patents cannot be used to render the program non-free.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
TERMS AND CONDITIONS
|
||||
|
||||
0. Definitions.
|
||||
|
||||
"This License" refers to version 3 of the GNU General Public License.
|
||||
|
||||
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||
works, such as semiconductor masks.
|
||||
|
||||
"The Program" refers to any copyrightable work licensed under this
|
||||
License. Each licensee is addressed as "you". "Licensees" and
|
||||
"recipients" may be individuals or organizations.
|
||||
|
||||
To "modify" a work means to copy from or adapt all or part of the work
|
||||
in a fashion requiring copyright permission, other than the making of an
|
||||
exact copy. The resulting work is called a "modified version" of the
|
||||
earlier work or a work "based on" the earlier work.
|
||||
|
||||
A "covered work" means either the unmodified Program or a work based
|
||||
on the Program.
|
||||
|
||||
To "propagate" a work means to do anything with it that, without
|
||||
permission, would make you directly or secondarily liable for
|
||||
infringement under applicable copyright law, except executing it on a
|
||||
computer or modifying a private copy. Propagation includes copying,
|
||||
distribution (with or without modification), making available to the
|
||||
public, and in some countries other activities as well.
|
||||
|
||||
To "convey" a work means any kind of propagation that enables other
|
||||
parties to make or receive copies. Mere interaction with a user through
|
||||
a computer network, with no transfer of a copy, is not conveying.
|
||||
|
||||
An interactive user interface displays "Appropriate Legal Notices"
|
||||
to the extent that it includes a convenient and prominently visible
|
||||
feature that (1) displays an appropriate copyright notice, and (2)
|
||||
tells the user that there is no warranty for the work (except to the
|
||||
extent that warranties are provided), that licensees may convey the
|
||||
work under this License, and how to view a copy of this License. If
|
||||
the interface presents a list of user commands or options, such as a
|
||||
menu, a prominent item in the list meets this criterion.
|
||||
|
||||
1. Source Code.
|
||||
|
||||
The "source code" for a work means the preferred form of the work
|
||||
for making modifications to it. "Object code" means any non-source
|
||||
form of a work.
|
||||
|
||||
A "Standard Interface" means an interface that either is an official
|
||||
standard defined by a recognized standards body, or, in the case of
|
||||
interfaces specified for a particular programming language, one that
|
||||
is widely used among developers working in that language.
|
||||
|
||||
The "System Libraries" of an executable work include anything, other
|
||||
than the work as a whole, that (a) is included in the normal form of
|
||||
packaging a Major Component, but which is not part of that Major
|
||||
Component, and (b) serves only to enable use of the work with that
|
||||
Major Component, or to implement a Standard Interface for which an
|
||||
implementation is available to the public in source code form. A
|
||||
"Major Component", in this context, means a major essential component
|
||||
(kernel, window system, and so on) of the specific operating system
|
||||
(if any) on which the executable work runs, or a compiler used to
|
||||
produce the work, or an object code interpreter used to run it.
|
||||
|
||||
The "Corresponding Source" for a work in object code form means all
|
||||
the source code needed to generate, install, and (for an executable
|
||||
work) run the object code and to modify the work, including scripts to
|
||||
control those activities. However, it does not include the work's
|
||||
System Libraries, or general-purpose tools or generally available free
|
||||
programs which are used unmodified in performing those activities but
|
||||
which are not part of the work. For example, Corresponding Source
|
||||
includes interface definition files associated with source files for
|
||||
the work, and the source code for shared libraries and dynamically
|
||||
linked subprograms that the work is specifically designed to require,
|
||||
such as by intimate data communication or control flow between those
|
||||
subprograms and other parts of the work.
|
||||
|
||||
The Corresponding Source need not include anything that users
|
||||
can regenerate automatically from other parts of the Corresponding
|
||||
Source.
|
||||
|
||||
The Corresponding Source for a work in source code form is that
|
||||
same work.
|
||||
|
||||
2. Basic Permissions.
|
||||
|
||||
All rights granted under this License are granted for the term of
|
||||
copyright on the Program, and are irrevocable provided the stated
|
||||
conditions are met. This License explicitly affirms your unlimited
|
||||
permission to run the unmodified Program. The output from running a
|
||||
covered work is covered by this License only if the output, given its
|
||||
content, constitutes a covered work. This License acknowledges your
|
||||
rights of fair use or other equivalent, as provided by copyright law.
|
||||
|
||||
You may make, run and propagate covered works that you do not
|
||||
convey, without conditions so long as your license otherwise remains
|
||||
in force. You may convey covered works to others for the sole purpose
|
||||
of having them make modifications exclusively for you, or provide you
|
||||
with facilities for running those works, provided that you comply with
|
||||
the terms of this License in conveying all material for which you do
|
||||
not control copyright. Those thus making or running the covered works
|
||||
for you must do so exclusively on your behalf, under your direction
|
||||
and control, on terms that prohibit them from making any copies of
|
||||
your copyrighted material outside their relationship with you.
|
||||
|
||||
Conveying under any other circumstances is permitted solely under
|
||||
the conditions stated below. Sublicensing is not allowed; section 10
|
||||
makes it unnecessary.
|
||||
|
||||
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||
|
||||
No covered work shall be deemed part of an effective technological
|
||||
measure under any applicable law fulfilling obligations under article
|
||||
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||
similar laws prohibiting or restricting circumvention of such
|
||||
measures.
|
||||
|
||||
When you convey a covered work, you waive any legal power to forbid
|
||||
circumvention of technological measures to the extent such circumvention
|
||||
is effected by exercising rights under this License with respect to
|
||||
the covered work, and you disclaim any intention to limit operation or
|
||||
modification of the work as a means of enforcing, against the work's
|
||||
users, your or third parties' legal rights to forbid circumvention of
|
||||
technological measures.
|
||||
|
||||
4. Conveying Verbatim Copies.
|
||||
|
||||
You may convey verbatim copies of the Program's source code as you
|
||||
receive it, in any medium, provided that you conspicuously and
|
||||
appropriately publish on each copy an appropriate copyright notice;
|
||||
keep intact all notices stating that this License and any
|
||||
non-permissive terms added in accord with section 7 apply to the code;
|
||||
keep intact all notices of the absence of any warranty; and give all
|
||||
recipients a copy of this License along with the Program.
|
||||
|
||||
You may charge any price or no price for each copy that you convey,
|
||||
and you may offer support or warranty protection for a fee.
|
||||
|
||||
5. Conveying Modified Source Versions.
|
||||
|
||||
You may convey a work based on the Program, or the modifications to
|
||||
produce it from the Program, in the form of source code under the
|
||||
terms of section 4, provided that you also meet all of these conditions:
|
||||
|
||||
a) The work must carry prominent notices stating that you modified
|
||||
it, and giving a relevant date.
|
||||
|
||||
b) The work must carry prominent notices stating that it is
|
||||
released under this License and any conditions added under section
|
||||
7. This requirement modifies the requirement in section 4 to
|
||||
"keep intact all notices".
|
||||
|
||||
c) You must license the entire work, as a whole, under this
|
||||
License to anyone who comes into possession of a copy. This
|
||||
License will therefore apply, along with any applicable section 7
|
||||
additional terms, to the whole of the work, and all its parts,
|
||||
regardless of how they are packaged. This License gives no
|
||||
permission to license the work in any other way, but it does not
|
||||
invalidate such permission if you have separately received it.
|
||||
|
||||
d) If the work has interactive user interfaces, each must display
|
||||
Appropriate Legal Notices; however, if the Program has interactive
|
||||
interfaces that do not display Appropriate Legal Notices, your
|
||||
work need not make them do so.
|
||||
|
||||
A compilation of a covered work with other separate and independent
|
||||
works, which are not by their nature extensions of the covered work,
|
||||
and which are not combined with it such as to form a larger program,
|
||||
in or on a volume of a storage or distribution medium, is called an
|
||||
"aggregate" if the compilation and its resulting copyright are not
|
||||
used to limit the access or legal rights of the compilation's users
|
||||
beyond what the individual works permit. Inclusion of a covered work
|
||||
in an aggregate does not cause this License to apply to the other
|
||||
parts of the aggregate.
|
||||
|
||||
6. Conveying Non-Source Forms.
|
||||
|
||||
You may convey a covered work in object code form under the terms
|
||||
of sections 4 and 5, provided that you also convey the
|
||||
machine-readable Corresponding Source under the terms of this License,
|
||||
in one of these ways:
|
||||
|
||||
a) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by the
|
||||
Corresponding Source fixed on a durable physical medium
|
||||
customarily used for software interchange.
|
||||
|
||||
b) Convey the object code in, or embodied in, a physical product
|
||||
(including a physical distribution medium), accompanied by a
|
||||
written offer, valid for at least three years and valid for as
|
||||
long as you offer spare parts or customer support for that product
|
||||
model, to give anyone who possesses the object code either (1) a
|
||||
copy of the Corresponding Source for all the software in the
|
||||
product that is covered by this License, on a durable physical
|
||||
medium customarily used for software interchange, for a price no
|
||||
more than your reasonable cost of physically performing this
|
||||
conveying of source, or (2) access to copy the
|
||||
Corresponding Source from a network server at no charge.
|
||||
|
||||
c) Convey individual copies of the object code with a copy of the
|
||||
written offer to provide the Corresponding Source. This
|
||||
alternative is allowed only occasionally and noncommercially, and
|
||||
only if you received the object code with such an offer, in accord
|
||||
with subsection 6b.
|
||||
|
||||
d) Convey the object code by offering access from a designated
|
||||
place (gratis or for a charge), and offer equivalent access to the
|
||||
Corresponding Source in the same way through the same place at no
|
||||
further charge. You need not require recipients to copy the
|
||||
Corresponding Source along with the object code. If the place to
|
||||
copy the object code is a network server, the Corresponding Source
|
||||
may be on a different server (operated by you or a third party)
|
||||
that supports equivalent copying facilities, provided you maintain
|
||||
clear directions next to the object code saying where to find the
|
||||
Corresponding Source. Regardless of what server hosts the
|
||||
Corresponding Source, you remain obligated to ensure that it is
|
||||
available for as long as needed to satisfy these requirements.
|
||||
|
||||
e) Convey the object code using peer-to-peer transmission, provided
|
||||
you inform other peers where the object code and Corresponding
|
||||
Source of the work are being offered to the general public at no
|
||||
charge under subsection 6d.
|
||||
|
||||
A separable portion of the object code, whose source code is excluded
|
||||
from the Corresponding Source as a System Library, need not be
|
||||
included in conveying the object code work.
|
||||
|
||||
A "User Product" is either (1) a "consumer product", which means any
|
||||
tangible personal property which is normally used for personal, family,
|
||||
or household purposes, or (2) anything designed or sold for incorporation
|
||||
into a dwelling. In determining whether a product is a consumer product,
|
||||
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||
product received by a particular user, "normally used" refers to a
|
||||
typical or common use of that class of product, regardless of the status
|
||||
of the particular user or of the way in which the particular user
|
||||
actually uses, or expects or is expected to use, the product. A product
|
||||
is a consumer product regardless of whether the product has substantial
|
||||
commercial, industrial or non-consumer uses, unless such uses represent
|
||||
the only significant mode of use of the product.
|
||||
|
||||
"Installation Information" for a User Product means any methods,
|
||||
procedures, authorization keys, or other information required to install
|
||||
and execute modified versions of a covered work in that User Product from
|
||||
a modified version of its Corresponding Source. The information must
|
||||
suffice to ensure that the continued functioning of the modified object
|
||||
code is in no case prevented or interfered with solely because
|
||||
modification has been made.
|
||||
|
||||
If you convey an object code work under this section in, or with, or
|
||||
specifically for use in, a User Product, and the conveying occurs as
|
||||
part of a transaction in which the right of possession and use of the
|
||||
User Product is transferred to the recipient in perpetuity or for a
|
||||
fixed term (regardless of how the transaction is characterized), the
|
||||
Corresponding Source conveyed under this section must be accompanied
|
||||
by the Installation Information. But this requirement does not apply
|
||||
if neither you nor any third party retains the ability to install
|
||||
modified object code on the User Product (for example, the work has
|
||||
been installed in ROM).
|
||||
|
||||
The requirement to provide Installation Information does not include a
|
||||
requirement to continue to provide support service, warranty, or updates
|
||||
for a work that has been modified or installed by the recipient, or for
|
||||
the User Product in which it has been modified or installed. Access to a
|
||||
network may be denied when the modification itself materially and
|
||||
adversely affects the operation of the network or violates the rules and
|
||||
protocols for communication across the network.
|
||||
|
||||
Corresponding Source conveyed, and Installation Information provided,
|
||||
in accord with this section must be in a format that is publicly
|
||||
documented (and with an implementation available to the public in
|
||||
source code form), and must require no special password or key for
|
||||
unpacking, reading or copying.
|
||||
|
||||
7. Additional Terms.
|
||||
|
||||
"Additional permissions" are terms that supplement the terms of this
|
||||
License by making exceptions from one or more of its conditions.
|
||||
Additional permissions that are applicable to the entire Program shall
|
||||
be treated as though they were included in this License, to the extent
|
||||
that they are valid under applicable law. If additional permissions
|
||||
apply only to part of the Program, that part may be used separately
|
||||
under those permissions, but the entire Program remains governed by
|
||||
this License without regard to the additional permissions.
|
||||
|
||||
When you convey a copy of a covered work, you may at your option
|
||||
remove any additional permissions from that copy, or from any part of
|
||||
it. (Additional permissions may be written to require their own
|
||||
removal in certain cases when you modify the work.) You may place
|
||||
additional permissions on material, added by you to a covered work,
|
||||
for which you have or can give appropriate copyright permission.
|
||||
|
||||
Notwithstanding any other provision of this License, for material you
|
||||
add to a covered work, you may (if authorized by the copyright holders of
|
||||
that material) supplement the terms of this License with terms:
|
||||
|
||||
a) Disclaiming warranty or limiting liability differently from the
|
||||
terms of sections 15 and 16 of this License; or
|
||||
|
||||
b) Requiring preservation of specified reasonable legal notices or
|
||||
author attributions in that material or in the Appropriate Legal
|
||||
Notices displayed by works containing it; or
|
||||
|
||||
c) Prohibiting misrepresentation of the origin of that material, or
|
||||
requiring that modified versions of such material be marked in
|
||||
reasonable ways as different from the original version; or
|
||||
|
||||
d) Limiting the use for publicity purposes of names of licensors or
|
||||
authors of the material; or
|
||||
|
||||
e) Declining to grant rights under trademark law for use of some
|
||||
trade names, trademarks, or service marks; or
|
||||
|
||||
f) Requiring indemnification of licensors and authors of that
|
||||
material by anyone who conveys the material (or modified versions of
|
||||
it) with contractual assumptions of liability to the recipient, for
|
||||
any liability that these contractual assumptions directly impose on
|
||||
those licensors and authors.
|
||||
|
||||
All other non-permissive additional terms are considered "further
|
||||
restrictions" within the meaning of section 10. If the Program as you
|
||||
received it, or any part of it, contains a notice stating that it is
|
||||
governed by this License along with a term that is a further
|
||||
restriction, you may remove that term. If a license document contains
|
||||
a further restriction but permits relicensing or conveying under this
|
||||
License, you may add to a covered work material governed by the terms
|
||||
of that license document, provided that the further restriction does
|
||||
not survive such relicensing or conveying.
|
||||
|
||||
If you add terms to a covered work in accord with this section, you
|
||||
must place, in the relevant source files, a statement of the
|
||||
additional terms that apply to those files, or a notice indicating
|
||||
where to find the applicable terms.
|
||||
|
||||
Additional terms, permissive or non-permissive, may be stated in the
|
||||
form of a separately written license, or stated as exceptions;
|
||||
the above requirements apply either way.
|
||||
|
||||
8. Termination.
|
||||
|
||||
You may not propagate or modify a covered work except as expressly
|
||||
provided under this License. Any attempt otherwise to propagate or
|
||||
modify it is void, and will automatically terminate your rights under
|
||||
this License (including any patent licenses granted under the third
|
||||
paragraph of section 11).
|
||||
|
||||
However, if you cease all violation of this License, then your
|
||||
license from a particular copyright holder is reinstated (a)
|
||||
provisionally, unless and until the copyright holder explicitly and
|
||||
finally terminates your license, and (b) permanently, if the copyright
|
||||
holder fails to notify you of the violation by some reasonable means
|
||||
prior to 60 days after the cessation.
|
||||
|
||||
Moreover, your license from a particular copyright holder is
|
||||
reinstated permanently if the copyright holder notifies you of the
|
||||
violation by some reasonable means, this is the first time you have
|
||||
received notice of violation of this License (for any work) from that
|
||||
copyright holder, and you cure the violation prior to 30 days after
|
||||
your receipt of the notice.
|
||||
|
||||
Termination of your rights under this section does not terminate the
|
||||
licenses of parties who have received copies or rights from you under
|
||||
this License. If your rights have been terminated and not permanently
|
||||
reinstated, you do not qualify to receive new licenses for the same
|
||||
material under section 10.
|
||||
|
||||
9. Acceptance Not Required for Having Copies.
|
||||
|
||||
You are not required to accept this License in order to receive or
|
||||
run a copy of the Program. Ancillary propagation of a covered work
|
||||
occurring solely as a consequence of using peer-to-peer transmission
|
||||
to receive a copy likewise does not require acceptance. However,
|
||||
nothing other than this License grants you permission to propagate or
|
||||
modify any covered work. These actions infringe copyright if you do
|
||||
not accept this License. Therefore, by modifying or propagating a
|
||||
covered work, you indicate your acceptance of this License to do so.
|
||||
|
||||
10. Automatic Licensing of Downstream Recipients.
|
||||
|
||||
Each time you convey a covered work, the recipient automatically
|
||||
receives a license from the original licensors, to run, modify and
|
||||
propagate that work, subject to this License. You are not responsible
|
||||
for enforcing compliance by third parties with this License.
|
||||
|
||||
An "entity transaction" is a transaction transferring control of an
|
||||
organization, or substantially all assets of one, or subdividing an
|
||||
organization, or merging organizations. If propagation of a covered
|
||||
work results from an entity transaction, each party to that
|
||||
transaction who receives a copy of the work also receives whatever
|
||||
licenses to the work the party's predecessor in interest had or could
|
||||
give under the previous paragraph, plus a right to possession of the
|
||||
Corresponding Source of the work from the predecessor in interest, if
|
||||
the predecessor has it or can get it with reasonable efforts.
|
||||
|
||||
You may not impose any further restrictions on the exercise of the
|
||||
rights granted or affirmed under this License. For example, you may
|
||||
not impose a license fee, royalty, or other charge for exercise of
|
||||
rights granted under this License, and you may not initiate litigation
|
||||
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||
any patent claim is infringed by making, using, selling, offering for
|
||||
sale, or importing the Program or any portion of it.
|
||||
|
||||
11. Patents.
|
||||
|
||||
A "contributor" is a copyright holder who authorizes use under this
|
||||
License of the Program or a work on which the Program is based. The
|
||||
work thus licensed is called the contributor's "contributor version".
|
||||
|
||||
A contributor's "essential patent claims" are all patent claims
|
||||
owned or controlled by the contributor, whether already acquired or
|
||||
hereafter acquired, that would be infringed by some manner, permitted
|
||||
by this License, of making, using, or selling its contributor version,
|
||||
but do not include claims that would be infringed only as a
|
||||
consequence of further modification of the contributor version. For
|
||||
purposes of this definition, "control" includes the right to grant
|
||||
patent sublicenses in a manner consistent with the requirements of
|
||||
this License.
|
||||
|
||||
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||
patent license under the contributor's essential patent claims, to
|
||||
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||
propagate the contents of its contributor version.
|
||||
|
||||
In the following three paragraphs, a "patent license" is any express
|
||||
agreement or commitment, however denominated, not to enforce a patent
|
||||
(such as an express permission to practice a patent or covenant not to
|
||||
sue for patent infringement). To "grant" such a patent license to a
|
||||
party means to make such an agreement or commitment not to enforce a
|
||||
patent against the party.
|
||||
|
||||
If you convey a covered work, knowingly relying on a patent license,
|
||||
and the Corresponding Source of the work is not available for anyone
|
||||
to copy, free of charge and under the terms of this License, through a
|
||||
publicly available network server or other readily accessible means,
|
||||
then you must either (1) cause the Corresponding Source to be so
|
||||
available, or (2) arrange to deprive yourself of the benefit of the
|
||||
patent license for this particular work, or (3) arrange, in a manner
|
||||
consistent with the requirements of this License, to extend the patent
|
||||
license to downstream recipients. "Knowingly relying" means you have
|
||||
actual knowledge that, but for the patent license, your conveying the
|
||||
covered work in a country, or your recipient's use of the covered work
|
||||
in a country, would infringe one or more identifiable patents in that
|
||||
country that you have reason to believe are valid.
|
||||
|
||||
If, pursuant to or in connection with a single transaction or
|
||||
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||
covered work, and grant a patent license to some of the parties
|
||||
receiving the covered work authorizing them to use, propagate, modify
|
||||
or convey a specific copy of the covered work, then the patent license
|
||||
you grant is automatically extended to all recipients of the covered
|
||||
work and works based on it.
|
||||
|
||||
A patent license is "discriminatory" if it does not include within
|
||||
the scope of its coverage, prohibits the exercise of, or is
|
||||
conditioned on the non-exercise of one or more of the rights that are
|
||||
specifically granted under this License. You may not convey a covered
|
||||
work if you are a party to an arrangement with a third party that is
|
||||
in the business of distributing software, under which you make payment
|
||||
to the third party based on the extent of your activity of conveying
|
||||
the work, and under which the third party grants, to any of the
|
||||
parties who would receive the covered work from you, a discriminatory
|
||||
patent license (a) in connection with copies of the covered work
|
||||
conveyed by you (or copies made from those copies), or (b) primarily
|
||||
for and in connection with specific products or compilations that
|
||||
contain the covered work, unless you entered into that arrangement,
|
||||
or that patent license was granted, prior to 28 March 2007.
|
||||
|
||||
Nothing in this License shall be construed as excluding or limiting
|
||||
any implied license or other defenses to infringement that may
|
||||
otherwise be available to you under applicable patent law.
|
||||
|
||||
12. No Surrender of Others' Freedom.
|
||||
|
||||
If conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot convey a
|
||||
covered work so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you may
|
||||
not convey it at all. For example, if you agree to terms that obligate you
|
||||
to collect a royalty for further conveying from those to whom you convey
|
||||
the Program, the only way you could satisfy both those terms and this
|
||||
License would be to refrain entirely from conveying the Program.
|
||||
|
||||
13. Use with the GNU Affero General Public License.
|
||||
|
||||
Notwithstanding any other provision of this License, you have
|
||||
permission to link or combine any covered work with a work licensed
|
||||
under version 3 of the GNU Affero General Public License into a single
|
||||
combined work, and to convey the resulting work. The terms of this
|
||||
License will continue to apply to the part which is the covered work,
|
||||
but the special requirements of the GNU Affero General Public License,
|
||||
section 13, concerning interaction through a network will apply to the
|
||||
combination as such.
|
||||
|
||||
14. Revised Versions of this License.
|
||||
|
||||
The Free Software Foundation may publish revised and/or new versions of
|
||||
the GNU General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the
|
||||
Program specifies that a certain numbered version of the GNU General
|
||||
Public License "or any later version" applies to it, you have the
|
||||
option of following the terms and conditions either of that numbered
|
||||
version or of any later version published by the Free Software
|
||||
Foundation. If the Program does not specify a version number of the
|
||||
GNU General Public License, you may choose any version ever published
|
||||
by the Free Software Foundation.
|
||||
|
||||
If the Program specifies that a proxy can decide which future
|
||||
versions of the GNU General Public License can be used, that proxy's
|
||||
public statement of acceptance of a version permanently authorizes you
|
||||
to choose that version for the Program.
|
||||
|
||||
Later license versions may give you additional or different
|
||||
permissions. However, no additional obligations are imposed on any
|
||||
author or copyright holder as a result of your choosing to follow a
|
||||
later version.
|
||||
|
||||
15. Disclaimer of Warranty.
|
||||
|
||||
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||
|
||||
16. Limitation of Liability.
|
||||
|
||||
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGES.
|
||||
|
||||
17. Interpretation of Sections 15 and 16.
|
||||
|
||||
If the disclaimer of warranty and limitation of liability provided
|
||||
above cannot be given local legal effect according to their terms,
|
||||
reviewing courts shall apply local law that most closely approximates
|
||||
an absolute waiver of all civil liability in connection with the
|
||||
Program, unless a warranty or assumption of liability accompanies a
|
||||
copy of the Program in return for a fee.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
state the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program does terminal interaction, make it output a short
|
||||
notice like this when it starts in an interactive mode:
|
||||
|
||||
<program> Copyright (C) <year> <name of author>
|
||||
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, your program's commands
|
||||
might be different; for a GUI interface, you would use an "about box".
|
||||
|
||||
You should also get your employer (if you work as a programmer) or school,
|
||||
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||
For more information on this, and how to apply and follow the GNU GPL, see
|
||||
<https://www.gnu.org/licenses/>.
|
||||
|
||||
The GNU General Public License does not permit incorporating your program
|
||||
into proprietary programs. If your program is a subroutine library, you
|
||||
may consider it more useful to permit linking proprietary applications with
|
||||
the library. If this is what you want to do, use the GNU Lesser General
|
||||
Public License instead of this License. But first, please read
|
||||
<https://www.gnu.org/licenses/why-not-lgpl.html>.
|
||||
20
Dublin.rdf
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0"?>
|
||||
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/">
|
||||
|
||||
<rdf:Description rdf:about="https://dustin.coffee">
|
||||
<dc:title>d@n tech</dc:title>
|
||||
<dc:creator>Dustin Newkirk</dc:creator>
|
||||
<dc:subject>tech and personal blog</dc:subject>
|
||||
<dc:description>Caffinated Tech Insights</dc:description>
|
||||
<dc:publisher>Dustin Newkirk</dc:publisher>
|
||||
<dc:date>2024-01-03T00</dc:date>
|
||||
<dc:type>Website</dc:type>
|
||||
<dc:format>text/html</dc:format>
|
||||
<dc:language>en</dc:language>
|
||||
<dc:identifier>https://dustin.coffee</dc:identifier>
|
||||
<dc:rights>Copyright Information</dc:rights>
|
||||
<dc:coverage>USA</dc:coverage>
|
||||
</rdf:Description>
|
||||
|
||||
</rdf:RDF>
|
||||
8
Gemfile
Normal file
@@ -0,0 +1,8 @@
|
||||
source "https://rubygems.org"
|
||||
ruby "3.2.3"
|
||||
gem "jekyll"
|
||||
gem "jekyll-feed"
|
||||
gem "jekyll-paginate-v2"
|
||||
gem "jekyll-seo-tag"
|
||||
gem "webrick"
|
||||
gem "jekyll-sitemap"
|
||||
88
Gemfile.lock
Normal file
@@ -0,0 +1,88 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
addressable (2.8.6)
|
||||
public_suffix (>= 2.0.2, < 6.0)
|
||||
colorator (1.1.0)
|
||||
concurrent-ruby (1.2.3)
|
||||
em-websocket (0.5.3)
|
||||
eventmachine (>= 0.12.9)
|
||||
http_parser.rb (~> 0)
|
||||
eventmachine (1.2.7)
|
||||
ffi (1.16.3)
|
||||
forwardable-extended (2.6.0)
|
||||
google-protobuf (3.25.3-x86_64-linux)
|
||||
http_parser.rb (0.8.0)
|
||||
i18n (1.14.1)
|
||||
concurrent-ruby (~> 1.0)
|
||||
jekyll (4.3.4)
|
||||
addressable (~> 2.4)
|
||||
colorator (~> 1.0)
|
||||
em-websocket (~> 0.5)
|
||||
i18n (~> 1.0)
|
||||
jekyll-sass-converter (>= 2.0, < 4.0)
|
||||
jekyll-watch (~> 2.0)
|
||||
kramdown (~> 2.3, >= 2.3.1)
|
||||
kramdown-parser-gfm (~> 1.0)
|
||||
liquid (~> 4.0)
|
||||
mercenary (>= 0.3.6, < 0.5)
|
||||
pathutil (~> 0.9)
|
||||
rouge (>= 3.0, < 5.0)
|
||||
safe_yaml (~> 1.0)
|
||||
terminal-table (>= 1.8, < 4.0)
|
||||
webrick (~> 1.7)
|
||||
jekyll-feed (0.17.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-paginate-v2 (3.0.0)
|
||||
jekyll (>= 3.0, < 5.0)
|
||||
jekyll-sass-converter (3.0.0)
|
||||
sass-embedded (~> 1.54)
|
||||
jekyll-seo-tag (2.8.0)
|
||||
jekyll (>= 3.8, < 5.0)
|
||||
jekyll-sitemap (1.4.0)
|
||||
jekyll (>= 3.7, < 5.0)
|
||||
jekyll-watch (2.2.1)
|
||||
listen (~> 3.0)
|
||||
kramdown (2.4.0)
|
||||
rexml
|
||||
kramdown-parser-gfm (1.1.0)
|
||||
kramdown (~> 2.0)
|
||||
liquid (4.0.4)
|
||||
listen (3.9.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
mercenary (0.4.0)
|
||||
pathutil (0.16.2)
|
||||
forwardable-extended (~> 2.6)
|
||||
public_suffix (5.0.4)
|
||||
rake (13.1.0)
|
||||
rb-fsevent (0.11.2)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
rexml (3.2.6)
|
||||
rouge (4.2.0)
|
||||
safe_yaml (1.0.5)
|
||||
sass-embedded (1.69.5)
|
||||
google-protobuf (~> 3.23)
|
||||
rake (>= 13.0.0)
|
||||
terminal-table (3.0.2)
|
||||
unicode-display_width (>= 1.1.1, < 3)
|
||||
unicode-display_width (2.5.0)
|
||||
webrick (1.8.1)
|
||||
|
||||
PLATFORMS
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
jekyll
|
||||
jekyll-feed
|
||||
jekyll-paginate-v2
|
||||
jekyll-seo-tag
|
||||
jekyll-sitemap
|
||||
webrick
|
||||
|
||||
RUBY VERSION
|
||||
ruby 3.2.3p157
|
||||
|
||||
BUNDLED WITH
|
||||
2.5.23
|
||||
50
README.md
@@ -1,3 +1,49 @@
|
||||
# dustin.coffee-jekyll-blog
|
||||
# My Jekyll Website
|
||||
|
||||
my blog
|
||||
Welcome to the repository for my personal Jekyll website! This site showcases my blog posts, projects, and more. Learn about my journey in the world of technology and coffee.
|
||||
|
||||
## About the Site
|
||||
|
||||
This website is built using [Jekyll](https://jekyllrb.com/), a static site generator. It's designed to be simple, responsive, and easy to navigate. The site reflects my passion for technology and love for coffee.
|
||||
|
||||
### Features
|
||||
|
||||
- **Blog**: Regular posts about tech, my personal experiences, and tutorials.
|
||||
- **Projects**: Showcasing my work and contributions to various tech initiatives.
|
||||
|
||||
## Getting Started
|
||||
|
||||
To run this site locally, you'll need to have Ruby and Jekyll installed. Here's a quick guide:
|
||||
|
||||
1. **Clone the Repository**
|
||||
|
||||
```bash
|
||||
git clone https://github.com/primeminister91/dustin.coffee.git
|
||||
cd dustin.coffee
|
||||
```
|
||||
|
||||
2. **Install Dependencies**
|
||||
|
||||
```bash
|
||||
bundle install
|
||||
```
|
||||
|
||||
3. **Run Jekyll Server**
|
||||
|
||||
```bash
|
||||
bundle exec jekyll serve
|
||||
```
|
||||
|
||||
This will start a local server. Typically, the site will be available at `http://localhost:4000` (default port 4000).
|
||||
|
||||
## Contributing
|
||||
|
||||
I appreciate contributions to the site! Whether it's fixing a bug, improving the documentation, or suggesting new features, feel free to fork this repository and submit a pull request.
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the [MIT License](LICENSE) - see the LICENSE file for details.
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
- This theme is based off of [Lightspeed](https://github.com/tajacks/lightspeed)
|
||||
|
||||
85
_config.yml
Normal file
@@ -0,0 +1,85 @@
|
||||
# Site Specific Configuration
|
||||
name: d@n tech
|
||||
description: Caffinated Tech Insights
|
||||
url: https://dustin.coffee
|
||||
author: dustin newkirk
|
||||
timezone: America/New_York
|
||||
timezone_short: ET
|
||||
|
||||
# Keywords
|
||||
keywords:
|
||||
- 'Dustin Newkirk'
|
||||
- 'tech blog'
|
||||
- 'IT blog'
|
||||
- 'technology insights'
|
||||
- 'specific technologies'
|
||||
- 'JavaScript tutorials'
|
||||
- 'Linux tips'
|
||||
- 'cloud computing insights'
|
||||
- 'coffee enthusiast'
|
||||
- 'coffee lover'
|
||||
- 'coffee and coding'
|
||||
- 'tech and coffee'
|
||||
- 'professional services'
|
||||
- 'freelance developer'
|
||||
- 'IT consultant'
|
||||
- 'tech expert'
|
||||
- 'location-based keywords'
|
||||
- 'Syracuse tech expert'
|
||||
- 'Syracuse IT consultant'
|
||||
- 'project or portfolio'
|
||||
- 'tech projects'
|
||||
- 'personal IT portfolio'
|
||||
- 'developer portfolio'
|
||||
- 'guides and tutorials'
|
||||
- 'tech guides'
|
||||
- 'programming tutorials'
|
||||
- 'IT how-to articles'
|
||||
- 'tech reviews'
|
||||
- 'tech product reviews'
|
||||
- 'software reviews'
|
||||
- 'gadget evaluations'
|
||||
- 'personal journey'
|
||||
- 'tech career journey'
|
||||
- 'IT professional story'
|
||||
- 'life of a coder'
|
||||
|
||||
|
||||
# Analytics (Plausible requires sign-up)
|
||||
analytics:
|
||||
plausible:
|
||||
enabled: false
|
||||
site_fqdn: 'dustin.coffee'
|
||||
script_source: 'https://plausible.io/js/script.js'
|
||||
|
||||
# Styling
|
||||
sass:
|
||||
sass_dir: _sass
|
||||
style: expanded # compact, expanded or compressed
|
||||
|
||||
# Paginate
|
||||
pagination:
|
||||
enabled: true
|
||||
# Value set low for demonstration purposes
|
||||
per_page: 10
|
||||
sort_field: 'date'
|
||||
sort_reverse: true
|
||||
permalink: /:year/:month/:title.html
|
||||
|
||||
# Category Paginating
|
||||
autopages:
|
||||
enabled: true
|
||||
categories:
|
||||
title: 'Posts in category :cat'
|
||||
permalink: '/category/:cat'
|
||||
silent: false
|
||||
|
||||
# Exclusions
|
||||
exclude: [ 'README.md', 'COPYING' ]
|
||||
|
||||
# Plugins
|
||||
plugins:
|
||||
- jekyll-feed
|
||||
- jekyll-paginate-v2
|
||||
- jekyll-seo-tag
|
||||
- jekyll-sitemap
|
||||
8
_data/nav.yml
Normal file
@@ -0,0 +1,8 @@
|
||||
- name: About & Contact
|
||||
link: /
|
||||
- name: Posts
|
||||
link: /posts
|
||||
- name: Categories
|
||||
link: /categories/
|
||||
- name: Resume
|
||||
link: /resume
|
||||
15
_includes/footer.html
Normal file
@@ -0,0 +1,15 @@
|
||||
<div class="footer">
|
||||
<span class="footer-text float-left">This work is licensed under <a rel="license" href="https://www.gnu.org/licenses/gpl-3.0.en.html" target="_blank">GPLv3</a></span>
|
||||
<span class="footer-text float-right">
|
||||
Site Updated: {{ site.time | date: '%Y-%m-%d' }} {{ site.timezone_short }} (<a href="/feed.xml" target="_blank">RSS</a>)
|
||||
</span>
|
||||
</div>
|
||||
<script src='https://storage.ko-fi.com/cdn/scripts/overlay-widget.js'></script>
|
||||
<script>
|
||||
kofiWidgetOverlay.draw('dustinnewkirk', {
|
||||
'type': 'floating-chat',
|
||||
'floating-chat.donateButton.text': 'Support Me',
|
||||
'floating-chat.donateButton.background-color': '#ff851b',
|
||||
'floating-chat.donateButton.text-color': '#3D2200'
|
||||
});
|
||||
</script>
|
||||
18
_includes/head.html
Normal file
@@ -0,0 +1,18 @@
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
{% seo %}
|
||||
{% if site.keywords or page.tags %}
|
||||
<meta name="keywords" content="{% if page.tags %}{{ page.tags | join: ','}}{% else %}{{ site.keywords | join: ',' }}{% endif %}" />
|
||||
{% endif %}
|
||||
<meta name="google-adsense-account" content="ca-pub-5033279084799102">
|
||||
<link rel="shortcut icon" href="/assets/logos/dn-tech-favicon-color.png" />
|
||||
<link rel="apple-touch-icon" href="/assets/logos/logo-color.png"/>
|
||||
<link rel="stylesheet" type="text/css" href="{{ site.baseurl }}/assets/css/styles.css" />
|
||||
<link rel="stylesheet" type="text/css" href="{{ site.baseurl }}/assets/css/prism.css" />
|
||||
<script src="{{ site.baseurl }}/assets/js/prism.js"></script>
|
||||
{% if site.analytics.plausible.enabled %}
|
||||
<script defer data-domain="{{ site.analytics.plausible.site_fqdn }}" src="{{ site.analytics.plausible.script_source }}"></script>
|
||||
{% endif %}
|
||||
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-5033279084799102"
|
||||
crossorigin="anonymous"></script>
|
||||
8
_includes/header.html
Normal file
@@ -0,0 +1,8 @@
|
||||
<div class="header">
|
||||
<h1>d@n tech</h1>
|
||||
<br>
|
||||
<h5><i>Caffinated Tech Insights</i></h5>
|
||||
<br>
|
||||
{% include nav.html %}
|
||||
<hr>
|
||||
</div>
|
||||
5
_includes/nav.html
Normal file
@@ -0,0 +1,5 @@
|
||||
<nav>
|
||||
{% for item in site.data.nav %}
|
||||
<a href="{{ item.link }}">{{ item.name }}</a>
|
||||
{% endfor %}
|
||||
</nav>
|
||||
23
_layouts/autopage_category.html
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
layout: default
|
||||
pagination:
|
||||
enabled: true
|
||||
per_page: 10
|
||||
---
|
||||
<div class="post-summary">
|
||||
<h2>Posts</h2>
|
||||
{% for post in paginator.posts %}
|
||||
<span class="post-item">{{ post.date | date: '%Y-%m-%d' }} >> <a href="{{ post.url }}">{{ post.title }}</a><span class="float-right">{{ post.categories }}</span></span>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
<div class="post-nav">
|
||||
{% if paginator.total_pages > 1 %}
|
||||
{% if paginator.next_page %}
|
||||
<a href="{{ paginator.next_page_path | prepend: site.baseurl }}"><- Older</a>
|
||||
{% endif %}
|
||||
{% if paginator.previous_page %}
|
||||
<a href="{{ paginator.previous_page_path | prepend: site.baseurl }}">Newer -></a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
24
_layouts/default.html
Normal file
@@ -0,0 +1,24 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
{% include head.html %}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="wrapper">
|
||||
<header class="wrapper-header">
|
||||
{% include header.html %}
|
||||
</header>
|
||||
|
||||
<main class="wrapper-main">
|
||||
<div class="main-content">
|
||||
{{ content }}
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
|
||||
<footer class="wrapper-footer">
|
||||
{% include footer.html %}
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
11
_layouts/post.html
Normal file
@@ -0,0 +1,11 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
<div class="post-info">
|
||||
<h2>{{ page.title }}</h2>
|
||||
<p>{{ page.date | date_to_string }} - {{ page.author }}</p>
|
||||
</div>
|
||||
|
||||
<div class="post-content">
|
||||
{{ content }}
|
||||
</div>
|
||||
13
_sass/categories.scss
Normal file
@@ -0,0 +1,13 @@
|
||||
.category-summary {
|
||||
padding-top: 30px;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
|
||||
.category-all-nav, .category-header {
|
||||
display: block;
|
||||
position: relative;
|
||||
line-height: 24px;
|
||||
margin: 5px 0;
|
||||
padding-bottom: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
13
_sass/float.scss
Normal file
@@ -0,0 +1,13 @@
|
||||
@charset "utf-8";
|
||||
|
||||
.float-left {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.float-right {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.float-center {
|
||||
text-align: center;
|
||||
}
|
||||
7
_sass/footer.scss
Normal file
@@ -0,0 +1,7 @@
|
||||
@charset "utf-8";
|
||||
|
||||
.footer-text {
|
||||
display: block;
|
||||
position: relative;
|
||||
font-size: 14px;
|
||||
}
|
||||
12
_sass/header.scss
Normal file
@@ -0,0 +1,12 @@
|
||||
.header {
|
||||
padding-top: 35px
|
||||
}
|
||||
|
||||
.header nav {
|
||||
padding-top: 10px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.header nav a {
|
||||
padding-right: 3px;
|
||||
}
|
||||
11
_sass/mobile.scss
Normal file
@@ -0,0 +1,11 @@
|
||||
@media only screen and (max-width: 479px) {
|
||||
|
||||
// Hide clutter elements on mobile
|
||||
.mobile-hide{ display: none !important; }
|
||||
|
||||
// Don't split footer text
|
||||
.footer-text{ float: left !important;}
|
||||
|
||||
// Phone Friendly Margarine ;)
|
||||
html {margin: 1em !important;}
|
||||
}
|
||||
75
_sass/page.scss
Normal file
@@ -0,0 +1,75 @@
|
||||
/* Style inspiration and settings adapted from https://github.com/jgthms/web-design-in-4-minutes*/
|
||||
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@300;400;500&display=swap');
|
||||
|
||||
/* Base */
|
||||
html {
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
/* 01 Font family */
|
||||
|
||||
body {
|
||||
font-family: "IBM Plex Mono", "Courier New", monospace;
|
||||
}
|
||||
|
||||
/* 03 Spacing */
|
||||
|
||||
|
||||
.padded {
|
||||
padding-top: 30px;
|
||||
padding-bottom: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.main-content {
|
||||
padding-top: 30px;
|
||||
padding-bottom: 30px;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
div.main-content h2 {
|
||||
padding-top: 15px;
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
|
||||
header h1, h5 {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
/* 04 Color and contrast */
|
||||
|
||||
body {
|
||||
color: #F8FDDD;
|
||||
background-color: #3D2200;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
strong {
|
||||
color: #dcdede;
|
||||
}
|
||||
|
||||
header h5 {
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
/* 05 Balance */
|
||||
|
||||
code {
|
||||
padding: 2px 4px;
|
||||
vertical-align: text-bottom;
|
||||
}
|
||||
|
||||
/* 06 Primary color */
|
||||
|
||||
a {
|
||||
color: #ff851b;
|
||||
}
|
||||
|
||||
/* 07 Secondary colors */
|
||||
|
||||
h1,
|
||||
h2,
|
||||
strong {
|
||||
font-weight: 500;
|
||||
}
|
||||
20
_sass/post.scss
Normal file
@@ -0,0 +1,20 @@
|
||||
.post-info {
|
||||
padding-bottom: 30px;
|
||||
margin: 20px 0 5px;
|
||||
padding-top: 20px;
|
||||
}
|
||||
|
||||
.post-content {
|
||||
line-height: 35px;
|
||||
padding-bottom: 50px;
|
||||
}
|
||||
|
||||
.post-content h1, h3, code, pre {
|
||||
padding-bottom: 10px;
|
||||
padding-top: 10px;
|
||||
}
|
||||
|
||||
.post-content h2 {
|
||||
padding-bottom: 20px;
|
||||
padding-top: 20px;
|
||||
}
|
||||
17
_sass/posts.scss
Normal file
@@ -0,0 +1,17 @@
|
||||
.post-item {
|
||||
display: block;
|
||||
position: relative;
|
||||
line-height: 24px;
|
||||
padding-bottom: 5px;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
.post-summary {
|
||||
padding-top: 30px;
|
||||
padding-bottom: 30px;
|
||||
}
|
||||
|
||||
.post-nav {
|
||||
padding-top: 100px;
|
||||
text-align: center;
|
||||
}
|
||||
55
_sass/reset.scss
Normal file
@@ -0,0 +1,55 @@
|
||||
/* https://www.joshwcomeau.com/css/custom-css-reset/ */
|
||||
|
||||
/*
|
||||
1. Use a more-intuitive box-sizing model.
|
||||
*/
|
||||
*, *::before, *::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
/*
|
||||
2. Remove default margin
|
||||
*/
|
||||
* {
|
||||
margin: 0;
|
||||
}
|
||||
/*
|
||||
3. Allow percentage-based heights in the application
|
||||
*/
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
/*
|
||||
Typographic tweaks!
|
||||
4. Add accessible line-height
|
||||
5. Improve text rendering
|
||||
*/
|
||||
body {
|
||||
line-height: 1.5;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
/*
|
||||
6. Improve media defaults
|
||||
*/
|
||||
img, picture, video, canvas, svg {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
/*
|
||||
7. Remove built-in form typography styles
|
||||
*/
|
||||
input, button, textarea, select {
|
||||
font: inherit;
|
||||
}
|
||||
/*
|
||||
8. Avoid text overflows
|
||||
*/
|
||||
p, h1, h2, h3, h4, h5, h6 {
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
/*
|
||||
9. Create a root stacking context
|
||||
*/
|
||||
#root, #__next {
|
||||
isolation: isolate;
|
||||
}
|
||||
|
||||
18
_sass/wrapper.scss
Normal file
@@ -0,0 +1,18 @@
|
||||
@charset "utf-8";
|
||||
|
||||
.wrapper-main, .wrapper-header, .wrapper-footer {
|
||||
width: 100%;
|
||||
margin: 0 auto;
|
||||
max-width: 900px;
|
||||
}
|
||||
|
||||
/* Sticky Footer */
|
||||
.wrapper {
|
||||
min-height: calc(100vh - 40px);
|
||||
}
|
||||
|
||||
.wrapper-footer {
|
||||
height: 40px
|
||||
}
|
||||
/* End Sticky Footer */
|
||||
|
||||
1
ads.txt
Normal file
@@ -0,0 +1 @@
|
||||
google.com, pub-5033279084799102, DIRECT, f08c47fec0942fa0
|
||||
3
assets/css/prism.css
Normal file
@@ -0,0 +1,3 @@
|
||||
/* PrismJS 1.29.0
|
||||
https://prismjs.com/download.html#themes=prism-tomorrow&languages=markup+css+clike+javascript+abap+abnf+actionscript+ada+agda+al+antlr4+apacheconf+apex+apl+applescript+aql+arduino+arff+armasm+arturo+asciidoc+aspnet+asm6502+asmatmel+autohotkey+autoit+avisynth+avro-idl+awk+bash+basic+batch+bbcode+bbj+bicep+birb+bison+bnf+bqn+brainfuck+brightscript+bro+bsl+c+csharp+cpp+cfscript+chaiscript+cil+cilkc+cilkcpp+clojure+cmake+cobol+coffeescript+concurnas+csp+cooklang+coq+crystal+css-extras+csv+cue+cypher+d+dart+dataweave+dax+dhall+diff+django+dns-zone-file+docker+dot+ebnf+editorconfig+eiffel+ejs+elixir+elm+etlua+erb+erlang+excel-formula+fsharp+factor+false+firestore-security-rules+flow+fortran+ftl+gml+gap+gcode+gdscript+gedcom+gettext+gherkin+git+glsl+gn+linker-script+go+go-module+gradle+graphql+groovy+haml+handlebars+haskell+haxe+hcl+hlsl+hoon+http+hpkp+hsts+ichigojam+icon+icu-message-format+idris+ignore+inform7+ini+io+j+java+javadoc+javadoclike+javastacktrace+jexl+jolie+jq+jsdoc+js-extras+json+json5+jsonp+jsstacktrace+js-templates+julia+keepalived+keyman+kotlin+kumir+kusto+latex+latte+less+lilypond+liquid+lisp+livescript+llvm+log+lolcode+lua+magma+makefile+markdown+markup-templating+mata+matlab+maxscript+mel+mermaid+metafont+mizar+mongodb+monkey+moonscript+n1ql+n4js+nand2tetris-hdl+naniscript+nasm+neon+nevod+nginx+nim+nix+nsis+objectivec+ocaml+odin+opencl+openqasm+oz+parigp+parser+pascal+pascaligo+psl+pcaxis+peoplecode+perl+php+phpdoc+php-extras+plant-uml+plsql+powerquery+powershell+processing+prolog+promql+properties+protobuf+pug+puppet+pure+purebasic+purescript+python+qsharp+q+qml+qore+r+racket+cshtml+jsx+tsx+reason+regex+rego+renpy+rescript+rest+rip+roboconf+robotframework+ruby+rust+sas+sass+scss+scala+scheme+shell-session+smali+smalltalk+smarty+sml+solidity+solution-file+soy+sparql+splunk-spl+sqf+sql+squirrel+stan+stata+iecst+stylus+supercollider+swift+systemd+t4-templating+t4-cs+t4-vb+tap+tcl+tt2+textile+toml+tremor+turtle+twig+typescript+typoscript+unrealscript+uorazor+uri+v+vala+vbnet+velocity+verilog+vhdl+vim+visual-basic+warpscript+wasm+web-idl+wgsl+wiki+wolfram+wren+xeora+xml-doc+xojo+xquery+yaml+yang+zig */
|
||||
code[class*=language-],pre[class*=language-]{color:#ccc;background:0 0;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}
|
||||
17
assets/css/styles.scss
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
---
|
||||
|
||||
@charset "utf-8";
|
||||
|
||||
@import
|
||||
"reset",
|
||||
"wrapper",
|
||||
"page",
|
||||
"footer",
|
||||
"header",
|
||||
"float",
|
||||
"posts",
|
||||
"categories",
|
||||
"post",
|
||||
"mobile"
|
||||
;
|
||||
300
assets/js/prism.js
Normal file
BIN
assets/logos/dn-tech-favicon-black.png
Normal file
|
After Width: | Height: | Size: 431 B |
BIN
assets/logos/dn-tech-favicon-color.png
Normal file
|
After Width: | Height: | Size: 407 B |
BIN
assets/logos/dn-tech-favicon-white.png
Normal file
|
After Width: | Height: | Size: 407 B |
BIN
assets/logos/dn-tech-high-resolution-logo-black-transparent.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
assets/logos/dn-tech-high-resolution-logo-transparent.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
assets/logos/dn-tech-high-resolution-logo-white-transparent.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
assets/logos/logo-black.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
assets/logos/logo-color.png
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
assets/logos/logo-no-background.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
assets/logos/logo-white.png
Normal file
|
After Width: | Height: | Size: 64 KiB |
16
categories/index.html
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
layout: default
|
||||
title: d@n tech Categories
|
||||
---
|
||||
|
||||
<h2>Post Categories</h2>
|
||||
{% for category in site.categories %}
|
||||
<h3 class="category-header"><b>{{category | first}}</b></h3>
|
||||
{% for post in category[1] limit:3 %}
|
||||
<span class="post-item">{{ post.date | date: '%Y-%m-%d' }} >> <a href="{{ post.url }}">{{ post.title }}</a></span>
|
||||
{% endfor %}
|
||||
<div class="category-all-nav">
|
||||
<h4>See all posts in {{category | first}} ({{category[1] | size}}) <a href="/category/{{category | first | downcase }}/">>></a></h4>
|
||||
</div>
|
||||
{% endfor %}
|
||||
|
||||
38
index.md
Normal file
@@ -0,0 +1,38 @@
|
||||
---
|
||||
layout: default
|
||||
title: d@n tech
|
||||
---
|
||||
|
||||
# Hello! I'm Dustin
|
||||
|
||||
I'm an IT professional with a passion for technology and its transformative power. I live in Syracuse, NY with my incredible wife. Our journey together has been filled with love, mutual support, and academic pursuits.
|
||||
|
||||
## My Journey
|
||||
|
||||
Born and raised in Cato, I graduated high school in 2010 and embarked on an academic journey at RIT. Living on campus, I made lifelong friends and memories. My path then took me to Red Creek, balancing work with my studies at ITT-Tech, laying the foundation for my IT career.
|
||||
|
||||
After graduating, I moved to Central Square and worked at Walmart. It was here, in 2014, I met my wife. Our shared path has led us through various cities in New York, and we got married in 2020, marking a significant milestone in our adventure together. After settling in Fayetteville in 2023, we moved back to Syracuse in 2024. We returned to familiar grounds as we continue to build our life together.
|
||||
|
||||
## Supporting Each Other
|
||||
|
||||
Throughout our relationship, I've been proudly supporting my wife through her academic endeavors. She earned her Associate's degree from CCC as a commuter while we lived together, followed by her Bachelor's at SUNY Geneseo, where she lived on campus and I was in Liverpool, NY. Her Master's from St. Bonaventure was completed online while we were together. She began a PhD at the University of Arkansas (UARK) and, after deciding it wasn’t the right fit, she’s now continuing her education in an online program with Waynesburg University.
|
||||
|
||||
## Professional Journey
|
||||
|
||||
In my professional life, I've navigated various roles in IT. I started at Delta Sonic, moved on to the New York State Office of Information Technology Services, and later thrived as a Desktop Support Specialist at VSO (Virtual Service Operations). After a role with Greene Resources as an Infrastructure Support Specialist, I joined Waygate Technologies in Skaneateles as an End User Support Engineer. Most recently, in March 2025, I returned to New York State service (Office of Information Technology Services), where I continue supporting end users and enterprise operations.
|
||||
|
||||
## Educational Background
|
||||
|
||||
I'm a proud alum of Cato-Meridian High School and ITT-Technical Institute, where I earned my AAS in Computer & Network Systems Administration. These experiences have been instrumental in shaping my professional knowledge and skills.
|
||||
|
||||
## Skills and Expertise
|
||||
|
||||
Over the years, I've developed a rich skill set, including expertise in Microsoft Office Suite, Outlook, Mac OS, Linux, SiteWatch, Radiant, and a comprehensive understanding of IT infrastructure services, security, and protocols. My strengths include analytical thinking, diagnostic skills, and problem-solving abilities.
|
||||
|
||||
## Life Beyond Work
|
||||
|
||||
Outside of work, my life revolves around my family. My wife and I cherish our time together in Syracuse. Our story, from our first meeting to supporting each other through various life chapters, is a testament to our shared commitment and love.
|
||||
|
||||
## Contact
|
||||
Email me, [dustin@dustin.coffee](mailto:dustin@dustin.coffee).
|
||||
|
||||
44
life/_posts/2024-01-03-brewing-a-stronger-it-career.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
layout: post
|
||||
title: "brewing a stronger it career: from helpdesk to higher ed"
|
||||
---
|
||||
|
||||
Hello everyone!
|
||||
|
||||
Today, I want to share some exciting personal updates and reflections on my ongoing journey in the tech world.
|
||||
|
||||
## Hitting the Glass Ceiling with an Associate's Degree
|
||||
|
||||
For a while now, I've been navigating the IT landscape with my Associate's degree in hand. While it's been a valuable stepping stone, I've increasingly felt the constraints of what some call the "glass ceiling" in the tech industry. Despite my efforts and experience, I've found myself confined primarily to helpdesk roles. It's a common plateau many of us in tech face, and it's led me to a significant decision.
|
||||
|
||||
## Stepping Up: My Admission to WGU's Accelerated IT Program
|
||||
|
||||
I'm thrilled to announce my admission to Western Governors University's accelerated Bachelor's and Master's Degree program in Information Technology, starting on February 1, 2024. This program is a unique opportunity for me to deepen my knowledge, broaden my skills, and break through the career barriers I've been facing.
|
||||
|
||||
## Why Further Education?
|
||||
|
||||
I've always believed in the power of education to fill in knowledge gaps and open new doors. With technology evolving at a breakneck pace, there's always more to learn. This program is not just about getting higher qualifications; it's about equipping myself to contribute more significantly to the field I am passionate about.
|
||||
|
||||
## The Role of My Homelab
|
||||
|
||||
My homelab has been a cornerstone of my learning journey. It's where I experiment, explore, and expand my practical knowledge of IT systems. I anticipate that the WGU program will not only benefit from my hands-on experience in the homelab but will also provide new insights and challenges that I can bring back to my personal lab setup and services I provide.
|
||||
|
||||
## A Call for Support
|
||||
|
||||
As I embark on this new educational path, any support to enhance my homelab capabilities and cover the costs of running services would be greatly appreciated. Your support, whether through knowledge sharing, equipment recommendations, or financial contributions, will play a crucial role in my journey.
|
||||
|
||||
## Merchandise on the Horizon
|
||||
|
||||
In other exciting news, I'm working on launching a range of merchandise on Redbubble. This is not just about creating cool, tech-themed items; it's a creative outlet for me and a way to connect with the community. Stay tuned for more updates!
|
||||
|
||||
|
||||
Logo for merch:
|
||||
|
||||

|
||||
|
||||
|
||||
## In Closing
|
||||
|
||||
I'm at an exciting crossroads, filled with new challenges and opportunities. I look forward to sharing my experiences and learnings with all of you. Let's continue to grow and learn together in this ever-evolving world of technology.
|
||||
|
||||
Thank you for being a part of my journey!
|
||||
43
life/_posts/2024-01-22-my-it-odyssey.md
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
layout: post
|
||||
title: "my it odyssey: from entry-level to expertise"
|
||||
---
|
||||
|
||||
#### Introduction
|
||||
Hello, I'm Dustin, and I've been navigating the dynamic world of IT support since 2017. With a foundation in Computer Network Systems and Administration from ITT-Tech (2013), my career has taken me through various roles, each offering unique challenges and learnings. Today, I'd like to share my journey, hoping to inspire those starting in IT or looking to advance in this field.
|
||||
|
||||
#### First Steps at Delta Sonic Car Wash (2017-2019)
|
||||
- **Role:** Computer Support Technician
|
||||
- **Scope:** Managed IT needs across 9 locations in 2 cities.
|
||||
- **Deeper Dive:**
|
||||
- **Challenges Faced:** Tackling complex POS system issues and network dilemmas was a daily task, pushing me to develop effective troubleshooting skills.
|
||||
- **Skill Development:** This role was crucial in honing my technical problem-solving abilities and customer service skills, teaching me the value of patience and clear communication.
|
||||
- **Key Takeaways:** I learned the importance of a meticulous approach to diagnostics and the necessity of translating tech jargon into understandable language for non-tech staff.
|
||||
|
||||
#### Leveling Up at NYS ITS (2019-2023)
|
||||
- **Role:** Level 2 IT Support (L2 ITS)
|
||||
- **Scope:** Provided IT support for 25 agencies over 10 counties in Central NY.
|
||||
- **Expanding Horizons:**
|
||||
- **Broader Impact:** My efforts here went beyond fixing immediate issues, contributing to smoother operations across multiple agencies.
|
||||
- **Professional Growth:** This period was marked by growth in project management and strategic planning, as I spearheaded hardware rollouts and upgrades.
|
||||
- **Memorable Projects:** A significant project I managed was the standup of the Mass Vaccination Site at the NYS Fairgrounds, which taught me valuable lessons in large-scale project execution.
|
||||
|
||||
#### Current Role at Virtual Service Operations (VSO) (2023-Present)
|
||||
- **Role:** Raytheon Technology Deskside Support at Pratt & Whitney
|
||||
- **Scope:** Catering to the IT needs of about 200 users at the Pratt and Whitney PSD campus.
|
||||
- **Current Endeavors:**
|
||||
- **Solo Operations:** As the only IT support on campus, I handle everything from software installations to complex troubleshooting, ensuring smooth tech operations for all users.
|
||||
- **Adapting to Change:** This role requires me to be agile and up-to-date with the latest technologies, adapting quickly to new challenges and IT methodologies.
|
||||
- **Independent Problem Solving:** Working alone has honed my ability to tackle issues independently and develop innovative solutions, reinforcing the importance of self-reliance and resourcefulness in tech support.
|
||||
|
||||
|
||||
#### Future Plans and Aspirations
|
||||
- **Academic Pursuits:** I'm excited to start an Accelerated Bachelor's and Master's IT degree program at WGU on 2/1/24, aiming to deepen my knowledge and open new career avenues.
|
||||
- **Career Vision:** Post-graduation, I envision a role that not only challenges me but also aligns more closely with my passion for emerging technologies and innovative solutions.
|
||||
|
||||
#### Personal Reflections
|
||||
- **The Tech Landscape:** The IT field has evolved tremendously, and I believe we're on the cusp of more groundbreaking changes in technology and how we interact with it.
|
||||
- **Work-Life Balance:** Balancing a demanding career with personal passions like homelabs and Pathfinder gaming has been a fulfilling journey in itself.
|
||||
|
||||
#### Conclusion
|
||||
My journey through the IT landscape has been enriching and enlightening. I'm grateful for the challenges and opportunities I've encountered, and I hope my story encourages others to pursue their own path in tech. If you're on a similar journey, I'd love to hear about your experiences and challenges. Together, let's continue to learn, grow, and innovate in this ever-evolving field.
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
layout: post
|
||||
title: "java journeys: transitioning to it infrastructure at wolfspeed"
|
||||
---
|
||||
|
||||
#### Introduction:
|
||||
Hey there, folks! Today, I'm sharing a pivotal moment in my career journey with you at d@n tech. After five months of serving as a Desktop Support Specialist at Pratt & Whitney PSD, I've moved into a new role as an IT Infrastructure Support Technician at Wolfspeed.
|
||||
|
||||
|
||||
#### My Time at Pratt & Whitney PSD:
|
||||
At Pratt & Whitney PSD, I was the go-to guy for 200 end users, juggling tasks in office spaces and on the bustling machining floor. It was a busy gig that taught me the value of staying cool under pressure and finding solutions on the fly.
|
||||
|
||||
|
||||
#### Transitioning to Wolfspeed:
|
||||
Now, I'm settling into life at Wolfspeed, where I'm supporting around 80 end users across office and electrical lab environments. My plate is full with projects, L2 support, and handling the ins and outs of new user deployments.
|
||||
|
||||
|
||||
#### Facing the Challenges:
|
||||
Switching gears to a new role isn't without its hurdles. Getting acquainted with Wolfspeed's IT setup and catering to a smaller user base has been a bit of a learning curve. But hey, every challenge is just a chance to level up, right?
|
||||
|
||||
|
||||
#### Embracing the Opportunities:
|
||||
Despite the adjustments, I'm pumped about what lies ahead. Wolfspeed offers a chance to dive deep into IT infrastructure support, exploring new tech and fine-tuning my project management chops along the way.
|
||||
|
||||
|
||||
#### A Blend of Passion and Purpose:
|
||||
For a homelabber and tech enthusiast like me, this career shift is more than just a job change - it's about pursuing what fires me up and pushing myself to grow, both personally and professionally.
|
||||
|
||||
|
||||
|
||||
#### Looking Forward:
|
||||
As I settle into my groove at Wolfspeed, I'll be dishing out insights, tips, and tales from the trenches of IT support. So keep an eye out for more updates and musings as we journey through the world of tech and coffee together here at d@n tech.
|
||||
|
||||
|
||||
#### Conclusion:
|
||||
Change can be a wild ride, but it's all about rolling with the punches and savoring the journey. Here's to new beginnings, endless possibilities, and a good old cup of Americano to keep us grounded along the way.
|
||||
@@ -0,0 +1,23 @@
|
||||
---
|
||||
layout: post
|
||||
title: "a roast of reality: life changes, career shifts, and what's next"
|
||||
---
|
||||
|
||||
Life can be compared to coffee: bitter, sweet, and full of unexpected flavors. Over the past few years, I've experienced various life changes and career shifts that have brought challenges and opportunities. Let's explore my journey in several distinct phases.
|
||||
|
||||
#### The Big Decision
|
||||
In April 2024, my wife decided to leave her PhD program. This pivotal moment led us to reevaluate our priorities and consider a change of scenery. We decided to move back to New York on August 1st, 2024, seeking new opportunities and a fresh start.
|
||||
|
||||
#### Facing Challenges
|
||||
Upon returning to New York, financial responsibilities took center stage. To meet these obligations, I took a job at Walmart towards the end of August 2024. Although it wasn't my dream position, I reminded myself that every experience offers room for growth and learning.
|
||||
|
||||
#### New Opportunities
|
||||
As the seasons changed, so did my luck. On October 1st, 2024, I began a new role as a contractor through MergeIT, working with Waygate Tech in Skaneateles. This position allowed me to put my IT expertise to good use and reignite my passion for technology.
|
||||
|
||||
#### Future Aspirations
|
||||
Even as I settle into my current role, I'm still looking for opportunities to return to New York State ITS. The public sector presents unique challenges and a chance to make a positive impact on a broader scale.
|
||||
|
||||
#### Embracing Change
|
||||
Moving forward, I'm committed to embracing whatever life has in store for me, whether it's another career change or a fresh start in a new city. Just as coffee beans must undergo a roasting process to reveal their full potential, life's twists and turns can refine us, fostering growth and resilience.
|
||||
In conclusion, life is unpredictable, and careers can be uncertain. By staying true to ourselves and embracing new experiences, we can weather any storm and come out stronger. So, let's raise a cup to life's bitter and sweet moments and toast the journey ahead!
|
||||
It's been four months since I last posted on this blog. This hiatus is mainly due to a lack of time, energy, and uncertainty about what to share. However, I'm committed to getting back into the swing of things and providing valuable content for my readers. Thank you for your patience and continued support.
|
||||
@@ -0,0 +1,32 @@
|
||||
---
|
||||
layout: post
|
||||
title: "brewed reflections: a semester wrap-up and steaming future ahead"
|
||||
---
|
||||
|
||||
Welcome back to my corner of the internet! As I sit down to reflect on this past semester, I’m filled with a sense of accomplishment and excitement for what lies ahead. This journey has been nothing short of enlightening, and I'm eager to share my experiences while stirring in a bit of my favorite brew!
|
||||
|
||||
**Sipping on Knowledge: Classes Completed**
|
||||
|
||||
This semester, I’ve had the privilege of diving into five diverse courses that have each contributed uniquely to my academic growth:
|
||||
|
||||
- **American Politics and the US Constitution**: This course provided a deep dive into the foundational aspects of American governance. Understanding the nuances of our political system has been both fascinating and enlightening—much like savoring a bold cup of coffee!
|
||||
|
||||
- **Natural Sciences Lab**: Hands-on experiments in the lab have reinforced theoretical concepts, making abstract ideas tangible through practical application. It’s been an engaging way to explore scientific principles—comparable to the precise process of brewing the perfect espresso.
|
||||
|
||||
- **Applied Algebra**: Strengthening my algebraic skills has proven invaluable, especially in problem-solving scenarios that require analytical thinking. The practical applications of these skills are vast and exciting— kind of like calculating the ideal coffee-to-water ratio!
|
||||
|
||||
- **Ethics in Technology**: This course challenged me to think critically about the moral implications of technological advancements. It's a crucial area as technology continues to evolve rapidly, impacting society in profound ways—much like how innovations in coffee brewing have transformed our mornings.
|
||||
|
||||
- **Cloud Foundations**: Completing this course was a significant milestone, capped by earning my **AWS Certified Cloud Practitioner certification**. This achievement feels like a testament to my dedication and hard work, opening doors to new career opportunities in the cloud computing field.
|
||||
|
||||
Reflecting on these courses, I’m proud of the effort I’ve put in and the knowledge I’ve gained. Each has prepared me for new challenges and adventures.
|
||||
|
||||
**Espresso Yourself: Excitement for Next Steps**
|
||||
|
||||
Looking ahead, I’m thrilled to embark on my next semester with **Web Development Foundations** and **Web Development Applications**. With my experience building and hosting a couple of websites, I'm excited to deepen my knowledge in these areas. It’s incredibly rewarding to see ideas come to life online, similar to watching a barista perfect their craft.
|
||||
|
||||
**Final Thoughts: Brewing Success**
|
||||
|
||||
As I move forward, I remain committed to my educational goals, excited for the challenges and opportunities ahead. The journey is as important as the destination, and I’m grateful for each step taken so far. Here’s to continued growth, new skills, and achieving my aspirations in this ever-evolving educational landscape.
|
||||
|
||||
Thank you for joining me on this journey. Stay tuned for more updates as I continue to explore new horizons—because like a good cup of coffee, there’s always something brewing!
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
layout: post
|
||||
title: "from beans to bills: crafting my first project quote"
|
||||
---
|
||||
|
||||
|
||||
As I embark on the journey of freelancing, I found myself transitioning from creative coffee shop sessions to the business side of things. Like a well-brewed cup of coffee, managing my finances requires the right blend of tools and practices. Recently, I set up some essential systems that will help me streamline my invoicing process, including self-hosted InvoiceNinja software and a PayPal business account. Join me as I walk you through my experience of crafting my first project quote and the choices I made along the way.
|
||||
|
||||
## Brewing the Right Tools: Why I Chose InvoiceNinja
|
||||
|
||||
When it came to invoicing solutions, I needed something that was both flexible and easy to use. After researching various options, I settled on a self-hosted version of **InvoiceNinja**. This open-source software allowed me to have complete control over my data—much like crafting the perfect roast to suit my taste buds.
|
||||
|
||||
Self-hosting means I can customize the software according to my needs, and I love the idea of managing invoices without relying solely on a third-party provider. It’s important for me to keep my operations as streamlined and personalized as a cozy coffee shop experience.
|
||||
|
||||
## Setting Up a PayPal Business Account: A Step Towards Professionalism
|
||||
|
||||
In tandem with InvoiceNinja, I opened a **PayPal business account**. Why PayPal? Its widespread recognition and reliability make it an ideal choice for freelancers and service providers alike. More importantly, I wanted to leverage the **PayPal API** for seamless integration with InvoiceNinja. This integration enables my clients to pay invoices directly through their PayPal accounts, creating a smoother transaction process.
|
||||
|
||||
The setup was straightforward—just like brewing a basic cup of coffee. I went through PayPal’s registration process, ensuring I provided all the necessary information for a business account. Once my account was active, diving into the API documentation was my next step, which paved the way for my future work with InvoiceNinja.
|
||||
|
||||
## Crafting My First Project Quote: A Blend of Creativity and Precision
|
||||
|
||||
With the systems in place, it was time to craft my first project quote. I approached it with the same care I put into creating my favorite coffee blend, ensuring every detail was perfect.
|
||||
|
||||
1. **Defining the Scope**: I laid out what the project entailed—including deliverables, timelines, and any specific requirements from the client. Clarity here is essential to avoid misunderstandings later.
|
||||
|
||||
2. **Pricing**: I accounted for my time, the resources I’d need, and any potential expenses. Similar to calculating the cost of specialty beans, finding the right balance in pricing is crucial to ensure I’m compensated fairly while remaining competitive.
|
||||
|
||||
3. **Creating the Quote in InvoiceNinja**: With everything defined, I jumped into InvoiceNinja. The platform made it easy to create a polished quote with customizable templates. I added my branding (because what’s a business without a little personal flair?) and ensured the document looked professional yet inviting.
|
||||
|
||||
4. **Integrating PayPal**: Next, I set up the integration with PayPal, enabling a “Pay Now” button directly on the invoice. This feature is like a cherry on top of my coffee—making it easy for clients to settle their bills without delay.
|
||||
|
||||
5. **Sending the Quote**: Finally, I hit send! A mix of excitement and nervousness coursed through me. The quote looked great, and I was eager to see how my client would respond.
|
||||
|
||||
## The Aftertaste: Reflection and Learning
|
||||
|
||||
Crafting my first project quote was a learning experience—one that parallels tasting new coffee varieties. As I sip and savor, I reflect on what went well and what I could improve in future transactions.
|
||||
|
||||
The combination of self-hosted InvoiceNinja and PayPal has set the tone for how I will manage my finances moving forward. Having these tools in place not only streamlines my process but also provides my clients with a professional experience—much like being served the perfect brew in a café.
|
||||
|
||||
As I continue this journey, I look forward to refining my invoicing skills and serving clients with the same passion I bring to my craft. If you're on your own freelancing path, remember: success comes from blending the right tools to create a delightful experience for both you and your clients. Cheers to many more quotes, projects, and expansive horizons ahead!
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
layout: post
|
||||
title: "coffee, code, and creativity: the launch of my new website"
|
||||
---
|
||||
|
||||
|
||||
I’m excited to announce the launch of my brand-new web development website! This venture has been a blend of creativity, dedication, and a lot of caffeinated brainstorming. The goal of my website is to serve as a landing page for potential clients, showcasing my skills and the services I offer, much like a beautifully curated coffee menu at your favorite café.
|
||||
|
||||
## Welcome to My Digital Space!
|
||||
|
||||
### Who Am I?
|
||||
|
||||
Just like each coffee has its unique flavor profile, I bring a distinct set of skills and experiences to web development. I specialize in creating responsive, user-friendly websites that not only look good but also function seamlessly. My passion for design and coding drives me to deliver solutions tailored to each client’s needs.
|
||||
|
||||
### What I Offer
|
||||
|
||||
On my newly launched website, you’ll find a clear overview of my services:
|
||||
|
||||
- **Custom Web Development**: From concept to launch, I can create a website that matches your vision and goals.
|
||||
- **Responsive Design**: All of my sites are designed to be mobile-friendly, ensuring a smooth experience for users on any device.
|
||||
- **E-commerce Solutions**: Ready to take your business online? I’ll help you set up an engaging and easy-to-navigate online store.
|
||||
- **SEO Optimization**: Let's make sure your website is visible when potential customers are searching for your services.
|
||||
- **Ongoing Support**: I believe in building long-term relationships. I provide ongoing support and maintenance to keep your site running smoothly.
|
||||
|
||||
## Why Choose Me?
|
||||
|
||||
In a world full of options, why should you choose to work with me? Here are a few reasons:
|
||||
|
||||
- **Personalized Approach**: I take the time to understand your unique needs and goals, just like how a barista will customize your order based on your preferences.
|
||||
- **Quality First**: My commitment to quality ensures that every project I take on meets high standards.
|
||||
- **Timely Delivery**: I value your time as much as a good cup of coffee—prompt, efficient service is guaranteed.
|
||||
|
||||
## Portfolio Showcase
|
||||
|
||||
Your first impression matters, and that’s why I’ve included a portfolio section showcasing my previous projects. Each piece reflects my capabilities and attention to detail, just like a well-crafted beverage reflects a barista's skill. This section will give you an idea of the work I do and the quality you can expect when you choose to collaborate with me.
|
||||
|
||||
## Get in Touch
|
||||
|
||||
I know that starting a new project can feel overwhelming, just like choosing the perfect brew in a coffee shop. That’s why I’ve made it easy for you to reach out. If you have an idea, a project in mind, or just want to chat about web development, my contact form is just a click away. Let's take that first step together!
|
||||
|
||||
## Subscribe for Insights
|
||||
|
||||
Additionally, I invite you to subscribe to my blog for tips, tutorials, and industry insights. Much like sharing coffee brewing techniques, I believe in sharing knowledge and helping others grow in their web journey.
|
||||
|
||||
## Conclusion: Cheers to New Beginnings!
|
||||
|
||||
Launching my web development website is an exciting milestone, and I can’t wait to connect with you and help bring your ideas to life. Thank you for visiting, and I hope to work with you soon to create something extraordinary together. Cheers to new beginnings and a future rich with possibilities!
|
||||
33
news/_posts/2023-12-27-New-Site.md
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
layout: post
|
||||
title: "d@n tech is Live!"
|
||||
---
|
||||
|
||||
# New Site Deployed: D@N Tech is Now Live!
|
||||
|
||||
I am excited to announce that my new Jekyll site, **d@n tech**, is officially live! This is a significant milestone for me, and I'm thrilled to share this journey with you.
|
||||
|
||||
## The Journey to Jekyll
|
||||
|
||||
Initially, I considered using WordPress for my website. WordPress is a powerful tool with a lot of flexibility, and it's great for many projects. However, for my specific needs, I found it to be somewhat bulky. I needed something streamlined, efficient, and more suited to a tech-centric site like mine.
|
||||
|
||||
That's when I turned to Jekyll. Jekyll is a static site generator that's perfect for developers who want to dive into code, customize their site extensively, and have a more hands-on approach to site management. It's lightweight, fast, and allows for greater control over the site's design and functionality.
|
||||
|
||||
## Why Jekyll?
|
||||
|
||||
There are several reasons why Jekyll stood out to me:
|
||||
|
||||
- **Simplicity and Speed**: Jekyll sites are static, which means they load faster and are simpler to host and manage.
|
||||
- **Developer-Friendly**: As a developer, I appreciate being able to work directly with the code, and Jekyll is built for this kind of hands-on approach.
|
||||
- **Customization**: With Jekyll, I have more freedom to customize my site exactly how I want it.
|
||||
- **Community and Support**: The Jekyll community is vibrant and supportive, offering a wealth of plugins and themes.
|
||||
|
||||
## What's Next for D@N Tech?
|
||||
|
||||
The launch of d@n tech is just the beginning. This blog will serve as a chronicle of my journey in tech, a place where I can share updates, insights, and experiences.
|
||||
|
||||
- **Regular Updates**: Expect regular posts on projects I'm working on, new technologies I'm exploring, and general thoughts on the IT world.
|
||||
- **Resource Sharing**: I'll be sharing resources and tips that I find useful in my professional journey.
|
||||
- **Community Interaction**: I'm looking forward to engaging with the community, learning from others, and sharing my knowledge.
|
||||
|
||||
Stay tuned for more updates, and thank you for being a part of this exciting journey!
|
||||
@@ -0,0 +1,36 @@
|
||||
---
|
||||
layout: post
|
||||
title: "brewing success: my journey into freelance web development and server upgrades"
|
||||
---
|
||||
|
||||
As a tech enthusiast with a love for life’s little pleasures—like a well-brewed cup of coffee—I often find myself reflecting on the intersection of my passions and pursuits. Recently, I’ve had the incredible opportunity to take on a couple of paid web development projects, which not only expanded my skill set but also funded an exciting server upgrade project. Join me as I spill the beans on my experiences in freelancing, my recent tech acquisitions, and how Invoice Ninja became my trusty sidekick in this journey.
|
||||
|
||||
## Pouring the Foundations: Freelancing in Web Development
|
||||
|
||||
The web development projects I completed were a fantastic exercise in blending creativity with technical skill. My first client was a dear friend launching her **Mental Health Counseling** practice, **Pemu Counseling and Wellness**. This comprehensive mental health service provider focuses on offering personalized counseling and wellness programs. Building her website from scratch was a rewarding endeavor, allowing me to combine my technical skills with a mission close to my heart. Hosting her site on my server not only helped keep costs down but also gave me an opportunity to fine-tune my server management skills.
|
||||
|
||||
Next up was a massage therapist transitioning her services to **shamanism and energy healing** with her business, **Powerful Healing Arts**. This sanctuary is dedicated to helping women move beyond physical healing into deeper energetic and spiritual transformation. For her, I built a new website using **Squarespace**, but with a twist—creating a new site allowed the old one to remain live while I developed it, ensuring there was zero downtime. This tactic was crucial for her business, and it showcased my ability to manage multiple projects while prioritizing client needs.
|
||||
|
||||
These projects pushed my problem-solving abilities to the forefront. Not only was I able to deliver functional websites, but I also learned to communicate effectively and manage timelines—skills that are crucial in the fast-paced freelance world.
|
||||
|
||||
## Upgrading My Server: A Techie’s Dream
|
||||
|
||||
With the earnings from my freelance work, I decided it was time to tackle my server upgrade project. Having recently acquired a **Dell C6420** that was lacking RAM, I knew the first step was to equip it with the necessary components. This led me on a treasure hunt, culminating in the purchase of a **NetApp DS4246** off eBay for a mere **$170**—a steal considering it typically retails for around **$500**!
|
||||
|
||||
The excitement didn’t stop there. I also acquired 45 sticks of **16GB RAM** for just **$5 each** in Rochester, while similar RAM on eBay was fetching around **$30 each**. I felt like a savvy scavenger with each deal I bagged, transforming my server into a powerhouse without emptying my wallet.
|
||||
|
||||
## Tools of the Trade: Harnessing Invoice Ninja
|
||||
|
||||
With my freelancing ventures underway and new technology purchases piling up, I realized I needed a robust tool to manage quotes, task tracking, and invoicing. Enter **Invoice Ninja**! This streamlined software has been a game changer, allowing me to easily track my projects while ensuring timely payments from clients.
|
||||
|
||||
Not only does it provide a professional touch to the invoicing process, but its user-friendly interface has simplified my workflow, letting me focus more on what I love—coding and creating. With customized quotes and task tracking, I can keep my projects organized and ensure nothing falls through the cracks.
|
||||
|
||||
## The Perfect Blend: Coffee and Coding
|
||||
|
||||
As I embark on these projects, I can’t help but savor a steaming mug of coffee by my side, fueling my productivity and creativity. The scent of freshly brewed coffee often inspires my coding sessions, turning each challenge into an enjoyable endeavor. It reminds me that work can be pleasurable, especially when you find the right balance between passion and profession.
|
||||
|
||||
## Conclusion
|
||||
|
||||
In retrospective sips of coffee, it’s clear that the intersection of freelancing, server upgrades, and the right tools has ignited a spark in my tech journey. Whether it's honing my web development skills to help clients shine or upgrading my server to expand my capabilities, I’m excited about the path ahead.
|
||||
|
||||
If you’re considering freelancing, I encourage you to explore your options and invest your earnings wisely—who knows what kind of tech treasures you might uncover? Until next time, keep coding, keep sipping, and keep crafting your unique blend of technology and life!
|
||||
1
null
Normal file
@@ -0,0 +1 @@
|
||||
In my professional life, I've navigated various roles in IT. I started at Delta Sonic, moved on to the New York State Office of Information Technology Services, and later thrived as a Desktop Support Specialist at VSO (Virtual Service Operations). After a role with Greene Resources as an Infrastructure Support Specialist, I joined Waygate Technologies in Skaneateles as an End User Support Engineer. Most recently, in March 2025, I returned to New York State service (Office of Information Technology Services), where I continue supporting end users and enterprise operations.
|
||||
22
posts/index.html
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
layout: default
|
||||
title: d@n tech posts
|
||||
pagination:
|
||||
enabled: true
|
||||
---
|
||||
|
||||
<h2>Posts</h2>
|
||||
{% for post in paginator.posts %}
|
||||
<span class="post-item"><span class="mobile-hide"> {{ post.date | date: '%Y-%m-%d' }} >> </span><a href="{{ post.url }}">{{ post.title }}</a><span class="float-right mobile-hide">{{ post.categories }}</span></span>
|
||||
{% endfor %}
|
||||
|
||||
<div class="post-nav">
|
||||
{% if paginator.total_pages > 1 %}
|
||||
{% if paginator.next_page %}
|
||||
<a href="{{ paginator.next_page_path | prepend: site.baseurl }}"><- Older</a>
|
||||
{% endif %}
|
||||
{% if paginator.previous_page %}
|
||||
<a href="{{ paginator.previous_page_path | prepend: site.baseurl }}">Newer -></a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
BIN
resume/.jekyll-metadata
Normal file
104
resume/index.md
Normal file
@@ -0,0 +1,104 @@
|
||||
---
|
||||
layout: default
|
||||
title: dustin's resume
|
||||
---
|
||||
|
||||
# DUSTIN NEWKIRK(7)
|
||||
|
||||
## NAME
|
||||
**Dustin Newkirk** - Experienced IT Professional
|
||||
|
||||
## SYNOPSIS
|
||||
`dustin` [OPTIONS]... [COMMAND]...
|
||||
|
||||
## DESCRIPTION
|
||||
Results-driven IT professional with a strong background in systems administration, network infrastructure, and customer support. Adept at resolving complex technical issues, coordinating projects, and delivering top-notch service to stakeholders. Proficient in planning, organizing, and documenting complex server/network activities and collaborating effectively in team environments. ITILv4 Foundations and CompTIA A+ certified.
|
||||
|
||||
## EXPERIENCE
|
||||
|
||||
### March 2025 - Present
|
||||
**Information Technology Specialist 2, New York State Office of Information Technology Services**
|
||||
- Coordinates and facilitates data and business systems support to end-users.
|
||||
- Independently resolves hardware, network connectivity, and application issues.
|
||||
- Performs risk assessments, recommends IT solutions, assists in upgrades.
|
||||
|
||||
### October 2024 - March 2025
|
||||
**MergeIT**
|
||||
*End User Support Engineer, Waygate Technologies - Contract*
|
||||
- Provide on-site deskside support in office and light manufacturing settings.
|
||||
- Perform technical work activities remotely or on-site to fulfill business and customer needs.
|
||||
- Coordinate small teams and deliver work packages following company processes.
|
||||
- Document work completed and escalate issues in line with company procedures.
|
||||
- Offer excellent customer service to both internal and external customers in a dynamic team environment.
|
||||
|
||||
### March 2024 - June 2024
|
||||
**Greene Resources**
|
||||
*Infrastructure Support Specialist, Wolfspeed - Contract*
|
||||
- Maintained operational stability in IT support by swiftly addressing issues, demonstrating persistence and urgency, and aligning short-term results with long-term strategic objectives.
|
||||
- Managed and resolved IT incidents, including prioritizing, diagnosing, and resolving client, telecom, network, and data storage issues, with a focus on first-contact solutions and backlog management.
|
||||
- Efficiently escalated and routed IT tickets, adhered to incident SLAs, and regularly updated a central knowledge base with troubleshooting solutions and known issues.
|
||||
- Coordinated within the IT team to optimize service delivery, time management, and process documentation, ensuring effective task completion and issue escalation.
|
||||
- Handled workstation imaging, software installation, hardware logistics, and asset management, including deployment, relocation, and lifecycle management in accordance with CMDB standards.
|
||||
|
||||
### October 2023 - March 2024
|
||||
**VSO (Virtual Service Operations)**
|
||||
*Desktop Support Specialist, Pratt & Whitney - Contract*
|
||||
- Provides desk support, diagnoses problems, resolves technical issues.
|
||||
- Performs installations, repairs, upgrades, backups, and maintenance.
|
||||
- Sets up Audio/Visual equipment, maintains hardware and software inventory.
|
||||
|
||||
### June 2019 - August 2023
|
||||
**Information Technology Specialist 2, New York State Office of Information Technology Services**
|
||||
- Coordinates and facilitates data and business systems support to end-users.
|
||||
- Independently resolves hardware, network connectivity, and application issues.
|
||||
- Performs risk assessments, recommends IT solutions, assists in upgrades.
|
||||
|
||||
### September 2017 - June 2019
|
||||
**Computer Support Technician, Delta Sonic**
|
||||
- Repairs and maintains point-of-sale equipment, computers, and network systems.
|
||||
- Configures and troubleshoots hardware/software, resolves computer and network issues.
|
||||
- Maintains company IT asset records.
|
||||
|
||||
## EDUCATION
|
||||
|
||||
**Computer & Network Systems Administration, AAS**
|
||||
- ITT-Technical Institute, May 2013
|
||||
|
||||
## CERTIFICATIONS
|
||||
|
||||
**ITILv4 Foundations**
|
||||
- Received February, 2024
|
||||
- Proficient in IT Service Management principles and practices.
|
||||
|
||||
**CompTIA A+**
|
||||
- Received October, 2023
|
||||
- Demonstrates expertise in computer systems, networking, and security.
|
||||
|
||||
**AWS Certified Cloud Practitioner**
|
||||
- Received January, 2025
|
||||
- Validates foundational understanding of AWS Cloud concepts, services, security, architecture, pricing, and support. Recognizes the importance of AWS Cloud in driving business value through effective cloud adoption and management.
|
||||
|
||||
|
||||
## TECHNICAL SKILLS
|
||||
|
||||
- Systems Administration: Windows Server, Linux (Ubuntu, CentOS), Active Directory, System Center Configuration Manager (SCCM)
|
||||
- Networking: TCP/IP, DNS, DHCP, VPN, LAN/WAN
|
||||
- Customer Support: ServiceNow, Spiceworks
|
||||
- Virtualization: VMware, Hyper-V, XCP-NG, Proxmox
|
||||
- Scripting: PowerShell, Bash
|
||||
- Programming: PHP, HTML, CSS, Bootstrap
|
||||
- Databases: MySQL
|
||||
- Security: Firewalls, Antivirus, IDS/IPS, SIEM
|
||||
|
||||
## SOFT SKILLS
|
||||
|
||||
- Problem-solving and troubleshooting
|
||||
- Communication and collaboration
|
||||
- Time management and organization
|
||||
- Adaptability and continuous learning
|
||||
|
||||
## AUTHOR
|
||||
Dustin Newkirk <dustin@dustin.coffee>
|
||||
|
||||
## SEE ALSO
|
||||
[LinkedIn profile](https://linkedin.com/in/dnewkirk)
|
||||
2
robots.txt
Normal file
@@ -0,0 +1,2 @@
|
||||
User-agent: *
|
||||
Sitemap: https://dustin.coffee/sitemap.xml
|
||||
@@ -0,0 +1,72 @@
|
||||
---
|
||||
layout: post
|
||||
title: "tech infrastructure unpacked: from cloud to home server"
|
||||
---
|
||||
|
||||
#### Introduction: Sit back and grab a coffee
|
||||
Welcome to a behind-the-scenes look at the infrastructure powering my websites, Dustin.coffee and Hobokenchicken.com. In this post, I'll lay out the complexities and intricacies of my personal tech setup, demonstrating the importance of reliability, technical skills, and the sheer appreciation of a well-built system.
|
||||
|
||||
#### Section 1: Domain and DNS Configuration
|
||||
-**Cloudflare for DNS Management**
|
||||
- **Why the Switch?** I transitioned to Cloudflare for managing the DNS of dustin.coffee and hobokenchicken.com after Google Domains shut down.
|
||||
- **Understanding DNS Management:** Think of DNS (Domain Name System) management like a coffee shop's menu. It helps people find my websites using easy-to-remember names (like dustin.coffee) instead of complex numerical addresses, much like how you'd order a "Caramel Macchiato" instead of remembering a specific recipe.
|
||||
- **Choosing Cloudflare:** Cloudflare is renowned for its speed and security, akin to a highly efficient and safe coffee shop where your order is always secure and served quickly.
|
||||
- **Content Delivery Network (CDN) Explained:** Cloudflare includes a CDN, which can be likened to having multiple coffee stations in a large office. Instead of everyone queuing at one station, causing delays, there are several stations strategically placed around the office. This setup means that no matter where you are in the office, you can get your coffee quickly. In the same way, the CDN ensures that the static content of my websites (like images and stylesheets that don't change often) is stored in various locations on the internet, so it’s served faster to you, the visitor, no matter where you are.
|
||||
|
||||
#### Section 2: Oracle VPS and Its Role
|
||||
- **Choosing Oracle VPS:** Think of Oracle VPS as a reliable and affordable storage unit for my website's digital data. After exploring options like Google Cloud and Hetzner, Oracle VPS stood out for its excellent free tier, offering just the right balance of space and features for my needs. And with the balooning costs of Google and Hetzner, Oracle's free tier had exactly what I wanted and needed for no cost.
|
||||
- **Making Connections Work:**
|
||||
- **Nginx Proxy Manager:** This is akin to a smart sorting system in a post office. When someone requests to view my website, Nginx Proxy Manager efficiently directs this request to the right destination. It ensures that every digital 'letter' (or in this case, a request to access my website) is sorted and sent to the correct mailbox (my server).
|
||||
- **Tailscale:** Imagine Tailscale as a secure and private delivery service. It safely transports information from my Oracle VPS (the digital 'storage unit') to my home server (the 'house' where my website lives). Tailscale ensures this digital journey is secure, keeping the data safe from any unwanted interference.
|
||||
- **How They Work Together:**
|
||||
- The data journey starts when you type in my website's address. This request travels to Cloudflare (the DNS manager), which acts like a directory, pointing the request to the Oracle VPS.
|
||||
- Next, the Oracle VPS, equipped with the Nginx Proxy Manager, receives this request. Nginx checks where the request needs to go – in this case, it's directed to my home server.
|
||||
- Tailscale then steps in, creating a secure path for this request to travel from the Oracle VPS to my home server. This ensures that the data remains private and secure as it makes its way to the server.
|
||||
- Once the request arrives at my home server, the server processes it and sends back the requested web page or information via the same secure route, back to your screen.
|
||||
This setup ensures a smooth, secure, and efficient flow of data, from the moment you request to view my website to the moment the content is displayed on your screen.
|
||||
|
||||
#### Section 3: The Home Server - Heart of the Operation
|
||||
- **Server Specifications:**
|
||||
- My home server, a Dell r720xd, is the workhorse behind my entire setup. It's designed to handle demanding tasks with ease. Here's a quick rundown of what it packs:
|
||||
- **Processors:** It boasts 2x Xeon E5-2695v2 CPUs. These processors are like the brains of the server, handling multiple tasks simultaneously without breaking a sweat.
|
||||
- **Memory:** With 378GB of RAM, it's like having a vast workspace, allowing me to run several applications and processes concurrently without any lag.
|
||||
- **Storage:** For quick access and operations, it has 2x 1TB SSDs. These are like the top drawers of a desk, where I keep frequently used tools. For larger, less frequently accessed data, there are 12 10TB SAS HDDs, acting like a massive filing cabinet, offering ample space.
|
||||
- This combination of processors, memory, and storage means the server can manage heavy data loads, run multiple services smoothly, and store a vast amount of data – perfect for my varied needs.
|
||||
- **Tailscale Subnet Router VM:**
|
||||
- This particular VM (Virtual Machine) plays a unique role. It's set up as a subnet router for Tailscale. To understand its function, imagine Tailscale as a secure, private network connecting various devices. Normally, each device (or in my case, each LXC container) would need its own Tailscale setup, which can be like having a separate security system for each room in a house.
|
||||
- What the Tailscale Subnet Router VM does is act like a central security system for the entire house. It means that instead of setting up Tailscale on every individual LXC container, they all automatically get secure access through this VM. This setup simplifies management, enhances security, and ensures that each part of my server communicates securely with the outside world.
|
||||
- **A Note on Server Age and Ko-fi Initiative:**
|
||||
- While my Dell r720xd server has been a reliable cornerstone of my digital infrastructure, it's important to note that it's part of an aging platform. In the tech world, this is akin to having a classic car - it has its charm and capabilities, but it also requires maintenance and eventual upgrades to keep up with modern demands and efficiencies.
|
||||
- To address this, I've started a Ko-fi initiative. Think of Ko-fi as a digital tip jar where supporters can contribute small amounts to help fund upgrades and maintenance for the server. This initiative is all about ensuring that my server continues to run smoothly and remains capable of supporting the latest technologies and my growing needs. Contributions will go directly towards hardware upgrades, ensuring that the server remains robust, secure, and efficient.
|
||||
- If you appreciate the content and services I provide and want to support the longevity and improvement of this setup, consider contributing to my Ko-fi. Every little bit helps in keeping this digital engine running at its best!
|
||||
|
||||
#### Section 4: LXC Containers and Services
|
||||
- **Plex with GPU Passthrough:**
|
||||
- My Plex server is a key component of my home entertainment system. By utilizing GPU passthrough, the server's graphics processing capabilities are significantly enhanced. This means smoother, higher-quality video transcoding, allowing for a better viewing experience on various devices, regardless of their native format compatibility.
|
||||
- **Calibre-web in Docker:**
|
||||
- Calibre-web, hosted in a Docker container, serves as a digital library. It's primarily used for managing and providing access to a wide range of college textbooks and educational materials for students I support. This setup simplifies the process of storing, accessing, and reading these books, making it an invaluable resource for their academic needs.
|
||||
- **Jekyll Blog Hosting:**
|
||||
- For my Jekyll blog, I've tailored a hosting environment that allows for efficient management and seamless content updates. This setup ensures that my blog remains responsive, secure, and easy to navigate, offering visitors a pleasant reading experience.
|
||||
- **Foundry Server for Pathfinder:**
|
||||
- The Foundry server is dedicated to hosting Pathfinder role-playing games. It's one of my oldest and most cherished projects, co-managed with another Dungeon Master. This server provides a rich, interactive platform for our gaming sessions, complete with maps, character sheets, and real-time updates, enhancing our Pathfinder experiences.
|
||||
- **'Arr' Stack in Docker:**
|
||||
- The 'Arr' stack, hosted within Docker, comprises several components including Prowlarr, Radarr, Sonarr, Sabnzbd, Lidarr, Bazarr, Overseer, Tautulli, Deemix, and Homarr. Each of these components plays a specific role, from managing TV show downloads (Sonarr) to handling music (Lidarr), and even tracking and analyzing Plex usage (Tautulli). This stack represents a comprehensive media management solution, catering to various entertainment needs.
|
||||
- **Mealie Website for Recipes:**
|
||||
- Mealie is a recent addition to my setup, currently in the testing phase. It's a web application for meal planning, recipe storage, and generating shopping lists. This tool is aimed at simplifying the process of deciding what to eat, preparing meals, and shopping for ingredients, streamlining the entire culinary experience in my household.
|
||||
|
||||
#### Section 5: Data Flow and Security
|
||||
- **Overview of Data Flow**
|
||||
- I'll provide a diagram and a thorough explanation of how data moves through this intricate setup.
|
||||
- **Security Measures**
|
||||
- Discussion of the various security measures in place, especially focusing on the role of Tailscale and other precautions I've implemented.
|
||||
|
||||
#### Conclusion: Bringing It All Together
|
||||
As we've journeyed through the various components of my digital setup – from DNS management with Cloudflare to the intricacies of my home server and LXC containers – it's clear that managing such a system requires a blend of technical know-how, strategic planning, and a passion for technology.
|
||||
|
||||
The complexity of this setup not only showcases the dynamic nature of tech infrastructure but also highlights the importance of ongoing learning and adaptation. Whether it's handling the transition from Google Domains to Cloudflare, optimizing the use of Oracle VPS, or maintaining the myriad services on my Dell r720xd, each element plays a crucial role in delivering a seamless digital experience.
|
||||
|
||||
Beyond the technical aspects, this journey is also about the community and the shared experiences. From hosting Pathfinder games to providing educational resources through Calibre-web, each service has its unique impact.
|
||||
|
||||
As technology continues to evolve, so will the components of my setup. I'm excited to continue sharing these developments, insights, and stories with you. Your feedback, questions, and support – especially through initiatives like the Ko-fi for server upgrades – are what make this journey enriching and worthwhile.
|
||||
|
||||
Thank you for taking the time to delve into the world of dustin.coffee and hobokenchicken.com. I hope this glimpse behind the scenes not only informs but also inspires you in your own tech endeavors.
|
||||
30
tech/_posts/2024-03-04-changes-are-brewing.md
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
layout: post
|
||||
title: "transitioning from lxc to vms: preparing for xcp-ng"
|
||||
---
|
||||
|
||||
#### Introduction:
|
||||
In this latest discussion at d@n tech, we're focusing on a significant transition in the server environment. I've recently embarked on a project to shift from LXC containers to VMs (Virtual Machines), a move prompted by upcoming changes in the server infrastructure.
|
||||
|
||||
#### Why the Shift?:
|
||||
The move away from LXC containers, a staple in my Proxmox setup, to VMs is driven by a need for greater flexibility and platform independence. With plans to eventually migrate to XCP-NG from Proxmox, VMs present a more viable option due to their portability and compatibility with various platforms.
|
||||
|
||||
#### The Transition Process:
|
||||
|
||||
- **Evaluation:** The initial phase involved assessing the existing LXC configurations, understanding the nuances of their deployment within Proxmox.
|
||||
- **Selecting the VM Platform:** After exploring various options, I settled on a VM platform that complements the forthcoming XCP-NG environment.
|
||||
- **Migration Strategy:** I planned the migration in stages, aiming to minimize disruptions and ensure data integrity throughout the process.
|
||||
- **Implementation:** The services were methodically transitioned from LXC to VMs, with each step rigorously tested for performance and functionality.
|
||||
- **Post-Migration Optimization:** Following the migration, I've been focusing on fine-tuning the VMs to optimize their performance in the new environment.
|
||||
|
||||
#### Upcoming Changes:
|
||||
The most significant upcoming change is the construction and deployment of a new server that will run XCP-NG. This shift marks a departure from the current Proxmox setup. Once the new server is built and put into production, the VMs, currently housed within Proxmox, will be migrated over to XCP-NG. This transition is not just a change in technology but a strategic move towards a more versatile and robust server ecosystem.
|
||||
|
||||
#### Challenges and Learnings:
|
||||
Navigating through this transition hasn't been straightforward. From compatibility checks to performance tuning, each step presented its own set of challenges. However, these hurdles have provided valuable insights into both Proxmox and XCP-NG platforms.
|
||||
|
||||
#### Conclusion:
|
||||
This journey from LXC containers to VMs, culminating in the move to XCP-NG, is more than a technical upgrade. It's a step towards future-proofing the server environment, ensuring I stay agile and adaptable in the ever-evolving tech landscape.
|
||||
|
||||
#### Looking Ahead at d@n tech:
|
||||
As we move closer to the full deployment of the XCP-NG server, stay tuned for more updates, insights, and learnings from this journey.
|
||||
@@ -0,0 +1,22 @@
|
||||
---
|
||||
layout: post
|
||||
title: "brewing resilience: from lxc to vm for flawless plex and beyond"
|
||||
---
|
||||
|
||||
#### Introduction:
|
||||
Hey everyone, it's time for another tech update from d@n tech! Recently, I made a significant change to my Plex server setup that I'm excited to share with you all. After encountering issues with hardware transcoding, I decided to transition my Plex server from an LXC container to a VM, utilizing GPU passthrough for flawless transcoding performance.
|
||||
|
||||
#### The Importance of Hardware Transcoding and GPU Passthrough:
|
||||
Before diving into the transition process, let's talk about why hardware transcoding and GPU passthrough are crucial for a smooth Plex experience. Hardware transcoding offloads the burden of video transcoding from the CPU to specialized hardware, such as a GPU. This results in lower CPU usage, faster transcoding speeds, and better playback performance, especially for remote streaming or multiple concurrent streams. GPU passthrough allows a virtual machine to directly access and utilize a physical GPU, ensuring optimal performance for tasks like video encoding and decoding.
|
||||
|
||||
#### Encountering Issues and Making the Transition:
|
||||
A couple of weeks ago, I noticed that hardware transcoding on my Plex server was no longer functioning properly. After troubleshooting for hours, I discovered that something had broken, preventing the GPU from being utilized for transcoding within the LXC container. Faced with this dilemma, I decided to take the plunge and convert my Plex server to a VM, passing the GPU directly to the VM for optimal performance.
|
||||
|
||||
#### The Transition Process:
|
||||
Converting the Plex server from an LXC container to a VM was no small feat, but it was well worth the effort. I spent several hours meticulously configuring the VM and setting up GPU passthrough. Once everything was in place, I fired up Plex and was thrilled to see hardware transcoding working flawlessly once again. The difference in performance was like night and day, with smoother playback and reduced CPU load.
|
||||
|
||||
#### Conclusion:
|
||||
The transition from LXC to VM with GPU passthrough has revitalized my Plex server, ensuring seamless streaming experiences for users across the United States. With hardware transcoding back on track, remote streaming is once again smooth and reliable, regardless of the distance. Beyond Plex, this change underscores the significance of leveraging hardware acceleration and GPU passthrough for a wide range of services hosted on my server. From media streaming to collaborative projects and beyond, the improved performance enhances the overall user experience and reinforces the reliability of my server infrastructure.
|
||||
|
||||
#### Stay Tuned:
|
||||
As I continue to fine-tune my server setup and explore new technologies, including optimizations for remote streaming and enhancements to various hosted services, be sure to stay tuned for more updates and insights here at d@n tech. Whether you're a fellow tech enthusiast or a remote user enjoying the benefits of my server, there's always something new on the horizon.
|
||||
@@ -0,0 +1,21 @@
|
||||
---
|
||||
layout: post
|
||||
title: "when the coffee gets cold: recent adventures in my tech homelab"
|
||||
---
|
||||
|
||||
#### A Not-So-Smooth Brew: Plex VM Crash
|
||||
Just like the perfect cup of coffee, my Plex Media Server has always been a source of comfort. However, recently, it decided to give me a bit of a jolt. The Plex VM crashed, which felt like spilling a fresh brew all over the counter. Thankfully, no media was lost. But, just like trying to clean up a coffee spill, restoring the backup didn’t go as planned.
|
||||
|
||||
Instead of throwing in the towel, I rolled up my sleeves and rebuilt the VM from scratch. In the end, it was like discovering a new coffee blend – different, but better. I made some significant changes that improved the performance and reliability of the server. Sometimes, the best way to deal with a mess is to embrace the opportunity to improve.
|
||||
|
||||
#### Fresh Beans: Upgrading the Server
|
||||
In the quest for better performance, I decided it was time for a hardware upgrade. I purchased 8 Xeon Gold 6138 processors, two per node, and got one node up and running for testing. It was like upgrading from instant coffee to a high-end espresso machine. The server feels more powerful and ready to handle anything I throw at it.
|
||||
|
||||
However, before I can start moving my VMs, I need to invest in more RAM. For now, the new node is up and running, and I've tested moving VMs from Proxmox to XCP-NG. The process was smooth, with no issues – like making a seamless transition from drip coffee to a French press. Everything worked perfectly, setting the stage for future migrations.
|
||||
|
||||
#### Scheduled Downtime: Brewing the Perfect Cup
|
||||
As any coffee aficionado knows, good things take time. Similarly, my server setup will require some planned downtime in the last week of July into early August. While this might feel like waiting for your morning coffee to brew, I assure you it’s worth it. There will be no loss of data, although services will be temporarily impacted.
|
||||
|
||||
This downtime is necessary to ensure everything is running as smoothly as a freshly brewed cup of coffee. Once complete, my homelab will be stronger and more efficient, ready to serve up the tech equivalent of a perfect cup of joe.
|
||||
|
||||
Stay tuned for more updates from dustin.coffee. Until then, keep your coffee hot and your servers cool!
|
||||
@@ -0,0 +1,52 @@
|
||||
---
|
||||
layout: post
|
||||
title: "percolating ideas: my web dev adventure"
|
||||
---
|
||||
|
||||
|
||||
Creating a website is more than just coding; it’s about having a vision and bringing it to life. Recently, I embarked on an exciting web development adventure that was both personally and professionally fulfilling. Over the course of two weeks, I built a website for my friend, a dedicated mental health counselor, using HTML, CSS, Bootstrap, and PHP. Here’s a glimpse into my journey, from the initial brainstorming sessions to the final launch, and everything in between.
|
||||
|
||||
## The Inspiration Behind the Website
|
||||
|
||||
The foundation of this project was rooted in a profound purpose: to help my friend connect with individuals seeking mental health support. She had a clear vision for her website—a space that not only highlighted her counseling services but also provided resources, insights, and a sense of community. Understanding this, I was eager to turn her vision into a reality.
|
||||
|
||||
## Planning and Design: Laying the Groundwork
|
||||
|
||||
Every great project begins with a solid plan. We kicked things off with brainstorming sessions where my friend shared her ideas about the website’s content and structure. Together, we outlined the key pages:
|
||||
|
||||
- **About Page**: An introduction to my friend’s background and her approach to mental health counseling.
|
||||
- **Services Offered**: Detailed descriptions of the different counseling options available.
|
||||
- **Resource Hub**: A curated collection of articles, tips, and links to support mental well-being.
|
||||
- **Contact Form**: An easy-to-use form for potential clients to get in touch.
|
||||
|
||||
Using Bootstrap allowed me to create a responsive and visually appealing layout. The emphasis was on clarity and accessibility, ensuring that visitors could find what they needed without hassle.
|
||||
|
||||
## Development Process: Turning Ideas into Reality
|
||||
|
||||
My two-week development timeline was packed with creativity and learning. Here are some highlights from this adventure:
|
||||
|
||||
### Week 1: Structuring the Site
|
||||
|
||||
In the first week, I focused on the website’s foundational structure, employing HTML to set up content organization. CSS came next, allowing me to craft the aesthetic that matched my friend’s compassionate and professional tone. Bootstrap was instrumental during this phase, enabling a swift transition to a mobile-friendly design that adapts to various screen sizes.
|
||||
|
||||
### Week 2: Bringing Functionality to Life
|
||||
|
||||
With the structure in place, I sprinted into the second week, where I added PHP functionality for the contact form. This important feature would allow prospective clients to reach out without the hassle of dealing with their email accounts—a small yet significant convenience.
|
||||
|
||||
### Version Control: Keeping Track with GitHub
|
||||
|
||||
Track changes was a breeze thanks to GitHub. Every implementation and tweak was logged in the repository, which not only helped streamline development but also made it easier to involve my friend in the feedback loop. Iteration and collaboration became the backbone of our process, ensuring the final product was truly reflective of her vision.
|
||||
|
||||
## Hosting and Domain Setup: The Finishing Touches
|
||||
|
||||
Once we settled on the design and functionality, it was time to get the website online. I opted to host the site on a virtual machine (VM) within my own server. This gave me complete control over the hosting environment and security features.
|
||||
|
||||
For domain registration, we selected Cloudflare, known for its robust features and security enhancements. This decision meant that visitors would benefit from faster load times and improved site safety—important factors when dealing with sensitive topics like mental health.
|
||||
|
||||
## Conclusion: A Journey of Purpose
|
||||
|
||||
Building this website was more than a technical endeavor; it was an opportunity to contribute to a cause I truly believe in. Knowing that this platform can help connect individuals with the mental health support they need is immensely gratifying.
|
||||
|
||||
As my friend embarks on this new chapter of her practice, I’m excited to see how the website will grow and evolve. If you’re a mental health professional in need of an online presence or any kind of support to bring your ideas to fruition, remember: the journey may pose challenges, but the rewards are lasting.
|
||||
|
||||
This web dev adventure taught me that purpose drives creativity. Creating a meaningful website is not just an end goal; it’s a way to serve and connect with the community. Here’s to more adventures and the endless possibilities that come from percolating ideas!
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
layout: post
|
||||
title: "brewing up my homelab: new services, hardware, and monitoring magic"
|
||||
---
|
||||
|
||||
Hello fellow tech enthusiasts (and coffee lovers)!
|
||||
|
||||
As much as I enjoy a freshly brewed cup of coffee, there’s something equally satisfying about brewing up new capabilities in my homelab. Over the past few weeks, I’ve been busy adding some fresh services and hardware to keep my setup not just humming, but buzzing with efficiency and helpfulness. Whether you’re managing your own digital playground or just curious about what’s possible on a home scale, here’s what’s new on the docket — plus, the gear that’s making it all work.
|
||||
|
||||
## New Services: From Collaboration to Monitoring and Gaming
|
||||
|
||||
### Nextcloud-AIO – Saying Goodbye to Discord Dependence
|
||||
First up: I’ve integrated **Nextcloud-AIO** to replace our previous dependence on Discord for collaboration and file sharing. With the all-in-one Nextcloud setup, I’ve gained a self-hosted, privacy-respecting platform that handles chat, file sharing, calendar syncing, and more — all under my control. It’s the perfect homebrew alternative to relying on third-party cloud services.
|
||||
|
||||
### Grafana, Prometheus, and Telegraf – Monitoring Made Beautiful
|
||||
Monitoring is crucial, especially as my homelab grows in complexity. I’ve hooked up **Grafana**, **Prometheus**, and **Telegraf** to create a robust monitoring stack that tracks performance metrics and visualizes everything in sleek, coffee-black dashboards. From CPU temps to network throughput, now I can sip some espresso while stats gently pour in real time.
|
||||
|
||||
### Uptime Kuma – Watching Over My Homelab from the Cloud
|
||||
While my monitoring stack watches internal metrics, I also set up **Uptime Kuma** on my VPS to keep an eye on service availability from an external vantage point. Having an external health check ensures that I’m alerted if services go down when I’m away from home—because coffee breaks shouldn’t be interrupted by unexpected outages!
|
||||
|
||||
### WeddingShare – Celebrating with Friends
|
||||
On a more personal note, I deployed **WeddingShare** for a friend’s upcoming wedding. This open-source project is a fantastic way to collaboratively share photos and memories securely. Running it on my homelab feels great—using technology to enhance life’s special moments.
|
||||
|
||||
### Enshrouded Game Server – Because Play Is Important
|
||||
Lastly, I gave new life to my gaming side by spinning up an **Enshrouded game server**. After all, every techie needs downtime, and running a self-hosted game server keeps me connected with friends while enjoying some pixelated adventures.
|
||||
|
||||
## Upgrading the Hardware: Rack ’Em, Stack ’Em, and Speed ’Em Up
|
||||
|
||||
To support all these new services and keep things neat, I’ve invested in some solid hardware upgrades:
|
||||
|
||||
- **25U Rack** — Finally, my scattered gear is beautifully racked and organized. Nothing like a sturdy rack to keep cables tidy and airflow optimal.
|
||||
- **10Gb NICs for C6420** — High-speed networking is a must, so I equipped my C6420 with 10 Gigabit NICs. Moving data is faster than ever.
|
||||
- **NetApp DS4246** — Storage gets a big upgrade with this robust disk shelf, improving both capacity and reliability.
|
||||
- **NETGEAR GS724T v2 PROSAFE 24-Port Switch** — For all the 1Gb connections, this switch provides plenty of ports and solid management features.
|
||||
- **Rails for R720xd, C6420, and NetApp DS4246** — Proper mounting hardware makes installing and servicing equipment a breeze.
|
||||
|
||||
## Lessons Learned & What’s Next
|
||||
|
||||
Setting up all these components has been a rewarding challenge that reminds me why I love blending technology with a little caffeine-induced focus. With better monitoring, more control over collaboration, and robust hardware behind it, my homelab feels ready to handle just about anything I throw at it.
|
||||
|
||||
Looking ahead, I’m keen to explore containerizing more apps, automating backups, and maybe even dabbling in some home automation tied into this setup. And of course, keeping the coffee flowing remains a top priority.
|
||||
|
||||
---
|
||||
|
||||
If you’re running your own homelab or considering starting one, I hope this update sparks some ideas (and maybe convinces you to add a rack or two!). Feel free to reach out if you want details on how I set up any of these services or hardware.
|
||||
|
||||
Until next post — stay caffeinated and curious!
|
||||