Thursday, November 30, 2006

How vista is made

Found on slingshot - thats just hilarious. Just remember: dinosaurs had a large body and a small brain and the brain was in the tail.

http://moishelettvin.blogspot.com/2006/11/windows-shutdown-crapfest.html

Yet another summer job

Dear all, here is another summer job offer. Please contact me if you are interested!


This position requires probably a student that has completed 2nd year (B+ grades or better) and has undertaken papers that gave them experience with Java programming environment. We will need a student that is motivated and able to think pretty independently – eg be comfortable with searching web for the tools/compliers they may need, and setting up the environment on a PC. There will be plenty of help available but it won’t be a hand holding situation.

The project involves editing, compiling and testing J2ME applications (mobile games). The source code is already written and tested, our project is to edit it to work on different devices.

Let me know if you think you have a suitable candidate for this work. It will be for the whole summer vacation period (10 days off at Xmas), 30 to 40 hours per week, paid at Student Job Search type rates and based in Wellington.

Tuesday, November 21, 2006

JUNG (Java Universal Network/Graph Framework)

I have found a very useful open source Java library that seems to be suitable for projects dealing with graph/network analysis, small world stuff and visualization.
Its called JUNG (http://jung.sourceforge.net/) , and people from UC Irvine and MS are behind it. In a nutshell, it provides a lot of graph algorithms "out of the box" including shortest path , clustering, generating graph layouts .. (see API doc for complete list: http://jung.sourceforge.net/doc/api/index.html ). It also does the anti gravity - spring based animated layout and supports custom renderers for nodes and edges, all very very easy to use.

Sunday, November 19, 2006

Next IIST Seminar

Our next IIST seminar is on UML:

Presenter: Prof Dorina C. Petriu, Carleton University, Ottawa, Ont., Canada

Title: Performance Analysis of UML Software Models

Date: Wednesday, 13th December 2006

Time: 13:00-14:00

Venue: AgH3.43A (student project room), via video conferencing in Wellington

Wednesday, October 11, 2006

Interships @ State Service Comission Wllngtn

There is another offer for interships from the State Service Comission. Plase see me for details if you are interested.

Internship @ SAP Research in Palo Alto

The Open Source Research group of SAP Research in Palo Alto is
looking for interns (3-6 months), to start at any time (not just in summer).

Open source research comprises analysis (analysing and
understanding open source software development processes, projects,
communities) and construction (contributing to and building open-
source based applications and components as part of our research
development efforts).

See my for details if your are interested.

Sunday, October 01, 2006

Kiwiplan Presentation

Gareth Gronin from Kiwiplan will present the company on Wednesday, 4 October, 2-3PM in AgH 3.43A. See www.kiwiplan.com for company details, the company is interested in employing Massey graduates (Software Engineering and related disciplines), and in sponsoring post grad research projects.

Latex and Eclipse

Glenn found a Latex plugin for Eclipse: eclipse Texlipse (http://texlipse.sourceforge.net/).

VAJ

I have found an old copy of VisualAge for Java. It had a very unique powerful GUI builder. If you are interested to play with it, come to my office with a memory key.
/Jens

NZHerald article about Roy Fielding

This is abpout Roy Fielding's NZ link. Roy is the father of HTTP, and the father of REST.

http://www.nzherald.co.nz/section/story.cfm?c_id=5&ObjectID=10403888

Monday, September 25, 2006

Latex session

Hi, there will be a short session on Latex on Friday 19 Sept on Latex. This might be useful if you have to write a report or article soon. I will cover some issues such as choosing a document style, tables, figures, graphics, and bibtex. Venue: my office.

/Jens

Thursday, September 21, 2006

Presentation by Kiwiplan

Another employer interested in hiring you. Well established, export oriented company in Auckland, focus is on Java technology.

Wed, September 27, 2006, 12 - 1pm
SSLB6

Wednesday, July 26, 2006

Business Computing and Web 2.0

Just discovered:

Corporate America wakes up to Web 2.0
Web 2.0 meets the enterprise

That is what we (Jonathan and myself) were just thinking about. Note the nice features on the web page: there is a shortcut to bookmark the articles on delicious, and a mind map showing related articles.

Tuesday, July 25, 2006

Eclipse-based IE for Google's GWT

Found here:

http://www.webpronews.com/topnews/topnews/wpn-60-20060720IDEforGoogleWebToolkitDebuts.html

Sunday, July 23, 2006

Presentation by ORION: give aways + jobs

There is a presentation by ORION on the 3 August at noon in SSLB3. They are given away a portable playstation! There are more good reasons to attent: Orion is one of the biggest Java shops in NZ and has employed our graduates in teh past. E.g. Jonathan Wright (Jared's brother) is working for them.

Java Actions

Java Actions let you move all gui component logic to an Action object, allowing it to
be used in multiple places (i.e. appear in multiple places in the gui).
There is clearly no reason to have any more than one Action object of
each type (I believe) - so that means Actions are inherently singletons.

If that is correct, does Java treat each Action as a singleton, or
should I explicitly make them all singleton classes.

The question arises due to code like this:

JMenuItem helpItem = new JMenuItem(new HelpAction());
.....
JButton helpBtn = new JButton(new HelpAction());

I have spent a bit of time rewriting the GUI components to deal with
Actions, as they tidy the code up quite considerably.

Cheers,
Jonathan.

Non-deterministic plugin loading and menubar item ordering

I was wondering if anyone knew in Eclipse how they went about placing menus
in the top menu bar. For example, how do they position 'Edit' after
'File', and how does the WOP plugin menu get added in the
place it was added.

This is the current problem I'm wanting to refine in Centruflow - as
little tweaks throughout my system can result in menus moving all around.

Cheers,
Jonathan

Wednesday, July 19, 2006

Opening files in Java

I have spent a bit of time tonight looking into ways of opening files in Java such that they are loaded using their default viewer (i.e. loading MS Word documents in MS Word). There are the hacks that makes the OS-independent believer in me cringe, for example:
Runtime.getRuntime().exec("rundll32 SHELL32.DLL,ShellExec_RunDLL \""+fileName+"\"");
and
Runtime.getRuntime().exec(
"cmd /c \""+fileName+"\"");

Both will equivalently load any (?) file, but only within Windows...

Then I stumbled upon two similar projects:
The JDIC library and similar functionality in the soon-to-be released Java 6.
Both of these abstract away the underlying way in which to load the files.
This is mighty handy, and so I thought I'd post it here to let everyone know.

Cheers,
Jonathan Giles.

Wednesday, July 05, 2006

Java Properties Rant

[rant]
Grrrr, Sun's annoying me. I've been wasting my time trying to get a problem fixed that I don't think can be fixed other than by emailing Sun - but there is a chocolate fish there for anyone that solves this for me :)

Basically, Properties in Java can now be XML. I thought "swell, let's use that". As specified in the JavaDoc here it is necessary to include the DTD reference at the top of the properties file. That is no problem, as the file contents is listed on the page. When I save the xml in XML Spy however, it complains that the DTD is invalid. Looking at the file 'http://java.sun.com/dtd/properties.dtd', it is slightly different than what is on the page: it now has a nice copyright message and whitespace. It appears that this is causing the DTD to be invalid. It doesn't matter, the Properties object still happily parses it so no problem there.

Today I wrote some code to actually change property values and write them back to the XML (retaining all comments, etc). I set the DocumentBuilderFactory to not validate the file, as I knew it wasn't valid thanks to Suns DTD. However, I still get errors when trying to parse it due to the unexpected statement in the DTD.

I thought I could get around this by copying the DTD to my local codebase and using it there - but the Java Properties object expects a hard coded reference to their DTD or else it fails - so there goes that idea.

As far as I can tell, Sun is the single point of failure in my code, and they decided to fail.

Anyone have any ideas? It appears others have found my problem, like here.
[/rant]

Please let me know,
Jonathan Giles.

Sunday, June 25, 2006

Free visual XML Schema editor

There is a free version of XMLSpy (http://www.altova.com/) that includes the free XML SChema editor. Highly recommended. Not sure whether there is a Linux version.

/Jens

REST

I am currently looking into network APIs for search engine, blogs, social bookmarking services etc and realised that there seeems to be a trend away from WebServices towards a simpler protocol called REST. The definitions are a little bit fuzzy here, and it looks like some of the stuff I have implemented as part of WOP (wopper-rpc module, on SF-subversion) can be described as restful:
  • I have started with an XML Schema
  • Communication is by plain POST requests
  • I submit objects encoded as instances of the schema to the server, and get another encoded object back as part of the response
  • The objects are actually Java objects, but this is irrelevant, I have generated the classes from the schema using Jaxb.
  • I am using the Apache commons client to do the plumbing .
Here some code, just to see how simple it is:

Object obj = ... ; // the object to be posted
HttpClient client = new HttpClient();
StringWriter stringWriter = new StringWriter();
// serialize object, uses the generated API !!
WopperRPCUtil.write(stringWriter,object);
// make request
PostMethod post = new PostMethod(url);
post.setRequestEntity(new StringRequestEntity(stringWriter.toString()));
int statusCode =statusCode = client.executeMethod(post);

Wednesday, June 07, 2006

Job offer at Toyota New Zealand

Hi,

I have just received an email with the following job offer:

.. Once again thank you very much. Analyst job details below. Look forward to keeping in touch.

http://www.seek.co.nz/users/apply/index.ascx?Sequence=96&PageNumber=1&JobID=6876651&msid=4&Keywords=toyota

Good opportunity for a recent grad with the right attitude based at Toyota New Zealand’s HQ in Palmerston North.

Customer Database Analyst

PALMERSTON NORTH

Are you interested in applying your IS skills within a business environment? Can you convert data into meaningful information for business users?

Toyota is the market-leading automotive company in New Zealand. They have an extensive customer base and are seeking a further talented analyst to maintain, develop and utilise information in the customer database to support CRM and business objectives.

This role would see you:

• Extracting accurate and timely data for
internal customers
• Analysing campaign results and creating
reports
• Performing data mining and research to gain
customer insights
• Maintaining data integrity
• Contributing to new
CRM systems

This exciting and varied role provides an immediate challenge to learn the existing database, as well as opportunities with the imminent transition to a new CRM system. As part of the Customer Dialogue Centre, you will be working across business areas and with various end-users and suppliers.

With a passion for accuracy and data integrity, you will also have a strong customer focus and an understanding of business. You will take ownership to meet project objectives and milestones; communicating easily with both technical and non-technical users.

Your proven knowledge of database theory will be evident in your tertiary level qualification or equivalent experience and you will have advanced MS Access and Excel skills. Familiarity with CRM systems and SQL programming would be an advantage.

This fantastic full-time opportunity provides a high level of variety, autonomy, room for growth plus the opportunity for you to work in a positive, friendly team environment.

To apply, please email your application to sarah@sterling.co.nz, or post to PO Box 1509, Palmerston North. For more information please contact Sarah Last-Harris.

Sterling Human Resources
PO Box 1509
70 Princess Street
Palmerston North
Phone 06 359 0024

Kind regards, Rodger

Rodger Spillane

Team Leader - Information & Research

Customer Dialogue Centre

Toyota New Zealand

Roberts Line P O Box 46 Palmerston North

p: +64 6 350 3474 f: +64 6 350 9359


Friday, June 02, 2006

Plugin-based Software Development

I have a blog elsewhere, but I thought I'd copy a little bit now and then from there into here, when it relates to my work on developing an application using a plugin architecture (akin to Eclipse). This work is basically my research this year for my BE project. So, here's a copy and paste:

It's been a while since I geeked out, so I thought I best do another round, if merely for the purposes of keeping those interested in my adventures into the land of the software plugin updated. The short summary is:

Progress is good, plugins are a great way to develop software, and I am still very much liking this new development mentality.

To expand on that last point: programming is no longer a matter of trying to design everything at once - you can simply say "I'll make an extension point here, and later on decide on how the stuff happens on the other side of this point". This is great for my programming style, where I tend to get a basic version written up, and then I can go back and go "hey, why not rip this part out into it's own plugin?". Doing this is easy, and allows for easy reconfiguration.

For example, I could have a static logging class that outputs to the console, or to file, email, etc - but how do I configure it on a per-customer basis? Configuration files? Sure, but I believe my solution is even better: drop the plugins you want into the plugins folder, and they'll just work.

This is very true - my build script compiles all files in a plugin into a single file, so each plugin truly is one file - making per-customer configuration simply a matter of reading the file names of the plugins.

So how does this work? I define a logging interface, and a logging extension point. Any plugin that wants to be a logger says it wants to be an extension to the logging extension point, and then simply implements the logging interface. Logging will then work regardless of the number of plugins I have that extend the logging extension point.

Clearly there may be instances where I only want one plugin to extend a certain extension point, such as only allowing one extension to the GUI extension point. This is also easily handled - simply state that the extension point multiplicity for this particular plugin is 'one'. Easy.

Ah well, That'll do for now,
Exams soon, so good luck to everyone for that,
Cheers,
Jonathan Giles.

Monday, May 22, 2006

Watch and enjoy

Watch and enjoy this

Site Feeds

Jonathan has asked whether site feeds for thsi blogger are switched on. Yes, they are. Here is the URL: http://semassey.blogspot.com/atom.xml .

Tricky questions

A good friend of mine is applying for a job at a Google research lab in Switzerland. They called him and have asked the following questions (would you know):
  1. How does the initial handshake in TCP/IP look like?
  2. What happens if you kill a Java process with "kill -QUIT"?

SF Subversion

In case you did not know - SF supports subversion now !! I have just migrated the webofpatterns project(s) (yes, 5 modules, and more to come) from CVS to Subversion and it all works fine. I am using Tortoise SVN and the SVN Eclipse plugin as clients. Lessons learned: you need to configure the proxy for Tortoise SVN explicitely (it seems not to pick up the system settings). No trouble with Eclipse, I guess the plugin pulled the proxy config from the update and install plugin (I am doing the same in WOP now).

OpenSource in NZ

The NZ Herald has an article about the response of the NZ OS Society to an report of the State Service commission on the use of Open Source Software earlier this year. My understanding was that the report suggested to avoid "infectious" licenses such as the GPL. This is not the same as banning open source, as a lot of software is under licenses considered to be more business friendly such as Apache or LGPL.

Tuesday, May 16, 2006

New books

I have just received two new books on Eclipse - Gamma's / Becks "Contributing to Eclipse" and Clayberg's "Building commercial-quality plug-ins". Both are excellent, written in cookbook style. Gamma / Beck seem not to cover new Eclipse 3.0+ features. Come to my office if you want to have a look or need them for projects.

Google plans Aussie internship program

Full story from zdnet au. Not sure whether this is open to NZ studenst as well, please contanct them if you are interested and let us know what the response was.

Software engineer has been named the best job ..

Software engineer has been named the best job in the US by CNN Money. Here is the full story:
http://money.cnn.com/magazines/moneymag/bestjobs/