The roads I take...
KaiRo's weBlog
| Displaying recent entries in English and tagged with "mobile". Back to all recent entries |
December 6th, 2013
Firefox OS DevTreff Vienna
While the local just asked me if I'd go there, the Mozilla contacts had been asked by the organizers for a speaker to open up the event. We were trying to get someone more used to talking about Firefox OS, but everyone's busy this time of year, so in the end we settled with me doing this keynote.
Now, I have been giving presentations on different occasions and events in the last years, but I never have actually keynoted anything, so that made me somewhat nervous. The other talks that were lined up for the evening were about app development, to some part about very concrete pieces of it, so I figured I should give that some frame and introduce people to Firefox OS, starting with why we are doing it, moving to what and where it is and giving a bit of glance onto where we want to take it. So I came up with "Firefox OS: Reasons, Status & Plans" as the title (my slides are behind the link).
The audience was supposed to be about 50 people, I guess 30-35 really showed up (the pictures, taken "in style" with Firefox OS on my Peak, only show one part of the room), but those were an awesome bunch. They were really into the topic, asked interesting questions, and the talks following me were showing that we really had capable developers in the room, from those that do JS in their free time to those who earn their bread and butter by doing apps.
We also had two Mozillians, both of which I had not met in person before, even though I spent a lot of time in this city in the last decade!
As the event was going on, I was often the voice in the room who would have answers from the Mozilla side or could explain our point of view and initiatives - and in quite a few cases, I could loop back to something I said in my keynote. It was really great to see how apparently I had touched exactly on the right things there and gave everything else a good base to build on. Interestingly, there was quite a bit of interest in the DeviceStorage API, probably because accessing local files is something people can refer better to than storing items in-app. I was thankful someone did a talk on our Marketplace and in-app payment API/Services as that's one area I'm actually weak in, but it also sparked quite a bit of interest. The permission model did also get a few questions.
We surely had people with Firefox OS app experience in there, but I think more of those people might pick up web app development, esp. if more similar events come around, which would be cool. And maybe someone should tell them how to do simple apps without larger libraries or frameworks, and explain app manifests in more detail. I hope they will organize more of those and the chance for that will come along!
By KaiRo, at 05:16 | Tags: apps, B2G, Firefox OS, mobile, Mozilla, presentation, Vienna | no comments | TrackBack: 0
January 17th, 2013
"Webby" browser UI on mobile? It's FirefoxOS or nothing.
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
February 12th, 2011
Device Vendors: Think MeeGo Now!
Here's why:
- The project is very much alive, and has support from at least Intel and AMD, and a few others, including still Nokia.
- The MeeGo system is ready in its bases, with the world-class Linux base giving it all stability and security you need. The applications need some polish and getting them to fully work, but most of the bits and pieces are there, and you'd need to do the finishing touch and polish on any other system as well. And with Firefox 4 Mobile, you get the most fully featured mobile web browser available on the market - and it's already there!
- With MeeGo, you're not bound to any specific vendor as data store or a single, specific application market - community repositories for applications are available for anyone to use, but you can easily put your own services into what you deliver by default if you like.
- But now, after the Nokia+Microsoft announcement, as a device manufacturer, you don't have to fear to have massive competition from Nokia on your hands soon within the still small MeeGo ecosystem - which is good as you can easily get even #1 on this emerging market.
- You have a great community of Maemo and MeeGo enthusiasts that already now await any device that runs that system - without you even building up any market. Nokia has already done that for you as well as made most of the system available, they just didn't make use of what they created. You can.
- And if you dare to play the openness card and mean it, you have not just enthusiasts there, you have an army of beta testers and developers for your devices and software who are more than willing to work with you (without any payment - though they'd love device donations to help testing) to make the devices and software better. And they'll do a lot of spreading the word, helping your marketing, also basically for free! (Well, all they take for it is the rights to their own freedom.)
You instantly gain a fellowship of your products even when they're not out in the open yet, and people who are willing to help you to make the product a success. Which device manufacturer can say that?
I go, we go, you go MeeGo. Now.
By KaiRo, at 18:56 | Tags: MeeGo, mobile | 12 comments | TrackBack: 1
January 2nd, 2011
First N900 impressions
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 15th, 2010
The Cloud And The Pocket
Now, I don't think this extreme will really be reached, I'd even go as far as to believe we'll have most or all of our data and probably a good part of our computing power in our pocket instead.
Right now, the primary argument for putting things into the cloud is that people want to use their data from different desktops, maybe their smartphone, possibly some tablet, and all those have web access, so the cloud can be accessed from all those machines, and the same way. Of course, that only works really well when you're on broadband. Still, this is nice to have, and who cares about the cloud provider reading your data for better ad placements and selling data to third parties anyhow. You are on Facebook as well, right? OK, so why should you care about your data being sold or analyzed for better ads in one more place? After all, it wins you a lot of comfort, and that's what counts.
Let's assume for a moment that those problems are all moot. And the problem that there are places where your phone or tablet doesn't get any or only a bad connection, intentionally or unintentionally, be in in some deep basement bar (like the one I'm going to frequently) or far out in the US country, in deep valleys or up on mountains, where it's too expensive to put transmitting stations for phone providers because of too few people or too many reflections and too little direct reach. Let's ignore all that for the moment. Let's also ignore that your cloud provider could just go bankrupt or stop its services for other reasons.
I still think a different model of data storage will feel better for most people once all parts of the concept are there - which will not be the case in 2010, probably more in 2015 or 2020.
Imagine your smartphone, lets say some neat package similar to the current iPhone or N900, basically a small screen which not much else, possibly a mini-keyboard if you like, will have as much computing power and more storage space than a current desktop (which, given what we've seen in the last 10 years, is not unrealistic). Imagine you could have tablet-like screen rolled up in your backpack and put up to a normal tablet screen within a few seconds, and you smartphone would just connect to that and act as the processing and data unit for it. Also, imagine that instead of a desktop, you would have just a large screen on your desktop, along with whatever input devices will be your choice (currently probably keyboard and mouse for most people, but who knows what we'll have then) - and your smartphone will seamlessly connect to that and act as data unit and possibly processor, perhaps in cooperation with some stronger processor unit integrated with the big screen or some other extension device on your desk. Even more, imagine that in cafes or on airports, there will be such computing stations you can seamlessly connect your smartphone, er mobile computer, to.
Now, having your data and processing power in your pocket, using the same software across all those machines, be it an OS, web browser, web app, local app, hybrid, or whatever, why again would you want to store all your data in the cloud?
Sure, there are still reasons, like sharing with others, where the cloud can be helpful, and you sure will want your mobile data to be synchronized with those parts of cloud data. The cloud surely has its good use cases, even in that possible future, but I don't think most people will want to have all their data and their private stuff all up there, esp. when they can and will have it in their pockets and just as ubiquitous instead.
And I doubt the connection to the cloud will ever in near decades satisfy the speed we'd want to edit our videos in the quality we really want to achieve.
Still, the pocket devices I imagine and all that infrastructure around it will need some time to come into existence (nothing of that sounds really impossible even today, though), so there will be some time where the cloud can continue to shoot ahead in the uses cases of oneself having access to the data everywhere - but I'm looking forward to the pocket taking its bold steps into a quite interesting future!
By KaiRo, at 23:26 | Tags: Cloud, future, Internet, mobile, storage | 2 comments | TrackBack: 0
October 17th, 2007
A Mobile Device That Fits Me?
I have a Nokia 7710 phone currently, which is a quite nice Symbian-based smartphone, but it's not widely available unfortunately and Nokia isn't developing a newer version of it - not even a further device with the "Series 90" GUI it developed for this wide-touchscreen based device.
I always wanted to have ideally one single device to use for phoning, for listening to some of my (Ogg Vorbis) music files, as well as for checking some Internet sites or email and even for writing some text and carrying my calendar with me - so basically a phone, music player and PDA all in one (yes, I tend to like all-in-one solutions for some reason).
The 7710 is as nice as any other Nokia phone to use for calling your friends and works well with a Bluetooth headset, which I learned to love. It plays ogg files well with a small plugin available from Symbian, and with the stereo headset delivered with the phone, the sound is pretty decent. The web browser sucks though, there's an ssh client available (putty) but it's not well-integrated and crashes the whole phone on every connection instability, I couldn't find a way to get my web calendar (iCalendar format) into the device's calendar, and the phone doesn't have 3G support, which would give me faster internet connection speeds in all highly populated areas around here.
Now that this device gets older and its Internet capabilities aren't really optimal, I'm still looking for a device that does better at least for the non-phone parts (I start to see that nobody seems to want to provide me with the ultimate all-in-one device I'd like to have).
The Nokia N800 has been looking interesting for some time, it lacks the (GSM or 3G) phone side, but can utilize a phone or WLAN for its Internet connection, it looked still not completely to what I need though its Linux base as well as open software and community at maemo.org sounded compelling. Still, Opera is not the browser I want on a good device and the multimedia player doesn't support Ogg Vorbis. From what I saw, Vorbis support is again available through a plugin of some sort, and nowadays there's even a Mozilla-based browser in the form of MicroB (in addition to a MiniMo port), which makes the device sound pretty compelling for someone like me.
All in all, the available software collection for the N800 is astoundingly good, even including things like Apache that would sound cool for my mobile web development purposes, if PHP might be available as well (haven't looked for that yet). I haven't convinced me yet to buy such a device though, to a certain part because ¤400 for a 320MHz device that is aging already for technology terms seems a bit much to me.
Somehow, the OpenMoko phone sounds interesting for being a smartphone, but it doesn't seem right up to competing with the N800 on Internet terms - and if I buy a new new, it better should have 3G (UMTS) support, as that technology is spreading rapidly around here. Still, an open, Linux-based phone sounds like something to at least watch for the future.
But today, Nokia unveiled the N810 with a slide keyboard, GPS support, a 400MHz processor, smaller size compared to the N800 - and with the Mozilla-based MicroB as the main browser!
The mobile device that fits me surely has come nearer with that move. The new N810 won't be in stores before mid-November, so I still have some time to think about if it will really what what I'm looking for closely enough that I'll get one, but it surely is the most compelling mobile internet device out there so far. Good job, Nokia!
(And no, I'm not even thinking about giving in to His Steveness' Jobs-saver, the iClone or whatever it was called )
By KaiRo, at 22:32 | Tags: mobile, Mozilla | 3 comments | TrackBack: 0