<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Bill Housley]]></title><description><![CDATA[Writes clean, heart-pounding science fiction for the masses.]]></description><link>https://billhousley.com</link><image><url>https://billhousley.com/img/substack.png</url><title>Bill Housley</title><link>https://billhousley.com</link></image><generator>Substack</generator><lastBuildDate>Thu, 16 Apr 2026 14:29:42 GMT</lastBuildDate><atom:link href="https://billhousley.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Bill Housley]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[billhousley@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[billhousley@substack.com]]></itunes:email><itunes:name><![CDATA[Bill Housley]]></itunes:name></itunes:owner><itunes:author><![CDATA[Bill Housley]]></itunes:author><googleplay:owner><![CDATA[billhousley@substack.com]]></googleplay:owner><googleplay:email><![CDATA[billhousley@substack.com]]></googleplay:email><googleplay:author><![CDATA[Bill Housley]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[Almost a Month Driving a Tesla]]></title><description><![CDATA[The things I've learned. The things I like. The things I don't.]]></description><link>https://billhousley.com/p/almost-a-month-driving-a-tesla</link><guid isPermaLink="false">https://billhousley.com/p/almost-a-month-driving-a-tesla</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Sat, 06 Dec 2025 17:24:48 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!X9jr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I did the research a long time ago. I knew that if I ever bought an electric car, it&#8217;d have to include the All Wheel Drive and Extended Range options. The roads here spend part of the winter in harsh weather, with treacherously slick, snowy roads and a month or more straight of round-the-clock temperatures below 0 Celsius. Engineering-wise, Tesla continues to lead in those areas. Some time ago, I purchased and used a Black &amp; Decker battery-powered law mower for years. The only maintenance I needed to do to it was sharpen the blade (okay, I didn&#8217;t do that&#8230;but who does?). That and keep the batteries indoors during winter.</p><p>This past spring, shortly after I learned that I&#8217;d soon be laid off from my job of nineteen years, I began looking for other opportunities in my career as a Maintenance Planner. Ten years or so ago, when I was disillusioned with my job, I&#8217;d been able to find new work fairly easily, but my boss talked me out of accepting those offers. Now, I&#8217;ve found out that 2025 is an entirely different animal when it comes to job search. Though it might be possible, eventually, to get a new job near where I live doing what I do, the odds are more in favor of a long commute of at least an hour to a nearby big city. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://billhousley.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>I needed a plan B, and neither my 2011 VPG MV1 (a special design wheelchair van), nor my decrepit 2008 Chevy Silverado were going to do the trick. My credit rating had improved, but then I&#8217;d let $3,500 or so in credit card debt sneak in and lower it from good to fair, so I needed to fix that as quickly as possible. </p><p>We&#8217;ve been driving the MV1 whenever we've driven away from this small town for family or other reasons. Still, it is an urban, not a rural, vehicle, and thus not a comfortable ride on long freeway trips with varying road conditions. It also lacks four-wheel drive, despite being built on a Ford F-150 powertrain. It has very low mileage for its age, but has started to show its age recently. That van and I would get tuckered out in a hurry if I had to drive it on the freeway for two or three hours a day. I like my MV1 because <a href="https://bhousley.wordpress.com/2019/12/19/my-son-dallin-obituary/">my son with Duchenne&#8217;s Muscular Dystrophy, who died in 2019</a>, got to ride up front with me in it during the last 9 months or so of his life. However, since Dallin&#8217;s death, I haven&#8217;t been able to sell the van, and it has accumulated some incidental damage I can&#8217;t repair, forcing me to either keep it or sell it at a huge loss. So, I'm keeping it for now, but I don&#8217;t want to wear it out too quickly because my wife&#8217;s health is going downhill with age faster than mine, and I might need it in good shape in the future.</p><p>Anyway, back to my credit card debt. I&#8217;ve learned from past experience that there seems to be something in the credit rating algorithm that gives an extra boost after lump-sum, same-day credit card payoffs, beyond the more visible relief in the &#8220;credit used&#8221; section. So, when late June finally rolled around, and I lost my job, I immediately included full credit card payoff as one of my first goals with my severance pay, just in case I needed to make a car purchase when I found a new job.  I knew that to land a suitably-equipped Tesla, or frankly any other used commuter vehicle that could transport me reliably and safely for up to three hours a day over the mountains two hundred and fifty times a year, would cost me between $23K and $40K. I determined the payments, calculated how high my wages would need to be, and prepared.</p><p>Earlier this month, after more than 70 applications and five interviews, I received an offer and accepted it. Sure enough, the factory of my new workplace is located an hour and twenty minutes away. I hit Carvana, found the vehicle I needed, waited for the job to be a done deal, and then pulled the trigger. Several days later, I watched my son-in-law drive away in my MV1 to return it to my place, while I sat in the Carvana parking lot, in the driver's seat of my 2023 Tesla Model Y.</p><p><strong>Regenerative Braking.</strong></p><p>Let&#8217;s start with the regenerative braking. It has a learning curve that needs to be addressed up front. When you take your foot off the accelerator, the car doesn&#8217;t coast. The motors that turn the wheels become generators that recover your momentum and turn it into electricity that recharges the car&#8217;s battery pack. So, when you take your foot off the accelerator, the brake lights come on, and the regenerative drag drains the car&#8217;s momentum in a hurry&#8212;not as abrupt as emergency braking, but a lot more abrupt than most of us more conservative drivers tend to apply at a stoplight most of the time. In city driving, it means that my reflexes had to be quickly retaught not to take my foot totally off the &#8220;gas&#8221; and move to the brake, but to use the gas pedal instead to manage the rate of deceleration, a little like on a bumper car at the carnival. I had to get used to it on nearby empty side roads right after I picked up the car and before I hit the freeway to head home. You should, too.</p><p>Regenerative braking can be easily disabled on the computer screen. However, in cyclical mountain driving, everything that goes up must eventually come down. Regenerative braking means that much of the extra energy that you use to drive up-hill comes back to you once you clear the top and head back down. In a gas car, you idle and coast down a mountain as the engine continues to burn gas, and engine drag helps decelerate you somewhat, and you use friction braking to stay at a safe speed. Where I live is roughly 2000 meters in elevation, and where I work is just under 1300 meters, so in the Tesla, some of the battery charge that I use going uphill to go home comes back to me on my way to work to save money on the recharge because the energy that manages my speed feeds back into the battery instead of wearing out the brake pads.</p><p><strong>Autopilot</strong></p><p>The time of day that I picked up the car at Carvana was rush hour, and the particular stretch of freeway that I&#8217;d have to drive flowed north like a parking lot bogged down in molasses. So, before dropping my newly acquired Tesla into that sea of cars, I needed to teach myself how to use the Tesla's&nbsp;<em>Autopilot</em>. Adaptive cruise control, available on most newer cars today, matches the speed of the vehicle ahead. I&#8217;ve used the feature before, and let me tell you, the stress it takes out of driving in traffic jams makes me wonder why someone didn&#8217;t invent it decades earlier. On a Tesla, Autopilot can also reduce your need to manage the regenerative braking in stop-and-go traffic. You simply determine the desired following distance in seconds by bumping a scroll wheel on the steering wheel with your thumb, and the car stops and goes for you.</p><p><strong>Warning!</strong> Until you pay for and use Full Self-Driving on a Tesla, Autopilot sees but will not stop for traffic lights or stop signs. If you arrive at the red light behind someone, the car will stop with them and continue when it turns green, but if you're at the front of the line, it&#8217;ll zoom right through at the set speed. If you don&#8217;t intervene and stop the car, all it will do is scold you with angry beeps and messages on the screen telling you that you just ran a stop light and reminding you that plain-ol&#8217; autopilot does not stop for such things. Though Autopilot is AI-managed cruise control, and by far the best and least stressful cruise control I&#8217;ve ever used, it is still just cruise control, and you are still the one driving. When I worked as a computer programmer many decades ago, we joked that a software bug that you can&#8217;t fix can be documented and called a feature. That&#8217;s not what this is. The car <em>knows</em> about stop lights and stop signs, even <em>shows</em> them to you on the computer screen, and then <em>runs them on purpose and lectures you for doing it</em>! I think it is to sell you Full Self-Driving, which costs $100 a month (or $8,000 lump sum). Anyway, you need to know all of this up front. For all of Tesla&#8217;s design emphasis on safety, you have to understand that Autopilot&nbsp;<em>will not stop</em>&nbsp;for stop lights or stop signs, and if you don't know that, you could get yourself killed in your first ten minutes driving a Tesla!</p><p>Another limited feature of Tesla Autopilot is its ability to recognize speed limits. You have to supervise it more closely than maybe you&#8217;re used to if you&#8217;ve used this feature on other cars. I drove a rental with my dad down to California a couple of years ago. I don&#8217;t remember what kind of car it was, but the speed-matching on its cruise control was shockingly precise and far better than on this Tesla. The image parsing from the cameras on this Tesla is a little too good, and it will sometimes see a speed limit sign far off on an exit ramp and think it applies to you. Also, it isn&#8217;t as good at detecting yellow speed limit signs indicating temporary speed reductions for sharp curves. So while it helps you manage your speed and might even slow down or speed up to match the current speed limit if you have that option switched on, you still have to read the signs and follow the law yourself. I don&#8217;t pay for Full Self-Driving yet, but I can&#8217;t see Tesla getting regulatory approval if this were an actual programming flaw, so I have to assume it is only a problem in Autopilot. </p><p><strong>Lane Following</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X9jr!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X9jr!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png 424w, https://substackcdn.com/image/fetch/$s_!X9jr!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png 848w, https://substackcdn.com/image/fetch/$s_!X9jr!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png 1272w, https://substackcdn.com/image/fetch/$s_!X9jr!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X9jr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png" width="1366" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1366,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:505191,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.com/i/180100586?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!X9jr!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png 424w, https://substackcdn.com/image/fetch/$s_!X9jr!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png 848w, https://substackcdn.com/image/fetch/$s_!X9jr!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png 1272w, https://substackcdn.com/image/fetch/$s_!X9jr!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ab0c778-7022-4fa1-ad19-1aa3fa2f3b66_1366x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I&#8217;ve nicknamed my Tesla&#8217;s Autopilot my &#8220;lane nanny&#8221;. I&#8217;ve used cruise control lane following on two other vehicles before. The rental car that I drove to California just gave me polite warnings when I strayed too close to the line. In my daughter&#8217;s car (I don&#8217;t remember what kind it is), it literally keeps you in the lane but insists that you participate, and it bumps the steering wheel to remind you if it thinks you&#8217;re relying on it too much. This actually felt like serious &#8220;play&#8221; at the wheel until I realized what it was doing and started finding the balance between letting the car do the driving and telling it I&#8217;m still there and awake. </p><p>In contrast, the Artificial Intelligence in the Tesla will warn you on the display if you linger too close to the line. If you persist, it will sound a warning, nudge the steering wheel, and maybe display a message on the screen reminding you that you&#8217;re the one driving, not the car. It will generally also nudge the steering to redirect the car back into its lane if it thinks you&#8217;re being unsafe while crossing into another lane without signalling or crossing into an emergency lane at speed. That nudge is serious and feels a lot like when recent roadwork has raised the road surface of the adjacent lane by a couple of centimeters. However, it will relax immediately if you persist in your intention to cross the line anyway. If it has to nag you about lane discipline too many times, it puts you in time-out, disabling the lane-following feature for the rest of the drive and telling you it might be reactivated later.</p><p>Instead of getting lazy (er) on my lane following, as I did with the rental I drove to California, and fighting a battle of wills with my daughter&#8217;s car over how much I let it do for me, my Tesla has taught me some things about my bad driving habits. First, I&#8217;m a rebel when it comes to staying in the middle of the lane, and also, I don&#8217;t seem to care about lanes or lines at all when there are no other cars around. Second, as it turns out, I&#8217;m very semi-shy, leaning as far as I can away from trucks (lorries) in the neighboring lane. Still, this car has several times already roused my attention and nudged me back into the lane when I&#8217;ve dozed off a little. It has also become more patient with my tendency to ride the line when passing eighteen-wheelers ever since one changed lanes into me. The car and I worked in perfect teamwork when I saw the danger a split-second before it did, and it helped me smoothly and safely change into the empty lane to the left of us, without warning me about crossing the line, or nudging the steering to prevent me, even though there was no time to signal. I didn&#8217;t even think to honk until afterward, and only later learned that honking the horn on a Tesla also saves the event in the running recording from the car&#8217;s array of cameras. I&#8217;ve included the event clip below.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;bf04934a-286f-4d9f-9a14-f0fd3a9b3f67&quot;,&quot;duration&quot;:null}"></div><p>Here is a better perspective&#8230;</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;4c6c48ac-7e29-45cc-b61a-14efef0e1e21&quot;,&quot;duration&quot;:null}"></div><p>In fact, while reviewing this footage for inclusion, I noticed that another Tesla passed me on the left just before this happened, so that another perspective might have been actually been captured by the rear camera of that car. </p><p>Since I originally wrote that last part last week, this has happened to me again since then, in thicker traffic, with the same favorable results.</p><p>Note: The Tesla software is still a work in progress, with both improvements in the product's intelligence and shifts in direction. This latest software update&#8230;2025.44.3&#8230;changed the content of this article a little bit, even while I was writing it. It still gets grumpy when I cross the line without signalling, but only if there is no apparent good reason.</p><p>I should also point out that an AI at Tesla constantly communicates with all Teslas, learning and continually improving the Full Self-Driving model to make it the safest way to drive. Currently, at this writing, Tesla Full Self-Driving is still supervised and uses the interior camera to ensure you&#8217;re awake and paying attention. Regulatory approval and final updates are still pending. Soon, maybe in the next couple of months, unsupervised Full Self-Driving, what I call &#8220;asleep at the wheel Full Self-Driving&#8221; will be made available.</p><p><strong>Battery Management</strong></p><p>Prior to the purchase, I&#8217;d already researched a number of things about this and had told people that the best way to avoid running out of battery is not to forget that it is not a gas car, and manage the risk with meticulous planning. Gasoline stores an enormous amount of energy, which the gas-powered vehicle uses very inefficiently. Comfort heating is provided by directing waste heat into the interior, and fans use an unmeasurably tiny proportion of the electricity produced by the generator and battery, which in turn uses an equally tiny portion of the energy available. Even a gas car&#8217;s air conditioning compressor, which operates on exactly the same principle as the refrigerator in your kitchen, still loads the engine much less than its own rotational drag. This load is at least measurable against the vehicle&#8217;s total miles per gallon, though only barely on most cars, and is unlikely to make enough of a difference to leave you stranded with an empty tank.</p><p>On a Tesla, all of that stuff matters, as do the locations of &#8220;filling stations&#8221;, in this case, Tesla Super Chargers. With the right adaptors, you don&#8217;t need a Tesla Supercharger to charge your Tesla, but the cost difference and the integration of their locations with the car&#8217;s navigation system make them the easy main choice for any repeated daily routine. I&#8217;ve learned that, despite my planning and forethought habits, I don&#8217;t need it when driving my Tesla. All I really need to do is carry and test the necessary adaptors just in case I ever need them. Also, to locate the Tesla Superchargers at my destinations and along my route, and plan how to visit them. Then, all I have to do is trust the car. It uses data from Tesla&#8217;s network of cars on the road. Their histories, along with an integrated central map of road conditions, ambient temperatures, elevation changes, and the like, can accurately predict the battery&#8217;s charge level at the destination if I drive conservatively&#8230;generally nailing it to within a couple of percentage points. If I use the navigator everywhere I go, and traffic weirdness, aggressive driving, or side trips unexpectedly cause me to use more energy than the car initially planned, the car will decide whether to stop to charge and will automatically add a route to a Tesla Supercharging station somewhere. Don&#8217;t ask Grok like I did a couple of times. Grok has led me astray on that score twice. In fact, Grok seems to be struggling with navigation at the moment. If you must use an AI on your phone to navigate, use Gemini (Google). In fact, when I say, &#8220;Hey Google, take me to __wherever__,&#8221; I can then share those directions with my Tesla app on my phone, and the route will then become the new route on my Tesla&#8217;s navigation console. I&#8217;m quite sure that if you combined that with Full Self-Driving, it would be extra cool, changing course without you ever taking your eyes off your phone! ;)</p><p>To charge your car, back up to the charger and get as close as you can without hitting anything, since the cord is a bit short. Then open the car&#8217;s charge port by tapping on it, plug the cord into the car, and go sit in the car while it charges. The system won&#8217;t work until you&#8217;ve programmed a credit or debit card in your Tesla account.</p><p>The car uses a similar technology battery to the one in your phone, and it turbo-charges the same way. It charges many times faster from lower levels of charge, and the battery will last longer if your daily charging stays below 80%. Tesla reinforces this by costing over twice as much for charging above 80% at crowded charging stations. At some chargers, late-night charging costs are roughly 30% lower than at other times. So, I&#8217;ve learned that since I start work early in the morning, running the battery below 20% and then topping off at the Tesla dealership in town before 6 am takes only 20 to 30 minutes if I use the navigator to precondition the battery for charging enroute and it costs me only $.25 per killowatt hour, where normal charging is closer to $.37.</p><p>Now that the polar vortex has weakened this winter, and the temperatures stay below 0 (and often well below) in this region, I prefer to top off the battery as soon as I arrive in my hometown, then recharge again cheaply when I get near work.</p><p><strong>The Model Y&#8230;Sporty SUV.</strong></p><p>My wife says it is like Dr. Who&#8217;s T.A.R.D.I.S&#8230;bigger on the inside. On the outside, it has the deceiving lines of an economy car, but, like the Cybertruck, it is actually much larger when standing next to it than you expect from a two-dimensional photograph. Even then, it still surprises you with its interior space. My four-year-old grandson even found some hidden storage space under the floor in the back. Comfort-wise, it has sporty tires with short sidewalls and minimal cushioning. If you&#8217;re like my wife and I, riding around with the huge tires and mass of a Silverado or Ford F-150 under you to absorb road noise, you will notice the difference. My geezer body arrives after long drives with almost the same aches and pains as when I drive the Silverado, and much less than when I drive the MV1.</p><p><strong>Summary</strong></p><p>I look forward to going to work every day, not just because of the new challenges, pay,  and excellent, accepting, and exciting work environment. I very much love driving this car over the mountains for three hours every day.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://billhousley.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>My Science Fiction publication, AnomalyScifi&#8230;</p><div class="embedded-publication-wrap" data-attrs="{&quot;id&quot;:3402415,&quot;name&quot;:&quot;Anomaly Trilogy&quot;,&quot;logo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!LLuD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f1f57e-6d86-4fd6-bac3-2040fa884a75_1280x1280.png&quot;,&quot;base_url&quot;:&quot;https://anomalyscifi.com&quot;,&quot;hero_text&quot;:&quot;The Meridian Star, an Interstellar cruise ship of 7,000, hits an anomaly &amp; gets kicked out of hyperspace, destroying the ship and sending escape pods to an abandoned alien planet.\n\nIf you want to read Science Fiction stories, this publication is for you.&quot;,&quot;author_name&quot;:&quot;Bill Housley&quot;,&quot;show_subscribe&quot;:true,&quot;logo_bg_color&quot;:&quot;#ffffff&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPublicationToDOMWithSubscribe"><div class="embedded-publication show-subscribe"><a class="embedded-publication-link-part" native="true" href="https://anomalyscifi.com?utm_source=substack&amp;utm_campaign=publication_embed&amp;utm_medium=web"><img class="embedded-publication-logo" src="https://substackcdn.com/image/fetch/$s_!LLuD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f1f57e-6d86-4fd6-bac3-2040fa884a75_1280x1280.png" width="56" height="56" style="background-color: rgb(255, 255, 255);"><span class="embedded-publication-name">Anomaly Trilogy</span><div class="embedded-publication-hero-text">The Meridian Star, an Interstellar cruise ship of 7,000, hits an anomaly &amp; gets kicked out of hyperspace, destroying the ship and sending escape pods to an abandoned alien planet.

