Martin @ Blog

software development and life.


Archive for the ‘Webdevelopment’ Category

New Safari 4 beta

Today Apple introduced the first beta version of Safari 4. While I didn’t read much about this new upcoming browser, I am really enthusiastic about the new features of this browser. I was waiting for Google Chrome to come to the Mac, since I really like lightweight browsers, but Safari made the waiting unnecessary. (more…)

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.

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.

Dutch Flex User Group

Yesterday, at the J-Spring 2008 event at Bussum in the Netherlands, the Flex User Group was officially launched. This group, called FLUGR, aims to support developers using Adobe Flex and AIR and promote the technology and inspire developers.

Coincidentally, today I had a one-day training in Adobe Flex. This training introduced a group of developers of Finalist to the Flex technology and especially focussed on integrating Flex with a JEE application using LifeCycle ES (or BlazeDS for that matter). The training, given by Mark van Hedel of the company Prisma-IT was pretty intense, but at the same time very educational. I didn’t have any experience with Flex or Flash, but have the feeling that now I know a little about the technology, and will definitely invest some more time to experiment with Flex.
Rich Internet Applications are a rather hot topic in the IT-industry nowadays, and I suspect it will be relevant for a developer to have at least some understanding of the technologies involved. However, I’m not sure what the best technology is for these kind of webapplications. Flex has the benefit of a large number of users that can run applications right away, because the Flash-player is installed on a large number of systems. On the other hand, you are stuck to (at this moment) one supplier (Adobe) and the Flash-player is not open source, which means that support on more exotic platforms, such as Linux and mobile phones is dependent on the mood of Adobe. Alternatives are Silverlight, which has the problems of Flash, but lacks the wide spread availability of the player, JavaFX, which is not really available yet and finally the HTML/JavaScript combinatilon. In my opinion, the battle will go between HTML/JavaScript and Flex, but maybe I’m very wrong at this.

Adobe is trying very hard to convince Java developers to use Flex, by being present at conferences (J-Spring was a good example of this) and by providing the source of the Flex compiler and BlazeDS. A usergroup like Flugr can be good to increase awareness of Flex. But I think the site of Flugr is a really bad example of how Flex should be used. The site is completely made in Flex, but I really don’t understand why they choose for this technology. The site could be exactly identical when developed in plain HTML with a bit of JavaScript. Using Flex for this site doesn’t really add any value to it, but does restrict a large number of users to view this site (because a Flash-player is required) and the usual drawbacks of Flash apply to this site. I thought Flash-only sites was a thing of the past, because they are not indexed by Google, lack the usual accessibility features provided by modern browsers, and the mouse wheel doesn’t work (at least on a Mac using Firefox 3 beta). The decision to create this site this way does more harm than good to the image of Flex.

IE8 beta is now available

It is possible to download the first beta of Internet Explorer 8. I tried it in Parallels on my Mac, and it seems to work. Obviously, people on the Internet are complaining that sites are broken in IE8. Fortunately, the websites I maintain seems to work flawlessly in the new browser (but that was to be expected, since I try to keep them standards compliant). The website of my employer seems a bit broken in IE8.

I also tried the latest Firefox 3 beta for Mac OS X. FF3 seems a lot faster than 2, so that is nice. It is also more standard compliant, since it passes the Acid3 test, it scores 59 points, which is the highest score of all browsers I tested with this it (only Safari 3, FF and FF3 beta so far). FF3 has also some nice usability improvements. For example, I like the link to the originating site of active bookmarks which wasn’t there in FF2.
By the way, IE 8 only scores a miserable 17 points in the Acid3 test, making it the worst performer on my system in this test. Even FF2 had a higher score. I also noted that it offered me to choose ‘express settings’ on the first startup, which suggested Google as the search provider… has even Microsoft loses trust in its own search engine?

Accessing properties in PHP objects

Today, I stumbled upon a weblog post of Jeff Moore on the way properties of objects should be accessed in PHP. Accidently, I thought a little about this problem myself last week because I’m working on a small project which uses a large number of data objects. Jeff Moore argues that you should not use $object->set($name, $value) or $object->get($name) to modify properties, because it does not add anything. I agree completely with that (and I’ve never used this technique myself). He recommends accessing properties directly or using setXxx($value) and getXxx() to access properties (where Xxx is the name of the property).
An intresting discussion arises in the comments where some people argue to use getter and setter methods, while others defend direct accessing the properties. I’m not sure on which side I am standing, but I think it depends on the purpose of your class.

