Search Results: "Decklin Foster"

1 October 2008

Decklin Foster: Your internet access is going to get suspended

So today I recieved another batch of backscatter spam (it comes in waves; my email address will forever be on these lists). Normally there are several rejections from mailing lists where only subscribers can post, etc. But this time:
The following lines in your email message did not appear to be
Lyris ListManager commands and were skipped:
> unsubscribe confirm
>  -> You did not specify a valid mailing list name to unsubscribe from.
Disturbing. Now they're trying to take me off legit mailing lists! Perhaps they think I won't notice and it'll reduce the amount of ham I have for my Bayesian filter. Little do they know I'm still subscribed to -devel :-)

17 September 2008

Decklin Foster: When mayonnaise goes bad

This is is a wonderful metaphor: "looking in the fridge every few minutes and hoping that something tasty will appear". I may be thick, but Planet does not appear to store any information about how often a feed ought to be polled (my blog seems to be hit every 20 minutes even when I'm AWOL). I use rawdog, which does. When adding a feed, I make a vague guess at how often I want to poll it, and then periodically adjust the time based on how often updates actually happened. This is done with a terrible, awful, ugly hack that reads the database[1] and spits out the config file with new-and-improved times. Pretty dumb, but good enough "for now" (apparently I haven't touched it in over a year). rawdog will also automatically update feed locations if given a 301. Since it already rewrites the config for that, I might try to merge time updating into the core someday, but no one has demanded such a feature AFAIK.
[1]And by "database", I mean "pickle", since Adam doesn't want any fancy dependencies. Despite how slow this ought to be, the combination of optimized (such as it is) feed-polling and ever-faster CPUs in my web servers have made it fast enough for me not to care.

Decklin Foster: Catch 22

$ hg ci
abort: cannot commit over an applied mq patch
$ hg qpop
abort: local changes found, refresh first
Obviously, I just need to RTFM, but I still find this amusing in an existential sort of way. (If I write a replacement for mq, please shoot me. I have too many things to do already.)

11 July 2008

Decklin Foster: xmonad still makes me feel inadequate

I've seen this before, and I'm sure a million people have blogged it, but it never stops being funny: Lambdacats. (thanks to Nikolas Coukouma on Twitter)

9 July 2008

Decklin Foster: Cover an ox with a sheet

