You are accessing the archives. Commenting has been disabled, and archive posts are likely to be horribly out of date and, in some cases, rendered oddly because the styles from archive posts are no longer being maintained.
December 12, 2008

Lessons Learned In Recent Entertainer Development

I've been spending a lot of my evenings recently hacking on Entertainer. I'm sad to think that at some point, I was only considering it a pet project. It has many things wrong with it, code and otherwise. However, I firmly believe that it also has a lot of potential. During this recent effort to work towards 0.3 of Entertainer, I've been making mental notes of things I should never let an open source project I hack on do. I thought it might be worthwhile to share my findings. (Isn't that why we have blogs in the first place?)

Data models can't suck

Yea, this is something I've known conceptually for a while. I guess I even knew the effects of working with a broken model from a previous client of mine, but Entertainer is a perfect example of what happens when you don't keep your data model in check. We're basically at a stand-still with new features that require our sqlite database until we fix our data model and how that data is accessed. As we pour through the code, we find halfway built features that we really shouldn't have let land in the state they were in (in all fairness, this was probably in the days of svn).

Keep scaling in mind

Wanna know something really funny? Entertainer can only work at a resolution of 1366x768. Weird huh? It was a good start, but a short sighted decision. Even outside the domain of media center applications, if you don't code with the idea of scaling in mind, things become harder when you have to scale. Ask Matt Layman, who is currently refactoring large parts of the frontend to start supporting a window resizing.

Do regular releases

Entertainer is nearing its third release. The first two sucked terribly, for various reasons. I think the third time will be the charm in releasing the software properly. If you never practice releasing software, you never get good at it. The Entertainer Developers have had long discussions about how to make releases better. We learned the hard way for 0.2 that we need to keep Linux distro release schedules in mind when releasing software (because of dependencies). We're figuring out hov to deploy software with its licenses, and properly compiled translations (go Launchpad!). This is all information we never would have figured out the first time we released code. It just comes from experience.

Entertainer 0.3 is due out at the end of the month. It'll still be software riddled with warts, no doubt. It will be our best release yet though, and we can only get better from there. We have great developers, a great team, and a lot of momentum going now.

Comments on "Lessons Learned In Recent Entertainer Development"

December 12, 2008 @ 02:12
Ian said...
Without sounding like a know-it-all, aren't the first 2 pretty short-sighted. I know that's the point of your post, but it seems that with a media center type application, screen resolution / interface issues would have been identified up front.

Anyway, I don't know how to write this post without sounding offensive, but believe me, this is not my intention. I am grateful for the advice.

Second thing, while you are looking at resolution independence, bear in mind the smaller devices such as the Nokia N810 or the 7inch Netbooks. I hope that you can provide a rich experience on these form factor devices too. If not, at least allow them to be used as remote controls!

Good luck with entertainer!

Finally, would like to hear your thoughts on why you are writing a new application instead of helping another project like Elisa or XBMC. What were your thoughts around that. Perhaps in a future blog post?
December 12, 2008 @ 09:12
Tormod said...
Media centre, python, sqlite, OpenGL: Sounds pretty much like Elisa? I also wonder what the difference is, and what's your motivation. Variety is good, but the community is currently left with two half-baked products. Although Elisa is getting pretty much usable these days. You sure have a slick web site though.