Ubuntu Touch first look

An early developer preview of Ubuntu Touch for Nexus phones and tablets has been released! Since I’m still waiting on the Nexus 4 I’m reserving for Ubuntu testing, I temporarily installed a tablet image on my Nexus 10.

device-2013-02-22-144057

Be warned: this is a very early preview and is more demo-ware than usable operating system at this point. Don’t flash it on your primary phone/tablet or you’ll be mighty disappointed, I suspect. :)

The good:

  • It looks very pretty. They’ve got some good UI designers. :)
  • Edge swipe gestures leave more of the screen available for applications than Android does, as with some other new OSs like Windows 8/RT and BlackBerry 10.
  • Seems to have a WebKit-based browser as default. Renders Wikipedia nicely — we get the desktop version by default on the Nexus 10 as it masquerades as an iPad, which we also send to the desktop site.
  • Some of the hardware actually works, like wifi networking and the cameras. :)
  • There seems to be infrastructure for inter-application data sharing.
  • It handles high-density screens from the get-go; the 2560×1600 Nexus 10 screen looks awesome. Text and photos are crisp and beautiful.

The bad:

  • Very unstable. The UI has crashed on me several times in just a couple of hours of testing. This kicks you back to the login screen.
  • No screen rotation on orientation change.
  • On-screen keyboard is pretty flaky; while it comes up and goes away much more reliably than the GNOME 3 or Ubuntu desktop versions, it fairly often fails to register keypresses.
  • Scrolling and similar UI operations are sometimes a bit sluggish, especially in the browser. This may be due to insufficient graphics acceleration at this stage.
  • WebM and Ogg video don’t appear to fully work in the browser… at least I can’t get anything to play on Wikimedia Commons.

The ugly:

  • Outside the browser and anything you install yourself with Qt Creator, there aren’t a lot of useful apps at this stage. There’s an “Available for download” section on the apps home screen, but tapping the icons does nothing. Aggravating as one of them is ‘Wikipedia’ and I want to know what it does. :)
  • Not clear how traditional Linux CLI and GUI programs will work. Will they run on the tablet-style “desktop” or will it fire up a classic desktop-style UI when you dock? There’s no terminal app yet; you can get a shell via the Android debug bridge tools and can set up SSH from there, but that doesn’t get you into the GUI.
  • No mobile data support for the phone builds yet; data is wifi only.
  • The current images include non-free drivers and sample data, so isn’t fully open source yet. Ick!

I haven’t tested HDMI output yet.

Development

I haven’t done more yet than firing up Qt Creator and fiddling with the demos on the desktop, but it’s interesting to see the development landscape shaping up.

Ubuntu Phone/Touch’s “native” UI toolkit is Qt, with emphasis on using ‘Qt Quick’ and QML+JavaScript for rapid development. It also allows for C++ Qt apps, including low-level OpenGLish things. There’s a sample port of some game that… doesn’t seem to work yet. ;)

Qt is a bit surprising as Ubuntu’s traditionally been GNOME/GTK+-focused. But it makes sense; it’s capable, developer-friendly, now has the declarative stuff like QML markup and first-class JavaScript support, and most importantly it’s also in use on other platforms like BlackBerry 10 and the (mostly dead or is it?) Meego. This could help with code sharing on ‘alternate platforms’… OpenGL-ish games probably will see this as no worse than Android, or possibly easier since there’s no Java/JNI stuff to play with for native apps.

Compared to Android

At this stage there’s no comparison to Android; you just can’t get much done. But we’ll see as it matures…

One of the selling points is that Ubuntu Touch is supposed to be dockable and usable as a “real computer” when connected to a mouse and keyboard and external screen. However this doesn’t seem to be in the current versions, and it’s unclear yet how much better it will be than Android when docked. (Android also supports keyboards, mice, and external screens… but doesn’t as conveniently run existing Linux apps.)

Compared to Firefox OS

The ability to write “native code” apps is probably going to be a big mark in favor of Ubuntu for things like games, which tend to be C/C++ and OpenGL-heavy. Though Mozilla’s done a lot of work with things like emscripten and WebGL making it possible to port C/C++ game engines to JavaScript, I suspect performance will always lag a bit on Firefox OS.

Ubuntu Touch also definitely supports high-DPI displays and tablet-size screens at this stage; it’s unclear to me whether Firefox OS is ready for high-DPI displays or larger screens. Even if it runs all the images in the apps are low-resolution so a lot of stuff might look blurry.

