I haven't had a lot of time to blog lately, so it's time to catch up on a few things.
Jacob is now almost 12 pounds. He's been growing well. As Terah
mentioned, he has been colicy. He seems a bit better in the past few days. He usually has started getting fussy just before I get home from work, and continue through the evening. So I hadn't been able to see him happy all that often for a few weeks there. It's a lot of fun to be around him when he's happy.
The house is coming along nicely, too. Drywall is up inside, siding is up outside, the propane line is installed, water line is installed, power is run to the house, and phone service is installed as well. Bathtubs have been set in place. The furnace is set in place, though not yet hooked up to the duct system. Network/phone cable (CAT6 for it all) is run, as is coax cable. Interior painting starts next week. The house has changed appearance dramatically over the past few weeks.
We were looking at some "before" pictures to figure out how we wanted to structure our porch. It looked bad back then, but compared to how it is now -- well, it looked even worse.
The annual pillars banquet for
Bethesda Home was a few weeks ago. I'm on the board at Bethesda (which has been a good experience), and board members pitch in to make the event happen -- it's our largest fundraiser event of the year. I took photos last year, and again this year. They're
posted online. Bethesda was founded in 1899 and has been an important feature of our small community ever since. I'll write more about it sometime.
Things still seem busy here. Between taking care of Jacob, being in a temporary residence (everything takes longer because so many things are in boxes or just not accessible), keeping on top of all the decisions for the renovation, and all the mundane things of moving twice, there's not a lot of free time. Hopefully that situation will improve a bit, but then we will of course have the big move into the house -- probably in January sometime.
I'll be hacking on my hpodder program this weekend. hpodder is a full-featured podcast aggregator that runs on the command line, and has many features over other command-line podcatchers like bashpodder, and even over GUI tools like iPodder.
I originally envisioned hpodder to be something that I'd cron up and run in the background. But I have tended to run it in the foreground more than in the background. Some others have too, and the #1 requested hpodder feature is parallel downloads.
So I am working on that. I already have code working, in fact, that will parallelize both the hpodder update (downloading the feeds) and the hpodder download (downloading the actual episodes) commands.
Unlike ipodder, my code will make sure that no more than 1 thread will ever be downloading from a given server at a given time. ipodder had the terribly annoying habit of pointing all of its threads at a single server, thus pounding it while also providing little benefit for someone with a pipe fatter than the server's.
Before all this multithreaded stuff could be written, I needed to write my own status bar code instead of just letting curl display its own status bar. (That wouldn't work when there are 5 curls running at once)
I decided that I would write some generic status bar code, rather than something specific to hpodder. I took the apt-get status bar as an example, and whipped one up in Haskell and added it to my MissingH Haskell library.
But a status bar just begged for another feature: a generalized progress tracker. Something that could keep track of where a task (and its sub-tasks) are, calculate ETA, estimated time remaining, speed, etc. So I wrote that and made the status bar use it.
AND, a status bar begged for a generalized numeric formatter: something that could render 512 as 512, 2048 as 2K, 1048576 as 1M, etc. So I wrote that, and it's general enough that it can render into both SI and "binary" units by default (and others that users may want).
Finally, I wrote a function to take a number of seconds and render it in something friendly like 23m5s like apt uses, and shoved that in MissingH as well.
So now hpodder will have a status bar, and any other Haskell program can use the same status bar code in minutes because it's all generic. Or if someone just needs to render a number in megabytes, they can do that.
I really enjoy it when a program needs a solution that is generic enough to put in a larger library. I try to put as much of my Haskell code in MissingH as I can, so as to make it useful to others (and my other programs).
Comments
Tue, 26.08.2008 15:46
On a Decwriter IV, the print h ead usually obscures the last couple of characters before th e text. There is a speci [...]
Tue, 26.08.2008 11:29
I should have warned you. It only works on wheat.
Tue, 26.08.2008 07:31
John, the comment I left on th e previous post belongs up her e. Sorry.
Tue, 26.08.2008 07:28
John, I tried your 'TERM=escpt erm telnet localhost > /dev/lp 0' trick and I still have wee ds in my corn field.
Mon, 25.08.2008 11:23
One of the mailing lists I'm o n was looking for one too[0]. Lord only knows what evil they want it for ;-) When I [...]
Mon, 25.08.2008 08:46
On a teletype the typebar move s out of the way immediately a fter each character is printer . You can see what you a [...]
Sun, 24.08.2008 23:12
Ah, the AB1 is probably the be st single best piece of machin ery I've ever owned. It has b een reliably waking me u [...]
Sun, 24.08.2008 20:48
In classic ribbon type printer s the print head would jump up , print, return down, such tha t if typing slowly you c [...]