Recent Projects

Weekly Digest, 5-31-09

“Weekly” <- in scare-quotes

Trevor’s Links

Stowe Boyd launches Microsyntax.org

Stowe Boyd launched Microsyntax.org… a number of ideas for making posts on Twitter contain more information than what is superficially presented, and this new effort should create a space in which ideas, research, proposals and experiments can be made and discussed.

Amazon Payments Account Management

Amazon Simple Pay Subscriptions enables you to charge your customers on a recurring basis using a single authorization from the customer. It is for those who offer digital content subscriptions, collect membership dues on a periodic basis, or provide premium services on their website.

7 Great Reasons Not To Take VC Money

Raising venture capital for early stage start-ups seems to be the prevailing path for most entrepreneurs; however, most would-be founders should reconsider.

The importance of stupidity in scientific research

The crucial lesson was that the scope of things I didn’t know wasn’t merely vast; it was, for all practical purposes, infinite. That realization, instead of being discouraging, was liberating. If our ignorance is infinite, the only possible course of action is to muddle through as best we can.

When to use self in Rails models

When I started with Rails, half the words in my models were self. This wasn’t necessary. Now, when I edit code by other people, I find myself constantly deleting “self” from their code.

The random person test

Why not try to write code that future programmers will thank me for because it was so clear and obvious? Programmer skill should be measured not only in the complexity of the problems that they can solve, but in the clarity of their solutions.

Patience and hard work

There is a gaping chasm between a web app sitting on a server somewhere, and the ingredients of a business. Establishing a brand, getting the right kind of people to listen, and growing your own customer-base doesn’t happen as a by product of really sweet Javascript effects.

Google Wave: What Might Email Look Like If It Were Invented Today

Google wants other providers to adopt Wave – the protocol allows federation between independent Wave clouds. The team hopes that Wave will become as ubiquitous and interoperable as email and instant messaging, not just a Google product.

Ask HN: I’m Tired of Hacking. What Do I Do? Please Advise.

I just can’t do it anymore. I hate sitting on my ass all day writing some code. My neck has been hurting for two years for spending so many hours in front of the computer. I kind of have been hating my career for a couple of years now and I have no clue about what I should do.

MacRuby, changing the Ruby ecosystem

MacRuby is an Apple-sponsored, open source, full Ruby implementation on top of Objective-C runtime. In other words, whatever code runs on Ruby 1.9, should/will run on MacRuby. Yes, you read correctly, MacRuby can/will be able to run all your Ruby code.

Mac-friendly Autotest

ZenTest’s autotest is great, but it has one drawback: In order to detect whether you have modified a file, it relies on filesystem polling. In other words it constantly traverses the filesystem and thus causes a lot of CPU and harddrive load.

Include vs Extend in Ruby

Now that we know the difference between an instance method and a class method, let’s cover the difference between include and extend in regards to modules. Include is for adding methods to an instance of a class and extend is for adding class methods. Let’s take a look at a small example.

Class and Instance Methods in Ruby

Class methods can only be called on classes and instance methods can only be called on an instance of a class. It’s simple when you understand it, but I remember being confused when I was learning Ruby. Hope this helps. If I was unclear or incorrect at any point above, let me know. [Nice, easy to follow overview.]

djng—a Django powered microframework

djng is my experiment to see what Django would like without settings.py and with a whole lot more turtles. It’s Yet Another Python Microframework.

Django tip: Caching and two-phased template rendering

We’ve launched user accounts at EveryBlock and we faced the interesting problem of needing to cache entire pages except for “You’re logged in as [username]” bit top page. The solution ended up using is two-phased template rendering.

Assembling Pages Last: Edge Caching, ESI and Rails

[Good overview of ESI pros/cons.]

The open, social web

If I told you that the iPhone was the best example of the success of standards and open source, you’d probably laugh at me, but check it out…

Timothy’s Links

Server Monitoring with Cacti + ServerStats | HostingFu

This is kind of cool: if you’ve got a computer somewhere on your local network and you want the laity to have access to rough stats, all you’ve got to do is fire this package up, tweak xinetd a little bit, and voila–your boss can look over your shoulder from the comforts of his own office.

Slicehost for Android // Slicehost – VPS Hosting

Trevor pointed me in the direction of this one. It’s a neat little app–very minimalist and very Linux-y–that lets you check on your bandwidth, slice stats (e.g. mem/proc/distro name and version) and gives you the option to do a remote /sbin/poweroff or an /sbin/shutdown -h now. Very neat.

Research: Password ‘secret question’ woefully insecure

