Quotations in 2009
I think it’s really important to know the whole stack even if you don’t operate within the whole stack.
If you’re just linking to the stuff that people are all talking about on Twitter or that floats to the top of Hacker News, you may as well give up on your blog, as far as I’m concerned. Everybody already sees that stuff. You have to dig deeper to offer more interesting information, and an RSS reader is the best tool you can use for that purpose.
But I guess where I was originally going is that nobody wants to write endings in television. They want to sustain the franchise. But if you don’t write an ending for a story, you know what you are? You’re a hack. You’re not a storyteller. It may not be that you have the skills of a hack. You might be a hell of a writer, but you’re taking a hack’s road. You’re on the road to hackdom and there’s no stopping you because stories have a beginning, a middle, and an end.
I think that what’s particularly hard with C is not the details about pointers, automatic memory management, and so forth, but the fact that C is at the same time so low level and so flexible. So basically if you want to create a large project in C you have to build a number of intermediate layers (otherwise the code will be a complete mess full of bugs and 10 times bigger than required). This continue design exercise of creating additional layers is the hard part about C. You have to get very good at understanding when to write a function or not, when to create a layer of abstraction, and when it’s worth to generalize or when it is an overkill.
Some Darwinists might say your optimal strategy would be to pair-bond with the older male but surreptitiously allow the younger, sexy male to fertilise you. But be careful, most men consider being cuckolded the greatest of betrayals.
Recently Google Translate announced the ability to hear translations into English spoken via text-to-speech (TTS). Looking at the Firebug Net panel for where this TTS data was coming from, I saw that the speech audio is in MP3 format and is queried via a simple HTTP GET (REST) request: http://translate.google.com/translate_tts?q=text
Any sufficiently advanced damage control is indistinguishable from ethics.
Today, Facebook counts 29% of its employees (and growing!) as Hive users. More than half (51%) of those users are outside of Engineering. They come from distinct groups like User Operations, Sales, Human Resources, and Finance. Many of them had never used a database before working here. Thanks to Hive, they are now all data ninjas who are able to move fast and make great decisions with data.
Programmers don’t use launch-fast-and-iterate out of laziness. They use it because it yields the best results. By obstructing that process, Apple is making them do bad work, and programmers hate that as much as Apple would.
Authority, historically, gets bestowed on the gatekeepers of information, such as Britannica, universities, newspapers, etc. Everything that can be digitized will be digitized, and will then be available over the internet, which is disruptive, not only to business models, but to authority.
It’s clear that, even those who are privileged by access and wealth and the ability to amplify their own voices have anticipated that we’ll all be disenfranchised by the private companies that own and control our networks of communication. And yet, most of our effort and ambition in the technology industry are not going towards building for the open web.
About 80 per cent of public sector data mentions a place. Making Ordnance Survey data more freely available will encourage more effective exploitation of public data by businesses, individuals and community organisations.
Every time you attempt to parse HTML with regular expressions, the unholy child weeps the blood of virgins, and Russian hackers pwn your webapp. Parsing HTML with regex summons tainted souls into the realm of the living. HTML and regex go together like love, marriage, and ritual infanticide.
We’re at a critical juncture in the evolution of software. The web is still here and it is still strong. Anyone can still put any information or applications on a web server without asking for permission, and anyone in the world can still access it just by typing a URL. I don’t think I appreciated how important that is until recently. Nobody designs new systems like that anymore, or at least few of them succeed. What an incredible stroke of luck the web was, and what a shame it would be to let that freedom slip away.
How fast do they go? Like everything else, camels aren’t what they were. Do not be encouraged by the accounts of the great desert travellers. They were better men than us, and were probably lying anyway, and they were riding camels which were used to going for many days at full pelt over the most hellish land and then charging into artillery fire at the end. The wrecks you get in the modern camel markets of Omdurman and Cairo are degenerate great-great-great-great-grandchildren of them and their forebears would be desperately ashamed of them.
A set of geodata, or a map, is libre only if somebody can give you a cake with that map on top, as a present.
One way to establish that peace-preserving threat of mutual assured destruction is to commit yourself beforehand, which helps explain why so many retailers promise to match any competitor’s advertised price. Consumers view these guarantees as conducive to lower prices. But in fact offering a price-matching guarantee should make it less likely that competitors will slash prices, since they know that any cuts they make will immediately be matched. It’s the retail version of the doomsday machine.
It’s interesting to me how much [Closure] feels like a more advanced version of Dojo in many ways. There’s a familiar package system, the widgets are significantly more mature, and Julie and Ojan’s Editor component rocks. The APIs will feel familiar (if verbose) to Dojo users, the class hierarchies seem natural, and Closure even uses Acme, the Dojo CSS selector engine.
If you are demanding registration before checkout, you need to cease this practice immediately. It is costing you a fortune.
I loathe [hardware load balancers]. They’re expensive, restrictive, slow, and generally cause you a lot more pain and suffering than they’re worth. At my last job, one of my projects was to convert most of one of our existing clusters from a load-balancing appliance to use keepalived. Why would we do this? Because the $100k worth of appliance wasn’t capable of doing the job that $15k worth of commodity hardware and an installation of keepalived were handling with ease.
HTML has always been a conversation between browser makers, authors, standards wonks, and other people who just showed up and liked to talk about angle brackets. Most of the successful versions of HTML have been “retro-specs,” catching up to the world while simultaneously trying to nudge it in the right direction. Anyone who tells you that HTML should be kept “pure” (presumably by ignoring browser makers, or ignoring authors, or both) is simply misinformed. HTML has never been pure, and all attempts to purify it have been spectacular failures, matched only by the attempts to replace it.
I was thinking the other day how long it had been since I used the acronym “IRL” or the expanded phrase “In Real Life.” It used to be the thing we’d say when we meant “not on the internet”, and I’m glad that it has become gradually obsolete over the years, now that the internet is accepted as part of life.
Remember when blogs were more casual and conversational? Before a post’s purpose was to grab search engine clicks or to promise “99 Answers to Your Problem That We’re Telling You You’re Having”. Yeah. I’d like to get back to that here.
You count the “value” that is lost by people who would have made money selling rival goods, but can’t now because they can’t compete with free. But you don’t count the value that is created by people who build upon the freely given goods. [...] In other words, you only look at the first-order effects. It’s the same mistake a lot of people make when they accuse open source developers of “dumping” and ruining the market for competing software. That’s true, in a very narrow sense, but it ignores all the other people who took that software and used it to create something else of value.
With ubiquitous mobile broadband not far over the horizon, a hyper-connected society might also turn out to be a hyper-indignant one.
Our industry has collectively taught average people over the last few decades that computers should be feared and are always a single misstep from breaking. We’ve trained them to expect the working state to be fragile and temporary, and experience from previous upgrades has convinced them that they shouldn’t mess with anything if it works. [...] The upgrade market for average PC owners is dead. We killed it.
Whenever you build a security system that relies on detection and identification, you invite the bad guys to subvert the system so it detects and identifies someone else. [...] Build a detection system, and the bad guys try to frame someone else. Build a detection system to detect framing, and the bad guys try to frame someone else framing someone else. Build a detection system to detect framing of framing, and well, there’s no end, really.
This is very interesting technology. But that Adobe would go to this length suggests that they suspect that Apple will never allow the Flash runtime on the iPhone.
I grew up in a college town, and one Halloween our doorbell rang and we opened the door expecting to see trickortreater—but what was in front of our open door—was another door! Like, a full-on wooden door, that had a sign that said “Please knock.” So we did, and the door swung open to reveal a bunch of college dudes dressed as really old grandmothers, curlers in their hair, etc, who proceeded to coo over our “costumes” and tell us we were “such cute trick or treaters!” One even pinched my cheek. Then THEY gave US candy, closed their door, picked it up and walked to the next house.
When I worked at Amazon.com we had a deeply-ingrained hatred for all of the SQL databases in our systems. Now, we knew perfectly well how to scale them through partitioning and other means. But making them highly available was another matter. Replication and failover give you basic reliability, but it’s very limited and inflexible compared to a real distributed datastore with master-master replication, partition tolerance, consensus and/or eventual consistency, or other availability-oriented features.