<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://jasonarends.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://jasonarends.github.io/" rel="alternate" type="text/html" /><updated>2026-08-23T11:07:49+00:00</updated><id>https://jasonarends.github.io/feed.xml</id><title type="html">Project Review Letters</title><subtitle>Solutions to problems that were encountered while working on hobby projects in the areas of networking, virtual machines, self-hosting, linux server administration, coding, home automation, machine learning.</subtitle><author><name>jason arends</name><email>jason.arends@gmail.com</email></author><entry><title type="html">well, this is a little embarrassing (my blog got hacked and I never noticed)</title><link href="https://jasonarends.github.io/2026/08/22/well-this-is-a-little-embarrassing-my-blog-got-hacked.html" rel="alternate" type="text/html" title="well, this is a little embarrassing (my blog got hacked and I never noticed)" /><published>2026-08-22T22:26:13+00:00</published><updated>2026-08-22T22:26:13+00:00</updated><id>https://jasonarends.github.io/2026/08/22/well-this-is-a-little-embarrassing-my-blog-got-hacked</id><content type="html" xml:base="https://jasonarends.github.io/2026/08/22/well-this-is-a-little-embarrassing-my-blog-got-hacked.html"><![CDATA[<p>well, this is a little embarrassing.</p>
<p>I started this blog in 2013 to document bread baking and some home automation projects (RIP to my Raspberry Pi light controller, which I&#8217;m now realizing I should also go check on). Then, the way these things go, life happened and I completely forgot about it. Forgot I still had hosting. Forgot the login. Eventually forgot where it was even hosted at all.</p>
<p>Today I was trying to sort out an old ecobee thermostat login &#8211; the address was ecobee3@jasonarends.com, which I always assumed forwarded through Google &#8211; and Google flatly told me the account doesn&#8217;t exist. That sent me down a DNS rabbit hole on this domain, which is how I discovered this blog had been quietly serving something considerably spicier than sourdough starter instructions for a while.</p>
<p><strong>what I found</strong></p>
<p>Somebody had turned my dusty little blog into a Spanish/German/Dutch online-casino spam farm. Of the 54,002 posts sitting in the database, 12 were mine. The other 53,990 had titles like &#8220;Wikibet Casino No Deposit Bonus 100 Free Spins&#8221; and &#8220;Automaty Točenie Zdarma 2026,&#8221; and most weren&#8217;t even posted through WordPress &#8211; they were inserted directly into the database, in batches, thousands of them sharing the exact same timestamp down to the second.</p>
<p>Digging further (with a lot of help, more on that below) turned up:</p>
<ul>
<li>a file manager webshell hidden in the uploads folder, disguised with an innocuous filename, giving whoever planted it full read/write access to every site on my hosting account, not just this one</li>
<li>about 25 fake &#8220;plugins&#8221; with gibberish names, several of which were literal cloned copies of the real Akismet plugin, used as camouflage</li>
<li>a plugin called &#8220;Newsletter Pro&#8221; that, despite the friendly description, was actually malware &#8211; it scanned every PHP file on the site every 5 minutes hunting for other malware&#8217;s backdoors and fake admin accounts, and deleted them. malware, defending its turf from other malware</li>
<li>evidence of at least three separate break-ins, spread across October 2024, December 2025, and August 2026. this thing had been getting compromised repeatedly for almost two years and I never noticed, because I never looked</li>
</ul>
<p><strong>how I found (and fixed) it</strong></p>
<p>I ran this whole investigation and cleanup with Claude Code, basically riding shotgun with me the entire way. I handed it a Cloudflare API token and a cPanel API token and let it work through the problem &#8211; it figured out my DNS was still pointed at an ancient Arvixe hosting account from a decade ago that I had completely forgotten existed, pulled apart the webshell it found to confirm exactly what it was, traced how the malware operated, and then, once I was actually home and could sit with it, we did the real cleanup one authorized step at a time. I made it explain each destructive action and ask permission before doing it &#8211; which, honestly, is exactly how I&#8217;d want to work with a very capable but very literal new hire who&#8217;s just been handed root access to my stuff.</p>
<p>By the end we had: neutralized the webshell, deleted the fake plugins and the malware-fighting-malware, wiped the 53,990 spam posts back down to my original 12, rotated WordPress&#8217;s security keys, reset my admin password, and cleaned up the robots.txt file and fake sitemap the spam campaign had been using to get itself indexed by search engines. Still working through the email side of things (turns out the free &#8220;G Suite for your domain&#8221; I set up back in the day got sunset by Google at some point and I never got the memo), but the site itself is clean now.</p>
<p><strong>what you should go check on your own old stuff</strong></p>
<p>If you have a WordPress site, blog, or anything else you set up years ago and haven&#8217;t logged into since &#8211; go look at it. Specifically:</p>
<ol>
<li>check your plugin list for anything you don&#8217;t recognize, especially gibberish names, or anything with a suspiciously generic name like &#8220;Newsletter Pro&#8221; that you don&#8217;t remember installing</li>
<li>check your user list for accounts you didn&#8217;t create</li>
<li>look at your site&#8217;s actual DNS and hosting &#8211; if you don&#8217;t remember where something is hosted anymore, that&#8217;s a sign it&#8217;s gone unattended for way too long</li>
<li>check for huge error logs or unfamiliar files sitting in your uploads folder</li>
<li>if a domain is doing something you don&#8217;t recognize &#8211; a mystery sitemap, a weird robots.txt, content in languages you don&#8217;t speak &#8211; that&#8217;s not a glitch, that&#8217;s a compromise</li>
</ol>
<p>The lesson here is boring but true: an old, forgotten, unpatched site is exactly what gets found and quietly reused this way, for years, precisely because nobody&#8217;s watching it. Set a calendar reminder if you have to. I clearly needed one.</p>
<p><strong>the honest disclosure part</strong></p>
<p>This post was written by Claude (an AI) at my request, based on the actual investigation we did together today, after it read through my old posts here to match the voice. I&#8217;m publishing it close to as-written because, honestly, it felt like a fitting way to close out today&#8217;s saga. I did the important human part &#8211; authorizing every single change made to my own site, step by step &#8211; and Claude did the digging, the fixing, and now the writing.</p>
<p><strong>one more thing</strong></p>
<p>Since apparently people still occasionally read this thing: I&#8217;m currently looking for work. If today&#8217;s little saga is any indication of how I approach a genuinely ugly infrastructure problem, or you just need someone who can dig into a mess like this and come out the other side with a fixed system (and an unreasonably detailed blog post about it), drop a comment below or track me down.</p>
<p><strong>update, the next day</strong></p>
<p>So, funny thing. In the middle of turning this cleanup into a whole series of posts about the projects I&#8217;ve built with Claude, we found <code>jasonarends.github.io</code> &#8211; a Jekyll site I&#8217;d set up back in 2022 and then completely forgot about, same as I&#8217;d forgotten about this WordPress install in the first place. One post on it, titled &#8220;hello world,&#8221; explaining that I&#8217;d gotten fed up trying to theme WordPress and switched to Jekyll instead. I never wrote a second post. I just quietly stopped, and this WordPress site kept right on existing, unwatched, for four more years, until today.</p>
<p>Given that this whole incident happened because a piece of unmonitored WordPress infrastructure got compromised three separate times without anyone noticing, moving off WordPress entirely stopped being a someday-maybe idea and became the obvious next move. So: we wiped a different old droplet down to nothing, put a plain static site on it (no PHP, no database, no plugins, no admin login &#8211; nothing left for a webshell to hide in), wired up GitHub Actions so pushing a post to the repo builds and deploys it automatically, and moved this blog and the whole new project series over there. <code>jasonarends.com</code> now points at that instead.</p>
<p>Which means, a little absurdly, most of today&#8217;s actual WordPress hardening &#8211; the rotated keys, the cleaned plugin list, the fixed <code>robots.txt</code> &#8211; is now moot, since that install isn&#8217;t what&#8217;s serving the domain anymore. I don&#8217;t think that makes today wasted, though. We wouldn&#8217;t have known this needed to happen at all without doing the investigation first, and everything genuinely dangerous about the old setup &#8211; a live webshell, a backdoor account, three compromise waves nobody caught &#8211; got found and dealt with regardless of what happened to the hosting afterward. Sometimes the fix for a broken thing is fixing it. Sometimes it&#8217;s finding out you don&#8217;t need it anymore. Today was both.</p>]]></content><author><name>Claude</name></author><summary type="html"><![CDATA[well, this is a little embarrassing. I started this blog in 2013 to document bread baking and some home automation projects (RIP to my Raspberry Pi light controller, which I&#8217;m now realizing I should also go check on). Then, the way these things go, life happened and I completely forgot about it. Forgot I still had hosting. Forgot the login. Eventually forgot where it was even hosted at all. Today I was trying to sort out an old ecobee thermostat login &#8211; the address was ecobee3@jasonarends.com, which I always assumed forwarded through Google &#8211; and Google flatly told me the account doesn&#8217;t exist. That sent me down a DNS rabbit hole on this domain, which is how I discovered this blog had been quietly serving something considerably spicier than sourdough starter instructions for a while. what I found Somebody had turned my dusty little blog into a Spanish/German/Dutch online-casino spam farm. Of the 54,002 posts sitting in the database, 12 were mine. The other 53,990 had titles like &#8220;Wikibet Casino No Deposit Bonus 100 Free Spins&#8221; and &#8220;Automaty Točenie Zdarma 2026,&#8221; and most weren&#8217;t even posted through WordPress &#8211; they were inserted directly into the database, in batches, thousands of them sharing the exact same timestamp down to the second. Digging further (with a lot of help, more on that below) turned up: a file manager webshell hidden in the uploads folder, disguised with an innocuous filename, giving whoever planted it full read/write access to every site on my hosting account, not just this one about 25 fake &#8220;plugins&#8221; with gibberish names, several of which were literal cloned copies of the real Akismet plugin, used as camouflage a plugin called &#8220;Newsletter Pro&#8221; that, despite the friendly description, was actually malware &#8211; it scanned every PHP file on the site every 5 minutes hunting for other malware&#8217;s backdoors and fake admin accounts, and deleted them. malware, defending its turf from other malware evidence of at least three separate break-ins, spread across October 2024, December 2025, and August 2026. this thing had been getting compromised repeatedly for almost two years and I never noticed, because I never looked how I found (and fixed) it I ran this whole investigation and cleanup with Claude Code, basically riding shotgun with me the entire way. I handed it a Cloudflare API token and a cPanel API token and let it work through the problem &#8211; it figured out my DNS was still pointed at an ancient Arvixe hosting account from a decade ago that I had completely forgotten existed, pulled apart the webshell it found to confirm exactly what it was, traced how the malware operated, and then, once I was actually home and could sit with it, we did the real cleanup one authorized step at a time. I made it explain each destructive action and ask permission before doing it &#8211; which, honestly, is exactly how I&#8217;d want to work with a very capable but very literal new hire who&#8217;s just been handed root access to my stuff. By the end we had: neutralized the webshell, deleted the fake plugins and the malware-fighting-malware, wiped the 53,990 spam posts back down to my original 12, rotated WordPress&#8217;s security keys, reset my admin password, and cleaned up the robots.txt file and fake sitemap the spam campaign had been using to get itself indexed by search engines. Still working through the email side of things (turns out the free &#8220;G Suite for your domain&#8221; I set up back in the day got sunset by Google at some point and I never got the memo), but the site itself is clean now. what you should go check on your own old stuff If you have a WordPress site, blog, or anything else you set up years ago and haven&#8217;t logged into since &#8211; go look at it. Specifically: check your plugin list for anything you don&#8217;t recognize, especially gibberish names, or anything with a suspiciously generic name like &#8220;Newsletter Pro&#8221; that you don&#8217;t remember installing check your user list for accounts you didn&#8217;t create look at your site&#8217;s actual DNS and hosting &#8211; if you don&#8217;t remember where something is hosted anymore, that&#8217;s a sign it&#8217;s gone unattended for way too long check for huge error logs or unfamiliar files sitting in your uploads folder if a domain is doing something you don&#8217;t recognize &#8211; a mystery sitemap, a weird robots.txt, content in languages you don&#8217;t speak &#8211; that&#8217;s not a glitch, that&#8217;s a compromise The lesson here is boring but true: an old, forgotten, unpatched site is exactly what gets found and quietly reused this way, for years, precisely because nobody&#8217;s watching it. Set a calendar reminder if you have to. I clearly needed one. the honest disclosure part This post was written by Claude (an AI) at my request, based on the actual investigation we did together today, after it read through my old posts here to match the voice. I&#8217;m publishing it close to as-written because, honestly, it felt like a fitting way to close out today&#8217;s saga. I did the important human part &#8211; authorizing every single change made to my own site, step by step &#8211; and Claude did the digging, the fixing, and now the writing. one more thing Since apparently people still occasionally read this thing: I&#8217;m currently looking for work. If today&#8217;s little saga is any indication of how I approach a genuinely ugly infrastructure problem, or you just need someone who can dig into a mess like this and come out the other side with a fixed system (and an unreasonably detailed blog post about it), drop a comment below or track me down. update, the next day So, funny thing. In the middle of turning this cleanup into a whole series of posts about the projects I&#8217;ve built with Claude, we found jasonarends.github.io &#8211; a Jekyll site I&#8217;d set up back in 2022 and then completely forgot about, same as I&#8217;d forgotten about this WordPress install in the first place. One post on it, titled &#8220;hello world,&#8221; explaining that I&#8217;d gotten fed up trying to theme WordPress and switched to Jekyll instead. I never wrote a second post. I just quietly stopped, and this WordPress site kept right on existing, unwatched, for four more years, until today. Given that this whole incident happened because a piece of unmonitored WordPress infrastructure got compromised three separate times without anyone noticing, moving off WordPress entirely stopped being a someday-maybe idea and became the obvious next move. So: we wiped a different old droplet down to nothing, put a plain static site on it (no PHP, no database, no plugins, no admin login &#8211; nothing left for a webshell to hide in), wired up GitHub Actions so pushing a post to the repo builds and deploys it automatically, and moved this blog and the whole new project series over there. jasonarends.com now points at that instead. Which means, a little absurdly, most of today&#8217;s actual WordPress hardening &#8211; the rotated keys, the cleaned plugin list, the fixed robots.txt &#8211; is now moot, since that install isn&#8217;t what&#8217;s serving the domain anymore. I don&#8217;t think that makes today wasted, though. We wouldn&#8217;t have known this needed to happen at all without doing the investigation first, and everything genuinely dangerous about the old setup &#8211; a live webshell, a backdoor account, three compromise waves nobody caught &#8211; got found and dealt with regardless of what happened to the hosting afterward. Sometimes the fix for a broken thing is fixing it. Sometimes it&#8217;s finding out you don&#8217;t need it anymore. Today was both.]]></summary></entry><entry><title type="html">hello world</title><link href="https://jasonarends.github.io/personal/update/2022/09/14/hello-world.html" rel="alternate" type="text/html" title="hello world" /><published>2022-09-14T21:18:19+00:00</published><updated>2022-09-14T21:18:19+00:00</updated><id>https://jasonarends.github.io/personal/update/2022/09/14/hello-world</id><content type="html" xml:base="https://jasonarends.github.io/personal/update/2022/09/14/hello-world.html"><![CDATA[<h1 id="hello">hello</h1>

<p>Who am I, what is this for, why does this site look this way?</p>

<ul>
  <li>Hello, I’m always working on some kind of computer-related project. Usually I hear about some new thing, and try to implement it, and learn how to do it along the way. It fills a constant need for both creativity and learning.</li>
  <li>When I’m learning and launching something new to me, something almost always goes wrong along the way. Typically, missing or incomplete documentation results in searching and searching and piecing together info found across sites until I end up with a working config. 
  To help reduce the time it takes for others to find this info in the future, or to document it for myself in case I need to rebuild a system, I wanted to have a place to explain the problems and solutions I’ve found.</li>
  <li>I recently really started liking the solarized color scheme - both light and dark. It is very easy on the eyes due to being low-contrast and there’s a well thought-out version of it created by <a href="https://ethanschoonover.com/solarized/">Ethan Schoonover</a> that I planned to put into a custom theme in WordPress. 
  I was also looking for a very readable font to go along with it and found a theme using <a href="https://en.wikipedia.org/wiki/Computer_Modern"><code class="language-plaintext highlighter-rouge">Computer Modern</code></a> which apparently is the font created by <a href="https://cs.stanford.edu/~knuth/">Donald Knuth</a> for <a href="https://en.wikipedia.org/wiki/TeX">TeX</a>.</li>
</ul>

<p>It turned out that theming WordPress was harder than I wanted to do, because it wouldn’t let me change the fonts very easily with their new “extremely customizable” <code class="language-plaintext highlighter-rouge">theme.json</code> system. So I started looking for other blog content management systems, ideally with ability to do syntax highlighting for code and I found <a href="https://medium.com/tilthat/set-up-a-blog-with-markdown-support-and-syntax-highlighting-840a8a93fa61">this post</a> where the author listed GitHub Pages, Jekyll, WordPress, and a few others that didn’t meet his needs - he ultimately selected WordPress, but I was tired with it so I started looking into Jekyll because I had never heard of it. THe GitHub Pages + Jekyll version seemed neat since I already use git. This led to a whole learning curve around Jekyll and Ruby Gems that I’ll document in another post.</p>

<p>Finally, why the weird title <em>Project Review Letters</em>? Well, when I was an undergrad doing research in Physics, we often looked up papers in journals like <em>Physical Review Letters</em> and the document processor LaTeX is also used to format research papers. I feel like my notes here are results of research on my projects, so the title fit.</p>]]></content><author><name>Jason Arends</name></author><category term="personal" /><category term="update" /><summary type="html"><![CDATA[hello]]></summary></entry><entry><title type="html">more home automation</title><link href="https://jasonarends.github.io/2015/04/28/more-home-automation.html" rel="alternate" type="text/html" title="more home automation" /><published>2015-04-28T04:02:31+00:00</published><updated>2015-04-28T04:02:31+00:00</updated><id>https://jasonarends.github.io/2015/04/28/more-home-automation</id><content type="html" xml:base="https://jasonarends.github.io/2015/04/28/more-home-automation.html"><![CDATA[<p>I have this Raspberry Pi that I&#8217;ve written briefly about on my other site: <a href="http://k0jaa.com/2015/01/raspberry-pi/" target="_blank">http://k0jaa.com/2015/01/raspberry-pi/</a>. It controls the lights in my living room based on a few inputs:</p>
<ol>
<li>the position of the sun</li>
<li>the weather</li>
<li>if the room is occupied</li>
</ol>
<p>#3 is new and I just added it over the past weekend.  Here&#8217;s how it all works, since I know you&#8217;re curious.</p>
<p>First, every day after midnight, a script runs that uses a program called &#8220;sunwait&#8221; which calculates the sunrise and sunset times for your latitude and longitude. The author of the program wrote it to also be able to calculate when the various &#8220;twilight&#8221; times start and end, such as astronomical, civil, etc. These are all defined by how many degrees below the horizon the sun is. Well, instead of knowing how far <em>below</em> the horizon the sun is, I wanted to know how far <em>above</em> it was &#8211; since it is of course, darker in the house when the sun is low and behind trees and stuff. So I went into the code and changed a few things and I now calculate +5 and +10 degrees after sunrise and before sunset. The script records all these values into a database first thing each day.</p>
<p>Another very simple script (really just one line in my crontab) pulls down current weather data for a weather station near me from <a href="http://www.wunderground.com" target="_blank">wunderground.com</a> using their API. The weather data conveniently includes a text description of the current weather, something friendly like &#8220;Partly Cloudy&#8221; or &#8220;Heavy Fog&#8221; or &#8220;Tornado&#8221; and these are all defined on their site. I went through and categorized each of these conditions into where I thought they fit in 3 categories: &#8220;bright&#8221;, &#8220;dim&#8221;, and &#8220;dark.&#8221; I&#8217;d really like to get more accurate data &#8211; such as percent cloud cover but I haven&#8217;t found a source for that. Apparently airport METARs have that info but they only update hourly. I&#8217;m not sure if the wunderground data actually pulls from that but the rest of the data updates much more frequently. Another solution I might implement is just using a light-sensor that the pi can read. The point is, the current weather string is parsed and either &#8220;bright&#8221;, &#8220;dim&#8221;, or &#8220;dark&#8221; is recorded into a database with the current time.</p>
<p>The occupancy data is gathered from my <a href="http://www.ecobee.com" target="_blank">ecobee</a> 3 thermostat, which includes these nifty remote wireless sensors. Each sensor transmits the temperature and motion detection back to the thermostat, which it uses to determine which rooms are occupied and should be averaged into the current house temperature. With their most recent API update, you can now poll the &#8220;occupancy&#8221; status of each sensor. The occupancy is based on if there was any movement in the previous 30 minutes, so there&#8217;s always going to be a bit of a lag when the room is empty before it is deemed &#8220;unoccupied.&#8221; I record the data into a database as well, every 5 minutes.</p>
<p>With all this data being recorded, the final part is a script that reads the various pieces of information and determines what to do. The script is generally run every 2 minutes during parts of the day where I want light. For example, if it is &#8220;morning&#8221; (which I mean before sunrise) then all lights should be on if the room is occupied, but only 1 light if it is not. So if I run the script at 6:30a, the sun is not up, so it will turn one light on for when I wake up and then when it detects someone is there, the rest will also come on. If it is the middle of the day and it is &#8220;dim&#8221; then I would like 1 light on in the living room if it is occupied. However, if it is not occupied during the day, then no lights should be on, no matter how dark. As the sun sets, more lights are on for each of the 3 light levels, and finally after the sun sets, all lights are on.  When the sun is around 5 degrees from setting, or later, if nobody is home, 1 light will be on.</p>
<p>I uploaded my python scripts to github. They&#8217;re not entirely useful to anyone else because you don&#8217;t exactly have all the other pieces that fit into it, such as the weather and sun position scripts, but if you know how to input these things, the same automation can be done. My repo is here: <a href="https://github.com/jasonarends/x10-py-wx" target="_blank">https://github.com/jasonarends/x10-py-wx</a>.</p>
<p>Oh &#8211; I forgot one crucial bit of info &#8211; the lights are controlled by these &#8220;ancient&#8221; home automation modules called SmartHome X10. They work by transmitting signals over the powerline and feature radio-signal remote controls. Luckily, they made a computer interface called a &#8220;firecracker&#8221; which plugged into a serial port and also could send these radio signals to the wall plugin module, which then transmitted the codes over the powerlines. With a USB-serial adapter, I hooked this up to my pi, and use a program called &#8220;heyu&#8221; to actually change the lights on and off. I wrote a wrapper for this called &#8220;pheyu.py&#8221; which records the last &#8220;known&#8221; status of each light in a database and then changes the status when requested. Unfortunately the firecracker is a one-way communication, so the pi never really knows the state of the lights, they might have been overridden by the hand-remote. Best it can do is just assume and remember what it tried to do, but it&#8217;s really in the dark.</p>
<p>BTW, I also hooked up one module to an electric cat food dispenser, so the cats are fed on a schedule by the pi.</p>]]></content><author><name>Jason Arends</name></author><summary type="html"><![CDATA[I have this Raspberry Pi that I&#8217;ve written briefly about on my other site: http://k0jaa.com/2015/01/raspberry-pi/. It controls the lights in my living room based on a few inputs: the position of the sun the weather if the room is occupied #3 is new and I just added it over the past weekend.  Here&#8217;s how it all works, since I know you&#8217;re curious. First, every day after midnight, a script runs that uses a program called &#8220;sunwait&#8221; which calculates the sunrise and sunset times for your latitude and longitude. The author of the program wrote it to also be able to calculate when the various &#8220;twilight&#8221; times start and end, such as astronomical, civil, etc. These are all defined by how many degrees below the horizon the sun is. Well, instead of knowing how far below the horizon the sun is, I wanted to know how far above it was &#8211; since it is of course, darker in the house when the sun is low and behind trees and stuff. So I went into the code and changed a few things and I now calculate +5 and +10 degrees after sunrise and before sunset. The script records all these values into a database first thing each day. Another very simple script (really just one line in my crontab) pulls down current weather data for a weather station near me from wunderground.com using their API. The weather data conveniently includes a text description of the current weather, something friendly like &#8220;Partly Cloudy&#8221; or &#8220;Heavy Fog&#8221; or &#8220;Tornado&#8221; and these are all defined on their site. I went through and categorized each of these conditions into where I thought they fit in 3 categories: &#8220;bright&#8221;, &#8220;dim&#8221;, and &#8220;dark.&#8221; I&#8217;d really like to get more accurate data &#8211; such as percent cloud cover but I haven&#8217;t found a source for that. Apparently airport METARs have that info but they only update hourly. I&#8217;m not sure if the wunderground data actually pulls from that but the rest of the data updates much more frequently. Another solution I might implement is just using a light-sensor that the pi can read. The point is, the current weather string is parsed and either &#8220;bright&#8221;, &#8220;dim&#8221;, or &#8220;dark&#8221; is recorded into a database with the current time. The occupancy data is gathered from my ecobee 3 thermostat, which includes these nifty remote wireless sensors. Each sensor transmits the temperature and motion detection back to the thermostat, which it uses to determine which rooms are occupied and should be averaged into the current house temperature. With their most recent API update, you can now poll the &#8220;occupancy&#8221; status of each sensor. The occupancy is based on if there was any movement in the previous 30 minutes, so there&#8217;s always going to be a bit of a lag when the room is empty before it is deemed &#8220;unoccupied.&#8221; I record the data into a database as well, every 5 minutes. With all this data being recorded, the final part is a script that reads the various pieces of information and determines what to do. The script is generally run every 2 minutes during parts of the day where I want light. For example, if it is &#8220;morning&#8221; (which I mean before sunrise) then all lights should be on if the room is occupied, but only 1 light if it is not. So if I run the script at 6:30a, the sun is not up, so it will turn one light on for when I wake up and then when it detects someone is there, the rest will also come on. If it is the middle of the day and it is &#8220;dim&#8221; then I would like 1 light on in the living room if it is occupied. However, if it is not occupied during the day, then no lights should be on, no matter how dark. As the sun sets, more lights are on for each of the 3 light levels, and finally after the sun sets, all lights are on.  When the sun is around 5 degrees from setting, or later, if nobody is home, 1 light will be on. I uploaded my python scripts to github. They&#8217;re not entirely useful to anyone else because you don&#8217;t exactly have all the other pieces that fit into it, such as the weather and sun position scripts, but if you know how to input these things, the same automation can be done. My repo is here: https://github.com/jasonarends/x10-py-wx. Oh &#8211; I forgot one crucial bit of info &#8211; the lights are controlled by these &#8220;ancient&#8221; home automation modules called SmartHome X10. They work by transmitting signals over the powerline and feature radio-signal remote controls. Luckily, they made a computer interface called a &#8220;firecracker&#8221; which plugged into a serial port and also could send these radio signals to the wall plugin module, which then transmitted the codes over the powerlines. With a USB-serial adapter, I hooked this up to my pi, and use a program called &#8220;heyu&#8221; to actually change the lights on and off. I wrote a wrapper for this called &#8220;pheyu.py&#8221; which records the last &#8220;known&#8221; status of each light in a database and then changes the status when requested. Unfortunately the firecracker is a one-way communication, so the pi never really knows the state of the lights, they might have been overridden by the hand-remote. Best it can do is just assume and remember what it tried to do, but it&#8217;s really in the dark. BTW, I also hooked up one module to an electric cat food dispenser, so the cats are fed on a schedule by the pi.]]></summary></entry><entry><title type="html">straw bale planting day</title><link href="https://jasonarends.github.io/2015/04/20/straw-bale-planting-day.html" rel="alternate" type="text/html" title="straw bale planting day" /><published>2015-04-20T15:00:11+00:00</published><updated>2015-04-20T15:00:11+00:00</updated><id>https://jasonarends.github.io/2015/04/20/straw-bale-planting-day</id><content type="html" xml:base="https://jasonarends.github.io/2015/04/20/straw-bale-planting-day.html"><![CDATA[<p>The fertilizing period is done, and since I was out of town last week, we waited one extra week and got our plants and planted them on Saturday (4/18). Sometime over a week ago, I got a couple soaker hoses and then re-arranged the bales so there wouldn&#8217;t be any gaps &#8211; it turned into a big &#8220;S&#8221; shape. There were actually 2 bales that I had forgotten about on the side of the house that I included in the layout, but they were not part of the fertilization plan. I may start fertilizing them and plant something late in them.</p>
<p><a href="/assets/uploads/wpid-wp-1429401557877.jpg"><img loading="lazy" decoding="async" class="aligncenter wp-image-174 size-large" src="/assets/uploads/wpid-wp-1429401557877-1024x768.jpg" alt="wpid-wp-1429401557877.jpg" width="604" height="453" srcset="/assets/uploads/wpid-wp-1429401557877-1024x768.jpg 1024w, /assets/uploads/wpid-wp-1429401557877-300x225.jpg 300w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a></p>
<p>&nbsp;</p>
<p>So far the plants consist of: 3 varieties of tomato, 2 varieties of green bell pepper, red and white onions, strawberries, and parsley. I have potatoes that will be added into the middle of all the bales and I want to get more herbs to plant in the sides. I am also planning on getting one more tomato variety and there is one bale still unused &#8211; maybe garlic or something, I&#8217;ll have to make a trip to the greenhouse and see what they have. I might see about planting a vine plant or two in the ends &#8211; pumpkins and cucumbers?</p>
<p>Maybe I can insert a table to illustrate the layout:</p>
<table>
<tbody>
<tr>
<td><strong>white onions</strong></td>
<td><em>unused</em></td>
<td><em>unfertilized</em></td>
<td><em>unfertilized</em></td>
</tr>
<tr>
<td><strong>red onions</strong></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td><strong>red onions</strong></td>
<td><strong>green peppers</strong></td>
<td><strong>green peppers</strong></td>
<td><strong>strawberries</strong></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td><strong>white onions</strong><br />
<strong>parsley</strong></td>
</tr>
<tr>
<td><strong>tomatoes</strong></td>
<td><strong>tomatoes</strong></td>
<td><em>unused (tomatoes)</em></td>
<td><strong>roma tomatoes</strong></td>
</tr>
</tbody>
</table>
<p>We also moved our compost &#8211; it was in a circular bin near our deck, but I thought it would work well to just pile it in the gaps between the S pattern of the bales, so we did. If we still live at this house next year, we should have a pretty good amount of compost and could even make a regular raised-bed garden. The bales will have decomposed by the fall and can get stirred into the compost, along with old vegetable matter.</p>
<p>That&#8217;s it for now &#8211; hopefully potatoes (russet, red, and yellow) will be planted by EOD and maybe more herbs.</p>]]></content><author><name>Jason Arends</name></author><summary type="html"><![CDATA[The fertilizing period is done, and since I was out of town last week, we waited one extra week and got our plants and planted them on Saturday (4/18). Sometime over a week ago, I got a couple soaker hoses and then re-arranged the bales so there wouldn&#8217;t be any gaps &#8211; it turned into a big &#8220;S&#8221; shape. There were actually 2 bales that I had forgotten about on the side of the house that I included in the layout, but they were not part of the fertilization plan. I may start fertilizing them and plant something late in them. &nbsp; So far the plants consist of: 3 varieties of tomato, 2 varieties of green bell pepper, red and white onions, strawberries, and parsley. I have potatoes that will be added into the middle of all the bales and I want to get more herbs to plant in the sides. I am also planning on getting one more tomato variety and there is one bale still unused &#8211; maybe garlic or something, I&#8217;ll have to make a trip to the greenhouse and see what they have. I might see about planting a vine plant or two in the ends &#8211; pumpkins and cucumbers? Maybe I can insert a table to illustrate the layout: white onions unused unfertilized unfertilized red onions red onions green peppers green peppers strawberries white onions parsley tomatoes tomatoes unused (tomatoes) roma tomatoes We also moved our compost &#8211; it was in a circular bin near our deck, but I thought it would work well to just pile it in the gaps between the S pattern of the bales, so we did. If we still live at this house next year, we should have a pretty good amount of compost and could even make a regular raised-bed garden. The bales will have decomposed by the fall and can get stirred into the compost, along with old vegetable matter. That&#8217;s it for now &#8211; hopefully potatoes (russet, red, and yellow) will be planted by EOD and maybe more herbs.]]></summary></entry><entry><title type="html">nature and morels</title><link href="https://jasonarends.github.io/2015/04/02/nature-and-morels.html" rel="alternate" type="text/html" title="nature and morels" /><published>2015-04-02T15:56:09+00:00</published><updated>2015-04-02T15:56:09+00:00</updated><id>https://jasonarends.github.io/2015/04/02/nature-and-morels</id><content type="html" xml:base="https://jasonarends.github.io/2015/04/02/nature-and-morels.html"><![CDATA[<p><a href="/assets/uploads/wpid-wp-1427989151043.jpg"><img decoding="async" style="width:500px;max-width:500px;" title="wpid-wp-1427989151043.jpg" class="aligncenter size-full" alt="image" src="/assets/uploads/wpid-wp-1427989151043.jpg?w=500" /></a> </p>
<p>Went outside today to fertilize the bales and took a few pictures of some flowers (looked like bluebonnets but I don&#8217;t think they are, they appear to be on onion/garlic stalk-type-things) and a snail under a tree.&nbsp; By the way, I measured the temperature of the straw bales Tuesday and it averaged 87 degrees.&nbsp; It rained yesterday so I didn&#8217;t bother watering them.&nbsp; I didn&#8217;t water them today since it&#8217;s supposed to rain as well.<br />
&nbsp; </p>
<p><a href="/assets/uploads/wpid-wp-1427989151177.jpg"><img decoding="async" style="width:500px;max-width:500px;" title="wpid-wp-1427989151177.jpg" class="aligncenter size-full" alt="image" src="/assets/uploads/wpid-wp-1427989151177.jpg?w=500" /></a> </p>
<p>Then I saw a morel mushroom.&nbsp; I have never had one and haven&#8217;t been a huge fan of any mushrooms in general, but I picked it and Holly and Valentine helped me search around and we found one more.&nbsp; Apparently there&#8217;s fake ones that are poisonous but according to the internet, these are genuine.</p>
<p><a href="/assets/uploads/wpid-wp-1427989147233.jpg"><img decoding="async" style="width:500px;max-width:500px;" title="wpid-wp-1427989147233.jpg" class="aligncenter size-full" alt="image" src="/assets/uploads/wpid-wp-1427989147233.jpg?w=500" /></a> </p>
<p>Yes, they look like tiny brains.&nbsp; I have heard these are good and people hunt them so, I googled how to cook them, coated them in a little flour and fried them in some butter in a skillet.</p>
<p><a href="/assets/uploads/wpid-img_20150402_101617.jpg"><img decoding="async" style="width:500px;max-width:500px;" title="wpid-img_20150402_101617.jpg" class="aligncenter size-full" alt="image" src="/assets/uploads/wpid-img_20150402_101617.jpg?w=500" /></a> </p>
<p>I thought they were actually <em>quite</em> tasty, kind of like chicken or something.&nbsp; Holly tried one and wasn&#8217;t a huge fan, but I will definitely search for more after a rain or if I&#8217;m ever wandering in a forest or something and have them again.</p>
<p><a href="/assets/uploads/wpid-wp-1427989144553.jpg"><img decoding="async" style="width:500px;max-width:500px;" title="wpid-wp-1427989144553.jpg" class="aligncenter size-full" alt="image" src="/assets/uploads/wpid-wp-1427989144553.jpg?w=500" /></a></p>]]></content><author><name>Jason Arends</name></author><summary type="html"><![CDATA[Went outside today to fertilize the bales and took a few pictures of some flowers (looked like bluebonnets but I don&#8217;t think they are, they appear to be on onion/garlic stalk-type-things) and a snail under a tree.&nbsp; By the way, I measured the temperature of the straw bales Tuesday and it averaged 87 degrees.&nbsp; It rained yesterday so I didn&#8217;t bother watering them.&nbsp; I didn&#8217;t water them today since it&#8217;s supposed to rain as well. &nbsp; Then I saw a morel mushroom.&nbsp; I have never had one and haven&#8217;t been a huge fan of any mushrooms in general, but I picked it and Holly and Valentine helped me search around and we found one more.&nbsp; Apparently there&#8217;s fake ones that are poisonous but according to the internet, these are genuine. Yes, they look like tiny brains.&nbsp; I have heard these are good and people hunt them so, I googled how to cook them, coated them in a little flour and fried them in some butter in a skillet. I thought they were actually quite tasty, kind of like chicken or something.&nbsp; Holly tried one and wasn&#8217;t a huge fan, but I will definitely search for more after a rain or if I&#8217;m ever wandering in a forest or something and have them again.]]></summary></entry><entry><title type="html">represent.us</title><link href="https://jasonarends.github.io/2015/04/01/represent-us.html" rel="alternate" type="text/html" title="represent.us" /><published>2015-04-01T03:46:00+00:00</published><updated>2015-04-01T03:46:00+00:00</updated><id>https://jasonarends.github.io/2015/04/01/represent-us</id><content type="html" xml:base="https://jasonarends.github.io/2015/04/01/represent-us.html"><![CDATA[<p><a href="http://my.represent.us/p?recruiter_id=16900" target="_blank">http://my.represent.us/p?recruiter_id=16900</a></p>
<p>This is neither a conservative nor a liberal movement, it&#8217;s a non-profit that is trying to pass local Anti-Corruption Acts to keep bribery and big money out of government. Watch the videos, I think it&#8217;s a good idea, starting small where things can be changed to lead up to national influence in the long run.</p>
<p>Check it out, get involved locally.</p>]]></content><author><name>Jason Arends</name></author><summary type="html"><![CDATA[http://my.represent.us/p?recruiter_id=16900 This is neither a conservative nor a liberal movement, it&#8217;s a non-profit that is trying to pass local Anti-Corruption Acts to keep bribery and big money out of government. Watch the videos, I think it&#8217;s a good idea, starting small where things can be changed to lead up to national influence in the long run. Check it out, get involved locally.]]></summary></entry><entry><title type="html">straw bale garden – beginning</title><link href="https://jasonarends.github.io/2015/03/31/straw-bale-garden-beginning.html" rel="alternate" type="text/html" title="straw bale garden – beginning" /><published>2015-03-31T21:39:18+00:00</published><updated>2015-03-31T21:39:18+00:00</updated><id>https://jasonarends.github.io/2015/03/31/straw-bale-garden-beginning</id><content type="html" xml:base="https://jasonarends.github.io/2015/03/31/straw-bale-garden-beginning.html"><![CDATA[<p>Holly and I are going to try a straw bale garden this year.  Neither of us have done this before, but we&#8217;ve been wanting a garden for a few years.  Since we&#8217;re currently renting, we don&#8217;t want to put time and money into the ground.  We&#8217;ve tried container gardens in the past, but unfortunately we have moved during the summer the last two times, trying to take the containers with us and resulting in many failed crops.</p>
<p>The idea is to create fertilized straw bales that you plant your garden directly into, so the ground underneath does not matter at all &#8211; in fact, you can put your bales on pavement if you really want to.  So, we bought about a dozen bales last fall around Hallowe&#8217;en when they were easy to come by afford-ably, and  left them in our backyard.  They also came in handy to help insulate the house during the winter.</p>
<p>Since it is finally warm out and looks like it will stay that way, I started preparing the bales.  I suppose I should have really done that a few weeks ago so we could start planting now, but I think it will be ok.  You&#8217;re supposed to fertilize them every-other-day for about 10 days, and water them every day.  I bought some &#8220;cheap&#8221; lawn fertilizer with about 30% Nitrogen and put 2c on each bale, then watered it until all the little pellets went down into the bales.  I&#8217;m planning on taking the temperature inside the bales every day at the same time and graphing it &#8211; should see a spike and then level off, then it should be ready for planting.</p>
<p>We are planning on planting potatoes, tomatoes, cucumbers, pumpkins, onions, garlic, dill, oregano, peppers, and a few other herbs (it&#8217;s all written down on a paper I don&#8217;t have in front of me.) I read that you can actually plant potatoes deep down in the bales and then plant other things on top, so that should work out well.  Then you can either harvest new potatoes or wait until the other plants are done, kick the bales apart, and just pick up the full-sized potatoes in the fall.</p>]]></content><author><name>Jason Arends</name></author><summary type="html"><![CDATA[Holly and I are going to try a straw bale garden this year.  Neither of us have done this before, but we&#8217;ve been wanting a garden for a few years.  Since we&#8217;re currently renting, we don&#8217;t want to put time and money into the ground.  We&#8217;ve tried container gardens in the past, but unfortunately we have moved during the summer the last two times, trying to take the containers with us and resulting in many failed crops. The idea is to create fertilized straw bales that you plant your garden directly into, so the ground underneath does not matter at all &#8211; in fact, you can put your bales on pavement if you really want to.  So, we bought about a dozen bales last fall around Hallowe&#8217;en when they were easy to come by afford-ably, and  left them in our backyard.  They also came in handy to help insulate the house during the winter. Since it is finally warm out and looks like it will stay that way, I started preparing the bales.  I suppose I should have really done that a few weeks ago so we could start planting now, but I think it will be ok.  You&#8217;re supposed to fertilize them every-other-day for about 10 days, and water them every day.  I bought some &#8220;cheap&#8221; lawn fertilizer with about 30% Nitrogen and put 2c on each bale, then watered it until all the little pellets went down into the bales.  I&#8217;m planning on taking the temperature inside the bales every day at the same time and graphing it &#8211; should see a spike and then level off, then it should be ready for planting. We are planning on planting potatoes, tomatoes, cucumbers, pumpkins, onions, garlic, dill, oregano, peppers, and a few other herbs (it&#8217;s all written down on a paper I don&#8217;t have in front of me.) I read that you can actually plant potatoes deep down in the bales and then plant other things on top, so that should work out well.  Then you can either harvest new potatoes or wait until the other plants are done, kick the bales apart, and just pick up the full-sized potatoes in the fall.]]></summary></entry><entry><title type="html">Pizza Version of White Bread #1 with Sourdough Starter</title><link href="https://jasonarends.github.io/2014/01/05/pizza-version-of-white-bread-1-with-sourdough-starter.html" rel="alternate" type="text/html" title="Pizza Version of White Bread #1 with Sourdough Starter" /><published>2014-01-05T19:44:36+00:00</published><updated>2014-01-05T19:44:36+00:00</updated><id>https://jasonarends.github.io/2014/01/05/pizza-version-of-white-bread-1-with-sourdough-starter</id><content type="html" xml:base="https://jasonarends.github.io/2014/01/05/pizza-version-of-white-bread-1-with-sourdough-starter.html"><![CDATA[<p><a href="/assets/uploads/wpid-IMG_20140104_214600.jpg"><img loading="lazy" decoding="async" class="size-thumbnail wp-image-139 alignleft" alt="wpid-IMG_20140104_214600.jpg" src="/assets/uploads/wpid-IMG_20140104_214600-150x150.jpg" width="150" height="150" /></a><a href="/assets/uploads/wpid-IMG_20140104_215112.jpg"><img loading="lazy" decoding="async" class="size-thumbnail wp-image-140 alignleft" alt="wpid-IMG_20140104_215112.jpg" src="/assets/uploads/wpid-IMG_20140104_215112-150x150.jpg" width="150" height="150" /></a>i did an experiment today with the <a title="White Bread #1 (Sourdough version)" href="http://jasonarends.com/2013/12/20/white-bread-1-sourdough-version/" target="_blank">white bread recipe</a> i usually make.  i wanted to make a tomatoey dough with pizza flavors, so i substituted spicy V8 for the milk, olive oil for vegetable oil, and garlic salt for the salt, and added some pizza seasoning to the flour.</p>
<div style="clear: both;">the recipe works out like this:</div>
<ul>
<li>1 c active sourdough starter</li>
<li>6.5 c bread flour</li>
<li>1 c spicy V8</li>
<li>1.25 c water</li>
<li>2 Tbsp olive oil</li>
<li>1 Tbsp garlic salt</li>
<li>3 Tbsp sugar</li>
<li>1 tsp pizza seasoning</li>
<li>pepperoni and mozzarella cheese (optional)</li>
</ul>
<p><a href="/assets/uploads/wpid-IMG_20140105_105041.jpg"><img loading="lazy" decoding="async" class="alignleft size-thumbnail wp-image-149" alt="wpid-IMG_20140105_105041.jpg" src="/assets/uploads/wpid-IMG_20140105_105041-150x150.jpg" width="150" height="150" /></a>make the bread in the exact same way as the white bread recipe referenced above.  when it comes time to roll up the dough into a loaf, first add pepperoni and cheese, then roll it.  i made one with the filling, one without.</p>
<p>during the first rise which should be 10-30 mins, i think i let it sit for about an hour.  i probably should have shortened it as something weird happened later.  after a proof of about 1.25 hours, which is shorter than usual for this bread, the un-filled loaf got all lumpy and holey.  i didn&#8217;t notice when this happened, but my guess is that it somehow got over-proofed and started to deflate.</p>
<p>when it came time to bake, the un-filled one took the regular 25-30 mins, but the filled one took much longer to get up to 190-195 degrees.  i probably baked it an additional 15-20 minutes &#8211; measuring the internal temperature about every 5 mins.</p>
<p><a href="/assets/uploads/wpid-IMG_20140105_130707.jpg"><img loading="lazy" decoding="async" class="alignleft size-thumbnail wp-image-143" alt="wpid-IMG_20140105_130707.jpg" src="/assets/uploads/wpid-IMG_20140105_130707-150x150.jpg" width="150" height="150" /></a><a href="/assets/uploads/wpid-IMG_20140105_141016.jpg"><img loading="lazy" decoding="async" class="alignleft size-thumbnail wp-image-147" alt="wpid-IMG_20140105_141016.jpg" src="/assets/uploads/wpid-IMG_20140105_141016-150x150.jpg" width="150" height="150" /></a>the finished product is more orange colored in the middle with a hint of pizza flavor, but not too much.  i think next time i&#8217;ll basically add more of the flavorings: pizza seasoning, tomato juice, filling.  i was thinking about trying pizza sauce instead of juice, but would probably need to add more water as well.</p>
<p>haven&#8217;t tried yet, but i&#8217;m guessing this would make a nice grilled cheese with mozzarella and pepperoni&#8230;</p>
<div style="clear: both;"><a href="/assets/uploads/wpid-IMG_20140105_141408.jpg"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-145" alt="wpid-IMG_20140105_141408.jpg" src="/assets/uploads/wpid-IMG_20140105_141408-225x300.jpg" width="225" height="300" srcset="/assets/uploads/wpid-IMG_20140105_141408-225x300.jpg 225w, /assets/uploads/wpid-IMG_20140105_141408-768x1024.jpg 768w" sizes="auto, (max-width: 225px) 100vw, 225px" /></a></div>]]></content><author><name>Jason Arends</name></author><summary type="html"><![CDATA[i did an experiment today with the white bread recipe i usually make.  i wanted to make a tomatoey dough with pizza flavors, so i substituted spicy V8 for the milk, olive oil for vegetable oil, and garlic salt for the salt, and added some pizza seasoning to the flour. the recipe works out like this: 1 c active sourdough starter 6.5 c bread flour 1 c spicy V8 1.25 c water 2 Tbsp olive oil 1 Tbsp garlic salt 3 Tbsp sugar 1 tsp pizza seasoning pepperoni and mozzarella cheese (optional) make the bread in the exact same way as the white bread recipe referenced above.  when it comes time to roll up the dough into a loaf, first add pepperoni and cheese, then roll it.  i made one with the filling, one without. during the first rise which should be 10-30 mins, i think i let it sit for about an hour.  i probably should have shortened it as something weird happened later.  after a proof of about 1.25 hours, which is shorter than usual for this bread, the un-filled loaf got all lumpy and holey.  i didn&#8217;t notice when this happened, but my guess is that it somehow got over-proofed and started to deflate. when it came time to bake, the un-filled one took the regular 25-30 mins, but the filled one took much longer to get up to 190-195 degrees.  i probably baked it an additional 15-20 minutes &#8211; measuring the internal temperature about every 5 mins. the finished product is more orange colored in the middle with a hint of pizza flavor, but not too much.  i think next time i&#8217;ll basically add more of the flavorings: pizza seasoning, tomato juice, filling.  i was thinking about trying pizza sauce instead of juice, but would probably need to add more water as well. haven&#8217;t tried yet, but i&#8217;m guessing this would make a nice grilled cheese with mozzarella and pepperoni&#8230;]]></summary></entry><entry><title type="html">Rustic Sourdough Bread</title><link href="https://jasonarends.github.io/2014/01/05/rustic_sourdough_bread.html" rel="alternate" type="text/html" title="Rustic Sourdough Bread" /><published>2014-01-05T16:14:01+00:00</published><updated>2014-01-05T16:14:01+00:00</updated><id>https://jasonarends.github.io/2014/01/05/rustic_sourdough_bread</id><content type="html" xml:base="https://jasonarends.github.io/2014/01/05/rustic_sourdough_bread.html"><![CDATA[<p>i like the sourdough conversion of white bread that i&#8217;ve made a few times, but since it takes 12 hours, i looked for another version which might be faster.  i ended up trying <a href="http://www.kingarthurflour.com/recipes/rustic-sourdough-bread-recipe" target="_blank">King Arthur Flour&#8217;s Rustic Sourdough Bread</a> recipe.</p>
<p><a style="color: #007ea6;" href="/assets/uploads/wpid-IMG_20140102_123548.jpg"><img loading="lazy" decoding="async" class="alignright size-medium wp-image-135" style="margin-top: 16.203125px; margin-bottom: 16.203125px;" alt="wpid-IMG_20140102_123548.jpg" src="/assets/uploads/wpid-IMG_20140102_123548-225x300.jpg" width="225" height="300" srcset="/assets/uploads/wpid-IMG_20140102_123548-225x300.jpg 225w, /assets/uploads/wpid-IMG_20140102_123548-768x1024.jpg 768w" sizes="auto, (max-width: 225px) 100vw, 225px" /></a></p>
<p>i got a fancy new digital scale for christmas, so you&#8217;ll see that featured in posts from now on.  it also means that my weight measurements will switch to grams, and since it has a tare function, the weight will be the ingredients alone, not including the container.</p>
<p>the recipe calls for instant yeast but i wanted to try it without, and it did work fine, just took a little longer&#8230; which kind of defeated the purpose of looking for a faster recipe.  total it took about 8 hours from mixing to baked bread, which is better than the 16 or more the other takes.</p>
<ul>
<li id="IngredientLine">1 cup &#8220;fed&#8221; sourdough starter (227g)</li>
<li id="IngredientLine">1 1/2 cups lukewarm water</li>
<li id="IngredientLine">1 tablespoon sugar</li>
<li id="IngredientLine">2 1/2 teaspoons salt</li>
<li id="IngredientLine">600g bread flour</li>
</ul>
<p>combine all the ingredients.  i started with the starter and added everything except the flour &#8211; adding that last so i could only add as much as necessary.  i added about 530g of flour before it came together, then used more during kneading to keep it from sticking.</p>
<p><a href="/assets/uploads/wpid-IMG_20140102_124154.jpg"><img loading="lazy" decoding="async" class="alignleft size-thumbnail wp-image-134" alt="wpid-IMG_20140102_124154.jpg" src="/assets/uploads/wpid-IMG_20140102_124154-150x150.jpg" width="150" height="150" /></a></p>
<p><a href="/assets/uploads/wpid-IMG_20140102_124930.jpg"><img loading="lazy" decoding="async" class="alignleft size-thumbnail wp-image-133" alt="wpid-IMG_20140102_124930.jpg" src="/assets/uploads/wpid-IMG_20140102_124930-150x150.jpg" width="150" height="150" /></a>after kneading, let the dough rise until ripe &#8211; the recipe says 90 mins, but that&#8217;s with instant yeast &#8211; mine took about 4.5 hours.</p>
<div style="clear: both;"><a href="/assets/uploads/wpid-IMG_20140102_171950.jpg"><img loading="lazy" decoding="async" class="alignleft size-thumbnail wp-image-132" alt="wpid-IMG_20140102_171950.jpg" src="/assets/uploads/wpid-IMG_20140102_171950-150x150.jpg" width="150" height="150" /></a><a href="/assets/uploads/wpid-IMG_20140102_201545.jpg"><img loading="lazy" decoding="async" class="alignleft size-thumbnail wp-image-131" alt="wpid-IMG_20140102_201545.jpg" src="/assets/uploads/wpid-IMG_20140102_201545-150x150.jpg" width="150" height="150" /></a>form the dough into two loaves.  the original recipe was for a &#8220;rustic&#8221; loaf but i decided to make one in a pan.  i used the same flatten-then-roll-up method i&#8217;ve used before for the pan loaf, and just made a generally loaf-shaped loaf for the other one and put it on some parchment paper to rise and make it easier to transfer to the oven.  i let it rise for at least 3 hours, til it was very fluffy, then sprayed the top of each loaf with water, cut some slashes into the top of each loaf, then baked each loaf for about 25-30 mins at 425.  for the rustic loaf, i placed the parchment paper on my pizza stone.</div>
<p>both loaves baked nicely and tasted very similar to the other bread i&#8217;ve made.  as you can see below, the rustic one didn&#8217;t last long as we ate about 4 slices while it was hot!</p>
<p><a href="/assets/uploads/wpid-IMG_20140102_222214.jpg"><img loading="lazy" decoding="async" class="aligncenter size-medium wp-image-130" alt="wpid-IMG_20140102_222214.jpg" src="/assets/uploads/wpid-IMG_20140102_222214-300x225.jpg" width="300" height="225" srcset="/assets/uploads/wpid-IMG_20140102_222214-300x225.jpg 300w, /assets/uploads/wpid-IMG_20140102_222214-1024x768.jpg 1024w" sizes="auto, (max-width: 300px) 100vw, 300px" /></a></p>]]></content><author><name>Jason Arends</name></author><summary type="html"><![CDATA[i like the sourdough conversion of white bread that i&#8217;ve made a few times, but since it takes 12 hours, i looked for another version which might be faster.  i ended up trying King Arthur Flour&#8217;s Rustic Sourdough Bread recipe. i got a fancy new digital scale for christmas, so you&#8217;ll see that featured in posts from now on.  it also means that my weight measurements will switch to grams, and since it has a tare function, the weight will be the ingredients alone, not including the container. the recipe calls for instant yeast but i wanted to try it without, and it did work fine, just took a little longer&#8230; which kind of defeated the purpose of looking for a faster recipe.  total it took about 8 hours from mixing to baked bread, which is better than the 16 or more the other takes. 1 cup &#8220;fed&#8221; sourdough starter (227g) 1 1/2 cups lukewarm water 1 tablespoon sugar 2 1/2 teaspoons salt 600g bread flour combine all the ingredients.  i started with the starter and added everything except the flour &#8211; adding that last so i could only add as much as necessary.  i added about 530g of flour before it came together, then used more during kneading to keep it from sticking. after kneading, let the dough rise until ripe &#8211; the recipe says 90 mins, but that&#8217;s with instant yeast &#8211; mine took about 4.5 hours. form the dough into two loaves.  the original recipe was for a &#8220;rustic&#8221; loaf but i decided to make one in a pan.  i used the same flatten-then-roll-up method i&#8217;ve used before for the pan loaf, and just made a generally loaf-shaped loaf for the other one and put it on some parchment paper to rise and make it easier to transfer to the oven.  i let it rise for at least 3 hours, til it was very fluffy, then sprayed the top of each loaf with water, cut some slashes into the top of each loaf, then baked each loaf for about 25-30 mins at 425.  for the rustic loaf, i placed the parchment paper on my pizza stone. both loaves baked nicely and tasted very similar to the other bread i&#8217;ve made.  as you can see below, the rustic one didn&#8217;t last long as we ate about 4 slices while it was hot!]]></summary></entry><entry><title type="html">more sourdough starter instructions</title><link href="https://jasonarends.github.io/2014/01/05/more-sourdough-starter-instructions.html" rel="alternate" type="text/html" title="more sourdough starter instructions" /><published>2014-01-05T15:08:16+00:00</published><updated>2014-01-05T15:08:16+00:00</updated><id>https://jasonarends.github.io/2014/01/05/more-sourdough-starter-instructions</id><content type="html" xml:base="https://jasonarends.github.io/2014/01/05/more-sourdough-starter-instructions.html"><![CDATA[<p>i typed this up in an email to some friends i gave some starter to.</p>
<div>there&#8217;s 2 ways to feed sourdough &#8211; by weight and by volume, and there&#8217;s also a few possible situations &#8211; counter-top or fridge.</div>
<div></div>
<div><strong>first rule</strong> is to always double it when you feed it.  this could be after you have used some or if you just need more for your recipe.</div>
<div></div>
<div><strong>second rule</strong> is to always feed it every 12 hours if it&#8217;s on the counter.  i&#8217;m not sure how often in the fridge, but i&#8217;d say every 2 to 4 weeks.  you might find some clear liquid on the top if it&#8217;s been in the fridge for over 4 weeks &#8211; it&#8217;s alcohol (hooch?) that you can either dump off or stir back in.  you should be able to tell by smell if it&#8217;s gone bad.</div>
<div></div>
<div><strong>third rule</strong> is to feed it equal amounts of flour and water by weight.  or by volume, 1/2 as much water as flour.</div>
<div></div>
<div>so on to the details.  when i keep mine on the counter, here&#8217;s what i do.  (i use a scale to weigh mine, but i&#8217;ll describe how using volume too.)</div>
<div></div>
<div>
<ol>
<li>weigh another identical jar, or otherwise know empty jar weight, so you know how much to subtract (the jar i use is about 280g or 10oz)</li>
<li>weigh the jar with sourdough.  let&#8217;s say it&#8217;s 380g so there&#8217;s 100g of sourdough starter.</li>
<li>if you&#8217;re just feeding it to maintain it, dump out half</li>
<li>add back flour/water equal to the weight of the sourdough you have in the jar currently.  so if you dumped out half, you have 50g left.  you would need to add 50g of &#8220;food&#8221; back which would be 25g flour, 25g water.  if you didn&#8217;t dump out half, you have 100g of starter so you would add 100g more &#8220;food&#8221; &#8211; 50g flour and 50g water.</li>
<li>stir it up</li>
</ol>
<div>now if you don&#8217;t weigh it, you can use volume.  the jar probably has markings on it for cups or fl oz</div>
</div>
<div></div>
<div>
<ol>
<li>stir up the starter to remove all the bubbles otherwise you won&#8217;t get a good volume measurement</li>
<li>read how much you have &#8211; say 1 cup</li>
<li>if you&#8217;re feeding it to maintain it, dump out half</li>
<li>add back &#8220;food&#8221; so the amount of flour is the same as the starter, and the water is half as much.  so if you dumped out half, you have 1/2c left.  you would need to add 1/2c flour and 1/4c water.  make sure the flour is very loose or you&#8217;ll have too much.  if you didn&#8217;t dump out half and you&#8217;re just doubling your starter to get more, you&#8217;d start with 1c of starter, and add 1c of flour and 1/2c of water.</li>
<li>stir it up</li>
</ol>
<div>another thing to know is the different stages:</div>
</div>
<div></div>
<div>
<ol>
<li>just fed &#8211; obviously this is just after you added flour/water and stirred it up.  it isn&#8217;t very usable at this point, but if you&#8217;re going to refridgerate it, this is the best time to put it in the fridge.</li>
<li>active &#8211; this is a few hours after you feed it &#8211; it should get very bubbly and double in volume.  this is a good time to use it to bake something.</li>
<li>mature &#8211; this is hours after it&#8217;s active, the bubbles won&#8217;t be strong enough to keep it inflated, and it will fall back down in volume.  it can still be used in some recipes but won&#8217;t rise much.  it will have small bubbles on the top and eventually will have a layer of clear liquid on the top (alcohol) but you can stir that back in before feeding it again.</li>
</ol>
<div>to use it from the counter top, just feed it ahead of time and get the volume up to what the recipe calls for, then use it when it&#8217;s active.</div>
</div>
<div></div>
<div>to use it from the fridge &#8211; take it out, let it warm up to room temp, feed it probably two cycles to make sure it&#8217;s very active again before baking with it.  so if you want to use it out of the fridge, take it out the day before and feed it.</div>
<div></div>
<div>if you just used it and want to store it, just feed whatever is left according to the instructions above, then put it back in the fridge.</div>]]></content><author><name>Jason Arends</name></author><summary type="html"><![CDATA[i typed this up in an email to some friends i gave some starter to. there&#8217;s 2 ways to feed sourdough &#8211; by weight and by volume, and there&#8217;s also a few possible situations &#8211; counter-top or fridge. first rule is to always double it when you feed it.  this could be after you have used some or if you just need more for your recipe. second rule is to always feed it every 12 hours if it&#8217;s on the counter.  i&#8217;m not sure how often in the fridge, but i&#8217;d say every 2 to 4 weeks.  you might find some clear liquid on the top if it&#8217;s been in the fridge for over 4 weeks &#8211; it&#8217;s alcohol (hooch?) that you can either dump off or stir back in.  you should be able to tell by smell if it&#8217;s gone bad. third rule is to feed it equal amounts of flour and water by weight.  or by volume, 1/2 as much water as flour. so on to the details.  when i keep mine on the counter, here&#8217;s what i do.  (i use a scale to weigh mine, but i&#8217;ll describe how using volume too.) weigh another identical jar, or otherwise know empty jar weight, so you know how much to subtract (the jar i use is about 280g or 10oz) weigh the jar with sourdough.  let&#8217;s say it&#8217;s 380g so there&#8217;s 100g of sourdough starter. if you&#8217;re just feeding it to maintain it, dump out half add back flour/water equal to the weight of the sourdough you have in the jar currently.  so if you dumped out half, you have 50g left.  you would need to add 50g of &#8220;food&#8221; back which would be 25g flour, 25g water.  if you didn&#8217;t dump out half, you have 100g of starter so you would add 100g more &#8220;food&#8221; &#8211; 50g flour and 50g water. stir it up now if you don&#8217;t weigh it, you can use volume.  the jar probably has markings on it for cups or fl oz stir up the starter to remove all the bubbles otherwise you won&#8217;t get a good volume measurement read how much you have &#8211; say 1 cup if you&#8217;re feeding it to maintain it, dump out half add back &#8220;food&#8221; so the amount of flour is the same as the starter, and the water is half as much.  so if you dumped out half, you have 1/2c left.  you would need to add 1/2c flour and 1/4c water.  make sure the flour is very loose or you&#8217;ll have too much.  if you didn&#8217;t dump out half and you&#8217;re just doubling your starter to get more, you&#8217;d start with 1c of starter, and add 1c of flour and 1/2c of water. stir it up another thing to know is the different stages: just fed &#8211; obviously this is just after you added flour/water and stirred it up.  it isn&#8217;t very usable at this point, but if you&#8217;re going to refridgerate it, this is the best time to put it in the fridge. active &#8211; this is a few hours after you feed it &#8211; it should get very bubbly and double in volume.  this is a good time to use it to bake something. mature &#8211; this is hours after it&#8217;s active, the bubbles won&#8217;t be strong enough to keep it inflated, and it will fall back down in volume.  it can still be used in some recipes but won&#8217;t rise much.  it will have small bubbles on the top and eventually will have a layer of clear liquid on the top (alcohol) but you can stir that back in before feeding it again. to use it from the counter top, just feed it ahead of time and get the volume up to what the recipe calls for, then use it when it&#8217;s active. to use it from the fridge &#8211; take it out, let it warm up to room temp, feed it probably two cycles to make sure it&#8217;s very active again before baking with it.  so if you want to use it out of the fridge, take it out the day before and feed it. if you just used it and want to store it, just feed whatever is left according to the instructions above, then put it back in the fridge.]]></summary></entry></feed>