Splitting mp3/cue files into multiple mp3 files

Usually you encode single MP3 files for each track on a CD. But there are cases when it’s sensible to encode the whole CD as one MP3 file. This is usually done, when you have a continuos live album where you want to avoid gaps between the tracks und preserve the original timecodes of the CD. In these cases you create a single MP3 file and a CUE file which contains the timecodes and track names for the single tracks in the MP3.

When you later like to split thes MP3/CUE files into individial MP3 files you need a specialized tool. Lately I used Medieval CUE Splitter to achieve this. It is a small freeware application which splits the MP3 and even fill the ID3-Tags from the information in the CUE files.

“Continue later” for filling out Google Docs Forms

Google Docs/Spreadsheets forms can be used easily as a simple survey tool. You just have to send a link to the participants who have to fill out and submit the form. The only problem: The forms have to be filled out in one go, you can not come back later and continue editing the form. Of cause this is particularly bad when you a have a really long questionnaire.

On way to provide the “continue later” functionality is to use a tool that saves your web browser’s form state. Lazarus: Form Recovery is one of those tools for Firefox that constantly saves the state of your web forms and allows you to load previous content when you return to a website. This works very well with Google Docs Forms. You can interrupt filling out the form at any time, return later and restore the information you previously entered with a few clicks.

A trip to java

Once again a long time has passed where I couldn’t find the time or motivation to write a post. I was mainly occupied with the specification of a java application which gave me the opportunity to get to know Sparx System’s Enterprise Architect. I only used the common uml diagram types and the code generation features for this project and they work pretty well. I’d love to make use of the more advanced features though and look into the whole MDA approach a bit more. There is a fundamental difference in just drawing some class diagrams and really developing model driven from the ground up. Projects like AndroMDA to generate complete applications look promising and certainly could reduce the expenses for software development but I doubt I’ll find time to check it out properly any time soon. As for the modelling language I don’t think everything should be done with UML though – the approach to model every aspect in UML and using stereotypes to define “what it means” makes the modeling too confusing and complex imho. Some interesting views on MDA and Software Factories can be found in the podcast MDA vs. Software Factories and some older episodes.

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.

Coming up…

Another evening thats much too short… anyway I’d like to share whats coming up in the next days:

  • 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.