OnePlus Class Action?

Ten days ago I did a post about touchscreen issues I’ve been having with my (previously) beloved OnePlus One smartphone. Since then all I’ve experienced from OnePlus customer “care” are delaying tactics and an obvious reluctance to address a systemic problem with their phone design. While I loved this handset while it worked, I won’t be owning another OnePlus product and I encourage my three readers to avoid the company like they would the plague.

I really didn’t expect much from the support process and I wasn’t disappointed. OnePlus has always struck me as a company with great ideas but they’ve always seemed a little over their head when it comes to actually implementing them. But I decided to soldier on and go through the process. I sent in a support ticket on May 11th:

One Plus Support Request 1

The next day (well, about 13 hours later) I got a reply. Not bad, actually, and I developed some false hope that this would work out.

One Plus Support Request 2

So “Kathy” wants me to send in a video. Okay, no worries. I made the video and sent them the link. This seemed to satisfy Kathy who escalated my issue, but then “Leah” also asked for a video.

One Plus Support Request 3

WTF? Okay, definitely a FAIL on reading comprehension, but I replied with a link to the original video and asked them what else they wanted to see. The next message, from Canoy Gem, asks for, you guessed it, another video:

One Plus Support Request 4

At this point it time it has become obvious to me that they are just stalling. There are a number of threads about this issue on their forums (here is the first one and now there is a second – both with pages and pages of comments). So I write back to Gem, again with a link to the video, and he replied with even more requests, this time for pictures:

One Plus Support Request 5

As I’ve seen with the replies from others on their forums, this seems to be pretty common – asking for videos and pictures. I waited until I had some decent light and took really nice pictures of my undamaged phone. However, I was unable to get the back cover off for the final picture. I’ve disassembled a number of devices over the years and while I could probably get this cover off it wouldn’t be without damage. If I damaged it, OnePlus would use it to deny warranty coverage. However, it looks like they are not going to proceed until I do.

One Plus Support Request 6

Note that in this entire exchange they have never mentioned that it might be corrected with a firmware fix (as talked about in the forums). I doubt this is the case with my phone as a) it just started happening and b) it seems restricted to the upper half of the screen, but I would have been willing to test it for them if they’d bring it up.

Also, I’ve noticed that most of the people responding to me have female names. This is a tactic in customer support as women are often treated better in such situations. While they may exist I’m pretty sure OnePlus technical support consists of one overworked guy named Zhang Wei.

I replied that my patience was at an end and either they would let me send them the phone that they could then examine to their heart’s content or I would pursue other actions. All I’ve done for now is replace it with a Nexus 6, but it seems to me that this is a prime example of a use case for a class action lawsuit: A large class of consumers has been apparently defrauded by a vendor supplying faulty products.

I’m talking to friends of mine with some experience in this, but if you have any suggestions for a firm to handle a class action lawsuit, please let me know.

Touchscreen Issues with OnePlus One Phone

Last September I was able to purchase a OnePlus One phone, and my initial impressions were very positive.

Having owned it now for over six months, I can state that this is the best smartphone I’ve ever owned, a list which has included two iPhones, several Nexus devices, a couple of Samsung devices and an HTC One. It is fast, runs well, has a wonderful screen and is the right size for my hand.

Being a fan, I have followed the drama surrounding OnePlus and CyanogenMod, and I am very unhappy about the new OxygenOS being closed source. But still, I decided to upgrade to Lollipop (Cyanogenmod 12S) when it became available and that’s when I started to notice an issue with the touchscreen.

I play a game called Ingress, and within the application is a mini-game called “Glyph Hacking“. In the mini-game you are presented with a number of patterns on a grid, and you have to replicate the patterns, in order, in a certain amount of time. I really enjoy the game as a mental exercise, but I started noticing that as I was trying to draw the glyphs it would often just stop drawing or jump to the next glyph in the sequence. This was frustrating.

I found a thread that suggests a number of other people are having this issue with the phone and that it may be a software problem. I’m not so sure this is the case with my handset, because up until this last week it has been working fine (never seen the issue before). But just in case, I was able to restore the phone to KitKat and (CyanogenMod 11S) the problem remained. All of the suggestions I’ve found on-line, from plugging the phone in to “ground” it to rebooting, haven’t helped.

Using a program called “Yet Another Multitouch Test” I was able to demonstrate that the screen is registering additional touches that I did’t make, especially near the top of the screen. I’ve contacted OnePlus support so we’ll see what happens. Here is a video demonstrating the issue.

Review: System 76 Sable

As you might guess, I am a big fan of all things open, and I tend to vote with my wallet. When the need arose to replace some iMacs in the office, I decided to check out the Sable systems offered by Linux-friendly vendor System 76.

System 76 was a sponsor at SCaLE this year (like OpenNMS) and they also sponsored the Bad Voltage Live event where they gave away a laptop and a server, so they already had my goodwill.

Back in 2008 I needed some machines for our training courses, so being an Apple fanboy at the time I bought iMacs. Outfitting training rooms can be problematic if you don’t do training full time because you usually end up with nice systems that you don’t use very often. Seems wasteful, so we decided to use them to run Bamboo and our unit tests for OpenNMS when they weren’t being used for training.

Seth noticed that it was taking those machines around 240 minutes to run the suite of tests versus 160 minutes for the newer iMacs we were using, and this was having a negative impact development (almost everything we do relies on test driven development). Since we were running Ubuntu on the boxes anyway, I decided on a Linux alternative and chose System 76 for the first six replacement systems.

I like all-in-one systems for training since they tend to move around (we use the training room as a conference room when there are no classes). The all-in-one form factor makes them easy to carry. The Sables I ordered came with a 23.6 inch touch screen at 1080p, 3.1 GHz i7 processor, 16GB of RAM and a 500GB SSD for a total price of US$1731.

