Time for Bed

I can’t stay up too late tonight, I need to wake up by 7:00, so I can be at work by 8:00.  That probably doesn’t seem like a very significant statement.  Most of the world will have to be at work by 8:00, but starting a year and a few weeks ago I transitioned to the startup life.

For me this meant a workday that started around 10 and usually went until 11 or so at night.  Of course a lot has changed in a year.  Where there were originally two, there are now four.  More people requires better organization and a little process.  Without it, coordination becomes difficult.  Where previously working odd hours around the clock was good for productivity, it is now a hindrance to the team building.  Especially when all the members are either married or seriously involved.

Megan has of course been on board with me on this venture from the very beginning.  I would could not have done this without her support.  It isn’t fair to her for me to sleep when she is at work, and then for me to work when she is at home.  While that sort of schedule can work for the short term, it increasingly becomes a problem as time passes.

Tomorrow begins a new era for our company.  It is day one of having standard office hours.  They are longer hours than most companies; but hey, we are a four person internet startup company.  It is a shame in some respects.  Sleeping in was one of the greatest perks of being self employed, but if this company is going to grow up into something great, then I will have to grow up as well.

Well, that’s all I have time for now.  I’m off to bed.  I have to get up early tomorrow.

The Future of Javascript — Who Cares?!?

Yesterday on Slashdot, someone posted an InfoWorld interview of Brendan Eich (the creator of JavaScript).  In the interview he lays out his plans of the evolution of JavaScript into what he calls JS2.  The discussion on Slashdot was over the details of whether the language changes made things better or worse.  The thing about programmers is that they won’t all agree on anything.  Everyone has their own understanding of how software should be written.  My critique isn’t on any of the details of the language changes, its the premise itself.

First of all, let me say that I don’t believe JavaScript to be the Holy Grail of languages.  It’s not perfect, there are things about it that I find irritating.  There are also things about it that I like.  This is true of any language with any competent hacker.

Why JavaScript Matters:

More and more software is being designed to run “in the cloud”.  The benefits are obvious.  Deployment is trivial, as are upgrades.  Developing for the web means not having to care about the users’ platforms.  Connectivity is becoming faster and more ubiquitous every day.  JavaScript matters because it is the language of the web.  It excels not on technical merit, but out of necessity.

In the 1990s, Netscape was in a unique position.  It essentially owned the web platform.  Whatever they decided became standard.  When Microsoft built IE, they had to include JavaScript support so their browser could compete.  Every new browser since then had to include a JavaScript engine.

In todays market, every computer has a web browser and therefore has a JavaScript engine.  JavaScript matters for one reason, and only one reason: it is ubiquitous.

Why JS2 Does Not Matter:

Although Mozilla acts as if they inherited Netscape’s mid 90s status as keeper of the web platform, this is not the case.  They say that it doesn’t matter is Microsoft adopts JS2 or not, they’ll just write an IE plugin.  This may work to increase JS2 adoption, but it doesn’t actually solve any real problems.  JS2 is a solution looking for a problem.

When building TileStack, my main problem with JS isn’t some language feature (native classes, typed variables, etc.) it’s the lack of consistency between browsers.  Granted this isn’t something the Mozilla Foundation can fix, but a new version of the JS language does more harm than good in this context. 

Why JS2 is Harmful to Mozilla:

While Mozilla has the best of their JavaScript team busy writing new language features, the competition is getting tough.  Apple continues to push the limits of WebKit.  The next version of Safari will smoke the competition when it comes to JS performance.  They are packing so much stuff into the browser, that web developers will start to question the need for Flash.  Meanwhile, Mozilla is working on the syntax for the “let” keyword.  Hey Mozilla, where’s mobile FireFox?  How come the poster boy for open source isn’t part of the first open source mobile phone platform (Android)?  Congratulations on all the downloads of FireFox 3.  Too bad it’s killer feature is that it doesn’t suck down resources like FireFox 2.  Wake up guys, you’re starting to lose!

I guess the point is that language syntax is one of the least important features of a platform.  Do developers use .Net for C#’s syntax?  Is Objective-C’s syntax the reason for Apple’s recent successes?  Will the declarative structure of JavaFX Script save the Java platform?  I could go on with more examples, but I wont.  The answer is a resounding NO!  There are much more important things to ensuring the success of a platform than language syntax.

I suppose this doesn’t really need to concern me.  The web as a platform will continue to exist and grow and mature.  It’s just frustrating to observe this waste of time and energy.

UPDATE: I want to give credit where credit is due.  My colleague Josh Gertzen was quoted in AjaxWorld magazine on the irrelevancy of JS2 in an article that ran on Slashdot for a while.

Sending Legitimate Bulk Email

This is for all those people who are trying to run a web business that need to send bulk email messages and don’t want them to go directly into their recipients’ spam folders.

Yesterday, I (and several others) dedicated several hours to the task of determining why every email we sent went directly into the spam folders of those we were trying to reach. When you search Google for information about spam filters, you find plenty of information about blocking unwanted email, but hardly anything about making sure your legitimate bulk email is not discarded with the trash. We were able to solve our issues, and so I thought I’d share our findings with the community.

  • Send only plain text. Attachments and HTML content raise flags with content filters.
  • Set the message header: “Precedence: bulk”
  • You must set a subject, body, from address, and reply-to address (not having reply-to was my problem

In addition, if you are hosting your own mail server you should:

  • Publish an SPF record in your DNS configuration
  • Configure your MTA to and DNS to use DKIM. (Acronyms FTW!)

I hope this info is helpful to someone. I wish I had it.

Sources:

Blockbuster or Netflix

I’ve been a subscriber of Blockbuster Online for over two years now. At the start of this year, they raised their rate by $2 a month and limited the number of in store exchanges to 2 per month. What pushed me over the edge was the fact that they automatically published the movies I requested to my Facebook feed. I never authorized this, I never linked the accounts. In fact, I use different email addresses for those services, so they had to do some browser magic or something to accomplish this. To me, this is a violation.

So, the question is, do I switch to Netflix. Their plan for one at a time is $8.99, but there is obviously no in store rental. Instead they offer a selection of films that I can watch online. The problem is, that service is Windows only, and I’m on a Mac. (I’ve heard it does work in Parallels). Blockbuser offers a no store exchange plan at $8.99 as well.

Any thoughts? Any positive/negative experiences with either service?

Things on My Desk (November 2007 Edition)

  • Airlink+ 802.11b Wireless Router
  • Cable Modem
  • Small box labeled “Everything Mac”
  • Smaller envelope labeled “Everything Else”
  • 1 empty Diet Pepsi can
  • Clipboard with notebook paper and a legal pad attached
  • Dillard’s Gift card envelope
  • Open CD Jewel Case
  • 17″ Macbook Pro
  • Kingston 1GB USB Memory Stick
  • Paperback TNIV translation of the Bible
  • Commentary on Romans
  • Digital Camera
  • Three cork coasters
  • One cup of cold coffee, 1/4 full
  • 15″ Compaq LCD monitor
  • Kengington Bluetooth mouse
  • Apple Power Supply
  • Multi-colored index cards
  • Chip-clip
  • Empty Package of peanuts
  • Black dry-erase marker
  • Extra battery
  • Deck of playing cards with pictures of my friends plotting my demise
  • Bridal portrait of Megan
  • Broken pair of sunglasses
  • Stack of receipts
  • World clock paperweight (not weighing down any paper)
  • Analog clock with my initials engraved
  • Letter opener
  • Class of 2000 cup full of pens and pencils
  • Stereo speakers
  • DVI to VGA monitor adapter
  • KVM cables