Ada Initiative: help support women (and everybody else) in Open Source!

The Ada Initiative is raising money for their programs supporting women in open source, open culture, and geekdom in general. They’ve reached about 70% of their fundraising goal… can you help them reach $100k by Saturday?

Like it or not, there are widespread issues with poor behavior, outright harassment, and creepy misogynistic tendencies in our beloved nerd communities:

  • free/open source software
  • gaming
  • Wikipedia
  • science-fiction fandom
  • atheism/skepticism
  • etc

Having grown up, worked, or dabbled in all of those communities, I’m often saddened by the continued negative experiences that many women have had and continue to have. The issues that Ada Initiative deal with affect many men and other social subgroups of all sorts, too — LGBTQ folks, people with depression or other mental illness, etc — which matters to me because so many of my coworkers and friends fall into some of those categories.

I’d like to see us move away from glorifying douchebaggery in all forms, and towards respectful participation for all! Care to help?

 

Donate now

HDMI 1080p60 capture or decimation needed for mobile demos

Dear Lazyweb: anyone know a device that can decimate an HDMI 1080p60 signal to 1080p30 or 1080i60 – OR record HDMI directly at 1080p60 for a reasonable price?

I’ve got a Thunderbolt-connected HDMI recorder I use for demos and screencasts of Wikipedia on smartphones and tablets… but some of the newer devices output at 1080p60, which my low-end capture box doesn’t grok.

The devices I’m seeing that can record 1080p60 are ~$1k and/or are PCIe cards which isn’t useful in a laptop-dominated workplace.

Any recommendations?

Update 2013-08-30: I’m getting the impression that there’s actually a combination of two problems: things wanting to default to 1080p60 and HDCP encryption — which apparently is turned on by default for the HDMI outputs on the Nexus 4 and 10. I found a widget that allegedly strips the HDCP, but I’m still not sure if it’s trying to pump 1080p through there in which case it’s still not working. I’m picking up an EDID sniffer/emulator which should be able to detect the EDID from the capture box (which should say ‘no 1080p60′) and put that in front of the HDCP stripper…. we’ll see if that works. Sigh.

Samsung Galaxy S4 Mini Duos first look (GT-i9192)

So last week was Wikimania 2013 in Hong Kong — it was as always good smashing fun, but it was also one of the first trips I’ve been on where I used a local data SIM in my primary smartphone.

This turned out to be really useful for communicating via online tools (email and Facebook mostly, though some of the other folks used Google Hangouts for group planning), and also let me post some photos during the trip — still have to go over them and do a final push to Flickr! (Previously I’d used an old spare phone for data but it wasn’t able to take decent photos etc.) But on the downside, with the local SIM in nobody could reach me at my regular phone number…

This got me thinking about dual-SIM card phones that can be online on two mobile networks at once — such as to use local data while roaming on your regular home number. Though I travel fairly regularly for conferences, I’d never gotten one before as I’d only seen Chinese brands that I don’t know and am not quite sure I’m willing to trust for software updates. :) At our last hackathon in Amsterdam I carried two phones, one for calls and one for data… effective but bulky.

Turns out there’s a dual-SIM version of the Samsung Galaxy S4 Mini, which I was able to easily obtain in the US via Amazon.

First impressions: size matters

The S4 Mini is definitely smaller than is the trend for the more top-of-the-line phones these days… IMO this is a good thing, as I’ve been whinging about the Nexus 4 being slightly too large to comfortably use in one hand, and the “regular” versions of the S4 and HTC’s One are even huger. Instead, it’s about the size of the older Nexus S; a little wider than an iPhone 5 but about the same length.

This is waaaay more comfortable to use in one hand, though the S4 Mini is also very lightweight — so much so that I’m having to get used to not flipping it over by mistake by being too rough with it. :)

I may actually like using this as a primary phone for the compactness; certainly it’ll be a win for travel — especially compared to carrying two phones!

Display: meh

AMOLED 960×540 screen. Not super great, but functional and sharp enough to read comfortably… the screen is one of the biggest complaints I’ve seen in other reviews of the S4 mini family, though. Personally I’d have preferred a 720p LCD panel if I could make an ‘ideal’ phone in this size to my specifications.

User interface: why, Samsung, why?

Most of the Android devices I’ve personally owned have been Nexus models, running a stock Google user interface, which is to say, a really nice interface since the 4.0 release. This …. is not one of those phones.

The S4 Mini sports Android 4.2.2 Jelly Bean with Samsung’s customized “TouchWiz” interface modifications. It also has hardware home/menu/back buttons which means slightly different gestures versus the software buttons on the Nexus 4.

(My personal pet peeve with the hardware buttons: Android 4.x doesn’t show an overflow menu icon on apps’ action bars. You’re back to the Android 1/2 paradigm of “there might be a menu, try the button and find out!” Bleh.)

