Category Archives: Software

Is Your IDE Hot or Not?

As I read Coding Horror: Is Your IDE Hot or Not?
I noticed the call for someone to create a hotornot site for IDE screenshots.
It didn’t seem like a bad idea, and I immediately thought of Ning, a social software platform that debuted a while ago.
They make it dead easy to create an actual application relevant to whatever social software use you are into.

I created this IDE Hot or Not ratings site in less than 10 minutes.
It’s not tweaked, it could use more care, but damn – 10 minutes and it is working. It’s got a few screenshots up there and a few ratings. I’d encourage you to submit yours and rate others for a lark.

And take some time to play with Ning. Next time you hear “Someone should whip up a website that lets us do x” you can finish it before they stop telling you how cool it would be. BTW – all the source code for your app is editable on Ning, but the standard stuff is truly code-free. It just works.

Configuration screens

I’m thinking about configuration screens for stuff at work.
Some setttings affect things that happen on our server.
Other settings affect things that happen on the clientside.
There is a conflict between building things ahead of time and crafting them to be very userfriendly, and building things dynamically on the fly and letting them be very flexible.

If a setting is going to only affect things on our server we want to avoid having to do a new client release just to let the client change them. After all, the client program doesn’t need new code. These kinds of settings it would be good to build user controls for dynamically. That way the client doesn’t need to download anything new when we expose new settings.

If a setting is going to affect only the client side, then we have to deliver new components to the client to consume those settings. In that case, we want to deliver the new functionality along with the settings and it makes sense to construct the controls beforehand so they are as userfriendly as possible.

One way might be to deliver a document on loading up configuration screens where you list the major pages of configuration. Each listing would describe either a usercontrol to load or a list of options to construct a control around. For dynamically created settings controls you would create checkboxes for booleans, textboxes for mapping strings, combo boxes for enums, etc, then slap them all in a flow layout or something.

Even if the coolness of dynamically created controls for server side settings is doable, is it worth it? If we are creating a way to deliver updates to users in the background, shouldn’t we just use that?

Why don’t ratings travel?

I’m using musikcube as the player for my music and it has 5 star ratings. So does windows media player on my pocketpc. So does iTunes. But they never translate between them!

How could they?

One way would be to store it in the id3 comments tag. Both id31 and id3v2 formats support comments. This is a great place to store ratings as text. ***** is 5 stars and anyone can read it. What would make sense is to store ratings in the last 5 characters of the comment field. Then, when changing or loading ratings, you can push or pull from that location.

After doing a little more research, I found that id3v2 supports freeform key=value tagging. Now it seems that all you need is for players to start reading and writing a custom ratings tag.

Why is this important? Because time you spend rating songs in itunes or musikcube or anything else is valuable. That’s valuable info about your song that only you know. If it is lost everytime you switch from an ipod to an iriver, it is less valuable.

If I download a creative commons track or rip a cd at work and rate it in musikcube, I should be able to take that track to my home and have my ratings show up there. The information I put into it loses value if it is bound up in one location or one player.

Update:  It turns out that Foobar2000 in some configurations does store ratings in id3 tags.