Jach's personal blog

(Largely containing a mind-dump to myselves: past, present, and future)
Current favorite quote: "Supposedly smart people are weirdly ignorant of Bayes' Rule." William B Vogt, 2010

Wolf PAC is worse than useless

I watch The Young Turks since it's a reasonably entertaining way to stay informed about not-very-important-to-me topics so that I have things to smalltalk or argue about with the Commoners. Sure they're biased, but they're biased in only a slightly more way than we all are. They're nowhere near the Fox News style of conscious bias and conscious we-must-say-this-or-else style. They reflect the cultural bias of American upper-middle class society. I also get to select what I want to watch out of the subscription box based on title instead of hoping the next segment is decent, but I digress to a general statement that à la carte entertainment will always beat pre-programmed entertainment in a fair fight. (And even in an unfair fight Netflix is still kicking ass.)

So anyway, TYT sometimes pushes this group they created called Wolf PAC. Please go look at their home page so you get the full context, because I'm going to demolish it in pieces. It's cute, but also harmful. That's what it means to be worse than useless. It's harmful because it's going to fail miserably, destroy wealth (albeit a minimal amount), and crush the hopes and dreams of any supporters it gathers. It also would in all probability be harmful if it actually succeeded.

Our politicians are bought. Everyone knows it. Conservatives know it. Liberals know it. The Democrats are bought. The Republicans are bought. They don’t represent us. They represent their corporate donors who fund their campaigns and promise them well paying jobs after they leave office. We have taxation without representation. Our democracy is in serious trouble.

See Full Post and Comments

Weeder courses: yea or nay?

A lot of schools take pride in having "weeder" courses for various fields that, as the name implies, weed out those students unworthy to pursue the field. Some of the better schools however often have a second track for students who are interested but don't necessarily want to become professionals or professors in the field. But let's pretend we're looking at a program where no alternate track exists. Are weeder courses a good idea?

There are three big problems with weeder courses. The first is that reality is a graph, not a hierarchy. The common assumption underlying the argument in favor of weeder courses is that if those courses cannot be passed, nothing else will make sense. Weeder courses are only in base-level courses without which nothing further can be gained.

This assumption is false in general. Of course for localized special cases it holds: one needs to know addition before multiplication and multiplication before exponentiation and exponentiation before Knuth's up-arrows. But one does not need to deeply (or in some instances not even shallowly) understand the differential or the integral calculi before one can understand fuzzy logic, discrete probability, frequency, combinatorial game theory, number theory, or how to feed instructions to a computer. (How to feed instructions that calculate via differential equations on the other hand... But you don't need to be good at it; the Deep Blue programmers weren't better than Kasparov at Chess, they just needed to understand the basics of how Chess worked.)

See Full Post and Comments

Clojure and jMonkeyEngine Tutorial 2

Another simple translation to Clojure code. There are some repetitions that are popping up that we might want to abstract into functions or macros, but so far it's fairly pedestrian.

As a philosophical side note, defining a new function in Java takes effort. It's no wonder it's not done as much. You have to pick a class to put it in, you have to decide its class-scoping, you have to specify its argument and return types, any thrown exceptions, decide if it should be part of an interface somewhere... In practice, code changes. There's nothing wrong with type checking at compile time, but that's only useful when you're reasonably sure the code being checked isn't going to fundamentally change.

Anyway. Here's the code for tutorial 2:

See Full Post and Comments

Getting started with jMonkeyEngine and Clojure

"I want to write a 3D game in Clojure! But I don't want to bother with raw OpenGL crap, I had my fill of that with Python and PyOpenGL... And I didn't particularly like Panda3D for Python either. I guess I won't be satisfied until I make my own engine one day. But in the meantime, what's a good engine for Java? I remember hearing years ago about something with monkeys..."

That was my thought process a couple weeks ago, and a swift google reminded me of jMonkeyEngine, or JME for short. I had first heard about it back in 2007 or so, but had never played with it seriously. So I figured, why not? Unfortunately I was under some misconceptions that made the introductory period harder. I'll go over the biggest one quickly. JME is better thought of as a collection of libraries rather than a single jar you dump in your project and start building off of. On top of this collection, JME includes a nice IDE and they really want you to use it all together as part of an SDK platform. I really want to use just vim and the command line and treat their stuff as a library. So immediately I'm at odds with the tool, but no matter, it's not impossible to overcome.

Anyway, let's get started, step-by-step. Create your new clojure project with the lein tool:

See Full Post and Comments