Thursday, December 28, 2006

"Ajax" and "Web 2.0" occupy spots near the top of Google's Hot List

The world is interested in knowing more about Ajax.

Of all Google searches, the top 6 in the "What is" or "Define" queries that hit Google, 3 of these twelve top queries in these categories are about "Ajax" or "Web 2.0" deveopment. Thanks to Jesse James Garrett for coining a great term, thanks to the "Ajaxians" Dion Almaer and Ben Galbraith for spreading the word through their site and podcasts, and thanks to the many easy to use frameworks like DojoToolkit, Prototype among a growing number of open sourced Ajax toolkits... a vast expansion in DHTML and asynchronous web development continues to generate a huge and growing interest even among non-developers today. Exciting times.

Sunday, December 17, 2006

Ubuntu "Edgy Eft " (Ubuntu 6.10) Install -- FATAL BUG

I took the time to install Ubuntu 6.10 "Edgy Eft" this afternoon. I had an old 1 Ghz Toshiba that had crashed (cough, Windows XP) about 18 mos ago, and I finally got around to replacing the hard drive in preparation for making it a Linux laptop (I still have the XP license for running a WinXP IE6 VM!).

The 6.10 mostly went well... up until the point where the install reached the "Prepare Mounts" screen. In Ubuntu 6.10 install, one cannot get past this screen. I'd recommend not installing this version UNTIL THIS BUG IS FIXED. It has a major bug that apparently needs to be fixed. Here is a link to others who have encountered the same bug. I wish I had seen that sooner, so I'm hoping to get the word out about this to others in hopes they don't take the 2 hours of their time I did to get to this point:

I am now installing the stable 6.06 LTS, also known as "Dapper Drake".

The following links will enable you to easily download and install Ubuntu 6.06:

I will follow up with links and thoughts on installing CFMX 7 on Ubuntu 6.06. I recently received an invite to install Coldfusion Scorpio from Ben Forta and hoping to try out an install of Scorpio on both an Intel Mac at work (running both Windows XP and Mac OS X via boot camp) also. Hopefully I have time to document how these go and share them with anyone interested.


Agile Development -- competitive advantage

Huge benefits can be gained from Agile Development methodologies in reacting to market demands in a timely manner. I have worked on Agile projects, and worked on "Waterfall" projects (where the large, bureaucratic company feels its important to 'define requirements for 3 months', 'build for 4 months', 'test for 2 months'), and the results are not even comparable. Not only that, but the experiences felt by developers and customers alike are not even comparable. The Agile method fosters a great relationship between IT and customers, whereas Waterfall results in increased feelings of pressure and mistrust. Waterfall development methods are the wrong way to go when developing software.

I'd highly recommend picking up an Agile Development book on Amazon and reading it. Here are a couple I have read and found valuable:

Agile and Iterative Development: A Manager's Guide (Paperback)

Lean Software Development: An Agile Toolkit for Software Development Managers (Paperback)

OutSystems explains the reason why Agile Software Development projects make economical sense:

Installing Apache and mySQL 5.0 Server

Silent screencast of the installation of Apache on a local PC to run as a server for local testing.

Shows a silent screencast of the installation of MySQL on a local PC to run on a local installation of Apache for a home test environment.

Net Neutrality = GOOD

Net Neutrality = GOOD
Tiered Internet = bad for the consumer. No, the internet is not "a series of tubes", Mr. Ted Stephens.

Click the play button below to see clear explanation of the basics of what removing Net Neutrality would do to us consumers and how it would change the manner in which we use the internet today.

Tuesday, December 12, 2006

PageRank Mathematical Overview

...haven't calculated eigenvalues in 8 years myself... but here's a reason to dust off George Arfken's book! Inspiring article related to the math behind Google's core aside on the Arfken Math-Physics 'bible'... it has sold something like 100,000 copies and is the only Mathematical Physics book translated into braille... Arfken was a Miami University Physics professor and Chair of the Physics department.

From my understanding, in the early 1950's he once wrote Einstein a letter suggesting a possible correction in one of Einstein's publications (math or physics error, I forget which). Both Arfken's letter, and Einstein's reply letter are enshrined in Culler Hall. It might be worthwhile to write one of my past professors there and get a digital photo of it, but Einstein says something like (and this is nowhere near an exact quote, I just remember the story): ' the way I've been treated in the American press, inspite of my embarrassment related to the correction, your message was the most pleasant I've received in months'.

