Archive for the 'Website' Category

The new and improved Cocoa links card

Tuesday, March 15th, 2011

I’ve previously mentioned that I made a business card full of useful Cocoa and Cocoa Touch links to give to new Cocoa and Cocoa Touch programmers at events such as CocoaHeads.

Today, I have updated it and given it a web page. 1-up and 10-up (US Letter) PDFs are available there, as well as the full list of unshortened links.

I encourage you to print out the 10-up onto perforated business card paper, or have it professionally printed (keeping in mind that you probably won’t need 1000 of them), and make the cards available to novice Cocoa and Cocoa Touch programmers at the CocoaHeads or NSCoderNight events you attend. Just please be sure to print both sides, since my credit link is on the back.

End of the Graveyard

Saturday, December 4th, 2010

The iPhone Application Graveyard is now closed.

I’ve been meaning to do this for months; I’m just now getting around to doing it.

I have a few reasons:

The Graveyard has served its purpose.

The iPhone App Store today is more open and more free than it originally was. The rules are now available to App Store developers, and several apps that Apple previously either rejected or “pocket rejected”, most prominently Google Voice, are now available in the Store.

I don’t know how much of this is attributable to the Graveyard and how much is just Apple having figured these things out, but to whatever extent the Graveyard is responsible, it has done all it can.

The Graveyard can do no more.

Apple’s made very clear that they intend to “curate” the App Store. It will never be a completely free, do-as-thou-wilt market like the Mac market still is, and I have no hope that Apple will ever make the iPhone App Store optional like the Mac App Store will be.

I see no way that the App Stores can ever be more free without losing that curation factor. And it is a factor—I can’t ignore that Apple checking every application probably, hopefully filters out some effluent from the influent stream.

I don’t update it.

I’ve got a dozen different things to do that are more important than updating the Graveyard.

I want to work at Apple.

Cold, hard reality is that I want to work for Apple, and they will not hire a person that has a page on their website decrying their policies. (Don’t get me wrong: I wouldn’t expect them to.) This isn’t the only reason why I’m killing the Graveyard—everything I wrote above is true—but it is one of them.

So, this position is now open.

If you want to keep the Graveyard alive, you can do that by taking it over.

The Graveyard is implemented as a couple of plain-text hand-edited databases and a Python script that converts them to the web page (as a static HTML file) and Atom feed (as a static XML file). This is how the Graveyard stayed up in the face of being Fireballed, Macworlded, etc.

You can keep it that way, or you might turn it into a wiki. I leave the choice to you.

If you want to take over the Graveyard, email me. I’m sure you know my email address by now. I’ll send whoever I think can best run it a zip archive of the data files and Python script.

You may also be interested in the Application Submission Feedback site. I don’t know who runs it, but it’s a great guide to what you can’t do in the App Store.

Even more works of John Calhoun

Monday, January 25th, 2010

I’ve updated my shrine to the Glypha games with even more cool old stuff:

If you want to play these old games, you’ll need Mini vMac and its dependencies. The newer versions of Glypha (and possibly Glider) may require a later-generation emulator. That’s assuming, of course, that you don’t still have a real, working old Mac.

Deep thanks go to Steve White for contributing a number of the additions. The page would be only half as long without his help.

Blog posts vs. web pages

Monday, January 25th, 2010

Steve Smith says “Stop Blogging”:

I mean it. All of you people are writing fantastic, useful articles about code, methods, and technologies, but you’re putting them in blog posts — a date-based format that encourages us to leave things as they were, historically.

This got me to thinking about the difference between two of the tutorials I’ve published.

The pointers tutorial is a single web page. There’s a date stamp, but it’s way down at the bottom. The ASL series is nine blog posts.

In the three years since the previous version of the pointers tutorial, dozens of people emailed me to tell me about its major errors.

In the two years since I published the last of the ASL series (ignoring approximately a week afterward), nobody has told me of an inaccuracy in any of the posts.

There are a number of possible explanations for the ASL series receiving fewer (that is, no) corrections:

  • That its audience is narrower: Anyone who programs C has to deal with pointers. Only a very few Mac OS X programmers will ever touch ASL.
  • That it is less visible: One of these is linked from my home page and plenty of CS course reading lists (exhibits A, B, C, and D), and was linked for a while from the Wikipedia article on the C programming language; the other is practically unknown to anyone who wasn’t subscribed to my blog at the time.
  • That I’m just that good. (Ha!)
  • That ASL hasn’t changed at all since Leopard. (Ha!)