Luckily many of the custom behaviors can be disabled, and the standard Google on-screen keyboard can be installed to replace Samsung’s slightly-different version. This helps immensely in making me comfortable using the device.

The dual SIM feature

I was of course most interested in that dual-SIM feature. To test, I put my regular T-Mobile SIM in slot 1, and my Hong Kong temporary data plan’s SIM in slot 2. There’s a ‘SIM Manager’ app which lets you easily select whether you want one, the other, or both SIMs active, and switch the primary data and voice networks between them. The HK SIM came up on roaming, and I was able to easily switch it off until next time it becomes relevant. :)

Unfortunately this feature may also be the thing preventing me from a stock Android experience — there currently isn’t a CyanogenMod build available for this particular model, and I don’t know whether dual-SIM features are available in CM or other more ‘stock’ alternate ROMs. :(

Storage

8 GB of total internal storage (about 5 GB available after the OS), plus a micro-SD card slot (welcome back to manual storage management!) Adequate core for a casual phone and extensible for media storage, hey that ain’t bad.

Optional encryption is supported, enabled separately for the core storage and the SD card.

CPU/GPU/RAM/Blah

Fast enough for my basic needs. See benchmarks in generic S4 mini reviews on the interweb if you like that sort of thing. :)

Next steps

I’ll poke at this phone for a couple weeks and see how I like it; may or may not switch back to the Nexus 4 as a primary phone, but definitely this is going to be coming with me on international trips!

 

 

Chromebook Pixel first look

Screenshot 2013-03-01 at 6.25.18 PM

So, I gave in and picked up a Chromebook Pixel. I admit, I’m seduced by the high-resolution 2560×1700 screen. Nom nom nom so many tiny pixels!

The browser works like you’d expect — all the usual web stuff seems to work, just like Chrome on Linux or Mac or Windows. Like the newer MacBook Pros it has a very high-density display, which looks fantastic. Wikipedia looks great; we properly detect the density and load enhanced-resolution images. (We still have to make the logo high-res, we know that’s a problem. :)

The machine also correctly handles mixed-resolution situations when you plug in an external monitor. (The plug is mini-DVI, conveniently compatible with your existing MacBook VGA, DVI, or HDMI adapters. Yay!) Hook up a regular 1080p monitor and drag a browser window over — it’ll automatically switch to low-density and everything appears the correct size. Move the window back to the main screen, and it pops back into beautiful high-resolution. The main limitation is that windows can’t span screens; except during the move operation itself they display only on one monitor or the other.

But of course you’re all wondering about Chrome OS and its suitability for a medium-high-end laptop. Is it good or bad? Hard to say so far, I’m still exploring it… but be aware the machine isn’t limited to Chrome: it’s easy to unlock to developer mode and either mess with the underlying Linux system or install a stock OS distribution like Ubuntu.

Just to prove it to myself, I went ahead and followed the directions on switching to developer mode, enabling USB and legacy booting, and was able to boot an Ubuntu installer stick into the GUI. (I was stuck for a while unable to boot, but it turned out to be because I had an incomplete .iso download. Whoops!) Unfortunately the trackpad isn’t supported in the stock distro yet; some people have been working on drivers, but I might wait a bit for it to be better integrated. Ubuntu’s Unity desktop also isn’t quite “retina-ready”, and needs some more loving for high-density screens.

In the meantime, I’m trying out Chrome OS as she was meant to be spoken. As a fan of Firefox OS, the idea of a browser-centric OS already appeals to me (though they are very differently implemented under the hood)… but I also know that there are limitations.

In regular (non-developer) mode, you don’t have access to a low-level Linux shell. There is a terminal emulator (press control+alt+T) which can do ssh, so if you do all your development on a server in a shell, that might be good enough for you. :)

