Why I Hate Frameworks

“Well, the problem with hammers is that there are so many different kinds. Sledge hammers, claw hammers, ball-peen hammers. What if you bought one kind of hammer and then realized that you needed a different kind of hammer later? You’d have to buy a separate hammer for your next task. As it turns out, most people really want a single hammer that can handle all of the different kinds of hammering tasks you might encounter in your life.”

Source: The Joel on Software Discussion Group (CLOSED) – Why I Hate Frameworks

HTTP/2.0 – The IETF is Phoning It In

The reason HTTP/2.0 does not improve privacy is that the big corporate backers have built their business model on top of the lack of privacy. They are very upset about NSA spying on just about everybody in the entire world, but they do not want to do anything that prevents them from doing the same thing. The proponents of HTTP/2.0 are also trying to use it as a lever for the “SSL anywhere” agenda, despite the fact that many HTTP applications have no need for, no desire for, or may even be legally banned from using encryption.

via HTTP/2.0 – The IETF is Phoning It In – ACM Queue.

History has shown overwhelmingly that if you want to change the world for the better, you should deliver good tools for making it better, not policies for making it better. I recommend that anybody with a voice in this matter turn their thumbs down on the HTTP/2.0 draft standard: It is not a good protocol and it is not even good politics.

Anthropomorphism Gone Wrong: Poor Motivating Example for OOP

I’d like to show an example of anthropomorphism gone wrong. It was given to me as a classic justification of why so called “Object Oriented Programming” is better than procedural programming. You may have learned it in your first lesson about OOP.

(Note: I’m not disparaging OOP here, just the example. For genuine OOP bashing, see here.)

via Anthropomorphism Gone Wrong: Poor Motivating Example for OOP.

From slashdot comments that I found funny:

Lets say you’re a traveling auto salesman, and you would like to sell your cars to different stores around the state. You could either drive each car, one at a time, to each assigned destination and hitchhike back to your starting point (always with a towel). Or you could come up with an algorithm for taking all the cars, putting them into a truck, and finding the shortest path that visits each auto store, saving gas and giving you the street credibility to comment on the appropriateness of OOP vs procedural languages. Then, after having spent a more fulfilling life than most people by being so efficient, you can watch as people invoke your name, and come up with a poor analogy which doesn’t really explain OOP vs procedural languages that shows up on Slashdot.

Why the above was funny?  See this wiki article on Dijkstra’s algorithm which the first quoted editorial used as a source:

Dijkstra’s algorithm, conceived by computer scientist Edsger Dijkstra in 1956 and published in 1959,[1][2] is a graph search algorithm that solves the single-source shortest path problem for a graph with non-negative edge path costs, producing a shortest path tree. This algorithm is often used in routing and as a subroutine in other graph algorithms.

How Laws Restricting Tech Actually Expose Us to Greater Harm

Code always has flaws, and those flaws are easy for bad guys to find. But if your computer has deliberately been designed with a blind spot, the bad guys will use it to evade detection by you and your antivirus software. That’s why a 3-D printer with anti-gun-printing code isn’t a 3-D printer that won’t print guns—the bad guys will quickly find a way around that. It’s a 3-D printer that is vulnerable to hacking by malware creeps who can use your printer’s “security” against you: from bricking your printer to screwing up your prints to introducing subtle structural flaws to simply hijacking the operating system and using it to stage attacks on your whole network.

via How Laws Restricting Tech Actually Expose Us to Greater Harm | WIRED.

This amounts to a criminal sanction for telling people about vulnerabilities in their own computers. And because today your computer lives in your pocket and has a camera and a microphone and knows all the places you go; and because tomorrow that speeding car/computer probably won’t even sport a handbrake, let alone a steering wheel—the need to know about any mode that could be exploited by malicious hackers will only get more urgent. There can be no “lawful interception” capacity for a self-driving car, allowing police to order it to pull over, that wouldn’t also let a carjacker compromise your car and drive it to a convenient place to rob, rape, and/or kill you.

