Nov 21

Gyrocopter Man

In the news this week, gyrocopter man, aka Douglas Hughes, pleaded guilty to the felony charge brought against him.  As you may recall, he piloted his gyrocopter onto the lawn of the Capitol in order to deliver mail protesting campaign finance.

Clearly, campaign finance is a problem.  The solution to which I don’t know and I’m not going to ruminate on it right now.

The amusing part (to me, at least) is at the end of the article:

Hughes’s other charges included operating without an aircraft registration, three misdemeanor counts of violating national defense airspace and one misdemeanor count of operating a vehicle falsely labeled as a postal carrier.

For some reason, this is just hilarious to me.  I can see why that is a misdemeanor, it’s just quite amusing to think of a gyrocopter as a means of delivering mail.  It did have the USPS logo on it though, so I suppose it was technically labeled as a postal carrier.

May 19

Export Board from Altium for OSHPark

Here’s a quick guide on exporting a board from Altium Designer 14 to be made by OSHPark.

1. Go to Design -> Layer Stack Manager
2. Set your stackup to be this:


This information was derived from this FAQ.
3. Go to Project -> Compile PCB Project.  Fix any errors that could cause a problem.
4. Go to File -> Fabrication Outputs -> Gerber Files
5. Under ‘General’, set the units to be ‘Inches’ and the Format to be ‘2:4’
6. Under ‘Layers’, select the following layers:

  • Top Overlay
  • Top Paste
  • Top Solder
  • Top Layer
  • Bottom Layer
  • Bottom Solder
  • Bottom Paste
  • Bottom Overlay
  • Mechanical 15(assuming that you have drawn your board outline on mechanical 15)

Now export, save as <projectname>.cam

7. Go to File -> Fabrication Outputs -> NC Drill.  Use the following settings:

  • Units: Inches
  • Format: 2:4
  • Leading/Trailing Zeros: Suprress trailing zeros
  • Coordinate Positions: Reference to relative origin
  • Other: Optimize change location commands

Save as <projectname>

8. With the file selected, go to File->Export->SaveDrill.  Set the extension to be .xln

9. Go to your project folder, there should now be a sub-folder called ‘Project Outputs for <Project Name>’.  Grab the following files:

  • *.xln
  • *.GBL
  • *.GBO
  • *.GBP
  • *.GBS
  • *.GKO(re-name the .GM15 file to be .GKO)
  • *.GTL
  • *.GTO
  • *.GTP
  • *.GTS

Put these all into a .zip folder.

10. Upload the .zip folder to OSH Park.

11. Have fun!

Apr 23

WMP54G on Windows 7

So I just upgraded my computer today with an nVidia 970GTX so that I can play Grand Theft Auto V.  However, this caused two problems:

  1. I couldn’t fit the card into my case
  2. The new case had a different configuration, so I had to move my wireless card to a different PCI slot.

When that happened, Windows freaked out.  Completely lost its sense of drivers, so my wireless wasn’t working.  How to get it to work(note: this is from memory, some of this wording is not exact):

  1. Go to Device Manager
  2. Right-click on the network device, go to ‘Update Driver Software’
  3. Go to ‘Browse My computer’
  4. Click ‘Let me pick from already existing drivers’
  5. Go to ‘Network Devices’
  6. Scroll down to Ralink Technology
  7. Select the ‘Wireless LAN a/g PCI card’
  8. Install the drivers
  9. Get on the internet!

Now time for GTA V!

Aug 03

Israel and Palestine in 2014

As of today, Operation Protective Edge has been going on for almost four weeks.  There doesn’t seem to be a clear end in sight at the moment.  Here’s some thoughts on what it looks like to me.

While Israel is probably justified in responding to attacks from Hamas, the entire thing is completely stupid.


Well, you can’t bomb Hamas out of existence.  It’s just not going to happen.

Why does Hamas exist in the first place?  Well, I don’t claim to be an expert on the Middle East.  But there are several problems here.  First, unemployment is around 30%.  That is not to say that unemployment is the root of all the problems; and in fact may not be, as crime does not necessarily go up when unemployment goes up.  In addition to just the unemployment, the population in Gaza is very young.  If the Freakonomics guys are to believed, that is the root of the problem here.  Essentially, people have no future, so they turn to the one organization that can give them something: Hamas.

Now, back to the central question: Why can’t we just bomb Hamas out of existence?  Well a few reasons.

  1. Hamas does have a legitimate grief against Israel, to the extent that Israel takes up much more land now then they originally were supposed to in 1947, and is currently occupying the West Bank.
  2. Bombing people will, in general, make them resentful.
  3. The danger of Hamas isn’t in guns and bombs.

