feat: Ports all existing articles and images.

This commit is contained in:
2025-02-20 12:14:09 -05:00
parent e0fb6129ad
commit 67dc3540d6
151 changed files with 10413 additions and 1631 deletions

View File

@@ -68,50 +68,50 @@ job, overshadowing the intricate skill set and technical expertise required in..
<img alt="banner" src="http://localhost:3000/articles/images/2024-02-27-elevating-hvac.png"/>
<p>This is a guest post from my good friend, <strong>Ty Branaman</strong>.</p>
<h2>Introduction:</h2>
<p>Heating, Ventilation, and Air Conditioning (HVAC) is often mistakenly categorized as a simple labor<br />
job, overshadowing the intricate skill set and technical expertise required in this field. Labor<br />
jobs are also very important positions needed to keep society running. HVAC, like other skilled<br />
trades, demands a high level of knowledge, precision, and adaptability. This article aims to shed<br />
light on the misconception surrounding HVAC, emphasizing its status as a skilled trade that plays a<br />
<p>Heating, Ventilation, and Air Conditioning (HVAC) is often mistakenly categorized as a simple labor
job, overshadowing the intricate skill set and technical expertise required in this field. Labor
jobs are also very important positions needed to keep society running. HVAC, like other skilled
trades, demands a high level of knowledge, precision, and adaptability. This article aims to shed
light on the misconception surrounding HVAC, emphasizing its status as a skilled trade that plays a
pivotal role in creating comfortable and efficient living and working environments.</p>
<h2>Technical Proficiency:</h2>
<p>One of the defining features that distinguish HVAC as a skilled trade is the level of technical<br />
proficiency required. HVAC professionals must have a deep understanding of thermodynamics, fluid<br />
mechanics, electrical circuits, Psychrometrics and air properties. This knowledge is essential for<br />
<p>One of the defining features that distinguish HVAC as a skilled trade is the level of technical
proficiency required. HVAC professionals must have a deep understanding of thermodynamics, fluid
mechanics, electrical circuits, Psychrometrics and air properties. This knowledge is essential for
designing, installing, and maintaining HVAC systems that operate seamlessly and efficiently.</p>
<h2>System Design and Installation:</h2>
<p>HVAC professionals are involved in the intricate process of designing and installing heating,<br />
ventilation, and air conditioning systems. This task requires not only a thorough understanding of<br />
the physical principles governing HVAC but also the ability to tailor solutions to meet the unique<br />
needs of each space. Proper system design and installation are crucial for achieving optimal energy<br />
<p>HVAC professionals are involved in the intricate process of designing and installing heating,
ventilation, and air conditioning systems. This task requires not only a thorough understanding of
the physical principles governing HVAC but also the ability to tailor solutions to meet the unique
needs of each space. Proper system design and installation are crucial for achieving optimal energy
efficiency and performance.</p>
<h2>Diagnostic Skills:</h2>
<p>Troubleshooting and diagnosing issues in HVAC systems require a keen analytical mind and<br />
problem-solving skills. Skilled HVAC technicians possess the ability to identify and rectify<br />
problems efficiently, ensuring minimal downtime and disruption to the comfort of occupants. This<br />
<p>Troubleshooting and diagnosing issues in HVAC systems require a keen analytical mind and
problem-solving skills. Skilled HVAC technicians possess the ability to identify and rectify
problems efficiently, ensuring minimal downtime and disruption to the comfort of occupants. This
diagnostic acumen is a hallmark of a trade that goes beyond routine labor.</p>
<h2>Adaptability to Advanced Technologies:</h2>
<p>The HVAC industry is in a constant state of evolution, with new technologies and innovations<br />
continuously being introduced. Skilled HVAC professionals are adaptable and stay abreast of these<br />
advancements. From smart thermostats to energy-efficient systems, they integrate cutting-edge<br />
<p>The HVAC industry is in a constant state of evolution, with new technologies and innovations
continuously being introduced. Skilled HVAC professionals are adaptable and stay abreast of these
advancements. From smart thermostats to energy-efficient systems, they integrate cutting-edge
technologies to provide state-of-the-art solutions for their clients.</p>
<h2>Safety and Compliance:</h2>
<p>Safety is paramount in the HVAC trade. Professionals must adhere to strict safety protocols to<br />
protect both themselves and the occupants of the spaces they work in. Additionally, compliance with<br />
industry regulations and codes is a testament to the skilled nature of the trade, ensuring that HVAC<br />
<p>Safety is paramount in the HVAC trade. Professionals must adhere to strict safety protocols to
protect both themselves and the occupants of the spaces they work in. Additionally, compliance with
industry regulations and codes is a testament to the skilled nature of the trade, ensuring that HVAC
systems meet the highest standards of safety and efficiency.</p>
<h2>Continual Learning and Certification:</h2>
<p>Unlike a labor job, HVAC professionals engage in continual learning to stay current with industry<br />
trends and technological advancements. Many pursue certifications and attend training programs to<br />
enhance their skills and expand their knowledge base. This commitment to ongoing education is a<br />
<p>Unlike a labor job, HVAC professionals engage in continual learning to stay current with industry
trends and technological advancements. Many pursue certifications and attend training programs to
enhance their skills and expand their knowledge base. This commitment to ongoing education is a
hallmark of skilled trades.</p>
<h2>Conclusion:</h2>
<p>Heating, Ventilation, and Air Conditioning is undeniably a skilled trade that goes beyond the<br />
perception of a labor job. Labor jobs are also very important to the function of society and I have<br />
proudly done these jobs myself. The technical proficiency, problem-solving abilities, adaptability,<br />
and commitment to safety make HVAC professionals essential contributors to the creation of<br />
comfortable and efficient indoor environments. It is crucial to recognize and appreciate the skill<br />
set inherent in the HVAC trade, as it plays a vital role in shaping the quality of life for<br />
<p>Heating, Ventilation, and Air Conditioning is undeniably a skilled trade that goes beyond the
perception of a labor job. Labor jobs are also very important to the function of society and I have
proudly done these jobs myself. The technical proficiency, problem-solving abilities, adaptability,
and commitment to safety make HVAC professionals essential contributors to the creation of
comfortable and efficient indoor environments. It is crucial to recognize and appreciate the skill
set inherent in the HVAC trade, as it plays a vital role in shaping the quality of life for
individuals and the functionality of diverse spaces.</p>
<ul>
<li>Ty Branaman</li>
@@ -150,7 +150,6 @@ Programming, Home-Performance, and Building Science
</div>
<p>
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
<img alt="banner" src="http://localhost:3000/articles/images/2025-01-05-vapor-htmx-todo-app.png"/>
Build an example application using Vapor and HTMX.
</div></a>
</p>
@@ -164,7 +163,6 @@ Programming, Home-Performance, and Building Science
</div>
<p>
<a href="/articles/2024/free-as-in-freedom/"><div>
<img alt="banner" src="http://localhost:3000/articles/images/2024-04-09-free-as-in-freedom.png"/>
Salute to open-source software engineers
</div></a>
</p>
@@ -195,6 +193,12 @@ Programming, Home-Performance, and Building Science
|
<a href="mailto:michael@mhoush.com" rel="nofollow">Email</a>
</p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-core.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/keep-markup/prism-keep-markup.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js">
</script>
</div>
</body>
</html>