Things You Should Never Do, Part I – Joel on Software

There’s a subtle reason that programmers always want to throw away the code and start over. The reason is that they think the old code is a mess. And here is the interesting observation: they are probably wrong. The reason that they think the old code is a mess is because of a cardinal, fundamental law of programming:

It’s harder to read code than to write it.

via Things You Should Never Do, Part I – Joel on Software.

Each of these bugs took weeks of real-world usage before they were found. The programmer might have spent a couple of days reproducing the bug in the lab and fixing it. If it’s like a lot of bugs, the fix might be one line of code, or it might even be a couple of characters, but a lot of work and time went into those two characters.

When you throw away code and start from scratch, you are throwing away all that knowledge. All those collected bug fixes. Years of programming work.

Robot Arm Will Install New Earth-Facing Cameras On The Space Station

TORONTO, CANADA – Canada’s robotic Canadarm2 will install the next two Urthecast cameras on the International Space Station, removing the need for astronauts to go outside to do the work themselves, the company announced today (Sept. 30).

Urthecast plans to place two Earth-facing cameras on the United States side of the station (on Node 3) to add to the two they already have on the Russian Zvezda module. Technical problems with the cameras forced the Russians to do an extra spacewalk to complete the work earlier this year.

via Robot Arm Will Install New Earth-Facing Cameras On The Space Station.

Gaining experience by doing and then figuring out how to automate that in space is the main reason for having a space station.   This station is a valuable resource for all of mankind.

Ed, man! !man ed

When I log into my Xenix system with my 110 baud teletype, both vi and Emacs are just too damn slow. They print useless messages like, ‘C-h for help’ and ‘“foo” File is read only’. So I use the editor that doesn’t waste my VALUABLE time.

Ed, man!  !man ed

via Ed, man! !man ed- GNU Project – Free Software Foundation (FSF).

When IBM, in its ever-present omnipotence, needed to base their “edlin” on a Unix standard, did they mimic vi? No. Emacs? Surely you jest. They chose the most karmic editor of all. The standard.

Ed is for those who can remember what they are working on. If you are an idiot, you should use Emacs. If you are an Emacs, you should not be vi. If you use ED, you are on THE PATH TO REDEMPTION. THE SO-CALLED “VISUAL” EDITORS HAVE BEEN PLACED HERE BY ED TO TEMPT THE FAITHLESS. DO NOT GIVE IN!!! THE MIGHTY ED HAS SPOKEN!!!

Level 3’s Selective Amnesia on Peering

Fortunately, Verizon and Netflix have found a way to avoid the congestion problems that Level 3 is creating by its refusal to find “alternative commercial terms.” We are working diligently on directly connecting Netflix content servers into Verizon’s network so that we both can keep the interests of our mutual customers paramount.

via Level 3’s Selective Amnesia on Peering | Verizon Public Policy.

Former FCC Commissioner: “We Should Be Ashamed Of Ourselves” For State of Broadband In The U.S.

He led off by agreeing with the several executive speakers that true competition is the way of the future, and the best way to serve consumers. “But we haven’t given competition the chance it needs,” he continued, before referring to how poorly U.S. broadband compares on the global stage. “We have fallen so far short that we should be ashamed of ourselves. We should be leading, and we’re not. We need to get serious about broadband, we need to get serious about competition, we need to get serious about our country.”

via Former FCC Commissioner: “We Should Be Ashamed Of Ourselves” For State of Broadband In The U.S. – Consumerist.

This Time, Get Global Trade Right

But the administration’s rationale for secrecy seems to apply only to the public. Big corporations are playing an active role in shaping the American position because they are on industry advisory committees to the United States trade representative, Michael Froman. By contrast, public interest groups have seats on only a handful of committees that negotiators do not consult closely.

via This Time, Get Global Trade Right – NYTimes.com.