- We design and build extraordinary applications for companies looking to make the next great idea a reality.
- learn more
Ext JS: License Troubles with Their Use of YUI?
In this little post, Eric Miraglia of the YUI team points out that Ext JS' recent change from LGPL to GPL and their inclusion of some YUI code without including the text of the YUI license (BSD) may violate the terms of that license.
I don't think this is a serious infraction, but it does point out how important good will and amicable relationships are between open source projects that violate one another's licensing terms all the time.
Topics: Ajax Frameworks, Ext JS, Open Source
Adobe “Open Screen” is not “Open Source”

So Adobe is opening up their Flash platform via the Open Screen Project. Opening up in this case doesn't mean "Open Source," more like Open Spec. The spec for SWF has been published since 1998, but it came with onerous licensing restrictions. Adobe has now removed those licensing restrictions and promised to publish more API and protocol details.
Why is Adobe doing this? From their FAQ:
The Open Screen Project is working to enable a consistent runtime environment – taking advantage of Adobe® Flash® Player and, in the future, Adobe AIR™ – that will remove barriers for developers and designers as they publish content and applications across desktops and consumer devices, including phones, mobile Internet devices (MIDs), and set top boxes. The Open Screen Project will address potential technology fragmentation by enabling the runtime technology to be updated seamlessly over the air on mobile devices. The consistent runtime environment will provide optimal performance across a variety of operating systems and devices, and ultimately provide the best experience to consumers.
Some bloggers have speculated that this initiative is aimed at creating a Flash/AIR runtime on the iPhone. Maybe. But right now this thing looks more like an industry cooperative (not necessarily a bad thing) rather than a dynamic open source project.
Topics: Adobe, Adobe AIR, Flash, Flex, Open Screen, Open Source
Agile Business, Microsoft and the Threat of Cloud Computing
Competition is the keen cutting edge of business, always shaving away at costs.
-- Henry Ford
I've been working with Java and Microsoft technologies -- .NET most recently -- in one form or another for quite some time. My company, now headquartered in Chicago with an office in NYC, was actually founded in Seattle by a group of four developers that had met around developing an Exchange-based bulk email system to replace the sendmail-based ones that Microsoft was using at the time. In that span, despite all of the food fights about total cost of ownership (TCO), etc., I haven't seen any evidence that Linux, Windows, Mac, Java, .NET, etc., puts you at a significant business advantage one way or the other. Until now.
Topics: Agile Development, Analysis, Editorial, Open Source
Ext JS 2.1 Now GPL (was LGPL)
One thing I overlooked with the release of Ext JS 2.1 is that it is now GPL rather than LGPL. That means that if you build Ext JS 2.1 into your app, it would have to be GPL's if you planned to distribute it. (See this flame thread on the extjs forum).
Not a problem if you are providing a service, but if you are distributing the application, then you are GPL infected.
If we look at part of the GPL v2:
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Now IANAL, but if you distribute a stub application with at least 2 UI implementations that can be downloaded and installed separately, you might be OK. Another argument for designing your applications as service providers that can be accessed by multiple different clients. That way you can change UI frameworks as necessary, such as when your current framework changes open source licenses.
Topics: Ajax Frameworks, Ext JS, Open Source
Google Summer of Code 2008
Got an Open Source or Free software project? Want some young, eager college developers to give you a boost? Then you should check out the Google Summer of Code. The details:
Over the coming months we'll be working with open source and free software groups to select hundreds of student projects from thousands of applications. Then, during the summer, we'll distribute millions of dollars in stipends to the students cranking out the code. Our goal is to increase the world's supply of open source software while providing young programmers inspiring, meaningful summer jobs.
Since the first Google Summer of Code in 2005, the program has had remarkable success. Last year we connected 900 students with more than 130 open source mentoring groups, including such prominent organizations as Dojo, Python, Samba and Ubuntu. Several past students are still contributing to their projects and many are serving as mentors in this year's program. Meanwhile, similar programs are springing up all over, including the Finnish Summer Code Program, the GNOME Women's Summer Outreach Program, the Season of Usability, and game publisher NCSoft's Winter of Code.
This year's Google Summer of Code promises to be the most successful we've ever held. We've extended the program timeline to allow students and mentors to discuss applications before settling in to write them, and we're continuing last year's tradition of announcing accepted applicants early to allow students more time to bond with their project communities.
We look forward to applications from organizations and students eager to participate. Applications for organizations open March 3 and close March 12; for students, applications open March 24 and close March 31. Coding will run from May 26 through August 18.
Note the appropriate use of the semicolon in the second-to-last sentence.
We're thinking of gettin us one of them thar summer of code students for one of our own Open Source projects: RSH.
Technorati Tags: announcement, google, summer of code
Topics: Announcement, Google, Open Source
Interview: Songbird developer evangelist Stephen Lau