If you want to read Science Fiction stories, this publication is for you.</div><div class="embedded-publication-author-name">By Bill Housley</div></a><form class="embedded-publication-subscribe" method="GET" action="https://anomalyscifi.com/subscribe?"><input type="hidden" name="source" value="publication-embed"><input type="hidden" name="autoSubmit" value="true"><input type="email" class="email-input" name="email" placeholder="Type your email..."><input type="submit" class="button primary" value="Subscribe"></form></div></div>]]></content:encoded></item><item><title><![CDATA[Festiveness]]></title><description><![CDATA[That moment this year when the holiday feeling first hit me.]]></description><link>https://billhousley.com/p/festiveness</link><guid isPermaLink="false">https://billhousley.com/p/festiveness</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Sat, 01 Nov 2025 15:35:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/wJzcd3RS8qQ" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I felt festive this morning.</p><p>It started as just a flash, while I reached for the Corn Flakes&#8212;a moment of thoughts about friends, family, food, and fun mingled with that Thanksgiving Dinner/Christmas morning joy.</p><p>As I pondered telling my wife about it, it came again&#8212;and lasted longer.</p><p>Now, just now, I saw snow. We experienced no snowfall last night here, and I haven&#8217;t even looked outside. However, I saw snow just now, as I sit in my easy chair, with my feet up, with my Chromebook in my lap as I type these words.</p><p>A song is echoing in my mind. It started when I typed the subtitle of this post, &#8220;That moment this year when the holiday feeling first hit me.&#8221; The words &#8220;holiday feeling&#8221; started the song ringing in my brain&#8230;&#8220;Happy Holiday&#8221; by Andy Williams. </p><p></p><p><em>It&#8217;s the holiday season (the holiday season), </em></p><p><em>So Whoop-de-do and Hickory dock!</em></p><p><em> And don&#8217;t forget to hang up your sock;</em></p><p><em> &#8216;Cause just exactly at 12 o&#8217;clock;</em></p><p><em> He&#8217;ll be coming down the chimney, down!&#8221;</em></p><div id="youtube2-wJzcd3RS8qQ" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;wJzcd3RS8qQ&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/wJzcd3RS8qQ?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>I love Christmas music, but not that song. It focuses more on Santa Claus and rings like a lounge singer performance. Pandora plays it over and over on its various Christmas-themed stations, and I can only stand it once or twice before I start skipping it.</p><p>But there it is, playing over and over again in my brain, and the infection is contagious. I posted the YouTube link above just for reference, but don&#8217;t watch it. Don&#8217;t go there, or it&#8217;ll infect you too.</p><p>Really, just scroll right on past.</p><p>It&#8217;s not on any of my Christmas music playlists that I&#8217;ve accumulated on YouTube over the years either&#8230;Christmas Children Singing, Christmas Concerts, Christmas Favorites, Christmas Flash Mobs, Christmas Instrumentals, Christmas Messages, Christmas Movies, Christmas Music Long Runs, Christmas Music Videos, Christmas Music with Slide Shows, Christmas Religion Christian, or Christmas Singalong.</p><p><a href="https://www.youtube.com/@whousley/search?query=christmas">https://www.youtube.com/@whousley/search?query=christmas</a></p><p>Well, it might have snuck into one or two of them.</p><p>I know what you&#8217;re thinking, and no, I don&#8217;t have a problem. I don&#8217;t need intervention. I have it under control. I don&#8217;t (typically) start playing the Christmas music until Thanksgiving morning. Of course, since the holiday season only lasts a little over a month, I play nothing but Christmas music that entire time, but I promptly and abruptly stop playing it sometime during New Year&#8217;s Day.</p><p>The Christmas Holiday spirit should take its turn behind the similar yet different Thanksgiving Holiday celebrated here in the U.S., which, in turn, should follow Halloween. It annoys me when the three get mixed together in stores. Which is why seeing Christmas stuff in Walmart yesterday while shopping for pumpkins to carve didn&#8217;t trigger the festiveness that I felt this morning.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ym6L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ym6L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ym6L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ym6L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ym6L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ym6L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg" width="1080" height="1440" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1440,&quot;width&quot;:1080,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:139889,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.com/i/177725406?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ym6L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg 424w, https://substackcdn.com/image/fetch/$s_!ym6L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg 848w, https://substackcdn.com/image/fetch/$s_!ym6L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!ym6L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9f2b7aaa-fbdc-49ba-ae95-1e4e58a071ec_1080x1440.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Of course, I made an apple pie earlier in October, just for practice. I know how to cook pies, turkey, stuffing, and all that Thanksgiving dinner stuff. I like sitting and watching football too, but I get into the cooking more.</p><p>My son will be home from college for Thanksgiving, and I&#8217;ve been asking my wife who we&#8217;re having Thanksgiving Dinner with. It&#8217;s a lot of work (and food) for just three people, and she and I both prefer to enjoy it in a larger family gathering anyway. We celebrated with my side of the family last year, and we&#8217;ve always alternated from year to year. However, circumstances have gotten in the way of celebrating with her side this year. I talked my sister into us roasting the turkey last year instead of her husband, not because I don&#8217;t like Shad&#8217;s cooking&#8212;I do like his cooking, he&#8217;s excellent&#8212;but I wanted to cook the turkey.</p><p>I want to cook it again this year, too. I own not one but TWO electric turkey ovens.</p><p>No, stop it! I don&#8217;t have a problem, and I don&#8217;t need intervention. I just need to cook a turkey&#8212;or two&#8212;now and then, but I can cook pies instead, or rolls, or yams, or any of that other holiday-dinner stuff, and still be happy. Besides, it&#8217;s not like I cook turkeys all the time&#8230;just, whenever I have one to cook.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!v_6H!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!v_6H!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!v_6H!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!v_6H!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!v_6H!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!v_6H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2630538,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.com/i/177725406?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!v_6H!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!v_6H!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!v_6H!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!v_6H!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c6cd7be-da4b-41c8-a5a1-19af2e643a10_4000x3000.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Halloween was yesterday. This morning, we turned those two jack-o-lanterns around to become Thanksgiving/fall festival decorations.</p><p>It&#8217;s time for the real festiveness to begin.</p><p>Now, where&#8217;s that turkey? Let&#8217;s get cooking!</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://billhousley.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p>November 3rd Update: I looked up and read through the song &#8220;Hark! The Herald Angels Sing&#8221; in my church hymnal yesterday. To be fair, I consider that to be more a song about Christ&#8217;s second coming than his first. So, technically, I can pretend like it&#8217;s not REALLY a Christmas song&#8230;at least until after Thanksgiving. Right?  ;-)</p>]]></content:encoded></item><item><title><![CDATA[First Snow]]></title><description><![CDATA[I went out at first light on Sunday and took some photos.]]></description><link>https://billhousley.com/p/first-snow</link><guid isPermaLink="false">https://billhousley.com/p/first-snow</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Mon, 13 Oct 2025 20:39:08 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!z7xU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CDXM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CDXM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CDXM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CDXM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CDXM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CDXM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg" width="1456" height="264" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:264,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3543458,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://billhousley.com/i/175955426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CDXM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg 424w, https://substackcdn.com/image/fetch/$s_!CDXM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg 848w, https://substackcdn.com/image/fetch/$s_!CDXM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!CDXM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7ab6523-4899-49b8-b64c-23d32b244e1f_10368x1880.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>On Saturday night, I saw the forecast: several hours of snow during the night. The temperature would be right at or near 0 to -1 Celsius, so it would stick to the ground and grass (meaning it wouldn&#8217;t melt), but it would likely not freeze on the roads since daytime temperatures still mostly stay at or above 10. So I looked forward to getting up at first light and taking some photos.</p><p>Of course, the next morning I was in a hurry. The sky was light, but the sun still lingered behind the low hills above the Bear River Valley, so I thought it would be a good time to take the above panorama without the sun&#8217;s glare. Of course, I had left the house and run through the neighborhood to take the shot in nothing but croks, sweats, and a hoodie, so I ran back in for a proper coat and waited for the lighting to improve.</p><p>From my journal entry yesterday:</p><div class="preformatted-block" data-component-name="PreformattedTextBlockToDOM"><label class="hide-text" contenteditable="false">Text within this block will maintain its original spacing when published</label><pre class="text"><em>When I came back out, the snow was still down and the sun lit the land. I took several close-ups of trees &amp; some other shots that appealed to me.</em></pre></div><p></p><p>The roadside foliage shots below along Highway 150 are what you get up here with an early-season snowfall before the leaves have all fallen. I&#8217;ve seen it break the branches off trees, but this was only about 2 centimeters. Unfortunately, that is still enough snow to get up inside my crocs with no socks when walking through the long grass.</p><p>However, no socks also meant simply stepping out of the crocs, knocking the snow out, and putting them back on.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!z7xU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!z7xU!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg 424w, https://substackcdn.com/image/fetch/$s_!z7xU!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg 848w, https://substackcdn.com/image/fetch/$s_!z7xU!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!z7xU!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!z7xU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg" width="1456" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1762376,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.com/i/175955426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!z7xU!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg 424w, https://substackcdn.com/image/fetch/$s_!z7xU!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg 848w, https://substackcdn.com/image/fetch/$s_!z7xU!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!z7xU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76b7c2a5-f7d2-4683-b8d0-f82fc946b409_3264x1432.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Un5L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Un5L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Un5L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Un5L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Un5L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Un5L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg" width="1432" height="3264" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3264,&quot;width&quot;:1432,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1885425,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.com/i/175955426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Un5L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Un5L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Un5L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Un5L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb52fccd0-f24a-461e-91b1-76ac52f64305_3264x1432.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Of course, the Quaking Aspen is my favorite tree in the fall. So, I couldn&#8217;t resist the grove I saw behind and a bit further away, and a little more snow in my crocs. Well worth it though. I&#8217;d have gotten closer, but climbing fences was a little more adventure than I was prepared for on a Sunday morning in sweat pants and crocs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HHnE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HHnE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HHnE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HHnE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HHnE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HHnE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg" width="1456" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4940177,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.com/i/175955426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!HHnE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!HHnE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!HHnE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!HHnE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd8a3beca-2443-4dd8-a523-01c7a6c21f44_4000x1756.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>People like pictures of equipment in the snow, and someone left this backhoe parked about a hundred meters further north. This one has actually cleared off a lot for someone to build something, but one of the glories of new snow is that new groundwork gets covered like it was never there, and any parked equipment ends up looking derelict, forlorn, and abandoned.</p><p>I wanted a camera angle further south, but the rising sun put my shadow right in the center of it. So, I moved a bit further right to banish my shadow into the corner.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lu5V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lu5V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lu5V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lu5V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lu5V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lu5V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg" width="1456" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4660629,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.com/i/175955426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lu5V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!lu5V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!lu5V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!lu5V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc4da1f99-8744-4acb-ac02-e23700f12689_4000x1756.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, back across the street to the iconic red brick firehouse, I found a tree bathed in full sun, still holding some snow. Daytime temperatures would rise to over 10 degrees later, and the snow would melt away much sooner, starting with the trees. As I write these captions on Monday afternoon, all the snow has left without a trace.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qrPV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qrPV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qrPV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qrPV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qrPV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qrPV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg" width="1456" height="3317" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3317,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4092450,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.com/i/175955426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qrPV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qrPV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qrPV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qrPV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8d0d83a-94e4-4053-855c-65103b987d76_4000x1756.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Back across the neighborhood to near where I took the panorama shot earlier, I caught this vista. The water channel in the foreground isn&#8217;t the Bear River, just an irrigation ditch. However, it&#8217;s old enough to grow a row of well-developed trees in this dry climate.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!TuvS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!TuvS!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TuvS!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TuvS!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TuvS!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!TuvS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg" width="1456" height="639" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:639,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4236159,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.com/i/175955426?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!TuvS!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg 424w, https://substackcdn.com/image/fetch/$s_!TuvS!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg 848w, https://substackcdn.com/image/fetch/$s_!TuvS!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!TuvS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdc6791f3-f577-455d-aca4-b8f7a8fb4347_4000x1756.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Wherever you are, however much or little you like the cold season, you should stop a minute to enjoy the beautiful contrast that comes with change. Maybe bring along your phone, as I did, and take some photos to show the rest of us here on Substack so that we can enjoy it with you.</p><p></p>]]></content:encoded></item><item><title><![CDATA[AI Poetry]]></title><description><![CDATA[It's time to try it again.]]></description><link>https://billhousley.com/p/ai-poetry</link><guid isPermaLink="false">https://billhousley.com/p/ai-poetry</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Tue, 23 Sep 2025 20:12:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!keP7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As an author, it behooves me to keep track of the growing abilities of the various leading long language models to produce creative works. To facilitate this, I played a game a couple of years ago. In this game, I asked the various competing AIs to write me a poem about fishing, then I posted their poetry on my WordPress blog for you to judge.</p><p>They have all advanced by leaps and bounds since then, so my poetry test also needs an upgrade. BTW </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!keP7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!keP7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!keP7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!keP7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!keP7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!keP7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!keP7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!keP7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!keP7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!keP7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F364b3e18-0acf-4652-b22d-05d7711b81f4_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">A robot fishing (generated by the Substack Image Generator)</figcaption></figure></div><p></p><p>I use xAI&#8217;s Grok extensively for image generation and detailed, unbiased political fact-checking, which draws from the full range of sources and calls out both sides of the aisle equally when they spout misinformation and fake or underreported news. Similarly, I use it for general current events research as well. More recently, Grok has also been providing me with excellent updates on certain crypto and stock market investments on a daily schedule. </p><p>I use Google&#8217;s Gemini whenever I search Google, as it&#8217;s integrated and adds its two cents&#8217; worth without me even asking. Its history and current events research help is excellent, and I have but few complaints. I have also used it extensively in the past for image generation before switching to Grok for that. However, I stopped using Gemini for political fact-checking long ago because I found that it wastes my time either by being politically biased toward the Left or by wimping out on controversial issues. I also use NotebookLM, which I presume is Gemini/Bard powered, for analysis and detail lookups within my own fiction writings, and it works very well for those tasks.</p><p>I&#8217;ve used Microsoft&#8217;s CoPilot mostly for document summaries, event-driven triggers, and data analysis in business. It shines at that. Also, like Gemini, it sticks its nose into practically everything I do with any Microsoft tool that I use, such as web searches. I haven&#8217;t used it much for political fact-checking, but I seem to recall that it suffered (at least at the time) from some of the same left-leaning bias and speak-no-evil tendencies as Bard/Gemini, though not as seriously.</p><p>I don&#8217;t use OpenAI&#8217;s ChatGBT much, mostly because it isn&#8217;t integrated into the stuff I use every day, but it is the leading AI long language model. I&#8217;ve run a few tests, though, and I do like it a lot.</p><p></p><p>So, here we go: the updated AI fishing poem competition held on September 15th, 2025. The prompt was, &#8220;write me a poem about fishing.&#8221;</p><p></p><p>Gemini</p><div><hr></div><div class="preformatted-block" data-component-name="PreformattedTextBlockToDOM"><label class="hide-text" contenteditable="false">Text within this block will maintain its original spacing when published</label><pre class="text">A silent river, soft and deep,
Where secrets of the water sleep.
The morning mist, a silver sheet,
Cool air on sun-warmed skin, so sweet.

A line unspools, a gentle cast,
A fragile hope that's meant to last.
The lure, a flash of painted gleam,
A dancer in the liquid dream.

The world is still, the world is slow,
As currents of the river flow.
A gentle tug, a sudden fight,
A silver flash of startled light.

The rod bends low, a perfect arc,
A single line against the dark.
A breath is held, a moment caught,
The prize of stillness, dearly bought.

Then up it comes, a splash of spray,
A living jewel, held today.
Released again to swim and leap,
Another secret for the deep.</pre></div><p></p><p>Grok</p><div><hr></div><div class="preformatted-block" data-component-name="PreformattedTextBlockToDOM"><label class="hide-text" contenteditable="false">Text within this block will maintain its original spacing when published</label><pre class="text">The Angler's Song

By the water&#8217;s edge at dawn&#8217;s first light,
The world is still, the air is bright.
A rod in hand, a line to cast,
Fishing weaves dreams that forever last.

The river hums a gentle tune,
Beneath the watchful eye of the moon.
Each ripple hides a secret tale,
Of silver fish with shimmering scales.

With patient heart, I wait and see,
The line grows taut&#8212;it's calling me.
A tug, a pull, the thrill takes hold,
A dance with nature, timeless, bold.

The trout may leap, the bass may fight,
Yet every catch feels pure delight.
Not just the prize, but the peace I find,
The quiet lake that soothes the mind.

From misty mornings to sunset&#8217;s glow,
The water teaches me to go slow.
For fishing&#8217;s more than the catch I bring&#8212;
It&#8217;s the soul&#8217;s own song, the heart&#8217;s own spring.</pre></div><p></p><p>CoPilot</p><div><hr></div><div class="preformatted-block" data-component-name="PreformattedTextBlockToDOM"><label class="hide-text" contenteditable="false">Text within this block will maintain its original spacing when published</label><pre class="text">&#127907; Whispers of the Water   

Beneath the hush of morning light,  
Where mist and mirror softly meet,  
The lake lies still, a silver sheet&#8212;  
A promise wrapped in quiet might.  

The rod arcs high, a graceful swing,  
A line unfurls like whispered thread,  
It dances where the ripples spread,  
And waits for what the depths might bring.  

The bobber bobs, the silence breaks,  
A tug, a thrill, a sudden fight,  
The reel hums low, the fish takes flight&#8212;  
A ballet born of bends and wakes.  

The catch is not just fin and scale,  
But time slowed down, a breath, a beat,  
A moment made of calm and heat,  
A story told in wind and tale.  

So cast again, and let it be&#8212;  
A ritual of hope and grace,  
Where man and nature find their place,  
And water sings to memory.  </pre></div><p></p><p>ChatGBT</p><div><hr></div><div class="preformatted-block" data-component-name="PreformattedTextBlockToDOM"><label class="hide-text" contenteditable="false">Text within this block will maintain its original spacing when published</label><pre class="text">Out on the water, calm and wide,
The boat drifts slow with the gentle tide.
The rod in hand, the line set free,
A dance of patience with the sea.

The quiet hum of morning light,
Birds above in graceful flight.
Ripples form where shadows play,
And time itself begins to sway.

A flick, a tug, the reel spins fast,
A thrilling pull, the moment's cast.
The fish below, so sleek, so wise,
Glimpses flash beneath the skies.

The line hums soft, a song untold,
As stories weave in silken folds.
With every cast, the heart grows light,
A quiet joy in nature&#8217;s sight.

