Category Archives: Computers

Udisks2 and UNIX Philosophy

Apparently the udisks devs took it upon themselves to violate the FHS and moved the path for automounted media from /media/$DEVICE_NAME to /run/media/$USER/$DEVICE_NAME.

This is a user-facing change that I can’t find primary documentation for with google, which means the developers are automatically in the wrong, even if it is a good change.

Now, let’s talk about some things this change does (The first three are the developer’s claimed features):

  • Mount paths now belong to users – Why would a device plugged in to a computer belong to a particular user? It’s just as likely to be a backup drive or some other shared resource, and the interactions with hotplugging filesystems that support proper permissions are kind of bizarre. Older auto-mounters having to work around the “priviliged mount as a user” issue was a feature.
  • Avoids name clashes – Seriously? If we make the assumption that all relevant systems are single-user interactive machines, as the FreeDesktop folks have been making, every disc will belong to the same user, so the namespace is exactly the same. Also, is this a real problem? How common are device name conflicts? Can’t we just append “-(n+1)” or something straightforward like that?
  • Works with a ro / – OK, fair enough, it’s a neat idea. Now who run anything other than a statically configured embedded system with a ro /? Bueller? Bueller?
  • Where do discs plugged in before a user logs in go? How about if you have multiple interactive users logged in? This Fedora mailing list discussion seems to indicate they didn’t even think about it before pushing the change, and the suggestions mean your disc will mount in different places depending on when you plug it in. Broken.
  • The FHS is a standard, all manner of programs and scripts follow the standard. Everyone who was following the rules just got burnt.

    It wouldn’t be so aggravating if it weren’t part of a stream of douchey autocratic decisions the the gnome and RedHat contingent among the FreeDesktop folks have been making during the transition off of HAL, that harm everyone but the narrow use case they envision while making the decision. This is the same crew that has been forcing the *Kits on us (PolicyKit, ConsoleKit, DeviceKit, etc.), which have all made things less transparent, and power users’s lives more difficult. Most of these changes seem to be dedicated to breaking features accessible from the command line or other simple interfaces and instead integrating them into one of the bloated libraries attached to Gnome and QT, just to make things easier for the big desktop environments, which I find philosophically objectionable … in the words of Doug McIlroy himself, “This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together.”

    There is a ragier condemation of it here that fails to bring in the UNIX philosophy argument, and an obnoxious but partly correct rebuttal from someone involved here if you would like to peruse the politics.

  • Posted in Computers, DIY, General | Tagged , | 4 Comments

    A Year of Google Reader

    A year ago today I switched from visiting websites to consuming through Google Reader as my primary means of reading web content. Like most such time-saving conveniences, rather than letting me read the same amount of Internet chatter faster, it just means I consume more of it. A lot more of it.

    The mediocre “Trends” metrics page built into reader tells me I have read 119,568 Items this year, which will grow by something on the order of 2,000 over the course of the day.
    To be fair, that statistic is rather misleading for several reasons. First, I tend to skim feeds by locking my hand over j (next item), k (previous item), space (next object), and middle click (open in new tab, there is an upper midddle mouse button for the Trackpoint on Touchpads), so it shows my reading everything even if it flickers by as I parse the headline. Second, I’ve added some ” chatty” feeds in the last couple months, particularly Y-Combinator’s HackerNews feed, which is a ~105 item/day noise machine, full of stereotypical startup douches, presented headline-only. I tolerate HN because it brings me some truly excellent oddities that I wouldn’t see otherwise, and does so on a regular basis. For scale, reader tells me I’ve clicked 406/3000 things from HN in the past month, and only perhaps half of them were inflammatory headlines that were closed as soon as I realized what they were. Which is still more than the next most clicked feed.

    The more meaningful metric is that, according to the terrible “Export starred items, then do a wc on the json file, and subtract one” method, I have starred 1188 items in the past year. Also working around the Trends page sucking by making note of the value in the 30-day sliding window from time to time, I seem to actually click into between 750 and 1000 items a month, of which I fully read probably 2/3.

    As for Reader itself, I’m not fond of the current visual (re)design, and Plus is wildly inferior to the pre-Plus sharing mechanism, but in terms of features and convenience, it is still the best feed handler I’ve seen. The closest I can find is TinyTinyRSS, which is a self-hosted solution with an Android app. It is apparently something of a resource hog for cheap shared hosting, and currently doesn’t have a good “share with note” mechanism, but I’m keeping a close eye on it because it is very close to a drop-in replacement, the idea of self-hosted appeals to me, and Google dependency makes me nervous. If someone hacks together a clean flow for sharing with note into something a reasonable blog type CMS can syndicate, or Google gets any less functional/creepier, I could easily see myself making the switch.

    So I have a slight reader problem, but it is an awful lot of fun, and I think it makes me a more interesting person. For the curious, my exported list of feeds is here.

    Posted in Computers, Entertainment, General, Navel Gazing | 2 Comments

    Exploit Exercises is magnificent: nice pre-packed virtual machines with a set of known vulnerabilities to learn various classes of security problem from. Fuzzing you own machines is never any fun, because the likelyhood of finding anything good is infinitesimal, and … Continue reading

    Posted on by pappp | Leave a comment

    DARPA and the Makers

    So there has been a spat going on, where Mitch Altman is parting ways* with other important folks in the Maker movement over concerns about their accepting DARPA money for STEM education. The organization accepting the grant is largely being represented in the arguments by Tim O’Reilly.

    Altman and O’Reilly are some of the more substantial organizers of hacker/maker types, and I generally have a great deal of respect for their opinions and activities… but I don’t get what the DARPA fearmongering is about. As far as I can tell, the only problem is that from 1972-1993, and again from 1996 on, the U.S. Government’s technology investment agnecy has had “Defense” prepended to its name out of political necessity. I suppose part of my befuddlement is that the ethics of such things have long been carefully thought through in academia, so seeing the non-academic maker types fret about it is novel.

    First off, let’s talk about DARPA. Go read the mission statement. They are tied to the DoD, but their job is to develop technology. Basically, it’s in the United States’ strategic interests to make sure domestic technological advancement keeps pace with or exceeds that of the rest of the world. Strategic does not mean military, I would like to think most of learned this, if not in school, at least from playing empire-building games. The MENTOR program this grant in in particular comes from is to fund education that will nurture future engineers and scientists, to support the goal of advancing science and technology. This is fundamentally the same organization that funded most of the major advances in computing (See Project MAC, MULTICS, and the Internet), even though they grew a “D” in their name, and were founded out of fear of the Soviet’s technological capacity. As it turns out fear of annihilation is a great way to get reluctant politicians to think about the future. DARPA isn’t the armed forces, they’re the US government’s way of investing in technology.

    Next, let’s take a little dip into the philosophy of technology. Once some useful bit of technological progress has been made, it won’t be long until EVERYONE has access to it, such is the nature of history and technology. More cynically, the U.S. Military-Industrial complex will do whatever they want with any technology they dredge up, whether or not they paid for its development. Arguments about the intention of technology are kind of ridiculous, and yes, I’m aware that that makes my Utilitarian ethical precepts show. To use one of my favorite examples instead of going into a nebulous argument, the same cheap sensor and storage technology that makes mass surveillance possible also allows us all carry a recording device with which we can watch the watchers and disseminate our findings (so long as our rights to record police stay intact). The difference between menacing and empowering technology is entirely in its application, and the creators, much less the creators’ financial backers, generally don’t get a whole lot of say in the matter.

    Finally, let’s talk about practical matters about politics and money in the United States. First, if you’re involved in the technology industry, you are already complicit. Like so many things in the modern world, the technology industry is, to a distressing degree, driven by the military industrial complex. We talk about the need for funding NASA as a matter of driving the leading edge of science and engineering so that technologies trickle down into our every day lives. The same applies to defense; World War 2 and the Cold War were arguably the primary technological drivers of the 20th century. I tend to think of DARPA, like the DoD operated national labs, as “The conservatives won’t let us fund science, so we call it defense and do it anyway.” Yes, it is reprehensible that “Education” and “Science” will get cut, but “Defense” won’t. Yes, some immediate military technology comes out of DARPA programs, but whether or not we are in a decade with the “D” prepended, it has always been about advancing technology. The principle here is that the U.S. Government is offering up money to advance STEM education from a fund that looks enough like defense to remain funded, and it is even better that its use is being directed by people who’s ideas about STEM education are agreeable, to O’Reilly, to Altman, and to people like me.

    I’ll even admit there is a little bit of self-justification in here, but we’re all being a little ridiculous: Mitch made his announcement, most likely from some kind of Linux box (Which is a developed clone of a cut-down version of an old ARPA project), on the Internet (which is based entirely on the fruit of another ARPA project).

    So, my opinion? Let’s celebrate that a little piece of the DoD budget is going to paying makers to teach future makers instead of fighting wars of aggression on flimsy pretenses in random oil-rich nations on the other side of the world. It surely isn’t perfect, but it is a step in the right direction.

    * A bit of my own ideological weirdness: most of the argument took place on Facebook, which I think is sort of an embarrassment to our society, so the link to the original source is indirected through Slashdot.

    Posted in Computers, DIY, General, Navel Gazing | Leave a comment

    A Single-Image Review of the Windows 8 Consumer Preview

    The default desktop background/log in image is the ugly 8-betta. Thanks to the GIMP and general orneryness for the flip.

    This, even more than the DP, is a media-consumption OS – either we are watching the end of general purpose computers, or it will be holding the “Every other Windows release is a miserable failure” pattern. Touchscreens are horrible interface devices where other options are available, and optimizing for them makes horrible interfaces.

    Edited to switch to a deader version (old version) and add source XCF with the background edges fixed and all the objects on separate layers for other’s editing pleasure.

    Posted in Computers, Entertainment, General | Tagged , | 2 Comments

    Google Exit Plan

    I started writing this as notes for my own use, and wasn’t really planning to post it publicly. However, I didn’t find any comprehensive google exit plans that were suitable for people in my position, and it seemed like an interesting area for discussion, so up it goes.

    While making my regular Google backups (detailed below in “Backup ALL the Things”) over the weekend, I decided it was time to update my plans for bailing out of google’s services if necessary, and discovered that there may be superior alternatives to some of the services I’ve been depending on. Google’s vast infrastructure, development resources, ubiquity and integration have tended to make them better than self hosted options. The fact that they are a single party who has thus far been generally responsible with user data makes them more attractive than other hosted solutions. Both of those situations are subject to change.

    Continue reading

    Posted in Computers, DIY, General, Objects | Tagged , | 1 Comment

    When the Internet is Stupid

    This would have been a few-line comment on G+, but I’m noting some things that I’m not comfortable saying without sourcing, and google plus’ stupid one-link-per-post system makes it impossible to do that. This is all, at the very least, uncomfortable to think about.

    I’ve been watching the reddit/kiddie porn kerfuffle today, and it is a nice framework to think about some recurring social issues. Just to put a summary and disclaimer up front exploiting children is unequivocally bad but that is never what the discussion ends up being about.

    It makes a fabulous internet microcosm example of the usual course of pedophilia accusations: There are some distasteful (but, apparently, for the most part not illegal) things posted, someone notices, and it immediately turns into axe-grinding, bandwagoning, and trying to shut down an entire site because OMG think of the children irreparably harmed by possibly sexualized images of possibly minors. I’ll go ahead and note that there was some genuinely bad shit showing up, but the standard “take down anything that is illegal in the jurisdiction our servers are in” mechanism that has to be handled anywhere there is user submitted content should have been catching that – and justly needs to be fixed anywhere it wasn’t.
    The fact that SomethingAwful is leading the charge, and is a for-pay internet community (notably, one that used to be a big hub of ‘net culture and …isn’t very relevant lately) even gets the ubiquitous “using accusations for ulterior purposes” aspect in.

    The related discussions are rolling into the various corners of
    Legalizing child pornography is linked to lower rates of child sex abuse and Australia banning pornography featuring small-breasted women as CP messes (both from 2010), and the whole “why the fuck is Toddlers in Tiaras OK” issue that remind us how stupid the whole area has become.

    It also makes an interesting study about legality and the Internet. Pretty much every part of the Internet condones things that are regionally illegal, be it political speech, prohibited drugs, copyright infringement, various flavors of hate speech, or pornography. Different sections of our global society feel differently about all those things, and calls for selective condemnation tend to lack the self-awareness to note that the same moralizing applied to the parts they approve of would be reprehensible. To pick the easiest example: the United States cheering online political speech and social modernization/liberalization in the middle east during the “Arab Spring” while advancing Internet censorship in most other circles.
    The fact that international law still can’t handle telecommunications too often makes concerns about legality of publicly visible content into a race to the most restrictive – or at least race to the biggest bully – situation. I have no idea what the solution to that is, but I’m becoming increasingly convinced that it will have to be a technical solution with resignment to a certain acceptable level of transgression by all parties.

    Once again, I hate how Richard Stallman keeps being right (I’ve seen better versions of the point, but can’t find a link) about horrible things.

    Posted in Computers, Entertainment, General | Tagged , , | Leave a comment

    Sublime Text 2

    The idea of shelling out $60 for a text editor in this day and age is absolutely absurd, but I’m seriously contemplating doing so in the near future, because Sublime Text 2 appears to be the answer to all the things I hate about text editors. I’d been pointed at it before, but don’t like to increase my dependency on proprietary software, so it took a couple passes of seeing it do things right before I was willing to look seriously. But oh how it does things right. I’ve been using the uncrippled demo version for a couple days, and am seriously impressed.

    It has all the basic features of a programmer’s editor. It can open multiple files (it uses a browser-style tabbed interface). It syntax highlights almost anything, does intellitext-style autocompletion on pretty much everything, and has shortcuts for context-aware section jumping (brackets/functions/classes/chapters, etc.) and the like. It does all this while remaining fast (startup/execute actions) and responsive (UI), and lives in about 8MB of private RAM — which is to say it is lighter than some of the command line editors I see people using. It also appears to have an excellent pluign framework, because there are a great many available.

    One of the things that most frusterates me about programmer’s editors is that they usually do wrong things with shortcuts ingrained into my fingers by every other program I use, which is unacceptable. ST2 uses “modern GUI” keybindings – C+x C+c C+v (cut/copy/paste) all work like they should, as do C+z (undo) C+s (save) and browser-stye tab management like C+w (close tab). Furthermore, all the key-bindings are editable both per-user, and system-wide, as a straightforward format text file accessible from the UI.
    While talking about keyboards, I am apparently unusual in that I ride my navigation keys, and ST2 not only binds them, it binds them better than expected. One tap to Home takes you to the current tab level, two taps to the actual beginning of the line. Del deletes, Shift-Del deletes whitespace until it hits text or newline. PgUp/PgDn jump up/down a page, Shift-PgUp/PgDn jump to the top and bottom of the document. The mouse is bound like any modern program, such that selection and scrolling work correctly, unlike most command-line based tools. At least on Linux, both the select and middle click and select, right click, choose from menu copy/paste mechanisms work correctly. It even supports multiple selection and column selection in reasonably straightforward ways.

    Another thing that drives me batty about editors is modality. Not only do I not want modes in a text editor that do things other than accept text input, I don’t want modal dialogs that can pop up and eat my text. ST2 has neither (Except for the About window, which is a modal dialog for no apparent reason). Things that might happen in modal dialogs instead happen in either a nonmodal dialog area that appears at the bottom of the window, or (for text-oriented operations) in a input-accepting bar at the top of the window. The top bar does a variety of amazing things, including acting as a launchable, hinting search of the command reference, so if you think of a feature you want, it will tell you if it is available and if there are currently key-bindings for it, or let you use it directly from the search. Imagine Firefox’s awesome bar done right.

    It can hook most common build systems (Makefiles and the various language-specific tools).. and like everything, the mechanism is pluggable, so simply dropping a LaTeX plugin in the appropriate place got me C+b to spit out a PDF from my LaTeX document. It detects if these are relevant based on the file and directory, but the automatic choice can be overridden (for cases where you have a Makefile that also generates LaTeX formatted documentation or the like). There appears to be a project managment system that I haven’t even messed with yet, but it apparently works with a pair of human-readable dotfiles in the directory, instead of demanding a particular layout and spewing files like most IDEs.

    The search mechanism is also exactly what I always want: it accepts regular expressions, as well as case/whole word switchable simple queries. It does this with obvious controls for direction, and supports highlight all. It also does it across files, with straightforward control over which files are included. As an incredible example of it just being right, a day after I started using it, I needed a “replace preserving case” feature to modify a LaTeX document… I didn’t expect it to exist, but went looking as a “Wouldn’t it be cool” item since it seemed to be wish-granting, and it was not only there, but in the first place I looked on the replace bar – and it did exactly what I expected.

    It does some neat things I haven’t seen before. The most obvious of these is that by default it has a tiny live view of the whole document next to the scroll bar, with the visible section highlighted, which is surprisingly useful for navigation. Furthermore, it supports almost every feature I’ve liked from the boneyard of rejected editors. Real-time underlining spell check? Present. Multiple views (ie. two simultaneous views into the same buffer which are kept mutually consistent)? Present. Split-window editing (think Screen/tmux)? Present. Code folding? Present. Bookmarks? Present. Case mangling? Present. Scope marking? Present. I keep finding amazing things, and it isn’t like vim, where you keep finding things because the learning curve is asymptotic. I haven’t even messed with the scripting and macro features yet.

    This thing is impressive.

    Posted in Computers, General | Tagged , | Leave a comment

    Dear web designers: Stop breaking my browser.

    I’ve been running in to more and more sites which attempt to override browser features for no apparent reason. We know you can do all kinds of fancy things with CSS and EMCAScript, but that doesn’t mean you should. To pick out two examples I’ve hit in the last few minutes:

    The Verge: Uses some sort of dynamic scrolling mechanism, so my scrollbars (and hence indication of length and position) disappear. There is no reason to do that, and it removes features you would otherwise get for free from the browser.

    Gmail: For some reason, searches are done with a dynamic page, so the browser’s back button doesn’t take you back to where you were before the search, and even worse, hitting back from a message in the search results doesn’t take you back to the search results. They even replicated the back button in the interface bar because this is obviously how it should work. I leave a persistent Gmail tab up, and probably 1/3 of its reloads are because of this misfeature.

    As my adviser is fond of reminding us, you could build a car with a tiller and throttle as easily as a wheel and pedals, and in the early days people did, but we (as a society) picked some acceptable standard interface elements to ease adoption and transitioning between vehicles. Until recently, browsers were one of the few places in computing like that: it didn’t matter what (GUI) platform you were on: the scroll bar moved you around in the page content, and the forward and back buttons moved you between pages you visited in chronological order. Now, the net is full of pages that break that paradigm, and I can’t find any compelling reason to do so beyond “Because we can.” Please stop.

    Posted in Computers, Entertainment, General | Tagged , , , | 2 Comments

    Touchpad Cyanogenmod 9

    My Touchpad (AKA “The Mobile Platform Test Device”) has had both its OSes updated in the last couple days. WebOS bumped from 3.0.4 to 3.0.5, and I updated the Android install from Cyanogenmod 7 Alpha 3.5 (Gingerbread based) to Cyanogenmod9 Alpha0 (Ice Cream Sandwich based).
    tl;dr version: Cyanogenmod9 is, by virtue of speed and features, at rough pairty with WebOS, even though its interactions are uniformly worse.
    Details below.
    Continue reading

    Posted in Computers, DIY, Electronics, Entertainment, General, Objects | Tagged , , | Leave a comment