A few months ago I took a serious look at our public sites’ performance. They were making a lot of requests for individual assets and page load times were pretty poor – Basecamp itself loaded much faster than the essentially static signup page for it. Local setup problems with the PHP sites also meant that it was harder to work on the sites, and so we were less productive and less inclined to work on them. Back to the basics for fun and profit Our solution to this (in addition to spriting images and cleaning up unused styles and Javascript) was to switch to using totally static HTML pages. We’re using the stasis gem to compile .html.erb files locally and on deploy, along with Sprockets to pre-process and concatenate stylesheets and Javascript. Our web server ends up serving plain old HTML and a single CSS and Javascript file, with no interpretation.
- Trevor F. Smith
Apple, Facebook, Google, and Amazon battle for the future of the innovation economy. More like the future of the "we own your culture" economy.
- Trevor F. Smith
He looked at the problem, how the existing solutions failed, and how people iterated their airplanes. He came to the startling realization that people were solving the wrong problem. “The problem is,” he said, “that we don’t understand the problem.” MacCready’s insight was that everyone working on solving human-powered flight would spend upwards of a year building an airplane on conjecture and theory without the grounding of empirical tests. Triumphantly, they’d complete their plane and wheel it out for a test flight. Minutes latter, a years worth of work would smash into the ground. Even in successful flights, a couple hundred meters latter the flight would end with the pilot physically exhausted. With that single new data point, the team would work for another year to rebuild, retest, relearn. Progress was slow for obvious reasons, but that was to be expected in pursuit of such a difficult vision. That’s just how it was. The problem was the problem. Paul realized that what we needed...
- Trevor F. Smith
I was born in Honolulu, grew up in China, and live and work in Seattle, Washington, USA. In 1978, my father brought an Apple II into the house to help him design weaving patterns, and my relationship with computers was fixed forever: from the start, they've been identified in my mind with art, not spreadsheets. I've often said that my only absolute rule is "no dogma", and my approach to photography reflects that perspective: from carefully structured, detailed floral imagery to chaotic, semi-abstract street photography, it all expresses something essential to me. Most of the work you see here has appeared at one time or another in my photo blog, Noise to Signal, where I post a new photo almost every day. I would be remiss if I didn't mention that nearly all of the photos you see here are available for purchase, at reasonable rates. Contact me for details on any photos you're interested in. Thanks for visiting.
- Trevor F. Smith
"They're made out of meat." "Meat?" "Meat. They're made out of meat." "Meat?" "There's no doubt about it. We picked up several from different parts of the planet, took them aboard our recon vessels, and probed them all the way through. They're completely meat." "That's impossible. What about the radio signals? The messages to the stars?" "They use the radio waves to talk, but the signals don't come from them. The signals come from machines." "So who made the machines? That's who we want to contact." "They made the machines. That's what I'm trying to tell you. Meat made the machines." "That's ridiculous. How can meat make a machine? You're asking me to believe in sentient meat."
- Trevor F. Smith
All complaints should be directed towards a section of society to whom the concept of even vaguely civil discussion means nothing. This collective waste of flesh, bone, and dangerously limited brain function have caused me to dread opening each and every "New Comment" notification I've received over the past twelve months or so, to the point where I now cannot continue justifying the moderation of these imbecilic, repugnant grunts when it takes up such an inordinate amount of my willpower and, more importantly, time. I'd rather spend my hours happily expanding the archives of Letters of Note than clean up after a keyboard-wielding gaggle of cowardly, dim-witted, knuckle-dragging reprobates who have nothing better to do than gleefully splash their fetid saliva all over my efforts and then roll around in the puddle until I'm able to press "Delete Comment." I refuse to waste another minute. When people ask me why I usually don't open comments to the general public, I'll link here.
- Trevor F. Smith
zip.js offers a low-level API for writing and reading large zip files (up to 4GB) with a stable RAM use. It also offers a Filesystem API in order to manipulate zip file structure.
- Trevor F. Smith
You know how Ken Thompson and Dennis Ritchie created Unix on a PDP-7 in 1969? Well around 1971 they upgraded to a PDP-11 with a pair of RK05 disk packs (1.5 megabytes each) for storage. When the operating system grew too big to fit on the first RK05 disk pack (their root filesystem) they let it leak into the second one, which is where all the user home directories lived (which is why the mount was called /usr). They replicated all the OS directories under there (/bin, /sbin, /lib, /tmp...) and wrote files to those new directories because their original disk was out of space. When they got a third disk, they mounted it on /home and relocated all the user directories to there so the OS could consume all the space on both disks and grow to THREE WHOLE MEGABYTES (ooooh!). Of course they made rules about "when the system first boots, it has to come up enough to be able to mount the second disk on /usr, so don't put things like the mount command /usr/bin or we'll have a chicken and egg...
- Trevor F. Smith
Kippo is a medium interaction SSH honeypot designed to log brute force attacks and, most importantly, the entire shell interaction performed by the attacker. You can do funny things like provide fake a /etc/passwd. Cornfusing to skiddies, I'm sure.
- Trevor F. Smith
In the past, workers with average skills, doing an average job, could earn an average lifestyle. But, today, average is officially over. Being average just won’t earn you what it used to. It can’t when so many more employers have so much more access to so much more above average cheap foreign labor, cheap robotics, cheap software, cheap automation and cheap genius. Therefore, everyone needs to find their extra — their unique value contribution that makes them stand out in whatever is their field of employment. Average is over. Yes, new technology has been eating jobs forever, and always will. As they say, if horses could have voted, there never would have been cars. But there’s been an acceleration. As Davidson notes, “In the 10 years ending in 2009, [U.S.] factories shed workers so fast that they erased almost all the gains of the previous 70 years
- Trevor F. Smith
RT @drunkenpredator: I didn't think robots could groan, but then a certain somebody decided to try dairy humor. #SOTU
Say hello to the Head-Up Display, or HUD, which will ultimately replace menus in Unity applications. Here’s what we hope you’ll see in 12.04 when you invoke the HUD from any standard Ubuntu app that supports the global menu. I constantly use the FS and app quicksilver-esque menu in Unity now, so I'm glad that they're extending it to app actions.
- Trevor F. Smith
This new year, do something different: stop setting goals. If the definition of insanity is doing the same thing over and over again expecting different results, then making resolutions for another year is a sure-fire way to drive yourself crazy. I did it for years, and it got me nothing. Resolutions are pipe dreams, and goals are a waste of time. They are designed to trick you into believing all you need to change your life is a plan. But plans don’t work. Life is too chaotic and busy. For most of us, it’s impossible to stick to a list of goals for more than a few weeks, not to mention an entire year. So how do you change your life? By controlling what you can: your daily habits.
- Trevor F. Smith
Here's the principle. As your company grows, you tend to add people in "layers". The top layer is the first founder or founders. There may be 1, 2, 3, or more of you, but you all start working about the same time, and you all take the same risk... quitting your jobs to go work for a new and unproven company. The second layer is the first real employees. By the time you hire this layer, you've got cash coming in from somewhere (investors or customers--doesn't matter). These people didn't take as much risk because they got a salary from day one, and honestly, they didn't start the company, they joined it as a job. The third layer are later employees. By the time they joined the company, it was going pretty well. For many companies, each "layer" will be approximately one year long. By the time your company is big enough to sell to Google or go public or whatever, you probably have about 6 layers: the founders and roughly five layers of employees. Each successive layer is larger. There...
- Trevor F. Smith
distributed semi-structured search system From the linkedin team.
- Trevor F. Smith
RT @busterbenson: I built this in 24 hours as a way to help track your goals. It doesn't even require creating an account: http://gonnatry.com Please RT?
PirateBox is a self-contained mobile communication and file sharing device. Simply turn it on to transform any space into a free and open communications and file sharing network.
- Trevor F. Smith
A Pure-Python library built as a PDF toolkit. It is capable of: extracting document information (title, author, ...), splitting documents page by page, merging documents page by page, cropping pages, merging multiple pages into a single page, encrypting and decrypting PDF files. By being Pure-Python, it should run on any Python platform without any dependencies on external libraries. It can also work entirely on StringIO objects rather than file streams, allowing for PDF manipulation in memory. It is therefore a useful tool for websites that manage or manipulate PDFs.
- Trevor F. Smith