I’am too Stupid for Java Store

14 December, 2009 7 comments

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?

13 December, 2009 Leave a comment

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

13 December, 2009 Leave a comment

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!

10 December, 2009 Leave a comment

And finally NetBeans 6.8 is here! Look here, here and here for the features and get it here!

Thunderbird 3! Wow!

10 December, 2009 Leave a comment

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!

  1. 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
  2. Fancy layout
  3. Inbox now is by default subdivided into the mailing accounts. no need for virtual folders
  4. Tab-Browsing (creating new mails won’t open in a new tab :-( )
  5. See here for the full feature list!

PS: If you have problems with upgrading

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!

7 December, 2009 2 comments

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?

25 November, 2009 1 comment

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.

TimeFinder v4 Released – Automatic Educational Scheduling

24 November, 2009 1 comment

Today the TimeFinder Team (its me ;-) )
announces the availability of TimeFinder v4!

TimeFinder allows universities and schools to reduce and even avoid conflicts in the timetable! TimeFinder will improve the work of the human timetabler at the institute. A lot of work which would be done by hand to create the educational schedule could be done with TimeFinder.

TimeFinder is completely free and independent of the operating system (via Java 6). The power of TimeFinder is its algorithm. It eliminates the hard-conflicts of nearly all datasets of the International Timetabling Competition 08 in under 20 seconds on a normal laptop. And it can be applied on real data like the one from University of Bayreuth.

Pictures tells a lot more than 1000 words, so here is a video as introduction

and here are some screenshots:

The first screenshot is how editing of events works

  1. create a new event
  2. then set the name
  3. and specify the start and duration
  4. after this you can add some visitors under Event Table->Persons

edit-events

And here you see how TimeFinder optimized an instance of the International Timetabling Competition 08:

after-optimization

See some more screenshots and look again here for the video documentation.

Start TimeFinder right now via WebStart! Or download the jar which is faster!

New Features

The TimeFinder Team worked hard to add the following features in this version for you:

  1. Events with any duration are now possible – without performance losings! (before only duration=1 was possible)
  2. A more robust and lightweight Swing component the TimeFinderPlanner to display the schedule/timetable of all locations and persons was implemented and replaces the JavaFX component hassle. This component is small (<30KB) and but has some dependencies (1MB). It has the same purpose as MigCalendar, but is of course not as powerful as this.
  3. Import of text files (tab separated, comma separated data). XML was already supported in previous versions
  4. Auto-import for the last imported file
  5. Cloning entities is now possible
  6. Anonymize data, so that institutes could give away its data for performance-tests and other research projects.
  7. Import of the data for University of Bayreuth (Germany) and the possibility to optimize this data set with >1500 events; >100 locations; >600 resources (persons/course of studies) is now possible and shows how other institutes could use its existing data with TimeFinder.
  8. Removed a lot of deprecated classes and removed unused dependencies (now ~11MB)
  9. Now the English TimeFinder is fully translated into German too. Translation is now simplified with a small tool.
  10. A new maven module called algo was created (~3MB), to reduce coupling of the algorithm to the GUI. Now it is theoretically possible to deploy the algorithm without the spring dependency e.g. to an optimization server.

Support

No software is complete or bug-free, and so is TimeFinder which is beta software at the moment. You are free to support TimeFinder with your constructive critique, blog posts or even money if you like to make it better. Feel free to contact me or raise an issue if you find a bug.

Check the documentation or watch an introductive video to get an overview. Keep in mind that updating documentation is still work in progress.

You can win

If you know some Java and like coding GUIs, databases or algorithms you can contact me and win experiences via joining the project!

Especially the calendar component TimeFinderPlanner could be alluring for people with Java2d experiences or interests in this area.

Thanks!

This application wouldn’t be the same without the following nice open source projects:

… and last but not least thanks to NetBeans – the only IDE you need
and Yourkit profiler, which offers open source projects a free license!

recordmydesktop – audio not in sync

18 November, 2009 Leave a comment

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!

TimeFinder – Powerful Optimization Algorithm, RIA and more

4 November, 2009 Leave a comment

TimeFinder is an Open Source Timetable Optimizer for universities and schools, which uses the Spring Rich Client project to create an easy to use application with a nice user interface, a database and … more bla bla …

ok, it is a bit dingy headline and a more dingy introduction, but I would like to invite you to test the latest development version v4 of TimeFinder now! And without such a headline you woudn’t have read this. And I feel that I would like to release TimeFinder in the next weeks, so I need some beta testers. Go here to see some screenshots.

Get the dev version of TimeFinder here, double click the jar (optionally read the documentation for v1) and tell me:

  1. If you understand the purpose of TimeFinder from the website
  2. If you understand the user interface and how you can insert data
  3. If you find a bug
  4. If you need other features

Any feedback is welcome! Please contact me at peathal AT yahoo |dot| de, post an email to the mailing list or simply leave a comment here.