Smith writes from the perspective of the author and publisher, who must maintain a web page; he says that the author and publisher finds no (or not much of) such obligation for a blog post. I think the difference in my supply of corrections hints at a reader side to this, although, as shown above, my two examples are hardly comparable.

I have been meaning to move the ASL tutorial into a pointers-style web page at some point, although I don’t know when. I may start receiving corrections then, which means I’ll have to spend time to fix them. The flip side to that is that if I leave it as blog posts, I’ll have that time for other things, but the posts will be consigned to periodically-increasing inaccuracy.

I expect to think more about Smith’s suggestion.

There’s also the merit of the word “blog”, which is wearing thin for me.

Beware of potential domain registrar scammers

Saturday, March 15th, 2008

UPDATE: Sören Nils Kuklau, in a tweet, pointed me to another person’s blog post about these people, which tells of a C&D letter they received from Domain Registry of America. Not sure what I’ll do if I get such a nastygram.

When you own your own domain name, you tend to get shit like this in the mail:

The lowest third of a letter from “Domain Registry of America”, looking very much like a bill.

That’s actually the lowest third of a folded letter. So when you first take it out of the envelope, it looks like a bill. Only when you unfold it do you see that it’s not quite a bill:

The full letter from “Domain Registry of America”.

I think that they intend for you to see the looks-like-a-bill part of it, conclude that it’s a bill, and pay it—and thereby switch your domain name registration over to them.

The back of the letter contains the “registration agreement”:

Paragraph after paragraph of legalese.

I didn’t bother to read all of that text (I have no intention of agreeing to it anyway), but I did notice this bit at the top:

This Registration Agreement (“Agreement”) sets forth the terms and conditions of your use of domain name registration and related services (“Services”). In this agreement “you” and “your” refer to you and the registrant listed in the WHOIS contact information for the domain name. “We”, “us” and “our” refer to eNom, Inc., Wild West Domains, Inc., BRANDON GRAY INTERNET SERVICES INC. (dba “”), and DROA

Emphasis mine. So not only are these people trying to bullshit their way into being my registrar, but they’re not even a registrar—just a reseller for eNom, and two other companies I’ve never heard of.

By the way, the type in that agreement is really freaking small. I measured the capital A at the end of that first paragraph, and found that it’s exactly 1 mm tall.

So whenever you get anything in the mail about your domain name, read it VERY thoroughly. Especially don’t trust anything that doesn’t come from your registrar.

I’ve been hotlinked!

Thursday, July 5th, 2007

So I was looking through my referers for June and noticed this row:

# Hits Referrer
4 671 1.17%

Grepping the raw logs turned up lines like this one: ☃☃.☃☃.☃☃☃.☃☃☃ - - [31/May/2007:06:01:11 +0000] "GET /plusminus/minus-8.png HTTP/1.1" 200 75 "" "Mozilla/5.0 (Windows; U; Windows NT 5.0; pl; rv: Gecko/20070309 Firefox/"

I’ve been hotlinked!

I always love it when people like and use my stuff, but in this case, it’s taking out of my bandwidth allowance. Not by much—those 671 hits add up to a whopping 50 K for the month (thanks, SuperPNG!)—but that’s not the point. This sort of thing is generally not kosher.

I wonder how goatse looks at 8×8 pixels…

Nah, I’m not that evil. Here’s what I’ve made to swap it out with:

An animated GIF that says “HOTLINKED!”

On the other hand, the img element on the hotlinking page doesn’t have a width and height, so I could always use a much bigger image. Perhaps 8.5×11″.

But I haven’t done either of those yet. I’ll give them a chance to save themselves first, by emailing them and asking them nicely to host the image themselves.

I’ll let you know what happens. ☺

UPDATE 21:47: I just sent them (I hope) this message via their contact form:

I noticed that you’re using the minus icon I created on your internationalization page:

That’s cool; I’m glad it’s finding use. However, I do ask that you host the image yourself, rather than linking to it on my site.

I say “I hope” because I can’t read Polish. Here’s the form’s response:

Wiadomosc została wysłana. Dziękujemy.
Kliknij TUTAJ aby przejsc do strony głównej

So, I hope that worked. I’ll check back in a week and see.

UPDATE 2007-07-24: OK, a bit late, but I just checked. They’re no longer hotlinking, which is good, but they’re also no longer using the minus icon at all. Ah, well.

Announcing my new neuroblog, as well as the word “neuroblog”

Monday, May 21st, 2007

