<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <title>Technology for Humans - Home</title>
  <id>tag:www.mslater.com,2008:mephisto/</id>
  <generator version="0.7.3" uri="http://mephistoblog.com">Mephisto Noh-Varr</generator>
  <link href="http://www.mslater.com/feed/atom.xml" rel="self" type="application/atom+xml"/>
  <link href="http://www.mslater.com/" rel="alternate" type="text/html"/>
  <updated>2008-07-02T03:09:49Z</updated>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:www.mslater.com,2008-07-02:10528</id>
    <published>2008-07-02T03:10:00Z</published>
    <updated>2008-07-02T03:09:49Z</updated>
    <category term="kitten"/>
    <link href="http://www.mslater.com/2008/7/2/our-newest-family-member" rel="alternate" type="text/html"/>
    <title>Our Newest Family Member</title>
<content type="html">
            &lt;p&gt;Meet Sapphire, our new kitten. Is there anything better than a kitten?&lt;/p&gt;


	&lt;p&gt;&lt;img src='http://www.mslater.com/assets/2008/7/1/IMG_7905.jpg' alt='' /&gt;&lt;/p&gt;


	&lt;p&gt;&lt;img src='http://www.mslater.com/assets/2008/7/1/IMG_8047.jpg' alt='' /&gt;&lt;/p&gt;


	&lt;p&gt;&lt;img src='http://www.mslater.com/assets/2008/7/1/IMG_7913.jpg' alt='' /&gt;&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:www.mslater.com,2008-07-01:10527</id>
    <published>2008-07-01T05:33:00Z</published>
    <updated>2008-07-01T05:40:52Z</updated>
    <category term="iphone"/>
    <category term="lg voyager"/>
    <category term="mobile web"/>
    <category term="verizon"/>
    <link href="http://www.mslater.com/2008/7/1/iphone-will-cost-verizon-my-business" rel="alternate" type="text/html"/>
    <title>iPhone Will Cost Verizon My Business</title>
<content type="html">
            &lt;p&gt;I&#8217;ve been with Verizon for a long time, since it was called something else I don&#8217;t remember any more (GTE?). In the early days, they were the only company with even half-decent service out in the country where I live. We now have four phones on a family plan.&lt;/p&gt;


	&lt;p&gt;When the iPhone came out last year, I was intrigued, but not enough to change mobile carriers. I got an iPod Touch instead, and the LG Voyager phone from Verizon.&lt;/p&gt;


	&lt;p&gt;Although the iPod Touch and the LG Voyager share many capabilities, the contrast between the two devices is striking. Six months use of the two of them has left me eager to abandon the Voyager.&lt;/p&gt;


	&lt;p&gt;Sadly, the Voyager is riddled with bad design decisions. Just a few of them:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;The Voyager opens up to reveal a real Qwerty keyboard, which might be nice if I sent many mobile messages. The email client is so poor, however, that I don&#8217;t do much messaging on the phone.&lt;/li&gt;
		&lt;li&gt;The web browser is painful to use. It&#8217;s so inferior to the iPod Touch&#8217;s browser that it&#8217;s hard to put into words.&lt;/li&gt;
		&lt;li&gt;The only way to turn on the speakerphone is to open the phone to put it into &#8220;full keyboard&#8221; mode. This is often clumsy.&lt;/li&gt;
		&lt;li&gt;Furthermore, the full keyboard is poorly thought out for use as part of a phone. You have to use shift to get to &lt;code&gt;#&lt;/code&gt; or &lt;code&gt;*&lt;/code&gt;!&lt;/li&gt;
		&lt;li&gt;The web browser is clunky, and the small internal screen is further crippled for web browsing by having the top and bottom lines of the display permanently devoted to status functions.&lt;/li&gt;
		&lt;li&gt;The touch screen scrolling is awkward and hard to use.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;The iPod Touch, while it obviously is not a phone, is vastly superior to the Voyager as a web browser and email device, and, for that matter, as a calendar, contact list, calculator, and note pad. The emergence of third-party iPhone apps will dramatically widen the iPhone&#8217;s lead; the Voyager is a proprietary platform with weak software support. (It&#8217;s a great bonus that the iPhone eliminates the need for an iPod as a separate device, but this isn&#8217;t the driving attraction for me.)&lt;/p&gt;


	&lt;p&gt;So when the new iPhone comes out next week, Verizon will lose me as a customer. (Just me personally, alas, as it will take some time before my family switches.) It&#8217;s an expensive and painful decision for me. But the iPhone is just so superior to anything that Verizon has to offer that I can&#8217;t take it any more.&lt;/p&gt;


	&lt;p&gt;It&#8217;s the first time in nearly 20 years of owning cell phones of all stripes that the availability of a device has overwhelmed the ease of sticking with my provider.&lt;/p&gt;


	&lt;p&gt;It took a decade longer than we all hoped back in the 90&#8217;s, but the mobile web is finally coming into its own. With some of the power in the mobile world shifting to Apple and perhaps to Google, I hope we&#8217;ll see a gradual end to the omnipotence of the mobile carriers, which have, in many ways, been a force against innovation. They just can&#8217;t seem to get out of their own way when it comes to making phones a platform.&lt;/p&gt;


	&lt;p&gt;It&#8217;s time for big changes in the mobile industry.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:www.mslater.com,2008-05-29:10508</id>
    <published>2008-05-29T18:39:00Z</published>
    <updated>2008-05-29T18:45:29Z</updated>
    <category term="Building a Business"/>
    <category term="Ruby on Rails"/>
    <link href="http://www.mslater.com/2008/5/29/a-business-update" rel="alternate" type="text/html"/>
    <title>A Business Update</title>