However, Firefox OS is much further along. It’s got a working app marketplace, a browser that doesn’t crash quite as constantly, and most importantly… has hardware partners who are already committed to shipping phones this year.

It looks like this version of Ubuntu Touch was kept as a skunkworks project for a while, then rushed out so it could be demoed at Mobile World Congress. Hopefully development will be more open from here out and it will improve rapidly.

 

Screencasts of mobile devices with HDMI capture

When trying to post about behavior of web or mobile applications, a picture is worth a thousand words… but a video can be worth a thousand pictures. Videos can capture complex behaviors that are hard to fit into a screenshot, can be narrated, and show actual performance as well as the look of something.

Here’s a screencast of the upcoming Wikimedia Commons app importing a PDF from Keynote on an iPod Touch:

I’d stumbled upon some references to a performance monitoring tool called Eideticker that Mozilla’s using for the Android version of Firefox. This uses an HDMI video capture card to record live video output from a Galaxy Nexus or other phone, and can then mark timing of various on-screen events down to 1/60 second precision.

‘Blackmagic’, the company that makes the PCIe card Mozilla uses, also makes Thunderbolt-connected standalone widgets that are easier to connect to a MacBook Pro. I picked up the “Intensity Extreme“, which hides the (for me) unneeded analog video ports behind a breakout cable that I can stuff in a drawer.

See details on which devices I’ve gotten to work and more sample casts.

Limitations:

  • Capture works in their utility program and various high-end editing programs via plugin, but it doesn’t appear as a camera to other apps. So it’s not ideal for live screencasting on a Google Hangout or such, but could probably be pressed into service.
  • Captured video is uncompressed, so files are large!
  • No 1080p60 capture — they have a higher-end model that can do this, but I didn’t shell out the dough. Most devices I’ve tested output at 720p60 or 1080p30 though, so that’s not a problem.
  • No autodetection of the resolution — you have to pick the right resolution in the capture utility, possibly by trial-and-error.
  • No passthrough for the Thunderbolt connection.
  • Must purchase HDMI and Thunderbolt cables separately. :)

Microsoft Surface / Windows RT initial review

I’m a sucker for gadgets and like having new things to test and develop on, so I preordered myself a Microsoft Surface tablet. It arrived yesterday, and most importantly I’ve confirmed that it runs my Windows 8/RT Wikipedia app correctly. :)

First things first

Screen resolution is noticeably lower than the Retina iPad. I’ve run Windows 8 at full res on my Retina MacBook Pro so you can’t fool me, I know how much better it would look. But it’s adequate enough, and I know more devices are coming with 1080p panels, hopefully to be followed by 2560×1440 panels… we’ll forgive this for a first-gen product perhaps.

As a tablet

I’ve already grown accustomed to the swipe and touch gestures on Windows 8; little in Windows RT is a surprise here. Switching and launching apps, tuning settings, the onscreen keyboard, all that’s pretty good.

The current application availability is limited; some players are there like Netflix and Evernote, while apps like Pandora and Gmail remain missing. Expect to use the browser and web apps as stopgaps.

There seem to be enough games to keep me occupied, both new ones for Windows 8 and ports like Cut the Rope and Angry Birds Space.

As a desktop

One of the advantages of Windows 8 over iOS and Android is the classic Windows desktop, available awkwardly on a touchscreen or in its full glory with a keyboard, mouse, and monitor attached.

The Surface has a real USB port and Bluetooth support for keyboards and mice, and a micro-HDMI port that can be hooked up to HDMI, DVI, or VGA monitors with an adaptor (not included, but I already own some). So you might be tempted to use this Windows RT machine the same way as a “real PC” when docked.

Unfortunately this is where Windows RT’s limitations strike. There’s no compatibility with x86 Windows apps, and ARM-based software for the desktop is limited to what Microsoft chose to ship for you:

  • Internet Explorer
  • Explorer
  • Notepad
  • MS Paint
  • Office
  • Task Manager

And that’s about it. You can’t install Chrome or Firefox. You can’t install LibreOffice. You can’t install git. You can’t even install an IRC client that’s not a full-screen Metro app.

