The roads I take...

KaiRo's weBlog

October 2024
123456
78910111213
14151617181920
21222324252627
28293031

Displaying recent entries in English and tagged with "N900". Back to all recent entries

Popular tags: Mozilla, SeaMonkey, L10n, Status, Firefox

Used languages: English, German

Archives:

July 2023

February 2022

March 2021

more...

January 17th, 2013

"Webby" browser UI on mobile? It's FirefoxOS or nothing.

I've always been a huge fan of the idea of rendering (browser) UI with the web rendering engine and write even the UI itself in a "webby" language. This idea AFAIK came up at Netscape somewhere in 1998 when the new Gecko engine for Mozilla was built. Unfortunately, HTML wasn't in a shape back then to be used for writing complex UI, and actually was quite far away from doing that 15 years ago. The basic concept looked good though, and so an intermittent technology was created to build a UI language on similar concepts, using as much of the JavaScript and CSS from HTML as possible and a markup document written in something like "HTML for UI", which ultimately became XUL ("XML UI Language").

Firefox on desktop, as well as Thunderbird, SeaMonkey, BlueGriffon and others are written using XUL for all their UI, and it's working great there. Actually, this is what even lured me into contributing to Mozilla in the first place - I saw that the UI was written in a way that I could understand back then, as someone who had played around with writing HTML, including some CSS and tiny bits of JS. I felt right at home when I saw that a button in the UI was a <button> in the markup, and that markup followed basically the same, albeit stricter (due to being XML), rules as the HTML I knew. Sure, the tag names were a bit different, but it's UI, and they were easy to understand.
Of course, another import aspect was that this UI would work on any platform you could build Gecko for, be it Windows, Mac and Linux, or even OS/2, Solaris, BeOS and others (including exotics such as AmigaOS). Of course, to fit really in with the host OSes, a number of specific tweaks were added esp. for the mainstream ones, but it works without them, just doesn't integrate as well. As soon as you can compile the Mozilla engine (which takes enough effort anyhow), you also get the full UI, which is a nice deal.
And, of course, the extension system we built over the years has largely been based upon the concepts of XUL, but I won't go into depth on this right here.