<content type="html">
            &lt;p&gt;It&#8217;s been a while since I&#8217;ve posted to this blog, so I thought it was time for an update.&lt;/p&gt;


	&lt;p&gt;Anyone who has been involved in a startup knows how all-consuming that can be. We also have a blog over at &lt;a href='http://blog.buildingwebapps.com'&gt;BuildingWebApps.com&lt;/a&gt;, and I&#8217;ve been writing a bit both for that blog and for the core of the site. But most of what has been consuming my time is crafting a business around the technology we&#8217;ve been developing.&lt;/p&gt;


	&lt;p&gt;Christopher Haupt and I founded Collective Knowledge Works, Inc. last fall, and our first venture was to launch &lt;a href='http://www.buildingwebapps.com'&gt;BuildingWebApps&lt;/a&gt;, a resource site for Ruby on Rails developers. We also started the &lt;a href='http://www.buildingwebapps.com/learning_rails'&gt;Learning Rails free online course&lt;/a&gt;, which began with podcasts and has evolved into a series of screencasts, in which we build a Rails application step by step. It&#8217;s been tremendously popular, with several thousand people following the course. It&#8217;s a lot of fun teaching this way, and seeing how much value people get from it.&lt;/p&gt;


	&lt;p&gt;We considered building a business around serving the web application developer community, but we&#8217;ve decided to keep this as a side project, rather than the core of our business, because we want to build something that we believe we can scale into a more significant company.&lt;/p&gt;


	&lt;p&gt;In thinking about the application we built to create the BuildingWebApps site, we realized that it has a much broader potential use: building a resource site on any topic. We think of it as the next generation beyond blogs and content management systems. We&#8217;ll offer this as a hosted service, enabling anyone to build a site like BuildingWebApps, on any topic.&lt;/p&gt;


	&lt;p&gt;The next question was which customers to focus on. We found that, as a horizontal technology platform, it was hard to explain to people, and hard to come up with a focused marketing strategy. Some customer groups we looked at include:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Infopreneurs: people building web-based information businesses&lt;/li&gt;
		&lt;li&gt;Passionates: individuals or organizations who are passionate about a topic and want a platform for communicating their knowledge and engaging the community&lt;/li&gt;
		&lt;li&gt;Businesses: businesses for which educating their customers and prospects is important&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;After lots of analysis, we&#8217;ve decided to focus our initial product on the last of these categories: in particular, on small businesses. There&#8217;s a lot of customer pain here that we can address, and a lot of value that we can provide. Most small business sites are awful, if the business has a site at all. The model of going to a local web developer and building a site from scratch is expensive and painful, and almost always results in a largely static site with no community features.&lt;/p&gt;


	&lt;p&gt;We&#8217;re going to provide a platform to make it easy for small businesses to create powerful sites that engage their customer community and become valued information resources that attract new customers. There&#8217;s lots of pieces of this that go beyond what we&#8217;ve done at BuildingWebApps, and which we&#8217;re not quite ready to talk about.&lt;/p&gt;


	&lt;p&gt;We may also have versions of the platform for the other two customer categories, and they may be the source of significant long-term growth, but they won&#8217;t be our initial focus.&lt;/p&gt;


	&lt;p&gt;We&#8217;ve raised a little more angel financing to take this to the next level, and we&#8217;ll be launching the product in the fall. There&#8217;s a teaser at the embryonic &lt;a href='http://www.collectiveknowledge.com'&gt;Collective Knowledge Works site&lt;/a&gt;. If you&#8217;d like to be notified when we have the private beta ready, please enter your email address there.&lt;/p&gt;


	&lt;p&gt;It&#8217;s been a fascinating process getting to this point. It&#8217;s been a year and a half since I left Adobe and gave myself the flexibility to pursue various interests and see what bubbles up. A lot of threads have come together now, and I&#8217;m really excited about where we&#8217;re heading.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mslater</name>
    </author>
    <id>tag:www.mslater.com,2008-03-04:10447</id>
    <published>2008-03-04T23:08:00Z</published>
    <updated>2008-03-04T23:11:23Z</updated>
    <link href="http://www.mslater.com/2008/3/4/going-to-south-by-southwest" rel="alternate" type="text/html"/>
    <title>Going to South by Southwest?</title>
<content type="html">
            &lt;p&gt;I&#8217;ll be at &lt;span class='caps'&gt;SXSW&lt;/span&gt; from Friday afternoon through Tuesday, and would love to get together with any of my readers who are going to be there. Give me a call at 888.670.6793 ext 2, which will forward to my cell phone, or send me an email through the &lt;a href='http://www.buildingwebapps.com/contact'&gt;BuildingWebApps contact form&lt;/a&gt;. I&#8217;m not much of a Twitterer, but I&#8217;ll try to post occasional updates about where I&#8217;ll be during the conference, so you can also follow me on Twitter as mzslater.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mslater</name>
    </author>
    <id>tag:www.mslater.com,2008-02-13:10437</id>
    <published>2008-02-13T01:27:00Z</published>
    <updated>2008-02-13T01:32:25Z</updated>
    <category term="Ruby on Rails"/>
    <link href="http://www.mslater.com/2008/2/13/last-chance-for-february-rails-seminar" rel="alternate" type="text/html"/>
    <title>Last Chance for February Rails Seminar</title>
<content type="html">
            &lt;p&gt;The &lt;a href='http://www.buildingwebapps.com/seminar'&gt;RailsQuickStart seminar&lt;/a&gt; that my colleague Christopher Haupt and I will be presenting in San Francisco next week is filling up fast, so if you&#8217;ve been thinking of attending, now is the time to &lt;a href='http://www.buildingwebapps.com/seminar'&gt;sign up&lt;/a&gt;. The seminar is February 20 and 21 at Fort Mason in San Francisco.&lt;/p&gt;


	&lt;p&gt;We have a packed two days planned, divided into lecture sections in which we&#8217;ll explain how Rails works, live coding sections in which we&#8217;ll build a complete application step-by-step, and lab sections in which attendees will extend the sample application. Everyone will also get a one-month hosting account, courtesy of Joyent, and before they leave the seminar their app will deployed. We&#8217;re including customized Capistrano scripts and and a subversion setup.&lt;/p&gt;


	&lt;p&gt;If you&#8217;ve been wanting to learn Ruby on Rails, or if you&#8217;ve been playing with it but have struggled to climb the learning curve, this is your chance to move into high gear.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mslater</name>
    </author>
    <id>tag:www.mslater.com,2008-01-08:10396</id>
    <published>2008-01-08T01:54:00Z</published>
    <updated>2008-01-08T02:00:43Z</updated>
    <category term="Building a Business"/>
    <category term="Ruby on Rails"/>
    <category term="Web Development"/>
    <category term="buildingwebapps.com"/>
    <category term="collective knowledge"/>
    <link href="http://www.mslater.com/2008/1/8/ruby-on-rails-resource-site-launched" rel="alternate" type="text/html"/>
    <title>Ruby on Rails Resource Site Launched</title>
