Category Archives: General

Higher Education Policy

This came out of a discussion on plus about an article I shared, but Plus isn’t really a suitable venue for the long-form response. The basic premise of the article, like so many similar articles, is that we need to impose continuous evaluation, and tie incentives to the results. A great many well-qualified people (preferred example: Diane Ravitch) think that model is wrong, and has already done a great deal of damage, and I tend to agree with them. (also note, the choices of some points and examples here are oriented for people with known similar experiences). This is also the first time I have set up this whole argument at once, so I’m sure there are holes you could drive a truck through in at least some of my claims, but I’d like to try for discussion’s sake.
Continue reading

Posted in General, School | 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

Chili Verde


Vat foods usually aren’t terribly exciting to cook, but this one was interesting and photogenic. I’ve usually heard of this kind of chili associated with New Mexico, although I’m sure there are other regional variations. It is a favorite because it avoids my rather nasty intolerance to tomatoes (Fun fact: tomatillos and tomatoes are both nightshades, but they aren’t actually very closely related), but I’d never actually made it myself. I wanted some the other day, browsed a variety of uninspiring recipes online, became satisfied that I knew basically how things should work, and decided to head to the store and wing it from there.

Continue reading

Posted in FoodBlogging | 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

January 18 Blackout

This post (and, for the day, banner) is my humble addition to the many, many sites blacked out or bannered today. I’m sure anyone who has found their way here is well aware that the copyright industry is trying to buy some laws (SOPA, H.R.3261 and PIPA, S.968) that will allow them censor the Internet, destroy website’s ability to host user-submitted content, break electronic security and verification systems, and generally harm both free speech and the technology sector. Under these laws, companies could compel search engines to remove search results, payment processors to block payments, and DNS providers to delist URLs without legal process or oversight, simply because they deem some piece of content objectionable.
The stated goal of these is to curtail copyright infringement – an objective for which these measures will be completely ineffective, as they are all trivially defeated by an even modestly determined or technically competent user. This means so the sole effect would be damage to free speech and technological progress.

This is unacceptable.

I have very little faith in the effectiveness of “Contact your Congresscritter” campaigns, but if you have not done so, please Contact your Congresscritters, and make sure the people around you understand that this is about keeping frightened content industries from attempting to destroy the Internet.

EDIT: Edited to add a link to Reddit’s breakdown of the relevant bills. It is remarkably compact and even handed, particularly considering this is Reddit we are talking about.

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

Chicken Bok Choy

Asian market bok choy: younger, fresher, cheaper, and in every way better than grocery store bok choy. Seen here with chicken, garlic, ginger, shoyu, and black pepper.

Posted in FoodBlogging | Leave a comment

Another quick Linux aside/breadcrumb, I had some hand-written Udev rules start causing errors on my Arch boxes a while back, and just got around to fixing them. The basic problem is that the Udev rule syntax has changed, and statements … Continue reading

Posted on by pappp | Leave a comment

The previous post ended with “I have no idea why the nodes won’t boot.” Now we know. The problem is that, in terms of the mkchroot-rh script that Warewulf3 comes with, Fedora 16 is not a Redhat derivative. This makes … Continue reading

Posted on by pappp | Leave a comment

Warewulf, and the Kernel Documentation

Earlier, while trying to instrument a failing boot from some peculiar nodes we were trying to provision, I came across the following gem in the Linux kernel documentation, from Documentation/filesystems/ramfs-rootfs-initramfs.txt:

Note: The cpio man page contains some bad advice that will break your initramfs archive if you follow it. It says “A typical way to generate the list of filenames is with the find command; you should give find the -depth option to minimize problems with permissions on directories that are unwritable or not searchable.” Don’t do this when creating initramfs.cpio.gz images, it won’t work. The Linux kernel cpio extractor won’t create files in a directory that doesn’t exist, so the directory entries must go before the files that go in those directories. The above script gets them in the right order.

Yup. If you follow the documentation for the tool, it renders your system unbootable. The linked documentation is actually pretty cool – it explains the rationale for the current state of the boot process, including that charming behavior, and links to the original discussions. But the particular behavior is still kind of psychotic.

Upside: After today’s digging I know all kinds of neat things about the current Linux boot process, which I hadn’t relearned after it changed at the the 2.4/2.6 transition. Similarly, the last couple times we had problems with Warewulf 3 (or, actually, Redhat-isims interfering with Warewulf) brought me back up to speed on interpreting raw packet logs from Wireshark, so this has all been thoroughly educational.
Downside: I have even less idea why the nodes won’t finish booting – the check I was adding was to test our theory that they were running out of memory, and they don’t seem to be.

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