View File

@@ -62,67 +62,67 @@
<img alt="banner" src="http://localhost:3000/articles/images/2024-04-09-free-as-in-freedom.png"/>
<p>This is a hot take kind of article, but here it goes the rant.</p>
<h2>This applies to me and you.</h2>
<p>Im writing this to remind myself somethings that I too often take for granted. I am going to<br />
preface this whole article by saying that everything Im going to lay out / mention is something<br />
that I am personally guilty of. This is an open reminder and call out of things that I feel should<br />
<p>Im writing this to remind myself somethings that I too often take for granted. I am going to
preface this whole article by saying that everything Im going to lay out / mention is something
that I am personally guilty of. This is an open reminder and call out of things that I feel should
change.</p>
<h1>Our perspective is flawed</h1>
<p>Nobody can dispute that the advances in technology have greatly improved our lives. Like anything,<br />
<p>Nobody can dispute that the advances in technology have greatly improved our lives. Like anything,
though, there is a trade off.</p>
<h2>What is FOSS</h2>
<p>FOSS is an acronym for “Free and Open Source Software”. It is generally about how software is<br />
licensed, meaning that the source code is available in the public for review, allowing a broader<br />
spectrum of people than the originators of the code to have input, look for bugs, redistribute the<br />
software, contribute, etc. It does not however mean that the software should be no cost to the end<br />
<p>FOSS is an acronym for “Free and Open Source Software”. It is generally about how software is
licensed, meaning that the source code is available in the public for review, allowing a broader
spectrum of people than the originators of the code to have input, look for bugs, redistribute the
software, contribute, etc. It does not however mean that the software should be no cost to the end
user.</p>
<p>This is where the word “freedom” comes into it. Overtime, as a society, we generally now think of<br />
FOSS as “free” software. This takes what was originally a noble / courageous idea and devalues it to<br />
the point that we now expect things to be free. It encourages corporate greed to take advantage of<br />
people who created something to solve a particular need, or as a hobby, expecting the creator to<br />
handle the burden of maintaining / patching bugs while they profit from it. Dont get me wrong,<br />
these corporations will also contribute back, sometimes even donate money to the creators. I am not<br />
at all opposed to capitalism, nor saying that these corporations are in the wrong. At the end of the<br />
<p>This is where the word “freedom” comes into it. Overtime, as a society, we generally now think of
FOSS as “free” software. This takes what was originally a noble / courageous idea and devalues it to
the point that we now expect things to be free. It encourages corporate greed to take advantage of
people who created something to solve a particular need, or as a hobby, expecting the creator to
handle the burden of maintaining / patching bugs while they profit from it. Dont get me wrong,
these corporations will also contribute back, sometimes even donate money to the creators. I am not
at all opposed to capitalism, nor saying that these corporations are in the wrong. At the end of the
day, <strong><em>we</em></strong> created this problem.</p>
<h2>Current state and how we got here</h2>
<p>Software services / giants create applications that we come to rely on. They tempt / bait us with<br />
them being “free” or cheap, but that is because <strong><em>we</em></strong> are their target. They bloat the software<br />
with tracking and telemetry to capture data about us and sell us more products and services. Once<br />
again, if youre pro-capitalism, its somewhat hard to blame them for this. Were the gullible sheep<br />
<p>Software services / giants create applications that we come to rely on. They tempt / bait us with
them being “free” or cheap, but that is because <strong><em>we</em></strong> are their target. They bloat the software
with tracking and telemetry to capture data about us and sell us more products and services. Once
again, if youre pro-capitalism, its somewhat hard to blame them for this. Were the gullible sheep
who will blindly eat out their grain bins.</p>
<p>I can remember back in the day when there were music pirating services on the internet (napster is<br />
the one that comes to mind). As a giant music buff, I quickly jumped on board with services like<br />
these. Back in those days, I was young, didnt make very much money, so it was hard to afford the<br />
latest and greatest tunes. I also remember back in this time frame a lawsuit from the metal giants<br />
Metallica (others words not mine ;)). At the time I remember thinking, like many others, that<br />
Metallica didnt need the money, but then a comment from Lars Ulrich the bands drummer struck a<br />
cord with me (pun intended). Ill will paraphrase here, but it was something along the lines of<br />
“Were not pursuing this for us, but for all of those (musicians) that come after us”. After this<br />
<p>I can remember back in the day when there were music pirating services on the internet (napster is
the one that comes to mind). As a giant music buff, I quickly jumped on board with services like
these. Back in those days, I was young, didnt make very much money, so it was hard to afford the
latest and greatest tunes. I also remember back in this time frame a lawsuit from the metal giants
Metallica (others words not mine ;)). At the time I remember thinking, like many others, that
Metallica didnt need the money, but then a comment from Lars Ulrich the bands drummer struck a
cord with me (pun intended). Ill will paraphrase here, but it was something along the lines of
“Were not pursuing this for us, but for all of those (musicians) that come after us”. After this
and reflection, I decided that I would not pirate music anymore.</p>
<p>Fast forward, now the majority do not purchases music / albums, we typically utilize streaming<br />
services (myself included), sure it may be more fair to the artists than pirating was, it can be<br />
argued that its easier today for independent artists to become known / discovered, Im also in no<br />
way saying the old school music industry wasnt a giant pile of dog poo, but I am saying that who is<br />
<p>Fast forward, now the majority do not purchases music / albums, we typically utilize streaming
services (myself included), sure it may be more fair to the artists than pirating was, it can be
argued that its easier today for independent artists to become known / discovered, Im also in no
way saying the old school music industry wasnt a giant pile of dog poo, but I am saying that who is
really winning(?), its the Spotifys and Apple Musics of the world, thats who.</p>
<p>Im also reminded of the great “MeasureQuick is now charging for services” that happened in the HVAC<br />
industry. I have personally never complained and have always supported this decision, because it is<br />
not sustainable to run a software company and not charge for services, generally. Sure, you may not<br />
like their pricing model, etc. Where I think they went wrong was not charging from the beginning, as<br />
it sets the wrong expectation that is presumably hard to recover from. There are those who took some<br />
of Jims words / opinions in a way different from how I do / did, which is fine, were all entitled<br />
to our opinions. What is often forgotten is that were all also entitled to change those opinions.<br />
<p>Im also reminded of the great “MeasureQuick is now charging for services” that happened in the HVAC
industry. I have personally never complained and have always supported this decision, because it is
not sustainable to run a software company and not charge for services, generally. Sure, you may not
like their pricing model, etc. Where I think they went wrong was not charging from the beginning, as
it sets the wrong expectation that is presumably hard to recover from. There are those who took some
of Jims words / opinions in a way different from how I do / did, which is fine, were all entitled
to our opinions. What is often forgotten is that were all also entitled to change those opinions.
Heck, I will probably be shouting a different story tomorrow, so be it!</p>
<h2>Conclusion</h2>
<p>What I would like to encourage people to do is to support software development. If an application is<br />
free, but has a donate button consider giving a donation. If an application is free and they dont<br />
want to charge thats fine too, however I would say to be suspicous, meaning is it free because<br />
<p>What I would like to encourage people to do is to support software development. If an application is
free, but has a donate button consider giving a donation. If an application is free and they dont
want to charge thats fine too, however I would say to be suspicous, meaning is it free because
<strong><em>you</em></strong> are the product?!?</p>
<p>I would also encourage you to be active in communities and organizations that foster community (HVAC<br />
School is a great example). Show appreciation and encouragement, but at the same time dont be<br />
<p>I would also encourage you to be active in communities and organizations that foster community (HVAC
School is a great example). Show appreciation and encouragement, but at the same time dont be
afraid to be critical or speak up.</p>
<p>At the end of the day, I hope to lift up my brothers and sisters, help to fight against the<br />
<p>At the end of the day, I hope to lift up my brothers and sisters, help to fight against the
corporations who abuse the little guys and hopefully feel good about my decisions.</p>
<p>Over the last few weeks, I have been going through my software and services and looking for those<br />
donation buttons and giving back a little bit for the software that makes my life better. Help<br />
<p>Over the last few weeks, I have been going through my software and services and looking for those
donation buttons and giving back a little bit for the software that makes my life better. Help
change the narrative and remember that its about <strong><em>Freedom not Free</em></strong>.</p>
<h3>Links</h3>
<ul>
@@ -137,7 +137,7 @@ change the narrative and remember that its about <strong><em>Freedom not Free
<li><a href="https://themes.gohugo.io/themes/poison/">Hugo Theme</a></li>
</ul>
<blockquote>
<p><strong>Note:</strong> I do not use any trackers or analytics on this site to respect your privacy. So feel<br />
<p><strong>Note:</strong> I do not use any trackers or analytics on this site to respect your privacy. So feel
free to contact me directly to share feedback or let me know how Im doing.</p>
</blockquote>
</article>
@@ -174,7 +174,6 @@ Programming, Home-Performance, and Building Science
</div>
<p>
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
<img alt="banner" src="http://localhost:3000/articles/images/2025-01-05-vapor-htmx-todo-app.png"/>
Build an example application using Vapor and HTMX.
</div></a>
</p>
@@ -188,7 +187,6 @@ Programming, Home-Performance, and Building Science
</div>
<p>
<a href="/articles/2024/pgp-encryption-introduction/"><div>
<img alt="banner" src="http://localhost:3000/articles/images/2024-04-04-pgp-encryption-introduction.gif"/>
In this article I introduce PGP and show a use case for me, which perhaps you can use as well.
What is PGP
PGP stands for Pretty Good Privacy, it was first developed in 1991 by Phil Zimmermann. PGP uses
@@ -222,6 +220,12 @@ cryptographic privacy and authentication and is...
|
<a href="mailto:michael@mhoush.com" rel="nofollow">Email</a>
</p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-core.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/keep-markup/prism-keep-markup.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js">
</script>
</div>
</body>
</html>

