Eric Warmenhoven

Tuesday, January 20, 2009

I’ve decided to take up parenting as a hobby

2:38 am

My son Andrew is now ten weeks old, and already I’ve learned so much. For example…

Being a good parent occasionally means being a proper adversary

It’s much harder than you might expect, and happens more often than you might expect. A pacifier is an excellent way to calm him down, especially when he has gas pain (and a pacifier can also reduce the risk of SIDS); however, he would let it fall out of his mouth when he wasn’t sucking on it. Rather than hold it in, if you tug on the pacifier a little bit, it teaches him how to suck on it so it doesn’t fall out.

Sometimes what’s “best” is actually not so good

Andrew has a food allergy, but we’re not exactly sure what he’s allergic to. For the last couple weeks, he’s been on Nutramigen, a hypoallergenic formula specifically for babies with food allergies, and has been responding really well. Meanwhile, Lisa’s been on an elimination diet, eating mainly chicken and rice, trying to get everything he might possibly be allergic to out of her system so she can start nursing again. Recently, Lisa started nursing at an occasional feeding, and he coincidentally seems to have gotten more fussy. He’s not screaming in pain like he was before going on the formula, and it’s hard to say that it’s because of the breast milk. Still, we’re thinking about going back to just formula and seeing if he improves again.

I read too much

When I was a child, and still to this day, I had pretty severe sleep problems. I didn’t sleep through the night until I was 18 months old. So before Andrew was born, Lisa and I read a few books about how to establish a healthy sleep pattern. All of them had various theories about why children develop sleep problems, and how to quiet a baby and establish a routine. Now we’re so full of conflicting theories about problems that will develop if we do or don’t follow some guideline, that it’s hard to make a decision about what’s best sometimes. It doesn’t help that, in part due to his food allergy, he’ll sleep through the night one night, and the next night wake up every few hours. Fortunately, only one feeding in the middle of the night has been the norm for quite some time, so it hasn’t been too bad.

Thursday, November 27, 2008

cado, cadere, cecidi, ?

12:37 am

The other day I was looking at the statistics collected from my web server logs, and saw that easily more than 80% of people who find my website are looking for my Latin vocab learning tools. They’re pretty basic, but I found them to be somewhat helpful when I was learning Latin. I’m seriously considering expanding it a bit, adding conjugation/declension drills, making it a little prettier, etc.

Anyway, tonight, I got a nice email from a woman who uses the vocab tools, and noticed that there was a problem with fourth principal part of the Latin verb ‘cado’, and it sent me on a somewhat fruitless search for what the right word is.

(A quick primer for those not familiar with Latin verbs: most verbs have four principal parts, which can be used for conjugation. The fourth principal part is the perfect passive participle, e.g. “to have been heard”.)

So then, what is the perfect passive participle of ‘cado’, which means “to fall”?

Before I get into that, consider for a moment what the translation to English would be. “To fall” is usually used as an intransitive verb (the transitive form is mostly obsolete), so “to have been fallen” doesn’t really sound natural. But the translation can be approximated to something like “to have been dropped” or “to have been struck down”.

But what is the actual word that is used? On this there appears to be some disagreement. Wheelock’s Latin says that it’s ‘casurum‘, as does Wiktionary. However, Tyro’s Dictionary says that it’s ‘casum‘, as does All Verbs. Meanwhile, Whitaker’s Words says that ‘casurum‘ is “very rare”, from “later” Latin, and used in the Vulgate Bible, and says it should actually be ‘casusus‘.

I still don’t know which one is correct, and suspect that all three are correct depending on the text that’s used. I can somewhat see how ‘casum‘ might have been correct at some point, but changed as it overlaps with the noun ‘casus‘, which is the noun “fall”, as in “that was a nasty fall”. Or vice versa.

I tried to go searching through prose to see which was most commonly used, but most of what I found was from the Vulgate Bible and used ‘casurum‘. So, I’m still not sure which is actually the “best” word. I’ve changed the site so that it uses ‘casurum‘ to be consistent with Wheelock’s.

So, does anyone definitively know, which is actually best, and what the etymology is?

Monday, November 3, 2008

7:53 pm

Dear Lazyweb, what’s best dedicated server/virtual private server offering?

My basic requirements are:

  • web hosting (apache/php/mysql)
  • mail host, including smtp and imap servers
  • root shell (ideally running Debian)
  • some small amount of backup space (say 3GB or so)
  • reasonably cheap (roughly $70/mo, ideally less)

Right now I have Dreamhost, which has been reasonable for what I pay, which is $16/mo. They run Debian and, aside from root, give me everything else that I want. However, I’m starting to get really annoyed at being on shared hosting. Also, they’re moving everyone over to new servers, and when they do, I won’t be able to use procmail filtering anymore. So I’m looking for alternatives.