New Filco keyboard! Do want. (There is a good explanation of mechanical keyswitches at ErgoCanada. This is a "light tactile" board. Opinions, as they say, will vary.) I may be just a little too into this. My girlfriend laughed at me when I actually bit my lip upon determining firsthand that the ICA had aquired, for their iMac-populated computer lab, 20 or so of the out-of-production tactile version of another particular keyboard I'd been coveting. But I couldn't help it. (Don't worry. We laugh at each other a lot.)

1 July 2008

Decklin Foster: Did you see what he was wearing? Oh. My. God.

Debian shall soon have a Conkeror package, thanks to Axel Beckert who takes a minute to break down the current keymap. Naturally, you have to poke fun at vi users here. But wait! I am a vi user! What can I say, except maybe
  1. Emacs (the rudiments, anyway) is like riding a bicycle
  2. When I say vi, i mean vile, not vim. vim gives me hives. vile is teh awesome.
I am working on a set of vile-ish bindings, and I can't say I feel any pressing need to stick hjkl in. You could start from there, but that's missing the point, I think. (You know what's also awesome? My email is still down, so I won't even have to delete flames from people who take their choice of editor/browser Very Seriously until sometime tomorrow.)

Axel Beckert: Conkeror in the Debian NEW queue

I already mentioned a few times in the blog that I’m working on a Debian package of the Conkeror web browser. And now, after a lot of fine-tuning (and I still further new ideas how to improve the package ;-) Conkeror is finally in the NEW queue and hopefully will hit unstable in a few days. (Update Thursday, 03-Jul-2008, 18:13 CEST: The package has been accepted by Jörg and should be included on most architectures in tonight’s updates.) Those who could hardly await it can fetch Conkeror .debs from http://noone.org/debian/. The conkeror package itself is a non-architecture specific package (but needs xulrunner-1.9 to be available), and its small C-written helper program spawn-process-helper is available as package conkeror-spawn-process-helper for i386, amd64, sparc, alpha, powerpc, kfreebsd-i386 and kfreebsd-amd64. There are no backported packages for Etch available, though, since I don’t know of anyone yet, who has successfully backported xulrunner-1.9 to Etch. Interestingly the interest in Conkeror seems to have risen in the Debian community independently of its Debian packaging. Luca Capello, who sponsored the upload of my Conkeror package, pointed me to two blog post on Planet Debian, written by people being fed up with Firefox 3 already and are looking for a more lean, but still Gecko based web browser: Decklin Foster is fed up with Firefox’ -eh- Iceweasel’s arrogance and MJ Ray is fed up with Firefox 3 and its SSL problems. Since my previously favourited Gecko based web browser Kazehakase never became really stable but instead became slow and leaking memory (and therefore not much better than Firefox 2), I can imagine that it’s no more an candidate for people seaking for a lean and fast web browser. Conkeror has some “strange” concepts of which the primary one is that it looks and feels like Emacs: Footnotes *) I just noticed that there is now also muttator, making Thunderbird look and behave like vim (and probably also mutt), too. Wonder into which e-mail client the Emacs community will convert Thunderbird. GNUS? RMAIL? VM? Wanderslust? What will it be called? Wunderbird? Thunderslust? (SCNRE ;-)

30 June 2008

Decklin Foster: Consolation Prize

I spent some time banging my head against SSL certificate stuff this weekend in the hopes of implementing a Really Awesome Solution to this awful Firefox security theater thing everyone was complaining about, but I didn't get anywhere. However, I noticed something interesting: Mozilla does not trust the CAcert root certificate. A number of useful sites, like Freedesktop.org's bug tracker, use a CAcert-signed certificate rather than a self-signed one. I really know nothing about this organization, but they seem to have their stuff together, and if you run a largish free software project, you could potentially save a lot of people the trouble of checking yet another self-signing CA. Around the lab, or in one of my tiny projects, I don't think I'd bother, but it is free. Anyway, we ship their root CA thing in Debian, and OpenSSL stuff picks it up fine. Mozilla's process is somewhat more mysterious. There's an apparently hardcoded list of the usual thugs from the Verisign/Thawte/etc protection racket, and then there's a database in each user profile for whack-a-mole stuff. There is not, shockingly enough, somewhere for an operating system to set system certificate policy. (I guess there is not much room for an operating system in the Mozilla world-view at all). So you have to shove it in there once for every user times every single profile. Here is the command to do it.
  1. apt-get install libnss3-tools
  2. certutil -d $HOME/.mozilla/firefox/$HLAGHLLAGHGAAHLGALHHGHLAGH.default -A -n 'CA Cert Signing Authority - Root CA' -t CT,C,C -i /etc/ssl/certs/root.pem
It's only slight pain relief, but it's something. You can also not install certutil, and click through ten million dialog boxes to import it, but screw that. UPDATE: A commenter points me to StartSSL, another service that may deserve a look here, and is on Mozilla's good side. It appears to be an unholy mix of things that sound awesome (client-side certs for OpenID, web-of-trust identification) and things that seriously skeeve me out (trademark symbols everywhere, Aladdin dongles). They, uh, also have a Linux distribution. No, really. UPDATE 2: James Andrewartha points out that we should eventually see Mozilla move this stuff out of libnssckbi.so and into SQLite, which sounds like a big win for us. Hopefully before that time I will figure out how to get sqlite(1) to work on my cookies.

Decklin Foster: You keep using that word. I do not think it means what you think it means.

I always feel like tar ought to say:
tar: data.tar.gz: inconceivable time stamp 1969-12-31 19:00:00
But it never does.

26 June 2008

Decklin Foster: The data are

So I always knew that my ThinkPad's display sucked. But now I have scientific proof! (Long-winded post about my job follows.) I was running some timing tests at work on the code for a psychology experiment. This involves quickly presenting a stimulus to the subject, then measuring reaction time and synchronizing with EEG readings. Nothing very complicated, but accurate timing is essential; you don't want another variable confounding your results. So I have this photocell device that sends a signal to a Mac through the EEG hardware when there is really actually physical light coming off of the screen, not just when I told the computer to display something. Now CRTs, of course, are actually scanning (with an electron gun) the display at 75 or 85 Hz or something, not constantly pumping out light to the whole screen. This means 12 or 13 (or whatever) ms between refreshes. So if you want something to appear for 100 ms, you have to fudge a little, and make it so that you get maybe 8 or 9 scans. You can synchronize your presentation to the refresh so this is feasible. But how long the subject really perceives it ultimately depends on how "flickery" the monitor is at a given refresh rate. LCDs, on the other hand, do not have this problem. They actually do produce light constantly -- their refresh rate is pretty much always only 60 Hz or less, but you get the same(ish) output over the entire cycle, instead of in blips that give the illusion of a constant image (in fact, as Matthew points out, they can continue to hold the same image for even longer periods between refreshes. Can't wait to try out that patch). And luckily for us, 6 cycles are in theory exactly 100 ms (in practice, it's close enough). Or so I thought. I could not, no matter how many times I banged my head against it, get consistent results between our laptop (also a ThinkPad) and any external display. For reasons I do not entirely understand (probably scheduling issues), on CRTs I was getting one extra cycle, so I had to reduce the time by one to compensate. This was done for published studies years before I arrived at the lab, so (for the sake of not introducing additional variables) there is an extremely large disincentive to go back and fix it the Right Way, whatever that is. Our laptop's internal display was producing results that were skewed like those of a CRT. I thought for a minute I was going nuts from testing all day, but it kept happening. Curious, I swapped out the lab's T60 for my faster T61 and (to rule anything else out) killed all my other processes and wrote a fresh PyEPL script that did nothing but repeatedly blink some text for 100 ms. Here is, on the external VGA port, a cheap old 15" Dell LCD I pulled from the server room: http://www.rupamsunyata.org/~decklin/blogfiles/20080626/vga-lcd.png (These images are from the Mac, which is still using System 9.something. I had to remember Command-Shift-3 to take a screenshot and use StuffIt to get them off of it. Srsly. I can't remember the last time I used StuffIt.) And here is a CRT, showing the refreshes: (The DIN3 line is the actual signal, and the others are integrated over some number of milliseconds to compensate for scanning and attempt to get a usable number. Of course, this is done in hardware, not synchronized to anything else.) http://www.rupamsunyata.org/~decklin/blogfiles/20080626/vga-crt.png Now, this is the one that blew my mind. The ThinkPad's internal LCD: http://www.rupamsunyata.org/~decklin/blogfiles/20080626/lvds-lcd.png You can see that 60 Hz is spaced much farther apart, and that there are 6 cycles as intended, but. It's acting like a CRT! On the refresh, it puts out enough light to trigger the photocell, but inbetween, nothing. I ought to be noticing flicker and/or getting headaches all the time, if this is truly the case. (I guess I did get glasses for and because of staring at computer displays all the time. Should update my hackergotchi.) I have to admit I do not understand what is going on here at all. But it seems like making any assumptions about a display is (as the voice in my head was telling me all along) a very bad idea. Perhaps someone can email me some clue. But at least I have some hard data to validate my subjective opinion of the ThinkPad's internal LCD. Anyway: I still recommend the ThinkPad, even if the display is awful. I have a nice external monitor connected through DVI to the dock at home, and I mainly use a laptop so I can get out of the house and go hack outside or in a coffeeshop (not ideal lighting). The build quality, keyboard/trackpoint, performance, and the fact that Debian (testing or unstable, anyway) Just Works are all higher up on the list for me. I do wish I could afford the new lighter one, though.

25 June 2008

Decklin Foster: Arrogance

Today, like any other day, I started Firefo^WIceweasel. I mapped it at the bottom of my window stack. It promptly raised itself. I closed everything and tried opening a new homepage. Nope, that's fine. I tried again with two tabs saved. It raised itself again. I have been watching variations of this bug regress for eight years now and I am tired of it. So I installed Conkeror. After a good three-year run of being able to sit down at someone else's random PC and say, "hey, a web browser that nearly works as well as mine" (since it is, you know, the same one), I look forward to being utterly fed up with how primitive the rest of the world is again. And what are we in this for, if not that?

17 June 2008

Decklin Foster: Dealing with it

I had this crazy idea a few months ago which Joey's post about muscle memory reminded me of. For those not in the US, our keyboards have and ~ on the key to the left of 1. I prefer this key to be Esc. Long ago I simply swapped the two keys, but the original "Esc" key is always in some weird and inconsistent place and reaching for ~ became as annoying as reaching for Esc. (I suppose I might not care if I didn't use a unix shell or regular expressions or bit masks or...) So, noting that I mostly only wanted that key for ~, and not , I came up with the following (in xmodmap form):
keycode 49 = Escape asciitilde grave Escape
This means: if you just hit the key, it does the Right Thing (Esc, as if I were on a real unixy keyboard). If you hold Shift and press the key, it also does the Right Thing (~, as if I were on a PC). But what to do about , or Shift-Esc, which are no longer possible? We make them the alternate graphs (just old down AltGr. I think the xkb option to put this on right Alt is "grp:switch"). I honestly use those two infrequently enough that I don't care about having to remember the extra bucky. (I tend to type $(cmd) in the shell, and not cmd , because I use the former in scripts and I always found the latter harder to read. I suppose I would care more if I used Lisp or Haskell or...) What I like most about this solution is that it lets me use the same muscle memory on all my hardware. Never mind weird Esc positions; laptop vendors still can't agree on the correct order of Fn and Control. But you don't have to care if you put Control on Caps Lock. Same idea. It does feel a bit like cheating, but it has made my wrists far more comfortable. Oh, and to wean myself off the key way out in the corner:
keycode 9 = NoSymbol
Now the question, of course (getting back to Joey), is what would happen if my "new" Escape key broke. I guess I'd have to keep the laptop at home and plug in my Happy Hacking Keyboard :-)

