After attending the Neil Ford, Productive Programmer session at CODEMASH, I’ve been trying to implement some of Mr. Ford’s advice into my work. I’m trying to learn all of the shortcut keys in all of my favorite applications. I’ve done some research on Cygwin, Emacs (I currently use jedit), etc. I’m trying my best to avoid using the “evil” mouse….enter Enso.

Last night Enso popped up on my radar. The guys at 37Signals gave them a write up yesterday and after some investigation, I decided to give Enso a whirl (30 day free trial).

First, the Humanized website is very nicely crafted. I enjoyed the song choice and the style of the marketing video too. Many of the people who have already met the Humanized crew say they are brilliant. Their profiles are available on the site. Each of the members have impressive backgrounds.

After using Enso for a night and a day, I have to say I like what I see. The elegance of the UI makes me want to shell out the $24.95 to buy the license. I am a big fan of beautifully designed web sites and finely developed UI’s. These guys clearly have talent.

On the other hand my more analytical side wants to perform some due diligence before taking the leap. Many of the replies from the Signal vs. Noise (37Signals Blog) website mentioned Launchy as an open source alternative. After this trial with Enso, I’ll try Launchy.

Due to the great website, UI, story behind the Humanized team and my initial feel for Enso, I’m pulling for Enso. The jury is still out on the productivity gained from using Enso and the value added compared to the Launchy open source alternative.

Let NHibernate Be Your Data Layer - Dave Donaldson

NHibernate is very similar if not the same as Hibernate. Dave Donaldson introduced a unique way to implement NHibernate with what he called an NHibernate Repository. I will research this in the future.

Tips and Tricks for ASP.NET 2.o and ASP.NET AJAX - Scott Guthrie

Mr. Guthrie talked about the expanding list of AJAX controls that are available to ASP.NET developers. He introduced the option of refactoring ASP.NET controls to be CSS standard compliant.

The Productive Programmer - Neil Ford

Mr. Ford focused on techniques to make developers more productive. I was happy that he recommended Emacs and jEdit as his editors of choice. I began using jEdit last year. The main thrust of his presentation was that developers should learn keyboard shortcuts and avoid using the mouse at all cost. He recommended that any repetitive activity be captured in a macro. He promoted the use of scripting languages such as Ruby, Groovy and Python to parse text. He recommended several tools including cygwin, powershell, sysinternals, resharper, clcl, and Google Desktop.

Ruby on Rails for Java Developers - Rob Stevenson

Mr. Stevenson compared Struts to Ruby on Rails. The similarity was the MVC architecture. Tiles were compared to partials and layouts. He demonstrated the creation of a Ruby on Rails application. The quickness with which he set up a web site and the expressiveness of the Ruby syntax won at least one convert to Ruby on Rails.

The LINQ-Bridging the Object/Relational Divide keynote initialized day two of CODEMASH.

I entered this keynote with a bit of a positive bias toward Mr. Guthrie. While programming ASP.NET, Mr. Guthrie’s articles have been a tremendous benefit to me. On countless occasions, his insightful writing has been exactly what I needed to push forward with a difficult problem.

Mr. Guthrie did not disappoint. He gave an overview of Microsoft’s LINQ technology. This technology provides a single query syntax for querying multiple datasources. Some of the datasources mentioned were objects from other languages, relational databases, xml files, etc. Mr. Guthrie demonstrated data access on xml and a relational database. I was impressed with the ease which he was able to query the data. Complicated SQL queries became three or four lines of expressive query syntax. The underlying SQL was available for display. The results of the query were readily available from the IDE too (for immediate gratification).

He also spoke of the fast changing computing environment that is no longer bound to Moore’s law. Future computing will depend less on faster processors and more on numerous cores to power the machine. Developers will need to design software that harnesses the power of a multiple threads by breaking the work into individual components of work.

One item that was not discussed was how stored procedures fit into the LINQ system. The demonstrations focused on embedding the SQL. This brings up questions about query optimization.

