Problem: I am a human being

A relevant excerpt:

“If you are a person who has come of age during the time of ubiquitous internet access and github, you cannot know what having access to the source code of an entire operating system meant in the mid 90s. When I saw the impact this access had on my own life in the coming years, I began to view closed source software as unethical. In a society that was increasingly mediated by software, restricting access to learning about software works is in my opinion a means of control and subjugation.”

For me, growing up in India, that time was the early 2000s. My first Linux distro was Ubuntu, thanks largely to Canonical shipping out Ubuntu CDs to people around the world, something that seemed like a ludicrous idea at the time.

I wouldn’t be where I am without free software (both free as in beer, and free as in freedom). Also, Star Trek.

Quick Notes on the OnePlus One

I’ve been a happy owner and user of a Nexus 4 for about two years (and the Nexus S before that), but in the last few months, my phone was starting to show its age. I was barely getting a full day’s usage out of the battery and after the Lollipop updates, things seemed generally more sluggish in general. It was time for an update, and following my usual habit of a skipping at least a generation when it comes to tech, I was really hoping to get a Nexus 6. Unfortunately, the $650+ price point placed it more than a little out of my reach. I’ve never owned a non-Nexus smartphone, but it seemed like it was finally time to move on to something else.

There’s been a lot of hype and news about the OnePlus One that I won’t bother recapping here. In short, the OnePlus One is a reasonably priced, state-of-the-art Android smartphone that comes unlocked and runs a version of the CyanogenMod ROM. It’s not stock Android like the Nexus line, but there’s no bloatware either and it works just fine with the full suite of Google Apps and (as far as I can tell) most popular Android apps in general. After being invite only for several months, you can now buy one from the OnePlus website, but only on Tuesdays. I’ve had mine for about two weeks now and thoroughly enjoy it. Yesterday a friend of mine asked me about my experiences about the device. I thought I’d collect all the points I made in that conversation and share them here.

For starters, I really like the device. It’s much snappier as compared to my Nexus 4, the large screen is gorgeous and the design in general is well executed. I got the 64GB “Black Sandstone” version. As the name suggests, the back of the phone has a black, sandstone-like texture that makes the device quite pleasant to hold. Time will tell if the texture holds up with daily wear and tear. The battery life is really good—I can easily get almost two days of moderate use on a full charge, and well over a day even with heavy usage. It’s really nice to know that I have a good few hours of usage left even if I forget to plug it in overnight.

I was a little concerned about the large 5.5″ screen, which is pretty massive compared to smartphone screens I’m used to. However, after a few weeks, I’ve gotten used to it and it feels really comfortable to use on a daily basis. By and large, I can use it with one hand (even for input using the swipe keyboard), but it is definitely easier to use with two hands. In fact, the device is light and slim enough that compared to my Nexus 4, it actually feels lighter and less of a burden to carry around. I do a lot of reading on my iPad Air (RSS, websites and Instapaper) but I’ve barely used it over the last two weeks. I’ve been testing out the One as a tablet replacement, at least for format-independent reading, and it’s been working out quite well so far.

I only have two main gripes about the One. First the CyanogenMod ROM that it’s using is still based on KitKat and I got used to Lollipop on the Nexus 4. But in all fairness, there’s nothing I seriously miss or can’t live without. And there’s a Lollipop-based ROM in the works. Second, the swipe keyboard seems noticeably less accurate than what I’ve gotten used to. However, that might just be because I still have the muscle memory of using the swipe keyboard on a smaller phone.

In summary, I think the OnePlus One is currently the best option for an unlocked, reasonably priced smartphone, especially given how expensive the Nexus 6 is.

Sunday Selection 2015-02-22

Around the Web

Oliver Sacks on Learning He Has Terminal Cancer

There is said to be a Roman tradition where a victorious Roman general would parade through the streets of Rome and as he did so a servant would whisper in his ear: Respice post te! Hominem te esse memento! Memento mori!”—“Look behind you! Remember that you are but a man! Remember that you will die!” We don’t have Roman generals parading through the streets anymore, but we do have talented writers reflecting on their impending deaths in the context of their lives.

My Prescribed Life

While the anti-vaccination “movement” has gotten a lot of press recently, there are other kinds of drugs administered to children that can significantly impact their lives. This piece traces the author’s use of anti-depressants from a young age and discusses how it affected her life and her growth as a person.

Squid can recode their genetic make-up on-the-fly

From the “truth is stranger than fiction” section: “A new study showcases the first example of an animal editing its own genetic makeup on-the-fly to modify most of its proteins, enabling adjustments to its immediate surroundings.”