<content type="html">
            &lt;p&gt;After several months of development, we have finally taken the wraps off the &lt;a href='http://www.buildingwebapps.com?tid=msblog'&gt;BuildingWebApps&lt;/a&gt; site!&lt;/p&gt;


	&lt;p&gt;&lt;strong&gt;Note: I won&#8217;t be publishing any more Ruby on Rails or web development articles on this blog.&lt;/strong&gt; This will be more of a personal blog, with everything related to web technology going on the new site. To continue receiving the Rails articles that I and my colleagues will be writing (and we have plans for lots more articles than I&#8217;ve been able to publish here), please &lt;a href='http://www.buildingwebapps.com/redirect/articles_subscribe?tid=msblog'&gt;subscribe to the BuildingWebApps articles feed&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;You can also &lt;a href='http://www.buildingwebapps.com/redirect/blog_subscribe'&gt;subscribe to the BuildingWebApps blog&lt;/a&gt;, where I&#8217;ll be writing about the process of building the site and the business.&lt;/p&gt;


	&lt;h2&gt;State of the site&lt;/h2&gt;


	&lt;p&gt;BuildingWebApps.com is still very much a work in progress, but we&#8217;ve gone ahead and opened it up so we can get feedback. Please take a look and let me know what you think.&lt;/p&gt;


	&lt;p&gt;We worked with Josh Woodlander and Ethan Allen at &lt;a href='http://www.raspberrymedia.com'&gt;Raspberry Media&lt;/a&gt; on the visual and interaction design, and I think they did a fantastic job. It was a joy to work with people who have such a strong sense of graphic design and who think deeply about the challenges of effectively presenting lots of information. And Ethan is a wizard at making all the browsers behave reasonably. (Any oddities you see are probably the result of my modifications.) If you&#8217;re looking for a team to take on a significant web design project, I highly recommend them.&lt;/p&gt;


	&lt;p&gt;My goal is to build this site into a valuable resource for the Ruby on Rails community, and for people who want to learn Ruby on Rails. Over time, we&#8217;ll increase our coverage of other web-related technology as well.&lt;/p&gt;


	&lt;p&gt;The site includes both original articles and an annotated, organized set of links to hundreds of other resources around the web. We&#8217;re in the early phases of building up the content, so I realize that it will seem a little thin in places (and if you&#8217;ve read the Rails-related articles on this blog, some of it will seem very familiar). But there&#8217;s lots of great stuff to come.&lt;/p&gt;


	&lt;p&gt;I&#8217;m really interested in feedback on the usability of the site. You can also submit suggestions on the site to help us build up the content.&lt;/p&gt;


	&lt;h2&gt;How is this a business?&lt;/h2&gt;


	&lt;p&gt;In case you&#8217;re curious about the business model: we plan to make all the core content free indefinitely. At some point, we&#8217;ll add some premium content that will require membership or a one-time payment. We&#8217;ll probably have advertising. And we&#8217;re offering seminars.&lt;/p&gt;


	&lt;p&gt;Longer term, we believe that the application we&#8217;re building to power this site will be applicable to many other knowledge domains and communities. Blogs and wikis are all the rage, but they both have huge limitations that we believe our platform will overcome.&lt;/p&gt;


	&lt;h2&gt;Don&#8217;t forget to change channels&lt;/h2&gt;


	&lt;p&gt;Once again, please note that I won&#8217;t be publishing any more Ruby on Rails or web development articles on this blog. I will continue this blog to write about a variety of topics beyond web development, so please keep your subscription here if you&#8217;re interested in my random thoughts. But if you subscribed to this blog primarily for web development information, it&#8217;s time to move on:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;To continue receiving the web development articles that I and my colleagues will be writing, &lt;a href='http://www.buildingwebapps.com/redirect/articles_subscribe?tid=msblog'&gt;subscribe to the BuildingWebApps articles feed&lt;/a&gt;.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;To read about the evolving business of which BuildingWebApps is a part, &lt;a href='http://www.buildingwebapps.com/redirect/blog_subscribe'&gt;subscribe to the BuildingWebApps blog&lt;/a&gt;.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;Thanks!&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mslater</name>
    </author>
    <id>tag:www.mslater.com,2007-12-13:10390</id>
    <published>2007-12-13T04:39:00Z</published>
    <updated>2007-12-13T04:41:30Z</updated>
    <category term="Book Reviews"/>
    <category term="Ruby on Rails"/>
    <category term="the rails way"/>
    <link href="http://www.mslater.com/2007/12/13/the-rails-way-the-second-must-have-rails-book" rel="alternate" type="text/html"/>
    <title>The Rails Way: The second must-have Rails book</title>
<content type="html">
            &lt;p&gt;A little more than a year ago, there really was only one Rails book: &lt;a href='http://www.amazon.com/exec/obidos/ASIN/0977616630/mslater-20'&gt;Agile Web Development with Rails&lt;/a&gt;, by Dave Thomas, David Heinemeier Hansson, and friends. Since then, about a dozen Rails books have come out. None of them, however, has replaced this seminal book as the best general resource for Rails developers.&lt;/p&gt;


	&lt;p&gt;This is not to say that there have not been some excellent books. Some do a better job at providing a gentle entry for beginners, others focus on specific areas, and many provide &lt;a href='http://www.mslater.com/2007/8/20/excellent-new-rails-book'&gt;interesting example applications&lt;/a&gt;. But they are mostly tutorials, rather than references.&lt;/p&gt;


&lt;p&gt;
    &lt;div&gt;

        &lt;a href='http://www.amazon.com/exec/obidos/ASIN/0321445619/mslater-20'&gt;&lt;img src='http://ecx.images-amazon.com/images/I/21DXA0v5k0L.jpg' /&gt;&lt;/a&gt;

    &lt;br /&gt;
        &lt;a href='http://www.amazon.com/exec/obidos/ASIN/0321445619/mslater-20'&gt;The Rails Way (Addison-Wesley Professional Ruby Series)&lt;/a&gt;
    &lt;/div&gt;
