Too Long For The Internet Attention Span
The Freehacker's Union
This rant is about an idea I have for a group of geeks who fight to keep the art of hacking and invention alive. I want to call it The Freehacker’s Union. I want it to be against business, against the coopting and destruction of geek culture, and for preserving hacking and invention as methods of personal artistic expression.
The idea is still forming, so this is the story of how it came about.
The Big Ruby Vulnerabilities
Wanna know what all the Ruby vulnerabilities are? Or at least have a fun look at how to search through code for clues? It’s a blast.
I believe in full disclosure because I think people should know what they’re getting. You see my friends, when you see a vulnerability announced and you don’t know what causes it, you are actually the last person to hear about it. Before you get this defect hidden in a massive batch of patches, the Ruby team has already told people way more important than you. People running Big Important IT™ like Twitter. Just like everything else in this world, the people with money get to know what’s going on, and you and me just get to take it up the ass and wait to be handed scraps of information.
Sylpheed Saved My Life
I am constantly changing the bits of software I use to manage my life. I’m never really satisfied with any program I’m using, and since most don’t allow for extension I have to go searching for a new piece of software when my needs change. Being a programmer I’d much rather have something I can tweak easily.
I’ve never been satisfied with e-mail software mostly because they are so bad at filtering spam despite all the advancements in spam filter. It’s as if all of the major spam filter developers have passed the MUA developers on the freeway and are laughing at them and throwing beer cans. “Your windows suck Evolution!” “What’s wrong iMail? Can’t block that Cialis spam?” “You suck Outlook! >ding<”
Stackish -- An XML Alternative
I was checking out some of the XML Alternatives that PaulT maintains and was laughing at some of the proposals. I decided to throw my own ridiculous and charming hat into the ring of fools with the Stackish XML Alternative. This XML alternative is radically different since it writes the exact same stuff you get from an s- expr or XML document, but does it the way a stack language like FORTH, Onyx, and Joy would. This has a few advantages, but the main thing is that it beats the Lisp and Scheme whiners at their own game by being even more concise and having two additional features that s-expr don’t have.
To put it simply, Stackish is a “data language” that is written more like FORTH than like other languages. This means that everything is actually ordered backwards, and the majority of processing happens with an implicit stack. As a data language, it is better for encoding data structures and their contents like strings and numbers. As a stack language, you construct the Stackish file inverted so that the structure is built directly rather than relying on parsers and such. For those people who are familiar with s-expressions, you would write:
The Semantic Web and The Quilombo
I study a Brazilian martial art called Capoeira that was practiced by Brazil’s slave population for about 400 years. It is said to have originated in Angola—from which most Brazilian slaves were kidnapped—and the martial art is full of songs which tell a story of rebellion and oppression. One of the main stories is of a hero named Zumbi who fought against the ruthless Portuguese land owners and founded a hide-out in the Amazon jungle called a “quilombo”. During Brazil’s slave period men like Zumbi and their quilombos (which had grown in number over the years) fought a guerrilla war against the Portuguese and finally the slaves overthrew their slave masters using Capoeira to forge modern Brazil.
It’s entirely possible that, without the well hidden and defended quilombos and rebellious people like Zumbi, Brazil would have been a slave country for much longer. What made the Quilombo possible is that the slave masters couldn’t find them. These small fortress villages were too well hidden in the dense Amazon jungle—which is known to be hostile to most humans. If the slave masters could just click a “find the Quilombo” button on a web browser then Brazil’s history would have been quite different.
Ruby On Rails + XUL Experiment
Update: Checkout CookbooXUL V2
Hey, check out the V2 of CookbooXUL release. It even has 10,000 recipes you can search.
Ragel State Charts
If you’re looking for tips on sexual positions and you think this page will help then you are either really desperate or really stupid.
Specifying Servers With Ragel
Programmers Need To Learn Statistics Or I Will Kill Them All
I have a major pet peeve that I need to confess. I go insane when I hear programmers talking about statistics like they know shit when it’s clearly obvious they do not. I’ve been studying it for years and years and still don’t think I know anything. This article is my call for all programmers to finally learn enough about statistics to at least know they don’t know shit. I have no idea why, but their confidence in their lacking knowledge is only surpassed by their lack of confidence in their personal appearance.
A bit of background about me is in order. I got interested in statistics when I started to read about the history of mathematics and how statistics radically changed the way science was done. Before statistics the belief was that the world fit into perfectly mathematical models, and that any error we find is because we don’t have the models right. This is thanks to Descartes convincing everyone that math is reality, and that we’re just full of bullshit. Eventually, every major science adopted an empiricist view of the world. Except Computer Science of course.
The Master, The Expert, The Programmer
I spent most of my high school years living on Guam trying to stay alive long enough to leave and start a new life. It wasn’t a good time for me, and about the only good thing that came out of it was I started studying martial arts. These days I’m a lazy bastard, but back in the day I studied everything I could get my hands on. It was rough, but I came out of it fine and I’ve since used my knowledge of martial arts in just about everything I’ve done. Each one I studied taught me something different. Capoeira taught me that being balanced is more about being able to adapt and flex than root your stance. Aikido taught me that attacking a problem directly is rarely the solution. Muay Thai taught me that destroying the base will destroy the building. I studied Muay Thai, Ninjitsu, Wing Tsung, Judo, various weapons, and even spent a year getting the crap beat out of me by some rough sword fighters in the SCA. Unfortunately I never studied anything long enough to be considered very good at it. I just took what I found and moved on to the next interesting thing. What does this have to do with programming?
The Master
The KitchenSink Language
I’ve started getting into language design more these days, and have several language related projects. While I’m far from a real language creator like this poetic guy, this gawky guy, this dude from Nippon, and this really anal guy who should have stayed a physicist, I do like it as a hobby.
One thing I’ve found royally annoying from beginning to intermediate programmers is they are so focused on the language and believe that the latest greatest “paradigm” will save us all. They point at some obscure language feature they enjoy and claim it’s so great. “Function programming closures…” or “Object polymorphism…” are usually how such rants start. There’s really two problems with this though:
A Rubric For IT Analysis Papers
After writing a few articles on using statistics to analyze computer systems I thought I should write down a simple rubric for evaluating studies found in the IT world. This is just a small set of the most common errors I find in performance analysis papers, capacity planning papers, and just about anything put out by the IT industry.
I’m begging all programmers, IT managers, testers, projects managers, secretaries, CEOs, CIOs, CFOs, CAO, CIA agents, FBI agents, and anyone else who reads a paper touting a product to go through this list and see how the paper compares. This “hit list” is more or less ordered by how severe the offense is, with the top three being an immediate dismissal of the paper as a load of crap.
Indirection Is Not Abstraction
I hate using badly designed APIs. I hate it even more when someone beats me over the head with words they were handed in some rhetoric class masquerading as a computer science course. Words like “abstract”, “pattern”, and “object oriented” are used like a shield to protect the implementer from critical words like “crap”, “complicated”, “obtuse”, and “annoying”. It’s even worse when the implementer realizes that if he implements the most complicated piece of shit possible then he can go rogue consultant and make tons of mad cash helping poor unsuspecting companies implement his steaming pile of bullshit. Harsh words? You bet. But I’m fed up with people imposing their faulty definitions and ideas on me without any way for me to easily fight back with a reasonable explanation as to why their crap is steaming. I’ve decided to start fighting back by coming up with a set of essays about programming that highlight common design misconceptions. This essay is about my top pet peeve: an abstract interface and an indirect interface are entirely different things.
The point I’ll be trying to make throughout the essay is simple: Abstraction and indirection are very different yet cooperating concepts with two completely different purposes in software development. Abstraction is used to reduce complexity. Indirection is used to reduce coupling or dependence. The problem is that programmers frequently mix these up, using one for the other purpose and just generally screwing things up. By not knowing the difference between the two, and not knowing when to use one vs. the other or both, we end up with insanely convoluted systems with no real advantages.
I Want The Mutt Of Feed Readers
Death To LL-TL-BC Readers
I was using Liferea for a while. That is until Liferea decided to start randomly opening links I’d click on in an infinite loop filling my browser with thousands of tabs until my browser crashed. How do you fuck that up? It’s simple: click, fucking run firefox, go back to being a reader. How do you have a fucking loop in there? Probably some idiotic GTK event handling causing me to want to strangle a puppy in revenge.
Fortune Favors Big Turds
h2. Screw The Money, This Is My Art
Donald Norman and Joel Spolsky both had their say on how you can’t sell simple software. It’s my turn to say they’re wrong because they adopt an obnoxiously true-or-false stance based on horrible examples. The situation they’re discussing is too complex to fit into a single blog post and I’m not gonna try to convince you that complexity or simplicity is better. I believe you can do both simultaneously.
There's No 'W' In Coffee Dammit
New York is a very funny place. The people are really nice, if a bit “in your face” about things, but I really like that. It was annoying living in Vancouver, BC and having those two-faced bastards act like they are your best friends and then do some passive aggressive asshole maneuver behind your back. Man those folks are weird. At least New Yorkers are honest about how they feel about you, whether you like it or not.
There’s some really funny things I’ve noticed since I’ve been here though. When I point them out to other New Yorkers they kind of laugh and go, “Yeah, that’s right.” I say the same kinds of things to Vancouverites and they throw up their patent pending Righteous Indignation Force Field level 4. Then again, most of the annoying Vancouver behaviors were due to obnoxious hypocrisies. For example, I remember a picture in the Vancouver Sun of a group of women at a Kyoto protest who were standing in front of an SUV holding Starbucks coffee mugs and carrying paper and wood signs. My observations about New Yorkers are just funny and weird, not really annoying.
x=Control, y=Responsibility
A Simple Principle For Managing Smarties
Someone once asked me if I could give one bit of advice to an aspiring manager what would it be. At first I said, “Go kill yourself.” But then I remembered how hard it was for me at first leading a platoon at 18 in Army basic training. Instead, this is the one piece of advice I’d like to give every aspiring manager:
The C2I2 Hypothesis
Customers,Collaborators;Implementations,Inventions
NOTE: This is a DRAFT of the essay. Feedback is more than welcome.
"Bach's Monadology"
h2. An Essay On The Unity And Variety Of Code
I originally wrote a version of the essay that was based on misunderstanding Bach’s relationship with various people in Leipzig. Rewriting it to be more accurate, and hopefully better since how Bach worked with his patrons is very interesting.
My Application for Apple's WWDC Student Program
I kept getting spammed by Apple begging me to fill out their WWDC “student scholarship application”. Even if I win the stupid scholarship (which is 1500+ bucks US), there’s no way I could afford the time or money necessary to travel to the conference and get a hotel room. I figured I would fill out the damn form so they would quit bugging me, and what the hell, maybe I’ll get lucky. They plan on a “recruiting” session after some weird student brain washing, clockwork orange-ish, propaganda meeting.
As I started to fill out the gigantor sized application, I thought it would be great to make the person reading it laugh. Here’s some of the best answers to the questions:
Why I Hate Apple, Why I Switched Back
I recently read a a blog entry that was pushing the Mac again as most of the Apple religious fanatics do constantly. My problem with this entry was it came from a dude I generally respect for his programming work, but he just had to say, _“I would have a hard time imagining hiring a programmer who was still on Windows for 37signals. If you don’t care enough about your tools to get the best, your burden of proof just got a lot heavier.”_ This inspired me to tell everyone why I hate Apple’s products and how picking an Apple shows that you are more interested in flashy graphics and slick primary color ads than you are in the total quality of the tools you use.
Why? Because, while the OS X software is great, Apple’s hardware is some of the worst I’ve used in the whole 18 years I’ve been using computers. I purchased an iBook that ground to a halt after months of Apple denying it was broken. (Other people have Power Books with AC adapters catching on fire.) On top of that, I ended up blowing an extra $1000 easily on repairs and upgrades just to keep up with Apple’s obnoxious secretive upgrade policies.