Interesting post about privacy from James Fallows

So James Fallows posted “Avatar” Life in the Digital Age on his Atlantic blog. He quoted a college student (“Will S.”) he knows as saying:

My existence on the internet might be with my real name, but my suspicion is that the vast majority of people are creating Avatars of themselves on the internet, untagging Facebook photos and writing blog posts to fit the image they wish to project. Weigel is jobless because he chose not to maintain the avatar.

There is probably quite a bit of truth to this. I have chosen not to use names other than my own and not to have any avatars of myself on the web. If you find “khuxtable”, “kahuxtable”, “Kathryn Huxtable”, etc., it’s either me, or someone else with my name or initials. (There are several Kathryn Huxtables online. I was the first, since I was working at a university when the internet expanded.) If you find a different sort of name, it is not me.

I’m unlikely to pay for this in any real way unless we turn into the Republic of Gilead, in which case I’m heading for Canada.

I’ve chosen not to tag photos or to join lots of groups online, but that’s more because I find the associations resulting from them to be annoying.

Against iPhone Framework

I’ve gotten past my general disgust at the look of the Objective-C language. After all, I programmed a lot of Perl over the years.

But no garbage collection on the iPhone? This is 2010! You’ve got to be kidding me!

“Hiya developers, hiya, hiya, hiya. We’ve got this device with seriously limited memory, so we’re going to force you to manually manage the memory on it. If you mess up, your app will bog the device down and probably eventually cause it to restart. Ya got a problem with that?”

Well, yes, now that you ask, I do.

I am not of the opinion that any computer language is perfect, or that any framework is perfect. But Java, in my opinion, comes close. I’m not endorsing any particular framework, and the standard Java API has its issues, but it threads a nice balance between usefulness and simplicity.

IOS 4 (formerly iPhone OS 4)

The Gold Master of IOS 4 was released to developers this week. I downloaded it and installed it on my iPhone 3G, which is the oldest hardware it will run on. It runs a bit slowly, but that’s to be expected.

There are features such as the multitasking that are advertised not to work on the 3G, but everything that’s supposed to work works. (Are wallpapers supposed to work on the 3G? They don’t.)

I’m particularly impressed with the email client. It now has a unified Inbox, so incoming mail from all of your accounts is aggregated into a virtual folder and presented to you as one. You can still see each Inbox individually if you desire. Also, we finally have threaded messages.

Unfortunately, they’re not using the In-reply-to header, but rather by matching subject lines. This method is common, but rather stupid, since any messages with subjects like “Re: Tonight” will be threaded, even when they are completely separate messages about scheduling, possibly separated by months or years in the Inbox. Mac Mail on OS X also uses the subject line, which is stupid, in my not so humble opinion.

But it’s still a great feature. I’ve been missing it.

The other big user-visible change is folders for apps. You can now group apps into folders on your screen. Pressing the folder brings up a list of the apps in the folder, allowing you to select one. Pressing the Home button or pressing off of the list of apps returns you to the screen you were on. They can’t be nested, but who’d want to do that on a phone?

I haven’t tried tethering, because it changes my contract with AT&T, and I don’t really need it at this point.

So far as I can tell, connecting a Bluetooth keyboard does not work on the 3G.

Faces and places in the photo app and photo pickers works great! It imports the faces from iPhoto on my Mac just fine.

And creating playlists in the iPod app works fine.

All in all, this is a good update to the operating system. If I were using a 3GS I might just stick with it. Since my phone will be two years old this fall, I have been considering a new phone.

I’m still dithering between a simple phone with network-based tethering plus an internet tablet with just WiFi vs a new iPhone. If I go the former route I’m dithering between an iPad and an as yet unreleased 7″ Android tablet.

DTerm is a great app for the Mac

I’ve been using git for awhile now and I also use Eclipse as my IDE. Eclipse doesn’t yet have good support for git, though they’re working on it. So I do a lot of command line git commands.

I found the DTerm app and it’s great! Basically, you just press Cmd-Shift-Enter and a command line window pops up with the directory set to the directory of whatever window was on top. So if you’re editing a file in Eclipse, the DTerm window comes up in the directory containing that file. You can do your git command and get the results, then just press Escape and the window goes away. It remembers the last several commands and their results.

