<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Henri Bergius - Mobility</title>
    <description>Latest posts in category 'mobility'</description>
    <link>https://bergie.iki.fi</link>
    <language>en</language>
    <lastBuildDate>Tue, 05 May 2026 19:17:08 +0000</lastBuildDate>
    
    <item>
      
      <title>Mobile blogging, the past and the future</title>
      <description>&lt;p&gt;This blog has been running more or less continuously since mid-nineties. The site has existed in multiple forms, and with different ways to publish. But what’s common is that at almost all points there was a mechanism to publish while on the move.&lt;/p&gt;

&lt;h2 id=&quot;psion-documents-over-ftp&quot;&gt;Psion, documents over FTP&lt;/h2&gt;

&lt;p&gt;In the early 2000s we were into adventure motorcycling. To be able to share our adventures, we implemented a way to publish blogs while on the go. The device that enabled this was the &lt;a href=&quot;https://en.wikipedia.org/wiki/Psion_Series_5&quot;&gt;Psion Series 5&lt;/a&gt;, a handheld computer that was very much a device ahead of its time.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/psions5.jpg&quot; alt=&quot;Psion S5, also known as the Ancestor&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The Psion had a reasonably sized keyboard and a good native word processing app. And battery life good for weeks of usage. Writing while underway was easy. The Psion could use a mobile phone as a modem over an infrared connection, and with that we could upload the documents to a server over FTP.&lt;/p&gt;

&lt;p&gt;Server-side, a cron job would grab the new documents, converting them to HTML and adding them to our CMS.&lt;/p&gt;

&lt;p&gt;In the early days of GPRS, getting this to work while roaming was quite tricky. But the system served us well for years.&lt;/p&gt;

&lt;p&gt;If we wanted to include photos to the stories, we’d have to find an Internet cafe.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://bergie.iki.fi/blog/to-to-alps/&quot;&gt;To the Alps&lt;/a&gt; is a post from these times. Lots more in the &lt;a href=&quot;https://bergie.iki.fi/blog/category/motorcycles/&quot;&gt;motorcycling category&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;sms-and-mms&quot;&gt;SMS and MMS&lt;/h2&gt;

&lt;p&gt;For an even more mobile setup, I implemented an SMS-based blogging system. We had an old phone connected to a computer back in the office, and I could write to my blog by simply sending a text. These would automatically end up as a new paragraph in the latest post. If I started the text with &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NEWPOST&lt;/code&gt;, an empty blog post would be created with the rest of that message’s text as the title.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://bergie.iki.fi/blog/in-the-caucasus/&quot;&gt;In the Caucasus&lt;/a&gt; is a good example of a post from this era&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As I got into &lt;a href=&quot;https://bergie.iki.fi/blog/category/geo/&quot;&gt;neogeography&lt;/a&gt;, I could also send a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NEWPOSITION&lt;/code&gt; message. This would update my position on the map, connecting weather metadata to the posts.&lt;/p&gt;

&lt;p&gt;As camera phones became available, we wanted to do pictures too. For the Death Monkey rally where we rode minimotorcycles from Helsinki to Gibraltar, we implemented an MMS-based system. With that the entries could include both text and pictures. But for that you needed a gateway, which was really only realistic for an event with sponsors.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20061013183009/http://www.deathmonkey.org/view/mystery-of-the-missing-monkey.html&quot;&gt;Mystery of the Missing Monkey&lt;/a&gt; is typical. Some more in &lt;a href=&quot;https://web.archive.org/web/20060804205237/http://www.deathmonkey.org/&quot;&gt;Internet Archive&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;photos-over-email&quot;&gt;Photos over email&lt;/h2&gt;

&lt;p&gt;A much easier setup than MMS was to slightly come back to the old Psion setup, but instead of word documents, sending email with picture attachments. This was something that the new breed of (pre-iPhone) smartphones were capable of. And by now the roaming question was mostly sorted.&lt;/p&gt;

&lt;p&gt;And so my blog included a new “moblog” section. This is where I could share my daily activities as poor-quality pictures. Sort of how people would use Instagram a few years later.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/bergie_layout_2006.jpg&quot; alt=&quot;My blog from that era&quot; /&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20110604011733/http://bergie.iki.fi/moblog&quot;&gt;Internet Archive has some of my old moblogs&lt;/a&gt; but nowadays, I post similar stuff &lt;a href=&quot;https://pixelfed.de/bergie&quot;&gt;on Pixelfed&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;pause&quot;&gt;Pause&lt;/h2&gt;

&lt;p&gt;Then there was sort of a long pause in mobile blogging advancements. Modern smartphones, data roaming, and WiFi hotspots had become ubiquitous.&lt;/p&gt;

&lt;p&gt;In the meanwhile the blog also got &lt;a href=&quot;https://bergie.iki.fi/blog/blog-2012-edition/&quot;&gt;migrated to a Jekyll-based system&lt;/a&gt; hosted on AWS. That means the old Midgard-based integrations were off the table.&lt;/p&gt;

&lt;p&gt;And I traveled off-the-grid rarely enough that it didn’t make sense to develop a system.&lt;/p&gt;

&lt;p&gt;But now that we’re &lt;a href=&quot;https://lille-oe.de&quot;&gt;sailing offshore&lt;/a&gt;, that has changed. Time for new systems and new ideas. Or maybe just a rehash of the old ones?&lt;/p&gt;

&lt;h2 id=&quot;starlink-internet-from-outer-space&quot;&gt;Starlink, Internet from Outer Space&lt;/h2&gt;

&lt;p&gt;Most cruising boats - ours included - now run the Starlink satellite broadband system. This enables full Internet, even in the middle of an ocean, even video calls! With this, we can use normal blogging tools. The usual one for us is &lt;a href=&quot;https://gitjournal.io&quot;&gt;GitJournal&lt;/a&gt;, which makes it easy to write Jekyll-style Markdown posts and push them to GitHub.&lt;/p&gt;

&lt;p&gt;However, Starlink is a complicated, energy-hungry, and fragile system on an offshore boat. The policies might change at any time preventing our way of using it, and also the dishy itself, or the way we power it may fail.&lt;/p&gt;

&lt;p&gt;But despite what you’d think, even on a nerdy boat like ours, loss of Internet connectivity is not an emergency. And this is where the old-style mobile blogging mechanisms come handy.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Any of the &lt;a href=&quot;https://lille-oe.de/2025/&quot;&gt;2025 Atlantic crossing posts&lt;/a&gt; is a good example of this setup in action&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;inreach-texting-with-the-cloud&quot;&gt;Inreach, texting with the cloud&lt;/h2&gt;

&lt;p&gt;Our backup system to Starlink is the Garmin Inreach. This is a tiny battery-powered device that connects to the Iridium satellite constellation. It allows tracking as well as basic text messaging.&lt;/p&gt;

&lt;p&gt;When we head offshore we always enable tracking on the Inreach. This allows both our blog and our friends ashore to follow our progress.&lt;/p&gt;

&lt;p&gt;I also made a simple integration where text updates sent to &lt;a href=&quot;https://share.garmin.com/home&quot;&gt;Garmin MapShare&lt;/a&gt; get fetched and published on our blog. Right now this is just plain text-based entries, but one could easily implement a command system similar to what I had over SMS back in the day.&lt;/p&gt;

&lt;p&gt;One benefit of the Inreach is that we can also take it with us when we go on land adventures. And it’d even enable rudimentary communications if we found ourselves in a liferaft.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;There are &lt;a href=&quot;https://github.com/tabeaeggler/MarineGRIB-InReach-Transmitter&quot;&gt;various InReach integration hacks&lt;/a&gt; that could be used for more sophisticated data transfer&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;sailmail-and-email-over-hf-radio&quot;&gt;Sailmail and email over HF radio&lt;/h2&gt;

