Dr. Dobb's Blogs http://www.drdobbs.com//author/6836 Dr. Dobb's Copyright 2012, United Business Media. en-us A Backbone for JavaScript-Heavy Web UI http://www.drdobbs.com/web-development/a-backbone-for-javascript-heavy-web-ui/229300299 It seems like every week there's a new JavaScript framework that claims to simplify the process of bringing desktop-like interactivity to web applications. The number of these libraries and frameworks... Sun, 27 Feb 2011 15:28:34 -0500 Google TV: A Revue Review http://www.drdobbs.com/architecture-and-design/google-tv-a-revue-review/229300249 The mythical HTPC has long been a beloved enemy of mine. I remember building my own many years ago, with a Hauppauge TV tuner card and a smattering of miscellaneous <a href="http://www.mythtv.org/">My... Thu, 24 Feb 2011 12:01:19 -0500 Spam, The Final (Search) Frontier http://www.drdobbs.com/spam-the-final-search-frontier/229300310 I don't usually read TechCrunch, but it's a lazy Sunday here in snowy Maine, and Vivek Wadhwa's piece on <a href="http://techcrunch.com/2011/01/28/the-future-of-search-who-will-win-the-spam-wars/">sea... Sun, 30 Jan 2011 06:09:18 -0500 Hello Android (and the Google Nexus-S) http://www.drdobbs.com/mobile/hello-android-and-the-google-nexus-s/229300210 I don't usually review hardware for DDJ, but this feels like a special case for two reasons. First, it's the buzzed-about phone of the moment, what with it being the successor to Google's "failed" (bu... Fri, 31 Dec 2010 05:21:21 -0500 Mirah: A Ruby Syntax for Java http://www.drdobbs.com/jvm/mirah-a-ruby-syntax-for-java/229300247 There's been an explosion of interest in alternative JVM languages over the past couple years, which has seen the rise of Scala, Clojure, and Groovy, in addition to re-implementations of existing lang... Thu, 25 Nov 2010 08:59:36 -0500 What's Next for JRuby? 1.9 Compatibility, Windows Love, and More! http://www.drdobbs.com/architecture-and-design/whats-next-for-jruby-19-compatibility-wi/229300267 At <a href="http://rubyconf.org">Rubyconf</a> last week I had a chance to sit down with <a href="http://blog.enebo.com/">Thomas Enebo</a> and <a href="http://blog.headius.com/">Charles Nutter</a> from... Thu, 18 Nov 2010 12:04:55 -0500 A Startup In A Weekend http://www.drdobbs.com/web-development/a-startup-in-a-weekend/228700862 This is the fourth year I've helped organize the annual weekend-long Ruby on Rails developer competition known as the <a href="http://railsrumble.com">Rails Rumble</a>. Every year it gets bigger, the ideas get more ambitious, and the entries become more polished and professional. Thu, 21 Oct 2010 13:23:31 -0400 Rails 3 Released http://www.drdobbs.com/web-development/rails-3-released/228700576 Yesterday the Rails core team announced the <a href="http://weblog.rubyonrails.org/2010/8/29/rails-3-0-it-s-done">official release of Ruby on Rails 3.0.0</a>. Having been in development for over 2 years, Rails 3 is a significant update to the popular web framework and the result of a <a href="http://rubyonrails.org/merb">"project merger"</a> with the Merb framework that happened some time ago. Mon, 30 Aug 2010 08:08:40 -0400 Remembering the Amiga (25th Anniversary) http://www.drdobbs.com/architecture-and-design/remembering-the-amiga-25th-anniversary/228700433 A few weeks ago (July 24th to be exact) was the 25th anniversary of the Amiga. Although it wasn't my first computer, the Amiga 500 was probably the first computer I owned that felt special in some way. It was a hacker's computer, an audio/video entertainment box, a unique and colorful thing full of possibilities. The Amiga users I knew were different, too. Their platform of choice wasn't just a number cruncher or a means to an end, it was something they were passionate about and involved in. They were fanboys. They promoted the Amiga, they developed software for the Amiga, they open sourced the software they developed for the Amiga. At its height, the Amiga was celebrated by artists and videographers, as well as hobbyists. Even now, the Amiga still has a cult status among the hardcore fans. However, the machines haven't been widely manufactured since Commodore went out of business in 1994. The rights to the Amiga brand and IP have since changed hands a number of times, at one point even belonging to PC manufacturer Gateway 2000 (who supposedly had "grand plans" for the platform). Today, the trademark is owned by a company called Amiga, Inc. However, the status of that company is unclear; their web presence (<a href="http://amiga.com">amiga.com</a>) seems to have disappeared off the Internet. A company called A-Eon is still manufacturing PowerPC-based Amiga hardware. The latest incarnation, the AmigaOne X1000, was announced in January and supposedly goes on sale in "Summer 2010". Specs and more information are available at <a href="http://www.a-eon.com/">A-Eon's website</a> (make sure to check out the retro navigation). The Amiga operating system, AmigaOS, is officially licensed to another company, <a href="http://www.hyperion-entertainment.bi">Hyperion Entertainment</a>. Hyperion continues to develop the OS (currently at version 4.1) and appears to be surprisingly quite active. In fact, to celebrate the big 2-5 the folks at Hyperion used some commit visualization software to make an entertaining <a href="http://www.hyperion-entertainment.biz/index.php?option=com_content&view=article&id=141:twenty-five&catid=36:amigaos-4x&Itemid=18">time lapse video of AmigaOS development history</a> from the early days to the present, including personal commentary from the development team. It makes for a wonderful visual history of the platform, the hardware devices, and both the boom times and periods of uncertainty that have plagued the platform. If you ever owned an Amiga, or were exposed to them, it's definitely worth watching. They've also made a video available of <a href="http://www.hyperion-entertainment.biz/index.php?option=com_content&view=article&id=142&Itemid=18">AmigaOS running on the IBM's eLap PDA</a> (from 2004), which was unfortunately never released. It's impossible to say what the future holds for the Amiga, but the past decade has been a rocky one. It's certainly difficult to believe that the platform will make any sort of mainstream comeback, but perhaps not entirely outside the realm of possibilities. Either way, the Amiga has a firm place in the history of personal computing, as a pioneer of audio/video and interactive features that didn't catch on with wider Mac and PC audiences until years later. Regardless of what's next for the platform and it's die-hard users, the Amiga's brief flirtation with the mainstream had a serious impact on the market -- or at least on a few users that were smitten with it, like me -- and for that, we should celebrate it. (If you've got a few minutes to kill and want a more thorough history of the Amiga, make sure to check out <a href="http://arstechnica.com/hardware/news/2007/07/a-history-of-the-amiga-part-1.ars">this wonderful series of articles at Ars Technica</a> written in 2007) Fri, 06 Aug 2010 18:12:53 -0400 Standardization comes to the Cloud? http://www.drdobbs.com/open-source/standardization-comes-to-the-cloud/228700074 Cloud computing has done wonderful things for making web-based applications easy to deploy and scale. But, if your company's infrastructure runs on Amazon's EC2 or on Microsoft's Azure platforms, it's non-trivial to migrate that deployment to another service provider. Each offers a different deployment mechanism, different features, and a different set of challenges. In the cloud today, there really isn't any notion of standardization, and therefore, there's no real interoperability. <a href="http://openstack.org/">OpenStack</a> wants to change that. Tue, 20 Jul 2010 06:18:21 -0400 Running Experiments http://www.drdobbs.com/web-development/running-experiments/228701350 One of the great things about the web as a delivery mechanism is that it's so quick and easy to roll out new messaging and features. This means that it's also possible to track user satisfaction and get feedback on those changes quickly, and then to iterate on them for constant improvement. It makes experimentation easy. Sun, 18 Jul 2010 07:24:41 -0400 Rubinius is Ruby in Ruby http://www.drdobbs.com/open-source/rubinius-is-ruby-in-ruby/228700696 After nearly 4 years of development, the <a href="http://rubini.us">Rubinius Project</a> finally hit a proper <a href="http://rubini.us/about/one_point_oh">1.0 release</a> earlier this month. Rubinius is an alternative Ruby implementation that is now fully compatible with Ruby 1.8.7 (MRI). While not the only alternative implementation, it's distinguished by the fact that the bytecode compiler is written in pure Ruby (the virtual machine itself is written in C++). Most of the core library is written in Ruby as well, which is pretty neat, and clearly inspired by the <a href="http://en.wikipedia.org/wiki/Self-hosting">self-hosting</a> nature of Lisp compilers. It also presents a perfect opportunity for Rubyists to dig in and learn about how their runtime platform actually works. As of 1.0, you can now run both Rails 2.3.x and 3.x on Rubinius as well as Sinatra and a host of other Ruby web frameworks and toolkits (including any Gem that is written in pure Ruby without native bindings). Like it's cousin JRuby, it features a JIT compiler and also includes a generational garbage collector. In terms of overall performance, Rubinius is making constant improvements. It runs Ruby code very fast, but since much of the core library is written in Ruby rather than C (as it is in MRI), certain benchmarks may run markedly slower. The team continues to improve the JIT, which will result in performance increases as it evolves. They're also actively engaged with the community and contributions are always encouraged. Over 200 developers have participated in the development of the project, led by Evan Phoenix of Engine Yard (<a href="http://www.infoq.com/interviews/phoenix-rubinius-1-0">interview at InfoQ</a>). Along the way, Rubinius has not only morphed itself into a capable Ruby runtime but has also contributed to other aspects of the Ruby ecosystem, such as introducing the <a href="http://rubyspec.org/">RubySpec</a> executable specification for testing compatibility of different Ruby implementations -- which has since been embraced by MRI, YARV, JRuby, IronRuby, and MagLev. Want to test your own application out on Rubinius? The easiest way to is by using the <a href="http://rvm.beginrescueend.com/">Ruby Version Manager (RVM)</a>, a tool that makes it easy to install and manage a number of different Ruby implementations and versions, as well as Gem sets, on a single machine. Nomadicoder has written a simple <a href="http://nomadicoder.com/2010/05/25/quick-rvm-rubinius-1-0-0-install-recipe/">set of instructions</a> for getting Rubinius up and running quickly with RVM. Of course, if you want to dive right into the source, it's <a href="http://github.com/evanphx/rubinius">available on GitHub</a>. And since the majority of Rubinius is written in Ruby itself, it shouldn't be a stretch for the average Ruby developer to grok the code, which of course is the whole point of the affair. If you want to understand how your favorite language is actually implemented, and how dynamic languages can be fast, this is a great place to learn more, especially now that the project itself is a very capable feature-complete runtime. Sun, 30 May 2010 07:06:18 -0400 Please Annotate This Tweet http://www.drdobbs.com/web-development/please-annotate-this-tweet/228700766 Twitter's first official developer conference, <a href="http://chirp.twitter.com/">Chirp</a>, wrapped up earlier this week. Although I didn't attend personally, it's been interesting watching the flood of announcements and discussion, both from the blogosphere as well as from friends and colleagues who were in attendance. One of the more intriguing announcements was that of "Twitter annotations", which will allow users to add metadata to any tweet. According to Twitter platform team member Marcel Molina, an <a href="http://j.mp/bSzcJx">annotation</a> is basically a namespace, key, value triple (specified via JSON or form data parameters) that can be attached to any tweet when the message is first created. Simple, but potentially quite powerful. So how might you use this? You might, for example, want to attach location information to a message. Of course, you say, we can already attach location information to tweets! But with annotations a user could not only record their latitude and longitude but also note that a particular location is a movie theater, a park, an apartment building, or an ad-hoc concert venue. At a nice restaurant for lunch? Tell Twitter about it by recording its name, location, and hey, while you're at it, give it a star rating. Or search Twitter before making a decision to see how others have rated and categorized nearby eateries. With the right contextual metadata, social location-aware games like <a href="http://foursquare.com">Foursquare</a> could be implemented on top of the existing social network. Attaching music, viral video clips, or other media to tweets is already possible too; usually done through linking URLs. But allowing tweets to be directly annotated with media information might make locating trending music much easier. Hot tracks could be suggested by one user and 'voted up' through retweet-like mechanisms by others. So, a <a href="http://blip.fm">Blip.fm</a> competitor could be built directly on top of Twitter, perhaps, and without the need for a separate account (a user could authenticate with Twitter through OAuth, after all). What else? Turn-based gaming? Retail coupons? Disqus-style URL commenting? Frankly, Twitter doesn't know. In fact, they've pretty much said that they're looking to their users to determine how annotations might be best used. By not restricting annotations to a particular pre-defined set Twitter is hoping that its community will invent new and interesting ways to extend the service. On one hand, this is great; developers have been leveraging Twitter in interesting ways -- games, stock tracking, media sharing, brand monitoring -- since its early days, and it's smart of the company to recognize the organic innovation that their developer community brings to the table. On the other hand, without at least some structure, this could be a huge mess. How will namespace abuse be prevented? How will client applications support various types of metadata? Annotations will certainly give the Twitter development community some interesting opportunities to explore. The new capabilities will start rolling out sometime next quarter, if things go to plan. In the meantime, if you're interested in discussing the particulars, there are a couple active threads on the <a href="http://groups.google.com/group/twitter-development-talk">Twitter Development discussion group</a>. Fri, 16 Apr 2010 17:02:34 -0400 OSS Goes Corporate (And It's A Good Thing!) http://www.drdobbs.com/open-source/oss-goes-corporate-and-its-a-good-thing/228700939 Corporate sponsorship of open source projects has come a long way in the last couple years, as more traditional software and service businesses recognize the value in supporting community-developed software. The most recent example would be last weeks' <a href="http://blogs.vmware.com/console/2010/03/vmware-hires-key-developer-for-redis.html">announcement by VMware that they were hiring Redis developer Salvatore Sanfilippo</a>... Mon, 22 Mar 2010 04:04:00 -0400 Oh Hey, It's A Rails 3 Beta http://www.drdobbs.com/architecture-and-design/oh-hey-its-a-rails-3-beta/228701121 It&#39;s been well over a year since the Ruby on Rails and Merb teams <a href="http://yehudakatz.com/2008/12/23/rails-and-merb-merge/">announced that the projects would merge</a> for the upcoming Rails 3 release. Like most of you, I haven&#39;t been closely tracking the progress on a regular basis. Fortunately, a number of my friends and colleagues have been much more involved, contributing to and tracking the progress of the effort. </p> From an outsider point of view, watching their updates and conversations, I&#39;ve seen a mixture of intense enthusiasm about the overall project direction along with pessimism about the sheer amount of code that&#39;s been rewritten or replaced. None of this is surprising of course; merging two well-loved web frameworks into one entity while undertaking a major architectural overhaul is not a task to be trivialized :). </p> In any case, here we are, February of 2010, and we finally have a <a href="http://guides.rails.info/3_0_release_notes.html">Rails 3 beta release</a>, something maybe not quite finished but fully usable -- a snapshot of what the next evolution of the premier Ruby web framework will look like.</p> Thu, 04 Feb 2010 19:00:00 -0500 HTML5 Video Arrives http://www.drdobbs.com/architecture-and-design/html5-video-arrives/228700274 Earlier this week <a href="http://youtube.com/html5">YouTube</a> rolled out experimental support for HTML5 video (replacing the standard Flash vide player interface). Does this signal the beginning of serious HTML5 adoption in mainstream web applications? And maybe the beginning of the end of proprietary browser plugins for video playback? Read on to discuss. </p> Fri, 22 Jan 2010 19:00:00 -0500 About Open Source Stewardship http://www.drdobbs.com/open-source/about-open-source-stewardship/228700102 It&#39;s the end of the year, and, as is my wont, I&#39;ve been thinking a fair bit about the things I&#39;m thankful for in work and in life. One of those things, that has positively affected my work dramatically over the last 10 years, is the role of community in programming. In particular, the tireless work of talented, unpaid OSS project maintainers. The folks who generalize solutions to benefit all of us, who listen to our complaints, who fix bugs, apply our patches, manage releases, and all the other good stuff that comes with responsible code parenting.</p> So there I am, feeling all warm and fuzzy and thankful, <a href="http://twitter.com/zapnap/status/7139534262">tweeting my thanks</a> to the good people who make my life easier. And then Jeff Atwood, one of my favorite bloggers, goes and harshes my vibe. On Wednesday Atwood wrote a piece for <a href="http://www.codinghorror.com/blog/archives/001317.html">Coding Horror</a> about the responsibilities of Open Source project parents. Using John Gruber, creator of <a href="http://daringfireball.net/projects/markdown/">Markdown</a>, as an example, he basically says that Gruber, after giving birth to a coddled and universally loved baby, has pretty much stunted baby Markdown&#39;s growth through poor documentation and not listening to its community, resulting in a a number of messy forks and general confusion about where things might or might not be going.</p> Oh, the drama! Now, I&#39;m not really up on my Markdown project history (frankly I prefer <a href="http://www.textism.com/tools/textile/">Textile</a> for humane markup, but I&#39;m weird like that), so I can neither refute nor confirm his claims. But it&#39;s a well-written article and certainly what his article did do for me was get me thinking further about what makes a great bit of OSS code into a &nbsp;sustainable, thriving OSS community project.</p> Wed, 30 Dec 2009 19:00:00 -0500 Mobile Web Apps: Where Are We Now? http://www.drdobbs.com/architecture-and-design/mobile-web-apps-where-are-we-now/228700910 Awhile back I wrote an article for CodeTalk called <a href="index.php?option=com_myblog&amp;show=Web-Apps-As-First-Class-Citizens-1050.html&amp;Itemid=29">Web Apps As First Class Citizens</a> in which I advocated use of tools like <a href="http://phonegap.com/">PhoneGap</a> to build web-based multi-use iPhone and Android applications instead of the richer but client-specific native toolkits (where appropriate).</p> Well, it&#39;s been almost a year since I wrote that, and native applications still rule the roost in both the iPhone and Android camps. And it doesn&#39;t look like the situation is going to change any time in the near future, either. But that&#39;s not to say that we&#39;re entirely without hope that mobile web apps will one day stand shoulder to shoulder with their native counterparts!&nbsp;</p> Thu, 17 Dec 2009 19:00:00 -0500 Book Review: Pragmatic Thinking and Learning http://www.drdobbs.com/architecture-and-design/book-review-pragmatic-thinking-and-learn/228701782 Any book that claims to help you &quot;refactor your wetware&quot; and has a chapter on debugging your brain is a natural eye-catcher, right? Reading Andy Hunt&#39;s <a href="http://pragprog.com/titles/ahptl/pragmatic-thinking-and-learning">&quot;Pragmatic Thinking and Learning&quot;</a> probably won&#39;t elevate your IQ twenty points or teach you tactile telekinesis, but it&#39;s a solid read, containing loads of information about how the human brain processes information, the nature of learning, and how you can take advantage of these things through helpful productivity hacks.</p> Sat, 28 Nov 2009 19:00:00 -0500 The Future of Ruby Library Distribution: The Gemcutter Interview http://www.drdobbs.com/architecture-and-design/the-future-of-ruby-library-distribution/228701237 When GitHub <a href="http://github.com/blog/515-gem-building-is-defunct">phased out Ruby Gem building</a> a few weeks ago, they recommended the <a href="http://gemcutter.org/">Gemcutter project</a> as a replacement Gem host for folks who weren&#39;t already using the default source, <a href="http://rubyforge.org">RubyForge</a>. The big news earlier this week is that the RubyForge and RubyGems teams are also getting behind Gemcutter, which will become the default gem host for the entire Ruby community (as rubygems.org).</p> To shed a little more light on the nature of these changes and what they mean for the future of Ruby package distribution, I sat down with <a href="http://litanyagainstfear.com/">Nick Quaranto</a> , the original creator and maintainer of Gemcutter.</p> Thu, 29 Oct 2009 20:00:00 -0400 MIT Startup Bootcamp http://www.drdobbs.com/architecture-and-design/mit-startup-bootcamp/228701624 <p style="font: normal normal normal 12px/normal Helvetica; margin: 0px">Yesterday (October 12th) I attended MIT&#39;s <a href="http://startupbootcamp.mit.edu/">Startup Bootcamp</a>, a mini-conference of sorts featuring talks from a variety of entrepreneurs and venture capitalists. The speakers were there to encourage audience members, aspiring entrepreneurs, and MIT community members to step up and get their ideas off the ground, and that starting a successful tech company might not be as difficult as they think.</p><p style="font: normal normal normal 12px/normal Helvetica; margin: 0px">&nbsp;</p> Sun, 11 Oct 2009 20:00:00 -0400 Remote Pair Programming Resources http://www.drdobbs.com/architecture-and-design/remote-pair-programming-resources/228700547 <a href="http://en.wikipedia.org/wiki/Pair_programming">Pair programming</a> is widely regarded as a software best practice. But what if your entire team is remote? Every day more software projects embrace the benefits of decentralization. But along with the benefits come a few obvious downsides, worker isolation and communication barriers perhaps being the largest issues. Fortunately, with the right (free) tools, remote pairing can be not only practical but actually pleasant!</p> Sat, 12 Sep 2009 20:00:00 -0400 Whatever Happened to _Why? http://www.drdobbs.com/architecture-and-design/whatever-happened-to-why/228701418 If I had to point to the one singular reason I moved over from Java and PHP to Ruby a few years back... Alright, I have to admit that it&#39;d probably be Rails, which at the time had just turned 1.0 and was, well, a pretty amazing seachange for me. But it was only when I read _Why the Lucky Stiff&#39;s <a href="http://www.scribd.com/doc/8545174/Whys-Poignant-Guide-to-Ruby">&quot;Poignant Guide to Ruby&quot;</a> that I really fell in love with the language, its community, and really felt like there was something other than &quot;just another programming language&quot; here.</p> Fri, 28 Aug 2009 20:00:00 -0400 Best 48-Hour Web App? You Decide! http://www.drdobbs.com/web-development/best-48-hour-web-app-you-decide/228700841 Public voting for the <a href="http://railsrumble.com">2009 Rails Rumble</a> competition is now underway. Won&#39;t you join us in helping to pick the best of the best from a crop of impressive 48-hour micro applications?</p> Alright, so this is sort of a shameless plug as I&#39;m a contest organizer, but I can&#39;t help it -- I&#39;m a firm believer in the power of applying pressure on the development process to create great stuff! Like diamonds, right? Right. The finalists this year demonstrate that you can accomplish an awful lot of awesome in 48 hours with a talented team, and modern development tools and OSS libraries. It&#39;s inspiring to me, to see what they&#39;ve accomplished, and I hope some of you might feel the same</p> Thu, 27 Aug 2009 20:00:00 -0400 Help Us Kill IE6 http://www.drdobbs.com/web-development/help-us-kill-ie6/228701037 Internet Explorer 6 has been the bane of just about every professional web developer for at least the last 3 years. It&#39;s lack of support for modern web standards and <a href="http://elbertf.com/ie6ify/">epic rendering quirks</a> have earned it much well-deserved hatred, yet it&#39;s broad corporate installation base has forced us to continue to struggle to support it in order for our applications to be accessible by everyone.</p> Facebook, Digg, and <a href="http://www.readwriteweb.com/archives/browsing_youtube_with_ie6_at_work_those_days_may_soon_be_over.php">YouTube</a> are the next in a series of major web applications that are preparing to drop support for the antiquated browser, and this is A Good Thing. Many other sites have already made the decision and have no problem <a href="http://idroppedie6.com">bragging about it</a> publicly. Isn&#39;t it time you did the same?</p> Tue, 28 Jul 2009 20:00:00 -0400