The Sun Amongst The Clouds

Sun Microsystems now has a cloud-based computing business. Not only are they going to start offering cloud-based services similar to that of Amazon AWS and Rackpsace Mosso; they’ve also released a Cloud API specified with RESTful HTTP and JSON. Maybe more interesting than the technology choices, is that Sun is releasing it as an open-source project licensed with Creative Commons Attribution.

Tim Bray, the Director of Web Technologies at Sun Microsystems, blogged about his involvement developing the API:

The Sun Cloud: “This is a unified view of the storage and compute and networking services. It’s built around the notion of a ‘Virtual Data Center’ (VDC), which contains networks and clusters of servers and public IP addresses and storage services. The idea is to give you the administrative and operational handles to build something really big and ambitious. The VDC notion is really slick and I think something like it is going to be required in any serious cloud API going forward.

At the bottom level, the interface is based on HTTP and tries hard to be RESTful. All the resources—servers, networks, virtual data centers—are represented in JSON. [Don’t you mean XML? -Ed.] [Nope, JSON is just right for this one. -Tim]

(Via ongoing.)

After reading Tim’s post, I went directly to the Cloud API project site on Kenai and read all the docs for the API specification. Reading the specs raised some questions, most of which others were already discussing in the forums. I’m really digging the RESTful HTTP with JSON APIs. It just feels more natural then the Amazon AWS APIs.

Sun is retaining the separation between the APIs and the implementations and encouraging other cloud providers to also implement their APIs. Potentially allowing a client to have interoperability between CSP (Cloud Service Providers). I feel similarly about CSPs adopting Sun’s Cloud APIs as I do with JavaScript libraries adopting the Sizzle JavaScript Selector Library; i.e. Amazon AWS should provide an implementation of Sun’s Cloud APIs, or someone should write an adapter.

While the Cloud APIs are still in-flux, they are defiantly on the right path here. Sun is listening to the community while taking the feedback seriously; great to see from a big company with their open source project. Sun is stepping up the game by providing not just cloud-based resources, but an API built on current technologies (RESTful HTTP and JSON) and allowing any cloud-based service provider to use it.

YUI3 is Sizzling Hot

Great news for YUI3: Matt Sweeney, a YUI Developer, has integrated the Sizzle JavaScript Selector Library in a branch of the YUI3 code-base on GitHub. There has been interest from the community about this integration for quite some time. I personally was hoping for Sizzle adoption into YUI3; this now appears to be the case.

Using the Selector utility in YUI2 I would find myself hitting bugs and roadblocks where my expectations weren’t matching the outcomes. I’ve felt since first using the selector engine in YUI that it didn’t compare in speed, robustness, or completeness to jQuery’s. With the Sizzle project, there’s a narrow focus and distinct vision: To make the best damn selector engine. Since a selector engine is an essential component to any modern JavaScript library, why not make one really good one for all libraries to use? That’s the route the Sizzle project has taken.

Once Sweeney’s branch is merged into the YUI3 Master Head, I’ll be doing a git pull and give it some exercise.

Using Bazaar On a Mac

Bazaar has become a tool I’m using all the time. Using Bazaar as a version control system means using a command line interface. I haven’t found a feature-rich Bazaar GUI tool like the ones that exist for Subversion. I feel alright with using a command line interface for executing commands; but it is frustrating to edit text, review diffs, and manage merges in a command line environment. It just sucks! I want something better: a work-flow that keeps me productive, and an appropriate interface for the task at hand. Specifically, I want my version control system to be integrated with my Mac and the existing tools I use; I want to be able to:

  • Manage my files and folders using Finder
  • Write commit messages, view diffs, and manager merges in TextWrangler

Continue reading ‘Using Bazaar On a Mac’

Public Bazaar VCS Repository

Bazaar is my prefered and default version control system. While searching for a replacement to Subversion it was clear that a distributed VCS was the way to go. This lead me to comparing Git, Mercurial, and Bazaar; ultimately choosing Bazaar for having a company backing it, great documentation, and easy transition from Subversion.

I tend to think that open source code I write falls into two categories: full projects, and everything else (examples, snippets, module). When the code I’m writing is turning into something I plan to release as an open source project, then I’ll release it on Google Code. For small chunks of code, especially code to supplement a post here, I’ve been releasing it to the files directory here.

Bazaar is built to work over standard protocols including HTTP; making it perfect to enhance a browsable directory on my server as a public ready-only Bazaar repository. This is precisely what I did with the /files directory; each sub-directory in /files is a bzr branch.

Feel free to bzr branch any branchs in my http://925html.com/files/ repository.

$ mkdir 925html
$ cd 925html/
$ bzr branch http://925html.com/files/branch_name

Browser Testing IE On a Mac

For the past couple of years I’ve been trying to get a reasonable setup for testing Internet Explorer on my Mac. With the recent release of IE 8 RC1, I thought it might be a good time to revisit my browser testing setup.

