You’d think the todo list problem was solved by now. Email is solved. Google solved it. Srsly. If you aren’t using Gmail, what’s really stopping you? No, Yahoo! and Microsoft aren’t doing it better. Google wins. Spam is pretty much solved. Google once again solved it by sheer volume, you throw millions of emails at a Bayesian filter with crowd sourcing (that little button in Gmail? that’s crowd sourcing) and it gets pretty damn smart. Okay may...
Verbose Logging
software development with some really amazing hairProper rack middleware ordering
It occurred to me the other day, that I should take a look at the middleware I use on this blog. I don’t know what it was. My spidey senses just tingled. Boy was I right. I totally had it backwards. Rack middleware is a fantastic thing. It’s like a little encapsulated rack application that you can use to filter, process, or otherwise mess with responses. There is middleware to add etags, configure caching, catch and log exceptions, deal with c...
Read the full article
Making nth-child work everywhere
The nth-child pseudo selector is a nice feature in CSS3. Well, most of the things in CSS3 are pretty sweet. Chris Wanstrath has a good post on the nth-child selector, and I’d suggest reading it for a bit more in depth on what the nth-child selector actually does, as I just cover getting the same effect in all browsers. Unfortunately, while Internet Explorer does support some of the CSS3 stuff, it doesn’t support a bunch of them either. (Discla...
Read the full article
ANN sinatra-bundles: Easy asset bundling for sinatra
sinatra-bundles is an easy way to bundle CSS and Javascript assets in your sinatra application. Yes! It has tests! They are on runcoderun Usage sinatra-bundles combines Javascript and CSS into one file. Meaning, you can bundle 2 or more Javascript files into one, similar with CSS stylesheets. Any bundled files are expected to be in the public directory, under ‘javascripts’ and ‘stylesheets’ Assuming you have the following files in public: ./st...
Read the full article
Using Date objects with Ruby Ranges
I used to have some really ugly code to generate the archive links you see on the right column of this blog. It was terrible. Granted it was some of the first code I wrote on this blog, and I was cruising through it because I just wanted to get it done and working, but still, it’s not really a valid excuse. It can be seen here. I had a thought the other day that it would be much better handled by the Range class, and boy was I right, although ...
Read the full article
Rewrite Git History for Make Benefit of Glorious Internet Tubes of the World
Sometimes you do silly things. Like check big binary files into source control. Ones that shouldn’t be in source control. This causes problems. Okay, well not really problems, but it has some effects. Cloning the repository takes longer, of course, since there are big files, and other operations can take longer too. But fret not! If you need to purge files from Git, you can. Now, you can’t just remove the file, since it’s still technically in ...
Read the full article
Hacking markItUp! to help me embed videos
I use swfobject to embed videos because, as I explained back here, just blindly copying the embed code doesn’t work that well half the time, and videos end up being different sizes, etc. I was getting kind of fed up with having to go back and remember how to do it every time though. The format is pretty straightforward, but I don’t embed videos often enough to actually remember the exact syntax, so I found myself going back to posts with video...
Read the full article
My Ruby Style
The folks at Thoughtbot have a Ruby community survey online, and you should all go take it. Well, as long as you are a ruby developer. Otherwise it doesn’t really matter. Anyway, I wanted to throw out what I do for ruby style (and general programming style in some cases). I hate the 80 character limit. Get a real monitor would you please? I don’t align assignment operators. I don’t indent private/protected keywords. I keep the code after ...
Read the full article
IdeaPaint, more like AwesomePaint!
If anybody needs a last minute gift idea for me, this is it. This video needs Javascript, I’m super serial! Are you kidding me? One coat of this stuff and I can turn a wall into a whiteboard? Not only a whiteboard, but one of the highest performing whiteboard surfaces ever? Nice! This stuff comes with a warranty too, so they aren’t even kidding. When I get an actual house that I care about and can have my own little room with my computers and...
Read the full article