Martin @ Blog

software development and life.

Flower

XMPP in Java

I wrote this article a while ago, but never published it. Since it is mostly finished, I decided to put it online anyway. Unfortunately it is in Dutch, maybe I will translate it into English in the near future. Read the rest of this entry »

Devoxx 2008: JavaFX, Java 7 and dynamic languages

Each year during the middle of December, the European Java community gathers at Antwerp to get updated on the latest developments in their profession. This year, Devoxx was organised for the first time from 8 until 12 December. The event was sold out for the second time in a row. This contradiction is caused by the fact that Devoxx until this year was known under the name JavaPolis, but due to a dispute with regards to the Java brand, the name was changed into Javox and finally to Devoxx. In this post I will give my impressions of two days of this event. A Dutch version of this post is available at the weblog of my employer. Read the rest of this entry »

NetBeans 6.5: first experiences

Last week, Sun Microsystems introduced a new version of their Integrated Development Envorinment NetBeans. Version 6.5 introduces a lot of intresting new features and got a lot of attention in the media. Since the rise of Eclipse, NetBeans was somewhat ignored by many developers or at least by the ones I know (including myself). In order to get more knowledge about it, I decided to try it and test if it was suitable for a project I am currently working on. Read the rest of this entry »

Domain specific languages are hot!

Tonight, I attended a lecture of Markus Völter (also founder of Software Engineering Radio, which I can recommend to listen to) about Domain Specific Languages. The lecture, organized by Sioux in ther ‘hot-or-not’ series, was quite interesting. He started with an introduction on what DSL’s are and what they are not (fluent API’s or ontologies are not DSL’s according to Völter). He continued with discussing various ways to implement DSL’s including using Ruby by implementing a DSL using the dynamic features of this language and Scala using a similar technique. In the second part he gave a demonstration with XText in Eclipse, which was very impressive. In only five minutes, he developed a text DSL for describing the states of a microwave, and generated a plugin for Eclipse for this DSL, including syntax highlighting and code completion.
Another demonstration involved JetBrains MPS.
All in all it was a interesting lecture, but sometimes it was a bit difficult to follow, especially since I’m not very experienced with DSL’s.

Dit is wel weer origineel

De iPhone als fluit:

Broken MacBook and Timemachine

Last week, the screen of my MacBook started to behave strange. Just to the left of the center was a band of approximately 5 centimeters wide with a distorted image. First it was only for a minute or so, but over the week it stayed longer until it eventually didn’t disappear anymore. So, my MacBook had to be repaired. Because the computer is owned by my employer and I use the system every day for my work, I got a temporarily replacement MacBook with similar specs, only a white one with a 2GHz processor (my MacBook is black with a 2,16GHz proc.).
Since about 4 months, I make regular backups of my MacBook using Time Machine with a 2,5″ 250GB external USB hard disk, but I never tried to restore a backup. This time, I thought, was an excellent opportunity to try if it works as expected. Since I had some difficulties for Time Machine (at least, I thought I had), like applications in the /usr/local directory and quite a lot Macports applications in /opt/local, and modified versions of some configuration files, I was curious if Time Machine would restore everything in its original state.
Read the rest of this entry »

iPhone 3G and iPod Touch banned from European market?

According to a post on the Dutch site Tweakers.net, the Dutch government and Apple are discussing a new European regulation which forbids manufacturers to sell products with non-removable batteries. Since 26th of September, this new regulation applies in the Netherlands, but manufacturers were informed in advanced according to the article. In fact, earlier rumours were that since that date Apple wasn’t allowed to import new stock and therefore the iPhone and iPod Touch shouldn’t be available in our lovely country. However, there are some exceptions possible including medical devices, children toys and also devices which rely on the battery for data consistency. I think Apple will try to prove that this latter point applies to the iPhone and iPod Touch.
I think it is an intresting point, since the build-in battery was one of the major complaints when the iPhone 3G was introduced. But I don’t think Apple will introduced a modified iPhone which has a replacable battery just for some European countries which think it is better for the envorinment…

New Apple products

