Older blog entries for MichaelCrawford (starting at number 229)

Warp Life to be GPLed Real Soon Now

As I promised a couple days ago, I will be placing my iOS App Warp Life under the GPLv3 license, and will not release it through the Apple App Store, but instead will require users to jailbreak their devices to install it.

There's nothing about Warp Life that would lead Apple to reject it from the App Store. There are perhaps eight competing Apps that also implement Conway's Game of Life. Rather, I am rejecting the App Store because I object to Apple's way of doing business.

However, it will be a few more days before the actual release of the code.

Besides replacing the "All Rights Reserved" notice in all the sources, I need to place a license notice in the Credits screen, with a button that brings up the full text of the GPLv3. I also need to drop the COPYING file - that same GPLv3 text - into the user's Documents folder, so they may retrieve it via iTunes File Sharing. I may also enable the user to send it via email, which for most people would be quite a lot easier to deal with than the incredibly poorly designed and highly counterintuitive iTunes File Sharing.

Because my company Dulcinea Technologies Corporation owns the copyright on the code, I don't actually need to do that to comply with the GPLv3 myself. But anyone who redistributes my code or creates a derivative work would have to do all that.

It is plainly apparent to me that the vast majority of coders who claim to know what Free Software is all about have never actually read the full text of the GPL, let alone understand how to comply with it. That's why so many of those who claim yet fail to be Dirty GNU Hippies get so self-righteously outraged when they see someone charging money for GPLed code, despite that not only does the GPL specifically permit one to do so, but even Richard Stallman says it's OK to sell Free Software.

One of the requirements of all versions of the GPL is that the Credits Screen, About Box, or output from the command line state the license - "This is Free Software, etc." - and that it say the full text of the license be in an accompanying document, typically named COPYING or COPYING.txt. If the COPYING file is missing, the user is advised to request it from The Free Software Foundation.

I have no doubt that if I did not have that all set up before I released Warp Life's code under the GPLv3, some clueless newbie would damn near instantaneously violate the GPL by redistributing it without all that stuff. That would not be intentional evil as with HTC's failure to release the source to the GPLed portion of its Android codebase, but simple stupidity that I wish to prevent.

There are also a couple bugs I'd like to fix before release, but those are far less important. If their fixes are not immediately apparent, I'll put them off until after the release.
I Cannot In Good Conscience Release Warp Life Through The Apple App Store

After a great deal of consideration I have decided to protest Apple's nasty behaviour by refusing to release Warp Life through the Apple iOS App Store. Instead binary installations will require that iOS devices be first jailbroken through the use of a tool such as Cydia.

I won't place it in the Cydia App Store either. Instead I'll make the App package available for free download from Dulcinea Technologies' web site.

GNU General Public License version 3 tarballs of the source as well as a written discussion of The Warp Life Algorithm - a particularly fast, if not actually the fastest Conway's Game of Life generation update algorithm will be provided at www.warplife.org. (Link to be un-broken Real Soon Now.)

Development will continue in a public way via Dulcinea's Public Subversion Repository.

The code is mature and stable enough that I don't really need "Many Eyeballs" to help with its development, but if you're into optimizing implementations of Conway's Life as I am, rather than the usual take of experimenting with the automata themselves, you may find my Objective-C and Cocoa Touch code enjoyable to work with.

You will find my code strangely uncommented. That's because while I once commented my code slavishly, the boss I had at my very first real job pointed out that comments are rarely maintained in sync with the source code.

Instead I've spent years developing a coding style that the simplest fool can readily understand. If you cannot understand my code despite its lack of comments, I regard that as my own failure as a coder, rather than any inability on your part.

It's going to take a day or two to relicense Warp Life's sources as well as to fix a configuration problem that I'm having with my SVN server. I'm also moving Dulcinea's site to a new box that runs a different distro than the old box. But try to be patient, for the next few days my focus will be first on the release of Warp Life's source as well as a detailed written explanation of why I decided to do all this.
Will Write Code For Food