From the Bookshelf

The Defining Decade

As someone approaching the tail end of their twenties, a book with the tagline “Why your twenties matter and how to make the most of them now” sounds like something I should have read five years ago. Oh well, better late than never I suppose. In this book, psychologist Dr. Meg Jay explores psychology, neuroscience, sociology and economics to make a compelling case for why the twenties can be an important time for growth and development and explains how the choices made (or not made) then can affect the rest of our lives. She combines personal anecdotes, interviews with numerous twenty-somethings and a host of solid evidence to write a narrative that is often hopeful, sometimes scary, but always compelling.

Video

BlackBerry 10 OS Vintage QNX Demo Floppy

I spent the better part of an hour today learning about QNX—a real-time operating system first developed in the 80s  that sports a practical microkernel architecture, a POSIX API and forms the core of a multitude of high-availability software (including the BlackBerry 10 OS, various car software and runs Cisco IOS devices). Best of all, it fits on an old-school floppy disk, complete with GUI and a web browser. QNX represents a great technical achievement and an interesting part of computer history.

A week with the Nexus 4

I bought my first smartphone about a year and a half ago. It was the straight-from-Google version of the Samsung Nexus S, meaning that it came without any carrier-installed crapware and no contract. However, it was already over a year old and a generation behind the times when I got it. That meant that it was already slower than the current state of art and came with the older Android 2.2 (which I upgraded a few months later to Ice Cream Sandwich). Overall it was a good phone, but has been gradually showing it’s age. It was having trouble using newer apps and the upgrade to Ice Cream Sandwich had been awkward enough that I didn’t even try to update it to Jelly Bean. I had been using T-mobile as my carrier and though I had one of their contract-free prepaid Monthly4G plans, I had carelessly bought the version of the phone with the wrong radio chipset, meaning I only got EDGE service most of the time.

The thought to upgrade to a new phone had been at the back of my mind for a few months. But the announcement of the Galaxy S4 as Google’s next flagship device made me take a look at the available options. While the S4 looks great, I wasn’t about to shell out $650 for a new phone. However, it turned out that the current flagship phone — the Nexus 4 — is available for $350 and it’s only a few months old. It was available unlocked and a quick search of the Intertubes suggested that it worked well on T-mobile’s network.

Google Nexus 4
The Google Nexus 4

The Nexus 4 is a good, solid device and is definitely a big step up from the Nexus S. The 1280 x 768,  4.7-inch display looks great, it’s slimmer and the 8MP camera is a much better than what the Nexus S. It also comes with Android 4.2 (Jelly Bean) and is fast enough to run heavy duty modern apps without skipping a beat. It doesn’t have LTE, but on T-Mobile’s HSPA+ network the speeds I do get are more than sufficient for my needs. The battery life is better than what I’m used to — I can generally end a busy day with about 15-20% to spare. Admittedly, I don’t stream a lot of video or upload lots of photos, so your mileage will probably vary.

On my Nexus S I rarely installed apps and never really explored the Android ecosystem (or rather, the Google Play store). But with a newer phone with an up-to-date version of Android, it was time to go exploring. I was pleasantly surprised to find that Android apps seem to be developing a UI style that is quite different from the iOS counterparts (though not quite as different as Windows Phone). Apps from both large companies (such as Twitter) and smaller operations (like Astrid) sport a sharp, clean and mostly gradient-free design that I personally feel pretty refreshing. I also really like the Google+ app, though I can’t say I use it all that much and I’m looking forward to the new Gmail app. If you need more evidence that Android apps can be just as good looking as their counterparts on other platforms, check out Android Niceties. Sharing between applications and services is also so much nicer and painless than on iOS, though there are some bad apples (I’m looking at you, Feedly).

There are a few quibbles I have about the Nexus 4, but they’re not major and definitely not show-stoppers. For starters, the back of the phone is glass, not plastic or metal. I don’t have a history of breaking screens, but I will sometimes put down my phone pretty roughly on a table and I’m afraid I’ll end up cracking the back soon. Secondly, the headphone jack is on top of the phone. This is probably a good idea if you’re charging and listening to music at the same time, but makes it’s a bit awkward for listening on earphones with the phone in your pocket. With the Nexus S (which had the jack at the bottom) it was quite natural to put the phone in your pocket bottom-up and then turn your hand as you pulled it out to see the screen upright. The corresponding motion with the jack on the bottom seems rather more convoluted, but it might just be muscle memory that will get reprogrammed with time. Finally, (and this isn’t unique to the Nexus 4) I’m yet to find a Android to-do or task management app that is flexible enough as OmniFocus on OS X and Android.