&lt;p&gt;The other potential backup for Starlink failures would be to go seriously old-school. It is possible to get email access via a SSB radio and a Pactor (or &lt;a href=&quot;https://rosmodem.wordpress.com&quot;&gt;Vara&lt;/a&gt;) modem.&lt;/p&gt;

&lt;p&gt;Our boat is already equipped with an isolated aft stay that can be used as an antenna. And with the popularity of Starlink, many cruisers are offloading their old HF radios.&lt;/p&gt;

&lt;p&gt;Licensing-wise this system could be used either as a marine HF radio (requiring a Long Range Certificate), or amateur radio. So that part is something I need to work on. Thankfully post-COVID, radio amateur license exams can be done online.&lt;/p&gt;

&lt;p&gt;With this setup we could send and receive text-based email. The &lt;a href=&quot;https://sailmail.com&quot;&gt;Airmail&lt;/a&gt; application used for this can even do some automatic templating for position reports. We’d then need a mailbox that can receive these mails, and some automation to fetch and publish.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sailblogs.com/wiki/index.php/Using_SailBlogs_Remote&quot;&gt;Sailmail&lt;/a&gt; and &lt;a href=&quot;https://www.noforeignland.com/help/boat/move-email&quot;&gt;No Foreign Land&lt;/a&gt; support structured data via email to update position. Their formats could be useful inspiration&lt;/li&gt;
&lt;/ul&gt;
</description>
      <pubDate>Thu, 05 Jun 2025 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fmobile-blogging%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/mobile-blogging/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/mobile-blogging/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Managing a developer shell with Docker</title>
      <description>&lt;p&gt;When I’m not in &lt;a href=&quot;https://flowhub.io/ide/&quot;&gt;Flowhub-land&lt;/a&gt;, I’m used to developing software in a quite customized command line based development environment. Like for many, the cornerstones of this for me are &lt;a href=&quot;https://www.vim.org&quot;&gt;vim&lt;/a&gt; and &lt;a href=&quot;https://github.com/tmux/tmux/wiki&quot;&gt;tmux&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As customization increases, it becomes important to have a way to manage that and distribute it across the different computers. For years, I’ve used a &lt;a href=&quot;https://github.com/bergie/dotfiles&quot;&gt;dotfiles repository&lt;/a&gt; on GitHub together with &lt;a href=&quot;https://www.gnu.org/software/stow/&quot;&gt;GNU Stow&lt;/a&gt; for this.&lt;/p&gt;

&lt;p&gt;However, this still means I have to install all the software and tools before I can have my environment up and running.&lt;/p&gt;

&lt;h2 id=&quot;using-docker&quot;&gt;Using Docker&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://www.docker.com&quot;&gt;Docker&lt;/a&gt; is a tool for building and running software in a containerized fashion. Recently &lt;a href=&quot;https://github.com/tiagodeoliveira&quot;&gt;Tiago&lt;/a&gt; gave me the inspiration to use Docker not only for distributing production software, but also for actually running my development environment.&lt;/p&gt;

&lt;p&gt;Taking ideas from &lt;a href=&quot;https://github.com/tiagodeoliveira/docker-shell&quot;&gt;his setup&lt;/a&gt;, I built upon my existing dotfiles and built a &lt;a href=&quot;https://hub.docker.com/r/bergie/shell/&quot;&gt;reusable developer shell container&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;With this, I only need Docker installed on a machine, and then I’m two commands away from having my normal development environment:&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;docker volume create workstation
&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;docker run &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; ~/Projects:/projects &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; workstation:/root &lt;span class=&quot;nt&quot;&gt;-v&lt;/span&gt; ~/.ssh:/keys &lt;span class=&quot;nt&quot;&gt;--name&lt;/span&gt; workstation &lt;span class=&quot;nt&quot;&gt;--rm&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-it&lt;/span&gt; bergie/shell
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here’s how it looks in action:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/800x/vim-developer-shell-docker.png&quot; alt=&quot;Working on NoFlo inside Docker shell&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Once I update my Docker setup (for example to install or upgrade some tool), I can get the latest version on a machine with:&lt;/p&gt;

&lt;div class=&quot;language-shell highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;docker pull bergie/shell
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;At least in theory this should give me a fully identical working environment regardless of the host machine. Linux VPS, a MacBook, or a Windows machine should all be able to run this. And soon, this should also work out of the box &lt;a href=&quot;https://chromeunboxed.com/news/chromebook-containers-virtual-machine-crostini-google-io&quot;&gt;on Chromebooks&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;setting-this-up&quot;&gt;Setting this up&lt;/h2&gt;

&lt;p&gt;The basics are pretty simple. I already had a repository for my dotfiles, so I only needed to write &lt;a href=&quot;https://github.com/bergie/dotfiles/blob/master/Dockerfile&quot;&gt;a Dockerfile&lt;/a&gt; to install and set up all my software.&lt;/p&gt;

&lt;p&gt;To make things even easier, I &lt;a href=&quot;https://github.com/bergie/dotfiles/blob/master/.travis.yml&quot;&gt;configured Travis&lt;/a&gt; so that every time I push some change to the dotfiles repository, it will create and publish a new container image.&lt;/p&gt;

&lt;h2 id=&quot;further-development-ideas&quot;&gt;Further development ideas&lt;/h2&gt;

&lt;p&gt;So far this setup seems to work pretty well. However, here are some ideas for further improvements:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;ARM build&lt;/strong&gt;: Sometimes I need to work on Raspberry Pis. It might be nice to cross-compile an ARM version of the same setup&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Key management&lt;/strong&gt;: Currently I create new SSH keys for each host machine, and then upload them to the relevant places. With this setup I could use a USB stick, or maybe even a &lt;a href=&quot;https://www.yubico.com/products/yubikey-hardware/&quot;&gt;Yubikey&lt;/a&gt; to manage them&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Application authentication&lt;/strong&gt;: Since the Docker image is public, it doesn’t come with any secrets built in. This means I still need to authenticate with tools like NPM and Travis. It might be interesting to manage these together with my SSH keys&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;SSH host&lt;/strong&gt;: with some tweaking it might be possible to run the same container on cloud services. Then I’d need a way to get my SSH public keys there and start an SSH server&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you have ideas on how to best implement the above, please &lt;a href=&quot;mailto:henri.bergius@iki.fi&quot;&gt;get in touch&lt;/a&gt;.&lt;/p&gt;
</description>
      <pubDate>Thu, 19 Apr 2018 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fdocker-developer-shell%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/docker-developer-shell/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/docker-developer-shell/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Atreus: Building a custom ergonomic keyboard</title>
      <description>&lt;p&gt;As mentioned in my &lt;a href=&quot;https://bergie.iki.fi/blog/working-on-android-2017/&quot;&gt;Working on Android post&lt;/a&gt;, I’ve been using a mechanical keyboard for a couple of years now. Now that I work &lt;a href=&quot;https://bergie.iki.fi/blog/flowhub-ug/&quot;&gt;on Flowhub&lt;/a&gt; from home, it was a good time to re-evaluate the whole work setup. As far as regular keyboards go, the MiniLa was nice, but I wanted something more compact and ergonomic.&lt;/p&gt;

&lt;h2 id=&quot;the-atreus-keyboard&quot;&gt;The Atreus keyboard&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/ready-2.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/ready-2-small.jpg&quot; alt=&quot;My new Atreus&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Atreus is a 40% ergonomic mechanical keyboard designed by &lt;a href=&quot;https://technomancy.us/&quot;&gt;Phil Hagelberg&lt;/a&gt;. It is an &lt;a href=&quot;https://github.com/technomancy/atreus&quot;&gt;open hardware design&lt;/a&gt;, but he also &lt;a href=&quot;https://atreus.technomancy.us/&quot;&gt;sells kits&lt;/a&gt; for easier construction. From the kit introduction:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The Atreus is a small mechanical keyboard that is based around the shape of the human hand. It combines the comfort of a split ergonomic keyboard with the crisp key action of mechanical switches, all while fitting into a tiny profile.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;My use case was also quite travel-oriented. I wanted a small keyboard that would enable me to work with it also on the road. There are many other small-ish DIY keyboard designs like &lt;a href=&quot;https://olkb.com/planck/&quot;&gt;Planck&lt;/a&gt; and &lt;a href=&quot;http://www.40percent.club/2016/11/gherkin.html&quot;&gt;Gherkin&lt;/a&gt; available, but Atreus had the advantage of better ergonomics. I really liked the design of the &lt;a href=&quot;https://www.ergodox.io&quot;&gt;Ergodox&lt;/a&gt; keyboard, and Atreus essentially is &lt;a href=&quot;https://technomancy.us/173&quot;&gt;that made mobile&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;I found the split halves and relatively large size (which are fantastic for stationary use at a desk) make me reluctant to use it on the lap, at a coffee shop, or on the couch, so that’s the primary use case I’ve targeted with the Atreus. It still has most of the other characteristics that make the Ergodox stand out, like mechanical Cherry switches, staggered columns instead of rows, heavy usage of the thumbs, and a hackable microcontroller with flexible firmware, but it’s dramatically smaller and lighter&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I had the opportunity to try a kit-built Atreus in the &lt;a href=&quot;https://www.meetup.com/Berlin-Mechanical-Keyboards-Input-Devices-Meetup/&quot;&gt;Berlin Mechanical Keyboard meetup&lt;/a&gt;, and it felt nice. It was time to start the project.&lt;/p&gt;

&lt;h2 id=&quot;sourcing-the-parts&quot;&gt;Sourcing the parts&lt;/h2&gt;

&lt;p&gt;When building an Atreus the first decision is whether to go with the kit or &lt;a href=&quot;http://imgur.com/a/qcgdF&quot;&gt;hand-wire it yourself&lt;/a&gt;. Building from a kit is certainly easier, but since I’m a member of &lt;a href=&quot;https://c-base.org/&quot;&gt;a hackerspace&lt;/a&gt;, doing a hand-wired build seemed like the way to go.&lt;/p&gt;

&lt;p&gt;To build a custom keyboard, you need:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Switches: in my case 37 Cherry MX blues and 5 Cherry MX blacks&lt;/li&gt;
  &lt;li&gt;Diodes: one 1N4148 per switch&lt;/li&gt;
  &lt;li&gt;Microcontroller: a Arduino Pro Micro on my keyboard&lt;/li&gt;
  &lt;li&gt;Keycaps: started with recycled ones and later upgraded to DSA blanks&lt;/li&gt;
  &lt;li&gt;Case: got a set of laset-cut steel plates&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even though Cherry — the maker of the most common mechanical key switches — is a German company, it is quite difficult to get switches in retail here. Luckily a fellow hackerspace member had just dismantled some old mechanical keyboards, and so I was able to get the switches I needed via barter.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/keyswitches.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/keyswitches-small.jpg&quot; alt=&quot;Keyswitches&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Cherry MX blues are tactile clicky switches that feel super-nice to type on, but are quite loud. For modifiers I went with Cherry MX blacks that are linear. This way there is quite a clear difference in feel between keys you typically hold down compared to the ones you just press.&lt;/p&gt;

&lt;p&gt;The diodes and the microcontroller I ordered from Amazon for about 20€ total.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/microcontroller.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/microcontroller-small.jpg&quot; alt=&quot;Arduino Pro Micro&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At first I used a set of old keycaps that I got with the switches, but once the keyboard was up and running I upgraded to a very nice set of blank DSA-profile keycaps that I ordered &lt;a href=&quot;https://www.aliexpress.com/store/2230037&quot;&gt;from AliExpress&lt;/a&gt; for 30€. That set came with enough keycaps that I’ll have myself covered if I ever build a second Atreus.&lt;/p&gt;

&lt;p&gt;All put together, I think the parts ended up costing me around 100€ total.&lt;/p&gt;

&lt;h2 id=&quot;preparations&quot;&gt;Preparations&lt;/h2&gt;

&lt;p&gt;When I received all the parts, there were some preparation steps to be made. Since the key switches were 2nd hand, I had to start by dismantling them and removing old diodes that had been left inside some of them.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/keyswitches-prep.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/keyswitches-prep-small.jpg&quot; alt=&quot;Opening the key switches&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The keycaps I had gotten with the switches were super grimy, and so I ended up sending them to the washing machine. After that you could see that they were not new, but at least they were clean.&lt;/p&gt;

&lt;p&gt;With the steel mounting plate there had been a slight misunderstading, and the plates I received were a few millimeters thicker than needed, so the switches wouldn’t “click” in place. While this could’ve been worked around with hot glue, we ended up filing the mounting holes down to the right thickness.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/filing-plate-1.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/filing-plate-1-small.jpg&quot; alt=&quot;Filing the plate&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/filing-plate-2.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/filing-plate-2-small.jpg&quot; alt=&quot;Little bit of help&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;wiring-the-keyboard&quot;&gt;Wiring the keyboard&lt;/h2&gt;

&lt;p&gt;Once the mounting plate was in the right shape, I clicked the switches in and it was time to solder.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/switches-mounted.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/switches-mounted-small.jpg&quot; alt=&quot;All switches in place&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hand-wiring keyboards is not that tricky. You have to attach a diode to each keyswitch, and then connect each row together via the diodes.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/diode-rows-1.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/diode-rows-1-small.jpg&quot; alt=&quot;Connecting diodes&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/diode-rows-2.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/diode-rows-2-small.jpg&quot; alt=&quot;First row ready&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The two thumb keys are wired to be on the same column, but different rows.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/diode-rows-3.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/diode-rows-3-small.jpg&quot; alt=&quot;All rows ready diodes&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then each column is connected together via the other pin on the switches.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/columns.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/columns-small.jpg&quot; alt=&quot;Soldering columns&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is how the matrix looks like:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/wiring-ready.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/wiring-ready-small.jpg&quot; alt=&quot;Completed matrix&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After these are done, connect a wire from each column, and each row to a I/O pin on the microcontroller.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/soldering.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/soldering-small.jpg&quot; alt=&quot;Adding column wires&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you haven’t done it earlier, this is a good stage to test all connections with a multimeter!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/soldering-microcontroller.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/soldering-microcontroller-small.jpg&quot; alt=&quot;Connecting the microcontroller&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;firmware&quot;&gt;Firmware&lt;/h2&gt;

&lt;p&gt;After finishing the wiring, I downloaded the &lt;a href=&quot;https://github.com/qmk/qmk_firmware&quot;&gt;QMK firmware&lt;/a&gt;, changed the &lt;a href=&quot;https://github.com/bergie/qmk_firmware/commit/1902fc2affcd4cb1cbe2225b8c0736f57eca5646&quot;&gt;PIN mapping&lt;/a&gt; for how my Atreus is wired up, switched the layout to &lt;a href=&quot;https://colemak.com/&quot;&gt;Colemak&lt;/a&gt;, and the keyboard was ready to go.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/ready-1.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/ready-1-small.jpg&quot; alt=&quot;Atreus in use&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Don’t mind the key labels in the picture above. These are the second-hand keycaps I started with. Since then I’ve switched to &lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/ready-2.jpg&quot;&gt;blank ones&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;usb-c&quot;&gt;USB-C&lt;/h2&gt;

&lt;p&gt;The default Atreus design has the USB cable connected directly to the microcontroller, meaning that you’ll have to open the case to change the cable. To mitigate that I wanted to add a USB breakout board to the project, and this being 2017, it felt right to go with &lt;a href=&quot;https://en.wikipedia.org/wiki/USB-C&quot;&gt;USB-C&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/usb-breakout.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/usb-breakout-small.jpg&quot; alt=&quot;USB-C breakouts&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I found some cheap USB-C breakout boards from AliExpress. Once they arrived, it was time to figure out how the spec works. Since USB-C is quite new, there are very few resources available on how to use it with microcontrollers. These tutorials were quite helpful:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.scorpia.co.uk/2016/03/17/using-usb-type-c-on-hobyist-projects/&quot;&gt;Using USB-C on hobbyist projects&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.embedded.com/electronics-blogs/benson-s-blocks/4442214/USB-Type-C-in-a-Micro-B-world&quot;&gt;USB Type C in a Micro-B world&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is how we ended up wiring the breakout board. After these you only have four wires to connect to the microcontroller: ground, power, and the positive and negative data pins.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/usb-breakout-wired.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/usb-breakout-wired-small.jpg&quot; alt=&quot;USB-C breakout with wiring&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://sgotti.me/post/atreus-keyboard-build-log/&quot;&gt;This Atreus build log&lt;/a&gt; was useful for figuring out where to connect the USB wires on the Pro Micro. Once all was done, I had a custom, USB-C keyboard!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/usb-ready.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/usb-ready-small.jpg&quot; alt=&quot;USB-C keyboard&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;next-steps&quot;&gt;Next steps&lt;/h2&gt;

&lt;p&gt;Now I have the Atreus working nicely on my new standing desk. Learning Colemak is a bit painful, but the keyboard itself feels super nice!&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/standing-desk.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/atreus-build/standing-desk-small.jpg&quot; alt=&quot;New standing desk&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;However, I’d still like to CNC mill a proper wooden case for the keyboard. I may update this post once that happens.&lt;/p&gt;

&lt;p&gt;I’m also considering to order an &lt;a href=&quot;https://atreus.technomancy.us/&quot;&gt;Atreus kit&lt;/a&gt; so I’d have a second, always packed for travel keyboard. The kit comes with a PCB, which might work better at airport security checks than the hand-wired build.&lt;/p&gt;

&lt;p&gt;Another thing that is quite tempting is to make a custom firmware with &lt;a href=&quot;http://microflo.org/&quot;&gt;MicroFlo&lt;/a&gt;. I have no complaints on how QMK works, but it’d be super-cool to use our &lt;a href=&quot;https://flowhub.io/&quot;&gt;visual programming tool&lt;/a&gt; to tweak the keyboard live.&lt;/p&gt;

&lt;p&gt;Big thanks to &lt;a href=&quot;http://github.com/technomancy&quot;&gt;Technomancy&lt;/a&gt; for the Atreus design, and to XenGi for all the help during the build!&lt;/p&gt;
</description>
      <pubDate>Thu, 20 Apr 2017 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fatreus-build-log%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/atreus-build-log/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/atreus-build-log/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Working on an Android tablet, 2017 edition</title>
      <description>&lt;p&gt;Back in 2013 I was &lt;a href=&quot;https://bergie.iki.fi/blog/working-on-android/&quot;&gt;working exclusively on an Android tablet&lt;/a&gt;. Then with the &lt;a href=&quot;https://bergie.iki.fi/blog/noflo-kickstarter-launch/&quot;&gt;NoFlo Kickstarter&lt;/a&gt; I needed a device with a desktop browser. What followed were brief periods working on a Chromebook, on a 12” MacBook, and even an iPad Pro.&lt;/p&gt;

&lt;p&gt;But from April 2016 onwards I’ve been again working with an Android device. Some people have asked me about my setup, and so here is an update.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/pixel_c_travelers_notebook.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/pixel_c_travelers_notebook_small.jpg&quot; alt=&quot;Information technology&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;why-work-on-a-tablet&quot;&gt;Why work on a tablet?&lt;/h2&gt;

&lt;p&gt;When I started on this path in 2013, using a tablet for “real work” was considered crazy. While every story on tablet productivity still brings out the people claiming &lt;em&gt;it is not a real computer for real work&lt;/em&gt;, using &lt;em&gt;tablets for real work&lt;/em&gt; is becoming more and more common.&lt;/p&gt;

&lt;p&gt;A big contributor to this has been the plethora of work-oriented tablets and convertibles released since then. Microsoft’s popular &lt;a href=&quot;https://en.m.wikipedia.org/wiki/Microsoft_Surface&quot;&gt;Surface Pro line&lt;/a&gt; brought the PC to tablet form factor, and Apple’s &lt;a href=&quot;https://en.m.wikipedia.org/wiki/IPad_Pro&quot;&gt;iPad Pro devices&lt;/a&gt; gave the iPad a keyboard.&lt;/p&gt;

&lt;p&gt;Here are couple of great posts talking about how it feels to work on an iPad:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://mattgemmell.com/rediscovering-the-ipad/&quot;&gt;Rediscovering the iPad&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.macworld.com/article/3130710/ios/when-traveling-my-ipad-is-essential-and-my-mac-is-the-add-on.html&quot;&gt;When traveling, my iPad is essential and my Mac is the add-on&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.macstories.net/stories/one-year-of-ipad-pro/&quot;&gt;A Computer for Everything: One Year of iPad Pro&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://brooksreview.net/2016/12/evovling-ipad-desktop-usage/&quot;&gt;Evolving iPad Desktop Usage&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://medium.learningbyshipping.com/my-tablet-has-stickers-8f7ab9022ebd#.vqpn9n2fi&quot;&gt;My Tablet Has Stickers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With all the activity going on, one could claim using a tablet for work has been normalized. But why work on a tablet instead of a “real computer”? Here are some reasons, at least for me:&lt;/p&gt;

&lt;h3 id=&quot;free-of-legacy-cruft&quot;&gt;Free of legacy cruft&lt;/h3&gt;

&lt;p&gt;Desktop operating systems have become clunky. Window management. File management. Multiple ways to discover, install, and uninstall applications. Broken notification mechanisms.&lt;/p&gt;

&lt;p&gt;With a tablet you can bypass pretty much all of that, and jump into a simpler, cleaner interface designed for the modern connected world.&lt;/p&gt;

&lt;p&gt;I think this is also the reason driving some developers back to Linux and &lt;a href=&quot;http://swaywm.org&quot;&gt;tiling window managers&lt;/a&gt; — cutting manual tweaking and staying focused.&lt;/p&gt;

&lt;h3 id=&quot;amazing-endurance&quot;&gt;Amazing endurance&lt;/h3&gt;

&lt;p&gt;Admittedly, laptop battery life has increased a lot since 2013. But with some manufacturers using this an excuse to ship thinner devices, tablets still win the endurance game.&lt;/p&gt;

&lt;p&gt;With my current work tablet, I’m customarily getting 12 or more hours of usage. This means I can power through the typical long days of a startup founder without having to plug in. And when traveling, I really don’t have to care where power sockets are located on trains, airplanes, and conference centers.&lt;/p&gt;

&lt;p&gt;Low power usage also means that I can really get a lot of more runtime by utilizing the &lt;a href=&quot;http://www.macworld.com/article/3034575/hardware/anker-powercore-20100-review-a-top-performing-usb-c-battery-pack.html&quot;&gt;mobile battery pack&lt;/a&gt; I originally bought to use with my phone. While I’ve never actually had to try this, back-of-the-envelope math claims I should be able to get a full workweek from the combo without plugging in.&lt;/p&gt;

&lt;h3 id=&quot;work-and-play&quot;&gt;Work and play&lt;/h3&gt;

&lt;p&gt;The other aspect of using a tablet is that it becomes a very nice content consumption device after I’m done working. Simply disconnect the keyboard and lean back, and the same device you used for writing software becomes a great e-reader, video player, or a gaming machine.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/pixel_c_spacex.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/pixel_c_spacex_small.jpg&quot; alt=&quot;Livestreaming a SpaceX launch&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This combined with the battery life has meant that I’ve actually stopped carrying a Kindle with me. While an e-ink screen is still nicer to read, not needing an extra device has its benefits, especially for a frequent one-bag traveller.&lt;/p&gt;

&lt;h2 id=&quot;the-setup&quot;&gt;The setup&lt;/h2&gt;

&lt;p&gt;I’m writing this on a &lt;a href=&quot;https://en.m.wikipedia.org/wiki/Pixel_C&quot;&gt;Pixel C&lt;/a&gt;, a 10.2” Android tablet made by Google. I got the device last spring when there were developer discounts available at ramp-up to the Android 7 release, and have been using it full-time since.&lt;/p&gt;

&lt;h3 id=&quot;software&quot;&gt;Software&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/android_homescreen_2017.png&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/android_homescreen_2017_small.png&quot; alt=&quot;My Android homescreen&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Surprisingly little has changed in my software use &lt;a href=&quot;https://bergie.iki.fi/blog/working-on-android/&quot;&gt;since 2013&lt;/a&gt; — I still spend the most of the time writing software in either &lt;a href=&quot;https://flowhub.io&quot;&gt;Flowhub&lt;/a&gt; or terminal. Here are the apps I use on daily basis:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.sonelli.juicessh&quot;&gt;JuiceSSH&lt;/a&gt; for mosh access to my remote development servers&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.termux&quot;&gt;Termux&lt;/a&gt; for local and offline development&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://flowhub.io&quot;&gt;Flowhub&lt;/a&gt; for visual programming&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=io.thegrid.app&quot;&gt;The Grid&lt;/a&gt; for updating my various websites&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.Slack&quot;&gt;Slack&lt;/a&gt;, &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.google.android.talk&quot;&gt;Hangouts&lt;/a&gt;, and &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.google.android.apps.inbox&quot;&gt;Inbox by Gmail&lt;/a&gt; for communications&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.google.android.apps.docs&quot;&gt;Google Drive&lt;/a&gt; and the associated applications for budgeting and planning&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.android.chrome&quot;&gt;Chrome&lt;/a&gt; for web&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Looking back to the situation in early 2013, the biggest change is that &lt;strong&gt;Slack&lt;/strong&gt; has pretty much killed work email.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Termux&lt;/strong&gt; is a new app that has done a lot to improve the local development situation. By starting the app you get a very nice Linux chroot environment where a lot of software is only a quick &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;apt install&lt;/code&gt; away.&lt;/p&gt;

&lt;p&gt;Since much of my non-Flowhub work is done in &lt;em&gt;tmux&lt;/em&gt; and &lt;em&gt;vim&lt;/em&gt;, I get the exactly same working environment on both local chroot and cloud machines by simply installing &lt;a href=&quot;https://github.com/bergie/dotfiles&quot;&gt;my dotfiles&lt;/a&gt; on each of them.&lt;/p&gt;

&lt;h3 id=&quot;keyboard&quot;&gt;Keyboard&lt;/h3&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/pixel_c_laptop.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/pixel_c_laptop_small.jpg&quot; alt=&quot;Laptop tablet&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When I’m on the road I’m using the &lt;a href=&quot;http://www.anandtech.com/show/9972/the-google-pixel-c-review/7&quot;&gt;Pixel C keyboard&lt;/a&gt;. This doubles as a screen protector, and provides a reasonable laptop-like typing environment. It attaches to the tablet with very strong magnets and allows a good amount of flexibility on the screen angles.&lt;/p&gt;

&lt;p&gt;However, when stationary, no laptop keyboard compares to a real mechanical keyboard. When I’m in the office I use a &lt;a href=&quot;http://www.cultofmac.com/290750/filco-minila-air-bluetooth-keyboard-review/&quot;&gt;Filco MiniLa Air&lt;/a&gt;, a bluetooth keyboard with quiet-ish Cherry MX brown switches.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/pixel_c_desktop.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/pixel_c_desktop_small.jpg&quot; alt=&quot;Desktop tablet&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This tenkeyless (60%) keyboard is extremely comfortable to type on. However, the sturdy metal case means that it is a little too big and heavy to carry on a daily basis.&lt;/p&gt;

&lt;p&gt;In practice I’ve only taken the mechanical keyboard with me when there has been a longer trip where I know that I’ll be doing a lot of typing. To solve this, I’m actually &lt;a href=&quot;https://www.instagram.com/p/BP0lNxJDng_/?taken-by=henribergius&quot;&gt;looking to build&lt;/a&gt; a more compact custom mechanical keyboard so I could always have it with me. (&lt;strong&gt;Update&lt;/strong&gt;: &lt;a href=&quot;http://bergie.iki.fi/blog/atreus-build-log/&quot;&gt;here is the keyboard I built&lt;/a&gt;).&lt;/p&gt;

&lt;h2 id=&quot;comparison-with-ios&quot;&gt;Comparison with iOS&lt;/h2&gt;

&lt;p&gt;So, why work on Android instead of getting an iPad Pro? I’ve actually worked on both, and here are my reasons:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Communications between apps&lt;/strong&gt;: while iOS has extensions now, the ability to send data from an app to another is still a hit-or-miss. Android had intents from day one, meaning pretty much any app can talk to any other app&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Standard charging&lt;/strong&gt;: all of my other devices charge with the same USB-C chargers and cables. iPads still use the proprietary Lightnight plug, requiring custom dongles for everything&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Standard accessories&lt;/strong&gt;: this boils down to USB-C just like charging. With Android I can plug in a network adapter or even a mouse, and it’ll just work&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Ecosystem lock-in&lt;/strong&gt;: we’re moving to a world where everything — from household electronics to cars — is either locked to the Apple ecosystem or following standards. I don’t want to be locked to a single vendor for everything digital&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Browser choice&lt;/strong&gt;: with iOS you only get one web renderer, the rather dated Safari. On Android I can choose between Chrome, Firefox, or any other browser that has been ported to the platform&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course, iOS has its own benefits. Apple has a stronger stance on privacy than Google. And there is more well-made tablet software available for iPads than Android. But when almost everything I use is available on the web, this doesn’t matter that much.&lt;/p&gt;

&lt;h2 id=&quot;the-future&quot;&gt;The future&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/pixel_c_cbase.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/android-tablet-2017/pixel_c_cbase_small.jpg&quot; alt=&quot;Hacking on the c-base patio&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a software developer working on Android tablets, the weakest point of the platform is still that there are &lt;em&gt;no browser developer tools&lt;/em&gt; available. This was a problem in 2013, and it is still a problem now.&lt;/p&gt;

&lt;p&gt;From my conversations with some Chrome developers, it seems Google has very little interest in addressing this. However, there is a bright spot: the new breed of convertible Chromebooks being released now. And they run Android apps:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.wired.com/2016/09/chromebooks-totally-transform-laptop-design/&quot;&gt;How Chromebooks Are About to Totally Transform Laptop Design&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chromeunboxed.com/detachable-chromebooks-pixel-c-and-the-future-of-chrome-os/&quot;&gt;Detachable Chromebooks, Pixel C And The Future Of Chrome OS&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arstechnica.com/gadgets/2017/02/samsungs-chromebook-pro-a-thoughtful-marriage-of-android-and-chrome-os/&quot;&gt;Samsung’s Chromebook Pro gives me hope in Chrome OS—thanks to Android’s help&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Chrome OS is another clean, legacy free, modern computing interface. With these new devices you get the combination of a full desktop browser and the ability to run all Android tablet software.&lt;/p&gt;

&lt;p&gt;The Samsung Chromebook Pro/Plus mentioned above is definitely interesting. A high-res 12” screen and a digital pen which I see as something very promising for &lt;a href=&quot;https://flowhub.io&quot;&gt;visual programming&lt;/a&gt; purposes.&lt;/p&gt;

&lt;p&gt;However, given that I already have a great mechanical keyboard, I’d love a device that shipped without an attached keyboard. We’ll see what kind of devices get out later this year.&lt;/p&gt;
</description>
      <pubDate>Fri, 10 Feb 2017 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fworking-on-android-2017%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/working-on-android-2017/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/working-on-android-2017/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>GeoClue rises again</title>
      <description>&lt;p&gt;Those that have been following my blog for a longer time know that I’ve been &lt;a href=&quot;http://bergie.iki.fi/blog/category/geo/&quot;&gt;talking a lot&lt;/a&gt; about making the Linux &lt;a href=&quot;http://bergie.iki.fi/blog/making_the_gnome_desktop_location-aware/&quot;&gt;desktop&lt;/a&gt; and &lt;a href=&quot;http://bergie.iki.fi/blog/iphone-geoclue_and_making_mobile_devices_location-aware/&quot;&gt;mobile&lt;/a&gt; platforms location aware.&lt;/p&gt;

&lt;p&gt;Thanks to the amazing advances in &lt;a href=&quot;http://bergie.iki.fi/blog/mobile-first-web/&quot;&gt;adoption of mobile platforms&lt;/a&gt;, this dream has more or less become true, especially in the more widespread Apple and Android ecosystems. All these devices know where they are, and developers are coming up with different smart applications to utilize this information.&lt;/p&gt;

&lt;p&gt;The free software world has been at risk of getting left behind. &lt;a href=&quot;http://en.wikipedia.org/wiki/GeoClue&quot;&gt;GeoClue&lt;/a&gt;, the location framework designed for these environments was in a state of flux for a long time with very little happening to it. But now we have &lt;a href=&quot;http://gitorious.org/geoclue2#more&quot;&gt;GeoClue2&lt;/a&gt;, a rewritten implementation of the original idea.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/geoclue-200.png&quot; alt=&quot;GeoClue&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://lwn.net/SubscriberLink/562141/d1e7180f05f40d60/&quot;&gt;LWN has a good write-up&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Zeeshan Ali spoke about GNOME’s geo-awareness, which is undergoing a rewrite. Geo-awareness consists of four major pieces, he said. The first is geolocation, or the “where am I?” question. The second is the opposite; the user wants to find a different location: a particular address, a nearby restaurant or gas station, or other points of interest. The third issue is routing, finding the best way to get between locations. Finally, there is the user interface topic: locations, points of interest, and routes all need to be presented to the user on a map.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;GeoClue2 can determine location from four different sources: coordinates from GPS devices (the most accurate), the location of nearby WiFi access points (which is accurate to just a few hundred meters), the location of 3G cellular towers (which are accurate only to a few kilometers), and IP addresses (which are accurate only down to the city level).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A major shortcoming that the new service addresses is privacy:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;GeoClue2 also offers better privacy controls; the previous version of the library would provide the current location to any application; with GeoClue2, GNOME will require the user to confirm location requests from each application.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Kudos to &lt;a href=&quot;http://www.linkedin.com/in/zeenix&quot;&gt;Zeeshan&lt;/a&gt; and the others involved for keeping the location-aware dream alive!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I haven’t personally been involved much in the free desktop world lately. This is mainly because I’ve been busy trying to change the worlds of &lt;a href=&quot;http://createjs.org/&quot;&gt;web publishing&lt;/a&gt; and &lt;a href=&quot;https://noflojs.org/&quot;&gt;software development&lt;/a&gt;, but also because I don’t really have a desktop at the moment. Instead, I do my work with &lt;a href=&quot;http://bergie.iki.fi/blog/working-on-android/&quot;&gt;an Android tablet&lt;/a&gt; and a &lt;a href=&quot;http://www.google.de/intl/en/chrome/devices/chromebook-pixel/&quot;&gt;web browser with an attached keyboard&lt;/a&gt;. But despite that, I hope this will be picked up not only by &lt;a href=&quot;http://www.gnome.org/&quot;&gt;GNOME&lt;/a&gt;, but by the &lt;a href=&quot;http://www.ubuntu.com/&quot;&gt;other&lt;/a&gt; &lt;a href=&quot;https://sailfishos.org/&quot;&gt;Linux&lt;/a&gt; &lt;a href=&quot;http://kde.org/&quot;&gt;ecosystems&lt;/a&gt; as well.&lt;/em&gt;&lt;/p&gt;
</description>
      <pubDate>Thu, 08 Aug 2013 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fgeoclue2%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/geoclue2/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/geoclue2/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Leap Motion and the virtual interfaces</title>
      <description>&lt;p&gt;The eagerly waited &lt;a href=&quot;https://www.leapmotion.com/&quot;&gt;Leap Motion&lt;/a&gt; controller is now out, and &lt;a href=&quot;http://arstechnica.com/gadgets/2013/07/hands-on-with-the-leap-motion-controller-cool-but-frustrating-as-hell/&quot;&gt;reviews&lt;/a&gt; are pouring in. Most of them see the promise but find the current experience frustrating:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Here’s the thing: the Leap Motion is almost amazing. When using it to interact with my desktop and perform actions (clicking, dragging, scrolling), the experience is about 50 percent fluid intuition and 50 percent screaming frustration. There are moments, sometimes ten or fifteen seconds long, when everything magically clicks into place—the Leap doesn’t decide your hand is too far away or too close to be able to execute actions, and for a few seconds, boom, you’re scrolling, dragging, and clicking effortlessly. It feels totally natural. Then, almost capriciously, your gestures aren’t good enough any more and you spend ten more seconds trying to get a single click to register.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’ve had a Leap sensor as part of their &lt;a href=&quot;https://www.leapmotion.com/developers&quot;&gt;developer program&lt;/a&gt; for a while now, and the description above feels quite accurate to both the Leap, and our &lt;a href=&quot;http://bergie.iki.fi/blog/qt-air-cursor/&quot;&gt;Kinect air cursor work&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;lacking-interface-concepts&quot;&gt;Lacking interface concepts&lt;/h2&gt;

&lt;p&gt;The problem is that our current interface concepts are simply not suitable for this sort of interaction. There must be incredible things you can accomplish when &lt;em&gt;the computer can see your fingers or whole body in motion&lt;/em&gt;. We just haven’t discovered them yet.&lt;/p&gt;

&lt;p&gt;This is very similar to the situation we had for a long time with touchscreen devices. There have been tablets available since the 90s, but they didn’t take off until there was a &lt;a href=&quot;http://en.wikipedia.org/wiki/IOS&quot;&gt;new kind of OS&lt;/a&gt; and &lt;a href=&quot;http://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html&quot;&gt;new kind of UI guidelines&lt;/a&gt; for this world. After all, your finger is not a mouse.&lt;/p&gt;

&lt;p&gt;Once those guidelines were out there, and manufacturers built compelling enough all-touch devices, the market took off. I’ve said for a long time that &lt;a href=&quot;http://bergie.iki.fi/blog/why_the_tablet_form_factor_is_winning/&quot;&gt;the tablet form factor is winning&lt;/a&gt;, an estimate validated by the &lt;a href=&quot;http://www.asymco.com/2013/07/18/the-pc-calamity/&quot;&gt;recent sales figures&lt;/a&gt;. And yet, the new kind of tablets have only been available since &lt;a href=&quot;http://bergie.iki.fi/blog/meego-diaspora/&quot;&gt;2006&lt;/a&gt; or &lt;a href=&quot;http://en.wikipedia.org/wiki/IPad&quot;&gt;2010&lt;/a&gt; depending how you look. The big shift is only getting started.&lt;/p&gt;

&lt;p&gt;Right now tablets are still mostly used for recreation and light data processing, as &lt;a href=&quot;http://bergie.iki.fi/blog/tablet-productivity/&quot;&gt;productivity applications and culture&lt;/a&gt; always take a bit longer to adapt. We need to move beyond text as the main way of communicating ideas.&lt;/p&gt;

&lt;p&gt;I’ve &lt;a href=&quot;https://noflojs.org/&quot;&gt;already taken a few steps&lt;/a&gt; that way for us programmers.&lt;/p&gt;

&lt;h2 id=&quot;behind-the-glass&quot;&gt;Behind the glass&lt;/h2&gt;

&lt;p&gt;While there are many great user interfaces built on the touch paradigm, interacting with a featureless piece of glass lacks a lot of the haptic feedback we get from physical interfaces. The author &lt;a href=&quot;https://en.wikipedia.org/wiki/Douglas_Adams&quot;&gt;Douglas Adams&lt;/a&gt; commented on this in &lt;a href=&quot;http://en.wikipedia.org/wiki/The_Hitchhiker&apos;s_Guide_to_the_Galaxy&quot;&gt;The Hitchhiker’s Guide to the Galaxy&lt;/a&gt;already back in 1979:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;A loud clatter of gunk music flooded through the Heart of Gold cabin as Zaphod searched the sub-etha radio wave bands for news of himself. The machine was rather difficult to operate. For years radios had been operated by means of pressing buttons and turning dials; then as the technology became more sophisticated the controls were made touch-sensitive–you merely had to brush the panels with your fingers; now all you had to do was wave your hand in the general direction of the components and hope. It saved a lot of muscular expenditure, of course, but meant that you had to sit infuriatingly still if you wanted to keep listening to the same program.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Zaphod waved a hand and the channel switched again.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;(thanks to &lt;a href=&quot;http://arstechnica.com/gadgets/2013/07/hands-on-with-the-leap-motion-controller-cool-but-frustrating-as-hell/?comments=1&amp;amp;post=24987285#comment-24987285&quot;&gt;Ars commenter Joannemullen&lt;/a&gt;, I had forgotten about that quote!)&lt;/p&gt;

&lt;p&gt;The book &lt;a href=&quot;http://mitpress.mit.edu/books/invisible-computer&quot;&gt;Invisible Computer&lt;/a&gt; argues for building physical appliances for different computing purposes. I don’t see that happening anytime soon given the strong onward march of &lt;a href=&quot;http://en.wikipedia.org/wiki/Ephemeralization&quot;&gt;ephemeralization&lt;/a&gt;, of moving everything to converged devices and increasingly capable software.&lt;/p&gt;

&lt;p&gt;But even with software there would be so much more we could be doing.&lt;/p&gt;

&lt;h2 id=&quot;physical-interaction&quot;&gt;Physical interaction&lt;/h2&gt;

&lt;p&gt;The devices we carry around us are filled with different sensors which could provide new kinds of interaction concepts.&lt;/p&gt;

&lt;p&gt;For example, on many Nokia phones you’ve been able to &lt;a href=&quot;http://allaboutwindowsphone.com/flow/item/17791_Flip_to_silence_on_the_Nokia_L.php&quot;&gt;mute the phone&lt;/a&gt; by flipping it around. In 2001 I had an Ericsson phone which used the proximity sensor to &lt;a href=&quot;http://www.ciol.com/ciol/news/123339/now-app-wave-hand-alarm&quot;&gt;snooze the alarm&lt;/a&gt; when you waved your hand over the phone.&lt;/p&gt;

&lt;p&gt;iOS devices use the gesture of shaking the device to &lt;a href=&quot;http://ipod.about.com/od/iphone3gs/qt/shake-to-shuffle-iphone.htm&quot;&gt;shuffle a playlist&lt;/a&gt; or &lt;a href=&quot;http://ipod.about.com/od/iphonehowtos/qt/Shake-To-Undo-On-Iphone.htm&quot;&gt;undo an action&lt;/a&gt;. On many Android devices you can use NFC touches &lt;a href=&quot;http://en.wikipedia.org/wiki/Android_Beam&quot;&gt;to move data or interaction between devices&lt;/a&gt;. Touch a screen to send a picture there, or touch a speaker to make your music play from there.&lt;/p&gt;

&lt;p&gt;These are all great, natural gestures that allow us to interact with the device in a physical way, not with just with the virtual interfaces behind the glass.&lt;/p&gt;

&lt;p&gt;Gestures like these should be more universally available, just like touch UI concepts like &lt;a href=&quot;http://www.theverge.com/2013/5/21/4350826/twitter-pull-to-refresh-patent-innovators-patent-agreement-announced&quot;&gt;pull to refresh&lt;/a&gt;. When people trust a gesture to work consistently everywhere, it will be used a lot more, and users will be happier.&lt;/p&gt;

&lt;p&gt;We are after all interating with physical devices we can not only touch, but also move around.&lt;/p&gt;
</description>
      <pubDate>Sat, 27 Jul 2013 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fleap-motion-virtual-interfaces%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/leap-motion-virtual-interfaces/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/leap-motion-virtual-interfaces/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>The mobile-first Web</title>
      <description>&lt;p&gt;The growth of mobile web users is staggering. While &lt;a href=&quot;http://bergie.iki.fi/blog/meego-diaspora/&quot;&gt;some of us&lt;/a&gt; have been browsing the web on mobile devices for nearly ten years, most of the world population is only now getting there.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://www.tuaw.com/2013/05/31/internet-trends-report-highlights-ipads-incredible-success-roo/&quot;&gt;number of mobile web users&lt;/a&gt; is already at 1.5 billion, which happens to be quite close to the &lt;a href=&quot;http://www.internetworldstats.com/blog.htm&quot;&gt;total number of Internet users&lt;/a&gt; back in 2009.&lt;/p&gt;

&lt;p&gt;And it is &lt;a href=&quot;http://www.fiercemobileit.com/story/global-smartphone-market-growth-estimates-vary-among-research-firms/2013-06-03&quot;&gt;growing rapidly&lt;/a&gt;. In 2015 there will be an estimated &lt;a href=&quot;http://finance.yahoo.com/news/number-smartphones-around-world-top-122000896.html&quot;&gt;2 billion smartphone users&lt;/a&gt; which is quite close to the total number of Internet users currently.&lt;/p&gt;

&lt;p&gt;In the developed world, this is likely to be a mixture of tablets, smartphones, and traditional desktop computers, with most users having at least two different web-capable devices. In the developing world, &lt;em&gt;the smartphone is the computer&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Considering these statistics, &lt;em&gt;it is insanity to design websites and services PC-first&lt;/em&gt;, with mobile only as an afterthought.&lt;/p&gt;

&lt;h2 id=&quot;how-to-prepare&quot;&gt;How to prepare&lt;/h2&gt;

&lt;p&gt;Just some years ago, the mobile web was a slum. Instead of getting full-featured websites, many sent us out to poorly-built and featureless &lt;a href=&quot;http://www.mobify.com/blog/6-reasons-mdot-websites-are-dead-ends/&quot;&gt;m. sites&lt;/a&gt;. Now more and more sites go with &lt;a href=&quot;http://en.wikipedia.org/wiki/Responsive_web_design&quot;&gt;responsive web design&lt;/a&gt; that makes the site itself adapt to different screen sizes and resolutions.&lt;/p&gt;

&lt;p&gt;But even with responsive design, it is easy to go overboard. Tools like &lt;a href=&quot;http://jetpack.me/support/mobile-theme/&quot;&gt;WordPress Jetpack&lt;/a&gt; and &lt;a href=&quot;http://jquerymobile.com/&quot;&gt;jQuery Mobile&lt;/a&gt; oversimplify the site itself by trying to make it look and feel like a native app. In the mobile-first world this is not the right way to go.&lt;/p&gt;

&lt;p&gt;In &lt;a href=&quot;http://blogs.hbr.org/cs/2013/05/the_rise_of_the_mobile-only_us.html&quot;&gt;The Rise of the Mobile-Only User&lt;/a&gt; content strategist Karen McGrane makes a valid point (emphasis added):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Mobile users should get the same content. It’s frustrating and confusing for them if you only give them a little bit of what you offer on your “real” website. If you try to guess which subset of your content the mobile user needs, you’re going to guess wrong. Deliver the same content as your desktop user sees. (&lt;em&gt;If you think some of your content doesn’t deserve to be on mobile, guess what — it doesn’t deserve to be on the desktop either. Get rid of it.&lt;/em&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;there-is-no-pixel-perfect&quot;&gt;There is no pixel-perfect&lt;/h2&gt;

&lt;p&gt;In this new world users will access your content or software using a wildly varying set of devices. And each of them has the reasonable expectation of being able to access the full experience and the full set of features you’re providing.&lt;/p&gt;

&lt;p&gt;This changes web design substantially. Even in the old world of different PC browsers, &lt;em&gt;pixel perfect web design&lt;/em&gt; was rarely that. With responsive design, it is &lt;a href=&quot;http://blog.microsecommerce.com/index.php/uncategorized/responsive-design-and-the-demise-of-pixel-perfect/&quot;&gt;even less so&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Instead:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Think in &lt;em&gt;visual components instead of full pages&lt;/em&gt;. The composition of a page out of these components can vary for different screen sizes&lt;/li&gt;
  &lt;li&gt;Design the compositions always for at &lt;em&gt;three screen form factors&lt;/em&gt;: a full-sized desktop or tablet screen, a smartphone screen, and the 7” tablet in between&lt;/li&gt;
  &lt;li&gt;Make your &lt;em&gt;user interface elements big enough&lt;/em&gt; to be used on inaccurate touch screens&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;Never, ever require a plugin&lt;/em&gt; to access some content or functionality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;http://css-tricks.com/css-media-queries/&quot;&gt;CSS Media Queries&lt;/a&gt; make responding to different form factors quite easy. And besides that, they also make it easy to optimize for the &lt;a href=&quot;http://developer.android.com/training/multiscreen/screendensities.html#TaskProvideAltBmp&quot;&gt;different screen densities&lt;/a&gt; we now have. This way your images will look sharp on anything the users have, from the “retina-class devices” to the lowest-specced Chinese smartphone, while requiring the user to only download the assets that their device can utilize.&lt;/p&gt;

&lt;p&gt;The devices people use to access the services you provide will vary greatly not only in their display capabilities, but also in the ways you can do input. Some will have mice and physical keyboards, but an increasing amount will instead have a touchscreen. For these users, it is a big service to use the correct &lt;a href=&quot;http://sixrevisions.com/html5/new-html5-form-input-types/&quot;&gt;HTML5 input types&lt;/a&gt; so that the on-screen keyboards and widgets can adapt to the content being entered.&lt;/p&gt;

&lt;h2 id=&quot;the-web-is-not-native&quot;&gt;The web is not native&lt;/h2&gt;

&lt;p&gt;The web is its own platform, and as such it is &lt;em&gt;foolish to try and mimic traditional desktop applications&lt;/em&gt;. It will never feel quite right whatever you do.&lt;/p&gt;

&lt;p&gt;It is a lot better to accept this and fully embrace the unique advantages of the web platform:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;The web is an &lt;a href=&quot;http://bergie.iki.fi/blog/the_universal_runtime/&quot;&gt;universal runtime&lt;/a&gt;&lt;/em&gt; that works on 100% of the computing devices your users have&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;There are no gatekeepers&lt;/em&gt; telling what you can publish, and &lt;em&gt;no middlemen&lt;/em&gt; taking a cut of whatever you sell online&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;The web is built out of URLs&lt;/em&gt; that users can easily share with each other, and continue using when they switch devices&lt;/li&gt;
  &lt;li&gt;URLs also allow &lt;em&gt;any application on the web to link to any screen or state of another application&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;It is just as easy to &lt;em&gt;provide content as it is to provide functional applications&lt;/em&gt; on the web&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every major software company on the planet has their own web browser, and the competition between these is fierce. This will ensure that over time, the web will keep on getting better and faster. Compare this to traditional software platforms that can easily stagnate or get abandoned. Thanks to the standard protocols it also &lt;em&gt;allows you to use any technology of your choosing&lt;/em&gt; for the server side of your software.&lt;/p&gt;

&lt;p&gt;Paul Graham put it well in his &lt;a href=&quot;http://paulgraham.com/road.html&quot;&gt;The other road ahead&lt;/a&gt; from 2001:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;And you don’t have to know if you bet on Web-based applications. No one can break that without breaking browsing. The Web may not be the only way to deliver software, but it’s one that works now and will continue to work for a long time. Web-based applications are cheap to develop, and easy for even the smallest startup to deliver.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;things-are-getting-better&quot;&gt;Things are getting better&lt;/h2&gt;

&lt;p&gt;As somebody who has been developing for the web for nearly &lt;a href=&quot;http://press.web.cern.ch/press-releases/2013/04/cern-celebrates-20-years-free-open-web&quot;&gt;twenty years&lt;/a&gt; the rate the web developer experience keeps improving is sometimes dizzying.&lt;/p&gt;

&lt;p&gt;We get used to some limitations in the stack, and then suddenly something comes along and removes that shortcoming. We’re still exploring the new kinds of designs and visual experiences technologies like Media Queries and &lt;a href=&quot;http://en.wikipedia.org/wiki/WebGL&quot;&gt;WebGL&lt;/a&gt; make possible, just like it took years for the community to find best practices around things like AJAX.&lt;/p&gt;

&lt;p&gt;And yet new amazing things keep pouring in. My personal favourite recently has been &lt;a href=&quot;http://www.polymer-project.org/&quot;&gt;Web Components&lt;/a&gt; which gives a standard way to &lt;em&gt;provide reusable widgets on the web&lt;/em&gt;, and to do things like &lt;em&gt;data binding and templating&lt;/em&gt;. This alone will make a lot of the popular frameworks and libraries obsolete.&lt;/p&gt;

&lt;p&gt;Just watch &lt;a href=&quot;http://youtu.be/0g0oOOT86NY&quot;&gt;this video&lt;/a&gt; and see how much easier web development is becoming:&lt;/p&gt;

&lt;iframe width=&quot;500&quot; height=&quot;281&quot; src=&quot;https://www.youtube.com/embed/0g0oOOT86NY&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;The current work on standardizing &lt;a href=&quot;https://payswarm.com/&quot;&gt;Web Payments&lt;/a&gt; together with more grassroots efforts like &lt;a href=&quot;http://bitcoin.org/en/&quot;&gt;Bitcoin&lt;/a&gt; promise to add better ways to do business on the web. This should remove the last big advantage of native applications in that they’re easier (but very expensive) to monetize via app stores and in-app payments.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://rdfa.info/&quot;&gt;Linked Data on the web&lt;/a&gt; and new features like &lt;a href=&quot;http://beta.yandex.com/&quot;&gt;Yandex Islands&lt;/a&gt; make it easier to connect web applications and data on the web together. Tools like my &lt;a href=&quot;http://createjs.org/&quot;&gt;Create.js&lt;/a&gt; make the web easier to edit, and &lt;a href=&quot;http://webintents.org/&quot;&gt;Web Intents&lt;/a&gt; promise even closer integration between web apps.&lt;/p&gt;

&lt;p&gt;Each of these will make the web richer and better. Each of them will allow new startups to be built, and new meaningful connections to happen over the internet, many of these using mobile devices.&lt;/p&gt;

&lt;p&gt;It is an exciting time to be a web developer.&lt;/p&gt;
</description>
      <pubDate>Fri, 07 Jun 2013 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fmobile-first-web%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/mobile-first-web/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/mobile-first-web/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Working on an Android tablet: first six weeks</title>
      <description>&lt;p&gt;I’ve been &lt;a href=&quot;http://bergie.iki.fi/blog/working-on-android/&quot;&gt;working full time on my Android workstation&lt;/a&gt; for over a month now, and it is time to write an update about it. How has it worked out?&lt;/p&gt;

&lt;h2 id=&quot;what-ive-been-doing&quot;&gt;What I’ve been doing&lt;/h2&gt;

&lt;p&gt;I would love to tell stories of working from parks and cafes, like &lt;a href=&quot;http://yieldthought.com/post/31857050698/ipad-linode-1-year-later&quot;&gt;Mark O’Connor has on his iPad setup&lt;/a&gt;, but unfortunately we had a backlash of winter here in Berlin and the warm spring weather only came back this week.&lt;/p&gt;

&lt;p&gt;Instead — &lt;a href=&quot;http://bergie.iki.fi/blog/all-you-need-is-good-backpack/&quot;&gt;quite atypically&lt;/a&gt; — I’ve been mostly desk-bound in this time. The &lt;a href=&quot;http://iks-project.eu&quot;&gt;EU projects&lt;/a&gt; that mandated a lot of travel have now ended, and my current projects are more about software development than evangelism.&lt;/p&gt;

&lt;p&gt;But that actually makes this experiment even more useful, as it means most of the six week has been actual programming, which is what most of my readers also do.&lt;/p&gt;

&lt;p&gt;For those who missed my setup in &lt;a href=&quot;http://bergie.iki.fi/blog/working-on-android/&quot;&gt;the previous post&lt;/a&gt;, this is how it looks in action:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/nexus10-desk2.jpg&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/nexus10-desk2-small.jpg&quot; alt=&quot;Nexus 10 as a programming workstation&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On-screen are &lt;a href=&quot;http://tmux.sourceforge.net/&quot;&gt;tmux&lt;/a&gt;, &lt;a href=&quot;http://www.vim.org/&quot;&gt;vim&lt;/a&gt;, and a &lt;a href=&quot;http://gruntjs.com/&quot;&gt;Grunt&lt;/a&gt; test automation &lt;a href=&quot;https://github.com/gruntjs/grunt-contrib-watch#readme&quot;&gt;watcher&lt;/a&gt; running inside a &lt;a href=&quot;http://mosh.mit.edu/&quot;&gt;MOSH client&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/nexus10-shell.png&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/nexus10-shell-small.png&quot; alt=&quot;Nexus 10 as a programming workstation&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here are some things I’ve done in the last month:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Porting the &lt;a href=&quot;https://noflojs.org&quot;&gt;NoFlo flow-based programming engine&lt;/a&gt; to run in both browser and Node.js with the same codebase, including a &lt;a href=&quot;http://bergie.iki.fi/blog/sharing-javascript-libraries-node-browser/&quot;&gt;tutorial on how others can do the same&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Writing and publishing an implementation of &lt;a href=&quot;http://bergie.iki.fi/actionbar/&quot;&gt;Android-style Action Bars for web apps&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Adding multiple major features to the &lt;a href=&quot;https://github.com/noflo/noflo-ui&quot;&gt;web-based NoFlo IDE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Dealing with the issues raised with the release of jQuery UI 1.10 and Backbone 1.0.0 with &lt;a href=&quot;http://createjs.org&quot;&gt;Create.js&lt;/a&gt; and &lt;a href=&quot;http://viejs.org&quot;&gt;VIE&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Blogging, including publishing &lt;a href=&quot;http://bergie.iki.fi/blog/no-smartphones/&quot;&gt;some&lt;/a&gt; &lt;a href=&quot;http://bergie.iki.fi/blog/wordpress-decoupled/&quot;&gt;quite&lt;/a&gt; &lt;a href=&quot;http://bergie.iki.fi/blog/working-on-android/&quot;&gt;popular&lt;/a&gt; posts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In general the experience has been a positive and productive one. I’ll write about some nuances here.&lt;/p&gt;

&lt;h2 id=&quot;web-debugging&quot;&gt;Web debugging&lt;/h2&gt;

&lt;p&gt;As you can see from the list above, much of my recent work has been client-side. With this, the unavailability of web debuggers on mobile browsers can become a problem.&lt;/p&gt;

&lt;p&gt;I’ve tackled this issue in two ways:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;em&gt;More tests&lt;/em&gt;. Instead of poking around in a debugger, I try to write &lt;a href=&quot;http://visionmedia.github.io/mocha/&quot;&gt;Mocha tests&lt;/a&gt; for most aspects of my applications. This also has the benefit of automation, meaning that &lt;a href=&quot;http://phantomjs.org/&quot;&gt;PhantomJS&lt;/a&gt; will test everything in my application every time I commit&lt;/li&gt;
  &lt;li&gt;&lt;em&gt;VNC and desktop browsers&lt;/em&gt;. When I really need one, I can still use the web debugging tools of traditional web browsers via VNC&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/nexus10-vnc.png&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/nexus10-vnc-small.png&quot; alt=&quot;Web debugging via VNC&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://yieldthought.com/post/12638596672/setting-up-an-ipad-linode&quot;&gt;See Mark O’Connor’s setup instructions&lt;/a&gt; for VNC on one of these tablet workstation setups.&lt;/p&gt;

&lt;h2 id=&quot;post-pc-means-post-office&quot;&gt;Post-PC means post-Office&lt;/h2&gt;

&lt;p&gt;One area where tablets are really lacking is support for traditional office tools like word processors and spreadsheets. There is a Google Drive client, but it is very slow (even small spreadsheets can take minutes to load) and mostly non-functional (word processor doesn’t even support headlines).&lt;/p&gt;

&lt;p&gt;There are also some &lt;a href=&quot;http://androidheadlines.com/2012/05/featured-top-10-android-office-suites.html&quot;&gt;other office suites&lt;/a&gt; available, but even these are better used for viewing documents than actually making changes to them.&lt;/p&gt;

&lt;p&gt;But the bigger question is whether traditional office tools even have a place in this modern world. The commentary on constant &lt;a href=&quot;http://macsparky.com/blog/2011/11/30/microsoft-office-and-the-ipad.html&quot;&gt;delays with Microsoft Office for iOS and Android&lt;/a&gt; shows that people don’t see them as that relevant any longer:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;For the longest time, Office was the ubiquitous productivity suite. Everybody used it. Nobody considered using anything else. However, since this mobile revolution started, even non-geeks are starting to question whether Office is still &lt;em&gt;all that&lt;/em&gt;. I had breakfast this morning with a CPA who does all of his work in Google docs. There is an entire generation of future workers going through high school and college now who don’t even have Office installed on their computers. If Microsoft has any hopes of keeping Office relevant, it needs to be everywhere, including the iPad.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Personally, I might be a lot better off writing my documents in &lt;a href=&quot;http://daringfireball.net/projects/markdown/&quot;&gt;Markdown&lt;/a&gt;, versioning them with git, and maybe using custom data-gathering applications with &lt;a href=&quot;http://bergie.iki.fi/blog/business_analytics_with_couchdb_and_noflo/&quot;&gt;CouchDB map-reduces for data visualization&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://bergie.iki.fi/blog/tablet-productivity/&quot;&gt;story of tablet productivity&lt;/a&gt; is still evolving. The new tools and interaction techniques we have will eventually give rise to new kinds of productivity applications. That may signal the end of the Office hegemony.&lt;/p&gt;

&lt;h2 id=&quot;presenting-from-the-tablet&quot;&gt;Presenting from the tablet&lt;/h2&gt;

&lt;p&gt;On the first week of this experiment I was actually traveling. The final review meetings for both of the EU projects were being held in Brussels and Luxembourg, and I had to present our results.&lt;/p&gt;

&lt;p&gt;As the presentation tools on Android are not very good, I took this as an opportunity to finally start using an HTML-based presentation system. For this, I picked &lt;a href=&quot;http://paulrouget.com/dzslides/&quot;&gt;DZSlides&lt;/a&gt;, with a custom Jekyll-based flow for constructing slide decks from &lt;a href=&quot;https://github.com/bergie/talks&quot;&gt;individual assets stored in git&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The results are &lt;a href=&quot;http://bergie.iki.fi/talks/2013/jquery-europe/&quot;&gt;quite nice&lt;/a&gt;, and I love being able to &lt;a href=&quot;http://bergie.iki.fi/talks/2013/jquery-europe/#12.0&quot;&gt;embed live demos&lt;/a&gt; inside the slides.&lt;/p&gt;

&lt;iframe src=&quot;http://bergie.iki.fi/talks/shells/embedder.html#http://bergie.iki.fi/talks/2013/jquery-europe&quot; width=&quot;460&quot; height=&quot;345&quot;&gt;&lt;/iframe&gt;

&lt;p&gt;With every computing platform, there is always some fiddling involved with getting your device connected to a beamer. I was positively surprised with how easily the Nexus 10 worked. Simply connect using a &lt;em&gt;micro-HDMI to VGA&lt;/em&gt; adapter, and you’ll have the tablet screen up on the projector.&lt;/p&gt;

&lt;h2 id=&quot;minor-annoyances&quot;&gt;Minor annoyances&lt;/h2&gt;

&lt;p&gt;Everybody knows about the &lt;a href=&quot;http://www.businessinsider.com/google-lacking-android-tablet-apps-2012-11&quot;&gt;common gripes with Android on large tablets&lt;/a&gt; — most apps have been written with a narrow phone screen in mind, and simply look bad on a wide 10” screen. &lt;a href=&quot;https://twitter.com/bergie/status/319710122349838336&quot;&gt;Twitter is a good example&lt;/a&gt; of the typical neglect of &lt;a href=&quot;http://developer.android.com/design/index.html&quot;&gt;Android’s UI guidelines&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Somewhat surprisingly, this even applies to Google’s own tablet applications. Apps like Google+ and Google Drive are a lot more functional on an iPad than on a large Android tablet.&lt;/p&gt;

&lt;p&gt;However, these are more of a problem when using something like my &lt;a href=&quot;http://www.google.com/nexus/10/&quot;&gt;Nexus 10&lt;/a&gt; as a &lt;em&gt;media tablet&lt;/em&gt;, and don’t really affect how well it works as a &lt;em&gt;programming workstation&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;For programming work, what matters is things like the beautiful screen, Android’s reasonably good support for hardware keyboards, user-accessible file system, and the ability to share information between applications. These are the main reasons why I went with Android instead of an iPad.&lt;/p&gt;

&lt;p&gt;However, not all is sunshine. So far, the main annoyances for me have been:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://code.google.com/p/android/issues/detail?id=39665&quot;&gt;Regressions in Magic Trackpad support&lt;/a&gt; mean that it is practically unusable when you also have a Bluetooth keyboard. A lot of character presses get duplicated, making typing near-impossible. I’m assuming other mouse devices would however work&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://dan.drown.org/android/mosh/&quot;&gt;MOSH ConnectBot&lt;/a&gt; — which I’m using for my programming sessions — makes &lt;a href=&quot;https://code.google.com/p/irssi-connectbot/issues/detail?id=26&quot;&gt;Ctrl and Esc keys not work&lt;/a&gt;. Luckily I was able to &lt;a href=&quot;https://code.google.com/p/irssi-connectbot/issues/detail?id=26#c4&quot;&gt;find a workaround&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Android 4.2.2 is buggy on the Nexus 10. Especially &lt;a href=&quot;http://forums.androidcentral.com/google-nexus-10-tablet/254863-chrome-causes-my-crashes.html&quot;&gt;Chrome can cause the system to crash&lt;/a&gt;. Other browsers help here, and hopefully Google will fix the issue soon&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, crashes and freezes may sound like a big deal. But thanks to using &lt;a href=&quot;http://tmux.sourceforge.net/&quot;&gt;tmux&lt;/a&gt;, they just mean a short interruption, and not any lost work. I just restart my tablet or MOSH client, attach back to the tmux session I was working with, and I’m right back to where I was, cursor position, vim splits, and all.&lt;/p&gt;

&lt;h2 id=&quot;quantifying-productivity&quot;&gt;Quantifying productivity&lt;/h2&gt;

&lt;p&gt;Calculating &lt;a href=&quot;http://en.wikipedia.org/wiki/Programming_productivity&quot;&gt;programming productivity&lt;/a&gt; is notoriusly difficult. While &lt;a href=&quot;http://yieldthought.com/post/31857050698/ipad-linode-1-year-later&quot;&gt;Mark was able to show impressive figures&lt;/a&gt; from his iPad setup, I don’t have anything similar because:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I haven’t had the time to &lt;a href=&quot;http://yieldthought.com/post/6070927890/metagame-productivity-boost-stats-and-charts&quot;&gt;crunch the numbers&lt;/a&gt; on the work I do&lt;/li&gt;
  &lt;li&gt;The ending of the EU projects meant that I’m now doing different things than I did with my laptop, and so comparing results from the two is hard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And in the end what matters more is the results of the work, not the effort spent getting there.&lt;/p&gt;

&lt;p&gt;But still, it would be good to have a bit more data on how well the setup works besides the subjective “&lt;em&gt;it feels like a good way to program&lt;/em&gt;”.&lt;/p&gt;

&lt;p&gt;To this end, I recently started using the &lt;a href=&quot;https://www.rescuetime.com/&quot;&gt;RescueTime&lt;/a&gt; tracker on both of my Android devices. It keeps calculates how much time I spend with different applications each day, and even allows me to give some sort of productivity scores for them:&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://d2vqpl3tx84ay5.cloudfront.net/nexus10-rescuetime.png&quot;&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/nexus10-rescuetime-small.png&quot; alt=&quot;Scoring applications on RescueTime&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’ll be running this for a while, and will try to combine it with some statistics from &lt;a href=&quot;https://github.com/bergie&quot;&gt;my GitHub account&lt;/a&gt;. Those two should be able to paint a picture of how I work.&lt;/p&gt;

&lt;h2 id=&quot;conclusions&quot;&gt;Conclusions&lt;/h2&gt;

&lt;p&gt;In the beginning, like with any new tool you have to start using, the Android tablet setup felt weird and limiting. But it has grown on me since, and right now &lt;em&gt;I’m not regretting giving my laptop away.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But at the same time, if a new interesting device came out, the cost of switching to that would be minimal. After all, the Nexus 10 for me is essentially just a window into the web and my terminal running somewhere else.&lt;/p&gt;

&lt;p&gt;In a way this decoupling is similar to the traditional desktop PC setup where you have a separate computer, screen, mouse, and a keyboard. The difference here is that none of those parts are bound to a desk or connected with cables. Instead, the peripherals talk with my screen over Bluetooth, and my screen with the “computer” over the Internet.&lt;/p&gt;

&lt;p&gt;If I for instance want a &lt;a href=&quot;http://matias.ca/laptoppro/mac/&quot;&gt;better keyboard&lt;/a&gt;, I can just buy one and replace that part without having to change anything else with my setup.&lt;/p&gt;

&lt;h3 id=&quot;cost-advantage&quot;&gt;Cost advantage&lt;/h3&gt;

&lt;p&gt;One aspect that people have remarked on is cost. Over the course of two years — which is the typical replacement cycle of a professional workstation — this setup is cheaper than a &lt;a href=&quot;http://bergie.iki.fi/blog/11-macbook_air-the_best_computer_i-ve_ever_had/&quot;&gt;MacBook Air&lt;/a&gt;. And with that price I get a lot better screen and about double battery life, and even a smartphone.&lt;/p&gt;

&lt;p&gt;What I lose is the ability to work fully offline, though somewhat alleviated by having local vim and git via &lt;a href=&quot;https://play.google.com/store/apps/details?id=com.spartacusrex.spartacuside&amp;amp;hl=en&quot;&gt;Terminal IDE&lt;/a&gt;.&lt;/p&gt;

&lt;h3 id=&quot;moving-forward&quot;&gt;Moving forward&lt;/h3&gt;

&lt;p&gt;The experiment will keep continue. In these six weeks, I haven’t seen any negative impact on my productivity from working on an Android tablet instead of a laptop, and many positive ones. &lt;em&gt;Portability, battery life, and the emphasis on tests and automation&lt;/em&gt; are probably the foremost.&lt;/p&gt;

&lt;p&gt;Of course, new devices come to the market, and eventually something will come that beats the current setup. But then I’ll be able to switch without even losing my cursor position, so the only cost is the hardware itself.&lt;/p&gt;

&lt;p&gt;In time, I will write more about how things are going.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; Read my &lt;a href=&quot;https://bergie.iki.fi/blog/working-on-android-2017/&quot;&gt;Working on Android, 2017 edition&lt;/a&gt; post.&lt;/p&gt;
</description>
      <pubDate>Tue, 16 Apr 2013 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fsix-weeks-working-android%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/six-weeks-working-android/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/six-weeks-working-android/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>There are no smartphones</title>
      <description>&lt;p&gt;iPad is three years old now, and many tech blogs are writing stories &lt;a href=&quot;http://arstechnica.com/gadgets/2013/04/i-was-an-ipad-skeptic/&quot;&gt;to reflect what has changed&lt;/a&gt;. More than 100 million of them have been sold, alongside other popular tablets like the Kindle Fire and Nexus 7. But originally the reception was quite sceptical.&lt;/p&gt;

&lt;p&gt;Many made the argument that the tablet was &lt;em&gt;“&lt;a href=&quot;http://www.pcworld.com/article/187888/ipad_first_impressions.html&quot;&gt;just a big iPod Touch&lt;/a&gt; or iPhone”&lt;/em&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;at the end of the day, the show’s centerpiece - the iPad – is just a big iPod Touch. Lots of folks will want it, in a hypothetical sort of way. But it’s hard to imagine all that many of them will fork over the initial $499 for a crippled version&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The funny thing about this argument is that — while the skepticism was misplaced — the core point was true: The iPad is just a big iPhone.&lt;/p&gt;

&lt;p&gt;Or to put it the other way, &lt;em&gt;the iPhone is just a pocket-sized iPad.&lt;/em&gt;&lt;/p&gt;

&lt;h2 id=&quot;tablets-of-different-sizes&quot;&gt;Tablets of different sizes&lt;/h2&gt;

&lt;p&gt;There was a recent &lt;a href=&quot;http://techland.time.com/2013/04/02/an-interview-with-computing-pioneer-alan-kay/&quot;&gt;Time interview of the computer science legend Alan Kay&lt;/a&gt;. I shared it &lt;a href=&quot;https://plus.google.com/100751105859582805241/posts/G2XKvZEJjDJ&quot;&gt;on Google+&lt;/a&gt;, and there was some discussion. I made the following argument:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;In the end there are no phones any longer. Just tablets of different sizes, from tabletop (iPad, Surface) to pocketable (what we call smartphones)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The chances are that if you’re reading this post, you will have what you consider a smartphone. Look at it, and consider how you use it. Is it really a &lt;em&gt;phone&lt;/em&gt;, or is the way you use it a lot closer to what you’d consider a &lt;em&gt;tablet&lt;/em&gt;?&lt;/p&gt;

&lt;p&gt;Back in mid-to-late 2000s, we had &lt;a href=&quot;http://bergie.iki.fi/blog/meego-diaspora/&quot;&gt;Nokia’s Internet Tablet devices&lt;/a&gt;. We considered them tablets, and did tablet-like things on them. The Nokia 770 tablet had a 4.13” screen. The iPhone has a 4” screen, and the Nexus 4 has a 4.7” screen. And yet somehow the first device was seen as a tablet, and the two latter as smartphones.&lt;/p&gt;

&lt;p&gt;The software running on smartphones and tablets is nearly identical, as are the use cases.&lt;/p&gt;

&lt;h2 id=&quot;phablets-meet-in-the-middle&quot;&gt;Phablets meet in the middle&lt;/h2&gt;

&lt;p&gt;Smartphones and tablets are converging, quickly. Manufacturers know this, and the device-buying public is starting to see it too. But still the &lt;a href=&quot;http://arstechnica.com/gadgets/2013/04/a-massive-6-3-inch-smartphone-from-samsung-may-be-in-the-works/&quot;&gt;gadget blogs love to diss&lt;/a&gt; the large &lt;em&gt;“phablet”&lt;/em&gt; devices, even though they &lt;a href=&quot;http://arstechnica.com/gadgets/2012/03/samsung-announces-5-million-galaxy-notes-sold-and-premium-update-upgrade/&quot;&gt;sell quite well&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The problem here is that many technology bloggers still try to keep the two categories of devices — smartphones and tablets — separate, even though they really aren’t. Maybe these devices are two big for holding against your head for a phone call, but who really does that anymore?&lt;/p&gt;

&lt;p&gt;In reality all of them are tablets — &lt;a href=&quot;http://alistapart.com/column/windows-on-the-web&quot;&gt;windows on the web&lt;/a&gt; — and the only difference is that some of them fit in your pocket, and others need a bag, providing a bigger canvas to see information and work on in exchange.&lt;/p&gt;

&lt;p&gt;This is the use case I have. For most of my internet and communication needs, I’m using a Nexus 4 as a pocketable tablet. I also have a larger tablet, which I &lt;a href=&quot;http://bergie.iki.fi/blog/working-on-android/&quot;&gt;use as my workstation&lt;/a&gt; and for some things where a bigger screen is nicer, like graphic novels.&lt;/p&gt;

&lt;p&gt;Some are even &lt;a href=&quot;http://www.citeworld.com/mobile/21577/man-did-all-his-work-smartphone-one-year-heres-what-he-learned&quot;&gt;able to do all their work on the smaller phablets&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;end-of-telephony&quot;&gt;End of telephony&lt;/h2&gt;

&lt;p&gt;The big news here is that the &lt;em&gt;telephony&lt;/em&gt; part of a smartphone is not going to matter for much longer. Internet-based communication tools like instant messengers, email, and hangouts provide richer ways to interact, and don’t tie you down to a specific device, or a specific telecommunications provider.&lt;/p&gt;

&lt;p&gt;In the long run, this means an end to phone subscriptions. As I wrote &lt;a href=&quot;http://bergie.iki.fi/blog/toolkit-2012/&quot;&gt;on my “hacker’s toolkit”&lt;/a&gt;, buying prepaid data is cheaper and easier:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;As the MiFi is only used for Internet access, I can buy cheap pre-paid SIMs from each country I travel to. Paying somewhere around ten euros for a month of Internet abroad certainly beats the usual roaming charges!&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is already happening. For example, &lt;a href=&quot;http://www.asymco.com/2013/01/18/whats-up-with-text-messaging/&quot;&gt;Asymco reported on dropping SMS volumes in Spain&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;After peaking at the end of 2008 at about €450/quarter, revenues have fallen by 60% to about €171 million in the third quarter of 2012. These figures represent almost 100% operating profit for operators so the impact is felt directly in the bottom line.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;The culprit is IP-based messaging. Services like Whatsapp, iMessage and even Facebook offer “free” messaging to users who have a smartphone and a data plan. I’ve been told that 97% of Spanish smartphone users have Whatsapp installed. In some markets this “free” messaging is offered via BlackBerry Messaging.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This obviously is a development telecommunications companies are scared of. But while SMS and call volumes go down, the other change is that &lt;em&gt;all these new devices will have SIM slots&lt;/em&gt;, and so the operators can sell a lot more of data plans.&lt;/p&gt;

&lt;p&gt;Some of them are already targeting this new world. &lt;a href=&quot;http://mobile.slashdot.org/story/13/03/26/2048233/t-mobile-ends-contracts-and-subsidies&quot;&gt;T-Mobile recently killed their traditional subscriptions and subsidies&lt;/a&gt; in favor of prepaid plans.&lt;/p&gt;

&lt;h2 id=&quot;this-is-a-new-world&quot;&gt;This is a new world&lt;/h2&gt;

&lt;p&gt;The computing world is &lt;a href=&quot;http://bergie.iki.fi/blog/why_the_tablet_form_factor_is_winning/&quot;&gt;switching to tablets&lt;/a&gt; rapidly. These tablets can be smaller or bigger depending on the requirements of the user, but they all are internet-connected, touch-capable and full of sensors. They already fit use cases from &lt;a href=&quot;http://yieldthought.com/post/31857050698/ipad-linode-1-year-later&quot;&gt;software development&lt;/a&gt; to watching media or social networking.&lt;/p&gt;

&lt;p&gt;This will mean &lt;a href=&quot;http://al3x.net/2011/01/10/a-thought-on-communication.html&quot;&gt;eventual changes in our culture&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;My generation will be at something of a loss when this new world comes about. In my life, I’ve been rewarded for communicating effectively online via text. I’m a reasonably effective verbal communicator, but not nearly as good as I’ll need to be to compete with the telepresence-native adults that the children of today will grow up to be.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;p&gt;Today’s digital natives will be tomorrow’s telegraph operators. The only way to survive will be to understand the impact of pervasive video communication before it sweeps us under our keyboards.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;PCs will still remain as the main productivity tool for some years, mainly thanks to all the legacy software built around that ecosystem. But the &lt;a href=&quot;http://bergie.iki.fi/blog/tablet-productivity/&quot;&gt;VisiCalc moment of tablets&lt;/a&gt; will come, sooner or later:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Every major shift in computing has brought its new big companies. PCs gave us Microsoft, web Google and Facebook. In the tablet space the focus has so far been on hardware and platforms, but I’m quite certain there will be winners in the productivity software space as well, companies that we may not have even heard of yet. Maybe your company is going to be one of them?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For now, I’m considering my adventures in the tablet productivity world an experiment. But day by day, my &lt;a href=&quot;http://bergie.iki.fi/blog/working-on-android/&quot;&gt;work tablet setup&lt;/a&gt; is feeling more and more comfortable.&lt;/p&gt;

&lt;p&gt;Right now I don’t miss my laptop. Or having a phone number.&lt;/p&gt;
</description>
      <pubDate>Wed, 03 Apr 2013 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fno-smartphones%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/no-smartphones/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/no-smartphones/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
    <item>
      
      <title>Google Glass and the fear of the future</title>
      <description>&lt;p&gt;&lt;a href=&quot;http://www.google.com/glass/start/&quot;&gt;Google Glass&lt;/a&gt; is coming this year, a wearable display that can keep you connected at all the times and supply information and instructions when you need them. And it can record video or take pictures of whatever you see, when you want it to.&lt;/p&gt;

&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/v1uyQZNg2vE&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;

&lt;h2 id=&quot;the-privacy-scare&quot;&gt;The privacy scare&lt;/h2&gt;

&lt;p&gt;Much of the &lt;a href=&quot;http://www.google.com/glass/start/how-it-feels/&quot;&gt;Glass marketing&lt;/a&gt; focuses on the camera aspect, as does the &lt;a href=&quot;http://stopthecyborgs.org/about/&quot;&gt;criticism and fearmongering&lt;/a&gt; around it. Some feel that the device would bring about an era of ubiquitous surveillance and loss of privacy. Some even label these people &lt;a href=&quot;http://www.internetevolution.com/author.asp?section_id=2724&amp;amp;doc_id=260938&amp;amp;&quot;&gt;as Luddites&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;StopTheCyborgs and other Neo-Luddite groups make some pretty compelling arguments against AR, including the credible threat that people could be recorded at any time without their knowledge or permission. Nobody could ever consider conversation in the presence of Google Glass wearers completely private. Any entity that could tap into and process all the information from Google Glass on a minute-to-minute basis could track anyone or any conversation anywhere near the wearers. Google Glass may well begin the destruction of our current definitions of privacy.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The mislabeling aside (the historical Luddites were more concerned about machinery taking away their jobs, as they and globalization together eventually did), the criticism is generally baseless.&lt;/p&gt;

&lt;p&gt;We live in cities filled with thousands of surveillance cameras monitoring our every move. We pay for our groceries with credit cards that leave a mark on everything you bought — when, and where — into a database. We carry smartphones that are constantly reporting their location back to the operator. We post our private pictures and current activities to social networks. There is very little privacy left. If you’d see how detailed information law enforcement can get out of our every movement from your operator, you’d know that too.&lt;/p&gt;

&lt;p&gt;In a world where a hidden, &lt;a href=&quot;http://www.pathgadget.com/spy-pen-page-1.html&quot;&gt;pencil-shaped spy camera&lt;/a&gt; can be bought for about 30$, is a very obviously visible Google Glass device really the biggest risk to privacy? And yet, &lt;a href=&quot;http://arstechnica.com/gadgets/2013/03/seattle-bar-bans-google-glass-still-loves-beer-goggles/&quot;&gt;places are banning them&lt;/a&gt; already, a lot before they actually hit the market.&lt;/p&gt;

&lt;h2 id=&quot;this-is-the-future&quot;&gt;This is the future&lt;/h2&gt;

&lt;p&gt;The anti-Glass movement has a benefit. While not exactly a flying car, it is yet another sign that we’re living in the future that science fiction authors envisioned. I mean, consider the fact that there is A &lt;em&gt;movement to ban cyborgs&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;https://d2vqpl3tx84ay5.cloudfront.net/surveillance-ban.png&quot; alt=&quot;Stop the Cyborgs&quot; /&gt;&lt;/p&gt;

&lt;p&gt;They even &lt;a href=&quot;http://www.redbubble.com/people/stopthecyborgs&quot;&gt;sell stickers&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;consider-the-possibilities&quot;&gt;Consider the possibilities&lt;/h2&gt;

&lt;p&gt;Since the privacy battle is already lost, shouldn’t we instead focus on the possibilities they can bring? While Google has shown very little of the capabilities of the Glass software apart from videoconferencing and making web searches, various books can provide clues.&lt;/p&gt;

&lt;p&gt;Many of them describe a world where you can share with anybody what you see with your own eyes, or access any information without having to hold a bulky device.&lt;/p&gt;

&lt;p&gt;It is a little hard to provide good context of the use cases from the books just by short snippets, but here are some. Feel free to provide your own in the comments.&lt;/p&gt;

&lt;p&gt;In Daniel Suarez’s &lt;a href=&quot;http://en.wikipedia.org/wiki/Daemon_%28technothriller_series%29&quot;&gt;Daemon series&lt;/a&gt;, Glass-like devices are used for connecting and coordinating a full economy, called the Darknet. Here is a view of an office with augmented reality displays and &lt;a href=&quot;https://www.leapmotion.com/&quot;&gt;motion controls&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;The center of the room looked to be a staging area, bustling with your people, all wearing eyewear and gloves. To the side was a raised platformn lined with office chairs where a dozen people were grabbing, pulling, and pushing at invisible objects in the air. They were all speaking to unseen people, as though it were a call center.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I could easily imagine manipulating my &lt;a href=&quot;https://noflojs.org&quot;&gt;flow based programs&lt;/a&gt; in this way.&lt;/p&gt;

&lt;p&gt;The Daemon series also feature other Google products, like &lt;a href=&quot;http://en.wikipedia.org/wiki/Google_driverless_car&quot;&gt;driverless cars&lt;/a&gt; and an augmented reality game much like &lt;a href=&quot;http://www.ingress.com/&quot;&gt;Ingress&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Vernor Vinge’s &lt;a href=&quot;http://en.wikipedia.org/wiki/Rainbows_End&quot;&gt;Rainbows End&lt;/a&gt; has everybody using augmented reality glasses as an everyday matter. They even change how you see a city like Barcelona:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Vaz strolled to the stone barrier and looked down. If he blocked out all the tourism fantasy [augmented by the Glass], he could see the freight harbor almost two hundred meters below and a kilometer away. The place was an immensity of freight containers rambling this way and that, chaos. If he invoked his government powers, he could see the flow of carge, even see the security certificates…&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And of course people interact with the augmented reality projections of others just like they were present:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Even when her friends were gone physically, they were often still around, invisible presences [without the Glass] like Robert’s doctors. Miri walked around the backyard talking and arguing with nobody—a parody of all the cellphone discourtesy that Robert remembered&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For the less pleasant view of something like Glass, Neal Stephenson’s &lt;a href=&quot;http://en.wikipedia.org/wiki/Snow_Crash&quot;&gt;Snow Crash&lt;/a&gt; focuses on the surveillance aspects, with people using AR displays being called &lt;em&gt;Gargoyles&lt;/em&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Gargoyles are no fun to talk to. They never finish a sentence. They are adrift in a laser-drawn world, scanning retinas in all directions, doing background checks on everyone within a thousand yards, seeing everything in visual light, infrared, millimeter-wave radar, and ultrasound all at once. You think they’re talking to you, but they’re actually poring over the credit record of some stranger on the other side of the room, or identifying the make and model of airplanes flying overhead.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Then again, talking with a Facebook addict can already be a lot like that.&lt;/p&gt;

&lt;h2 id=&quot;how-this-will-play-out&quot;&gt;How this will play out&lt;/h2&gt;

&lt;p&gt;If the glass does what people want it to do, it will become popular.&lt;/p&gt;

&lt;p&gt;Just like we’ve taken smartphones and tablets into our lives and homes, eventually we will live in a world where you will feel naked if you step out of your home door without the glass on. &lt;em&gt;How am I supposed to connect and communicate now?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I’d love to have Glass, even if it is clunky in the beginning.&lt;/p&gt;

&lt;p&gt;Wearable computing is one of the possible trajectories we’re going with, from room-sized mainframes to desk-bound personal computers to these amazing small slabs of glass and antennas we now carry in our pockets.&lt;/p&gt;

&lt;p&gt;Just like with &lt;a href=&quot;http://bergie.iki.fi/blog/smart-collaboration-space/&quot;&gt;smart spaces&lt;/a&gt;, or &lt;a href=&quot;http://bergie.iki.fi/blog/the-real-hitchhiker-s-guide-to-the-galaxy/&quot;&gt;tablets many years ago&lt;/a&gt;, I’m keen to explore the new interaction possibilities.&lt;/p&gt;
</description>
      <pubDate>Fri, 22 Mar 2013 00:00:00 +0000</pubDate>
      <atom:link rel="payment" href="https://flattr.com/submit/auto?url=https%3A%2F%2Fbergie.iki.fi%2Fblog%2Fgoogle-glass-future%2F&amp;user_id=bergie" type="text/html" />
      <link>https://bergie.iki.fi/blog/google-glass-future/</link>
      <guid isPermaLink="true">https://bergie.iki.fi/blog/google-glass-future/</guid>
      <author>henri.bergius@iki.fi (Henri Bergius)</author>
    </item>
    
  </channel>
</rss>