I'm looking for a job in Silicon Valley.

I have twenty-two years experience as a software engineer. I am particularly good at C, C++, Objective-C and various assembly codes.

I have extensive Macintosh experience, not just Carbon and Cocoa user interface but also Mac OS X IOKit device drivers, and a fair amount of embedded experience as well.

Most of my driver work has been for storage using a variety of technologies: PCIe hardware RAID, FireWire/SBP-2, USB and iSCSI.

I've been running Linux since 1994, and these days have a Core 2 Quad Xeon box that runs Fedora. I have done a little Linux driver work as well.

I'll accept both contract our perm positions, and am available immediately.

Find me a job and I'll name my firstborn after you. :-D

Thanks for your help! -- Mike

Looking for a Job in Silicon Valley

I'm looking for a job as a Senior Software Engineer. I am no longer self-employed, but am looking for a perm job. I will take a contract to tide me over until I can find one, but only on a W-2 basis.

I have twenty-one years experience, twelve of them spent coding in C++.

Other strengths include Mac OS X (both UI and drivers, known in Mac-land as kernel extensions), Linux (userspace), embedded systems (mostly FireWire and storage), and various assembly codes.

I am one of the very best there is at low-level debugging.

You could really help me out if you forwarded the link to my cover letter or resume to anyone who might be interested. Perhaps you could get yourself a nice referral bonus.

Thanks! -- Mike

Attention iPhone Infidels!
or, Music That's Free as in Freedom
or, Pimpin' My Wares at the WWDC

If you're at the Apple World Wide Developer Conference in San Francisco this week, track me down and I'll give you a free CD of my album Geometric Visions: The Rough Draft. Autographed!

It has the Creative Commons Attribution-ShareAlike license

While quantities are limited, I don't want to bring any back home with me for want of takers.

If you can't make it to the conference, send your snail mail address to support@oggfrog.com and I'll be happy to mail you one. I'll send it anywhere in the world that the US hasn't embargoed.

If you want to arrange to meet up at the conference, email me at mdcrawford at gmail dot com. (It's hard to check my Ogg Frog mail when I'm away from my own computer.)

I expect I'll be wearing my Tilley Hat, but I have since grown a goatee (no moustache though; it's my experimentation with hipness.):

28 Feb 2008 (updated 28 Feb 2008 at 02:57 UTC) »
Free Music

Come hear me play piano!

Next Show: Thursday, February 28, 7:00 PM

Open Mic
Bare Foot Coffee Roasters
5237 Stevens Creek Blvd
Santa Clara, California

Map

- Take the Lawrence Expressway / Stevens Creek Exit from Highway 280

Admission Free - All Ages.

Free compact disc to be given to all attendees.

Geometric Visions Album Cover

I expect to play there most Thursdays from now on, and will soon start playing more widely around the San Francisco Bay Area as well as in Santa Cruz.

Can't make it? Watch my live performance schedule for future show dates.

I'm gonna be up late burning cds tonight. I left the last batch with Bonita to give out at her school.

I've been practicing every day, and will have a new song to play. I'm also learning another new one that I should be able to play in a week or two.

I have a couple friends up in Berkeley, so I'll be looking for an open mic up there so they can come hear me play.

Open Mic Rescheduled

My appearance that I announced in my previous diary has been rescheduled from Wednesday to Thursday, January 31st. I found this out by visiting the venue - their website still has the incorrect date.

(I updated my previous diary to have the correct date.)

I expect to play Open Mics about once a week from now on, and will occassionally travel to other cities to play them. Keep up-to-date on my appearances by watching my live performance schedule.

All of my music is Creative Commons-licensed. You can download it here. Sheet music too, if you play piano.

26 Jan 2008 (updated 30 Jan 2008 at 09:07 UTC) »
Music

