Snail in a Turtleneck
Kristina Chodorow's Blog
Kristina Chodorow's Blog
Apr 2nd
I finally put up another comic. I’ve been delayed for two reasons: first, I’ve been really busy with work. I’ve done some major work on the PHP driver, so it should now be easily installable on Linux and Mac (it’s also faster).
Second, I’ve been wanted to add a “one shot gag” section, which requires some fairly major rewriting of my site code, so I tried to get Git set up on Hostmonster (my hosting provider). I got it set up fine, but the money-grubbing jerks at Hostmonster block outgoing ssh unless you pay for a dedicated IP. So, I can’t put the source of my site on Github, which is sad. However, at least I have Git set up locally, so I don’t have to worry about breaking stuff.
Anyway, hope people enjoy the one-shots. More coming.
Mar 27th
(Which is a terrible book, by the way.)
I read Schneier on Security, which is an interesting blog about security and squids. (Wait, is the plural of “squid” just “squid”?) See, every Friday he post something squid-related, and last week it was an 8-foot squid pillow. Well, obviously I had to make one for myself.
I went to one of the fabric stores on Orchard Street to get fabric. “How much per yard?” I asked the salesman as he pulled down a bolt.
“Five dollars.”
It had a stupid flowed pattern on it, and I wouldn’t want my 8′ stuffed squid to look ridiculous. “How about that one?” I asked.
“Five dollars.”
“And that one?”
“Five dollars.”
“Okay, I’ll take two yards. How much is a package of stuffing?”
“Five dollars.”
In retrospect, I should have asked for ermine.
I got home, cut the pattern out of newspaper, pinned it to the fabric, and cut out all the pieces. I pinned everything together and I pulled out my sewing machine. I put the first piece in and started up the machine. It went fwipafwipafwipafwipa. All was right with the world. As I started down the second seam, it went fwipafwipafwipaSCREEfwipaSCREEfwipaSCREECH-SCREECH-SCREECH.
I stopped.
I unscrewed the case and looked for parts that could be oiled. There were, as far as I could tell, two moving parts. I oiled them, put everything back together, and tried again. Now, not only did it screech, but the needle didn’t move up and down. I had apparently oiled something that once moved the needle through friction.
So now I have a paperweight. I’m going to have one more look at it and then find a sewing machine repair shop.
It annoys me that I can easily partition my hard disk or install more RAM on my computer, yet a machine built in 1918 has gotten the best of me.
Mar 15th
Keeping with this website’s themes of mollusks and dating…
Live, nude mollusks!
An entertaining, educational, very strange video about how slugs have sex. Not for the faint of heart. There’s more mucus involved than you can even imagine:
Mar 14th
I am the first result for “snail in a turtleneck”! (Okay, not terribly surprising.) What was really entertaining was the ads it generated, though:

Target: for the finest in snail turtlenecks.
Mar 11th
I was eating lunch today and reading my RSS feeds. Every half-dozen spoonfuls or so, I’d look at my bowl to plan my next phase of attack, but mostly I was just reading the blogs. Near the end of my soup, I looked down and saw a big clear chunk on my spoon. Now, I’ve been trying to get better about eating onions that haven’t made a trip through a Cuisenart, but this was rediculous. I picked it out. And realized that it was a chunk of glass.
A lot of the glasses have cracks in them, so one must have broken in the dishwasher and a piece fallen into the bowl. I’m going to be very careful about rinsing bowls out before using them, from now on.
I keep imagining it slicing open my gums, tongue, throat, or stomach, if I hadn’t happened to look down. Ugh.
Mar 9th
I was looking at real estate listings today and there was one place that had “1.1″ baths. I’ve heard of 1.5 baths, but what’s .1 of a bath? A bidet?
Mar 4th
I saw a video today about how Microsoft imagines 2019 to be. It gave me the idea of how to do a better RSS reader, which is something I’ve been thinking about for a while. It’ll have a main page with snippets of stuff in sections like a newspaper, and you can click on a section to expand it, then close it when you’ve read it and if it’s marked as read, it’ll be deleted from the main page.
Hopefully I’ll be able to program it up soon, maybe this weekend.
Feb 23rd
I’ve been fighting with phpdoc for about a week now, trying to figure out how to document my extension, which is a combination of PHP and C code. I finally figured it out, and since I haven’t seen this documented anywhere, I figured I’d reproduce the steps here:
Download phpdoc from CVS. No! Not PEAR, you fool! CVS! For some reason, the package you download with PEAR and the package you get from CVS are completely different. Luckily, PHP has some instructions on how to download the package with CVS.
For my lovely Javadoc-style PHP-code comments, phpdoc can be used to convert them to XML:
$ phpdoc -d path/to/php/srcs -t output -o XML:DocBook/peardoc2:default
Cool! Now you have your PHP documentation converted. Now for the C code. CVS phpdoc (and only this phpdoc, not PEAR phpdoc) has a script in scripts/docgen called docgen.php. You use this as follows:
$ php docgen.php --output tmp --extension extname
That gives you an outline to fill in for you C documentation. Now you just need to mush them together and generate the manual, to see what it looks like. This is where I got stuck. Here’s what I figured out: in phpdoc/manual.xml.in, add 1 line:
&reference.mongo.book;
…except replace “mongo” with whatever your extension’s name is.
Put your xml documentation in the directory phpdoc/en/reference/mongo. In phpdoc/en/reference/ add a file called entities.mongo.xml, and use the other entities files as your guide for its contents.
To actually generate the documentation, go to phpdoc/ and run:
$ php configure.php --with-partial=book.mongo
$ phd -d /path/to/phpdoc/.manual.book.mongo.xml
Et voila. Point your browser to file:///path/to/phpdoc/html/ref.mongo.html and you can see your documentation.
Feb 21st
This is pretty geeky, so sorry non-technical reader. There’s a glossary at the bottom if you’d like to follow along.
I’ve been developing a PHP database driver for work, and this week I proposed it as a new PECL (pronounced “pickle”) package. Unfortunately, they use CVS for their packages. I’m used to Git.
So, I created a cvsroot/ directory and imported my driver to it. After a couple tries, I figured that out. Then I was confused, all my files were suddenly named file,txt instead of file.txt. Then I realized that this was my master repository, and I had to check out code from there. So, I made a cvsstuff/ directory and did
$ cd cvsstuff $ cvs co mongo
And it did the right thing! Cool.
So now I had to do it with php.net’s remote repository. I tried checking out a couple packages to get a feel for the syntax. Then I figured out my import command, triple checked it, and was about to press enter when… hmm, where was it getting the path to the directory I was importing? I was in my home directory, so… oh, crap. So, I almost uploaded my home directory to a public repository on php.net (for Windows users, this is roughly equivalent to uploading My Documents). My hand was hovering over the enter key, but I didn’t!
I successfully uploaded my driver, and all was well.
Non-technical person explanation:
$ pear install cool-package
And then you have cool-package installed on your system, too. All the packages are open source.