Vector finished

Finished my vector Integra Type R... the end result is here:

Vector Integra Type R


Vector thumb-twiddling

Well, I was a little bored tonight so I decided to resume work on the vector of my car...

Two or three hours later and I finished one wheel. *sigh*

Here's the current status:

(if that img doesn't work I'm gonna ignore it)



Well, my 2000 Honda Integra Type R just reached the 100,000km mark on the odometer and is still going strong.

Keep on keeping on, buddy. :P



Well, took me a few minutes to work out how to attach an NSDrawer to an NSWindow in Cocoa-Java (well, Cocoa).

I found the answer here (cocoadev).


omnioutliner 3 beta

I've been trying the new OmniOutliner 3 beta and I am impressed!

For those who aren't aware, OmniOutliner is an outlining tool. Outlining tools let you store hierarchical lists of information. Each row can have a status (done, not done) as well as a title and descriptive notes. OmniOutliner goes beyond most Outliners in that you can also have additional columns associated with every entry, and these can be anything you like! They could be due date, approval status, author, price, etc.

OmniOutliner 3 now supports attachments (either linked or embedded). This is great. I've been planning a trip and I can drag maps from web pages into my trip planning outline. How cool is that? I can store web links to useful websites (such as info on Seattle, where I am going), and embed videos within my outline.

Of course, the beta is free to use until January 20. After that I suspect I'll end up paying for the final product. I am already beginning to find myself using it to keep my work-day organized.

And I've already found a minor bug. So I'm gonna report it... after all, if I'm going to be paying for this app I may as well make sure it is bug-free!


struts, scriptlets, html taglib and tomcat 4.03 linux

A strange error that I encountered when deploying a webapp to a tomcat 4.03 installation on linux. I feel compelled to post information about it in my weblog to help others who might encounter the same error:

org.apache.jasper.compiler.ParseException: /WEB-INF/pages/freightDetails.jsp(115,51) Attribute has no value

This was caused by a struts-html tag with a scriptlet:

<html:radio property="freightId" value="<%= "" + ((webstore.objects.FreightOption) opt).getId() %>"/>

OK, now I realize it is my own fault that I was being lazy and using "" + to turn the next item into a string... the problem disappeared when I used the following code:

<html:radio property="freightId" value="<%= (new Integer(((webstore.objects.FreightOption) opt).getId())).toString() %>"/>

The bug did not appear under tomcat 5.x on my OSX machine, as it appears to correctly interpret scriptlets in tags.


work in the USA?

If you happen to know of any jobs in the USA between March and June, 2005 for a web developer ... then please leave a comment or email me (ntt.ntt@gmail.com).

My skills include:
* jsp/servlets/struts
* perl
* asp
* java
* cocoa/java
* mysql
* sqlserver
* familiarity with linux/mac/windows

My wife and I want to work/live in the USA for those 3 months, and I would love to line up some work before we leave!



I've been learning cocoa-java lately.

Why? Because i've written a jsp/java powered website recently and wanted to write a custom Mac OSX GUI for the administration of the site. Native applications have a quality to the user experience that just cannot be replicated through a web interface.

Fortunately, Apple has given us an awesome set of tools for writing native OSX GUIs with Java as the logic behind the app.

A few links and notes for those learning or wanting to learn cocoa-java:

Apple's Cocoa-Java documentation

Note: Application Kit framework is the API for all the GUI stuff
Note: Foundation framework is the API for all the Apple classes for adapting Obj-C objects to Java

O'Reilly has a Cocoa developer center, with Java tips too

Miscellaneous notes:

* If incorporating third-party jars into your application, you'll probably need to tell X-code to Merge your jars with the main project jar when compiling. This is an option on the build target.

* NSSelector objects can take a few minutes to get the hang of. Obj-C uses selectors when an event is fired to figure out which object and method to call to handle that event. This means, usually, that your controller object registers itself to receive certain events fired either by a specific object or a class of objects.

* I highly recommend putting all the actual data logic and/or database code into a separate java file from the Controller. This will give you the ability to re-use all that logic in a web-app, or a Swing/AWT app if you find you have users not using OSX.

* For some reason, Exceptions thrown in callback functions (those called as a target of a Selector) seem to get swallowed up. In other words, the catch{} block never gets called. (I could just be doing things wrong). so I recommend putting any code that generates exceptions elsewhere if possible.

Well, that's all for now. I'll post up more when I think about it.

getting started

and so it begins!
welcome to my journal.
i'll be keeping this thing up to date with my latest coding efforts and lessons learnt, as well as some miscellaneous ramblings about life in general.
hope you find something useful or interesting here at some point in the future.