Yesterday, Apple announced new MacBooks and MacBook Pro’s. The 17″ MacBook Pro has the same housing as the previous version, but the 15″ has an updated casing which is similar to the iMacs. The 13″ MacBook is also updated and has the same casing as the MacBook Pro, making the difference between the two product families smaller. I think the new looks are pretty nice.
A nice innovation is the new trackpad is made from glass and support multi touch gestures (similar to the iPhone I suppose). The screen of the new laptops are using LED backlight and in order to support external monitors, a Mini Displayport connector is used. Unfortunately, the 13″ MacBook lacks a Firewire port.
In addition to the new laptops, Apple also introduced a 24″ Cinema Display, specifically targeted to laptops. A very good feature of this monitor is the inclusion of a MagSafe powerconnector, which charges a MacBook without the need of a seperate power adapter.

MacBook and new Cinema Display

According to Twitter, the new laptops are received pretty well. The main complaint is the missing Firewire connector and the pricing of the new models. Fortunately, the old (white) MacBook is still available for a reduced price.

Of course, I want such a new MacBook, but unfortunately, my current MacBook is only one year old and therefore I have to do with this one for another two years. Unfortunately, the screen of my MacBook broke down this week, and therefore needs to be repared…

Running… and finishing the half marathon

Today was the half marathon of Eindhoven. About three four months ago, the company I work for launched the idea to run the marathon of New York next year. While I’m not a runner (the only serious running I did until then, was an 8km for the Batavierenrace, a estafette run from Nijmegen to Enschede). But the oppertunity to run the marathon of New York sounds challenging, so I decided to give it a try. Starting in June, I did some running until I could run 10km relatively easily.
Toghether with a friend, we got the idea to run the half marathon of Eindhoven which happened today (12th of October 2008). Since we’re both pretty fanatic, we didn’t just wanted to finish, but also run a decent time. So in July we started to train seriously, I ran about three times a week then and we ran one time a week toghether. We thought we were prepared for today, so fit and in the best condition ever, we appeared at the start of the half marathon this morning.
We planned to run at least the first ten kilometres toghether and after than we would see what happened. I expected that Maikel (my fellow runner) would be a little faster; his goal was 1:40 and I tried that as well. Unfortunately, just before the start, the sun started shining, making it pretty hot for an Sunday in October (approx. 19 degrees Centigrade).
The first ten kilometres, we ran exactly according to plan, and we crossed the 10km sign after 50 minutes (perfectly on target for a 1:40 finish). After about 12 kilometres, I had to run a little bit slower because my hearth rate was pretty high. Maikel kept its pace, so we lost eachother at that point. After 14km, I thought I would not going to get to the finish, but kept running. After the refreshing point at 15km, I reduced my speed, drank a lot and poured some water over me and continued running. After that break, the running was a little easier, and at the Dommelstraat (about 3km before the finish) I really got some new energy. Fortunately, at that point most of my supporters were standing and they thought I was doing very well. Eventually I managed to finish in 1:48:04; a time I was very happy with consedering I’m only running for four months now. Maikel finished in 1:42, you can see him finishing on a video at the Omroep Brabant site.
Up to the next challenge.. and maybe we will run in Eindhoven next year!

Google Chrome: the iPhone of the browsers

Today, Google introduced its own browser, called Google Chrome. While I wasn’t aware that Google was working on a browser, I think they have done a good job. Browsers are changing from a hypertext navigator to a sandbox for interactive applications which doesn’t have much to do with the hypertext from the past. Therefore, it is a good idea to re-evaluate the idea behind browsers and Google appearantly did this.
I think it was just a matter of time before some company came with this idea… now it is Google, but it could also have been Apple, Microsoft or another company.
I think they did a good job, and this browser is definitely going to grab some marketshare and will become important for the future.
In fact, I suspect it is going to do what the iPhone did for the mobile telephony market: make the other browser vendors more innovative.

Strong points are the process separation for tabs, the clean interface and the focus on speed in Javascript and the fact that it is open source. Now we only have to wait for the Mac and Linux version. The process manager is really nice. I also like the ‘smooth’ animations for tabs and other UI elements…

Some people argue that the process seperation of Chrome is already available in Internet Explorer, but obviously, in Chrome it is better. In Internet Explorer it is simple impossible to run a tab in a seperate process and kill it indiividually.