Why I Can’t Become a Senior Manager :-(

Geekery, In Brief — Eric on July 1, 2008 at 6:45 pm

9 Reasons Why Application Developers Think Their CIO Is Clueless.

So. True.

(Though replace “CIO” with “senior technical management” and “Is” with “Can Be”. While you’re at it, replace “Application Developers” with “System Administrators. Let’s try this again.)

9 Reasons Why System Administrators Think Their Senior Technical Management Can Be Clueless.

Redesigning the Milk Jug

Geekery, Uncategorized — Eric on June 29, 2008 at 9:44 pm

From “Solution, or Mess? A Milk Jug for a Green Earth“:

The redesign of the gallon milk jug, experts say, is an example of the changes likely to play out in the American economy over the next two decades. In an era of soaring global demand and higher costs for energy and materials, virtually every aspect of the economy needs to be re-examined, they say, and many products must be redesigned for greater efficiency.

  1. The system is working.
  2. I love when things I take for granted are redesigned.
  3. I love when things I take for granted are redesigned for efficiency.

In the future, we will not be iPhones

Geekery, Uncategorized — Eric on June 27, 2008 at 10:11 pm

My good friend and esteemed colleague has posted his thoughts on “Why I think the iPhone is Important“.1 He adopts the opinion that “the big advantage Apple has with the iPhone is that they control the entire product, top to bottom.” He compares the iPhone to the Android platform and says, “iPhone >> android => Apple!”

Okay, so that quote was actually me summing up the argument.

I agree with his assessment that the iPhone has a great user experience. Everything is pretty sharp. Its components feel like they belong together. Things just flow.

But it is still a closed platform. One where you cannot publish software without Apple’s acceptance. One where usage of the device outside of Apple’s vision is prohibited. One where the power of a single entity has control over the utility of the platform.

This may be good for “user experience” but is horrible for the user. Is this an acceptable compromise?

If the user is limited in the usefulness of a device, knowingly or not, the user loses. There is no reason for Apple to be authoritarian on this matter. Users deserve a choice to do what they would like with their own devices.

Could you imagine what computing would have been like had Microsoft said, “We will give the masses this platform called Windows, but we will control the vertical stack. We will not allow external innovation. We will not allow other people to be creative, unless that creativity is synergistic with our platform strategy. We will control computers ‘top to bottom’.”

This too might have been good for “user experience.” But, this would have been horrible for the user. (We would be forced to use IE. There would be no such thing as Firefox.) This would have been a very bad thing for personal computing in general. And it could have happened. It did not because market forces did not give Microsoft the gift of inventing the hardware.

This is what Apple is doing with the iPhone.

That Apple created its hardware base does not make it any different. This authoritarian control will be a very bad thing for mobile computing.

I’d agree that Android is flawed for various reasons. It’s hard to program for a device that doesn’t exist. And it’s hard to program for multiple types of devices.

This was one of the downfalls of the Windows CE development back in the early 2000s. Multiple processors, multiple screen sizes, and multiple input methods all made it difficult for a programmer to appeal to a wider audience. Standardization is a powerful thing; Apple has de facto standardized its hardware platform, allowing software developers to be able to predict usage patterns.

This is kind of like the rest of the computer industry: A programmer knows, with some exceptions, that the person using his software will have a screen that is wider than it is tall, have buttons to press to input characters, and have a method to move a cursor around on the screen.

This standardization does not mean that the user has to sacrifice user experience. Nor does it mean the user must sacrifice the freedom of choice. Standardization at lower levels is a very powerful force that pushes developers to creativity. Standardization could have occurred at the hardware level and then Apple could have provided an open interface for alternative operating systems and programs. Apple could have invented the physical parts, but leave the bits in memory to be manipulated by the end user as he or she pleases. Apple could have given their operating system and their software as the default choice, but allowed users to chose otherwise.

I sit here typing this post on a Apple MacBook Pro running Linux 2.6.24 in a text editor whose source code I can download and change. Apple created the physical parts but I own the information. Does this use of their hardware design harm Apple or Apple’s brand in any way?

No. It allows them to have another happy customer, while all of the customers who choose the default on their systems being happy as well. This is how it could be on the iPhone.

Give people the choice. Never think that a closed platform is an advantage.

Recently, Jeremy Clarkson began a segment on Top Gear about the new Ferrari Scuderia with, “Do you know what’s wrong with Ferrari at the moment? They’re nerdy. It’s all about the plumbing and the wiring and the computer systems. When I drive a Ferrari, I want it to be all about passion. And excitement.”

Then he drives it. He ended the segment with, “I cannot tell you how happy it makes me feel to be driving a proper Ferrari again.”

A flashy user interface, cohesive user experience, and an open platform are not mutually exclusive goals..

  1. As in any post that ends in “Shabowza,” it is very intellectually deep and only fit for the philosopher-king. []

ICANN’s decision to expand DNS

Geekery — Eric on June 26, 2008 at 10:24 pm

The world has grown up with the internet having DNS addresses (the first part of URLs, web addresess, for the lay person) with a top level domain (TLD) of things like .com, .org, .net and so on. ICANN, the non-governmental body that governs such addresses, decided today that it would open up these suffixes to an “application period,” whereby anyone can apply for any possible TLD. This means http://icanhas.cheezburger is a real possibility.

Computer scientists and system administrators like the current system, without these extraneous, crazy TLDs, because DNS forms a very nice tree which is easy to manage. (There are specifics here that I should gloss over with the desire to not repeat how DNS actually works). Trees are a very basic computer science data structure, one whose properties are extremely well known, in conjunction with cooperating algorithms. Recursive DNS doesn’t work for obvious reasons that iterative DNS does, for example. (Yet, stragely, everyone teaches that DNS works recursively. That annoyance is for another time).

This tree structure gets completely destroyed with the addition of arbitrary TLDs. This is because ICANN is no longer valuing a TLD more than a [second-level] domain name (or the part before the .com). We will have a flat structure for DNS, exactly what it was created to prevent.

My thoughts on this are three-fold:

1. The tree structure of DNS is rather nice, but arbitrary. The tree will now become a forest, in Microsoft Active Directory-speak.

2. That the DNS root servers will have to cope with more queries is a non-issue. Root DNS administrators will step up and get the job done. They want a functioning internet before they want a tree-like DNS structure.

3. The internet doesn’t care. Having a naming scheme where there are far more than three letters after the last dot means nothing. DNS is for human consumption and should not purport to be any other type of addressing system. DNS is no longer a very structured system of naming a particular computer on the network; it is now tag-based. That’s all.

The last point needs to be expanded. The very notion of having people remember pointers to particular machines on the internet is silly. This is effectively what you do every time you type in a URL. You first identify the protocol your computer should talk to the other computer (typically http://), then you specify a human-readable form of an identifier for a machine (ericgar.com uniquely identifies a particular machine that holds the files that make up this website). Any additional bits of the URL are to specify to the machine what you actually want to see.

Take a step back. Why should a human care about contacting a particular machine on the internet? He or she should not. They want the content. The content is what matters. The service is what matters.

I predict we will see an internet where it isn’t unreasonable to search for whatever you need as a first point of contact. Want to get to slashdot? Search for news for nerds. Want to read the news from the US? Type “journalism north america” and your choices will be presented. This will take the form of a combination of Wikipedia, where there is peer-submitted, peer-reviewed links and a search engine, where the information gathering is algorithmic.

I’d imagine that this seems foreign to most people. We’re so used to specifying a URL that we take it for granted.

I think the traditional notion of DNS is going away and faster than I can imagine. I think something like google, today a celebrity, will become a very necessary tool for navigating the internet. In the future, we will consider this kind of search infrastructural, just as we do DNS.

On Google Reader

Geekery — Eric on June 23, 2008 at 8:44 pm

How much bandwidth do you think Google Reader saves, considering it can aggregate RSS pulls? I’d be really interested to see:

  • …server logs from a really large blogging site and see how Google interacts with the site.
  • …logs from several different sites to figure out how Google staggers them (hopefully distributed randomly), and
  • …Google Reader usage statistics to correlate Reader membership to RSS pulls.

The t-shirt on the right brought back memories.

Geekery, In Brief — Eric on May 10, 2008 at 8:12 pm

Blow me (nintendo cartridge).

Sir Martin Rees: Earth in its final century?

Geekery, Personal — Eric on April 22, 2008 at 10:00 pm

I was introduced to TED several months ago. For me, it’s an ingenious collection of original content, comprised of talks from some of today’s foremost thinkers. And, the vast majority of the speeches are under 20 minutes long, letting one learn about the world while brushing one’s teeth even.

Were I to post all of the clips I think are interesting, I’d end up duplicating TED.com’s index. I can’t help but share this one below: Sir Martin Rees discussing the future of Earth. Starting off by stating that he speaks “first as an astronomer and then as a worried member of the human race,” he asks the questions that I, hopefully along many others who are much smarter than me, have been thinking about for quite some time. In 17 minutes.

RSS 2.0 vs. RSS .93 vs. Atom 0.3 …

Coding, Geekery — Eric on April 5, 2008 at 8:46 pm

The other day, I was visiting a weblog that I wanted to include in my RSS aggregator. I clicked on the icon my web browser that indicates that the site provides such a feed and was presented with this*:

Great. Which one do I choose? I guess it’s clear: 2.0 is an order of magnitude better than .93, which it self must be three times better than 0.3. Right?

Uhh…No.

Okay. I’ve been a developer for a while and I’ve even developed RSS-related stuff. If I don’t know what the real differences are and how it affects my choice and subsequent enjoyment of the content, then I feel like most people wouldn’t either.

As syndication format family tree clearly shows, RSS .93 is the wicked step-child of earlier RSS 0.9x versions and the extinct scriptingNews formats. Basically, Dan Libby at Netscape borrowed (ahem.. stole, really, but for the better) in an effort toward standards. Then, RSS 2.0 is the inbred child of all RSS 0.9x versions, and, strangely, RSS 1.0. Then, the Atom format was created to make a fresh technology and leave all of the accumulated crud that an old protocol takes with it.

What does that all mean? Nothing. Not when the end user doesn’t care, just randomly picks one from the list, and hopes his or her client works well with it. Even after reading a more detailed account of RSS lineage, do you care which version of RSS you use? **

Any software developer will tell you that they’ve had the urge to throw out a piece of legacy code and start all over from scratch, applying best practices and lessons learned. That’s what Atom is supposed to be. It’s raison d’etre is to be the child who observes what his parents don’t like about themselves and improves upon those aspects.

On the Atom wikipedia page, these two points are listed among others under “Barriers to adoption”:

Many sites choose to publish their feeds in only a single format. For example CNN, the New York Times, and the BBC offer their web feeds only in RSS 2.0 format.

…which is actually doing a service to the user. This shouldn’t be criticized as a “barrier to adoption”, but a embrace of usability.

Sites that publish Atom will often publish RSS as well.

But why? If backward compatibility is a concern, then continue publishing content in all formats that you’ve given to users in the past, but advertise only the current best format.
I understand that backward support is good, so that people who subscribed to the RSS 0.93 feed don’t get burned when support for RSS 2.0 comes along. I also understand that too much meaningless choice for an unknowing consumer is just that: meaningless. And, if we’re supposed to be using standard technology, why are there three competing standards with no winner in sight? ***

Incompatibilities may exist with software being able to read the formats. **** Here is an informal survey of some popular feed readers on the formats discussed here:

Google Reader: RSS 0.92, RSS 1.0, RSS 2.0, Atom 0.3, Atom 1.0
NewsFire: RSS 0.92, RSS 1.0, RSS 2.0, Atom 0.3, Atom 1.0
RSSOwl: RSS 0.92, RSS 1.0, RSS 2.0, Atom 0.3, Atom 1.0
Bloglines: RSS 0.92, RSS 1.0, RSS 2.0, Atom 0.3, Atom 1.0
NetNewsWire: RSS 0.92, RSS 1.0, RSS 2.0, Atom 0.3, Atom 1.0
FeedDaemon: RSS 0.92, RSS 1.0, RSS 2.0, Atom 0.3, Atom 1.0

Do you get the point?

Feedburner, a recent acquisition by Google, at least is tending toward the user:

Here we see a application-centric model of how to advertise syndication formats. Feedburner presents icons denoting popular applications that the user might use. If I’m a user of Pageflakes, I may not know anything about RSD 3.2 vs Atoms 1.4, but I do know that I go to www.pageflakes.com to see this week’s Dilbert cartoon on my homepage.

Here’s the bottom line: Stop advertising the older formats. It’s fine to continue to serve up the others, just don’t actively advertise it. No one cares what formats you advertise, or the format they click on, as long as they get the content they want.

I’ve chosen Atom. I think it’s in the winner in its modularity, feature-set, and future growth. I could go on about why I think it’s the right choice for this application, but here’s the point: no one cares.

* Admittedly, www.ericgar.com suffered from this affliction, which are the default options for Wordpress. This has been locally remedied.

** Ironically, that wikipedia article has an “Incompatibilities” section, with no “Features” section or similar. What is the (probably unintended) implication of that?

*** The Blu-ray vs. HD-DVD competition at least was better in this regard: there was a financial motive that would produce a winner. This is not so in RSS .93 vs 1.0 vs 2.0 vs Atom .93, Atom 1.0

**** Strangely, this isn’t listed under as a “barrier to adoption” on the Atom wikipedia page. I wonder why?

An interesting bug…

Geekery — Eric on March 12, 2008 at 6:44 pm

I was just looking through Adium’s changelog when I came across this:

picture-1.png

I said, “Naw, that can’t be.” So I clicked on the Trac ticket number:

adiumtrac.png

Freaking awesome.

On the enterprise mind.

Geekery, Personal — Eric on March 12, 2008 at 6:05 pm

When work is a big playground (albeit with real consequences of failure), it’s hard to get out of the mind set of the enterprise infrastructuralist.

Today I was walking back home and thinking, “My apartment is a single point of failure for some of my critically important data. Hmm. Okay, well, I should replicate it remotely somewhere. But if I were to do that, I might as well have remotely replicated storage as well. So I need some SAN space mirrored at the hardware level between two disparate geographic sites. But then, I need two dedicated servers co-located with that storage to actually serve me the files. Or maybe I should just use snap-mirrored NFS toasters.”

Then I came to my senses.

I’m still sad I don’t have my own datacenter(s).

Older Posts »
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License. | Eric Garrido