I’am too Stupid for Java Store
Finally I was approved for Sun’s Warehouse and the fun of uploading can begin!
Sun made a nice job for the Java Store. It looks good although not ready (the gray bar at the right side is what?). See for yourself:
But the procedure to submit my TimeFinder application was very awful!
- So first I needed a short and a long description and several icons. Okay I wrote some description and used one bigger icon and scaled this down with gimp to produce the required sizes.
- Next I needed a main jar file. (Why not a webstart jnlp file?)
- So I installed a jar file (from one-jar) into the Java Store, but it does not start. No error messages.
- Then I tried to reinstall it: it only says “you tried to install TimeFinder, which is already installed”. uhm
- I think the sandbox stuff might be the problem. Ok, for that they linked to this and that document.
But why should I read all the stuff if I already have a self signed webstart application? - Ok. Next I tried to create a new version with my signed jars (from ‘mvn clean install webstart:jnlp’). And what? Yes! I need to refill ALL text entries again. uhm. I thought I do not need this description again (because Sun had already saved this for me). Probably the most strange thing is that they do not allow you to copy and paste your old text! But hey – I am a developer, so I opened up the pure html and copied it from there.
- Next for the signed version I have > 30 jars. At the end only 11MB (50 MB are allowed) but … no! I need to upload them separately and no parallel download, no. Only sequential. And the best thing: they will not be ordered by name. haha lol. I’am simply too stupid for that …
- After adding all the jars: I couldn’t proceed with ‘next’. the button didn’t react!
- I relogged in and now the jars were uploaded, puh! But I wasn’t able to install the new version via Java Store: “You have tried to install TimeFinder, which is already installed”. And then I tried to submit, but “You must test launch your application at least once before submitting.” (For that I need to install it
) Argh
So, I wasn’t able to upload anything working to Java Store
I do not understand why the developer should use the ugly webpages and the user can use the nice Java Store client? Why not merge front- and back-end to an ultimate “JavaStore”?
In the end: please make it a bit easier! At least for me
I know this is from developer for developer, but how should a normal “script kiddy” post its (JavaFX) apps there? E.g. why do you need to force that security stuff? If it is not signed you could simply warn the user. Or why not?
Why Twitter?
Some weeks ago I asked my self and some fellows: why should I ever use Twitter? Why? It seemed so senseless…
Now I have an account on twitter and I know it could be useful for me although I still think it is not necessary
Here are the important points why you “can/should/must (not) use Twitter”:
- Killing Time. Just browsing from one to another twitter guy (twopping?)
- Getting news or better: getting instant news. Look around for those # characters!
- Advertising yourself – its me! – or a product like TimeFinder!
- Networking via following and followers. You can express interests with following others and show importance with a lot followers
- Communicating with individuals or see what people are talking about. If you follow people that are talking with each other, then you can follow their conversation easily by entering twitter.com. In this way you can organize communities etc
Another important action is to post a tweet of somebody else again (“re-tweet”). With this method you can spread a nice/discussable idea or simple promote an idea of your friend.
Possible future usages:
- Polling: you could write a client which parses your tweets for #topic+ or #topic-
i.e. you can even use twitter to get instant poll results! - SysAdmin Tool
- Other stuff with the Twitter API or directly from the developers.
What else?
Germany @ Java Warehouse
As a developer it is now possible to use the Warehouse from Germany (and other countries). Read this for more information.
The Warehouse allows Java(FX) developers to submit applications to the Warehouse which can be downloaded from users using the JavaStore.
(Why so complicated?? And not only the Java Store??)
NetBeans 6.8 released!
And finally NetBeans 6.8 is here! Look here, here and here for the features and get it here!
Thunderbird 3! Wow!
It is amazing. I thought all is fine with version 2, but now I see that several things can get a lot better in thunderbird 3!
@developers: Thanks a lot for this!
- Search looks very nice, is very very fast and is a pleasure to use. Easy navigating through the result set (is there a search engine under the hood?
).
Here is a screenshot

