Daperls story

From Internet Tablet Talk

Contents

Daperl's Story

A compilation of posts by daperl that started with this post.

Original Post

Originally Posted by eiffel
Thanks for your response, Ryan. I could discuss it in detail but it wouldn't serve much purpose.
Every developer and user needs to find the platform that meets their needs, and I've not found mine here
despite being a happy N800 owner.
I admire the talent and dedication here, and will miss this forum. All the best, and good luck!

Wow, I didn't think I would have to, but because of this comment I think it's just about time I told my story. It's not going to happen in this post 'cause it's long and I generally hate writing. But I will state it's conclusion in order to at least inform Roger that there are good reasons why he should stay.

Roger, this platform is so far from perfect it's scary, but it's kicking a*s relative to anything else for this kind of platform. That is a plain and simple fact. You won't find what you're looking for anywhere else, but the best part is: you won't have to. Plenty is happening right here! Or if it's happening somewhere else, it's either made its way here or it's making its way here.

Look, it seems that Nokia is making decisions that couldn't be more wrong for me, and I've felt this way for some time. But I'm not letting it affect me because the FOSS genie is out of the bottle. Nokia and others have provided me with enough infrastructure that I am getting some great work done. Yes, there are areas that either don't exist, don't work or work poor enough to be unusable. I've noted these areas and I've moved on. My n800 is one of those really fat Swiss Army Knifes, and yes, there are a few blades I can't open at the moment.

Like I said, I have a story to tell, and it's a really good story. I'm saddened by the recent dejection of qole, I'm still in shock that brontide disappeared, and I was compelled to write this because eiffel seems to be disheartened enough to fade away. But I beg all of the developers and integrators that are reading this to just take a deep breath and relax. Even though all is not perfect, all is good. Trust no one. Because things are good enough that you don't have to. More later.

Nokia Has A Present For Me?

Until I started writing this I couldn't remember why I even bought an n800. Back in November '07 I was reading in some A/V forum how people were using a small wireless device to control a computer jukebox server. This was something I could certainly use, but I didn't have a clue what they were talking about. I was optimistic because of the information's source, but like most skeptics my motto is "If something is too good to be true. It is." Yet sure enough, here it was, a somewhat-open GNU/Linux based hand-held for about $225. A no-brainer if there ever was one.

From the start, this "internet tablet" was delivering nicely, and it quickly reshaped some of my routine. But where was my music control program? I wasn't concerned about finding a client solution for the jukebox server, but I needed something better than my A/V receiver's inadequate web interface. It was obvious that this next piece was gonna be on me...

Brave New Hello World

So, I had just figured out that I needed to write some code, but I knew very little about the tablet environment from a developer's perspective. No matter. Nokia supplied a tutorial, an SDK and a "hello world" (HW) package. There was a chance that this could be quick and painless.

At first glance, the HW code seemed close to unabridged for interacting with the hildon window manager. For a proof-of-concept, I decided to create a statusbar applet to control my receivers volume, and I wanted it to have the same look-and-feel of Nokia's sound applet.

I twitched my nose twice and *poof*, there was my volume control applet! And It was working like a charm. It didn't look exactly like Nokia's sound applet... Hey wait. Why didn't it look like Nokia's sound applet? It looked more like a dialog box... It was a dialog box! But the statusbar applets all looked like popup menus. Something wasn't right here; I was gonna need some help...

The Storm Before The Calm

I found myself in an all too familiar place: Ready to implement my functionality, but instead taking a detour because of some non-standard system integration. Conventional wisdom dictates not to stray at times like these, but I knew my enthusiasm was going to suffer if I didn't take care of this now.

After the Maemo tutorial disappointment, it was time to see what the community had been up to. Sure enough, the Advanced Backlight (AB) project was in a mature state, and at first glance it seemed that they had already solved my problem. Whew!...Saved!...Not! It so happened that AB was frustratingly stuck exactly where I was; they had been for months. And where was Nokia in all this? Not to be found.

One bright side was that I didn't know GTK, and based upon its growth rate and installed base, now seemed like a good time to learn it. The dark side of course was that I was getting further and further away from where I really wanted to be. But maybe I would enjoy the ride? Or maybe the solution would come to me from a Google search? I didn't and it wouldn't. About 10 long, dead-end days passed. I was burnt and ready to throw in the towel. But just as I was packing up my things, Murphy decided to take a vacation...

Blue Highways

I implied earlier that my journey for UI nirvana was all hell. That was somewhat misleading. It's true that I ended up empty handed, but I did see some fascinating stuff along the way. And I just want to make some brief remarks before I get back to the main thread, 'cause as frustrated as it got, I did learn some things.

The set of libraries and API's that make Hildon possible are very decoupled. For instance, Hildon depends on GTK which depends on GDK where both depend on GObject where all depend on glib. But there are no dependencies in the opposite direction, i.e. GObject is only dependent on glib, but glib depends on none of the above. The result is an excellent C-based object-oriented environment. And because of the way it implements and instantiates its class, object and parent hierarchies, it's somewhat trivial to create bindings for popular scripting languages. The result: A powerful tool set, but not always for the meek.

And this is where I found myself, in a complex world of windowless child widgets and stolen input foci. I had seen this place before, but Nokia had left this particular frontier barren, to the point that it was in need of some formidable UI methods. Thankfully, a writer from the high plains was drifting in...

In The Light

 And if you feel that you can't go on. And your will's sinkin' low
 Just believe and you can't go wrong.
 In the light you will find the road. You will find the road
   -- Jones/Page/Plant

So what was going on here? We had a few statusbar applets in need of some Nokia/Hildon look-and-feel. Why all the problems? The best answer to date, it seems, is that Nokia wanted to keep brand recognition. By cloaking statusbar UI code from the community? Sounded silly to me. But no matter, 'cause jott would solve the puzzle and put these questions to bed.

Who was this jott guy anyway? I had been reading the forums for over 6 months and I didn't remember any contributions from this obviously solid developer. But I also had never visited the IRC #maemo channel. While working with the AB guys I was encouraged to continue our discussions there, so I accepted the invitation and made an appearence. Here everybody was; itT in real-time! And it turned out that some Nokia tablet people, like jott, only existed at the #maemo channel. The community was also a network.

Prior to jott's arrival, I had considered changing my itT handle to Flounder; I was feeling fat, drunk, and particularly stupid. I went from objdumping sound.so and display.so, to studying Hildon volume-slider source code. And though they didn't reveal all their secrets, I did notice a subtlety: Nokia's own Display and Sound statusbar applets handled input focus differently. Was Nokia not even sharing code with themselves? So as satisfying as this network-community roller coaster was turning out to be, I couldn't help to think that plenty of time had been waisted.

Anyway, the Advanced Backlight statusbar control was now Nokia/Hildonesque and it continues to sit proudly up on my statusbar mantel. But the success of this project wasn't just the snapping-in of a final piece. It was more like a potluck dinner: rm_you unfolded a grand table for his famous BBQ, GA arrived with the silverware, Benson put the forks on the left, qwerty12 (and fanoush?) rotated some stuff to make room for a salad, I unwrapped a jello thing, and jott brought the New York style cheese cake. Good times. But it had gotten very late, and I needed to get back. And even though I was now armed with a properly-lit UI, there was still much to do...

...like fighting Sith Lords and smoke monsters.


All times are GMT -4. The time now is 05:43 AM.