Saturday, January 10, 2015

Gentoo is not ready for systemd

This is mostly just a rant into the aetherwebs, and it won't make a lick of sense to someone who doesn't manage a Gentoo Linux system.

You have been warned.  Move along.

Yeah, I know systemd is optional (for now) on Gentoo.  The thing is, unless you take specific steps to avoid it, it just happens to your system.  This is a bad way to introduce such a fundamental change.

Several months (a year?) ago, my emerges simply stopped working.  There were package conflicts all over the place, and I didn't have time to untangle everything and get to the bottom of it.  So, I just stopped updating.  Obviously, as a Gentoo user, I hated this.

Now, months later, I decided to build up a new system on my newly-obsoleted laptop.  It looks to me like systemd is the future, so I go that route.

Here's what doesn't work, out of the proverbial box:
  • Service configurations usually adjusted in /etc/conf.d/
  • DHCP
  • crons
  • webalizer
  • Dropbox (at least, the way I use it)
I was able to figure out how to get dhcp working via NetworkManager, and that got me to the point of a functional-ish system at boot.  That was the easy part.  Next, I transitioned what system cron jobs would fit into cron.hourly and such.

I still haven't figured out how to set up user-specific timer jobs that run on a schedule (say, every 15 minutes).  The file formats are simple enough for services and timers, but I can't get ssytemctl to recognize the files I place in ~/.local/share/systemd/user/.  In theory, though, that should all work, and it would be worth figuring out and moving forward.

It's also worth noting that the Gentoo Handbook and other documentation has thus far not been updated to support users building with systemd by default.

Here's what is flat-out broken for me, that I had working in my previous system:
  • Dropbox running in the background, launched the first time my user logs in.  Since Gentoo completely disables running anything out of /etc/init.d, I would need to write my own service file, which I'm not prepared to do.
  • Webalizer running just before the apache log gets zipped up by systemd.  This is probably as simple as specifying "run this task just before you rotate the apache log", but I don't know enough about the guts of systemd's log rotation for that.
For now, I think I'm going to revert my new system back to OpenRC.  It's the path of least pain, now that I know how to exorcise systemd from a box.  During this whole process, I got my old system's portage tree untangled.  I basically had to move the world file to a temporary location, untangle the system dependencies, depclean everything, restore the world file, and re-emerge it all. 

See, most of what my Linux system does is act as a web server, and a Dropbox client.  I have several cron jobs that rename files in Dropbox which get uploaded via IFTTT and other automated means, and sometimes these files have characters in their names that aren't valid on Windows.

Suffice to say that right now a systemd-based Gentoo system significantly fails to meet my specific needs.  If it was just a desktop workstation, and I wanted the latest version of Gnome I would probably stick with that.

Hopefully these issues will get resolved in the future.  Maybe I'll even help that to happen.  In the meantime, my main Gentoo system is dropping systemd. I have other priorities.

Saturday, June 15, 2013

Three Weeks with the Helix: My Thoughts on Windows 8 and Hardware

A couple of months ago, my laptop's charger died, and I suddenly found myself in a computer crisis.  (At the time I thought it was the battery (again--this machine has killed 2 batteries so far), hence my frantic search for a new machine, but it turned out to only be the charger--it turns out I have access another one I can use in the meantime.)  I needed a dependable machine; one that was good for every-day tasks such as browsing, e-mail, documents, and of course blogging, but also good for programming and other tweaking I like to do.

I had been keeping my eye on the market for about a year, and so I decided that then was the time (even though I knew Haswell was just around the corner--silly me).  I was very interested in Windows 8's new touchscreen features.  I tested the beta builds of Windows 8 on my laptop, and I found them to be very fast and stable, but I determined that the "Modern" interface (a.k.a. "Metro") was pretty much useless without a touchscreen.

Nevertheless, touchscreen is the future of computing interfaces, but by the same token, keyboards and mice/trackpads are also the present state of computing interfaces in Windows.  I definitely needed both, without compromise.  The Microsoft Surface Pro was too inflexible as a laptop device--the "Touch" keyboard is worthless to me, and even with the "Type" keyboard, the screen is only supported at one angle, and then only when it's on a flat, stable surface.  No, thank you.

I really liked what I saw coming out of Lenovo lately.  The Lenovo Yoga 13 looked pretty awesome (I had tried it at the store), and the Helix looked amazing, but it wasn't out in the U.S. yet--or was it?  It wasn't for sale on Lenovo's website, but I was able to find it from small sellers at Amazon and elsewhere.

After looking around for the best price at a somewhat reputable retailer (as far as I could tell) I found a site with a coupon code that was out of state (no tax), and bought it.