And whether catch or empty hook,
The peace in silence, time will look.
For fishing&#8217;s not just hook and net,
But the stillness found, the day&#8217;s reset.</pre></div><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[No Pants Dreams]]></title><description><![CDATA[Yes, I got caught outside naked in public in a dream last night.]]></description><link>https://billhousley.com/p/no-pants-dreams</link><guid isPermaLink="false">https://billhousley.com/p/no-pants-dreams</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Mon, 28 Jul 2025 11:13:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!R0EV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We&#8217;ve all had them.</p><p>Sometimes, we dream that, somehow, we left the house without any pants on and didn&#8217;t even notice, even though it&#8217;s cold outside. Then we get all the way out there to some plaza in the middle of the city or something before we realize we forgot our pants and try to sneak home without being seen.</p><p>I had one of those dreams last night, except it wasn&#8217;t just my pants. I found myself out at night, far from home, without a stitch.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!R0EV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!R0EV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!R0EV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!R0EV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!R0EV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!R0EV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!R0EV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!R0EV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!R0EV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!R0EV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5648bf8-2281-47ed-93ab-813b8474dccb_1024x608.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Caught outside without pants dream.</figcaption></figure></div><p>It was early morning, and no one was around. I ran and hid in the darkness of an unoccupied building and called my wife to bring me some clothes. I have no idea how, or rather where, I was carrying a cell phone.</p><p>However, before she arrived, the lights inside the building came on! It was a place of business! People began arriving for work, walking past me and giving me scandalous looks! I saw a side door and escaped the hallway through it, quickly closing the door behind me and rushing deeper inside the room to find somewhere to hide in case someone followed me.</p><p>It was the company cafeteria! Thirty or so people were sitting around small tables, eating breakfast, drinking coffee, and socializing! Everything went silent and still, as all the eyes in the room turned to me. I looked down and saw a cabbage growing out of the floor at my feet, and quickly squatted down behind it to conceal the more important stuff.</p><p>Then my wife arrived. She rushed forward and put my bathrobe around my shoulders, mortified on my behalf, kind and consoling at my embarrassment. I felt the thick warmth of the bathrobe and found it soothing. My normal confidence in public began to return.</p><p>I pushed my arms, one by one, into the sleeves and pulled the bathrobe around me.  Then I stood back to my full height of 6&#8217;4&#8221; and looked sternly out at the crowd as I knotted the sash tightly around my waist.</p><p>&#8220;It&#8217;s impolite to stare!&#8221; I scolded firmly. </p><p>I waited for the admonition to sink in. Many of them looked down at their plates.</p><p>I nodded at them and tilted my head playfully.</p><p>&#8220;The cabbage could have been taller, though.&#8221;</p>]]></content:encoded></item><item><title><![CDATA[Boy, Did He Tell Some Whoppers!]]></title><description><![CDATA[The Ayatollah's lies about the war will damage the credibility of the Muslim religion.]]></description><link>https://billhousley.com/p/boy-did-he-tell-some-whoppers</link><guid isPermaLink="false">https://billhousley.com/p/boy-did-he-tell-some-whoppers</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Thu, 26 Jun 2025 19:29:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!msUZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>My mother taught me not to lie. She even told me that a half-truth is a lie.</p><p>I suppose the Ayatollah's mother overlooked that aspect of his upbringing.</p><p>I can see statesmen packaging events to appear better and maintain confidence in government, and our elected officials here in the U.S. occasionally tell whoppers like these to hide culpability for blunders.</p><p>However, the Ayatollah Ali Khamenei is also a religious leader, not just the Supreme Leader of Iran. Islam demands a great deal from its followers, so they must believe deeply to continue adhering to all that it requires. That&#8217;s why, for the Iranian people's leading Muslim religious teacher to demonstrate such an obvious and brazen allergy to truth presents a grave risk to the religious faith of his people.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!msUZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!msUZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!msUZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!msUZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!msUZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!msUZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg" width="720" height="960" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:183516,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/166909290?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!msUZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!msUZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!msUZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!msUZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F57d42170-7f5d-455d-8e6d-f19f9bb267a2_720x960.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="pullquote"><p>&#8220;The Islamic Republic won, and in retaliation dealt a severe slap to the face of America.&#8221;</p><p>&#8220;I offer my congratulations on the victory over the fallacious Zionist regime&#8230;&#8221;</p><p>The U.S. "gained no achievement" by intervening, and did it to prevent Israel's "complete destruction."</p></div><p>I don&#8217;t think he fully understands that we are in an information age. Internet access will be restored someday in his country, and there are many within his country at multiple levels who know full well how the &#8220;12 Day War&#8221; really went for Iran. The truth will get out.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.twz.com/air/b-2-strikes-on-iran-what-we-know-about-operation-midnight-hammer" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xxXT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d1662e5-2028-4247-a8ed-bfaa459e762a_1024x332.webp 424w, https://substackcdn.com/image/fetch/$s_!xxXT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d1662e5-2028-4247-a8ed-bfaa459e762a_1024x332.webp 848w, https://substackcdn.com/image/fetch/$s_!xxXT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d1662e5-2028-4247-a8ed-bfaa459e762a_1024x332.webp 1272w, https://substackcdn.com/image/fetch/$s_!xxXT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d1662e5-2028-4247-a8ed-bfaa459e762a_1024x332.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xxXT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d1662e5-2028-4247-a8ed-bfaa459e762a_1024x332.webp" width="1024" height="332" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5d1662e5-2028-4247-a8ed-bfaa459e762a_1024x332.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:332,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:86644,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:&quot;https://www.twz.com/air/b-2-strikes-on-iran-what-we-know-about-operation-midnight-hammer&quot;,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/166909290?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d1662e5-2028-4247-a8ed-bfaa459e762a_1024x332.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xxXT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d1662e5-2028-4247-a8ed-bfaa459e762a_1024x332.webp 424w, https://substackcdn.com/image/fetch/$s_!xxXT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d1662e5-2028-4247-a8ed-bfaa459e762a_1024x332.webp 848w, https://substackcdn.com/image/fetch/$s_!xxXT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d1662e5-2028-4247-a8ed-bfaa459e762a_1024x332.webp 1272w, https://substackcdn.com/image/fetch/$s_!xxXT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5d1662e5-2028-4247-a8ed-bfaa459e762a_1024x332.webp 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Side-by-side close-up look at part of Isfahan that was targeted during Operation Midnight Hammer as seen on June 16 (at left) and June 22 (at right). <em>Satellite image &#169;2025 Maxar Technologies</em></figcaption></figure></div><p>Satellite photos from multiple independent sources, combined with assessments from the intelligence agencies of multiple countries, show that Iran was the whipping boy pretty much the entire war, and that their nuclear weapons development program, equipment, and materials have now been decimated.</p><p>Nuclear weapons are very delicate devices, and extremely expensive and time-consuming to develop and build. Iran, for decades at this point, has funneled money and effort into their nuclear weapon ambitions, in the hopes of someday using them to kill Jews in Israel, only to have Israel and the U.S. all but destroy them. The Iranian Government could have done a lot for its people with that money. Their military has also been badly damaged by Israel to give them this shot at wiping out Iran&#8217;s nuclear abilities and preventing reprisal.</p><p>What kind of Iran will emerge from this defeat, no one knows. However, religious leaders carry the weighty responsibility of maintaining their people&#8217;s faith, and lies have a way of surfacing; the bigger the lie, the harder it is to hide. Many Iranians will, sadly, doubt Khomeini&#8217;s religious teachings, and even their religion, once word gets out of the whoppers he told yesterday.</p>]]></content:encoded></item><item><title><![CDATA[Tipping Point]]></title><description><![CDATA[They are always seen in hindsight.]]></description><link>https://billhousley.com/p/tipping-point</link><guid isPermaLink="false">https://billhousley.com/p/tipping-point</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Wed, 18 Jun 2025 11:57:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9k2o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hurricanes and typhoons cause great destruction to coastal areas all over the world every year. However, though scientist can not currently predict their paths from day to day, they can predict them from hour to hour. Their expected damage to infrastructure and monetary damages can also be predicted upfront and tracked, with all of these predictive models tracked and improved with each event. People can plainly see the  eye of the storm both from space and ground zero.</p><p>Military actions against countries with autocratic regimes carry too many variables to predict changes and weakness within that country with any certainty at all. Control over the local information sources facilitates misinformation as officials release different information internally than they do externally. Officials sneak out of the country to escape actions against them. Backroom meetings are held that may never be known about. Plans are made that may never be implemented. Also, the fog of war clouds everything.</p><p>By the time U.S. forces found Adolf Hitler, he and his family were already dead. Every time a regime falls, there comes a tipping point&#8212;a time when the iron fist of control loosens and the government&#8217;s ability to govern is lost. The local population may or may not notice when it happens, but exterior forces acting against the country almost always miss the tipping point and only find out about it later. Right after the fall, other factions that have sat in the shadows see their chance to rise. Often, the criminal elements start moving first, seeking to commit theft and other kinds of harm to innocents. Then, political and cultural factions activate their long-hidden plans to take over. Still, this disruption happens secretly until after entropy finds itself unrestrained and boils over.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9k2o!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9k2o!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9k2o!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9k2o!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9k2o!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9k2o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg" width="1200" height="800" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:800,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158037,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/166230026?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9k2o!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9k2o!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9k2o!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9k2o!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2dd0b783-16a5-4b4d-85b9-b88b436c643e_1200x800.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Iran now sits at Israel&#8217;s mercy. The Israeli Air Force possesses complete air superiority over all of Western Iran and all of the capital city of Teran, and continues to expand their control over the airspace while bombing targets of choice with complete impunity. Non-stealth aircraft, and even refueling tankers, fly over Iran&#8217;s airspace unhindered. The Israeli government enjoys almost complete target category selection freedom and can do to Iran what they did to Gaza any time they choose. If there is something Israel does not want Iran to have, they can hit it. Their Masad agents had already penetrated deep enough within the country to know up-to-the-minute locations on key players within the Iranian government, military, and nuclear weapons research teams so that Israeli bombs and missiles could fly in and kill them. They&#8217;d also pre-positioned drones and remote-controlled anti-tank missile launchers to take out Iran&#8217;s radar and surface-to-air missiles in the early stages of the campaign.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rUyk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rUyk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rUyk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rUyk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rUyk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rUyk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg" width="800" height="1103" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1103,&quot;width&quot;:800,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93850,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/166230026?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rUyk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rUyk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rUyk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rUyk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdd271e21-b9c4-46be-b995-d08c8263d02b_800x1103.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For my entire adult life, ever since the Khomeini theocracy took power over Iran in the winter and spring of 1979, its government has used its petroleum revenues to spread violence and terror not only against Israel, but all over the world. Now, the influence of that government is in decline, and it has been put on the ropes. While I&#8217;d love to see the end of this backward, violent, and repressive regime, it would be naive for any of us to think that Santa Claus or the Easter Bunny would replace it. As bad as it is, it has moments of pragmatism that others in that region of the world would lack. Some Shites there would call for the accession of a Mahdi, an apocalyptic figure that preempts the world's end. Another possible scenario would be a hellacious anarchy in Iran, as individual factional and cultural warlords fight over control of the country.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!B8Tx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!B8Tx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!B8Tx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!B8Tx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!B8Tx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!B8Tx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:461994,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/166230026?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!B8Tx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg 424w, https://substackcdn.com/image/fetch/$s_!B8Tx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg 848w, https://substackcdn.com/image/fetch/$s_!B8Tx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!B8Tx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6bbe831b-b3e3-4a6e-9b8b-5d5165601734_1500x1000.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>We must learn from past mistakes and try not to push the Iranian government past its tipping point, which would cause the Iranian people immeasurable suffering and possibly destabilize neighboring nations with an influx of refugees. The Iranian government must have time and opportunity to change its policies, and maybe even pass control to another (hopefully slightly more reasonable) faction, before total collapse occurs.</p>]]></content:encoded></item><item><title><![CDATA[ASH Charges and Operation Spider Web]]></title><description><![CDATA[An example of Science Fiction made Real.]]></description><link>https://billhousley.com/p/ash-charges-and-operation-spider</link><guid isPermaLink="false">https://billhousley.com/p/ash-charges-and-operation-spider</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Sat, 07 Jun 2025 13:16:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!6r9L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Science Fiction authors love it when the real world uses their stuff. The Edwardian style of Science Fiction anticipates emerging technologies and projects their impact on society. Back in 2008, when I wrote <em>Into the Dark: Escape of the Nomad</em>, drone use in the military had just begun to be used in the U.S., but I had personal inside knowledge that they had been experimented with by the U.S. Army as early as the mid-70s. In the novel, I combined that tech with anti-gravity technology to invent the&nbsp;<em>Anti-Gravity SHaped (ASH) Charge</em>.</p><p>Below, two individuals from separate alien superpowers talk about and describe ASH Charges&#8230; </p><div class="pullquote"><p>He produced the strangely shaped device and the stack of documents that went with it, and placed it all on his desk. Fairdock squinted at it, confused as if he had expected something else.</p><p>&#8220;Ah, I see you haven&#8217;t seen one of these before. What it is, is a shaped chemical explosive, but the interesting part about it is that it is self-propelled and uses anti-gravity for its propulsion; can you believe it? Here, let me show you how it works&#8230;&#8221;</p><p>&#8220;Oh, we are familiar with these devices already, Mr. Director,&#8221; Fairdock interrupted him, seeming relieved beyond measure. &#8220;They were invented on Telesia some time ago, four of their cycles as I recall,&#8221; he was smiling now. &#8220;They're called ASH charges, that one in your hand is manufactured in an area known as Texas, in the United States. The company name is printed there on the side of it.&#8221;</p><p>Gimlar tried his best to look dejected. &#8220;Oh, then it's not as new as we thought.&#8221;</p><p>&#8220;No, it isn't.&#8221;</p></div><p>ASH Charges are designed to be used in demolition and&#8230;</p><ul><li><p>Use anti-gravity to fly. </p></li><li><p>They contain a small, shaped charge.</p></li><li><p>They receive commands from a CAD program that assigns them collectively to mathematically planned locations on a structure that needs to be demolished.</p></li><li><p>Commanded remotely, they land, stick to the structure, and then detonate on command.</p></li><li><p>I imagine their overall appearance roughly resembles the Slave I spacecraft on Star Wars.</p></li></ul><p></p><p>One of the human characters in Into the Dark purchased a crate full of ASH Charges&#8230; </p><div class="pullquote"><p>&#8220;Yep! Better than Clare here,&#8221; Jack winked. &#8220;All she ever shops for are things that go boom in the night!&#8221;</p><p>&#8220;Hey, there are other things on my list!&#8221; Clare said, pantomiming the act of pulling a long, thin, sheet of paper out of a non-existent purse. &#8220;Here you go right here; Hairpins. Oh! And there,&#8221; she showed the invisible list to Standish, &#8220;tight-fitting blue jeans, makeup&#8230;oh, and there&#8217;s the hairspray, right next to the ASH charges!&#8221;</p><p>&#8220;ASH charges,&#8221; Stan chuckled, &#8220;the ultimate teamwork between technology and high explosives.&#8221;</p><p>&#8220;Kind of like us?&#8221; Clare teased, wrinkling her nose at him.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://us.amazon.com/kindle-dbs/hz/subscribe/ku?ref=dbs_p_ebk_r00_pbcb_diupu0&amp;passThroughAsin=B07H21T2LB&quot;,&quot;text&quot;:&quot;Read Into the Dark on Kindle Unlimited&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://us.amazon.com/kindle-dbs/hz/subscribe/ku?ref=dbs_p_ebk_r00_pbcb_diupu0&amp;passThroughAsin=B07H21T2LB"><span>Read Into the Dark on Kindle Unlimited</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://us.amazon.com/Into-Dark-Escape-Bill-Housley-ebook/dp/B07H21T2LB&quot;,&quot;text&quot;:&quot;Purchase Into the Dark for your Kindle&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://us.amazon.com/Into-Dark-Escape-Bill-Housley-ebook/dp/B07H21T2LB"><span>Purchase Into the Dark for your Kindle</span></a></p><p></p><p>Clare later installed a launcher for these devices outside their ship. She designed the launcher to function as a PEZ dispenser to launch ASH Charges one at a time and use them as weapons.</p><p>Does this sound at all familiar? Last week, Ukraine smuggled remote-controlled, quad-copter drones, each carrying a small brick of C4 explosive, into Russia and dispensed them one at a time from shipping containers disguised as modular homes. They flew them onto Russian bombers parked by the taxiway of military airfields and then detonated the C4. This asymmetric warfare damaged or destroyed many of Russia&#8217;s strategic bombers that were used to launch cruise missiles against Ukrainian cities. Ukraine claims to have destroyed 40 aircraft in that attack against four different airfields, but video and satellite imagery have only been able to confirm 14 military aircraft of various types either destroyed or at least damaged (mission killed) enough to keep them out of the war for a while. Whether fourteen or forty, it&#8217;s gonna leave a mark.</p><p>Very importantly, these aircraft cannot be replaced by Russia right now, and they double as part of Russia&#8217;s global nuclear deterrent. One of the aircraft confirmed destroyed appears to be an extremely expensive, currently irreplaceable, tactically important, radar surveillance aircraft used for achieving air superiority over a battlefield and enabling Russia&#8217;s fighter aircraft to use long-range air-to-air missiles in combat, the way that Pakistan did against India recently, and defend also against attacks by low-flying aircraft. Russia has many bombers, but they're down to less than a double handful of these AWAKs aircraft.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6r9L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6r9L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png 424w, https://substackcdn.com/image/fetch/$s_!6r9L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png 848w, https://substackcdn.com/image/fetch/$s_!6r9L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png 1272w, https://substackcdn.com/image/fetch/$s_!6r9L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6r9L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png" width="690" height="387" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:387,&quot;width&quot;:690,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:156582,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/165402437?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6r9L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png 424w, https://substackcdn.com/image/fetch/$s_!6r9L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png 848w, https://substackcdn.com/image/fetch/$s_!6r9L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png 1272w, https://substackcdn.com/image/fetch/$s_!6r9L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffa591e17-0d40-4e82-b1c2-ddb049c899f4_690x387.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Just like when Ukraine sank the <em>Moskva</em>, this attack has damaged Russia in a globally significant and irrecoverable way, and they did it with exploding drones that were predicted in 2008 in my novel, <em>Into the Dark: Escape of the Nomad</em>.</p><p>If you want to read more about this and other predictive technologies in Into the Dark (such as a very interesting upgrade to the U.S. Navy&#8217;s Tomahawk missile), then you should purchase the Kindle version of the book on Amazon.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://us.amazon.com/Into-Dark-Escape-Bill-Housley-ebook/dp/B07H21T2LB" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2KCu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35759daa-c4c3-40de-b7ce-325c249b3e36_938x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2KCu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35759daa-c4c3-40de-b7ce-325c249b3e36_938x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2KCu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35759daa-c4c3-40de-b7ce-325c249b3e36_938x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2KCu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35759daa-c4c3-40de-b7ce-325c249b3e36_938x1500.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2KCu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35759daa-c4c3-40de-b7ce-325c249b3e36_938x1500.jpeg" width="938" height="1500" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35759daa-c4c3-40de-b7ce-325c249b3e36_938x1500.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1500,&quot;width&quot;:938,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:188868,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://us.amazon.com/Into-Dark-Escape-Bill-Housley-ebook/dp/B07H21T2LB&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/165402437?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35759daa-c4c3-40de-b7ce-325c249b3e36_938x1500.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2KCu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35759daa-c4c3-40de-b7ce-325c249b3e36_938x1500.jpeg 424w, https://substackcdn.com/image/fetch/$s_!2KCu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35759daa-c4c3-40de-b7ce-325c249b3e36_938x1500.jpeg 848w, https://substackcdn.com/image/fetch/$s_!2KCu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35759daa-c4c3-40de-b7ce-325c249b3e36_938x1500.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!2KCu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35759daa-c4c3-40de-b7ce-325c249b3e36_938x1500.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://us.amazon.com/kindle-dbs/hz/subscribe/ku?ref=dbs_p_ebk_r00_pbcb_diupu0&amp;passThroughAsin=B07H21T2LB&quot;,&quot;text&quot;:&quot;Read Into the Dark on Kindle Unlimited&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://us.amazon.com/kindle-dbs/hz/subscribe/ku?ref=dbs_p_ebk_r00_pbcb_diupu0&amp;passThroughAsin=B07H21T2LB"><span>Read Into the Dark on Kindle Unlimited</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://us.amazon.com/Into-Dark-Escape-Bill-Housley-ebook/dp/B07H21T2LB&quot;,&quot;text&quot;:&quot;Purchase Into the Dark for your Kindle&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://us.amazon.com/Into-Dark-Escape-Bill-Housley-ebook/dp/B07H21T2LB"><span>Purchase Into the Dark for your Kindle</span></a></p>]]></content:encoded></item><item><title><![CDATA[Glory Days]]></title><description><![CDATA[Russia's quest for a return to their superpower status is failing.]]></description><link>https://billhousley.com/p/glory-days</link><guid isPermaLink="false">https://billhousley.com/p/glory-days</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Thu, 05 Jun 2025 12:14:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5Pz0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>It&#8217;s sad, really.</p><p>Putin and the old conservative cadre in Russia, the ones who regret the fall of the Soviet Union and seek to restore it to its former might, continue to face frustration after frustration. Like an old high school football star putting the uniform back on and running onto the field to get beat up by the youngsters, Vladimir Putin&#8217;s Russia is showing its age.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5Pz0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5Pz0!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5Pz0!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5Pz0!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5Pz0!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5Pz0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg" width="720" height="960" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:960,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:212329,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/165051763?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5Pz0!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5Pz0!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5Pz0!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5Pz0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb741692f-69bd-49ae-898a-da0373aa79ec_720x960.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Since getting their fannies handed to them at the start of their invasion of Ukraine, they have gained almost no ground in two years. Ukrainian artillery repeatedly strikes deep into Russia to destroy ammunition, fuel, and troops. Russia&#8217;s vaunted Black Sea Fleet, hounded by drones, its flagship sunk by a single hit from a piddling, subsonic, Cold War remnant missile, has been chased to the extreme eastern end of the Black Sea by a country with far more limited resources and no navy. Often forced to use World War I-style human wave attacks, Russia&#8217;s resource, metal, and flesh losses continue to mount to staggering proportions. Ukraine, the country that is supposedly losing the war, was able to exploit holes in Russia&#8217;s border security and invade the homeland in Kursk Oblast, forcing Russia to ask a tiny foreign ally, North Korea, to help expel them.</p><p>The Russian war machine entered Ukraine on a wing and a prayer, all balls and bluster, but logistics and maintenence issues crippled it on the way to Kiev and elsewhere and resulted in catestrophic losses. Its air force hasn&#8217;t been able to maintain air superiority in the entire war. Only land mines prevented Ukraine from retaking Donbas in the years following the initial invasion. </p><p>Now, by smuggling in cheap drones that you or I could purchase on Walmart&#8217;s website, Ukraine has attacked airfields hundreds and thousands of miles inside Russia and damaged or destroyed a confirmed 14 irreplaceable, strategic military aircraft, rewriting the rules of asymmetric warfare, damaging its global nuclear readiness, and leaving Russia with a logistics nightmare to prevent such an attack from happening again. How will they continue to sell the lie to their people that the war is all but won?</p><p>How embarrassing for them. This is not how a superpower wages war against a smaller nation. Russia has clearly lost the ability to function as a superpower.</p><p>Globally, the Kremlin&#8217;s quest to slow the growth of the North Atlantic Treaty Organization (NATO) only resulted in its further expansion and Europe arming for war as the world increasingly sees Russia as an aggressor to be defended against.</p><p>Before the war, Russia rated dead last economically (in GDP, diversity, and other factors) compared to the U.S., Germany, China, and Japan. Now, after years of military conflict and economic sanctions, it isn&#8217;t even fair to compare it with those four nations, as Russia currently ranks 11th in the world economically.</p><p>No wonder their ceasefire conditions call for more Ukrainian land, because the rate they are going, they will never win that ground through conquest without the blood  of hundreds of thousands more Russian soldiers and twice the resources Russia is capable of producing.</p><p>Go home, Russia, before Ukraine throws you out and takes a piece of you in the process.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Plants Like Grumpy Volcanoes]]></title><description><![CDATA[Color comparing local increases in Carbon Dioxide]]></description><link>https://billhousley.com/p/plants-like-grumpy-volcanoes</link><guid isPermaLink="false">https://billhousley.com/p/plants-like-grumpy-volcanoes</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Sun, 01 Jun 2025 15:27:34 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I spend a lot of time playing in NASA Worldview. Some satellites that watch our planet gather shockingly useful (sometimes daily) data from it. So, imagine my glee when I read about a discovery by NASA&#8217;s Ames Research Center and the Smithsonian Institution that volcanoes give off enough Carbon Dioxide (CO2) as they move toward eruption, that nearby trees grow more lush and healthy, enough to see on a satellite photo.</p><p>When an active volcano starts to misbehave, scientists from all over the world arrive with their gas analyzers, satellite feeds, and seismic sensors to help the locals know if and when they need to evacuate the area. False alarms can be costly to local industries and the reputations of local leaders, but surprise volcanic eruptions add multiple digits to the casualty count. Having precise ways to presage eruptions helps provide badly needed early warning. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="3463" height="5194" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:5194,&quot;width&quot;:3463,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;a very tall mountain towering over a lush green forest&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="a very tall mountain towering over a lush green forest" title="a very tall mountain towering over a lush green forest" srcset="https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1704287703606-b8b45c4dbccc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw5fHx2b2xjYW5vJTIwd2l0aCUyMHRyZWVzfGVufDB8fHx8MTc0ODc1MjU4NXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="true">Fadhila Nurhakim</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>Of course, taking pictures of an Icelandic volcano from orbit won&#8217;t show very many trees, but volcanoes in other parts of the world come with vegetation growing up their slopes.</p><p>Another key indicator is sulphur dioxide, which can be directly detected from orbit using spectroscopy. CO2 shows up earlier, but subtle increases in that gas can only be sniffed out directly by scientists getting up close and personal with the volcano, and can show magma near the Earth&#8217;s surface. Now, they can use foliage color, as seen from orbit.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!uDz1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!uDz1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png 424w, https://substackcdn.com/image/fetch/$s_!uDz1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png 848w, https://substackcdn.com/image/fetch/$s_!uDz1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png 1272w, https://substackcdn.com/image/fetch/$s_!uDz1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!uDz1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png" width="1366" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1366,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:795153,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/164914723?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!uDz1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png 424w, https://substackcdn.com/image/fetch/$s_!uDz1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png 848w, https://substackcdn.com/image/fetch/$s_!uDz1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png 1272w, https://substackcdn.com/image/fetch/$s_!uDz1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F50748309-e2f7-427a-a183-b8a1edd5d26f_1366x768.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Check out the <a href="https://go.nasa.gov/4mGE7V1">link</a> below. I&#8217;ve added the layers for the Normalized Difference Vegetation Index (NDVI) sensors. Compare the various sensors, volcanoes, and dates, and see if you can find a comparison between baseline and pre-eruption changes.</p><p><a href="https://go.nasa.gov/4mGE7V1">Map</a></p>]]></content:encoded></item><item><title><![CDATA[When Elon Musk went to Washington]]></title><description><![CDATA[Does Musk really make money from government contracts from Trump?]]></description><link>https://billhousley.com/p/when-elon-musk-went-to-washington</link><guid isPermaLink="false">https://billhousley.com/p/when-elon-musk-went-to-washington</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Thu, 22 May 2025 13:56:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!IoAO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I had a conversation on Twitter/X last week with someone not from the United States (he seemed to hint at the U.K.) that Elon Musk&#8217;s cozy bromance with President Trump and the government contracts Elon has somehow have a causal link. As someone who has followed the rise of SpaceX from its humble beginnings and watched the way SpaceX had to scrape for a decade to get a foot in the door (Musk sued the Air Force just to be treated equally in bids), I find this allegation laughable to the point of comedy. Such a lame theory points to total ignorance of the system of government corruption surrounding launch services contracts in the U.S.</p><h2>The Players</h2><p>Until recently (and probably still), Military procurement in the United States has always been a good ole boys club, seeped in a seedy circle of mutual back-scratching between Department of Defense (DOD) procurement officials, Congressfolks, and a relatively exclusive list of large defense contractors.</p><p>You&#8217;ll have General Whosit of one of the branches of the military working as a procurement officer high up within the Department of Defense. He&#8217;s nearing retirement and wants a cushy post-retirement job somewhere with a comfortable salary to supplement his pension, and a golf bag leaning against the desk. So, he wants to get in good with one of the major defense contractors so that one day he might use his technical knowledge, security clearance, ability to navigate the cryptic military knowledge base, and insider contacts to get a job as a Salesman.</p><p>You&#8217;ll also have Congressman Whosit on the House or Senate Armed Services and/or Budget Committee. He knows that he might choose to retire or be forced to by losing  an election someday. So, he wants to get in solid with large defense contractors to schmooze his way into a lucrative Lobbyist job, kind of a Washington insider sales guy.</p><p>There is also a sleezy underbelly to this  mutual backscratching club that I won&#8217;t get into in detail here, beyond just calling it a sleezy underbelly and letting you use your imagination beyond that. Maybe I&#8217;ll just call it a mutual belly rubbing club instead of mutual backscratching.</p><p>I should add that the National Aeronautics and Space Administration (NASA) was born out of the U.S. military four years before I was born. Though totally separate from the DOD procurement model, its procurement model is a total clone of it and buys from those same defense contractors. </p><h2>Competing Paradigms</h2><p>I said that NASA&#8217;s procurement model is a clone of the DOD&#8217;s procurement model. Prior to the rise of SpaceX, which is structured around the Fixed-Price contracting paradigm, the Space industry used what is called the Cost-Plus contracting model. In Cost-Plus contracting, the providing company is not paid for the product; they are paid to develop it. This seems to work well for the DOD, but for NASA, it becomes a money pit where spacecraft projects languish on the ground for years, running up the tab, before ever flying. Under Cost-Plus contracting, the big money&#8230;the REALLY big money&#8230;isn&#8217;t in completing the spacecraft and sending it to space, but in dragging it out and milking it for all it&#8217;s worth on the ground until either Congress loses patience and cancels it (yes, it is Congress that does that, not NASA), or eventually it does actually fly. When the spacecraft does fly, the government owns it as if it were a fighter jet or something. NASA&#8217;s Space Launch System (SLS) is currently mired in this muck.</p><p>NASA would also shepherd small startups to do little things for their Spin-Off Program. For these smaller capability expansion projects, they would use a thing called Fixed-Price contracting where the provider is paid in stages as they achieve milestones, penalized if they fail to achieve milestones, and the contracting company owns the product in the end. NASA starts out as the task-master and becomes the product&#8217;s first, but not its only, customer.</p><p>Over the course of the rise of SpaceX, NASA has transitioned away from Cost-Plus contracting for orbital launch services and toward the Fixed-Price contracting that they used to just use for Spin-offs. This pretty much turns spacecraft into Spin-offs. However, the seedy, belly-rubbing club that I mentioned earlier fought back hard. Congress hates Fixed-Price contracting because they don&#8217;t get to decide which state gets the jobs or when the project will end, and NASA decides when the company is eligible for payouts based on performance rather than Congressional belly-rubbing. The old-school contractors hate Fixed-Price contracting because their businesses and bidding processes have been structured over the decades to need all that wasted money from Cost-Plus contracting and to rely more on belly-rubbing than on performance. The power struggle within NASA between the Cost-Plus contracting proponents and Fixed-Price contracting proponents has been furious as Cost-Plus gradually lost ground and hoped in vain with each presidential transition after Obama that an incoming new President would rescue them and restore the status quo. NASA Administrator under the Biden Administration, Bill Nelson, called Cost-plus contracting a plague on the agency&#8230;</p><p><em>"You get it done with that competitive spirit. You get it done cheaper, and that allows us to move away from what has been a plague on us in the past, which is a cost-plus contract, and move to an existing contractual price."</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!IoAO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!IoAO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IoAO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IoAO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IoAO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!IoAO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg" width="1456" height="782" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:782,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:988854,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/163771560?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!IoAO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg 424w, https://substackcdn.com/image/fetch/$s_!IoAO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg 848w, https://substackcdn.com/image/fetch/$s_!IoAO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!IoAO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ee98c9b-bca1-4925-b474-31601f410236_2487x1336.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">President Barack Obama tours the commercial rocket processing facility of Space Exploration Technologies, known as SpaceX, along with Elon Musk, SpaceX CEO at Cape Canaveral Air Force Station, Cape Canaveral, Fla. on Thursday, April 15, 2010. Obama also visited the NASA Kennedy Space Center to deliver remarks on the bold new course the administration is charting to maintain U.S. leadership in human space flight.</figcaption></figure></div><p>I chronicled this entire evolution from its start to now on my WordPress blog as it happened. President Obama started the fight in February of 2010 when he cancelled the Bush administration&#8217;s Constellation program that had started in January 2004. He made the cancellation official in October 2010 and Congress went ape crap bonkers in response, accusing President Obama of  messing with Congressionally-approved expenditures. Sound familiar?</p><p>At the end of that fight, the series of different sized launchers under Constellation program were all consolidated down to one large launcher, the Space Launch System (SLS), to which NASA assigned all of their planned upcoming deep-space launch projects, including their Jupiter probe Europa Clipper, and every stage of their manned Moon and Mars missions. SLS would remain a Cost-Plus development project, but would not service the International Space Station (ISS). A new set of competing spacecraft development projects would be developed under Fixed-Price contracting for that. </p><p>SLS finally flew on Novermber 16th, 2022. Remember earlier when I said that the project actually started in 2004? It took almost 20 years for the SLS program to produce just one completed rocket! In contrast, the Falcon 9 rocket, which SpaceX had begun developing in 2005, flew its first test flight under a NASA Fixed-Price contract requirement on June 4th, 2010, and carried with it a mock-up of their ISS cargo capsule for the ISS. At the end of that year, the Falcon 9&#8217;s second test flight launched their first operational Dragon ISS capsule into orbit, which was safely and successfully recovered. The Falcon 9 then spent the next five years becoming reusable while taking over the world&#8217;s commercial launch industry with unprecedentedly low pricing and rapid launch cadence. </p><p>In 2018, during the first Trump administration, SpaceX launched its first Falcon Heavy after 10 years of development, tossing Elon Musk&#8217;s personal red Tesla Roadster into a solar orbit that intersects with Mars&#8217; orbital path. Ever since then, the Falcon Heavy has filled the niche of the world&#8217;s most powerful operational rocket.</p><p>By 2020, the latest version of the Falcon 9 had started launching astronauts to the ISS aboard its new Crew Dragon. By the time SLS launched its first test flight in November 2022, the Falcon 9 had had 176 successful flights, and the Falcon Heavy had had 4. These 180 Falcon flights included commercial flights, launches to the ISS, other NASA launches, and launches for the Defense Department and foreign nations.</p><p>Through that same period, delay-induced cost overruns and unavailability resulted in every one of the planned NASA SLS launches being scaled back and reassigned to other launchers, often the Falcon 9, Falcon Heavy, a foreign launcher, or ULA&#8217;s Atlas or Delta Heavy. That includes the first test flight of the Orion orbiter, the manned space capsule that is supposed to be part of SLS program. It flew on the ULA Delta Heavy, which lifts half as much as a SpaceX Falcon Heavy and costs up to five times more.</p><h2>Kicking in the door at the Air Force</h2><p>Once SpaceX&#8217;s Falcon and Falcon Heavy launchers qualified for Department of Defense launches, SpaceX started bidding for contracts and losing for lame reasons while knocking full sets of digits off their bid amount compared with the more traditional and much better-connected launch company, United Launch Alliance (ULA). In response, Elon Musk publicly hinted about that seedy, belly rubbing club I spoke of earlier and suggested that it was the reason for the unequal treatment of his company by the Defense Department. He fought back by suing the Air Force in Federal court. Everyone was shocked, but I wasn&#8217;t. Evidence discovery in U.S. Federal lawsuits runs very deep and wide. The Air Force immediately reversed their treatment of SpaceX, giving them fair treatment in contract bidding and access to contract awards commensurate with their cost advantage, and SpaceX immediately dropped the lawsuit.</p><h2>Changing Administrations</h2><p>When Donald Trump won the presidency in 2016, his transition teams began preparing executive agencies for the transfer of power. He made no secret of the fact that he intended to &#8220;Drain the Swamp&#8221; and that included NASA. Everyone knew that there were things that Trump didn&#8217;t like about how Obama had run NASA, and it was said that his NASA &#8220;transition team&#8221; more closely resembled a &#8220;boarding party&#8221;. By then, the power struggle within NASA between Old-Space and New-Space had reached a very high temperature, and with Trump acting very anti-Obama and anti-Green energy, and both of those issues being very tightly connected to Elon Musk, the Old-Space proponents hoped that the upcoming and very disruptive Trump Administration would put a stop to the revolution within NASA that Barack Obama and Elon Musk had started. Both sides worked very hard for Trump&#8217;s favor, but in the end, he stayed out of their dispute, saying he preferred to watch the fight and see who won. However, he also warned both sides that he expected results, gave Senator Jim Bridenstine, with a strong space history, the job of NASA director, and told Vice President Mike Pence, a well-respected former Governor and Senator, to keep an eye on NASA. During his first administration, Trump wanted a crewed lunar landing to close his future second term and over time became very frustrated with sluggish Old-Space and enamored with the peckish New-Space, Elon Musk, and SpaceX. Under Trump and Bridenstine, NASA pretty much jumped into Fixed-Price contracting with both feet.</p><p>Then Joe Biden won the election in 2020, and his transition team came in. Old-Space hoped, again, that the incoming administration that vowed to reverse everything Trump had ever done would rescue them from their rapid descent to irrelevancy. Elon Musk&#8217;s peckishness had lost him favor with the Democrat Party and its fan base, and Tesla&#8217;s lack of a unionized labor force had lost him favor with Joe Biden. All of this conflict manifested very publicly, and some government agencies, like the Federal Aviation Administration, began resisting and delaying new SpaceX development in annoying little ways. Beyond that, however, Biden didn&#8217;t care much about space, and all he did to help Old-Space was spare them from Trump&#8217;s unrealistic 2024 lunar landing expectation. He put Vice President Harris in charge of watching NASA and appointed Bill Nelson as NASA Administrator to ensure the agency was strongly led. Bill Nelson was a very strong proponent of New-Space, but I doubt that Biden knew about that or cared. Over the course of the Biden Administration, Kamala Harris repeatedly demonstrated herself to be more clueless about space than the average high school student.</p><p>So, from that moment on, Old-Space was doomed, and Elon Musk was already on the rise within NASA and the DOD like a rocket long before he joined Donald Trump&#8217;s reelection campaign.</p><h2>Conclusion</h2><p>There are many other fun and lengthy details sandwiched into this story that you can find on my Wordpress blog if you&#8217;re interested. </p><p>Most of the money that SpaceX makes is from business in the commercial launch industry market, not the cut-rate costs SpaceX bids for NASA fixed-price contracts or from U.S. Space Force or Reconnaissance Office contracts. He has shouldered out every other large orbital launch provider worldwide except for maybe ArianeSpace. SpaceX, with its dramatically lower dollars per pound to orbit, has been expanding the reach of Commercial Space into new industries, filling the needs of those new markets as it builds. It launches more rockets into space every year than every government or company on Earth combined, excluding China. </p><p>StarLink&#8217;s revolutionary idea of low-altitude, North to South orbiting communications satellites didn&#8217;t start with Elon Musk, but he now owns many times more of the satellites currently operating in orbit than everyone else on Earth <em>combined, </em>giving every human on Earth access to the Internet using a dish the size of a pizza box. Yes, the U.S. Space Force has a piece of that too, providing the United States military air, land, and sea assets with seamless, low-latency communications worldwide. Many of those satellites can be reached from your cell phone now, too, and will soon provide you with temporary connectivity anytime you wander out of range of your provider&#8217;s tower&#8212;if it doesn't already.</p><p>Tesla is not currently doing as well as Elon&#8217;s space efforts, but it is a publicly traded company, and Elon only owns part of it. Tesla remains the leader of the electric vehicle industry, and their competition leases the use of their charging stations here in the U.S. and their AI-based self-driving technology. Efforts by terrorist groups in the U.S. to damage Tesla as a company have only slowed them down, not stopped them.</p><p>So, Elon Musk needs no help from Donald Trump to secure government contracts, nor do those contracts contribute more than a fraction to his net worth, and the awarding of those contracts pre-dates the second Trump Administration anyway. Donald Trump, still very much a Washington outsider, needs Elon Musk&#8217;s help to bend NASA, the DOD, and other agencies to his will, not the other way around.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Suspension of Habeous Corpus? Not today.]]></title><description><![CDATA[I do not support the suspension of habeous corpus in the U.S.]]></description><link>https://billhousley.com/p/suspension-of-habeous-corpus-not</link><guid isPermaLink="false">https://billhousley.com/p/suspension-of-habeous-corpus-not</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Sun, 11 May 2025 12:26:56 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I do not support the suspension of habeous corpus in the U.S. for immigration enforcement under the current circumstances, either by the President or Congress. I do not even support all of the historical suspensions. Government always does things inefficiently and emotionally and mistakes are made and those mistakes need to be filtered out by process. I think that we can maybe consider maybe starting the process of discussing this strenuously dangerous option only in the environment of a Congressionally declared state of war.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080" width="5504" height="8256" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:8256,&quot;width&quot;:5504,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;a large building with a flag on top of it&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="a large building with a flag on top of it" title="a large building with a flag on top of it" srcset="https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1688418247143-2c13b96d4cd6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwxfHx0aGUlMjB1LnMuJTIwY29uc3RpdHV0aW9ufGVufDB8fHx8MTc0Njk2NjI0MXww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="true">Tim Mossholder</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>I also do not support efforts by the open borders crowd and activist judges to misuse the process to prevent, delay, or unnecessarily complicate legally appropriate deportations. </p><p>I also don't like it when Presidents field ridiculous executive orders that everyone knows will be struck down by the Supreme Court, just to bounce it against the walls of possibility or to take advantage of the slow legal process of getting it through the court process. I didn't like it when Biden did it with OSHA and COVID vaccines and I don't like it when Trump does it either. A presidential suspension of habeous corpus in this situation, using the extremely weak legal backing that has been suggested, would not be supported by Justice Barrett nor Justice Roberts, and possibly not by Alito or Thomas either.</p><p>The words "involved in discussions" are deliberately obtuse and could mean anything between "Advisors drafted a memo for Trump to read that lists possible actions to consider and one of the hundred or so bullet points says to suspend habeous corpus" and "Trump is slamming fist on his desk and ordering that an executive order to be drafted that suspends habeous corpus". </p><p>This hubbub was triggered at the tail-end of the weekly news cycle. I think that was done on purpose to cause it to percolate in an information vacuum over the weekend. Either this was to gauge public response (likely) or to troll the Leftist side of the news media on something that will turn out tomorrow to be a nothing burger (less likely but possible).</p><p>We'll see.</p>]]></content:encoded></item><item><title><![CDATA[The Bog of Eternal Stench]]></title><description><![CDATA[What non-smokers endure from smokers.]]></description><link>https://billhousley.com/p/the-bog-of-eternal-stench</link><guid isPermaLink="false">https://billhousley.com/p/the-bog-of-eternal-stench</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Sun, 20 Apr 2025 12:00:54 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!5prJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I love people, almost all people, so it is difficult for me to be this frank about it, but they need to know.</p><p>On the movie The Labyrinth, the Goblin King, played by David Bowie, liked to punish the transgressions of his subjects by casting them into a place in his realm called The Bog of Eternal Stench. If the person so punished is unable to immediately leave this misty, farty place of gastly, unbearable olfactory assault, the aroma becomes a part of them so that they carry the smell out with them after they escape.</p><p>Steve Martin had a comedy line that he used in the early years of his career where he opined on his preferred response to the question, &#8220;Do you mind if I smoke?&#8221; His reply, followed by roaring laughter and applause from the crowd was, &#8220;Do you mind if I <em>fart</em>?&#8221;</p><p>The sad irony of it all is that one of the chemical substances released by tobacco smoke is a poison called Hydrogen Cyanide (HCN). One of the symptoms of HCN poisoning is the loss of a sense of smell. So, cigarette smokers can never fully appreciate just how much their habit makes them stink.</p><p>I mean it really stinks, so that a non-smoker can smell the breath of a smoker from across a dinner table as soon as the smoker exhales in their direction. I&#8217;m told that it isn't that bad for some people who used to smoke and then have quit, because the habit never really leaves, and it might smell sweet and nostalgic to them. On the other hand, the smell of cigarette smoke also makes some former smokers physically ill.</p><p>It's been said that kissing a smoker is like licking an ashtray. So it's a good thing that the smoker&#8217;s breath gives the nose of the non-smoker sufficient warning before they get that close. However, it isn't just the smoker's burning tobacco field breath that sets them apart from the crowd. Cigarette smoke is sticky and carries an ionic charge, so that as soon as the smoke leaves the smoker, it is attracted to nearby neutrally-charged surfaces and glues itself there. This means that the smoker's skin, hair, and clothes exude the stale aura of every cigarette they've smoked since they last showered and changed into clean clothing. Everyone standing nearby while a smoker smokes also gets it absorbed into their hair and clothes, and they carry it home with them, whether they themselves smoke or not.</p><p>Everything the smoker owns, their vehicle, their habitation, smells of stale tobacco smoke, as does the very cloud of air that follows them around. If a non-smoker is standing near a smoker and not repulsed and wrinkling their nose, it&#8217;s because they are being polite. Personal body odor has to be pretty severe, and a day old, before it can compete with stale cigarette smoke, and like BO, non-smokers sometimes talk about the smell behind the smoker's back.</p><p>I recently learned that when you live in an apartment and share a common bathroom vent system or pipe and utility path between floors, a smoker living above or below you, who smokes in the bathroom with the fan on, is sharing their experience with their neighbors. In fact, since the bathroom door was open, the hallway, kitchen, and living room of my apartment filled with the scent, so I had to open the front door to the outside and the balcony door to allow the Wyoming wind to replace all the air in my living space. By the way, it was 28 degrees F (-2 degrees C) outside. Afterward, when the furnace kicked on to bring the apartment to a more civilized indoor temperature, the smell entered the furnace room through the pipe paths and furnace burner exhaust paths between the floors. From there, the furnace fan pumped the scent out into every room and corner of my apartment. I had to repeat the freeze-out to warm-up cycle several times until the smell was completely banished. </p><p>On weekend nights, that same stale, second-hand tobacco smoke combined with stale, second-hand marijuana smoke so that it smelled like someone was smoking while wrangling and branding a herd of skunks.</p><p>So, smokers, please be aware of the impact that your smoking has on those who you live and work around. Not only are you killing yourself, but you are unknowingly offending the noses of everyone nearby.</p><p>Beyond the smell, some people with breathing problems such as asthma can be endangered by second-hand smoke. In fact, the cloud of tobacco smoke smell around a smoker, and even their breath, can trigger an asthma attack in someone else nearby. Also, in the same way that a smoker carries with them a cloud of tobacco smoke smell from their breath, hair, and clothes, those who need pure oxygen from a tank or O2 concentrator carry with them a very dangerous oxygen saturation zone that can set them on fire if they get too close to a smoldering cigarette. These are the main reasons why smoking isn't permitted in hospitals or the homes of those on oxygen.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5prJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5prJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!5prJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!5prJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!5prJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5prJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png" width="1024" height="608" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:&quot;normal&quot;,&quot;height&quot;:608,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5prJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png 424w, https://substackcdn.com/image/fetch/$s_!5prJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png 848w, https://substackcdn.com/image/fetch/$s_!5prJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png 1272w, https://substackcdn.com/image/fetch/$s_!5prJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7207b851-2145-4284-aaed-1e65784c3b3d_1024x608.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Dude smoking under a no smoking sign.</figcaption></figure></div><p>For the above reasons, laws have been passed in some jurisdictions in the U.S. and possibly elsewhere that restrict indoor smoking in public places; however, this was not always the case. As a teenager long ago, I was in a bicycle crash, and my mother, an asthmatic, took me to the local medical clinic at the remote U.S. Army Base where we lived so that I could get my lacerated elbow treated. As we waited at the office service window to be seen by a nurse, the corporal was sitting at his desk, smoking, literally in the shadow of a &#8220;No Smoking&#8221; sign. The fan in the room blew the smoke past us through the service window, and my mother started wheezing. I started diplomatically hinting at him by repeatedly looking at him, the sign, the ashtray, and her, and then back around again.</p><p>Finally, he noticed.</p><p>&#8220;Oh, you must be some of those damn Mormons,&#8221; he said with a snort of derision.</p><p>&#8220;Well, yeah,&#8221; I replied calmly, pointing a thumb towards my mother. &#8220;But also, she's an asthmatic.&#8221;</p><p>He crushed out that cigarette so fast he nearly burned his fingers.</p><p>I love telling that story, but we live in a more enlightened time now, and most of the smokers I encounter these days are not nearly that rude. They know of the impact their habit has on those around them and try to do what they can to mitigate it. </p><p>Gone are the days when people would blow their smoke directly in my face when they learn that I'm a non-smoker or LDS.</p><p>So, I write this out of love for my fellow Earthlings because I know that people these days who smoke would want to know about the offensive smell.</p><p>I hope this helps.</p>]]></content:encoded></item><item><title><![CDATA[I told Google's Gemini to write me a Letter of Recommendation]]></title><description><![CDATA[Actually, I tried Microsoft Copilot first and got nowhere.]]></description><link>https://billhousley.com/p/i-told-googles-gemini-to-write-me</link><guid isPermaLink="false">https://billhousley.com/p/i-told-googles-gemini-to-write-me</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Sat, 19 Apr 2025 11:11:41 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vmhF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The company I work for has decided to decommission the factory where I work, so I&#8217;m currently looking for a new job. I had a job fair event coming up, and a former supervisor was scheduled to be laid off in the first round (I&#8217;m in the second wave, which is set to occur in early summer). Therefore, I needed to write a letter of recommendation for him, which other managers would also sign.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vmhF!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vmhF!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png 424w, https://substackcdn.com/image/fetch/$s_!vmhF!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png 848w, https://substackcdn.com/image/fetch/$s_!vmhF!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png 1272w, https://substackcdn.com/image/fetch/$s_!vmhF!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vmhF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png" width="1031" height="490" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:490,&quot;width&quot;:1031,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:73170,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/160873148?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vmhF!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png 424w, https://substackcdn.com/image/fetch/$s_!vmhF!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png 848w, https://substackcdn.com/image/fetch/$s_!vmhF!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png 1272w, https://substackcdn.com/image/fetch/$s_!vmhF!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4c8cb183-5ec6-45d0-9e84-c54b8b4f00a5_1031x490.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>To prepare one, I decided to dig out my most recent employee performance evaluation, make a couple of minor edits for context, and feed it into a long language model AI. I tried Microsoft Copilot first, but found the result deeply disappointing. It shocked me, as Copilot has consistently produced wonderful summaries of documents for me in the past. I thought this would be similar, but all it did was reformat the information into a letter, with no rewrite, even though I told it to remove passive voice sentences and reflect current best practices. So I went to Google&#8217;s Gemini. Ignore the misspellings, sentence structure, and punctuation errors in my prompt. I tend to get lazy about that when working with long language models, since they&#8217;re all smart enough to work around such issues.</p><div><hr></div><h5>Copilot did a poor job at this, we'll see if you do better. I have transcribed my latest performance review with some rewrite. I will copy/paste it to you. Please rewrite it into a letter of recommendation in a way that applies todays best practices. Please also summarize the changes that you made and why. Also, remove passive voice verb usage where appropriate.</h5><p></p><p><em>Understood. Please paste your transcribed performance review. I will do my best to rewrite it as a strong letter of recommendation, applying modern best practices, removing passive voice, and summarizing the changes I made.</em></p><p></p><p>To preserve my supervisor&#8217;s privacy, I won&#8217;t share what he wrote in my employee review. Anyway, I copied and pasted the review to Gemini, and below is what it produced.</p><p>Afterwards, I rearranged the paragraphs to emphasize the Maintenance Planner qualifications near the top and gave it to several of my supervisors, including the original author of the performance review. They signed and returned it. I&#8217;ll use them today and tomorrow for job fairs. </p><p>The result is imperfect, as one of my managers pointed out, and this version is also overly large. So, this is not the version I am currently using. If you follow this path, I encourage you to review the result carefully and make any necessary edits before using it.</p><p></p><p><em>Absolutely! Here's a rewritten letter of recommendation based on your performance review, incorporating best practices and removing passive voice, followed by a summary of the changes:</em></p><p><strong>Letter of Recommendation</strong></p><p><strong>To Whom It May Concern:</strong></p><p>It is with great pleasure that I recommend Bill for any suitable position that aligns with his extensive maintenance planning expertise. Over the past 12 years, Bill has not only served as a Maintenance Planner for our organization but has also been instrumental in defining and establishing modern maintenance planning best practices from the ground up.</p><p>Bill demonstrates exceptional dependability and punctuality. He consistently communicates any time-off needs well in advance. Moreover, he willingly commits to after-hours and weekend work to ensure the completion of critical tasks. This dedication speaks volumes about his work ethic and commitment.</p><p>Bill's work is characterized by meticulous attention to detail. He proactively seeks clarification when needed and consistently delivers high-quality results. His ability to identify subtle discrepancies that others often overlook is a testament to his keen eye and dedication to excellence.</p><p>The role of a Maintenance Planner demands a broad spectrum of knowledge, encompassing mechanical, electrical, preventive/predictive maintenance, inventory control, purchasing, planning, scheduling, and CMMS system management. Bill possesses a robust understanding across these domains, enabling him to excel in his responsibilities.</p><p>Bill consistently demonstrates initiative and takes ownership of his tasks. He anticipates potential issues and proactively develops solutions. His proactive approach and sense of personal responsibility drive him to deliver outstanding results without requiring constant supervision.</p><p>Bill excels in planning and organizing complex maintenance tasks. He has played a pivotal role in not only planning essential work but also in ensuring its effective tracking and completion. This has significantly contributed to the productivity improvements within our plant.</p><p>In summary, Bill has been an invaluable asset to our company and maintenance team. His character, reliability, and unwavering commitment to excellence have made him a key contributor to our success. I am confident that Bill will be a significant asset to any organization he joins. He is a highly capable professional and a pleasure to work with.</p><p>Sincerely,</p><p>[Your Name] [Your Title] [Contact Information]</p><p><strong>Summary of Changes and Rationale:</strong></p><ol><li><p><strong>Stronger Opening and Closing:</strong></p><ul><li><p>Instead of a simple "Summary," I used a more impactful closing that directly states my confidence in Bill's future success.</p></li><li><p>The opening directly states the recommendation and the length of service.</p></li></ul></li><li><p><strong>Active Voice:</strong></p><ul><li><p>I systematically replaced passive voice constructions with active voice. For example, "work is taken care of" became "he commits to...ensure completion of critical tasks." This makes the writing more direct and impactful.</p></li></ul></li><li><p><strong>Emphasis on Impact and Achievements:</strong></p><ul><li><p>I focused on quantifying Bill's contributions where possible (e.g., "instrumental in...establishing modern maintenance planning best practices," "significantly contributed to the productivity improvements").</p></li><li><p>I used stronger verbs and more descriptive language to highlight his skills and achievements.</p></li></ul></li><li><p><strong>Modern Best Practices:</strong></p><ul><li><p>I structured the letter to highlight Bill's key competencies and their impact on the organization.</p></li><li><p>I focused on his proactive nature, and his ability to see problems before they arise.</p></li><li><p>I removed some of the more informal language, to be more professional.</p></li></ul></li><li><p><strong>Organization and Flow:</strong></p><ul><li><p>I organized the information into clear, concise paragraphs, each focusing on a specific aspect of Bill's performance.</p></li><li><p>The letter flows better, and is easier to read.</p></li></ul></li><li><p><strong>Removed redundancies:</strong></p><ul><li><p>I removed some of the repetitive statements, like "Bill is a great person and great to work with" and instead wove that sentiment into the closing paragraph.</p></li></ul></li><li><p><strong>Professional Tone:</strong></p><ul><li><p>I maintained a professional and respectful tone throughout the letter, emphasizing Bill's strengths and contributions.</p></li></ul></li></ol><p>By making these changes, the letter is now more impactful, professional, and aligned with modern best practices for recommendations. </p><p></p><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[The Future of Anomaly]]></title><description><![CDATA[What's coming up.]]></description><link>https://billhousley.com/p/the-future-of-anomaly</link><guid isPermaLink="false">https://billhousley.com/p/the-future-of-anomaly</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Mon, 14 Apr 2025 23:44:04 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c744936e-db91-46b5-8910-efc05d980a11_1024x768.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Last night, the republishing of old episodes of Anomlay ended. Next week, the publishing of never-before-seen episodes will begin. Currently, I&#8217;m polishing episodes 1-5 that I wrote many months ago and starting to write episodes 6-8. Subscribe to the Anomlay SciFi publication, and you&#8217;ll be among the first to see them.</p><p>Just like seasons 1 and 2, the first five episodes of Season 3 will be free. Everyone who clicks on them will get to see them. </p><p>Unlike Seasons 1 and 2, which were released on Substack at an accelerated schedule to get them out there so that you and the world could see them again after Kindle Vella ended, the episodes of Season 3 of Anomaly will arrive in your inbox weekly, every Monday starting on April 21st, 2025.</p><p>Here are some samples&#8230;</p><div><hr></div><p>Sam stood up from the conference room table and walked over to the window. Then, he walked along the window to the wall. He had seen the schematics for the station and knew exactly where to place his hand.</p><p>&#8220;Admiral Kriffard, do you think that Admiral Pace is out of missiles?&#8221; he said. &#8220;There is a missile inside this wall right here.&#8221;</p><p>He stooped down and touched the wall again near the floor.</p><p>&#8220;There&#8217;s a missile here, too.&#8221;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://anomalyscifi.substack.com/subscribe&quot;,&quot;text&quot;:&quot;Subscribe to Anomaly SciFi&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://anomalyscifi.substack.com/subscribe"><span>Subscribe to Anomaly SciFi</span></a></p><div><hr></div><p>&#8220;Swing the ship around. Order our destroyers to attack. Order the <em>Hayden</em>, <em>Schwartz</em>, and <em>Welsh </em>into the wormhole to pass the targeting data for those newcomers to the <em>Saratoga </em>at Wormhole #112.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://anomalyscifi.substack.com/subscribe&quot;,&quot;text&quot;:&quot;Subscribe to Anomaly SciFi&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://anomalyscifi.substack.com/subscribe"><span>Subscribe to Anomaly SciFi</span></a></p><div><hr></div><p>Mayor Ron Stafford saw another green tag on the door of a hospital room. Green meant Human, Blue meant Goultaran, and Yellow (and guards outside) meant Eridani. He found the door open a crack but knocked anyway.</p><p>&#8220;Come in,&#8221; came a raspy voice from inside.</p><p>He pushed through the doorway with his wheelchair, glancing up to avoid snagging his IV hanger on the doorframe.</p><p>As he rolled in, he saw four beds and looked around for the person who&#8217;d replied to his knock.</p><p>&#8220;Over here, Mayor,&#8221; said the voice.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://anomalyscifi.substack.com/subscribe&quot;,&quot;text&quot;:&quot;Subscribe to Anomaly SciFi&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://anomalyscifi.substack.com/subscribe"><span>Subscribe to Anomaly SciFi</span></a></p><div><hr></div><p>Admiral Pace nodded. He&#8217;d anticipated this. He reached into his briefcase, removed some documents, and handed them to Admiral Stengras.</p><p>&#8220;This is a copy, but I know you&#8217;ll recognise it. It is from your own Ambassador Britil&#8217;s reports.&#8221;</p><p>Stengrass leafed through it.</p><p>&#8220;The date on this is very recent, just before our operation to Goultara was launched. Britil doesn&#8217;t report directly to me, so her reports come to me through channels. I haven&#8217;t seen or read this one yet.&#8221;</p><p>&#8220;Then call me the delivery boy&#8230;&#8221;</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://anomalyscifi.substack.com/subscribe&quot;,&quot;text&quot;:&quot;Subscribe to Anomaly SciFi&quot;,&quot;action&quot;:null,&quot;class&quot;:&quot;button-wrapper&quot;}" data-component-name="ButtonCreateButton"><a class="button primary button-wrapper" href="https://anomalyscifi.substack.com/subscribe"><span>Subscribe to Anomaly SciFi</span></a></p><div><hr></div><p>Before her eyes stretched a domed habitat with numerous buildings scattered within it. She refrained from looking down since, from that vantage point, she could see that she was hundreds of stories off the ground.</p><p>&#8220;Danger,&#8221; an automated voice sounded in her ear.</p><p>&#8220;Oh, shut up,&#8221; she replied with a twist of her head but could find no source of the warning.</p><p>The breeze she had felt inside had been just a remnant of the brisk wind that blew steadily past the deeply ensconced balcony. She slid up her sleeves and reached her hands over the rail to feel the wind&#8217;s full force blow over her bare arms.</p><p>She heard a sound behind her and turned quickly. Too quickly, she realized with a wince, as stabbing pain and dizziness reminded her again of her injuries.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://anomalyscifi.substack.com/subscribe&quot;,&quot;text&quot;:&quot;Subscribe to Anomaly SciFi&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://anomalyscifi.substack.com/subscribe"><span>Subscribe to Anomaly SciFi</span></a></p><p></p><p></p><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;0b7b937a-1924-4540-a394-7d7d2bef3010&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Anomaly: Season 1: Survival&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:283007503,&quot;name&quot;:&quot;Bill Housley&quot;,&quot;bio&quot;:&quot;Writes clean, heart-pounding science fiction for the masses. \&quot;I gaze into the stars at night, and they tell me their stories.\&quot; Check out his Anomaly Series here...https://anomalyscifi.substack.com/ &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d4f32f3-5e5c-4d6b-87f2-aec9cc32fd5e_1020x1020.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-01-25T12:17:47.598Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F05456a87-f0ad-4ff9-8cf6-fa2c25a04fba_1600x2560.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://billhousley.substack.com/p/anomaly-season-1-survival&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:154813435,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:3,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Bill Housley&quot;,&quot;publication_logo_url&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div><p></p><p></p><div class="digest-post-embed" data-attrs="{&quot;nodeId&quot;:&quot;30e2b64a-d3c8-4156-8e56-52f1ae574297&quot;,&quot;caption&quot;:&quot;&quot;,&quot;cta&quot;:null,&quot;showBylines&quot;:true,&quot;size&quot;:&quot;lg&quot;,&quot;isEditorNode&quot;:true,&quot;title&quot;:&quot;Anomaly: Season 2: Tug of War&quot;,&quot;publishedBylines&quot;:[{&quot;id&quot;:283007503,&quot;name&quot;:&quot;Bill Housley&quot;,&quot;bio&quot;:&quot;Writes clean, heart-pounding science fiction for the masses. \&quot;I gaze into the stars at night, and they tell me their stories.\&quot; Check out his Anomaly Series here...https://anomalyscifi.substack.com/ &quot;,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d4f32f3-5e5c-4d6b-87f2-aec9cc32fd5e_1020x1020.jpeg&quot;,&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;post_date&quot;:&quot;2025-04-09T12:38:53.826Z&quot;,&quot;cover_image&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg&quot;,&quot;cover_image_alt&quot;:null,&quot;canonical_url&quot;:&quot;https://billhousley.substack.com/p/anomaly-season-2-tug-of-war&quot;,&quot;section_name&quot;:null,&quot;video_upload_id&quot;:null,&quot;id&quot;:160934532,&quot;type&quot;:&quot;newsletter&quot;,&quot;reaction_count&quot;:0,&quot;comment_count&quot;:0,&quot;publication_id&quot;:null,&quot;publication_name&quot;:&quot;Bill Housley&quot;,&quot;publication_logo_url&quot;:&quot;&quot;,&quot;belowTheFold&quot;:true,&quot;youtube_url&quot;:null,&quot;show_links&quot;:null,&quot;feed_url&quot;:null}"></div>]]></content:encoded></item><item><title><![CDATA[Anomaly: Season 2: Tug of War]]></title><description><![CDATA[All Episodes Table of Contents]]></description><link>https://billhousley.com/p/anomaly-season-2-tug-of-war</link><guid isPermaLink="false">https://billhousley.com/p/anomaly-season-2-tug-of-war</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Wed, 09 Apr 2025 12:38:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Lz-p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Lz-p!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Lz-p!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Lz-p!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Lz-p!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Lz-p!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Lz-p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg" width="1456" height="2330" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2330,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:992447,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/160934532?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Lz-p!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Lz-p!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Lz-p!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Lz-p!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5255b4d7-fe10-4e92-a818-c78fe5c23e44_1600x2560.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><p></p><p>Substack Edition</p><p>Copyright 2025 by Bill Housley</p><p>All Rights Reserved, including the right to reproduce this series, or any of its episodes or other portions thereof, in any form.</p><p>This season of Anomaly was first published in Amazon&#8217;s Kindle Vella, ASID, and the first edition can be found in readers&#8217; Kindle Libraries.</p><p> </p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://billhousley.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://billhousley.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://billhousley.com/p/anomaly-season-2-tug-of-war?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://billhousley.com/p/anomaly-season-2-tug-of-war?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h1>Forward</h1><p>Welcome to Anomaly Scifi, Season 2! Just some real quick notes&#8230;</p><ul><li><p>This is serial fiction, but you can, of course, binge-read all released episodes like a book.</p></li><li><p>Each episode is at least 600 words long.</p></li><li><p>The first five episodes do not require a subscription of any kind.</p></li><li><p>This season will release on Substack at the rate of an episode a day.</p></li></ul><p>Enjoy!</p><p></p><h1>Table of Contents</h1><p>&#8226; <a href="https://anomalyscifi.substack.com/p/anomaly-tug-of-war">Episode 1: Two Ships</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-02">Episode 2: Entrance</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-03">Episode 3: The Briefing</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-04-abductions">Episode 4: Abductions</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-05-a-sentry-in-the">Episode 5: A Sentry in The Dark</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-06-ambassador-briefing">Episode 6: Ambassador Briefing</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-07the-wormhole">Episode 7: The Wormhole</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-08-specimen-or-food">Episode 8: Specimen or Food?</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-09-the-scientist">Episode 9: The Scientist</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-10-wormhole-operations">Episode 10: Wormhole Operations Command</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-11-confrontation">Episode 11: Confrontation</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-12-old-friends">Episode 12: Old Friends</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-13-gear-up">Episode 13: Gear Up</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-14-flight-of-the">Episode 14: Flight of the Bluebird</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-15-accusations">Episode 15: Accusations</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-16-technical-slave">Episode 16: Technical Slave</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-17-release-to-the">Episode 17: Release to the Wild</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-18-visitors">Episode 18: Visitors</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-19-trailhead">Episode 19: Trailhead</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-20-discovery">Episode 20: Discovery</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-22-catching-up">Episode 21: On the Trail</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-22-catching-up">Episode 22: Catching Up</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-23-diplomatic-relations">Episode 23: Diplomatic Relations</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-24-ship-progress">Episode 24: Ship Progress</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-25-helona-redirected">Episode 25: Helona Redirected</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-26-the-search-begins">Episode 26: The Search Begins</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-27-ripples">Episode 27: Ripples</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-28-a-new-empire">Episode 28: A New Empire</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-29-building-blocks">Episode 29: Building Blocks</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-30-triple-sabotage">Episode 30: Triple Sabotage</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-31-caught">Episode 31: Caught</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-32-meeting">Episode 32: Meeting</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-33-getting-started">Episode 33: Getting Started</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-34-more-missing">Episode 34: More Missing Friends</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-35-mayhem">Episode 35: Mayhem</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-36-the-containment">Episode 36: The Containment Protocol</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-37-doctor-thadfield">Episode 37: Doctor Thadfield</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-38-crossing">Episode 38: Crossing</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-39-voyage">Episode 39: Voyage</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-40-tense-discussion">Episode 40: Tense Discussion</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-41-inter-species">Episode 41: Inter-species Relations</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-42-sam-grant-meets">Episode 42: Sam Grant meets Carol Holbrook</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-43-goultaran-fear">Episode 43: Goultaran Fear</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-44-specimens-carl">Episode 44: Specimens Carl and Helona</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-45-war-plans">Episode 45: War Plans</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-46-demands">Episode 46: Demands</a></p><p>&#8226; <a href="https://anomalyscifi.substack.com/p/season-2-episode-47-rescue-plans">Episode 47: Rescue Plans</a></p><p>&#8226; <a href="https://open.substack.com/pub/anomalyscifi/p/season-2-episode-48-the-fuel">Episode 48: The Fuel</a></p><p>&#8226; <a href="https://open.substack.com/pub/anomalyscifi/p/season-2-episode-49-rescue-mission">Episode 49: Rescue Mission</a></p><p>&#8226; <a href="https://open.substack.com/pub/anomalyscifi/p/season-2-episode-50-the-ignition">Episode 50: The Ignition</a></p><p>&#8226; <a href="https://open.substack.com/pub/anomalyscifi/p/season-2-episode-51-the-earth-space">Episode 51: The Earth Space Force</a></p><p>&#8226; <a href="https://open.substack.com/pub/anomalyscifi/p/season-2-episode-52-epilog">Episode 52: Epilog</a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://billhousley.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://billhousley.com/subscribe?"><span>Subscribe now</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://billhousley.com/p/anomaly-season-2-tug-of-war?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://billhousley.com/p/anomaly-season-2-tug-of-war?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://billhousley.com/p/anomaly-season-2-tug-of-war/comments&quot;,&quot;text&quot;:&quot;Leave a comment&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://billhousley.com/p/anomaly-season-2-tug-of-war/comments"><span>Leave a comment</span></a></p><p>Former computer instructor and technician and current science and scifi enthusiast, Bill is the author of "Another Man's Terrorist" in the 2008 anthology "Satirica" and the full-length novel "Into the Dark: Escape of the Nomad" in 2010. He writes action-packed, family friendly fantasy fiction and science fiction that explores the interaction of our culture and technology.</p><p>&#8220;I gaze into the stars at night and they tell me their stories.&#8221;<br></p><p>Other books by Bill Housley</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.amazon.com/Into-Dark-Escape-Bill-Housley-ebook/dp/B07H21T2LB" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Mi0U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F004a70d5-a2c4-4a4c-8857-67202c025a60_326x522.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Mi0U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F004a70d5-a2c4-4a4c-8857-67202c025a60_326x522.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Mi0U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F004a70d5-a2c4-4a4c-8857-67202c025a60_326x522.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Mi0U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F004a70d5-a2c4-4a4c-8857-67202c025a60_326x522.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Mi0U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F004a70d5-a2c4-4a4c-8857-67202c025a60_326x522.jpeg" width="326" height="522" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/004a70d5-a2c4-4a4c-8857-67202c025a60_326x522.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:522,&quot;width&quot;:326,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:47045,&quot;alt&quot;:&quot;Into the Dark: Escape of the Nomad&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.amazon.com/Into-Dark-Escape-Bill-Housley-ebook/dp/B07H21T2LB&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Into the Dark: Escape of the Nomad" title="Into the Dark: Escape of the Nomad" srcset="https://substackcdn.com/image/fetch/$s_!Mi0U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F004a70d5-a2c4-4a4c-8857-67202c025a60_326x522.jpeg 424w, https://substackcdn.com/image/fetch/$s_!Mi0U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F004a70d5-a2c4-4a4c-8857-67202c025a60_326x522.jpeg 848w, https://substackcdn.com/image/fetch/$s_!Mi0U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F004a70d5-a2c4-4a4c-8857-67202c025a60_326x522.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!Mi0U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F004a70d5-a2c4-4a4c-8857-67202c025a60_326x522.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.amazon.com/One-Way-Bill-Housley-ebook/dp/B07R56S9CJ" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jnRO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bb7318-3e79-40e9-a783-85bb99040469_296x445.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jnRO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bb7318-3e79-40e9-a783-85bb99040469_296x445.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jnRO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bb7318-3e79-40e9-a783-85bb99040469_296x445.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jnRO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bb7318-3e79-40e9-a783-85bb99040469_296x445.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jnRO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bb7318-3e79-40e9-a783-85bb99040469_296x445.jpeg" width="296" height="445" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/26bb7318-3e79-40e9-a783-85bb99040469_296x445.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:445,&quot;width&quot;:296,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:7338,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.amazon.com/One-Way-Bill-Housley-ebook/dp/B07R56S9CJ&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jnRO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bb7318-3e79-40e9-a783-85bb99040469_296x445.jpeg 424w, https://substackcdn.com/image/fetch/$s_!jnRO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bb7318-3e79-40e9-a783-85bb99040469_296x445.jpeg 848w, https://substackcdn.com/image/fetch/$s_!jnRO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bb7318-3e79-40e9-a783-85bb99040469_296x445.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!jnRO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F26bb7318-3e79-40e9-a783-85bb99040469_296x445.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://www.amazon.com/Troubadours-Space-Princesses-Benefit-Anthologies/dp/1642780413" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qQSa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1afc22-5f7c-4201-85fb-332b2ea888a7_311x466.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qQSa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1afc22-5f7c-4201-85fb-332b2ea888a7_311x466.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qQSa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1afc22-5f7c-4201-85fb-332b2ea888a7_311x466.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qQSa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1afc22-5f7c-4201-85fb-332b2ea888a7_311x466.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qQSa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1afc22-5f7c-4201-85fb-332b2ea888a7_311x466.jpeg" width="311" height="466" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d1afc22-5f7c-4201-85fb-332b2ea888a7_311x466.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:466,&quot;width&quot;:311,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:37246,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:&quot;https://www.amazon.com/Troubadours-Space-Princesses-Benefit-Anthologies/dp/1642780413&quot;,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qQSa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1afc22-5f7c-4201-85fb-332b2ea888a7_311x466.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qQSa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1afc22-5f7c-4201-85fb-332b2ea888a7_311x466.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qQSa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1afc22-5f7c-4201-85fb-332b2ea888a7_311x466.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qQSa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d1afc22-5f7c-4201-85fb-332b2ea888a7_311x466.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><p></p><p></p><p>Copyright 2025 by Bill Housley</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vifP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6413af-7d98-46d5-bf27-f422ce6e9bed_5000x3750.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vifP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6413af-7d98-46d5-bf27-f422ce6e9bed_5000x3750.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vifP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6413af-7d98-46d5-bf27-f422ce6e9bed_5000x3750.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vifP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6413af-7d98-46d5-bf27-f422ce6e9bed_5000x3750.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vifP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6413af-7d98-46d5-bf27-f422ce6e9bed_5000x3750.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vifP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6413af-7d98-46d5-bf27-f422ce6e9bed_5000x3750.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c6413af-7d98-46d5-bf27-f422ce6e9bed_5000x3750.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2359785,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vifP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6413af-7d98-46d5-bf27-f422ce6e9bed_5000x3750.jpeg 424w, https://substackcdn.com/image/fetch/$s_!vifP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6413af-7d98-46d5-bf27-f422ce6e9bed_5000x3750.jpeg 848w, https://substackcdn.com/image/fetch/$s_!vifP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6413af-7d98-46d5-bf27-f422ce6e9bed_5000x3750.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!vifP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c6413af-7d98-46d5-bf27-f422ce6e9bed_5000x3750.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p>]]></content:encoded></item><item><title><![CDATA[Finished!]]></title><description><![CDATA[Anomaly: Tug of War, Substack Edition, is now fully staged.]]></description><link>https://billhousley.com/p/finished</link><guid isPermaLink="false">https://billhousley.com/p/finished</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Tue, 08 Apr 2025 11:09:03 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/d95da877-886d-473b-9156-1747b0dea98c_1024x768.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>At midnight on April 14th, the season finale of Anomaly: Tug of War will be released on Substack, completing a journey that began in August of last year when Amazon first announced the end of Kindle Vella. The already-written premier episodes of Season 3, and my readers from Kindle Vella who have hopefully followed me here, have waited three months for the saga to continue so that you folks here on Substack can enjoy Season 3 in the context of the other two.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!zmqQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!zmqQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zmqQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zmqQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zmqQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!zmqQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg" width="1024" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:156106,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/160849396?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!zmqQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!zmqQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!zmqQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!zmqQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa09cc261-c366-4d3b-a6b1-327d04052940_1024x768.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>On Kindle Vella, the Anomaly Saga maintained positions as top two clean reads and top 20 Science Fiction reads for most of the time they were there. Season 2 of Anomaly, Tug of War, carried a crown as one of the top faved stories on Kindle Vella for nearly the entire six months leading to the final end of that reader platform, even as I searched for a new home for the story and released all of Season 1 and the first five episodes of Season 2 here on Substack. My records show that Amazon paid me roughly $3,000 in royalties and bonuses from Anomaly in 2024, by far the height of Anomaly&#8217;s Kindle Vella journey.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!MnSn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!MnSn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MnSn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MnSn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MnSn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!MnSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg" width="1024" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:160465,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/160849396?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!MnSn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!MnSn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!MnSn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!MnSn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a853ec0-daa9-45c8-bde2-9dd3858af58c_1024x768.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, that journey has ended as I move the story forward into the world premier of Season three. I had to shelve the Google Docs file for it in my scramble to move to Substack. Now, I can pick it up where I left off. Since only 10% of Season three is currently written, those releases will come to you at a much slower pace. The plan will be to release all 52 episodes of Season Three over the course of 2025 with the finale on December 31st.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xKQP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xKQP!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xKQP!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xKQP!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xKQP!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xKQP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg" width="1024" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:202671,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/160849396?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xKQP!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!xKQP!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!xKQP!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!xKQP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7c4fbf34-e77f-41f4-831b-025bd423d85e_1024x768.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A table of contents for Tug of War will follow this post in a couple of days so that you can see all of the episode links together in one place, and that TOC will then sit alongside the table of contents for Anomaly: Survival on my main Substack page.</p><div class="embedded-post-wrap" data-attrs="{&quot;id&quot;:152305396,&quot;url&quot;:&quot;https://anomalyscifi.substack.com/p/anomaly-survival&quot;,&quot;publication_id&quot;:3402415,&quot;publication_name&quot;:&quot;Anomaly Trilogy&quot;,&quot;publication_logo_url&quot;:&quot;https://substackcdn.com/image/fetch/f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f1f57e-6d86-4fd6-bac3-2040fa884a75_1280x1280.png&quot;,&quot;title&quot;:&quot;Season 1 Episode 01: The Bar&quot;,&quot;truncated_body_text&quot;:&quot;The room tilted.&quot;,&quot;date&quot;:&quot;2025-01-01T07:01:13.445Z&quot;,&quot;like_count&quot;:8,&quot;comment_count&quot;:0,&quot;bylines&quot;:[{&quot;id&quot;:283007503,&quot;name&quot;:&quot;Bill Housley&quot;,&quot;handle&quot;:&quot;billhousley&quot;,&quot;previous_name&quot;:null,&quot;photo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1d4f32f3-5e5c-4d6b-87f2-aec9cc32fd5e_1020x1020.jpeg&quot;,&quot;bio&quot;:&quot;Writes clean, heart-pounding science fiction for the masses. \&quot;I gaze into the stars at night, and they tell me their stories.\&quot; Check out his Anomaly Series here...https://anomalyscifi.substack.com/ &quot;,&quot;profile_set_up_at&quot;:&quot;2024-11-04T10:45:24.040Z&quot;,&quot;publicationUsers&quot;:[{&quot;id&quot;:3343755,&quot;user_id&quot;:283007503,&quot;publication_id&quot;:3282425,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:3282425,&quot;name&quot;:&quot;Bill Housley&quot;,&quot;subdomain&quot;:&quot;billhousley&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;Writes clean, heart-pounding science fiction for the masses.&quot;,&quot;logo_url&quot;:null,&quot;author_id&quot;:283007503,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2024-11-04T10:48:18.666Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Bill Housley&quot;,&quot;founding_plan_name&quot;:null,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;disabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;magaziney&quot;,&quot;is_personal_mode&quot;:false}},{&quot;id&quot;:3467155,&quot;user_id&quot;:283007503,&quot;publication_id&quot;:3402415,&quot;role&quot;:&quot;admin&quot;,&quot;public&quot;:true,&quot;is_primary&quot;:false,&quot;publication&quot;:{&quot;id&quot;:3402415,&quot;name&quot;:&quot;Anomaly Trilogy&quot;,&quot;subdomain&quot;:&quot;anomalyscifi&quot;,&quot;custom_domain&quot;:null,&quot;custom_domain_optional&quot;:false,&quot;hero_text&quot;:&quot;If you want to read Science Fiction online, this publication is for you.\n\nThe Meridian Star, an Interstellar cruise ship of 7,000, hits an anomaly &amp; gets kicked out of hyperspace, destroying the ship and sending escape pods to an abandoned alien planet.&quot;,&quot;logo_url&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/24f1f57e-6d86-4fd6-bac3-2040fa884a75_1280x1280.png&quot;,&quot;author_id&quot;:283007503,&quot;theme_var_background_pop&quot;:&quot;#FF6719&quot;,&quot;created_at&quot;:&quot;2024-11-23T12:44:15.587Z&quot;,&quot;email_from_name&quot;:null,&quot;copyright&quot;:&quot;Bill Housley&quot;,&quot;founding_plan_name&quot;:&quot;Founding Member&quot;,&quot;community_enabled&quot;:true,&quot;invite_only&quot;:false,&quot;payments_state&quot;:&quot;enabled&quot;,&quot;language&quot;:null,&quot;explicit&quot;:false,&quot;homepage_type&quot;:&quot;newspaper&quot;,&quot;is_personal_mode&quot;:false}}],&quot;is_guest&quot;:false,&quot;bestseller_tier&quot;:null}],&quot;utm_campaign&quot;:null,&quot;belowTheFold&quot;:false,&quot;type&quot;:&quot;newsletter&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="EmbeddedPostToDOM"><a class="embedded-post" native="true" href="https://anomalyscifi.substack.com/p/anomaly-survival?utm_source=substack&amp;utm_campaign=post_embed&amp;utm_medium=web"><div class="embedded-post-header"><img class="embedded-post-publication-logo" src="https://substackcdn.com/image/fetch/$s_!LLuD!,w_56,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F24f1f57e-6d86-4fd6-bac3-2040fa884a75_1280x1280.png"><span class="embedded-post-publication-name">Anomaly Trilogy</span></div><div class="embedded-post-title-wrapper"><div class="embedded-post-title">Season 1 Episode 01: The Bar</div></div><div class="embedded-post-body">The room tilted&#8230;</div><div class="embedded-post-cta-wrapper"><span class="embedded-post-cta">Read more</span></div><div class="embedded-post-meta">a year ago &#183; 8 likes &#183; Bill Housley</div></a></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://anomalyscifi.substack.com/subscribe&quot;,&quot;text&quot;:&quot;Subscribe to Anomaly&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://anomalyscifi.substack.com/subscribe"><span>Subscribe to Anomaly</span></a></p><p>Of course, Anomaly requires a paid subscription to read beyond the first five episodes of any season. Please don&#8217;t consider that bad news, since a paid subscription only costs $5 per month and contains loads of heart-pounding content for the money. During the later weeks of April and the first weeks of May, you will see the first 5 episodes of Season 3 for free before the rest of it hides behind the paywall.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NPrG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NPrG!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NPrG!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NPrG!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NPrG!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NPrG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg" width="1024" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:175583,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/160849396?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!NPrG!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg 424w, https://substackcdn.com/image/fetch/$s_!NPrG!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg 848w, https://substackcdn.com/image/fetch/$s_!NPrG!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!NPrG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc3019f26-13ff-4735-8a20-8c972015a777_1024x768.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Sometime in late spring or early summer, I&#8217;ll be able to release the cover art here for Season 3, so watch for that.</p><p>Enjoy!</p><p></p>]]></content:encoded></item><item><title><![CDATA[Data Handling in Python -- Part 4]]></title><description><![CDATA[SQL calls using SQLLite through SQLAlchemy continued.]]></description><link>https://billhousley.com/p/data-handling-in-python-part-4</link><guid isPermaLink="false">https://billhousley.com/p/data-handling-in-python-part-4</guid><pubDate>Sat, 22 Mar 2025 06:01:26 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/08c3b658-c182-4c27-a2c2-b58fab9a44d4_438x481.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I continue here my process of learning Python where I build a database separate from the code examples provided by Gemini. I cut out the part where I asked questions about other SQL platforms supported by SQLAlcemy, but you should research that on your own <a href="https://docs.sqlalchemy.org/en/20/core/type_basics.html">here</a> or by asking Gemini that yourself if you&#8217;re interested.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OUup!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OUup!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 424w, https://substackcdn.com/image/fetch/$s_!OUup!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 848w, https://substackcdn.com/image/fetch/$s_!OUup!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 1272w, https://substackcdn.com/image/fetch/$s_!OUup!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OUup!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png" width="452" height="95" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:95,&quot;width&quot;:452,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9104,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/159430407?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OUup!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 424w, https://substackcdn.com/image/fetch/$s_!OUup!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 848w, https://substackcdn.com/image/fetch/$s_!OUup!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 1272w, https://substackcdn.com/image/fetch/$s_!OUup!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>The session starts with me working out how not to use the FLOAT data type for storing and accessing monetary values. Long experience has taught me that it causes problems.</p><p>After learning to use SQLAlchemy, I played around with graphical user interfaces and then interrogated Gemini for more details about virtual environments and Python package building, but we&#8217;ll save that for another time. </p><p>My questions are in Heading 3 style to separate them from Gemini&#8217;s responses. My practice in the PowerShell window is in <code>code font like this and seperated with a divider like the one below this line.</code></p><div><hr></div><p></p><h3>How do I convert a returned input() string for a DECIMAL data type Column?</h3><h3></h3><p>To convert a returned <code>input()</code> string into a <code>decimal.Decimal</code> object for use with a SQLAlchemy <code>DECIMAL</code> column, you'll need to follow these steps:</p><ol><li><p><strong>Get Input as a String:</strong></p><ul><li><p>Use the <code>input()</code> function to get the user's input as a string.</p></li></ul></li><li><p><strong>Handle Potential Errors:</strong></p><ul><li><p>Use a <code>try-except</code> block to catch <code>ValueError</code> exceptions that may occur if the input is not a valid number.</p></li></ul></li><li><p><strong>Convert to </strong><code>decimal.Decimal</code><strong>:</strong></p><ul><li><p>If the input is valid, convert it to a <code>decimal.Decimal</code> object.</p></li></ul></li><li><p><strong>Use it with SQLAlchemy:</strong></p><ul><li><p>Use the <code>decimal.Decimal</code> object when creating or updating your SQLAlchemy model instances.</p></li></ul></li></ol><p>Here's an example:</p><p>Python</p><pre><code><code>from decimal import Decimal, InvalidOperation
from sqlalchemy import create_engine, Column, Integer, DECIMAL
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class Product(Base):
    __tablename__ = 'products'

    id = Column(Integer, primary_key=True)
    price = Column(DECIMAL(10, 2))