I was torn between this session and the TRAILS session but decided to attend JRuby. JRuby is a plugin to the eclipse IDE. It allows Ruby developers to access the vast Java libraries. Basically, Ruby code and/or .rb files can be read into Java. It also allows Java developers who are more comfortable coding in Ruby to integrate Ruby into their Java applications.

The main benefit for Java developers seems to be the use of a friendlier DSL in the comfort of the Java environment.

JRuby seems to be more beneficial to Ruby developers at this point because they are able to extend Ruby code by utilizing the full universe of the Java api.

It was also encouraging to see Ruby gaining “institutional” acceptance from Sun.

OpenUP is an open source project that attempts to define the roles, responsibilities of the software development process.

The initial download of OpenUP provides a customizable foundation.  An organization can set the rules and define the roles and responsibilites of the software development process.

Numerous plugins are being developed that add functionality to the OpenUP foundation.  Some of the plugins mentioned are XP, Agile, Scrum.  I was particularly interested in the Scrum plugin and will be researching this project and plugins within the next few months.

Mr. Eckel pushed developers to question the assumptions of our current development paradigm.  He challenged us to experiment and enjoy the software building process.  He displayed many pictures from his three Burning Man trips to model the learning and creative process of creating “things” (art, transportation, costumes, etc.)

Geeking the CODEMASH - EJB3

January 18, 2007

The title of the second session I attended was EJB3 - What’s New?

With my brief and current experiences with Spring and Hibernate fresh in my head, I found EJB3 to be unnecessarily complex. I am sure that in certain scenarios such as high volume, transactional applications EJB3 is the right solution. For medium to small scale applications I think the added complexity may be overkill.

What I find most surprising is that EJB3 is supposed to be much friendlier to use than EJB2. Having no experience to recollect with EJB2, I think I’ll stick with the Spring/Hibernate combination.

Today was day one of the CODEMASH conference.  I attended four sessions along with two keynotes:

Keynote - Neal Ford

Mr. Ford gave a lecture on the next step in the programming paradigm-domain specific languages (DSL).  The basic gist of the keynote was that since the beginning of programming we’ve been trying to get from the solution domain (i.e 1’s and 0’s) closer to the problem domain (business problem) in our code syntax.  Once the DSL becomes ubiquitous the techie will be able to communicate more fully with the business.  Mr. Ford suggested that the techie might even have a code review with the business.  This is only possible because the code is more expressive and contains the lexicon of the business unit.

He also talked about creating applications to configure the code in a GUI.

His talk was very interesting.  DSL’s do seem to be the future of software development.  Currently, I think this is a grassroots movement comprised of techies and designers.  I think techies and designers are excited about improved productivity and making coding less abstract.  A few of the difficulties are that these technologies are in the early stages of development and management has yet to see the concrete, low risk benefits it is seeking before utilization.  Once the technology matures and some working examples (possibly in the business 2.0 space)(…and highly scaled) are established I think these technologies will start to creep into the corporate setting.

CodeMash Geek Fest

January 3, 2007

January 18-19 in beautiful Sandusky, Ohio hundreds of technologists from around the Midwest will be meeting for CODEMASH.   Java, .NET, Ruby on Rails, PHP, etc. developers will be meeting to discuss these technologies.  I will be attending to enhance my Java and .NET skills.  Many of the topics of discussion are interesting and timely such as Rapid Web Application Development with Trails, Simplified Data Access with Spring and Lean Software Development.  There are many more topics and numerous Ruby on Rails sessions.

I learned of the CODEMASH convention at the Central Ohio Java Users Group (COJUG) meeting.  By attending these meetings, my knowledge of Java and related technologies has grown more quickly.

I recently viewed the video of Jeff Han at the TED convention. He demonstrated technology that he and others are developing which will change the way humans interact with machines. I was especially moved by the windows, map and glove like portions of the demo. Moving and manipulating windows, maps and other objects with our hand and finger movements is revolutionary. It more closely bridges the gap between the physical and virtual worlds.