All that being said, I am very happy with the Nexus 4. I really liked the Nexus S when I first got it and I’ve always liked Android. The Nexus 4 is a significant upgrade and I pretty impressed by the current state of the Android ecosystem. Barring unforeseen problems (or a very cheap upgrade option) I fully expect to hold on to this as my primary mobile device for the next few years. I don’t have any experiences with other Android devices (or other smartphones for that matter) so I can’t really compare, but I’m willing to take a chance and say you can’t get much better than a clean stock Android (especially if you use Google services as much as I do). As a final happy ending, I managed to hand off my Nexus S to a friend who decided to move up from a dumb phone. That makes one less unused device for me to keep around.

Sunday Selection 2012-10-21

Good afternoon everyone. It’s fall in my part of the world, the leaves are changing color, the weather is getting colder and the days are getting shorter. Things are moving and shaking in the tech world (as usual) and today’s Selection takes a look at Microsoft, Linux, Firefox and the intersection of technology and life.

Around the Web

The Story of the New Microsoft.com

Microsoft has a new website. No matter what you might think of the company and its products, I think you’d be hard pressed to say that the website wasn’t a job well done. It’s clean, effective and very modern.

UX Principles Behind Firefox for Windows 8

I’ve always had a soft spot for Firefox. Even though I mostly use Chrome nowadays, I keep coming back to Firefox. It was the first non-IE browser I used and I think the Mozilla team has done a lot to make the web a better place. It’s good see Firefox evolving and developing to stay in tune with the rest of modern technology.

Linus Torvalds Answers Your Questions

Linus isn’t the most public of technology superstars, but he doesn’t pull any punches either. In this recent Slashdot interview he talks about kernel development, what he might have done differently, patents and more.

Video

Creative Mornings with Jonathan Harris

CreativeMornings is a monthly breakfast lecture series for creative types. Each event is free of charge, and includes a 20 minute talk. This one is by Jonathan Harris creator of We Feel Fine and Cowbird (among others). It talks about his journey exploring technology, life and storytelling. If you’re looking for examples of a remarkable life well lived, this one’s a keeper.

Rules for Computing Happiness Revisited

About a year and half ago I wrote down some Rules for Computing Happiness. I based the list off of a similar list by Alex Payne. But in the year and half since then a lot has changed in my life. I graduated from college and finished a year as a graduate student at Cornell University’s computer science running experiments. I’ve also finally joined the world of smartphone users. I spend the greater part of the day writing programs and scripts and spend an increasing amount of time on remote machines. In the light of all those changes I think it’s a good idea for me to revisit the rules I laid down and see how much they’ve changed (or stayed the same). Here goes:

1. Use as few physical machines as possible

This one’s a keeper. I now use only two physical machines: my personal Macbook Air and my powerful Linux desktop at work. I use a combination of Git, Dropbox and Chrome tied to my Google account to keep things in sync between them. In reality the work I do on each doesn’t much overlap so there isn’t a pressing need to keep them in sync.

2. Keep work and play separate

Another keeper. I don’t have any social media apps on my work machine, I generally keep IM closed and I’m busy and in the flow enough that I don’t feel the need to randomly open up Reddit or Hacker News. I should be honest and say that this isn’t a purely (or even mostly) technical thing – in fact it probably has more to do with my shifting perspectives on what’s important. I have my phone near me if anyone really needs to get in touch with me. Since I’m a grad student I have a lot on my plate that is important but little that is urgent so my phone rarely gets used.

3. Get a Linux machine for programming. Use multiple monitors and a tiling window manager

I’m a bit less sure of this one and I’m partly afraid that I’m just plain biased. I do most of my programming on my Linux machine, but I do a decent amount on my Macbook Air too (especially experimental web stuff). I mostly use the UNIX in each so I’ve become fairly agnostic to what skin I’m running on top. I’ve never programmed on Windows so I don’t have anything to add on that matter.

However, I do use two monitors on a regular basis and going back to one can be annoying. I tried using Unity for a while and while it’s not bad, I keep going back to XMonad. It’s clean separation of physical monitors and virtual desktops makes using multiple monitors very flexible and efficient and I always find myself missing it when I’m on a different environment. By contrast, the way OS X does it is complete rubbish, especially if one of your windows is in fullscreen mode.

4. Get a Macbook for non-programming tasks

I’ve had my Macbook Air for over a year now and I love it. It’s the best laptop I’ve owned and probably the best computer ever. I only use a handful of userspace apps but they’re high quality ones like Reeder and OmniFocus. Homebrew is definitely the missing package manager for OS X and makes any programming I do a lot easier.