Even on mobile devices, Mozilla used that concept for a while. That was great for portability, as you had a working browser with all UI once you could get it to compile somewhere. Hell, I even ran SeaMonkey on a Nokia N810 (a 4.1" Internet tablet) - with the full UI! Of course, that UI was way too small and too overloaded for use on a touch screen, but, being XUL, it loaded and could be used if you managed to tap the correct points with the stylus.
So, for portability, including getting it to run on new devices, this XUL UI was great - and of course, some XUL UI was created that would work decently on those small touch-screen devices. I like the concepts and UI of our modern mobile Firefox browsers (both look similar, see below) better, but we had a usable, easily hackable, nicely extendable UI built with XUL. When Android became a larger deal on mobile, we could just use that and make it work on this system as well, and had something usable pretty fast.



All would have been perfect if it wasn't for one problem: If you render all your UI with the web renderer, it means that you need to load up this rendering engine in its full glory before you can paint any UI at all. And with the web becoming more powerful, what needs to be loaded for that became pretty large, and with loading from permanent storage into memory being pretty slow on those weakly powered mobile devices, it meant waiting times of multiple seconds (on some devices 15 seconds and more) - while the same "smartphone" devices were propagating more and more the concept of instantly launching apps.
Back in 1998, waiting several seconds for an application to start was common and it was OK for Netscape or Mozilla browsers to do the same, maybe display a "splash screen" while the user was waiting for that. Now, in the fast-living world of smart phones, the usage patterns as well as the expectations have changed enough that this waiting time is what instantly (no pun intended) your app is being shot down by users for that, and nobody but your strong supporters (which Mozilla fortunately has) will use it. Things needed to change. And they did.

Basically, there's two ways Mozilla had to make the browser UI start fast: Either write it in a way that it used the "native" toolkit of the hosting OS and not depend on the rendering engine to launch (so that can be loaded lazily in the background), or to have that "native" toolkit of the system be our rendering engine already!
Well, as funny as it sounds, we ended up doing both!

On Android, we did the former, write a "native" (i.e. Java) Android app, which is very fast to be displayed as all the Java/Dalvik framework is already loaded, and load Gecko in the background once the UI is up - while the user interacts with the UI to e.g. enter a site to call up, we have enough time for that so Gecko is ready to display the actual websites once it's needed.
Unfortunately, that "native" UI is not "webby" any more, Java is very different from HTML/XUL/CSS - though AFAIK we are using quite a bit of JS to driver things, so there's at least some pieces left that someone like me would still understand. Oh, and as my job nowadays is stability, Java exceptions crash the browser, while we don't have that problem with JavaScript, and the amount of crash reports rose up significantly with that UI rewrite (the team is doing a great job on fixing them, though, and we've become actually pretty good in stability there nowadays). To be fair, we also added support for the Flash plugin, which seems to be causing by far the most stability problems with this version. All that said, this new Firefox for Android is really fast, esp. on startup, and works incredibly well, it's getting cheered as the best browser for Android by many - compare that with the quite bad reputation that the XUL-based version had and you need to admit this was a good change - even if you happen to be me. ;-)

Well, and then there's this thing that I mentioned with the "native" toolkit of the system be our rendering engine, and then you can use web technologies for the mobile browser UI, right? That's what we're doing in Firefox OS!
On that system, the whole UI of everything you see on screen is rendered by Gecko. And not just that, Mozilla took the final step and didn't even do it with XUL, but used plain HTML this time, so that everything running on this system is made of pure web apps (sure, with some new WebAPIs thrown in). All that said, there's some things in UI design where HTML still needs to catch up to XUL, but those mobile apps are working really nicely already (still, mobile has less UI with less complexity and less need for cross-app consistency, so the particular weak spots I'm thinking of don't come to light that much).
What it comes down to for what I want to say here is that in Firefox OS, we indeed have a browser on mobile which has its UI completely rendered by the web rendering engine (again) - but this time, not done in XUL but in plain HTML!

And it looks pretty good, compare our "native" Android UI to our Firefox OS UI and you'll see that there are some similarities:



And, go ahead and try yourself, e.g. in the simulator, it even pretty much works the same!

Time to come to the reason I actually brought this up today: You might ask what happened with the XUL-based UI for mobile, which I said was nicely portable to different devices (and older builds of which I still have in use on my "real-Linux-powered" N900 and N9 phones)? Well, it's dead and gone. And even its source has been removed today from our mozilla-central repository. So, if you want a browser with a "webby" UI on mobile, your only chance from now on is Firefox OS. (That is, if nobody comes along and resurrects a XUL UI for alternative mobile platforms in some external project.)

All that said, I'm excited that the original idea of rendering the UI with the browser engine survives on mobile - and actually thrives and is being hugely extended to powering the whole system, in Firefox OS! :)

By KaiRo, at 17:23 | Tags: Android, Firefox, FirefoxOS, mobile, Mozilla, N810, N9, N900 | 1 comment | TrackBack: 0

June 21st, 2011

The Day Of The Next Generation

Technology. The current frontier. These are the voyages of June 21st, it's ongoing mission to find strange new releases, new devices, and new software. To boldly go where no day has gone before...


This is surely an interesting day. Nokia has just presented the Linux-powered Nokia N9 with a completely new UI and it's surely a very slick device, interesting UI concept, and no matter if system-wise this midway point between Maemo5 and full-fledged MeeGo can be called "MeeGo" legally, having a mass-market phone out there that comes with a fully open "real Linux" is awesome.
The N900, which feels old, slow and clunky nowadays, has a damn good successor - even though the keyboard-attached N950 version has been blocked by carriers and is only available as a "loaned" dev kit to people creating N9 apps. I hope to see that N9 device out there soon, and perhaps it's done well enough that the absence of the keyboard can be taken, but I'd really need to test it for that. Also, I hope that enough of the UI stuff can be opened enough that MeeGo proper can ship it as well. Until all that clears up, I'll keep testing the MeeGo N900 Community Edition, which is shaping up nicely as well. Hopefully open-software phones have a future with all those moves (and I surely hope other vendors will chime in as well, as Nokia can't be fully trusted in that way any more).

