Friday, August 31, 2007

Plans for future development

Well, I'm finalizing the very first alpha version of my new CMS I'm developing for about four months now. So I decided to share a few plans of mine for the nearest future (next school year). As you may think the first thing is to finish the CMS, which I think will be really cool and will change the way people use CMS (but that's probably very optimistic :-) ). The CMS is Java-based, uses Hibernate for persistence and is designed to run in Tomcat. I have still a lot of work to be done to solve many issues from missing features to performance, but I'm quite happy with the results I'm getting now. So I made some time to write this post. The sad thing for most of you is probably the fact that it won't be open source probably. And I can't even tell you the features of CMS as it's "confidential". However one part of the CMS will be open source. The part is the templating system code-named FinalShape. FinalShape is templating system slightly similar to Apache Velocity. Unlike Velocity FinalShape is directly designed for being used in web environment. FinalShape is in fact alternative for JSP, ServerFaces, Servlets and similar stuff. Unlike servlets and similar FinalShape templates can't contain any executable code and can be safely used by non programmers to design HTML websites. In the CMS (I'm working on) web designer can safely change the template from the administration interface in runtime without any redeployment needed.

From other features I consider important are already implemented:
  • internationalization and localization support on template engine level
  • compilation of templates avoiding re-parsing templates again and again
  • 2-level caching (cached are both compiled form of templates and rendered pages)
  • compression support (all cached pages are compressed and passed to browser compressed if browser supports HTTP compression, otherwise the page is uncompressed before passing to browser - this minimizes memory used by cache and minimizes traffic)
  • structured documents support (nested blocks)
  • commonly used built-in page elements and possibility to implement custom elements
  • many other minor features :-)
OK. That sounds good, doesn't it? So when can you expect to download FinalShape and it's source code? - In early 2008. I know that doesn't sound soon, but I have a lot of other stuff to do and FinalShape needs some minor tweaks yet, some source code cleaning and also some documentation to help you start.
I have also another cool project in progress, but I will tell you about it sometime later. I would like it to be my dimploma thesis, so as soon as I find some guarantor and the topic gets public I'll write more about it here.

Thursday, August 30, 2007

Advertisement

I'm sorry for the advertisement here, but I would like to get some money via Google AdSense to pay me part of my time spend by writting this blog, if possible. I think Google AdSense is not very striking and offers quite relevant links. So I hope that it will help you to find something you are really looking for.

Strokeboard: Can touch screen be better than HW QWERTY?

So the time has come! :-) I would like to present my keyboard design to the wide public (or more probably to the few reading this blog). If you are not interested in history go to the end of the post to try how the keyboard works! If you want more information contact me via email wessan@email.cz

The keyboard I would like to show you was designed by me about 3 years ago when developing a Flash-based game. The game was never finished and the keyboard wasn't used for a long time.
Until the semester last school year. I had a subject called "Human Computer Interaction", in which we had to do some usability testing. Unfortunately I accidentally (email was marked as spam by my email client) missed a meeting for project assignments and I had to think of a project of my own. I had about a day to think it over and I remembered the old idea. I implemented first experimental version of the keyboard and performed some usability testing.
So I had the first version (you can see on the first picture) and asked few friends to use the keyboard for the first time. The first version was designed for stylus and usability testing showed that unexperinced used can type about 45 characters per minute with stylus. However the keyboard was quite unusable with fingers.

First version for the usability testing with stylus:
Second version with eliminated less-often used keys:
Third version with larger buttons for typing with fingers:
Screenshot of current version being prepared for next round of usability testing:I'm looking forward for comments and critics, whether positive or negative. But please remember that this is just a mokup application for future usability testing (the button for special symbols and BACKSPACE do not work and SHIFT work like CAPS LOCK yet). Also remember that this version is designed to be controlled by fingers on a PDA-like device.

If you would like to get more information about the keyboard or want to use it in you application or device, please inform me via email wessan@email.cz