I was very happy with the touchscreen interface, for the apps that were available.  I found the selection of touchscreen apps barely adequate, but that situation will improve with time and consumer adoption.  There were a few kids games that Shoshana in particular loved to play, and the tablet form factor (and tent mode, and stand mode) is a great feature for kids.

In daily use, switching between touchscreen input and keyboard/trackpad input was as natural as switching between mouse/trackpad and keyboard input on a 'traditional' machine: I was able to use whatever seemed appropriate and convenient to the task at hand.  I didn't find myself using trackpad gestures, since the screen itself was a more intuitive place.  Trackpad gestures will probably be more useful to someone with Windows 8 and no touchscreen (which I don't recommend).  Similarly, I completely ignored the "hot corners" functions of Windows 8, since those are built as a way for mouse users with no touchscreen to do tasks built for a touchscreen.

Keyboard replacement (left), and base unit (right)
To make a long story short regarding my ownership of the Helix, I was sent a unit with a French AZERTY keyboard dock.  I opened a support case with the retailer, and with Lenovo.  I was sent the QUERTY keyboard part, but with no way to open up the base unit and install it (without breaking anything), I had no choice but to simply send the keyboard back to the manufacturer, and send the Helix back to the retailer.

I was issued a full refund for my troubles, so I'm not out any money, and I have gained a lot of perspective on what I value in a computer.  Here are my notes from the Helix experience:
The detachable screen form factor was pretty awesome, though I did end up taking the base with me everywhere even if I wasn't using it.
  • "Stand mode" is great for using the touchscreen at an angle on the lap or a table.
  • In laptop mode it seemed top-heavy due to the "behind-the-glass" design, but this was never a real problem.
  • The 1080p screen was simply too small for the Desktop interface at 11 inches.  This is a fault of Windows 8, not the hardware.  DPI settings are simply ignored by too many apps.  The text was too small to read comfortably. The 13" Yoga is looking pretty good in that regard.
  • The stylus was nice to have, but with a trackpad not really necessary.
  • The Windows 8 Modern UI app ecosystem is lacking.  This may improve with time. BlueStacks is too cumbersome to really use for touchscreen apps.
  • Using the mouse buttons on the bottom corners of the rocking touchpad was wonky, and never worked the way I expected.
  • The function keys F1-F12 were toggled to their auxiliary functions by default. I had to hold the function key down to get them to work as themselves.
  • The function key was located where I expected the control key to be and vice versa.
One thing that surprised me was that I didn't like the pixel density.  I have pretty good eyes, and I have always sprung for the highest resolution displays that I can get on my laptops.  I have been very put off by all of the new computers these days with 1366x768 displays.  768 vertical pixels is equivalent to those 1024x768 displays we all had with Windows 95 on our 11" 3x4 monitors.  It's worthless for multitasking, or for reading text, and especially for editing code.  It simply will not do.

I was surprised, then, that 1920x1080 pixels was too small for me to find useful.  Yes, I could see everything, but I had to concentrate to actually read it one line at a time.  This also would not do.  So no longer can I simply say "increase the pixels"; I must find the right balance between screen size and pixel density.

To that end, here are some pixel density data points I have collected:

My Dell Inspiron E1505 has:
  • 1680x1050 at 15.4" 16x10 = 128.645 ppi
  • Equivalent size at 1080p 16x9 128.6 ppi would be 17.1"
Lenovo Yoga 13 has:
  • 1600x900 at 13.3" 16x9 = 138.0 ppi
  • Very similar to my E1505, and quite useable
Lenovo Helix has:
  • 1080p at 11.6" 16x9 = 189.9 ppi
  • Not useable
Dell Precision M4700 (encountered at work) has:
  • 1080p at 15.6" 16x9 = 141.2 ppi
  • Looked usable
The best pixel density per inch seems to be in the 140 range, not the 190 range.  If I want a 1080p screen, I'll need to go with something larger, like the 15.6".  If I want something smaller, I will need to sacrifice some screen real estate.  Suddenly the Yoga 13's screen resolution transforms from a disappointing spec to a sound product design decision.

I definitely like the Yoga 13, but I'm not sold on it.  My current machine is bulky, but it has suited my needs very well for over 6 years.  It's definitely on the way out, and has its problems:
  • Broken charger
  • Broken hinge 
  • Hot
  • If it gets jostled the wrong way, the screen goes dark and everything is unresponsive (ever since the hinge broke).
  • Battery life is down to about 40 minutes on a full charge.
  • Not to mention its 6-year-old specs.