I use an Apple Macbook (the black one) with OS X 10.5 and 4GB of RAM as my sole machine. With my Mac I should be able create a reasonable setup to test all major web browsers. I’m less interested in testing all OS and browser combinations simply because that seems unreasonable for most projects.

Operating System and Browser Testing Combinations

The following is the list of OS and browser combinations I want to be able to test; each OS has browsers listed in the order of which I care most about supporting:

  • OS X 10.5
    • Firefox 3
    • Safari 3
  • Windows XP
    • IE 7
    • IE 8
    • Firefox 3
    • IE 6
    • Firefox 2

Developing on a Mac, I’m always running things in OS X 10.5 / Firefox 3, making the combination always supported. I will also occasionally checkout how Safari 3 is doing while developing, although it’s usually fine.

When in browser testing mode (not developing new features) I’ll run through the Windows XP / Firefox 3 and Windows XP / Firefox 2 combinations; mainly to checkout how the font-renderings are holding up in Windows.

Then comes IE testing. I start with IE 7 which I find not too difficult to get working, usually just have to fix the hasLayout issues. With IE 8 coming into the mix soon I’m going to start testing it; hoping that it will be even easier to get working than IE 7. JavaScript frameworks like YUI are pushing hard to support IE 8; which is great as the CSS support in IE 8 seems to be much better than in IE 7. Of course the hardest of all to get working, IE 6; some projects need to support it no matter what, others can just not worry about it (like my personal web page).

I feel that I’ve found a testing setup that will allow me to carry out my browser testing process much easier than I could in the past.

Continue reading ‘Browser Testing IE On a Mac’

YUI Opens Up

There’s been some changes with the Yahoo! User Interface library (YUI) project to make it more open. Contributing to YUI in the past was an odd burdenson process as the public-facing YUI project on SourceForge was essentially a proxy to an internal project at Yahoo!.

Over the past month many changes have come to the YUI project that are more than just code:

Continue reading ‘YUI Opens Up’

Amazon EC2 Web Console

This is great! What I’ve been waiting for from Amazon Web Services; Manage Amazon EC2 With New Web-Based AWS Management Console.

My initial reactions are very positive when using the AWS Management Console, the app is clean, stable, easy to use, and useful. I really disliked using the ElasticFox plugin to Firefox and held off on paying the $66 for a Jollat license while anticipating a useful take on GUI AWS management from Amazon.

The app appears to be written on a heavy usage of YUI which is great; YUI is my JavaScript library of choice. The developers of the AWS Management Console have done a great job creating an Ajax GUI that’s using the full power of the YUI library.

I’ve been following Amazon EC2 for quite some time but haven’t decided to start really working with it until, well, this week. Essentially my experience has been frustrating using ElasticFox for a day and rewarding and educational using the AWS Management Console last night.

I look forward to the S3 and SimpleDB components to the Management Console, I suspect I’ll have the same great experience with them too. :-)

Thanks Amazon and the dev team who made the Amazon EC2 Web Console!

Using Google’s Ajax APIs

To put it simply, Google’s Ajax APIs are cool and useful! I love checking out the Google Code site and seeing new APIs listed, just shows they’re really put a lot of effort into this area of their business.

Google has their different APIs categorized, one of these categories is Ajax, I wanted to write about these APIs in particular as they have real-world uses that can get off the ground quickly.

Continue reading ‘Using Google’s Ajax APIs’

Layout Flexibility – Still A Requirement?

Is having a flexible layout required anymore?

It is second nature for me to command + while testing out my XHTML and CSS to make sure the text scales nicely and the layout is flexible to wider and longer content. Firefox 3 has been my default browser since it’s been out of beta and I still increase the text-size to check if my layout is adapting correctly. Doing this in Firefox 3 has a different effect then what I am used to and I’m constantly reminded, “Oh yeah, Firefox now does that full-page-zoom thing”.

On a recent project I was working to get an Adobe Fireworks design “sliced” into XHTML and CSS; this time I remembered about the Firefox 3 full-page-zoom. Thinking about what Firefox 3 does, I also remember that IE7 does something similar but not as well as Firefox. Now launching Safari 3.1…, ready, set, command + …aww bummer, just normal text-resizing.

So which browsers are doing the full-page-zoom and which are doing just text-resizing?

Continue reading ‘Layout Flexibility – Still A Requirement?’

Don’t Sell Your Small Giant

Successful web-based small businesses that generate profits are precious. If you are one of these, stay one of these. There is no requirement that web start-ups, when successful, have to be sold to publicly-traded [large] companies. The reason your small web company is successful and profitable is you; your awesome products/services and customer support exist because of you. Losing you would be destructive to your what your company does and is known for.

Slicehost is an awesome VPS hosting company; they’re a small web business offering support which is second to none. I use Slicehost and they’re the only hosting company I would recommend (I’ve used my fair share of hosting companies over the years).

Guess what just happened; Rackspace, a publicly-traded hosting company, has acquired Slicehost. Now I’m a little worried…

Continue reading ‘Don’t Sell Your Small Giant’