Coding Horror: Paying Down Your Technical Debt
http://www.codinghorror.com/blog/archives/001230.html
Technical Debt is a wonderful metaphor developed by Ward Cunningham to help us think about this problem. In this metaphor, doing things the quick and dirty way sets us up with a technical debt, which is similar to a financial debt. Like a financial debt, the technical debt incurs interest payments, which come in the form of the extra effort that we have to do in future development because of the quick and dirty design choice. We can choose to continue paying the interest, or we can pay down the principal by refactoring the quick and dirty design into the better design. Although it costs to pay down the principal, we gain by reduced interest payments in the future.
Interesting!Coding Horror: The Eight Levels of Programmers
via @indrayam FF post
프로그래머에 관한 이야기Coding Horror: Software Engineering: Dead?
Very Interesting
Software Engineering: Dead?Coding Horror: Nobody Hates Software More Than Software Developers
We work at the sausage factory, so we know how this stuff is made. And it is not pretty. Most software is created by bad programmers like us (or worse!), which means that by definition, most software sucks.
"One of the (many) unfortunate side effects of choosing a career in software development is that, over time, you learn to hate software. I mean really hate it. With a passion. Take the angriest user you've ever met, multiply that by a thousand, and you still haven't come close to how we programmers feel about software. Nobody hates software more than software developers. Even now, writing about the stuff is making me physically angry. "Coding Horror: All Programming is Web Programming
are two reasons for thiCoding Horror: 9 Ways Marketing Weasels Will Try to Manipulate You
A great review of Predictably Irrational - the hidden forces that shape our decisions by Dan Ariely. Why we act the way we do when we buy and how we are constantly manipulated by companies and advertisers. The question we have is will this change because of social media?
"7. Capitalize on our Aversion to Loss" - : - A good reason for subscriptions to have multiple levels
# f what you've spent so far on a service, product, or relationship -- in effort or money -- is probably far less than you think. Be willing to walk away. # Once you've bought something, never rely on your internal judgment to assess its value, because you're too close to it now. A
It's a fascinating examination of why human beings are wired and conditioned to react irrationally. We human beings are a selfish bunch, so it's all the more surprising to see how easily we can be manipulated to behave in ways that run counter to our own self-interest. This isn't just a "gee-whiz" observation; understanding how and why we behave irrationally is important. If you don't understand how these irrational behaviors are triggered, the marketing weasels will use them against you.Coding Horror: How Not to Advertise on the Internet
Evony, thanks for showing us what it means to take advertising on the internet to the absolute rock bottom ... then dig a sub-basement under that, and keep on digging until you reach the white-hot molten core of the Earth. I've always wondered what that would be like. I guess now I know.
Advertising how bad can it go? How not to do advertising
Coding Horror progression of breast presence in Evony's internet ads boobs.
Gods, I remember seeing these a while back. Protip: If you ads make me feel like I need a shower after viewing them, YOU'RE DOING IT WRONG.
Apparently that ad didn't perform up to expectations at Evony world HQ, because the ads got progressively ... well, take a look for yourself. These are presented in chronological order of appearance on the internet.
クリックレートを追求いった結果のバナー
The (d)evolution of Evony.com's godawful, ridiculously sexist ad campaign.Coding Horror: The State of Solid State Hard Drives
\(?\bhttp://[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_()|]
Handy regex to extract URLs in text (break when followed by paren, includes https) "\(?\bhttps?://[-A-Za-z0-9+&@#/%?=~_()|!:,.;]*[-A-Za-z0-9+&@#/%=~_(|] "
URLs are simple things. Or so you'd think. Let's say you wanted to detect an URL in a block of text and convert it into a bona fide hyperlink. No problem, right?Coding Horror: Are You An Expert?
It troubles me greatly to hear that people see me as an expert or an authority, and not a fellow amateur. If I've learned anything in my career, it is that approaching software development as an expert, as someone who has already discovered everything there is to know about a given topic, is the one surest way to fail. Experts are, if anything, more suspect than the amateurs, because they're less honest. You should question everything I write here, in the same way you question everything you've ever read online -- or anywhere else for that matter. Your own research and data should trump any claims you read from anyone, no matter how much of an authority or expert you, I, Google, or the general community at large may believe them to be.
Great Zen post about being an expert.
"Being an expert isn't telling other people what you know. It's understanding what questions to ask, and flexibly applying your knowledge to the specific situation at hand. Being an expert means providing sensible, highly contextual direction." Exactly.
This is an excellent meditation on what makes a real expert.Coding Horror: The Problem With Logging
Logging level definition
A recent Stack Overflow post described one programmer's logging style. Here's what he logs:Coding Horror: Sharing Files With BitTorrent
Sharing files with BitTorrent is way more complicated than downloading them! After two frustrating hours, I finally came up with a relatively straightforward way to share a file via BitTorrent, and in the interests of saving future readers a little time, I'm documenting it here.
Publishing your own torrent file using uTorrent
"I've been a happy consumer of files distributed via BitTorrent for years; it was only natural that I would turn to BitTorrent to distribute our cc-wiki licensed Stack Overflow data. I figured serving a several-hundred megabyte file with BitTorrent wouldn't be much harder than downloading one. Boy, was I ever wrong. Sharing files with BitTorrent is way more complicated than downloading them! After two frustrating hours, I finally came up with a relatively straightforward way to share a file via BitTorrent, and in the interests of saving future readers a little time, I'm documenting it here... Anyway, you can't start sharing files on LegalTorrents without some kind of special email-us-please permission, and I was in a hurry. I wanted to share files via BitTorrent right now. I did, and you can too! But you'll need a few things first: "
"I've been a happy consumer of files distributed via BitTorrent for years; it was only natural that I would turn to BitTorrent to distribute our cc-wiki licensed Stack Overflow data. I figured serving a several-hundred megabyte file with BitTorrent wouldn't be much harder than downloading one. Boy, was I ever wrong. Sharing files with BitTorrent is way more complicated than downloading them! After two frustrating hours, I finally came up with a relatively straightforward way to share a file via BitTorrent, and in the interests of saving future readers a little time, I'm documenting it here... Anyway, you can't start sharing files on LegalTorrents without some kind of special email-us-please permission, and I was in a hurry. I wanted to share files via BitTorrent right now. I did, and you can too! But you'll need a few things first: "
This post briefly explains how to share content using BitTorrent which is a far more complex process than consuming torrents.Coding Horror: The iPhone Software Revolution
"I truly feel that the iPhone is a key inflection point in software development. We will look back on this as the time when "software" stopped being something that geeks buy (or worse, bootleg), and started being something that everyone buys, every day. You'd have to be a jaded developer indeed not to find something magical and transformative in this formula, and although others will clearly follow, the iPhone is leading the way."
There's always been a weird tension in Apple's computer designs, because they attempt to control every nuance of the entire experience from end to end. For the best Appletm experience, you run custom Appletm applications on artfully designed Appletm hardware dongles. That's fundamentally at odds with the classic hacker mentality that birthed the general purpose computer. You can see it in the wild west, anything goes Linux ecosystem. You can even see it in the Wintel axis of evil, where a million motley mixtures of hardware, software, and operating system variants are allowed to bloom, like little beige stickered flowers, for a price. But a cell phone? It's a closed ecosystem, by definition, running on a proprietary network. By a status quo of incompetent megacorporations who wouldn't know user friendliness or good design if it ran up behind them and bit them in the rear end of their expensive, tailored suits. All those things that bugged me about Apple's computers are utter non-issue
Proot
para la nota del "ifone" :PCoding Horror: How to Motivate Programmers
How do motivate programmers? Depends on the kind of programmers you have. "Don't try to race sheep, Don't try to herd race horses". With the right level of programmers, peer pressure is the key, and you should lay off the guidelines and rules. Contrawise, with other developers, maybe my "peer pressure" approach won't work as well.Coding Horror: Beyond RAID
"RAID" is now used as an umbrella term for computer data storage schemes that can divide and replicate data among multiple hard disk drives. The different schemes/architectures are named by the word RAID followed by a number, as in RAID 0, RAID 1, etc. RAID's various designs all involve two key design goals: increased data reliability or increased input/output performance. When multiple physical disks are set up to use RAID technology, they are said to be in a RAID array. This array distributes data across multiple disks, but the array is seen by the computer user and operating system as one single disk.Coding Horror: Why Do Computers Suck at Math?
=850*77.1
"Computers are supposed to be pretty good at this math stuff. What gives? How is it possible to produce such blatantly incorrect results from seemingly trivial calculations? Should we even be trusting our computers to do math at all?"
"Computers are awesome, yes, but they aren't infinite.. yet. So any prospects of storing any infinitely repeating number on them are dim at best. The best we can do is work with approximations at varying levels of precision that are "good enough", where "good enough" depends on what you're doing, and how you're doing it. And it's complicated to get right."Coding Horror: Finishing The Game
"This problem, although seemingly simple, is hard to understand. For cognitive reasons that are not fully understood, while our intuitions regarding a priori possibilities are fairly good, we are easily misled when we try to use probability to quantify our knowledge. This is a fancypants way of saying there were almost a thousand comments on that post, with not a lot of agreement to be found. "
someone who told you they had two children, and one of them is a girl. What are the