Jan 08, 2009
What do developers hate more than writing documentation? Writing documentation that nobody will read. I think everyone has been in a meeting and heard someone complain about needing some information that they didn't even bother to search the wiki or document repository for. But what if the documentation was already in the developers face?
A few weeks ago, a client turned me onto "Cheat Sheets" in Eclipse. Those are the little instructions that appear on the right-most frame of the Eclipse IDE. You may have used one of these Cheat Sheets before (and not known what they were called) but you probably didn't know how easy they are to create. Simply choose the "File | New | Other" menu option and then, under "User Assistance," select Cheat Sheet. This will give you a simple editing tool to create step by step instructions. The underlying XML is very simple so you can also just use Eclipse XML editor if you want to.
This form of documentation is best for things like development environment setup. It is not so great for API or architectural documentation. It assumes that the developer is using Eclipse and has been able to check the appropriate source tree out of the source code repository because the documentation is stored within the project. I would use this in conjunction with a README and INSTALL file. README would be used for information about the application (version, usage, recent changes, open issues). INSTALL would be for someone installing the compiled application. The Cheat Sheet(s) would be for developers that are getting their Eclipse environment together.
Is anyone else using this feature? If so, have you found it effective?
Jan 07, 2009
Todd O'Neill, over at DoingMedia has started to embed automatically generated audio versions of his blog posts to make his content more accessible to the visually impaired (and to sighted people whose eyes are busy doing something other than reading - like watching where they are driving/running/walking). He is using a service called Odiogo that takes in an RSS feed, does the audio production, and gives you a play button to embed in your blog template. The audio channel of your feed can also be published to iTunes. Here is how Odiogo works. Best of all the service is free. The plan is to include advertisements in the audio that pay for the service and may lead to a revenue share among participating bloggers.
Cool stuff Todd!
Jan 06, 2009
If you have stumbled on a best practice in content management, here is your chance to tell the world about it. Erik Hartman and Bob Boiko are publishing a series called Information Management - Global Best Practices International Edition. The first edition will be published in October of this year. They are looking for best practices in a long list of areas. Articles are expected to be 4,000 to 6,000 words. See the site for instructions on writing your proposal.
Jan 06, 2009
One of my favorite personal software applications is Things by Cultured Code. I wrote about Things a while ago in a long post of Mac applications that I like. Since that time I have increased my usage of Things. It is now everything from a to do list to a personal issue tracker for projects that I work alone on. Being able to quickly jot down a task saves you from breaking the flow of what you are currently working on. The iPhone application is there to receive tasks when I am not near a computer. The two applications synchronize whenever they see each other on a WiFi network.
The Cultured Code Team has just released version 1.0 of Things. The beta releases have been free but now it costs $50 ($49.95 to be precise). If you are also hooked on Things, you can use the coupon code "THINGSPRESALE20" to get 20% off the list price.
Jan 02, 2009
When I migrated Enter Content Here off of Blogger, moving the content and comments was really easy - literally just the click of a button. This was a nice surprise because my expectations were based on a typically painful CMS migration. Because I use FeedBurner, my RSS readership experienced little disruption either. I already had moved my Blogger blog to a custom domain and WordPress allows you to format your own permalinks so it was easy to map the old URLs to the new with a simple Apache Rewrite Rule. Within my blog.contenthere.net virtual host of my hosting provider, I created the rule:
RewriteRule .* http://www.contenthere.net%{REQUEST_URI}
The one piece of the move that proved to be an issue was getting Google to update its index and move entries from blog.contenthere.net to www.contenthere.net. This was particularly problematic because I wanted to use the Google Custom Search Plugin for WordPress so I could include product pages and other content in my search results. I submitted a dynamically updated Sitemap (using the Wordpress Sitemap Plugin), Google ignored all of my entries (see image on top).
I learned from the support forum that Google probably thought that these new pages (under www.contenthere.net) were duplicates of the blog.contenthere.net pages and was skipping them. I don't really understand why that is because there is no way that the rendered pages could be identical. I just had to take it on faith. The only way to get Google to update its index is to configure your rewrite to send down a status code of 301 (permanent redirect). The updated rewrite rule looks like this:
RewriteRule .* http://www.contenthere.net%{REQUEST_URI} [R=301]
While I was at writing rewrite rules, I added a few more to handle the situations where WordPress's permalink algorithm was different than Blogger's. The biggest difference is that Blogger omits "The" and "A" from a post title when building a permalink. There were also discrepancies where I changed the title of the post after publishing.
To improve my custom Google search in the short term, I added the site blog.contenthere.net to the list of indexed sites. This way people using the onboard search can still find the pages that have not yet been re-indexed and, when they do, Google should get the 301 code.
As for my old blogger blog (contenthere.blogspot.com), I did everything I could to make it as ugly and unappealing as possible. I wrote messages explaining the move all over the template. What I really wanted to do was have a link from each post to the new URL. However, there is no path variable that would allow me to construct a new link by concatenating the new domain (www.contenthere.net) to the current path. Blogger just has a tag for the full URL (data:post.url) and I couldn't find syntax for substrings. I could have done it with Javascript but didn't want to bother. Instead, I inserted a search form for my custom search in each post and preloaded it with the blog post title. This approach has the additional benefits of potentially giving the visitor more recent content and also sending them through Google to give it another chance to update its index. I have a free statcounter collecting traffic statistics on that site. When it gets down to 0, I will probably delete the whole blog.
Since making these changes, my search based traffic is back to its pre-migration levels. Google still doesn't seem to take an interest in my Sitemap but that doesn't seem to matter. Through the process, I have learned that originally hosting my blog on Blogger did not lock me into the platform. Instead, it allowed me to focus on the content and quickly establish a voice in the blogosphere without worrying about infrastructure. Blogger's support of custom URL's was critical to minimizing lock-in. When I migrated to a custom domain, Blogger helped route traffic from the blogspot URL to the new one. This put me in a good position to move to the blog to any platform I chose.
Jan 02, 2009
[Photo of Northampton Massachusetts First Night Celebration by S Pipczynski]
Thank you for helping to make 2008 a great year. Let's just hope that 2009 is not as bad as everyone expects it to be!
Dec 30, 2008
Gartner has been saying how the current recession favors open source software. Many people in the open source software business are experiencing the same thing. They are finding themselves included in software selections against commercial players that were once considered out of their class (certainly out of their market). I think this is a great new development. There are some very good open source platforms that have been ignored for the simple reason of being open source and not having the same recognition as their closed source competitors.
That said, using licensing cost as a primary decision factor is a bad idea. Licensing is still a relatively small portion of the overall cost of a software solution. When a company looking to save money on licensing also tries to cut costs in other aspects of the solution (implementation, migration, deployment, and training) project risk balloons. In fact, most of the open source horror stories I have heard can be attributed to this same flawed logic. An open source software implementation project will probably cost the same to execute (not less, not more) than an equally suitable commercial product. I predict that 2009 will see many failures from unrealistic technology investments as companies try to unscrupulously cut costs and suspend their disbelief of a free lunch. But there will be an equal number of successes as companies consider leaner (easier to use) technologies and more agile (and pragmatic approaches) to implement them. This is where a trusted and experienced implementation partner can be invaluable by setting realistic budgetary expectations and efficiently expending resources. If you go with an open source solution, be sure not to skimp on the resources that will make the execution of the project a success.
The primary challenge in evaluating open and closed source software at the same time is that they tend to be represented unevenly. Even commercial open source products (which behave very similarly to traditional commercial software companies) usually cannot afford to field a sales team like a commercially licensed product company can. Without the upside of an all-profit license sale, the risk simply isn't worth it. Even traditional commercial software companies balk at spending money on sales when the potential license deal is too small. Somebody else needs to represent the solution to level the playing field.
The open source product advocate could be your own internal I.T. or it could be a systems integrator that presents a complete solution. Both options come with complications. If it is your internal I.T. organization, things can get emotional and political. They will get attached to their solution. In fact if they don't feel a personal connection to what they are selling (like a commission-dependent external salesperson is), they won't be a good advocate. If their solution is not selected, there are bound to be hurt feelings and the last thing you want is someone on the team hoping for an "I told you so" moment when their victorious competitor runs into problems. Another potential issue is that I.T. may not have the resources to support their solution if it is selected. Presumably they have other responsibilities that won't go away if they "get this deal." Of course, this is less of a risk with commercial open source software that comes with a support contract that is similar to the other commercial solutions you are considering.
The primary problem with using an external systems integrator is knowing which one to use. Because every open source project is offered by many consultancies, the systems integrator market is even more chaotic and confusing than the software market; and there are fewer resources available to help you figure it out. Furthermore these companies are in constant flux as their staffs turn-over. The secondary issue is that there are big stylistic differences between a consulting sale and a product sale. A consultant sells by consulting. He wants to learn about the problem and work with you to solve it. He is less comfortable just quoting specifications and prices of a pre-defined like a software salesman may. His quote will be appear high because he is unable to ignore or trivialize the implementation effort like commercial software salespeople tend to do. And, because consulting carries a lower margin than software licensing, he is probably less willing to invest as much in a customized demo. The last thing he wants to do is build a big part of the system for you and then have you turn around and have someone else finish it.
Still, I do think that using external systems integrators is the way to go. In fact, I spend a lot of time talking to consultancies to keep track of who is good at what so I can refer my clients to the right integration partner. The best way to normalize the software vs. consulting stylistic differences when you are considering an open solution is to have all the solutions presented by integration partners. This will give you a more realistic comparison of the true cost and scope of the solution. A consultant is less likely to exaggerate "out of the box" capabilities than the software vendor because he will be around when the box is opened. This will also level the playing field on the investment that each candidate is able to make. If you take this approach, you will come out of your selection with a trusted partner that knows your business and is personally invested in your success. With that, how can you go wrong?
Dec 29, 2008
Francesco Ciriaci has started a series comparing Plone and MOSS in response to a trend of companies choosing between these two platforms. This first article focuses on general features and licensing. Key differences are the obvious Microsoft dependency of MOSS (which could be a good or bad thing depending on your technology strategy), licensing costs, and the availability of modules.
Another usual suspect in a selection for an Intranet collaboration platform with some web publishing capabilities is Alfresco. The Alfresco marketing and engineering department have been beating on Microsoft's door with their Share product. Alfresco also integrates with SharePoint by supporting the SharePoint Protocols.
While there is considerable functional overlap between these solutions, the pricing systems of these products are very different. Alfresco is sold through a per-CPU commercial licensing scheme (customers are advised not to use the free open source Community Edition). Typically this will work out to roughly 40K per year for a medium size company that actively uses the system. MOSS is sold on a per user basis. This is good for small to medium size companies but gets very expensive when MOSS spreads virally across very large companies (as it typically does). Plone is totally GPL licensed and has no recurring support fees (it can be somewhat difficult to find a commercial-style support program for Plone. Email me if you are looking for one. I know some people).
Dec 29, 2008
Apologies for the totally misused Johnny Cash reference but Austin Smith has an excellent post on how he came around from being a Drupal hater to a Drupal lover. Austin works on Observer.com and Politicker.com - two early, high profile Drupal sites. Austin's background is primarily Java and PHP (written in the style of Java). He was at first put off by the object disoriented-ness of the Drupal programming model and the chaos that Drupal customization tends to attract. What brought him around was the huge Drupal community and the realization that you could write clean code in Drupal. He also has some great advice for developers having difficulty coming to terms with Drupal.
Dec 28, 2008
and it bounced back, please try again. When I downgraded my Yahoo! hosting to from the Merchant plan to just domain hosting, it blew away my MX Records. Everything is back in order now. Sorry for the inconvenience.