Archives

All posts by Joe Helfrich

…don’t even talk about me on Facebook.

I know, Facebook isn’t alone in collecting and collating data on people.[1] But they’re the most obnoxious about it, and the only ones known to keep collecting data on people even after they’ve been told to piss off. Someone tagged me in a photo on Facebook once, so Facebook ‘helpfully’ emailed me about how I should log in to the account they created for me and see who else had tagged me, etc etc. My only option was to tell them to stop emailing me about it; there was no option to delete the account, or to stop them from collecting and using information about me.

Fuck Facebook.

[1] I’m actually in the process of breaking my Google Habit as much as possible: “customized” results for searches are just about useless–I actually had one customized result that hid the result I was looking for–and while Google+ does a lot of things better than Facebook, they also do some really annoying stuff like not let me turn chat off, and have taken the “minimalist interface” theory to absurd extremes.

REVIEW: Think Like A Programmer
(V. Anton Spraul, No Starch Press)

Is it possible to “spoil” a technical book?  Well, if so, here’s your spoiler warning.

The most important lesson from “Think Like A Programmer” is simply this: “when faced with a problem you are unable to solve, you reduce the scope of the problem, by either adding or removing constraints, to produce a problem that you do know how to solve.”  It’s a simple concept that should be engraved on every surface a beginning programmer sees. Learning to do that is possibly the most important part of turning technical knowledge of a programming language into the ability to solve problems with that knowledge.  Every problem can be broken down into smaller pieces, and eventually you’ll get to a point where the problems are simple enough that you can solve them yourself or quickly look up a solution, and then start bolting those solutions together until you have a passable solution to the original problem.  (It may not be the most efficient or bug free code, but writing code is like all other types of writing in one fundamental respect: write something, even if it sucks. You can improve it later, but having a first approximation is the most important part of a project.)

The above quote comes from the first chapter of the book, which focuses on problem solving methodologies rather than actual code.  This was the most useful part of the book for me, not just because it laid out several simple strategies for attacking programming problems, but because it was language agnostic.  The rest of the book, unfortunately, isn’t.

The programming examples in the book are all done in C++, and while they’re usually simple enough that anyone with a basic understanding of modern object oriented programming can follow the examples in the book, being able to attack the problems in that language is a completely different matter.  I was often able to approximate the exercises in languages I am more familiar with, but in doing so, I didn’t always end up solving the same problems that the exercise was supposed to cover.

As a programmer who works mostly with web projects, I would have liked to see more variety in the languages used; it would have only added a few pages to provide code examples in javascript or python or java, in addition to C++. Only a small portion of the book deals with issues that are specific to C++.  But given Spraul’s apparent belief that “real programmers” only use C++ (he writes in the introduction that “C++ is the real deal—it’s programming without training wheels”) such a change seems unlikely.

I review for the O'Reilly Blogger Review Program

Regardless, the book is still worth a read for programmers looking to break that barrier from having learned about programming to actually being able to program something (and probably hugely useful to programmers looking to make that jump in C++), and the first chapter should be required reading for every introductory programming course.  You can buy the book from O’Reilly (and if you sign up for an account on their site first, you can get this book as part of their buy one ebook get one free offer.)

But it never burns the right people.

“Any member of the general assembly who proposes a piece of legislation that further restricts the right of an individual to bear arms, as set forth under the second amendment of the Constitution of the United States, shall be guilty of a class D felony,”

Via TPM

Today is Barack Obama’s second inauguration day.  Four years ago, I sat in a McDonald’s watching it online and wrote this.  Today, I’m in a bagel shop (or at least I was when I started this), but I’m not watching. I’m not celebrating. And I’m not hopeful.

Those of you who know me may have noticed that I was pretty quiet during the election, not just on the blog, but everywhere. The simple fact is, that while he was orders of magnitude better than Mitt Romney, I simply couldn’t bring myself to support Obama. So I didn’t go out and knock on doors. I didn’t pass on much in the way of political information.

I didn’t even vote.

Here’s the bald simple truth: Obama’s political career should have ended in disgrace today.  He shouldn’t have even been the Democratic nominee.  His and his administration’s failures in policy and action are too numerous to give but a partial list of here, and range from disappointing and astonishing to comical.  But ultimately, my decision was made by his failure to close the Guantanamo detention camp, and his failure to conclusively put and end to the United States’ use of torture, and to prosecute those individuals who committed it and those who ordered it.

Continue Reading

I said it wouldn’t be quiet here, and then it was. Because I knew what the next post had to be, and I didn’t want to write it. It’s hard to write something that might cost you friends.