&lt;/p&gt;


	&lt;p&gt;&lt;a href='http://www.amazon.com/exec/obidos/ASIN/0321445619/mslater-20'&gt;The Rails Way&lt;/a&gt; changes this. It is a better Rails reference than the Agile book, both because it provides more depth and because it is current with Rails 2.0. For the first time, there is a second book that is indispensable for any serious Rails developer.&lt;/p&gt;


	&lt;p&gt;The Rails Way is not a good book for someone new to Rails; there is no introductory overview, no Ruby tutorial, and no sample application. But as a reference, it is unmatched. It is very readable, despite being a reference work, because author Obie Fernandez has insights to share in almost every section. In skimming through the book, I found details in almost every section that I never quite understood before, which the books explains with sparkling clarity.&lt;/p&gt;


	&lt;p&gt;Even though it is intended primarily as a reference, The Rails Way is an outstanding tutorial for anyone who understands the basics of Rails and wants to dig deeper (and has a few days to spend reading). In this regard, it is true to its namesake book, Hal Fulton&#8217;s &lt;a href='http://www.amazon.com/exec/obidos/ASIN/0672328844/mslater-20'&gt;The Ruby Way&lt;/a&gt;, which holds a similar place in the Ruby world.&lt;/p&gt;


	&lt;p&gt;The Rails Way&#8217;s coverage is both deeper and broader than any other Rails book, in covering the Rails framework and associated plugins, tools, and attitudes. It weighs in at 850 pages, about 10% longer than the Agile book&#8212;and a third of the Agile book is the tutorial introduction and sample application.&lt;/p&gt;


	&lt;p&gt;If you&#8217;re working with Rails on anything but the most casual basis, you shouldn&#8217;t work without this book nearby.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:www.mslater.com,2007-12-02:10383</id>
    <published>2007-12-02T07:22:00Z</published>
    <updated>2007-12-02T07:44:12Z</updated>
    <category term="About Me"/>
    <category term="Building a Business"/>
    <category term="adobe"/>
    <category term="innovation"/>
    <link href="http://www.mslater.com/2007/12/2/celebrating-a-year-of-freedom" rel="alternate" type="text/html"/>
    <title>Celebrating a Year of Freedom</title>
<content type="html">
            &lt;p&gt;One year ago today I embarked on my current adventure, leaving Adobe after five years there and two years creating the startup they acquired, Fotiva. At the time I left Adobe, I had only the fuzziest idea of what I was going to do, but I knew it would be related to the web, and I was pretty sure it would be connected to Ruby on Rails. And that it has turned out to be.&lt;/p&gt;


	&lt;p&gt;I&#8217;m as busy as I&#8217;ve ever been, and my income in the past year is the lowest it has been in more than 25 years. But I&#8217;m having a great time, and I have a good feeling about where things are headed.  I thought I&#8217;d take the excuse of this one-year anniversary to look back on my decision to leave Adobe, and catch my readers up on my business thinking.&lt;/p&gt;


	&lt;h2&gt;Looking back on Adobe&lt;/h2&gt;


	&lt;p&gt;I&#8217;ve not written much about my experiences at Adobe, in part because I want to avoid any possible appearance of breaking confidentiality agreements, and also because I wanted to gain some perspective first.&lt;/p&gt;


	&lt;p&gt;Looking back on my five years at Adobe, there&#8217;s a lot that I&#8217;m grateful for. I learned a tremendous amount about digital imaging and the PC software business, and about life inside a big company. I met a lot of great people, was able to immerse myself in digital photography, and had the opportunity to lead a research team and do technology licensing with the power of a big player behind me. The team I helped build for Fotiva continues on, in large part, as Adobe&#8217;s Santa Rosa office, and I&#8217;m pleased to have had some small role in growing the software business in the North Bay. And the product that started life at Fotiva has an enduring role as the organizer in Photoshop Elements.&lt;/p&gt;


	&lt;p&gt;In a strange way, though, I&#8217;m most grateful to Adobe for being so thoroughly dysfunctional when it comes to enabling innovation that it drove me out. As someone with a entrepreneurial heart, I found Adobe stifling. If I had been able to accomplish a bit more at Adobe, I might still be there, and then I would have missed out on so much.&lt;/p&gt;


	&lt;p&gt;To a large degree, the challenges I faced finding happiness at Adobe would be there in any businesses at that scale. But not entirely. Many of the other entrepreneurial folks I met at Adobe, who tried valiantly to build new products and services, have also left. They&#8217;re at an assortment of small companies, but also at Google, and Yahoo, and Apple.&lt;/p&gt;


	&lt;p&gt;One of Adobe&#8217;s biggest weaknesses, in my view, is the distance between top management and the people who have passion for innovative new product ideas. It is exhausting, and usually dispiriting in the end, pushing ideas up through a chain that, at it&#8217;s pinnacle, doesn&#8217;t seem very interested.&lt;/p&gt;


	&lt;p&gt;The difficulties I had getting new concepts to market at Adobe, especially when they were web-related, are symptomatic of top management&#8217;s resistance to exploring new concepts in the marketplace. Adobe doesn&#8217;t like to accept the risk of new markets in return for a role (and learning opportunity) as an early player. Perhaps at Adobe&#8217;s scale their approach of waiting until market opportunities are clear, and then buying their way in as needed, makes sense. But it did not make for a satisfying place for me to work.&lt;/p&gt;


	&lt;h2&gt;My evolving Ruby on Rails business plan&lt;/h2&gt;


	&lt;p&gt;When I left Adobe, I had done a little Rails development, and read a lot about it, and I felt strongly that it was going to be a big deal. I spent the majority of this year building custom Rails sites for small businesses, and set up &lt;a href='http://www.topazws.com'&gt;Topaz Web Solutions &lt;span class='caps'&gt;LLC&lt;/span&gt;&lt;/a&gt; as the home for that work. I enjoyed it, and some of it is ongoing, but my focus has now shifted to Collective Knowledge Works, Inc., the company I cofounded this fall with my partner Christopher Haupt.&lt;/p&gt;


	&lt;p&gt;I spent quite a while looking for ways to build a business around delivering Rails-based solutions to other small businesses. I continue to believe there is a great opportunity in this domain, but the sales and support challenges are significant.&lt;/p&gt;


	&lt;p&gt;Collective Knowledge Works grew out of an idea I had to create a portal for Ruby on Rails developers. We&#8217;re now deep into doing just that: you can sign up for the beta list at &lt;a href='http://www.buildingwebapps.com'&gt;BuildingWebApps.com&lt;/a&gt;. Within a couple weeks, we&#8217;ll be letting in beta testers, and early next year it will be public. I can&#8217;t wait to show it off, and I think it&#8217;s going to be a great resource for the Rails community. After eight years away from the editorial, publishing, and training business, I&#8217;m glad to be back in it.&lt;/p&gt;


	&lt;p&gt;Initially, we don&#8217;t expect BuildingWebApps.com to generate much revenue directly. Our first revenue stream will be from the &lt;a href='http://www.buildingwebapps.com/seminar'&gt;Ruby on Rails QuickStart Seminar&lt;/a&gt; that we&#8217;ll be presenting in February in San Francisco. Later, we believe we can create revenue from the site itself in various ways.&lt;/p&gt;


	&lt;p&gt;Christopher and I have just launched the &lt;a href='http://www.learningrails.com'&gt;Learning Rails&lt;/a&gt; podcast, which has been an adventure of its own.&lt;/p&gt;


	&lt;p&gt;There&#8217;s a bigger plan in the background, too. All the technology we&#8217;re building for BuildingWebApps.com can be used for any knowledge domain. After we&#8217;ve had time to build out this first site, we&#8217;re going to develop additional knowledge domains, and enable others to host their own knowledge domains. That&#8217;s why we named the company Collective Knowledge Works.&lt;/p&gt;


	&lt;p&gt;It&#8217;s great to be back in this early business-building phase. And it&#8217;s wonderful not to have to try to sell new ideas up through multiple layers of management, but simply to decide what to do, and then do it.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:www.mslater.com,2007-11-30:10382</id>
    <published>2007-11-30T23:47:00Z</published>
    <updated>2007-11-30T23:48:25Z</updated>
    <category term="Ruby on Rails"/>
    <category term="rails"/>
    <category term="ruby on rails"/>
    <category term="seminar"/>
    <category term="training"/>
    <category term="web development"/>
    <link href="http://www.mslater.com/2007/11/30/ruby-on-rails-quickstart-seminar-launched" rel="alternate" type="text/html"/>
    <title>Ruby on Rails QuickStart Seminar Launched</title>