But, you can’t install anything that doesn’t run in the browser… but it’s a pretty good browser, and is extended in several ways:

  • all the usual pure HTML5 suspects we know and love
  • Flash plugin
  • special plugin for Netflix — you don’t get that on stock Linux :(
  • PDF viewer
  • NaCl plugin

NaCl is interesting because it allows running sandboxed native code at full speed, within the existing HTML/JavaScript security model. Sorta like Java applets but precompiled on the server. Downside is that it requires compiling to multiple platforms (x86, x86-64, and ARM), but the upside is you can apparently run some pretty fast stuff, including access to OpenGL ES for graphics. This should be pretty good for games, if developers are willing to port… A low-end example is NaClBox which is a port of DosBox to run in the NaCl environment.

(Mozilla meanwhile is pushing emscripten as a platform-neutral alternative to NaCl. This compiles C and C++ programs to JavaScript through a clang/LLVM layer. The overhead of JavaScript compilation and type-safety slows it down compared to NaCl, but it achieves reasonably good performance on modern JS engines and works in more browsers. Combined with WebGL, this is also a way to port C/C++ games to the web. There are some nice examples like the BananaBread FPS demo, which *almost* works on the Chromebook… graphics are lovely but the mouse movement seems to be misdetected.)

As for getting “real work” done… thanks to Apple’s limitations I can’t do iOS development on anything but an actual Mac OS X machine, so I won’t be using it for my current main project. But it can serve well for secondary tasks: poking the wikis, email, calendering, chat, Google Docs and Hangouts, notes in Etherpad, etc. If I can rig up an SSH key, I should be able to ssh into my own or work servers in the terminal to do some maintenance there. In theory, I can do web development through an in-browser IDE like Cloud9 — I’ll try it out on MediaWiki and see what I can report.

I’m having trouble finding a good web-based IRC chat. Freenode’s web chat interface is usable but just …. not very good. I tried Kiwi IRC which has a better UI, but I’m still not quite satisfied with it. Maybe I’ll go back to the terminal. ;)

To be continued…

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. :)

Ultra HD for the desktop?

I’m not convinced that Ultra HD will sell on many TVs for the next few years, but could 4k and 8k resolutions give us some AWESOME desktop “retina”-quality displays? You bet your ass they could… please build a 24″ 4k computer monitor and price it reasonably, manufacturers of the world!

Tags: #iwillbuythis #pleasemakeit

Wikipedia is 12 years old today

It’s January 15 — Wikipedia Day. 12 years ago, the original version of Wikipedia was unleashed on the world. Still going strong; still insane but still cool and still trying to find new ways to be awesome. :)

Next year Wikipedia will become a teenager… what will we see it innovating on then? More mobile interfaces? Better user-to-user interaction and notifications? Sweet sweet wysiwig editing? Hopefully, if schedules are met! Meet us next year and we’ll see…

In related news — today Wikivoyage officially comes out of beta. Wikivoyage began separately but its users recently agreed to merge into the Wikimedia family. Awesome! Welcome everybody!

Firefox OS test phone!

So we got a Firefox OS test phone at Wikimedia, and of course as the resident Firefox-lover I took it for testing. :)

This isn’t the final hardware — it’s a reflashed Android phone — but apparently specs are close.

Performance

Mozilla is currently aiming at the lower-end market in developing nations rather than trying to battle it out with Apple and Samsung etc at the high-end. The test device is a lower-end Android phone (built by ZTE for the Turkish market) with a medium-resolution screen (320×480) like the pre-Retina iPhone, and a slower processor than the latest whiz-bang phones have.

UI smoothness ranges from “pretty good” to “sluggish” depending on what’s running. There’s definitely still room for optimization and I’m hoping to see performance improve, but it’s usable enough for a low-end device.

I can’t seem to get on T-Mobile’s 3G network, so I’m stuck on Edge when out of wifi range… brings back memories of my original-model iPhone. :)

UI style

Firefox OS uses a single hardware “home” button, like iOS. The test device has the full set of 4 Android hardware buttons, so I had to get out of the habit of going for the ‘back’ button… but this won’t be a problem on final devices. Long-pressing the home button opens a “card view” application switcher, which reminds me of WebOS or the BlackBerry PlayBook — you can explicitly close out an app by flicking it towards the top of the screen.

The home screen is relatively straightforward; there’s an iOS-like page grid of applications off to the right; on the left is an “everything.me” tab with lots of links to popular web sites… none of which load. I’m sure this will be fixed shortly. In the meantime I’m ignoring those links and using the browser, installable apps, or making my own homescreen bookmarks from the browser.

The browser app has a nice proper Firefox icon and looks much like Firefox on Android but with fewer options. Multiple tabs are available as expected from the upper-right corner, and back/forward and bookmark buttons are available on a toolbar at the bottom. There’s a bug where sometimes the toolbar covers up part of a web page, but it looks like this is being fixed.

