Jan 10

Friday Post: Django, AWS, and oAuth

Hey All,

So the semester begins on Monday, meaning this whole week our department has been dealing with semester startup.  Making sure all our apps are tested, available, and production ready.  One of my apps has become the guinea pig for moving our infrastructure into the cloud.  This has been a really fun experience like rewriting parts to save to S3 instead of the filesystem, etc.  Except when it hasn’t been fun.  Like dealing with oAuth behind a load balancer.

Long story short, if you use Django, AWS, and oAuth or LTIs (and SSL), add this to your config file:

USE_X_FORWARDED_HOST = True
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')

Basically, we have our website serving HTTPS through a load balancer, and due to some other infrastructure setup, our oAuth URL was being changed during the signature check.  This caused it to become invalid.  Adding the two lines above fix the whole issue.

Have a good weekend!

-Shea

Jan 02

Friday Post: 2015!!!!

Hey All,

Happy New Year!!! 2014 was an amazing year for me:

  • Got contracted to write a second book (almost done)
  • Ran a successful Kickstarter
  • Had YTD 64,000 downloads of PiPlay
  • Spoke at PyCon, Computers in Libraries, and EDUCAUSE conferences
  • Participated in Orlando Maker Faire
  • Was able to hire the very talented Elizabeth Williams to be part of my team at work
  • Developed software that is helping 60,000 students
  • Added a very cute and very annoying kitten to our family
  • Learned a few new technologies that I had been putting off
  • Watched my wife get a great new job
  • Watching my friends start families
  • Made some new friends

Not to say everything has been great, but the good has totally outweighed the bad.  I have to thank all of my readers as well.  I couldn’t have done without you all.  Thank you!

Amiibos

So I’ve been hit by the Amiibo bug.  I started cutting out these stands for my collection.

IMG_4653 IMG_4654 IMG_4655 IMG_4656 IMG_4657 IMG_4658 IMG_4659 IMG_4660 IMG_4661 IMG_4662 IMG_4652I may have gone a little overboard.

PiPlay

The next version of PiPlay is really coming along.

snapshot

You can see our game listing screen now shows a lot more info.  We are also moving a lot of our configs into SQLite DB files for faster retrieval.  This is going to be an awesome release!

Happy 2015 everyone!

 

Dec 12

Friday Post: Time Drift Sucks

Hey All,

I’ve been plagued by a bug at work for the past 6 months. Every so often, my oAuth library would fail out of the blue, causing some of my apps to die. It never occurred in production, only in our development environments. If I made the oAuth token by hand, or used the console, it worked fine. If I waited a few minutes, it would authenticate, and everything worked. Totally random, no rhyme or reason.

It wasn’t until this week when I was trying to use a library and upload some test files to an AWS S3 bucket that I got an error. My request time signature was 19 minutes behind the Amazon server. AWS (and my oAuth lib) have a 15 minute time window. But why was this happening? My clock was synced using NTP. I went to check my app and it had also failed. Then it hit me. I hadn’t rebooted my machine in a week. Our dev environments use vagrant, which runs a small virtual machine that containerizes our software. The virtual machine has its own clock, which gets synced on reboot. Over the week, it’s clock slowly drifted just enough that my timestamps failed for Amazon, and then for oAuth. Every so often it will resync, but not fast enough.

In 2014, I thought Time Drift was a thing of past, a relic of dying CMOS batteries, but it still exists today. So if you are ever using vagrant to develop your applications, setup an NTP daemon on the virtual machine, or just vagrant halt / vagrant up every so often 🙂

Happy Friday!

Nov 15

Friday Post: MakeSmith CNC Router

Hey All!  Happy Friday!

This has been a “short” week for me.  Had the day off on Tuesday for Veterans Day, and today campus closed early because our football team is going up against Tulsa.  Go Knights!

PiPlay happenings!  Mark has been working on an advanced database scraper tool.

IMG_20141114_163640

It’s going to be awesome once it’s get a little more polished.  I’ve been working on some more controller stuff.  I’ll have more to say about that soon.

MakeSmith CNC

A few months ago I backed the MakeSmith CNC router kickstarter.  The project was created to design and sell a CNC mill / router that cost less than $200.

cncnew

IMG_4466 IMG_4467 IMG_0147 IMG_0148 IMG_0149

My kit arrived yesterday, and I’ve gotten what appears to be the base put together.  The instructions are in the form of a bunch of YouTube videos, so I’m watching each one a few times, and then attempting the install.  I have forgone using wood glue at the moment, just in case I mess up or need to redo something.  I figure I will just reinforce the joints after everything is attached.

Have a good weekend all!

-Shea

Nov 07

Friday Post: DISPMANX_vnc and Homepass

Hey All,

Happy Friday!  I want to send a Very Happy Birthday to my Father.  This weekend is his birthday and I’m very proud to be his son.

