Archive for September, 2008

Mystery found in search for inspiration

I’m a big fan of TED.  TED stands for “Technology, Entertainment, Design,” and is an organized effort to unite thinkers and doers with an audience for their ideas.  Some of the ideas are merely interesting, but a few are revolutionary.  And all are staged for the advancement of our species and the improvement of our world.

Once per year, the TED conference awards three “TED Prizes:” $100,000 given to three extraordinary individuals towards the advancement of their revolutionary ideas or TED wishes.  The TED prize also symbolizes the full weight of the TED community, uniting behind the goals of the prize winners.

In 2007, James Nachtwey was one of the three recipients.  A distinguished photojournalist, Nachtwey’s wish was to to receive help from the TED community to gain access to and report on an as of yet untold story with broad implications.  The video at the bottom of this page is Nachtwey’s presentation at the 2007 TED conference in which he exhibits many of his breathtaking (in the horror they convey) photos and makes his “wish.”

The results of his prize are to be announced on Oct. 3, and will be revealed through a series of dramatic venues (like bilboards in Union Square, New York City).  If I had to guess, the subject of his reporting will be the horrors of war, particularly as they relate to our (the United States’) recent wars in Afghanistan and Iraq.  But only time will tell.

Amazon Web Services to include content delivery service

I received the following e-mail from Amazon.com today.

Many of you have asked us to let you know ahead of time about features and services that are currently under development so that you can better plan for how that functionality might integrate with your applications. To that end, we are excited to share some early details with you about a new offering we have under development here at AWS – a content delivery service.

This new service will provide you a high performance method of distributing content to end users, giving your customers low latency and high data transfer rates when they access your objects. The initial release will help developers and businesses who need to deliver popular, publicly readable content over HTTP connections. Our goal is to create a content delivery service that:

  • Lets developers and businesses get started easily – there are no minimum fees and no commitments. You will only pay for what you actually use.
  • Is simple and easy to use – a single, simple API call is all that is needed to get started delivering your content.
  • Works seamlessly with Amazon S3 – this gives you durable storage for the original, definitive versions of your files while making the content delivery service easier to use.
  • Has a global presence – we use a global network of edge locations on three continents to deliver your content from the most appropriate location.

You’ll start by storing the original version of your objects in Amazon S3, making sure they are publicly readable. Then, you’ll make a simple API call to register your bucket with the new content delivery service. This API call will return a new domain name for you to include in your web pages or application. When clients request an object using this domain name, they will be automatically routed to the nearest edge location for high performance delivery of your content. It’s that simple.

We’re currently working with a small group of private beta customers, and expect to have this service widely available before the end of the year. If you’d like to be notified when we launch, please let us know by registering below.

Now what someone needs to do is write a component for Joomla that publishes content to AWS S3 and to this new content delivery service.  The end result would be high-availabilty content managed by the best Open Source CMS on the market.  Nice.

Update: Om Malik of GigaOm analyzes the potential of an Amazon CDN, noting that AWS S3 customer Voxel beat Amazon to the punch, and discusses the threat this represents to established CDNs Akamai and Limelight.

PHP ORM with annotations

Update An update at the top of a post?  Yeah, well, the thing is, I decided to terminate the sfEzModel project.  For one thing, I’ve started thinking Syfmony ain’t exactly the best PHP framework on the block.  Furthermore, I don’t think this particular solution deserves to be stuck inside a framework. It should be free: standalone, or dropped in a framework, whatever.  So I’ve replaced it with a different project: scottlib.

Named after my best friend, scottlib is intended to be a SQL abstraction tool that even a designer could easily incorporate into his wireframed project.  That’s a tall order to fill, but along the way I’ll be doing some cool stuff too, like emulating GORM, and making it easy to switch between MySQL and Amazon’s SimpleDB.  Hang around, it’s going to get cooler.

I recently started our first Google Code project – sfEzModel: a PHP ORM library with annotation configuration, optimized for MySQL and designed for easy integration into Symfony Web applications.

