feat: Ports all existing articles and images.
This commit is contained in:
@@ -66,36 +66,36 @@ refrigerant charge losses. It should be noted that this is not true for..." name
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-09-19-calculate-seer-degradation-by-age.png"/>
|
||||
<p>This is a quick tech-tip to learn how to calculate the degradation of SEER based<br />
|
||||
<p>This is a quick tech-tip to learn how to calculate the degradation of SEER based
|
||||
on age.</p>
|
||||
<p>The degradation of SEER is due to fouling of the evaporator coil with dirt and<br />
|
||||
refrigerant charge losses. It should be noted that this is not true for all<br />
|
||||
applications, but is used as an estimation based on research done by the <code>DOE</code><br />
|
||||
<p>The degradation of SEER is due to fouling of the evaporator coil with dirt and
|
||||
refrigerant charge losses. It should be noted that this is not true for all
|
||||
applications, but is used as an estimation based on research done by the <code>DOE</code>
|
||||
of the average degradation based on systems tested.</p>
|
||||
<h2>Formula</h2>
|
||||
<p>This is the formula used to calculate the SEER based on age of the evaporator<br />
|
||||
<p>This is the formula used to calculate the SEER based on age of the evaporator
|
||||
coil / air handler.</p>
|
||||
<p>$$ SEER_d = SEER_n \times (1 - M)^{age} $$</p>
|
||||
<p>| Where | |<br />
|
||||
| –––– | —————————————— | — |<br />
|
||||
| $SEER_d$ | Degradated SEER rating |<br />
|
||||
| $SEER_n$ | Nominal SEER rating when equipment was new | |<br />
|
||||
| M | Maintenance factor, 0.01-0.03 |<br />
|
||||
<p>| Where | |
|
||||
| –––– | —————————————— | — |
|
||||
| $SEER_d$ | Degradated SEER rating |
|
||||
| $SEER_n$ | Nominal SEER rating when equipment was new | |
|
||||
| M | Maintenance factor, 0.01-0.03 |
|
||||
| age | The age of the equipment, in years |</p>
|
||||
<p>The maintenance factor of 0.01 is for expertly maintained equipment and 0.03 is<br />
|
||||
for unmaintained. The maintenance factor in essence is based on 1%-3%<br />
|
||||
degradation per year, however there are some<br />
|
||||
<a href="https://publications.energyresearch.ucf.edu/wp-content/uploads/2018/09/FSEC-PF-474-18.pdf">studies</a><br />
|
||||
that show that this can actually be as high as 5% or above depending on climate.<br />
|
||||
We could use up to 0.05 as the maintenance factor, just to see what the “range”<br />
|
||||
<p>The maintenance factor of 0.01 is for expertly maintained equipment and 0.03 is
|
||||
for unmaintained. The maintenance factor in essence is based on 1%-3%
|
||||
degradation per year, however there are some
|
||||
<a href="https://publications.energyresearch.ucf.edu/wp-content/uploads/2018/09/FSEC-PF-474-18.pdf">studies</a>
|
||||
that show that this can actually be as high as 5% or above depending on climate.
|
||||
We could use up to 0.05 as the maintenance factor, just to see what the “range”
|
||||
of degradation would be.</p>
|
||||
<p>Interestingly, the study linked also shows that the degradation is higher the<br />
|
||||
higher the tonnage of the equipment. It also shows that the degradation is lower<br />
|
||||
per year the higher the nominal SEER rating of the system (which is corelated to<br />
|
||||
using TXV’s and lower airflow rates because of the equipment having multiple<br />
|
||||
<p>Interestingly, the study linked also shows that the degradation is higher the
|
||||
higher the tonnage of the equipment. It also shows that the degradation is lower
|
||||
per year the higher the nominal SEER rating of the system (which is corelated to
|
||||
using TXV’s and lower airflow rates because of the equipment having multiple
|
||||
stages).</p>
|
||||
<h2>Example</h2>
|
||||
<p>Let’s consider that we have a 13 SEER piece of equipment that was matched when<br />
|
||||
<p>Let’s consider that we have a 13 SEER piece of equipment that was matched when
|
||||
installed and the system is 15 years old.</p>
|
||||
<p>Plugging those numbers into our formula.</p>
|
||||
<hr />
|
||||
@@ -105,8 +105,8 @@ installed and the system is 15 years old.</p>
|
||||
<h4>Highest Rage (5% degradation / year)</h4>
|
||||
<p>$$ SEER_d = 13 \times (1 - 0.05)^{15} = 6 $$</p>
|
||||
<hr />
|
||||
<p>An expertly maintained system may not have degraded that much, with an 11.2 SEER<br />
|
||||
vs. a poorly maintained / dirty system that also suffers from refrigerant charge<br />
|
||||
<p>An expertly maintained system may not have degraded that much, with an 11.2 SEER
|
||||
vs. a poorly maintained / dirty system that also suffers from refrigerant charge
|
||||
losses can be as low as 6 SEER.</p>
|
||||
<p>Thanks for learning how to estimate SEER degradation based on equipment age!</p>
|
||||
</article>
|
||||
@@ -143,7 +143,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>
|
||||
@@ -157,7 +156,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>
|
||||
@@ -188,6 +186,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>
|
||||
@@ -64,52 +64,52 @@ online interactions is tone and other subtleties..." name="og:description"/>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-12-12-cancel-this.gif"/>
|
||||
<p>This post is going to be hard to put into words, it’s going to seem egotistical at points, but know<br />
|
||||
that my actions / feelings online are the same as they are if you met me in person. The problem with<br />
|
||||
online interactions is tone and other subtleties do not come across, so it’s hard to tell when<br />
|
||||
<p>This post is going to be hard to put into words, it’s going to seem egotistical at points, but know
|
||||
that my actions / feelings online are the same as they are if you met me in person. The problem with
|
||||
online interactions is tone and other subtleties do not come across, so it’s hard to tell when
|
||||
someone is joking or being serious.</p>
|
||||
<h2>The Meat</h2>
|
||||
<p>It has been brought to my attention that someone out there thinks that I’m sexist and should not<br />
|
||||
speak at the HVAC School symposium because of it. They are holding a curse word against me that I<br />
|
||||
said two years ago, in the moment A) it was fitting and B) it was one of those times that my mouth<br />
|
||||
<p>It has been brought to my attention that someone out there thinks that I’m sexist and should not
|
||||
speak at the HVAC School symposium because of it. They are holding a curse word against me that I
|
||||
said two years ago, in the moment A) it was fitting and B) it was one of those times that my mouth
|
||||
was working faster than my brain (raise your hand if that’s ever happened to you).</p>
|
||||
<p>I am an open book, I am not afraid of showing failures and strengths. I’ve never claimed to be<br />
|
||||
perfect (well, actually I have but it’s always a joke). I’m not at all condoning what I’ve said in<br />
|
||||
the past, nor will I repeat it out of context now, but I communicate with people like adults and I<br />
|
||||
look at people as piers. We do not always have to agree with one another, conflict helps us learn<br />
|
||||
where to grow, but we also can not expect people to change to fit our wants / needs, that’s just not<br />
|
||||
<p>I am an open book, I am not afraid of showing failures and strengths. I’ve never claimed to be
|
||||
perfect (well, actually I have but it’s always a joke). I’m not at all condoning what I’ve said in
|
||||
the past, nor will I repeat it out of context now, but I communicate with people like adults and I
|
||||
look at people as piers. We do not always have to agree with one another, conflict helps us learn
|
||||
where to grow, but we also can not expect people to change to fit our wants / needs, that’s just not
|
||||
how it works.</p>
|
||||
<p>I do not at all agree with the tactics used by whomever is behind this. I would happily discuss this<br />
|
||||
in private or out in the open. You can find all my contact / social information in the sidebar of<br />
|
||||
this website and I’ve offered up my cell phone number in private groups that we are all probably a<br />
|
||||
<p>I do not at all agree with the tactics used by whomever is behind this. I would happily discuss this
|
||||
in private or out in the open. You can find all my contact / social information in the sidebar of
|
||||
this website and I’ve offered up my cell phone number in private groups that we are all probably a
|
||||
part of.</p>
|
||||
<h2>The Potatoes</h2>
|
||||
<p>I am a father of 3 girls, I have a sister, talk crap about my mom and you’ll find out who I am! I<br />
|
||||
love women, I have no problem with women in the trades, I encourage women who are in the trades. I<br />
|
||||
try to help every person that I can, if I can. I have failed more times than you can imagine! I am<br />
|
||||
self taught in about everything I do, so I give of it freely. I have all kinds of work to do to grow<br />
|
||||
into the man that I should be, but at the same time, I am not afraid to be the man that I am today.<br />
|
||||
<p>I am a father of 3 girls, I have a sister, talk crap about my mom and you’ll find out who I am! I
|
||||
love women, I have no problem with women in the trades, I encourage women who are in the trades. I
|
||||
try to help every person that I can, if I can. I have failed more times than you can imagine! I am
|
||||
self taught in about everything I do, so I give of it freely. I have all kinds of work to do to grow
|
||||
into the man that I should be, but at the same time, I am not afraid to be the man that I am today.
|
||||
I will greet you by whatever pronoun you want to be referred as.</p>
|
||||
<p>I would love to say that I don’t judge people, but I do, just as I’m being judged! I am fine with<br />
|
||||
someone judging me and having opinions about me, I mean that is our right. I will not say that<br />
|
||||
person is wrong, because in their mind they’re right. What I will not do is stop being myself. I<br />
|
||||
know for a fact that I’ve helped more people than this person has gotten “cancelled”. I will<br />
|
||||
continue to help people in the trades, homeowners, or people in need. I also will not remain quiet!<br />
|
||||
I will give my opinion like it or not. There are people in my corner that really know me and my<br />
|
||||
<p>I would love to say that I don’t judge people, but I do, just as I’m being judged! I am fine with
|
||||
someone judging me and having opinions about me, I mean that is our right. I will not say that
|
||||
person is wrong, because in their mind they’re right. What I will not do is stop being myself. I
|
||||
know for a fact that I’ve helped more people than this person has gotten “cancelled”. I will
|
||||
continue to help people in the trades, homeowners, or people in need. I also will not remain quiet!
|
||||
I will give my opinion like it or not. There are people in my corner that really know me and my
|
||||
intentions.</p>
|
||||
<h2>Final Words</h2>
|
||||
<p>The trades are rough around the edges, just as am I. The trades are a slow turning ship (just look<br />
|
||||
at how many still do not follow proper practices, etc. even with the capabilities and resources<br />
|
||||
<p>The trades are rough around the edges, just as am I. The trades are a slow turning ship (just look
|
||||
at how many still do not follow proper practices, etc. even with the capabilities and resources
|
||||
available today).</p>
|
||||
<p>If you are new / coming into the trades then I hope you are not overly sensitive to foul language<br />
|
||||
and other inappropriate comments. Thick skin is valuable in the trades, but at the same time don’t<br />
|
||||
be afraid to speak up if something offends you. Remember we are adults, we can handle disagreements<br />
|
||||
like adults (well, some of us can). Adults can learn from those of any age, they can reflect on<br />
|
||||
<p>If you are new / coming into the trades then I hope you are not overly sensitive to foul language
|
||||
and other inappropriate comments. Thick skin is valuable in the trades, but at the same time don’t
|
||||
be afraid to speak up if something offends you. Remember we are adults, we can handle disagreements
|
||||
like adults (well, some of us can). Adults can learn from those of any age, they can reflect on
|
||||
their own behavior and make their own decisions.</p>
|
||||
<p>I personally think that being offended is not a bad thing, it causes us to reflect / repair our<br />
|
||||
foundational beliefs. I hope that we can stop with this “cancel culture” of today, stop hiding<br />
|
||||
<p>I personally think that being offended is not a bad thing, it causes us to reflect / repair our
|
||||
foundational beliefs. I hope that we can stop with this “cancel culture” of today, stop hiding
|
||||
behind a keyboard, and be a diverse community.</p>
|
||||
<p>To wrap things up, I just want to reiterate that I am not at all mad at whomever is behind this. To<br />
|
||||
<p>To wrap things up, I just want to reiterate that I am not at all mad at whomever is behind this. To
|
||||
everyone out there who has shown me love and support, I greatly appreciate it.</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
@@ -145,7 +145,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>
|
||||
@@ -159,7 +158,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>
|
||||
@@ -190,6 +188,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>
|
||||
266
deploy/articles/2023/coil-bypass-overview/index.html
Normal file
266
deploy/articles/2023/coil-bypass-overview/index.html
Normal file
@@ -0,0 +1,266 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="#0e1112" media="(prefers-color-scheme: dark)" name="theme-color"/>
|
||||
<meta content="#566B78" media="(prefers-color-scheme: light)" name="theme-color"/>
|
||||
<meta content="Michael Housh" name="author"/>
|
||||
<meta content="Mhoush" name="apple-mobile-web-app-title"/>
|
||||
<meta content="initial-scale=1.0, width=device-width" name="viewport"/>
|
||||
<meta content="telephone=no" name="format-detection"/>
|
||||
<meta content="True" name="HandheldFriendly"/>
|
||||
<meta content="320" name="MobileOptimized"/>
|
||||
<meta content="Mhoush" name="og:site_name"/>
|
||||
<meta content="hvac, developer, swift, home-performance, design" name="keywords"/>
|
||||
<title>
|
||||
mhoush: Coil Bypass Overview
|
||||
</title>
|
||||
<link href="/static/favicon.ico" rel="shortcut icon"/>
|
||||
<link href="/static/output.css" rel="stylesheet"/>
|
||||
<link href="/static/style.css" rel="stylesheet"/>
|
||||
<link href="/articles/feed.xml" rel="alternate" title="mhoush" type="application/rss+xml"/>
|
||||
<link href="/static/prism.css" rel="stylesheet"/>
|
||||
<meta content="This is the first article in a series that explores the idea of a coil bypass strategy in an HVAC system. This article introduces you to a
|
||||
coil bypass strategy at a high level, future posts will dive deeper into the features, benefits, as well as the..." name="description"/>
|
||||
<meta content="summary_large_image" name="twitter:card"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-08-10-coil-bypass-overview.png" name="twitter:image"/>
|
||||
<meta content="Coil Bypass Overview" name="twitter:image:alt"/>
|
||||
<meta content="http://localhost:3000/articles/images//articles/2023/coil-bypass-overview/" name="og:url"/>
|
||||
<meta content="Coil Bypass Overview" name="og:title"/>
|
||||
<meta content="This is the first article in a series that explores the idea of a coil bypass strategy in an HVAC system. This article introduces you to a
|
||||
coil bypass strategy at a high level, future posts will dive deeper into the features, benefits, as well as the..." name="og:description"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-08-10-coil-bypass-overview.png" name="og:image"/>
|
||||
<meta content="1014" name="og:image:width"/>
|
||||
<meta content="530" name="og:image:height"/>
|
||||
<script crossorigin="anonymous" src="https://kit.fontawesome.com/f209982030.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-page text-white pb-5 font-avenir articles">
|
||||
<header class="bg-nav text-gray py-4 text-base/6 lg:fixed w-full lg:h-[62px]">
|
||||
<nav class="container flex gap-x-5 lg:gap-x-y items-center">
|
||||
<ul class="flex flex-wrap gap-x-2 lg:gap-x-5">
|
||||
<li>
|
||||
<a class href="/">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="active" href="/articles/">Articles</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class href="/about/">About</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container pt-12 lg:pt-28">
|
||||
<article class="prose">
|
||||
<h1>
|
||||
Coil Bypass Overview
|
||||
</h1>
|
||||
<div class="-mt-6">
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">August 10, 2023</span>1010 words, posted in <a href="/articles/tag/hvac/">HVAC</a> and <a href="/articles/tag/design/">design</a>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-08-10-coil-bypass-overview.png"/>
|
||||
<p>This is the first article in a series that explores the idea of a coil bypass strategy in an HVAC system. This article introduces you to a
|
||||
coil bypass strategy at a high level, future posts will dive deeper into the features, benefits, as well as the challenges of this style of
|
||||
system.</p>
|
||||
<h2>What is a Coil Bypass</h2>
|
||||
<p>A coil bypass is not to be mistaken for a zoning system bypass, where airflow is “relieved” from the supply side of the system back into the
|
||||
return. Instead, a coil bypass diverts a portion of the airflow around the coil using a bypass damper(s). The bypass can serve several
|
||||
functions depending on the application, but in general it allows for a constant volume of air to be delivered to the space while the output
|
||||
of the coil can be shifted towards more or less dehumidification. In other words, it decouples the total system airflow from the coil
|
||||
airflow.</p>
|
||||
<p>The bypassed air mixes with the supply air stream to act as a reheat source, however unlike a typical reheat source it does not add more
|
||||
sensible load to the structure, instead it just brings the supply air temperature closer to the existing home’s temperature while still
|
||||
covering the latent and sensible loads of the home. A warmer duct system reduces the losses of the duct to unconditioned spaces as well as
|
||||
reduces the risk for duct condensation.</p>
|
||||
<p>The coil bypass strategy, as far as I know, was pioneered by <a href="https://www.linkedin.com/in/harry-boody-9b8a4366/">Harry Boody</a> of Energy
|
||||
Innovations and Scientific Environmental Design, Inc. However their websites are no longer active, so I’m not sure if they are still active
|
||||
in the HVAC design space or not.</p>
|
||||
<h2>The Problem</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Why</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Question</td>
|
||||
<td>Why would we want to utilize a strategy such as the coil bypass?</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Answer</td>
|
||||
<td>Improved indoor air quality (IAQ)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>ASHRAE’s recommandation for the amount of air changes per hour (ACH) in a residential structure to be in the range of 3-5 ACH, and in
|
||||
general the higher the better, along with a MERV 13+ filter. In some / most cases the system airflow does not meet that criteria, especially
|
||||
low load homes or high volume homes.</p>
|
||||
<p>For example, let’s imagine a single story ranch home that is 2,500 square feet with 9 foot ceilings. This home is relatively tight
|
||||
construction and after doing the heating and cooling loads we’ve selected a 2.5 Ton system for this home. It is located in a green grass
|
||||
climate that needs some priority on dehumidification and requires an airflow of 350 CFM/Ton (875 CFM).</p>
|
||||
<p>We determine the volume of the conditioned space.</p>
|
||||
<p>2,500 x 9 = 22,500 ft^3</p>
|
||||
<p><img src="/articles/images/2023-08-10-volume-equation.png" alt="volume-equation" /></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><strong>Where:</strong></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>V</strong></td>
|
||||
<td><em>is the volume of the home</em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>ACH</strong></td>
|
||||
<td><em>is the desired air changes per hour</em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>60</strong></td>
|
||||
<td><em>conversion from hours to minutes</em></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>Below is a table of the required CFM to meet the different air changes per hour.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th align="center">CFM</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>(22,500 x 3)/60</td>
|
||||
<td align="center"><strong><em>1,125 @ 3 ACH</em></strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>(22,500 x 4)/60</td>
|
||||
<td align="center"><strong><em>1,500 @ 4 ACH</em></strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>(22,500 x 5)/60</td>
|
||||
<td align="center"><strong><em>1,875 @ 5 ACH</em></strong></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>As you can see we have a discrepency of meeting even the low end of 3 ACH. The high end of 5 ACH is over 2x the airflow for our 2.5 Ton
|
||||
system. The coil bypass strategy is one viable way, by decoupling the total system airflow from the coil airflow without, which eliminates
|
||||
the need of an auxilary fan / system that circulates air through some sort of filtration system.</p>
|
||||
<h3>Multi-Stage Systems</h3>
|
||||
<p>A challenge with multi-stage systems, even when sized properly, is that we often run at part-load conditions, and spend the majority of the
|
||||
time in lower stages. The lower stages often do worse at dehumidification than when running at full load.</p>
|
||||
<p>When the equipment runs in lower stages on a traditional system the total system airflow is reduced even further from the recommended air
|
||||
changes per hour. This reduced airflow also causes the throw of the air from the registers to be reduced which can lead to increased odds of
|
||||
stratification, poor air mixing, and increased potential for poor mean radiant temperatures (MRT) of the surfaces. The decreased airflow in
|
||||
low stages, lowers the velocity in the duct system, while low velocity is not a concern, it does increase the duct gains and increase the
|
||||
possibility of condensation on the ducts when they’re located outside of the thermal envelope of the building.</p>
|
||||
<p>Let’s imagine we have a duct system that has high wall registers located in a soffit at the interior wall that moves 100 CFM and we are
|
||||
trying to throw the air to the exterior wall which includes a window. The wall is @ 12 feet from the register. We’ve selected a register
|
||||
that meets the criteria, at high stage airflow it has a throw of 11.5 feet (shown as the green rectangle). When the system runs in low
|
||||
stage, the airflow is reduced to 70% of high stage (70 CFM), which would give us a throw from the register of @ 7 feet (shown as the red
|
||||
rectangle).</p>
|
||||
<p><img src="/articles/images/2023-08-10-register-throw.png" alt="register-throw" /></p>
|
||||
<p>The reduced flow through the register causes the air to only make it about 60% across the room before reaching it’s terminal velocity, which
|
||||
can cause the room to feel uncomfortable since the air never reaches the exterior wall and window.</p>
|
||||
<p>By decoupling the fan from the coil airflow it is possible to run in low stages, still have adequate dehumidification performance out of the
|
||||
system, and achieve the proper throw from the registers.</p>
|
||||
<h2>Conclusion</h2>
|
||||
<p>In this article we’ve begun to scratch the surface of what a coil bypass strategy is in an HVAC system, as well as some of the challenges
|
||||
that it can help solve. We’ve learned about why we may desire to decouple the total system airflow from the coil airflow.</p>
|
||||
<p>In future articles we will continue to explore some of the features, benefits, and challenges presented by such a strategy.</p>
|
||||
<h2>Related Resources</h2>
|
||||
<p><a href="https://hvacrschool.com/bypass-dehumidification-airflow-hvac-design/">HVAC School - Bypass Dehumidification / Airflow HVAC Design</a></p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
Written by
|
||||
</h2>
|
||||
<div class="flex flex-col lg:flex-row gap-8">
|
||||
<div class="flex-[0_0_120px]">
|
||||
<img class="w-[120px] h-[120px] rounded-full" src="/static/images/avatar.png"/>
|
||||
</div>
|
||||
<div class="prose">
|
||||
<h3 class="!m-0">
|
||||
Michael Housh
|
||||
</h3>
|
||||
<p class="text-gray">
|
||||
HVAC business owner with over 27 years of experience. Writes articles about HVAC,
|
||||
Programming, Home-Performance, and Building Science
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
More articles
|
||||
</h2>
|
||||
<div class="grid lg:grid-cols-2 gap-10">
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2025/vapor-htmx-todo-app/">Vapor + HTMX</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">January 05, 2025</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
|
||||
Build an example application using Vapor and HTMX.
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2024/free-as-in-freedom/">Free As In Freedom</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">April 09, 2024</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/open-source/">open-source</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2024/free-as-in-freedom/"><div>
|
||||
Salute to open-source software engineers
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<p class="prose mt-8">
|
||||
<a href="/articles/">› See all articles</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
Copyright © Michael Housh 2023-2025.
|
||||
</p>
|
||||
<p>
|
||||
Built in Swift using
|
||||
<a href="https://github.com/loopwerk/Saga" rel="nofollow" target="_blank">Saga</a>
|
||||
(<a href="https://github.com/m-housh/mhoush.com" rel="nofollow" target="_blank">source</a>).
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://localhost:3000/articles/feed.xml" rel="nofollow" target="_blank">RSS</a>
|
||||
|
|
||||
<a href="https://github.com/m-housh" rel="nofollow" target="_blank">Github</a>
|
||||
|
|
||||
<a href="https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA" rel="nofollow" target="_blank">Youtube</a>
|
||||
|
|
||||
<a href="https://www.facebook.com/michael.housh" rel="nofollow" target="_blank">Facebook</a>
|
||||
|
|
||||
<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>
|
||||
@@ -0,0 +1,264 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="#0e1112" media="(prefers-color-scheme: dark)" name="theme-color"/>
|
||||
<meta content="#566B78" media="(prefers-color-scheme: light)" name="theme-color"/>
|
||||
<meta content="Michael Housh" name="author"/>
|
||||
<meta content="Mhoush" name="apple-mobile-web-app-title"/>
|
||||
<meta content="initial-scale=1.0, width=device-width" name="viewport"/>
|
||||
<meta content="telephone=no" name="format-detection"/>
|
||||
<meta content="True" name="HandheldFriendly"/>
|
||||
<meta content="320" name="MobileOptimized"/>
|
||||
<meta content="Mhoush" name="og:site_name"/>
|
||||
<meta content="hvac, developer, swift, home-performance, design" name="keywords"/>
|
||||
<title>
|
||||
mhoush: Free quotes != good
|
||||
</title>
|
||||
<link href="/static/favicon.ico" rel="shortcut icon"/>
|
||||
<link href="/static/output.css" rel="stylesheet"/>
|
||||
<link href="/static/style.css" rel="stylesheet"/>
|
||||
<link href="/articles/feed.xml" rel="alternate" title="mhoush" type="application/rss+xml"/>
|
||||
<link href="/static/prism.css" rel="stylesheet"/>
|
||||
<meta content="I found myself re-reading the
|
||||
ACCA Quality Installation Standard
|
||||
recently and it got me thinking about the industries tendency of offering free quotes. In this article, I’d like to just focus in on the
|
||||
items that are required as what I’m calling..." name="description"/>
|
||||
<meta content="summary_large_image" name="twitter:card"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-10-04-free-quotes-are-bad-for-the-industry.png" name="twitter:image"/>
|
||||
<meta content="Free quotes != good" name="twitter:image:alt"/>
|
||||
<meta content="http://localhost:3000/articles/images//articles/2023/free-quotes-are-bad-for-the-industry/" name="og:url"/>
|
||||
<meta content="Free quotes != good" name="og:title"/>
|
||||
<meta content="I found myself re-reading the
|
||||
ACCA Quality Installation Standard
|
||||
recently and it got me thinking about the industries tendency of offering free quotes. In this article, I’d like to just focus in on the
|
||||
items that are required as what I’m calling..." name="og:description"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-10-04-free-quotes-are-bad-for-the-industry.png" name="og:image"/>
|
||||
<meta content="1014" name="og:image:width"/>
|
||||
<meta content="530" name="og:image:height"/>
|
||||
<script crossorigin="anonymous" src="https://kit.fontawesome.com/f209982030.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-page text-white pb-5 font-avenir articles">
|
||||
<header class="bg-nav text-gray py-4 text-base/6 lg:fixed w-full lg:h-[62px]">
|
||||
<nav class="container flex gap-x-5 lg:gap-x-y items-center">
|
||||
<ul class="flex flex-wrap gap-x-2 lg:gap-x-5">
|
||||
<li>
|
||||
<a class href="/">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="active" href="/articles/">Articles</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class href="/about/">About</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container pt-12 lg:pt-28">
|
||||
<article class="prose">
|
||||
<h1>
|
||||
Free quotes != good
|
||||
</h1>
|
||||
<div class="-mt-6">
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">October 04, 2023</span>934 words, posted in <a href="/articles/tag/hvac/">HVAC</a>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-10-04-free-quotes-are-bad-for-the-industry.png"/>
|
||||
<p>I found myself re-reading the
|
||||
<a href="https://www.acca.org/communities/community-home/librarydocuments/viewdocument?DocumentKey=b1d2a39d-fda8-4af9-b8de-0ae579bfe24a">ACCA Quality Installation Standard</a>
|
||||
recently and it got me thinking about the industries tendency of offering free quotes. In this article, I’d like to just focus in on the
|
||||
items that are required as what I’m calling “prior to installation” items.</p>
|
||||
<h2>Prior to installation</h2>
|
||||
<ol>
|
||||
<li>Ensure ventilation calculations are performed.</li>
|
||||
<li>Building heat gain / loss calculation (Manual-J / Manual-N)
|
||||
<ol>
|
||||
<li>Room x room for new construction or duct modifications.</li>
|
||||
<li>Block load for existing (can use original if available).</li>
|
||||
</ol>
|
||||
</li>
|
||||
<li>Proper equipment capacity selection (Manual-S / Manual-CS)</li>
|
||||
<li>Properly matched systems (AHRI or CEE-AHRI)</li>
|
||||
</ol>
|
||||
<p>Let’s break the above items down to a rough estimated time to complete each of the items.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Item</th>
|
||||
<th>Time (minutes)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Ventilation calculations</td>
|
||||
<td>15</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Manual-J (data gathering)</td>
|
||||
<td>30</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Manual-J (data entry / calculation)</td>
|
||||
<td>30</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Manual-S</td>
|
||||
<td>15</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>AHRI</td>
|
||||
<td>15</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Total</strong></td>
|
||||
<td>105</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<blockquote>
|
||||
<p><em>The above items are obviously just estimations and the person’s experience in the different areas / tools they use. Some of the items are
|
||||
probably on the low side while others are probably on the high side.</em></p>
|
||||
</blockquote>
|
||||
<p>This is 1.75 hours just to do the calculations required to meet the QI Standard. This does not include any of the time spent with the
|
||||
customer building value in you or your product recommendations.</p>
|
||||
<p>When you want to not guess at some of the calculations then a blower door test is generally required in order to understand the leakage of
|
||||
the home, which adds even more time to the estimation process. Depending on the understanding you are looking for, the blower door test can
|
||||
add 30-180 minutes. This takes the total time to 2.25-4.75 hours.</p>
|
||||
<h2>Pushing boxes</h2>
|
||||
<p>The majority of residential HVAC companies make the bulk of their income off of equipment sales, so they have to “feed the beast” by
|
||||
skipping steps in both the installation of equipment and the sales process in order to close jobs and keep the ship afloat.</p>
|
||||
<p><img src="/articles/images/2023-10-04-sinking-boat.png" alt="sinking-boat" /></p>
|
||||
<p>This has helped contribute to these industry statistics:<a href="DOE" title="2018">^1</a></p>
|
||||
<ul>
|
||||
<li><strong>Incorrect refrigerant charge in greater than 50-80% of systems.</strong></li>
|
||||
<li><strong>Improper airflow:</strong>
|
||||
<ul>
|
||||
<li><strong>70% above the rated 0.5” w.c.</strong></li>
|
||||
<li><strong>47% above 0.7” w.c.</strong></li>
|
||||
<li><strong>85% undersized / inappropriate filter.</strong></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><strong>70-80% of systems have at least one fault.</strong></li>
|
||||
<li><strong>90-100% if duct leakage is considered.</strong></li>
|
||||
</ul>
|
||||
<h2>Consumer responsibility</h2>
|
||||
<p>Let me be clear, I don’t think that all the blame is on the industry here. The culture today is that everyone wants things for free and
|
||||
fast. They have been conditioned by online services and box stores. Should we not cater to those that aren’t willing to do their leg work?
|
||||
Is it really our fault, if they don’t care?</p>
|
||||
<h2>Liability</h2>
|
||||
<p>While it’s generally easy to shrug our shoulders and think that it’s ok to just continue on because all the competitors are doing the same
|
||||
thing. There is at least the possibility that skipping steps can come back to bite you. If things ever went to litigation and the steps
|
||||
outlined in the QI Standard are ignored, then there is high odds you would loose.</p>
|
||||
<p>No matter what you do to try and protect yourself (having customers sign-off, etc) does not adequately protect your company from litigation.
|
||||
There are stories out there where contractors were still held liable for not performing load calculations even though the consumer signed
|
||||
off on it, because it is not inline with “industry best practices.”</p>
|
||||
<h1>Summary</h1>
|
||||
<p>This has led me to the conclusion that free quotes are just bad for the industry in general. The path forward is a challenge (changing
|
||||
perception is hard). I don’t know that I have answers on what the best path forward is, to be frank, but I do know that our current <em>status
|
||||
quo</em> is subpar to say the least.</p>
|
||||
<p>Unfortunately, I don’t think the change is going to come from the industry, but that it’s going to require the consumer base to be more
|
||||
educated and demand more from the industry. There have been many organizations that have dedicated years to changing the skill levels of
|
||||
technicians in the industry, they are very well needed / don’t mistake my words here, however unless a company has faced litigation or
|
||||
facing requests on a regular basis that demand better results, then why would a company change!?!</p>
|
||||
<p>I’ve been trying (unsuccessfully) to get rid of free quotes for 5+ years in my company. We try to educate customers during maintenance
|
||||
visits and when scheduling equipment estimates, however only about 10-20% choose to go down our paid Home Performance Assessment path. Our
|
||||
installation process does follow the QI Standard for the items that pertain to the setup / commissioning of the installed equipment, however
|
||||
there is just no sustainable way for us to completely follow the items outlined in this article without charging for our time, because at
|
||||
the end of the day we still have to be competitive in our market.</p>
|
||||
<p>There are days that I can justify our actions to myself and also days that I just want to throw in the towel / not sacrifice our integrity.
|
||||
Integrity is something that I take very seriously, after all our companies tag line is <em>“Since 1954, Integrity is in the Housh!”</em></p>
|
||||
<p>As mentioned, I’m not sure what the best path forward is! I hate to not have answers, but some problems are just complex and somewhat beyond
|
||||
our control.</p>
|
||||
<p>Let me know what you think some good solutions are.</p>
|
||||
<ul>
|
||||
<li>Does your company follow the QI Standard?</li>
|
||||
<li>What are resources that you’ve found helpful in educating your customers?</li>
|
||||
</ul>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
Written by
|
||||
</h2>
|
||||
<div class="flex flex-col lg:flex-row gap-8">
|
||||
<div class="flex-[0_0_120px]">
|
||||
<img class="w-[120px] h-[120px] rounded-full" src="/static/images/avatar.png"/>
|
||||
</div>
|
||||
<div class="prose">
|
||||
<h3 class="!m-0">
|
||||
Michael Housh
|
||||
</h3>
|
||||
<p class="text-gray">
|
||||
HVAC business owner with over 27 years of experience. Writes articles about HVAC,
|
||||
Programming, Home-Performance, and Building Science
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
More articles
|
||||
</h2>
|
||||
<div class="grid lg:grid-cols-2 gap-10">
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2025/vapor-htmx-todo-app/">Vapor + HTMX</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">January 05, 2025</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
|
||||
Build an example application using Vapor and HTMX.
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2024/free-as-in-freedom/">Free As In Freedom</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">April 09, 2024</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/open-source/">open-source</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2024/free-as-in-freedom/"><div>
|
||||
Salute to open-source software engineers
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<p class="prose mt-8">
|
||||
<a href="/articles/">› See all articles</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
Copyright © Michael Housh 2023-2025.
|
||||
</p>
|
||||
<p>
|
||||
Built in Swift using
|
||||
<a href="https://github.com/loopwerk/Saga" rel="nofollow" target="_blank">Saga</a>
|
||||
(<a href="https://github.com/m-housh/mhoush.com" rel="nofollow" target="_blank">source</a>).
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://localhost:3000/articles/feed.xml" rel="nofollow" target="_blank">RSS</a>
|
||||
|
|
||||
<a href="https://github.com/m-housh" rel="nofollow" target="_blank">Github</a>
|
||||
|
|
||||
<a href="https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA" rel="nofollow" target="_blank">Youtube</a>
|
||||
|
|
||||
<a href="https://www.facebook.com/michael.housh" rel="nofollow" target="_blank">Facebook</a>
|
||||
|
|
||||
<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>
|
||||
@@ -68,48 +68,48 @@ I have always had a love and passion for..." name="og:description"/>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-10-27-heat-recovery-chiller.png"/>
|
||||
<p>This is an article that I wrote back in 2020, but I don’t believe that I published it anywhere, so<br />
|
||||
I’m doing it now. I did discuss this on<br />
|
||||
<p>This is an article that I wrote back in 2020, but I don’t believe that I published it anywhere, so
|
||||
I’m doing it now. I did discuss this on
|
||||
<a href="https://hvacrschool.com/podcasts/is-the-future-of-air-conditioning-self-contained-propane-chillers/">this episode of the HVAC School Podcast.</a></p>
|
||||
<h2>Heat Recovery Chillers</h2>
|
||||
<p>I have always had a love and passion for hydronic systems, perhaps it’s because they are not that<br />
|
||||
common in most areas. The designs tend to be elegant and the flexibility is unparalleled by most<br />
|
||||
equipment choices currently available in the U.S. I’m going to try to not get too far into the weeds<br />
|
||||
<p>I have always had a love and passion for hydronic systems, perhaps it’s because they are not that
|
||||
common in most areas. The designs tend to be elegant and the flexibility is unparalleled by most
|
||||
equipment choices currently available in the U.S. I’m going to try to not get too far into the weeds
|
||||
in this article, but offer an overview of what I feel would be my dream system.</p>
|
||||
<h2>The Source</h2>
|
||||
<p>A heat recovery chiller will do simultaneous heating and cooling, as opposed to a traditional<br />
|
||||
heat-pump or reverse cycle chiller that can only operate in one mode at a time. This system would<br />
|
||||
have a second refrigerant to water heat exchanger and utilize the air-source when we don’t need to<br />
|
||||
bank / store heat, or are running in heat only mode. There are several benefits to this style<br />
|
||||
system, the main being that while operating simultaneous heating / cooling mode the COP of the<br />
|
||||
system doubles. For example, the <a href="https://multiaqua.com/mhrc2/">Multi-Aqua MHRC2</a> shows a COP of<br />
|
||||
about 8, which is approximately equivalent to 30 EER or 34 SEER. This gives us geothermal level<br />
|
||||
<p>A heat recovery chiller will do simultaneous heating and cooling, as opposed to a traditional
|
||||
heat-pump or reverse cycle chiller that can only operate in one mode at a time. This system would
|
||||
have a second refrigerant to water heat exchanger and utilize the air-source when we don’t need to
|
||||
bank / store heat, or are running in heat only mode. There are several benefits to this style
|
||||
system, the main being that while operating simultaneous heating / cooling mode the COP of the
|
||||
system doubles. For example, the <a href="https://multiaqua.com/mhrc2/">Multi-Aqua MHRC2</a> shows a COP of
|
||||
about 8, which is approximately equivalent to 30 EER or 34 SEER. This gives us geothermal level
|
||||
performance without the need of a field.</p>
|
||||
<h2>Indoor Portion</h2>
|
||||
<p>The indoor portion of the system, we would utilize buffer tanks as thermal storage for the chiller.<br />
|
||||
The buffer tanks give us several benefits, including longer run times for the chiller, load<br />
|
||||
matching, and the ability to size for larger load (heating or cooling) without some of the problems<br />
|
||||
that occur when over-sizing a traditional system. The buffer tanks also allow sizing more<br />
|
||||
<p>The indoor portion of the system, we would utilize buffer tanks as thermal storage for the chiller.
|
||||
The buffer tanks give us several benefits, including longer run times for the chiller, load
|
||||
matching, and the ability to size for larger load (heating or cooling) without some of the problems
|
||||
that occur when over-sizing a traditional system. The buffer tanks also allow sizing more
|
||||
aggressively by having storage during peak load conditions.</p>
|
||||
<p><img src="/articles/images/2023-10-27-buffers2.png" alt="buffer" /></p>
|
||||
<p>This shows a cooling buffer tank as well as a heating buffer tank. The horizontal pumps are what<br />
|
||||
circulate water through the chiller, while the vertical pumps are what distribute the water to the<br />
|
||||
load / emitters. This configuration allows for water to be used for the loads first and extra<br />
|
||||
capacity to go into the buffer tanks. The buffer tanks also offer hydraulic separation for the pumps<br />
|
||||
(meaning that they won’t interfere with each other if / when there are different flow rates).<br />
|
||||
Another advantage of the buffer tanks is that you can connect multiple heating or cooling sources in<br />
|
||||
parallel to the system. This is shown by the extra tees in the hot buffer tank where we could<br />
|
||||
connect something such as solar water collectors, pellet or wood boiler, or a conventional boiler.<br />
|
||||
You’ll also notice on the right side of the hot buffer tank, that I am showing a brazed plate heat<br />
|
||||
<p>This shows a cooling buffer tank as well as a heating buffer tank. The horizontal pumps are what
|
||||
circulate water through the chiller, while the vertical pumps are what distribute the water to the
|
||||
load / emitters. This configuration allows for water to be used for the loads first and extra
|
||||
capacity to go into the buffer tanks. The buffer tanks also offer hydraulic separation for the pumps
|
||||
(meaning that they won’t interfere with each other if / when there are different flow rates).
|
||||
Another advantage of the buffer tanks is that you can connect multiple heating or cooling sources in
|
||||
parallel to the system. This is shown by the extra tees in the hot buffer tank where we could
|
||||
connect something such as solar water collectors, pellet or wood boiler, or a conventional boiler.
|
||||
You’ll also notice on the right side of the hot buffer tank, that I am showing a brazed plate heat
|
||||
exchanger that would be used to supply domestic hot water.</p>
|
||||
<h2>Distribution System</h2>
|
||||
<p>This could be a number of things, from radiant panels, in-floor, high-output baseboard radiators,<br />
|
||||
<p>This could be a number of things, from radiant panels, in-floor, high-output baseboard radiators,
|
||||
however I’m going to model it as a 4-pipe hydronic air handler.</p>
|
||||
<p><img src="/articles/images/2023-10-27-ah.png" alt="ah" /></p>
|
||||
<p>The hydronic air handler is able to provide cooling, heating, and re-heat dehumidification, all in<br />
|
||||
one package. With a hydronic system, it would be very easy to load match by controlling the fan<br />
|
||||
speed and utilizing a Delta-T pump or outdoor reset controls. These air handlers are available from<br />
|
||||
several manufacturers and come in different styles from traditional (as shown), small duct high<br />
|
||||
<p>The hydronic air handler is able to provide cooling, heating, and re-heat dehumidification, all in
|
||||
one package. With a hydronic system, it would be very easy to load match by controlling the fan
|
||||
speed and utilizing a Delta-T pump or outdoor reset controls. These air handlers are available from
|
||||
several manufacturers and come in different styles from traditional (as shown), small duct high
|
||||
velocity systems, and even ductless styles.</p>
|
||||
<h2>Disadvantages</h2>
|
||||
<ol>
|
||||
@@ -118,7 +118,7 @@ velocity systems, and even ductless styles.</p>
|
||||
<li>Lack of understanding / technicians afraid to work on this style system.</li>
|
||||
<li>Potentially higher upfront costs.</li>
|
||||
<li>Lack of design or planning could cause unhappy clients (same with traditional)</li>
|
||||
<li>Distribution systems need to be designed around low water temperatures (not a drop in replacement<br />
|
||||
<li>Distribution systems need to be designed around low water temperatures (not a drop in replacement
|
||||
for traditional boiler systems)</li>
|
||||
</ol>
|
||||
<h2>Advantages</h2>
|
||||
@@ -132,11 +132,11 @@ for traditional boiler systems)</li>
|
||||
<li>Easier transition to natural / flammable refrigerants</li>
|
||||
</ol>
|
||||
<h2>Conclusion</h2>
|
||||
<p>In conclusion, there are many advantages to this style system, as well as disadvantages. One of the<br />
|
||||
main points is to think of the system in 3 distinct components, the source(s), thermal storage, and<br />
|
||||
distribution. As mentioned, this only one concept, but in reality, there are many ways to accomplish<br />
|
||||
this, which is one of it’s advantages. For example, perhaps in certain scenarios it makes sense to<br />
|
||||
dump excess heat into a pool, create ice storage during off peak hours, cascade into another water<br />
|
||||
<p>In conclusion, there are many advantages to this style system, as well as disadvantages. One of the
|
||||
main points is to think of the system in 3 distinct components, the source(s), thermal storage, and
|
||||
distribution. As mentioned, this only one concept, but in reality, there are many ways to accomplish
|
||||
this, which is one of it’s advantages. For example, perhaps in certain scenarios it makes sense to
|
||||
dump excess heat into a pool, create ice storage during off peak hours, cascade into another water
|
||||
-> water heat pump for higher temperature distribution, incorporate solar collectors, and so on.</p>
|
||||
<p>Thank you for reading all the way to the end!</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>
|
||||
@@ -66,50 +66,50 @@ article I’d like to take a minute to layout some of the things that give..." n
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-10-30-hope.png"/>
|
||||
<p>This is a piggy-back article off of<br />
|
||||
<p>This is a piggy-back article off of
|
||||
<a href="https://mhoush.com/posts/20231018224631-the-struggle/">The Struggle</a> article that I had recently.</p>
|
||||
<p>I was a bit of a “Debbie Downer” in that article, which is okay, I get that way sometimes. In this<br />
|
||||
article I’d like to take a minute to layout some of the things that give me hope, things that I<br />
|
||||
<p>I was a bit of a “Debbie Downer” in that article, which is okay, I get that way sometimes. In this
|
||||
article I’d like to take a minute to layout some of the things that give me hope, things that I
|
||||
focus on to try and kick myself out of the rut I can get into sometimes.</p>
|
||||
<p>I believe it’s important to have <strong>hope</strong>, to realize that feeling down is normal / part of being<br />
|
||||
human. It’s just as important to have hope. For some it is a harder thing to focus on, it may be<br />
|
||||
easy for us to try and dwell in negative feelings, to some that may feel more comfortable. When<br />
|
||||
<p>I believe it’s important to have <strong>hope</strong>, to realize that feeling down is normal / part of being
|
||||
human. It’s just as important to have hope. For some it is a harder thing to focus on, it may be
|
||||
easy for us to try and dwell in negative feelings, to some that may feel more comfortable. When
|
||||
we’re feeling cynical, it’s easy to feed the negativity, although it’s rarely helpful.</p>
|
||||
<h2>Hope</h2>
|
||||
<p>One of the things that I try to focus on is that I’m human, it brings me hope to realize that I’m<br />
|
||||
not the only one who feels the way that I do. This was evident by the feedback on my previous<br />
|
||||
<p>One of the things that I try to focus on is that I’m human, it brings me hope to realize that I’m
|
||||
not the only one who feels the way that I do. This was evident by the feedback on my previous
|
||||
article.</p>
|
||||
<blockquote>
|
||||
<p>My problems are very much “first world problems”.</p>
|
||||
</blockquote>
|
||||
<p>Make no mistake, I’m selfish, but it’s the selfishness that makes me feel distant or disconnected.<br />
|
||||
The times that I feel connected are without a doubt the times that I let go of my ego and focus on<br />
|
||||
<p>Make no mistake, I’m selfish, but it’s the selfishness that makes me feel distant or disconnected.
|
||||
The times that I feel connected are without a doubt the times that I let go of my ego and focus on
|
||||
things outside of myself.</p>
|
||||
<p>It’s the feeling I get from going to customers home and feeling truly appreciated. There’s no push<br />
|
||||
back on price, no one telling me how I should run my business, no “the part only costs $x on<br />
|
||||
<p>It’s the feeling I get from going to customers home and feeling truly appreciated. There’s no push
|
||||
back on price, no one telling me how I should run my business, no “the part only costs $x on
|
||||
amazon”, etc.</p>
|
||||
<p>The feeling of seeing your child smile. The safety you feel when getting a hug from your mother or<br />
|
||||
<p>The feeling of seeing your child smile. The safety you feel when getting a hug from your mother or
|
||||
father. When you’re looking up at the stars and realize how small you actually are.</p>
|
||||
<p>When you’re out with friends and trick the DJ into playing a Mr. Bungle song and no one else<br />
|
||||
<p>When you’re out with friends and trick the DJ into playing a Mr. Bungle song and no one else
|
||||
appreciates it, but you. The times when your guard is completely down and you laugh with abandon.</p>
|
||||
<p>The smell of your lover’s hair when you’re holding them close. The joy you receive from sitting with<br />
|
||||
<p>The smell of your lover’s hair when you’re holding them close. The joy you receive from sitting with
|
||||
your pets. The songs of nature, insects, birds, etc. The sounds of waves / water in the distance.</p>
|
||||
<p>The feeling when you’ve helped someone learn a new skill, when something finally clicks and makes<br />
|
||||
sense. When a complex topic is understood at a fundamental level. The breakthrough of a problem<br />
|
||||
<p>The feeling when you’ve helped someone learn a new skill, when something finally clicks and makes
|
||||
sense. When a complex topic is understood at a fundamental level. The breakthrough of a problem
|
||||
you’ve pondered for days / months / years.</p>
|
||||
<h2>Conclusion</h2>
|
||||
<p>There are so many things to be grateful for. This does not mean that there will not be hard times,<br />
|
||||
there surely will be. This does not mean that you are wrong for having negative feelings, for<br />
|
||||
feeling depressed or anxious. There are many around you that likely feel similar (they may just not<br />
|
||||
be able to express it in the same way). You never truly know what the person next to you is dealing<br />
|
||||
<p>There are so many things to be grateful for. This does not mean that there will not be hard times,
|
||||
there surely will be. This does not mean that you are wrong for having negative feelings, for
|
||||
feeling depressed or anxious. There are many around you that likely feel similar (they may just not
|
||||
be able to express it in the same way). You never truly know what the person next to you is dealing
|
||||
with. Be compassionate (including showing yourself compassion).</p>
|
||||
<p>When you are feeling down, try to do something for someone else. Make your own list of things to be<br />
|
||||
thankful for. Maybe my non-exhaustive list above will give you some ideas. Write those items down<br />
|
||||
<p>When you are feeling down, try to do something for someone else. Make your own list of things to be
|
||||
thankful for. Maybe my non-exhaustive list above will give you some ideas. Write those items down
|
||||
regularly so that you can look back on them when you feel out of balance.</p>
|
||||
<p>There is plenty of negative energy in this world, be true and genuine and you will receive rewards.<br />
|
||||
<p>There is plenty of negative energy in this world, be true and genuine and you will receive rewards.
|
||||
When you focus on blessings then the negativity will fade.</p>
|
||||
<p>What impact are you going to leave with what little time we have?</p>
|
||||
<p>I hope that you enjoyed this short article. Know that you are <em>NOT</em> alone, you are important, and<br />
|
||||
<p>I hope that you enjoyed this short article. Know that you are <em>NOT</em> alone, you are important, and
|
||||
that I appreciate <em>you!</em></p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
@@ -145,7 +145,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>
|
||||
@@ -159,7 +158,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>
|
||||
@@ -190,6 +188,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>
|
||||
@@ -123,6 +123,77 @@ The struggle
|
||||
It has been one of those “when it rains, it pours” type of weeks. As...</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/free-quotes-are-bad-for-the-industry/">Free quotes != good</a>
|
||||
</h1>
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">October 04, 2023</span>934 words, posted in <a href="/articles/tag/hvac/">HVAC</a>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<a href="/articles/2023/free-quotes-are-bad-for-the-industry/">I found myself re-reading the
|
||||
ACCA Quality Installation Standard
|
||||
recently and it got me thinking about the industries tendency of offering free quotes. In this article, I’d like to just focus in on the
|
||||
items that are required as what I’m calling...</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/introduction-to-programming-for-hvac-4/">Introduction to Programming for HVAC Part-4</a>
|
||||
</h1>
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 26, 2023</span>1159 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<a href="/articles/2023/introduction-to-programming-for-hvac-4/">This article builds upon our last article, so make sure to catch up
|
||||
before continuing with this article.
|
||||
Arguments
|
||||
Before we start creating our program that will remove the background from images let’s go over arguments in shell scripts. Arguments...</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/introduction-to-programming-for-hvac-3/">Introduction to Programming for HVAC Part-3</a>
|
||||
</h1>
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 24, 2023</span>742 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<a href="/articles/2023/introduction-to-programming-for-hvac-3/">In this article we will put together some of the pieces from the last 2 articles, and build our first program. If you have missed the first
|
||||
articles, then you can catch up here before continuing with this article.
|
||||
Getting Started
|
||||
We are going to make...</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/introduction-to-programming-for-hvac-2/">Introduction to Programming for HVAC Part-2</a>
|
||||
</h1>
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 22, 2023</span>537 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<a href="/articles/2023/introduction-to-programming-for-hvac-2/">In this article, learn about installing a package manager. If you missed it, check out the
|
||||
first article in the series where we learned about using your terminal.
|
||||
This article builds upon that foundation.
|
||||
What is a Package Manager
|
||||
A package manager...</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/introduction-to-programming-for-hvac-1/">Introduction to Programming for HVAC Part-1</a>
|
||||
</h1>
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 21, 2023</span>1650 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<a href="/articles/2023/introduction-to-programming-for-hvac-1/">This is part one of a series of articles to help HVAC technicians (or others) get started in developing their skills to program. This can
|
||||
help to automate everyday tasks or just familiarize themselves with some of the tools used by programmers.
|
||||
Why
|
||||
I...</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/calculate-seer-degradation-by-age/">Calculate SEER Degradation by Age</a>
|
||||
@@ -137,6 +208,86 @@ The degradation of SEER is due to fouling of the evaporator coil with dirt and
|
||||
refrigerant charge losses. It should be noted that this is not true for...</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/introducing-psychrometrics-cli/">Introducing Psychrometrics CLI</a>
|
||||
</h1>
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 18, 2023</span>538 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/psychrometrics/">psychrometrics</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<a href="/articles/2023/introducing-psychrometrics-cli/">Today, I’m releasing a command line application that is built on top of my
|
||||
swift-psychrometrics package, that I open sourced over 2 years ago.
|
||||
The application consists of many calculations / conversions for psychrometric properties of an air stream....</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/sizing-dehumidifier-by-latent-load/">Dehumidifier Sizing by Latent Load</a>
|
||||
</h1>
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 15, 2023</span>267 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/design/">design</a>, <a href="/articles/tag/formulas/">formulas</a> and <a href="/articles/tag/tech-tip/">tech-tip</a>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<a href="/articles/2023/sizing-dehumidifier-by-latent-load/">This is a quick article to show how to calculate the size of dehumidifier needed based on the latent load of a building. This is useful if
|
||||
you’ve done a load calculation and know the latent load of the structure.
|
||||
Formulas
|
||||
The formula above is used to...</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/why-mini-splits-stink/">Why Mini Splits Stink</a>
|
||||
</h1>
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 14, 2023</span>758 words, posted in <a href="/articles/tag/hvac/">HVAC</a>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<a href="/articles/2023/why-mini-splits-stink/">In this general article, I explain why I don’t generally like to use mini-splits.
|
||||
The Positive Sides
|
||||
When people say mini-splits, in general we mean “ductless” style units. These can either be high wall, floor mounted, or ceiling mounted
|
||||
consoles....</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/pounds-of-water-removed/">Pounds of Water Removed</a>
|
||||
</h1>
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 08, 2023</span>381 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/formulas/">formulas</a>, <a href="/articles/tag/psychrometric-chart/">psychrometric-chart</a>, <a href="/articles/tag/psychrometrics/">psychrometrics</a> and <a href="/articles/tag/tech-tip/">tech-tip</a>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<a href="/articles/2023/pounds-of-water-removed/">This is an article that shows how to calculate the pounds of water removed from an air stream, given the entering conditions (return air
|
||||
stream) and the outlet conditions (supply air stream).
|
||||
This is useful in the field when you want to calculate the...</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/rss-feed/">Rss Feed</a>
|
||||
</h1>
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">August 10, 2023</span>166 words, posted in <a href="/articles/tag/how-to/">how-to</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<a href="/articles/2023/rss-feed/">In this article I will show how to add this site’s rss feed. In particular, we will be using NetNewsWire as the
|
||||
rss reader.
|
||||
What is an RSS Feed
|
||||
An RSS feed will show you new posts, generally from a blog, without having to remember to check the...</a>
|
||||
</p>
|
||||
</section>
|
||||
<section class="mb-10">
|
||||
<h1 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2023/coil-bypass-overview/">Coil Bypass Overview</a>
|
||||
</h1>
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">August 10, 2023</span>1010 words, posted in <a href="/articles/tag/hvac/">HVAC</a> and <a href="/articles/tag/design/">design</a>
|
||||
</div>
|
||||
<p class="mt-4">
|
||||
<a href="/articles/2023/coil-bypass-overview/">This is the first article in a series that explores the idea of a coil bypass strategy in an HVAC system. This article introduces you to a
|
||||
coil bypass strategy at a high level, future posts will dive deeper into the features, benefits, as well as the...</a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
@@ -158,6 +309,12 @@ refrigerant charge losses. It should be noted that this is not true for...</a>
|
||||
|
|
||||
<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>
|
||||
206
deploy/articles/2023/introducing-psychrometrics-cli/index.html
Normal file
206
deploy/articles/2023/introducing-psychrometrics-cli/index.html
Normal file
@@ -0,0 +1,206 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="#0e1112" media="(prefers-color-scheme: dark)" name="theme-color"/>
|
||||
<meta content="#566B78" media="(prefers-color-scheme: light)" name="theme-color"/>
|
||||
<meta content="Michael Housh" name="author"/>
|
||||
<meta content="Mhoush" name="apple-mobile-web-app-title"/>
|
||||
<meta content="initial-scale=1.0, width=device-width" name="viewport"/>
|
||||
<meta content="telephone=no" name="format-detection"/>
|
||||
<meta content="True" name="HandheldFriendly"/>
|
||||
<meta content="320" name="MobileOptimized"/>
|
||||
<meta content="Mhoush" name="og:site_name"/>
|
||||
<meta content="hvac, developer, swift, home-performance, design" name="keywords"/>
|
||||
<title>
|
||||
mhoush: Introducing Psychrometrics CLI
|
||||
</title>
|
||||
<link href="/static/favicon.ico" rel="shortcut icon"/>
|
||||
<link href="/static/output.css" rel="stylesheet"/>
|
||||
<link href="/static/style.css" rel="stylesheet"/>
|
||||
<link href="/articles/feed.xml" rel="alternate" title="mhoush" type="application/rss+xml"/>
|
||||
<link href="/static/prism.css" rel="stylesheet"/>
|
||||
<meta content="Today, I’m releasing a command line application that is built on top of my
|
||||
swift-psychrometrics package, that I open sourced over 2 years ago.
|
||||
The application consists of many calculations / conversions for psychrometric properties of an air stream...." name="description"/>
|
||||
<meta content="summary_large_image" name="twitter:card"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-18-introducing-psychrometrics-cli.png" name="twitter:image"/>
|
||||
<meta content="Introducing Psychrometrics CLI" name="twitter:image:alt"/>
|
||||
<meta content="http://localhost:3000/articles/images//articles/2023/introducing-psychrometrics-cli/" name="og:url"/>
|
||||
<meta content="Introducing Psychrometrics CLI" name="og:title"/>
|
||||
<meta content="Today, I’m releasing a command line application that is built on top of my
|
||||
swift-psychrometrics package, that I open sourced over 2 years ago.
|
||||
The application consists of many calculations / conversions for psychrometric properties of an air stream...." name="og:description"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-18-introducing-psychrometrics-cli.png" name="og:image"/>
|
||||
<meta content="1014" name="og:image:width"/>
|
||||
<meta content="530" name="og:image:height"/>
|
||||
<script crossorigin="anonymous" src="https://kit.fontawesome.com/f209982030.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-page text-white pb-5 font-avenir articles">
|
||||
<header class="bg-nav text-gray py-4 text-base/6 lg:fixed w-full lg:h-[62px]">
|
||||
<nav class="container flex gap-x-5 lg:gap-x-y items-center">
|
||||
<ul class="flex flex-wrap gap-x-2 lg:gap-x-5">
|
||||
<li>
|
||||
<a class href="/">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="active" href="/articles/">Articles</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class href="/about/">About</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container pt-12 lg:pt-28">
|
||||
<article class="prose">
|
||||
<h1>
|
||||
Introducing Psychrometrics CLI
|
||||
</h1>
|
||||
<div class="-mt-6">
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 18, 2023</span>538 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/psychrometrics/">psychrometrics</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-09-18-introducing-psychrometrics-cli.png"/>
|
||||
<p>Today, I’m releasing a command line application that is built on top of my
|
||||
<a href="https://github.com/swift-psychrometrics/swift-psychrometrics">swift-psychrometrics</a> package, that I open sourced over 2 years ago.</p>
|
||||
<p>The application consists of many calculations / conversions for psychrometric properties of an air stream. The tool works for both imperial
|
||||
and metric units. The application will work natively on macOS, but can also be ran through a <code>docker</code> container on other platforms.</p>
|
||||
<h2>Why</h2>
|
||||
<p>I spend a lot of time in my terminal, because I can work so much more efficiently. I discovered many years ago that the more I can do using
|
||||
simple applications and keyboard over a mouse and a web browser or native application the more I can accomplish. I understand this is
|
||||
intimidating for many who think they are <em>“not good with computers”.</em> I can assure that was me several years ago, I would only encourage you
|
||||
to not be afraid and give it a shot. We are at a time in society where it is easier than ever to get informed and learned new skills.</p>
|
||||
<h2>Installation</h2>
|
||||
<p>For complete installation instructions, you can view the <a href="https://github.com/swift-psychrometrics/psychrometrics-cli">github</a> repository.</p>
|
||||
<p>The following instructions are based on using macOS.</p>
|
||||
<h3>Open your terminal application.</h3>
|
||||
<p>Personally, I use <a href="https://iterm2.com/">iTerm2</a>, however you can use the default <code>Terminal</code> app. Found at
|
||||
<code>/Applications/Utilities/Terminal.app</code>.</p>
|
||||
<h2>Install Homebrew</h2>
|
||||
<p>We use <a href="https://brew.sh">Homebrew</a> for package distribution of the pre-built application binaries. You can follow their instructions to
|
||||
install.</p>
|
||||
<h3>Tap our custom formula tap.</h3>
|
||||
<pre><code class="language-bash">brew tap swift-psychrometrics/formula
|
||||
</code></pre>
|
||||
<h3>Install the psychrometrics application</h3>
|
||||
<pre><code class="language-bash">brew install psychrometrics
|
||||
</code></pre>
|
||||
<p>That’s it!</p>
|
||||
<h2>Usage</h2>
|
||||
<p>I will run through a couple of the commands that are supplied with the application and show what you can expect the outputs to be.</p>
|
||||
<h3>Properties</h3>
|
||||
<p>The following command will output a bunch of the psychrometric properties of an air stream. There are several ways to call it, but generally
|
||||
you will supply the dry bulb temperature and the relative humidity.</p>
|
||||
<p>Below, we calculate the psychrometric properties based on 75°F and 50% humidity.</p>
|
||||
<pre><code class="language-bash">psychrometrics --dry-bulb 75 --relative-humidity 50
|
||||
</code></pre>
|
||||
<p><img src="/articles/images/2023-09-18-properties.png" alt="properties-output" /></p>
|
||||
<h3>Dehumidifier Sizing</h3>
|
||||
<p>If you’ve read some of my recent articles on calculating the
|
||||
<a href="https://mhoush.com/posts/sizing-dehumidifier-by-latent-load/">dehumidifier size required based on the latent load</a>, the application also
|
||||
ships with a calculation that will do this for you and has the ability to calculate it at different <code>coverages</code> that you can supply.</p>
|
||||
<p>For example if we’ve done a load calculation and determined that we have a latent load of <code>4,334 BTU/h</code> then we could run the following
|
||||
command to see what size dehumidifier is needed for <code>100%, 85%, and 70%</code> of the latent load.</p>
|
||||
<pre><code class="language-bash">psychrometrics dh size --coverage 100 85 70 --verbose 4334
|
||||
</code></pre>
|
||||
<p><img src="/articles/images/2023-09-18-dh-size.png" alt="dh-size" /></p>
|
||||
<h3>Pounds of Water Removed</h3>
|
||||
<p>I also recently wrote an article about <a href="https://mhoush.com/posts/pounds-of-water-removed/">calculating the pounds of water removed</a> from an
|
||||
air stream given the grains of moisture removed.</p>
|
||||
<p>Below is an example of calculating the pounds of water removed per hour based on the example in the article (14 delta-grains)</p>
|
||||
<pre><code class="language-bash">psychrometrics dh pounds-removed --delta 14 --cfm 797 --verbose
|
||||
</code></pre>
|
||||
<p><img src="/articles/images/2023-09-18-pounds-removed.png" alt="pounds-removed" /></p>
|
||||
<h3>Help</h3>
|
||||
<p>You can use <code>--help</code> option to show help and the list of commands provided.</p>
|
||||
<p><img src="/articles/images/2023-09-18-help.png" alt="help" /></p>
|
||||
<p>If you have any questions then feel free to email or message me. I hope some of you may find this application useful.</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
Written by
|
||||
</h2>
|
||||
<div class="flex flex-col lg:flex-row gap-8">
|
||||
<div class="flex-[0_0_120px]">
|
||||
<img class="w-[120px] h-[120px] rounded-full" src="/static/images/avatar.png"/>
|
||||
</div>
|
||||
<div class="prose">
|
||||
<h3 class="!m-0">
|
||||
Michael Housh
|
||||
</h3>
|
||||
<p class="text-gray">
|
||||
HVAC business owner with over 27 years of experience. Writes articles about HVAC,
|
||||
Programming, Home-Performance, and Building Science
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
More articles
|
||||
</h2>
|
||||
<div class="grid lg:grid-cols-2 gap-10">
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2025/vapor-htmx-todo-app/">Vapor + HTMX</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">January 05, 2025</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
|
||||
Build an example application using Vapor and HTMX.
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2024/free-as-in-freedom/">Free As In Freedom</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">April 09, 2024</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/open-source/">open-source</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2024/free-as-in-freedom/"><div>
|
||||
Salute to open-source software engineers
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<p class="prose mt-8">
|
||||
<a href="/articles/">› See all articles</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
Copyright © Michael Housh 2023-2025.
|
||||
</p>
|
||||
<p>
|
||||
Built in Swift using
|
||||
<a href="https://github.com/loopwerk/Saga" rel="nofollow" target="_blank">Saga</a>
|
||||
(<a href="https://github.com/m-housh/mhoush.com" rel="nofollow" target="_blank">source</a>).
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://localhost:3000/articles/feed.xml" rel="nofollow" target="_blank">RSS</a>
|
||||
|
|
||||
<a href="https://github.com/m-housh" rel="nofollow" target="_blank">Github</a>
|
||||
|
|
||||
<a href="https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA" rel="nofollow" target="_blank">Youtube</a>
|
||||
|
|
||||
<a href="https://www.facebook.com/michael.housh" rel="nofollow" target="_blank">Facebook</a>
|
||||
|
|
||||
<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>
|
||||
@@ -0,0 +1,321 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="#0e1112" media="(prefers-color-scheme: dark)" name="theme-color"/>
|
||||
<meta content="#566B78" media="(prefers-color-scheme: light)" name="theme-color"/>
|
||||
<meta content="Michael Housh" name="author"/>
|
||||
<meta content="Mhoush" name="apple-mobile-web-app-title"/>
|
||||
<meta content="initial-scale=1.0, width=device-width" name="viewport"/>
|
||||
<meta content="telephone=no" name="format-detection"/>
|
||||
<meta content="True" name="HandheldFriendly"/>
|
||||
<meta content="320" name="MobileOptimized"/>
|
||||
<meta content="Mhoush" name="og:site_name"/>
|
||||
<meta content="hvac, developer, swift, home-performance, design" name="keywords"/>
|
||||
<title>
|
||||
mhoush: Introduction to Programming for HVAC Part-1
|
||||
</title>
|
||||
<link href="/static/favicon.ico" rel="shortcut icon"/>
|
||||
<link href="/static/output.css" rel="stylesheet"/>
|
||||
<link href="/static/style.css" rel="stylesheet"/>
|
||||
<link href="/articles/feed.xml" rel="alternate" title="mhoush" type="application/rss+xml"/>
|
||||
<link href="/static/prism.css" rel="stylesheet"/>
|
||||
<meta content="This is part one of a series of articles to help HVAC technicians (or others) get started in developing their skills to program. This can
|
||||
help to automate everyday tasks or just familiarize themselves with some of the tools used by programmers.
|
||||
Why
|
||||
I..." name="description"/>
|
||||
<meta content="summary_large_image" name="twitter:card"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-21-introduction-to-programming-for-hvac-1.png" name="twitter:image"/>
|
||||
<meta content="Introduction to Programming for HVAC Part-1" name="twitter:image:alt"/>
|
||||
<meta content="http://localhost:3000/articles/images//articles/2023/introduction-to-programming-for-hvac-1/" name="og:url"/>
|
||||
<meta content="Introduction to Programming for HVAC Part-1" name="og:title"/>
|
||||
<meta content="This is part one of a series of articles to help HVAC technicians (or others) get started in developing their skills to program. This can
|
||||
help to automate everyday tasks or just familiarize themselves with some of the tools used by programmers.
|
||||
Why
|
||||
I..." name="og:description"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-21-introduction-to-programming-for-hvac-1.png" name="og:image"/>
|
||||
<meta content="1014" name="og:image:width"/>
|
||||
<meta content="530" name="og:image:height"/>
|
||||
<script crossorigin="anonymous" src="https://kit.fontawesome.com/f209982030.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-page text-white pb-5 font-avenir articles">
|
||||
<header class="bg-nav text-gray py-4 text-base/6 lg:fixed w-full lg:h-[62px]">
|
||||
<nav class="container flex gap-x-5 lg:gap-x-y items-center">
|
||||
<ul class="flex flex-wrap gap-x-2 lg:gap-x-5">
|
||||
<li>
|
||||
<a class href="/">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="active" href="/articles/">Articles</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class href="/about/">About</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container pt-12 lg:pt-28">
|
||||
<article class="prose">
|
||||
<h1>
|
||||
Introduction to Programming for HVAC Part-1
|
||||
</h1>
|
||||
<div class="-mt-6">
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 21, 2023</span>1650 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-09-21-introduction-to-programming-for-hvac-1.png"/>
|
||||
<p>This is part one of a series of articles to help HVAC technicians (or others) get started in developing their skills to program. This can
|
||||
help to automate everyday tasks or just familiarize themselves with some of the tools used by programmers.</p>
|
||||
<h2>Why</h2>
|
||||
<p>I think if nothing else, this series can help gain knowledge, tips, and tricks to make you more comfortable with your computer. I hope that
|
||||
you will at least learn how to use your <code>terminal</code> application and more specifically <code>vim</code> motions and keybindings (more on that in another
|
||||
article).</p>
|
||||
<p>The goal of this article is to just get a machine setup with tools and to start exploring. I am a shill for <code>macOS</code>, so all of these will be
|
||||
specifically geared towards that and my workflows, most everything that is showcased should also work on <code>linux</code> machines (not sure about
|
||||
<code>windows</code>), although you may have to search for specific instructions on installing software for other platforms.</p>
|
||||
<p>What I have learned on my journey in programming is that the more you can lean on small software packages that focus on a single task, but
|
||||
do them well, the better. The less you use your mouse, the more productive you can be. The more you can work with <code>text</code> files and formats
|
||||
the more portable and transformable your workflows can be.</p>
|
||||
<h2>Getting Started</h2>
|
||||
<p>The first thing that we will focus on is becoming familiar with the terminal application. On macOS the terminal application is located at
|
||||
<code>/Applications/Utilities/Terminal.app</code>. However, rather than click around to find it, you can use the <code>⌘<space></code> to pull up your spotlight
|
||||
search, then type <code>Terminal</code> to select the terminal application.</p>
|
||||
<p><img src="/articles/images/2023-09-21-spotlight.png" alt="spotlight" /></p>
|
||||
<h3>Terminal Overview</h3>
|
||||
<p>Your terminal is a program that allows you to run programs by typing commands into it’s window. There are a lot of built-in commands and a
|
||||
bunch that you can install. The terminal is very customizable (and once familiar, you will constantly be tweaking / adjusting to suit your
|
||||
needs). Right now customization is not what we will focus on, however in future articles I will provide tips and tricks on customizing it.
|
||||
Right now, we only need to know how to open it up and type in commands.</p>
|
||||
<p><img src="/articles/images/2023-09-21-terminal.png" alt="terminal" /></p>
|
||||
<p>Below is an image / explanation of what the default status line includes.</p>
|
||||
<p><img src="/articles/images/2023-09-21-terminal-line.png" alt="terminal-line" /></p>
|
||||
<h3>Learn Basic Commands (Built-in)</h3>
|
||||
<p>Here are a few basic commands that you should familiarize yourself with, as you will use them often when working inside of a terminal.</p>
|
||||
<h3>Change Directory</h3>
|
||||
<p><code>cd</code> (change directory) is the command that allows you to move around your file system when inside the terminal.</p>
|
||||
<blockquote>
|
||||
<p><strong>Note:</strong> <code>~</code> is a representation of your <code>Home</code> directory.</p>
|
||||
</blockquote>
|
||||
<pre><code class="language-bash">cd ~/Documents
|
||||
</code></pre>
|
||||
<p>The above command will move you into your Documents directory.</p>
|
||||
<blockquote>
|
||||
<p><strong>Note:</strong> If there are spaces in the name of the directory you try to move to then the easiest way is to wrap the name in quotes.</p>
|
||||
</blockquote>
|
||||
<pre><code class="language-bash">cd "~/Documents/Product Concepts"
|
||||
</code></pre>
|
||||
<p>Some other things to understand when moving around / supplying arguments to the <code>cd</code> command.</p>
|
||||
<p>You can use <code>..</code> to go backwards / move up to the parent directory. For example, say we are in the <code>~/Documents</code> directory, to go back up to
|
||||
the home directory we could use the following:</p>
|
||||
<pre><code class="language-bash">cd ..
|
||||
</code></pre>
|
||||
<p>These can be chained together as well. For example say we are located in the <code>~/Documents/Product Concepts</code> directory, we could use the
|
||||
following to go up two directory levels back to the home directory.</p>
|
||||
<pre><code class="language-bash">cd ../..
|
||||
</code></pre>
|
||||
<blockquote>
|
||||
<p><strong>Pro-Tip:</strong> You can use the <code><tab></code> key when navigating to auto-complete, generally typing a few characters followed with the <code><tab></code> key
|
||||
will auto-complete for you.</p>
|
||||
</blockquote>
|
||||
<h3>List files</h3>
|
||||
<p>Use <code>ls</code> to output a list of files and directories where you are located.</p>
|
||||
<pre><code class="language-bash">ls
|
||||
</code></pre>
|
||||
<p><em>Example Output when in my ~/Documents directory</em></p>
|
||||
<pre><code class="language-bash">Estimates.app
|
||||
InkscapeDrawings
|
||||
KwikModel
|
||||
MyAparment
|
||||
NCISummit
|
||||
Personal
|
||||
Product Concepts
|
||||
Receipts.receipts
|
||||
RingCentral
|
||||
SketchUP
|
||||
Tech-Tips
|
||||
desktop.ini
|
||||
espanso-migrate-backup
|
||||
espanso-migrate-backup-2
|
||||
</code></pre>
|
||||
<p>Using options with <code>ls</code> to show more statistics and hidden files. There are often hidden files on your computer that are used for
|
||||
application support or other purposes, these files are not shown using the default command. Hidden files start with a <code>.</code>, below is an
|
||||
example of showing hidden files in your home directory.</p>
|
||||
<pre><code class="language-bash">ls -la ~/
|
||||
</code></pre>
|
||||
<blockquote>
|
||||
<p><strong>Note:</strong> Above I added the <code>~/</code> which will allow you to list the files in your home directory even if you currently are not there in your
|
||||
terminal, if you were already there (for example by using <code>cd ~/</code> then you would not need to use that at the end of the command.</p>
|
||||
</blockquote>
|
||||
<p><em>Example Output</em></p>
|
||||
<pre><code>total 168
|
||||
drwxr-xr-x+ 46 michael staff 1472 Sep 22 10:45 .
|
||||
drwxr-xr-x 6 root admin 192 Sep 22 09:08 ..
|
||||
-r-------- 1 michael staff 7 Apr 8 2021 .CFUserTextEncoding
|
||||
-rw-r--r--@ 1 michael staff 14340 Sep 18 10:15 .DS_Store
|
||||
drwx------+ 5 michael staff 160 Sep 20 17:03 .Trash
|
||||
-rw-r--r-- 1 michael staff 186 Sep 12 15:20 .actrc
|
||||
drwxr-xr-x 4 michael staff 128 Dec 13 2021 .bin
|
||||
drwxr-xr-x 3 michael staff 96 Mar 6 2023 .bundle
|
||||
drwxr-xr-x 7 michael staff 224 Sep 12 11:40 .cabal
|
||||
drwxr-xr-x 7 michael staff 224 Sep 12 15:20 .cache
|
||||
drwxr-xr-x 13 michael staff 416 Aug 10 08:47 .config
|
||||
drwx------ 3 michael staff 96 Jun 21 2021 .cups
|
||||
drwxr-xr-x 12 michael staff 384 Sep 15 15:22 .docker
|
||||
drwxr-xr-x 20 michael staff 640 Sep 19 08:11 .dotfiles
|
||||
drwxr-xr-x 4 michael staff 128 Jul 26 2021 .gem
|
||||
drwxr-xr-x 3 michael staff 96 Oct 11 2021 .jssc
|
||||
-rw------- 1 michael staff 20 Sep 22 10:45 .lesshst
|
||||
drwxr-x--- 3 michael staff 96 Mar 29 08:47 .lldb
|
||||
drwxr-xr-x 8 michael staff 256 Mar 1 2023 .local
|
||||
drwxr-xr-x 4 root staff 128 Apr 12 2021 .newtek
|
||||
drwxr-xr-x 5 michael staff 160 Dec 13 2021 .npm
|
||||
-rw------- 1 michael staff 27436 Apr 10 10:21 .psql_history
|
||||
drwxr-xr-x 7 michael staff 224 Apr 18 2022 .ssh
|
||||
drwxr-xr-x 6 michael staff 192 Sep 21 09:06 .swiftpm
|
||||
lrwxr-xr-x 1 michael staff 25 Dec 27 2021 .tmux.conf -> .dotfiles/tmux/.tmux.conf
|
||||
drwxr-xr-x 8 michael staff 256 Mar 27 16:14 .twilio-cli
|
||||
drwxr-xr-x 6 michael staff 192 Sep 18 11:08 .vim
|
||||
-rw------- 1 michael staff 23086 Sep 21 09:45 .viminfo
|
||||
-rw-r--r-- 1 michael staff 254 Sep 21 09:32 .wget-hsts
|
||||
lrwxr-xr-x 1 michael staff 43 Jan 3 2022 .zshenv -> /Users/michael/.dotfiles/zsh/config/.zshenv
|
||||
drwxr-xr-x 8 michael staff 256 Dec 14 2021 AmazonWorkDocsCompanion
|
||||
drwx------@ 4 michael staff 128 Dec 13 2021 Applications
|
||||
lrwxr-xr-x 1 michael staff 40 Jun 6 12:00 Applications (Parallels) -> /Volumes/Bucket/Applications (Parallels)
|
||||
drwx------@ 30 michael staff 960 Sep 21 08:54 Desktop
|
||||
drwx------@ 19 michael staff 608 Sep 14 10:15 Documents
|
||||
drwx------@ 21 michael staff 672 Sep 21 09:43 Downloads
|
||||
drwx------+ 115 michael staff 3680 Sep 14 10:04 Library
|
||||
drwxr-xr-x 3 michael staff 96 Sep 8 13:06 LocalProjects
|
||||
lrwxr-xr-x 1 michael staff 29 Dec 30 2021 Movies -> /Volumes/Bucket/Videos/Movies
|
||||
lrwxr-xr-x 1 michael staff 21 Dec 30 2021 Music -> /Volumes/Bucket/Music
|
||||
drwx------@ 2 michael staff 64 Mar 6 2023 Parallels
|
||||
drwx------@ 7 michael staff 224 Sep 14 09:52 Pictures
|
||||
drwxr-x---+ 4 michael staff 128 Apr 8 2021 Public
|
||||
drwxr-xr-x+ 3 michael staff 96 Sep 14 09:52 Sites
|
||||
drwxr-xr-x 3 michael staff 96 Jun 7 2021 WorkDocs Drive
|
||||
drwxr-xr-x 3 michael staff 96 Sep 18 11:36 go
|
||||
</code></pre>
|
||||
<p>As you can see, I have a lot of hidden files and folders, your output will probably look much different than mine.</p>
|
||||
<h3>Clearing the Terminal</h3>
|
||||
<p>Often times you may want to clear the terminal screen. You can use the <code>clear</code> command to clear the screen of the terminal.</p>
|
||||
<pre><code class="language-bash">clear
|
||||
</code></pre>
|
||||
<p>Or use a keyboard shortcut <code>⌃l</code> (<code><control>l</code>)</p>
|
||||
<h3>Creating Directories</h3>
|
||||
<p>Use <code>mkdir</code> (make directory) to create a directory.</p>
|
||||
<p>First, let’s move into the <code>tmp</code> directory, the <code>tmp</code> directory is a directory on your file system that is typically used for applications
|
||||
to write temporary logs / files to, it get’s erased everytime your computer is restarted. We can use the <code>cd</code> command that we learned
|
||||
earlier.</p>
|
||||
<pre><code class="language-bash">cd /tmp
|
||||
</code></pre>
|
||||
<p>Next, let’s create a new directory called “MyDirectory”.</p>
|
||||
<pre><code class="language-bash">mkdir MyDirectory
|
||||
</code></pre>
|
||||
<h4>Gotcha’s with ‘mkdir’</h4>
|
||||
<p>By default you can’t create directories that are multiple levels deep, unless the directories already existed or we provide the <code>-p</code> option.
|
||||
For example, if we want to create a directory at <code>/tmp/MyOtherDirectory/Nested/Deeply</code> then we could use the following command when inside
|
||||
the <code>tmp</code> directory.</p>
|
||||
<pre><code class="language-bash">mkdir -p MyOtherDirectory/Nested/Deeply
|
||||
</code></pre>
|
||||
<p>Now, try out using the <code><tab></code> key with the <code>cd</code> command to navigate to the <code>Deeply</code> folder.</p>
|
||||
<pre><code class="language-bash">cd MyOther <tab> <tab> <tab>
|
||||
</code></pre>
|
||||
<h3>Open Command</h3>
|
||||
<p>You can use the open command to open files or folders in the default application for the file type.</p>
|
||||
<p>For example, if we want to open a <code>Finder</code> window while in the <code>/tmp</code> directory, we can use the following command:</p>
|
||||
<pre><code class="language-bash">open .
|
||||
</code></pre>
|
||||
<h3>Manual Pages</h3>
|
||||
<p>Lastly, to learn more about commands you can use the <code>man <command></code>. To bring up the manual pages for the command in the terminal. You can
|
||||
use the arrow keys to navigate around the manual pages and type the letter <code>q</code> to quit / close the manual pages.</p>
|
||||
<pre><code class="language-bash">man ls
|
||||
</code></pre>
|
||||
<p>That is it for the first installment in this series. I hope you learned something and have better understanding of using your terminal.</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
Written by
|
||||
</h2>
|
||||
<div class="flex flex-col lg:flex-row gap-8">
|
||||
<div class="flex-[0_0_120px]">
|
||||
<img class="w-[120px] h-[120px] rounded-full" src="/static/images/avatar.png"/>
|
||||
</div>
|
||||
<div class="prose">
|
||||
<h3 class="!m-0">
|
||||
Michael Housh
|
||||
</h3>
|
||||
<p class="text-gray">
|
||||
HVAC business owner with over 27 years of experience. Writes articles about HVAC,
|
||||
Programming, Home-Performance, and Building Science
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
More articles
|
||||
</h2>
|
||||
<div class="grid lg:grid-cols-2 gap-10">
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2025/vapor-htmx-todo-app/">Vapor + HTMX</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">January 05, 2025</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
|
||||
Build an example application using Vapor and HTMX.
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2024/free-as-in-freedom/">Free As In Freedom</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">April 09, 2024</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/open-source/">open-source</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2024/free-as-in-freedom/"><div>
|
||||
Salute to open-source software engineers
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<p class="prose mt-8">
|
||||
<a href="/articles/">› See all articles</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
Copyright © Michael Housh 2023-2025.
|
||||
</p>
|
||||
<p>
|
||||
Built in Swift using
|
||||
<a href="https://github.com/loopwerk/Saga" rel="nofollow" target="_blank">Saga</a>
|
||||
(<a href="https://github.com/m-housh/mhoush.com" rel="nofollow" target="_blank">source</a>).
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://localhost:3000/articles/feed.xml" rel="nofollow" target="_blank">RSS</a>
|
||||
|
|
||||
<a href="https://github.com/m-housh" rel="nofollow" target="_blank">Github</a>
|
||||
|
|
||||
<a href="https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA" rel="nofollow" target="_blank">Youtube</a>
|
||||
|
|
||||
<a href="https://www.facebook.com/michael.housh" rel="nofollow" target="_blank">Facebook</a>
|
||||
|
|
||||
<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>
|
||||
@@ -0,0 +1,214 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="#0e1112" media="(prefers-color-scheme: dark)" name="theme-color"/>
|
||||
<meta content="#566B78" media="(prefers-color-scheme: light)" name="theme-color"/>
|
||||
<meta content="Michael Housh" name="author"/>
|
||||
<meta content="Mhoush" name="apple-mobile-web-app-title"/>
|
||||
<meta content="initial-scale=1.0, width=device-width" name="viewport"/>
|
||||
<meta content="telephone=no" name="format-detection"/>
|
||||
<meta content="True" name="HandheldFriendly"/>
|
||||
<meta content="320" name="MobileOptimized"/>
|
||||
<meta content="Mhoush" name="og:site_name"/>
|
||||
<meta content="hvac, developer, swift, home-performance, design" name="keywords"/>
|
||||
<title>
|
||||
mhoush: Introduction to Programming for HVAC Part-2
|
||||
</title>
|
||||
<link href="/static/favicon.ico" rel="shortcut icon"/>
|
||||
<link href="/static/output.css" rel="stylesheet"/>
|
||||
<link href="/static/style.css" rel="stylesheet"/>
|
||||
<link href="/articles/feed.xml" rel="alternate" title="mhoush" type="application/rss+xml"/>
|
||||
<link href="/static/prism.css" rel="stylesheet"/>
|
||||
<meta content="In this article, learn about installing a package manager. If you missed it, check out the
|
||||
first article in the series where we learned about using your terminal.
|
||||
This article builds upon that foundation.
|
||||
What is a Package Manager
|
||||
A package manager..." name="description"/>
|
||||
<meta content="summary_large_image" name="twitter:card"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-22-introduction-to-programming-for-hvac-2.png" name="twitter:image"/>
|
||||
<meta content="Introduction to Programming for HVAC Part-2" name="twitter:image:alt"/>
|
||||
<meta content="http://localhost:3000/articles/images//articles/2023/introduction-to-programming-for-hvac-2/" name="og:url"/>
|
||||
<meta content="Introduction to Programming for HVAC Part-2" name="og:title"/>
|
||||
<meta content="In this article, learn about installing a package manager. If you missed it, check out the
|
||||
first article in the series where we learned about using your terminal.
|
||||
This article builds upon that foundation.
|
||||
What is a Package Manager
|
||||
A package manager..." name="og:description"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-22-introduction-to-programming-for-hvac-2.png" name="og:image"/>
|
||||
<meta content="1014" name="og:image:width"/>
|
||||
<meta content="530" name="og:image:height"/>
|
||||
<script crossorigin="anonymous" src="https://kit.fontawesome.com/f209982030.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-page text-white pb-5 font-avenir articles">
|
||||
<header class="bg-nav text-gray py-4 text-base/6 lg:fixed w-full lg:h-[62px]">
|
||||
<nav class="container flex gap-x-5 lg:gap-x-y items-center">
|
||||
<ul class="flex flex-wrap gap-x-2 lg:gap-x-5">
|
||||
<li>
|
||||
<a class href="/">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="active" href="/articles/">Articles</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class href="/about/">About</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container pt-12 lg:pt-28">
|
||||
<article class="prose">
|
||||
<h1>
|
||||
Introduction to Programming for HVAC Part-2
|
||||
</h1>
|
||||
<div class="-mt-6">
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 22, 2023</span>537 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-09-22-introduction-to-programming-for-hvac-2.png"/>
|
||||
<p>In this article, learn about installing a package manager. If you missed it, check out the
|
||||
<a href="https://mhoush.com/posts/introduction-to-programming-for-hvac-1/">first</a> article in the series where we learned about using your terminal.
|
||||
This article builds upon that foundation.</p>
|
||||
<h2>What is a Package Manager</h2>
|
||||
<p>A package manager is a piece of software that helps to install software and manage updates for your system. For me, the first thing that I
|
||||
do with a new machine is install <code>Homebrew</code>. <a href="https://brew.sh">Homebrew</a> is my preferred package manager for <code>macOS</code>.</p>
|
||||
<h2>Why</h2>
|
||||
<p>A package manager is nice because often software relies / requires other dependencies in order to work properly. By using a package manager
|
||||
it will make sure that the correct dependencies are installed for the software that you need to run. It allows you to be able to update and
|
||||
manage software through a centralized interface.</p>
|
||||
<h2>Installation</h2>
|
||||
<p>Installation is simple. Open up your terminal and enter the following command (easiest to just copy / paste from the homepage linked above).</p>
|
||||
<pre><code class="language-bash">/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
</code></pre>
|
||||
<p>This will prompt you for your password in order to create some directories and install the required software for <code>brew</code> to work. The
|
||||
installation may take some time, while it downloads the command line tools for <code>Xcode</code>.</p>
|
||||
<p>When completed, follow the <code>Next Steps</code> and copy / paste the command listed, that should look like below.</p>
|
||||
<pre><code class="language-bash">(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> /Users/<you>/.zprofile
|
||||
eval "$(/opt/homebrew/bin/brew shellenv)"
|
||||
</code></pre>
|
||||
<p><img src="/articles/images/2023-09-22-brew-output.png" alt="brew-output" /></p>
|
||||
<p>The first line of this command sets up some things in your shell profile (which we have not discussed yet) that will make <code>Homebrew</code>
|
||||
available to you anytime you start a new session in your terminal. The second line of the command makes it available in your current
|
||||
terminal session.</p>
|
||||
<p>Next run the following command and make sure that everything is setup correctly.</p>
|
||||
<pre><code class="language-bash">brew doctor
|
||||
</code></pre>
|
||||
<p>Which should output the following:</p>
|
||||
<pre><code>Your system is ready to brew.
|
||||
</code></pre>
|
||||
<h3>Terminology</h3>
|
||||
<p>Homebrew calls command line applications <code>formula</code> and normal graphical applications <code>casks</code>. It has the ability to install both styles of
|
||||
applications.</p>
|
||||
<h2>Search Command</h2>
|
||||
<p>The following command is used to search for software packages:</p>
|
||||
<pre><code class="language-bash">brew search chrome
|
||||
</code></pre>
|
||||
<h2>Open a Homepage</h2>
|
||||
<p>The following command can be used to view the homepage of a formula or cask in your browser:</p>
|
||||
<pre><code class="language-bash">brew home google-chrome
|
||||
</code></pre>
|
||||
<h2>Update Homebrew</h2>
|
||||
<p>The following command is used to update homebrew:</p>
|
||||
<pre><code class="language-bash">brew update
|
||||
</code></pre>
|
||||
<h2>Update packages installed on your system</h2>
|
||||
<p>The following command is used to update software that is installed / managed by homebrew.</p>
|
||||
<pre><code class="language-bash">brew upgrade
|
||||
</code></pre>
|
||||
<p>You can combine the update and upgrade commands, which will update homebrew and upgrade all the software it manages on you machine with the
|
||||
following command.</p>
|
||||
<pre><code class="language-bash">brew update && brew upgrade
|
||||
</code></pre>
|
||||
<h2>Conclusion</h2>
|
||||
<p>That is it for this article. I will say that for me, when I find a piece of software that I want to use, I generally try to search for it in
|
||||
<code>brew</code> first, before installing it via other means.</p>
|
||||
<p>I hope you’ve found this article helpful. In the next article we will start to use the skills that we’ve learned in these first two articles
|
||||
and write our first program / script.</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
Written by
|
||||
</h2>
|
||||
<div class="flex flex-col lg:flex-row gap-8">
|
||||
<div class="flex-[0_0_120px]">
|
||||
<img class="w-[120px] h-[120px] rounded-full" src="/static/images/avatar.png"/>
|
||||
</div>
|
||||
<div class="prose">
|
||||
<h3 class="!m-0">
|
||||
Michael Housh
|
||||
</h3>
|
||||
<p class="text-gray">
|
||||
HVAC business owner with over 27 years of experience. Writes articles about HVAC,
|
||||
Programming, Home-Performance, and Building Science
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
More articles
|
||||
</h2>
|
||||
<div class="grid lg:grid-cols-2 gap-10">
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2025/vapor-htmx-todo-app/">Vapor + HTMX</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">January 05, 2025</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
|
||||
Build an example application using Vapor and HTMX.
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2024/free-as-in-freedom/">Free As In Freedom</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">April 09, 2024</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/open-source/">open-source</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2024/free-as-in-freedom/"><div>
|
||||
Salute to open-source software engineers
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<p class="prose mt-8">
|
||||
<a href="/articles/">› See all articles</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
Copyright © Michael Housh 2023-2025.
|
||||
</p>
|
||||
<p>
|
||||
Built in Swift using
|
||||
<a href="https://github.com/loopwerk/Saga" rel="nofollow" target="_blank">Saga</a>
|
||||
(<a href="https://github.com/m-housh/mhoush.com" rel="nofollow" target="_blank">source</a>).
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://localhost:3000/articles/feed.xml" rel="nofollow" target="_blank">RSS</a>
|
||||
|
|
||||
<a href="https://github.com/m-housh" rel="nofollow" target="_blank">Github</a>
|
||||
|
|
||||
<a href="https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA" rel="nofollow" target="_blank">Youtube</a>
|
||||
|
|
||||
<a href="https://www.facebook.com/michael.housh" rel="nofollow" target="_blank">Facebook</a>
|
||||
|
|
||||
<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>
|
||||
@@ -0,0 +1,228 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="#0e1112" media="(prefers-color-scheme: dark)" name="theme-color"/>
|
||||
<meta content="#566B78" media="(prefers-color-scheme: light)" name="theme-color"/>
|
||||
<meta content="Michael Housh" name="author"/>
|
||||
<meta content="Mhoush" name="apple-mobile-web-app-title"/>
|
||||
<meta content="initial-scale=1.0, width=device-width" name="viewport"/>
|
||||
<meta content="telephone=no" name="format-detection"/>
|
||||
<meta content="True" name="HandheldFriendly"/>
|
||||
<meta content="320" name="MobileOptimized"/>
|
||||
<meta content="Mhoush" name="og:site_name"/>
|
||||
<meta content="hvac, developer, swift, home-performance, design" name="keywords"/>
|
||||
<title>
|
||||
mhoush: Introduction to Programming for HVAC Part-3
|
||||
</title>
|
||||
<link href="/static/favicon.ico" rel="shortcut icon"/>
|
||||
<link href="/static/output.css" rel="stylesheet"/>
|
||||
<link href="/static/style.css" rel="stylesheet"/>
|
||||
<link href="/articles/feed.xml" rel="alternate" title="mhoush" type="application/rss+xml"/>
|
||||
<link href="/static/prism.css" rel="stylesheet"/>
|
||||
<meta content="In this article we will put together some of the pieces from the last 2 articles, and build our first program. If you have missed the first
|
||||
articles, then you can catch up here before continuing with this article.
|
||||
Getting Started
|
||||
We are going to make..." name="description"/>
|
||||
<meta content="summary_large_image" name="twitter:card"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-24-introduction-to-programming-for-hvac-3.png" name="twitter:image"/>
|
||||
<meta content="Introduction to Programming for HVAC Part-3" name="twitter:image:alt"/>
|
||||
<meta content="http://localhost:3000/articles/images//articles/2023/introduction-to-programming-for-hvac-3/" name="og:url"/>
|
||||
<meta content="Introduction to Programming for HVAC Part-3" name="og:title"/>
|
||||
<meta content="In this article we will put together some of the pieces from the last 2 articles, and build our first program. If you have missed the first
|
||||
articles, then you can catch up here before continuing with this article.
|
||||
Getting Started
|
||||
We are going to make..." name="og:description"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-24-introduction-to-programming-for-hvac-3.png" name="og:image"/>
|
||||
<meta content="1014" name="og:image:width"/>
|
||||
<meta content="530" name="og:image:height"/>
|
||||
<script crossorigin="anonymous" src="https://kit.fontawesome.com/f209982030.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-page text-white pb-5 font-avenir articles">
|
||||
<header class="bg-nav text-gray py-4 text-base/6 lg:fixed w-full lg:h-[62px]">
|
||||
<nav class="container flex gap-x-5 lg:gap-x-y items-center">
|
||||
<ul class="flex flex-wrap gap-x-2 lg:gap-x-5">
|
||||
<li>
|
||||
<a class href="/">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="active" href="/articles/">Articles</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class href="/about/">About</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container pt-12 lg:pt-28">
|
||||
<article class="prose">
|
||||
<h1>
|
||||
Introduction to Programming for HVAC Part-3
|
||||
</h1>
|
||||
<div class="-mt-6">
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 24, 2023</span>742 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-09-24-introduction-to-programming-for-hvac-3.png"/>
|
||||
<p>In this article we will put together some of the pieces from the last 2 articles, and build our first program. If you have missed the first
|
||||
articles, then you can catch up <a href="https://mhoush.com/series/programming-for-hvac/">here</a> before continuing with this article.</p>
|
||||
<h2>Getting Started</h2>
|
||||
<p>We are going to make our first script / program. This first program is really just setting up some building blocks for our next program we
|
||||
will write, that will remove the background from an image.</p>
|
||||
<h3>Creating a scripts directory</h3>
|
||||
<p>We learned in the <a href="https://mhoush.com/posts/introduction-to-programming-for-hvac-1/">first article</a> how to use our terminal. Today we are
|
||||
going to use some of the commands we learned to create a directory where we can store our script and future scripts that we write.</p>
|
||||
<p><strong>Create a directory</strong></p>
|
||||
<pre><code class="language-bash">mkdir -p ~/.local/bin
|
||||
</code></pre>
|
||||
<p>The above command will create a “hidden” directory in your home folder. We can go ahead and move into the directory we just created.</p>
|
||||
<blockquote>
|
||||
<p><strong>Note:</strong> The <code>-p</code> option allows us to create nested directories if the parent directory doesn’t exist.</p>
|
||||
</blockquote>
|
||||
<pre><code class="language-bash">cd ~/.local/bin
|
||||
</code></pre>
|
||||
<h3>Hello World</h3>
|
||||
<p>It is common in programming to start out with a “Hello World” program when learning a new scripting paradigm. So let’s jump in and get
|
||||
started.</p>
|
||||
<p><strong>Creating our script file:</strong></p>
|
||||
<pre><code class="language-bash">touch hello-world.sh
|
||||
</code></pre>
|
||||
<p><strong>Now open the file:</strong></p>
|
||||
<pre><code class="language-bash">open hello-world.sh
|
||||
</code></pre>
|
||||
<p>The above command should open the file in the <code>TextEdit</code> application. In order to make the text edit application to not auto-capitalize
|
||||
words and play more nicely, we need to adjust some settings. Open the settings by pressing <code>⌘,</code>.</p>
|
||||
<p>In the <strong>Format</strong> section, select <em>Plain text</em> and in the <strong>Options</strong> section de-select <em>Check spelling as you type</em>.</p>
|
||||
<p><img src="/articles/images/2023-09-24-text-settings.png" alt="text-settings" /></p>
|
||||
<p>At this point for changes to take place, you will need to close the file and re-open.</p>
|
||||
<blockquote>
|
||||
<p><strong>Tip:</strong> In your terminal you can run the last command in your history by using the <code>↑</code> (Up) arrow key.</p>
|
||||
</blockquote>
|
||||
<p>Now that the file is open again, we will write our hello-world program. The contents of your file should look like the following:</p>
|
||||
<pre><code class="language-bash">#!/bin/sh
|
||||
|
||||
echo 'Hello World!'
|
||||
</code></pre>
|
||||
<p>The first line is referred to as the <code>shebang</code>, this tells your computer which shell interperter to run your file. I have not explained the
|
||||
shell yet, but it currently would just muddy the waters a bit, but there are several shell interperters on your computer with the <code>sh</code> posix
|
||||
shell being one of the most universal / lowest level ones, which is why I’m choosing this one (in other words this script would work on just
|
||||
about any machine you were on).</p>
|
||||
<p>The second line we are using the built-in <code>echo</code> command and passing it the ‘Hello World!’ argument.</p>
|
||||
<p>Now save and close the file <code>⌘s</code> (to save) <code>⌘q</code> (to quit the text edit application).</p>
|
||||
<p><strong>Run the program from your terminal:</strong></p>
|
||||
<pre><code class="language-bash">/bin/sh hello-world.sh
|
||||
</code></pre>
|
||||
<p>You should see that <code>Hello World!</code> was printed to your console.</p>
|
||||
<p><img src="/articles/images/2023-09-24-hello-output.png" alt="hello-output" /></p>
|
||||
<h3>Make Executable</h3>
|
||||
<p>Now that we have our basic script working, let’s make it an executable.</p>
|
||||
<p><strong>In your terminal, type the following:</strong></p>
|
||||
<pre><code class="language-bash">chmod u+x hello-world.sh
|
||||
</code></pre>
|
||||
<p>This will change the mode of the file type to be an executable.</p>
|
||||
<p>Now move / rename the file so we don’t have to call it using <code>.sh</code> extension:</p>
|
||||
<pre><code class="language-bash">mv hello-world.sh hello-world
|
||||
</code></pre>
|
||||
<p>Now that the file is executable, we can execute it by just calling the name of the file.</p>
|
||||
<pre><code class="language-bash">./hello-world
|
||||
</code></pre>
|
||||
<blockquote>
|
||||
<p><strong>Note:</strong> We have to prefix the file name with <code>./</code> in the above command so that it knows where to find our file. The <code>./</code> is saying run
|
||||
this file in our current directory. In the future we will setup our shell so that it knows to look in our <code>~/.local/bin</code> directory for
|
||||
scripts, so that we can call them without this prefix.</p>
|
||||
</blockquote>
|
||||
<h2>Conclusion</h2>
|
||||
<p>Congratulations, in this article we wrote our first program. We learned how to edit the file, set it’s permissions, and execute the program
|
||||
from our terminal. I should mention that the <code>TextEdit</code> application is generally not how you would program, people typically use what is
|
||||
known as an <code>IDE (integrated development environment)</code>, however I chose to use the <code>TextEdit</code> application because it is built-in to <code>macOS</code>
|
||||
and allowed us to accomplish our goal without downloading other software.</p>
|
||||
<p>In our upcoming articles, we will write a program that I hope is useful to you / something that you can build upon and use for a long time.
|
||||
Thank you for reading to this point.</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
Written by
|
||||
</h2>
|
||||
<div class="flex flex-col lg:flex-row gap-8">
|
||||
<div class="flex-[0_0_120px]">
|
||||
<img class="w-[120px] h-[120px] rounded-full" src="/static/images/avatar.png"/>
|
||||
</div>
|
||||
<div class="prose">
|
||||
<h3 class="!m-0">
|
||||
Michael Housh
|
||||
</h3>
|
||||
<p class="text-gray">
|
||||
HVAC business owner with over 27 years of experience. Writes articles about HVAC,
|
||||
Programming, Home-Performance, and Building Science
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
More articles
|
||||
</h2>
|
||||
<div class="grid lg:grid-cols-2 gap-10">
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2025/vapor-htmx-todo-app/">Vapor + HTMX</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">January 05, 2025</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
|
||||
Build an example application using Vapor and HTMX.
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2024/free-as-in-freedom/">Free As In Freedom</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">April 09, 2024</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/open-source/">open-source</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2024/free-as-in-freedom/"><div>
|
||||
Salute to open-source software engineers
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<p class="prose mt-8">
|
||||
<a href="/articles/">› See all articles</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
Copyright © Michael Housh 2023-2025.
|
||||
</p>
|
||||
<p>
|
||||
Built in Swift using
|
||||
<a href="https://github.com/loopwerk/Saga" rel="nofollow" target="_blank">Saga</a>
|
||||
(<a href="https://github.com/m-housh/mhoush.com" rel="nofollow" target="_blank">source</a>).
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://localhost:3000/articles/feed.xml" rel="nofollow" target="_blank">RSS</a>
|
||||
|
|
||||
<a href="https://github.com/m-housh" rel="nofollow" target="_blank">Github</a>
|
||||
|
|
||||
<a href="https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA" rel="nofollow" target="_blank">Youtube</a>
|
||||
|
|
||||
<a href="https://www.facebook.com/michael.housh" rel="nofollow" target="_blank">Facebook</a>
|
||||
|
|
||||
<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>
|
||||
@@ -0,0 +1,294 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="#0e1112" media="(prefers-color-scheme: dark)" name="theme-color"/>
|
||||
<meta content="#566B78" media="(prefers-color-scheme: light)" name="theme-color"/>
|
||||
<meta content="Michael Housh" name="author"/>
|
||||
<meta content="Mhoush" name="apple-mobile-web-app-title"/>
|
||||
<meta content="initial-scale=1.0, width=device-width" name="viewport"/>
|
||||
<meta content="telephone=no" name="format-detection"/>
|
||||
<meta content="True" name="HandheldFriendly"/>
|
||||
<meta content="320" name="MobileOptimized"/>
|
||||
<meta content="Mhoush" name="og:site_name"/>
|
||||
<meta content="hvac, developer, swift, home-performance, design" name="keywords"/>
|
||||
<title>
|
||||
mhoush: Introduction to Programming for HVAC Part-4
|
||||
</title>
|
||||
<link href="/static/favicon.ico" rel="shortcut icon"/>
|
||||
<link href="/static/output.css" rel="stylesheet"/>
|
||||
<link href="/static/style.css" rel="stylesheet"/>
|
||||
<link href="/articles/feed.xml" rel="alternate" title="mhoush" type="application/rss+xml"/>
|
||||
<link href="/static/prism.css" rel="stylesheet"/>
|
||||
<meta content="This article builds upon our last article, so make sure to catch up
|
||||
before continuing with this article.
|
||||
Arguments
|
||||
Before we start creating our program that will remove the background from images let’s go over arguments in shell scripts. Arguments..." name="description"/>
|
||||
<meta content="summary_large_image" name="twitter:card"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-26-introduction-to-programming-for-hvac-4.png" name="twitter:image"/>
|
||||
<meta content="Introduction to Programming for HVAC Part-4" name="twitter:image:alt"/>
|
||||
<meta content="http://localhost:3000/articles/images//articles/2023/introduction-to-programming-for-hvac-4/" name="og:url"/>
|
||||
<meta content="Introduction to Programming for HVAC Part-4" name="og:title"/>
|
||||
<meta content="This article builds upon our last article, so make sure to catch up
|
||||
before continuing with this article.
|
||||
Arguments
|
||||
Before we start creating our program that will remove the background from images let’s go over arguments in shell scripts. Arguments..." name="og:description"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-26-introduction-to-programming-for-hvac-4.png" name="og:image"/>
|
||||
<meta content="1014" name="og:image:width"/>
|
||||
<meta content="530" name="og:image:height"/>
|
||||
<script crossorigin="anonymous" src="https://kit.fontawesome.com/f209982030.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-page text-white pb-5 font-avenir articles">
|
||||
<header class="bg-nav text-gray py-4 text-base/6 lg:fixed w-full lg:h-[62px]">
|
||||
<nav class="container flex gap-x-5 lg:gap-x-y items-center">
|
||||
<ul class="flex flex-wrap gap-x-2 lg:gap-x-5">
|
||||
<li>
|
||||
<a class href="/">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="active" href="/articles/">Articles</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class href="/about/">About</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container pt-12 lg:pt-28">
|
||||
<article class="prose">
|
||||
<h1>
|
||||
Introduction to Programming for HVAC Part-4
|
||||
</h1>
|
||||
<div class="-mt-6">
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 26, 2023</span>1159 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-09-26-introduction-to-programming-for-hvac-4.png"/>
|
||||
<p>This article builds upon our <a href="https://mhoush.com/posts/introduction-to-programming-for-hvac-3/">last</a> article, so make sure to catch up
|
||||
before continuing with this article.</p>
|
||||
<h2>Arguments</h2>
|
||||
<p>Before we start creating our program that will remove the background from images let’s go over arguments in shell scripts. Arguments are
|
||||
supplied to shell scripts are separated by a space <code>" "</code>, as opposed to options which start with a <code>-<character></code> or <code>--<word></code>.</p>
|
||||
<p>To illustrate this, let’s change our <code>hello-world</code> script we wrote in the last article.</p>
|
||||
<p><strong>Move into our scripts directory:</strong></p>
|
||||
<pre><code class="language-bash">cd ~/.local/bin
|
||||
</code></pre>
|
||||
<p><strong>Make a copy of the hello-world script:</strong></p>
|
||||
<pre><code class="language-bash">cp hello-world greet
|
||||
</code></pre>
|
||||
<p>Above we make a copy of the hello-world file and name the copy <code>greet</code>.</p>
|
||||
<p><strong>Open the greet file:</strong></p>
|
||||
<pre><code class="language-bash">open -a TextEdit greet
|
||||
</code></pre>
|
||||
<blockquote>
|
||||
<p><strong>Note:</strong> Because the greet file is an executable, in order to open it in the <code>TextEdit</code> application we must supply the <code>-a</code> option.
|
||||
Otherwise it will just run our <code>greet</code> program in another terminal. Use <code>man open</code> to read more about the open command.</p>
|
||||
</blockquote>
|
||||
<p><strong>Edit the greet file:</strong></p>
|
||||
<pre><code class="language-bash">#!/bin/sh
|
||||
|
||||
echo "Hello, ${1}!"
|
||||
</code></pre>
|
||||
<p>Make sure to save <code>⌘s</code> the file.</p>
|
||||
<p>Take note that the quotes need to be changed to <code>"</code> (double quotes) from our original <code>hello-world</code> program.</p>
|
||||
<p>The <code>${1}</code> is indicating that we will insert / interpret the first argument passed to our program and insert it at that location. Arguments
|
||||
are interpreted in order they are passed in with <code>${0}</code> always representing the filename of the program that is called (generally not needed
|
||||
/ used in your scripts).</p>
|
||||
<p><strong>Test it out:</strong></p>
|
||||
<pre><code class="language-bash">./greet Michael
|
||||
</code></pre>
|
||||
<p><img src="/articles/images/2023-09-26-greet-output.png" alt="greet-output" /></p>
|
||||
<p>If you’d like to supply multiple words (or arguments that contain spaces) as a single argument then you can wrap them in quotes.</p>
|
||||
<pre><code class="language-bash">./greet "Michael Housh"
|
||||
</code></pre>
|
||||
<blockquote>
|
||||
<p><strong>Tip:</strong> Wrapping in quotes is especially useful for commands that take file paths, if any of the folders or file names contain spaces.</p>
|
||||
</blockquote>
|
||||
<h2>More Useful Program</h2>
|
||||
<p>At this point, it’s time to build a more useful program that we can use. First, we must download some dependencies for our program.</p>
|
||||
<p><strong>Install imagemagick:</strong></p>
|
||||
<pre><code class="language-bash">brew install imagemagick
|
||||
</code></pre>
|
||||
<blockquote>
|
||||
<p><strong>Note:</strong> If you’d like to check out the documentation / website for imagemagick you can run <code>brew home imagemagick</code>.</p>
|
||||
</blockquote>
|
||||
<p>This will take a bit for brew to install imagemagick and it’s dependencies. When it’s completed, we can check to make sure that imagemagick
|
||||
is installed by running the following command.</p>
|
||||
<pre><code class="language-bash">magick --version
|
||||
</code></pre>
|
||||
<p>It should output something along the lines of this below.</p>
|
||||
<pre><code class="language-bash">Version: ImageMagick 7.1.1-17 Q16-HDRI aarch64 21569 https://imagemagick.org
|
||||
Copyright: (C) 1999 ImageMagick Studio LLC
|
||||
License: https://imagemagick.org/script/license.php
|
||||
Features: Cipher DPC HDRI Modules OpenMP(5.0)
|
||||
Delegates (built-in): bzlib fontconfig freetype gslib heic jng jp2 jpeg jxl lcms lqr ltdl lzma openexr png ps raw tiff webp xml zlib
|
||||
Compiler: gcc (4.2)
|
||||
</code></pre>
|
||||
<blockquote>
|
||||
<p><strong>Tip:</strong> Don’t forget, you can use the <code>clear</code> command to clear the terminal.</p>
|
||||
</blockquote>
|
||||
<p><strong>Create our script:</strong></p>
|
||||
<pre><code class="language-bash">touch mktrans
|
||||
</code></pre>
|
||||
<p>We are going to name our script <code>mktrans</code> as a short for make transparent.</p>
|
||||
<p><strong>Open the file:</strong></p>
|
||||
<pre><code class="language-bash">open mktrans
|
||||
</code></pre>
|
||||
<p><strong>The program:</strong></p>
|
||||
<pre><code class="language-bash">#!/bin/bash
|
||||
|
||||
# The input file path, passed in as the first argument.
|
||||
inputfile="${1}"
|
||||
|
||||
# The color to make transparent, optionally passed in as the second argument.
|
||||
# by default we handle / make white backgrounds transparent.
|
||||
color="${2:-white}"
|
||||
|
||||
# Use the built-in basename command to normalize the input file name
|
||||
# this will convert a file path, such as ~/Pictures/my-image.png to my-image.png.
|
||||
fullfilename=$(basename -- "$inputfile")
|
||||
|
||||
# Use the text of the `fullfilename` up to the first '.' as the file name.
|
||||
filename="${fullfilename%%.*}"
|
||||
|
||||
# Use the text after the last '.' as the file extension.
|
||||
extension="${fullfilename##*.}"
|
||||
|
||||
# Create the output file name to use.
|
||||
#
|
||||
# For an input file of `input.png`, our output name would be
|
||||
# `input-transparent.png`.
|
||||
#
|
||||
# This will output the file in the directory that we are
|
||||
# in when we use our script (which may different than where
|
||||
# the image is located)
|
||||
outputfile="${filename}-transparent.${extension}"
|
||||
|
||||
# Make the magick happen :)
|
||||
convert "${inputfile}" -fuzz 10% -transparent "${color}" "${outputfile}"
|
||||
|
||||
</code></pre>
|
||||
<p>I’ve included comments in the program above, which is good practice, as there is high odds that you will forget what is going on when / if
|
||||
you open the file up in the future to look at it. We are using a lot of what is called parameter expansion magic in this file. You can read
|
||||
up more on what we are doing in the <a href="https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html">bash documentation</a>.</p>
|
||||
<p>This script is far from perfect, there are a lot of things to be improved upon. For example, if you download / save the banner image of this
|
||||
post and run this script, it will also remove some color in the wizards beard, eyes, and eye brows. However, it does work very well for my
|
||||
general use case, which is to remove the background from screenshots of pdf documents. It should be noted that it will not work on all types
|
||||
of images, some image types do not allow transparency, so it is safest to call this with input image being a <code>.png</code> image type, however you
|
||||
can use the <code>imagemagick</code> program that we downloaded to convert other image types to <code>.png</code>, but that will be left up to you to figure out.</p>
|
||||
<h2>Using Our Program</h2>
|
||||
<p>This is going to assume that you have download the banner image at the top of this article. You can do this by right-clicking and choosing
|
||||
<code>Save As</code>. This should save the image in your downloads folder, and you can keep the name of <code>part4-banner.png</code>.</p>
|
||||
<p><strong>Make the program executable:</strong></p>
|
||||
<pre><code class="language-bash">chmod u+x mktrans
|
||||
</code></pre>
|
||||
<p><strong>Make the image background transparent:</strong></p>
|
||||
<pre><code class="language-bash">./mktrans ~/Downloads/part4-banner.png
|
||||
</code></pre>
|
||||
<p><strong>Open the image:</strong></p>
|
||||
<pre><code class="language-bash">open part4-banner-transparent.png
|
||||
</code></pre>
|
||||
<p>It should look like below.</p>
|
||||
<p><img src="/articles/images/2023-09-26-part4-banner-transparent.png" alt="banner-transparent" /></p>
|
||||
<blockquote>
|
||||
<p><strong>Note:</strong> If you are viewing this site in <em>light</em> mode, the image does not look that bad. Hit the moon button in the top above my profile
|
||||
image to see some of the flaws of our program.</p>
|
||||
</blockquote>
|
||||
<hr />
|
||||
<blockquote>
|
||||
<p><strong>Tip:</strong> Remove the image from the <code>~/.local/bin</code> by using <code>rm part4-banner-transparent.png</code>. Be aware that the <code>rm</code> command can not be
|
||||
undone, so use with caution / knowledge. It is safer, until you are more comfortable to use the <code>Finder</code> application and move the file to
|
||||
the trash. In <code>Finder</code>, you can show hidden directories by typing <code>⌘.</code> or go directly to the folder by typing <code>⇧⌘G</code> (shift + command + G)
|
||||
and in the pop-up typing <code>~/.local/bin</code>.</p>
|
||||
</blockquote>
|
||||
<hr />
|
||||
<p>That is it for this article. In the upcoming articles we will setup our <code>shell</code> environment so that we can use the commands we’ve built
|
||||
without having to navigate to the <code>~/.local/bin</code> directory. Thank you for reading to the end, I hope you’re finding this series helpful.</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
Written by
|
||||
</h2>
|
||||
<div class="flex flex-col lg:flex-row gap-8">
|
||||
<div class="flex-[0_0_120px]">
|
||||
<img class="w-[120px] h-[120px] rounded-full" src="/static/images/avatar.png"/>
|
||||
</div>
|
||||
<div class="prose">
|
||||
<h3 class="!m-0">
|
||||
Michael Housh
|
||||
</h3>
|
||||
<p class="text-gray">
|
||||
HVAC business owner with over 27 years of experience. Writes articles about HVAC,
|
||||
Programming, Home-Performance, and Building Science
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
More articles
|
||||
</h2>
|
||||
<div class="grid lg:grid-cols-2 gap-10">
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2025/vapor-htmx-todo-app/">Vapor + HTMX</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">January 05, 2025</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
|
||||
Build an example application using Vapor and HTMX.
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2024/free-as-in-freedom/">Free As In Freedom</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">April 09, 2024</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/open-source/">open-source</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2024/free-as-in-freedom/"><div>
|
||||
Salute to open-source software engineers
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<p class="prose mt-8">
|
||||
<a href="/articles/">› See all articles</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
Copyright © Michael Housh 2023-2025.
|
||||
</p>
|
||||
<p>
|
||||
Built in Swift using
|
||||
<a href="https://github.com/loopwerk/Saga" rel="nofollow" target="_blank">Saga</a>
|
||||
(<a href="https://github.com/m-housh/mhoush.com" rel="nofollow" target="_blank">source</a>).
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://localhost:3000/articles/feed.xml" rel="nofollow" target="_blank">RSS</a>
|
||||
|
|
||||
<a href="https://github.com/m-housh" rel="nofollow" target="_blank">Github</a>
|
||||
|
|
||||
<a href="https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA" rel="nofollow" target="_blank">Youtube</a>
|
||||
|
|
||||
<a href="https://www.facebook.com/michael.housh" rel="nofollow" target="_blank">Facebook</a>
|
||||
|
|
||||
<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>
|
||||
@@ -70,26 +70,26 @@ This..." name="og:description"/>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-12-14-most-important-job.gif"/>
|
||||
<p>This short tech tip is about something one of my good friends in the trade told me a long time ago,<br />
|
||||
<p>This short tech tip is about something one of my good friends in the trade told me a long time ago,
|
||||
that has stuck with me through the years. It is a simple phrase / mindset.</p>
|
||||
<blockquote>
|
||||
<p>“The current job you’re on, is the most important job of your day”.</p>
|
||||
</blockquote>
|
||||
<p>This mindset should be carried from the dispatcher, manager, and technician to make this successful.<br />
|
||||
I’m not gonna lie and say this is always easy, or even always possible, but if you strive to use<br />
|
||||
this mindset then you will gain lifelong customers and satisfaction of not having loose ends hanging<br />
|
||||
<p>This mindset should be carried from the dispatcher, manager, and technician to make this successful.
|
||||
I’m not gonna lie and say this is always easy, or even always possible, but if you strive to use
|
||||
this mindset then you will gain lifelong customers and satisfaction of not having loose ends hanging
|
||||
out there.</p>
|
||||
<p>I do think it’s also important to acknowledge that there are times that a technician has exhausted<br />
|
||||
all their options, maybe they just don’t have the mental capacity anymore to continue with a problem<br />
|
||||
job, or need a break to come back another day with a fresh set of eyes, etc… This is also an<br />
|
||||
important thing for a technician to realize, and hopefully those type of instances are much more few<br />
|
||||
<p>I do think it’s also important to acknowledge that there are times that a technician has exhausted
|
||||
all their options, maybe they just don’t have the mental capacity anymore to continue with a problem
|
||||
job, or need a break to come back another day with a fresh set of eyes, etc… This is also an
|
||||
important thing for a technician to realize, and hopefully those type of instances are much more few
|
||||
and far between, but I do want to acknowledge that scenario does also exist.</p>
|
||||
<p>If you are a business owner, then this is something to consider instilling in your operations.<br />
|
||||
Empower your technicians and dispatchers to understand when things need to be shuffled around in<br />
|
||||
order to accommodate taking care of the customer at hand. It costs a lot of money to get a<br />
|
||||
technician to job, so minimizing truck rolls to the same job is important from a business<br />
|
||||
<p>If you are a business owner, then this is something to consider instilling in your operations.
|
||||
Empower your technicians and dispatchers to understand when things need to be shuffled around in
|
||||
order to accommodate taking care of the customer at hand. It costs a lot of money to get a
|
||||
technician to job, so minimizing truck rolls to the same job is important from a business
|
||||
standpoint.</p>
|
||||
<p>This was just a quick tech tip of something that has been rolling around in my mind lately. I hope<br />
|
||||
<p>This was just a quick tech tip of something that has been rolling around in my mind lately. I hope
|
||||
you find it helpful and it sticks with you through your career as it has mine.</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
@@ -125,7 +125,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>
|
||||
@@ -139,7 +138,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>
|
||||
@@ -170,6 +168,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>
|
||||
221
deploy/articles/2023/pounds-of-water-removed/index.html
Normal file
221
deploy/articles/2023/pounds-of-water-removed/index.html
Normal file
@@ -0,0 +1,221 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="#0e1112" media="(prefers-color-scheme: dark)" name="theme-color"/>
|
||||
<meta content="#566B78" media="(prefers-color-scheme: light)" name="theme-color"/>
|
||||
<meta content="Michael Housh" name="author"/>
|
||||
<meta content="Mhoush" name="apple-mobile-web-app-title"/>
|
||||
<meta content="initial-scale=1.0, width=device-width" name="viewport"/>
|
||||
<meta content="telephone=no" name="format-detection"/>
|
||||
<meta content="True" name="HandheldFriendly"/>
|
||||
<meta content="320" name="MobileOptimized"/>
|
||||
<meta content="Mhoush" name="og:site_name"/>
|
||||
<meta content="hvac, developer, swift, home-performance, design" name="keywords"/>
|
||||
<title>
|
||||
mhoush: Pounds of Water Removed
|
||||
</title>
|
||||
<link href="/static/favicon.ico" rel="shortcut icon"/>
|
||||
<link href="/static/output.css" rel="stylesheet"/>
|
||||
<link href="/static/style.css" rel="stylesheet"/>
|
||||
<link href="/articles/feed.xml" rel="alternate" title="mhoush" type="application/rss+xml"/>
|
||||
<link href="/static/prism.css" rel="stylesheet"/>
|
||||
<meta content="This is an article that shows how to calculate the pounds of water removed from an air stream, given the entering conditions (return air
|
||||
stream) and the outlet conditions (supply air stream).
|
||||
This is useful in the field when you want to calculate the..." name="description"/>
|
||||
<meta content="summary_large_image" name="twitter:card"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-08-pounds-of-water-removed.png" name="twitter:image"/>
|
||||
<meta content="Pounds of Water Removed" name="twitter:image:alt"/>
|
||||
<meta content="http://localhost:3000/articles/images//articles/2023/pounds-of-water-removed/" name="og:url"/>
|
||||
<meta content="Pounds of Water Removed" name="og:title"/>
|
||||
<meta content="This is an article that shows how to calculate the pounds of water removed from an air stream, given the entering conditions (return air
|
||||
stream) and the outlet conditions (supply air stream).
|
||||
This is useful in the field when you want to calculate the..." name="og:description"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-08-pounds-of-water-removed.png" name="og:image"/>
|
||||
<meta content="1014" name="og:image:width"/>
|
||||
<meta content="530" name="og:image:height"/>
|
||||
<script crossorigin="anonymous" src="https://kit.fontawesome.com/f209982030.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-page text-white pb-5 font-avenir articles">
|
||||
<header class="bg-nav text-gray py-4 text-base/6 lg:fixed w-full lg:h-[62px]">
|
||||
<nav class="container flex gap-x-5 lg:gap-x-y items-center">
|
||||
<ul class="flex flex-wrap gap-x-2 lg:gap-x-5">
|
||||
<li>
|
||||
<a class href="/">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="active" href="/articles/">Articles</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class href="/about/">About</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container pt-12 lg:pt-28">
|
||||
<article class="prose">
|
||||
<h1>
|
||||
Pounds of Water Removed
|
||||
</h1>
|
||||
<div class="-mt-6">
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 08, 2023</span>381 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/formulas/">formulas</a>, <a href="/articles/tag/psychrometric-chart/">psychrometric-chart</a>, <a href="/articles/tag/psychrometrics/">psychrometrics</a> and <a href="/articles/tag/tech-tip/">tech-tip</a>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-09-08-pounds-of-water-removed.png"/>
|
||||
<p>This is an article that shows how to calculate the pounds of water removed from an air stream, given the entering conditions (return air
|
||||
stream) and the outlet conditions (supply air stream).</p>
|
||||
<p>This is useful in the field when you want to calculate the amount of moisture removed from an air-conditioner or a dehumidifier. This
|
||||
article assumes that you have knowledge of a psychrometric chart. If you do not have basic knowledge of the psychrometric chart, then here
|
||||
are a couple articles to familiarize yourself.</p>
|
||||
<h2>Articles</h2>
|
||||
<ul>
|
||||
<li><a href="https://hvacrschool.com/understand-dew-point-absolute-moisture-right-side-psych-chart/">Understand Dew-Point</a></li>
|
||||
<li><a href="https://hvacrschool.com/the-impact-of-adding-or-removing-water-from-air/">Impact of Adding or Removing Water from Air</a></li>
|
||||
</ul>
|
||||
<h2>Scenario</h2>
|
||||
<p>Let’s imagine that we have an air-conditioner that has the following measurements taken:</p>
|
||||
<ul>
|
||||
<li>Return Air: 75° / 50% RH</li>
|
||||
<li>Supply Air: 55° / 81% RH</li>
|
||||
</ul>
|
||||
<p>We plot the two values on the psychrometric chart (black line represents the return air conditions and blue line represents the supply air
|
||||
conditions).</p>
|
||||
<p><img src="/articles/images/2023-09-08-pounds-of-water-removed.png" alt="chart" /></p>
|
||||
<p>We start by finding the corresponding dry-bulb temperature at the bottom of the chart and draw a straight line up to where it intersects the
|
||||
relative humidity curve. After that we draw a straight line to the right side of the psychrometric chart to find the grains of moisture per
|
||||
pound of air.</p>
|
||||
<p>This gives us the following values:</p>
|
||||
<ul>
|
||||
<li>Return Air: 66 gr/lb</li>
|
||||
<li>Supply Air: 52 gr/lb</li>
|
||||
</ul>
|
||||
<p>We can then use the following formula to calculate the pounds of water removed.</p>
|
||||
<p><img src="/articles/images/2023-09-08-formula.png" alt="formula" /></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th><strong>Where</strong></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>W</strong></td>
|
||||
<td><em>Weight of water in pounds per hour</em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>4.5</strong></td>
|
||||
<td><em>Constant based on density / specific heat of moist air</em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>CFM</strong></td>
|
||||
<td><em>Airflow in cubic feet per minute</em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>∆G</strong></td>
|
||||
<td><em>Difference in grains of moisture</em></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>7000</strong></td>
|
||||
<td><em>Constant based on grains of moisture in saturated air</em></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h2>Solution</h2>
|
||||
<p>First, we solve for the difference in grains between the two air streams.</p>
|
||||
<p>∆G = 66 - 52 = 14</p>
|
||||
<p>Next, we’ve measured our airflow and have determined to have <strong>797 CFM</strong> of airflow across the evaporator coil, so we can substitute our
|
||||
values into the formula.</p>
|
||||
<p><img src="/articles/images/2023-09-08-solution.png" alt="solution" /></p>
|
||||
<p>So, we are removing about 7 pounds of water per hour at these conditions.</p>
|
||||
<p>Another thing to note is that 1 pound of water is approximately 1 pint of water, which can be useful when working with dehumidifiers that
|
||||
can often be rated in pints per day.</p>
|
||||
<p>I hope you’ve found this article helpful, thanks for reading!</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
Written by
|
||||
</h2>
|
||||
<div class="flex flex-col lg:flex-row gap-8">
|
||||
<div class="flex-[0_0_120px]">
|
||||
<img class="w-[120px] h-[120px] rounded-full" src="/static/images/avatar.png"/>
|
||||
</div>
|
||||
<div class="prose">
|
||||
<h3 class="!m-0">
|
||||
Michael Housh
|
||||
</h3>
|
||||
<p class="text-gray">
|
||||
HVAC business owner with over 27 years of experience. Writes articles about HVAC,
|
||||
Programming, Home-Performance, and Building Science
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
More articles
|
||||
</h2>
|
||||
<div class="grid lg:grid-cols-2 gap-10">
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2025/vapor-htmx-todo-app/">Vapor + HTMX</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">January 05, 2025</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
|
||||
Build an example application using Vapor and HTMX.
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2024/free-as-in-freedom/">Free As In Freedom</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">April 09, 2024</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/open-source/">open-source</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2024/free-as-in-freedom/"><div>
|
||||
Salute to open-source software engineers
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<p class="prose mt-8">
|
||||
<a href="/articles/">› See all articles</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
Copyright © Michael Housh 2023-2025.
|
||||
</p>
|
||||
<p>
|
||||
Built in Swift using
|
||||
<a href="https://github.com/loopwerk/Saga" rel="nofollow" target="_blank">Saga</a>
|
||||
(<a href="https://github.com/m-housh/mhoush.com" rel="nofollow" target="_blank">source</a>).
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://localhost:3000/articles/feed.xml" rel="nofollow" target="_blank">RSS</a>
|
||||
|
|
||||
<a href="https://github.com/m-housh" rel="nofollow" target="_blank">Github</a>
|
||||
|
|
||||
<a href="https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA" rel="nofollow" target="_blank">Youtube</a>
|
||||
|
|
||||
<a href="https://www.facebook.com/michael.housh" rel="nofollow" target="_blank">Facebook</a>
|
||||
|
|
||||
<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>
|
||||
175
deploy/articles/2023/rss-feed/index.html
Normal file
175
deploy/articles/2023/rss-feed/index.html
Normal file
@@ -0,0 +1,175 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="#0e1112" media="(prefers-color-scheme: dark)" name="theme-color"/>
|
||||
<meta content="#566B78" media="(prefers-color-scheme: light)" name="theme-color"/>
|
||||
<meta content="Michael Housh" name="author"/>
|
||||
<meta content="Mhoush" name="apple-mobile-web-app-title"/>
|
||||
<meta content="initial-scale=1.0, width=device-width" name="viewport"/>
|
||||
<meta content="telephone=no" name="format-detection"/>
|
||||
<meta content="True" name="HandheldFriendly"/>
|
||||
<meta content="320" name="MobileOptimized"/>
|
||||
<meta content="Mhoush" name="og:site_name"/>
|
||||
<meta content="hvac, developer, swift, home-performance, design" name="keywords"/>
|
||||
<title>
|
||||
mhoush: Rss Feed
|
||||
</title>
|
||||
<link href="/static/favicon.ico" rel="shortcut icon"/>
|
||||
<link href="/static/output.css" rel="stylesheet"/>
|
||||
<link href="/static/style.css" rel="stylesheet"/>
|
||||
<link href="/articles/feed.xml" rel="alternate" title="mhoush" type="application/rss+xml"/>
|
||||
<link href="/static/prism.css" rel="stylesheet"/>
|
||||
<meta content="In this article I will show how to add this site’s rss feed. In particular, we will be using NetNewsWire as the
|
||||
rss reader.
|
||||
What is an RSS Feed
|
||||
An RSS feed will show you new posts, generally from a blog, without having to remember to check the..." name="description"/>
|
||||
<meta content="summary_large_image" name="twitter:card"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-08-10-rss-feed.gif" name="twitter:image"/>
|
||||
<meta content="Rss Feed" name="twitter:image:alt"/>
|
||||
<meta content="http://localhost:3000/articles/images//articles/2023/rss-feed/" name="og:url"/>
|
||||
<meta content="Rss Feed" name="og:title"/>
|
||||
<meta content="In this article I will show how to add this site’s rss feed. In particular, we will be using NetNewsWire as the
|
||||
rss reader.
|
||||
What is an RSS Feed
|
||||
An RSS feed will show you new posts, generally from a blog, without having to remember to check the..." name="og:description"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-08-10-rss-feed.gif" name="og:image"/>
|
||||
<meta content="1014" name="og:image:width"/>
|
||||
<meta content="530" name="og:image:height"/>
|
||||
<script crossorigin="anonymous" src="https://kit.fontawesome.com/f209982030.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-page text-white pb-5 font-avenir articles">
|
||||
<header class="bg-nav text-gray py-4 text-base/6 lg:fixed w-full lg:h-[62px]">
|
||||
<nav class="container flex gap-x-5 lg:gap-x-y items-center">
|
||||
<ul class="flex flex-wrap gap-x-2 lg:gap-x-5">
|
||||
<li>
|
||||
<a class href="/">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="active" href="/articles/">Articles</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class href="/about/">About</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container pt-12 lg:pt-28">
|
||||
<article class="prose">
|
||||
<h1>
|
||||
Rss Feed
|
||||
</h1>
|
||||
<div class="-mt-6">
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">August 10, 2023</span>166 words, posted in <a href="/articles/tag/how-to/">how-to</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-08-10-rss-feed.gif"/>
|
||||
<p>In this article I will show how to add this site’s rss feed. In particular, we will be using <a href="https://netnewswire.com">NetNewsWire</a> as the
|
||||
rss reader.</p>
|
||||
<h2>What is an RSS Feed</h2>
|
||||
<p>An RSS feed will show you new posts, generally from a blog, without having to remember to check the website at regular intervals or signup
|
||||
for an email list for notifications.</p>
|
||||
<p>NetNewsWire puts an RSS feed as:</p>
|
||||
<p><strong>It’s like podcasts</strong> - but for <em>reading.</em></p>
|
||||
<p>You consume an RSS feed, using an RSS reader application or extension in your browser.</p>
|
||||
<h2>Step One</h2>
|
||||
<p>First find and download an RSS reader, you can download <a href="https://netnewswire.com">NetNewsWire</a> for macOS from the link, or for iOS from the
|
||||
<a href="https://apps.apple.com/us/app/netnewswire-rss-reader/id1480640210">AppStore</a>.</p>
|
||||
<h2>Step Two</h2>
|
||||
<p>Add the rss feed to stay up to date when I publish new articles.</p>
|
||||
<ol>
|
||||
<li>Click the plus in the right side of the sidebar and select <code>New Feed...</code></li>
|
||||
<li>In the URL field add: <code>https://mhoush.com/articles/feed.xml</code></li>
|
||||
<li>Optionally give it a name</li>
|
||||
<li>Click the <code>Add</code> button.</li>
|
||||
</ol>
|
||||
<p><img src="/articles/images/2023-08-10-rss-feed.gif" alt="rss gif" /></p>
|
||||
<p>That’s it.</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
Written by
|
||||
</h2>
|
||||
<div class="flex flex-col lg:flex-row gap-8">
|
||||
<div class="flex-[0_0_120px]">
|
||||
<img class="w-[120px] h-[120px] rounded-full" src="/static/images/avatar.png"/>
|
||||
</div>
|
||||
<div class="prose">
|
||||
<h3 class="!m-0">
|
||||
Michael Housh
|
||||
</h3>
|
||||
<p class="text-gray">
|
||||
HVAC business owner with over 27 years of experience. Writes articles about HVAC,
|
||||
Programming, Home-Performance, and Building Science
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
More articles
|
||||
</h2>
|
||||
<div class="grid lg:grid-cols-2 gap-10">
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2025/vapor-htmx-todo-app/">Vapor + HTMX</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">January 05, 2025</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
|
||||
Build an example application using Vapor and HTMX.
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2024/free-as-in-freedom/">Free As In Freedom</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">April 09, 2024</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/open-source/">open-source</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2024/free-as-in-freedom/"><div>
|
||||
Salute to open-source software engineers
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<p class="prose mt-8">
|
||||
<a href="/articles/">› See all articles</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
Copyright © Michael Housh 2023-2025.
|
||||
</p>
|
||||
<p>
|
||||
Built in Swift using
|
||||
<a href="https://github.com/loopwerk/Saga" rel="nofollow" target="_blank">Saga</a>
|
||||
(<a href="https://github.com/m-housh/mhoush.com" rel="nofollow" target="_blank">source</a>).
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://localhost:3000/articles/feed.xml" rel="nofollow" target="_blank">RSS</a>
|
||||
|
|
||||
<a href="https://github.com/m-housh" rel="nofollow" target="_blank">Github</a>
|
||||
|
|
||||
<a href="https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA" rel="nofollow" target="_blank">Youtube</a>
|
||||
|
|
||||
<a href="https://www.facebook.com/michael.housh" rel="nofollow" target="_blank">Facebook</a>
|
||||
|
|
||||
<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>
|
||||
@@ -0,0 +1,209 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="#0e1112" media="(prefers-color-scheme: dark)" name="theme-color"/>
|
||||
<meta content="#566B78" media="(prefers-color-scheme: light)" name="theme-color"/>
|
||||
<meta content="Michael Housh" name="author"/>
|
||||
<meta content="Mhoush" name="apple-mobile-web-app-title"/>
|
||||
<meta content="initial-scale=1.0, width=device-width" name="viewport"/>
|
||||
<meta content="telephone=no" name="format-detection"/>
|
||||
<meta content="True" name="HandheldFriendly"/>
|
||||
<meta content="320" name="MobileOptimized"/>
|
||||
<meta content="Mhoush" name="og:site_name"/>
|
||||
<meta content="hvac, developer, swift, home-performance, design" name="keywords"/>
|
||||
<title>
|
||||
mhoush: Dehumidifier Sizing by Latent Load
|
||||
</title>
|
||||
<link href="/static/favicon.ico" rel="shortcut icon"/>
|
||||
<link href="/static/output.css" rel="stylesheet"/>
|
||||
<link href="/static/style.css" rel="stylesheet"/>
|
||||
<link href="/articles/feed.xml" rel="alternate" title="mhoush" type="application/rss+xml"/>
|
||||
<link href="/static/prism.css" rel="stylesheet"/>
|
||||
<meta content="This is a quick article to show how to calculate the size of dehumidifier needed based on the latent load of a building. This is useful if
|
||||
you’ve done a load calculation and know the latent load of the structure.
|
||||
Formulas
|
||||
The formula above is used to..." name="description"/>
|
||||
<meta content="summary_large_image" name="twitter:card"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-15-sizing-dehumidifier-by-latent-load.png" name="twitter:image"/>
|
||||
<meta content="Dehumidifier Sizing by Latent Load" name="twitter:image:alt"/>
|
||||
<meta content="http://localhost:3000/articles/images//articles/2023/sizing-dehumidifier-by-latent-load/" name="og:url"/>
|
||||
<meta content="Dehumidifier Sizing by Latent Load" name="og:title"/>
|
||||
<meta content="This is a quick article to show how to calculate the size of dehumidifier needed based on the latent load of a building. This is useful if
|
||||
you’ve done a load calculation and know the latent load of the structure.
|
||||
Formulas
|
||||
The formula above is used to..." name="og:description"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-15-sizing-dehumidifier-by-latent-load.png" name="og:image"/>
|
||||
<meta content="1014" name="og:image:width"/>
|
||||
<meta content="530" name="og:image:height"/>
|
||||
<script crossorigin="anonymous" src="https://kit.fontawesome.com/f209982030.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-page text-white pb-5 font-avenir articles">
|
||||
<header class="bg-nav text-gray py-4 text-base/6 lg:fixed w-full lg:h-[62px]">
|
||||
<nav class="container flex gap-x-5 lg:gap-x-y items-center">
|
||||
<ul class="flex flex-wrap gap-x-2 lg:gap-x-5">
|
||||
<li>
|
||||
<a class href="/">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="active" href="/articles/">Articles</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class href="/about/">About</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container pt-12 lg:pt-28">
|
||||
<article class="prose">
|
||||
<h1>
|
||||
Dehumidifier Sizing by Latent Load
|
||||
</h1>
|
||||
<div class="-mt-6">
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 15, 2023</span>267 words, posted in <a href="/articles/tag/hvac/">HVAC</a>, <a href="/articles/tag/design/">design</a>, <a href="/articles/tag/formulas/">formulas</a> and <a href="/articles/tag/tech-tip/">tech-tip</a>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-09-15-sizing-dehumidifier-by-latent-load.png"/>
|
||||
<p>This is a quick article to show how to calculate the size of dehumidifier needed based on the latent load of a building. This is useful if
|
||||
you’ve done a load calculation and know the latent load of the structure.</p>
|
||||
<h2>Formulas</h2>
|
||||
<p>The formula above is used to solve for the pints per hour required to size a dehumidifier.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Where</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Ql</td>
|
||||
<td>Latent load</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ph</td>
|
||||
<td>Pints / hour</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>We can then convert to pints per day by multiplying the answer by 24 hours, below is the combined formula.</p>
|
||||
<p><img src="/articles/images/2023-09-15-pints-per-day.png" alt="pints-per-day-formula" /></p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Where</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Ql</td>
|
||||
<td>Latent load</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Pd</td>
|
||||
<td>Pints / day</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>In some cases you may want to size the dehumidifier for less than the full latent load, assuming that the air-conditioner (when sized
|
||||
properly) is going to cover the full latent load when at peak design temperatures and that the peak latent period for your area is during
|
||||
peak cooling demand.</p>
|
||||
<h2>Example</h2>
|
||||
<p>Let’s imagine we have done a load calculation and have a latent load of 4,334 BTU/h. So, plugging that into our above formula.</p>
|
||||
<p><img src="/articles/images/2023-09-15-pints-per-day-example.png" alt="pints-per-day-formula-example" /></p>
|
||||
<p>Or if we just want to cover the latent capacity at 85% of the full latent load.</p>
|
||||
<p><img src="/articles/images/2023-09-15-pints-per-day-example2.png" alt="pints-per-day-formula-example" /></p>
|
||||
<p>This gives us some guidance that we would need to select a dehumidifier that is rated for 84-99 pints per day, depending on which condition
|
||||
we wanted to use.</p>
|
||||
<p>I don’t feel oversizing a dehumidifier, within reason, is that problematic (or at least it does not come with the same problems as an
|
||||
oversized air conditioner), so I would personally go for a 100-120 pint per day model dehumidifier in this application.</p>
|
||||
<p>Thanks for reading!</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
Written by
|
||||
</h2>
|
||||
<div class="flex flex-col lg:flex-row gap-8">
|
||||
<div class="flex-[0_0_120px]">
|
||||
<img class="w-[120px] h-[120px] rounded-full" src="/static/images/avatar.png"/>
|
||||
</div>
|
||||
<div class="prose">
|
||||
<h3 class="!m-0">
|
||||
Michael Housh
|
||||
</h3>
|
||||
<p class="text-gray">
|
||||
HVAC business owner with over 27 years of experience. Writes articles about HVAC,
|
||||
Programming, Home-Performance, and Building Science
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
More articles
|
||||
</h2>
|
||||
<div class="grid lg:grid-cols-2 gap-10">
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2025/vapor-htmx-todo-app/">Vapor + HTMX</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">January 05, 2025</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
|
||||
Build an example application using Vapor and HTMX.
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2024/free-as-in-freedom/">Free As In Freedom</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">April 09, 2024</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/open-source/">open-source</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2024/free-as-in-freedom/"><div>
|
||||
Salute to open-source software engineers
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<p class="prose mt-8">
|
||||
<a href="/articles/">› See all articles</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
Copyright © Michael Housh 2023-2025.
|
||||
</p>
|
||||
<p>
|
||||
Built in Swift using
|
||||
<a href="https://github.com/loopwerk/Saga" rel="nofollow" target="_blank">Saga</a>
|
||||
(<a href="https://github.com/m-housh/mhoush.com" rel="nofollow" target="_blank">source</a>).
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://localhost:3000/articles/feed.xml" rel="nofollow" target="_blank">RSS</a>
|
||||
|
|
||||
<a href="https://github.com/m-housh" rel="nofollow" target="_blank">Github</a>
|
||||
|
|
||||
<a href="https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA" rel="nofollow" target="_blank">Youtube</a>
|
||||
|
|
||||
<a href="https://www.facebook.com/michael.housh" rel="nofollow" target="_blank">Facebook</a>
|
||||
|
|
||||
<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>
|
||||
@@ -66,71 +66,71 @@ It has been one of those “when it rains, it pours” type of weeks. As..." nam
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-10-18-the-struggle.png"/>
|
||||
<p>This is a get stuff of my chest article. Probably going to be a mixture of ranting and whining. If<br />
|
||||
<p>This is a get stuff of my chest article. Probably going to be a mixture of ranting and whining. If
|
||||
that is not your cup of tea then feel free to skip this article.</p>
|
||||
<h2>The struggle</h2>
|
||||
<p>It has been one of those “when it rains, it pours” type of weeks. As write this, I feel like a baby<br />
|
||||
<p>It has been one of those “when it rains, it pours” type of weeks. As write this, I feel like a baby
|
||||
/ complainer, which is not my intention, but here it goes.</p>
|
||||
<p>My aunt had a stroke and is likely not going to make it through the week. My aunt has always lived<br />
|
||||
in Florida during my life / memory, but has always come to visit. She is my mom’s oldest sister (9<br />
|
||||
years apart), so she helped raise my mother growing up. They’ve always had a close relationship and<br />
|
||||
are like two peas in a pod. They would always visit us, especially while my grand-parents were still<br />
|
||||
alive. She is currently not really awake or expected to make it. She does not eat / drink and<br />
|
||||
<p>My aunt had a stroke and is likely not going to make it through the week. My aunt has always lived
|
||||
in Florida during my life / memory, but has always come to visit. She is my mom’s oldest sister (9
|
||||
years apart), so she helped raise my mother growing up. They’ve always had a close relationship and
|
||||
are like two peas in a pod. They would always visit us, especially while my grand-parents were still
|
||||
alive. She is currently not really awake or expected to make it. She does not eat / drink and
|
||||
they’ve basically just been making her comfortable.</p>
|
||||
<p>One of my employees broke his neck over the weekend. I don’t have a ton of details on this subject,<br />
|
||||
but he had surgery to fuse some discs back together and should eventually be ok, however it will be<br />
|
||||
<p>One of my employees broke his neck over the weekend. I don’t have a ton of details on this subject,
|
||||
but he had surgery to fuse some discs back together and should eventually be ok, however it will be
|
||||
a long recovery time.</p>
|
||||
<p>A few weeks ago, I commited one of the deadly sins of running a blower door test without checking /<br />
|
||||
asking about the fireplaces, which caused lord knows how much damage from the soot that was spread<br />
|
||||
<p>A few weeks ago, I commited one of the deadly sins of running a blower door test without checking /
|
||||
asking about the fireplaces, which caused lord knows how much damage from the soot that was spread
|
||||
throughout the living room(s).</p>
|
||||
<p>An online friend lost her mother.</p>
|
||||
<p>All of these things have just got me emotional.</p>
|
||||
<h2>My secrets</h2>
|
||||
<p>I am an emotional person, sometimes to my detriment. I’m prone to fits of anger and depression. I<br />
|
||||
spent many years masking things through alcohol abuse and many other idiotic tendencies. I still<br />
|
||||
<p>I am an emotional person, sometimes to my detriment. I’m prone to fits of anger and depression. I
|
||||
spent many years masking things through alcohol abuse and many other idiotic tendencies. I still
|
||||
drink on occasion, but not as I once did.</p>
|
||||
<p>I often put my faith in folks, even if I haven’t met them in person, this can often lead to being<br />
|
||||
let down. I guess I struggle sometimes with the reality of online relationships. I think that people<br />
|
||||
are genuine, because I’m that way (how I act online is the same as I act in person for the most<br />
|
||||
part). I will happily show / share the good and the bad, in hopes that someone may learn. This is<br />
|
||||
not at all something to be ashamed of, or anything that I’d like to change, however it does on<br />
|
||||
<p>I often put my faith in folks, even if I haven’t met them in person, this can often lead to being
|
||||
let down. I guess I struggle sometimes with the reality of online relationships. I think that people
|
||||
are genuine, because I’m that way (how I act online is the same as I act in person for the most
|
||||
part). I will happily show / share the good and the bad, in hopes that someone may learn. This is
|
||||
not at all something to be ashamed of, or anything that I’d like to change, however it does on
|
||||
occasion lead me into turmoil when I find out some true identity / personality of someone.</p>
|
||||
<p>I hold grudges, like forever grudges. It is very hard for me to get over somethings, even if I want<br />
|
||||
to. I can sometimes put things out of my mind, but when I’m spinning, they will resurface. I want to<br />
|
||||
forgive people, but it is just not the way it works for me often times. It takes a lot to get me<br />
|
||||
beyond my breaking point, but once someone has gotten me there, there is likely no turning back for<br />
|
||||
that person. Luckily, I can count on one hand the number of folks that I’ve had to cut out of my<br />
|
||||
life for these reasons. I’d love to say that I’m a bigger / better person, that I forgive them, but<br />
|
||||
<p>I hold grudges, like forever grudges. It is very hard for me to get over somethings, even if I want
|
||||
to. I can sometimes put things out of my mind, but when I’m spinning, they will resurface. I want to
|
||||
forgive people, but it is just not the way it works for me often times. It takes a lot to get me
|
||||
beyond my breaking point, but once someone has gotten me there, there is likely no turning back for
|
||||
that person. Luckily, I can count on one hand the number of folks that I’ve had to cut out of my
|
||||
life for these reasons. I’d love to say that I’m a bigger / better person, that I forgive them, but
|
||||
truthfully I do not.</p>
|
||||
<p>My emotions sometimes make me say things publicly that I should keep to myself. I don’t have a lot<br />
|
||||
of regret around these things, because I generally mean what I say, and also feel we are entitled to<br />
|
||||
opinions as well as entitled to change those opinions as often as we see fit. Although I don’t<br />
|
||||
regret them per-se, it does make me wonder what type of impression it leaves (something for future<br />
|
||||
<p>My emotions sometimes make me say things publicly that I should keep to myself. I don’t have a lot
|
||||
of regret around these things, because I generally mean what I say, and also feel we are entitled to
|
||||
opinions as well as entitled to change those opinions as often as we see fit. Although I don’t
|
||||
regret them per-se, it does make me wonder what type of impression it leaves (something for future
|
||||
pondering, perhaps).</p>
|
||||
<p>I’m one of those that says “I don’t care what they think about me”, when I really do care what<br />
|
||||
people think about me. This often leads to fear and anxiety, especially in social settings. I’m not<br />
|
||||
the greatest at conversation, I’m better at writing or some interaction that gives me a bit of time<br />
|
||||
to think before responding. Therefore, I’m quick to make a joke or something rather than having<br />
|
||||
<p>I’m one of those that says “I don’t care what they think about me”, when I really do care what
|
||||
people think about me. This often leads to fear and anxiety, especially in social settings. I’m not
|
||||
the greatest at conversation, I’m better at writing or some interaction that gives me a bit of time
|
||||
to think before responding. Therefore, I’m quick to make a joke or something rather than having
|
||||
thoughtful / genuine responses.</p>
|
||||
<h2>Community</h2>
|
||||
<p>All of these things have just got me thinking about community. Community is an aspect that seems<br />
|
||||
distant nowadays, even though we have more opportunity than ever. We call ourselves part of<br />
|
||||
communities, especially online, but I’m not convinced that it is really community (or at least not<br />
|
||||
<p>All of these things have just got me thinking about community. Community is an aspect that seems
|
||||
distant nowadays, even though we have more opportunity than ever. We call ourselves part of
|
||||
communities, especially online, but I’m not convinced that it is really community (or at least not
|
||||
most of the time, not saying it can’t be / in absolute terms).</p>
|
||||
<p>I have met a lot of folks online that I consider true friends. Friends that I would do anything for<br />
|
||||
and feel they would do anything for me, just like my real life friends who have stuck with me for<br />
|
||||
many years. These are people that challenge me and how I think on a regular basis. They do their<br />
|
||||
<p>I have met a lot of folks online that I consider true friends. Friends that I would do anything for
|
||||
and feel they would do anything for me, just like my real life friends who have stuck with me for
|
||||
many years. These are people that challenge me and how I think on a regular basis. They do their
|
||||
best to lift me up when I’m down.</p>
|
||||
<p>It’s easy to hide when so much of our interactions are not really in person, to feel like the<br />
|
||||
relationships we do have are not genuine, but that’s awfully cynical. I prefer to give people the<br />
|
||||
benefit / trust they deserve until, at least until they don’t then see my part about holding grudges<br />
|
||||
<p>It’s easy to hide when so much of our interactions are not really in person, to feel like the
|
||||
relationships we do have are not genuine, but that’s awfully cynical. I prefer to give people the
|
||||
benefit / trust they deserve until, at least until they don’t then see my part about holding grudges
|
||||
;)</p>
|
||||
<p>Do you ever feel the same? Instead of being cynical and down, today, I’m trying to be positive. I’m<br />
|
||||
trying to share a little bit of what I feel community should be. Although, I’ve never met HVAChicks<br />
|
||||
Jennifer in real life, I read today about her mom and decided to take an hour or so to put together<br />
|
||||
a website for the <a href="https://hvachicks.com">HVAChicks Community</a>, hoping it would bring a moment of<br />
|
||||
happiness to her day. While I’ve deployed several websites in the past, this one for some reason was<br />
|
||||
a total PITA, but I got through it. I could feel how grateful she was when I shared it with her (and<br />
|
||||
<p>Do you ever feel the same? Instead of being cynical and down, today, I’m trying to be positive. I’m
|
||||
trying to share a little bit of what I feel community should be. Although, I’ve never met HVAChicks
|
||||
Jennifer in real life, I read today about her mom and decided to take an hour or so to put together
|
||||
a website for the <a href="https://hvachicks.com">HVAChicks Community</a>, hoping it would bring a moment of
|
||||
happiness to her day. While I’ve deployed several websites in the past, this one for some reason was
|
||||
a total PITA, but I got through it. I could feel how grateful she was when I shared it with her (and
|
||||
it’s basic AF), but that truly made me feel useful / great after being down in the dumps for a bit.</p>
|
||||
<h2>Conclusion</h2>
|
||||
<p>I’ve probably rambled enough and am losing direction here, so I will end with a few things.</p>
|
||||
@@ -140,43 +140,43 @@ it’s basic AF), but that truly made me feel useful / great after being down in
|
||||
<li>Spend time with your loved ones, while you can.</li>
|
||||
<li>Tell someone you love them.</li>
|
||||
</ol>
|
||||
<p>Finally, I’d like to shout out some people that I’m grateful for. This is non-exhaustive list, if I<br />
|
||||
<p>Finally, I’d like to shout out some people that I’m grateful for. This is non-exhaustive list, if I
|
||||
left you off, I’m sorry and please do not take it personally.</p>
|
||||
<ol>
|
||||
<li>Bryan Orr
|
||||
<ul>
|
||||
<li>Bryan has cultivated an awesome group / community that I’m proud to be a part of. His time and<br />
|
||||
commitment to the HVAC industry is something that I hope he himself is proud of. Without Bryan,<br />
|
||||
<li>Bryan has cultivated an awesome group / community that I’m proud to be a part of. His time and
|
||||
commitment to the HVAC industry is something that I hope he himself is proud of. Without Bryan,
|
||||
mostly all the following names would not even be in my vocabulary.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Ty Branaman (forget exactly how to spell his last name).
|
||||
<ul>
|
||||
<li>Ty has such a great personality during his videos / training and I’m sure it’s a struggle to be<br />
|
||||
<li>Ty has such a great personality during his videos / training and I’m sure it’s a struggle to be
|
||||
positive all the time, however it brings me hope and joy everytime!</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Dustin (mother f’n) Cole
|
||||
<ul>
|
||||
<li>Dustin is like a brother that I never had, he’s a true master of his craft and I know that I<br />
|
||||
<li>Dustin is like a brother that I never had, he’s a true master of his craft and I know that I
|
||||
can rely on him anytime I need it!</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Genry Garcia
|
||||
<ul>
|
||||
<li>The cuban crusader who has taught me so much about home performance, and especially ZPD (baby,<br />
|
||||
<li>The cuban crusader who has taught me so much about home performance, and especially ZPD (baby,
|
||||
baby)!</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Chris Hughes
|
||||
<ul>
|
||||
<li>It’s hard to put into words here, but I know that Chris is there to talk when I need it and<br />
|
||||
<li>It’s hard to put into words here, but I know that Chris is there to talk when I need it and
|
||||
he’s a great motivator because of his action items :)</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Eric Kaiser
|
||||
<ul>
|
||||
<li>I think genuine when I think of Eric, I hear his voice in my head when I write reports because<br />
|
||||
<li>I think genuine when I think of Eric, I hear his voice in my head when I write reports because
|
||||
of guidance he has given in the past. He truly wants to help teach people.</li>
|
||||
</ul>
|
||||
</li>
|
||||
@@ -187,26 +187,26 @@ of guidance he has given in the past. He truly wants to help teach people.</li>
|
||||
</li>
|
||||
<li>HVAChicks Jennifer (I’ll butcher her last name from memory)
|
||||
<ul>
|
||||
<li>Jennifer is inspiring with her goals and everything she does to help anyone in the industry. I<br />
|
||||
<li>Jennifer is inspiring with her goals and everything she does to help anyone in the industry. I
|
||||
can’t wait to meet her in person one day soon!</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>HVAC Overtime Crew
|
||||
<ul>
|
||||
<li>I’m lumping these guys together because I truly enjoy when I’m able to make their live stream<br />
|
||||
<li>I’m lumping these guys together because I truly enjoy when I’m able to make their live stream
|
||||
on Friday’s. And I interact with A-Team a lot and really appreciate him / them!</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>Alicia Hollon
|
||||
<ul>
|
||||
<li>Alicia is so awesome to me, I mean she just made my favorite pancakes and sausage for dinner,<br />
|
||||
<li>Alicia is so awesome to me, I mean she just made my favorite pancakes and sausage for dinner,
|
||||
love you babe!</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ol>
|
||||
<p>Lastly, I have to shout out to my mom. I know she’s going through a rough time with my aunt<br />
|
||||
<p>Lastly, I have to shout out to my mom. I know she’s going through a rough time with my aunt
|
||||
currently. My mother is the kindest gentlest soul that I’ve ever met. I look up to all 5’ of her!</p>
|
||||
<p>At any rate, thanks for sticking it out to the end through my ramblings. Be kind to someone today<br />
|
||||
<p>At any rate, thanks for sticking it out to the end through my ramblings. Be kind to someone today
|
||||
and tomorrow!</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
@@ -242,7 +242,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>
|
||||
@@ -256,7 +255,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>
|
||||
@@ -287,6 +285,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>
|
||||
196
deploy/articles/2023/why-mini-splits-stink/index.html
Normal file
196
deploy/articles/2023/why-mini-splits-stink/index.html
Normal file
@@ -0,0 +1,196 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8"/>
|
||||
<meta content="#0e1112" media="(prefers-color-scheme: dark)" name="theme-color"/>
|
||||
<meta content="#566B78" media="(prefers-color-scheme: light)" name="theme-color"/>
|
||||
<meta content="Michael Housh" name="author"/>
|
||||
<meta content="Mhoush" name="apple-mobile-web-app-title"/>
|
||||
<meta content="initial-scale=1.0, width=device-width" name="viewport"/>
|
||||
<meta content="telephone=no" name="format-detection"/>
|
||||
<meta content="True" name="HandheldFriendly"/>
|
||||
<meta content="320" name="MobileOptimized"/>
|
||||
<meta content="Mhoush" name="og:site_name"/>
|
||||
<meta content="hvac, developer, swift, home-performance, design" name="keywords"/>
|
||||
<title>
|
||||
mhoush: Why Mini Splits Stink
|
||||
</title>
|
||||
<link href="/static/favicon.ico" rel="shortcut icon"/>
|
||||
<link href="/static/output.css" rel="stylesheet"/>
|
||||
<link href="/static/style.css" rel="stylesheet"/>
|
||||
<link href="/articles/feed.xml" rel="alternate" title="mhoush" type="application/rss+xml"/>
|
||||
<link href="/static/prism.css" rel="stylesheet"/>
|
||||
<meta content="In this general article, I explain why I don’t generally like to use mini-splits.
|
||||
The Positive Sides
|
||||
When people say mini-splits, in general we mean “ductless” style units. These can either be high wall, floor mounted, or ceiling mounted
|
||||
consoles...." name="description"/>
|
||||
<meta content="summary_large_image" name="twitter:card"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-14-why-mini-splits-stink.png" name="twitter:image"/>
|
||||
<meta content="Why Mini Splits Stink" name="twitter:image:alt"/>
|
||||
<meta content="http://localhost:3000/articles/images//articles/2023/why-mini-splits-stink/" name="og:url"/>
|
||||
<meta content="Why Mini Splits Stink" name="og:title"/>
|
||||
<meta content="In this general article, I explain why I don’t generally like to use mini-splits.
|
||||
The Positive Sides
|
||||
When people say mini-splits, in general we mean “ductless” style units. These can either be high wall, floor mounted, or ceiling mounted
|
||||
consoles...." name="og:description"/>
|
||||
<meta content="http://localhost:3000/articles/images/2023-09-14-why-mini-splits-stink.png" name="og:image"/>
|
||||
<meta content="1014" name="og:image:width"/>
|
||||
<meta content="530" name="og:image:height"/>
|
||||
<script crossorigin="anonymous" src="https://kit.fontawesome.com/f209982030.js">
|
||||
</script>
|
||||
</head>
|
||||
<body class="bg-page text-white pb-5 font-avenir articles">
|
||||
<header class="bg-nav text-gray py-4 text-base/6 lg:fixed w-full lg:h-[62px]">
|
||||
<nav class="container flex gap-x-5 lg:gap-x-y items-center">
|
||||
<ul class="flex flex-wrap gap-x-2 lg:gap-x-5">
|
||||
<li>
|
||||
<a class href="/">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="active" href="/articles/">Articles</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class href="/about/">About</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="container pt-12 lg:pt-28">
|
||||
<article class="prose">
|
||||
<h1>
|
||||
Why Mini Splits Stink
|
||||
</h1>
|
||||
<div class="-mt-6">
|
||||
<div class="text-gray gray-links text-sm">
|
||||
<span class="border-r border-gray pr-2 mr-2">September 14, 2023</span>758 words, posted in <a href="/articles/tag/hvac/">HVAC</a>
|
||||
</div>
|
||||
</div>
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-09-14-why-mini-splits-stink.png"/>
|
||||
<p>In this general article, I explain why I don’t generally like to use mini-splits.</p>
|
||||
<h2>The Positive Sides</h2>
|
||||
<p>When people say mini-splits, in general we mean “ductless” style units. These can either be high wall, floor mounted, or ceiling mounted
|
||||
consoles. These units do offer really high efficiency and becuase they’re “ductless” you don’t have duct gains/losses.</p>
|
||||
<p>These units are common in many other countries and have been around for a long time. They do are generally quick and fairly easy to install,
|
||||
but are mostly a pain in the tail to work on.</p>
|
||||
<p>So, the plus side to these units are that they are really efficient, they generally have models that have a high-heat output for colder
|
||||
climates, although this option is becoming more prevelant in traditional unitary style heat pumps as well. You do not have heat gains or
|
||||
losses due to ductwork being in unconditioned spaces.</p>
|
||||
<h2>The Down Sides</h2>
|
||||
<p>Most mini-split systems do not do the greatest at humidity removal. This is partially because they use proprietary algorithms to control the
|
||||
blower and compressor. They do achieve long run-times, which is often good for comfort stand points, however there is generally not a good
|
||||
way to control / hack them to work towards achieving good IAQ.</p>
|
||||
<p>These units offer next to no filtration, so in order to have filtration you need to utilize a stand-alone / portable filtration means. Which
|
||||
a lot of the portable filtration systems have problems of their own (come bundled with UV / PCO technology or other “space” technology that
|
||||
can lead to their own IAQ problems). It also introduces another fan, which may / may not be that efficient. In other words, when considering
|
||||
other items to make them more comparable to what a traditional system offers, are they really that much more efficient?</p>
|
||||
<p>These systems also do not have a good method of offering basic fresh air control / management, so other systems, such as an ERV need to be
|
||||
installed to handle the fresh air requirements of the building.</p>
|
||||
<p>The controls for these systems are often hard to understand / use. They do allow you to change fan speeds, but they control the compressor.
|
||||
The fans often run all the time, which is not necessarily a bad thing, but they don’t really offer many ramping profiles or adjustments to
|
||||
change the blower speed when the compressor is off vs. on.</p>
|
||||
<p>These systems get dirty quickly, are generally a pain to clean properly, and are not easily repairable. Manufacturer support is often poor,
|
||||
the documents aren’t always translated very well, and most technicians hate to work on them.</p>
|
||||
<h1>What about ducted models?</h1>
|
||||
<p>But what about the ducted models? Well, the ducted models are a step in the right direction. You can use filters on them, although some of
|
||||
the manufacturer’s do not recommend installing better / improved filter cabinets (like a 4-5” media filter), however we have done that
|
||||
successfully many times and always include media filters as an option on our installations, but you do need to make sure that they have a
|
||||
very low pressure drop, as they a lot are not designed for very much static pressure.</p>
|
||||
<p>The ducted models still generally have the same control problems, previously mentioned. If you read my introduction to the
|
||||
<a href="https://mhoush.com/posts/coil-bypass-overview/">coil-bypass-system</a>, you have a basic understanding that even most traditional systems /
|
||||
designers do not focus on the proper air-changes in a structure to maintain proper IAQ levels.</p>
|
||||
<p>You can’t easily pair mini-splits with larger fan-coils because they are “communicating” style systems.</p>
|
||||
<h2>Conclusion</h2>
|
||||
<p>Don’t get me wrong, there are applications that are well suited for mini-splits. These are often applications like sun-rooms, garages, small
|
||||
server-rooms / network storage rooms, and many others. But in my opinion these are not at all my favorite and are generally really far down
|
||||
my list of options that I want to recommend to my clients.</p>
|
||||
<p>As an industry, I feel we need to step back and refocus on the pillars of IAQ. Filtration, fresh-air, and humidity control. The
|
||||
manufacturers / government should put less emphasis on chasing efficiency just to shoot ourselves in the foot and loose the qualities that
|
||||
make traditional / unitary style systems cover more if not all of the 3 pillars of proper IAQ.</p>
|
||||
<p>There’s plenty that I did not cover and I’m sure I missed some things, but just needed to rant for a few minutes… Thank you for making it
|
||||
to the end!</p>
|
||||
</article>
|
||||
<div class="border-t border-light mt-8 pt-8">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
Written by
|
||||
</h2>
|
||||
<div class="flex flex-col lg:flex-row gap-8">
|
||||
<div class="flex-[0_0_120px]">
|
||||
<img class="w-[120px] h-[120px] rounded-full" src="/static/images/avatar.png"/>
|
||||
</div>
|
||||
<div class="prose">
|
||||
<h3 class="!m-0">
|
||||
Michael Housh
|
||||
</h3>
|
||||
<p class="text-gray">
|
||||
HVAC business owner with over 27 years of experience. Writes articles about HVAC,
|
||||
Programming, Home-Performance, and Building Science
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-16">
|
||||
<h2 class="text-4xl font-extrabold mb-8">
|
||||
More articles
|
||||
</h2>
|
||||
<div class="grid lg:grid-cols-2 gap-10">
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2025/vapor-htmx-todo-app/">Vapor + HTMX</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">January 05, 2025</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/programming/">programming</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2025/vapor-htmx-todo-app/"><div>
|
||||
Build an example application using Vapor and HTMX.
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
<section>
|
||||
<h2 class="text-2xl font-bold mb-2">
|
||||
<a class="[&:hover]:border-b border-orange" href="/articles/2024/free-as-in-freedom/">Free As In Freedom</a>
|
||||
</h2>
|
||||
<div class="text-gray gray-links text-sm mb-4">
|
||||
<span class="border-r border-gray pr-2 mr-2">April 09, 2024</span><a href="/articles/tag/general/">general</a>, <a href="/articles/tag/open-source/">open-source</a> and <a href="/articles/tag/software/">software</a>
|
||||
</div>
|
||||
<p>
|
||||
<a href="/articles/2024/free-as-in-freedom/"><div>
|
||||
Salute to open-source software engineers
|
||||
</div></a>
|
||||
</p>
|
||||
</section>
|
||||
</div>
|
||||
<p class="prose mt-8">
|
||||
<a href="/articles/">› See all articles</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="site-footer container text-gray gray-links border-t border-light text-center pt-6 mt-8 text-sm">
|
||||
<p>
|
||||
Copyright © Michael Housh 2023-2025.
|
||||
</p>
|
||||
<p>
|
||||
Built in Swift using
|
||||
<a href="https://github.com/loopwerk/Saga" rel="nofollow" target="_blank">Saga</a>
|
||||
(<a href="https://github.com/m-housh/mhoush.com" rel="nofollow" target="_blank">source</a>).
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://localhost:3000/articles/feed.xml" rel="nofollow" target="_blank">RSS</a>
|
||||
|
|
||||
<a href="https://github.com/m-housh" rel="nofollow" target="_blank">Github</a>
|
||||
|
|
||||
<a href="https://www.youtube.com/channel/UCb58SeURd5bObfTiL0KoliA" rel="nofollow" target="_blank">Youtube</a>
|
||||
|
|
||||
<a href="https://www.facebook.com/michael.housh" rel="nofollow" target="_blank">Facebook</a>
|
||||
|
|
||||
<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>
|
||||
@@ -68,25 +68,25 @@ converted to other formats, such as html, pdf, docx, and many more. All..." name
|
||||
<img alt="banner" src="http://localhost:3000/articles/images/2023-10-21-you-should-learn-markdown.png"/>
|
||||
<p>This is a quick article about why you should learn markdown.</p>
|
||||
<h2>What is markdown</h2>
|
||||
<p>Markdown is a “mark-up” language. It allows you to write content in plain text that can be easily<br />
|
||||
converted to other formats, such as <strong>html, pdf, docx</strong>, and many more. All the articles written on<br />
|
||||
<p>Markdown is a “mark-up” language. It allows you to write content in plain text that can be easily
|
||||
converted to other formats, such as <strong>html, pdf, docx</strong>, and many more. All the articles written on
|
||||
this website are written in markdown, here’s an image of this article written in markdown.</p>
|
||||
<p><img src="/articles/images/2023-10-21-markdown.png" alt="markdown" /></p>
|
||||
<p>The reason you should learn markdown is that it allows you to focus on the content / text of your<br />
|
||||
content with simple concepts for formatting. Markdown is used heavily in documenting software<br />
|
||||
projects, which is how I got introduced to it, however it can scale all the way up to writing<br />
|
||||
<p>The reason you should learn markdown is that it allows you to focus on the content / text of your
|
||||
content with simple concepts for formatting. Markdown is used heavily in documenting software
|
||||
projects, which is how I got introduced to it, however it can scale all the way up to writing
|
||||
research papers or even books.</p>
|
||||
<p>I use markdown for probably 80% of all the text documents I need to write, from company documents,<br />
|
||||
web / software documentation, and so on. It allows me to get content out quickly without having to<br />
|
||||
click around with formatting options in a program like <strong>Word</strong> or <strong>Pages</strong>. To be clear, a lot of<br />
|
||||
the reports and things I generate for my <strong>Home Performance Assessments</strong> are written using<br />
|
||||
<strong>Pages</strong> (for now at least) because I have templates that make the documents look more<br />
|
||||
<p>I use markdown for probably 80% of all the text documents I need to write, from company documents,
|
||||
web / software documentation, and so on. It allows me to get content out quickly without having to
|
||||
click around with formatting options in a program like <strong>Word</strong> or <strong>Pages</strong>. To be clear, a lot of
|
||||
the reports and things I generate for my <strong>Home Performance Assessments</strong> are written using
|
||||
<strong>Pages</strong> (for now at least) because I have templates that make the documents look more
|
||||
professional, however I am working on solutions to migrate those to be markdown based.</p>
|
||||
<p>Markdown is supported in mostly all the <strong>Google</strong> tools, as well as the <strong>Outlook</strong> email client<br />
|
||||
(which is one of my least favorite tools, BTW). It makes it simple to create tables, lists, and many<br />
|
||||
<p>Markdown is supported in mostly all the <strong>Google</strong> tools, as well as the <strong>Outlook</strong> email client
|
||||
(which is one of my least favorite tools, BTW). It makes it simple to create tables, lists, and many
|
||||
common document related tasks.</p>
|
||||
<h2>Resources</h2>
|
||||
<p>You can learn more about the syntax used for markdown at<br />
|
||||
<p>You can learn more about the syntax used for markdown at
|
||||
<a href="https://www.markdownguide.org/basic-syntax/">markdownguide.org</a>.</p>
|
||||
<h3>A non-exhaustive list of where you can use Markdown and editors.</h3>
|
||||
<table>
|
||||
@@ -118,7 +118,7 @@ common document related tasks.</p>
|
||||
<p>You can use tools such as <a href="https://pandoc.org/#">pandoc</a> to convert Markdown files to other formats.</p>
|
||||
<p><img src="/articles/images/2023-10-21-pandoc.gif" alt="pandoc" /></p>
|
||||
<h2>Conclusion</h2>
|
||||
<p>I hope that you take the time to research and see if Markdown is good fit for your document /<br />
|
||||
<p>I hope that you take the time to research and see if Markdown is good fit for your document /
|
||||
content creation.</p>
|
||||
<p>Thanks for reading until the end!</p>
|
||||
</article>
|
||||
@@ -155,7 +155,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>
|
||||
@@ -169,7 +168,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>
|
||||
@@ -200,6 +198,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>
|
||||
Reference in New Issue
Block a user