Here’s where the Surface RT falls down for me as something I could use for work:

  • No ability to install native programming environments. Maybe web IDEs work for some purposes…
  • IE doesn’t allow plugins except Flash, so can’t be used for Google+ Hangout video chats. We use these extensively in Wikimedia’s mobile team, which is distributed.
  • Gerrit, the code review tool we use at Wikimedia, barfs on IE 10 due to sloppy version checks. I can’t read diffs or make reviews and can’t just switch to another browser.
  • Pandora runs in IE, but to run music in the background you have to open it on the desktop explicitly. Metro IE stops playback when you switch away.

In general, Metro-style apps are nice on the small tablet screen but get more awkward to work with on an external monitor. Evernote is just icky at 1920 pixels wide!

For people whose school or work requirements fit with what Word, Excel, and PowerPoint provide, Windows RT may be an adequate ‘dockable tablet’ to work on. For me it’ll mostly be for web surfing, games, media and testing.

Of course in theory people could create IDE apps for the Metro environment that ship a mini web server, editor, PHP, and goodies, and make it run on ARM… but so far that doesn’t appear to exist.

 

If you expect to do software development on a Surface or other Windows tablet, *do not* get a Windows RT device: you will be disappointed. Wait for the Windows 8 pro version or otherwise get something with an Intel inside.

 

The touch keyboard cover

This was one of the unique selling points of the Surface when it was announced; you can get it with a magnetically attached folding cover which doubles as a keyboard and trackpad. I’m mixed on this; it works but the keyboard is not great, my accuracy is about as bad as with the onscreen keyboard but with worse spelling correction being applied. Possibly getting used to it would improve my typing.

On the other hand it takes up no room on screen which has a certain advantage!

The touch cover only really works when you have the tablet down on a flat surface using the kickstand; sitting on the couch you’ll only be able to use the cover as a cover very well.

I’m curious to see how this ensemble fares on an airplane: will there be room for the cover and kickstand on my little tray table? We shall see.

 

Until next time!

Responsive images for high-DPI displays in MediaWiki

I’ve been working on support for natively showing suitable images for high-DPI displays in MediaWiki, starting with basic content images.

On desktops and tablets there’s just a few devices like the Retina MacBook Pro that need this, but in the mobile world there are loads of devices at 1.5x or 2.0x the traditional resolutions.

You can see a live demo of this patch in action on these test articles:

Here are some screenshots from an iPhone 5 simulator showing fragments of the San Francisco Wikipedia article as currently displayed on en.m.wikipedia.org and with my responsive images patch…

These maps are absurdly sharper on the right side:

And this photograph is visibly much sharper on the right, showing detail of the building’s texture and patterns that wasn’t previously visible without clicking through to the detail page:

The current version of the patch uses the ‘srcset’ attribute as defined in the current HTML 5 working group version, only using the density options and not the width/height options. Since browsers don’t yet support this, I also include some JavaScript to check the display density and load the appropriate image from the srcset.

Patch in gerrit:

The current version has been tested with a number of devices and browsers, including:

  • iPhone 3Gs, Safari (low-res 1x)
  • Nexus One, Android browser (medium-res 1.5x)
  • iPod 5th-generation, Safari (high-res 2.0x)
  • Galaxy Nexus, default browser (high-res 2.0x)
  • Galaxy Nexus, Chrome (high-res 2x)
  • Galaxy Nexus, Opera Mobile (high-res 2x)
  • BlackBerry 10 dev alpha, default browser (high-res 2x)

And on a Retina MacBook Pro:

  • Mac OS X, Safari (2x)
  • Mac OS X, Chrome (2x)
  • Windows 8, IE desktop (2x, with desktop zooms set to 200%)
  • Windows 8, IE Metro (2x)

and on an 11″ 1366×768 Windows 8 tablet:

  • Windows 8, IE Metro (1.5x)

Currently unsupported:

  • Opera Mini (we don’t serve any JS)
  • Firefox (can’t yet detect resolution)
  • Windows Phone IE (can’t yet detect resolution)

 

Nexus 7 quick review

First impressions using the Nexus 7 tablet for a couple days…

image

I used to think the 7″ tablet space was a solution searching for a problem. Prior experience with the Kindle Fire and the Blackberry Playbook — both boxy, awkward slates — hadn’t impressed me. The Nexus 7 is much nicer and feels like it was actually designed to be used by humans… the edges are rounded and beveled so it’s actually comfortable to hold.

