2.23.2014

chromebookin it

Along with aches, sun burns and copious insect bites one of the bumps along the way during my trip a couple summers ago was my trusty Thinkpad dropping dead on me as I made my way over to Vancouver Island. My dad very kindly donated his old Acer which kept me going for a while. Later when I found some work and a place to stay in Victoria a friend gave me a slightly beat up but more powerful Sony Vaio which while not very portable was a great machine for a freebie.

Until last weekend, when after another round of abusing my friends via photoshop (and being soundly punked in return) the magic blue smoke was released and the Vaio booted no more. I ran out on a Sunday afternoon to see what I could find for a replacement and after talking myself out of throwing the better part of a pay cheque down on another Thinkpad I walked out of a Best Buy with a neat little Arm powered Samsung chromebook.

A friend who recently grabbed an x86 model suggested that rather than go with my gut and hose ChromeOS in favor of a full blown linux install I should give ChromeOS a try, but as I am wont to tinker I ignored this advice and set about screwing around with it. The preferred methods of supplanting ChromeOS seem to be Crouton or ChrUbuntu. The first lives in a chroot along side ChromeOS kernel and the second seems to do some weird munging of ChromeOS components into a weird Ubuntu image, neither of which appealed to me very much.

Instead I grabbed a couple of cheap SD cards and tried the very detailed Arch install instructions and then gave the even easier (dd this img file and go) Debian instructions. I'd never used Arch before and was quite pleased when I encountered their smooth wifi setup tools. Debian reminded me how to find the man pages for wpa_supplicant, but both were pretty straightforward.

After all that I discovered why people have been doing "weird" hybrid things with ChromeOS components rather than making full blown replacements. As usual, it's the fucking graphics drivers. The Exynos 5 chip in this machine has a Mali T604 GPU with a small number of shaders and provides a nice jank-free Youtube and Netflix experience in ChromeOS but vesafb while it works just as advertised, isn't quite up to those tasks. Although this video shows some promising WebGL performance with both. Personally I didn't have much luck with video playback under vesafb, maybe there's a way to get software scaling going but I couldn't suss it out.

Faced with this I briefly flirted with the idea of sticking with stock ChromeOS and limping along with the nifty dev tools available but since everything is mounted as noexec it's kinda pointless unless you're building and flashing ChromiumOS yourself.

The issue seems to revolve around a driver called "armsoc" which looks like it was forked from some OMAP thing a while back and seems to be under active development with the chromiumos project. I'm not exactly sure what the deal is with this thing that everyone is copying binary's around but I suspect it has to do with xorg ABI versions or some such nonsense. Arm also seems to provide closed binary blobs as well as open drivers which I haven't messed with yet but I expect will be disappointing for all the common reasons.

I haven't yet figured it all out but I did find my way to the limadriver project. It's a full on free driver for the Mali GPU family and seems to have an amusing backstory including a 16 year old core contributor so I think I'll give that a try. It seems more my speed.

In the long run though I see this machine as a great thing to have in my bag all the time but I expect I'll probably get a real machine again at some point. Assuming I can find one with a genuine English keyboard. Seriously if it's that hard to figure out which machine to ship to which province how does anyone in Europe buy a computer!?

2.11.2014

where is the plan for link bait?

In 2003 I landed my first desk job. Among my responsibilities in that role was the care and feeding of a pretty crummy proprietary Windows based mail server. One mandate that came to consume countless hours of my life was to ensure that "as little spam as possible made it to the users, but NO business mail was ever blocked".

This server had some pretty convoluted filtering options that I learned the ins and outs of (I had to plead on their mailing list for regex support because it would have added "too much overhead"). Every day users would forward spam that found it's way to their inboxes to me, and I would scour through the blocked messages for anything business related and forward stragglers to the intended recipients. I'd then take the false positives and the false negatives and update the rules using the tools available to me. By the time I left that job this process would consume three to four hours of my work day, every day.

I loathe spammers.