Now enjoy the keyboard (flash demo):



How to use the keyboard?
  • click into the text field above the keyboard to start typing
  • letter in the middle of any box is written simply by clicking mouse button in the box
  • start writing a letter by pressing the mouse button anywhere in the box containing the letter
  • while holding the mouse button perform a stroke to the direction in which the letter is from the center of the box - move mouse to up-left to write 'A', up to write 'B', up-right to write 'C' etc.
  • you can leave the box when performing the stroke - you don't have to stay in the box at all cost :-)
  • release the mouse button and you are done writting a letter
  • ask in comments if something goes wrong :-)
You can notice that the letters are clustered by 9, so only 3 buttons are enough for whole English alphabet. Compared to QWERTY keyboards the buttons are much bigger. Every letter is then written by touching the button containing the desired letter and performing a stroke to the direction in which the letter is from the centre of the button. The letter in the middle can be written by simply touching the button without performing a stroke.
Sounds difficult? Try demos and you'll see how easy is it. But remember it's just demo developed for usability tests and it's not fully working. However it should give you an idea how to use the keyboard.

Old Java school stuff

This is a post from my previous blog I copied here because I thing it could be interesting for some starting Java developers.
I have very a good exam in physics, that I started to hate several years ago while encountering it for the first time at university. Fortunately I had a pretty cool professor last semester (Petr Kulhanek), so no "try-to-remember-as-much-as-possible-exam" was necessary, just to write single applet demonstrating you are able to work with physics in real life. Single Java product working as both applet and standalone application.

I also really tried CVS for the first time and it was quite a great experience with Tomas Prochazka who is the second author of the application. Great idea and code exchange. His programming style is quite close to mine and he understands Java as well as I do (hard to tell and not important to tell who is better). So, I say virtual "Thank You" to Tomas. Pretty good change from last time I used to work on another programmer's code.

So go to http://atom.mamto.cz/projekty/skola/F2P/ and try how it works. The site is in Czech, but you can simply find the link to applet and run it (it's already in english). Here is direct link to applet http://atom.mamto.cz/projekty/skola/F2P/run_applet.html and here to Java webstart http://atom.mamto.cz/projekty/skola/F2P/run_ws.jnlp

Wednesday, August 29, 2007

Extreme Yachting

Well, I know that this post is not exactly about programming. But as I have "holidays" I will post another holidays related stuff. Because of the very cool experience with sailing on yacht, I tried to find some videos about yacht racing. I have found some on YouTube and I think they are worth watching even when you have no experience with yachting.



Monday, August 13, 2007

The very first yachting in my life

Few days ago I returned back from a very special trip for me. I have spent about 6 days with some people on a yacht for the first time in my life. Every member of the crew was for the first time on a yacht in fact. Of course except for our captain, who put the crew together.

We were not exactly good friends, but that was not so important. Despite not being the best crew in the world I had a lot of fun and I guess all the others as well. As everybody kept saying there would be no such trip with the same weird crew again. So it seems that the trip was quite unique.

After about 2 days of almost no wind a storm came to make things little bit more interesting. We were eager (or at least I was) to try something exciting. We stayed in the middle of the lake when all others were packing their stuff and going to shore. So we made some prep and after short discussion with captain like ...

Crew: Why we raise our sail when others put them down?

Captain: They are chickens.

Crew: Why are we the only ship on the lake?

Captain: Because others are chickens.

... we started to enjoy the storm.

I kept recording as long as my camera was working. Unfortunately the rain was to heavy and my Sony alerted me with "MemoryStick Error" and few seconds later it stopped working totally. I took out the battery and passed it with the camera to a very brave crew member hiding himself in under deck.

I was afraid that the storm ended my Sony's short digital life. Fortunately when I turned it about a day later, it was working. So I'm able to show everyone a little taste of the beginning of the storm. Although the most interesting things happened after the recording, it should show you that sailing can be quite exciting from time to time.