Trevor’s Links
Untitled Document Syndrome
…the key is that it minimizes friction. There’s little friction to create a new note, and little friction to search for existing ones. And you never have to explicitly save anything.
GitHub at Startup Riot 2009
What went wrong? So many things. I could blame our market research or our promotional site, or our target demographic, but really it’s our fault. We weren’t in love with FamSpam – we never were. We thought it was a great idea, and maybe it was, but it was a great idea for our parents. For our families. For other people. Not for us. It wasn’t a site I would check every day. It wasn’t something my friends would use ever. I’m going to continue, but to me this is the most important point so far. The biggest failure. I wasn’t in love with the company I was trying to build.
Twitter creator Jack Dorsey illuminates the site’s founding document
It was really SMS that inspired the further direction — the particular constraint of 140 characters was kind of borrowed. You have a natural constraint with the couriers when you update your location or with IM when you update your status. But SMS allowed this other constraint, where most basic phones are limited to 160 characters before they split the messages. So in order to minimize the hassle and thinking around receiving a message, we wanted to make sure that we were not splitting any messages. So we took 20 characters for the user name, and left 140 for the content. That’s where it all came from.
Stars
The problem with rating systems in general is that only people who feel very strongly about something will take the time to rate it. For a five star scale, that suggests mostly one and five star ratings.
A Virtual Unknown: Meet ‘Moot,’ the Secretive Internet Celeb Who Still Lives With Mom
In this way, Poole’s problem is the problem of the entire Internet, which is built on wireless connections and a lot of "theoretically." It’s where people spend time, make friends, play games, get news — and yet despite all of that philosophical worth, the smartest minds in the country still struggle with how to make even the most successful sites profitable.
QSB
Google Quick Search Box is an open source search box that allows you to search data on your computer and across the web. This app is very experimental, but through it you will be able to see many of the areas we are exploring: contextual search, actions, and extensibility. It is by no means feature-complete, but is a very good indication of things to come.
What will Web 3.0 be?
I’ve been researching CouchDB this week, and I’m getting more and more excited by it the more I learn. It combines data storage, REST-based APIs, scalability and data propagation through replication, and even application hosting. It’s actually a lot like Google’s internal infrastructure, but in an open and modular form.
The Law of Leaky Abstractions
The law of leaky abstractions means that whenever somebody comes up with a wizzy new code-generation tool that is supposed to make us all ever-so-efficient, you hear a lot of people saying "learn how to do it manually first, then use the wizzy tool to save time." Code generation tools which pretend to abstract out something, like all abstractions, leak, and the only way to deal with the leaks competently is to learn about how the abstractions work and what they are abstracting. So the abstractions save us time working, but they don’t save us time learning.
Timothy’s Links
WIPO: Jackass.com owner a real jackass, but can keep domain
This is just funny. It’s an Ars story about a judge who confirms the right of a no-name squatter to his ownership of the jackass.com TLD in the face of claims from Big Media that they ought to be the owners of the domain because…well…just BECAUSE! OK!? God!
Updating to Debian Lenny – upgrade hangs during LDAP
This is another "read this if you’re upgrading to Lenny now that it’s finally stable" article. Contains a good warning about potential problems with LDAP.
Linux Tips: bash completion: /dev/fd/62: No such file or directory
This happened to me. If you manage virtual computers that live on xen servers, it could happen to you.
Keeping violent media away from boys could be a bad idea
To most sane people, the idea of keeping violent media out of the hands of impressionable children is as patently absurd as all other forms of censorship: the idea of raising children on strictly non-violent narratives means that you lose most of, if not all of the books that we regard (in the West, at least) as canonical. Bye-bye Iliad! Holler back, Star Wars: you will be missed. See-you-later, Old and New Testaments! This article from Ars describes the efforts of an author so dense that she actually feels the need to make the case _in favor_ of allowing children to consider violent media, lest they grow into extremely maladjusted adults who are utterly unprepared to make their way in a world in which violence is not only "the supreme authority from which all other authority is derived", but also the implicit means and end of most pursuits in which they will find themselves engaged.
41% of museums don’t know how dogs actually walk
This is a (weirdly) interesting article on a.) how dogs walk and b.) how to correctly represent that in various media. Kind of a ship-in-a-bottle piece, but still a good read.
Magenta Ain’t A Colour
Like optical illusions? Click here!
Hacks: Mario/Princess Road Sign
I bookmark’d a link to hack-a-day or some other hacker site a while back about how to reset passwords on these things and program new messages. Now I am proud to bookmark this picture of one such hack.
Draconian DRM revealed in Windows 7
Just switch already. They’re eventually going to stop supporting the last functional version of Windows (i.e. Win2k) and then what? What will you do? Just bite the bullet, buy the MacBook and switch already.
Sharpen the Vim saw
More vim tips/tricks because you can never read too many vim tips/tricks pages. That is a fact.
Microsoft SharePoint Uses Hand Crafted GUIDs
On the one hand, it was kind of cheering to learn that some lowly MS coder hand-translated these URI strings into l337-sp34k . On the other hand, it was depressing to remember that people are actually using Sharepoint in their daily lives.
Trevor’s Links
Canonical URL Tag
The announcement from Yahoo!, Live & Google that they will be supporting a new "canonical url tag" to help webmasters and site owners eliminate self-created duplicate content in the index is, in my opinion, the biggest change to SEO best practices since the emergence of Sitemaps.
Is the Relational Database Doomed? – ReadWriteWeb
Recently, a lot of new non-relational databases have cropped up both inside and outside the cloud. One key message this sends is, "if you want vast, on-demand scalability, you need a non-relational database". If that is true, then is this a sign that the once mighty relational database finally has a chink in its armor? Is this a sign that relational databases have had their day and will decline over time? In this post, we’ll look at the current trend of moving away from relational databases in certain situations and what this means for the future of the relational database.
git pull with rebase
Users of Git are hopefully aware that a git pull does a git fetch to pull down data from the specified remote, and then calls git merge to join the changes received with your current branch’s work. However, that may not always be the best case. You can also rebase the changes in, and that may end up being a lot cleaner. This can be done simply by tacking on the –rebase option when you pull
Dead simple task scheduling in Rails
Despite having only a one line mention near the bottom of the page, I decided to check out rufus-scheduler, and it turned out to be exactly what I was looking for. There was no database table, queueing mechanism, or separate process to manage. Just a simple scheduler to call out to your existing ruby code.
What webhooks are and why you should care
While there’s a lot of value in webhooks today, it’s the future that really interests me. Webhooks are composable. You’ll point a webhook at a site that will call other webhooks. It might process the data, record it, fork it off to multiple webhooks or something stranger still. Yahoo Pipes tried to do this, but ultimately you were limited to what Yahoo Pipes was designed to do. Webhooks can be integrated and implemented everywhere. They piggyback the fundamental decentralized nature of the web.
The Russian Doll Pattern: Mountable apps in Rails 3
One of the hottest new features in Rails 3 is the ability to embed a Rails application in another Rails application. This allows the development of components that range from user authentication to a fully featured forum. These components can then be distributed as gems and fully integrated with another application. In fact, user private messaging could be a stand alone app, which is then mounted into a forum app, and finally mounted into your own custom app.
Receiving emails in Rails using Gmail & IMAP, while staying efficient and RESTful
For a recent project I had a need to receive emails (actually MMSs, but that’ll be the subject of a future post) in a Rails application. My requirements for the solution were: Shouldn’t require root access. Shouldn’t require firing up the Rails stack for every incoming email. Can be scheduled to run automatically.
Where data goes when it dies and other musings
The web is a fragile place it turns out, in spite of its redundancy and distributed design.
The Elephant in the Room: Google Monoculture
Now that Stack Overflow has been chugging right along for almost six months, allow me to share the last month of our own data. Currently, 83% of our total traffic is from search engines, or rather, one particular search engine: Google.
On fixtures and first-time testers
But what I’ve never understood is why fixtures are actually easier for a noob than just creating the model in Ruby.
The Lie
I do agree with Francis on about everything else though: Fixtures do suck, and testing is really fucking hard. By the time you realize you’re getting into Fixture Hell, moving your monstrosity of an application off fixtures is a daunting task. My solution (and currently the ENTP way): Machinist.
A Twitter Decision
When I look at Twitter, I see three early essential decisions about how Twitter allows you to craft a community. I believe much of Twitter’s continued success is due to definition and execution of these decisions.
Timothy’s Links
Moto Android-based eBook reference design
Boo-yeah: this is my shit, this is what I’m talking about. The Kindle isn’t a bad idea in and of itself, but closed software and tamper-proof OSes are the original bad idea and cancel out whatever promise that eBook might have held. Just wait until dudes get Android up and running on a Kindle-like device and watch the market for eReaders EXPLODE.
Firefox (In)Security Update Dynamics Exposed
Courtesy of Schneier, this is a (rather formal, white) paper that presents some research on just how up to date the majority of Firefox and Opera users are on any given day. If you’re like me, you’re running beta software (shit, probably alpha) when it comes to your browser, but you’re responsible for the care and feeding of users running stable builds who might or might not have authority to patch/update them. This piece adds useful data to the conversation about either fact.
Official Google Reader Blog: What we did on our winter break
If you live and die by Google Reader (like I do), you probably need to make some changes in your life–display some fucking adaptability, as the Bard advised–and stop being so utterly dependent upon a service that is entirely beyond your control. But until that happens, if you’re like me and you’re one of the thousands of people who subscribe to the RSS of the Reader team’s blog, then it will be old news to you that they’ve made substantial improvements in recent days. If you’re not like me, however, you might be interested in reading up on what they’ve done in recent times. Who knows–you might just ditch your current reader for the Good (or at least your mobile one).
1Cast Home
Apparently 1Cast (TV newsfeeds on your smartphone) is coming to Android. In a matter of moments. Can’t say I’m super-excited myself–I prefer the written to the moving image–but it’s nice to see the diff between iPhone apps and Android Marketplace get another line knocked off of it.
AndroidAnki – Anki Wiki
This is the page for the only project I know of that is attempting to "port" anki to Android. Doing a good job so far, IMO.
11 Embarrassing Server Meltdowns that Cost Companies Millions – Web Hosting Unleashed
This is a good one to read if you’ve recently broken the website and are feeling kind of shitty about having caused massive outages: there’s no way your fuck-ups could ever be as bad as these.
Source: Apple asked Google not to use multi-touch in Android, and Google complied » VentureBeat
More grist for the rumor mill. This idea, i.e. that Apple made some kind of political or corporate power play to keep multi-touch (i.e. "pinch") out of the Android OS, has been a scandal since before the release of the G1. I’m not sure if this makes me believe the conspiracy theories, but I think it’s clear at this point that there were definitely some shady, backroom dealings going on at some point.
shell_sink
So this is this utility that, after some software installation (mostly just some script copies) and an easy-peasy registration, adds a feature to your Google applications that records and indexes your command line usage. I’m trying it out for now–what could possibly go wrong with keeping an infinite bash history?–and it seems promising.
Google turns on Exchange for iPhone and Windows Mobile users – Ars Technica
There is officially no reason to use a Microsoft program any longer. Thanks Google!
In the Ad Wars, Apple Still Has Microsoft’s Number
This is a nice "status of forces" kind of report about how Apple and MS are still squaring off in the international marketing arena for the hearts and minds of people who don’t care about computers. It’s useful if, like me, you live in a bomb shelter of booze, Linux and uppers so deep beneath the surface of the Earth that not even the mighty Crispin Porter + Bogusky have developed a bunker-buster powerful enough to penetrate.
App Review: Useful Switchers
Useful Switchers creates shortcuts to some of the most frequently toggled system settings on the G1 (thus fixing the UI design failure of having to open the menu, press "Settings" and then navigate down two or more menus to find what you were looking for). Hot shit.
Debian Package of the Day » vnstat – a console-based network traffic monitor
These guys continue to provide a quality service: I’d say a full 50% of the "pacakges of the day" they describe are ones I’ve never heard of before and which I will one day use again. vnstat is a utility for long-term (i.e. survives reboots) bandwidth usage monitoring. It may even help you kick your DIY bandwidth monitoring to the curb.
A recent blog post reminded me that I should share a little test helper we’ve been using quite happily at the office lately. This trick works great with our extra-restful Restful Authentication and fixture-free Machinist setup.
It creates a new user with Machinst, and then logs the user in. We add a touch of convenience by returning the user object, and finish off by allowing you to pass in extra options if necessary.
def login!(options = {})
user = User.make(options)
@request.session[:user_id] = user.id
user
end
This allows for many little niceties in your tests:
# login as a newly created user
login!
# login and keep the user around for assertions and whatnot:
user = login!
# login with admin privileges
login!(:admin => true)
It’s a small thing, but give it a try! I’m sure you’ll like it.
I’ve come across a few different ways to validate URLs in my day, but they all seem a bit more complicated than necessary. Perhaps I’ll see the wisdom of these techniques soon, but for now it seems like there’s an easy solution to the problem:
class Link < ActiveRecord::Base
attr_accessible :url
validate :validate_url
private
def validate_url
errors.add(:url) unless %w(200 301 302).include?(Link.status_code(self.url))
end
def self.status_code(url)
regexp = url.match(/https?:\/\/([^\/]+)(.*)/)
path = regexp[2].blank? ? '/' : regexp[2]
Net::HTTP.start(regexp[1]) {|http| http.head(path).code}
rescue
nil
end
end
Et Voilà.
Trevor’s Links
Ruby tip: Return early
Tip: Instead of nesting, just return early.
More time doesn’t mean a better product
It’s easy to fall into a trap of nitpicking over things that don’t really matter. Instead, focus on the essence of what you’re doing. Press record, get it done, and get it out there. (And that’s even more true if what you’re creating is something you’ll get to improve upon after it’s released.)
entp’s tools on the edge
We like to think that we live life on the edge here at ENTP. If we’re not writing the bleeding edge tools, we’re probably using them. We were talking a little earlier in our Campfire chatroom about how it might be cool to go through the tools we use every month – so welcome to the first installment. It’s a doozy since it’s the first, so grab a cup of coffee and get ready to read a novel.
6 Scrum lessons every Rails developer should know
1. Always work from a prioritized list; 2. Make a commitment publicly; 3. Get feedback regularly; 4. Time-box your activities; 5. Work sustainably; 6. Make your work visible;
Prognostications from the Horse Latitudes
It doesn’t take a genius to understand that the fractal network of information systems that we call "the Internet" is not some monolithic entity or construct. The "thing" we call "the Internet" is no thing at all: it’s much more like a "phenomenon." And "the Internet" is much more like a series of related happenings than a self-contained entity of any type for the painfully simple reason that "the Internet" is simply human consciousness writ larger, thanks to the invention of more efficient and robust means of communication. Basically, it’s the same thing we (humans) always did, but now we do it much bigger and better than ever before with the help of millions of miles of copper wire. That’s it. That’s all it is.
BigTarget.js
Increase the size of click targets and get more call-to-action conversions. Say goodbye to boring ‘Read More…’ links by turning your entire content block into a clickable target!
Why Your Avatar Matters
There are more resources available today for building a personal brand than ever before. Anybody can start a blog for free, sign up for social networks, create podcasts and internet TV shows, and be a part of the Big Conversation in hundreds of different ways. But getting recognized—getting heard— is actually tougher than ever. [I totally agree with this one. That's why I've been using the same awesome Costco Membership Card photo as an avatar for all my stuff lately :)]
Machinist and Rails controller tests
Machinist, my test-data generation plugin for Rails, has just gained some features that make it useful for controller tests. [I'm a big fan of this plugin. Being free of fixtures makes testing more fun. And faster.]
Speed Matters
This conclusion may be surprising — people notice a half second delay? — but we had a similar experience at Amazon.com. In A/B tests, we tried delaying the page in increments of 100 milliseconds and found that even very small delays would result in substantial and costly drops in revenue.
Recreating the button
Until some future version of HTML gives us new native controls to use in a browser, at Google, we’ve been playing and experimenting with controls we call “custom buttons” in our apps (among other custom controls). These buttons just launched in Gmail yesterday, and they’ve been in Google Reader for two months now.
Announcing the Article Search API – NYTimes
We are pleased to announce the initial release of the New York Times Article Search API. Articles are the basic building blocks of The New York Times. As a child, I was often reprimanded for (among other things) not sharing my blocks — well, today, I am happy to share.
How Twitter Was Born
“Rebooting” or reinventing the company started with a daylong brainstorming session where we broke up into teams to talk about our best ideas. I was lucky enough to be in @Jack’s group, where he first described a service that uses SMS to tell small groups what you are doing.
Show Git dirty state (and branch) in the prompt
[Note one of the last comments, which turned out to be my favorite version: http://gist.github.com/49265]
Smart Sleep
Wouldn’t it be better, I was thinking to myself, if this machine would just go into sleep & hibernate mode only when the battery was really low and I’d be at risk of the machine crashing if it ran out of power?
Ruby on Rails 2.3 Release Notes
Rails 2.3 delivers a variety of new and improved features, including pervasive Rack integration, refreshed support for Rails Engines, nested transactions for Active Record, dynamic and default scopes, unified rendering, more efficient routing, application templates, and quiet backtraces.
Engines in Rails 2.3
Some support for ‘engine’ plugins has been merged into the Rails core codebase in Rails 2.3. In this guide, I’ll try to explain what works, what has changed, and what is currently missing compared to the original engines plugin.
Timothy’s Links
Inside Programmable Road Signs
Link courtesy of Schneier. I cannot WAIT to try this out.
Microsoft offers to just ‘Fix it’
This news item’s next stop is failblog. Apparently what remains of Microsoft, the company that made "browser security" everybody’s problem and whose wage-slave programmers horizontally developed the operating systems that power a full 100% of the world’s botnets, is now telling users to remotely execute "fixes" (i.e. scripts that run with admin privileges) from its website. Makes you wonder where you can go to start making bets on how exactly this is going to massively backfire.
The Beowulf HOWTO
Total Linux nerd pr0n. So awesome though.
Need a supercomputer? This guy builds them himself
Bruce Allen builds Debian Beowulf clusters. Which is about the baddest-ass thing a guy can do, short of skinning a dinosaur with a Bowie knife.
Visual representation of edits to the Wikipedia page on "evolution"
Cool if for no other reason than to consider how much of the original text from 2001 makes it to us today and then consider that this sort of rapid-fire redaction is basically a condensed version of what has been happening to pretty much all antique literary works for the last 3000 years.
Gmail Tasks
Courtesy of LifeHacker: add the above URL to your bookmarks in Firefox, right-click it and set it to be on the sidebar and BAM! gmail tasks in your FF sidebar.
Android: SMS Popup
This is a review of a little app for your G1 that alerts you when you get an SMS message. Personally, I think the overhead bar gets the job done quite well, but the features that come with this app (like choosing vibration style, setting reminders, etc.) make it kind of must-have.
Glossary | Michael teachings
You thought New Age Guru type dudes vanished with Patrick Bateman and the Bright Lights, Big City 80′s? Think again.
Svchost Viewer Shows Exactly What Each svchost.exe Instance is Doing
This would be a very useful utility to have the next time one of your users is convinced that Firefox is causing explorer to become non-responsive and you wish you could make him understand that in reality it’s one of his svchost processes run totally amok.
Perspectives: Ars community compares iPhone and Android G1 – Ars Technica
Yeah, we’ve all had it up to here with the G1/iPhone comparisons. But this one is really worth reading. It’s Ars, for X’s sake. Just read it: if you don’t keep your talking points current, you’ll end up sounding like your step father.
Obsolete Computers That Still Do the Job – BusinessWeek
This article should make you giggle. I mean, it will certainly make you giggle if you, like me, work on the Internet and are used to giggling at MBA-types who don’t know bupkiss about hardware, software or information systems in general beyond what they need to know to "do email and Word". But still–giggle-factor aside–there’s some hope for the future in this article. I spent this last Sunday using mdadm to turn four scrap HDD’s and an old PC from the 90′s that I scored off of a buddy when he moved last summer into a RAID5 backup for my big fileserver (which is itself a P3 with 256MB of disc) and I can honestly say that it makes me slightly hopeful for the future to see an article written for MBA-types that advocates for hardware recyclery.
dokuwiki [DokuWiki]
dokuwiki is my new favorite F/OSS wiki solution. It’s got a nice minimalist aesthetic, is drop-dead simple to install and administer and doesn’t use an RDB (i.e. stores everything on the filesystem). Good features and incredible ease of use.
AdFreak: A pair of galactically odd child-abuse PSAs
Watch these and try not to giggle. I defy you.