You can bookmark a page either within the browser’s bookmarks or to the homescreen — a homescreen bookmark opens fullscreen like a standalone app (but with a collapsed toolbar available for back/forward navigation) instead of in the browser app. This is usually ok, but links opened from those apps tend to open in a “popup”-like closable window instead of opening the browser… so you can’t bookmark an opened link easily. :(

App lifecycle

An ‘application’ on Firefox OS is basically a web page running in an isolated process… you can kind of think of it like separate browser tabs, sorta. It’s a clean-sounding model, but there are some lifecycle issues.

When memory runs low, background apps may get closed. As far as I can tell they don’t get any sort of warning or have a chance to set relative priority; I’ve seen the Music app get auto-closed while playing music because I opened two other apps, which is kinda not cool.

In contrast, iOS for instance sends explicit low-memory warnings to apps, and gives a backgrounding app the chance to declare that it’s running audio or a download that needs to continue… Android also seems to not kill active background tasks so aggressively in my experience.

Hopefully this will be improved… added a note on a bug.

Apps don’t seem to be very consistent about saving state when they background either, so for instance you can’t just reopen Music and have it continue from where you left off. :(

Firefox Sync

Sync appears to be missing currently. This is a shame, as bookmark/history/tab/password syncing between desktop/laptop devices and with my Android devices is the killer feature that gets me to use Firefox on a phone.

Hopefully this will come in the future… filed an enhancement bug.

Offline access

Most built-in apps appear to be stored on the actual phone, but some like the Marketplace must be online and will just fail out when loaded offline.

A lot of the third-party apps I’ve tried, including games and utilities, seem to be hosted on web sites and don’t have offline manifests, so you can’t play Galactians on the subway unless it’s been cached recently. :(

App developers will need to get used to doing offline AppCache manifests properly…

Software to live by

I picked up a prepaid T-Mobile SIM card so I can use the test phone on my daily commute. This is about 10-15 minutes of walking, 10-15 minutes of streetcar, and then another few minutes in the subway — a nice workout for wireless connectivity and disconnectivity…

  • We’re still working on our Wikipedia app, ported over from the PhoneGap-based Android/iOS one — I have a copy running at http://ff.leuksman.com/ but it doesn’t work offline yet. Needs a little more work. :) Our mobile web interface also works just fine, and (since we made some recent fixes) correctly forwards you if you go to the desktop site.
  • NextBus works — though the GPS is a bit slow on this device — but doesn’t automatically detect that it’s a smartphone. Filed an evangelism bug.
  • Gmail loads up in desktop mode, which is pretty unusable on a tiny screen. Filed an evangelism bug, but not much hope right now as Firefox for Android gets a horrible primitive interface instead of the nice one that iOS and Android browser/Chrome get. :(
  • Also tried setting up my Gmail account with the built-in mail app; initially had some problems with the setup but got it working. Since I’m using 2-factor auth I had to set up an app-specific password. Sends and receives ok, but the interface is a bit primitive and I can’t easily switch to use my alternate ‘from’ addresses.
  • Twitter has an official app available in the Mozilla Marketplace. It doesn’t seem to work offline, but for catching up on friends’ tweets while connectivity is there it seems to work just fine and looks nice.
  • Facebook doesn’t have an app, but its touch-friendly web interface now works pretty nicely in Firefox, and can be easily bookmarked to the home screen. There are a few bugs on the board (link me) but I’ve had no troubles reading and posting basic updates. Facebook’s apps don’t work offline anyway, so this seems fine.
  • There’s not a default note-taking application… I ended up installing a little open-source app ‘Prio Note’ which lets you save short notes and filter by priority; handy enough for typing notes like “Kindle didn’t work” but it’s a bit flaky offline. On the plus side it’s open source so I may submit patches. ;)
  • There’s also an official Evernote “app” in the Marketplace… but it just points to their web interface, which doesn’t fit on a mobile phone screen once you get past the sign-in screen. Gave them a 1-star review. >:(
  • I tend to use my phones for reading, so I went looking for a Kindle app… no app available, but Kindle Cloud Reader sortof works. Unfortunately it’s designed for tablet and laptop/desktop screens and the UI doesn’t fit on the phone, so it’s not actually usable although I can download books and read them (as long as I only need the upper-left quarter of the page). With some UI work by Amazon this could make a fine Firefox OS app though.
  • Pandora has no app, and the web interface should work but just kicks out an “upgrade your browser or Flash” message. :( As an alternative, there’s a built-in app that’s an FM radio tuner. o_O Remember radio? It’s like Pandora but you can’t skip bad songs. ;) Filed an evangelism bug.
  • Built-in Music app plays .mp3 and (non-DRM’ed) .m4a files copied to the SD card with no trouble. Whee! UI is a little sluggish but works… but often pauses or dies while in the background.

 

Debugging

There’s some way to hook up the Firefox web inspector and debugger but I haven’t gotten into that level of detail yet. You can use the Android SDK tools for some basic things like watching the device log, taking screen shots, and getting a shell.

Storage

This device has a couple free gigs of device storage (for apps and data) and a micro-SD card with a few gigs for media storage — photos and videos taken with the camera save to the SD card, and the Music app looks for music there.

The SD card can be mounted over USB by enabling USB Mass Storage, and all seems to work as you expect — iPhoto on your Mac will slurp in the images, or you can copy files manually, whatever.

As a phone

Seems to work — I’ve made some calls to myself and it makes noise. :) Plan to use it some more just to try it out, but I’m not a big phone talker.