Hardware-wise things seem nice enough though I’m surprised by the lack of a rear-facing camera. I’ve actually seen a lot of iPads being used as cameras at museums and such, and the smaller tablet would be much… less unwieldy. Front-facing camera exists for I presume video chat, but you can’t really aim with it at anything else.

The screen seems nice; it packs the pixels in more densely than the older 7″ tablets and — thankfully — uses real square pixels instead of the awful hex pixel layout so many of the Nexus series phones have been cursed with. It’s still not as sharp as the iPad 3, but it’s a noticeable bump. I haven’t investigated in too much detail, but the Nexus 7 appears to be using Android’s existing support for ‘hdpi’ screens with a 1.5 multiplier between virtual and physical pixels, so apps already know how to handle it and should include suitable artwork. Downside: rounding oddities sometimes lead to series of lines like borders jumping between 1 and 2 pixels. Yeah, I’m picky!

Like the Kindle Fire, the Nexus 7 really pushes its master’s online store. Like the Kindle Fire, I have little interest in buying stuff from their store directly though, so it remains to be seen whether that will be a big selling point for other people.

(I tend to buy books through the Kindle store since I can read them on multiple devices from multiple manufacturers — the “least invasive” DRM with cross-platform support wins. My music comes sometimes from iTunes, sometimes from Amazon, and sometimes ripped from CDs — yes they still exist! I don’t tend to buy movies or TV in any format, generally preferring rental options or … shudder… cable.)

Amazon app store works – as usual you have to enable installation of apps from untrusted sources… the kind of switch I seriously wish Apple would just put on iOS so people can stop jumping through hoops jailbreaking. I’ve only got a couple games from there such as Plants vs Zombies, which runs noticeably snappier on the Nexus 7 vs the Kindle Fire.

Typing with thumbs in landscape portrait mode is comfortable, and a bit less surprise-prone for me than the Fire where I often hit the close keyboard button by mistake. :)

Encryption option for storage is pleasing, seems to work reasonably transparently as on the Galaxy Nexus.

Android 4.1 seems overall similar to 4.0 with a fancier notification display. Most visible change is Chrome, which replaced the older default Android Browser app. It feels snappy, looks good, and has all the expected WebKit mobile and CSS goodies.

Some of us want to diversify and run a non-WebKit browser. Opera Mobile installs and appears to run OK though I haven’t used it much.

Surprisingly you cannot install the current release version of Firefox for Android on the Nexus 7. You can install beta or nightlies and they work, but it’s showing the phone interface, none of the tablet goodies like tab thumbnails along the left. Disappointing, but should be remedied in time.

Note that just as in Android 4.0, you can take screenshots by holding down the power and volume-down buttons. This is slightly more awkward to do than on the Galaxy Nexus as the buttons are all on the same side. Blah!

So in short: so far I like it, by far the best 7″ tablet I’ve used. Not 100% sure a 7″ tablet is a necessity, but it’s more portable than the 10″ers, including being easier to type on when lying in bed or on the couch… so it comes down to “do you need a tablet anyway?” It seems a nice web & reader machine and I expect to take it on a lot of flights… might actually replace my iPod Touch if I can get some music loaded on. :)

Mostly mobile monkeying

Mostly poked at mobile today switched it from an iframe to loading into a div, fixing some of our scroll & click through issues and fixing it for Android 4.

Experimented with iscroll 4 library to handle the scrolling and add zoom, but too slow for now.

A little more poking at EmbedScript experiment; I have a sandbox domain temporarily on a Wikimedia Labs VM. Will show off more on this later.

Galaxy Nexus first weekend impressions

My Galaxy Nexus arrived in the mail on Friday; I’ve been fiddling with it intermittently since. (You’ll go blind!)

