Sunday, January 30, 2011

Documentation overflow


First I will let you know that a small upgrade has been released to address Issue #100. Can you believe it? 100 bugreports and feature requests! Keep 'em coming! :D

Next up: the massive flood of documentation that has just landed in the wiki, and the never ending torrent of it that the future will hold.

That's right. I have just uploaded a lot of documentation to the project wiki. Including a swedish translation. If you want to help you can always translate the documentation into another language. It's pretty easy. Just download the wiki folder in SVN. There you will find all wiki files and a folder for each language. Create a new folder for your language, copy all .wiki-files into it and start editing them in your favorite text editor. Make sure you change the encoding to UTF-8.

So, what made this possible? It is a small program I created called WikiDocGenerator that resides inside the Stoffi solution. It takes the XML file that Visual Studio generates from the comments in the code and turns them into Google Wiki files.

This will let me keep the documentation near the code but also make it readable from within a browser in a convenient way.

Not all code is documented yet, though. So as the comments keeping coming the wiki will expand.


Wednesday, January 26, 2011

Beta update: bookmarks, visualizers and a new website


Finally! Download the new Stoffi Beta here.

This was the most tedious release I've done so far. It took several days of testing to get it ready for you. But now it's out there. This beta release comes packed with new features. It is also a very important milestone in our journey.

A note to you who are upgrading Stoffi manually: you will get two upgrades, the first one is a bug fix in the upgrade manager which need to be installed before you can download the new beta upgrade.

Read on for all the new features in this release.

To start with Stoffi can now play Milkdrop 2.2.1 visualizers inside the new "Now Playing" view. This will allow you to really enjoy your music.

However, this comes with a few problems. The first is a bug that will be fixed as soon as possible. I noticed it 2 seconds before I was about to release the update. After working for 4 days with this release I decided to release it anyway and fix the bug later on. The bugs is how the Visualizer is rendered after leaving fullscreen. If you go to fullscreen and then leave it the visualizer will become a new window instead of going back into Stoffi again.

The second problem is startup time. Milkdrop is pretty heavy on startup time and this means that Stoffi will now take 1-3 seconds longer to start depending on your system. Maybe there's some tweaks that I can do to counter that later on.

You can now put bookmarks in your tracks. Just press Alt+B and a red marker will appear on the timeline. Jump between the bookmarks with Alt+Left and Alt+Right. For all shortcuts go to Preferences and click on Keyboard shortcuts. You can delete a bookmark by right-clicking on it.

This is a feature that will continue to grow over time so expect it to enhance further after the stable release.

New website
In order to prepare for the upcoming stable release I have updated our website. It is more light and has bigger images, hopefully something you all might enjoy. If you want to send suggestions or find some problems with the website just submit an issue like you do for the application itself.

The new website comes with a whole new domain. It is laid out in the following manner:
This is the main website where you can learn more about Stoffi and download it. You can also contact me here via a web form.
This is the project website that resides on Google's servers. This is where you submit issues, check out the code and read our wiki.
That the new address to this blog! :D
This is not really for you humans, it's the address that Stoffi uses when it checks for upgrades. This allows me to move the upgrade mechanism away from the rest of the websites. Something that could turn out to be useful if my website starts to crash or something. :)

Import and export of playlists
If you have a lot of old playlists lying around on your system you can now import them into Stoffi. Just click on Add and select Playlist. If you want to save your Stoffi playlists and use them in another program you can right-click on a playlist and select Save playlist.

...and much more
There's a ton of bugs fixed in this release as well as a minor face lift for the whole application. Some things are a new look for the tracklist which makes the current sort column black, the current track is marked green and the style has been brought closer to Windows Explorer. There's also the ability to reorder tracks by dragging them around. Check out this list for all the issues that have been fixed.

One more step
This marks the last update to the beta with enhanced or new features. The following releases will only be bugfixes until we reach the stable release. So now it is up to you guys: go out and find as many bugs as you can. The more the better. We need to find as many as possible so the stable release will really live up to its name.

We will hunt and fix bugs now until we just can't find any more. That's why there's no date on when Stoffi will be stable. It will be stable when it is, as simple as that.

Enjoy the new beta and happy hunting.


Saturday, January 15, 2011

A fresh look


