Blog-o! Notes from latte.ca

Wed, 27 Oct 2004
Links for Morgan

Morgan was saying she needs more stuff to check on the Internet, so here are some sites I think you all should read if you don't already:

Mimi Smartypants adopted a baby girl a year ago. Her baby is a couple of months older than Delphine. (When she first, um, got Nora it totally blew my mind that Mimi had an eight-month-old, and I only had a six-month-old, but I had a been a mother for six months and Mimi had only just started. I think I was jealous, and rightly so because it only starts to get good at eight months. All babies should start at eight months -- maybe I will send my next one to an orphanage for the first eight months. Or to Sascha and Leontine.) Mimi is very funny, especially the one where Nora feeds the cat.

Dooce has an eight-month-old named Leta who is much more of a handful than Delphine ever was, and also a very amusing constipation problem and a slightly less amusing (but only slightly) mental illness problem.

Okay, that's only two, but someone lost all my bookmarks so I'm groping blindly around the Internet at the moment. If I think of any more I'll post them, or you could just look at the list of journals over on the right, but I haven't updated that for ages and I can't guarantee any of them will be funny or interesting.

[Posted at 12:45 by Amy Brown] link
Some Stuff

For those of you who inexplicably check the blog before the baby gallery, there are new pictures up. Lots of new pictures.

She's napping now so I'm typing on borrowed time, so excuse sentence fragments.

Work: Have some, working for my father-in-law, liking it but then it's only a couple of hours a week. It's a nice change of scenery and it's good to be appreciated. The nice thing about my father-in-law is that he appreciates me. At least to my face; who knows what he says about me behind my back -- he's kind of notorious for bitching about his employees. That's fine with me, as long as he keeps the compliments and money coming. It's not like I never talk about folk behind their backs.

I'm hoping the daycare I put Delphine on the waiting list for will have an opening in January, which seems like forever but will eventually come. I signed up for two days a week, which will be just perfect. I think she will love it, and I think I will love being able to work again. It will be nice to be able to spend good chunks of time at the office and really make a contribution. Right now I feel like I'm just filling in holes and "helping out".

Delphine is sleeping well, from seven until six-thirty. If I were smarter I would be going to bed at a reasonable hour and getting lots of rest, but instead for the last couple of weeks I've been staying up late reading and watching The Daily Show and putting pictures on the web.

The US election is freaking me out. How can half the country want to vote for Bush? Honestly, how a country can be simultaneously so great and so fucked up I just don't know. Again, glad to be here and not there. It's also freaking me out how much of a news story the election is here; people routinely refer to it as "the election", not "the US election". "Did you watch the debate last night?" There's a local bar that's having a shindig on the night of the election, showing it on their TVs and having debates and such, just as they did with our election. (We will be watching The Daily Show live coverage, of course. I think I kind of have a crush on Jon Stewart.) It's horrifying how much effect the results of their election affect us, and yet we have no say. (Of course, and rightly so, but still horrifying. Just vote Kerry, okay, for the love of god? You can vote for Rob next time.)

I started taking square dancing a while ago, where by started I mean I went to one class and then bailed. The second class coincided with a condo board meeting, and since I'm president of the condo board I thought I'd better be there. When the third class rolled around I weighed the relative benefits of tromping around in circles with lovely old people to whom I would have to be friendly and polite, or sitting like a tumour on the couch, and the couch tumour won out. I would feel worse, but the idea of signing up was to get exercise, and the old dears move so slowly that there was really no exercise being got. I guess I should have seen that coming. Next time I'll sign up for step dancing or sword dancing or something. In the meantime I'm just trying to go out walking every day.

This weekend I'm going to dye my hair back to a decent shade of brownish-black. I'm still suffering the reddish colour it turned out when I tried to dye it light brown, and now it has the brown plus grey roots coming in as well. Nice. I'm also growing it out, which means it has been and will continue to be awful. I got a trim a couple of weeks ago, so it's less awful than it might be, and I will get another in December. My stylist seems to know what he's doing and to have a plan as to how to grow it out, which is heartening since in the past all I have done is just stop getting it cut. Perhaps this will work better.