One of my friends had used ServerPronto, which meets all my requirements. However, his experience convinced me that I don’t want to be using ServerPronto.

So, what should I use?

Tuesday, August 5, 2008

Expensive toys, expensive repairs

9:53 pm

This past weekend, I took my Canon EF 24-105mm f/4L lens to take some indoor pictures. I had been using it previously to take outdoor pictures, and had used my polarizer, and left it on the lens when I was done. So this weekend, I tried taking it off, and couldn’t.

That’s the first time this had happened to me. I wasn’t sure what to do. Fortunately for me, before I did anything too extreme, Adam suggested I get a filter wrench. So I headed over to Wolf Camera to get one.

Wolf didn’t have one, so I asked where I could get one, and they suggested someone else who also didn’t have one, but they suggested Keeble & Shuchat Photography, who I had been to before. They did have wrenches, but not in the size that I needed. They suggested I just bring the lens to their repair department, which I did.

Fifteen minutes later, the filter still wasn’t off the lens, and they had given up. My lens is now on its way to Canon USA for a repair, and hopefully I’ll get both parts back, separated, and in usable condition. They estimated the cost would be somewhere between two and three hundred dollars. I guess that’s what happens when a lens that costs $1000 and a filter that costs $100 decide to misbehave in tandem. And I was hoping the repair would be a simple $5 filter wrench!

Friday, July 25, 2008

Strobist.

5:28 pm

Recently, I was trying to take portraits of Lisa at home, and failing. There wasn’t enough light, and the (on-camera) flash I had simply wasn’t cutting it. I decided it was time for a more serious solution.

Enter Strobist.com. I already had the 580EX II Flash, so I got a stand, umbrella, and reflector, told my sister-in-law to stand between it all, and the results turned out much better:

IMG_5319.jpg IMG_5319.jpg

The background there is actually an empty room with all of the lights turned off, which I was pretty impressed with.

Since then, I’ve convinced Lisa to let me set up a photo studio in the garage, complete with backgrounds. I picked up a background stand (no backgrounds yet though) and a Calumet Genesis 200 1-Light Kit, which is pretty awesome. I’ve also signed up for some classes to try and pick up some tips on all of this.

In other news, I picked up the WordPress iPhone app. Maybe I’ll actually start posting more regularly.

Monday, March 31, 2008

Rewriting as a learning tool

5:26 pm

So a year and a half ago, I mentioned I was trying to learn Haskell, and I still am. It’s been going much more slowly than I hoped, since I haven’t really spent any time on it. I never write anything new anymore! So I decided to rewrite something I had previously written myself, need be damned. So I chose the RSS aggregator I wrote, harsh.

harsh hasn’t changed in eleven months (and that change was just about making the location of its configuration file configurable), but I still remembered how it worked pretty closely; at least enough that I didn’t have to really go searching through its code too much. That’s probably also a function of how small harsh is; in terms of lines of code (excluding blank lines):

  config.c: 139
  cookie.c: 221
 display.c: 709
    feed.c: 577
    list.c: 96
    list.h: 16
    main.c: 96
    main.h: 84
     md5.c: 360
     md5.h: 76
     rss.c: 120
     xml.c: 276
     xml.h: 17
     total: 2787

It uses expat to parse the HTML, libnbio for socket management (which is available in Debian), and ncurses for the UI. It doesn’t have any sort of threading (libnbio does a good job of making sure that, other than DNS lookups, there’s never anything going on long enough to prevent responsiveness). About its only feature is that it will use my cookies.txt file, so that I can see my LiveJournal friends’ protected entries.

I originally wrote harsh in about a day or two. It was really easy because of the 2800 lines, about 850 of them had been written in some of my other projects (list.c/h and xml.c/h) or are standard (md5.c/h). I was also really familiar with the three helper libraries from writing grim (my IM client) and stark (a tool for viewing GnuCash data files).

As a learning exercise, rewriting harsh in Haskell was excellent. It’s incredibly small, does a lot of standard things (like networking and console UI), and doesn’t do a lot of non-standard things (like an AIM client does). I got to play with the Haskell light-weight threads and STM; I learned how to create a Debian Haskell package; I learned how to use ghci as a debugger with breakpoints; and I’m much more comfortable with monads and with the language in general.

It did take me significantly longer to write than the C version, though that’s more due to me having to learn not just the language but some libraries along the way (like HTTP, Vty, and HaXml). I still think that it would take me just as long to write the Haskell version as the C version, but I’m still much more comfortable with C, and imperative programming in general.

From a code size perspective, the Haskell version is about one-sixth the size (excluding comments):

Config.lhs: 53
  Feed.lhs: 144
 Harsh.lhs: 272
  Util.lhs: 26
     total: 495