The concept is basically that of a Tumblelog, but I’m not using Tumblr to host it, so it seems to me like it would be disingenuous to call it a Tumblelog. (UPDATE 15:32: I just checked the Wikipedia article for “Tumblelog” (probably should have done that earlier, hm?); it says that the word originated from a source other than Tumblr, so maybe I don’t have to worry about it.)

So it’s a neuroblog. Thoughts of the Bored is a dump of my brain; I’ll post links, brief commentaries, programming insights—anything that’s interesting enough to show the world, but isn’t big enough to merit a whole blog post or sufficiently worth-keeping to merit a bookmark on my (in the latter case, the link is context rather than the focus of the post).

If you want a feel of what it’ll be like, just check out the front page—there are already a bunch of posts there.

Beads how-to updated

Sunday, March 18th, 2007

I just updated the two paper images from my How to draw Beads article.

Brief recap: Each bead in the application has a sheen. The how-to includes two mock-ups that I drew on paper so that I could more easily write the Quartz code to draw them in the computer.

Those who saw the article before may remember how awful the mock-ups looked. In case you didn’t or you don’t, here’s how awful they looked:

First draft of the bead sheen.
Second/final draft of the bead sheen.

Yowch. I didn’t have a scanner back then, so I did the best I could with my Zire 71‘s built-in camera. Mainly, it suffered from poor lighting: the Zire 71 is very sensitive to having or not having Just the Right Amount of light. In this case, I was on the not-enough side, so I had to use Photoshop to try to make up the difference.

I said to myself that when I got a scanner, I’d redo the images. I got one last week, so now I’ve done it and you can see the glorious results:

First draft of the bead sheen.
Second/final draft of the bead sheen.

If you’ve never seen the how-to before, have a look. There’s some good info there on drawing and Quartz.

You know MWSF2007 has started when…

Friday, January 5th, 2007

It’s finally here: The MWSF 2007 Edition of Keynote Bingo is out. Just in time for the start of the Expo!

It’s very small — the whole disk image is about 57 K, using UDIF+bzip2 format. As you may guess from that, the disk image requires Tiger; there won’t be a Panther version this time, because the app requires Tiger too (for PDFKit and NSError presenting). Instructions are included on the disk image, in the README file.

I would encourage you to download your copy now, or at least very soon. When I released the WWDC 2006 version, the vast majority of the downloads came within the half hour or so before the keynote started. At the time, I was on GeoCities, so that drove me straight into the hourly bandwidth limit. I don’t have that problem anymore, being on TextDrive now; even so, you should get your copy now to help the server and its pipe not be swamped come the keynote.

Here’s hoping you get a bingo!

Keynote Bingo MWSF 2007 Edition page is up

Tuesday, January 2nd, 2007