- Fancy layout
- Inbox now is by default subdivided into the mailing accounts. no need for virtual folders
- Tab-Browsing (creating new mails won’t open in a new tab
) - See here for the full feature list!
PS: If you have problems with upgrading
- I lost my master password of the old thunderbird => take a look here (German).
- Only the new 1.0 beta version of lightning works (nightly builds)
Normally the following is not necessary… but for your convenience:
- Email import / export => here
- Calendar import / export => already there (go to the calendar->events+tasks->import or export)
- Addressbook import / export => every list has to exported/imported alone
Griffon+Remote GORM+X: Inspirations for the Best RIA Horse!
Today I explain a possibility of a pure Java-based client/server application (the client side should be a Rich Internet Application) with a database backend.
I know that other people might already had this idea and others implemented this in a different way and Griffon is on the way, but let my explain it now in (more) detail. It is only an aggregation of existing tools.
How should it look like?
We simply replace the HTML-view of an ordinary Grails application with Griffon! So instead of a browser we will have the mature JVM and we could programm all in Java/Groovy! No JavaScript, no HTML, no CSS, no …!
(Ups. No CSS? Okay we could use css on the desktop, too)
Shouldn’t this be an easy task to replace the V in an MVC application? The problem lays in the detail. E.g. do we need the full GORM functionality on the client side (‘remote GORM’)?
The cayenne framework (a nice hibernate alternative) supports the so called remote object persistence which would be great for this kind of application. They use the hessian library to communicate over HTTP from the client ‘over’ the server to the database. So, the db-programming-style on the client is nearly identical to that on the server!
So, do we need Person.findByXY and all the other, useful methods on the client? I fear tweaking hibernate is necessary but maybe with some grooviness we could avoid this!?
Another simpler approach would be to use the already available services of Grails for the client side. With Xml (Un-)Marshalling or SOAP like it was done before? But hmmh, I prefer the cayenne way … its groovier!
So, what do we need for our 3 tier pure Groovy solution?
We’ll need Grails!
To be a bit more specific: we would actually only need the GORM plugin (and Spring) from the Grails project for the server to communicate to the DB and manage the migrations.
We’ll need Griffon!
We need the full Griffon stack for the client. And if we only use GORM from Grails we will use Griffon also on the server side, I guess.
So either GORM+Griffon+Griffon (db+server+client), which would be more consistent
or GORM+Grails+Griffon which could be easier to implement at the moment.
We’ll need Spring Rich Client!
We need some nice to have packages from the Spring Rich Client project for the client side: validation, window-docking, master-details stuff, …
We’ll need the Hessian Library!
Additionally to the GORM plugin we will need the Hessian library to easily (!) communicate between the client and server. (Short explanation: Hessian library is RMI without drawbacks.) Later on we could implement a remote GORM with the help of this library (see above)! Without this functionality we won’t have fun: either we can only implement a two tier applications (client+db) or the programming is as slow as it would be with an ordinary non-groovy desktop application (via SOAP etc).
We’ll need JavaFX!
Why do we need JavaFX if we already have Groovy as the UI DSL? Marketing! That would mean a broader audience and maybe some tiny support of Sun
Another feature of JavaFX would be that designers could create good looking SwingUIs for us without knowing Java/Groovy.
XML Marshalling
TimeFinder-Planner a Primitive MigCalendar Alternative?
Yesterday I annouced a new version of TimeFinder. With that version a new and very simple component called TimeFinder Planner is included and can be easily integrated into an existing Swing or Spring RC project. It is already mavenized but I can deploy a full jar if necessary.
Of course it is not as feature reach as MigCalendar, but you can use it as a read only calendar component in you own apps – it is Open Source (Apache License 2), small (<30KB) and has only relative few dependencies (~1MB). It supports ‘conflicting’ events, i.e. if events would be at the same time.
Look here for some screenshots in my TimeFinder application:

At the same time you can ‘zoom’ into one event simply via the “mouse over” action. And it should be able to handle any possibility of conflicts (overlapping events):
The performance should be also good even for a lot of events per week (independent from all events!). This cannot be seen in a screenshot but you can try TimeFinder and import the data of JavaOne 2009 via the ‘File’ menu item. Look here for the video explanation.
recordmydesktop – audio not in sync
Nice application!
Normally one could use the GUI (gtk-recordMyDesktop) but I had a small problem: audio and video was not in sync. I worked around via specifying my headset on the command line tool directly via
-device plughw:0,0
Thats it!
recordmydesktop --width 800 -height 640 --v_quality 20 --s_quality 10 --delay 3 --fps 10 --overwrite -device plughw:0,0 -o timefinder-v4-screencast.ogv
If this does not work for you look here, here, here or try to disable compiz via System -> Preferences -> Appearance -> Visual Effects
and include –no-wm-check
Or use the command where I got the best results:
recordmydesktop --width 1024 -height 800 --v_bitrate 2000000 --s_quality 10 --delay 1 --fps 20 --overwrite -device plughw:0,0 --no-wm-check --buffer-size 65538 --freq 48000 --quick-subsampling --on-the-fly-encoding -o timefinder-v4-screencast.ogv
To convert this into a youtube video do:
mencoder -idx timefinder-v4-screencast.ogv -ovc lavc -oac mp3lame -o timefinder-v4-screencast.avi
or
ffmpeg -i timefinder-v4-screencast.ogv output.mpg
To cut sth. from the video you can do:
ffmpeg -vcodec copy -i timefinder-v4-screencast.ogv -ss -00:00:10 -t 00:07:11 output.ogv
On blip.tv you don’t need this! Simply upload!





