Snowball: A Slightly Different Direction

At first, I had imagined Snowball, now located on Codeplex, to be a framework which would define how your game objects look. I.E. I had a class called GameEntity which I imagined would handle a lot of boiler plate code for you such as setting up Initialize(), Update(), Draw(), etc.

I’ve decided to move away from that and let Snowball purely focus on the subsystems of a game, such as Graphics, Sound, Input, etc. Extending from the Game class completely sets up these aspects of your game for you. I think I will include helper components, such as a collision detection system, but I will not force you to use them.

Zune Playlist / SMIL Copier

I needed a tool that would copy the contents of a Zune playlist to a given directory. I did a bit of googling and I couldn’t find anything, so like any good nerd I wrote a tool that did.

SMILCopier

The format of Zune playlists is a simple XML format known as SMIL. I think Windows Media Player also stores playlists in this format but I haven’t confirmed that yet.

I wrote the tool very quickly and have only tested it on my machine with my test data, but I’ll provide the source if you’d like to modify for yourself. The source is C#.

Download Executable
Download Source

Switching from Git to Mercurial

I’ve decided to make the switch from using git to Mercurial. Git’s syntax to me is much more complicated than it needs to be and Mercurial seems to be more my style. I find it’s much easier to find out how to do things with Mercurial and to be honest, I use about 10% of the functionality in either git or Mercurial.

This also means I’ll be transitioning Snowball to Codeplex I think. I’ll be moving it away from GitHub for sure just not 100% sure where.

Am I finally free?

For the last 3 and half years, I’ve done php programming professionally. I’ve programmed many things from web apps to websites. I’ve worked with a few CMS systems. I was beginning to think I would be stuck in the world of php for a long time.

Last year, I took a job at a different company thinking I was going to start something different. My first day there they informed me I would begin working on a new php project for the company. As of today, they’ve informed me I’ll be moved to a different project, using a different programming language.

Most of my time in php land was spent working with Zend Framework. I can’t say my experiences were all good. Some parts of Zend Framework are great, others are not. Work on Zend Framework v2 began before I took my current job and still isn’t finished. The framework is supposed to be a set of “components” which can be used separate from each other. This is both good and bad. There are some parts where you feel the components are too tightly coupled and there are other parts where you feel the components don’t work well enough together. There is also no built in mechanism for creating a distribution containing the components you need and their dependencies. Without that, what’s the point of programming the framework as a set of loosely coupled components.

I had to work for a little while with the CMS “Contao”, then called “Typolight”. That thing was a monstrosity. Most of the classes were just singletons. They preach that they are an object oriented CMS, but if almost every class in the system is a singleton and everything is so tightly coupled, then what’s the point of having done things object oriented in the first place?

As a whole, I don’t feel like php is a bad language. I think there are a lot of bad code examples out there which makes it easy for new programmers to copy and paste and have that, “Look what I did ma!” feeling. Sure there are some parts of php which make you say WTF, but as long as you learn those points and avoid them the language is fine. I’m glad to be moving on but I can’t say the language is totally terrible.

I don’t know exactly what I’ll be doing next, though I do know it will be a statically compiled language and I will be doing something web related.

Using git-gui with Cygwin on Windows 7

I’ve started using git via cygwin and was running into trouble trying to pin it to my taskbar in Windows 7.

First I created a .bat file in the c:\cygwin folder which launches the app standalone:

@echo off

C:
chdir C:\cygwin\bin

start run.exe git gui

You can change paths accordingly. Now run the batch file and pin the program to the taskbar. You’ll notice after you close the app, the icon changes and it won’t launch again.

Right click on the shortcut while holding shift and choose properties. Change the target to the batch file we wrote. You can change the icon to the git-gui icon by pointing the shortcut icon to “C:\cygwin\usr\share\git-gui\lib\git-gui.ico”.

Now if you click on the icon, the git-gui app should start up. Kill your explorer.exe in task manager and restart. If the icon is still the genie lamp, you’ll need to clear your icon cache to get the icon to look right. Credit for that from here. Kill your explorer.exe again and while explorer is gone, start cmd.exe. From there enter the following commands:

CD /d %userprofile%\AppData\Local

DEL IconCache.db /a

EXIT

After that your icon should be there as you want.