Status report on maevies
Quick update on maevies status:
- Movie posters are fetched from Internet
- Google movies page is shown when 'now on theaters' is clicked
- It is possible to search for stingers and extras after / during the credits on WATC (What's after the credits)
- WATC wiki is shown when a WATC result is clicked
Pictures from this update have been uploaded to maevies' picasa gallery. I'm also working on a debian package: I'll keep you updated
And now, introducing maevies
Back in October, a friend and I started a project targeting Maemo. We had been thinking about programming for maemo for a lot of time (but for Diablo devices), and Fremantle's new UI, so appealing, almost got us buying a N900 (we ended up buying a HTC Tattoo, but that's another story).
At that moment, I was going to the cinema maybe twice a month, and as some of my friends have the (sometimes annoying) habit of waiting after the credits to see if the movie has extra scenes or something, I thought it would be nice if I had an app in my phone which could tell me if it was worth waiting. A nice brainstorm started, and we added showtimes and other movie info to the app, so Maevies -from movies + maemo- was born. After that, it was "just" a matter of researching which web services could provide that info.
We got the backend "working" rather soon. We started using librest and synchronous calls, so the user would be blocked until we got a response from the web services. We wanted to have a basic backend functionality, and quickly focus on the UI but... we stopped there. We met a couple of times to get started with the UI, but didn't get too far.
About a month ago I announced that we were starting the development module in the master and that, after having enjoyed an introduction to python, I was quite convinced to port Maevies to Python. Then, I commented in the same post that I wouldn't port it, but mimic the architecture we're using for the master app: C with GObject for the model, and Python at the view, connected using DBus. Soon I had all the old maevies backend adapted to use GObject, all the librest references removed and replaced with libsoup's, and a basic prototype with PyMaemo, with a fake behaviour like the one I would expect from the actual app.
Today, I can announce a "functional" pre-alpha version of Maevies. I've created a page for it at this blog, and linked it from the maemo garage's one, have taken some screenshots, and pushed the last commits (yeah, I also migrated from subversion to git, now that I'm feeling really comfortable with it).
So what's going on with maevies?
- About the backend: A movie can be searched in themoviedb.org -getting its basic info- and whatsafterthecredits.com -getting the information about extra scenes. There is also a module which parses Google Movies html, not using GObject yet, but some changes in their API seem to have broken its support.
- About the user interface: The user can query for a movie using themoviedb service, retrieve a list of results, and display the basic info for the selected movie. (The DBus service must be brought up manually, as I didn't create the .service file to allow DBus doing it). Besides the screenshots below which should give the general idea, there's this screencast. It has, however, a lot of flickering: it's been recorded with the app running under Xephyr, using Istanbul. If you know a better way to record a screencast, please drop me a comment
And what are the next steps?
- Not all the TMDb retrieved data is exported via DBus, nor displayed later on the UI, so that would be a point.
- It would be nice to display the movie images, also.
- Bringing the whatsafterthecredits info to the UI would finally add the initially desired functionallity
The importance of a good IDE: which one to choose (and why)?
A few months ago, when I was trying to start developing for maemo, I discovered a project called ESbox. ESbox is "an Eclipse Ganymede-based product that helps programmers to develop applications for Maemo platform using Scratchbox Apophis". It launches scratchbox transparently, includes wizards for different types of apps, lets you debug step by step and on device, and also uses C/C++ or Python plugins, so you can refactor code, jump to variable declarations, explore types, autocomplete...
I don't know exactly when it was, but I once came to maemo IRC channel to ask a specific (maybe too specific) question about ESbox. I was surprised that nobody was using it: people there were using nano, vi, Emacs... I asked them about all the features a "full IDE" offers: what about code refactoring? what about autocompletion? debugging? While some said that you can get emacs to auto-complete from a given dictionary, the other questions remained unanswered. In fact, I almost felt like we weren't talking the same language.
Our discussion wasn't constructive at all: I don't know if it was the language barrier, if it was me who said something inappropriate in the beginning, or if I met people too "Taliban". The thing is that I had to listen things like "real programmers know the name of the functions / methods they need: autocompletion is for dumbs". And no, it wasn't a joke like "real programmers develop their own device drivers". So I gave up and left the channel: I assumed that programmers would choose their IDEs according to the kind of development they were doing, so "hobbyists" would use nano, would copy & paste and wouldn't care too much about extras, and "professionals" would use others, or at least would know and use the extras I wanted. And time went by.
As I was telling you in the last post, this Friday we've got our first session in the Desktop & Mobile development module of the master. After its presentation, we had a brainstorming to choose which app we will be developing during the workshops, and then... we started talking about IDEs. More specifically, Emacs.
That gave me the opportunity to confirm that there really was a difference between professional developers and non-professional, and that my worries were really shared by others. It was a really interesting chat, where we were explained the environment, from the basics (navigation a buffer, open, close, kill and yank...) to more complex things: debugger integration, syntax highlighting modules, autocompletion, macros...
After the session, I now can understand other people not using Eclipse or Netbeans, while still being productive. I'm not going to use Emacs, not yet, as it looked like some of the features that "just work" in Eclipse require some fiddling in Emacs; but at least I know that someone using Emacs and mastering it will be as efficient as an Eclipse user -or even more.
Still, when I think about the things I like to have working in Eclipse, the following comes:
- Version control: I'd like to be able to check history, undo changes across revisions, commit changes, check "who did what" (blame)
- Debugging: Set breakpoints, set conditional breakpoints, step by step debugging, variable inspection
- Syntax highlighting, code folding, autocompletion (preferable if it can include code I've done, not only know APIs), code refactoring (variable names, methods, etc), comment & uncomment.
- Compilation management: Make integration (or other options like ant or maven for Java). Build automatically, "live" syntax error detection.
- Bug tracking system integration
- GUI editor
I know that I can do all of the above using Eclipse, and since this Friday I know that some of them are also possible with Emacs, so now I'd like to have some feedback:
What do you expect in an IDE? Is your list similar to mine? What is your IDE of choice? Which special options of your IDE you use the most? Which options are you most proud of?



