Johnny's Software Saloon

Weblog where I discuss things that really interest me. Things like Java software development, Ruby, Ruby on Rails, Macintosh software, Cocoa, Eclipse IDE, OOP, content management, XML technologies, CSS and XSLT document styling, artificial intelligence, standard document formats, and cool non-computing technologies.

My Photo
Name:
Location: Germantown, Maryland, United States

I like writing software, listening to music (mostly country and rock but a little of everything), walking around outside, reading (when I have the time), relaxing in front of my TV watching my TiVo, playing with my cat, and riding around in my hybrid gas/electric car.

Sunday, July 30, 2006

Google Help

It is frustrating when I cannot find the documentation for something I am doing on a computer.

Google Help

Google lacked a consolidated help page for all of their products. So they created the page cited above so that people can get to it directly.

It was getting pretty difficult to even keep track of what software Google had. True, their is The Labs web page. This new one still seems extremely handy.

Technorati tags: ,

ShortestSudokuSolver - Mark Byers' Website

There is a really interesting contest going on to write the shortest program to solve Sudoku puzzles.

It is open to any language and there are just a couple restrictions that have to do with the formatting of the program's source code.

Ruby is by far the leader, and the runner up is Python. The programs in both languages take advantage of a functional programming feature known as the map function.

ShortestSudokuSolver - Mark Byers' Website:
The shortest Sudoku solver is currently the following Ruby program, at 133 bytes long. It fits on 2 lines with no line longer than 80 characters.


It is cool to see functional programming showcased in this way. It is useful for all kinds of other things done everybody in programs too.

Technorati tags: , , ,

Sunday, July 23, 2006

A review of "Refactoring: Improving the Design of Existing Code"

by Martin Fowler

Refactoring – the strategies for making disciplined changes to programs – are like mini architectures themselves. They are architectures of strategies of how to get from one design – to another – safely.

Just like design patterns, they have motivating forces, are dependent on context, and many are defined in terms of the nature/terminology of object-oriented programming.

Eclipse and several other very popular IDEs for Java have included a bunch of commands to do some of the very refactorings described in this book.

It is invaluable to read it. Learn both the refactorings themselves – and the spirit for why, when, and where to do them – not just how.

Being able to change software is just as important as being able to design good software in the first place. Nothing of great size created over a long time just comes together perfectly.

Major course adjustments as well as fine-tuning are required from time to time. This book will make you an expert at carrying out those adjustments.

If you are programming in Java and using Eclipse then you really need to read this book to get the most out of your powerful IDE.

One thing that will catch your eye as you look through this book is that a lot of refactorings have exact opposites. That should tell you right there that simply being able to do a refactoring is not enough.

You also need the knowledge/wisdom to know which way you need to go, and if the code you are regarding is in the better state already. No sense changing the same piece of code back and forth forever! Refactor wisely.

Related pages & news