However, that’s not a very fair comparison. In the C version, md5.c/h are included in the total count, when really they should be considered a standard library (and on the Haskell side, I used Data.Hash.MD5 from MissingH). On the C side, I did all of the HTTP request and response processing myself (which is what more than half of feed.c is about), while on the Haskell side I left that to an HTTP client library. Excluding all those things though, the Haskell version is still about one-fourth the size.

Anyway, I put the Haskell version of harsh up here. If any Haskell hackers out there could take a look at it and let me know what I’m doing wrong or oddly, I’d appreciate it.

Monday, December 24, 2007

Tomorrow will be: roughly the same as today.

8:09 pm

A couple months ago, I got an iPhone, like I wanted. Today, I dropped it flat on its face onto a tile floor, and the bottom half of the touch screen no longer responded. So this afternoon, Christmas Eve, I went to the Apple store at 5pm to try to get it fixed, realizing at the time how stupid and unlikely that was. To my great surprise, the store was open, mostly empty, and I was given a brand new iPhone on the spot. I took it home and connected it to my Macbook, and iTunes asked me if I wanted to restore my old profile. A short sync later and it’s indistinguishable from my old iPhone, pre-drop. It even remembered which websites I had open! It also had the pictures I had taken with the phone but hadn’t yet copied off of the computer. So now I love my iPhone even more because I don’t care if it breaks; the new one will be identical to the old one in every way.

Today ends week eight of my forty-eight week Invisalign treatment. I originally was looking at orthodontic work to correct the crowding on my lower teeth, and have been considering getting either braces or Invisalign for about four years now. I’ve talked to several dentist and orthodontists, and the ones who offer both braces and Invisalign have tried to persuade me to get braces instead. The main reasons they’ve pushed braces are that they’re cheaper, they’ll probably take less time, and they’ll be able to correct more things, such as my overbite. I decided to go with Invisalign instead for several reasons: vanity, comfort, convenience, and protection. Invisalign so far has been much more comfortable than braces were, especially since they don’t cut at my lips and gums like braces did. I can eat whatever I want, unlike with braces, since the retainers come off while I eat. And I grind my teeth at night, so the Invisalign gets worn down instead of my teeth. The biggest inconvenience so far with Invisalign is that I’ve stopped snacking, since there’s such a huge time cost involved with brushing my teeth before putting them back on, and I’m not supposed to have them off for more than two hours per day.

Tuesday, September 18, 2007

iWant.

12:09 pm

Lately I have been wanting to buy a lot of fairly expensive stuff that I don’t really need.

It started with the telephoto zoom lens, which I ended up getting, and love. I’m really happy that I got it, especially since Lisa and I will be going on a hot air balloon ride in Napa for our anniversary, and then to the Salinas Air Show the following weekend.

Then it was the new TiVo HD. We already have a Series 3, but we’ve occasionally thought that we might like to get a second TiVo for our other TV. Now that it’s been confirmed that Multi-Room Viewing is coming to both the Series3 and TiVo HD soon, there’s even more incentive to get one. Fortunately right now they’re selling them to employees at a discounted price (limit one per employee).

And now it’s the iPhone. I can’t explain why I feel compelled to buy this other than iWant. A few of my coworkers have one and they look pretty slick. Plus my current iPod battery can’t hold a charge very long. Plus I like the idea of having an integrated iPod and phone (it’s part of the reason why I got my current phone, the Motorola SLVR L7). Plus it’s roughly the same size as the SLVR and only slightly heavier.

Tuesday, August 28, 2007

Eclipse.

10:58 am

I stayed up late last night to watch the lunar eclipse, and took pictures.

In related news, I need a lens that has a much longer zoom. The pictures I posted aren’t scaled (just cropped). I wish I’d thought of this a couple weeks ago so I could have finally ordered the Canon 100-400mm f/4.5-5.6L that I’ve been looking at for months now. I’ll probably get it soon though, so that I’ll have it for the Salinas Air Show at the end of September.

Sunday, August 12, 2007

Does this flash make me look small?

11:01 pm
IMG_2959.jpg

IMG_2959.jpg,
originally uploaded by warmenhoven.

I’ve been playing around with my flash a bit. I’m more comfortable with the extra weight and all the controls now. I still haven’t gotten used to using it to add light very well though.

A while back when I was looking for my tripod, I got to play with a 30D. The extra size felt really good in my hands, and ever since I’ve wanted a slightly bigger camera. Not that I’ve been unhappy with the XTI at all; it’s just that it could be better. And so, I’ve been following the rumors of a 40D somewhat closely, even though I don’t think I’ll get one. I’ll probably wait until next August in hopes that Canon announces an update to the current 5D.