For example, in a hobby project I’m currently working, I have quite a number of data objects (in fact models) which are generated dynamically using some kind of object-relational mapper. The properties of the objects are the fields of the table in the database the object is representing. I think in such a case, it is valid to access the properties directly. Other languages and frameworks (e.g. Ruby on Rails) use a similar strategy. I think it is also valid to use this technique, because since PHP 5, the language provides magic methods (__set and __get) which enables the developer to override the properties when necessary. This way, it is possible to modify the implementation without breaking the API of the class and as such keep the objects’ loose coupling. I think classes which are more behavioural (and not a representation of data) it makes more sense to use setter and getter methods, because you hide the implementation completely.

Hello from Eindhoven!

‘Hello from Seattle’ is Microsoft’s alternative on the Zune to the ‘Designed by Apple in California’ that is printed on the packaging of Apple products. I think it is a bit of sad in a way an indicator that Microsoft is actually losing its leading position on the IT market. I don’t think it is a very good sign that you have to imitate (or react, depending on your view) this kind of gimmicks of the competitor.

Last weekend was quite busy. We went to the Efteling because the employer of my girlfriend was having a family day there. It was very nice, especially because the weather was exeptional good for this time of the year.

I also read today about a new mainbord from ASUS which incorporates a embedded Linux installation for configuring the system and also provides some functionality, such as Skype. I think it is a nice idea, but unfortunately, it is a little expensive with a price of 360 dollars. You can buy a complete system for that money.

Rikkert Koppes has created a library which enables some Web Forms 2.0 elements for existing browsers. Not all additions are implemented and some parts, like css pseudo classes, work a little different than in it will be in the ‘real’ WF2 implementtions, but it is a very nice start and I think it can definitely be useful in web applications (especially the various date controls).

Setting up development tools on Mac OS X

Because I now use a Macbook for development, I had to install some stuff I needed for development. Unfortunately, Mac OS X does not provide a convenient method to install all the stuff using a single tool (such as apt-get/Synaptic on Ubuntu), but installing some basic stuff is not very difficult. After some research, I choose to install the following packages:

  • MySQL
  • PostgreSQL
  • PHP 5
  • Eclipse

Read on for the location of the packages I used (more…)

Interview with Tim Berners-Lee

Tim Berners-Lee, one of the founders of the Internet and chairman of the World Wide Web Consortium, is interviewed by It is an intersting read, about various subjects. Berners-Lee believes very much in the so-called semantic web, of which he is one of the initial creators. (more…)


Last few days, I was very productive (compared to normal). I managed to squash a number of bugs on the website of the my badmintonclub. There were some issues with Internet Explorer (surprisingly). I recently added a feature to keep track of the competition teams of our club and the matches they played. For this part I created some tables which were styled using some CSS-rules. This worked perfectly in Firefox, but in IE the fonts in the tables were too large and not the same as in Firefox. The font problem was fixed easily, by adding a font-size definition to the table element. The other problem was pretty hard to fix. I’m using border-collapse: seperate; and border-spacing: 0px; in order to create no space between the cells, but displaying a border for every table cell. However, it seems that Internet Explorer doesn’t support the border-spacing property, and there is no easy fix in CSS for this problem. So in the end, I had to add cellspacing: 0 to every table. Even worse: Internet Explorer 7, according to Microsoft better at supporting web standards, seems to ignore the border-spacing as well. Oh well, it was already known that Internet Explorer sucks…

I did also some cleaning of the code, because various parts were using different dabase classes for example. Some parts of the code are still really bad, but that will be cleaned up eventually.

For my personal site, I did some investigation on a photogallery script. I have a pretty big number of photos, and I’m planning to share them with the world for quite some time. In the past I used a custom script for this, but due to a server crash, I lost most of that script (and it wasn’t very stable as well). Because I don’t have the time (and I don’t want to) to write a new script, I decided to use an existing script. While there are many packages for webgalleries, it seems most of them are broken in some way. I looked at Gallery, which is too bloated (and not easily to customize I think), PhpWebGallery is also too bloated (and hard to customize). PhotoStack looks nice, but is a little to simplistic (upload features are limited, and no comments), Plogger also looks nice, But I decided to take a more indepth look at Zenphoto. This package seems to provide exactly the features I’m looking for in a nice way. The default themes are also nice and clean (which is not the case with Plogger).

You are currently browsing the archives for the Webdevelopment category.