## Friday, August 24, 2012

### Algorithms

"For me, great algorithms are the poetry of computation. Just like verse, they can be terse, allusive, dense, and even mysterious. But once unlocked, they cast a brilliant new light on some aspect of computing" - Francis Sullivan

Algorithms.  I think they are fascinating, scary, and, as the author above states, like poetry.  In just a few lines of code, pseudocode, or math, a whole concept and idea can be expressed.  But once you get that a-ha moment of understanding, its a great rush, and can be quite beautiful (see fractals, etc..).  They require (for me at least), multiple readings and deep study to pull out the underlying meaning.  Then putting them to use is another big challenge.  As any computer scientist knows, an algorithm can make the difference between a program that runs, and one that will never finish.

To further my knowledge on algorithms, I've enrolled in the Coursera algorithms class which has so far been pretty good.  I think they are taking a great approach to understanding the algorithm, and having the students implement them.  Thus far my favorite has been Union-Find, of which I'll try to do a writeup of tomorrow.

## Tuesday, February 22, 2011

### Abstraction

We've been learning a bit about Abstraction in my software engineering class.  As part of our assigned reading we had to read the following Wikipedia articles:

http://en.wikipedia.org/wiki/Abstraction_(computer_science)

http://en.wikipedia.org/wiki/Abstraction_inversion

http://en.wikipedia.org/wiki/Encapsulation_(computer_science)

http://en.wikipedia.org/wiki/Specification_(technical_standard)

I also found this article on the Pragmatic Programmer website that I think is pretty good:

http://www.pragprog.com/magazines/2011-02/abstraction

I found the relation between Abstraction & Duplication interesting, as well as putting TDD in the abstraction context as well.

Many of these things seem to also be related to the famous "information hiding" paper from David Parnas:

http://www.cs.umd.edu/class/spring2003/cmsc838p/Design/criteria.pdf

## Thursday, January 14, 2010

### Plato's Theory of Forms and Object Oriented Programming?

I'm taking an Object Oriented programming class and was thinking about how it seems to relate pretty well to Plato's Theory of Forms.  When you define a class its kinda like creating a non-material ideal, but when you actually implement it, then you create the material form.  Or you could think of abstract classes and subclasses of that abstract class in the same way.

## Thursday, March 26, 2009

### OnLive Cloud based video games

OnLive Seems like a really cool idea, play games online from anywhere, no downloads, play the latest games online. Wonder if it will be the game changer its hyped up to be?

## Wednesday, March 25, 2009

### Wolfenstein 3D classic on iPhone

Pretty cool stuff from iD software, John Carmac has released the source code to an implementation to the 'grandfather of fps', Wolfenstein 3D on the iPhone. http://www.idsoftware.com/wolfenstein3dclassic/