But there's much more: I just saw Mozilla people on the US West Coast join IRC at 5am their time and start their work day - Firefox 5 is going public today as the first one off our new release process. While it doesn't ship a lot in terms of new features, the big thing here is that it kickstarts the new process that will get us new Firefox releases every 6-12 weeks that are easy to update to because they don't have a ton of new stuff but still a number of nice features. This time, CSS Animations are probably the only larger thing (next to performance improvements), and most users won't notice them yet, unless they look for some demos. But, the important point is that they're ready and so we can ship them to hundreds of millions of people, not needing to wait for a major version coming in a year or so. It's (going) out there, right now!
This is also the first release I have been there in "Crash Scene Investigation" for its whole cycle, and we learned a lot about a number of things in this cycle, including that we need to attract more people to the Aurora and Beta channels to get even better data, but also that there are some classes of crashes and hangs we need to take a closer look at, and we are doing that. All in all, our beta numbers of Firefox 5 have been quite good, we expect it to be at least as stable as Firefox 4.0.1, probably somewhat better.

In addition to this, Mozilla is shipping the probably last security update to Firefox 3.6, Thunderbird ships a security update for 3.1, and, very importantly, Firefox 5 also ships for Android and the before-mentioned N900 (maemo5) today, right at the same time with the desktop Firefox!

Not enough, though: The SeaMonkey team has just finished up building the first beta of SeaMonkey 2.2 and will ship that to its beta testers later today. This version has the same web-facing features as Firefox 5 (including CC Animations) and the security fixes shipped in other versions today, as well as a number of smaller fixes to SeaMonkey code, some of which have been found since 2.1 has been released.
I'm informed that the team will try to ship the final 2.2 release as soon as possible in the next weeks, hoping that this first beta will do well in testing.

And it's surely possible that this day has even more in store, it's not over yet! ;-)

Engage!

By KaiRo, at 15:35 | Tags: Firefox, MeeGo, Mozilla, N9, N900, SeaMonkey | 8 comments | TrackBack: 1

January 2nd, 2011

First N900 impressions