I still need to think of a costume for Delphine for Halloween. So far I have come up with "70s Baby", "Ninja", and Morgan and Erik need a fourth for their Kiss costume, but they're going to a party and when bedtime is seven o' clock partying is out of the question. I am hindered by the fact that I do not want to spend any money, time or effort on the costume. Wish me luck.

[Posted at 12:15 by Amy Brown] link
Mon, 25 Oct 2004
A pEditPro/pEdit32 Conduit.

I've recently started exploring the world of writing COM-based conduits for the Palm in Python. I had one working for the PalmBlosxom application I've mentioned previously, and I figured that it wouldn't be a huge task to modify it to just copy any memos from the Memo32DB to files and folders in a directory. And it wasn't that hard. The biggest problem I ran into was trying to instantiate an object that I should have gotten from another object. The error message was a little misleading (at least to me, someone who hasn't spent a lot of time in figuring out COM error messages), but I finally realized what had happened by reading the documentation. And perhaps the most surprising thing was that I started development on my computer at work, and finished it on my computer at home, through the use of Subversion. I figured I'ld have to install a bunch of stuff on my home computer to be able to build the code, (it currently requires InnoSetup Beta 5, py2exe, wxPython, and Python 2.3,) but I guess I had all that stuff from the last time I tried developing something from home.

So, I invite anyone and everyone to give it a try. It'll only work for Windows users, but it should be fine for them. I don't know of any bugs, and I'm quite sure that even if there are bugs, it won't destroy your Palm's data (I do no writing to the Palm, so the data on it should be safe, right?), and you can always uninstall the conduit. That was one of the toughest things to get working correctly, surprisingly. There are a couple more features I'ld like to add before I feel it's ready to have a 1.0 version number. (Actual two-way syncing being the main one. And having a configuration dialog that wasn't just a big blank screen would be another. Perhaps switching to the C++-based Conduit API would be useful as well, for cross-platform issues, but I'm not sure how I could build a conduit that way.) And leave me some comments if you have any problems or suggestions, or even if you don't. I'ld like to see who's using the little tools I put out there.

[Posted at 21:50 by Blake Winton] link
Mon, 11 Oct 2004
Seventeen Months

Words Delphine Says

Cat. Duck. Ball. Daddy. Mummy. (She doesn't quite know who is which, though.) Baby. No. (Sometimes polysyllabically, Aussie-style.) Bubby (for my chestal region and the pleasures thereof.) Down, as a nice counterpoint to "up!". She sometimes says "Up please". Other times she just says "Up UP!"

Fifteen Month Stats, Finally

She was 22 lbs 11 oz, and 30.7 inches, meaning she had gained 11 oz and .7 inches since her one-year checkup. That's not very much; she's slid from the 95th percentile at birth to the 50th now. Yeah, I know they're not supposed to gain much in the second year, but more than that. Anyway, she seems bigger now so maybe she has had that growth spurt we've all been waiting for. Her next checkup is November 17th.

Height growth chart (in cm)
Height growth chart (in cm).
Weight growth chart (in kg)
Weight growth chart (in kg).

Sleeping, Eating, Teeth, Hair

Asleep She's still sleeping in the crib. The last couple of nights have been great, the couple before that not so good, and so on. It's a process. I'm surprised by how she has taken to it, though. After we go through our bedtime routine (diaper, jammies, teeth, nurse) she veritably lunges for the crib face-down, tucks all her limbs underneath her and goes right to sleep.

She has just started cutting her canines. Once they are in each type of tooth -- incisors, molars and canines -- will be represented, meaning she can eat anything we can eat. I don't buy much food especially for her anymore, apart from crackers and high-fat dairy products. She still loves tomatoes more than anything, and I don't think there's anything that she particularly dislikes, although she's not very interested in most things. Perhaps I am nursing her too much? I didn't think that was possible, but then I have only read the hippie attachment parenting books on the subject.

New hairdo I cut her hair for the first time yesterday -- the front is still really short, so I trimmed the sides and back so it doesn't look so mulletty. It's much better now, and she kind of looks older. I didn't do a fantastic job, technically; the sides look a bit hacked at, and there are a couple of wisps at the back that I couldn't get because she kept moving away, but her hair is haphazard enough in general that my clumsy efforts don't stand out.

More

All these dry factoids are inadequate to express what Delphine's like, how she is. She's so interesting, funny, clever. She loves to be read to, and to go for walks. She is fascinated by plants. She can stroke the cats gently. She dances to music, bouncing and turning around and rocking from foot to foot. She likes to clean up, walking around the house with a rag wiping things, and "sweeping up" with a whisk brush (really she finds the neat piles of stuff that I have swept, and flings them around with her brush). She loves to say no: "Nnnn-aaaa-oooo!" She is a hundred times more interesting now than when she was a baby, and I love to be with her. I miss her when she is sleeping or out with her auntie or grandparents. She is both lovely, and amazing, and I tell her so all the time.

[Posted at 11:12 by Amy Brown] link
Wed, 06 Oct 2004

I thought I’ld take a few minutes to talk about just what it is that’s allowing me to write an entry while I’m walking down the street on my way to the gym. (And on my way home from the gym, and on the subway to work the next day, because while I’m connected, I’m not necessarily fast at either Graffiti or writing weblog entries.)

As I’m sure you know, I’m a computer programmer by trade, and so when I run into a problem, I tend to want to write a program to fix it for me. A long time ago I got a PalmPilot Professional, partially so that I could keep track of my projects and assignments, and partially because I could write programs for it in C. Then, someone wrote a C compiler that ran on the Palm. I was so excited that I could finally write code on the subway! Until the first program I wrote crashed my Palm. I quickly realized that C was just too hard a language for writing Palm programs. (It’s not so bad if you’re working on a desktop, and have an IDE, and an emulator to test on, but for on-Palm development, it really sucks.) I also played around with an implementation of Forth for the Palm, but I couldn’t get enough of a library of utility words built up to do anything useful with it. Later, I learned a language called Python, which was far easier to write programs in, both due to being an easier language syntactically, and due to the wealth of useful libraries it comes with. After a while, someone ported Python to the Palm, and so I played around with that, but I found it, too, was lacking the libraries I needed for it to be useful to me. Finally, someone posted on the Python tutor list about a program called Plua, which was an implementation of Lua for the Palm. There are a lot of things I don’t like about Lua the language, but when creating a screen for a Palm app is as simple as:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
pclear()
ptitle( "PalmBlosxom" )
pmenu( {"P:Server Prefs"} )

m32=pcheckbox("pEdit32")
ptab()
name = pfield( 1, 24, 24, catName)
pnl()
pl = plist( 10, 31.5, lst )
pnl()
ptab()
i = pbutton( "Reload" )
ptab()
d = pbutton( "Details" )
ptab()
q = pbutton( "Quit" )

I’ll put up with a lot of ugliness in the language.

Of course, I made it sound like a much smoother progression than it actually was. I took side trips into Basic, Smalltalk, Perl, Scheme, Java, Intercal, Visual Basic, and Ruby, but none of those were serious contenders for on-Palm programming, and Java is the only one I still use these days. But I remember enough of them to be the person to ask when someone at the office needs to debug a program written in one of them.

Where was I? Oh, yeah, Plua. Plua makes it really easy for me to create programs for my Palm, and so makes it far more likely that I’ll actually complete whatever random project it is that requires a Palm program to be written. In this case, it was a way for me to write weblog entries in the standard Palm MemoPad application (or, more accurately, in pEdit, a replacement which handles memos of up to 32kb, as opposed to Palm’s 4kb size restriction). Since I was leveraging the standard MemoPad, my application was turning out to be much simpler than a full-fledged weblogging application, but it was still taking me a long time to write it in C++, partially because I needed (or more accurately wanted) to write a generic framework for use in other applications I might write, and partially because I don’t have a lot of spare time for programming. Switching to Plua let me write the application in a day or two, and I can easily change things around in it, or add features, without going through the hassle of a compliation and hotsync.

The hardest piece to get working was the conduit. Since my Palm doesn’t have a WiFi connection, it’s a bit of a pain to use programs which depend on network connections. Conduits, on the other hand, get run every time I hotsync, which is usually once or twice per day. I had been planning on writing the conduit in C++, which was going to be quite a pain for me, since I didn’t know of any libraries that could handle ftp over secure sockets. Fortunately, Rick Price asked me whether it would be possible to write a conduit in Python. "Sure", I said, and then started thinking about how you would do it. You could either wrap the C API up into a Python library, which would take a lot of work, or you could use Python’s COM support to talk to the COM API. I figured that would probably be an easier way to go, and since I had some free time, I started experimenting. It turns out that it was a little harder than I had anticipated, but it still wasn’t too bad, and I think I’ve finished the worst of it. The Secure-FTP library was easy to find, and after some firewall config on my home machine works quite well.

[Posted at 16:20 by Blake Winton] link
How I've been doing.

I'm hoping to get a plugin written for the area over on the right there which will display some statistics about my last few bike rides. Ever since I got my new bike computer (the Cateye Astrale 8), I've been keeping track of all the data it produces, which is to say trip time, trip distance, average speed for the trip, maximum speed for the trip, and the total distance odometer. I haven't tried to graph any of it yet, but I'm sure that'll come soon enough. In the meantime, it looks like I'm getting faster on average (from 19.2 km/h (12 mph) on my first trip to 21.2 km/h (13 mph) on my most recent trip). It's around 17.16 km (10 .66 miles) to my office and back, and I've gone 175 km (108.75 miles) so far. Of course, I've actually gone farther than that, since I biked to work before I got the computer, but I'm happy to ignore those trips for the purposes of tracking my distance.

Does anyone have any guesses as to what the stats will be by the time it gets too cold for me to bike anymore? Personally, I don't think that I'll get too much faster, either on my max speed, or on average. My trip distance will probably increase by a little bit, since I've found some neat paths that are just a little out of my way, and I think I'ld like to take them. And I'm hoping to more than double my total distance, which should be a no-brainer, since after two more weeks (or 10 trips to and from the office), I'll have doubled it, but I'm not sure if the weather will hold out that long. It's been mightily chilly up here for the past few days. It was only 4°Celsius (39.2°F) when I rode to work this morning, and I could really feel the bite of the wind, even through my tiny cotton gloves. If it keeps up like that, I might have to buy a real pair of biking gloves, or stop biking for a while. Though I've got to admit, it was a nice feeling to not be all sweaty when I got to the office.

[Posted at 16:17 by Blake Winton] link
Tue, 05 Oct 2004

I've started writing an installer for my PalmBlosxom conduit, and associated files. It's been both easier and harder than I had thought. It was way easier to get the installer portion written so far, and I don't see any particular difficulties cropping up in that part of it. Sure, there are still a bunch of things to do, like installing the Palm program for users who aren't named "bwinton", and learning the strange variant of Pascal that the installer uses to script things so that I can accomplish the previous task, but by and large that portion of it is done. The uninstall portion of this grand experiment, on the other hand, has been a royal pain in the ass. It was fairly easy when all I did was copy some files somewhere and I was done, but when I switched to registering the conduit with the HotSync application (so that it would run, instead of just sitting there), I started getting errors, and nothing I've attempted so far can get rid of them. I guess I can sort of understand why it thinks it can't delete the file, but I swear to you, I've unregistered the dll it thinks it can't delete about four different ways, and furthermore, as soon as the uninstaller exits I can delete the files either from the command line, or from the Windows Explorer, without any problem. Heck, I can even run the installer again, and it will overwrite them without complaining. I just can't figure out how to do it programmatically. How annoying.

So,if anyone out there has any experience with InnoSetup, and/or uninstalling Palm Conduits, I'ld appreciate it if you could drop me a line, and I'll explain in more detail what I'm trying to do, and how it's failing, or you could check out the source to my setup program (which generates the .iss file for InnoSetup), and hopefully point out my misunderstanding from it.

Update: I think I'm going to switch to NSIS. I tried the innosetup newsgroups, but they weren't as helpful as I would have hoped. I'll continue to read them, in the hopes that someone will answer my question, but I think that I'm not going to get an answer, or at least not one that I like, so NSIS it is.

[Posted at 10:07 by Blake Winton] link