View File

@@ -110,6 +110,12 @@ job, overshadowing the intricate skill set and technical expertise required in..
|
<a href="mailto:michael@mhoush.com" rel="nofollow">Email</a>
</p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-core.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/keep-markup/prism-keep-markup.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js">
</script>
</div>
</body>
</html>

View File

@@ -68,67 +68,67 @@ cryptographic privacy and authentication and is..." name="og:description"/>
<img alt="banner" src="http://localhost:3000/articles/images/2024-04-04-pgp-encryption-introduction.gif"/>
<p>In this article I introduce PGP and show a use case for me, which perhaps you can use as well.</p>
<h2>What is PGP</h2>
<p>PGP stands for <strong>Pretty Good Privacy</strong>, it was first developed in 1991 by Phil Zimmermann. PGP uses<br />
<p>PGP stands for <strong>Pretty Good Privacy</strong>, it was first developed in 1991 by Phil Zimmermann. PGP uses
cryptographic privacy and authentication and is generally used in data communication.</p>
<p>According to <a href="https://en.wikipedia.org/wiki/Pretty_Good_Privacy">Wikipedia</a> its name was inspired<br />
by a grocery store named, “Ralphs Pretty Goody Grocery” featured in radio hosts Garrison Keillors<br />
<p>According to <a href="https://en.wikipedia.org/wiki/Pretty_Good_Privacy">Wikipedia</a> its name was inspired
by a grocery store named, “Ralphs Pretty Goody Grocery” featured in radio hosts Garrison Keillors
fictional town of Lake Wobegon.</p>
<p>PGP is commonly used in software development to “sign” software commits or files to help ensure both<br />
<p>PGP is commonly used in software development to “sign” software commits or files to help ensure both
who the commits were from as well as make sure they were not modified from the original versions.</p>
<p>It should also be noted that when people say PGP they are often referring to OpenPGP or GnuPGP which<br />
<p>It should also be noted that when people say PGP they are often referring to OpenPGP or GnuPGP which
are implementations of the PGP standard protocol.</p>
<h2>What it does</h2>
<blockquote>
<p>Note: I am in no way a cyber-security expert, I am a layman and only describing things in terms<br />
<p>Note: I am in no way a cyber-security expert, I am a layman and only describing things in terms
that I understand / make sense to me. Do what I do at your own risk!</p>
</blockquote>
<p>PGP offers both symmetrical encryption (uses a session key and password) or asymmetrical encryption<br />
(uses a session key and a private key). Asymmetrical encryption is more secure but is more resource<br />
<p>PGP offers both symmetrical encryption (uses a session key and password) or asymmetrical encryption
(uses a session key and a private key). Asymmetrical encryption is more secure but is more resource
intensive (which is generally not a problem with computers of today).</p>
<p>Generally speaking PGP uses what are known as public and private key pairs. The public portion of<br />
the key par is meant to be shared with others freely, while the private portion needs to be secured<br />
/ not shared with anyone <strong>EVER</strong>. It is best practice to generate your keys on a computer that is<br />
“air gapped”, meaning it is not connected to any network / internet, and does not save a history of<br />
<p>Generally speaking PGP uses what are known as public and private key pairs. The public portion of
the key par is meant to be shared with others freely, while the private portion needs to be secured
/ not shared with anyone <strong>EVER</strong>. It is best practice to generate your keys on a computer that is
“air gapped”, meaning it is not connected to any network / internet, and does not save a history of
commands performed on it.</p>
<p>PGP encrypts data (files, messages, etc.) for one or more recipients, using the recipients public<br />
<p>PGP encrypts data (files, messages, etc.) for one or more recipients, using the recipients public
key. The recipients private key is required to decrypt the data once its been encrypted.</p>
<p>Your key pair is tied to your identity / person, generally by your name and email(s). The key can<br />
also have multiple “subkeys”, meaning that if you have more than one public email, alias, etc. it<br />
can be tied to your same private key. This is useful for example for work vs. activism vs. software<br />
<p>Your key pair is tied to your identity / person, generally by your name and email(s). The key can
also have multiple “subkeys”, meaning that if you have more than one public email, alias, etc. it
can be tied to your same private key. This is useful for example for work vs. activism vs. software
development.</p>
<p>Once your key is generated and your private key secured, you can share your public portion of the<br />
<p>Once your key is generated and your private key secured, you can share your public portion of the
key to a “keyserver” where other people can download it and verify messages were sent by you.</p>
<h2>Web of Trust</h2>
<p>PGP also uses what is called the <strong>“Web of Trust”</strong>, which is used to validate that messages are<br />
encrypted by a trusted source. There are different levels of trust depending on where a key is<br />
retrieved from. For example, if somebody gave you their public key in person and you were able to<br />
inspect that the identity matches their government id, then you can give it a higher trust level<br />
<p>PGP also uses what is called the <strong>“Web of Trust”</strong>, which is used to validate that messages are
encrypted by a trusted source. There are different levels of trust depending on where a key is
retrieved from. For example, if somebody gave you their public key in person and you were able to
inspect that the identity matches their government id, then you can give it a higher trust level
than one that is sent / retrieved from a keyserver.</p>
<p>My understanding of this portion is that over time your key is signed by others with their level of<br />
<p>My understanding of this portion is that over time your key is signed by others with their level of
certainty about you / your key, which over time increases the overall trust in your key.</p>
<h2>Out of the weeds</h2>
<p>Now that weve got an understanding of some of the technical aspects, lets talk about some real use<br />
<p>Now that weve got an understanding of some of the technical aspects, lets talk about some real use
cases of PGP encryption.</p>
<p>PGP encryption is used by some email clients / applications, such as<br />
<a href="https://canarymail.io/">Canary</a>,<br />
<a href="https://www.thunderbird.net/en-US/thunderbird/115.0/holidayeoy/">Thunderbird</a>, or<br />
<p>PGP encryption is used by some email clients / applications, such as
<a href="https://canarymail.io/">Canary</a>,
<a href="https://www.thunderbird.net/en-US/thunderbird/115.0/holidayeoy/">Thunderbird</a>, or
<a href="https://gpgtools.tenderapp.com/">GPGSuite</a>.</p>
<p>In my understanding, it is also what is used in devices such as a<br />
<p>In my understanding, it is also what is used in devices such as a
<a href="https://www.yubico.com/">YubiKey</a>.</p>
<p>Many of the mentioned applications allow for an easier interface / adoption, as one of the reasons<br />
<p>Many of the mentioned applications allow for an easier interface / adoption, as one of the reasons
it is not very popular is that it can be hard to use PGP for the average person.</p>
<p>Aside from using my PGP key for signing software commits, my major use case is for encrypting files<br />
that I store in a “cloud” provider. Know that when someone says the “cloud”, it is really just a<br />
computer (in reality a gang of computers in a data center). You are solely reliant that these cloud<br />
<p>Aside from using my PGP key for signing software commits, my major use case is for encrypting files
that I store in a “cloud” provider. Know that when someone says the “cloud”, it is really just a
computer (in reality a gang of computers in a data center). You are solely reliant that these cloud
providers are not snooping on, inspecting, or even selling your data.</p>
<p>Of course, some data may not be that sensitive, so maybe you dont care. However with a little bit<br />
of effort on your part you can at least make it very hard for anyone to know what is inside your<br />
documents. You can be in control of the way your items are encrypted and have confidence that nobody<br />
<p>Of course, some data may not be that sensitive, so maybe you dont care. However with a little bit
of effort on your part you can at least make it very hard for anyone to know what is inside your
documents. You can be in control of the way your items are encrypted and have confidence that nobody
but you can access what is inside your documents.</p>
<p>Heck, I even encrypt documents that are stored on my own network / computer so that if something<br />
<p>Heck, I even encrypt documents that are stored on my own network / computer so that if something
gets stolen or someone breachs my network they will not be able to easily get to sensitive data.</p>
<h2>Conclusion</h2>
<p>This article is just meant as an overview of PGP encryption. In future articles I will show you how<br />
<p>This article is just meant as an overview of PGP encryption. In future articles I will show you how
to use it to encrypt your data and be in control of your privacy.</p>
<h3>Resources</h3>
<ul>
@@ -171,7 +171,6 @@ Programming, Home-Performance, and Building Science
</div>
<p>
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
<img alt="banner" src="http://localhost:3000/articles/images/2025-01-05-vapor-htmx-todo-app.png"/>
Build an example application using Vapor and HTMX.
</div></a>
</p>
@@ -185,7 +184,6 @@ Programming, Home-Performance, and Building Science
</div>
<p>
<a href="/articles/2024/free-as-in-freedom/"><div>
<img alt="banner" src="http://localhost:3000/articles/images/2024-04-09-free-as-in-freedom.png"/>
Salute to open-source software engineers
</div></a>
</p>
@@ -216,6 +214,12 @@ Programming, Home-Performance, and Building Science
|
<a href="mailto:michael@mhoush.com" rel="nofollow">Email</a>
</p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-core.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/keep-markup/prism-keep-markup.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js">
</script>
</div>
</body>
</html>