I have mentioned in recent weeks that the touchscreen on my N810 stopped working (I could track it down to a problem with the ribbon coming out of the screen, right adjacent to its plug to the main ribbon, but that's nothing I can really fix) and so I have been looking for getting some kind of replacement for the usual tasks I performed on that device - mainly using ssh to get into other machines, do GPS tracking/mapping and accessing the web.

Now, I value the openness of the Maemo OS2008 system on the N810, as it's a full Linux that easily lets you have root access and install whatever you want on the device - even alternate operating systems if you wish to do so. Compared to that, even Android is a closed system (not to mention iOS or WinMobile). The Nokia N900 already came out in 2009 with the next version of the OS, Maemo 5, but that was some time ago, and meanwhile MeeGo had been announced as Maemo's successor (with the same level of openness) and new devices with that were originally expected for late 2010, so I had been waiting for those to jump to the new generation immediately, being eager to test MeeGo and Firefox 4 Mobile (which isn't available for the N810 any more).

Well, with the N810 problems and the delays in getting MeeGo handset versions ready and therefore the delay in the new devices becoming available, I finally settled for trying to get a used N900 from eBay - and I finally did win an auction for one at just 177 Euros. Not fully trusting private-to-private remote transactions, I didn't really want to believe it though until I finally had it in my hands a few days ago.

At first, I was a bit weary to do too much on Maemo 5 (and even more to use it as a phone), as I'd really like to go testing MeeGo, which has images for N900 available, but I figured I first should see how well the device itself works with the system it comes with. I updated the system to its latest release (which made it go into some strange start-install-and-reboot loop and had me actually flash it with the new version) and look for the application I liked to install, Mappero and Firefox being among them. And I even tried to get over the data from both the N810 and my Symbian phone, which worked fairly well (though getting SMS messages over required some fiddling with community-provided tools).

Once I tried and put the SIM card from my phone over into the N900, I realized I really can use the new device for that purpose as well - even though a few smaller improvements of the contact app would be helpful. Still, it works better than I expected. Even Firefox 4 Mobile (beta) works well - it's not very fast at startup but I expected it to be worse, and it performs reasonably well even with multiple "tabs" for being a full browser with all web-facing features that desktop Firefox 4 has.

All in all, for being more than a year old technology, this device still holds up better in comparison to the current generation that I would have expected, and it completely grew on me even in the just two days since I put it into full use. OK, it has some slightly rough edges, but I'm both used to doing beta testing (which this doesn't feel like, actually) and using very open Linux-based systems.

Oh, and I figured that while playing (Open!) Dune II is not that comfortable with a touch screen (but fun on a mobile device) it's absolutely awesome to play tuxrace with the accelerometer controls! ;-)

By KaiRo, at 15:17 | Tags: Firefox, maemo, MeeGo, mobile, N810, N900 | 1 comment | TrackBack: 0

August 28th, 2009

A Really Open Smartphone?

Back in 2007, I was wondering if a mobile device that fits me will ever be built and saw the unveiling of the N810 as a step nearer to that. It was a really open, hackable mobile device, with a Mozilla-based browser, but it lacked phone capabilities, so even when I bought one a few months later, I still needed to carry a phone around with me in addition to this surely nice device.

What I really wanted after all, was a smartphone, albeit one that was truly open and hackable at least on the side of software, reasonably fast, with a Mozilla-based browser that shows the web as it should be and a touch screen in a handy size - oh, did I say it should be a phone at the same time? Would it ever exist? I trusted it would, I was just thinking ahead of the time.

The OpenMoko was a phone that sounded interesting, but it never came to a state where it would have few enough problems to make the mass-market. When Google came up with Linux-based Android, it sounded good, but the G1 and friends are nothing like an open, hackable device. It goes without saying the the iPhone isn't, even though it looks cool and seems to be pretty functional.

Meanwhile, having the N810, I grew quite fond of the nicely sized touch screen, but even more of the maemo distribution, and of many things like maemo-mapper, which is my trusted OpenStreetMap-based travel companion nowadays. And I closely am following the maemo community through blogs, etc.

So, it was no big surprise to me when Nokia unveiled the N900, powered by maemo 5 this week. I've read enough rumors about this "RX-51" or "Rover" prototype device, esp. in recent weeks but even vague comments before that.

And still, it's a bit overwhelming for an open source guy like me. This is actually one of the largest mobile phone producers worldwide shipping a smartphone (yes, a phone!) based on Linux, with a fully hackable software stack and, importantly of us, a Mozilla-based browser! Shipping, as in pushing it out as their top-of-the-line product for consumers! Not just a geek thing like the OpenMoko, a normal consumer device that at the same time speeds up the heartbeat of any open source geek!

This is a bold step for Nokia, and I really hope it will be successful - this could be an important point in getting open software out to consumers, possibly even as large an impact as Firefox on the desktop. Thanks to Nokia for taking this step. This week, I'm really proud to be a Nokia - and maemo - user.

I'm not sure if the N900 is fully the device that fits me in every regard, I fear the screen might come to be a bit small of the things I've grow accustomed to (maemo-mapper, browsing, showing my pictures to people, even doing some programming), and I also fear that the smaller keyboard compared to the N810 makes typing even harder, but in any case, the N900 is another large step to the device I want. I think the fact that it's less a niche product but a general consumer product (even as a high-end smartphone) is overall the more significant matter than if it fits my requirements perfectly. ;-)

By KaiRo, at 23:12 | Tags: maemo, Mozilla, N810, N900 | 2 comments | TrackBack: 0

Feeds: RSS/Atom