Saturday, March 29, 2008

Your Vote Matters

This being a presidential election year, I wanted to point out that your vote matters. Consider the following:

Friday, March 28, 2008

The World, It's a Changin'

So, my friend just alerted me to this:



That's an amazing microcosm of how the world is changing: virtual economies, user-generated content, the resurgence of vaudeville (online), mashups


All very good things, IMHO.

Why C++ is bad

Eric Naggum made a good post on his beliefs about why C++ is a bad language. It's relatively inflammatory in tone, but the points are great.

  C++ is philosophically and cognitively unsound as it forces a violation
of all known epistemological processes on the programmer. as a language,
it requires you to specify in great detail what you do not know in order
to obtain the experience necessary to learn it. C++ has taken premature
optimization to the level of divine edict since it _cannot_ be vague in
the way the state of the system necessarily is.
also:

in other words, a C++ programmer is _required_ by language design to express 
certainty where there _cannot_ be any.
I agree with this. C++ forces the programmer to "cut up the world" into kinds (natural) before she has enough knowledge about the system in question to do so. Naggum's observation that this unjustified categorization is then forced by the language to be blended with justified categories is interesting. Epistemologically, this eliminates all justification whatsoever. Relegating solutions in the language that seem so strong and well specified to nothing more than guesswork. How do you know what needs done, if you don't know what you're operating on?

In order to gain the necessary knowledge, we have to run experiments. In testing the vague ideas directly, the programmer can ferret out unwarranted assumptions early. Much like scrolling in a google map which is zoomed all the way out. In the C++ world, the programmer does not have the option to zoom out. Essentially, C++ makes the solution-space of a problem much, much, larger.

Wednesday, March 26, 2008

It might be time to leave Florida soon...

A region of ice in Antarctica is breaking up. It's area is 570 square kilometers, which in the grand scheme of things is not large. The problem is that the loss of this ice creates a threat to the Wilkins ice shelf. This ice shelf is 3250 square kilometers, and if it goes sea level could rise by 5 to 10 meters.

From the article:
As of the 2001 IPCC report, scientists believed that the West Antarctic Ice Sheet was unlikely to collapse in the next 1000 years.

Saturday, March 22, 2008

The Black Swan

I'm currently reading a book called The Black Swan, by Nassin Nicholas Taleb. I'm reading it for a few reasons. Taleb has some very interesting things to say about induction; it can be a dangerously misleading form of reasoning in certain domains. This is fascinating, because one of the popular epistemological theories today, Bayesianism, is is entirely dependent upon the notion of induction. Another reason that this is interesting is that all science (aside from mathematics, if it is a science at all) rests upon the assumption that inductive reasoning is sound.

The reason why I'm reading this book now, in the middle of the semester, is because I have an epistemology term paper to write. I would have read it in any case, since this is a subject that has fascinated me for years. Any of my close friends will tell you that I have a pet lunacy/theory about what I like to call "Introspective Systems." In a nutshell, that it is impossible to predict their behavior. I have been unsuccessful in making this concrete, and that's why I'm now attending RPI. The systems that exist in what Taleb calls "Extremistan" are all instances of what I would call "Introspective Systems." Interestingly, Taleb claims that induction is dangerous in "Extremistan."

So, if you are interested, keep a feed reader tuned here. As I dig into my term paper, I will be posting some of my work--a sort of open serialized rough draft.

NOTE: The induction that I refer to above is not mathematical induction. Mathematical induction (both strong and weak) is a deductively sound method of reasoning. It does entail its results.

Thursday, March 20, 2008

Funny!

So, I just heard this:

Bob: Punani

Alice: Why do you say that?

Bob: Because I just looked at your Noni.

I may or may not have been a part of that conversation ;-), but is was about Noni juice, nothing else...

Wednesday, March 19, 2008

Object Orientation

Why is Object Orientation a buzz word?

I had an interview today, and I was asked to explain my technical background. I zipped through and talked about my experience. I talked about my work on web sites, Mozilla and especially XPCOM, but I never once said "object oriented," or "polymorphic," or "encapsulation," or "inheritance." But these things should go without mention... especially when the candidate has spoken of XPCOM.

So, later the interviewer mentioned object orientation in a manner which hinted that he had been expecting to hear those words. I was thinking something like: "christ, if mentioning any variety of COM doesn't count as 'object oriented,' then I don't know what does." Mentioning COM is like mentioning Java. The very next thought that should be triggered in the listener's head should be "Gah!! Too much OOP!" or, alternatively, "Gah!! The wrong way to do OOP!"

That said, I think the interview went well. Much more went on than just our discussion, or lack thereof, object orientation. Such as discussing PHP, MySQL and various web programming techniques.

Another thing mentioned in passing: Agile development. They brought it up as if it were supposed to perk my ears up and cause salivation, much like the Pavlovian bell. While agile is better than some methodologies, I'm sure, methodology is methodology. Methodology is an "ology" like theology, not biology. The former sort of "ologies" are more likely to cause dogmatic thinking than insightful thinking. For crying out loud, agile has a manifesto! That does not bode well. Of course, I've never been on an agile team, so take my words with a grain^H^H^H^H^H few pounds of salt. Check out this for more.


P.S. - Agile's Manifesto does say a lot of nice things. Too bad many movements which start out on the right path get corrupted.

Sunday, March 16, 2008

An Idea Worth Spreading

Neuroanatomist Jill Bolte Taylor shares her experience of having a stroke:

And in that moment my right arm went totally paralyzed by my side. And I realized, "Oh my gosh! I'm having a stroke! I'm having a stroke!" And the next thing my brain says to me is, "Wow! This is so cool. This is so cool. How many brain scientists have the opportunity to study their own brain from the inside out?"


Thursday, March 13, 2008

libnotify is evil

While I can understood the logic behind libnotify and its various cousins, I'll never know why would anyone want their computer to jump up and irritate them for reasons as unimportant as the availability of a software update. And now this nonsense is coming to an emacsen near you. Of course this isn't in the official emacs distribution, but still... I feel the sanctity of emacs has been violated (tongue firmly in cheek hah!).

I won't pretend to know the first thing about HCI. I guess it's reasonable to destroy the user's concentration with a pop-up if the laptop is about to run out of power, but most things (like software updates) could make due with an interface which functions more like email. Let there be an inbox which accumulates new messages which I can check at my leisure.

Machines should not jump up and down and yell and scream at their users at the drop of a hat.

Wednesday, March 12, 2008

An Emacs Lisp Heap

For those who are interested in trivial snippets of code written in relatively obscure languages, here's a heap written in emacs lisp.


Enjoy!

Wednesday, March 5, 2008

Holy Monkeys!

Mozilla is one amazing project:

Dehydra:
* look at what Benjamin Smedberg has to say about it
* Just want to point out that this is another instantiation of "code is data"
* This is only be within the realm of possibility because GCC is open... open source is good

Ok, I'll get off my soap box.

Data is Code

I was just reading a post by David Humphrey. In it he speaks about a visit Mike Shaver (of Mozilla fame) paid his class. Here's an interesting excerpt:
I also enjoyed one off-hand comment he made in response to a question about design patterns in the code. “Increasingly,” he said, “the patterns in Mozilla borrow more and more from the web itself.” I’ve been reflecting on this same point a lot lately, namely, that unlike most applications that tightly house data within structured silos, Mozilla invites its data to cross the application boundary and become part of its inner-being. The web isn’t something that Mozilla renders. Mozilla is a part of the web itself.
It's very interesting seeing the "data is code; code is data" meme spreading around the net. Even if it's spread is slow.

If you want to learn on a more about this concept, let me suggest this lisp tutorial, this classic, and of course this.