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

Thinking In Groups

This is perhaps my least favorite form of religious thinking, simply because it afflicts many an Atheist as well. It's a useful heuristic of classification built into our brains, but nevertheless I also consider it a very harmful bias simply because of all the baggage it carries. Allow me.

Can you spot the difference between these two quotes?

I am a scientist.
I am an Objectivist.

See Full Post and Comments

Power Levels

I realized a few days ago that it's been a bit over a year since I started writing on this blog. Wow, time flies a lot quicker now that I'm older. I still remember the summer after Kindergarten, not because of anything I did, but just because it felt oh so long. And every year after that, time has consistently seemed to go faster than the last.

For the past few years, I've been trying to push myself more, trying to increase my level of knowledge and ability. I've consistently applied my "learn a new programming language / paradigm per year" mentality, which I think is great. I figure I've got at least two or three more languages to go before I can slow down that one.

Brief personal history: I started HTML at the end of 2004, and I consider myself starting to really program in 2005, so by the end of this year I'll have had 5 full years of programming experience. I've learned PHP (the whole LAMP stack), Java (which I'm now really mastering), Python, C, C++ (really mastering later this year), JavaScript, ActionScript, and while I 'know' Scheme and Common Lisp I still haven't finished working through SICP. Still, not bad eh? I've done Assembly and am taking an entire course on it next semester. J, R, and FORTH are on my list of languages to study next.

See Full Post and Comments

Teaching Programming

I've thought a lot about methods of teaching, specifically programming. While I don't immediately see myself writing a book or becoming a teacher, I nevertheless see those as two highish possibilities simply because I think about that sort of stuff a lot.

Reading this post, I found myself agreeing, and I've already had mostly the same thoughts before. Teach by example, not by going through a reference and writing the same math functions over and over.

I've been going to my school the last couple of days for a focused work environment (since working from home sometimes proves to be distracting), and they're doing a summer project for kids where they teach them about using a piece of Software DigiPen developed called Project Fun to make basic video games. The software uses C++ as the main language, but also supports Lua and C#. The kids must use C++.

See Full Post and Comments

Just-in-time Learning

One of my favorite ways of learning is just-in-time learning. That is, you learn something when you need it. Splines are cool and all, but you don't really need to learn them until you're doing something with cubic interpolation. (Like path definitions in video games.)

When I learned about splines, however, I recognized that my just-in-time learning strategy would have failed me, had my other team member not known about splines. Just-in-time learning only works when you have a broad enough knowledge base to know what you need to learn. If you have no idea what sorts of problems calculus can solve, you will not even consider needing to learn calculus to solve a particular problem. Put me back in that situation of ignorance of splines, give me the same problem, and I would have suggested doing some basic Newtonian physics to come up with a standard function for a parabola. But how to unitize it... No clue. It was a problem I was brick walled against, and a spline-less solution would have been inelegant and ugly. It would not have been a good solution. This is why teams can be beneficial: you draw from each other's knowledge pools, and just-in-time-learn the specifics when someone knows generally what is needed.

Also, for a side-note, just-in-time learning isn't for everyone. I suspect my high IQ helps me in this aspect, but people with very average or below average IQ's would struggle to take up my learning methods. IQ is a fairly reliable test to measure how easily a person can learn new things, and the reason they have geometric and pattern matching questions on it isn't because knowledge of such things is more useful than, say, knowledge about car engines, but because humans are known to suck at holding shapes and figures and calculations and patterns in their heads, no matter how smart they are. How well you can do it versus someone else is a key thing the IQ test measures.

See Full Post and Comments

Flex XMLList Set Intersections, Unions, Differences

Here's some code I wrote recently I felt like sharing with the world, just because. Consider it public domain, no warranties, guarantees, etc. Don't know how it will work with XML with children. (Actually it works as expected. These functions and some array-versions I implemented have been quite useful.)


// The following XML set functions are not implemented with efficiency in mind;
// probably best not to use them for large sets.

/**
* var l1:XMLList = new XMLList('<user name="bob" /><user grade="4" name="alice" /><user name="susie" />');
* var l2:XMLList = new XMLList('<user name="alice" grade="4" /><user name="frank" />');
* trace("diff: " + CustomFuncs.XMLdifference(l1, l2).toXMLString());
* trace("union: " + CustomFuncs.XMLunion(l1, l2).toXMLString());
* trace("intersection: " + CustomFuncs.XMLintersection(l1, l2).toXMLString());
* trace("symm diff: " + CustomFuncs.XMLsymmetric_difference(l1, l2).toXMLString());
* (Output:)
* diff: <user name="bob"/>
* <user name="susie"/>
* union: <user name="bob"/>
* <user grade="4" name="alice"/>
* <user name="susie"/>
* <user name="frank"/>
* intersection: <user grade="4" name="alice"/>
* symm diff: <user name="bob"/>
* <user name="susie"/>
* <user name="frank"/>
*/
public static function XMLdifference(list1:XMLList, list2:XMLList) : XMLList {
// list1 - list2 = set of nodes in list 1 minus any that also appear in list2
var diff:XMLList = new XMLList();
for each (var node:XML in list1) {
if (!list2.contains(node)) {
diff += node;
}
}
return diff;
}

See Full Post and Comments

The Perfect Ones

This is a short story I wrote for a class assignment in 11th grade (I think it was to write a Canterbury Tale) that a friend recently dug up to remind me about. She says she likes it, so I'm posting it here unedited. I think it's okayish. I may go back to this world and do a Part Two. Note that while I still share a significant number of the underlying views presented here, my 11th grade self (only a few years ago too!) is almost a completely different person to me now.




There once was a country, larger than any, full of people of all sizes and colors and opinions. The ruling force was well-begun, but by this time the whispers and shadows of its crumbling were near certainty for a large group of people. These people gathered together, discussed the situation, and debated on a course of action. War was no solution, for their country possessed the mightiest troops and machines designed for a hundred years with the sole purpose of killing in masses. Yet nor was a passive resistance the answer, as the government had suppressed many uprisings in the past (with rebel forces far outnumbering their own) and the general population was so deceived and mindless that they did not give a second thought, if they heard of it at all.

See Full Post and Comments

Eminem's New Album Rules

Just throwing that out there. Recovery wins.

I don't even think I have a really favorite song from it, either, because they're all such great tracks. I think I can make a list of my favorite five, maybe, but among those? Not sure how to rank them. I think this is a mark of a great album; with Relapse, Beautiful was clearly the best song, followed by Underground, and the rest were good but not fantastic.

Also, yay flac files!

See Full Post and Comments