Archive for the ‘Software Development’ Category
Paul Graham’s Design Philosophy
I read Paul Graham off and on and find most of what he writes about interesting even if I don’t agree with all of what he has to say. His latest essay, “Six Principles for Making New Things”, is one that seems to echo a lot of what’s been said before about solving problems with software. In his own words the steps are:
I like to find (a) simple solutions (b) to overlooked problems (c) that actually need to be solved, and (d) deliver them as informally as possible, (e) starting with a very crude version 1, then (f) iterating rapidly.
To summarize, find a simple solution to a problem and release early and release often.
Da Vinci Machine: Bringing More Languages to the JVM
Sun has launched a project called the Da Vinci Machine, also being described “a multi-language renaissance for the Java Virtual Machine architecture.” The project includes prototype JVM extensions to run non-Java lanugages on the JVM. The intent is to address JSR 292 Request and have the extensions included in the next release of Java SE, Java SE 7.
It should be pretty interesting how far John Rose (project lead) can take this and whether it will truly lead to a renaissance for Java in light of the popularity of dynamic languages.
gem install rjb on mac os x leopard
If you’ve tried installing the rjb 1.1.x gem on Mac OS X Leopard, you will probably end up with an error like:
lipo: can’t open input file: /var/tmp//ccpyNy8b.out (No such file or directory)
make: *** [load.o] Error 1
In order to get around this you have to run the following commands:
sudo su -
export JAVA_HOME=’/System/Library/Frameworks/JavaVM.framework/Home’
gem install rjb
Tomcat and Log4J
After battling with several different configurations when it comes to logging and Tomcat 5.5.x, I decided to put together this guide for a simplistic approach. This assumes that you would like to use Log4J for both Tomcat’s internal logging as well as your deployed web application’s logging needs.
For the impatient, here are the steps:
- Place a log4j.properties file which uses the RollingFileAppender in common/classes.
- Add your log4j.jar to the common/lib directory.
- Add commons-logging.jar (1.0.4 or later) and log4j.jar to your application’s WEB-INF/lib directory.
- Add a log4j.properties OR log4j.xml file to your application’s WEB-INF/classes directory.
What Companies Can Learn from Software
There are parallels between the organization and operational philosophies of companies and what is considered “good” software design. Attributes that immediately come to mind about good software design that can be applied to a company’s operation are loose coupling, polymorphism, and reuse.