Some first & second impressions:

  • It’s huge. It feels like being a little kid trying to use some giant remote control… it’s just big enough to feel awkward in my hand, and to make one-handed usage difficult with some thumb stretching. We’ll see if I get used to it…
  • The screen feels slightly smaller than it “really” is thanks to the use of the bottom edge for software buttons replacing the classic Android hardware buttons — so it’s not *as* big as you’d think from ‘4.65″ screen’. But that space is now reclaimable, and it turns out to be useful when watching full-screen video.
  • The extra high-density screen is beautiful! At regular viewing distance, text is almost as sharp as on my iPod Touch’s Retina display. The hex tile layout of the OLED pixels is much less visible than on my older Nexus One.
  • Having decent internal storage and ditching the awful SD card has made storage management much easier — my Nexus One was constantly whinging that it was out of internal storage space despite having gigs free on the SD card.
  • Interactive performance is MUCH snappier than previous devices I’ve used, and comes closer to what iOS usually manages.
  • Sometimes the Google folks are going overboard on icons; it took me a while to figure out what the hell all the buttons in their Gmail app did since they switched them all from nice obvious buttons like “Archive” to mysterious icons.
  • Our Wikipedia Android app is totally broken on Android 4; we knew that on the emulator, but it’s muuuuch easier to test it on the real device. Some things are being fixed upstream in PhoneGap, others we’ll still have to work out…
  • Transferring devices on Android isn’t quite as easy as iOS. With iOS, I can restore a complete backup of all my application data and preferences from one devices to another via iTunes: my new iPod Touch was restored from my old iPhone 3Gs which I can’t even find anymore (it’s in the apartment *somewhere*) and updated pretty smoothly. The Galaxy Nexus was able to restore some settings and applications from the ‘backup to Google’, but not everything. Many apps needed to be manually reinstalled and/or reconfigured for accounts; games have lost high scores and achievements etc. Arranging my apps on my home screen again was a painstaking task, and very annoying.
  • I remember it being a big deal that you can get to the Camera app directly from the lock screen in Android 4 — but apparently this only goes for if you don’t have a …. lock … on the lock screen. Add pattern lock, and that feature’s gone. Camera is not in fact locked down so that you can activate it and take photos without going through your unlock code. D’oh!
  • I CAN TAKE SCREENSHOTS! FINALLY! THIS IS GOOD!!!!!!! Press power and volume-down and hold for a moment; it’ll do a cute visual transition showing your screenshot and give you a notification that lets you call it back up to view or share it.
  • Did I mention it’s really huge? It feels like it’ll fall out of my pocket at any moment. :P
  • Haven’t had much chance to test 3G/4G reception yet, though the rumor is Verizon will do better in the subway than AT&T. We’ll see on Monday!

What I kinda want is the same phone, but with a 4″ diagonal screen at 1024×640. Make it fit the hand better, rather than going for that hugeness. I don’t watch a lot of movies on my phones, but I do hold it in one hand and read/write news & messages every day.

Image page mockup for mobile

I went ahead and did a quick mockup for some modified JavaScript and CSS for image pages on our mobile interface. Here’s a live demo:

http://toolserver.org/~brion/mockups/mobile-imagepage/


This is using the current existing File: page markup and modifying it with CSS and JavaScript:

  • the extra data sections are hidden by default except for the image, so they don’t get in the way
  • link bar at top is reformatted and links are used to show/hide each section instead of jumping around
  • the image itself is sized down to fit the screen, but using the same medium-resolution version that we started with

I also changed the viewport settings to allow zooming in, which we’ve been thinking about doing anyway.

Result is:

  • by default there’s less clutter on screen
  •  by default the image fits
  • auto-scales to fit when changing orientation
  • on high-resolution screens (iOS with Retina display, Android with 240dpi or 320dpi display) the picture appears much sharper
  • can zoom in for more detail with standard pinch-to-zoom

Confirmed that it works in at least iOS 5 Safari and Android 2.3.6 Browser, haven’t tested all other things.

Checked in with Phil & Patrick — we think this is a good direction to start with and should be easy to include in MobileFrontend extension (it’s a conservative change that doesn’t alter any HTML of the page itself, and just adds some CSS/JS that will be easy to keep and port in future).

Any comments, ideas? For instance the initial view could be made more ‘image viewer’-y by centering things, removing some extra links or reformatting them, etc

Fixing portal styles for mobile

Wednesday!
  • took cats to vet…
  • misc bug notes
  • a little more banging at Firefox/Android
  • started on some classes in Common.css for the two-column layouts, designed to devolve automatically to single-column on narrow windows and mobile. Added to [[Portal:Literature]] and its ‘related’ portals with good results, but incomplete.
  • Biggest remaining issue in those portals is hardcoded tables of links / icons to other related portals. Starting to replace that with a more modern structure that’ll be easier to modify, and also fits both large and small screens. (Similar to <gallery> which used to be a fixed table and now fills your available area.)
  • another misc bug pass…
  • Heading off to Firefox/Android meetup @ Mozilla SF in a bit

vs before: