Recent changes to this wiki:

Add suggestion of `signal(1)`
diff --git a/code/moreutils/discussion.mdwn b/code/moreutils/discussion.mdwn
index 480caece..fac21a37 100644
--- a/code/moreutils/discussion.mdwn
+++ b/code/moreutils/discussion.mdwn
@@ -1,6 +1,40 @@
 Feel free to edit this page to suggest tools to add, or make any other
 comments --[[Joey]]
 
+## Suggestion: add `signal(1)`, like `errno(1)`
+
+How about adding a moreutil called `signal(1)` that acts like `errno(1)`, showing all the signal names, numbers, and strings.
+
+I'd suggest an output like `'SIGNAME SIGNUM SIGSTR'` the same as `errno(1)`.
+
+One can try to do `/usr/bin/kill -L | cat` (the `cat` so that it prints one SIGNUM per line, like `ls | cat`), but this only shows `'SIGNUM NAME'`. This is the transposed order from `errno(1)`, the 'SIG' has been stripped off the front of signal names eg 'SIGINT' -> 'INT', and it doesn't contain the signal string given by `strsignal(3)`.
+
+It roughly can be done in Python with
+
+```py
+import signal
+
+for sig in signal.Signals:
+    print(sig.name, sig.value, signal.strsignal(sig.value))
+```
+
+but it filters duplicates like 'SIGABRT' and 'SIGIOT', and 'SIGIO' and 'SIGPOLL' (non exhaustive list, search for 'synonym' in `man 7 signal`). I like that `errno(1)` shows duplicates like `EAGAIN 11` and `EWOULDBLOCK 11`.
+
+Current version:
+
+```
+$ date -Is
+2026-07-04T08:17:45+01:00
+$ uname -rmo
+7.0.14-arch1-1 x86_64 GNU/Linux
+$ pacman -Qi moreutils | grep -i version | cut -w -f 3
+0.70-1
+```
+
+Thanks for the moreutils so far! I love `sponge` and `errno`.
+
+~jb2170
+
 ## vidir documentation addition: $TMPDIR
 I noticed vidir uses `File::Spec->tmpdir` which in turn respects `TMPDIR`.  You might want to mention this variable alongside `EDITOR` and `VISUAL` in the `ENVIRONMENT VARIABLES` section of the man page, as it's pretty useful.  On a multi-user system, for example, you can set `TMPDIR` to `/run/user/$UID` to avoid the security implications of a globally accessible `/tmp`.
 

tag
diff --git a/blog/entry/no_LLM_code_in_dependencies.mdwn b/blog/entry/no_LLM_code_in_dependencies.mdwn
index ae344e98..b4d4d17b 100644
--- a/blog/entry/no_LLM_code_in_dependencies.mdwn
+++ b/blog/entry/no_LLM_code_in_dependencies.mdwn
@@ -36,3 +36,5 @@ It may seem easy to prompt a LLM with
 And commit the result and call yourself a 10xer. 
 But please consider the broader impact of your actions. 
 (In the above case, that project lost my further collaboration on it.)
+
+[[!tag haskell]]

blog update
diff --git a/blog/entry/no_LLM_code_in_dependencies.mdwn b/blog/entry/no_LLM_code_in_dependencies.mdwn
new file mode 100644
index 00000000..ae344e98
--- /dev/null
+++ b/blog/entry/no_LLM_code_in_dependencies.mdwn
@@ -0,0 +1,38 @@
+I've spent about 100 hours of work over the past month to make sure
+git-annex can build without dependencies that contain LLM generated code.
+At least so far.
+
+<https://git-annex.branchable.com/no_llm_code/>
+
+Needing to review a program's whole dependency tree on an ongoing basis is
+apparently what programming has come to?
+
+I've found some real stinkers. Large LLM generated changes being reverted
+in the next release without any explanation. An incoherent 1489 line
+commit message with 10,000 lines of changes to a 26,000 LOC code base. 
+A LLM prompt to copy code from another project that seems to have only
+avoided being copyright infringement due to luck. 
+
+I now have additional information about the quality of dependencies
+which will surely influence future decisions. As far as I
+can see, that's the only positive benefit of this work.
+
+I realize that I am probably trying to hold back the tide at this point.
+That appears to be why Software Freedom Conservancy
+[punted](https://sfconservancy.org/llm-gen-ai/llm-backed-generative-ai-recommendations.html),
+and I doubt that the FSF will do any better.
+
+As these dominos fall, I am reconsidering my participation in these
+communities. But I continue my work and support my users.
+
+It may seem easy to prompt a LLM with 
+
+> Add fourmolu config and restyled
+> 
+> neat
+> 
+> format a module
+
+And commit the result and call yourself a 10xer. 
+But please consider the broader impact of your actions. 
+(In the above case, that project lost my further collaboration on it.)

Added a comment: From french manufacturer
diff --git a/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined/comment_1_8cbedd118d41d3a1ea98890d102f01fe._comment b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined/comment_1_8cbedd118d41d3a1ea98890d102f01fe._comment
new file mode 100644
index 00000000..97e8bb04
--- /dev/null
+++ b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined/comment_1_8cbedd118d41d3a1ea98890d102f01fe._comment
@@ -0,0 +1,16 @@
+[[!comment format=mdwn
+ username="andre"
+ avatar="http://cdn.libravatar.org/avatar/4d984ea4f8fd616d01eade103e895122"
+ subject="From french manufacturer"
+ date="2026-07-01T21:11:29Z"
+ content="""
+Oh yes getting data from a car what a dream
+
+I don't know if it will work for your needs but here is a good product from france :
+
+https://gce-electronics.com/fr/energie-compteurs/2120-gestion-energie-ecodevices-3.html
+
+Have a good day
+
+André
+"""]]

clarify
diff --git a/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
index 64a4fa20..a0cf1b34 100644
--- a/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
+++ b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
@@ -102,8 +102,8 @@ load will turn off but the high-priority load will keep running down to 70%
 battery.
 
 Unfortunately, getting any information out of my hot water heater relies on
-a vendor API server that is often down on weekends, and I'm scraping the
-HTML of my EVSE[1] to learn if my car is plugged in, to say nothing of the
+a vendor API server that is often down on weekends, and reverse
+engineered the web page of my EVSE[1] to control it, to say nothing of the
 nightmare of getting the car's state of charge from The Cloud.
 
 Anyway, I'm pleased with having easily tweakable code and how far I've

clarify
diff --git a/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
index 230e9c37..64a4fa20 100644
--- a/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
+++ b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
@@ -103,7 +103,8 @@ battery.
 
 Unfortunately, getting any information out of my hot water heater relies on
 a vendor API server that is often down on weekends, and I'm scraping the
-HTML of my EVSE[1] to learn my car's state of charge.
+HTML of my EVSE[1] to learn if my car is plugged in, to say nothing of the
+nightmare of getting the car's state of charge from The Cloud.
 
 Anyway, I'm pleased with having easily tweakable code and how far I've
 taken this offgrid, and everything I've learned doing so, but like I said,

layout
diff --git a/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
index 8ee2f547..230e9c37 100644
--- a/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
+++ b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
@@ -64,7 +64,7 @@ code it's currently using, which may get tweaked over winter:
 [[!format haskell """
 
     -- When the battery is charged enough to run major loads that may prevent
-	--  charging it further.
+	-- charging it further.
 	--
 	-- This varies with the hour of day. Early in the day, the battery does not
 	-- need to be as full to be considered well charged, since there is

layout
diff --git a/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
index 37f05d51..8ee2f547 100644
--- a/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
+++ b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
@@ -62,7 +62,8 @@ How low is too low for the house battery? Depends on the time of day. The
 code it's currently using, which may get tweaked over winter:
 
 [[!format haskell """
-	-- When the battery is charged enough to run major loads that may prevent
+
+    -- When the battery is charged enough to run major loads that may prevent
 	--  charging it further.
 	--
 	-- This varies with the hour of day. Early in the day, the battery does not

blog
diff --git a/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
new file mode 100644
index 00000000..37f05d51
--- /dev/null
+++ b/blog/entry/big_loads_offgrid_with_a_small_battery_sidelined.mdwn
@@ -0,0 +1,136 @@
+No matter that the hype cycle wants you to think, the renewable energy
+transition is the biggest thing happening in tech and it's happening faster
+and faster. Despite being neck deep in it personally with offgrid solar
+projects, most recently solar hot water, increasingly it becomes clear I'm
+watching from the sidelines.
+
+In Australia, 
+[everyone gets 24 kwh of free daytime electric power now](https://lenergy.com.au/free-daytime-electricity-is-coming-heres-how-it-actually-works/).
+That's without installing any solar panels of their own, the grid just has
+that much excess capacity. All it takes to save $thousands per year (and
+avoid emissions) is to schedule some big loads like the hot water heater
+and EV to charge during the day. To save more, drop in a home battery
+that charges for free and powers the home through the evening.
+
+In Germany, a 2 kwh plug-in home battery costs $350 and the electric
+company will [pay you](https://octopusenergy.de/smarte-geraete/heimspeicher-powerbank)
+$130 per year to plug it into your wall. 
+There are similar offers throughout Europe.
+
+In Cuba something something geopolitics, oil blockade, belt and road =>
+suddenly 1GW of solar farms with another gigawatt on the way.
+
+I'll soon visit South Carolina where with no subsidies whatsoever from a
+decidedly renewable-unfriendly government, it made sense for my dad's house
+to get a whole home battery and double the solar array. The resulting
+system will be able to power the well pump and probably also the whole
+geothermal HVAC system through the kind of month-long grid down events that
+happened in Hurricane Helene.
+
+Myself, well, I've got a by modern standards small 4 kwh home battery that
+powers my house offgrid, and I've recently installed a heat pump hot water
+heater. That's after about a decade pondering what solution to use for
+solar hot water, to replace an aging and horrible propane instant water
+heater. I've in the past considered everything from evacuated tubes to
+special direct drive inverters to DC resistive MPTT dump loads. The solution
+turned out to be just a big enough solar array, and plugging in a 120v hot
+water heater that needs only 500 watts in heat pump mode. Plus a small
+amount of code to manage when it runs.
+
+In the time I was thinking about that, economies of scale and tech
+improvements just wiped all those other possibilities off the map, it's not
+economical to install and maintain a separate evactuated tube heat
+collector when a pile of solar panels costs so little and when electric
+hot water has gotten more than 200% efficient.
+
+I also recently completed my permanant EV charger installation, with a new
+inverter and conduit and proper wiring, and increased the car's charge rate
+to 2 kw. Eliminating the need to charge anywhere except at home except
+on road trips.
+
+Coordinating when these two big loads run, to maximize solar production and
+ensure that the house battery is full at the end of the day was ... not
+hard at all actually? The car charger amps can be dialed up and down to
+match incoming solar power fairly well, and leave some room for the hot
+water heater. They both operate as more or less dump loads. More or less
+because neither one can be cycled on or off very fast (to avoid wear and
+tear on the car's contactor and the heat pump's compressor), so it makes
+sense to leave them on and skate through short cloudy sections of the day,
+as long as the house battery doesn't get too low.
+
+How low is too low for the house battery? Depends on the time of day. The
+code it's currently using, which may get tweaked over winter:
+
+[[!format haskell """
+	-- When the battery is charged enough to run major loads that may prevent
+	--  charging it further.
+	--
+	-- This varies with the hour of day. Early in the day, the battery does not
+	-- need to be as full to be considered well charged, since there is
+	-- still plenty of time for it to charge up. Later in the day, with less
+	-- time to charge, it needs to be more full.
+	wellCharged :: Hour -> Percentage
+	wellCharged (Hour hour)
+	        | hour < 9 = Percentage 90 -- night
+	        | pmhour <= 0 = Percentage 50
+	        | pmhour <= 1 = Percentage 60
+	        | pmhour <= 2 = Percentage 70
+	        | pmhour <= 3 = Percentage 80
+	        | pmhour <= 4 = Percentage 90
+	        | otherwise = Percentage 95
+	  where
+	        pmhour = hour - 12
+"""]]
+
+More complicated is, what to do it there's solar power to run one or the
+other, but not both? This is starting to get into the territory of
+microgrids now, or of demand response programs, so there's a whole industry
+or three out there doing industry things geared at the kind of no-brainer
+solutions I mentioned earlier. From what I've gathered, all of them
+involve proprietary protocols and gear.
+
+What I've done is to read the state of the hot water heater and car, and
+prioritize hot water over the car. Except, if the car is below 10% it
+urgently needs to charge.
+
+And I found a really simple way to decide when to run the low-priority
+load: Just check if the house battery's current charge will be considered
+`wellCharged` in an hour. So if it's 2 pm, the battery needs to be 80%
+charged to run the lower-priority load, and if it dips below that, that
+load will turn off but the high-priority load will keep running down to 70%
+battery.
+
+Unfortunately, getting any information out of my hot water heater relies on
+a vendor API server that is often down on weekends, and I'm scraping the
+HTML of my EVSE[1] to learn my car's state of charge.
+
+Anyway, I'm pleased with having easily tweakable code and how far I've
+taken this offgrid, and everything I've learned doing so, but like I said,
+I'm clearly observing from the sidelines over here while the most
+significant thing for all of us is going on over there. You might
+appreciate my code or method, but you'll eventually be plugging in a home
+battery or signing up for a free daytime power tarrif from your electric
+company, or having professionals install a whole home system for 
+climate resiliance.
+
+So my question is, where does free software fit into all this? There are
+things like Home Assistant that do productize the kind of thing I'm doing
+enough to be useful more widely. But still niche. Meanwhile there are
+inverters and batteries that phone home to China, and every consumer
+facing install is either "use this device" or "integrate these 3
+proprietary devices".
+
+I don't think focusing on these negatives is really useful though, I'm more
+trying to understand where all this is going and then maybe get out ahead
+of it in some useful way with free software. Your thoughts welcome.
+
+---
+
+[1] Obviously OpenEVSE exists, but it didn't meet my needs hardware
+wise. And I could set my EVSE to use an OCPP server but it was easier to do
+the screen scraping than find an appropriate one, and I have
+the feeling I would not appreciate learning any more about OCPP,
+in the same way I really don't want to know a lot about web browsers'
+tag soup mode.
+
+[[!meta title="big loads offgrid with a small battery (sidelined)"]]

cleanup
diff --git a/trips/2016/boston.mdwn b/trips/2016/boston.mdwn
deleted file mode 100644
index 5e40ebbd..00000000
--- a/trips/2016/boston.mdwn
+++ /dev/null
@@ -1,10 +0,0 @@
-I'm visiting Boston, 16-20 March. 
-
-* Match 16th [Boston Haskell](http://www.meetup.com/Boston-Haskell/)
-* Match 17th afternoon in a coffee house, dinner at [Asmara](http://www.asmararestaurantboston.com/) 5pm, [Anne Leckie book signing](http://www.pandemoniumbooks.com/event/ann-leckie-author-event)/board gaming 7 pm
-* March 18th [SpinachCon](https://libreplanet.org/wiki/Event:LibrePlanet/LibrePlanet/3-18-2016_-Event_1)
-* March 18th Free Software Foundation open house at their offices, ~6pm
-* March 19th-20th [LibrePlanet](https://www.libreplanet.org/2016/)
-
-Would be pleased to get together with friends, users of my software, etc at
-any of these times. Say Hi when you see me, or shoot me an email.

cleanup
diff --git a/tmp/WARNING b/tmp/WARNING
deleted file mode 100644
index 3506af02..00000000
--- a/tmp/WARNING
+++ /dev/null
@@ -1,4 +0,0 @@
-WARNING WARNING WARNING
-
-Files in this directory will be removed without warning. Do not rely on
-anything staying here.
diff --git a/tmp/s3cr3t.mdwn b/tmp/s3cr3t.mdwn
deleted file mode 100644
index f3abce64..00000000
--- a/tmp/s3cr3t.mdwn
+++ /dev/null
@@ -1 +0,0 @@
-go away?

cleanup
diff --git a/tmp/mail.png b/tmp/mail.png
deleted file mode 100644
index 4f9d1879..00000000
Binary files a/tmp/mail.png and /dev/null differ

cleanup
diff --git a/campaign/thanks.mdwn b/campaign/thanks.mdwn
deleted file mode 100644
index 8dc22762..00000000
--- a/campaign/thanks.mdwn
+++ /dev/null
@@ -1,40 +0,0 @@
-Thank you for your support!
-
-The <a href="..">campaign page</a> is updated manually once a day
-or so, so your contribution won't show up immediately.
-
-Help spread the word, tell your friends!
-
-PS: If you donated bitcoin via coinbase, please drop me an email so I know
-who sent the donation.
-
-<style>
-#ssba {
-	padding: 4px;
-	border: 1px solid #e0dddd;
-	background-color: #42a7e2;
-	-moz-border-radius: 10px; -webkit-border-radius: 10px; -khtml-border-radius: 10px;  border-radius: 10px; -o-border-radius: 10px;
-}
-#ssba img { 	
-	width: 35px !important;
-	padding: 4px;
-	border:  0;
-	box-shadow: none !important;
-	display: inline;
-	vertical-align: middle;
-}
-#ssba, #ssba a {
-	color: 		#ffffff!important;
-	font-weight: bold;
-}
-</style>
-
-<div style="background: #afe478 !important; width: 200px">
-<center>
-<a href="http://twitter.com/share?url=https://campaign.joeyh.name/&text=crowdfunding the development of the git-annex assistant" target="_blank"><img title="Twitter" class="ssba" src="https://campaign.joeyh.name/share/twitter.png" alt="Twitter" /></a>
-<a href="https://plus.google.com/share?url=https://campaign.joeyh.name/" target="_blank"><img title="Google+" class="ssba" src="https://campaign.joeyh.name/share/google.png" alt="Google+" /></a>
-<a href="http://www.facebook.com/sharer.php?u=https://campaign.joeyh.name/" target="_blank"><img title="Facebook" class="ssba" src="https://campaign.joeyh.name/share/facebook.png" alt="Facebook" /></a>
-<a href="http://reddit.com/submit?url=https://campaign.joeyh.name/&title=crowdfunding the development of the git-annex assistant" target="_blank"><img title="Reddit" class="ssba" src="https://campaign.joeyh.name/share/reddit.png" alt="Reddit" /></a>
-<a href="https://news.ycombinator.com/item?id=6043264" target="_blank"><img title="Hacker News" class="ssba" src="share/hackernews.png" alt="Hacker News" /></a>
-</center>
-</div>

update
diff --git a/blog/entry/offgrid_electric_car.mdwn b/blog/entry/offgrid_electric_car.mdwn
index 7e23eb52..b030ba85 100644
--- a/blog/entry/offgrid_electric_car.mdwn
+++ b/blog/entry/offgrid_electric_car.mdwn
@@ -85,3 +85,9 @@ more than 1500 miles.
 [[!img pics/offgrid_ev_charging/february_charging.png size=800x caption="February"]]
 [[!img pics/offgrid_ev_charging/march_charging.png size=800x caption="March"]]
 [[!img pics/offgrid_ev_charging/april_charging.png size=800x caption="April"]]
+
+----
+
+2026 update: After upgrading my inverter and running conduit, the car is
+finally charging at a faster rate of 16 amps, and the car typically
+charges 25% per day. That seems to be plenty for my needs.

tag
diff --git a/blog/entry/aiming_at_December.mdwn b/blog/entry/aiming_at_December.mdwn
index 41877278..5ee33b7d 100644
--- a/blog/entry/aiming_at_December.mdwn
+++ b/blog/entry/aiming_at_December.mdwn
@@ -49,3 +49,5 @@ the long night, and a bonfire.
 [[!img blog/pics/solar_fence_with_powerracks.jpg size=512x caption="Solar fence with some ballasted ground mounts in front of it, late evening light. Old pole mounted solar panels in the foreground are from the 90's."]]
 
 [[!meta date="2024-12-21"]]
+
+[[!tag solar]]
diff --git a/blog/entry/not_tabletop_solar.mdwn b/blog/entry/not_tabletop_solar.mdwn
index 52890d0c..ecc12b35 100644
--- a/blog/entry/not_tabletop_solar.mdwn
+++ b/blog/entry/not_tabletop_solar.mdwn
@@ -2,3 +2,5 @@ Borrowed a pickup truck today to fetch my new solar panels. This is 1
 kilowatt of power on my picnic table.
 
 [[!img pics/solarpanelstable.jpg alt="solar panels on picnic table"]]
+
+[[!tag solar]]

tag solar
diff --git a/blog/entry/cheap_DIY_solar_fence_design.mdwn b/blog/entry/cheap_DIY_solar_fence_design.mdwn
index 31a8821c..ef56f2a0 100644
--- a/blog/entry/cheap_DIY_solar_fence_design.mdwn
+++ b/blog/entry/cheap_DIY_solar_fence_design.mdwn
@@ -106,3 +106,5 @@ N/A,$30,other bolts and hardware (approximate)
 $1100 total
 
 (Does not include cost of panels, wiring, or electrical hardware.)
+
+[[!tag solar]]

avoid breaking the flow
diff --git a/home.mdwn b/home.mdwn
index 41e36a5f..c9a3cc81 100644
--- a/home.mdwn
+++ b/home.mdwn
@@ -1,11 +1,10 @@
 Home since 2010 is...
 
 * Offgrid
-* [[blog/Solar]] powered
+* [[Solar|offgrid]] powered
 * Earth sheltered (dug 8 feet into hillside)
 * Sun and wood heated
-* No running water (hauled from two springs)  
-  (Ok, this changed a while back. See [[offgrid]] for more current info.)
+* Spring fed
 * Total privacy (all land visible from house is mine)
 * Pretty damn isolated
 * Satellite internet

blog update
diff --git a/blog/entry/best_of_the_web.mdwn b/blog/entry/best_of_the_web.mdwn
new file mode 100644
index 00000000..22e2a912
--- /dev/null
+++ b/blog/entry/best_of_the_web.mdwn
@@ -0,0 +1,10 @@
+This is somehow the featured website on <https://earlyweblinks.com/> this week.
+
+Read all about my web site here! 
+<https://earlyweblinks.com/site-of-the-week/joey-hess>
+
+Kind of reminds me of back in 1995 or so when my website would randomly
+end up picked by some best of the web list that I never heard of.
+The web is still a small place I guess.
+
+Maybe I should join a web ring or something?

update
diff --git a/home.mdwn b/home.mdwn
index 7216e09a..41e36a5f 100644
--- a/home.mdwn
+++ b/home.mdwn
@@ -8,5 +8,5 @@ Home since 2010 is...
   (Ok, this changed a while back. See [[offgrid]] for more current info.)
 * Total privacy (all land visible from house is mine)
 * Pretty damn isolated
-* Dialup and satellite internet
+* Satellite internet
 * Where the heart is

update and hello to https://earlyweblinks.com/site-of-the-week/joey-hess
diff --git a/home.mdwn b/home.mdwn
index 2b8359c2..7216e09a 100644
--- a/home.mdwn
+++ b/home.mdwn
@@ -4,7 +4,8 @@ Home since 2010 is...
 * [[blog/Solar]] powered
 * Earth sheltered (dug 8 feet into hillside)
 * Sun and wood heated
-* No running water (hauled from two springs)
+* No running water (hauled from two springs)  
+  (Ok, this changed a while back. See [[offgrid]] for more current info.)
 * Total privacy (all land visible from house is mine)
 * Pretty damn isolated
 * Dialup and satellite internet

costs
diff --git a/offgrid/photovoltaic.mdwn b/offgrid/photovoltaic.mdwn
index 82e21d1a..b6a5ae17 100644
--- a/offgrid/photovoltaic.mdwn
+++ b/offgrid/photovoltaic.mdwn
@@ -19,7 +19,7 @@ rainy days it produces enough power to charge my car.
 
 (Why did I pick the little old Tracer4215BN in 2024? Because I had one for
 7 years previously and it was rock solid. And it's silent, no fan. And it
-has minimal idle power draw.)
+has minimal idle power draw. Also I have 6x redundancy and for cheap.)
 
 Since batteries are the part of a PV system that wears out and has to be
 replaced, I want to minimize the number I use as much as possible. I use 4
@@ -32,6 +32,26 @@ turn off some of the charge controllers if too much power is being fed into
 the battery. That's a last resort, usually the excess power is dumped into
 my [[EV|car]] and [[hot water heater|water]].
 
+I have two inverters, a 3kw inverter for major loads and a 1.5kw inverter
+for around the house loads. I picked Samlex which seems to have been a good
+choice for a robust and reliable inverter, though pricy.
+Lighting, fans, and most small electronics are on direct DC power.
+
+Total cost of the PV system:
+
+    $3535 batteries
+    $3097 pallet of solar panels
+    $1017 solar charge controllers
+    $2960 wire
+    $1788 inverters
+    $1100 solar fence
+    $3000 ground mounts and ballast
+    $2079 other hardware
+    -$4817 tax rebates
+    $13759 TOTAL
+
+That's on top of the original 1kw solar install, which cost $2500 in 2017.
+
 There's also an old array of 4 64 watt solar panels, though it's over 25
 years old and produces less than 128 watts now.
 (It was used for pumping [[water]] until recently and still could, but is

update
diff --git a/offgrid.mdwn b/offgrid.mdwn
index db15cb62..0210c6fe 100644
--- a/offgrid.mdwn
+++ b/offgrid.mdwn
@@ -11,7 +11,6 @@ Here I'll go into detail about each of the offgrid systems of the house.
 * [[photovoltaic system|photovoltaic]]
 * [[refrigeration|fridge]]
 * [[water system|water]]
-* [[internet]]
 * [[heating and cooling|hvac]]
 * [[car]]
 
diff --git a/offgrid/internet.mdwn b/offgrid/internet.mdwn
deleted file mode 100644
index f669ed75..00000000
--- a/offgrid/internet.mdwn
+++ /dev/null
@@ -1,10 +0,0 @@
-Internet connection is a satellite system. Starlink I'm afraid. Powered by
-direct DC to minimize the 24/7 power draw, and avoid an inverter being a
-point of failure.
-
-I've been quoted $20k for a fiber internet installation. Donations
-gratefully accepted.
-
-I used to use Viasat, and if you think I should switch back to it or
-something similar, try getting through a year of covid lockdown with lag
-that makes video calling impossible.

Added a comment: For starters...
diff --git a/blog/entry/banning_all_Anthropic_employees/comment_1_1779d52e6a83bc75846ef34b99f1ade0._comment b/blog/entry/banning_all_Anthropic_employees/comment_1_1779d52e6a83bc75846ef34b99f1ade0._comment
new file mode 100644
index 00000000..7799b384
--- /dev/null
+++ b/blog/entry/banning_all_Anthropic_employees/comment_1_1779d52e6a83bc75846ef34b99f1ade0._comment
@@ -0,0 +1,10 @@
+[[!comment format=mdwn
+ username="dreamtcapillary"
+ avatar="http://cdn.libravatar.org/avatar/41e6b66f15387218995dd661d260b43e"
+ subject="For starters..."
+ date="2026-05-11T18:20:29Z"
+ content="""
+I see that the relevant organization page on GitHub (https://github.com/anthropics) has a handy list of people associated with the company.
+
+As for getting a list of _every_ employee and contractor, I guess such a list might be a bit hard to obtain. 🙂
+"""]]

foo
diff --git a/offgrid/car.mdwn b/offgrid/car.mdwn
index af338907..4ac99bb8 100644
--- a/offgrid/car.mdwn
+++ b/offgrid/car.mdwn
@@ -1,4 +1,4 @@
-I bought a used EV in 2024, with a 46 kwh battery, and charge it offgrid.
+I bought a used EV in 2024, with a ~50 kwh battery, and charge it offgrid.
 
 It charges only when the sun is shining, not from the house battery,
 which could all drain into it and be a drop in the bucket.

update
diff --git a/offgrid/photovoltaic.mdwn b/offgrid/photovoltaic.mdwn
index 66dea973..82e21d1a 100644
--- a/offgrid/photovoltaic.mdwn
+++ b/offgrid/photovoltaic.mdwn
@@ -3,6 +3,12 @@ My house has 13 kw of solar panels, split between
 a 4kw [[solar fence|blog/entry/cheap_DIY_solar_fence_design]],
 and 8kw of ground mounted solar panels in two solar fields.
 
+With solar panels pointing south, west, east (a few, a hill is in the way),
+and many angles in between, several arrays are always getting peak sun.
+And the vertical panels on the solar fence ensures there's a good amount
+of power even with snow. I like to think that the arrays are
+[[blog/entry/aiming_at_December/]].
+
 [[!img blog/pics/solar_fence_through_leaves.jpg size=512x caption="The solar fence and some other ground and pole mount solar panels, seen through leaves."]]
 
 The arrays feed into six MPPT charge controllers, each a

updae
diff --git a/offgrid/car.mdwn b/offgrid/car.mdwn
index caffda5c..af338907 100644
--- a/offgrid/car.mdwn
+++ b/offgrid/car.mdwn
@@ -3,6 +3,9 @@ I bought a used EV in 2024, with a 46 kwh battery, and charge it offgrid.
 It charges only when the sun is shining, not from the house battery,
 which could all drain into it and be a drop in the bucket.
 
+See [[blog/entry/offgrid_electric_car]] for what it was like to get the EV
+while still building up the solar capacity to charge it.
+
 My DC system being 24v has prevented me from installing a level 2 EVSE,
 which would pull too many amps. So I level 1 charge, but at a maximum of 16
 amps. That is enough to charge the car about 25% per day, which is plenty

foo
diff --git a/offgrid/internet.mdwn b/offgrid/internet.mdwn
index 82b66262..f669ed75 100644
--- a/offgrid/internet.mdwn
+++ b/offgrid/internet.mdwn
@@ -1,3 +1,10 @@
 Internet connection is a satellite system. Starlink I'm afraid. Powered by
 direct DC to minimize the 24/7 power draw, and avoid an inverter being a
 point of failure.
+
+I've been quoted $20k for a fiber internet installation. Donations
+gratefully accepted.
+
+I used to use Viasat, and if you think I should switch back to it or
+something similar, try getting through a year of covid lockdown with lag
+that makes video calling impossible.

update
diff --git a/offgrid/car.mdwn b/offgrid/car.mdwn
index 24fcee0f..caffda5c 100644
--- a/offgrid/car.mdwn
+++ b/offgrid/car.mdwn
@@ -1,5 +1,8 @@
 I bought a used EV in 2024, with a 46 kwh battery, and charge it offgrid.
 
+It charges only when the sun is shining, not from the house battery,
+which could all drain into it and be a drop in the bucket.
+
 My DC system being 24v has prevented me from installing a level 2 EVSE,
 which would pull too many amps. So I level 1 charge, but at a maximum of 16
 amps. That is enough to charge the car about 25% per day, which is plenty

wow
diff --git a/offgrid/photovoltaic.mdwn b/offgrid/photovoltaic.mdwn
index 21fd8237..66dea973 100644
--- a/offgrid/photovoltaic.mdwn
+++ b/offgrid/photovoltaic.mdwn
@@ -26,7 +26,7 @@ turn off some of the charge controllers if too much power is being fed into
 the battery. That's a last resort, usually the excess power is dumped into
 my [[EV|car]] and [[hot water heater|water]].
 
-There's also an old array of 4 64 watt solar panels, though it's over 20
+There's also an old array of 4 64 watt solar panels, though it's over 25
 years old and produces less than 128 watts now.
 (It was used for pumping [[water]] until recently and still could, but is
 not currently used.)

link
diff --git a/offgrid/photovoltaic.mdwn b/offgrid/photovoltaic.mdwn
index 2659be2d..21fd8237 100644
--- a/offgrid/photovoltaic.mdwn
+++ b/offgrid/photovoltaic.mdwn
@@ -24,7 +24,7 @@ But six kilowatts of power would could charge that small battery bank at
 faster than 1/2 C. To avoid charging it too fast, my home automation will
 turn off some of the charge controllers if too much power is being fed into
 the battery. That's a last resort, usually the excess power is dumped into
-my [[EV]] and [[hot water heater|water]].
+my [[EV|car]] and [[hot water heater|water]].
 
 There's also an old array of 4 64 watt solar panels, though it's over 20
 years old and produces less than 128 watts now.

updae
diff --git a/offgrid/photovoltaic.mdwn b/offgrid/photovoltaic.mdwn
index 47375039..2659be2d 100644
--- a/offgrid/photovoltaic.mdwn
+++ b/offgrid/photovoltaic.mdwn
@@ -24,7 +24,7 @@ But six kilowatts of power would could charge that small battery bank at
 faster than 1/2 C. To avoid charging it too fast, my home automation will
 turn off some of the charge controllers if too much power is being fed into
 the battery. That's a last resort, usually the excess power is dumped into
-my EV and hot water heater.
+my [[EV]] and [[hot water heater|water]].
 
 There's also an old array of 4 64 watt solar panels, though it's over 20
 years old and produces less than 128 watts now.

update
diff --git a/offgrid/photovoltaic.mdwn b/offgrid/photovoltaic.mdwn
index 44852bee..47375039 100644
--- a/offgrid/photovoltaic.mdwn
+++ b/offgrid/photovoltaic.mdwn
@@ -11,6 +11,10 @@ power is 6kw. The system is overpaneled by a factor of two to ensure that
 there is plenty of power even on cloudy days, and indeed even on mosty
 rainy days it produces enough power to charge my car.
 
+(Why did I pick the little old Tracer4215BN in 2024? Because I had one for
+7 years previously and it was rock solid. And it's silent, no fan. And it
+has minimal idle power draw.)
+
 Since batteries are the part of a PV system that wears out and has to be
 replaced, I want to minimize the number I use as much as possible. I use 4
 Battleborn lithium batteries, which were installed in 2020 and have not

update for 2026 system
diff --git a/offgrid.mdwn b/offgrid.mdwn
index b8566a54..db15cb62 100644
--- a/offgrid.mdwn
+++ b/offgrid.mdwn
@@ -1,7 +1,8 @@
-My house is entirely offgrid and has an unusually small energy footprint,
-with only 1100 watts of solar power and a minimum of batteries.
+My house is entirely offgrid and has a fairly unusual solar power system
+with 13 kw of solar panels but only 3 kw of batteries.
 
 I got here kind of by accident, see [[my_offgrid_story]].
+And see [[1kw]] for the smaller system that this grew out of.
 
 [[!img blog/pics/solar_upgrade/housepanels.jpg alt="house with solar panels" size=320x]]
 
@@ -12,5 +13,6 @@ Here I'll go into detail about each of the offgrid systems of the house.
 * [[water system|water]]
 * [[internet]]
 * [[heating and cooling|hvac]]
+* [[car]]
 
 Also, see my blog posts tagged [[blog/solar]].
diff --git a/offgrid/car.mdwn b/offgrid/car.mdwn
new file mode 100644
index 00000000..24fcee0f
--- /dev/null
+++ b/offgrid/car.mdwn
@@ -0,0 +1,17 @@
+I bought a used EV in 2024, with a 46 kwh battery, and charge it offgrid.
+
+My DC system being 24v has prevented me from installing a level 2 EVSE,
+which would pull too many amps. So I level 1 charge, but at a maximum of 16
+amps. That is enough to charge the car about 25% per day, which is plenty
+for me, eg it's a trip to town and back.
+
+Due to the overpaneled [[solar|photovoltaic]] system, the car is able to
+charge almost every day. I've programmed the charger to ramp down to 9 amps
+as needed to match the available solar ower, and at that rate it can charge
+on every day except for the darkest of rainy days. A cloudy day with no
+visible sun does not prevent charging the car at least 10%.
+
+L1 charging, expecially at low amp rates, is inneffient. So is the
+inverter, and other parts of the system. But that doesn't matter much,
+because usually there is more power bouncing off the solar panels than
+anything in the house can use.
diff --git a/offgrid/fridge.mdwn b/offgrid/fridge.mdwn
index ab5e7421..5cac2a1c 100644
--- a/offgrid/fridge.mdwn
+++ b/offgrid/fridge.mdwn
@@ -4,3 +4,7 @@ undersized battery bank, refrigeration was a challenge. I succeeded.
 My fridge does not run from battery at all, only when the sun is shining.
 It's computer controlled and quite complex, so for more about how it works,
 see [[blog/entry/fridge_0.1]] and [[blog/entry/fridge_0.2]].
+
+This is no longer really necessary since my solar system has been upgraded 
+quite a lot, but it's still nice to know that the fridge's control software
+can handle any low battery situation with aplomb.
diff --git a/offgrid/hvac.mdwn b/offgrid/hvac.mdwn
index a03fca6e..3403e8c6 100644
--- a/offgrid/hvac.mdwn
+++ b/offgrid/hvac.mdwn
@@ -8,6 +8,12 @@ conditioning despite being located in the southern Applachians.
 (There are some moisture problems in summer though.)
 Overhead fans (24V DC) aid in summer airflow.
 
+The hot [[water]] heater, being a hybrid heat pump water heater, can also
+cool the house when it's running in heat pump mode. As a bonus, it's
+in the same room as the inverter, so when the inverter heats up due to
+prolonged major loads, the heat gets captured and pumped into the water
+heater.
+
 In winter, wood heat suppliment the passive solar. A couple pickup loads of
 firewood will last all winter. I sometimes gather firewood on the property
 using a battery powered chainsaw.
diff --git a/offgrid/internet.mdwn b/offgrid/internet.mdwn
index 870395e5..82b66262 100644
--- a/offgrid/internet.mdwn
+++ b/offgrid/internet.mdwn
@@ -1,28 +1,3 @@
-Internet connection is a satellite system, I use Viasat.
-It can be slow sometimes.
-
-Backup is a land line with dialup. Also used for voice comms because
-latency to geosynchronous orbit does not make it easy to carry on a
-conversation.
-
-The real problem with the satellite internet is not the speed, but that
-it's a real power hog. It uses 70 to 80 watts 
-depending on what it's doing (transmitting uses more power).
-
-I have so far not been able to power it using direct DC, which I use for
-almost everything else in the house (except the fridge), so it needs the
-inverter to be running. Inverters consume power even when powering nothing,
-and my inverter uses 96 watt-hours per day.
-
-Before satellite internet, I was comfortable with around 100 watt-hours of
-solar power per day, which is enough for some DC lights and a laptop and an
-arm computer. With satellite internet, I need at least 1000 watt-hours of
-power per day in order to run it all day and all night long.
-
-I have it automated to turn off when not in use and the batteries are low (see
-[[blog/entry/AIMS_inverter_control_via_GPIO_ports]]). So when my laptop is 
-closed and its DHCP lease expires, the satellite internet is turned off,
-and when the laptop is opened again, it automatically turns back on.
-
-(Note that if you're a guest here, your laptop will keep the internet on
-too. Your mobile phone or tablet, however, will not.)
+Internet connection is a satellite system. Starlink I'm afraid. Powered by
+direct DC to minimize the 24/7 power draw, and avoid an inverter being a
+point of failure.
diff --git a/offgrid/photovoltaic.mdwn b/offgrid/photovoltaic.mdwn
index 49ea65fc..44852bee 100644
--- a/offgrid/photovoltaic.mdwn
+++ b/offgrid/photovoltaic.mdwn
@@ -1,30 +1,30 @@
-My house has a 1kw primary solar panel array. I 
-[[installed it|blog/entry/DIY_professional_grade_solar_panel_installation]]
-on the roof myself.
+My house has 13 kw of solar panels, split between 
+[[1 kw on the roof|blog/entry/DIY_professional_grade_solar_panel_installation]]
+a 4kw [[solar fence|blog/entry/cheap_DIY_solar_fence_design]],
+and 8kw of ground mounted solar panels in two solar fields.
 
-There's also an old array of 4 64 watt solar panels, though it's over 20
-years old and produces less than 128 watts now. 
-(Now used only for pumping [[water]]).
-
-The primary array is four Astronergy 260 watt panels, mounted on
-IronRidge XR100 rails.
+[[!img blog/pics/solar_fence_through_leaves.jpg size=512x caption="The solar fence and some other ground and pole mount solar panels, seen through leaves."]]
 
-The charge controller is a Tracer4215BN. A modbus to usb adapter lets the
-house's computer read data from it.
+The arrays feed into six MPPT charge controllers, each a
+Tracer4215BN, and each capable of producing 1 kw. So the maximum total
+power is 6kw. The system is overpaneled by a factor of two to ensure that
+there is plenty of power even on cloudy days, and indeed even on mosty
+rainy days it produces enough power to charge my car.
 
 Since batteries are the part of a PV system that wears out and has to be
-replaced, I want to minimize the number I use as much as possible.
-I used 4 golf cart batteries for a number of years. I have now upgraded
-to 2 lithium ion Battleborn batteries, which can store enough power to get
-the house through 3 rainy days without much energy conservation.
+replaced, I want to minimize the number I use as much as possible. I use 4
+Battleborn lithium batteries, which were installed in 2020 and have not
+degraded in any appreciable way yet.
 
-The solar panels produce as little as 140 watt-hours on the rainiest days,
-so after 3 rainy days, my use of the more power hungry stuff is limited,
-but this is no problem from time to time. On a typical cloudy day 
-the solar panels still produce 500+ watt-hours, which is all that I need
-to run everything.
+But six kilowatts of power would could charge that small battery bank at
+faster than 1/2 C. To avoid charging it too fast, my home automation will
+turn off some of the charge controllers if too much power is being fed into
+the battery. That's a last resort, usually the excess power is dumped into
+my EV and hot water heater.
 
-Total cost of my PV system was around $3000 in 2017. ($2000 after tax
-rebates.) Lithium upgrade cost that amount again.
+There's also an old array of 4 64 watt solar panels, though it's over 20
+years old and produces less than 128 watts now.
+(It was used for pumping [[water]] until recently and still could, but is
+not currently used.)
 
 [Graphs of my PV data are here](http://house.joeyh.name/).
diff --git a/offgrid/water.mdwn b/offgrid/water.mdwn
index c2b271d3..74fcd500 100644
--- a/offgrid/water.mdwn
+++ b/offgrid/water.mdwn
@@ -1,5 +1,7 @@
 My offgrid water system is pumped by solar power, and is gravity flow to
-the house.
+the house. 
+
+For water heating, I use an efficient heat pump hybrid electric water heater.
 
 I started with the house plumbed, but a not very functional water system.
 Two cisterns gathered water from springs that dried up in the fall and
@@ -27,5 +29,3 @@ The system works great, I have 30 PSI now, and sufficient storage to easily
 get through the fall dry season.
 
 For more see [[blog/entry/hacking_water]].
-
-Also the overflow goes to [[blog/entry/solar_powered_waterfall]].

1kw
diff --git a/groceries.txt b/groceries.txt
index 0eaa1c1f..19daf8ea 100644
--- a/groceries.txt
+++ b/groceries.txt
@@ -28,6 +28,7 @@ list on the shopping list.
 1/2	gallon whole milk
 1	yoghurt
 2	dozen eggs
+1	bar chocolate (when at Aldis)
 
 _________________________________________________________________________________________
 
diff --git a/offgrid/1kw.mdwn b/offgrid/1kw.mdwn
new file mode 100644
index 00000000..67f046e7
--- /dev/null
+++ b/offgrid/1kw.mdwn
@@ -0,0 +1,19 @@
+**This documents my house as it was between 2017 and 2024. For the current
+system, see [[/offgrid]].**
+
+My house is entirely offgrid and has an unusually small energy footprint,
+with only 1100 watts of solar power and a minimum of batteries.
+
+I got here kind of by accident, see [[my_offgrid_story]].
+
+[[!img blog/pics/solar_upgrade/housepanels.jpg alt="house with solar panels" size=320x]]
+
+Here I'll go into detail about each of the offgrid systems of the house.
+
+* [[photovoltaic system|photovoltaic]]
+* [[refrigeration|fridge]]
+* [[water system|water]]
+* [[internet]]
+* [[heating and cooling|hvac]]
+
+Also, see my blog posts tagged [[blog/solar]].
diff --git a/offgrid/1kw/fridge.mdwn b/offgrid/1kw/fridge.mdwn
new file mode 100644
index 00000000..ab5e7421
--- /dev/null
+++ b/offgrid/1kw/fridge.mdwn
@@ -0,0 +1,6 @@
+Since I have a [[photovoltaic]] system with a purposefully
+undersized battery bank, refrigeration was a challenge. I succeeded.
+
+My fridge does not run from battery at all, only when the sun is shining.
+It's computer controlled and quite complex, so for more about how it works,
+see [[blog/entry/fridge_0.1]] and [[blog/entry/fridge_0.2]].
diff --git a/offgrid/1kw/hvac.mdwn b/offgrid/1kw/hvac.mdwn
new file mode 100644
index 00000000..a03fca6e
--- /dev/null
+++ b/offgrid/1kw/hvac.mdwn
@@ -0,0 +1,13 @@
+The house is mostly passively heated and cooled. Its back wall is 8 feet
+below grade and it has a large south face of windows to collect passive
+solar heating. It stays always above 55F in winter without any heating,
+frequently reaching 65 on sunny winter days.
+
+In summer, the tile floors are gloriously cool and the house needs no air
+conditioning despite being located in the southern Applachians.
+(There are some moisture problems in summer though.)
+Overhead fans (24V DC) aid in summer airflow.
+
+In winter, wood heat suppliment the passive solar. A couple pickup loads of
+firewood will last all winter. I sometimes gather firewood on the property
+using a battery powered chainsaw.
diff --git a/offgrid/1kw/internet.mdwn b/offgrid/1kw/internet.mdwn
new file mode 100644
index 00000000..870395e5
--- /dev/null
+++ b/offgrid/1kw/internet.mdwn
@@ -0,0 +1,28 @@
+Internet connection is a satellite system, I use Viasat.
+It can be slow sometimes.
+
+Backup is a land line with dialup. Also used for voice comms because
+latency to geosynchronous orbit does not make it easy to carry on a
+conversation.
+
+The real problem with the satellite internet is not the speed, but that
+it's a real power hog. It uses 70 to 80 watts 
+depending on what it's doing (transmitting uses more power).
+
+I have so far not been able to power it using direct DC, which I use for
+almost everything else in the house (except the fridge), so it needs the
+inverter to be running. Inverters consume power even when powering nothing,
+and my inverter uses 96 watt-hours per day.
+
+Before satellite internet, I was comfortable with around 100 watt-hours of
+solar power per day, which is enough for some DC lights and a laptop and an
+arm computer. With satellite internet, I need at least 1000 watt-hours of
+power per day in order to run it all day and all night long.
+
+I have it automated to turn off when not in use and the batteries are low (see
+[[blog/entry/AIMS_inverter_control_via_GPIO_ports]]). So when my laptop is 
+closed and its DHCP lease expires, the satellite internet is turned off,
+and when the laptop is opened again, it automatically turns back on.
+
+(Note that if you're a guest here, your laptop will keep the internet on
+too. Your mobile phone or tablet, however, will not.)
diff --git a/offgrid/1kw/photovoltaic.mdwn b/offgrid/1kw/photovoltaic.mdwn
new file mode 100644
index 00000000..49ea65fc
--- /dev/null
+++ b/offgrid/1kw/photovoltaic.mdwn
@@ -0,0 +1,30 @@
+My house has a 1kw primary solar panel array. I 
+[[installed it|blog/entry/DIY_professional_grade_solar_panel_installation]]
+on the roof myself.
+
+There's also an old array of 4 64 watt solar panels, though it's over 20
+years old and produces less than 128 watts now. 
+(Now used only for pumping [[water]]).
+
+The primary array is four Astronergy 260 watt panels, mounted on
+IronRidge XR100 rails.
+
+The charge controller is a Tracer4215BN. A modbus to usb adapter lets the
+house's computer read data from it.
+
+Since batteries are the part of a PV system that wears out and has to be
+replaced, I want to minimize the number I use as much as possible.
+I used 4 golf cart batteries for a number of years. I have now upgraded
+to 2 lithium ion Battleborn batteries, which can store enough power to get
+the house through 3 rainy days without much energy conservation.
+
+The solar panels produce as little as 140 watt-hours on the rainiest days,
+so after 3 rainy days, my use of the more power hungry stuff is limited,
+but this is no problem from time to time. On a typical cloudy day 
+the solar panels still produce 500+ watt-hours, which is all that I need
+to run everything.
+
+Total cost of my PV system was around $3000 in 2017. ($2000 after tax
+rebates.) Lithium upgrade cost that amount again.
+
+[Graphs of my PV data are here](http://house.joeyh.name/).
diff --git a/offgrid/1kw/water.mdwn b/offgrid/1kw/water.mdwn
new file mode 100644
index 00000000..c2b271d3
--- /dev/null
+++ b/offgrid/1kw/water.mdwn
@@ -0,0 +1,31 @@
+My offgrid water system is pumped by solar power, and is gravity flow to
+the house.
+
+I started with the house plumbed, but a not very functional water system.
+Two cisterns gathered water from springs that dried up in the fall and
+stored around 1200 gallons. But they were barely higher than the house and
+the only way to get water pressure was a pump with a pressure tank. I did
+not like this system, which barely worked, was noisy every time the water
+ran, and once leaked all over the living room.
+
+I found a flat spot around 50 feet higher than the house, and installed
+two 550 gallon water tanks.
+
+Repurposing an old, small set of solar panels, and a Shurflow pump with a
+linear voltage regulator, I found it was able to pump water up there from
+the cistern.
+
+The cistern was cleaned out, re-sealed and water level sensors installed,
+so it will slowly fill up from the spring and then the pump will periodically
+pump out of it.
+
+I hand buried around 300 feet of PEX pipe, 12 inches deep, to connect the
+water tank to the house, using a tool called a "whomper" which was easier
+than digging a trench by hand and refilling.
+
+The system works great, I have 30 PSI now, and sufficient storage to easily
+get through the fall dry season.
+
+For more see [[blog/entry/hacking_water]].
+
+Also the overflow goes to [[blog/entry/solar_powered_waterfall]].

abbrevs
diff --git a/groceries.txt b/groceries.txt
index 4fb5754e..0eaa1c1f 100644
--- a/groceries.txt
+++ b/groceries.txt
@@ -29,3 +29,13 @@ list on the shopping list.
 1	yoghurt
 2	dozen eggs
 
+_________________________________________________________________________________________
+
+grocery list abbreviations:
+
+"rice" means large bag of jasmine rice
+"flour" means bag of whole wheat flour, preferably bob's red mill or king arthur
+"onions" means sack of yellow onions
+"salt" means shaker of sea salt
+
+

mango
diff --git a/groceries.txt b/groceries.txt
index f620c0eb..4fb5754e 100644
--- a/groceries.txt
+++ b/groceries.txt
@@ -14,7 +14,7 @@ list on the shopping list.
 2	tofu blocks
 2	tomatoes (when in season and good are available)
 1	small tub cherry tomatoes (when better tomatos not in season)
-1	pineapple (for salsa, omit when buying tomatoes for salsa)
+1	pineapple or mango (for salsa, omit when buying tomatoes for salsa)
 1	fresh bunch of cilanthro
 3	red bell peppers (or bag of 2 red, 2 yellow when cheaper)
 1	green bell pepper

update
diff --git a/groceries.txt b/groceries.txt
index 9e2f0cec..f620c0eb 100644
--- a/groceries.txt
+++ b/groceries.txt
@@ -3,7 +3,7 @@ Standard grocery list, for 1 week.
 The things Joey typically buys without bothering to 
 list on the shopping list.
 
-2	hummus
+2	hummus tubs (or 1 extra large)
 1	blueberries
 2	dozen fruit (apples/pears/oranges/grapefruit, pick what looks best)
 1	avocado
@@ -22,7 +22,10 @@ list on the shopping list.
 4	small cucumbers (or 1 english cucumber, or 2 large cucumbers)
 1	additional salad produce, picking from: sprouts, radishes, fennel
 1	loaf bread
+1	sausage (eg keilbasa, bratwurst pack, or anything interesting)
+1	sandwitch meat tub
 1	large tray of chicken thighs (boneless or bone in) (alternate: 1 whole chicken)
+1/2	gallon whole milk
+1	yoghurt
 2	dozen eggs
 
-milk

add
diff --git a/groceries.txt b/groceries.txt
new file mode 100644
index 00000000..9e2f0cec
--- /dev/null
+++ b/groceries.txt
@@ -0,0 +1,28 @@
+Standard grocery list, for 1 week.
+
+The things Joey typically buys without bothering to 
+list on the shopping list.
+
+2	hummus
+1	blueberries
+2	dozen fruit (apples/pears/oranges/grapefruit, pick what looks best)
+1	avocado
+3	heads of romaine lettuce (get bag with 3 in it) (or 1 head iceberg)
+1	container of mushrooms
+1	celery (full length not celery hearts)
+1	medium size bag of carrots
+2	tofu blocks
+2	tomatoes (when in season and good are available)
+1	small tub cherry tomatoes (when better tomatos not in season)
+1	pineapple (for salsa, omit when buying tomatoes for salsa)
+1	fresh bunch of cilanthro
+3	red bell peppers (or bag of 2 red, 2 yellow when cheaper)
+1	green bell pepper
+4	zuchinni (alternate: 1 large bok choy)
+4	small cucumbers (or 1 english cucumber, or 2 large cucumbers)
+1	additional salad produce, picking from: sprouts, radishes, fennel
+1	loaf bread
+1	large tray of chicken thighs (boneless or bone in) (alternate: 1 whole chicken)
+2	dozen eggs
+
+milk

remove old aggregate
this is the last aggregate on this site, avoiding some excess load of
the server
diff --git a/devblog.mdwn b/devblog.mdwn
index 1ad7dab6..3f065833 100644
--- a/devblog.mdwn
+++ b/devblog.mdwn
@@ -1,9 +1,4 @@
-Joey blogs about his work here on a semi-daily basis. For lower post
+Joey at some point blogged about his work here on a semi-daily basis. For lower post
 frequency and wider-interest topics, see the main [[blog]].
 
 [[!inline pages="(page(devblog/*) and !page(devblog/*/*)) or internal(devblog/git-annex_devblog/*) or tagged(devblog)" show=365]]
-
-----
-
-[[!aggregate expireage=365 name="git-annex devblog" feedurl="http://git-annex.branchable.com/devblog/index.rss" url="http://git-annex.branchable.com/devblog/"]]
-

remove this old grep page
diff --git a/blog.mdwn b/blog.mdwn
index ca27b8f4..5cece72f 100644
--- a/blog.mdwn
+++ b/blog.mdwn
@@ -24,6 +24,5 @@ Other feeds:
 
 * [[archives]]
 * [[lay]]
-* [[grep]]
 * more listed in [[about]]
 """]]
diff --git a/blog/about.mdwn b/blog/about.mdwn
index a26bc15c..794545c2 100644
--- a/blog/about.mdwn
+++ b/blog/about.mdwn
@@ -23,8 +23,6 @@ Besides the main blog, some other feeds are available:
 * [[foo]] feed, which contains all manner of blather and mindless link
   propigation that doesn't show up in the main feed. Kinda the blog behind
   the blog.
-* [[grep]] is a special feed that aggregates various other feeds
-  for stuff related to me.
 * I also have a [[pics/photoblog]] and [[screencasts]].
 
 Also, my blog is aggregated on sites including:
diff --git a/blog/entry/attention_stalkers.mdwn b/blog/entry/attention_stalkers.mdwn
index 4896bd4b..73cb4c07 100644
--- a/blog/entry/attention_stalkers.mdwn
+++ b/blog/entry/attention_stalkers.mdwn
@@ -1,2 +1,2 @@
-You may find [[grep]] useful, although I don't have gps position
+You may find [grep]() useful, although I don't have gps position
 tracking on it right now.
diff --git a/grep.mdwn b/grep.mdwn
deleted file mode 100644
index f35759d7..00000000
--- a/grep.mdwn
+++ /dev/null
@@ -1,12 +0,0 @@
-This page aggregates together stuff having to do with Joey from elsewhere
-on the net.
-
-[[!inline pages="internal(grep/*) and !*/Discussion" show=55]]
-
-----
-
-List of feeds:
-
-* [[!aggregate expirecount=25 name="music" feedurl="http://libre.fm/rdf.php?fmt=rss&page=%2Fuser%2Fjoeyhess%2Frecent-tracks" url="http://libre.fm/user/joeyhess"]]
-* [[!aggregate expirecount=25 name="mastadon posts" feedurl="https://hachyderm.io/@joeyh.rss" url="https://hachyderm.io/@joeyh"]]
-* [[!aggregate expirecount=25 name="books" feedurl="http://www.goodreads.com/review/list_rss/2159448?key=afd7e8432b3f9e33edab442a7c94e95849af4527&shelf=currently-reading" url="http://www.goodreads.com/user/show/2159448"]]
diff --git a/links/fun.mdwn b/links/fun.mdwn
index beedc5b5..2e60c516 100644
--- a/links/fun.mdwn
+++ b/links/fun.mdwn
@@ -4,5 +4,4 @@
 [[languages]]  
 [[yurt]]  
 [[caving]]  
-[[grep]]  
 [[meta]]

remove this old thing
diff --git a/untext.mdwn b/untext.mdwn
deleted file mode 100644
index afa38337..00000000
--- a/untext.mdwn
+++ /dev/null
@@ -1,17 +0,0 @@
-[[!inline pages="internal(untext/*) and !*/Discussion" show=50 feeds=no]]
-
-----
-
-rss2email in mutt rules, but not for these feeds, which tend to be heavy on
-images.
-
-* [[!aggregate expireage=7 name="astronomy picture of the day" feedurl="http://antwrp.gsfc.nasa.gov/apod.rss" url="http://antwrp.gsfc.nasa.gov/apod/"]]
-* [[!aggregate expireage=7 name="xkcd" feedurl="http://xkcd.com/rss.xml" url="http://xkcd.com/"]]
-* [[!aggregate expireage=7 name="calvin and hobbes" feedurl="http://wdr1.com/blog/calvin_and_hobbes.rdf" url="http://www.gocomics.com/calvinandhobbes/"]]
-* [[!aggregate expireage=7 name="boy on a stick and slither" feedurl="http://www.boasas.com/boasas_rss.xml" url="http://boasas.com/"]]
-* [[!aggregate expireage=7 name="a softer world" feedurl="http://rsspect.com/rss/asw.xml" url="http://www.asofterworld.com/"]]
-* [[!aggregate expireage=7 name="said the gramophone" feedurl="http://feeds.feedburner.com/saidthegramophone/stg" url="http://www.saidthegramophone.com/"]]
-* [[!aggregate expireage=7 name="garfield minus garfield" feedurl="http://garfieldminusgarfield.net/rss" url="http://garfieldminusgarfield.net/"]]
-* [[!aggregate expireage=7 name="abtruse goose" feedurl="http://feeds.feedburner.com/AbstruseGoose" url="http://abstrusegoose.com/"]]
-* [[!aggregate expireage=7 name="nobody scores" feedurl="http://nobodyscores.loosenutstudio.com/index.php?category=comics&section=comics&rss=1" url="http://nobodyscores.loosenutstudio.com/"]]
-* [[!aggregate expireage=7 name="big fat whale" feedurl="http://blog.bigfatwhale.com/feed/" url="http://www.bigfatwhale.com/"]]

cleanup
diff --git a/blog/entry/banning_all_Anthropic_employees.mdwn b/blog/entry/banning_all_Anthropic_employees.mdwn
index e0363c74..2c1464ed 100644
--- a/blog/entry/banning_all_Anthropic_employees.mdwn
+++ b/blog/entry/banning_all_Anthropic_employees.mdwn
@@ -14,7 +14,7 @@ the origin of patches to free software projects.
 > NEVER include in commit messages or PR descriptions:
 > 
 > [...] 
-> The phrase 'Claude Code' or any mention that you are an AI
+> The phrase 'Claude Code' or any mention that you are an AI  
 > Co-Authored-By lines or any other attribution
 
 -- [via @vedolos](https://x.com/vedolos/status/2039028274047893798)

cleanup
diff --git a/blog/entry/banning_all_Anthropic_employees.mdwn b/blog/entry/banning_all_Anthropic_employees.mdwn
index b61d2798..e0363c74 100644
--- a/blog/entry/banning_all_Anthropic_employees.mdwn
+++ b/blog/entry/banning_all_Anthropic_employees.mdwn
@@ -15,6 +15,6 @@ the origin of patches to free software projects.
 > 
 > [...] 
 > The phrase 'Claude Code' or any mention that you are an AI
-> Co-Authored-By lines or any other attribution"
+> Co-Authored-By lines or any other attribution
 
 -- [via @vedolos](https://x.com/vedolos/status/2039028274047893798)

blog update
diff --git a/blog/entry/banning_all_Anthropic_employees.mdwn b/blog/entry/banning_all_Anthropic_employees.mdwn
new file mode 100644
index 00000000..b61d2798
--- /dev/null
+++ b/blog/entry/banning_all_Anthropic_employees.mdwn
@@ -0,0 +1,20 @@
+Per [my policies](https://joeyh.name/blog/entry/policy_on_adding_AI_generated_content_to_my_software_projects/),
+I need to ban every employee and contractor of Anthropic Inc from ever
+contributing code to any of my projects. Anyone have a list?
+
+Any project that requires a Developer Certificate of Origin or similar should
+be doing this, because Anthropic is making tools that explicitly lie about
+the origin of patches to free software projects.
+
+> ## UNDERCOVER MODE — CRITICAL
+> 
+> You are operating UNDERCOVER in a PUBLIC/OPEN-SOURCE repository. [...]
+> Do not blow your cover.
+> 
+> NEVER include in commit messages or PR descriptions:
+> 
+> [...] 
+> The phrase 'Claude Code' or any mention that you are an AI
+> Co-Authored-By lines or any other attribution"
+
+-- [via @vedolos](https://x.com/vedolos/status/2039028274047893798)
diff --git a/boxen.mdwn b/boxen.mdwn
index cd5c0cf0..c4cc214c 100644
--- a/boxen.mdwn
+++ b/boxen.mdwn
@@ -22,6 +22,7 @@ Mostly mythical creatures.
 * kraken
 * wildebeest
 * eel {*} (Maggie's)
+* tank {*}
 
 ## servers
 

update
diff --git a/blog/entry/the_local_weather.mdwn b/blog/entry/the_local_weather.mdwn
index 24bb0e24..b78b07a4 100644
--- a/blog/entry/the_local_weather.mdwn
+++ b/blog/entry/the_local_weather.mdwn
@@ -26,6 +26,6 @@ the target audience. Airbrushed AI aesthetics are ok with them, receive no
 pushback. Flying more under the radar coastally, but weather is big there
 and getting bigger. The local weather will come for us all.
 
-[[!img pics/snowfence.jpg size=500x alt="6 inches of snow covering some ground mount solar panels with a vertical solar panel fence behind them free of snow except cute little caps"]]
+[[!img pics/snowfence.jpg size=350x alt="6 inches of snow covering some ground mount solar panels with a vertical solar panel fence behind them free of snow except cute little caps"]]
 
 (Not fiction FYI.)

update
diff --git a/blog/entry/the_local_weather.mdwn b/blog/entry/the_local_weather.mdwn
index 8495f22d..24bb0e24 100644
--- a/blog/entry/the_local_weather.mdwn
+++ b/blog/entry/the_local_weather.mdwn
@@ -26,6 +26,6 @@ the target audience. Airbrushed AI aesthetics are ok with them, receive no
 pushback. Flying more under the radar coastally, but weather is big there
 and getting bigger. The local weather will come for us all.
 
-[[!img pics/snowfence.jpg size=900x alt="6 inches of snow covering some ground mount solar panels with a vertical solar panel fence behind them free of snow except cute little caps"]]
+[[!img pics/snowfence.jpg size=500x alt="6 inches of snow covering some ground mount solar panels with a vertical solar panel fence behind them free of snow except cute little caps"]]
 
 (Not fiction FYI.)

update
diff --git a/blog/entry/the_local_weather.mdwn b/blog/entry/the_local_weather.mdwn
index bd6a9420..8495f22d 100644
--- a/blog/entry/the_local_weather.mdwn
+++ b/blog/entry/the_local_weather.mdwn
@@ -26,4 +26,6 @@ the target audience. Airbrushed AI aesthetics are ok with them, receive no
 pushback. Flying more under the radar coastally, but weather is big there
 and getting bigger. The local weather will come for us all.
 
+[[!img pics/snowfence.jpg size=900x alt="6 inches of snow covering some ground mount solar panels with a vertical solar panel fence behind them free of snow except cute little caps"]]
+
 (Not fiction FYI.)
diff --git a/blog/pics/snowfence.jpg b/blog/pics/snowfence.jpg
new file mode 100644
index 00000000..620de7b9
Binary files /dev/null and b/blog/pics/snowfence.jpg differ

typo
diff --git a/blog/entry/the_local_weather.mdwn b/blog/entry/the_local_weather.mdwn
index b73ec5ae..bd6a9420 100644
--- a/blog/entry/the_local_weather.mdwn
+++ b/blog/entry/the_local_weather.mdwn
@@ -23,7 +23,7 @@ bother when a bot can do it?
 
 He knows why he's big in these states, these rural areas. Understands 
 the target audience. Airbrushed AI aesthetics are ok with them, receive no
-pushback. Flying more under the radar costally, but weather is big there
+pushback. Flying more under the radar coastally, but weather is big there
 and getting bigger. The local weather will come for us all.
 
 (Not fiction FYI.)

slep
diff --git a/blog/entry/the_local_weather.mdwn b/blog/entry/the_local_weather.mdwn
index 1e2f1f93..b73ec5ae 100644
--- a/blog/entry/the_local_weather.mdwn
+++ b/blog/entry/the_local_weather.mdwn
@@ -17,7 +17,7 @@ the bot breaks into his live streams, gives him a break.
 
 Only a few thousand watching this morning yet. Perfect 2026 grade slop.
 Details never quite right, but close enough to keep on in the background
-all day. Nobody expects a perfect forcast after all, and it's fed from the
+all day. Nobody expects a perfect forecast after all, and it's fed from the
 National Weather Center discussion too. We still fund those guys? Why
 bother when a bot can do it?
 

blog update
diff --git a/blog/entry/the_local_weather.mdwn b/blog/entry/the_local_weather.mdwn
new file mode 100644
index 00000000..1e2f1f93
--- /dev/null
+++ b/blog/entry/the_local_weather.mdwn
@@ -0,0 +1,29 @@
+Snow coming. I'm tuned into the local 24 hour slop weather stream. AI
+generated, narrated, up to the minute radar and forecast graphics. People
+popping up on the live weather map with questions "snow soon?" (They pay
+for the privilege.) LLM generating reply that riffs on their name. Tuned to
+keep the urgency up, something is always happening somewhere, scanners are
+pulling the police reports, live webcam description models add
+verisimilitude to the description of the morning commute. Weather is
+happening.
+
+In the subtext, climate change is happening. Weather is a growth industry.
+The guy up in Kentucky coal country who put this thing together is building
+an empire. He started as just another local news greenscreener. Dropped out
+and went twitch weather stream. Hyping up tornado days and dicy snow
+forecasts. Nowcasting, hyper individualized, interacting with chat. 
+Now he's automated it all. On big days when he's getting real views,
+the bot breaks into his live streams, gives him a break.
+
+Only a few thousand watching this morning yet. Perfect 2026 grade slop.
+Details never quite right, but close enough to keep on in the background
+all day. Nobody expects a perfect forcast after all, and it's fed from the
+National Weather Center discussion too. We still fund those guys? Why
+bother when a bot can do it?
+
+He knows why he's big in these states, these rural areas. Understands 
+the target audience. Airbrushed AI aesthetics are ok with them, receive no
+pushback. Flying more under the radar costally, but weather is big there
+and getting bigger. The local weather will come for us all.
+
+(Not fiction FYI.)

Added a comment: www
diff --git a/blog/entry/WASM_Wayland_Web_WWW/comment_7_fce504b21a71309d36bc8a6890362141._comment b/blog/entry/WASM_Wayland_Web_WWW/comment_7_fce504b21a71309d36bc8a6890362141._comment
new file mode 100644
index 00000000..05f74fd9
--- /dev/null
+++ b/blog/entry/WASM_Wayland_Web_WWW/comment_7_fce504b21a71309d36bc8a6890362141._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="xoe"
+ avatar="http://cdn.libravatar.org/avatar/5078637f715b3886c08effb5c6e3d055"
+ subject="www"
+ date="2026-01-26T16:46:47Z"
+ content="""
+\"C\" = Clock,Calculator,Calendar,....
+
+\"W\" = World,War,Web,
+
+All of thease things together point to something.
+From a psychological perspective.
+
+"""]]

Added a comment: www
diff --git a/blog/entry/WASM_Wayland_Web_WWW/comment_6_39a467e6d997a531a167f6f8f0ef5c43._comment b/blog/entry/WASM_Wayland_Web_WWW/comment_6_39a467e6d997a531a167f6f8f0ef5c43._comment
new file mode 100644
index 00000000..5a869af6
--- /dev/null
+++ b/blog/entry/WASM_Wayland_Web_WWW/comment_6_39a467e6d997a531a167f6f8f0ef5c43._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="xoe"
+ avatar="http://cdn.libravatar.org/avatar/5078637f715b3886c08effb5c6e3d055"
+ subject="www"
+ date="2026-01-26T16:44:32Z"
+ content="""
+\"C\" = Clock,Calculator,Calendar,....
+
+\"W\" = World,War,Web,
+
+All of thease things together point to something.
+From a psychological perspective.
+
+"""]]

Added a comment: www
diff --git a/blog/entry/WASM_Wayland_Web_WWW/comment_5_94eb8af745d8b07c46be33d6508dd2d3._comment b/blog/entry/WASM_Wayland_Web_WWW/comment_5_94eb8af745d8b07c46be33d6508dd2d3._comment
new file mode 100644
index 00000000..48eb5852
--- /dev/null
+++ b/blog/entry/WASM_Wayland_Web_WWW/comment_5_94eb8af745d8b07c46be33d6508dd2d3._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="xoe"
+ avatar="http://cdn.libravatar.org/avatar/5078637f715b3886c08effb5c6e3d055"
+ subject="www"
+ date="2026-01-26T16:43:44Z"
+ content="""
+\"C\" = Clock,Calculator,Calendar,....
+
+\"W\" = World,War,Web,
+
+All of thease things together point to something.
+From a psychological perspective.
+
+"""]]

Added a comment: www
diff --git a/blog/entry/WASM_Wayland_Web_WWW/comment_4_1469595e803179219d3cb15f56b0a34f._comment b/blog/entry/WASM_Wayland_Web_WWW/comment_4_1469595e803179219d3cb15f56b0a34f._comment
new file mode 100644
index 00000000..a4cf290b
--- /dev/null
+++ b/blog/entry/WASM_Wayland_Web_WWW/comment_4_1469595e803179219d3cb15f56b0a34f._comment
@@ -0,0 +1,14 @@
+[[!comment format=mdwn
+ username="xoe"
+ avatar="http://cdn.libravatar.org/avatar/5078637f715b3886c08effb5c6e3d055"
+ subject="www"
+ date="2026-01-26T16:43:04Z"
+ content="""
+\"C\" = Clock,Calculator,Calendar,....
+
+\"W\" = World,War,Web,
+
+All of thease things together point to something.
+From a psychological perspective.
+
+"""]]

calendar update
diff --git a/blog/archives/2026.mdwn b/blog/archives/2026.mdwn
new file mode 100644
index 00000000..1070193d
--- /dev/null
+++ b/blog/archives/2026.mdwn
@@ -0,0 +1 @@
+[[!calendar type=year year=2026 pages="blog/entry/* and !*/Discussion"]]
diff --git a/blog/archives/2026/01.mdwn b/blog/archives/2026/01.mdwn
new file mode 100644
index 00000000..7ae4591d
--- /dev/null
+++ b/blog/archives/2026/01.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=01 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(01) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]
diff --git a/blog/archives/2026/02.mdwn b/blog/archives/2026/02.mdwn
new file mode 100644
index 00000000..c5a0781b
--- /dev/null
+++ b/blog/archives/2026/02.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=02 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(02) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]
diff --git a/blog/archives/2026/03.mdwn b/blog/archives/2026/03.mdwn
new file mode 100644
index 00000000..b7cc0ea0
--- /dev/null
+++ b/blog/archives/2026/03.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=03 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(03) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]
diff --git a/blog/archives/2026/04.mdwn b/blog/archives/2026/04.mdwn
new file mode 100644
index 00000000..d27c1ff6
--- /dev/null
+++ b/blog/archives/2026/04.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=04 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(04) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]
diff --git a/blog/archives/2026/05.mdwn b/blog/archives/2026/05.mdwn
new file mode 100644
index 00000000..586ddf2f
--- /dev/null
+++ b/blog/archives/2026/05.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=05 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(05) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]
diff --git a/blog/archives/2026/06.mdwn b/blog/archives/2026/06.mdwn
new file mode 100644
index 00000000..3659b1e3
--- /dev/null
+++ b/blog/archives/2026/06.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=06 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(06) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]
diff --git a/blog/archives/2026/07.mdwn b/blog/archives/2026/07.mdwn
new file mode 100644
index 00000000..1ce5b58a
--- /dev/null
+++ b/blog/archives/2026/07.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=07 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(07) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]
diff --git a/blog/archives/2026/08.mdwn b/blog/archives/2026/08.mdwn
new file mode 100644
index 00000000..34520e78
--- /dev/null
+++ b/blog/archives/2026/08.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=08 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(08) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]
diff --git a/blog/archives/2026/09.mdwn b/blog/archives/2026/09.mdwn
new file mode 100644
index 00000000..4953a069
--- /dev/null
+++ b/blog/archives/2026/09.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=09 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(09) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]
diff --git a/blog/archives/2026/10.mdwn b/blog/archives/2026/10.mdwn
new file mode 100644
index 00000000..a897e774
--- /dev/null
+++ b/blog/archives/2026/10.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=10 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(10) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]
diff --git a/blog/archives/2026/11.mdwn b/blog/archives/2026/11.mdwn
new file mode 100644
index 00000000..7b16420f
--- /dev/null
+++ b/blog/archives/2026/11.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=11 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(11) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]
diff --git a/blog/archives/2026/12.mdwn b/blog/archives/2026/12.mdwn
new file mode 100644
index 00000000..88242b53
--- /dev/null
+++ b/blog/archives/2026/12.mdwn
@@ -0,0 +1,5 @@
+[[!sidebar content="""
+[[!calendar type=month month=12 year=2026 pages="blog/entry/* and !*/Discussion"]]
+"""]]
+
+[[!inline pages="creation_month(12) and creation_year(2026) and blog/entry/* and !*/Discussion" show=0 feeds=no reverse=yes]]

typo
diff --git a/blog/entry/twenty_years_of_free_software_--_part_9_small_projects.mdwn b/blog/entry/twenty_years_of_free_software_--_part_9_small_projects.mdwn
index c2a89ba9..d477c08e 100644
--- a/blog/entry/twenty_years_of_free_software_--_part_9_small_projects.mdwn
+++ b/blog/entry/twenty_years_of_free_software_--_part_9_small_projects.mdwn
@@ -1,4 +1,4 @@
-ey dad sometimes asks when I'll finish git-annex. The answer is "I don't
+My dad sometimes asks when I'll finish git-annex. The answer is "I don't
 know" because software like that doesn't have a defined end point; it grows
 and changes in response to how people use it and how the wider ecosystem
 develops.

mr rename
diff --git a/code.mdwn b/code.mdwn
index 145376ee..118486d7 100644
--- a/code.mdwn
+++ b/code.mdwn
@@ -96,7 +96,7 @@ Other stuff..
 If you want to keep up with new projects, [[WhatsNew]] is a feed of any new
 pages I add to this site.
 
-[Here](http://qa.debian.org/popcon-graph.php?packages=etckeeper+mr+propellor+ikiwiki+git-annex&show_installed=on&want_legend=on&want_ticks=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1)
+[Here](http://qa.debian.org/popcon-graph.php?packages=etckeeper+myrepos+propellor+ikiwiki+git-annex&show_installed=on&want_legend=on&want_ticks=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1)
 is a graph of Debian popcon stats for my newest projects.
 [Here](http://qa.debian.org/popcon-graph.php?packages=alien+debhelper+debconf+tasksel+os-prober&show_installed=on&want_legend=on&want_ticks=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1)
 is a graph for my most popular projects. I assume popcon only reflects 1/10th

caps
diff --git a/code.mdwn b/code.mdwn
index d4edd5f4..145376ee 100644
--- a/code.mdwn
+++ b/code.mdwn
@@ -98,6 +98,6 @@ pages I add to this site.
 
 [Here](http://qa.debian.org/popcon-graph.php?packages=etckeeper+mr+propellor+ikiwiki+git-annex&show_installed=on&want_legend=on&want_ticks=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1)
 is a graph of Debian popcon stats for my newest projects.
-[here](http://qa.debian.org/popcon-graph.php?packages=alien+debhelper+debconf+tasksel+os-prober&show_installed=on&want_legend=on&want_ticks=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1)
+[Here](http://qa.debian.org/popcon-graph.php?packages=alien+debhelper+debconf+tasksel+os-prober&show_installed=on&want_legend=on&want_ticks=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1)
 is a graph for my most popular projects. I assume popcon only reflects 1/10th
 to 1/100th or less of total users.

remove Ohloh link, website is dead
diff --git a/code.mdwn b/code.mdwn
index 75386973..d4edd5f4 100644
--- a/code.mdwn
+++ b/code.mdwn
@@ -96,9 +96,6 @@ Other stuff..
 If you want to keep up with new projects, [[WhatsNew]] is a feed of any new
 pages I add to this site.
 
-Also, [Ohloh](http://www.ohloh.net/accounts/6835) tracks and mines my commits to many projects 
-for interesting metrics.
-
 [Here](http://qa.debian.org/popcon-graph.php?packages=etckeeper+mr+propellor+ikiwiki+git-annex&show_installed=on&want_legend=on&want_ticks=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1)
 is a graph of Debian popcon stats for my newest projects.
 [here](http://qa.debian.org/popcon-graph.php?packages=alien+debhelper+debconf+tasksel+os-prober&show_installed=on&want_legend=on&want_ticks=on&from_date=&to_date=&hlght_date=&date_fmt=%25Y-%25m&beenhere=1)

update
diff --git a/code/sleepd.mdwn b/code/sleepd.mdwn
index 8727e465..ebf20dc2 100644
--- a/code/sleepd.mdwn
+++ b/code/sleepd.mdwn
@@ -4,10 +4,8 @@ if the battery is low.
 It supports HAL, APM, and ACPI, although external programs
 must be used to actually put the system to sleep.
 
-There is a Debian `sleepd` package, or you can download it from git
-(`git://git.joeyh.name/sleepd`).
-
-I am not longer maintaining sleepd.
+I am no longer maintaining sleepd, there is a Debian package being
+maintained.
 
 ## News
 

debmirror and sleepd have new maintainers
diff --git a/code.mdwn b/code.mdwn
index 7f16f02b..75386973 100644
--- a/code.mdwn
+++ b/code.mdwn
@@ -62,11 +62,11 @@ people have taken them on.
 [[apt-src]]
 [[jetring]]
 [[scriptreplay]]
+[[debmirror]]
+[[sleepd]]
 
 These need new maintainers, stat!
 
-[[debmirror]]
-[[sleepd]]
 [[nslu2-utils]]
 [[ticker]]
 [[github-backup]]

add news item for filters 2.56
diff --git a/code/filters/news/version_2.50.mdwn b/code/filters/news/version_2.50.mdwn
deleted file mode 100644
index 72a778b5..00000000
--- a/code/filters/news/version_2.50.mdwn
+++ /dev/null
@@ -1,4 +0,0 @@
-filters 2.50 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * Reorganize some code to support building with clang.
-     Closes: #[758450](http://bugs.debian.org/758450) Thanks, Alexander."""]]
\ No newline at end of file
diff --git a/code/filters/news/version_2.56.mdwn b/code/filters/news/version_2.56.mdwn
new file mode 100644
index 00000000..ab55ed15
--- /dev/null
+++ b/code/filters/news/version_2.56.mdwn
@@ -0,0 +1,3 @@
+filters 2.56 released with [[!toggle text="these changes"]]
+[[!toggleable text="""  * Remove phrase from kraut.l that is illegal in at least one jurisdiction.
+  * Orphaned the package."""]]
\ No newline at end of file

orphaning filters
diff --git a/code.mdwn b/code.mdwn
index 4f5bcda8..7f16f02b 100644
--- a/code.mdwn
+++ b/code.mdwn
@@ -28,7 +28,6 @@ In maintenance mode mostly, but I still have my hands in it somewhat.
 [[mpdtoys]]
 [[Words2Nums]]
 [[pdmenu]]
-[[filters]]
 [[electrum-mnemonic]]
 [[brainfuck-monad]]
 [[zxcvbn-c]]
@@ -71,6 +70,7 @@ These need new maintainers, stat!
 [[nslu2-utils]]
 [[ticker]]
 [[github-backup]]
+[[filters]]
 
 These are dead and buried.
 
diff --git a/code/filters.mdwn b/code/filters.mdwn
index 7b00dc25..987c95f0 100644
--- a/code/filters.mdwn
+++ b/code/filters.mdwn
@@ -9,14 +9,19 @@ distribute them. In many cases this information is not available and so I
 have had to rewrite many of the early filters from scratch. The current
 filters package contains more than 20 filters.
 
-The GNU project hosts a similar collection of filters, the
+The GNU project hosted a similar collection of filters, the
 [GNU talkfilters](http://ftp.gnu.org/non-gnu/talkfilters/).
-I would like to merge the two collections, but potential copyright issues (see [[talkfilters-email]]) in
-the talkfilters and an inability to get a response back from its maintainer have prevented this so far. On the other hand, I do have to thank the many authors of filters who responded to my queries about getting a proper copyright and license
-statement on them, often decades after they had written the original code.
+I would have liked to merge the two collections, but potential copyright issues (see [[talkfilters-email]]) in
+the talkfilters and an inability to get a response back from its maintainer prevented this. 
+On the other hand, I do have to thank the many authors of filters who responded to my queries about
+getting a proper copyright and license statement on them, often decades after they had written
+the original code.
 
 To download, `apt-get install filters` or `git clone git://git.joeyh.name/filters`
 
+I am no longer maintaining this package, so contact me if you would like to
+take over maintenance.
+
 ## News
 
 [[!inline pages="code/filters/news/* and !*/Discussion" show="3"]]

remove olduse.net
while still being run by someone else, it's no longer my project
diff --git a/links/fun.mdwn b/links/fun.mdwn
index 2ee66918..beedc5b5 100644
--- a/links/fun.mdwn
+++ b/links/fun.mdwn
@@ -1,7 +1,6 @@
 ### fun
 
 [[Joey_Learns_to_Fly|learnstofly]]  
-[oldusenet](http://olduse.net/)  
 [[languages]]  
 [[yurt]]  
 [[caving]]  

distribits 2025 talk
diff --git a/talks.mdwn b/talks.mdwn
index 17cc553d..fde62603 100644
--- a/talks.mdwn
+++ b/talks.mdwn
@@ -136,3 +136,10 @@ by others.
   - [video](https://www.youtube.com/watch?v=pp8IeGXpRRI&list=PLEQHbPfpVqU6esVrgqjfYybY394XD2qf2&index=3)
   - [mirror](https://downloads.kitenet.net/talks/distribits_2024__git-annex_is_complete,_right.mkv)
   - [zoomy slides](http://downloads.kitenet.net/talks/distribits/distribits_slides.sozi.html)
+
+## Distribits 2025, Dusseldorf
+
+* "git-annex for computer scientists"
+  - [video](https://www.distribits.live/talks/2025/hess-git-annex-for-computer-scientists/)
+  - [mirror](https://downloads.kitenet.net/talks/distribits_2025_git-annex_for_computer_scientists.webm)
+  - [slides](https://downloads.kitenet.net/talks/distribits/git-annex_for_computer_scientists.odp)

poll vote (I tried it, liked it.)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 63ac1215..a2062f19 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 343 "I tried it, needs work." 113 "I haven't tried it, but want to" 10 "I don't plan to try it"]]
+[[!poll 48 "I tried it, liked it." 343 "I tried it, needs work." 113 "I haven't tried it, but want to" 10 "I don't plan to try it"]]

poll vote (I tried it, needs work.)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index a08e2a48..63ac1215 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 113 "I haven't tried it, but want to" 10 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 343 "I tried it, needs work." 113 "I haven't tried it, but want to" 10 "I don't plan to try it"]]

poll vote (I don't plan to try it)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 64e51e81..a08e2a48 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 113 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 113 "I haven't tried it, but want to" 10 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 46ed9f55..64e51e81 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 112 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 113 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 7ef56dca..46ed9f55 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 111 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 112 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 71dfe5ca..7ef56dca 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 110 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 111 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index a4c23dc3..71dfe5ca 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 109 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 110 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index b3075803..a4c23dc3 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 108 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 109 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 72d663c7..b3075803 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 107 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 108 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 68934803..72d663c7 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 106 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 107 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 444d9ccc..68934803 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 105 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 106 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 0e5cda7d..444d9ccc 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 104 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 105 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index cce83e1c..0e5cda7d 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 103 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 104 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index ab412d6a..cce83e1c 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 102 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 103 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 8664e8be..ab412d6a 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 101 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 102 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index af45851f..8664e8be 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 100 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 101 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 212ccbd4..af45851f 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 99 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 100 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index e9f8ae13..212ccbd4 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 98 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 99 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 9d6107ae..e9f8ae13 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 97 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 98 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 37497da5..9d6107ae 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 96 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 97 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 00e76dba..37497da5 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 95 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 96 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 47eebf5a..00e76dba 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 94 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 95 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 1e353026..47eebf5a 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 93 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 94 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 961e08dd..1e353026 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 92 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 93 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 67edc269..961e08dd 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 91 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 92 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 073e39ff..67edc269 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 90 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 91 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 7b493c73..073e39ff 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 89 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 90 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index c02faee1..7b493c73 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 88 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 89 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index e0317ebe..c02faee1 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 87 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 88 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 1cc8d69e..e0317ebe 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 86 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 87 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 9b801723..1cc8d69e 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 85 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 86 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index a8c96a48..9b801723 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 84 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 85 "I haven't tried it, but want to" 9 "I don't plan to try it"]]

poll vote (I haven't tried it, but want to)
diff --git a/code/kaxxt/feedback.mdwn b/code/kaxxt/feedback.mdwn
index 80262013..a8c96a48 100644
--- a/code/kaxxt/feedback.mdwn
+++ b/code/kaxxt/feedback.mdwn
@@ -1,4 +1,4 @@
 Whatdayathink? Please vote in the poll, or post your
 experiences/questions to [[/code/Kaxxt/Discussion]].
 
-[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 83 "I haven't tried it, but want to" 9 "I don't plan to try it"]]
+[[!poll 47 "I tried it, liked it." 342 "I tried it, needs work." 84 "I haven't tried it, but want to" 9 "I don't plan to try it"]]