June 2013
12 posts
An illustrated collection of (sometimes violent) fables, concerning the Art and Philosophy of software development
This is what I get for wanting consistency in teaching. Thanks, reality for hitting me with a frozen cod.
Npr’s article is oddly saddening. Their tumblog is amazing.
My friend Hugh Daniel passed away today.

Hugh speaking at SANE 2002 on IPSec
Hugh was one of my heros. He was also, in a certain way, family to me. I’ve known hugh for all I’ve been alive — my father met him several years before I was born and I’ve known hugh since I can honestly remember remembering. Hugh was both srs teacher and lulzy dude.
Anyone can look up his technical achievements. He worked on IPSec and WaveSec, built some things I only dreampt of doing.
What I will always remember him for is the conversations he taught me things in. He taught me that yes, you might not want to do something that’s assigned to you, but that you can do it in your own interesting way. He taught me that there’s no reason to judge someone just by what they act like In one single situation.
He taught me what it was to be a hacker. To me, hacker will always be synonymous with him. He taught me what it meant to always ask “Well, what the fuck am I doing wrong?” — A question few of the “Linux Children” he so vehemently disagreed with so often.
He encouraged me to constantly ask questions, but to also try new things. there were no bounds, nothing that couldn’t be asked around him.
He was (like many cypherpunks) a serious, hardcore libertarian. He’d rant about guns, corporations, High Profit Corn Syrup, and just about anything else. I enjoyed his rants for some odd, twisted reason. They provided a certain balance to the otherwise conservative world I’ve lived in for many years (thanks, public school system!)
He encouraged me to do things with LInux. It wasn’t hard to get me interested, and it sparked me asking “what can Linux do better?”. I’ve now used multitudes of distributions, seen the 2.4 to 2.6 to 3.0 transitions in the kernel. I’ve compiled systems nearly from scratch,
His enthusiasm for life knew no bounds, either. Every single child of any of his friends was his friend too, and rarely did I hear him unduly about anyone; his life was that of someone who understood life is so precious
So thanks, Hugh.
Shine on, you crazy diamond.
May 2013
5 posts
I was taken aback earlier today. one of the founders of Google was all “Teenagers can’t erase their past and its scary”
Let me just sum this up: Not even adults can do that. Take this (completely safe, and useful) posting from 1993 bY Tomohiko Sakamoto, a Sony JP employee who answered a simple question on how to determine the day of the week.
twenty years later, I’m referencing it for a homework assignment.
Go internet. You record the world.
I occasionally take classes on a lark. I’m not the kind of bro to just pass off a class because I disagree with the content (because learning new things = being good hacker). However, one class I am quite nearly willing to wish got tossed into the heart of the sun. Surprisingly, not because of the subject matter but because of the method of teaching. In my case, its c++. I hold c++ close to me because it has fundamentally created that which I live on top of nearly every day. I know enough of the base c++ feature set and language rules to understand what its doing under the hood. But when I have to actually hold my tongue at the shockingly horrible way I have seen it taught, there is something wrong. At the college I go to, c++ is taught in three semesters. This “plural semester” approach is used for Java too (two semesters) and .Net (.net one is vb or c#, but .net two is all c#). I don’t disagree that c++ is huge and needs several classes to properly teach. The problem is with the content of the classes in relation to how they are taught. I’m going to pick out some gems from today, day 1:
* let’s go over functions and how they work
* does everyone remember what a pointer is?
* why would you use a reference vs a pointer? (Answer: you don’t need a * when you use a reference, so use them for all your manipulation pointers.)
* let’s explain that whenever you use printf or scanf, you get docked points!
* we won’t cover `struct`s until later, as they are fundamentally unnecesary things that only exist because of C’s influence on bjarn. But the crowning gem has to be… > I don’t know any c. I don’t ever want to know c. C++ does everything without any of the cruft c brings along.
You’re teaching c++ for crissakes. C++ is by definition a superset of c. I can hear dmr churning in his grave, wishing he’d deref’d `null` sooner. It is possible to gloss over much of what make c++, well, ++, it is horrifically ignorant to not understand what some of the things that make c++ tick. I accidentally picked up the wrong book for the class. The book I got was *c++ and data structures*, a fabulous book that spends the first chapter talking about the whole problem of how to even approach software development, then says “let’s talk about structs. They’re so awesome, they beat out classes in efficiency”. It honestly is the book I wish the class was using.
Instead the book is *c++ programming today*, a book I have seen erratas for that span notebooks. A book of this caliber is supposed to be proofread, not just for consistency but for style and tone. It has one subchapter at the end for structs. It doesn’t even touch what the difference is. I’m currently also fighting that I use make and clang. My instructor wants only visual c++ projects. She also loves the bullschildt book as a “really accurate reference”. I’m working hard not to attack this instructor on a personal level. There are some nice things about her, but her understanding of what is going on is lacking.
This speaks to a deeper philosophical problem within the college system that I am a part of: the classes are fundamentally not well laid out often in this department and often the instructors are poorly knowledgeable in their field. I have no confidence in the quality of this course as a result. A zen like example is cout and bit shifting. Outputting two integers to cout may well result in the first integer being bit shifted by the second one thanks to the chaining syntax. It becomes ambiguous. C++ is fundamentally inelegant and nobody in the room wants to admit it.
Not that I’m nitpicking on C++ here. Its a language and the fact I’m complaining about it means something was done right.