<content type="html">
            &lt;p&gt;During the dozen or so years I ran the Microprocessor Forum conference, I presented hundreds of seminars on microprocessors and PC technology. I enjoy teaching, and I&#8217;ve missed this aspect of that business.&lt;/p&gt;


	&lt;p&gt;Since I&#8217;ve been working with Ruby on Rails, I&#8217;ve been thinking about how it could be made easier for people to learn. I believe there are vast numbers of web designers and developers who would find Rails a very useful tool, and who could improve their productivity&#8212;and their satisfaction with what they&#8217;re producing and the process of producing it.&lt;/p&gt;


	&lt;p&gt;One thing led to another, and on February 20 and 21, my colleague Christopher Haupt and I will be presenting our first Ruby on Rails QuickStart seminar in San Francisco.&lt;/p&gt;


	&lt;p&gt;We&#8217;ve designed the seminar for web designers and developers with only minimal programming experience. We&#8217;re providing a pre-built site, which we&#8217;ll walk through during the seminar, that attendees can use as the basis of their own sites. We&#8217;re also very close to a deal with a hosting provider to offer free hosting for a month, so we can help attendees get their sites deployed before the seminar is over. We&#8217;ll provide each attendee with the NetBeans &lt;span class='caps'&gt;IDE&lt;/span&gt;, deployment scripts, and everything else they need to immediately build and deploy Ruby on Rails web sites.&lt;/p&gt;


	&lt;p&gt;I&#8217;m really looking forward to the seminar and hope some of my readers can join me there.&lt;/p&gt;


	&lt;p&gt;The early registration price of $695 is good until December 20. There&#8217;s details at the &lt;a href='http://www.buildingwebapps.com/seminar'&gt;BuildingWebApps.com&lt;/a&gt; site.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:www.mslater.com,2007-11-28:10381</id>
    <published>2007-11-28T06:13:00Z</published>
    <updated>2007-11-28T06:14:14Z</updated>
    <category term="Ruby on Rails"/>
    <category term="podcast"/>
    <link href="http://www.mslater.com/2007/11/28/learning-rails-podcast-launched" rel="alternate" type="text/html"/>
    <title>Learning Rails Podcast Launched</title>
<content type="html">
            &lt;p&gt;Today I began my podcasting career with the publication of the first episode of &lt;a href='http://www.buildingwebapps.com/podcasts'&gt;Learning Rails&lt;/a&gt;. It&#8217;s been a lot of fun pulling this together&#8212;and a lot more work than I anticipated. I&#8217;m looking forward to recording future episodes when I&#8217;m not learning the audio software and assembling the web pages and the &lt;span class='caps'&gt;RSS&lt;/span&gt; feed infrastructure at the same time.&lt;/p&gt;


	&lt;p&gt;If you have any interest in learning more about Ruby on Rails, check out the first episode: &lt;a href='http://www.buildingwebapps.com/podcasts/1/show_notes'&gt;Why You Should Learn Ruby on Rails&lt;/a&gt;. I&#8217;d really appreciate any feedback, which you can leave as a comment on this post. And if you like the podcast, please give it a Digg, post a link on your favorite social bookmarking site, or mention it in your blog.&lt;/p&gt;


	&lt;p&gt;I wrote a post about my goals for the podcast and some of the tools I used over on the &lt;a href='http://blog.buildingwebapps.com/2007/11/28/first-podcast-released-learning-rails'&gt;BuildingWebApps blog&lt;/a&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:www.mslater.com,2007-11-28:10380</id>
    <published>2007-11-28T05:57:00Z</published>
    <updated>2007-11-28T06:02:45Z</updated>
    <category term="Web Development"/>
    <link href="http://www.mslater.com/2007/11/28/boatingsf-s-15-minutes-of-fame" rel="alternate" type="text/html"/>
    <title>BoatingSF's 15 minutes of fame</title>