5. Keep a backup server, either physical or virtual

I’m still running a small Linode VPS that serves my personal website and acts as the syncpoint for my Git repos. I haven’t had any destructive crashes in the past year so I haven’t really felt the need for a backup, but it does offer peace of mind.

6. Learn and customize your tools

Yes, but do realize that it’s not the point.

7. Use public computers as little as you need to

Since I have both a great portable machine and a great workstation I haven’t had to use public computers at all. My desire to work in coffee shops and libraries has also been decresing steadily and I now prefer to work in a private office or a quiet shared workspace.

8. Pay for good software if you need it, but only after you’ve tried it out for a while

I’ve bought software like OmniFocus and Reeder and by and large I don’t regret it. I’m currently considering getting iA Writer. It’s cheap enough that I rarely think twice about gettting something that would make my job easier. However they “trying out” part is harder. My biggest gripe about the Mac App Store is no way to try out apps for a period of time (or stop using them and get a refund).

9. Keep information in open formats, preferably plain text

Yep. The only non-plain text format I interact with regularly is PDFs, only because that’s how most academic papers are distributed. I hold out hope that one day the academic community will move to publishing in hypertext.

10. Use version control on all projects

All my source code, my research data, my configs, my public and private writing are in version control. It not only makes it easy to go back and get something I may have overwritten, it also makes backup easier.

A New Year, A New Phone

This year I’ve decided to make a foray into the future by finally getting myself a proper smartphone. I’ve had an iPod Touch for a while but also had a simple Nokia not-smart phone to make actual phone calls. It’s always been somewhat annoying to have to manage two devices: a real phone for calls or texts and the iPod for any Internet and data-related work. A large part of my resistance to getting an actual smartphone was that I simply didn’t want to spend a lot of money on a cell phone plan when I was surrounded by wi-fi all the time and barely made actual phone calls. But now that there are finally both reasonably cheap unlocked smartphones and contract-free data plans I decided to bite the bullet.

The unlocked iPhone 4S would end up costing me a tad over $800 after tax and Applecare. I was also getting bored of the iOS ecosystem and its closed, silo system for apps. So instead I got myself a much cheaper unlocked Android phone – the Google/Samsung Nexus S. I’m pairing that with a $30 a month T-Mobile data and phone plan. I’m still waiting for a new SIM card to show up but till then I’m making use of the ample wifi coverage that’s a side-effect of living in a college town. For now, I’m only going to talk about my first impressions on the Nexus S itself.

Google Nexus S
Google Nexus S (via Wikipedia)

The Nexus S is Google’s previous flagship phone. Its current flagship is the Galaxy Nexus which Google is also selling unlocked. However it’s almost twice the price I paid for the Nexus S and in my opinion, isn’t sufficient of an upgrade to justify the price. Even though it’s about a year old by now (and technically running the old version of Android), I haven’t had a problem with it so far.

It looks pretty different from the iPhone and the plastic feel takes some getting used it. I also think it slips more easily, but that might just be a personal problem. The back of the phone has something of a ridge at the bottom which I guess is supposed to make it easier to hold. Though the build quality does feel inferior as compared to the iPhone, I like it and have no major complaints.

The Android sofware feels like a breath of fresh air as compared to the iPhone. It is considerably more customizable and I like the presence of both tradiiontal apps as well as “widgets” that add functionality directly to your home screens. I’ve found widgets great for quickly looking up data like the weather, Twitter mentions or what system services are currently running.

The tinkerer in me loves how customizable the Android system is. Changing the look and feel is just the beginning. There are a lot of bells and whistles and options and sometimes it can be a rather confusing. For now I’ve only stuck to the usual set of apps (Twitter, Foursquare, Camera) but I’m looking forward to trying out new and interesting apps in the future. More than that I feel like Android would be a really good platform if I decide to get into mobile dev anytime soon.

There are a few things about the Nexus S that I’m concerned with. I think the battery life is a tad too short, especially with the geolocation services on all the time. Luckily, the battery monitor widget makes it simple to turn off services with a touch so maybe some manual management might make it better. While the Google apps are really well integrated (especially Google Voice) and apps from large companies are well done, third-party apps seem to be of considerably less quality than iOS equivalents. I don’t really blame the developers given the multitude of devices but it does mean that finding good apps for simple things like RSS is more difficult than it should be.

Despite the glitches and minor annoyances I really like the Nexus S. The hardware is pretty solid and I like Android so far. Right now having a fully functional smartphone is still pretty new to me, but I’m hoping that when the novelty wears off I’ll dive into actually programming the powerful computer in my pocket.