...Besides unravelling the mysteries of energy and matter, space and time, the guy knew how to accept a critique with humility!

Saturday, December 02, 2006

Starbucks and Syntax

A funny scene this Monday here in Seattle related to language and syntax. It reminded me of a struggle in development when we just can't find the right syntax. We know what we want the server to do, but we just can't find the words or the sequence! We've all been there when learning a new language, or using a different database. It's sometimes tough to communicate and get your "order" through.

Here's the scene:
A tall, gentleman carrying a briefcase walks into Starbucks and is in line before me to order. He appears to be visiting on business. It's just before 8:00 a.m. and the baristas downtown at that time are moving with their same super effiiciency as always, churning through the orders. Howard Shulz would be proud. Next up in line before me, is the tall out-of-town gentlemen:

syntax challenged requestor: "I'd like a small coffee [gestures with hands], in a LARGE [gestures with hands] cup"

barista (server): [no doubt having heard this type of request before, returns with the two smallest Starbucks cups] "Would you like a 'tall' small [shakes tall cup], or a 'short' small [shakes short cup]"

syntax challenged requestor: [self assured and in control] "No no no... I'd like a SMALL coffee [gestures with hands], in a LARGE [gestures with hands] cup"

barista (server): [very patiently] "Yes, I understand. Would you like a 'tall' small [shakes tall cup]... this size [shakes cup again]........ or a 'short' small [shakes short cup] ... this small size"

syntax challenged requestor: [more confused now goes for the biggest] "No... I want the biggest cup you have, with a small coffee"

barista (server): [very patiently] "Yes, sir. I'm just wondering which size coffee you want in the large cup. Would you like a 'tall' small [shakes tall cup]... this size [shakes cup again]........ or a 'short' small [shakes short cup] ... this small size"

syntax challenged requestor: "Oh... I gotcha now. I'll take the tall small."

barista (server): [very patiently] "That'll be X dollars X cents." ... 30 seconds later, someone brings the tall coffee in a venti cup.

syntax challenged requestor: "You see, I just want room for cream."

barista (server): "That's a lot of cream. Can I help the next person in line?"

Poor guy. If he only had the right syntax, he could have made that a lot easier on himself.

no inherent insecurity with AJAX

Jeremiah Grossman (CTO of WhiteHat Security) has a great article regarding a topic that erroneously arises from time to time : inherent security risks of AJAX applications versus traditional client-server web applications. This article words and explains the point very well. That point is basically that the security best-practices for both paradigms of web development are the same, and that AJAX presents no additional inherent insecurity.

The hype surrounding AJAX and security risks is hard to miss. Supposedly, this hot new technology responsible for compelling web-based applications like Gmail and Google Maps harbors a dark secret that opens the door to malicious hackers. Not exactly true ... Word on the cyber-street is that AJAX is the harbinger of larger attack surfaces, increased complexity, fake requests, denial of service, deadly cross-site scripting (XSS) , reliance on client-side security, and more. In reality, these issues existed well before AJAX. And, the recommended security best practices remain unchanged.'

Sunday, March 26, 2006

March Madness :: Final 4 Probabilities!

I was looking on to see if anyone picked George Mason in the Final Four... and lo and behold, there was a guy who not only has them in the Final Four, but has correctly picked GMU, Florida, LSU, and UCLA!

It's pretty amazing. It seems freakish at first glance. It's one thing to pick an 11 upset in the first round, or the 2nd round. To have that upset all the way through to the final four, along with nailing the other 3 teams correctly (who are 2,3, and 4 seeds)... defies the odds. This should be worth more than $10k in my humble opinion. ESPN and Pontiac are getting a deal on this marketing!