Let’s get a movement going here: if enough Internet types spread the word that no one in their right mind or who possesses any kind of meaningful credential endorses “secret questions” and that, in fact, the research shows that they make accounts _less_ secure, maybe we can kick up enough dust to get rid of them.

Three Letters

This take on the classic joke has a sysadmin slant; guaranteed to be appreciated by everyone from Exchange rebooters in silk cravats to consolemen who live on the metal.

Samba: change a Windows user’s hashed password. And then change it back.

This post has been moved to http://demongin.org/blog/818

Weekly Digest, 5-17-09

Trevor’s Links

Interview with Ian Hickson, editor of the HTML 5 specification

You’ve heard it’s coming in 2012. Or maybe 2022. It’s certainly not ready yet, but some parts are already in browsers now so for the standards-savvy developers, the future is worth investigating today. Ian “Hixie” Hickson, editor of the HTML 5 specification, hopes that the spec will go to Last Call Working Draft in October this year.

The Mega RailsConf 2009 Round Up

A week ago, RailsConf 2009 kicked off in Las Vegas. As usual, it didn’t fall short on drama, interesting sessions, and inspiration for the 1000+ attendees. This post is an after-event summary and long-term source of links to the best RailsConf 2009 related content found so far.

Nuts & Bolts: Campfire loves Erlang

Erlang definitely isn’t a replacement for Rails, but it is a fantastic addition to our collective toolbox for problems that Rails wasn’t designed to address. It’s always easier to work with the grain than against it, and adding more tools makes that more likely.

Tango Icon Theme Guidelines

The Tango icon theme’s goal is to make applications not seem alien on any desktop. A user running a multiplatform application should not have the impression that the look is unpolished and inconsistent with what he or she is used to. While this isn’t about merging styles of all desktop systems, we do aim to not be drastically different on each platform.

RightZoom Makes the OS X Maximize Button More Like Windows

Mac OS X only: System utility RightZoom runs in the background and modifies the OS X maximize behavior to fill the whole screen—perfect for readers that recently made the switch to Mac.

Railscasts – Factories not Fixtures

Fixtures are external dependencies which can make tests brittle and difficult to read. In this episode I show a better alternative using factories to generate the needed records. [I prefer Machinist to Factory Girl, but this is a particularly good episode all around.]

db/seeds.rb in Rails

Added db/seeds.rb as a default file for storing seed data for the database. Can be loaded with rake db:seed (or created alongside the db with db:setup). (This is also known as the “Stop Putting Gawd Damn Seed Data In Your Migrations” feature) [DHH]

Timothy’s Links

The Security Implications Of Google Native Client

This is a really cool from Matasano about how things like ActiveX and Java work from the perspective of someone trying to execute compiled code from a remote source without giving away the whole store, security-wise. Nice pictures, very informative.

How to Add Date And Time To Your Bash History file — Debian Admin

This is a neat one-liner for your .bashrc that just might make your .bash_history a little more searchable. Add it to your custom .bashrc lines.

Postfix main.cf analysis

Here’s the setup: the one dude pastes his postconf -n and the other dude does through it, telling him what’s what. Kind of a cross between a postmortem and an x-ray. Useful to test your postfix knowledge/skills.

SoS Wiki – - Split Screen Vi

If you use vi/vim and you don’t do split screen, you are, in the immortal words of whatever Internet meme, doing it wrong. Study up!

Set Gmail as Default Mail Client in Ubuntu :: the How-To Geek

This is a neat little trick for writing a line or two of bash that will allow you to use gmail (via firefox) as your default email client in a gnome environment. It wouldn’t take much to adapt the instructions for other desktop environments. (Props to Artie for sending this my way)

Reports: Thief holds Virginia medical data ransom

I guess, technically, that since I’m on the side of the law by virtue of my professional situation, I ought to regard this as terrifying or reprehensible or something. But you gotta admit: something about the idea of a blackhat utterly pwning someone’s network to the extent of the pwnage described here is really, really exciting.

Postfix Backup MX eMail Server Anti-Spam Configuration

The English is a little messy on this one, but the conf text is right on. This is a nice little list of basic (yet above and beyond “stock”) config options for reducing shenanigans and closing commonly exploited gaps.

Restore a single table from a large MySQL backup

I’m not sure that I understand the ruby syntax completely, but people are passing this link around, so this is my obligatory bump.

Stupid Linux Tricks: Basic Server Hardening (Debian Lenny)

This post has been moved to http://demongin.org/blog/829

Do This: Spamassassin (Debian, Postfix)

This post has been moved to http://demongin.org/blog/827