TheJach.com

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

Game Programming in different languages

This is just a thought stub. Game programming is typically done with "C/C++", that is, it's usually a C++ compiler and a few C++ features (like OOP) but is very "C" in general programming and design with many C++ features "off limits". Adherents to this state of affairs are incredibly resistant to change and the suggestion of using a higher-level language is often met with ignorant jeers. As an aside I'll mention Minecraft, which may not be the most performant game, it's still a fun, successful game and is a success story for both Java and OpenGL.

What the adherents generally get right though is that for some things and some games handcrafted C or assembly is necessary. The existence of this is used to claim that certain games are "not possible" in higher level languages. I agree with this claim in general, with some objections. I think a Lisp programmer can create as-performant or more-performant code than a C programmer with less dollar cost for an employer. I also remind all that languages suitable for game programming are Turing-complete, and what one can do so can another, but this is ignoring other constraints such as economics. If it takes you a decade to write or run a program in one language, but only a month for a second language, the program in the first language is by most intents "not possible" even if it exists.

What I want to flip around on the adherents is that there are some things and some games that are "not possible" in C or C++.

See Full Post and Comments

Dropping like flies

This was a debate with a housemate, my assertion is that the "greats" of famous people, or in general "important people", have started to drop like flies at an increasing rate over the past couple of years, and that this decade is going to be a bloodbath. So here is some research using Wiki's lists, where an "important person" who has died is defined as a person I determine at this moment to have been great or important.

For an adequate sample, let's start in 2006. The greats who died during that year are: Steve Irwin (September, not old (i.e. younger than 60)), Rob Levin (September, not old).

2007: None.

See Full Post and Comments

Clojure and jMonkeyEngine Tutorial 3

I apologize for not continuing these in a timely manner, a lot has been going on. Update: 4 and 5 completed.

Here's a link to the official tutorial 3.

Here's the translated Clojure code:

See Full Post and Comments

Citizen of the Internet

Many fancy themselves citizens of the world. I think they just haven't traveled far enough. The sentiment of anti-nationalism is a fine one to hold, but I know I'd rather be safe and sound in my American home than wondering when the rebels (or pro-government forces) will decide on a whim to sack my dwelling in Syria. I'd rather be able to argue with local missionaries about the very concept of god than be wondering what my method of execution will be if my neighbors in Egypt learn that I have rejected Islam.

I'm not proud to be an American, and while there are many explicit and implicit bounds placed over US citizens, I'm still more free, overall, than those in the rest of the world. It's sad that it's the case, but where else is economic, government, and personal freedom so favored to the individual but in America? The former British colonies that did not rebel still follow a very British style of government and allowance. In Australia you cannot own or import a decently powered green laser. Why? Because people were flashing them at airplanes as they were landing--which in America would result not in banning the device, which is used responsibility by thousands, but by apprehending the pranksters. Europeans as a whole are fully socialist now, especially the Eastern European countries like Hungary that at this point are essentially communist in their ideology, if not quite totalitarian enough to resemble Leninism and Stalinism. In the US, you are more capable than ever of starting your own business and building almost anything you desire. If you work hard and are lucky you can even create a billion dollar business, but while those are rare a modest income isn't too hard to achieve. In Israel, citizens are forced to join the military for 3 years (male) and 2 years (female). (Without debating the merits of such a requirement--I think it probably makes sense for Israel and its people--the US has "selective service" which, except in times of crisis, means it is voluntary to join the military.) Most of the world's countries are tiny, which makes travel outside the borders difficult and/or annoying, while in the US travel between states is as easy as driving over the border. If I am physically assaulted in the US, the police are available and I can have my justice.

Well, not in all parts of the US, but the ones that matter. In the US it's very easy to move if you don't like where you are, and there are helpful, charitable people everywhere if you need a little help.

See Full Post and Comments

Vim's learning curve is wrong

This image has been around for years:
learning curve

(I actually found this blog post while searching for the image, it's worth a quick read but touches on a different point.)

Here's my first complaint. The axes aren't labeled. Well, I guess that's better than being incorrectly labeled, since now you have a chance to interpret it correctly. The horizontal axis being time is usually a good guess, and in this case is correct. (Which is why emacs is funny.) Learning curves are fairly arbitrary anyway. I think that they're supposed to measure the rate at which one acquires knowledge or ability, the rate at which one learns. They're supposed to measure velocity. Typically, however, creators of graphs intend them to measure either difficulty, frustration, or total ability or amount learned, with perhaps specific pieces of knowledge along the way. They represent your position. Position where? On some path to total mastery. In the above graph, we have a lot of interpretations to work with. I'm going to present the Proper Interpretation of each editor, which is the interpretation I chose for this post, and then explain why vim's is wrong no matter how you look at it.

See Full Post and Comments

Apache's Common Log Format Datetime converted to Unix Timestamp with C++

The datetime in Apache's log format looks like this: day/month/year:hour:minute:second zone. It usually has wrapping brackets but I'm assuming those have been taken care of. The datetime format has a standard name but I don't remember it right now. An example would be "04/Apr/2012:10:37:29 -0500".

This is great for displaying to humans but annoying to pass around to computers, so let's convert it to a Unix timestamp that is simply the number of seconds since the Unix epoch, i.e. 1970-01-01 00:00:00 +0000. Notice that since the simple seconds timestamp has no time zone information, that information will be lost.

The code, released in public domain (I don't think one could assert copyright over this anyway):

See Full Post and Comments

Dumb patent of the month: Emotional Context

Okay, I'm not even sure if this is a real patent or not: http://www.patentauction.com/patent.php?nb=7385 It's a "Method of Adding Emotional Context to Electronic Messages". They want $10,000 for a license, but it comes with a free dotcom domain name!

The "patent number" referenced doesn't lead anywhere searching with Google or the US patent search, so who knows if this is real. It wouldn't surprise me. The site itself is probably a scam site, it looks pretty shady to me, but I have no idea. Anyway, let's just look at it and mock it. (I could have picked the Linked List patent or the Cat Chasing Laser patent if I wanted a real patent, but those have been mentioned before. I'll try harder next month if I remember. (Not that it's hard to find a bogus patent in any field that should never have been granted.))

This patent is nothing but an assertion of monopoly rights over how to style text to convey emotion. Luckily my use of italics there doesn't violate it, as we shall see.

See Full Post and Comments