First steps with an FPGA!

21 09 2009

For my research group at Purdue, we’ve decided we want to do some work with FPGA (or Field Programmable Gate Arrays). These are essentially chips that you can use to program very complex, very fast circuits. They are superior to other sorts of chips, such as DIP integrated circuits, because they are smaller, relatively cheap for all the power they have (~$10-$20), fully customizable, and FAST.

This is Xilinix Spartan FPGA, the kind I'm using.

This is Xilinix Spartan FPGA, the kind I'm using.

This was my first foray into FPGAs and it drove me crazy getting my tools all set up properly. I thought I’d post some thoughts.

Read the rest of this entry »


Ciphers, Beaufort, and Bears… Oh my!

3 09 2009

In my cryptography class, we’re starting to learn about various ciphers, and for a homework assignment, we were tasked with doing some ciphering by hand.

These rhinos are hot on the trail of some cryptography!

These rhinos are hot on the trail of some cryptography!

I find the task very interesting, but I quickly got tired of coding even a 10-letter “sentence”. Then I thought to myself, wait, I can program! This specifically seems like something that could quickly be done with a Python script. So I decided to spend a little time typing, and 5 minutes later, no more ciphering by hand! Below are the results for your own amusement!

Read the rest of this entry »

Time to Organize the Book Collection!

15 08 2009

I consider my book collection to be pretty large. I make genuine efforts to read through all my books, but by the time I finish one book, I’ve bought two more.

While I like curling up with just one book and reading straight through it, I’ll often find myself working on reading three, four, or more books at the same time (not the exact same time, but switching between them). That’s about the time when I notice my lack of bookmarks (or maybe just my inability to use them reliably). I’ve lost my place, so I put the book down saying I’ll come back later. Well, Crime and Punishment is still sitting on my dresser two-thirds done, and I’m not about to re-read 500 pages just to refresh myself with the story.imgres

Fed up with losing my place and abandoning books, I’ve decided to use this as a time to learn some web programming and make a dynamic website that will keep track of what books I own and how far along in each one I am. Not only this, but it will have bar graphs! Yay!

Read the rest of this entry »

I’m So Sick of Testing and Sorting Through Logs by Hand

11 08 2009
Not those kind logs silly!

Not that kind of logs, silly!

Software testing is a very important part of releasing any product. After all, no one wants a big buggy product. (Especially when it can ruin your whole mission.) On the other hand though, testing software is boring. I’d much rather be writing software than testing it. (Besides, my code never has bugs! *sarcasm*)

When I’m working on a project for school or work, I usually spend a lot more time testing and tracking down bugs rather than coding (80% of effort on 20% of work kind, of thing). I usually try to give my code pretty good test coverage, but its tedious to run through a large set of tests, especially just remembering them all.

To help with this, I wrote a Python tool to run my tests and then display the results visually using HTML, rather than a log file or something similar.

Read the rest of this entry »

Make Tutorial: Part 2

9 08 2009

Colleges will be back in session in a month or two. When I first started school, I was forced to use Unix for all CS classes, but given very little instruction in it. Very “sink-or-swim”. I actually still have a page of notes where I wrote down basic commands, such as ‘ls’ and ‘pwd’, from a lecture given on the first day. After that first day, you were on your own. make

This same philosophy applied to our projects. Projects typically consisted of 5 or more files and it quickly became tedious to compile and link all those files by hand. We were given no hints to use Make to assist us. After discovering this tool, it greatly increased my productivity. Because of the gains I saw, I thought I’d write a few tutorials on using Make. Hopefully, it will help a beginning user to get accustomed with the tool and point them in the right direction to learn more.

This is Part 2 of my make tutorial.

Read the rest of this entry »

Who would have thought Sublime Text was so, well, sublime!

7 08 2009

A few days ago, I wrote about my Quest for the Perfect Editor. Well, the quest is over, with Sublime Text being a clear winner.

I’ve used it as my main editor these past few days to give it a fair chance to impress me and it hasn’t let me down yet. Sublime bills itself as, “The text editor you’ll fall in love with,” and I can easily see that happening.

She obviously just tried Sublime Text for the first time.

She obviously just tried Sublime Text for the first time.

Sublime has features that you’ll love no matter what you’re writing, whether it be code, prose, or poetry.

I thought I’d write a little bit about why I like it so much, as well as encourage you to at least try it for yourself. If you’re in the market for a new editor, this will be where your search ends.

Read the rest of this entry »

Is Erlang actually fast? Why not just stick with C?

1 08 2009

What’s the point of learning Erlang when I already know {your language here}? It will take a long time to learn the language and even longer to become good with it… I don’t want to learn a whole new library… Functional programming is hard… My text editor is super awesome at {your language here} and I don’t want to use new tools…

Would you like some cheese with that whine?stop-whining

I’m going to show you a few ways Erlang excels, with a special focus on concurrent applications. I’ll even include some benchmarks to prove it. So sit down, be quiet, and give Erlang a chance!

Read the rest of this entry »