This blog is the communication arm of my UMWiki that is available at Craig Gjerdingen. The wiki is my preferred medium to communicate info as project manager and software developer. It allows visitors to add, link, remove, edit, and refactor content. It is a great tool for mass collaborative authoring; a knowledge base or hyperlink database.

September 3, 2008

My Book Reading Journal

I'm keeping a reading journal on my wiki. I'm trying as time permits to write some reactions and thoughts that are churned up by the reading in sub pages, but lately I've just posted a link indicating that I've read something.

I'm posting some of my past readings to but only if I re-look at the book or find myself recalling/using the resource in some way. I also sometimes reference a good article on the reading list, but I read so many of those I don't think I could manage listing them.

I found a nice little tool to pound material into my head when I don't have motivation to read an article. It is called Spreeder as in Speed/Reader. I usually turn it up to 450 word per minute and let'r rip. (my poor brain!)

February 7, 2007

Transformation: Ruby Smells

I keep hearing people say they couldn’t possibly use Ruby because it lacks automatic refactoring tools.

Marting Fowler tells us that Refactoring is the art and science of turning smelly code into good code, in small, incremental steps. Provably correct, by construction. Algorithms for giving your code a makeover without breaking it in the process.

February 6, 2007

Beyond Javas: Chapter 6. Ruby in the Rough

Java's leadership run, at least for applications, might be drawing to an end. This book points out one language and two frameworks (one in Ruby and one in Smalltalk) that have something special to offer. One possible alternative language, Ruby. It improves on Java, but that doesn't mean that Ruby will succeed, or that it's the best possible alternative. Dynamic Languages...

February 1, 2007

Chapter 5. Rules of the Game

The premise of the book: conditions are ripe for an alternative applications programming language to emerge, because Java is abandoning its base. I'm not going to pretend to know what's next. Hopefully, I'll lay out some interesting languages and frameworks that have promise. This chapter, then, suggests the characteristics that the language should have to have broad commercial success.

Chapter 1: Layering
Most common technique to break apart a complicated software system. Layers is the cake analogy for software. Each layer rests on a lower layer. Higher layers use services of the lower layers. Lower layers are unaware of the higher. Layers hide layers beneath them.

Chapter 2: Organizing Domain Logic
Simple logic doesn't require decomposition and can be done in a "Transaction Script". But complex logic is where objects come in, and handle this problem with a "Domain Model", primarily around the nouns of the domain. Logic for handling calculations and validations are placed in the model.

January 29, 2007

Chapter 4 [Why Java Now Sounds Like] Glass Breaking

Java is now in danger, it's getting too difficult to manage, and both evolutionary and revolutionary steps to remedy the problem are failing us. The basic problems.

4.1. Java's New Job Description

Once Java moved to the server side, it became the core server-side development language. Java carries an increasing load in enterprise development, from object-relational mapping with distributed transactions to messaging with XML binding for service-oriented architectures. So the job that we use Java to do is ever changing. The language is remarkably flexible, so it's lived up to the challenge so far.

Spring Framework Reference - Chapters 1 and 2

Spring provides a light-weight solution for building enterprise-ready applications, while still supporting the possibility of using declarative transaction management, remote access to your logic using RMI or web services, and various options for persisting your data to a database. Spring provides a full-featured MVC framework, and transparent ways of integrating AOP into your software.