engine = create_engine('sqlite:///product_db.db') #or your database connection.
Base.metadata.create_all(engine)

Session = sessionmaker(bind=engine)
session = Session()

try:
    price_str = input("Enter the product price: ")
    price_decimal = Decimal(price_str)

    new_product = Product(price=price_decimal)
    session.add(new_product)
    session.commit()

    print("Product added successfully.")

except InvalidOperation:
    print("Invalid input. Please enter a valid number.")

except Exception as e:
    print(f"An unexpected error occured: {e}")

finally:
    session.close()

#Query to show that the decimal value was stored correctly.
session = Session()
products = session.query(Product).all()
for product in products:
    print(product.price)
session.close()
</code></code></pre><p><strong>Explanation:</strong></p><ol><li><p><strong>Import </strong><code>Decimal</code><strong> and </strong><code>InvalidOperation</code><strong>:</strong></p><ul><li><p><code>Decimal</code> is the class used to represent decimal numbers.</p></li><li><p><code>InvalidOperation</code> is the exception raised if the input string cannot be converted to a <code>Decimal</code>.</p></li></ul></li><li><p><strong>Get Input:</strong></p><ul><li><p><code>price_str = input("Enter the product price: ")</code> gets the input as a string.</p></li></ul></li><li><p><strong>Try Conversion:</strong></p><ul><li><p>The <code>try</code> block attempts to convert the input string to a <code>decimal.Decimal</code> object.</p></li></ul></li><li><p><strong>Handle </strong><code>InvalidOperation</code><strong>:</strong></p><ul><li><p>If the conversion fails, the <code>except InvalidOperation</code> block is executed, and an error message is displayed.</p></li></ul></li><li><p><strong>Create Model Instance:</strong></p><ul><li><p>If the conversion succeeds, a new <code>Product</code> instance is created with the <code>price_decimal</code> value.</p></li></ul></li><li><p><strong>Commit and Close:</strong></p><ul><li><p>The changes are committed to the database, and the session is closed.</p></li></ul></li><li><p><strong>Generic Exception:</strong></p><ul><li><p>A generic exception handler has been added to catch any other unexpected errors.</p></li></ul></li><li><p><strong>Query example:</strong></p><ul><li><p>A query example has been added to show that the decimal value has been stored correctly.</p></li></ul></li></ol><p><strong>Important Notes:</strong></p><ul><li><p><strong>Error Handling:</strong> Always include error handling when converting user input.</p></li><li><p><strong>Precision:</strong> The <code>DECIMAL(10, 2)</code> in the model definition specifies the precision and scale. Adjust these values as needed for your application.</p></li><li><p><strong>MySQL:</strong> If you are using MySQL, replace the sqlite connection string with the mysql connection string.</p></li></ul><h3>Your code example used the Decimal() function to convert the returned string from the input() function to a DECIMAL data type column that I created for the database, however I got a name error saying that the Decimal() function is not defined.</h3><p>You are absolutely correct, and I apologize for the oversight. The <code>Decimal</code> class is not a built-in function in Python; it's part of the <code>decimal</code> module. You need to import it explicitly.</p><p>Here's the corrected code with the necessary import statement:</p><p>Python</p><pre><code><code>from decimal import Decimal, InvalidOperation
from sqlalchemy import create_engine, Column, Integer, DECIMAL
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class Product(Base):
    __tablename__ = 'products'

    id = Column(Integer, primary_key=True)
    price = Column(DECIMAL(10, 2))

engine = create_engine('sqlite:///product_db.db') #or your database connection.
Base.metadata.create_all(engine)

Session = sessionmaker(bind=engine)
session = Session()

try:
    price_str = input("Enter the product price: ")
    price_decimal = Decimal(price_str)

    new_product = Product(price=price_decimal)
    session.add(new_product)
    session.commit()

    print("Product added successfully.")

except InvalidOperation:
    print("Invalid input. Please enter a valid number.")

except Exception as e:
    print(f"An unexpected error occured: {e}")

finally:
    session.close()

#Query to show that the decimal value was stored correctly.
session = Session()
products = session.query(Product).all()
for product in products:
    print(product.price)
session.close()

</code></code></pre><p><strong>Correction:</strong></p><ul><li><p><code>from decimal import Decimal, InvalidOperation</code></p></li></ul><p>This line imports the <code>Decimal</code> class and <code>InvalidOperation</code> exception from the <code>decimal</code> module, making them available for use in your code.</p><p>My sincere apologies again for the error. I'm glad you caught it!</p><div><hr></div><p><code>&gt;&gt;&gt; from sqlalchemy import Column, Integer, String, Date, DECIMAL</code></p><p><code>&gt;&gt;&gt; from sqlachemy.ext.declarative import declarative_base</code></p><p><code>Traceback (most recent call last):</code></p><p><code>  File "&lt;python-input-72&gt;", line 1, in &lt;module&gt;</code></p><p><code>    from sqlachemy.ext.declarative import declarative_base</code></p><p><code>ModuleNotFoundError: No module named 'sqlachemy'</code></p><p><code>&gt;&gt;&gt; from sqlalchemy.ext.declarative import declarative_base</code></p><p><code>&gt;&gt;&gt; Base = declarative_base()</code></p><p><code>&lt;python-input-74&gt;:1: MovedIn20Warning: The ``declarative_base()`` function is now available as sqlalchemy.orm.declarative_base(). (deprecated since: 2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9)</code></p><p><code>  Base = declarative_base()</code></p><p><code>&gt;&gt;&gt; Class GrocTable(Base):</code></p><p><code>  File "&lt;python-input-75&gt;", line 1</code></p><p><code>    Class GrocTable(Base):</code></p><p><code>          ^^^^^^^^^</code></p><p><code>SyntaxError: invalid syntax</code></p><p><code>&gt;&gt;&gt; class GrocTable(Base):</code></p><p><code>...     __tablename__ = 'groctable'</code></p><p><code>...     id = Column(Integer, primary_key=True)</code></p><p><code>...     foodgroup = Column(String(12))</code></p><p><code>...     Item = Column(String(50))</code></p><p><code>...     price = Column(DECIMAL(10,2))</code></p><p><code>...     date = Column(Date)</code></p><p><code>...</code></p><p><code>&gt;&gt;&gt; from sqlalchemy.orm import sessionmaker</code></p><p><code>&gt;&gt;&gt; engine = create_engine('sqlite:///ShoppingList.db')</code></p><p><code>&gt;&gt;&gt; Base.metadata.create_all(engine)</code></p><p><code>&gt;&gt;&gt; Session = sessionmaker(bind=engine)</code></p><p><code>&gt;&gt;&gt; session = Session()</code></p><p><code>&gt;&gt;&gt; x=TRUE</code></p><p><code>Traceback (most recent call last):</code></p><p><code>  File "&lt;python-input-82&gt;", line 1, in &lt;module&gt;</code></p><p><code>    x=TRUE</code></p><p><code>      ^^^^</code></p><p><code>NameError: name 'TRUE' is not defined. Did you mean: 'True'?</code></p><p><code>&gt;&gt;&gt; x=True</code></p><p><code>&gt;&gt;&gt; while x:</code></p><p><code>...     new_item = GroTable(foodgroup =Itemeeee("Food Group: "), foodgroup=input("Food Group: "),age=int(input("Enter A\</code></p><p><code>e: ")))age=int(input("Enter Ag\: ")))od Group: "),age=int(input("Enter Agge: ")))</code></p><p><code>KeyboardInterrupt</code></p><p><code>&gt;&gt;&gt; continue = "Go"</code></p><p><code>  File "&lt;python-input-84&gt;", line 1</code></p><p><code>    continue = "Go"</code></p><p><code>             ^</code></p><p><code>SyntaxError: invalid syntax</code></p><p><code>&gt;&gt;&gt; continue = 'Go'</code></p><p><code>  File "&lt;python-input-85&gt;", line 1</code></p><p><code>    continue = 'Go'</code></p><p><code>             ^</code></p><p><code>SyntaxError: invalid syntax</code></p><p><code>&gt;&gt;&gt; cont='go;</code></p><p><code>  File "&lt;python-input-86&gt;", line 1</code></p><p><code>    cont='go;</code></p><p><code>         ^</code></p><p><code>SyntaxError: unterminated string literal (detected at line 1)</code></p><p><code>&gt;&gt;&gt; cont='go'</code></p><p><code>&gt;&gt;&gt; cont='y'</code></p><p><code>&gt;&gt;&gt; while cont='y'</code></p><p><code>  File "&lt;python-input-89&gt;", line 1</code></p><p><code>    while cont='y'</code></p><p><code>          ^^^^^^^^</code></p><p><code>SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?</code></p><p><code>&gt;&gt;&gt; while cont='y':</code></p><p><code>  File "&lt;python-input-90&gt;", line 1</code></p><p><code>    while cont='y':</code></p><p><code>          ^^^^^^^^</code></p><p><code>SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?</code></p><p><code>&gt;&gt;&gt; while cont:='y':</code></p><p><code>...     new_item=GroTable(foodgroup=input("Food Group: "), Item=input("Item: "), price= Decimal(input("Price: )))</code></p><p><code>...     session.add(new_item)</code></p><p><code>...     session.commit()</code></p><p><code>...     cont=input("Continue? ")</code></p><p><code>...</code></p><p><code>  File "&lt;python-input-91&gt;", line 2</code></p><p><code>    new_item=GroTable(foodgroup=input("Food Group: "), Item=input("Item: "), price= Decimal(input("Price: )))</code></p><p><code>                                                                                                  ^</code></p><p><code>SyntaxError: unterminated string literal (detected at line 2)</code></p><p><code>&gt;&gt;&gt; while cont:='y':</code></p><p><code>...     new_item=GroTable(foodgroup=input("Food Group: "), Item=input("Item: "), price= Decimal(input("Price: ")))</code></p><p><code>...     session.add(new_item)</code></p><p><code>...     session.commit()</code></p><p><code>...     cont=input("Continue? ")</code></p><p><code>...</code></p><p><code>Traceback (most recent call last):</code></p><p><code>  File "&lt;python-input-92&gt;", line 2, in &lt;module&gt;</code></p><p><code>    new_item=GroTable(foodgroup=input("Food Group: "), Item=input("Item: "), price= Decimal(input("Price: ")))</code></p><p><code>             ^^^^^^^^</code></p><p><code>NameError: name 'GroTable' is not defined. Did you mean: 'GrocTable'?</code></p><p><code>&gt;&gt;&gt; while cont:='y':</code></p><p><code>...     new_item=GrocTable(foodgroup=input("Food Group: "), Item=input("Item: "), price= Decimal(input("Price: ")))</code></p><p><code>...     session.add(new_item)</code></p><p><code>...     session.commit()</code></p><p><code>...     cont=input("Continue? ")</code></p><p><code>...</code></p><p><code>Food Group: Milk</code></p><p><code>Item: Goats milk</code></p><p><code>Traceback (most recent call last):</code></p><p><code>  File "&lt;python-input-93&gt;", line 2, in &lt;module&gt;</code></p><p><code>    new_item=GrocTable(foodgroup=input("Food Group: "), Item=input("Item: "), price= Decimal(input("Price: ")))</code></p><p><code>                                                                                     ^^^^^^^</code></p><p><code>NameError: name 'Decimal' is not defined</code></p><p><code>&gt;&gt;&gt; from decimal import Decimal, InvalidOperation</code></p><p><code>&gt;&gt;&gt; while cont:='y':</code></p><p><code>...     new_item=GrocTable(foodgroup=input("Food Group: "), Item=input("Item: "), price= Decimal(input("Price: ")))</code></p><p><code>...     session.add(new_item)</code></p><p><code>...     session.commit()</code></p><p><code>...     cont=input("Continue? ")</code></p><p><code>...</code></p><p><code>Food Group: Milk</code></p><p><code>Item: Goats milk</code></p><p><code>Price: 9.50</code></p><p><code>Continue? y</code></p><p><code>Food Group: Meat</code></p><p><code>Item: Hamburger 1lb</code></p><p><code>Price: 12.73</code></p><p><code>Continue? y</code></p><p><code>Food Group: Grain</code></p><p><code>Item: Life Cerial</code></p><p><code>Price: 6</code></p><p><code>Continue?</code></p><p><code>Food Group: Fruits</code></p><p><code>Item: Grapes</code></p><p><code>Price: 5</code></p><p><code>Continue? n</code></p><p><code>Food Group: Traceback (most recent call last):</code></p><p><code>  File "&lt;python-input-95&gt;", line 2, in &lt;module&gt;</code></p><p><code>    new_item=GrocTable(foodgroup=input("Food Group: "), Item=input("Item: "), price= Decimal(input("Price: ")))</code></p><p><code>                                 ~~~~~^^^^^^^^^^^^^^^^</code></p><p><code>  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.752.0_x64__qbz5n2kfra8p0\Lib\_pyrepl\readline.py", line 371, in input</code></p><p><code>    result = reader.readline(startup_hook=self.startup_hook)</code></p><p><code>  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.752.0_x64__qbz5n2kfra8p0\Lib\_pyrepl\reader.py", line 802, in readline</code></p><p><code>    self.handle1()</code></p><p><code>    ~~~~~~~~~~~~^^</code></p><p><code>  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.752.0_x64__qbz5n2kfra8p0\Lib\_pyrepl\reader.py", line 757, in handle1</code></p><p><code>    self.console.wait(100)</code></p><p><code>    ~~~~~~~~~~~~~~~~~^^^^^</code></p><p><code>  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.13_3.13.752.0_x64__qbz5n2kfra8p0\Lib\_pyrepl\windows_console.py", line 486, in wait</code></p><p><code>    time.sleep(0.01)</code></p><p><code>    ~~~~~~~~~~^^^^^^</code></p><p><code>KeyboardInterrupt</code></p><p><code>&gt;&gt;&gt;</code></p><p></p>]]></content:encoded></item><item><title><![CDATA[Data Handling in Python -- Part 3]]></title><description><![CDATA[SQL calls using SQLLite through SQLAlchemy]]></description><link>https://billhousley.com/p/data-handling-in-python-part-3</link><guid isPermaLink="false">https://billhousley.com/p/data-handling-in-python-part-3</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Fri, 21 Mar 2025 11:51:37 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9254d41e-7693-42aa-b804-e00d190f943a_438x481.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As I mentioned before, I was a database programmer by trade. I spent much of my early computer career automating small businesses, including my father-in-law&#8217;s insurance inspection and audit business.</p><p>&#8220;I&#8217;ll marry your daughter on one condition,&#8221; I told him jokingly. I would never say something like this except in jest. &#8220;That you let me move your business into the computer age.&#8221; I worked in the office a bit and out in the field a bit until I learned about his business. Then, we purchased a computer, and I spent my weekends building a data system in DBase IV using the Clipper Dbase code compiler. I also participated in developing several other verticle market DBase application development projects, including being the programmer of a piece of software called SwapBase that my partner and I sold to local pawnshops.</p><p>Many years later, I moved to Microsoft Access, and programmed custom applications for various businesses, and taught at New Horizons Computer Learning Center how to do the same.</p><p>I owned, developed, and ran a website for scheduling and researching Mountain Man Rendezvous nationwide for many years. It was written in .ASP (Microsoft Visual Basic) and used ODBC SQL calls to an MS Access database. I won&#8217;t tell it&#8217;s name just yet.</p><p>So, for me, the panacea of learning a computer programming language is building relational database applications with them. That&#8217;s my thing. Any app running on your phone that stores and displays information in little boxes, such as an email app, likely stores a hidden .db file on your phone and accesses it using <a href="https://www.sqlite.org/">SQLite</a>.  </p><p>So, yes, I had a ton of fun the other day plowing into Python&#8217;s SQL programming abilities after skimming the Python 2 tutorial on object classes. I didn&#8217;t do much of the example work from the tutorial because it was very straightforward and contained no surprises for me, but instead, I decided to practice object classes and SQL database access simultaneously by finding an object-based database API for Python. It turns out that Python has one built right into it called SQLAlchemy. I didn&#8217;t have an SQL server to play with, so I learned to use the SQLite driver in SQLAlchemy to build and connect to local .db files as if it were on an SQL server.</p><p>I ditched the <a href="https://docs.python.org/2.0/tut/tut.html">Python 2 tutorial on Python.org</a> this time and asked Gemini to be my instructor. I&#8217;ve included that transcript below and merged it with the copy/paste from PowerShell so that you can see me struggle, ask Gemini for help, read and try the response, and move on I took some additional time to do that so that you can see my complete journey in context with the research. I also had to spread this installment out between several Substack posts because Gemini provides lots of details that added lots of size and made the whole thing too large for a single Substack email. I&#8217;ll follow this with part 4 where I practice by building a grocery list database from scratch without code direct examples from Gemini.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OUup!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OUup!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 424w, https://substackcdn.com/image/fetch/$s_!OUup!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 848w, https://substackcdn.com/image/fetch/$s_!OUup!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 1272w, https://substackcdn.com/image/fetch/$s_!OUup!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OUup!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png" width="452" height="95" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:95,&quot;width&quot;:452,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:9104,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://billhousley.substack.com/i/159430407?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OUup!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 424w, https://substackcdn.com/image/fetch/$s_!OUup!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 848w, https://substackcdn.com/image/fetch/$s_!OUup!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 1272w, https://substackcdn.com/image/fetch/$s_!OUup!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8a2e5c5b-7209-4a6a-8576-b18bf78f9f7a_452x95.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Getting SQLAlchemy installed was a big part of the adventure, but I&#8217;ve excluded the back-and-forth of getting there. Gemini had to tell me how to build a Python virtual environment, and I&#8217;ll need to just detail that myself later in another post because Gemini talks too much, and this post was too large even for two separate Substack emailable posts. I just included the command lines for creating and activating the virtual environment, which I called &#8220;pythonlearn&#8221;&#8230;</p><p><code>PS C:\Users\WHousley&gt; python -m venv pythonlearn</code></p><p><code>PS C:\Users\WHousley&gt; pythonlearn\Scripts\activate</code></p><p></p><p>Just as before, you&#8217;ll get to see my entire experience, even when I look stupid. I do this so that people at least as slow as me will get to see how I get over the hurdles that I encountered, except where it was overly distracting and wordy.</p><p>My questions to Gemini are in Heading 3 style to separate them from Gemini&#8217;s responses. My practice in the PowerShell window is in <code>code font like this and seperated from the dialog with Gemini by a divider like the one you see below.</code></p><div><hr></div><p></p><h3>Tell me about how to use SQL object classes and operations in Python.</h3><p></p><p>Using SQL object classes and operations in Python typically involves an Object-Relational Mapper (ORM). An ORM allows you to interact with a relational database using Python objects, abstracting away the need to write raw SQL queries.</p><p>Here's a breakdown of how to use SQL object classes and operations in Python, focusing on the popular SQLAlchemy ORM:</p><p><strong>1. Installing SQLAlchemy:</strong></p><ul><li><p>First, install SQLAlchemy using pip:</p><p>Bash</p></li></ul><pre><code><code>pip install sqlalchemy
</code></code></pre><p><strong>2. Defining Object Classes (Models):</strong></p><ul><li><p>Create Python classes that represent your database tables.</p></li><li><p>Use SQLAlchemy's declarative base to define the structure of your tables.</p></li></ul><p>Python</p><pre><code><code>from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

    def __repr__(self):
        return f"&lt;User(name='{self.name}', age='{self.age}')&gt;"