After some time I integrated spamhaus black-holing into our systems. It is (or was then, I haven't used it in ages) a system that accepts forwarded spam from large numbers of users and then adds offending sources to a block list you can automatically load into your mail server to try to keep up. It was certainly not perfect and I still had to look for false positives but it cut down on false negatives.

Later in that year of firsts as you may be guessing I also encountered Bayes method for the first time via Paul Graham's essay A Plan for Spam. I didn't understand much of it (stats are still not my strong suit) but I knew I'd found some powerful geekery. It made me feel the way I had when I first discovered OS level API's and later real mode instructions; deeper magic was waiting for me to understand it. I printed it out and kept it next to my crapper with other papers which would take multiple passes to slowly grok.

A year later Gmail would come along and use Bayes to essentially solve the spam problem for me and the rest of the internet, but by then I'd put that battle behind me.

Around that same time RSS (and later Atom) was being dreamed up and shortly after that feed aggregators came along and brought us a new kind of inbox with new kinds of problems. Machine learning would help again with the new problem of prioritizing large amounts of content. But as the number and variety of feeds increase the common implementation lacking a manual override caused it's own issues.

Maybe you never want to miss a post on a particular news feed, or maybe the submission you care about most on Hacker News today didn't receive a single upvote. The Spam or Not Spam classifier solutions don't work as well for the question of Interesting or Not Interesting. There are other ways to approach this problem but it's not yet solved in the way that spam is solved.

The unsolved problems of interesting or not interesting (Digg, Reddit, Twitter, your Facebook feed, etc) and in some ways relevant or not relevant (search) are vulnerable to being undermined. In these spaces (as with spam before them) the fact that more eyeballs means more revenue makes short cut optimizations like some types of SEO or link baiting worth pursuing.

Search and social media have mitigated the issue somewhat by providing things like Google Ad Words and promoted Tweets but the immense value to be gained from having something that's not an ad but not quite organic either go viral far outstrips that of shelling out to put your copy in front of some demographically plausible potential customers. In those transactions it's far better to be the venue for the ad being placed than it is to be the one buying it, better to provide the valuable service or relevant content than to try to ride it's momentum.

The space in which this provider of eyeballs / consumer of attention power struggle is happening is being aggressively explored for advantage on all sides, and in true internet form is being iterated at a staggering pace making even my info addled head spin.

The life cycle of a linkbait 0 day is going from multimillion dollar idea to passe joke to fairly interesting content faster than I can keep up.

Facebook has experimented with various solutions, this one may help you preserve a Facebook friendship.

(I didn't have to search for this screenshot, it was at the top of my feed)

All or nothing is a start, but everyone has grudgingly un-followed someone they genuinely find interesting because their signal to noise ratio was too high. Where is the "Plan for Spam" for wading through content?

Like any good fiend my info addiction sets my blood itching when my junk is diluted with cutting agents, but how to scratch!? Viral doesn't necessarily mean I will or won't like it, popularity among like minded people doesn't either and link bait doesn't always equal uninteresting. Your favourite hand curated collection of content won't universally produce things to your taste but maybe you will sit and read every word of every post on your sisters blog. A black box feed aggregator or a crowdsourced social news site offers minimal control for manual adjustment to how things are prioritized. "Unsubscribe from the default subreddits" is such a common suggestion to improving the Reddit experience it may as well be the default.

At least Twitter starts you at zero and lets you build your own prison. Although based on the number of times that my father has said of Twitter that "no one cares what you had for lunch", to which I reply that just like when deciding who to befriend IRL if you follow boring people you're going to have a boring news feed makes me wonder what the average Twitter experience is like.

There is a void in my internet. One that's pissing me off and frequently dominating my thoughts. Experience has taught me that this usually means two things are also happening. If it's bugging me and I'm thinking about it, then it's bugging smarter people who are also thinking about it. And if smart people are thinking about a problem facing the internet, someone is in the process of cooking up a solution right now.

So where the hell is it?