I’ve been very busy these past few weeks,  I’ve been contracted to write a second edition of my Raspberry Pi Gaming book, and it’s taking up a lot of my time.  Even though its a subject I’m very familiar with, i’m finding out tons of new things I can do with the Raspberry Pi that have cropped because of my need to record and capture things coming from the Pi’s framebuffer.

I’ve been using a few tools, mainly ones involving DISPMANX to copy the framebuffer into a png file.  It’s called raspi2png and it works really well.  Sometimes its difficult to trigger raspi2png at the right time though.

One thing I have always wanted was a way to ssh / tunnel into the actual console terminal.  Not a new tty device, and not from XWindows, but the one that displays on /fb0.  Enter dispmanx_vnc.  I had never thought of using VNC to tunnel the framebuffer,  but Hanzelpeter has done just that with dispmanx_vnc

There’s definite input lag, and I can only achieve about 15fps, but it is the best way I’ve found to record and capture straight from the framebuffer right now.  I can ssh into my Pi, run the dispmanx_vnc command, then use a VNC viewer (I used tightvnc) to control the main display.  I’m so excited about this 😀

Other news, if anyone has a 3DS, then you know about StreetPass.  It’s a way to virtually meet others who are around you with their 3DS.  There are a bunch of mini games built into the 3DS that require you to meet people using Street Pass in order to advance. There is also Street Pass Relay, which Nintendo created last year.  This allows those who are connected to a Nintendo Zone wifi access point to StreetPass with others from around the world, who are also connected to a Street Pass Relay. So of course this has been reverse engineered, and you can now turn a Raspberry Pi into a “HomePass” StreetPass relay.

Original instructions here .  There is a premade SD card available here, but I have yet to try it out.

Have a good weekend all!

-Shea

Oct 24

Friday Post: PiPlay 0.8 Beta 7

Hey All,

Sorry about the lack of posts last week, dealing with family stuff.

I am excited to formally announce the release of PiPlay 0.8 Beta 7!

  • 0.8.0 Beta 7
    • Added changelog popup
    • Themes now support background music (uncompressed preferred)
    • Fixed problems with semi-transparent labels
    • 2 player controller config support added
    • Controller Config list sorted
    • Now using gunicorn for web frontend.

Get it now by by downloading the image or updating your current version with the PiPlay updater.

Have a great weekend!

-Shea

Oct 10

Friday Post: Custom Carts

Hey All,

Happy Friday!  This week I got in two cartridges that I am very to share with you all.  The first one is a custom SNES cart called StarFox Legacy!

StarFox Legacy contains three games:

  • The original StarFox
  • The StarFox competition game (a modified version that has a timer set and you have to rack up the most points before it runs out)
  • The unreleased StarFox 2.

To change games, you hold the reset switch down for 3 seconds.  It’s a really cart, and I’m glad I was able to acquire it.

The second cart is made for the Sega Genesis, and is a homebrew game some of you may know called FIX IT FELIX JR!!!  Yes, someone programmed a recreation of the game from the movie Wreck It Ralph!  It’s really well done, the label looks awesome, and I love it.

PiPlay 0.8 Beta 7 is coming!

Nothing too groundbreaking in this one.  Bug fixes for the controller setup, a popup window on first startup to give you some hints as well as a change log popup.  Some bug fixes, a little bit of speed improvements, background sounds.  I’m also switching out the python flask built in webserver for gunicorn.  It causes great speed improvements, uses less RAM and CPU.  When I switched to it, I noticed a lot of SNES games stopped stuttering.

I’ll be uploading the image this weekend and the updater should be available shortly.

-Shea

 

Aug 15

Friday Post: Kickstarter shipments

Hey All,

As I’m sure you’re aware, I’ve been spending most of my time working on the PiPlay Kickstarter.  This has involved ordering samples, getting materials, designing hardware, and all sorts of fun things that goes along with PiPlay the application.

I’m really thankful to all the backers (and other supporters) who were able to make this a reality.

0cfaeeacd077645e6addbb6d231575f8_large 036b4257a8b09d0660981b47eef8806c_large350 SD Cards have been made with the PiPlay software, and above that is my living room filled with boxes of joysticks.

I’m going to have fun this weekend sending out shipments.

Now it’s time to work on the next release.

Have a good weekend all!

-Shea

 

Aug 08

Friday Post: PiPlay 0.8 Beta 5

Hey All,

Happy Friday.  One more week of break before the Fall semester starts up.  It’s going to be a busy month!

I’m happy to announce that PiPlay 0.8 Beta 5 is being released.  It should be available on SourceForge in a few hours.

Fixes / Improvements:

  • Smoother animations and framerate
  • More optimizations
  • Memory leak fix
  • Control Pad setup is now under the popup menu (press tab or the second button on your joystick)
  • This is the master image for the PiPLAY Kickstarter

Work is already being done on the next release, which will include 2 player controller setup support, thanks to Mark.

Have a good weekend everyone!

-Shea