Friday, December 12, 2008

De-Mistifying the maemo.org Bugzilla - An Interview with Bugmaster Andre Klapper

Mobile Tablets! is pleased to present this exclusive Q&A session with maemo.org's Andre Klapper.

Andre is one of two Bugmasters responsible for the Maemo platform bugzilla. He
faithfully wades through all the bug reports, comments, and votes that are filed daily on bugs.maemo.org. The end result of that effort is an Internet Tablet community which continues to have a feature rich and reliable device in its hands.

I'm sure that everyone reading this would love to have a few minutes of Andre's time. I consider myself fortunate to have him agree to do the following Q&A:


1. You were recently appointed as one of two maemo.org bugmasters. What exactly do you and Karsten Br├Ąckelmann do on a daily basis as bugmasters?

The job description vaguely says "Administration of the database and communication with users and developers". This covers triaging the reports (reproducing them, asking for more information if required, cleaning up old reports), "educating" users to file good reports, forwarding "valuable" issues to Nokia's internal bugtracker and keeping it in sync (that's not a long term solution but right now it's due to Nokia's current workflow), Bugzilla maintenance (repetitive stuff like adding versions or target milestones), setting up the Bugsquad and guidelines for people interested in helping, and collecting technical knowledge from developers commenting on bug reports that miss information.

I think that covers most of what I'm doing. Of course I also try to follow up discussions on mailing lists and the Internet Tablet Talk forum to streamline issues and get them properly filed in Bugzilla.


2. Is bugmastery a full-time job, or do you fit it in between other activities that you have? Are you considered an employee of Nokia/Maemo?

The job position was created in May 2008 and is a full-time position. Karsten Br├Ąckelmann and me shared the position for the first months (each of us working part time), but since I started full time in October Karsten has become the bugmaster in Nokia's Desktop Team and does not spend much time on maemo.org Bugzilla currently. He still helps me with technical issues (and might be back in a few months).

The job position is sponsored by Nokia, but I decide myself what is important and what I work on, so it is completely independent. I was explicitly told that I'm free to disagree and ignore anything Nokia comes up with (but that hasn't happened yet, I prefer to convince people instead). ;-)

I consider myself an employee of the maemo.org community because they basically decide what I'm doing (and if I'm doing it well or not), and of course of Openismus because they pay me and are a great company to work for.


3. Many tablet users out there do not participate in bugzilla. I for one, only started a few months ago. Can you give us an overview of the process that a bug report takes internally on its road to being dispositioned as fixed, and what groups within Nokia/Maemo are typically involved?

