Sonntag, 19. November 2006
UML done right?
(Audio Version)
Samstag, 18. November 2006
Still here .. with GWT and VMware image generation
Concerning my experiments with GWT - I upgraded to version 1.2.22 today and did realize the promised decrease in startup time when loading the project in the hosted mode browser but imho it could still be a bit smoother. The commercial GWT Designer (eclipse plugin, a free edition is available) looks very promising. Especially the useful wizards, refactoring support, I18N support and of course the visual designer make GWT development even more productive.
Another project I spend some time on lately, is the automatic generation of VMware images. The idea is basically to automate the installation of predefined software packages so that up-to-date images can be built at any time. Eventually custom images could be requested and the software installation could take place without supervision. I currently use the install scripts of the unattended.org project and an additional perl script to start the VM - as a prototype it works. I've also looked into other installer projects like WPKG, but I might end up creating my own database based package and profile management to enable user based profile definition via a web interface.
Btw, I need to get myself a new "java server" for the backyard: SUN's Blackbox ;-)
(Audio Version)
Dienstag, 5. September 2006
StarRating GWT widget
The control currently features:
- a custom number of stars in one row (horizontal)
- a mouse hover effect
- provides an RPC service interface to store and retrieve rating data
- client side usage without a service is possible
- ui customization via CSS is possible
Some features that are missing:
- client side usage needs a listener when the rating has changed.
- the progress indicator is not customizable (image url in the java source).
- it’s not as elegant or efficient as e.g. this CSS based star rating.
- no keyboard support like the rate it widget in the gwt components library.
Nevertheless I believe this is pretty usable and maybe I’ll submit the widget to the GWT Widget Library Project if it is welcome. Anyway, feel free to use it but I won’t promise any further support - we’ll see. Here is the sourcecode of the StarRating widget.
Montag, 26. Juni 2006
SQL Script Creator released
I continued the development of my SQL Script Creator and have just put up a setup package on it's project page. It is a handy tool to create a sql script from query meta data based on several templates and can save you quite some time when working with temporary tables or cursors in SQL Server.
Meanwhile I found a similar opensource program which is called iCodeGenerator which uses user editable templates to create custom scripts and code but it bases it's generation on a table rather than a more customizable select query.
In case you are wondering: The splashscreen design is drawn by hand with a graphic tablet - it gave me the chance to try some brush effects. It is no coincidence that the content resembles the SQL Server 2005 splash screen in a more "handmade" style ;-)
Sonntag, 18. Juni 2006
Ubuntu Linux 6.06
I installed kubuntu, the ubuntu flavor with the KDE desktop, on an old AMD K3-400 with 512MB yesterday. The main purpose of that box will be playing music files so I was glad to see amarok does perfom well enough on that old piece of hardware. All in all the installation and the desktop make a mature impression. I wish there were some applications available via "add/remove programs" to easily install. If you want to check out a more detailed review of the distro head on over to lunapark6.com
Back with SQL Script Creator... almost
Being annoyed by creating a cursor script in SQL and having to define tons of variables manually I wondered if there was any tool to aid in this process. I quick google did not yield promising results. So spend the weekend conjuring up an application that eases the script creation by providing specialized generators to create scripts automatically from a given SELECT statement. It works pretty well and will be tested further in the next week until I'll release it here under some opensource license.
Putting this app together thought me some new things about the settings and localization concepts of .NET 2.0. Two articles that got me introduced to the concept are the tutorial Localization in ASP .NET 2.0 on ondotnet.com and the detailed article
Localization Practices for .NET 2.0 on theserverside.net.
Montag, 17. April 2006
EJB3 persistence with hibernate
So far I've been able to create a simple example application with the hibernate entitymanager/annotations engine. It simply creates two objects, stores them in the database an reads them again with a query. The rest of this post shows how this example app is set up.
Freitag, 31. März 2006
Backup.net
Anyway, I have about 1-2GB of data, most of which doesn't change a lot, but it should be stored daily. I'am looking for some kind of network backup solution for storing backups on my workstation or friends' servers on a VPN. While searching, I came across DIBS: Distributed Internet Backup System which uses a peer to peer approach to store recovery data on serveral distributed servers. From the manual it looks promising and quite mature but I'm not sure if I'll find enough reliable servers with a decent internet connection to use it.
Bacula looks really interessting but might be overkill in my situation. I like the fact that it provides clients for different OSes so that you can use it as a single backup solution even for the windows clients in your network. It is mainly built for larger networks with distributed backup and storage servers for a large number of clients. I don't think I'll invest the time to set up the different server components for this one, though.
Possibly I'll end up with a tar, scp or rsync solution that copies backups to my windows workstation or other peers in my VPN. linux-backup.net and this IBM article of automation of backups on linux give some useful example for such a do-it-yourself backup solution.
Update: I found one more popular opensource backup application which is called Amanda which provides a similar feature set like Bacula.
Donnerstag, 30. März 2006
Daemon Tools shell integration
Since I'm currently only using one virtual drive I decided to stick with a very simple windows shell integration. With associating the damon tools executable with the right parameters you have a mount-on-doubleclick solution in minutes. You can set the associations in Windows Explorer under Extras > Folderoptions. The following screenshot shows the dialog - it's a german windows version though:
A better solution would be using a common definition for all the image types and also provide a unmount option like this guy Archades did in his reg file. It would even be possible to add a second virtual drive as another operation in the context menu. As I see it, if you have a decent reg file that creates the associations there is barely any need for additional tools to provide a daemon tools integration.
When calling deamon tools with command line parameters you have make sure that secure mode ist turned off in the daemon tools options or you'll get a confirmation dialog each time you try to mount an image.
Dienstag, 21. März 2006
Diving into java scripting frameworks
Another interesting framework I came across when looking into scripting with java is the Apache Jakarta Bean Scripting Framework (BSF) which provides a framework to create JSP pages in different scripting languages. To achieve this it offers a uniform interface which wraps several scripting languages like javascript, python, tcl and many more.
Sonntag, 19. März 2006
A trip to java
At the moment I'm working on a prototype for another java application and got used to the new java 1.5 features like generics and the new for each loops. The generics are definately the way to go for typesafe collections and I'll try to use them from here on out. I found the wildcard
<? extends> and some other constructions confusing at first but I do understand that there are several restrictions (german link) when using generics. Someone should publish some design patterns for typical cases that require generics.For that project I also experimented with BeanShell which is basically a java scripting interpreter. I'll probably use it for custom formulas which are evaluated dynamically within the java application. Easy to use and powerful.
The next component I'll look into is EJB3 persistence using Hibernate. I have worked with the hibernate tools and reverse enginered some database tables but since I already have the POJO classes and don't want to create all the old hibernate xml mapping files I might as well check out how to create EJB3 persistence by using annotations. More on that soon.
Samstag, 18. Februar 2006
Remastering tracker modules like S3M oder XM
A more flexible solution is using the Open ModPlug Tracker, though. The OpenMPT is full featured tracker in the form of an open source windows application. I reads all kinds of tracker module formats including S3M and XM and has the ability to export a whole song as wav file. The real advantage over winamp is the channels option to render each channel to an individual wav file for further editing or mixing.
And that's what I did with some of my modules. I took the wav files generated from OpenMPT and dropped them in Adobe Audition 2.0 to add some filters and equalizer settings for each channel and finally exported the songs as mp3s. If you don't want to bother running a multitrack audio editor OpenMPT also has some options to enhance the playback (eg. dynamics correction) which I did not try but may be sufficient.
Dienstag, 7. Februar 2006
VmWare Server for free
As for my experiments, I installed a VmWare Server on my debian linux box without any problems. The console installation script let me customize the install paths and vmware modules were compiled against my kernel-headers successfully. As client I installed the VmWare Server Console on Windows XP which looks similar to the workstation version with the ability to connect to a server (user authentication uses PAM against the linux users btw.). I created a new virtual machine with the console but copied the harddisk image from an exisiting virtual machine (using the old workstation virtual machine directly resulted in problems with sound configuration and other stuff). Very useful is the ability to use the cd/dvd drive on the client PC which can be accessed from within the VM running on the server.
I really like the ability to disconnect from the virtual machine which then keeps running on the server and reconnect later, but then again, thats what you expect of a server. As for the performance it's definately slower than vmware on a standalone workstation but that is understandable considering the network connection. Using the windows remote access to connect to the server seems to be only slightly faster so I suppose it's the overall speed of the virtual machine that's limiting. Maybe the performance can be approved by tweaking some server settings, I'll look into that.
To conclude, the free VmWare Server is a useful tool to have and it's apparent that it is a mature product but it could be improved performance wise.
Mittwoch, 1. Februar 2006
New Wordpress and Colorful Firefox Tabs
Yesterday I found the simple but very useful firefox extension Colorful Tabs in the list of
10 Useful Firefox Extensions That Don't Get Glamorised. By colorizing all the tabs with different colors it makes it easier to distinguish between tabs. The only thing that was missing was an easily visible highlightening for the active tab. This is why I modified the extension and added a shadow effect for all inactive tabs so that the active tab is sticking out a bit more. Here is how it looks:
I contacted the author of the Colorful Tabs extension, sent him the changes and I hope he will integrate them. For now you can try the shadow effect by using my experimental modfied version of clrtabs.jar. Just replace the file chrome/clrtabs.jar in the Colorful Tabs extension.
Dienstag, 24. Januar 2006
Windows freeware for commercial use
Browser / Web
- Mozilla Firefox
- Opera
- HTTrack Website Copier downloads websites recursively for offline browsing
Mail-Client
FTP-Client
Text and XML-Editors
Diagnostics / System Utils
- Sysinternals Freeware Utilities (espacially usefull are Process Explorer, RegMon, FileMon)
- CCleaner - Crap Cleaner removes all kinds of temporary files, cache files and privacy data from windows and several other applications.
- Handy Recovery 1.0 recovers deleted files from NTFS partitions
- Microsoft PowerToys for Windows XP
- Ditto, Clipboard Extension extends your clipboard with a history functionality
Archiver
Backup
Media Player
- Media Player Classic small but very powerful mediaplayer
- ffdshowVideo and Audio Direct Show filters for almost any format
- VideoLAN Open Source video streaming solution
File-Manager
- FreeCommander Windows filemanager similar to Total Commander
- XPlorer basically a windows explorer with tabs
Audio Tools
CD/DVD Recording
Terminal / SSH / Remote-Control
Messaging
Web-Development
- NVU - The Complete Web Authoring System full featured wysiwyg html editor
Linux Tools / XWindows
Version Control
- Subversion version control system, sucessor to CVS
- TortoiseSVN windows client for subversion as explorer integration
Imaging / Graphics
- GIMP for Windows
- Paint.NET
- MyViewPad (only slightly better than Windows' internal image viewer, the really good image viewers FastStone, XnView and IrfanView are for personal use only!)
Visualization / UML
- ArgoUML Java Tool to create UML diagrams
- StarUML Windows UML ß MDD Tool
- FreeMind a free mind mapping software like Mindjet's Mindmanager
Office
- OpenOffice.org Home OpenSource Office Suite
- AbiWord OpenSource Word Processor
- PDFCreator OpenSource PDF Printer to create PDF files from any application
Development Environments
- Visual Studio Express Express Editions of MS Visual C++, C#, VB and SQL Server
- PHP Designer 2006 PHP Development Environment (eula says personal use, but several forum posts say commercial use granted)
*Missing*
- good image viewer with thumbnail view
- a complete burning appliction (like Nero or K3B)
Montag, 23. Januar 2006
Coming up...
I still have no approval to release the third party code within PhpWebChecksum as part of the php file. I'll probably have to rewrite the two or three php functions myself before I release it.
Besides that, I subversioned my MyDocuments folder to have an archive and a backup of my documents. Expect an article on how to set up subversion with svn+ssh authentication because I realized that most pages that address this issue are incomplete or not very easy to understand.
The other thing I'm working on is a list of windows freeware applications that can be used commercially. Most freeware lists don't pay attention to the license restriction "for personal use only" - but you might. If you want to install software at work without violating the licenses you can find good free tools in the list I'm compiling.
Sonntag, 15. Januar 2006
Creating reflection effects with Photoshop actions
A very popuplar and really cool looking effect is the illusion of reflective surfaces. You can see this reflection effect on many popular websites, in apple's itunes or right here in this picture of a Ferrari 355. Although there is a way to create such an image reflection just with javascript and the canvas tag this effect will usually be done by image editing as long as Internet Explorer doesn't support the magical canvas tag. Therefore I will show you in the following tutorial a way to automate the creation of the reflection using actions in Adobe Photoshop.
Samstag, 14. Januar 2006
New look
I finally finished my wordpress customizing and updated the site with a new theme. What you see here is a K2 r160 theme with customized CSS and the additional images. The only thing I had to change in the PHP scripts was the display of the categories in the sidebar which was limited to certain pages. So the upgrade to the next K2 release will hopefully be seamless. The archives page doesn't work at the moment but I'll have a look at that in the upcoming week.
Here is a screenshot of the new design for documentation purposes:
Mittwoch, 11. Januar 2006
PhpWebChecksum to be released soon
The first version of my php script to monitor changes in your website will be released soon. I already set up a sourceforge account for PhpWebChecksum which will be mainly used for bugtracking, and maybe source code management (CVS) and file storage for releases for now. The projects homepage will be hosted on techbits.de under /projects/phpwebchecksum which is already available as well. At this point I have to make sure I can use Keith Devens' PHP XML Library which I included in my php script and figure out how I'll solve the pass-by-reference issue when switching between PHP4 und PHP5.
Here is another teaser screenshot of the main form with header, footer and some design improvements:
Donnerstag, 5. Januar 2006
Checking websites for intrusions
When I recently installed this blog a thought about how you could monitor a website for intrusions. Almost all sites use some kind of content management system, blog or other portal software. Unfortunately we all know that software does have flaws an that there are script kiddies out there who do not hesitate to exploit them as soon as they are found. Since most of the small sites and blogs are hosted on simple PHP/MySQL webspace it is not as easy to monitor the integrity of your site when the web application has hundreds of files buried deep in a directory hierarchy and you only have FTP access to browse through it.
I googled for tools that create checksums for websites but I didn't find much, so I started on creating a PHP application for that that purpose. My prototype has the following functionality:
- generating an xml list with checksums (SHA1) and file dates for a complete directory tree
- the xml list can be downloaded to be stored locally
- the xml checksum list can later be uploaded to be compared against the current state of the website
- a comparison is computed and display showing all modified, new and missing files with the information what (date, size, checksum) has been modified.
Here are two screenshots that show the current development version:
I will continue working on this tool and make it available as open source when it's fairly stable.
Dienstag, 3. Januar 2006
Extending the blog
I have just installed the tagging plugin Ultimate Tag Warrior for Wordpress to easily add some technorati tags to this blog. It provides a tag editor within WordPress' Write Post page to associate tags with the post and it even suggests tags for the post you have written. The tags for each post can be displayed as links to different services like technorati or flickr (and more) and build up to a tag cloud that can be used to dig through your post archive. A Very useful plugin.
I've been playing around with the recent K2 Beta Two in the last few days - it supports Ultimate Tag Warrior out of the box by the way. The Beta Two looks really nice, the new icons and the ajaxified comments dialog are particularly noteworthy. I still have some image editing and css hacking to do until I'll update the theme here, maybe with the next (beta?, rc?) release of K2.