The ordering process went smoothly (there was one glitch when the original quote was for seven instead of six but it was quickly corrected). I placed the order on March 18th and they shipped a week later on the 25th.

They arrived in six boxes marked AIO PC:

System 76 boxes

I think AIO must be the manufacturer in China, but I couldn’t find a similar system on the web. One box had a smashed-in corner, so I opened it first, but it was packed well enough that the unit wasn’t damaged:

System 76 open box

I removed the packing and pulled the unit out. It was wrapped to protect the screen.

System 76 screen wrap

and the whole unit was covered in plastic wrap to prevent scratches.

System 76 plastic wrap

These units come with a power brick that is external to the system and I ordered them with a Logitech keyboard and mouse. These came in a separate box along with extra cables, etc., for expansion (unlike Apple products, you can actually work on these systems).

System 76 keyboard box

The hardest part about the whole process was figuring out how to turn the darn thing on. I finally found the switch on the back of the system on the lower right side (as you face it). I felt kind of stupid and yes, I even read the little pamphlet that came with it. Perhaps they should add and IKEA-like drawing with the little dude pointing to the switch.

It booted right up into Ubuntu 14.10, and all I had to do was create an account and set the IP address. Ben was then able to get in and deploy our Bamboo image and we were up and running in no time.

System 76 screen

While we still have some iMacs being used, the Sables have, so far, proven to be a solid replacement. I haven’t really used them as a desktop, yet, but they can run our test suite in a little over an hour which is almost a four-fold increase.

System 76 in a line

While Apple doesn’t offer a 24-inch iMac anymore, the 21-inch version with similar processor, RAM and SSD is US$2399, or quite a premium. The Sable is not nearly as thin or stylish as the iMac, but it is a nice looking machine and after struggling this week to correctly replace the hard drive in a late 2009 iMac I appreciate the fact that I can work on these if I need to, and the extra cables shipped with it even encourage me to do so.

And that’s what open is all about.

♫ The Lunatic is on My Web ♫

The TL;DR of it is that I needed to create a new forum called OpenNMS Connect. This will be a place for Luna. So far I’ve been happy.

When I first started my quest for forum software a couple of month ago, I did what most geeks do and did a search for it. I found a very helpful Wikipedia page (‘natch).

After dismissing the non-open source options, I started looking at the programming language. Now I know I really shouldn’t be a PHP snob (this blog is presented using PHP software) but having been burned in the past with security issues my first inclination is to avoid it.

Now the guys in the office are trying to get me to think all “agile-ly” and so I need a “user story”. For any forum we use it has to support LDAP, for which the story could be “User must be able to access forum using directory services” or better yet “Admin needs a central way of controlling forum access”. We implement LDAP via the FreeIPA project, and it will just be so much easier if we can add and remove people from a particular group and just have it work.

The first project I looked at was Discourse. I was especially interested in a hosted version if I could tie it into our IPA instance. Discourse is kind of the “new hotness” at the moment, but I didn’t see an easy way to implement LDAP. There is a Single Sign On (SSO) option but it would require writing our own authentication page, and it wouldn’t work if we hosted it with them anyway.

The next project that caught my eye was the eXo Platform. It’s written in Java (as is OpenNMS) and it seems to have a ton of features. Perhaps too many. In any case I put the team on it and asked them to get it working with LDAP.

They succeeded in getting LDAP authentication to work, but then hit a ton of other snags. The authenticated users couldn’t access the default /portal/intranet site no matter how often we tweaked the permissions. They could reach the /portal/meridian site but we couldn’t figure out how to change the default portal. And in all cases we couldn’t get the top menu bar to load with an LDAP user which meant you couldn’t log out, etc.

On Friday I decided to see what I could do about it. Friday was a long day.

eXo is one of those companies that produces an open source version of their software as well as a paid version. My three readers know how I feel about that business model, and it made it kind of frustrating to figure out things since I couldn’t tell if the documentation would actually work on the “community” version. Also, to access the forums you need to register, which gets you a couple of spam-y e-mails trying to sell you on their paid version. Not too obnoxious and I can understand why they do it, but it was a little annoying.

It can also be hard to administer. A lot of the configuration is buried in .war files. For example, in order to set the default portal above, you have to unpack portal.war, change it and repack it. In playing around with the system, I decided that while the LDAP authentication is nice, the platform itself is way overkill for what we need. It is huge and on our system took several minutes to start up and would often spike the load with limited users.

So I spent a lot of time looking for alternatives. Unfortunately, the only option I found that had easy to understand LDAP integration was phpBB. When I mentioned that to the team, Jeff threw up in his mouth a little and I wasn’t too happy about that choice either. I don’t have the same prejudices as some, but I felt that its style was a little dated and there have been some serious security issues in the past associated with it.

But for grins I installed phpBB anyway. It was rather easy to do, which made me happy, but then I noticed that it was not easy to make the forum itself private. Another user story is that “Admin requires that only authorized users see the forum”. You can make certain parts of phpBB private, but I kind of wanted the same thing as eXo – an initial log in screen you have to use before accessing the site.

Then it dawned on me that we could just put it in a directory by itself in the web root, say /forum, and then make a pretty splash page on on the site with a link to it. Apache LDAP authentication is something we already figured out and knew worked and I could just require a valid login to access /forum.

This caused another lightbulb to go off. If we are going to do it that way, then why not just put any forum we like behind an LDAP authenticated directory?

The downside would be that users would need to create a forum-specific user if they wanted to add content, but on the upside they could choose their own usernames, thus obfuscating their identities for people who work at sensitive organizations. Thus we could have an LDAP user tied to, say, and their forum name could be something totally different, like “Hot Cocoa”.

Yes, I know it is dressing up a bug as a feature, but to me it did seem useful.

Then I thought, hey, let’s revisit Discourse. That turned out to be harder than it would seem

