Rich Internet Applications (RIA) are not really a new thing, but currently there are just a couple of web pages out there, using a real RIA architecture. So it's new enough to write a series of articles about creating a good RIA architecture with the Google Web Toolkit. I'm sure some of the patterns and concepts are also portable to other frameworks.
12 January 2010
16 November 2009
Grails GWT Google Group
There are lots of comments with questions below my Grails / GWT tutorial. Many people are also asking questions about GWT on the Grails mailing list. To move Grails / GWT related questions to single public place there's a Grails GWT Google Group now.
Come in and join, if you're interested in using GWT with Grails.
15 September 2009
Cool things with Grails URL mapping
In Grails you have a lot of nice features for doing web development. One of them is URL mapping with the link tag.This will map the URL 'http:localhost:8080/myapp/book/show/1' to the action show in the BookController class. To create such links you can use the link tag like this:This will tell Grails to map the URL 'http:localhost:8080/myapp/book/1' to the same show action as above, but what's happening with our link?
Now let's change our mapping again by adding:Well, now the above link will create the URL 'http:localhost:8080/myapp/books/2009' and everything else will stil work as expected.
Grails default mapping is this:
"/$controller/$action?/$id?" {}<g:link controller="book" action="show" id="book.id">
${book.title}</g:link>
Sure this is the standard way. But now lets change the URL mapping by replacing the default mapping:
"/$book/$id?"(controller: "book", action: "show")
It's stil working! Grails knows, that URLs, which are pointing to BookControllers's show action have to be of the declared structure and thus, the link tag will create a URL like 'http:localhost:8080/myapp/book/1'.
Ok, let's go on. What else can we do with this?
By default the URL 'http:localhost:8080/myapp/book/list?year=2009' will point to the list action of BookController and the URL parameter year will be available with
params.year
in the action. To create this URL you can use the link tag again:
<g:link controller="book" action="list" params="[year: "2009"]">
Books released in 2009
</g:link>
"/$books/$year?"(controller: "book", action: "list")
23 July 2009
The company zoo
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.
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
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/DestFileinto 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:
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).
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.
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).
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.
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.
29 May 2009
The next big thing in my iTunes library
I just found this girl from the wonderful London. First I heard it on the local radio station and now I got on my iPod, yeah.
01 April 2009
SWT File Drag'n'Drop
Did you ever try to enable your Eclipse RCP application to handle file drops from the Explorer, Finder, or whatever your OS brings?
Here the solution:
http://alan.blog-city.com/swt_dragndrop.htm
Here the solution:
http://alan.blog-city.com/swt_dragndrop.htm
09 January 2009
Symbolic a Grails example
While I prefer Ubuntu as a Linux OS, there is a cool Open Source application available for administration of Fedora and RedHat Linux machines, called Symbolic. It's based on the awesome ils framework and it's defenitiv a good example, that an Open Source application can have a pretty looking homepage ;-)
06 January 2009
Tiny URL for your app
It is a great idea to make big URLs more usable. TinyURL is such a service, who can do this for you. I use it a lot in Twitter, but what if you also want in your own app?
It's pretty easy since TinyURL provides a nice and small API.
http://tinyurl.com/api-create.php?url=http://theurlyouwantmakesmallerThe result will be the TinyURL link, you'll want. Try this:
http://tinyurl.com/api-create.php?url=http://www.timetoact.de/ttacms.nsf/id/EN_EmployeePagesIt will create a TinyURL to a product presentation of my company. Copy the shown URL to your browser's address bar and you'll see, it just works.
03 December 2008
To much snow for a wednesday
02 December 2008
Enabling the cool developer tools in Safari
All web developers love Firefox because of the awesome Firebug Add-on. Sure, me too, but what is with all the other browsers?
Well, Microsoft will maybe offer real developer tools with IE 8. But for my favorite rendering engine WebKit (e. g. in Safari or Google Chrome), there are allready some cool tools availabe. On a Mac all you need to do is typing the following command into your Terminal:
defaults write com.apple.Safari WebKitScriptDebuggerEnabled -bool trueNow open Safari's preferences and activate the develop menu on the advanced tab. That's all. You'll get a cupple of cool tools, which are as powerful as Firebug.
Here the network ananlysis of my iGoogle page:
Looking pretty nice, or?
More for Drosera (that's the name of the WebKit developer tool) can be found here.
11 November 2008
SpringSource has bought G2One
I just read it, but I'm not sure if it is realy true, what The Register writes today. G2One is the company of Graeme Rocher and the other guys behind Groovy and Grails. SpringSource is the company behind the awesome Spring framework, which is also the base of Grails.
Hopefully there will come a lot of benefit from this acquisition for Grails. My biggest wish is, that they will bring Grails to Spring Dynamic Modules for OSGi and thus onto a great OSGi infrastructure. This would also fix the most voted issue for Grails.
Hopefully there will come a lot of benefit from this acquisition for Grails. My biggest wish is, that they will bring Grails to Spring Dynamic Modules for OSGi and thus onto a great OSGi infrastructure. This would also fix the most voted issue for Grails.
Subscribe to:
Posts (Atom)