Pretty clever!

XCode still sucks

Nope. I was right the first time. XCode sucks.

Getting back to work on Sea Glass

I’ve been taking a break for the past month or so, playing with mobile device development. I’ll get back to that, but it’s time to get back to work on Sea Glass.

Databases – persistence layer or primary entity?

So a couple of weeks ago I was in San Francisco talking with Ken Orr and my old high school/college friend Stan Switzer and Stan was holding forth on an idea that I think is pretty self-evidently true.

This is that when considering software systems, the database is the primary entity, and any applications, interfaces, etc., are secondary to it. This contrasts with a certain viewpoint in “software engineering” (more later on that) that a database acts as a sort of “persistence layer” for your software, keeping data across uses, systems, etc.

Though I think you can certainly treat a database as a persistence layer, I think that Stan’s argument is generally valid. In particular, I note that database schemas are notoriously difficult to update, because all the software that uses it must also be updated. For the same reason the data formats themselves tend to become a bit rigid with time and harder to change.

We saw this with the whole Y2K situation, where suddenly the fact that for decades our databases had only stored two digits for a year became important. The people who designed the old software were aware that this would be an issue at the century turnaround, but thought that the software would all be obsolete and replaced by then.

And most of the software was replaced, but the underlying data was not.

Stan pointed to Hibernate as an example of a “persistence layer” that didn’t really believe its own hype, but knew it had to talk the language of the persistence layer folks. Hibernate actually does what you want: it mediates between software and a database such that many crufty database details can be avoided, but without the inherent limitations of APIs and frameworks that are simply persistence layers.

I suppose I’ve always intuitively understood this. Data representation and database design is always done much earlier than any code considerations when I’m working with a project that has much in the way of data.

XCode sucks

Okay, I don’t really have enough experience with it to make that judgment, but I doubt further familiarity will change my opinion.

I’ll be including politics on the main page

I don’t think anyone cares, and I don’t think very many people are reading this blog, so I’m going to start including politics on the main page.

This simplifies my hacks to WordPress.

Against publicizing private lives

“In one short decade we have been reconditioned to be entertained by the most private areas of other people’s lives. We’ve become the family dog who’s allowed to eat anything that falls on the floor, and the press is the little kid in the family who keeps dropping food.” Aaron Sorkin

Sorkin’s larger point is about the Newsweek brouhaha about gay actors playing straight characters, which I, personally, have no problem with. I think Sorkin has the right of it.

We, as a culture, are obsessed with reality TV and celebrity gossip. We spend way too much time thinking about, or even just being informed about the lives of people we don’t know and shouldn’t care about.

Sorkin mentions Sandra Bullock’s divorce, which I admit I have heard of. (I had no idea that there was a current person named Jesse James, though. Strange.) He’s right. We shouldn’t care much about what happens in Bullock’s life, unless we know her or are her friend. Yes, I know, most religions do say we are each others’ keepers, and I tend to agree with that, but in the case of someone so unconnected with me I’ll leave it to her friends to worry about, and also the laws of our country.

I don’t care that Rock Hudson was, or Neil Patrick Harris for that matter is, gay, except insofar as their being closeted or out tells us something about our society. I never met Hudson and am unlikely to meet Harris. They’re both fine actors. That’s the only material point.

Now to contradict myself, partially. I don’t tend to watch Mel Gibson movies, partly because he’s a homophobic jerk, but mostly because there’s a point of view expressed in the movies that I don’t care for. (Yes, I’ve seen Braveheart.) That’s one example among many.

And I don’t object to outing closeted gay people when their public actions are causing great harm to the LGBT community. I think that kind of hypocrisy is despicable.

But the larger point remains, only partially obscured by the fact of human existence being a messy thing. I think it’s rare to be able to make blanket judgments of actions that could be taken in an abstract situation.

Anyway, these are just some random thoughts on the subject, based on seeing Sorkin’s article and seeing several people lift the same quote I did from it. In closing, I leave you with Walt Whitman:

Do I contradict myself?
Very well then I contradict myself,
(I am large, I contain multitudes.)
    Walt Whitman, “Song of Myself”