...but I'm hoping it will hang on until I see what the new Haswell chips can do in a transformable laptop in the 15" range.  I don't want to feel like my new computer is a downgrade.  With the Helix's small screen, that was definitely the case, even with the increased pixel count.

Saturday, March 30, 2013

Coming Around to the Kindle Paperwhite

I like to make my buying choices intentionally.  I support the ecosystems that I think are best for the user, usually in terms of user rights and flexibility.  Not just for myself; I want ecosystems that respect the users' interests over centralized control to exist and be well supported.  This is why I initially bought HD DVD over Blu-ray, and refrained from buying iPhone (and every other Apple product).

This is also the reason I chose to avoid the Kindle.  Amazon has their own proprietary format and DRM for e-books; they don't support other vendors' books on their readers, nor their books on other company's readers.  I have found, however, that this restriction is easy to get around, with the right software.  I am free to buy e-books from any vendor and load them on a device from any vendor, Amazon included. 

In the 11 months since I bought my Nook Simple Touch, the market has evolved.  Both Barnes & Noble and Amazon have come out with lighted e-ink readers.  Both companies have tablet-style readers.  Barnes & Noble is spinning off their Nook division to a separate company.  An antitrust lawsuit has resulted in actual price differentiation in the e-book market once again, and Amazon once again clearly has the lower prices and best promotions.  In fact despite my owning a Nook, most of my e-book purchases have been from Amazon.  I have only purchased one (non-free) e-book from the Nook store.  The rest have been from Kobo, StoryBundle, and the Humble Bundle (and also one from Google for 25 cents).

I got a $25 Barnes & Noble gift card for Christmas from my parents.  I have loaded it onto my account, but I haven't spent any of it yet.  Every e-book purchase I want to make, it's never the best price.  I will probably use it to get the next installment in the Game of Thrones series (whenever that eventually comes out), since new releases tend to have the same price in most places.

There is also the issue of Amazon Prime.  Last summer, I switched from Netflix to Amazon Prime for streaming video.  Our Blu-ray player has built-in support for both.  The selection of free streaming movies isn't nearly as good, but they do have an excellent selection of TV shows, including all of Star Trek, Firefly, and several other sci-fi series.  The free two-day shipping from Amazon with no minimum order (which I was able to extend to four additional friends' accounts) makes it an excellent deal.  I'm hooked.

The value of Amazon's streaming would definitely be increased if I had a Kindle Fire.  Thus far, Amazon has not released their Instant Video player for Android.  This despite the facts that Kindles are built on Android, and they have a player for iOS.  Their excuse is that Android isn't secure enough, and their video partners wouldn't let them stream their content if they had an Android player.  This doesn't seem to have stopped Netflix, Flixster, RedBox, the Google Play store and several others from offering streaming players on Android. The transparent artificiality of this restriction alone makes me not want to buy a Kindle Fire.  It's simply a bad way to treat your customers, and it makes me want to look elsewhere.  The Kindle Fire devices aren't that good when compared to other tablets.  If I'm going to spend money on a dedicated tablet, I would much prefer a Nexus device.  All things considered, my actual plan for tablet functionality is to get a touchscreen Windows 8 convertible laptop/tablet.  My current laptop is nearing the end of its life, and I'm keeping my eyes open for devices like Lenovo's Yoga and Helix lines, which are full PCs, but also have tablet functionality and form factor, and a tablet app ecosystem that I believe will do well over time.

The other benefit of owning a Kindle device is access to the Kindle Lending Library.  The best way to take advantage of this would be with an e-ink reader, which is definitely my preferred reading medium.  If I were to get a Kindle Fire, I would want to keep my Nook around for most actual reading.  That's another reason I'm not very interested in the Fire.

When I purchased my Nook, I was aware that a GlowLight version was coming down the pike.  I chose not to wait and spend the extra money just for that one extra feature. Looking at the landscape now, the Kindle Paperwhite offers several advantages over my Nook Simple Touch:

  • Higher resolution, higher contrast e-ink screen
  • Built-in illumination - at the time I bought my Nook, I didn't want to be doing a lot of reading in bed.  These days, mostly because of how Shoshana's condition has effected our lives, I have been doing a lot of reading in bed when Elizabeth and I have different sleep schedules, and in darkened hospital rooms while Shoshana sleeps.
  • Access to the Kindle Lending Library
  • Kindle-specific features, such as "X-Ray", Whispersync, Time to Read, and upcoming Goodreads integration (Amazon is buying Goodreads). 