The keynote looms ever closer, and so does the bingo! I’ve now posted the MWSF 2007 Edition page, complete with the sneak preview. (You can tell that seed numbers are now printed — this one is marked “Card #0”.)

It’s still not too late to think of things to put into those cells. You can propose new strings either by commenting on my “Call for strings” post or by emailing me (my address is on my front page).

I feel good about Mac open source

Monday, October 2nd, 2006

(I’ve had this brewing in a VoodooPad page for some months now, and have finally gotten around to implementing it.)

I feel good about Mac open source.

Many of my fellow Mac programmers have made reusable source code available under free licenses, such that any other programmer can use it in their applications. This abundant generosity impresses me, and at this point has moved me to build a catalog of this code.

It’s organized by author name and by program name. It’s not just applications, though; plain classes are also listed, as are useful-looking images (such as my own plus/minus button images).


UPDATE 19:07: This is actually a duplicate post of an earlier draft. I’ll see about moving the comments over to the correct post. In the meantime, if you have any further comments, please post them over there.

UPDATE 19:43: Done. I ended up just renaming this post (dropped “-2” from the post slug; you’ll need to update any links to this post) and removing the duplicate post.


Friday, March 24th, 2006

I found the problem that was preventing me from uploading things to my site at GeoCities. Turns out it was SurfRabbit, probably deleting some hidden input from the form.

Apologies to them for all the hate I’ve been putting on them lately. Soon I will be uploading the files that have been waiting for the problem to be resolved. This includes the attachments to several Radar reports.

Technorati tags: .


Sunday, March 19th, 2006

So most of you probably know that I’m in the market for real hosting. I’ve identified two companies (a host and a domain registrar) that look suitable for my patronage.

If anybody has a better suggestion for either (or both) roles, please post in the comments. I need at least 100+ MiB of space (with room to grow, so call it at least 200) with Python and PHP support (I want to give self-hosted WordPress a try, and run some of my own things which will be written in Python).

Definitely do not recommend DreamHost. I’ve given up trying to get them to change their TOS.

UPDATE 2006-08-26 21:10 PDT: And it’s done. The blog is now on TextDrive+Active-Domain. ☺

Technorati tags: .

About my grammar

Friday, March 17th, 2006

Most of you are used to me not capitalizing the first letter of sentences. I’ll still be this way on IRC, at least for a little while longer, but you should get used to seeing me capitalize. I’ve been doing this in the past couple days with my replies to emails sent to the Adium feedback list, and starting today I’ll be doing it with other emails and blog posts too. I’ll be doing it with everything eventually.

You know, I actually used to capitalize when I started on the internet. Guess I got lazy. Funny how things come full circle, huh?

Even more Hello Worlds

Saturday, March 11th, 2006

I posted something similar before: The worst possible Hello World. in that post, I presented a completely awful implementation of Hello World, which I wrote to disprove the notion that more lines of code == more productive coder.

I got to thinking about it yesterday, and decided that a new post was in order because a 50-line Hello World probably won’t look like much to a non-coder (e.g. boss) without some point of reference. so I wrote a webpage on the topic: Hello World, cut four ways. I present four different Hello Worlds (including the original Worst Possible Hello World), and explain why the first three are bad and the last one is the Best Possible Hello World.

Technorati tags: , .

Pointer talk 1.2

Thursday, January 19th, 2006

the new version of the pointer talk is live.

Run from DreamHost

Friday, January 13th, 2006

so I’ve been pursuing new webspace (but not very much, I admit — flipping through hosting providers’ websites all day is not my idea of fun). Colin turned me onto a provider called DreamHost, during their ‘777’ promotion — an entire year of shared hosting for under $10 (following which year, the price went up to the regular price of $9.99/month). sounded like a good deal, so I investigated.

I found a couple of clauses in their TOS and their domain registration agreement that concerned me. so I emailed them, one issue per email, and got replies stating that they would fix the problems. that was in November 2005.

this month, seeing that neither issue had been fixed (I had been checking from time to time during that span), I emailed them again. following is the email I got back from them, in full, unedited (except that I HTMLised it and removed their sales address). it includes my email, quoted in full, which provides all the details.



On Wed, 11 Jan 2006, you wrote:

I emailed you on 2005-11-15 or 2005-11-16 (I’m not sure which, as I used the website form) regarding two issues with your agreements:

  1. the TOS says that there is a $49.95 set-up fee for all shared hosting packages. the shared hosting packages comparison page says that several of the packages have no set-up fee. one or the other needs to be changed.

  2. the domain-registration agreement says:



when I emailed you about this previously, ‘Jeff’ replied:

We’re actually based in Los Angeles, California.

when I challenged this statement by citing the above quote, ‘Micki’ replied:

Thank you for pointing that out becasue at one time we did have canadian empolyees I will go ahead and have the devlopers edit that.

when will these issues be fixed?

I have passed this information along to our Abuse team for you.



DreamHost Sales Team   +   [sales email address deleted]
“We host your dreams”

run from them. (btw, in case it’s not clear: I am not, nor have I ever been, a DreamHost customer. but I was planning to be.)

UPDATE 2006-01-27: I just checked, and they have fixed their domain-registration agreement. it now says the State of California and the ‘Federal laws of United States of America’. still no progress on the TOS, though.

My home page, and the pointers tutorial

Thursday, December 22nd, 2005

As some of you know, I used to have a website, but when Colin‘s server ate its own hard disk, that went away. I still have the backups, fortunately, but you can’t get to those from the internet.

As some of you also know, I have a Yahoo! account.

As probably a lot of you know, Yahoo! bought GeoCities a long while back.

So for now, until I get some better hosting lined up (suggestions?), I’ve set up web space at GeoCities. The new Domain of the Bored. Yes, there’s nothing there yet.

Except for the ever-popular pointers tutorial.

Several times now, I’ve given people a one-on-one tutorial on the nature and care and feeding of pointers in C. This spiked this month, with me giving the talk twice. So I decided to write it up and make a webpage out of it.

Enjoy the pointer talk.

UPDATE 2006-08-27: Updated the pointer-tutorial link, though I (intentionally) left the GeoCities-homepage link alone. Also added a forward link to my blog post on hosting.