Definitive Proof of the Blub Paradox...

Posted by Toby Mon, 28 Jan 2008 19:36:00 GMT

...has arrived in the form of a blog post by one Lawrence Kesteloot. In this post, he attempts to show that languages are distinguished as either “production” or “toy” languages (troll terms if I’ve ever heard them) and then proceeds to slam SICP and Lisp and generally anything he doesn’t understand.

My biggest problem with this article is not the fact that someone with a masters degree in computer science doesn’t know what a fixed point is, but rather the fact that it nearly proves the Blub paradox to be true all by itself. Clearly, this author has become “institutionalized” in the Java mindset and construes brevity of expression with inscrutability. He maligns powerful languages features and elegance in favor of “understandability” by the average programmer and then implicitly marks himself as such by misconstruing boilerplate code that an IDE generates for him with readability. Ever read the code generated by Axis? No… why would you? That’s the least readable Java can be, in my estimation, but the point is that I don’t have to read it. Lisp excels at that kind of code generation task. The author seems to believe that thinking about the code you’re working with is a bad thing and that if it takes any effort at all to understand it must be bad. This thing we’re in is an art, people, not a science.

The speculation about Yahoo!’s rewrite of Viaweb also does not help his case. Yahoo! trucks in average programmers galore. Surely, there are many good and great ones there, too, just not in as great a number. As such, its not unbelievable that they could not find Lisp programmers: you typically have to be looking for something before you find it. Also, why would a Lisp guy want to work at Yahoo!? The coolest project they have going right now is written in Java. The kind of guy who hacks Lisp is unlikely to be pining for a job at Microsoft or IBM or even Yahoo! these days, nes pas? I do know some excellent “production” people (around Philly, even) that hack on Lisp and Scheme in production, but they appear to be the exception rather than the rule. Finally, I’m assuming that the author has never heard the fact that lots of the big financials choose a very high-level functional language when they need to make sure their systems are right. I bet this is partially so they can attract the very best people to those positions, as well.

I suppose the author might have also taken Amazon’s choice to dump Lisp as a sign that Lisp is not production. (assuming he was aware that it was, in fact, originally built in Lisp and C) I, instead, would take that as an indication that Amazon outgrew the ability to employ only the best people they could find. Business growth has a way of doing that to you. The distribution of talent and passion appear to be two somewhat uncorrelated power law curves and finding people at the top of both curves simultaneously is a task that will make anyone’s hair fall out and liver get harder. Plus, there are many business realities that make Blub languages more attractive for any number of reasons: talent pool, employee turnover, ramp-up time mitigation, cultural integration, etc. I write this article after having just dumped Ruby on Rails in favor of Java at my startup for some of these very reasons.

To this author I would only say that a language does not make something “production”. People do. Throw Alan Cox , Ingo Molnar and Guy Steele in a room and I bet they could write a better mousetrap in Brainf*ck if they were excited enough about it. Its never about the language. Its about the people. Full stop.

Welcome to the Jungle, 2008

Posted by Toby Thu, 03 Jan 2008 17:03:00 GMT

Happy New Year, everybody!

As the new year rolls around, I find it to be an introspective moment this time around. Normally, I’m not into the New Years resolutions and all that jazz. However, late in 2007 some crazy stuff went down that forced me to rethink my methods of dealing with people. I’m going to have to work on that this year and get a better grip on my interactions.

Right after that unfolded, Zed Shaw posted one of his infamous rants , this time regarding the Rails community and his status therein. I had read it and a number of people had also independently sent it to me, as well. I thought about this article a lot over the past few days, mostly because of the coincident timing with my own realizations regarding social interactions. While I found this article viscerally funny in places, I find it to be a tragedy overall.

Zed’s rant is essentially a view into his dealings with others since he got into Ruby (and then Rails). Up until he updated it yesterday, it was a pretty poor representation of self-awareness and introspective ability. Now, he partially reflects that his situation is of his own making and he’s to be credited for that. But the vitriol in this post can’t easily be wiped away by a correction and he’s burned some bridges forever with his rant. As someone who’s been known to wield the flamethrower over the rope bridge with glee in the past, I can say with surety that this always comes back to bite you in the ass. Also, his original statements still stand and needlessly hurt and incite anger towards people who essentially disagree(d) with Zed.