</code></code></pre><p><strong>3. Creating an Engine and Session:</strong></p><ul><li><p>Create an engine that connects to your database.</p></li><li><p>Create a session that manages your interactions with the database.</p></li></ul><p>Python</p><pre><code><code>engine = create_engine('sqlite:///mydatabase.db')  # Example using SQLite
Base.metadata.create_all(engine)  # Create tables in the database

Session = sessionmaker(bind=engine)
session = Session()
</code></code></pre><p><strong>4. Performing Database Operations:</strong></p><ul><li><p><strong>Creating Objects (Inserting Data):</strong></p><p>Python</p></li></ul><pre><code><code>new_user = User(name='John Doe', age=30)
session.add(new_user)
session.commit()
</code></code></pre><ul><li><p><strong>Querying Objects (Retrieving Data):</strong></p><p>Python</p></li></ul><pre><code><code>users = session.query(User).all()  # Get all users
for user in users:
    print(user)

john = session.query(User).filter_by(name='John Doe').first() #get first user with the name John Doe.
print(john)

older_users = session.query(User).filter(User.age &gt; 25).all() #get all users who are older than 25.
for user in older_users:
    print(user)
</code></code></pre><ul><li><p><strong>Updating Objects:</strong></p><p>Python</p></li></ul><pre><code><code>user_to_update = session.query(User).filter_by(name='John Doe').first()
if user_to_update:
    user_to_update.age = 31
    session.commit()