After my enthusiastic support for the open-source Songbird media browser, I recently got the chance to sit down (virtually) with Stephen Lau, Songbird's developer evangelist. Stephen was full of thorough, informative answers about Songbird's technical underpinnings, business model, development methodology and roadmap to version 1.0.
Agile Ajax: For software that's still pretty far from a polished, commercial 1.0 version, Songbird has attracted a devoted following and an active user base. How and why do you think that's happened?
Stephen Lau: We owe it all to our fans! The users that have adopted Songbird have definitely put up with some growing pains as we get closer to our consumer 1.0 release, but they've done so because they see the value in having a completely open platform as a media player. They are the type of users who are early adopters, music geeks, tech geeks, etc. and as near as we can tell, Songbird's following has grown via word of mouth (blogs, reviews, etc.) from our users.
Topics: Music, Open Source, Songbird
New Year’s Resolutions 2008
As I've posted before, I'm pretty leery of prognostication. My colleageus Noel and Dietrich have already made their predictions for 2008, anyway (here and here) so who am I to join the fray? Instead, let me dust off another hoary device and share my programming resolutions for 2008.
Another Brain Fart on Why Open Source is Bad
Every so often, someone scrawls a manifesto about why closed source is good and open source is bad. Usually the parties involved are technical ignoramuses (like in this Economist article) or industry hatchet men. But Jaron Lanier should know better. He isn't a hatchet man and is far from a technical ignoramus, yet he engages in the same sort of sloppy thinking that characterizes those other brain-stain graffiti artists.
His article for Discover Magazine, entitled Long Live Closed-Source Software!, is a case study in bad examples in the service of a simple argument. His argument goes as follows:
- Open Source == Linux
- Linux is a derivative if qualitatively better version of the closed-source UNIX.
- Therefore the open source movement can only produce derivative works, and nothing as breathtakingly revolutionary as the iPhone.
He goes on to speculate about some of the causes for this failing, likening closed source to cell walls that help organisms differentiate and speciate. Open source, by contrast, is like the primordial goo.
Topics: Editorial, Open Source
Coming soon: Songbird 0.4
The Songbird team is working hard to push out a 0.4 release by the end of the year. This Mozilla-based media player still has long way to go before it'll be ready for prime time. But incremental improvements from one developer prerelease to the next keep me excited about the possibilities. Changes for 0.4 include the concept of display panes: "standard integration points to attach Songbird add-ons to." Songbird's XUL-based rendering engine allows plugin authors to completely rewire the application interface, but display panes simplify that process by dividing UI real estate into predefined zones. Plugin authors will still be able to build their own layouts, but in most cases they'll probably prefer to wire up the standard display panes; that's just usability 101.
When I first posted about Songbird a couple of months ago, I hoped that it would eventually become the player of choice for users with very large (100gb+) media collections - users like me. Trolling Bugzilla, I can see the database engineers are hard at work figuring out how to optimize performance for power users as well as typical users. One possible approach: tuning the SQLite search algorithms based on user profile and library size. After years of struggling with iTunes's terrible scalability problem, I'm eager for an alternative. Songbird's search functionality is still extremely slow compared to other, more mature applications. But I'm buoyed by the knowledge that Songbird's developer community includes folks who aren't interested exclusively in casual users with a few hundred (ore even a few thousand) tracks.
After my original post, commentators suggested I give Amarok and foobar2000 a shot. But given that the former is a Linux/Unix project and the latter is Windows-only, I remain unconvinced. Songbird may not emerge from the demoware stage for a while, but the possibility of an open-source, cross-platform media player still gets me excited.
In addition to scalability, I was looking forward to better tools for the construction of mixtape-style playlists. Voila, the Songbird Blogs bring news of the Now Playing add-on, which allows you to construct a playlist in the right sidebar display pane while keeping your library visible. Compared to the iTunes interface, in which it's impossible to view both a playlist and your media library at the same time, this is an awesome feature.
I've been chatting with Songbird's Stephen Lau about the project and hope to publish an interview with him to coincide with the 0.4 release. Watch this space.
Technorati Tags
Topics: Music, Open Source, Songbird
Songbird 0.3: Why aren’t Ajax folks more geeked about “the Firefox of media players”?
Songbird, the open-source, Mozilla-based media player, received its 0.3 "developer pre-release" on Oct. 30. The UI hasn't changed much since the 0.2.5 "developer preview," but things continue to evolve under the hood. Better yet, the documentation and demos keep getting better. Check out the developer center for information about using XUL to build add-ons or using the JavaScript API to integrate your webapp with Songbird's media player.
If you've yet to experience Songbird, a little background is in order. The project is run by Pioneers of the Inevitable, a Bay Area company founded by veterans of Winamp and the Yahoo! Music Engine. Building on Mozilla's XULRunner platform and the VLC media player, Songbird aims to unite a web browser, a media jukebox and an online media player into a skinnable, extensible, open-source application. At this stage, the app is a long way from challenging the likes of Windows Media Player, let alone iTunes. But as it grows, it promises to cultivate the same kind of fervent user and developer communities as Firefox, Thunderbird and other Mozilla projects.
I first became aware of Songbird via a Boing Boing post. I'm surprised it hasn't generated more noise in the various Ajax feeds and news sources. With all the excitement about specialized browsers and desktop webapps, from Mozilla Prism to Google Gears and Adobe AIR, it seems like Songbird would be earning a lot of buzz. Maybe I'm just not hanging out at the right water coolers.
As an Ajax developer and huge music nerd, I'm looking forward to playing with the JavaScript API. It promises seamless integration between webapps running in the Songbird browser and the media player itself. Imagine iTunes, but instead of a built-in browser that only supports the iTunes store, you've got a Firefox clone that plays well with music vendors, P2P networks, MP3 blogs and any other internet music resource. Visit a music mag, for instance, and see all of its featured downloads automatically show up as a playlist in the media player (as in the Hype Machine example above). Visit an online music store and experience an iTunes-esque purchase experience. Indie-music brands such as eMusic and the aforementioned Hype Machine have already gotten on board. To see Songbird's API in action, compare these sites in Firefox and Songbird.
Songbird's add-on ecosystem is cool, too, especially for long-time Firefox developers. They can adapt existing add-ons with just a few tweaks. (GreaseMonkey, for instance, has already been ported.) But Songbird's API allows for more radical innovation than Firefox's add-ons. Instead of simply adding context menus and pop-up dialogues, you can rewire the entire UI of the media player. One example on the developer site shows how to replace the single play/pause button with individual play, pause and stop buttons. That's a trivial example, but a telling one.
I'm already salivating about the cool stuff I'll be able to do with add-ons:
Tag-parsing madness
Imagine Doug's AppleScripts for iTunes ported to XUL. Like a lot of people, I'm obsessive about my meta tags, and I can't wait to use JavaScript regexes to bend them to my will en masse. I'm also hoping that Songbird will record all of its meta data in the music files themselves instead of socking some of it away in the music library. With iTunes, if you decide to rebuild your library in another player - or even in a different iTunes installation - you lose things like star ratings and play counts. It's a real bummer.
Huge libraries
The flat XML database in iTunes scales horribly. Get above about 100 gigs of music and performance slows to a crawl. This problem has only gotten worse with the bloat of Cover Flow, Quicktime integration and all the other features I don't need. I have 450 gigs, most of it ripped from my huge CD collection, and I've had to separate it into four separate libraries (using Libra) just to get decent performance. That sort of defeats the whole "any song at any time" promise of the MP3 era. Enter SQL Lite, which is how Songbird stores its own media library. I've got high hopes that a relational-database back end coupled with open-source how-to will make Songbird the media player of choice for folks with enormous libraries.
Interface freedom
iTunes and its Smart Playlists are all about endless, automated mixes. But I'm an old-school mix-tape guy. At the end of each year, all of my friends usually get a four-CD retrospective of the year's best tracks as compiled by me. But with iTunes, it's excruciating to build a "source" list of possible tracks for these multi-disc epics, then slot the tracks into individual discs and experiment with sequence. You can only view one playlist at a time, so every time you decide to move a track from one playlist to another, it's a multi-step operation. Imagine an interface where I could see my "source" list and all of my target lists at once, and where drag-and-drop defaulted to a "move" operation rather than a "copy" operation. With XUL and JavaScript, I'll be able to build any specialized interface I want and swap it in for Songbird's default UI.
Sure, most of my needs are pretty specialized, but I hardly think they're unique. And that's the point of an extensible, open-source player. You're free to build the features YOU want to see and share them with others like you. That's a lot more productive than griping over at the iLounge forums about iTunes's shortcomings.
I know Songbird isn't the only open-source, component-based music player out there, but it is the only one that's drawing on the power of the Mozilla Foundation. Firefox has shown how disruptive the Mozilla community can be in the browser market, which, like the music-player market, is dominated by a single product. Songbird may not topple iTunes any sooner than Firefox topples IE, but it should provide a powerful alternative and perhaps put some competitive pressure on the folks in Cupertino. It was extremely shrewd of Pioneers of the Inevitable to hitch their wagon to Mozilla's. I'm definitely going along for the ride.
Songbird links
Songbird posts
- Boing Boing interview with Songbird architect Rob Lord
- Ars Technica
- C|Net
- Internetnews.com
- Alpha's Place
- Blog of the Vicious Beast
- Views of a Discerning Critic
- Current_
- Hardware Beyond the Hype
Technorati Tags
Topics: Firefox, Firefox Extensions, Innovation, Javascript, Music, Open Source, Songbird
Switching Back and Forth
You'd expect that a blog post titled 7 reasons I switched back to PHP after 2 years on Rails would generate some controversy. Derek Sivers wrote just that on O'Reilly's Ruby blog last week, summarizing his experience as follows.
I spent two years trying to make Rails do something it wasn’t meant to do, then realized my old abandoned language (PHP, in my case) would do just fine if approached with my new Rails-gained wisdom.
The post has elicited a metric oodle of comments, many of which are of the form "But don't you know PHP is ugly?" or "Thanks for finally speaking the truth about that overrated Rails stuff", neither of which is really all that helpful.
I confess my first thought on seeing the headline was disappointment, couple with the knowledge that inevitably, I'm going to suggest using Rails for a project and somebody will come back with "But didn't that CDBaby guy switch back to PHP? Doesn't that prove Rails doesn't scale to the enterprise?" Sigh.
I think, though, that there's actually less here than meets the eye. I even think that Sivers' experience is actually a good thing. Even for Rails fans.
By Sivers' account, he wanted to replace the existing, somewhat messy PHP code at CDBaby.com from scratch, in Rails. After two calendar years (which doesn't seem to have been two years of continuous work on the project), they gave up. At that point Sivers went back to PHP and coded the whole thing up in two months.
Admittedly, to a hardcore Rails advocate like myself, the story sounds a little strange, almost like giving up your automobile and discovering you can walk to the grocery store at 200 MPH.
I'd be interested to get a little more detail on what the Rails issues were -- Sivers says things like
Jeremy could not have been more amazing, twisting the deep inner guts of Rails to make it do things it was never intended to do. But at every step, it seemed our needs clashed with Rails’ preferences.
and later,
I love SQL. I dream in queries. I think in tables. I was always fighting against Rails and its migrations hiding my beloved SQL from me.
So I suspect the problem was, on some level, a clash between the existing database structure of CDBaby and Rails' expectations for database structure (and maybe, to a lesser extent, the clash between how Sivers wanted to structure the program, and how Rails did). This actually isn't surprising. Rails has very strong opinions on what databases should look like, it'd be more surprising if an existing project matched those preferences exactly.
What's a little bit more surprising is what Sivers did when he went back to PHP.
It’s the most beautiful PHP I’ve ever written, all wonderfully MVC and DRY, and and I owe it all to Rails.
He took the best parts of Rails, jettisoned the parts that didn't fit his project, and applied the principles to the code that he built. The logic is in the right place, and as a result, the line of code count is an amazing 15% or so of the original. That must have taken a fair amount of discipline to do in PHP, but it clearly worked, so good for him.
I guess I'm supposed to be upset that he walked away from my team, but actually, I'm fine with it. It's easy for me to get caught up in the particular choice of technology, especially now when Rails is in my job title. But ultimately the point is to build solid programs that bring value to the clients and users.
Rails is great, but it just isn't designed to be the One True Framework for all people. It does contain ideas and design principles that are applicable to almost any piece of software. These ideas should be implemented all over the place -- that's how all our tools get better.
I mean, it's hard to see Sivers as writing some kind of slam on Rails, when the post contains the statement:
Rails was an amazing teacher. I loved it’s “do exactly as I say” paint-by-numbers framework that taught me some great guidelines.
Or closes with this:
All that being said, I’m looking forward to using Rails some day when I start a brand new project from scratch, with Rails in mind from the beginning.
Sounds good to me.
Topics: Open Source, Ruby on Rails, Trends, Web Development
An Event Apart Chicago: Day 2
Tuesday saw the conclusion of An Event Apart Chicago 2007, the two-day web-development conference from the folks at A List Apart. Here's my sequel to yesterday's day-one overview. I'll be back Friday with analysis and afterthoughts.
Jeremy Keith, author of "Bulletproof Ajax" and "DOM Scripting," led the day. His topic? "Be Pure. Be Vigilant. Behave," wherein he outlined the concepts behind "Hijax," the application of progressive enhancement to Ajax functionality. A staunch proponent of unobtrusive JavaScript, Keith warned against throwing web standards out the door when developing Ajax functionality. His examples demonstrated how to separate behavior from content and presentation by abandoning such outmoded techniques as the
Next up was Luke Wroblewski, a Yahoo product designer whose resume includes work on the original Mosaic web browser. Wroblewski covered "Best Practices for Form Design" using exhaustive research from his forthcoming book on the subject. In case study after case study, he demonstrated how simple choices in the design and deployment of HTML forms - from the widths and alignment of inputs and labels to the placement and visual differentiation of cancel and submit buttons - can cut the time it takes to complete them in half. Wroblewski's most persuasive argument, however, was conceptual rather than technical. He made a powerful case that because forms are barriers between users and the things they want to do - buy your product, join your site or begin creating content - you should make them as easy to get through as possible. This central thesis added considerable weight to his many practical how-tos.
Accessibility advocate Derek Featherstone closed off the morning with "Accessibility: Lost in Translation." Featherstone looked at how markup choices can make a site transparent to assistive devices - or render it totally opaque. Using real-world examples from Amazon and other sites, he demonstrated how screen-reading software actually parses markup. His live examples proved that the lack of semantic markup and the absence of ostensibly optional HTML attributes can render a site worthless for disabled users. Featherstone then went beyond the basics, explaining how source order - the sequence in which nodes appear in your markup - can be used to enhance accessibility. By placing your central content first, then positioning chrome above it with CSS and providing jump navigation to skip past inessential modules, you can achieve the presentation you want for typical users without shortchanging disabled ones. In another example, Featherstone examined the ways in which meaning can be encoded in the color and position of elements on the page - and how to replicate that meta-data in a way that disabled users can understand. As with many of the other speakers, Featherstone's examples argued persuasively for the continuing relevance of web standards.
After lunch, CSS expert Eric Meyer again took the stage, this time to explore "The State of CSS in an IE7 World." Using the recent release of Microsoft Internet Explorer 7 as a springboard, Meyer illustrated the concepts that have governed the changing of the browser guard for more than a decade. His overall premise was that developers need to use their own server logs to gauge when support for an older browser can safely be dropped for their site. For most of us, IE6 isn't going away anytime soon, so we need to get creative if we want to harness advanced functionality. To that end, Meyer delved deeply into the details of IE7 techniques, filters and hacks. He praised the browser for the strides it makes over IE6's CSS engine in such areas as child selectors, adjacent sibling selectors and attribute selectors. His real-world examples demonstrated how such functionality adds power and elegance to our code. To cope with IE6's continuing market share, Meyer advocated the use of Dean Edwards's IE7 compatibility script, a JavaScript library that adds IE7 capabilities to older versions of the browser. The take-home message was that older browsers may take a long time to die out, but creative programming techniques can harness the future of CSS now.
The final two sessions for AEA Chicago 2007 were a little offbeat, which was a relief after 10 technical sessions in the previous 32 hours. In the highly anecdotal "Selling Design," ALA publisher Jeffrey Zeldman used stories from his own long career to illustrate best practices for handling difficult clients. His thesis was that collaborative work requires us to deal with a wide range of other people, so we should hone our ability to influence our collaborators - and pick good clients to begin with. Agency owner Jim Coudal closed things off wittily with "Dealing With the Both of You," a slide-free presentation about the crossover between personal projects and professional work-for-hire. Coudal assembled a number of satirical short films to drive home his point: Because most web developers are curious and easily bored, we should strive to marry passion with professionalism whether our clients are external or ourselves.
Cross-platform widgets: fact or fiction?
For such a simple idea, widgets (or "gadgets" or "modules" or - ugh - "badges") are ridiculously complicated. Take three basic web technologies (XHTML, CSS and JavaScript), wrap them in a fourth (XML), and you should have a really simple, powerful way of deploying a platform-independent UI for your remote data. Yet between Yahoo Widgets, OS X Dashboard, Google Gadgets, Vista Sidebar, Netvibes Widgets and the umpteen other flavors out there, broad deployment is time- and cost-prohibitive. Pretty much every major implementation is incompatible with the others. Often, a single vender offers multiple overlapping versions of its platform, such as Google Desktop vs. iGoogle and Windows Live vs. Vista Sidebar. I'm all for healthy competition and the innovation it produces, but couldn't each big player at least release a unified API for all of its properties?
Amid all of this chaos, what's a would-be widget author to do? Probably the same things as widget users: weigh the options and pick a side. True, the WC3 is beavering away on a standards spec, but we all know how long that's going to take. By the time anything gets signed off on, the fad will either have died out or, perhaps worse, have become a long-term part of the web ecosystem. Imagine hundreds of thousands of legacy widgets written in proprietary formats, a huge number of which will never get refactored to meet the standards. And that's assuming the various widget platform vendors even agree to sign on. It's easy to imagine Google jumping on board, but much harder to hope the folks in Redmond will follow suit. Who knows about the other players?
True, tools have sprung up to translate certain types of widgets into certain other types. But these are stopgap solutions with often unpredictable results. Even when the widgets work, they often don't look pretty in their new homes. And nobody yet has come close to a write-once, run-anywhere SDK for widgets. Translation is the best option the marketplace has produced.
That said, I'm keeping an eye on UWA, the new Netvibes "Universal Widget API." This is another translation methodology, but instead of a third-party application that performs a one-way port of an existing widget, it's an actual spec for authoring widgets once and then compiling them to the various platforms. Thus far it mainly supports Netvibes itself, iGoogle and Dashboard. But Vista support is on the roadmap, and Yahoo support has been discussed. Best of all, they're planning to open-source it. If this API ends up being halfway as useful as it promises, perhaps it will offer a good middle path while the official standard takes shape.
[Lest I end on a completely hopeful note, here's a somewhat related digression: I'm also often depressed by the way the aforementioned standard web technologies get used in widgets. To a certain extent, pretty much all of the widget platforms force you to develop kludgy code. iGoogle and other Web-based platforms scale their widgets based on the size of the browser window. Some developers spend the time to come up with intelligent liquid layouts, but the limitations of fixed-height iframe wrappers make design compromises inevitable. A lot of the third-party widget-assembly shops just slap together some fixed-width design based on the worst-case scenario and built the entire interface out of a sliced-up PSD file. Forget font-scaling and other basic accessibility considerations. It's like the 640x480 viewport all over again, but in miniature. The more things change...]
Topics: Accessibility, Ajax Widgets, Open Source, Web 2.0, Widgets
Cooee - Branch of Echo2 Project
I've thought for a while now that Echo2 wasn't really working as an Open Source project; I even have a couple of posts laying out some of the reasons that Echo2 was in danger of losing out to other, inferior frameworks all for a lack of organization and activity. Ultimately I didn't post them because I didn't want to undercut what I considered to be an otherwise excellent framework. But it's not surprising that someone else has felt the same way and taken action to rectify the situation.
Cooee, a fork of the Echo2 project, aims to make community participation much easier. From the FAQ:
What we're doing is trying to provide a much more open environment to stimulate the growth and acceptance of Echo2 / Cooee. We've spent a lot of time making sure that everything that happens as part of the Cooee project can directly benefit the work of Nextapp and other projects like EchoPointNG. For instance, all changes to the code base are tracked through JIRA, and marked appropriately in the commit comments. This means applying the changes / fixes we make back to Echo / EchoPointNG are exceptionally easy. To put it simply - we want to work with Echo and maintain as much API compatibility as possible. Not work against it.
The project has all the usual Open Source fixings: JIRA (bug reports), Confluence (wiki), Bamboo (continuous integration), forum, and Fisheye. It consolidates the several different jar files of Echo2, Extras and EchopointNG into a single jar file. A few other Echo2 related projects are also maintained on the site. It's early days yet, so the project doesn't seem to have a lot of momentum, but from the public roadmap to JIRA, they seem to be doing a few things right. Ultimately their success will depend on their ability to recruit other developers. The same is true, by the way, for the main Echo2 project.
Open source forks are not always a good thing. Sometimes an already small community gets split so far that the projects die of neglect. Of course Echo2 has been so moribund for the last few months that I think this particular fork is a good thing. The folks from NextApp seem to have gotten a kick in the pants as a result of this development. I've never seen them this engaged in the forum.
Let the competition begin.
Topics: Ajax Frameworks, Echo2, Open Source
Tibco GI 3.2 Beta now Open Source
Tibco has release 3.2 Beta of their General Interface (GI) product. Beyond adding support for Firefox, the big news is that GI is now Open Source under a BSD-style license. That's exciting news for those who want to use this powerful framework in products or intranets but have been put off by the licensing costs. Beyond turning Open Source, there are a few more noteworthy developments and observations:
- 3.2 Beta adds a Canvas widget that transparently does VML in IE and SVG in Firefox.
- 3.2 Beta sees the introduction of the Matrix widgets, a swiss army knife MVC components that displays a models as a grid, list or tree. Is editable, allows the embedding of other components, and supports various pagination models. Now you can scroll a grid and have it update dynamically from the back end.
- GI has a cross browser (IE and Firefox) Javascript debugger. Venkman is still better, but at least you have something that works well in IE.
- The Tibco GI developer community will now be wide open. Come one, come all. Check out the articles, example projects and tutorials.
- The release of GI as open source will allow developers to learn from it's dual-DOM approach.
- Tibco GI uses a code obfuscation technology to enforce public/private interfaces in Javascript. With the availability of source, developers can become more familiar with the internals of the framework. This should help when writing your own, custom widgets.
- As soon as the paint is dry on IE7, expect GI to support it.
- Tibco will offer other licensing terms for those that require support, indemnification, etc.
So why is Tibco releasing this polished product as Open Source? To drive demand for their other Service Oriented Architecture (SOA) products, such as their ESB. GI is quite explicitly and intentionally a client-side framework that works by consuming and orchestrating XML web services using protocols like SOAP and REST. It is quite elegant at doing so, but there are some tricky bits to developing applications using an SOA, such as sessions and transactions that span service calls. An Enterprise Service Bus (ESB) helps with those and other challenges, and Tibco is definitely a leader in this product category.
This leads me to a caveat about the Tibco GI product and how the Open Source release is likely to tempt many people to use it in public facing sites: Tibco GI is intended for the corporate desktop. This explains its longtime exclusive support for just IE, and their new support for Firefox at that browser platform becomes more important to the corporate desktop (I'm told that the Tibco GI developers now use Firefox and the Venkman debugger extensively in their internal development work). There will likely never be support for browsers and browser versions that are irrelevant to the corporate desktop, though Tibco will continue evaluating Opera and Safari to see if support is warranted. If you plan on using Tibco for a public facing site, your options are much more limited than in a corporate environment where you control the server, client and network transport sides of the equation.
Still, this is exciting news, and those limitations shouldn't prevent you from using Tibco GI in your project as long as you understand what those limitations are.
Topics: Ajax Development, Ajax Frameworks, IDE, Open Source
About Pathfinder
Recent
- Implementing linked multiselects with jQuery, LiveQuery, and Low Pro: Part 1: Requirements and interaction design
- Many Varied Components, or… Multi Variable Complexity, or… Mainly Vanilla Coding
- Custom Flex 3 Lightweight Preloader with source code
- Mass Assigning Inheritance Column Values for ActiveRecord STI with Rails
- Working effectively as a team of one: Five tips for front-end developers on Agile teams
- Ruby on Rails with Windows - How I made it work
- Project Website Part 5: Morph in 11 steps or so
- Papervision3D 2.0 (Great White) in Flex 3 (Part II & III combined) with source code
- What’s In Your Dock?
- Why Chicago is Rails-town, USA
Archives
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006



