Friday, July 12, 2013

Reading the Microsoft Word docx file format

After having done some programming to read Microsoft Word files, I thought I'd write about how the Word 2007 or Office Open XML file format is put together. This isn't complete, but this will get you started.

Cracking the door open

When investigating a mystery file, the first thing a Unix junkie does is run file on it. file is a nifty program that will try to identify what sort of data it's looking at, without paying any attention to the file extension. Let's do that now:
$ ls
Lecture 1.docx
$ file Lecture\ 1.docx 
Lecture 1.docx: Zip archive data, at least v2.0 to extract

Tuesday, May 14, 2013

Getting started with FPGAs

FPGAs are pretty awesome. But what are they, and how do you use one? Search no further than here!
A Cyclone III FPGA chip on an Altera DE0 dev
board, up close.

An FPGA is kind of like a CPU, but more awesome. Just like you can reprogram a CPU to do different things, you can reprogram an FPGA to be different things. In other words, you are given a whole bunch of logic gates and the complete freedom to hook them up however you want. Think about that for a moment.

That's the awesomeness of FPGAs.

You can make audio processors, password crackers, Bitcoin miners, and even parallelizable GPUs and CPUs - all on an FPGA.

The question is, how?

Tuesday, May 7, 2013

Building a home workshop

My work table. The pill bottles at top left
are for storing SMD components. The adhesive
labels Digikey sends with these components
are the perfect size! 
This post is for all the serious hackers and EE majors out there who want to build cool stuff at home. Some of my friends have seen the mess that is my apartment/workshop, and began wanting to build up their own home workshop. So they ask, "What should I get first?"

To begin, you can check out a list of things I think a serious hobbyist should have on SparkFun. I am assuming that you have maybe a few basic tools, but you want to do some more advanced stuff. Of course, I'm not giving a Divine command ("Thou shalt buy a temperature-controlled soldering iron with a brass sponge and a chisel tip!"); this is just a strong recommendation.