I'm about to start playing Open Mics again after a long hiatus. Also starting in late February I'm going to start playing on the street - I got a battery powered amp for my keyboard.

I'll be announcing all my shows on my live performance schedule. My first appearance will be:

Open Mic - Thursday, January 31, 7:00 PM - Note The New Schedule!

Bare Foot Coffee Roasters
5237 Stevens Creek Blvd
Santa Clara, California

Map - Take the Lawrence Expressway / Stevens Creek Exit from Highway 280

Admission Free - All Ages.

Everyone who attends will be given a free copy of my CD Geometric Visions: The Rough Draft - it is Creative Commons licensed:

Geometric Visions: The Rough Draft

See you there!

Rock and Roll!

I was in Sunnyvale, near the "Blue Cube" at the south end of Moffett Field when the quake struck. I was on the second floor of a large office building, talking to my wife on the phone, who is back in Nova Scotia.

Suddenly I started shouting, and she said "What, What?" and I said "Earthquake! I better get out of the building!"

Oddly, I was the only one who evacuated. But I remembered the October '89 Loma Prieta quake very well, as I lived in Santa Cruz at the time, and there were many aftershocks. I was concerned an even bigger shock might hit.

When I got outside, my cell phone wouldn't work, so I had to call my wife collect from a payphone to tell her I was OK.

Ask Advogato: PHP and MySQL?

I want to write a small web application for use on one of my websites. I'm happy to Read The Fine Manual, but I ask your advice on which parts are most pertinent to my problem. The reason I don't want to just figure it all out for myself is that there is a dauntingly large quantity of documentation available online, so I don't quite know where to begin.

If you don't want to respond here, you can either email me at (Harvest This, Spammers!) michael@geometricvisions.com or post in my Kuro5hin diary, where the topic has its own individual page.

While I have done some web application programming before, it's been a long time, and it was all done in Java with Enhydra. Enhydra's a great application server, but it's vastly more powerful than my simple needs require. Also my web hosting service actively supports PHP and MySQL, so I wont need to ask the hostmaster to install anything.

It's been so long since I've done any SQL that I've completely forgotten it, and I've never designed the schema (the layout of tables and fields) of an SQL database before.

There is also the issue of security, a topic which has evolved vastly since my last web programming job back in '99.

I did work through the simple PHP tutorial at php.net, and feel that it would probably work just fine for what I want to do.

I think my database would only require a single table with a dozen or so fields.

I'd like to have a web page with a form on it. One of the form fields would accept the user's email address. When the form is submitted, it would be added as a new record to the table, with each form field being placed into its own field in the record. There would be some additional fields as well.

There would be an integer field whose value would indicate whether the record was new, had been downloaded, or was old. Newly-added records would be set to new.

Periodically I would log into a password-protected web page and download a text file containing all the new records. The text file would be formatted as either tab-delimited, CSV (comma separated values) or maybe XML. There would need to be some way to prevent user-entered data from screwing up this file, for example if a user entered a comma in one of the form fields.

Once the download has succeeded, the included records would be marked as downloaded. I think it would be best if I were to manually order this, rather than having it done automatically when the download completes.

Again on a password-protected page, I would be presented with an HTML table of the downloaded records, and I could manually mark them as old. I would want a way to either mark them all at once, or individually. Gmail has something like this, where one can check individual emails, or check all the emails displayed on the page.

When this happens, the email address from each record would be used to send the user a confirmation email; this would require my PHP script to either talk SMTP directly, or maybe pipe some text into /usr/bin/mail.

Note that this would not be used for spamming my users; the page containing the form would inform them that the confirmation mail was going to be sent, and that would be the only mail I'd ever send in an automated way.

If you think there's a better way to do this than PHP and MySQL, I'm completely open to it, however, I'm very loyal to my hosting service (I've been with them for ten years), and I hate to bug the hostmaster to go out of his way for anything.

Thanks for any help you can give me -- michael@geometricvisions.com

220 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!