HTML mail is bad enough when it works – it’s intolerable when it’s as broken as in Apple’s Mail.app.
… are possible with a little work and a lot of patience.
A Firefox hack for styling specific sites using user stylesheets.
A report on my experience using GMail for mailing list activity.
A quote from Brad Fitzpatrick:
I find that is the best way to start a conversation. If you get on a mailing list and you are like ‘hey I want to add feature X’ the maintainer is probably going to be like: ‘ Oh fuck, I am so busy, go away, I hate feature X’. But if you come to them and you are like ‘I want to add feature X. I was thinking something like the attached patch’ which is totally wrong but you say, ‘But I think its totally wrong. I am thinking the right way might be to do X’ which is some more complex way, generally they will be like ‘Holly crap, they tried and look, they totally did it the wrong way. Maybe that pains the maintainer. They are like ‘ Oh man, I can’t believe they went through all that effort to do it. Its so easy to do the right thing,’ and then they reply.
This is the secret to being productive when contributing to open source. It’s very rare that you should approach a mailing list without a patch of some kind.
Nice list of Ruby one-liners when working at the shell. e.g., emulating nl(1):
# number each line of a file (left justified).
$ ruby -ne 'printf("%-6s%s", $., $_)' < file.txt
# number each line of a file (right justified).
$ ruby -ne 'printf("%6s%s", $., $_)' < file.txt
# number each line of a file, only print non-blank lines
$ ruby -e 'while gets; end; puts $.' < file.txt
Unlike some other things, the -p and -e switches are something I’ve always been glad ruby adopted from perl.
Matt Todd and Mike Perham show off some nifty Ruby heredoc fu. It’s a gist, so fork it and add your own craziness.
I didn’t realize how much shit I had in my menu bar until I went through and did this:
There is a tried and true uncluttering trick for your home and office used by many professional and highly paid “Organizational Consultants”. It involves taking everything you own, save for the bare essentials, and moving it into storage. For a set period of time, retrieve items from the store when needed. Anything not accessed after said set period of time you likely do not really need and should be disposed of.
I have no idea why I ever had Sync (don’t use), TimeMachine (don’t use), Growl (useless), or Bluetooth (useless) enabled.
And every one is worth reading yet another “20 tips” post.
Nice. The xargs(1) switch -P N will run up to N separate processes in parallel. Combine with the -n M switch for a quick and dirty process pool.
A lost art, indeed.
Tanner Burson talks about one of the larger accomplishments of the Sinatra 0.9.0 release. We definitely need more docs on using Sinatra in this fashion.
Aristotle Pagaltzis shows a pretty crazy technique for splitting a single git commit into multiple separate commits using an interactive rebase and successive checkouts on the same branch. Interesting approach. I usually pop the commit off into my working directory with git reset HEAD^ and then use multiple iterations of git add --patch + git commit until my working directory is clean again.
“If you’re still terrified by the idea of talking to strangers, challenge yourself to talk to one stranger a day, every day, for 30 days. If you’re walking past someone on the sidewalk, say ‘Hi’, and the person looks at you and keeps walking (done that many times), your job is done for the day. If you walk up to a girl in a club and say ‘Hey!’, and she responds, with a slightly grossed out look ‘I have a boyfriend.’, congratulations, you’re one step closer to improving your love life. The point of this exercise is to get you used to talking to people you don’t know and form the habit of being more social.”
Stefano Mazzocchi: “I have a much simpler and humble goal here: give programmers some tricks and some advice in how to proceed to make their web pages look cleaner, more readable and, hopefully, more professional, elegant and original than before.”
There’s so many great workflow hacks in here.
“Of course, Strunk and White, as the book is commonly called, has nothing to do with software (it was written in 1935) and everything to do with writing: grammar, composition, and style for users of the English language. But in its 100 short pages this book has more to say about the craft of software than many books you’ll find in the ‘Computing’ section of your local bookstore. All you have to do is replace a few key words throughout the text and presto! Pearls of software development wisdom, delivered in near-perfect English.”
“Beer is the people’s drink. Whiskey on the other hand is seen as a hard drink. It is a drinker’s drink. The sole preserve of men. It’s serious. It is the opposite end of the spectrum to fruit-based neon-coloured liquids sporting little paper umbrellas.”
Ola Bini: “Using instance_eval changes the rules for the language in a way that is not obvious when reading a block. You need to think an extra step to figure out exactly why a method call that you can lexically see around the block can actually not be called from inside of the block.”
Having abused instance_eval in the past, I can say with absolute clarity that it’s usually The Wrong Thing. It can make DSLish code look really cool in controlled and scoped demos but it greatly increases cognitive complexity, making things hard to read and maintain.
Very interesting alternative to git submodule, especially in “vendor branch” type scenarios. The other project is merged into yours at a specified prefix and can be updated with a simple git pull.
Justin French: alias push?='git cherry -v origin' — beautiful.
“… even if you have a single server, a proxy in front can help performance significantly. Through the simple expedient of buffering, your heavyweight processes don’t waste time serving every request for the entire length of time the client is connected”
Beautifully done, sir. This should be required reading before anyone is allowed to hit an onramp.
Find all non-printable characters in vim (and I assume with any regexp engine) using the following: [^ –~] (that’s a char range between space and tilde). How convenient. I never noticed that the printable range ended at tilde.
Yes! I’ve been doing this for a few months now with the corp. assets and I won’t go back. You can really see the text snap into a vertical rhythm when you hit it.
I’ve been using this technique for some time with great success. Oh, and this site’s design is bordering on perfection.
Anyone who doesn’t know every single one of these probably hasn’t been developing for the web very long. Probably a useful crash course for newbies making their way over from FrontPage or ASP.net though.
Nice little style guide on the web and nicely indexed hyperlinked.
OMFG this explains my whole life.
All you have to do is add a few lines to ~/ssh/config.
Aaron Swartz looks at the productivity problem, how not to proscratinate, etc. This is just what I needed right now.
Ouch. I’m making 50% of these right now :/
I wanted to like it but…
Seriously.
I guess it’s okay to say out loud now that I’ll need all the information like this I can get.. :)
“… a collaborative environment for exploring ways to become a better thinker.”
:)
One down, two to go…
Instructions for getting a FC3 installed and up to snuff.
This is one of the last things I’ve been waiting for before switching from Safari. Now if only the scrollwheel worked a little nicer and I could get a decent proxy-configuration plugin…
note: trying to learn this at work seems to annoy people.
Excellent repository of OS X configurations, tips, applications, etc.
Some tips I haven’t seen before for dealing with IE’s broken CSS support. Using conditional comments for ie specific css, setting manual defaults, etc.
ctags/etags, strace, fuser, ps, time, nm, strings, od/xxd, file, objdump
Super useful tips on diving into Emacs.
Tips and techniques for helping Googlebot. If you are a symantic markup perfectionist, you probably already have most of these right.