<content type="html">
            &lt;p&gt;I wrote my previous post, &lt;a href='http://www.mslater.com/2007/11/11/tracking-the-cosco-busan'&gt;Tracking the Cosco Busan&lt;/a&gt;, just after I published the animation of the ship&#8217;s track as it hit the Bay Bridge. At that point, the site was already doing more than twice its usual volume just with the increased general interest in the Bay, and in current ship positions.&lt;/p&gt;


	&lt;p&gt;Over the next few days, as half a dozen major news articles mentioned my &lt;a href='http://www.boatingsf.com/busan.php'&gt;Track of the Cosco Busan&lt;/a&gt; animation, the site&#8217;s traffic spiked to an all-time high.&lt;/p&gt;


	&lt;p&gt;&lt;img src='http://www.mslater.com/assets/2007/11/28/busan_traffic_1.gif' alt='' /&gt;&lt;/p&gt;


	&lt;p&gt;The peak day was more than 120,000 page views, which is about what the site does in a typical month.&lt;/p&gt;


	&lt;p&gt;I was pleased to find that the &lt;span class='caps'&gt;VPS&lt;/span&gt; this site runs on seemed to have enough headroom to handle the load reasonably well. I stored an alternate version of the flash movie and its data files on S3, which provided an alternative for visitors who experienced load problems.&lt;/p&gt;


	&lt;p&gt;It was also nice to see my AdSense earnings skyrocket, however briefly. Click-through rates fell to about 50% of normal, but since traffic was 30 times normal, the short-term increase was sizable. If there was this kind of interest in ship tracks ever day my boating site could be a full-time job&#8230;&lt;/p&gt;


	&lt;p&gt;Here&#8217;s some links to news articles that reference my animation of the accident:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href='http://www.marinij.com/marin/ci_7448428'&gt;Marin IJ&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href='http://www.mercurynews.com/ci_7448761'&gt;San Jose Mercury News&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href='http://www.sfgate.com/cgi-bin/article.cgi?f=/c/a/2007/11/13/MN1QTB4I2.DTL&#38;hw=boatingsf&#38;sn=001&#38;sc=1000'&gt;San Francisco Chronicle&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href='http://www.insidebayarea.com/oaklandtribune/ci_7447012'&gt;Oakland Tribune&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:www.mslater.com,2007-11-11:10371</id>
    <published>2007-11-11T02:48:00Z</published>
    <updated>2007-11-11T02:51:13Z</updated>
    <category term="Riffs and Rants"/>
    <category term="Web Development"/>
    <link href="http://www.mslater.com/2007/11/11/tracking-the-cosco-busan" rel="alternate" type="text/html"/>
    <title>Tracking the Cosco Busan</title>