</code></code></pre><ul><li><p><strong>Deleting Objects:</strong></p><p>Python</p></li></ul><pre><code><code>user_to_delete = session.query(User).filter_by(name='John Doe').first()
if user_to_delete:
    session.delete(user_to_delete)
    session.commit()
</code></code></pre><p><strong>5. Closing the Session:</strong></p><ul><li><p>When you're finished, close the session.</p></li></ul><p>Python</p><pre><code><code>session.close()
</code></code></pre><p><strong>Key Concepts:</strong></p><ul><li><p><strong>Engine:</strong> The engine manages the connection to the database.</p></li><li><p><strong>Session:</strong> The session manages the interactions with the database, including adding, querying, updating, and deleting objects.</p></li><li><p><strong>Models:</strong> Python classes that represent database tables.</p></li><li><p><strong>Columns:</strong> Attributes of the model classes that represent database columns.</p></li><li><p><strong>Queries:</strong> SQLAlchemy's query language allows you to retrieve data from the database.</p></li><li><p><strong>Transactions:</strong> SQLAlchemy uses transactions to ensure data consistency.</p></li></ul><p><strong>Advantages of using an ORM:</strong></p><ul><li><p><strong>Abstraction:</strong> ORMs abstract away the complexities of SQL, making it easier to work with databases.</p></li><li><p><strong>Object-Oriented Approach:</strong> You can work with database data using Python objects.</p></li><li><p><strong>Portability:</strong> ORMs can often work with multiple database systems.</p></li><li><p><strong>Security:</strong> ORMs can help prevent SQL injection vulnerabilities.</p></li></ul><p><strong>Considerations:</strong></p><ul><li><p><strong>Performance:</strong> ORMs can sometimes introduce performance overhead compared to raw SQL.</p></li><li><p><strong>Complexity:</strong> ORMs can add complexity to your code, especially for advanced database operations.</p></li><li><p><strong>Learning Curve:</strong> There is a learning curve associated with using ORMs.</p></li></ul><p>SQLAlchemy is a powerful and flexible ORM that's widely used in Python. It provides a comprehensive set of features for working with relational databases.</p><p></p><div><hr></div><p></p><p><code>PS C:\Users\WHousley&gt; python -m venv pythonlearn</code></p><p><code>PS C:\Users\WHousley&gt; pythonlearn\Scripts\activate</code></p><p><code>(pythonlearn) PS C:\Users\WHousley&gt; python</code></p><p><code>Python 3.13.2 (tags/v3.13.2:4f8bb39, Feb  4 2025, 15:23:48) [MSC v.1942 64 bit (AMD64)] on win32</code></p><p><code>Type "help", "copyright", "credits" or "license" for more information.</code></p><p><code>(pythonlearn) PS C:\Users\WHousley&gt; pythonlearn\Scripts\pip.exe install sqlalchemy</code></p><p><code>Collecting sqlalchemy</code></p><p><code>  Downloading sqlalchemy-2.0.39-cp313-cp313-win_amd64.whl.metadata (9.9 kB)</code></p><p><code>Collecting greenlet!=0.4.17 (from sqlalchemy)</code></p><p><code>  Downloading greenlet-3.1.1-cp313-cp313-win_amd64.whl.metadata (3.9 kB)</code></p><p><code>Collecting typing-extensions&gt;=4.6.0 (from sqlalchemy)</code></p><p><code>  Downloading typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)</code></p><p><code>Downloading sqlalchemy-2.0.39-cp313-cp313-win_amd64.whl (2.1 MB)</code></p><p><code>   &#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473;&#9473; 2.1/2.1 MB 6.6 MB/s eta 0:00:00</code></p><p><code>Downloading greenlet-3.1.1-cp313-cp313-win_amd64.whl (299 kB)</code></p><p><code>Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)</code></p><p><code>Installing collected packages: typing-extensions, greenlet, sqlalchemy</code></p><p><code>Successfully installed greenlet-3.1.1 sqlalchemy-2.0.39 typing-extensions-4.12.2</code></p><p><code>[notice] A new release of pip is available: 24.3.1 -&gt; 25.0.1</code></p><p><code>[notice] To update, run: python.exe -m pip install --upgrade pip</code></p><p><code>(pythonlearn) PS C:\Users\WHousley&gt; python</code></p><p><code>Python 3.13.2 (tags/v3.13.2:4f8bb39, Feb  4 2025, 15:23:48) [MSC v.1942 64 bit (AMD64)] on win32</code></p><p><code>Type "help", "copyright", "credits" or "license" for more information.</code></p><div><hr></div><p></p><h3>Explicit pathing to pip.exe within the virtual environment did the trick. The sqlalchemy has now been installed. How do I use it?</h3><h3></h3><p>Excellent! Getting <code>pip</code> working within your virtual environment is a crucial step. Now that SQLAlchemy is installed, let's dive into how to use it.</p><p><strong>Basic SQLAlchemy Usage:</strong></p><p>Here's a step-by-step guide with explanations:</p><p><strong>1. Import Necessary Modules:</strong></p><p>Python</p><pre><code><code>from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
</code></code></pre><p><strong>2. Define a Model (Object Class):</strong></p><ul><li><p>Create a Python class that maps to a database table.</p></li><li><p>Use <code>declarative_base()</code> to create a base class for your models.</p></li></ul><p>Python</p><pre><code><code>Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

    def __repr__(self):
        return f"&lt;User(name='{self.name}', age='{self.age}')&gt;"
</code></code></pre><p><strong>3. Create an Engine and Session:</strong></p><ul><li><p>Create an engine to connect to your database.</p></li><li><p>Create a session to manage database interactions.</p></li></ul><p>Python</p><pre><code><code>engine = create_engine('sqlite:///mydatabase.db')  # Use SQLite for simplicity
Base.metadata.create_all(engine)  # Create tables

Session = sessionmaker(bind=engine)
session = Session()
</code></code></pre><p><strong>4. Perform Database Operations:</strong></p><ul><li><p><strong>Create (Insert) Data:</strong></p></li></ul><p>Python</p><pre><code><code>new_user = User(name='Alice', age=25)
session.add(new_user)
session.commit()
</code></code></pre><ul><li><p><strong>Read (Query) Data:</strong></p></li></ul><p>Python</p><pre><code><code>users = session.query(User).all()  # Get all users
for user in users:
    print(user)

john = session.query(User).filter_by(name='Alice').first() #Get the first user with the name 'Alice'
print(john)

older_users = session.query(User).filter(User.age &gt; 20).all() #Get all users older than 20.
for user in older_users:
    print(user)
</code></code></pre><ul><li><p><strong>Update Data:</strong></p></li></ul><p>Python</p><pre><code><code>user_to_update = session.query(User).filter_by(name='Alice').first()
if user_to_update:
    user_to_update.age = 26
    session.commit()
</code></code></pre><ul><li><p><strong>Delete Data:</strong></p></li></ul><p>Python</p><pre><code><code>user_to_delete = session.query(User).filter_by(name='Alice').first()
if user_to_delete:
    session.delete(user_to_delete)
    session.commit()
</code></code></pre><p><strong>5. Close the Session:</strong></p><p>Python</p><pre><code><code>session.close()
</code></code></pre><p><strong>Complete Example:</strong></p><p>Python</p><pre><code><code>from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

    def __repr__(self):
        return f"&lt;User(name='{self.name}', age='{self.age}')&gt;"

engine = create_engine('sqlite:///mydatabase.db')
Base.metadata.create_all(engine)

Session = sessionmaker(bind=engine)
session = Session()

# Create
new_user = User(name='Alice', age=25)
session.add(new_user)
session.commit()

# Read
users = session.query(User).all()
for user in users:
    print(user)

# Update
user_to_update = session.query(User).filter_by(name='Alice').first()
if user_to_update:
    user_to_update.age = 26
    session.commit()

# Delete
user_to_delete = session.query(User).filter_by(name='Alice').first()
if user_to_delete:
    session.delete(user_to_delete)
    session.commit()