“What?” you ask? ORM stands for Object-Relational Mapping and “is a programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages” (Wikipedia).  Basically, ORM is an attempt to make-easier the process of persisting (storing) object data – data that has an explicit form or type yet doesn’t readily lend itself to the scalar data types of an RDBMS like MySQL (or SQLite or SQL Server).  If you’re still in the dark, check out the Wikipedia article.

“Why?” you ask? Well, first and foremost: writing libraries is fun (for me).  Writing a component to be incorporated into larger applications is like making bricks: without finely made bricks, no building can withstand the test of time.  It’s an activity that lends a great sense of satisifaction, and I suspect that in this day and age it will grow some grassroots (read: free) marketing for our business. Collegeman.net should have its own showing of open source wares: concrete software to represent our capacity for development and a repayment for the many contributions by the open source community to our own efforts.

The most practical reason is that I don’t like what the community has to offer in the way of PHP ORM.  There are several features of the PHP programming language that lend much speed to the development process.  My goal is to embrace those features, generate less code, and create a sound framework upon which applications can be more rapidly constructed.  Initially we’re going to be committed to getting the framework up and running with MySQL and Symfony.   Future iterations will open the library up to inclusion within multiple frameworks and for persistence into multiple RDBMS platforms.

You can follow the development of this new library on our Google Code wiki at http://code.google.com/p/sfezmodel.  Presently we are planning our first alpha release for October 26th – my birthday!

Google Chrome Beta Release

Ready for public consumption, unless you’re a Mac user.

Google Chrome – Download a new browser

Update True to form, Google answers their own hype with a heaping helping of Web browser heaven. For being the first day of a beta period, Chrome leaves little to be desired, except perhaps replacements for those great Web developer Firefox plug-ins.

Application performance is every bit as fast as promised. I tested Gmail, Google Reader, and Google Maps, and an application I recently worked on at Clutch. All but Google Maps exhibited dramatically faster response times, and the rendering is thus far flawless. I am impressed and pleased with both the address bar and speed-dial-style home page; and I am pleasantly pleased by the tabs-above-address bar layout of the user interface.

I hope these good vibes will continue with the soon-to-be-released version for the Mac.

Browse the Web with Google Chrome

Google is planning to reignite the browser wars with a special salvo of its own: Google Chrome.  With their focus on Web applications, it is little surprise that this new offering from Google will address many of the issues experienced by Web application users.

Among these next generation process enhancements: multi-threading (each browser tab in its own process), efficient memory reclamation, and a JavaScript virtual machine built for speed and highly refined garbage collection.

On the usability side, Google is introducing modal tabs, a dynamic home page that keeps track of sites visited and searched, pop-up staging, and a number of asthetic enhancements to suggestions in the address bar, privacy, and the appearance of the browser window.

Chrome’s rendering is built on top of the open source Web rendering engine Webkit: the same engine underlying Google’s Android Web browser and competitor Apple’s Safari, with an emphasis on speed.  Their JavaScript virtual machine promises to bring new levels of efficiency and security to browser-based applications.  Gears – Google’s offline application platform – will be installed and ready to go.

Google promises that all of this new functionality, much of it programmed from scratch, will be available as open source.  This is to include its new API that provides a black list of malware and phising domains.

What’s my take on all this hype?

It comes as little surprise that Google – an undisputed leader in Web application development and the promotion of the Web browser as a development platform – would invest in the development of a Web browser.  This gives them an unprecedented level of control over their platform and does so in a relatively noninvasive manner.  The distribution of this product as open source is also no surprise given Google’s commitment to OS and its use of OS components in the development of Chrome.

I am concerned about the addition of yet one more browser into the matrix of cross-compatability; however, Google intends to use their gigantic archive of Web sites and page rank statistics to simulate human usage of the browser.  Apparently they can quantitatively measure the difference between what the browser is rendering and what it should be rendering and use this for test-driven development of the application.

I for one am excited by the whole thing.  When the application is released, you’ll be able to download it from Google’s Blog (http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html).

Subscribe to Perseverance Trumps Talent