Writing Readable Code

Writing readable code is something you don't really see. After all, it's code. Take HTML for example. Lots of strange tags to remember, formatting, and lots of trial and error. HTML/XML isn't really the most readable thing.

Why I write open-source code

Recently, I have joined the development team of Citizens, a widely-used server mod for Minecraft. The code for Citizens is open-source, meaning that anyone can view it, fork it, modify it, or even make money off of it. From a business standpoint, I am working for free. Why would I do this?

On the Potential of Computational Creativity

In the 19th century, Ada Lovelace, the world's first programmer, stated that computers, while they could do a lot, could never become creative. Computers, after all, were just algorithms. But today, computers have become so powerful that it seems almost inevitable that computers will become creative. In the movies, we see AI building new robots and creating better programs. But is this all just science fiction? Could we make a computer act like a human brain, creative and all?

Leaves vs. Children

While children are the elements of the next generation of a tree, leaves are at the very end of the tree nodes. Compare it to an analogy of an oak tree. The points where the branches come off are the children, but the leaves are the individual leaves on the tree.

Cordelia: A command-line program to test you on your Shakespeare

In English class, we have an assignment to memorize a bit of a Shakespeare play. I, bored, wrote up a simple program in about an hour to test you on how well you know the individual lines of a text file. If you don't specify a file, it defaults to the first part of the famous St. Crispen's day speech in Henry V. Here's a link to the Bitbucket project: https://bitbucket.org/simplyianm/cordelia. You can download cordelia-0.0.1-SNAPSHOT at that site. The program is  contained within a zip file. For Windows users, double click the run.bat file. For Mac users, it's a little trickier -- navigate to the directory where the unzipped files are in Terminal and type in "sh run.sh". For Linux, run the sh file. (I haven't used Linux in a while so I don't know the exact process)

A Comparison of Animal Farm and Lord of the Flies

Animal FarmAt times, the authority of a group of people becomes displaced due to discontent among the populace.  When this vital authority is removed, another one must take its place in governing the body.  George Orwell and William Golding both illustrate different outcomes of such a situation in their novels Animal Farm and Lord of the Flies respectively.  In both stories, a stable government is replaced by a volatile, even hostile environment.  These books share the same concept in that a new government can easily appear to be better than the former one, when in reality it could be much worse.

The School of Athens: A Representation of the Renaissance in the Form of Art

School of AthensThe fresco “School of Athens” by the painter Raphael is regarded by many as one of the greatest masterpieces of art man has ever created. It represents the spirit of the Renaissance in a thought-provoking way. The work reflects how humanism and the love of man has penetrated the Christ-loving Middle Ages and the separation between reason and faith, religion and science.

Pattern Postulate - The Singleton

I decided to flip through a little book called "Head First Design Patterns" today. It was 700 pages long, so I assumed it contained something good. In reality, it was about 700 pages of bulk. I guess for people who don't understand something immediately, they'd have 50 pages to learn it... The design patterns in the book were kind of outdated and bulky, too. So I've decided to make an easy-to-read blog post series on design patterns. Welcome to the first post of Pattern Postulate! (I don't even know what a postulate is, but it sounds catchy)

Project Euler Problem 4 in Python

I've decided to take up Python as a hobby. Why? In school, we use Macs. Netbeans is hard to close quickly, but the terminal has almost instant loading. I can basically just type "python test.py" and there you go, the file is running. Plus, I've always wanted to use Vim. (I actually use MacVim; the built in Vim has no syntax highlighting, full screen mode, etc.) So to learn Python faster, I'm doing all of the Project Euler problems when class gets really slow.