Then, the updated post goes on to amend the post with some semblances of self-awareness but is almost comically conflicting in places. He goes on to trash ThoughtWorks and then recommend their software. Huh? But then the update drops back into the original vitriol and just sinks any valid points that Zed has into a sea of raw emotion that makes it very hard for a reader to stay focused on the facts and happenings of the situations he outlines.

Personally, I just wish Zed would have maybe just put this in a drawer after he wrote it like Abe Lincoln used to do. There are many graceful ways in which one can back out of a community and I for one would like to have seen a clearly-talented Zed Shaw choose one of them. Given what he did, I can’t see ever hiring this guy: imagine what he might say or do if I ever disagreed with him?

"Sometimes you need more than one programming language"

Posted by Toby Wed, 12 Dec 2007 17:31:00 GMT

Someone had said the above statement to me today and it stuck in my mind for some reason. I was thinking about it tonight and something occurred to me.

I’ve heard a bunch of variations on this statement before today as I’m sure we all have. Often, when I hear this statement its coming from people who would like to be able (or allowed) to use Ruby in their work projects. These places are invariably ones in which Java is the primary language and any others are either frowned upon or outright barred. The management at these places, either technical or not, typically characterize this decision as smart given the large market for engineers that know Java, the availability of quality libraries for many purposes and the inherent generality of the language. All of these are certainly true and are pretty good business reasons to use Java.

These arguments ignore the ease of use of Ruby and the speed of development one can achieve with it. They are also a form of premature optimization, as well, although in this case of business interests, not source code. Most of these shops are doing 3-tier Web applications and, as such, they are missing out if they skip over Rails because it doesn’t run on Java. (it does, but whatever)

However, it was the statement that really hit. People saying that are indicating that different languages have different strengths. Even though Java now has regular expression capabilities, you’d still want to use Perl or Ruby for a big text processing job given how many built-in facilities those languages have for that task. You’d want to use Erlang for very-long-lived server applications over Java because it was tailor-made for that purpose and Java was not. All of these points lend themselves towards a heterogeneous language environment, using a language for what its good for and not for what its not.

I wonder, though: when people tell me this, they are usually rationalizing the use of Ruby with this statement. Not “rationalizing” in that they shouldn’t be using Ruby, but rather they are seeking to get leverage for Ruby so that it might one day be in the position that Java is now. I can certainly sympathize with this; Ruby is a sweet language. Alas, you can’t get there from here today, though. The main Ruby interpreter has major problems with memory and stability and its successors are still in their nascent stages. The runtime situation is just not that good so you can’t drop Java for everything yet if you need speed/low-memory in places.

How many of the people who have said this, though, would then reverse their position and advocate for Ruby being the only language for “maintainability” or “ease of introduction to the junior guys” reasons once a strong Ruby VM was available? And how many people said the same thing in reference to Java when C and C++ were king? It seems to me that these language trends are cyclical. The new hotness challenges the old-and-busted and eventually wins, only to become the new old-and-busted.

The irony here is that the statement is true in an absolute sense. One should use languages for the things they are good for and find different ones for things they are not. To not do so is to arbitrarily shorten not only your toolset but your very range of thought. (big up, Sapir-Whorf) Attempting to use one language for all your programming needs leads to ridiculous situations like the Kingdom of Nouns phenomenon. The other strangeness with this statement is that the people who say it generally never mention the really out-there languages like Lisp, Ocaml, Prolog or Smalltalk that are orders of magnitude better at certain things than more mainstream languages. Personally, I just hope people remember the irony when 10 years have passed and all new development at JPMorgan is in Ruby running on a Gemstone derived VM.

Facebook's Future

Posted by Toby Wed, 21 Nov 2007 18:15:00 GMT

Usually when I prognosticate about the far-flung future, I’m wrong. However, in the case of Facebook I think I will go out on a limb and say that the only thing that can save them from a very embarrassing spiral into nothingness is money. Cash. Duchets. That’s it. Not all the awesome people plucked from Google , not the huge numbers of pageviews they accrue and certainly not Mark Zuckerberg. Here’s what I mean:

Right now, Facebook is a novelty and has a novelty sheen to it. Right now, its not that annoying and the controls and UI and social navigation are pretty good. However, if it remains so, this is all it will be and its users will flow to the next hot new cool awesomr 2.0 beta thing that comes out. Facebook knows this. Hell, it did it to MySpace (well, with some help from MySpace itself).