28 March 2008

Decklin Foster: Section Twelve

Doing. It. Wrong.

14 August 2007

Decklin Foster: Darlings

Today's wiki page: Fighting is boring.

10 July 2007

Decklin Foster: YouChoob

Russel notes a discussion of the problems with embedded media. I've been using a Greasemonkey script for a while to linkify EMBED tags for easier non-embedded downloading, but this doesn't help much on Flash sites such as YouTube. I haven t installed Flash in years, but I got sick of slinging URLs around and/or giving up and being the unpopular kid, so I took some other Greasemonkey code I was hacking on and mushed it all together:
http://www.red-bean.com/~decklin/userscripts/unembedtube.user.js
(I get a perverse sort of nostalgia out of bringing back the "puzzle piece" for links, and mocking people with it.) YouTube embeds will appear to work like any other, but the URL is changed from the Flash wrapper to the FLV file, which can be opened in MPlayer/Totem/whatever. Since we can figure out this URL, it is also, of course, possible to make such the link back into an embed usable by mplayer-mozilla or a similar plugin. Unfortunately, I don't have time to look up how to add a configuration menu, but this line of JS does have a certain charm to it:
var evil = 0; // need to make this user-settable
You know what to do. If you want true evil, there are some pointers in the comments. For YouTube videos embedded from other sites, the best I can kludge for now is link to the video's original YouTube page. If someone would like to write a routine to snarf that page with XMLHTTPRequest and yank the necessary arguments out, I would love to add it. (Insert five-page think piece here about the lost dream of MIME and the sad fact that the rise of Web 2.0 has been driven more by the fact that native installation is irreparably broken and pointless anyway on most PCs than it is by the fact that JavaScript actually works now and the implications of this for the Free Software movement especially in light of the fact that we are still human beings who occasionally do social things like sign up for Twitter even though they're running on some proprietary code base.)

