20 June 2009

GWT best practices

A great talk from Google IO 2009 by Ray Ryan:




It comes with two great ideas, Dependency Injection for GWT and a pattern called MVP/EventBus.
Sounds pretty interesting.

Mercurial and moving of files.

A problem, when you're using Mercurial forversioning is, that Mercurial only knows about files and there paths. This results in two types of trouble.
First you cannot commit an empty directory. It will be just ignored. To solve his, create a hidden empty file (one with a dot at the beginning of the name like '.hidden') and commit it.
Second you cannot just rename, or move a file. Mercurial will think, that there is a new file and the old one isn't available anymore and that fact crashes your commit. To solve this, Mercurial provides the command 'mv' (like the UNIX command). Just type
hg mv path/to/my/SourceFile path/to/my/DestFile
into your Terminal and you're moving or renaming it. Mercurial will then understand, that both files are the same.

Git vs Mercurial and the fight of SCMs

In the past I was using Subversion as a SCM (Source Control Managment) and Google's project hosting is still using it, so Google Code was allways a good place for hosting some open source code.
But now the world has changed. I recognized the idea of distributed SCM (DSCM) first, when I heard about github.com and I gave it try. The big benefits are, that you can work offline and everyone has his own repository with full versioning and so on. The result for my own work is, that I do much more commits and of cause smaller ones. Just after doing a cupple of them, I push my changes to the server.

But What is the right system and right hoster?


This is a very interesting question and it forced me to test a little bit around. And I found a cupple of benefits on each system and each hoster. But in the end I decided to stay on Google Code and use Mercurial.
The reasons are pretty simple:
  • Mercurial isn't that different from Git as I expected.
  • Social comopents are not so interesting for a project hosting.
  • Google has a much better code and history browsing than github.
  • Extisting Subversion projects can be converted including history.
So my desicision was clear. I mooved the DuckWiki repo to Google Code, and will use Google Code and Mercurial in the future.

If you're thinking about Mercurial and Git, there is another point, you might be interested in, which I didn't care about so much:
While Git only works over SSH, Mercurial provides you the choice between SSH (makes maybe more sence in a Company's internal network) and HTTP (is much nicer, if you're repo should be open for annonymous users).

19 June 2009

GORM + JPA now available

I was waiting for this feature so long and now it's there:
GORM works with any JPA provider not just with Hibernate.

The first release of the plugin was just anounced by Graeme.

This is realy great news since the DuckWiki project can now make use of it. As a result, DuckWiki should work on each Java EE 5 app server without the need of having it's own (Hibernate) persistence layer.
As a key feature the awesome dynamic finder methods, provided by GORM, are also working, except on Google App Engine (look at this bug).

11 June 2009

Social coding and Twitter

A nice feature on github.com is, that you can add your Twitter credencials to a project and all commits to this projects will be twittered. That's a nice way to be notified on changes. The other part is, that comments on your commits get a new sence in being Twitter posts.
If you would like to be notified on DuckWiki just follow duckwiki.

10 June 2009

Problems with Safari 4, scrolling and the colors of the page

Just right after the keynode I installed Safari 4 on my Mac. I've allready tested the beta for a cupple of weeks and was surprised about the speed. But after the the installation of the final release I recognized, that the color was fading while scrolling. In the worst case I got a black/white page. This problem is posted in an Apple Support Discussion.
The solution provided in the discussion seams to work for me.
If you'll get this problem, open Disk-Utility app, select your HD and press Restoring Permissions. Wait some minutes, restart Safari and that's it.

Cooler coding with Git on github.com

In the past I've choosen Google Code to host my open source code, but with DuckWiki, I started using Git hosted on github.com. Git is not the only distributed version control system and there are some things, which are not so cool, like there is no real native Windows support (but I kicked Windows out of my life for a while). Google Code provides Mercurial as an distributed version control system and they told the rest of the world how they implemented Mercurial on their system.
But at least their are two reasons for github.com.
  • Private repos: If you pay, you'll get private repositories for non-open-source projects.
  • Social coding: github.com provides a cupple of cool features like following other coders, watching their projects, etc. It makes it all feeling like a real community of coders.
Even the Grails team is using it.
So get on, create a account and follow me or duckwiki project on github.com

09 June 2009

DuckWiki project started!

After the decision in the last days to start a new open source project, I've now created a repository on github.
Sure, there is no code in this repo but it will come soon. Some basic documentation will also follow in the next weeks.

So what is the project for?
Well it's name is DuckWiki and as you may expect, it will be a wiki software. It should be deveoped on top of the awesome Grails framework and make use of some cool new web technologies and architectures like RIA, REST, etc.

There are so much wikis, why another one?
Well the idea behind DuckWiki is not just creating a plain old wiki software to clone the Wikipedia. DuckWiki will be a wiki for creating DuckMaps instead of Wikipedia like articles.

DuckMap, what's that?
Everyone knows: It walks like duck, it looks like a duck, thus it's a duck, isn't it?
A DuckMap looks like a map and it behaves like one, thus it's one. But in general a DuckMap is like an instruction based on a cupple of maps (incl. maps or plans of buildings). You can think of it like a driving direction, but with much more details (even inside of buildings).

Sounds good?
Stay tuned.