The dangerous man is the one who has only one idea, because then he’ll fight and die for it.

-Francis Crick

I don’t know if the above quote is actually from Crick, but I have seen it attributed to him.  This is the main problem with Hamas – they have an idea, and people turn to them because they feel that there’s no hope(my thoughts, I don’t know if that’s actually true).

So, what has to happen?

If you want to defeat Hamas, you need to weaken them(duh).  To do that, you need to reform them.  That simply isn’t going to happen while bombs are still dropping; it creates a lot of resentment.  A large investment in Gaza and the West Bank is what has to happen in order for people to have jobs and turn against Hamas.  After all, Hamas was first elected because the people in Gaza thought that they would be able to give them a better life – since that hasn’t happened, people have begun to turn against Hamas.  Since the sentiment is generally against Hamas, now is the time to come in and invest properly.

I don’t have a magic pill that will solve everything.  But there are things that should be done to make this a better world.  Even if there aren’t any formal peace negotiations, both sides should still talk to each other.  After all, what my uncle says is true:

You’re not going to solve any problems if you don’t talk to each other.

Not talking to other people means that you don’t go anywhere.  If you’re talking, you can at least get somewhere.

Jul 07

Website Hack

So, apparently my website was hacked.

It doesn’t look like a WordPress vulnerability(although I can’t say for sure).  Anybody know where any logs are kept?

Of course, passwords have been changed to 15+ characters in length, so that should keep any passwords from being hacked easily.

May 09


How did Gravity get so many awards?  I didn’t think that it was a very good movie.


I mean, sure it was nicely made.  It had good effects.  But it was an hour and a half of Sandra Bullock breathing heavily and being incompetent.  I just don’t see it.  To some extent, a lot of people would freak out; on the other hand, you’re supposed to be a professional.

Mar 25

How to compile a SINGLE kernel module on Ubuntu


Today, I had to compile a custom kernel driver for Ubuntu, and it took me quite a while to do. There are a lot of guides out there, but many of them don’t seem to show the right way, or they do it one very specific way.  Fortunately, thanks to this person, I’ve figured out an easy way to do this which doesn’t involve re-compiling the entire kernel.

  1. Install the dependencies you need to build(build-essential will be pulled in automatically on Ubuntu, you may need to specify it if you’re using Debian): sudo apt-get install dpkg-source
  2. Install whatever kernel you want to use.  If you’re running the kernel you want to use, skip this step.  For example, on Ubuntu 12.04, you can install an image as such: sudo apt-get install linux-image-3.5.0-47-generic
  3. Install your kernel headers if you have not done so: sudo apt-get install linux-headers-`uname -r`
  4. Get the source of the kernel.  This is going to be quite large.  Also, you don’t have to do this as sudo.  apt-get source linux-image-`uname -r`
  5. Go to the directory that this source is in; for default Ubuntu installations, this will be: cd ./linux-3.2.0
  6. Prepare the workspace: make oldconfig && make prepare
  7. Copy the Module.symvers file from your currently running kernel into the build directory.  This is VERY IMPORTANT, as otherwise you will be unable to properly build and install the module.  This may lead to errors such as “no symbol table for module_layout” in dmesg when you attempt to load the module.  cp /usr/src/linux-headers-`uname -r`/Module.symvers .
  8. Edit whatever module you want.  In this example, I’m going to edit the ftdi_sio driver so that whenever the driver loads it will print out an awesome message.  In the ftdi_init function, I simply added a line to print when the module is loaded: printk( “RM5248 IS AWESOME” );
  9. Make the module.  Since we don’t want to rebuild the entire kernel, we just have to specify which driver to build.  Do it as such: make M=drivers/serial/usb/
    Using M=<directory> here is important; it makes sure that your Module.symvers won’t be overwritten
  10. Insert the module into the kernel to test it out: sudo insmod drivers/usb/serial/ftdi_sio.ko
    If you get an error “Invalid module format” you’ve done something wrong, probably with the Module.symvers file.  On my system, this fails the first time with “Unkown symbol in module” – you should be able to fix this by doing: sudo depmod -a
  11. Once you’re happy with your kernel module, put it into its permanent location: sudo cp drivers/usb/serial/ftdi_sio.ko /lib/modules/`uname -r`/kernel/drivers/usb/serial/ftdi_sio.ko