View File

@@ -64,19 +64,19 @@ any warranty on your UNVR as we are using it for..." name="og:description"/>
</div>
</div>
<img alt="banner" src="http://localhost:3000/articles/images/2024-03-15-unvr-as-nas.png"/>
<p>In this post, Im going to show how to setup a Samba server on a Ubiquity UNVR so that it can be<br />
used as NAS (network attached storage). Be aware that this should be done with caution and may void<br />
any warranty on your UNVR as we are using it for purposes beyond its original intent. Its also<br />
possible that this setup will break when / if updating the UNVR software. With that said, lets jump<br />
<p>In this post, Im going to show how to setup a Samba server on a Ubiquity UNVR so that it can be
used as NAS (network attached storage). Be aware that this should be done with caution and may void
any warranty on your UNVR as we are using it for purposes beyond its original intent. Its also
possible that this setup will break when / if updating the UNVR software. With that said, lets jump
in.</p>
<p>This post follows along with<br />
<a href="https://www.reddit.com/r/Ubiquiti/comments/11o7v8l/how_to_use_the_unvr_as_a_nas_instructions/">this reddit post</a>,<br />
<p>This post follows along with
<a href="https://www.reddit.com/r/Ubiquiti/comments/11o7v8l/how_to_use_the_unvr_as_a_nas_instructions/">this reddit post</a>,
with some adaptations to get it to work on the latest Unifi-OS release of <code>3.2.12</code>.</p>
<h2>Step One - Setup SSH &amp; Login</h2>
<p>In your unifi network console you need to enable the <code>SSH</code> login option and set a secure password<br />
<p>In your unifi network console you need to enable the <code>SSH</code> login option and set a secure password
for the root user to login to the UNVR.</p>
<p><img src="/articles/images/2024-03-15-ssh.png" alt="ssh.png" /></p>
<p>Once that is complete you can login to your UNVR using your terminal and the IP address of your UNVR<br />
<p>Once that is complete you can login to your UNVR using your terminal and the IP address of your UNVR
on your network.</p>
<p><code>ssh root@192.168.1.10</code></p>
<h2>Step Two - Install Samba</h2>
@@ -85,14 +85,14 @@ on your network.</p>
<p>Next, install samba.</p>
<p><code>apt-get install samba</code></p>
<h2>Step Three - Setup Samba</h2>
<p>In order to edit the configuration we are going to need to install your terminal based text editor<br />
<p>In order to edit the configuration we are going to need to install your terminal based text editor
of choice (generally nano or vim), for me I will install vim.</p>
<p><code>apt-get install vim</code></p>
<p>Create a backup of the default configuration.</p>
<p><code>cp /etc/samba/smb.conf /etc/samba/smb.conf.bak</code></p>
<p>Open the configuration file to be edited.</p>
<p><code>vim /etc/samba/smb.conf</code></p>
<p>Just above the <code>Share Definitions</code> section of the configuration, I added some global settings to<br />
<p>Just above the <code>Share Definitions</code> section of the configuration, I added some global settings to
make the samba server act better for time machine backups.</p>
<pre><code>#======================= MacOS Client Optimizations =======================
vfs objects = fruit streams_xattr
@@ -105,11 +105,11 @@ fruit:wipe_intentionally_left_blank_rfork = yes
fruit:delete_empty_adfiles = yes
</code></pre>
<p>Also because we want users we create to be able to read and write to their home directories created<br />
on the samba server, we need to change the option under the <code>[homes]</code> share definition to be<br />
<p>Also because we want users we create to be able to read and write to their home directories created
on the samba server, we need to change the option under the <code>[homes]</code> share definition to be
<code>read only = no</code>.</p>
<p>That is our primary configuration. You can add more share definitions at the bottom of the file to<br />
suit your use case, there are decent examples of this in the original reddit post, linked in the<br />
<p>That is our primary configuration. You can add more share definitions at the bottom of the file to
suit your use case, there are decent examples of this in the original reddit post, linked in the
beginning.</p>
<p>Save and exit the file.</p>
<p><code>:wq</code></p>
@@ -130,13 +130,13 @@ beginning.</p>
<p>In the <code>Finder</code> app on macOS you can type <code>⌘k</code> to connect to a server.</p>
<p>In the text field enter <code>smb://&lt;USER&gt;@&lt;UNVR_IP&gt;</code> to connect to the samba server.</p>
<p><img src="/articles/images/2024-03-15-connect.png" alt="connect" /></p>
<p>You can also automatically connect to the server when you login to your client device, for this to<br />
work you need the credentials to be stored in your keychain (ticking the box in the step above when<br />
<p>You can also automatically connect to the server when you login to your client device, for this to
work you need the credentials to be stored in your keychain (ticking the box in the step above when
you first connect to the server).</p>
<p>This is found in <code>System Settings -&gt; General -&gt; Login Items -&gt; Open at Login</code>. Click the plus button<br />
<p>This is found in <code>System Settings -&gt; General -&gt; Login Items -&gt; Open at Login</code>. Click the plus button
and select the volume you would like to mount at login.</p>
<p><img src="/articles/images/2024-03-15-login.png" alt="login" /></p>
<p>Once you have it setup so that the server is connected on login, you can also set it up as location<br />
<p>Once you have it setup so that the server is connected on login, you can also set it up as location
for Time Machine Backups. <code>System Settings -&gt; General -&gt; Time Machine</code></p>
<p><img src="/articles/images/2024-03-15-time-machine.png" alt="time-machine" /></p>
</article>
@@ -173,7 +173,6 @@ Programming, Home-Performance, and Building Science
</div>
<p>
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
<img alt="banner" src="http://localhost:3000/articles/images/2025-01-05-vapor-htmx-todo-app.png"/>
Build an example application using Vapor and HTMX.
</div></a>
</p>
@@ -187,7 +186,6 @@ Programming, Home-Performance, and Building Science
</div>
<p>
<a href="/articles/2024/free-as-in-freedom/"><div>
<img alt="banner" src="http://localhost:3000/articles/images/2024-04-09-free-as-in-freedom.png"/>
Salute to open-source software engineers
</div></a>
</p>
@@ -218,6 +216,12 @@ Programming, Home-Performance, and Building Science
|
<a href="mailto:michael@mhoush.com" rel="nofollow">Email</a>
</p>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-core.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/keep-markup/prism-keep-markup.min.js">
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js">
</script>
</div>
</body>
</html>