So, the only thing that can ever take Facebook to that massive IPO is a revenue stream. And I’m talking a big one. Who’s revenue stream is that big? Microsoft. Oracle. GE. Siemens. Oh yeah, they’re not going to get into any of those games. But Google’s revenue stream looks pretty awesome, too. Why should Google get all that cash? I mean, really… all they do is let you find any information you want on the web in under 0.5 seconds. Who needs that? I’d rather be biting my friends and turning them into werewolves and zombies, to be quite honest. And Facebook just kicks ass for that.

Alas, that revenue stream has to come from somewhere and Facebook is looking to advertisers to shell out a bit more than they already do to take them there. Sure, Microsoft pitched in a bit and caused a huge shitstorm of press that has every idiot on the Web talking about how Facebook is worth $15 billion right now. But, anyone who actually knows anything knows that this isn’t true and both Facebook and Microsoft are the most aware of this fact (with Google right behind them in that race).

So that’s not the way to get money because that won’t last. And, as everyone knows, their banner ads as currently implemented are about as useful as syphllis. So, what to do? Well, I guess they have to roll their own ad network using their massive social graph data. Great idea! But how to do it? Seems like they’ve chosen just about the most devious way possible to accomplish this goal.

The problem with Facebook’s ad profile is twofold:

  • I don’t want everyone I am linked to knowing what I am buying, and
  • They’ve hidden the opt-out so well that this will eventually become “Facebook spam”

Why? Well, because maybe I don’t want everyone I am linked to on Facebook (shocker! not all of them are people I know really well!) to know everything I buy online. Imagine this scenario: you buy a book called “Inside American Terrorists” because it looks interesting. How do you think that will look to your coworkers checking out your profile? Or how about the “Bankruptcy for Dummies” book, Valtrex pills or a Swedish penis pump? Sound like purchases you want your entire 500+ friend network to know about? I think not.

The one great thing about Facebook right now is that there is no spam. None. Its not possible to get spam on Facebook right now because the platform itself functions as a sort of challenge/response system, allowing only the people you specifically accept to communicate with you. You can block and/or ignore anything that comes your way that you don’t like and you’ll never hear from it again. Not so with the Facebook Ad Network.

Facebook’s ad platform will allow each retailer/online business to put you through the whole subversive opt-out process again and again. There’s no way to globally opt-out, or better yet, to opt-in to the process in the first place and not have any ads show up at all. We already know that most people don’t understand that the word “sponsored” is synonomous with “advertisement” from the vast number of people who don’t realize that those links on the right-hand side of the search results are ads, so there’s no chance of just slapping that on each entry will keep anyone honest.

I for one believe that this could go one of two ways: Either nobody cares and Facebook makes a ton, or they annoy the shit out of their users and flame out quickly with many funny articles from Ted to help us through the pain. I’m thinking that the latter is more likely at this point.

My plan is to write a Firefox extension that will refuse to serve Facebook cookies unless the actual domain being visited is facebook.com (not just an iframe inside another domain’s page). This will defeat the Facebook Ad Network attempts to subvert my profile quite soundly. I will of course be opening this up to anyone who wants a taste for nothing, just as soon as I get some time to bang it out. More on that as it comes up.

Here’s hoping everyone just shuts up about Facebook because there’s just not that much there right now. Help me do something that I can’t do with IM or Twitter or Flickr and I’ll be singing your praises. Facebook: Show me you’ve got something of value other than my purchase history.

Junk Fax 2.0 1

Posted by Toby Sun, 18 Nov 2007 17:39:00 GMT

Having just come off of 5 years in anti-spam, an idea like this one strikes me as hilariously dumb. Here’s how I see this one playing out:

Printing noise from the kitchen during Grandma’s weekly bridge game…

Grandma: Ooh, I must be getting some new pictures from my daughter of the grandkids on their vacation to DisneyWorld!

Four women cozy into the kitchen to see a piece of porn image spam printing out…

Grandma’s friend: DisneyWorld sure has changed since last time I was there…

Economics, people. Economics.

These Children Were Definitely Left Behind

Posted by Toby Sun, 18 Nov 2007 17:22:00 GMT