Well, the only way to install Discourse on CentOS is as a Docker container, and at the moment it doesn’t seem to work.

The first time I tried to install it, it died complaining about lack of access to an SMTP server. No where in the instructions did it say you had to modify the app.yml and put in a valid mail server. In any case, I did that and restarted the install.

At one point during the install process I get this:

-- 0:  unicorn (4.8.3) from
Bundle complete! 92 Gemfile dependencies, 189 gems now installed.
Gems in the group development were not installed.
Bundled gems are installed into ./vendor/bundle.

I, [2015-04-04T04:49:47.161747 #38]  INFO -- : > cd /var/www/discourse
&& su discourse -c 'bundle exec rake db:migrate'
2015-04-04 04:49:55 UTC [339-1] discourse@discourse ERROR:  relation "users" does not exist at character 323
2015-04-04 04:49:55 UTC [339-2] discourse@discourse STATEMENT:      SELECT a.attname, format_type(a.atttypid, a.atttypmod),	                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
	                FROM pg_attribute a LEFT JOIN pg_attrdef d
	                  ON a.attrelid = d.adrelid AND a.attnum = d.adnum
	               WHERE a.attrelid = '"users"'::regclass
	                 AND a.attnum > 0 AND NOT a.attisdropped
	               ORDER BY a.attnum

which a Google search says to ignore, but then a little while later the install fails with:

RuntimeError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #
Location of failure: /pups/lib/pups/exec_command.rb:105:in `spawn' exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --verbose --without test --without development'", "su discourse -c 'bundle exec rake db:migrate'", "su discourse -c 'bundle exec rake assets:precompile'"]}

on which Google is much less helpful. No matter what I did I couldn’t get past it.

This kind of brings up an issue I have with Docker. Now let’s get this out of the way: I am jealous of the Docker project. We’ve been around for 15 years and gotten little notice whereas they have become huge in a short time. It would be nice if, say, I could get up to four readers on my blog.

But I really, really, really hated how hidden this whole process was. You install software on your system and then load “magic bits” from the Internet and hope it works. I think this is great on a intranet when you need to deploy lots of the same things, but without developing it internally first it was a little scary. When it doesn’t work it is incredibly hard to diagnose. Because the app wouldn’t build I couldn’t play with the database or really do anything, so I just uninstalled and reinstalled numerous times to try to fix this.

Plus, by running in a container, we would then need to modify nginx to use our LDAP configuration and that seems to be much harder than with Apache. I didn’t think it would be easy to just forward requests to the Docker instance, but since I couldn’t get it to work I’ll never know.

By this time I said, screw it, reinstalled phpBB and went home. It’s now about 8pm and I’ve been at it 11 hours.

Well, I have a mild form of OCD, or maybe it’s just being a geek, but I couldn’t let it rest. So early this morning (as in soon after midnight) I discovered a project called Luna (an active project from the aforementioned Wikimedia page).

Luna is the next iteration of the ModernBB project which is in turn is a fork of FluxBB. It’s simple, does almost everything I could want, and was incredibly easy to install. No Docker containers, no large Java app, just some PHP that you drop in your web root. Plus the webUI is built on bootstrap just like OpenNMS.

In about an hour I had it running, had changed the style to match our color palette, and fixed an issue where jquery wasn’t getting loaded by copying it down as a local file.

OpenNMS Luna Website

The downside is that it isn’t production yet. I installed 0.7 and earlier this morning they released 0.8. Jesse fixed an issue with the internal mail system and I have a couple of more issues that I’d like to see fixed, but overall I’m very happy with it. They are aiming to release 1.0 on 13 April.

And I really like their attitude and philosophy. They are self-funded and I love Yannick’s tag line of “You Can Do Anything.”

To help that I sent them 100€. (grin)

Anyway, sorry for the long post. I’ll let you know how it goes.

Dell, Rhymes with Fail

Yes, I am a bit frustrated at the moment. This post is something of a plea that someone within the huge organization known as the Dell Computer company has a clue and can help me out. Before you think I’m just a big hater, here is a shot of one of our computer racks:

As you can tell, we do use a lot of Dell hardware (and yes, there is an HP box squeezed in the middle there).

I work hard. As a result of that, I feel I deserve nice things, and what I really want right now is a nice laptop. But I want a laptop that runs Linux well.

I’ve looked at the systems from System76, but I want a higher density screen than they offer. I would look at the new X1 Carbon from Lenovo, but I’m still angry at them for Stoopidfish, and while I plan to wipe any laptop I get from any vendor I still think it will be some time before I can give them money.

No, I like to support Linux-friendly vendors, so I recently ordered the Dell M3800 laptop, Ubuntu edition. I ordered it on February 2nd.

A couple of my three blog readers have contacted me eager for my review, but I wasn’t able to publish it because I have yet to receive the laptop. In fact, it appears my original order has been canceled. Here is the story.

I placed the order on the 2nd, and got an estimated delivery date of the 18th. That would have been perfect as I would have the new machine just before SCaLE. Unfortunately, it was not to be, and my estimated delivery date was pushed out until the 26th.

Well, the 26th came and went with no update from Dell. I finally decided to contact them and I was told they would expedite my case.

This week I was told that “I regret to inform you that we are not able to process the order 769577335 due to configuration mismatch.”


You drag me along for a month and then tell me that there is a “configuration mismatch”? Now I have to reorder and go through the whole process again? Plus, there was no “mea culpa” and no offer of, heck, free shipping or an expedited order – just “so sorry, try again”.


Like an idiot, I decided to try again.

I got to the order page, and that’s when I found out what the magical “configuration mismatch” was. It turns out that you can’t order a Dell M3800 laptop with Ubuntu and a second hard drive.


In the configuration I want, I want a 256GB SSD for the primary drive and a 1TB HDD for the secondary drive. That should make the operating system fast while giving me lots of room for files and git repos on the slower HDD.

But when I check it, I get this error:

Choosing Windows makes it go away.

I was dumbfounded. The issue that kept me from getting my laptop, and it appears the issue that will keep me from getting this laptop at all, it that Dell doesn’t know how to deal with a second hard drive on Ubuntu.

Just to make sure, I did one of those chat-thingies:

Time 	                Details
03/06/2015 10:24:51AM 	Session Started with Agent (Jayant K S)
03/06/2015 10:24:51AM 	Tarus Balog: "."
03/06/2015 10:24:59AM 	Agent (Jayant K S): "Welcome to Dell US Small Business Chat! My name is Jayant Kumar Singh and I will be your Sales Chat Expert. I can be reached at or via phone at 1-800-289-3355 ext. 4166817. How may I help you today?"
03/06/2015 10:25:07AM 	Agent (Jayant K S): "Hi Tarus :-)"
03/06/2015 10:25:26AM 	Tarus Balog: "I'm trying to order a Dell M3800 laptop with Ubuntu, but it tells me I can't get a secondary hard drive with Ubuntu, only Windows. Is this true?"
03/06/2015 10:25:52AM 	Agent (Jayant K S): "I am sorry about the inconveinence. Glad you chatted in today, I will try my best to help you"
03/06/2015 10:25:57AM 	Agent (Jayant K S): "Let me check"
03/06/2015 10:27:17AM 	Tarus Balog: "I get that error"
03/06/2015 10:27:26AM 	Tarus Balog: "and it goes away if I choose Windows"
03/06/2015 10:27:37AM 	Agent (Jayant K S): "ok"
03/06/2015 10:29:55AM 	Agent (Jayant K S): "I am working on it please stay connected"
03/06/2015 10:30:14AM 	Tarus Balog: "ok"
03/06/2015 10:32:12AM 	Agent (Jayant K S): "how much boot drive space do you need and how much for the second"
03/06/2015 10:33:24AM 	Tarus Balog: "I was going to order a 256GB SSD for primary and 1TD HDD for secondary"
03/06/2015 10:34:12AM 	Agent (Jayant K S): "Give me 1 Minute"
03/06/2015 10:36:53AM 	Agent (Jayant K S): "I am sorry the second hard drive is not allowed"
03/06/2015 10:37:44AM 	Tarus Balog: "Okay"

My guess is that the Dell provisioning process is so rigid that when it comes to Ubuntu they don’t know how to mount the second drive. This causes the whole thing to fall apart. I don’t know why just mounting it as /data isn’t acceptable, but just when I thought Dell was getting it together when it comes to Linux it appears it is just so much black magic to them.

My hope is that someone from the Dell Linux team will actually see this post and will reply. There is only one thing I really want to know and I have not been able to find out: are there any special PPA’s that ship with the Ubuntu version of the M3800 for drivers, etc. If not, then I’ll buy the Windows version, wipe it and at least have the hardware I want. Yes, it costs me over a $100 more for something I’ll just throw away, but at least I’ll have my laptop issue solved.

This whole process has really soured me on a brand I used to like. My current laptop is the Dell XPS 13 Ubuntu version I bought several years ago and I still like it – I just need more screen real estate. I see now why Apple is able to dominate this market. They always under-promised and over delivered (I never had an Apple order show up late and most showed up a day or more early). I never got some crazy “configuration mismatch” errors when trying to place an order.

And in the few times that Apple made a mistake, they went out of their way to make it better.

Review: 2015 Dell XPS 13 (9343) Running Linux

In short, it doesn’t run Linux very well. (sigh)

When and if Eric reads this he’s just going to shake his head. For two years in a row now I’ve been lured by the wonders of new laptops announced at CES, and in both years I’ve been disappointed. He tells me I’m stupid for ordering the “new shiny” and expecting it to work, but I refuse to give up my dream.

Luckily this isn’t a huge issue for me since my main machines are desktops, but my second generation Dell XPS 13 “sputnik” is getting a little old. I am really looking forward to a slightly larger screen. The pixel density isn’t great on my laptop, especially compared to what is out now, and I am finding myself a little cramped for screen real estate.

The new XPS 13 is an amazingly beautiful device. I spent over three days trying to get it to work just because it was gorgeous. It had become precious to me.

My precious.

But it was not to be. I first started out with my default desktop, Linux Mint. It installed easily and I was very happy to see that code had been added to deal with the insane size of the screen (3600×1800 pixels). While a few icons were still small (like the reload arrow at the end of the Firefox search bar) most adjusted well, including the icons in the settings window. Great job Cinnamon team.

No, the issue I fought long and hard to fix was the touchpad. Every minute or so it would just freeze:

Feb  1 13:15:48 sting kernel: [ 1746.787178] psmouse serio1: resync failed, issuing reconnect request
Feb  1 13:15:52 sting kernel: [ 1750.722621] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
Feb  1 13:15:52 sting kernel: [ 1750.723734] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
Feb  1 13:15:52 sting kernel: [ 1750.724642] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
Feb  1 13:15:52 sting kernel: [ 1750.725717] psmouse serio1: TouchPad at isa0060/serio1/input0 lost sync at byte 1
Feb  1 13:15:52 sting kernel: [ 1750.737756] psmouse serio1: TouchPad at isa0060/serio1/input0 - driver resynced.
Feb  1 13:15:55 sting kernel: [ 1753.855093] psmouse serio1: TouchPad at isa0060/serio1/input0 lost synchronization, throwing 2 bytes away.
Feb  1 13:15:55 sting kernel: [ 1754.361293] psmouse serio1: resync failed, issuing reconnect request

I found a post that discussed changing out the driver which seemed to help, some but I could never get the problem to go completely away. The amazingly helpful Arch Linux folks suggested some workarounds, but nothing helped. I found it ironic that the touch screen worked fine.

I then switched to Ubuntu, thinking that might help. It didn’t, and along the way I lost audio. It seemed the audio device would just disappear. I tried 14.04, 14.10 and the alpha of 15.04. Also, Ubuntu did not handle the resolution well. While I could adjust the settings, it wasn’t done automatically for me like with Cinnamon, and certain things like the settings window remained tiny and somewhat “clipped”.

I went back to Mint and discovered that now I had wonky audio issues there. Sometimes it would be there and other times not. I stayed on 17.1 but updated the kernel to the 3.19 release candidate, but that didn’t help.

The scariest issue was that on occasion the screen would just go blank. It didn’t kill the system, if I was playing a movie file you could still hear the audio (assuming that was working), but no combination of key strokes would bring it back. I did find that closing the screen (to suspend) and reopening it would fix it for awhile, but I don’t necessarily want to have to do that in the middle of an important presentation.

Note: while the system seemed to suspend and resume okay, the power light didn’t blink to let you know it was still on like on the older XPS 13 model.

Now I’m certain that most of this will be corrected in the next few months. The Broadwell chipset is still pretty new, and rumor has it that Dell plans to support Ubuntu 14.04 on this laptop, but they will have a lot of work to do since it seems to require the 3.18+ kernel for most of the new shiny.

In the meantime I returned it and bought an M3800 preloaded with Ubuntu. While it is a bigger laptop than I’m used to, I like supporting Linux-native products and I will at least have the ability to contact Dell with issues should they arise.

I should point out that, while not quite to Apple standards, Dell has been pretty amazing throughout the process of ordering and returning this laptop. While not ready for prime time, if you are in the market in a couple of months for a small, awesome Linux laptop, be sure to check out the XPS 13. But unless you are a masochist like me, you definitely should wait.

Oh, and if any Dell folks should join the ranks of my three readers, I’m more than happy to test any unit you might send my way (grin).

Review: The LG G Watch R

This past summer I was lucky enough to be gifted a Samsung Android Wear watch as I don’t always get to play with the new toys. As xkcd pointed out, a lot of people no longer wear watches, but I still do, so I was curious as to what a “smart” watch could do for me.

However, I preferred the look of the round Moto 360 which was going to be released soon versus the Samsung, which was square, so I ended up selling it on eBay. I felt a little bad selling a gift but I rationalized it by earmarking the funds for some sort of Android watch to replace it. I was all set to buy the 360 when LG announced its G Watch R. I loved the way it looked, so that’s what I decided to get. I disagree with the Wired reviewer who prefers the Moto 360 as compared to the G Watch R, as that watch just looks to me like a round slab of glass, but de gustibus non est disputandum.

Having had it for a month now, I find I really like having a watch tied to my phone. I can leave the phone in my pocket and interact with most notices through the watch. Despite my penchant for droning on and on to my three readers, even I would have trouble describing the features of the phone in a post, so I made a little video.

If you view it, the first thing you’ll notice is that I have no future as a hand model. I also did it in one unedited, continuous take, so forgive the pauses. It was really hard to light, since when the watch face switches from dark to light it tended to get washed out, so apologies for the quality.

One of the features I didn’t talk about is the integration with Google Maps. It would be difficult to demo, but when you are using Google Maps, each maneuver is alerted on the watch. It’s pretty cool. It also has a surprisingly good battery life, which seems to be a complaint among smart watch users.

All in all I like having the watch a lot more than I thought I would. It is perfect in social situations where constantly pulling out my phone would be awkward, and I can see the future imagined by Scott Adams where you combine a watch with a smart ring on your other hand to enable gestures and spacial recognition while your phone (or handy or whatever we decide to call it) sits in your pocket.

Review: The Slow Regard of Silent Things by Patrick Rothfuss

I have yet to decide whether or not Patrick Rothfuss is an asshole.

I know that sounds like a mean thing to say, but I have my reasons which I’ll get to soon.

I was introduced to Rothfuss through his first novel, The Name of the Wind. Since that can get tedious to type, allow me to abbreviate it TNotW.

TNotW is the first book in a trilogy. It concerns a near mythical figure named Kvothe, and it is one of the best novels ever written in the fantasy genre, or any genre for that matter.

At least one of my three readers is asking themselves why I would write about fantasy literature on an open source blog. One reason is that open source tends to be a geeky thing and so is reading fantasy, but the other thing is that it helps me think about the future. As the third law of Arthur C. Clarke states “Any sufficiently advanced technology is indistinguishable from magic,” in my mind anyone who wants to create advanced technology must first start with “I want to do magic. How should I begin?” Reading fantasy allows me to think in different ways that I find both enjoyable and useful.

Anyway, in TNotW Rothfuss introduces his magic system. In the best fantasy there are rules that both empower and limit the characters, and I really like his. Called “sympathy”, magic in his world requires three things: a link, a source of energy and strength of will.

For example, suppose you wanted to move an iron skillet off of a fire through magic. First you would need some way to link what you wanted to move with something you could easily manipulate. In this case the best thing would be a small piece of the skillet itself. That would form a very strong link. Barring that, you could use any piece of iron, but that link would be weaker. Weaker still would be a non-ferrous metal, etc.

So let’s assume you have a small chip of the skillet in your hand. You would then need a source of energy. The bigger the magic, the more energy you need (i.e. rules). In this case you could probably use the heat from the fire itself.

Finally, you would need strength of will to connect your piece of the skillet to the whole thing. This is the hard part, as you basically have to imagine, with the full weight of reality, that the small part of the skillet you hold is the skillet itself, so when you move your piece, the skillet will move.

I’m oversimplifying but you get the gist. In TNotW Kovthe starts to learn about sympathy and is admitted to The University, a place where its principals are studied and taught. Out of them comes a form of engineering, a form of medicine, a form of chemistry, etc.

However, in addition to this sympathetic magic, there is a more primal, raw form of magic based on names. It is a common theme in fantasy that by knowing a thing’s “true name” one can control it. Names are powerful, which is why I obsess over them more than most people. In the world that Rothfuss creates, the pursuit of “Naming” is magic in its truest sense, but it is also the most dangerous. One of my favorite characters in his stories is Master Elodin, the Master Namer, who is quite bent.

In any case, Rothfuss is the rare author who inspires a certain type of rabid fandom. Anything he posts on his blog is almost always met by a chorus of fawning comments. It’s not that he isn’t talented, quite the contrary, but this type of fandom ends up rubber stamping everything he does as “great”.

For example, the second book in the series, The Wise Man’s Fear, did not resonate with me like the first. I came close to actually disliking it upon a first reading.

Now, granted, once I set it on the shelf for awhile and then took it down and re-read it, I liked it more, but still, it didn’t affect me like the first book. I look on it like Tolkien’s The Two Towers where “things happen that must happen” but it acts like a bridge between the first and last books of a trilogy. I eagerly await the third book, tentatively titled Doors of Stone to see if he can pull off the magic of TNotW.

And this is where the asshole part comes in. I have some friends who have met Rothfuss and spent some time with him and some of their comments tip the meter toward “asshole”. Some of the stuff that he writes on his blog rub me the wrong way, thus re-enforcing the thought. But I guess I am mainly upset because I just want him to work on that third book instead of all the other stuff he does. This is very selfish of me, because some of the stuff he does is very worthwhile and makes the world a better place, but at this point I am emotionally invested in the story of Kvothe and I want to know how it ends.

Which brings me to a sobering point: I know almost nothing about Patrick Rothfuss. One of the fallacies of the Internet is this illusion of intimacy. The thought that I can read a blog or a twitter feed or an interview and think that really gives me insight into who the person is is ludicrous. To paraphrase Silent Bob, what I don’t know about Patrick Rothfuss could just about squeeze into the Grand Canyon.

But I do know one thing without a doubt: he loves words.

I like words. I like my ten cent words and my five dollar words. But to me they are a means to an end. I like how a certain word can convey just the right feeling or evoke a particular response. But I don’t love words.

Rothfuss loves words almost as much as his family (which, if you read his blog, he loves a lot). He dotes on them. He caresses them. And I’m almost certain that he stays up nights obsessing over finding the right word.

Which brings me to his latest book, The Slow Regard of Silent Things.

This is a tiny book, around 150 pages. It’s even shorter than Gaiman’s The Ocean at the End of the Lane. He warns on both his blog and in the forward that many people won’t like this book. Heck, it only has one character in it, Auri, the mysterious girl befriended by Kvothe in TNotW.

I loved it.

This is a love song to words. He uses them to paint pictures and to compose symphonies. It is a three ringed circus of adjectives and adverbs, nouns and verbs all coalescing to create an experience if not exactly a narrative.

Auri is a woman of unknown age. She is very small, about the size of a child. She lives in a complex of tunnels and forgotten rooms called “The Underthing” that exists beneath the grounds of The University. While Rothfuss has never told us straight up her history, I’ve always imagined that she was a great student at The University who studied Naming and went crazy. She decided to “make herself small” and hid herself away. It is one of the characteristics of Kvothe that he was able to befriend her. He even gave her the name “Auri” which inspired Master Elodin to instruct Kvothe in Naming. But don’t expect to see those characters in The Slow Regard of Silent Things. It is all about Auri and can stand alone from the rest of the series.

If you haven’t read any of his books, then you won’t know what I’m talking about. Heck, I’m not even sure I know what I’m talking about. All I know is that I feel like a better person from having read it.

It covers several days in the life of Auri. And that’s about it. Pretty easy not to spoil. She has good days and bad days but to her they are just “days”. The narrative focuses a lot on her drive to put things in their proper places and in some cases, give them names.

One of the world philosophies that I strongly identify with is Taoism. Now I’m certain that a true scholar of the Tao will be horrified, if that is possible, over how I’m about to describe it, so my apologies in advance.

The Tao is all things and how they are connected. There is no “good” or “evil”, there is just the natural cycle of things. When one lives in tune with the Tao, this we call happiness. When one struggles against the Tao, sadness ensues. It stresses a very low impact existence and an acceptance of the way things are, but still manages to get a lot of stuff done, which sounds a little like an oxymoron.

One of the best books on the subject is The Tao of Pooh by Benjamin Hoff. In it he demonstrates the principals of Taoism through the stories about Winnie the Pooh. It works, and it is one of my favorite books. It sits next to me at my desk in case I’m having a rough day and I need a reminder.

As I was reading The Slow Regard of Silent Things I couldn’t help but think that Auri was a Taoist master. Here is a quote from toward the end of the book:

That meant you could move smoothly through the world without upsetting every applecart you came across. And if you were careful, if you were the proper part of things, then you could help. You mended what was cracked. You tended to the things you found askew. And you trusted that the world in turn would brush you up against the chance to eat. It was the only graceful way to move. All else was vanity and pride.

Seems very Taoist to me.

I once saw Kurt Vonnegut give a lecture. He was talking about “the shape of stories” and the normal Western narrative and how it has these huge swings in mood. The example he used was Cinderella. It starts off pretty bad. Her parents have died and she’s living with her evil stepmother. Then it gets really good. She gets to go to the ball and she meets the Prince. Then the clock hits midnight and things are bad again. Then the Prince finds her and all is well. He drew this on a white board in the form of a big sine wave that swung from bad to good.

He compared that to Native American stories. Usually the mood is very flat. We walked in the woods. We saw a deer. We caught some fish. We ate. We went to sleep. That sort of thing. There really isn’t this whole process that we expect from our stories. On his white board he drew a straight line, pretty much neutral between good and bad.

Then he examined Hamlet. Hamlet is not a happy story. Things start of bad and remain that way. As Vonnegut talked through the plot he drew another straight line. Granted, this was firmly on the “bad” side of the chart but it had a lot more in common with a Native American narrative than a traditional one, and Hamlet is one of the greatest stories ever told.

Heh – I just decided to take a stab at the premise that “everything is on the Internet” and I found a page talking about this very thing.

I don’t think that The Slow Regard of Silent Things is one of the greatest stories ever told, but it is a very good one. It, too, has a flat narrative arc. I will reread it a number of times. While I think a lot of his fans will be put off by it, and he knows this, but the fact that he created it and felt strong enough to see it through to publication moves the needle, at least for me, back firmly into the “not asshole” side of the meter.

Review: OnePlus One Android Phone

[UPDATE: After six months of ownership my OnePlus has developed an issue with the touchscreen and OnePlus support has been absolutely no help. At this point I have to recommend to my three readers that they avoid OnePlus and OnePlus products.]

I agonize over my technology decisions, often to a point that other people, including free software people, tease me about it. Is my distribution of choice free enough? Is it secure? Is my privacy protected so that I choose exactly what I want to share?

My current Android ROM of choice is OmniROM, and I’ve been quite happy with it. I do have issues with the limited number of phones that are officially supported, but it was my choice of ROM that drove me to buy an HTC One (m7).

I like the HTC. My main complaint is with the horrible battery life, and the phone is somewhat old having been replaced by the m8 which I don’t believe is supported by OmniROM. I’ve been frustrated in that it seems I have to choose between freedom and cool gear.

But maybe that isn’t the case anymore.

My friend Ronny first brought the OnePlus One (OPO) to my attention, and recently, through one of my Ingress friends Audrey, I was able to get an invite to purchase the new OnePlus One handset. While not supported officially by OmniROM as of yet, it is one of the new phones to ship with Cyanogenmod, and since OmniROM is a fork it should be compatible. Plus, it is very similar to the phones from Oppo which are supported by OmniROM, so perhaps support will come when the OPO becomes more widely available.

The first thing I realized when I opened the box is that this handset is a monster. It boasts a 5.5 inch screen at 1920×1080 pixels (full HD) which makes it the same as the new iPhone 6 Plus (401 ppi). It has a 2.5GHz Qualcomm Snapdragon 801 processor and 3GB of DD3 RAM at 1866MHz which makes it fast. I bought the 64GB version (quite a jump from my HTC One’s 16GB) and the 3100mAh battery lasts all day and then some. I thought the size would worry me, but I quickly got use to it. I can even read magazines on it which may cause me to travel less with my Nexus 7, and as my eyes age I’m finding the OPO’s screen to be much to my liking.

The phone arrived two days after I ordered it via USPS in two separate boxes. There was a thin square one holding the phone

and underneath it a USB cable and a SIM tray removal tool. To remove the OPO SIM you need a longer tool than the standard Apple one, so I’ll have to be sure to carry it with me. In a separate small box was a wall charger.

There was zero paper and no earbuds of any sort, but I would rate the packaging equal to that of other premium products like those from Apple.

Even though it has pretty much the same size screen as the iPhone 6 Plus, the phone itself is slightly smaller and lighter, although thicker (the iPhone is wicked thin – you are almost worried you’ll bend it). The back of the “Sandstone Black” model is coated with a rough textured finish that makes the phone feel solid in your hand and I haven’t come close to dropping it.

Another improvement over the HTC is the camera. The OPO comes with a 13MB Sony Exmor IMX 214 with six physical lenses. It can shoot 4K video (including slow motion) or 720p video at 120fps. It takes nice pictures.

But you could have read that on the website. How does it fare in real life?

I was concerned with the fact it ran Cyanogenmod. When they announced they were going to take on investment to license their code to handset makers, they handled their community poorly (which resulted in the OmniROM fork) and I was worried that the OPO would be “less free”. I was happy to find out that it was very open. Unlocking the phone was the same as with Nexus devices, simple hook it up to your computer and run “fastboot oem unlock”. While I despised the “flat” icon theme that shipped with the device, it took about two taps to change it back. If I wanted a theme that looked like Windows 8 I would have bought an iPhone.

All my usual options were there. I disabled the Google search bar, increased the icon layout grid size and otherwise customized the phone exactly how I wanted it. I rooted the device and used Helium to restore my application settings and the whole conversion took less than an hour.

I did have to make a change to allow the phone to work with my Linux Mint Desktop. The system wouldn’t recognize it when I plugged it in, and I had to edit “/lib/udev/rules.d/69-libmtp.rules” to include the following two lines:

# Added for OPO
ATTR{idVendor}=="05c6", ATTR{idProduct}=="6764", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1", TAG+="uaccess"
ATTR{idVendor}=="05c6", ATTR{idProduct}=="6765", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1", TAG+="uaccess"

After that it was a breeze. Note: that on one system I had to reboot to get it to recognize the phone, but I don’t think I did on the first one. Strange.

There are a few shortcomings. It took me several tries to get it to pair with my Motorola T505 bluetooth speaker, but once paired it seems to connect reliably. The voice recognition sucks like most Android phones. I don’t use Google Now but I shouldn’t have to send information off to a remote server to voice dial a call. I do miss that from my iPhone days when the original (non-Siri) voice dialer rarely made a mistake. Voice dialing on the OPO is usable, though, and there is a rumour that there will be an “OK OnePlus” voice activation feature like on the Moto X but it isn’t there now. No microSD slot, but with 64GB of internal flash memory that is less of an issue and fewer and fewer phones offer that. I also just tested this little dongle I have for accessing microSD cards via the USB port and it worked just fine.

I’m sticking with the stock ROM for now to see what Cyanogenmod will do in the future, but I know that I have the ability to put on my own Recovery and ROM should I so choose. At the moment they are in the “not evil” column, but I was a little worried about their Gallery app. I noticed a new Galley app account on my phone that looked like it was going to sync my pictures somewhere. Some research suggests that it is disabled when autobackup is off, but it would still like a little more transparency about random, non-removable accounts on my phone.

All in all I’ve been very happy with the OnePlus One and I’m eager to see where they take it. I am especially enamored of the the price. At US$349, the black 64GB version is the same price as a 16GB Nexus 5 and half the price of the iPhone 6 Plus. Probably the best bang for the buck in the Android world at the moment, if not phones in general.

UPDATE: After using this device for several months, I can say it is the best smartphone I’ve ever owned, and that list includes two iPhones (the 3GS and 4), three Nexus phones (4, 5 and 6) and the HTC One (m7).

While not perfect, the phone is very feature rich and the software is stable. Occasionally it will become unresponsive and I’ll need to reboot, but there is a soft reboot option that performs this action in about 20 seconds.

It is also rugged. I had been playing Ingress in Chicago and we stopped to eat. Because I’d been using the phone heavily all day, I had it tethered to an external battery. When I got up from the table to get some napkins, I forgot that the phone was connected by a USB cable to the charger in my pocket and it flew off the table to land on the tile floor of the restaurant. Since it was loud I didn’t realize what I’d done until I’d dragged the thing over ten feet.

Not a scratch.

Review: Question Bedtime by MC Frontalot

The best perk of my job is that I get to meet some truly amazing people. From the people I work with, to others in the open source world, to people like Damian Hess, my life has definitely been enriched by the people in it.

I was able to sponsor Damian, aka MC Frontalot, to perform at the Southeast Linuxfest (SELF) last year in Charlotte, and it was a great weekend. One evening ended up with a group of us in a hotel room, and Damian played some of the raw tracks from what would become his sixth studio album, Question Bedtime.

When he told me that he was doing an album based on bedtime stories, I was like “Wha?”. It didn’t seem to fit in with his “nerd” focus, but now that the album is out I can see why it works. First, while classics like “Goldilocks” and “Little Red Riding Hood are represented, most of the songs reference more obscure tales. Fairy tales are, by definition, fantastical, in much the same way as comic books or other geek friendly literature, so it isn’t as much of a stretch as I originally thought.

One of the tracks I heard that night at SELF was called “Devil in the Attic”. It is based on an obscure Japanese fairy tale called “The Ugly Son“. Such was their vanity, the parents of a very beautiful girl send out notice that she should only be wed to the fairest youth in all the land. Some grifters with a deformed (but intelligent) son think up a plan to wed him to her. They claim he is the fairest in the land and a courtship ensues, but based on tradition they do not see each other at first. On the night of the wedding, the boy’s father goes up into the attic of this grand house and starts claiming to be a demon who will visit a curse on the boy for daring to wed the girl, which the demon claims for himself. The curse turns out to be to deform the features of the boy – thus explaining his looks once they are revealed.

Front puts his own spin on the tale, turning it into a story of the oppression when women were considered property, as well as a lesson on conceit. In the chorus the father of the girl brags “Anything you could have, we have it. Even got a devil in the attic.”

Well, more than a year later, the CD Question Bedtime is now available for pre-order and immediate download. I’ve been listening to it for several weeks now and just got the final copy when it released this week.

The “his own spin” theme flows throughout the album. In “Gold Locks” the classic “Goldilocks and the Three Bears” story is retold from the bear’s point of view, portraying Goldilocks as the boogie man, creeping into your house to chop you up and eat you. The opening track “Start Over” is the story of “Little Red Riding Hood” as told by Front to a group of children who, in the chorus, exclaim “That ain’t how it happened”.

Just like in Solved, the album is laid out with tracks separated by little interstitial skits, this time with the theme that Front is a babysitter talking to his charges. Only they are all adults. In the opening one Front is trying to get “Li’l Kyle” (comedian Kyle Kinane) to go to sleep, and Kyle questions the arbitrary nature of a “bed time” – hence the name. It’s funny just to hear the arguments presented by the “children” in the skits – I wish I could have thought up some of those when I was younger.

I like every track on the album, but as can be expected I like some more than others. Almost all of them have a hook that will give you more earworms than the victims in The Strain. This morning I was walking around getting ready for work with “Gold Locks, gets in through your open door” on repeat in my brain.

My favorite track is “Two Dreamers” which is based on a tale from 1001 Arabian Nights. What has always attracted me to Front’s work has been the quality of the music. Too much of nerdcore rap tends to focus on the lyrics. While the lyrics are important, and Front excels at them, it is the music that takes it past novelty act and into valid art. In “Two Dreamers” there is even a bit of auto-tune, which I usually shun, but in this case it works. Quite frequently while listening to the album I switch over to Banshee and put that track on repeat.

Of course the track that is bound to be talked about the most is Wakjąkága. It is based on a tale from the native American Ho-chunk (Winnebago) tribe. Let’s just say that when I was learning how classical mythology explains things like why the sun rises and sets and why we have winter and summer, my instructors skipped over this little origin story.

If you are an MC Frontalot fan, you’ll like this album, and if you haven’t been exposed to him before, this album is his most accessible CD for non-geeks. It showcases his progression as a musician, and while my favorite tracks from Solved (“Critical Hit”, “Stoop Sale”, “Victorian Space Prostitute”) resonate with me more than the tracks on this album, they are offset by a couple of tracks I either don’t care for or actively dislike, such as “Invasion of the Not Quite Dead”. Overall, I like the album Question Bedtime the most, and tend to listen to it straight through.

As a bonus if you are an audio nerd, the download includes an 88.2kHz FLAC version which is as close as you can get to the music exactly as he mixed it. Be sure to read the README that comes with it though – if your audio card doesn’t support it he also ships a mastered 44.1kHz FLAC version that will sound better than if your media player is forced to downsample the 88.2kHz one.