I don't regret buying my Nook.  It was a good decision at the time, and it was fun to root it and customize it. Managing the rooted environment has become somewhat of a chore, and it is a definite drain on battery life.  If I buy the Kindle Paperwhite, I will be able to sell my Nook Simple Touch for at least $50.  Including the skin and case (and the option of root or not) should increase that price.  I have some birthday money still burning a hole in my pocket.

I will miss the Nook's physical page turn buttons and wide grip.  I will miss the ability to supply my own screensaver images.  I will not miss the Nook ecosystem.
My folder of Nook screensavers.  Definitely preferable to Kindle's ads.

Wednesday, November 28, 2012

Humble Bundle Data - Android 4

I did it again.  This time, the bundle was a games bundle (The Humble Bundle for Android 4), which is Humble's normal fare.  Also this time, I was able to collect data from the very beginning.  There was a period of 7 hours where my server got turned off and no data was collected, but that time slot was in the middle of the data collection with no major events occurring near it.  I patched it up with a little bit of linear interpolation.  It shows up on the Marginal Average Price as a plateau, but is otherwise unremarkable.


One thing about this graph that I was not able to capture last time is that the average price was actually highest at the beginning, before sinking to a low, and then slowly rising.  The "event" in the middle is when games from the previous Android bundle were added as an additional bonus.  Interestingly, I was able to purchase at the point of lowest average price though I did beat it by making my purchase price a nice round number, thereby contributing to the bounce-back of the average price from its initial fall.

The initial fall is probably due to a bunch of people paying $0, or $1 immediately just to get the basic games and/or Steam keys.





The ramp-up of initial purchases is quite high, as you can see.

In this case at least, the initial "bump" was much more significant than the subsequent "blip" produced by adding more bonus content.  A lot of people already have the previous bundle games, so this is somewhat expected.



Here again is the raw data, for those who might be interested:

Thursday, November 01, 2012

Humble Bundle Data - Results

In my previous post, I said I was going to finish collecting data for the rest of the Humble eBook Bundle at humblebundle.com and post the results here.  

The results are in.  This was probably the most successful Humble Bundle to date, based on the ending average price.  Let's look at the data for the Average Price over Time.

Average Price over Time
You may notice that bump in the middle of the graph.  That is the point in time when several PDF comic books were added to the Humble eBook Bundle.  This had the effect of pushing a lot of fence-sitters over the edge to purchase the bundle, as well as increase the margin by which purchasers were willing to "beat" the average price.

Total Purchases over Time
You may notice that the Total Purchases graph has some missing data at the beginning.  This is because initially I only collected the Average Price (and I was over an hour late in starting that collection).  The bundle started at 10:00 AM PDT; I started recording the average price at 11:30 AM, and I started collecting the total number of purchases at 5:30 PM. 

Total Revenue over Time
With those two numbers, I was able to calculate the total revenue collected.  Later, I added direct collection of this figure.

As you can see from the graph.  At no point did the average price go down much at all (there were a few times it went down a penny or two).  This answers the question I was initially asking, at least for this bundle:  should I wait for a lower price?  The answer is of course emphatically no.  If I was going to beat the average price, the time to do it was as early as possible.

I do seem to recall bundle average prices going down in past bundles, but this may have been due to abuse by people pumping the system for free and/or very cheap Steam keys.  That practice seems to have been cracked down upon with CAPTCHAs (remember: only use your scripting powers for good), and the momentum of the price and interest in the bundle seems to have been maintained by the addition of the bonus content.  I would expect similar measures in the future.

As it turned out, I when the extra bonus content was added, it was also added to the account of everyone who had previously purchased the bundle, whether they beat the average or not, so I ended up with all but the initial two bonus books.

These marginal rates were all calculated from the previous values.  It would be interesting to have better data at the beginning of the data set.  I'm curious to know how the profile of the initial wave compares to the second bump.  You can't really tell with the first seven hours missing, unfortunately.  My suspicion is that the secondary bump was sharper than the initial wave, mostly because I believe that the secondary wave was largely fence-sitters who had not bought because they thought the price was too high for the content offered.  When more content was offered (and considering the content), they immediately jumped on it.

Marginal Purchases (every 15 minutes)

Marginal Revenue (every 15 minutes)

Marginal Average Price (every 15 minutes)
It should be noted that the website data is far from perfect.  The totals sometimes went down from one reading to the next, and after the bundle had ended, the numbers were still in flux for several hours, but at the scale of these graphs, the fluctuations are insignificant.

If you would like to look at my raw data, I will provide it for download in its unprocessed CSV format generated by my script, as well as the Excel spreadsheet that I used to calculate the missing values and create these fancy graphs.

Here is the data:
Here is the final form of the script I used to create this data:
Enjoy!