<content type="html">
            &lt;p&gt;As you probably know, on Wednesday morning a 908-foot cargo ship, the Cosco Busan, ran into one of the San Francisco Bay Bridge towers, creating the worst oil spill in more than a decade in San Francisco Bay.&lt;/p&gt;


	&lt;p&gt;There&#8217;s all sorts of questions being raised about the speed of response. In time, I suspect we&#8217;ll learn a lot. For now, speculation on just how quickly the response was mustered, whether it could have been done more quickly, and what caused any delays is just that&#8212;speculation.&lt;/p&gt;


	&lt;p&gt;Even more puzzling is how this could happen to begin with. There&#8217;s a huge opening between the bridge towers&#8212;this is not a tight fit, even for a huge cargo ship.&lt;/p&gt;


	&lt;p&gt;It just so happens that one of my sites, &lt;a href='http://www.boatingsf.com'&gt;BoatingSF.com&lt;/a&gt;, tracks ship movements on the bay. Anyone who looked at my &lt;a href='http://www.boatingsf.com/ais_map.php'&gt;real-time ship tracking page&lt;/a&gt; within an hour of the accident could have seen an instant replay of the ship&#8217;s track. And it &lt;em&gt;should&lt;/em&gt; have been reasonably simple for me to access the historical data.&lt;/p&gt;


	&lt;h2&gt;My perfect storm of server data ugliness&lt;/h2&gt;


	&lt;p&gt;This data comes from two &lt;span class='caps'&gt;AIS&lt;/span&gt; receivers I operate, which receive &lt;span class='caps'&gt;VHF&lt;/span&gt; signals that all commercial ships are required to send that encode their position, speed, destination, name, and dimensions. These reports, which arrive at the rate of a few per minute, are streamed up to my server, where I decode them with some custom &lt;span class='caps'&gt;PHP&lt;/span&gt; code (this predates my involvement with Ruby and Rails) and stuff them into a database. Every five minutes, a cron job extracts a summary from the database and generates an &lt;span class='caps'&gt;XML&lt;/span&gt; file. The web page has a Flash movie that reads this &lt;span class='caps'&gt;XML&lt;/span&gt; file to control the animation.&lt;/p&gt;


	&lt;p&gt;Unfortunately, for performance reasons, I don&#8217;t keep decoded position information that&#8217;s more than one hour old. I&#8217;m going to rearchitect the solution to make this possible, but when I designed this almost two years ago, it was all I could do to get it working, and other projects got in the way of further optimization.&lt;/p&gt;


	&lt;p&gt;I do archive the raw &lt;span class='caps'&gt;AIS&lt;/span&gt; data stream, so I can go back and process it later to get at historical data. Several private and government agencies have used this data for various kinds of analysis projects. Until recently, I stored this raw stream in the database.&lt;/p&gt;


	&lt;p&gt;A couple weeks ago, something went wrong, and my simplistic scheme began to torment me. My simple database configuration on an old &lt;span class='caps'&gt;VPS&lt;/span&gt; account didn&#8217;t deal well with tens of millions of records.&lt;/p&gt;


	&lt;p&gt;I had the system set up to send me an email when a database failure occurred&#8212;and I started getting 100,000 such emails a day!&lt;/p&gt;


	&lt;p&gt;There&#8217;s another article to be written here, but suffice it to say that you shouldn&#8217;t do this (and I don&#8217;t any more)&#8212;write the errors to a log file, use logrotate or somesuch to keep the files from getting too big, and then use something like logwatch to warn you when the logs have errors in them.&lt;/p&gt;


	&lt;h2&gt;The fix creates a new problem&lt;/h2&gt;


	&lt;p&gt;In my hurry to stop the mail deluge, I changed the code to put the raw &lt;span class='caps'&gt;AIS&lt;/span&gt; stream into a log file instead of into the database. And in the rush, I forgot that the raw &lt;span class='caps'&gt;AIS&lt;/span&gt; data lacks a built-in time stamp. So when I went to dig out the data that would show the Cosco Busan accident, I found that I had no timestamps for any of the position reports! This meant I couldn&#8217;t just look for 8:30 am Wednesday but had to analyze ship movements to find the accident.&lt;/p&gt;


	&lt;p&gt;I also had to write new code to pull the reports from the log file, decode them, and stuff them into the database for further analysis. And I wanted a different zoom region for the display, which took additional work.&lt;/p&gt;


	&lt;p&gt;About 12 hours later, I had an &lt;a href='http://www.boatingsf.com/busan.php'&gt;animation of the accident&lt;/a&gt; completed. It doesn&#8217;t show actual time, since I didn&#8217;t have any timestamps to work with, but it animates on the assumption that the pace of ship reports is roughly constant (which it should be).&lt;/p&gt;


	&lt;p&gt;I had expected that the ship would have been heading for the space between the towers, and veered a bit off course. The reality is that the ship was going nearly parallel to the bridge, until it turned sharply and headed straight for the center tower! And there was a tug following closely behind. Unless there was a catastrophic steering failure, which seems unlikely given that the ship continued on under apparently good control, there&#8217;s some people with a lot of explaining to do.&lt;/p&gt;


	&lt;h2&gt;Next up: a new architecture&lt;/h2&gt;


	&lt;p&gt;This debacle (my server&#8217;s, not the ship&#8217;s) has spurred me to begin thinking about a new architecture for the system. I want to be able to pull any past window of time, and zoom in on any region, without custom programming.&lt;/p&gt;


	&lt;p&gt;Perhaps I&#8217;ll move it over to Ruby while I&#8217;m at it. One of the reasons it too me so long to create the Cosco Busan animation is that it had been almost a year since I had touched the &lt;span class='caps'&gt;PHP&lt;/span&gt; code, and it is an ugly thing! It is hard to remember to put semicolons at the end of every line, and empty parentheses after function calls that take no arguments, and so forth, now that I&#8217;m accustomed to a language that doesn&#8217;t have such requirements.&lt;/p&gt;


	&lt;p&gt;Making it even more complex is the convoluted Flash code that creates the animation, which requires dealing in yet another language and the vagaries of the Flash timeline interface. I&#8217;m not sure I see a way out of having the Flash code, but at least I can get rid of the &lt;span class='caps'&gt;PHP&lt;/span&gt;.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:www.mslater.com,2007-11-05:10369</id>
    <published>2007-11-05T20:36:00Z</published>
    <updated>2007-11-05T20:38:07Z</updated>
    <category term="Ruby on Rails"/>
    <category term="rails studio"/>
    <link href="http://www.mslater.com/2007/11/5/tips-from-the-advanced-rails-studio" rel="alternate" type="text/html"/>
    <title>Tips from the Advanced Rails Studio</title>
<content type="html">
            &lt;p&gt;A few weeks ago I attended the &lt;a href='http://pragmaticstudio.com/railsadvanced/'&gt;Advanced Rails Studio&lt;/a&gt;, taught by Mike Clark and Chad Fowler. (Dave Thomas would normally be there as well, but he broke his arm and was unable to attend.) Mike and Chad are deeply knowledgeable and are natural teachers, making for an enjoyable and productive three days. I highly recommend this course to anyone who has been building Rails sites for a little while and wants to take their skills to the next level. It will be offered again in spring 2008; you can sign up on their site to be notified.&lt;/p&gt;


	&lt;p&gt;Inevitably, some of the material was review of things I already knew, but there were still plenty of things I didn&#8217;t know, or didn&#8217;t understand well, before the seminar. Perhaps the most valuable part was getting opinions and perspective from experienced Rails developers&#8212;not just the instructors, but other attendees as well.&lt;/p&gt;


	&lt;p&gt;Here&#8217;s a random selection of tips I wrote in my notes. These are probably not all intelligible from these brief descriptions, but they provide a flavor of the kinds of information I gleaned.&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Use a &#8220;test rig&#8221; file to generate standard &lt;span class='caps'&gt;CRUD&lt;/span&gt; tests.&lt;/li&gt;
		&lt;li&gt;Use helper methods in tests and in views to keep your code at a consistent level of abstraction.&lt;/li&gt;
		&lt;li&gt;Consider &lt;a href='http://chneukirchen.org/blog/archive/2007/01/announcing-test-spec-0-3-a-bdd-interface-for-test-unit.html'&gt;test/spec&lt;/a&gt;, which provides a &lt;span class='caps'&gt;BDD&lt;/span&gt; (behavior-driven development) layer on top of test/unit. Mike and Chad prefer this to &lt;a href='http://rspec.rubyforge.org/'&gt;rspec&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;Consider using simple Ruby hashes instead of fixtures. Mike has abandoned fixtures almost entirely.&lt;/li&gt;
		&lt;li&gt;If you&#8217;re using the default resource scaffold, which allows xml access to models, override to_xml in the model so you can use the :except option to keep sensitive fields from getting included.&lt;/li&gt;
		&lt;li&gt;Don&#8217;t bother with small &lt;span class='caps'&gt;RJS&lt;/span&gt; files; just put the &lt;span class='caps'&gt;RJS&lt;/span&gt; code in the controller.&lt;/li&gt;
		&lt;li&gt;All the respond_to code and &lt;span class='caps'&gt;XML&lt;/span&gt; handling in the scaffold resource controller is not necessarily a good thing. Mike doesn&#8217;t use respond_to unless he knows he&#8217;ll be providing &lt;span class='caps'&gt;API&lt;/span&gt; access. It adds noise to your code, can be a security hole, and just isn&#8217;t needed if you aren&#8217;t supporting an &lt;span class='caps'&gt;API&lt;/span&gt;.&lt;/li&gt;
		&lt;li&gt;If you accept credit cards, be sure not to store them in your database. &lt;span class='caps'&gt;VISA&lt;/span&gt;&#8217;s rules are hard to comply with, and penalties for non-conformance are high. Use a solution that allows you to immediately pass the credit card to the gateway, or even better, post the form with the credit card info directly to the gateway. &lt;a href='http://www.braintreepaymentsolutions.com/'&gt;Braintree Payment Solutions&lt;/a&gt; allows you to do recurring payments without storing credit cards by returning a token that you can use for future charges.&lt;/li&gt;
		&lt;li&gt;&lt;a href='http://hamptoncatlin.com/2007/make_resourceful-0-1-0-release'&gt;make_resourceful&lt;/a&gt; plugin automates creation of &lt;span class='caps'&gt;CRUD&lt;/span&gt; actions for a resource.&lt;/li&gt;
		&lt;li&gt;In most cases, has_many :through is a better solution than has_and_belongs_to_many. One time the habtm approach makes sense is for tagging.&lt;/li&gt;
		&lt;li&gt;You can define methods on an association proxy. In the model, e.g., has_many :visits do &lt;code&gt;&amp;lt;define custom find here&amp;gt;&lt;/code&gt; end.&lt;/li&gt;
		&lt;li&gt;&lt;a href='http://projects.jkraemer.net/acts_as_ferret/wiki'&gt;ferret&lt;/a&gt; is a port of the &lt;a href='http://lucene.apache.org/java/docs/'&gt;lucene&lt;/a&gt; search engine, whereas &lt;a href='http://acts_as_solr.railsfreaks.com/'&gt;solr&lt;/a&gt; uses the original Java source, so it is more current&#8212;but it does require that you run a Java app server for the engine.&lt;/li&gt;
		&lt;li&gt;If almost all of a page can be cached, but a little part like the login name cannot, cache the entire page and then use JavaScript to replace that section of the page after it loads.&lt;/li&gt;
		&lt;li&gt;Disable sessions for controllers or actions within a controller where they aren&#8217;t needed.&lt;/li&gt;
		&lt;li&gt;To decode the contents of a session: Marshal.load(File.read(&#8220;tmp/sessions/filename&#8221;)).&lt;/li&gt;
		&lt;li&gt;use pp (pretty print) to print out an object in more readable form (much nicer than p(object) or object.inspect).&lt;/li&gt;
		&lt;li&gt;&lt;a href='http://dev.rubyonrails.org/svn/rails/plugins/legacy/simply_helpful/'&gt;simply_helpful&lt;/a&gt; is rolled into Rails 2.0. The plugin is now in the legacy folder. If you use this in your 1.2.x apps they&#8217;ll have a smooth path to 2.0.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;And there&#8217;s more, but that gives you the idea&#8230;&lt;/p&gt;


	&lt;p&gt;I&#8217;ll be writing up many of these items in detail for www.BuildingWebApps.com once we get that launched.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:www.mslater.com,2007-09-25:10356</id>
    <published>2007-09-25T02:50:00Z</published>
    <updated>2007-09-25T02:55:03Z</updated>
    <category term="Building a Business"/>
    <category term="Ruby on Rails"/>
    <category term="topaz accreditationhelper"/>
    <link href="http://www.mslater.com/2007/9/25/accreditation-helper-debuts" rel="alternate" type="text/html"/>
    <title>Accreditation Helper debuts</title>
<content type="html">
            &lt;p&gt;For the past several months, the majority of my time has gone into a web application for a startup called &lt;a href='http://www.accreditationhelper.com'&gt;Accreditation Helper&lt;/a&gt;. The marketing site went live today, and next week the product will be shown publicly for the first time at the Medtrade show in Orlando.&lt;/p&gt;


	&lt;p&gt;This web app forms the heart of the business for Accreditation Helper, which assists Home Medical Equipment companies &#8230;&lt;/p&gt;


	&lt;p&gt;&lt;a href='http://blog.topazws.com/2007/9/25/accreditation-helper-debuts'&gt;See the full article&lt;/a&gt; on my &lt;a href='http://www.topazws.com'&gt;Topaz Web Solutions &lt;span class='caps'&gt;LCC&lt;/span&gt;&lt;/a&gt; blog.&lt;/p&gt;
          </content>  </entry>
  <entry xml:base="http://www.mslater.com/">
    <author>
      <name>mzslater</name>
    </author>
    <id>tag:www.mslater.com,2007-09-21:10353</id>
    <published>2007-09-21T16:58:00Z</published>
    <updated>2007-09-21T17:04:46Z</updated>
    <category term="Ruby on Rails"/>
    <category term="netbeans"/>
    <link href="http://www.mslater.com/2007/9/21/netbeans-6-beta-1-released" rel="alternate" type="text/html"/>
    <title>NetBeans 6 Beta 1 Released</title>
<content type="html">
            &lt;p&gt;I&#8217;ve continue to use NetBeans for my Rails development work, and while I&#8217;m still generally happy with it, I&#8217;ve found the daily builds since the &lt;span class='caps'&gt;M10&lt;/span&gt; milestone release to be problematic. Most serious for me were frequent Java exceptions occurring when doing the simplest of editing in &lt;span class='caps'&gt;RHTML&lt;/span&gt; files. In many builds, this bug rendered the editor virtually unusable. Many weeks went by with no improvement in this. I ended up reverting to the &lt;span class='caps'&gt;M10&lt;/span&gt; release and deciding to ignore the daily builds.&lt;/p&gt;


	&lt;p&gt;A few days ago, Sun released the &lt;a href='http://dlc.sun.com/netbeans/download/6_0/beta1/'&gt;NetBeans 6 Beta 1&lt;/a&gt; version, and these problems have significantly improved. One nice improvement is that there is now a Ruby-specific version that is only 19M, vs. 172M for the full package, and it also starts much more quickly.&lt;/p&gt;


	&lt;p&gt;As I write this post, however, I&#8217;m waiting to see if NetBeans comes back to life after freezing in an &lt;span class='caps'&gt;RHTML&lt;/span&gt; edit session. The Windows Task Manager shows java.exe sitting at 50% &lt;span class='caps'&gt;CPU&lt;/span&gt; for 10 minutes, NetBeans is completely unresponsive, and I&#8217;m about to give up and kill the application. This sort of thing is to be expected in beta software, but make no mistake, this is not production quality code.&lt;/p&gt;


	&lt;p&gt;I encountered one other very frustrating problem that has a simple solution. The current release of the &lt;span class='caps'&gt;JDK&lt;/span&gt;, 1.6 update 2, has a very serious bug on Windows XP that causes it to be &lt;em&gt;extremely&lt;/em&gt; slow opening files in many situations. I found that File &amp;gt; Open in NetBeans hung for literally 5-10 minutes, and then suddenly would come back to life as if nothing was wrong.&lt;/p&gt;


	&lt;p&gt;It turns out that the solution is to simply uninstall update 2. &lt;span class='caps'&gt;JDK 1&lt;/span&gt;.6 update 1 does not have this problem. And disable the automatic Java updates, so you don&#8217;t get Update 2 foisted upon you.&lt;/p&gt;


	&lt;p&gt;I find it hard to understand why Sun has let this problem go uncorrected, and why there is no conspicuous mention of it anywhere in Sun&#8217;s documentation for the release. A little searching of the Java bug lists reveals that JFileChooser has been, in one user&#8217;s words, &#8220;an open wound&#8221; since at least 2004. The problems in 1.6 u2 first started in 1.4, or earlier; got better in 1.6 u1; and go worse again in 1.6 u2. (See, for example, &lt;a href='http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5050516'&gt;http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5050516&lt;/a&gt;.)&lt;/p&gt;


	&lt;p&gt;One gets the feeling that Sun just doesn&#8217;t care about Windows, which may be true, but is a very shortsighted viewpoint if they care about widespread use of applications like NetBeans. (And I believe any Java Windows app would be similarly affected.)&lt;/p&gt;


	&lt;p&gt;There&#8217;s a lot to like in NetBeans, and I&#8217;m keeping my fingers crossed that when the production release comes later this year, the quality will be a lot better.&lt;/p&gt;
          </content>  </entry>
</feed>