When a bug report gets filed the first thing to be done by the Bugsquad is to check whether enough information has been submitted and whether it can be reproduced. This might require providing instructions to the reporter to come up with some application specific information (for example creating a log file if the email application cannot connect to the server). When the report is in a good shape I forward it to Nokia's internal bug tracker (as already said, that is the current workflow and I'm the bottleneck, like it or not) and keep both reports in sync when new comments get added. When a bug gets fixed in the codebase, I also close the public bug report and add a comment about the version that will include the fix and its weekly build number. This is often a bit confusing as the fix is not immediately available for public, and we all have to wait for Nokia pushing a public SSU update (honestly, I also don't know about any release dates - that's unfortunately Nokia's current policy).

That's the normal process for software bugs. Development platform or Website bugs are directly handled in Maemo Bugzilla only.


4. Are there any common mistakes made when users file bugs that makes your lives difficult as bugmasters? Something that reporters/voters should do differently?

Reporters using the bug template and being as exact as possible already help a lot, because it saves time that is otherwise required to ask for more information. Imagine tracking down a short and simple "Can't send mail, please help" report and the follow-ups required to find out
whether it's really a bug or just a misconfiguration. The more valuable information, the better. If reports are vague in general I link against https://bugs.maemo.org/page.cgi?id=bug-writing.html , if a log file or specific information is required Bugsquad members can pick up potential questions from the wiki at https://wiki.maemo.org/Bugs:Stock_answers . Regarding voters... I just want to have more people voting. Raise your voice! It really helps to identify the main issues and make Nokia aware of them.


5. Has any thought been given to providing some sort of dummy-proof way of getting a device's log info appropriate to a particular bug uploaded onto the bug report? What I envision is a bug reporting client on the tablet that you can invoke after you experience a bug. It would take a snapshot of the logs and/or device configuration and upload them to the bug report. Reporting bugs would become easier for the casual user, but may be a headache to implement, and also to manage on your end.

Nokia has announced a Crash reporter at Maemo Summit. As far as I know it will be available for download from the SDK tools repository.

From my point of view and the experience in GNOME Bugzilla offering such a functionality for non-crashers will likely cause problems and noise, because bug reports will mix up with support requests that better fit into forums or mailing lists.


6. There has been some disgruntlement in the community regarding the lack of frequent OS bug fixes via the SSU. Is there a triage system in place that relates the severity of the bug to the frequency of an update via the SSU? For instance, one critical bug may generate an SSU to rollout a critical fix, but every 10 normal priority bugs will be rolled up in a separate update via SSU. Or is it a looser management system?

Uh, that question relates to Nokia's internal policies when to ship an SSU update, and I simply don't know of Nokia's release management's guidelines here. I assume that a high number of critical issues or even blockers will increase pressure to push an SSU update soon, but I think we all agree that we would like to see Nokia publish updates much more often than they currently do.


7. It seems to me that we are approaching a point in time where a monumental division in the community will occur. This is the creation of community developed/modified Maemo distributions (e.g. Mer) versus the officially supplied versions. Since maemo.org is supposed to be a community site, will bugs.maemo.org handle both, or just the official versions?

We already have a few community projects in the "Extras" classification in maemo.org Bugzilla (Canola, Community Kernels etc.).

In the long run, we want to make Bugzilla the home for every community project maintainer who is interested. However, to lower the amount of administration (creating components, versions and target milestones for each product) this requires some non-trivial code work first that unfortunately will not happen that soon, so I currently prefer to only have some outstanding community software hosted. Some community members already have permissions to set up new products in Bugzilla.

If the Mer maintainers are interested they are of course highly welcome!


8. There is a 'Fixed in Fremantle' discussion going on over at InternetTabletTalk. It has been pretty fiery over there. I know that one of the valid points users have made is that a bug logged against Diablo should not be closed as Fixed, unless it is fixed in Diablo. Obviously, each OS iteration has a finite life that is dictated by Nokia's business strategy, so the 'Fixed in Fremantle' logic can make sense from a corporate viewpoint. What do you think of this issue and the community's concerns? Are they founded, or is there fear mongering occurring due to a lack of understanding of things that will transpire?


I can totally understand the complaints from my user point of view, but it's simply the life cycle of a bug. Having a patch committed to the codebase ("RESOLVED FIXED") is something different than having the fix available for public and verified ("CLOSED FIXED"). Some issues are much easier to fix in the Fremantle architecture and backporting them to Diablo would create a lot of additional work, and Nokia is still a company that is interested in selling products and does not have unlimited resources and manpower, hence they concentrate on Fremantle and put less efforts in Diablo as time passes by. This is exactly where the community can fill the gap by picking up the code and continuing to hack and improve it, and Mer is the right direction to kick this off in an organized kind of way.


9. Stephen Gadsby over at ITT does a bang-up job of providing a weekly bug jar in his blog. Do you feel any pressure from this since the bug status is on the loudspeaker each week, or do you take it in stride as an interested community keeping a check on your activities?

It's not only my activities, it's the entire Bugsquad, other community members and Nokia employees that are involved too.

Stephen's weekly bug jar has been very helpful to me to see the progress we make and to identify issues. It's definitely motivating to see the number of open bug reports and enhancement requests decreasing in the last weeks. I would call it a kind of "positive pressure".


10. Anything last minute to say to the community regarding bugs or anything else going on at maemo.org?

Get involved! :-)

