Ham Radio License Notifier

I took my Ham Radio Tech test last week and I’ve been randomly checking the FCC database to see if I finally have a callsign. I finally gave up and wrote a script to do it for me. (Thanks to the awesome FCC api!)

In the same boat? Here you go. A bash one-liner to check the api once every six hours and email you once it’s updated!

while true; do CALLSIGN=$(curl http://data.fcc.gov/api/license-view/basicSearch/getLicenses?searchValue=FRN_NUMBER_HERE | sed -n 's:.*\(.*\).*:\1:p'); if [[ -z $CALLSIGN ]]; then echo "Not Found.  Sleeping..."; sleep 3600; else echo Callsign Found: $CALLSIGN | mail -s CALLSIGN EMAIL@EXAMPLE.COM; break; fi; done


I used the EMAIL to SMS email so I should get a text message as well. 🙂 Enjoy.

Posted in Uncategorized | Leave a comment

PhD Statement of Purpose

Time to apply for PhD programs again. Maybe I’ll have more luck this year. For those interested, here is my statement of purpose. Let me know what you think.
Continue reading

Posted in Uncategorized | Leave a comment

Face Tracking using a Raspberry Pi with the Camera Module!

# import the necessary packages
from picamera.array import PiRGBArray
from picamera import PiCamera
import time
import cv2
import sys

# initialize the camera and grab a reference to the raw camera capture
camera = PiCamera()
camera.resolution = (640, 480)
camera.framerate = 32

rawCapture = PiRGBArray(camera, size=(640, 480))

# Create the haar cascade.  This should be a trained file for face (but can be anything really)
cascPath = sys.argv[1]
faceCascade = cv2.CascadeClassifier(cascPath)

# allow the camera to warmup

# capture frames from the camera
for frame in camera.capture_continuous(rawCapture, format="bgr", use_video_port=True):
    # grab the raw NumPy array representing the image
    image = frame.array

    # This is required when you do loops, otherwise the frame will be full on the next iteration

    # Convert it to grayscale for the faceCascade
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

    # Find all the faces using the Cascade Classifier
    faces = faceCascade.detectMultiScale(
        minSize=(30, 30),

    print "Found {0} face(s)!".format(len(faces))
    for (x, y, w, h) in faces:
        print "Face at %d, %d" % (x + (w / 2), y + (h / 2))
 From the console:
stridera@raspberrypi ~ $ sudo python face_tracker.py haarcascade_frontalface_default.xml
Found 1 face(s)!
Face at 378, 127
Found 1 face(s)!
Face at 265, 190
Found 1 face(s)!
Face at 260, 215
Found 1 face(s)!
Face at 262, 232
Found 1 face(s)!
Face at 272, 225
Found 1 face(s)!
Face at 262, 205
Found 1 face(s)!
Face at 248, 175
Found 1 face(s)!
Face at 238, 164
Posted in Electronics, Projects, Raspberry Pi, Robotics, Software | Leave a comment

Steps to setup a Raspberry Pi and Install Open CV (for Python 2.7)

Steps given for friends who wanted to setup their own Raspberry Pi’s before my class.  I recorded the video, and will post it later.

All steps done starting with image: 2015-05-05-raspbian-wheezy.img

Install Raspian: https://www.raspberrypi.org/downloads/raspbian/ and follow the install guide: https://www.raspberrypi.org/documentation/installation/installing-images/README.md
– Basically, on a mac, running sudo dd bs=1m if=2015-05-05-raspbian-wheezy.img of=/dev/disk2s1
– This will take about 20-30 minutes… 🙁 Start it and do something else for a while.
– Make sure you end with: sudo diskutil eject /dev/disk2s1
– Protip, install pv (brew install pv) and then run the above command like this: dd bs=1m if=2015-05-05-raspbian-wheezy.img | pv | sudo dd bs=1m of=/dev/disk2s1
– – This will display status as it installs: 164MiB 0:01:10 [2.42MiB/s] (Wait for it to get to ~3.5G)
Continue reading

Posted in Projects, Raspberry Pi, Software | Leave a comment

Raspberry Pi Class Slides

Here are the slides I put together for the class I’m doing on Monday. I’ll post the video afterwards if it’s worth it.

Let me know if you have any questions!

Raspberry Pi Powerpoint Slides

Posted in Electronics, Raspberry Pi, Robotics | Leave a comment

2014 Secret Santa Box

I was signed up as a rematcher for a guy who got screwed on his Secret Santa. Having some time and living closer to the techshop, I decided to do something fun. A little bit of sleuthing found that he loved the Marvel universe and was big on the new S.H.I.E.L.D. tv show. So, why not? I made him a secret agent… (or maybe a secret spy?)

Warning: Click the images for the original. All images are huge, so click on them at your own risk.

Front, Laser Engraved with his name and position.

Front, Laser Engraved with his name and position.

Since he posted that he had recently passed his BAR exam, I decided to make him a SHIELD lawyer. Why not?

S.H.I.E.L.D. ID Card

S.H.I.E.L.D. ID Card

With Field Agent status. Because, if you’re going to be a secret agent, you should be able to carry cool gadgets and sneak into scary places, right?

Shield Badge and Lanyard

Shield Badge and Lanyard

I also got him a badge and lanyard, since, they’re required. Can’t wander super secret facilities without a lanyard.

Finished Product - Hidden Compartment

Finished Product – Hidden Compartment

What’s this? A hidden compartment? (It’s actually not very hidden. I’m not that good. Also, the wood working shop was closed at the techshop so I couldn’t turn the legs to make them look prettier.)
I included a letter from HYRDA congratulating him on infiltrating the highest levels of SHIELD. I told him his missions was to create copies of Agent Coulsons ID Card, which were also included in the box. They also include a coin that I was given when I ordered the badge/lanyard.

laser engrave back finish
All in all, a fun Secret Santa gift.

Lessons Learned
Some lessons learned. The engraving came out great and I was happy with it. I also stained the box, and that seemed to come out ok. Building the false bottom was troublesome since it seemed the wood was expanding, which was weird since it shouldn’t have been gotten wetter or anything. I thought it would shrink if anything. This meant that what fit one day would get caught the next. Spent a lot of time sanding to get it to fit well and easily come out.

The biggest pain was the felt! Holy hell. I bought this adhesive that you spray on and it was like insta perma stick. I tried to cut out the bottom and sides in the same piece of felt. Bad move. As soon as it stuck, it was there. I couldn’t slide it as I expected. It meant getting felt stuck to my fingers, crazy adhesive stuck everywhere, and having to improvise last minute to get the felt to look ‘ok.’ I don’t think it looked exactly good, but good enough for government work I think. 🙂

Putting it Together

laser engrave back 3

Laser Engraving the box

Laser Engraving the box

Laser Engraving the box

As I mentioned, the laser worked great. I tested on a few pieces of wood and was able to get the speed and power down for this wood. I’m quite happy with the detail and I love the burned look.

Cutting out the false bottom.

Cutting out the false bottom.

Sanding sanding sanding

Sanding sanding sanding

It Fits?

It Fits?

It Fits!

It Fits!

Adding the felt... oh the pain.

Adding the felt… oh the pain.

And that’s that. I hope you enjoyed it!
Posted in Uncategorized | Leave a comment

My last president’s letter of the San Francisco Amateur Astronomers

It’s been a good year. Just wrote my last president’s message. Well, unless I run again. Who knows. 🙂

Hello SFAA,
The year is coming to a close and soon another will take my place as president. It’s been a good year. I promised more social activities, and I hope you’ve had fun at all of the events we’ve had. The website continues to grow, our lectures are online, and we have a bigger online presence than ever before. The club continues to grow and I still think it’s awesome!
We’ve had some eclipses that were nice, comets that were a no-show, and both good and bad weather on the mountain. One thing that remains constant is how amazing the members of this club are. Every star party, warm or cold, has smiling faces and warm voices promising offers of galaxies and beautiful nebulae. Years after coming to the area and finding the club, I’m still looking forward to our next meeting and excited about what I will learn next.
So thank you for making the club as great as it is. Thanks for the help we’ve received, for all the sights you’ve shown me, and for continuing to make this club the best astronomy club in the universe!
I’m excited to see how our next president will continue to expand the club and what ideas he has in store for us. I’m sure it will still be awesome.
Thanks again and keep looking up!
Matt Jones
San Francisco Amateur Astronomers

Posted in Uncategorized | Leave a comment

My own Claptrap – Robotics Project

So, some of you know that I’ve been working on building my own Claptrap. (If you don’t know who claptrap is, check out the video link at the end of the post.)

Screen capture to video to animated gifs are hard…

The first step was to get a 3d rendering of him. Luckily, I was able to find one online. Problem was that it was pretty dirty and everything was one object. Thus began my project to learn AutoCAD and clean it up. I was able to break out all the sides, internal parts, etc, into their own layers. It took a while, but I was happy with the results.

After having all the layers set aside, I was able to create outlines of the shapes I wanted to use. Using this, I can start making full-sized printouts (initially using cardboard) to determine how it will look and make sure all the parts go together correctly. Once I’m happy with that, I’ll move onto the cutting and welding the metal together.
Continue reading

Posted in Projects, Robotics | Tagged , , | 1 Comment

Prologue – A Cat’s World – (Amnesia)

The following is the first-draft prologue of my novel, ‘A Cat’s World.’ Still lots of changes to be made, but since I sent it out to my writing group, I figure I would put it up here too.


Tanya felt as if she was waking up from a long strange dream. She was sure there was pain, but now there was only a deep coldness. Some rational part of her mind decided that she was dead. She floated in this new world, this heaven in her mind. She allowed herself to be drawn into this world. A freedom from the pain. An escape from the nothingness. Within her imagination, this world began to take shape. She lay on grassy hills overlooking the ocean. The sun warmed her from above while a soft breeze tickled her cheek.
Continue reading

Posted in Novel, Writing | Tagged , | Leave a comment

Is NaNoWriMo a good thing? Go weight in on my Fictorians post!

Give your input over here:
NaNoWriMo – Is it a good thing or a bad thing? (Debate)

Posted in Blog, Writing | Leave a comment