The dog that funk built

March 20th, 2008

Editor’s note: This is actually a very old post, from around May of 2005 if I recall. I’m making it live now because it was too painful to make live before, but the attic needs to be swept out from time to time.

I’m writing this even though Coco St. Coco doesn’t read my site that often. I don’t think he’s really feeling the whole blogging craze. I’m hoping that maybe they have internet cafes in doggy heaven and they don’t filter the websites of atheists.

I don’t know if this is an obituary. You’ve been gone for almost a week. You could come back but a part of me lost hope. I stopped leaving the back door open in case you found your way home. It’s locked now. All the flyers we put up — hundreds of them — have fallen down cuz of these torrential rains. Did the rains keep you in the bushes, under cars, causing us to not spot you as we wandered the blocks of this new neighborhood endlessly, such a poor way to familiarize myself with it.

You were the only A+ on the list of things I own. For two years, you were my best friend. You understood me more than anyone, which is to say you didn’t understand me at all, which is still more than anyone. The stairs in this big new house — the one that freaked you out so bad you had to run away — aren’t the same without the sounds of your little claws clittering up ahead of me, ten times faster though you’re ten times smaller.

My favorite memory of you is from early on. We went to Green Streets in The Grove and you ate so much bread and veal (so cruel) and so much other shit. You ate more than your own weight. When we got up to leave, you ran into the restaurant and to the horror of everyone around took a big shit right inside the door. An act of pure uncaring defiance. Those are the moments I remember most.

I don’t know if you’re dead or if you’re bringing the same joy to another family that you brought to mine. In any case, I love you and I will never forget you. I’ll keep some food around in case you decide to come home.

Secure browser sessions by proxying through SSH

May 8th, 2007
  1. Download Putty and Puttygen
  2. Run Puttygen
  3. Create a private key; save it somewhere on your harddrive. Don’t bother with encrypting/passwording it.
  4. Copy the public key (shown in the box) with Ctrl-C
  5. Login to the server you want to proxy through, as normal, with Putty
  6. Edit .ssh/authorized_keys - you may have to create the .ssh folder
  7. Paste your public key on one long line into the file and then log out of the server
  8. Load your Putty settings for the site
  9. On the left, go to Connection -> Data and enter your username where it says “Autologin Username”
  10. On the left, go to Connection -> SSH -> Auth, and select your private key
  11. On the left, go to Connection -> SSH -> Tunnels, type source port 1080 (or whatever you want), “dynamic” remote, and click “Add”
  12. Go back to the main settings panel and be sure to save your settings
  13. Doubleclick the settings; you should login automatically without a password
  14. Go into your Firefox and select localhost:1080 as the SOCKS proxy for all your connections.

Birds are smart

May 7th, 2007

The complex intellect of ravens has me rethinking my recent dietary changes to be more morality-compliant. I gave up red meat but kept chicken, and I’m starting to think I may have to axe the fowl entirely. Dohhh.

Goodbye, Digg

May 1st, 2007

I don’t need you selling your users to your sponsors over a few hex digits. Reddit has a better algorithm anyway.

Oh, and 09 F9 11 02 9D 74 E3 5B D8 41 56 C5 63 56 88 C0.

FreeBSD users having trouble with pecl?

January 29th, 2007

For a while I’ve had sporadic problems with pecl (PHP’s binary module building tool, part of PEAR) not working properly. Usually the error was:

[root@host ~]# pecl install memcache
	
Fatal error: Call to undefined function preg_match() in /usr/local/share/pear/PEAR/Frontend/CLI.php on line 70

Yet, preg_match() would work from other scripts - it is part of pcre, which was installed.

The problem is this. pcre is included via extensions.ini. That’s why it usually works. However, pecl for some reason deliberately turns off .ini file inclusion (that includes extensions.ini) when it runs the php interpreter. I’m not sure what the objective was here but it’s a problem on FreeBSD’s shared library pcre.so.

The fix: edit the pecl script (usually /usr/local/bin/pecl) and remove the ‘-n’ from the command line arguments.

World’s Fastest Hummer H1

January 27th, 2007

Check out this Hummer running the quarter mile in 12.8 seconds:

The party’s at MiamiNights.com

January 9th, 2007

Dear disgusted former readers,

I recognize that obscure vector programming languages probably aren’t what you came here to read. Please proceed over to www.miaminights.com to proceed with the gossip and trashing.

Microsoft: Developers are pawns

January 9th, 2007

The truth comes out - Microsoft has never cared about the developers beyond using them as leverage in the battle for the platform. If anyone is surprised by this, they’ve been asleep for the past ten years.

Oh John Kerry, you wild douchebag

November 1st, 2006

God you fucking schmuck haven’t you ruined liberalism enough? Please, make an ecocar out of granola and ride that shit to Darfur or something because I am so, so tired of you. OUT OF MY FACE!

K notes

June 6th, 2006

K is a terse array-oriented programming language.

Download old, free interpreter here

Here’s an intro

My notes, so far. Note that “monadic” means the operator takes one argument (! 10); dyadic means it takes two (2 ! 10).

  • ~ monadically is NOT.
  • _ is the monadic trunc operator. _ 10 = 10, _ 10.9 = 10
  • ! is the dyadic mod operator. 100 ! 2 = 0, 101 ! 2 = 1
  • | (pipe) is the monadic array reverse operator. | 1 2 3 = 3 2 1
  • ? monadically is the array uniq operator.
    ? 1 2 3
    1 2 3
    ? 1 2 3 1
    1 2 3

  • @ is the dyadic array index operator.
    names: `tom `bob `frank
    names @ 0
    `tom
    names @ 1
    `bob
    names @ 2
    `frank

  • # monadically is the array length operator. # 1 2 3 = 3. This is in Mr. Shasha’s primer.
  • # dyadically is the array fill operator. 10 # 7 = 7 7 7 7 7 7 7 7 7 7
  • Precedence is right to left; stupid. #names % 2 is an error; (#names) % 2 returns 1.5 as you’d expect.
  • & monadically finds the indices of an array that match an expression.
    & names = `frank
    ,2
    & ~ names = `frank
    0 1

    FYI, ,2 means the same thing as PHP array(1); - an array with one element whose value is 2.