In the words of the immortal uncov , FAIL . FUCKING FAIL , in fact. Definitely listen to the whole first one: there are some choice quotes in there.

More SMTP Issues 2

Posted by Toby Thu, 01 Nov 2007 12:53:00 GMT

This is getting really old, really fast. Now the Charlotte hotel I am staying in also proxies port 25 and fails to proxy SMTP AUTH. WTF? And they are using Symantec Mail Security, a product from the division where I used to work! Sheesh… Anyway, its really Mailstreet’s fault for not listening on 587 in the first place.

Google Code: Just Because Its There Doesn't Mean Google Wrote It 1

Posted by Toby Mon, 13 Aug 2007 05:50:00 GMT

I’ve been noticing a bunch of references lately attributing projects on Google Code to Google itself. Google Code does indeed house a bunch of open source projects from Google itself, but it now also houses lots more projects from random developers across the Web. Think of it as Google’s personal SourceForge.

So remember: just because you see it on Google Code doesn’t mean someone at Google was responsible for it.

This is not a knock on Google Code, of course. I have two projects up there and I like it so far.

Assholes: QSOL.com

Posted by Toby Tue, 17 Jul 2007 17:01:00 GMT

I just saw this in this month’s Linux Journal. It’s because of that kind of mysoginistic attitude that there are very few women in our industry. Fucking morons. How did this get past editorial? Guess who I won’t be buying Linux servers from?

Best. Phone. Evar.

Posted by Toby Sun, 01 Jul 2007 17:16:00 GMT

I finally got my iPhone activated. I have to say that both of the AT&T customer service representatives that I talked to were absolutely first class. The one woman, Lindsay Brewer, tried to activate my phone 5 times and was on the phone with me for over an hour, well past 2AM her time. That was literally the best support call I’ve ever been on and she couldn’t even get the phone activated in the end ;-) Mad superchamp points all around to the AT&T CSR staff; they appear to be holding up extremely well with must be a powerful onslaught of pissed-off people.

And we’re back: man, this thing is totally fucking awesome. I can’t stop playing with it. I haven’t had this much fun with a piece of hardware since… uh… since… um, oops, different story. Nevermind. Anyway, as usual, I have a ridiculous proclamation to purport:

Toby’s iPhone Proclamation #1:

Every other phone on the market is now officially a piece of shit.

Why?

Because the iPhone isn’t a phone: its a Mac that happens to make phone calls.

That’s the real beauty of it, I think. The mobile landscape today is highly disparate and varied today, much more so than the desktop environment. This leads to wildly different user experiences across phones and even applications for the same phone. By enforcing Mac-like standards on the phone’s apps and functionality, they’ve drastically reduced the impedance mismatch between the desktop and phone experiences.

Oh, yeah, and they rocked out on a bunch of other things, too:

  • Fixing issues and adding features via iTunes-based software update is pure genius; people are already totally acclimated to that mode via the iPod
  • Apps based on open Web standards and Safari will be a ginormous win for the platform over time; potentially any app on the Web is just an URL away on the iPhone (although Orbitz’s calendar Javascript widget is annoyingly dysfunctional on the iPhone). Plus, crazy bad apps have very little chance of crashing the phone this way
  • Getting YouTube to spit H.264 video so that the hardware decoder can take care of it. Flash would have required main CPU time, thus reducing battery life: this way, people get YouTube videos and longer battery life! (unlike the new Flash Lite phones from VZ)
  • OMFG: tabbed browsing on a phone!!!! Dood, that might be worth the loot right there, for realz
  • Only one hardware button: beautiful and no need to figure out what to do with all those other buttons when you reconfigure the UI with a software update

I think the Verizon executives will rue the day they kicked Jobs out of their offices. It was an incredibly stupid move not to ride this wave. Others think that perhaps that mistake will come to be known as the “not-buying-DOS-outright” mistake the ultimately leads to their irrelevance in the marketplace.

I never had a smartphone before and never had a data plan, either. I’ll probably keep the latter for a good while, but “smartphones” are now a total joke. Oh, and to all the naysayers talking about “iPhone won’t work with corporate email systems”: I was up and running with email from our Exchange servers in under a minute from the iPhone. Eat that.

Older posts: 1 2 3 ... 5