Decklin Foster: Tangible User Interface

I logged in this morning and noticed that my XFCE weather applet had disappeared. I moved the pointer over to see what was up, or at least open the menu to add a new one... A tooltip appeared that said, fog .

25 May 2007

Decklin Foster: No Installation Required

So, I haven't blogged in almost a year. I am a horrible, horrible, horrible person. But at least I've been on LowThresholdNmu. Barely. Since I still read a blog or two so that I can pretend to be informed: I really like this post. I would make a comment about the bumper sticker on the Prius normally parked around my part of ye olde Prospect Hill, but then people might think I was actually talking about politics or oil or cars or gentrification or something like that. It's a violent world out here on the interweb. One can only be oblique. When did I get so old? Did I fit in at some point? I really don't know.

Decklin Foster: Dear Lazyweb

I just wasted half an hour (mostly finding a dead motherboard and bending wire) making one of these: http://www.rupamsunyata.org/~decklin/blogfiles/20060622/usbport.jpg I then threw out the cap to my USB storage device. Why doesn t anybody sell them? Why are the holes for your keyring always on the part you use (thus weighing it down, particularly if it's sticking out of the front of a tower) and not the part that comes off? It's not easy to unplug by accident (I did squeeze it a bit removing some of the metal). I think I m just not looking in the right place. I can t be the first person to have been annoyed with this. Lazyweb, please tell me where to go. (Yes, the only thing I use it for is my SSH key.)