Report issues, triage bug reports - even testing one bug a day (if it's reproducible in the latest public software version) is already a big help. If you want to get started check out https://wiki.maemo.org/Bugsquad and start triaging your favourite bugs (e.g. old moreinfo bugs, your favourite product that you have good knowledge of, new incoming reports etc.). Generally speaking, my impression is that we are on a good way to get Nokia more involved in the feedback provided through maemo.org Bugzilla, though of course everybody in general loves to see things happen faster. Having good bug reports and showing Nokia that the user feedback in maemo.org Bugzilla provides additional value and better over-all quality of the Maemo software is an important step to make Nokia understand the advantages of open source software and culture better.


'Post' Mortem by EIPI

Thanks Andre for providing some insight into the bugzilla process, and for the valuable discussion.

As can be seen, the maemo.org Bugzilla is THE PLACE to work within to have your frustrations with the platform officially heard and dealt with. Many users do this on Internet Tablet Talk, which provides alot of entertaining discussion, but does nothing (unless Andre happens to hear you there) to fix problems for you or anyone else.

Hopefully users will hop onto bugs.maemo.org to file bugs, vote for bugs, or even become a member of the Bugsquad (I didn't even know we had one!).

EIPI

Digg Technorati Delicious Google Bookmark slashdot

Wednesday, December 10, 2008

Android v1.0 on the N810: An Interview with Peter McDermott of NthCode

Mobile Tablets! is pleased to present this interview with Peter McDermott, CEO and founder at embedded Linux consulting firm NthCode. His company recently made news at Internet Tablet Talk and Engadget over the porting of Android v1.0 to the N810. Peter is originally from the United States but has been living in Beijing since 2002 and founded NthCode there in 2005.

Peter, as you can imagine, is busy over at NthCode, so I feel fortunate that he could take some time to participate in this interview:


1. Could you tell us a little bit about NthCode? For instance, what type of Linux projects do you typically undertake? What hardware platforms do you develop for?

Thanks for the opportunity, EIPI.

We've spent most of the last three years writing system software for a large mobile phone manufacturer's 2.5G and 3G Linux phones (unfortunately, I can't say who that is). We've also helped other customers develop software for embedded Linux media devices. These have all been ARM-based systems with similar hardware configurations to what you see in the Nokia Internet Tablets.


2. I read on your corporate website that you are an expatriate now working in China. Why did you chose China when establishing your company?

Well, I spent most of 2000 to 2002 backpacking around Asia -- and four months of that in China. After I returned home to the U.S., I felt a longing to be back in the middle of the amazing energy and changes taking place in Beijing. So I repacked my bag and moved. After arriving, I found a software development job working on one of the first Linux handsets. And, in 2005, I founded NthCode to focus on what I like and know best -- embedded Linux.

Beijing isn't heaven, but it's a very interesting place. And there are lots of great software developers here who are looking for the opportunity to work on new and exciting technology. So I feel Beijing is a natural fit for me and for NthCode.

(I should also say that I studied Chinese as my foreign language in college -- but I was absolutely the worst student in that class. So it's fair to say that I've had an interest in China for some time. My Chinese is functional, but not fluent, now.)


3. The reason I wanted to interview you was due to NthCode's recent porting of the latest Android v1.0 to the N810. This made a big splash over at Internet Tablet Talk. I assume that porting Android to the N810 is not a bread and butter type of work for you guys over at NthCode. Can you tell us a little about Tang Yongjun and the team, and their impetus to work on this particular project?

Well, in addition to Android being the hot new thing, we had received inquiries about whether or not we could do Android work. So I wanted us to get some experience and have some tangible proof that we could do it.

Yongjun is a talented hacker. And due to a lull in another project, he was not as busy as some of the other developers, so I asked him to try the port. It turned out to be a great learning experience for us. We try to use agile methods, specifically, the Scrum process, for the projects we run. We all work hard here. But Scrum keeps us focused on what's important and mostly lets us rest on the weekends. That being said, I found Yongjun on IM one Saturday night and asked him how he was doing, and he answered, 'I almost have the display driver working.' He said he was having fun.


4. Many of us flocked to your corporate website to see the video of the N810 booting up into the Android desktop environment. It was mind blowing. The previous Android port which qwerty12, penguinbait, and b-man worked on in the summer ran inside Maemo as an application. NthCode's port, as I understand it, allows you to boot the device into Android directly. Many of the tablet community are like myself - interested in technology, have a basic understanding of hardware and software, but are not developers. Can you explain to us in lay terms the challenges that you had to overcome to make this happen, and the level of effort involved?

Ha! I mostly expected people to say, 'It's been done already. It boots slowly. Who cares?'

The analog in the PC world to what we did would be to take a PC that typically runs Fedora Linux and make it run Ubuntu Linux. I don't want to say it's just that easy, but it's definitely doable if you know how the Linux kernel interfaces with embedded hardware. What Penguinbait, Qwerty12, and B-man did is actually a bit more interesting: They took the equivalent of a PC that is already booted into Fedora and made it launch Ubuntu. Very slick!

The biggest technical challenge we faced was to bring-up of Android after we had merged the N810 and Android kernels. We had to work past a number of issues related to file systems, display drivers, and random reboots. But, we took them one at a time and eventually got the system up. This bring-up piece took Yongjun more than a week of focused effort.


5. At the time your port was announced, things like the wifi and touchscreen were not working properly, if I recall correctly. Has there been any work at NthCode on resolving these issues? For instance, using the open source wifi drivers with the 2.6.25 kernel that you are using?

Actually, the touchscreen worked fine. But you're right that WiFi did not work.

Since our initial release, we've enabled the Android Debug Bridge (ADB) and updated the display driver to fix some nagging video issues. The ADB lets your PC debug a USB-connected Android device. This includes ssh-like functionality and the ability to use the Eclipse Integrated Development Environment to single-step through Android code running on a device.

And, as of just today, WiFi is working in our 2.6.25 kernel. That being said, you have to use ADB to get inside the device to configure it. So we are not at the point of having WiFi ready for casual users.


6. Are you planning on getting this to work on the N800? I believe that the on-screen keyboard might be an issue here.

Our primary focus right now is to make the N810 port functional and stable enough for our needs. If someone else could do the N800 changes, we would gladly merge them into our kernel and userspace so that more of these devices can run Android. That being said, we can sure try to add N800 support later if we have time.


7. As with many great inventions, simultaneous work by independent parties occurs. Obviously, I am referring to Solca's work on NITdroid. Solca is using an updated 2.6.28 kernel, and has incorporated wifi support. Were you aware of their work, or did it come as a surprise to hear of the independent port they came up with?

I wish we had known of Solca's effort earlier, so that we could have put our heads together with his. But I'm very happy that he is getting the recognition he much deserves for his port. It's wonderful that he's been able to make WiFi and the newer kernel work.


8. Solca's work has really picked up. Are you eyeing any of the developments on NITdroid for inclusion in your port?

We have leveraged some of the work he's done in his Android port to make ours better. The display driver and WiFi fixes I mention above are based on the work he did. So we owe him a big, 'Thanks!' I hope some of our changes can help him out, too..


9. Now that you have some development work on the N8X0 series of devices under your belts - do you see any other projects that you want to undertake on this hardware platform?

I'm interested to see what we can do in the Android user-space on the N810. And I'd sure like us to build some kind of Android application that people can download to their Android N810s and other Android devices, even if it's just something simple and free.


10. Do you own and use a Nokia Internet Tablet?

We have three Nokia N810s at the office that are used by our developers for various projects. If we can make power management work in Android on the N810, I think it would be fun to have one just for bragging rights. But I'm one of those folks who is forever connected to his laptop, so I don't use one on a daily basis. I think mobile devices are getting better at replacing laptops, but they aren't quite there, yet.


11. Anything you or your team at NthCode would like to say to the Internet Tablet community?

In addition to Solca, who's helped us with some of his patches, I'd like to thank Penguinbait, Qwerty12, and B-man for their documentation on what they did in the Android prerelease port. We were able to use that as a basis for our work. As well, I think Nokia deserves a round of applause for creating such wonderful hackable hardware.


'Post' Mortem by EIPI:

First of all, thank you Peter for participating in this interview. And a big thank you to Tang Yongjun, the developer who worked on getting the latest Android to boot on the N810.

Being new to this arena of technology, I thought I had all my ducks in a row, but I did manage to make an error regarding the touchscreen not working on NthCode's Android port. You can clearly see that the touchscreen works in the last seconds of the video on their site.

NthCode's interest in developing applications for the N810 Android user space is promising news. The effort that Solca and NthCode have put into getting a bootable Android on the N8X0 devices is a welcome development in our community. It means that we may have more to select from when it comes to picking an operating system to power our tablets. This is a great thing!

EIPI

Digg Technorati Delicious Google Bookmark slashdot