Adieu Links Blog

October 13th, 2006

I’ve decided to, at least experimentally, ditch my links blog.

That blog was born out of a fear that posting quickie links in here would drive away readers. But it was a major pain in the butt for me to manage two “blogs” just to achieve this artificial separation. The thing is, I don’t like the mental burden of deciding for myself whether something I’m about to post is a “link” or an “article.” I’m longwinded, so links often turn into articles just by virtue of me going off about them.

I’m going to adopt a “I’ll fix it if they complain loudly enough” attitude, and just put my links in here when I feel like it. Sometimes they might be aggregated into a single post per day, sometimes not.

If this ruins your day, please let me know and I’ll count your vote.

The Perfect Mix

October 12th, 2006

Paul Kim of Noodlesoft started blogging last month after I bugged him for months to do so. I do this kind of nagging with several people I know. I am hoping to improve the Mac blogging landscape by encouraging more development-oriented writing.

With Paul, it looks like I’ve succeeded. His latest article is a wonderful write-up on achieving the perfect gradient fill for an arbitrary path. He observes that simply applying a gradient to the bounding box can cause undesirable effects, depending on the shape being filled and angle of the gradient. Interesting!

I didn’t write the article, and I probably wouldn’t have figured out the trigonometry myself, but I can still take a little pride in that entry. In fact I get to take little tiny bit of credit for every great post he ever writes. I’m a blogging venture capitalist! If I convince enough people to write good stuff, then I can stop writing and just point people at their entries. Then I’ll have “really made it,” and I can get back to programming full-time!

Paul’s post describes how to perfectly mix colors in an arbitrary shape, but it also follows a sort of perfect mix for technical blogging. He probably followed these steps subconsciously, but let’s identify them for posterity:

  1. Identify a problem related to your own experience.
  2. Explain the problem in simple terms that non-specialists can understand.
  3. Allude to but gloss over the difficult steps you went through in solving the problem (doing the trigonometry).
  4. Present a working conclusion that everybody can share and enjoy.

Bonus points for pretty pictures with OmniGraffle.

I strongly encourage you to check out Paul’s blog if you haven’t already. It’s developing quite nicely, and I know where I’ll be turning the next time I have to fill shapes with gradients. I won’t be doing the trig myself!

Working On Windows

October 6th, 2006

The contractors are abuzz in the neighbor’s building, hammering, spackling, and chatting loudly with each other. I sit here staring into Xcode, furiously trying to figure out an NSTextField drawing issue, when I hear a choice bit of wisdom echo through my office:

“I just fuckin’ hate working on windows, man.”

Amen to that. Apparently the similarities between our trades run deep. Not more than a minute later:

“We both fuckin’ know we could do it, but it’s just a matter of looking up the code.”

Psychic hi-fives, buddy.

Google: Oh No You Didn’t!

October 5th, 2006

Today the tech community (at least all of my friends) are abuzz with news of Google’s new Code Search mechanism. Now, this is just cool. From this day forward when I’m struggling with some poorly documented, hard to use, or even private API, I should be able to just type it into Google code search and see how other people have managed to use it.

But that’s only the useful angle – not enough to really create buzz on the net. The two things people are having fun with today are exploring the answers to these questions:

  1. What does code search know about me?
  2. What private information does code search know about others?

The first is the natural extension of the ego search that many of us commit on a regular basis (or have RSS subscriptions set up to to do for us). It’s fun to read about yourself, especially when somebody else is doing the writing. For instance, I learned of several new “thanks to Daniel Jalkut” type comments in source code and readme files. Neat! I like that.

The second is more problematic. Google grabbed a bunch of the world’s “source code” … basically anything it could find with a suitable file extension, and made it easily searchable. What’s wrong with this? A lot of files with source-code extensions actually contain sensitive information, but have been left mistakenly world-readable on some web server. For instance, John Gruber points out the rather stunning example of WordPress database configuration files, including the database login and password information. He directs our attention towards Jason Kottke who has assembled several other interesting phenomena. I personally am amused by the search “This file contains proprietary and confidential information.”

Now, the quite reasonable reaction we’re likely to hear from Google is, “This was already public information, we’re just indexing it.”

True! But let’s not dismiss the power of indexing. Google is too big to “just index” anything. They’re the search engine of record. Too big to blunder with technology that endangers the innocent. I imagine that with 8000 employees, at least several hundred of them are smart coders who have been beta testing this service for several weeks or months. The chances of them not noticing these funny holes seems infinitely unlikely, considering that among my friends they were the first things we observed.

So what should they do? Stand in the way of progress to protect the innocent? I’m sure dealing with problems like this will become less onerous as time goes on and people become more sophisticated about protecting their own privacy, but until that happens, Google has special responsibilities. When they substantially advance the state of information retrieval on a world-wide basis, they should think about how they can soften the negative blows of those advances.

It’s hard to say what Google should have done, but even a well-publicized warning might have helped. For those who have been compromised, I imagine their view of Google would be a lot higher if the buzz last week had been on the forthcoming advancement and what it meant for everybody’s privacy.