session.close()
</code></code></pre><p><strong>Key Points:</strong></p><ul><li><p><strong>Database Connection:</strong></p><ul><li><p>Replace <code>'sqlite:///mydatabase.db'</code> with your database connection string.</p></li><li><p>For other databases (PostgreSQL, MySQL, SQL Server), you'll need to use the appropriate connection string format.</p></li></ul></li><li><p><strong>Models:</strong></p><ul><li><p>Define your models to match your database tables.</p></li><li><p>Use appropriate column types (e.g., <code>Integer</code>, <code>String</code>, <code>Date</code>).</p></li></ul></li><li><p><strong>Sessions:</strong></p><ul><li><p>Sessions manage database transactions.</p></li><li><p>Always commit your changes to persist them.</p></li><li><p>Close your sessions when you're finished.</p></li></ul></li><li><p><strong>Queries:</strong></p><ul><li><p>Use <code>session.query()</code> to retrieve data.</p></li><li><p>Use <code>filter_by()</code> and <code>filter()</code> to apply conditions.</p></li></ul></li></ul><p>This should give you a good starting point for using SQLAlchemy. Experiment with different database operations and explore the SQLAlchemy documentation for more advanced features.</p><p></p><div><hr></div><p></p><p><code>&gt;&gt;&gt; from sqlalchmy import create_engine, Column, Integer, String</code></p><p><code>Traceback (most recent call last):</code></p><p><code>  File "&lt;python-input-0&gt;", line 1, in &lt;module&gt;</code></p><p><code>    from sqlalchmy import create_engine, Column, Integer, String</code></p><p><code>ModuleNotFoundError: No module named 'sqlalchmy'</code></p><p><code>&gt;&gt;&gt; from sqlalchemy import create_engine, Column, Integer, String</code></p><p><code>&gt;&gt;&gt; from sqlalchemy.ext.declarative import declarative_base</code></p><p><code>&gt;&gt;&gt; from sqlalchemy.orm import sessionmaker</code></p><p><code>&gt;&gt;&gt; Base=declarative_base()</code></p><p><code>&lt;python-input-4&gt;:1: MovedIn20Warning: The ``declarative_base()`` function is now available as sqlalchemy.orm.declarative_base(). (deprecated since: 2.0) (Background on SQLAlchemy 2.0 at: https://sqlalche.me/e/b8d9)</code></p><p><code>  Base=declarative_base()</code></p><p><code>&gt;&gt;&gt; class User(Base):</code></p><p><code>...     __tablename__='users'</code></p><p><code>...     id=Column(Integer, primary_key=True)</code></p><p><code>...     name=Column(String)</code></p><p><code>...     age=Column(Integer)</code></p><p><code>...     def __repr__(self):</code></p><p><code>...         return f"&lt;User(name='{self.name}',age'{self.age}')&gt;"</code></p><p><code>...</code></p><p><code>&gt;&gt;&gt; engine = create_engine('sqlite:///mydatabase.db')</code></p><p><code>&gt;&gt;&gt; Base.metadata.create_all(engine)</code></p><p><code>&gt;&gt;&gt; session = sessionmaker(bind=engine)</code></p><p><code>&gt;&gt;&gt; Session = sessionmaker(bind=engine)</code></p><p><code>&gt;&gt;&gt; session = Session()</code></p><p><code>&gt;&gt;&gt; new_user = User(name='Alice', age=25)</code></p><p><code>&gt;&gt;&gt; session.add(new_user)</code></p><p><code>&gt;&gt;&gt; sesson.commit()</code></p><p><code>Traceback (most recent call last):</code></p><p><code>  File "&lt;python-input-13&gt;", line 1, in &lt;module&gt;</code></p><p><code>    sesson.commit()</code></p><p><code>    ^^^^^^</code></p><p><code>NameError: name 'sesson' is not defined. Did you mean: 'session'?</code></p><p><code>&gt;&gt;&gt; session.commit()</code></p><p><code>&gt;&gt;&gt; users = session.query(User).all()</code></p><p><code>&gt;&gt;&gt; for user in users:</code></p><p><code>...     print(user)</code></p><p><code>...</code></p><p><code>&lt;User(name='Alice',age'25')&gt;</code></p><p><code>&gt;&gt;&gt; for user in users:</code></p><p><code>...     print(user.name)</code></p><p><code>...</code></p><p><code>Alice</code></p><p><code>&gt;&gt;&gt; for user in users:</code></p><p><code>...     print(user.age)</code></p><p><code>...</code></p><p><code>25</code></p><p><code>&gt;&gt;&gt; john = session.query(User).filter_by(name='Alice').first()</code></p><p><code>&gt;&gt;&gt; print(john)</code></p><p><code>&lt;User(name='Alice',age'25')&gt;</code></p><p><code>&gt;&gt;&gt; for user in users:</code></p><p><code>...     print('%-10s %5d' % user.name, user.age)</code></p><p><code>...</code></p><p><code>Traceback (most recent call last):</code></p><p><code>  File "&lt;python-input-21&gt;", line 2, in &lt;module&gt;</code></p><p><code>    print('%-10s %5d' % user.name, user.age)</code></p><p><code>          ~~~~~~~~~~~~^~~~~~~~~~~</code></p><p><code>TypeError: not enough arguments for format string</code></p><p><code>&gt;&gt;&gt; for user in users:</code></p><p><code>...     print('%-10s' % user.name, '%5d' % user.age)</code></p><p><code>...</code></p><p><code>Alice         25</code></p><p><code>&gt;&gt;&gt; for user in users:</code></p><p><code>...     print('%-10s' % user.name, ', ', '%5d' % user.age)</code></p><p><code>...</code></p><p><code>Alice      ,     25</code></p><p><code>&gt;&gt;&gt; older_users = session.query(User).filter(User.age &gt; 20.all()</code></p><p><code>  File "&lt;python-input-24&gt;", line 1</code></p><p><code>    older_users = session.query(User).filter(User.age &gt; 20.all()</code></p><p><code>                                                          ^</code></p><p><code>SyntaxError: invalid decimal literal</code></p><p><code>&gt;&gt;&gt; older_users = session.query(User).filter(User.age &gt; 20).all()</code></p><p><code>&gt;&gt;&gt; for user in olderusers:</code></p><p><code>...     print(user)</code></p><p><code>...</code></p><p><code>Traceback (most recent call last):</code></p><p><code>  File "&lt;python-input-26&gt;", line 1, in &lt;module&gt;</code></p><p><code>    for user in olderusers:</code></p><p><code>                ^^^^^^^^^^</code></p><p><code>NameError: name 'olderusers' is not defined. Did you mean: 'older_users'?</code></p><p><code>&gt;&gt;&gt; for user in older_users:</code></p><p><code>...     print(user)</code></p><p><code>...</code></p><p><code>&lt;User(name='Alice',age'25')&gt;</code></p><p><code>&gt;&gt;&gt; user_to_update = session.query(User).filter_by(name='Alice'.first()</code></p><p><code>... if user_to_update:</code></p><p><code>...     user_to_update.age = 26</code></p><p><code>...     session.commit()</code></p><p><code>...</code></p><p><code>  File "&lt;python-input-28&gt;", line 1</code></p><p><code>    user_to_update = session.query(User).filter_by(name='Alice'.first()</code></p><p><code>                                                  ^</code></p><p><code>SyntaxError: '(' was never closed</code></p><p><code>&gt;&gt;&gt; user_to_update = session.query(User).filter_by(name='Alice').first()</code></p><p><code>... if user_to_update:</code></p><p><code>...     user_to_update.age = 26</code></p><p><code>...     session.commit()</code></p><p><code>...</code></p><p><code>&gt;&gt;&gt; personname=input()</code></p><p><code>Bill</code></p><p><code>&gt;&gt;&gt; input().__doc__</code></p><p><code>"str(object='') -&gt; str\nstr(bytes_or_buffer[, encoding[, errors]]) -&gt; str\n\nCreate a new string object from the given object. If encoding or\nerrors is specified, then the object must expose a data buffer\nthat will be decoded using the given encoding and error handler.\nOtherwise, returns the result of object.__str__() (if defined)\nor repr(object).\nencoding defaults to 'utf-8'.\nerrors defaults to 'strict'."</code></p><div><hr></div><p></p><div><hr></div><p><code>&gt;&gt;&gt; new_user = User(name=input("Enter Name: "), age=int(input("Enter Age: ")))</code></p><p><code>Enter Name: Bob</code></p><p><code>Enter Age: 50</code></p><p><code>&gt;&gt;&gt; session.commit()</code></p><p><code>&gt;&gt;&gt; for user in users:</code></p><p><code>...     print('%-10s' % user.name, ', ', '%5d' % user.age)</code></p><p><code>...</code></p><p><code>Alice      ,     26</code></p><p><code>&gt;&gt;&gt; older_users = session.query(User).filter(User.age &gt; 30).all()</code></p><p><code>&gt;&gt;&gt; for user in older_users:</code></p><p><code>...     print(user)</code></p><p><code>...</code></p><p><code>&gt;&gt;&gt; new_user = User(name=input("Enter Name: "), age=int(input("Enter Age: ")))</code></p><p><code>Enter Name: Bob</code></p><p><code>Enter Age: 50</code></p><p><code>&gt;&gt;&gt;  session.add(new_user)</code></p><p><code>  File "&lt;python-input-38&gt;", line 1</code></p><p><code>    session.add(new_user)</code></p><p><code>IndentationError: unexpected indent</code></p><p><code>&gt;&gt;&gt;     session.add(new_user)</code></p><p><code>  File "&lt;python-input-39&gt;", line 1</code></p><p><code>    session.add(new_user)</code></p><p><code>IndentationError: unexpected indent</code></p><p><code>&gt;&gt;&gt;</code></p><p><code>&gt;&gt;&gt;</code></p><p><code>&gt;&gt;&gt;</code></p><p><code>&gt;&gt;&gt; new_user = User(name='Alice', age=25)</code></p><p><code>&gt;&gt;&gt; &gt;&gt;&gt; session.add(new_user)</code></p><p><code>  File "&lt;python-input-44&gt;", line 1</code></p><p><code>    &gt;&gt;&gt; session.add(new_user)</code></p><p><code>    ^^</code></p><p><code>SyntaxError: invalid syntax</code></p><p><code>&gt;&gt;&gt; new_user = User(name='Bob', age=50)</code></p><p><code>&gt;&gt;&gt; session.add(new_user)</code></p><p><code>&gt;&gt;&gt; session.commit()</code></p><p><code>&gt;&gt;&gt; older_users = session.query(User).filter(User.age &gt; 30).all()</code></p><p><code>&gt;&gt;&gt; for user in older_users:</code></p><p><code>...     print(user)</code></p><p><code>...</code></p><p><code>&lt;User(name='Bob',age'50')&gt;</code></p><p><code>&gt;&gt;&gt; users=session.query(User).all()</code></p><p><code>&gt;&gt;&gt; for user in users:</code></p><p><code>...     print(user)</code></p><p><code>...</code></p><p><code>&lt;User(name='Alice',age'26')&gt;</code></p><p><code>&lt;User(name='Bob',age'50')&gt;</code></p><p><code>&gt;&gt;&gt; new_user = User(name=input("Enter Name: "), age=int(input("Enter Age: ")))</code></p><p><code>Enter Name: Harold</code></p><p><code>Enter Age: 45</code></p><p><code>&gt;&gt;&gt; session.add(new_user)</code></p><p><code>&gt;&gt;&gt; session.commit</code></p><p><code>&lt;bound method Session.commit of &lt;sqlalchemy.orm.session.Session object at 0x000001F58DDC5010&gt;&gt;</code></p><p><code>&gt;&gt;&gt; session.commit()</code></p><p><code>&gt;&gt;&gt; users=session.query(User).all()</code></p><p><code>&gt;&gt;&gt; for user in users:</code></p><p><code>...     print(user)</code></p><p><code>...</code></p><p><code>&lt;User(name='Alice',age'26')&gt;</code></p><p><code>&lt;User(name='Bob',age'50')&gt;</code></p><p><code>&lt;User(name='Harold',age'45')&gt;</code></p><p><code>&gt;&gt;&gt; new_user=User(name='Sally', age=25)</code></p><p><code>&gt;&gt;&gt; session.add(new_user)</code></p><p><code>&gt;&gt;&gt; new_user=User(name='Phil', age=35)</code></p><p><code>&gt;&gt;&gt; session.add(new_user)</code></p><p><code>&gt;&gt;&gt; session.commit()</code></p><p><code>&gt;&gt;&gt; users=session.query(User).all()</code></p><p><code>&gt;&gt;&gt; for user in users:</code></p><p><code>...     print(user)</code></p><p><code>...</code></p><p><code>&lt;User(name='Alice',age'26')&gt;</code></p><p><code>&lt;User(name='Bob',age'50')&gt;</code></p><p><code>&lt;User(name='Harold',age'45')&gt;</code></p><p><code>&lt;User(name='Sally',age'25')&gt;</code></p><p><code>&lt;User(name='Phil',age'35')&gt;</code></p><p><code>&gt;&gt;&gt; for i in range(1,11):</code></p><p><code>...     new_user = User(name=input("Enter Name: "), age=int(input("Enter Age: ")))</code></p><p><code>...     session.add(new_user)</code></p><p><code>... session.commit()</code></p><p><code>...</code></p><p><code>Enter Name: Jason</code></p><p><code>Enter Age: 65</code></p><p><code>Enter Name: Terrance</code></p><p><code>Enter Age: 13</code></p><p><code>Enter Name: Joel</code></p><p><code>Enter Age: 45</code></p><p><code>Enter Name: Bill</code></p><p><code>Enter Age: 63</code></p><p><code>Enter Name: Julie</code></p><p><code>Enter Age: 62</code></p><p><code>Enter Name: Cliffard</code></p><p><code>Enter Age: 67</code></p><p><code>Enter Name: phillis</code></p><p><code>Enter Age: 75</code></p><p><code>Enter Name: Robert</code></p><p><code>Enter Age: 23</code></p><p><code>Enter Name: Ralph</code></p><p><code>Enter Age: 43</code></p><p><code>Enter Name: Dean</code></p><p><code>Enter Age: 21</code></p><p><code>&gt;&gt;&gt; users = session.query(User).all()</code></p><p><code>&gt;&gt;&gt; for user in users:</code></p><p><code>...     print('%-10s' % user.name, ', ', '%5d' % user.age)</code></p><p><code>...</code></p><p><code>Alice      ,     26</code></p><p><code>Bob        ,     50</code></p><p><code>Harold     ,     45</code></p><p><code>Sally      ,     25</code></p><p><code>Phil       ,     35</code></p><p><code>Jason      ,     65</code></p><p><code>Terrance   ,     13</code></p><p><code>Joel       ,     45</code></p><p><code>Bill       ,     63</code></p><p><code>Julie      ,     62</code></p><p><code>Cliffard   ,     67</code></p><p><code>phillis    ,     75</code></p><p><code>Robert     ,     23</code></p><p><code>Ralph      ,     43</code></p><p><code>Dean       ,     21</code></p><p><code>&gt;&gt;&gt; older_users=session.query(User).filter(User.age&gt;30).all()</code></p><p><code>&gt;&gt;&gt; for user in older_users:</code></p><p><code>...     print('%-10s' % user.name, ', ', '%5d' % user.age)</code></p><p><code>...</code></p><p><code>Bob        ,     50</code></p><p><code>Harold     ,     45</code></p><p><code>Phil       ,     35</code></p><p><code>Jason      ,     65</code></p><p><code>Joel       ,     45</code></p><p><code>Bill       ,     63</code></p><p><code>Julie      ,     62</code></p><p><code>Cliffard   ,     67</code></p><p><code>phillis    ,     75</code></p><p><code>Ralph      ,     43</code></p><p><code>&gt;&gt;&gt; session.close()</code></p><p></p>]]></content:encoded></item><item><title><![CDATA[Data Handling in Python -- Part 2]]></title><description><![CDATA[My first dive into raw file reads and writes.]]></description><link>https://billhousley.com/p/data-handling-in-python-part-2</link><guid isPermaLink="false">https://billhousley.com/p/data-handling-in-python-part-2</guid><dc:creator><![CDATA[Bill Housley]]></dc:creator><pubDate>Wed, 19 Mar 2025 12:40:02 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I had a wild time with data handling yesterday&#8212;so wild, in fact, that I had to cut some of the stuff out of the dump to fit it in this post. As I learned to format output with the % operator, and from that learned how to right-justify numbers with the print() statement, I went crazy-pants and started using <strong>for</strong> loops to build times tables that got into the hundreds and thousands just for grins and giggles. However, when I copy/pasted the logs of all that fun this article, Substack warned me that the article was too large for an email. Besides, we did that together here already, so I trimmed all that stuff out and will just pass on the formatted file access parts.</p><p>The log below gets into my first experiences with the meat and potatoes of directly writing to and reading from files. Again (sigh), I struggled through the tutorial&#8217;s Python 2 code example, researching and converting it into Python 3 as I encountered issues. I even got into pickling, which is cool, but I don&#8217;t know where I&#8217;d use it except for application installs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" width="5760" height="3840" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:3840,&quot;width&quot;:5760,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Matrix movie still&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Matrix movie still" title="Matrix movie still" srcset="https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1526374965328-7f61d4dc18c5?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHwyfHxieXRlc3xlbnwwfHx8fDE3NDIzODUwNzd8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Photo by <a href="true">Markus Spiske</a> on <a href="https://unsplash.com">Unsplash</a></figcaption></figure></div><p>After that, I tried error exception handling and threw in the towel on that for now. The differences between Python 2 and 3 in that area became too excessively annoying and time-consuming to deal with. I didn&#8217;t include that log here; it was just too messy. I&#8217;ll look for a specific Python 3 tutorial on exception handling and then give you my first experience with that.</p><p>I&#8217;ll spend several days now defining object classes and learning details about built-in ones. Later, I&#8217;ll look for specific modules with higher-level data handling object classes and Python best practices, learn about them, and use them in an application. Hopefully, I&#8217;ll find an SQL module I can access through Python. I don&#8217;t doubt that I&#8217;ll find one.</p><p>Here is my fun log for yesterday.</p><p></p><p></p><p>&gt;&gt;&gt; for x in range(1,21):</p><p>...     for y in range(1,21):</p><p>...         mytable.append(str(x*y).rjust(4))</p><p>...         print(str(x*y).rjust(4), end=" ")</p><p>...     print()</p><p>...     mytable[x].append()</p><p>...</p><p>   1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-59&gt;", line 6, in &lt;module&gt;</p><p>    mytable[x].append()</p><p>    ^^^^^^^^^^^^^^^^^</p><p>AttributeError: 'str' object has no attribute 'append'</p><p>&gt;&gt;&gt; for x in range(1,21):</p><p>...     for y in range(1,21):</p><p>...         mytable.append(str(x*y).rjust(4))</p><p>...         print(str(x*y).rjust(4), end=" ")</p><p>...     print()</p><p>...     mytable(x).append()</p><p>...</p><p>   1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-60&gt;", line 6, in &lt;module&gt;</p><p>    mytable(x).append()</p><p>    ~~~~~~~^^^</p><p>TypeError: 'list' object is not callable</p><p>&gt;&gt;&gt; for x in range(1,21):</p><p>...     for y in range(1,21):</p><p>...         mytable.append(str(x*y).rjust(4))</p><p>...         print(str(x*y).rjust(4), end=" ")</p><p>...     print()</p><p>...     mytable(x,y).append()</p><p>...</p><p>   1    2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-61&gt;", line 6, in &lt;module&gt;</p><p>    mytable(x,y).append()</p><p>    ~~~~~~~^^^^^</p><p>TypeError: 'list' object is not callable</p><p>&gt;&gt;&gt; exit</p><p>PS C:\Users\WHousley&gt; python</p><p>Python 3.13.2 (tags/v3.13.2:4f8bb39, Feb  4 2025, 15:23:48) [MSC v.1942 64 bit (AMD64)] on win32</p><p>Type "help", "copyright", "credits" or "license" for more information.</p><p>&gt;&gt;&gt; for x in range(1,11):</p><p>...     print( '%2d %3d %4d' % (x,x*x,x*x*x))</p><p>...</p><p> 1   1    1</p><p> 2   4    8</p><p> 3   9   27</p><p> 4  16   64</p><p> 5  25  125</p><p> 6  36  216</p><p> 7  49  343</p><p> 8  64  512</p><p> 9  81  729</p><p>10 100 1000</p><p>&gt;&gt;&gt; bob='a','b','c','d','e','f','g'</p><p>&gt;&gt;&gt; bob</p><p>('a', 'b', 'c', 'd', 'e', 'f', 'g')</p><p>&gt;&gt;&gt; for x in bob:</p><p>...     print( '%-10s % x, end=".")</p><p>...</p><p>  File "&lt;python-input-3&gt;", line 2</p><p>    print( '%-10s % x, end=".")</p><p>           ^</p><p>SyntaxError: unterminated string literal (detected at line 2)</p><p>&gt;&gt;&gt; for x in bob:</p><p>...     print( '%-10s' % x, end=".")</p><p>...</p><p>&gt;&gt;&gt; for x in bob:    .c         .d         .e         .f         .g         .</p><p>...     print( '%-10s' % x, end=".")</p><p>... print()</p><p>...</p><p>a         .b         .c         .d         .e         .f         .g         .</p><p>&gt;&gt;&gt; name=('Alice','bob','George','Harold')</p><p>&gt;&gt;&gt; age=(30,40,50,60)</p><p>&gt;&gt;&gt; name=('Alice','Bob','George','Harold')</p><p>&gt;&gt;&gt; age=(30,40,50,60)</p><p>&gt;&gt;&gt; for x in len(name)</p><p>...     print( '%-10s' % name(x), '%5d' % age(x), end=".")</p><p>... print()</p><p>...</p><p>  File "&lt;python-input-10&gt;", line 1</p><p>    for x in len(name)</p><p>                      ^</p><p>SyntaxError: expected ':'</p><p>&gt;&gt;&gt; for x in range(0,len(name))</p><p>...     print( '%-10s' % name(x), '%5d' % age(x), end=".")</p><p>... print()</p><p>...</p><p>  File "&lt;python-input-11&gt;", line 1</p><p>    for x in range(0,len(name))</p><p>                               ^</p><p>SyntaxError: expected ':'</p><p>&gt;&gt;&gt; for x in range(0,len(name)):</p><p>...     print( '%-10s' % name(x), '%5d' % age(x), end=".")</p><p>... print()</p><p>...</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-12&gt;", line 2, in &lt;module&gt;</p><p>    print( '%-10s' % name(x), '%5d' % age(x), end=".")</p><p>                     ~~~~^^^</p><p>TypeError: 'tuple' object is not callable</p><p>&gt;&gt;&gt; name</p><p>('Alice', 'Bob', 'George', 'Harold')</p><p>&gt;&gt;&gt; name(1)</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-14&gt;", line 1, in &lt;module&gt;</p><p>    name(1)</p><p>    ~~~~^^^</p><p>TypeError: 'tuple' object is not callable</p><p>&gt;&gt;&gt; name[1]</p><p>'Bob'</p><p>&gt;&gt;&gt; for x in range(0,len(name)):</p><p>...     print( '%-10s' % name[x], '%5d' % age[x], end=".")</p><p>... print()</p><p>...</p><p>Alice         30.Bob           40.George        50.Harold        60.</p><p>&gt;&gt;&gt; for x in range(0,len(name)):</p><p>...     print( '%-10s' % name[x], '%5d' % age[x], end="")</p><p>... print()</p><p>...</p><p>Alice         30Bob           40George        50Harold        60</p><p>&gt;&gt;&gt; open("NamesAndAges.db" as database)</p><p>  File "&lt;python-input-18&gt;", line 1</p><p>    open("NamesAndAges.db" as database)</p><p>                           ^^</p><p>SyntaxError: invalid syntax</p><p>&gt;&gt;&gt; open("NamesAndAges.db", "a") as database</p><p>  File "&lt;python-input-19&gt;", line 1</p><p>    open("NamesAndAges.db", "a") as database</p><p>                                 ^^</p><p>SyntaxError: invalid syntax</p><p>&gt;&gt;&gt; with open("NamesAndAges.db", "a") as database</p><p>  File "&lt;python-input-20&gt;", line 1</p><p>    with open("NamesAndAges.db", "a") as database</p><p>                                                 ^</p><p>SyntaxError: expected ':'</p><p>&gt;&gt;&gt; with open("NamesAndAges.db", "a") as database:</p><p>...     for x in range(0,len(name)):</p><p>...         database.write( '-10s' % name[x], '%5d' % age[x])</p><p>...</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-21&gt;", line 3, in &lt;module&gt;</p><p>    database.write( '-10s' % name[x], '%5d' % age[x])</p><p>                    ~~~~~~~^~~~~~~~~</p><p>TypeError: not all arguments converted during string formatting</p><p>&gt;&gt;&gt; with open("NamesAndAges.db", "a") as database:</p><p>...     for x in range(0,len(name)):</p><p>...         database.write( '%-10s' % name[x], '%5d' % age[x])</p><p>...</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-22&gt;", line 3, in &lt;module&gt;</p><p>    database.write( '%-10s' % name[x], '%5d' % age[x])</p><p>    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^</p><p>TypeError: TextIOWrapper.write() takes exactly one argument (2 given)</p><p>&gt;&gt;&gt; with open("NamesAndAges.db", "a") as database:</p><p>...     for x in range(0,len(name)):</p><p>...         database.write( '%-10s%5d' % (name[x], age[x])</p><p>... print('Done')</p><p>...</p><p>...</p><p>...</p><p>  File "&lt;python-input-23&gt;", line 3</p><p>    database.write( '%-10s%5d' % (name[x], age[x])</p><p>                  ^</p><p>SyntaxError: '(' was never closed</p><p>&gt;&gt;&gt; with open("NamesAndAges.db", "a") as database:</p><p>...     for x in range(0,len(name)):</p><p>...         database.write( '%-10s%5d' % (name[x], age[x]))</p><p>... print('Done')</p><p>...</p><p>Done</p><p>&gt;&gt;&gt; with open("NamesAndAges.db", "a") as database:</p><p>...     for x in range(0,len(name)):</p><p>...         database.write( '%-10s%5d' % (name[x], age[x]))</p><p>... print('Done')</p><p>...</p><p>Done</p><p>&gt;&gt;&gt;</p><p>&gt;&gt;&gt;</p><p>&gt;&gt;&gt; exit</p><p>PS C:\Users\WHousley&gt; python</p><p>Python 3.13.2 (tags/v3.13.2:4f8bb39, Feb  4 2025, 15:23:48) [MSC v.1942 64 bit (AMD64)] on win32</p><p>Type "help", "copyright", "credits" or "license" for more information.</p><p>&gt;&gt;&gt; with open("NamesAndAges.db", "a") as database:</p><p>...     for x in range(0,len(name)):</p><p>...         database.write( '%-10s%5d' % (name[x], age[x])</p><p>... print('Done')</p><p>...</p><p>  File "&lt;python-input-0&gt;", line 3</p><p>    database.write( '%-10s%5d' % (name[x], age[x])</p><p>                  ^</p><p>SyntaxError: '(' was never closed</p><p>&gt;&gt;&gt; ))))</p><p>  File "&lt;python-input-1&gt;", line 1</p><p>    ))))</p><p>    ^</p><p>SyntaxError: unmatched ')'</p><p>&gt;&gt;&gt; with open("NamesAndAges.db", "a") as database:</p><p>...     for x in range(0,len(name)):</p><p>...         database.write( '%-10s%5d' % (name[x], age[x])</p><p>... print('Done')</p><p>...</p><p>  File "&lt;python-input-2&gt;", line 3</p><p>    database.write( '%-10s%5d' % (name[x], age[x])</p><p>                  ^</p><p>SyntaxError: '(' was never closed</p><p>&gt;&gt;&gt; ))))</p><p>  File "&lt;python-input-3&gt;", line 1</p><p>    ))))</p><p>    ^</p><p>SyntaxError: unmatched ')'</p><p>&gt;&gt;&gt; database=open('database.csv',"r")</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-4&gt;", line 1, in &lt;module&gt;</p><p>    database=open('database.csv',"r")</p><p>FileNotFoundError: [Errno 2] No such file or directory: 'database.csv'</p><p>&gt;&gt;&gt; database=open('database',"r")</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-5&gt;", line 1, in &lt;module&gt;</p><p>    database=open('database',"r")</p><p>FileNotFoundError: [Errno 2] No such file or directory: 'database'</p><p>&gt;&gt;&gt; database=open('NamesAndAges.csv',"r")</p><p>&gt;&gt;&gt; print f</p><p>  File "&lt;python-input-7&gt;", line 1</p><p>    print f</p><p>    ^^^^^^^</p><p>SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?</p><p>&gt;&gt;&gt; print (f)</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-8&gt;", line 1, in &lt;module&gt;</p><p>    print (f)</p><p>           ^</p><p>NameError: name 'f' is not defined</p><p>&gt;&gt;&gt; print (database)</p><p>&lt;_io.TextIOWrapper name='NamesAndAges.csv' mode='r' encoding='cp1252'&gt;</p><p>&gt;&gt;&gt; database.read()</p><p>'Bob,13\nSally,15\nGeorge,16\nHarold,63\nGrace,35\nTerrance,12\nFerrin,43\n'</p><p>&gt;&gt;&gt; database.readline()</p><p>''</p><p>&gt;&gt;&gt; database.readline()</p><p>''</p><p>&gt;&gt;&gt; database.readlines()</p><p>[]</p><p>&gt;&gt;&gt; database=open('NamesAndAges.csv',"r")</p><p>&gt;&gt;&gt; database.readlines()</p><p>['Bob,13\n', 'Sally,15\n', 'George,16\n', 'Harold,63\n', 'Grace,35\n', 'Terrance,12\n', 'Ferrin,43\n']</p><p>&gt;&gt;&gt; database.readline()</p><p>''</p><p>&gt;&gt;&gt; database.readline()</p><p>''</p><p>&gt;&gt;&gt; database.readline(1)</p><p>''</p><p>&gt;&gt;&gt; database.readline(2)</p><p>''</p><p>&gt;&gt;&gt; database.readlines()</p><p>[]</p><p>&gt;&gt;&gt; database.seek(0)</p><p>0</p><p>&gt;&gt;&gt; database.readlines()</p><p>['Bob,13\n', 'Sally,15\n', 'George,16\n', 'Harold,63\n', 'Grace,35\n', 'Terrance,12\n', 'Ferrin,43\n']</p><p>&gt;&gt;&gt; database.seek(0)</p><p>0</p><p>&gt;&gt;&gt; database.readline(2)</p><p>'Bo'</p><p>&gt;&gt;&gt; database.readline(2)</p><p>'b,'</p><p>&gt;&gt;&gt;</p><p>&gt;&gt;&gt; database.readline(2)</p><p>'13'</p><p>&gt;&gt;&gt; database.seek(0)</p><p>0</p><p>&gt;&gt;&gt; database.readline()</p><p>'Bob,13\n'</p><p>&gt;&gt;&gt; database.seek(0)</p><p>0</p><p>&gt;&gt;&gt; x=database.readline()</p><p>&gt;&gt;&gt; x(1:-2)</p><p>  File "&lt;python-input-32&gt;", line 1</p><p>    x(1:-2)</p><p>       ^</p><p>SyntaxError: invalid syntax</p><p>&gt;&gt;&gt; x(1:-2)</p><p>  File "&lt;python-input-33&gt;", line 1</p><p>    x(1:-2)</p><p>       ^</p><p>SyntaxError: invalid syntax</p><p>&gt;&gt;&gt; x(1)</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-34&gt;", line 1, in &lt;module&gt;</p><p>    x(1)</p><p>    ~^^^</p><p>TypeError: 'str' object is not callable</p><p>&gt;&gt;&gt; x[1]</p><p>'o'</p><p>&gt;&gt;&gt; x[0]</p><p>'B'</p><p>&gt;&gt;&gt; repr(x)</p><p>"'Bob,13\n'"</p><p>&gt;&gt;&gt; repr(x)</p><p>"'Bob,13\n'"</p><p>&gt;&gt;&gt; y=repr(x)</p><p>&gt;&gt;&gt; y</p><p>"'Bob,13\n'"</p><p>&gt;&gt;&gt; database.tell('Grace')</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-41&gt;", line 1, in &lt;module&gt;</p><p>    database.tell('Grace')</p><p>    ~~~~~~~~~~~~~^^^^^^^^^</p><p>TypeError: TextIOWrapper.tell() takes no arguments (1 given)</p><p>&gt;&gt;&gt; database.tell()</p><p>8</p><p>&gt;&gt;&gt; database.seek(0)</p><p>0</p><p>&gt;&gt;&gt; database.tell()</p><p>0</p><p>&gt;&gt;&gt; f.close</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-45&gt;", line 1, in &lt;module&gt;</p><p>    f.close</p><p>    ^</p><p>NameError: name 'f' is not defined</p><p>&gt;&gt;&gt; database.close()</p><p>&gt;&gt;&gt; atoi("123")</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-47&gt;", line 1, in &lt;module&gt;</p><p>    atoi("123")</p><p>    ^^^^</p><p>NameError: name 'atoi' is not defined</p><p>&gt;&gt;&gt; x='54325432543'</p><p>&gt;&gt;&gt; x.atoi()</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-49&gt;", line 1, in &lt;module&gt;</p><p>    x.atoi()</p><p>    ^^^^^^</p><p>AttributeError: 'str' object has no attribute 'atoi'</p><p>&gt;&gt;&gt; x.int()</p><p>...</p><p>...</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-50&gt;", line 1, in &lt;module&gt;</p><p>    x.int()</p><p>    ^^^^^</p><p>AttributeError: 'str' object has no attribute 'int'</p><p>&gt;&gt;&gt; x.int()</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-51&gt;", line 1, in &lt;module&gt;</p><p>    x.int()</p><p>    ^^^^^</p><p>AttributeError: 'str' object has no attribute 'int'</p><p>&gt;&gt;&gt; int(x)</p><p>54325432543</p><p>&gt;&gt;&gt; x="Alice,34"</p><p>&gt;&gt;&gt; int(x)</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-54&gt;", line 1, in &lt;module&gt;</p><p>    int(x)</p><p>    ~~~^^^</p><p>ValueError: invalid literal for int() with base 10: 'Alice,34'</p><p>&gt;&gt;&gt; x='54325432543'</p><p>&gt;&gt;&gt; x='Alioce,34'</p><p>&gt;&gt;&gt; int(x)</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-57&gt;", line 1, in &lt;module&gt;</p><p>    int(x)</p><p>    ~~~^^^</p><p>ValueError: invalid literal for int() with base 10: 'Alioce,34'</p><p>&gt;&gt;&gt; f=open('NamesAndAges.csv',"r")</p><p>&gt;&gt;&gt; f.close</p><p>&lt;built-in method close of _io.TextIOWrapper object at 0x000001A1940419A0&gt;</p><p>&gt;&gt;&gt; f=open('NamesAndAges.csv',"w")</p><p>&gt;&gt;&gt; pickle.__doc__</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-61&gt;", line 1, in &lt;module&gt;</p><p>    pickle.__doc__</p><p>    ^^^^^^</p><p>NameError: name 'pickle' is not defined. Did you forget to import 'pickle'?</p><p>&gt;&gt;&gt; import pickle</p><p>&gt;&gt;&gt; pickle.__doc__</p><p>'Create portable serialized representations of Python objects.\n\nSee module copyreg for a mechanism for registering custom picklers.\nSee module pickletools source for extensive comments.\n\nClasses:\n\n    Pickler\n    Unpickler\n\nFunctions:\n\n    dump(object, file)\n    dumps(object) -&gt; string\n    load(file) -&gt; object\n    loads(bytes) -&gt; object\n\nMisc variables:\n\n    __version__\n    format_version\n    compatible_formats\n\n'</p><p>&gt;&gt;&gt; pickle(x,f)</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-64&gt;", line 1, in &lt;module&gt;</p><p>    pickle(x,f)</p><p>    ~~~~~~^^^^^</p><p>TypeError: 'module' object is not callable</p><p>&gt;&gt;&gt; pickle.dump.__doc__</p><p>'Write a pickled representation of obj to the open file object file.\n\nThis is equivalent to ``Pickler(file, protocol).dump(obj)``, but may\nbe more efficient.\n\nThe optional *protocol* argument tells the pickler to use the given\nprotocol; supported protocols are 0, 1, 2, 3, 4 and 5.  The default\nprotocol is 4. It was introduced in Python 3.4, and is incompatible\nwith previous versions.\n\nSpecifying a negative protocol version selects the highest protocol\nversion supported.  The higher the protocol used, the more recent the\nversion of Python needed to read the pickle produced.\n\nThe *file* argument must have a write() method that accepts a single\nbytes argument.  It can thus be a file object opened for binary\nwriting, an io.BytesIO instance, or any other custom object that meets\nthis interface.\n\nIf *fix_imports* is True and protocol is less than 3, pickle will try\nto map the new Python 3 names to the old module names used in Python\n2, so that the pickle data stream is readable with Python 2.\n\nIf *buffer_callback* is None (the default), buffer views are serialized\ninto *file* as part of the pickle stream.  It is an error if\n*buffer_callback* is not None and *protocol* is None or smaller than 5.'</p><p>&gt;&gt;&gt; pickle.dump.(x,f)</p><p>  File "&lt;python-input-66&gt;", line 1</p><p>    pickle.dump.(x,f)</p><p>                ^</p><p>SyntaxError: invalid syntax</p><p>&gt;&gt;&gt; pickle.dump(x,f)</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-67&gt;", line 1, in &lt;module&gt;</p><p>    pickle.dump(x,f)</p><p>    ~~~~~~~~~~~^^^^^</p><p>TypeError: write() argument must be str, not bytes</p><p>&gt;&gt;&gt; pickle.load(x,f)</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-68&gt;", line 1, in &lt;module&gt;</p><p>    pickle.load(x,f)</p><p>    ~~~~~~~~~~~^^^^^</p><p>TypeError: load() takes exactly 1 positional argument (2 given)</p><p>&gt;&gt;&gt; f.close</p><p>&lt;built-in method close of _io.TextIOWrapper object at 0x000001A194042180&gt;</p><p>&gt;&gt;&gt; data= {"name": "Alice", "age": 30, "scores": [85, 90, 95]}</p><p>&gt;&gt;&gt; with open("datapickle.txt", "wb") as f:</p><p>...     pickle.dump(data,f)</p><p>...</p><p>&gt;&gt;&gt; with open("datapickle.txt", "wb") as f:</p><p>...     pickle.load(datab,f)</p><p>...</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-72&gt;", line 2, in &lt;module&gt;</p><p>    pickle.load(datab,f)</p><p>                ^^^^^</p><p>NameError: name 'datab' is not defined. Did you mean: 'data'?</p><p>&gt;&gt;&gt; with open("datapickle.txt", "wb") as f:</p><p>...     x=pickle.load(f)</p><p>...</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-73&gt;", line 2, in &lt;module&gt;</p><p>    x=pickle.load(f)</p><p>io.UnsupportedOperation: read</p><p>&gt;&gt;&gt; x</p><p>'Alioce,34'</p><p>&gt;&gt;&gt; with open("datapickle.txt", "wb") as f:</p><p>...     x=pickle.load(f)</p><p>...</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-75&gt;", line 2, in &lt;module&gt;</p><p>    x=pickle.load(f)</p><p>io.UnsupportedOperation: read</p><p>&gt;&gt;&gt; with open("datapickle.txt", "rb") as f:</p><p>...     loaded_data=pickle.load(f)</p><p>...</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-76&gt;", line 2, in &lt;module&gt;</p><p>    loaded_data=pickle.load(f)</p><p>EOFError: Ran out of input</p><p>&gt;&gt;&gt; with open("datapickle.txt", "rb") as f:</p><p>...     loaded_data=pickle.load(f)</p><p>...</p><p>Traceback (most recent call last):</p><p>  File "&lt;python-input-77&gt;", line 2, in &lt;module&gt;</p><p>    loaded_data=pickle.load(f)</p><p>EOFError: Ran out of input</p><p>&gt;&gt;&gt; with open("datapickle.txt", "wb") as f:</p><p>...     pickle.dump(data,f)</p><p>...</p><p>&gt;&gt;&gt; with open("datapickle.txt", "rb") as f:</p><p>...     loaded_data=pickle.load(f)</p><p>...</p><p>&gt;&gt;&gt; loaded_data</p><p>{'name': 'Alice', 'age': 30, 'scores': [85, 90, 95]}</p>]]></content:encoded></item></channel></rss>