h1

Don’t Squish Squash

February 17th, 2006

Hey, Phil, by all means, don’t squish Squash before it’s had a chance to play out.

I’ve been blogging for a long time now and I’ve been consistently inconsistent. Months of nearly streaming flow followed by weeks of silent ebb. Glorious moments of sharing and collaboration. Rants, observations, laments, odes, screeds.

It’s a bit like a marriage. Just because it changes after a while doesn’t mean that it’s no longer valid, it’s just progressed on to another stage. Stick with it and it will work out well for all concerned.

Phil’s finding new ways to collaborate to make it continue to work – he’s suggesting ensemble blogging. Sounds like a good idea to me.

I’d better not try to extend the marriage metaphor to cover it is all I can say.

h1

Tiny bubbles

February 13th, 2006

I’ve just been chatting over at 3Bubbles.com in their new Ajax chat app. It looks like a good start. With Jeremie Miller involved, it should have some legs, and they seem to have some buzz support from the valley VC forces. I wrote pretty well exactly the same app in 2002 and called it BlogChat. It has many more features and Tim Aiello and I have been running it as a side project for four years now.

My experience tells me that most people don’t care beyond the first week have a chat in their blog, but then again, 7 years of Remote Scripting advocacy on my part told me that nobody cared about building rich web UIs with asynchronous javascript calls, and then along came Jesse to prove me wrong. It’s all about marketing and being in the right place (Bay Area) at the right time (Web 2.0/Ajax hypefest).

Good luck, guys – really. I know what it takes to launch and you’ve come a long way. It’s a bit like pregnancy and childbirth – just when you’ve finally got to the release milestone, you realize you’re only at the beginning and what a long slog you have ahead of you.

h1

Hi-tech Boondocks

February 2nd, 2006

My parents live in Parry Sound, a small town on Georgian Bay in Southern Ontario’s cottage country. It’s not a backwater by any means, but not particularly famous for its leading-edge tech community, to be sure.

Imagine my surprise when my friend Shane McChesney pointed me at the Parry Sound website to find a really cool Ajax-driven related-search-results popup that is triggered by selecting any of the text on the page.

As Shane says, this Ajax stuff has certainly crossed the chasm when you find it in such hitherto unexpected places.

h1

Update and scan while you still can

February 1st, 2006

Yet another virus is set to cause havok this Friday for Windows users.

Have you heard about the new Unix virus? It comes in source form. All you have to do is visit a website that hosts the virus, right-click and save the file to your hard drive, untar it to a temporary directory, run ./configure, make, make test, then su to root and run make install, then run the program. Poof – you’re infected.

h1

Ajax Experience

January 30th, 2006

The guys at Ajaxian have just announced The Ajax Experience, a three-day conference dedicated to all things Ajax to be held at the Westin St. Francis in San Francisco on May 10-12.

I’ve been invited to speak, so I’m builidng up a presentation and I’ll be there for the duration – look me up if you go. Be sure to sign up early, looks like it’s going to be a full house.

h1

The BSD Unix family

January 23rd, 2006

Informit has a very, well, informative article on the BSD family of Unix operating systems.

For over three years now, I have been using OpenBSD for its high security and powerful packet filtering. With a history dating back as far as 1978, BSD is incredibly stable and each branch of it gets more flexible with each release.

The BSD License is much less restrictive than the GPL (used by Linux), which makes BSD attractive to businesses.

h1

Making it harder than necessary

January 19th, 2006

On an Exchange server where I have an account, there is a public folder that receives alert messages. I want to collect all the messages in this folder, filter by subject, order by date, and extract text values out of the body of each message. I’d like the output to be delimited text so I can use other tools to perform further analysis, such as loading it into Excel and building a pivot table, or sorting and slicing with any number of tools. I’d like to be able to repeat this automatically.

I started by looking for script examples.

The first ones I found used VBScript under WSH to instantiate the CDO MAPI.Session object, create a Public Folders collection and iterate from there. There are a few different reasons I don’t want to use this approach:

  • The machine it runs on needs to have the proper CDO objects on it (pretty well has to be an Exchange server according to the product grid in technote Q171440). I want to run this from any computer that can connect to the server.
  • There needs to be a login on that machine with a configured Outlook profile.
  • I have an inexplicable aversion to using WSH/VBScript for scripts that may ever run unattended.

The next solution I found used ADODB to query Exchange via the Exoledb datasource.

  • again, this object seems only to be on an Exchange server. You have to run it from the same server.

I thought I’d try loading up Outlook on my PC to have a look. It’s installed but I never use it (I use Outlook Express against my main POP3 and OWA against this server). I start up Outlook and go to Tools..Accounts, and select Exchange Server from the wizard.

  • It tells me I have to close Outlook and use the Control Panel’s Mail app to add an exchange account to my profile.

After setting it up, I get into Outlook and navigate to the folder. I choose File..Export and try to export to Excel, to Text, to ANYTHING.

  • Sorry, that feature not installed. I haven’t got my Office install media with me, so no go.

I have a colleague try from his Outlook and it’s useless because no matter how hard we tried:

  • the export process could not include the received datetime field. Not even in the list of mappable fields.

Next, I decided to connect to the server with NNTP or IMAP or POP3.

  • These services are all turned off.

Next, I tried to connect to the server’s M: drive which should be an ExIFS filesystem view of the Exchange store.

  • It’s not shared out or I don’t have access to that share.

I tried to RDP into the server.

  • I don’t have login permissions on the server.

Ok, so ask me what I think of closed systems and protocols. Against any IMAP or NNTP server, I would have been done in 5 minutes with no dependencies.

h1

JSON trumps Ajax for Mashups

December 19th, 2005

I’ve spent a lot of time over the years playing with different methods of having a web page get data from the server without refreshing the page. One of my major criteria has been to find a method that works across all browsers. A few different methods have cropped up over time, following an evolutionary path.

In 1998, I used Microsoft Remote Scripting, which used a Java applet for its transport layer. Java later became a problem, since it’s blocked by firewalls and no longer automatically supported by all of the main browsers.

In 1999 I started experimenting with frames, then a hidden Iframe, which I used in my JSRS library in 2000. Iframes have become deprecated as of the XHTML specification, and browser history can be affected by their use, making this workable but suboptimal.

In 2000 I wrote RSLite which uses a client-side image object and a cookie. This works across pretty well all browsers but has limited value due to url and cookie length limits.

I started to use and promote Microsoft’s XMLHttp object fairly early on, but its limitation to IE and at that time only beta Mozilla made it not-ready-for-primetime. It has since come into its own in the form of Ajax, however there are still cross-domain scripting limitations, which are an impediment to the kind of Web 2.0 mashups that are some of the most compelling new uses of browser technology.

Danne Lundqvist was amongst the first to talk about the idea of using dynamically-generated script tags to send and receive data. In conjunction with Douglas Crockford‘s JSON JavaScript Object Notation, this method has recently been promoted by Yahoo in their Javascript Developer Center as a way to perform cross-domain data transmission.

Full coverage of the method can be seen on Dan Theurer‘s blog.

I am beginning to think that the combination of JSON and On-Demand-Javascript holds a great deal of promise:

  • Great cross-browser compatibility
  • It is not a hack. Cross-domain script tags are a designed-in browser feature. DOM manipulation is central to modern browsers
  • JSON is a great compact object notation, native to JavaScript yet already implemented in many server-side languages and easy to do for others

It may be just another crayon in the box, but I think it’s going to get a lot of sharpening now that Yahoo is actively promoting JSON.