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>
Java 6 Web Services
Although I’ve known Java 6 has web services support for a while, I’ve not yet had the opportunity to venture in.
This article is a short and sweet intro. http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/
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
A good article on Exception Handling
http://gen5.info/q/2008/07/31/stop-catching-exceptions/
Some principles about when to catch them and how to handle them, and some good guidelines about how to handle in different environemnts (CLI, GUI, DB, IO)
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 java virtual machine spec http://java.sun.com/docs/books/jvms/
- BCEL (Byte code engineering library) http://java.sun.com/docs/books/jvms/
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."