SQL Joins

This great article on codeproject talks about the different sorts of joins there are in SQL.  Sounds pretty easy right, but then there are ones I dont remember learning in school, Left and Right EXCLUDING join, and Full Excluding Join.  Before that, Iā€™d be doing SELECT ā€¦ MINUS SELECT.

Chuffed

I just deployed my first Grails app running with PostgreSQL on MorphExchange.

Following their Java Dev Cookbook was quite easy though I found I had to do the following:

  • Under log4j configuration add a property logs.home = ā€./logsā€ (here)
  • Don’t need to change the Grails DEFAULT_DEPS in War.Groovy to exclude jdbc2_0-stdext.jar per their doc.Ā  Perhaps the exception they warn about will be a problem if trying to use JNDI?

The real wide internets beta lookout, I now have a place to host some unsuspecting Java onto the world, <cold evil laugh>

Of Cisco, Tcl and Java

Whilst busily reading up on Scala and Groovy and other languages that ran on the JVM, I had a thought with regard to the scripting language that the network architect at work now advises is included in the Cisco ISG/ASR’s.  Cisco now have the Tcl scripting language installed on the IOS.  One application is used to control phone IVR and voicemail systems which is a pretty neat feat. 

Tcl itself doesn’t seem to be much of a mystery language either and should be easy for anyone coming from another scripting language background.

There is a Jacl for the JVM as well and also a means to bring Java code to a Tcl interpreter via Tcl Blend.

You can use Tcl to script EXEC level commands on a router such show version and int fa0/0 type stuff as shown here.

There is also a Cisco article about getting started with Tcl on the routers.

JavaPuzzlers Talk

This is a great talk with Josh Bloch and Neal Gafter with a whole lot of cooky Java-ness.  Programs that look like they should behave but don’t…. or even worse, work as expected, but not because they are following the line of execution you intended to.

http://www.javapolis.com/JP04DVDContent/talks/Puzzlers/index.html

Edit: If you look on Parleys.com and also Javapolis.com (now called Devox) you’ll be able to find the 07 talk (parleys) and the 05 (however wasnt able to find a direct link for that one on Devvox)

T-Minus

8 September – Important testing for product release

12 September – One week till eye surgery (no more contacts, if I had any to wear)… features for release need to be done!

17 September – Software Product Release

19 September – Eye Surgery

23 September – Major Event following fruits of product release

So True

From the excellent online book Getting Real

Smaller Tasks and Smaller Timelines

Software developers are a special breed of optimist: when presented with a programming task, they think, “That’ll be easy! Won’t take much time at all.”

So, give a programmer three weeks to complete a large task, and she’ll spend two and a half procrastinating, and then one programming. The off-schedule result will probably meet the wrong requirements, because the task turned out to be more complex than it seemed. Plus, who can remember what the team agreed upon three weeks ago?

Give a programmer an afternoon to code a small, specific module and she’ll crank it out, ready to move onto the next one.

Smaller tasks and smaller timelines are more manageable, hide fewer possible requirement misunderstandings, and cost less to change your mind about or redo. Smaller timelines keep developers engaged and give them more opportunities to enjoy a sense of accomplishment and less reason to think, “Oh I’ve got plenty of time to do that. For now, let me finish rating songs in my iTunes library.”

ā€”Gina Trapani, web developer and editor of Lifehacker, the productivity and software guide

Bertrand Meyer, ETM, Java Byte Code, Eiffel

Bertrand Meyer is the author of a classic software development book Object-Oriented Software Construction.Ā  He is also the father of the Eiffel language.Ā  I have a lot of respect for his work, it was quite heavily plugged when I was at Monash.

In looking for a Bertrand Meyer home page, I came across Betrand Meyer’s ETM homepage.Ā  ETM is where he was working during mid 2007 when the page was written.Ā  He plays a part in co-teaching many of the subjects there (lucky students!).

There are many pieces of gold linked to his site, though these two subjects seemed of most interest to me.

+ “Languages in Depth” series: Java programming, with Manuel Oriol (bachelor’s/master’s) Java

The lectures about the class loading and bytecode were very informative.

+ “Languages in Depth” series: C# programming, with Lisa (Ling) Liu (bachelor’s/master’s) C#

You can also find a link the ECMA Eiffel language specification.

In addition, there are a few interesting tools linked to from this page, as well as a few from the Dept of Computer Sciences download page.

Autotest is a tool that generates tests automatically by looking at the source code, in particular, the way that Design by Contract is used, gives a lot away about what a human tester would be writing, but also tries to make up for the shortfalls that would not normally be apparent in the source code and the fact that developers aren’t perfect to begin with.

The text for the next lot appears directly from the school’s download page.

Contract Wizard 3.0
Description: Regrettably Design by Contract is still a specificity of the Eiffel programming language. Contract Wizard 3.0 is a GUI application that enables adding contracts (preconditions, postconditions, and class invariants) to any .NET assembly, whatever .NET language it was initially written in.

The Pattern Library contains patterns that are usable as components. For the patterns that could not be turned into components the download contains the Pattern Wizard, that let’s you generate the patterns according to your input.

Eiffel library to generate Java bytecodes

Description: This Eiffel library is able to generate Java class files that can be executed by a Java Virtual Machine. A simple language with a corresponding compiler that uses the library as backend was created to test this library and also to give examples of how to use the framework. This language is similar to the Java language, but much simpler.

Funnily enough, the java references I mention in this blog all make reference to the following sites:

The universe is telling to learn about the bytecode behind the JVM…Ā  javap My.class

UML and CRC and Agile References

CRC Cards (Class Responsibility Collaborator cards)

Class Name
Responsibilities Collaborators

A very good UML diagram reference (I may have referenced this one before).

http://www.agilemodeling.com/essays/umlDiagrams.htm

And a page of useful agile resources, from a process standpoint.

http://www.agilelogic.com/sp_resources.html

I particularly like the ones about Missing the Point of the Daily Stand-Up? and eXtreme Adoption eXperiences of a B2B Start Up

The Self-Shunt unit testing pattern in short is a way to think about your tests so that you are not testing more than one thing in a test. It talks about passing the object you are testing to itself. Here is a quote (paraphrased) from the document about when to use it "Methods such as testScanAndDisplay scream testing two things."