As you may see this blog has been updated a little. But it's not just to make it look better, there's more to it than that...

Updating the look of this blog is one more step toward the release of Stoffi Stable. I have been doing a few updates on the website and even bought a new domain to use for Stoffi once it goes stable. This new look on the blog will match the look and colors on the new website as much as possible to make it look coherent.

I have also added a box to show popular posts, added two pages where you can find information about me and this project as well as some other useful features such as a search (which will search both this blog and the other Stoffi websites).

Hope you enjoy it!



I have just finished implementing a very rudimentary bookmark feature for Stoffi. I have a few details to share as well as the plans on how to further move this feature forward in subsequent releases.

First of all the feature as it is now is very limited. I have chosen to limit this feature for the stable release in order to get the code out faster and work in a more iterative process. I have two mantras that I try to follow as much as possible when I code:

The first is the one from the open source world
"Release early, release often"

The second is a quote from Linus Torvalds:
"Make it work, then make it good, then make it fast"

Trying to create a perfect project on the first try will almost always end in failure. That's why I have started with just getting a basic bookmark feature out there.

Ok, so now moving on to how to further improve this feature. First of all I want to add the ability to drag bookmarks along the timeline and I want to add labels to them. I am also planning on adding a bookmark manager later on where one can add, remove and change bookmarks. Think of how bookmarks are handled in your favorite web browser.

I will try to release an update to Beta in two weeks and you can test out the feature. All bugs that you may (read: will) find will be fixed before going Stable.


Thursday, January 13, 2011

The stable draws closer

Hi, all!

I will give you a few bits on information on how the latest work on Stoffi is going. I haven't released an update to the Beta channel for some time now but there's still a lot of work going on behind the curtains. If you want to know more on what is done you can check out the list of issues that I am working on or check out all the updates to the code that I make. Either way, this will get you a pretty good picture on what is happening and what the future holds.

Anyway, I will summarize some of work I've done in the last week.

Firstly, I have separated each TrackList so they are now all atomic in the sense that they contain their own configurations (such as columns, sorting, selection and search). This will give me easier code to work with and it have also given you the ability to choose how search is applied (different for each list, same for all playlists or same for all lists).

Secondly, I've added support for M3U and PLS files. You can both import and export your playlists using those two formats. I plan on adding even more formats later on. But these are the two that are most used and will be included in the first Stable release.

Furthermore a lot of visual updates has made it into Stoffi. The sorted column is emphasized with a black text color while the other are shown in gray (using the same colors as Windows Explorer). The hover and selection styles have also been updated as well as the column headers to look more like Windows Explorer. I have also added a special style to the currently active track so that you can easily spot which track that is currently being played. There's also a new shortcut for you to jump to that track.

Against my will I have implemented the "Repeat One" feature where one track will be played over and over and over and over again... :P Hope you like it. But please, don't use that feature near me. :)

Last, but certainly not least, I have added a MilkDrop 2.2.1 visualizer. You can access it from the new item called "Now Playing" in the Navigation Pane, right above "Library".

Adding to this I have fixed a number of bugs and tweaked a few small things. I have a few more issues to deal with before I will release the next update to Beta. When that is released I will give you a chance to hunt down as many bugs and problems as you can while I will clean up some code. When we all feel that there are no serious bugs left and Stoffi is really stable I will release the first release on the Stable channel and we can all celebrate that we finally reached our milestone.


Wednesday, January 5, 2011

Some new updates

So, the holidays are over and I have started coding on Stoffi again.

So far I have fixed a few bugs that has been lying around. I have also refactored all the TrackLists so now each playlist (as well as library, queue and history) have their own TrackList with accompanied data (such as search, column configuration, etc). This has brought us the feature of being able to have a separate search for each playlist.

Along with this I have also cleaned up some code regarding to the Media Manager as well as separating some other logical elements of the UI to make the code easier to work with.

There's still a lot of cleanup to do in the code before I am fully satisfied but progress is being made.

I have also added the ability to import and export playlists. So far both pls and m3u files are supported, but I plan on adding more in later milestones.

I have an exam on Jan 10 but after that one I don't have anything until midterm so hopefully I will be able to get some work done on Stoffi. I will hopefully release all these and some more updates to the beta channel before that. :)