There are very close to 2,681,679 brackets that were filled out on (each person is allowed to fill out up to 5 brackets per signup, so it's not necessarily 2.6 million people). The reason I know this is because according to their leaderboard, I am in the 94.7 percentile with a single Final Four team selected (UCLA), and my rank is a distant 142129. ...=142129 / 5.3% = 2,681,679. (surely this 94.7% will plummet in the next couple of days as I have ZERO possible points remaining with UConn being knocked out!)

The number of possible outcomes to the tournament is 2^64... which ends up being: 18,446,744,073,709,551,616 to 1 that you get all 63 games picked correctly. But that is to get every single game correct, those aren't the odds to get the final 4 teams. To just get the Final Four teams, (I'm not 100% sure my math that follows is accurate, but I believe it is: please correct me and provide justification if I am wrong) you have to get 16 coin flips correct in succession (4 teams through 4 rounds -- which would be 50%^16 = 0.001526%. But that assumes you know the four teams from the beginning, it doesn't include the selection of the 4 teams, which would be 4/64 * (50%^16) = 0.000095367%. This makes 1 in 1,048,576. So it makes sense that they have at least 1 person with these final 4 teams. logic might be incorrect though, but that's how I see it, with the teams as ping pong balls. I'd like to get the answer from a probability guru.

Anyway, March Madness... great times!

Here is the guy who correctly picked these 4 teams:
Here is my defeated bracket :(

Monday, March 20, 2006

AJAX Position Available in Redmond, WA

There is an exciting AJAX position available in Redmond, WA for interested developers. The customer is re-designing the online B2B and B2C webpage and need some front end java developers with AJAX experience. This is a 6 month contract to hire and is with a company who had over $300 million dollars in profits in Redmond, WA.

I was interested myself, but because of the project I'm on I am unavailable.

They are moving fast and the faster you can get Cheryl your resume the better. If you are interested, contact:

Cheryl L. Burdett
Technology Recruiter
Phone: 206-720-5312
Cell: 206-437-1473
Fax: 206-322-2718

Friday, March 03, 2006

Google : Admiring their top priority

As of yet, I do not own Google stock, but I have admired their company for over 4 years since a colleague at my last company introduced me to their search engine. I admire their innovation in pushing web technologies forward and their philosophy on how they develop and deliver service to the consumer. There's been a lot of misplaced media 'fluff' about "click-fraud", so I wanted to give my opinion.

Here's why I don't think "click fraud" will threaten Google at all. It's a great free market system as it self-regulates. For as long as people show a return on investment they're comfortable with, they will keep buying ads. What many not in the business (and apparently many writers) do not know, Google provides the ability to imbed pre-formatted javascript into your 'buy confirmation' webpage, that enables you to track the exact percentage of users that clicked on your Google ad and then went on to buy. It is the best form of advertising on the planet that is: targeted and measureable.

Even if there is click fraud vs a particular company, one of the effects of this is causing that particular advertisers "click through rate" to go to astronomically high levels. "Click through rate" is the number of clicks divided by the number of page impressions, and is used as one factor in determining ad position. Ad position and frequency are not determined solely by cost -- it's relevance to the keywords, click-through rate, and cost. So, this person whose ad was being assaulted by clicks would have to pay less for the top spot than another whose ad wasn't clicked on as much. If done at extreme (E.g. automated) levels, it could perhaps cause those advertisers to drop out for bidding for those keywords at that price... however these drop outs cause less demand for those keywords, lowering the bidding price and letting others in (or the original company back in). In other words, the fradulent clicks are built into the price-per-click already. It has been and continues to be a brilliant system for the consumer, the advertiser, and Google. What's great is that their first priority, even in delivering advertising, is delivering links and information that are relevant to the consumer's search request.

Thursday, February 09, 2006

The Most Compelling Web 2.0 Application :: Zimbra

Without exaggeration in my mind, Zimbra is a company that is at least 2 years ahead of the game in terms of rich, browser-based application development. Two years is light years when it comes to software development. From a developer's perspective, this is the most compelling application I have seen on the internet, given it's rich, deep, browser based interfaces, and unparalleled functionality. They simply "got it right" and have set a high-water mark for others to set their sights on, while seemingly just beginning to push forward. With tremendous respect to Google, I would put this application above Google Maps in terms of technical accomplishment on the client-side UI design and execution. I say this especially given the fact that they did it when very few, if any, AJAX frameworks were in existence, let alone organized. Even today many of us are eagerly awaiting Open AJAX (which, not coincidentally, Zimbra is active as a collaborator).

Zimbra has targeted a ubiquitous application realm -- email, messaging, rss, net phone, calendar, contact managing, all integrated into one "business collaboration" app. (demo) It's a tall order to capture market share in the area of email clients, with so many players in the market, but if you take a look at the design and execution of this browser-based application in the demos of the product, it's very tight, feature rich, while also being completely intuitive and familiar looking to its PC-based ancestor. It's more than all of that though. It's absolutely inspiring in the manner in which they have innovated with AJAX interfaces and web-services to deliver a seamless integration between mail, news feeds, emerging mapping applications, and even internet telephony. It doesn't feel at all like a traditional web application, yet it is seamlessly integrated into the web. Examples that I particularly like include: within the body of an email hovering your mouse over phone number text gives you the option to directly call this person using your preferred VOIP service, like Skype or Google Talk, with the click of the link; hovering over a name automatically generates that contact's information; mouse over a date and it will pull up your appointments for that day; hover over a web-link and it shows a thumbnailed screenshot of that webpage as a preview; tag based searching, and even searching within attachments, search for Amazon books within the email client... What I find paradigm-shattering is the manner in which it is all accomplished -- it is all built using web standards, AJAX, plus server and web-service (SOAP) calls.

Zimbra and their touchstone app, "Collaboration Server", more than any one existing application I've seen, is the first to demonstrate clearly that the 'game' has changed, from a pc-based paradigm to a web-based one. I say this with knowledge and respect for the level of progression and proficiency from cornerstone browser-based applications Gmail, Google Maps, Google Suggest, Yahoo Maps. This feels just a cut above because of the rich and complete functionality and apparent maturity of their implementation and the fact that they have pioneered the use of the technologies here, many of which are captured in their free, open-source Ajax Toolkit that they openly share with the community: AJAXTK.

The company is also directed by some of the web-digital elite, as can be seen by those on their Board, with seminal figures from Netscape, BEA and guiding presences from those involved with NetFlix, RedHat and open-source stalwarts like mySQL. This is also clearly evidenced in small part by the open, coooperative communication they offer regarding their strategy and philosophy. They are openly engaging the community for ideas, concepts, along with technology partners for 'Zimlits', while giving us individual developers an AJAX Toolkit (AJAXTK) so that we can utilize some of the same libraries and high level function calls they have used in construction this remarkable application.

If you are a developer, or just someone interested in technology, you have to check out the hosted demo to see for yourself what is the present and near-future cutting edge of interface design and execution on the web. This is a great inspiration on many levels to me.

Our software worlds are inching their way towards the rich interface, and browser-based paradigm, but this Zimbra team appears to already be there.

-Mark Holton

Tuesday, February 07, 2006

Flex is not AJAX

In my experimentation with the Flex 2.0 builder BETA, I'm excited. Flex is already a very rich interface creation tool. I've barely scratched the surface in my experimentation the last couple of months, but it makes my head spin with the possibilities for rich interfaces. When the opportunity presents itself, it's going to be great to develop in Flex, and leverage the work Macromedia/Adobe is continuing to put into that. Adobe continues to innovate with ColdFusion, and the Flash Platform with Flex, and have released the ColdFusion/Flex connectivity BETA.

That being said, Flex is not AJAX -- according to Jesse James Garrett in an AJAXIAN podcast, the AJAX realm is characterized by using free and open web standards (CSS, DOM, javascript...and XMLHttpRequest / XHR object, even though it isn't a W3C standard) to communicate with the server asynchronously. This distinction makes sense after developing a bit using both Flex and AJAX. Yes, Flex and Flash have the capability to communicate between the browser and the server asynchronously, without page refreshes, as does AJAX. But Flex is a rich, proprietary tool that enables much more than what AJAX does. The statement that "Flex is not AJAX" is in no way a knock on Flex, but rather it's a qualification that Flex is a rich, proprietary tool, and therefore requires knowledge of proprietary standard based languages such as MXML and Actionscript in order to fully realize the potential of a Flex RIA.

Aside from capable, yet independent efforts like CFAjax, and AJAXcfc, Macromedia/Adobe does not have a committed company effort (that I know of) to integrating open source, client-side technologies that make up AJAX with server-side ColdFusion. I bring this up because of the tight integration between Prototype and Ruby on Rails that has seen some significant growth and high-profile applications like those pioneered by 37 signals. While ColdFusion developers can work to integrate javascript libraries like Prototype (its subset, DOJO, etc... there doesn't seem to be a move from Adobe (yet) to tightly integrate with AJAX. It is my hope that something comes out from Adobe's camp that changes this perception.

From my perspective in development, AJAX will become ubiquitous in high quality "web 2.0" applications. There will be many instances of AJAX that become commonplace in these apps that deliver a clean, rich, efficient user-experience. Supporting ColdFusion developers in giving us tightly integrated toolsets for asyncrhonous client-server features would be very helpful and help grow the user-base of the language. In no way would supplying this tight ColdFusion/AJAX integration undermine the efforts of Adobe with the Flash Platform and Flex, as that group of applications appears to be set for a different market, given the features of a Flex RIA and likewise the requirements to become proficient in the languages required to develop an RIA in Flex. However, one way or another, if web application developers who primarily develop in ColdFusion do not get on board developing AJAX applications, they will no doubt be behind the curve. It is my hope that Adobe and the ColdFusion group help us out in this regard. Perhaps their answer is related to the recently announced Eclipse AJAX Toolkit Framework.

Saturday, February 04, 2006

Eclipse :: AJAX Toolkit Framework

The world of AJAX is getting much more defined, and much more exciting.

Though DHTML was around since like 1999, AJAX has been exploding in the past 2 years (since Jesse james Garret of Adaptive Path coined the term AJAX when presenting a high-level explanation to a large customer trying to effectively communicate the Javascript, DOM, xhtml, CSS, etc combination of effects he was planning to implement for them. See interview with JJG here) Already in 1-2 years, there are many frameworks for AJAX (prototype, DOJO, moo.fx, scriptaculous is a subset of prototype, RICO… the list goes on and on and on, and it grows all the time). As a developer, what do you choose? You’re not going to write your own, that would be very inefficient. There are so many choices, how do you know what
works/ best fit for your app?

You need some framework because you don’t want to develop all the main function calls, all of the effects, testing methodologies, etc. yourself. Plus, What do you use to test all your code? There are a variety of these springing up as well.

What is in the process of doing is bringing together many of the main players who (are mostly already open source themselves) want to contribute to a large robust “AJAX toolkit framework” that includes standards for plugins, real testing, syntax validation, previewing in the browser (Mozilla is involved), debugger, WSIWYG editing, etc.

It is exciting news as it will make AJAX development much more efficient and robust as this evolves. It’s going to make AJAX a “first world” ‘technology’ rather than searching through a variety of independent, sometimes adhoc, efforts.

The part in the articles linked below about “adaptors for J2EE/ JSP” leads me to believe that there will be tight integration between languages like Coldfusion and this toolkit, similar to how there is tight integration between Ruby on Rails and Prototype. (I am very hopeful for this).

I also notice that that Prototype is left out of this collaboration, despite it being perhaps the most popular AJAX framework at present.

Eclipse AJAX Toolkit Framework:

Portions I (Mark Holton) found very intriguing and exciting:

"Main plug-ins:
Enhanced JavaScript Editing features – providing edit-time and batch syntax checking of JavaScript code.
Embedded Mozilla Browser – provides cross-platform preview of AJAX application, plus DOM inspector function via XPCOM bridge.
Embedded JavaScript Debugger – takes advantage of the Mozilla / XPCOM bridgeto provide an Eclipse-style debugging experience for JavaScript code.Personality Builder – Wizard-driven functions that allow for the easyadaptation of arbitrary AJAX runtimes into the Eclipse / AJAX Toolkit Framework."
Adapters for J2EE / JSP and Apache / PHP

" Support has been expressed by:
  • BEA
  • IBM
  • Laszlo
  • Oracle
  • RedHat
  • Genuitec
  • Yahoo
  • Zend
  • Zimbra"

Friday, January 20, 2006

AJAX Links

Below are some AJAX related links I have found useful. I hope you can use them in your ColdFusion application development. I plan on publishing some AJAX examples of my own in the near future, as I have putting a lot of time, study, and practice implementing AJAX plus ColdFusion solutions.

AJAX Frameworks:
Prototype Javascript Framework: (effects library that works with Prototype):

Coldfusion and AJAX:
AJAXcfc -

AJAX References and Podcasts:
Ajaxian - to check out Dion and Ben's engaging and insightful podcasts
Pete Freitag's AJAX tutorial using Prototype -