3 September 2006

Matthew Palmer: Music To Hack To -- The Belated Summary

Back in the embarrassingly early part of this year, I wrote a blog entry on music that I liked to listen to whilst cutting code. I solicited feedback, and promised a followup. Technically, I didn't say when I'd be posting a summary, so I don't feel quite so bad about leaving it for 9 months before posting this followup. Firstly, Matthew Davidson gave a lengthy treatise on The Fall, whom I'd never heard of before, and actually haven't gotten around to listening to yet, either (shaaaaame!). It certainly must do the trick for him, though, because he says:
I try to avoid programming wherever possible -- I know how it's done, and really appreciate it when it's done well, but I generally find doing it as much fun as a trip to the dentist. However, put a bit of the Fall on, and I find myself settling into a pretty productive groove without much trouble.
Next up, Decklin Foster pointed me to where I could do my own research -- the Debian Developers group on last.fm. Although I've glanced at last.fm now and then, I've never really gotten into it much. I suppose I should harness the hive mind and find more music similar to that I already like -- you can only listen to your old favourites so many times in a row before they start to wear out. Apparently, my tastes in coding tunes isn't unique -- Roger Barnes shares my preference for the quick-paced abstract:
When I'm coding though, I prefer something fast and electronic. I think this is for two reasons, one is the rhythm tends to get my mind going, and the lack of vocals means that there are no words disrupting my thoughts.
As does François Beausoleil, who says:
I have the same need as you for loud, fast and driving music. Personally, I've been listening to Born to be alive, the first Matrix's theme song, Confusion from New Order of the Blade soundtrack.
Since the original Music To Hack To post, I've been listening primarily to the Chillits 2005 sets whilst coding. In the words of Boing Boing (where I originally found out about Chillits), "Every fall in Northern California, the Chillits music festival brings together a stunning line-up of DJs who spin mesmerizing sets of ambient and downtempo music under the sun and stars." The key word there is "ambient"; I'm not looking for something to listen to so much as I want backdrop to my other activities. The collection of laid-back and thumping tunes keeps a nice work/relax rhythm going while I'm coding. There are some immensely funny bits in some of the mixes, too, like the (hopefully) mock ad for speed ("The little blue diet pill you don't have to be overweight to need!"). Sometimes the tracks go into some area that bugs the shit out of me, which is when I exercise the skip feature of my music player, but most of it is pretty good at blocking out the world and letting you concentrate on the code at hand.

4 June 2006

Decklin Foster: Irony Alert

The other day I went back to the West Hartford library for some more DVDs and stopped by the New Non-Fiction shelf. This book caught my eye. It claimed to be a lexicon of euphemisms, doublespeak , and other language used in the US to disguise one s true opinion, assumptions, or political agenda (you know how we love politics over here). An Ambrose Beirce for the talking head set, if you will. So I flipped through it for a bit, and to be fair, the authors did do a commendable job of pointing out some of the subtle presumptions of many words that I myself think I use completely innocently. Even if I try to directly combat this tendency in my own way, one could certainly argue that ideas like systemic bias or jargon themselves implicate or demonize certain groups. But that's why we need something like this book, right? Have to keep on our toes. Then I landed on H. The first entry was hacktivism . ...which, it read, like hacking, is illegal...

Next.

Previous.