the further adventures of

Mike Pirnat

a leaf on the wind

Next Page »

Text Me Maybe: Smarter Real-World Integrations with Python

Gosh, it's been a year since I last posted! Let me try to make it up to you...

I took some existing talks on the road last year (to CodeMash, PyCon, and OSCON!) but I've once again put together something new for PyOhio.

So my family likes to know when I'm on the way home from work, but I'm lousy at remembering to text or call before I leave. Some basic "out of the box" geofencing solutions are available, but none of them are smart enough to understand situations like going to lunch where sending a "coming home" message wouldn't be appropriate. Luckily, we can assemble our own solution pretty quickly and cheaply with Python at the core, and we don't even have to run our own servers to do it!

In this talk I showed how I created a cloud-hosted, location-triggered SMS notification service with some decision-making smarts by combining IFTTT (If This Then That), AWS Lambda, Twilio, and just the right amount of Python.

The talk seemed to go really well, and I have been flattered and humbled by the volume of positive feedback I got about it. I hope it will inspire you to go have some fun making your smart things a little smarter.

Here are the slides:

Unfortunately there's no video due to a variety of AV issues, so you'll either need to use your imagination or convince the PyCon program committee to accept it for 2017. ;-)

And who knows, maybe I'll start posting more often (hahahaahhahaahahahahahahaha *wipes away tears* whoooo wow, who am I kidding?).

Read and Post Comments

Using Python to Get Out the Vote

After taking a year off from PyOhio due to a scheduling snafu (off-by-one errors apparently aren't just for software), I was delighted to be back this year, and with a fresh talk to boot.

This spring, I helped my wife with the data munging aspect of a school levy get-out-the-vote campaign. We mashed up school directory data with Ohio voter registration records to produce targeted contact lists for phone calls, mailings, and door-to-door visits, reducing redundant contacts and eliminating wasted contacts.

The technology involved is pretty straightforward, involving a little bit of Python and some pretty basic SQLAlchemy and Alembic (in fact, it was my first serious dive into both SQLAlchemy and Alembic).

The talk seemed to go pretty well, and I had some great conversations about it afterwards. Hopefully it will be inspiring or at least of some value to folks looking to do some useful things with Python.

Here are the slides:

And you can watch the video too.

Read and Post Comments

PyCon 2016 Dates

I blanked on the dates for PyCon 2016 the other day, and Google was strangely silent on the subject, so here, for your reference (and my SEO benefit), are the dates for PyCon 2016:

  • Tutorials: May 28–29, 2016
  • Conference: May 30–June 1, 2016
  • Sprints: Starting June 2, 2016

This means the tutorials will be over a weekend, and the conference will be during the week instead of the other way around, and it'll be a holiday weekend. I'm looking forward to finding out what this does to the dynamic of the conference.

Hopefully I'll see you there--if I can remember the dates, that is.

Read and Post Comments

Since You've Been Gone

All Gone

To everyone who now has Kelly Clarkson stuck in your head, you're welcome. (I know what it is you see, for it is in my mind also.)

Thanks largely to last year's 365 project, I posted a record 382 entries here on the old blog in 2012. So it feels strange that this is only my third post for 2013--and I missed February entirely!

What the heck happened to me? Life!

  • The first half of January was dominated by CodeMash and the eight-hour Django tutorial that I helped put on.
  • Mid-January through mid-March were consumed by preparations for the half-day web app security tutorial that I presented at PyCon.
  • I've also been crazy-busy preparing for and running our company's annual Hack Day event. We did a whole secret agent theme, going so far as to produce some extremely low-budget but nonetheless epic video segments in the style of the Bond films. Our audio team even made us a theme song, which I'm not ashamed to admit I enjoyed playing on a loop on my phone while I walked around the office in a tuxedo during the event.
  • I've been building lots of Legos with my daughter! She rocks the Lego Friends sets on her own, and helps me with my Star Wars and Lord of the Rings sets.
  • Speaking of Lego Lord of the Rings, I kind of got hooked playing the Xbox version. So good...
  • I got a RaspberryPi at PyCon! So the kiddo and I have built a case for it out of her spare Legos, and I've shown her a little bit of Python and Scratch. Now we need to find a project, because she's really excited about building something with it. (Thanks, PyCon!)
  • I made a little URL shortener for my pirn.at domain before I realized that bit.ly does it all for free and then some. That's okay. It gave me a chance to learn about Flask. I'll probably write a little bit more about it at some point later.
  • I made a little RSS-to-Twitter gizmo to automatically tweet links to my blog, using my pirn.at shortener for links. I'll probably write a little bit about it too.
  • I got all excited at PyCon and made PythonIpsum, a lorem ipsum generator with a Python-flavored vocabulary. Patches welcome!
  • I've been bitten by the site refresh bug and have started tinkering on a responsive-ish layout so that this place won't look so daft on a phone.
  • I've got a photography backlog from CodeMash and PyCon that I hope to address shortly. And then I want to get back to shooting regularly (though I've got a case of gear fever, so right now I'm mostly obsessing about which lens I'd like to pick up).
  • The kiddo and I have been watching Clone Wars and Dr. Who together. She's been really enjoying watching them with me, and I've really enjoyed helping to counter the influence of the Princess Industrial Complex.

In short--death by bullet points! Hopefully with the big conference season behind me, I'll get back into the swing of things shortly and won't be quite so much of a stranger here.

Read and Post Comments

Shiny, Let's Be Bad Guys

A couple of weeks ago at the amazing-beyond-belief PyCon 2013, David Stanek and I presented a half-day tutorial. We used a deliberately-vulnerable web application to walk our students through the OWASP Top 10, giving them hands-on experience exploiting these problems and offering advice on how to mitigate them.

While we had concerns about the amount of material and the time available, not to mention the size of the class--we had about 80 people show up!--it seemed to go well, and we got a lot of positive feedback both during the tutorial itself and throughout the rest of the conference. One attendee even told us that thanks to our class, he'd fixed a security problem over lunch immediately after the tutorial! It was immensely satisfying to hear that we'd been able to catalyze some actual improvement in the world.

If the official feedback is good enough, we may look to run this again in the future, whether at smaller venues like PyOhio or next spring at PyCon 2014.

You can clone down the tutorial app if you'd like to follow along with the slides.

Read and Post Comments

Web Development with Python and Django

I had the honor of working with Mike Crute and David Stanek to produce and deliver an all-day tutorial session at CodeMash 2013, where we got folks up to speed on Python and then ran them through a series of iterative exercises as we built a small Django site together.

We promised slides, and though we took a bit of a break to celebrate and then enjoy the conference, I wanted to make sure we didn't wait too long before making them available. Hopefully they will be a useful reference in spite of their lack of the interactivity inherent in a live tutorial session.

You can clone down the sample code repository if you'd like to play along at home.

I think it's safe to say we had a great time presenting at and attending CodeMash and are looking forward to continuing to make sure Python is represented there.

Read and Post Comments

210/365: PyOhio

210/365: PyOhio

Five years after creating a logo for it, I finally managed to attend PyOhio, an awesome and free community conference in Columbus, Ohio. It was a treat to catch up with friends from PyCon as well as meet lots of new people, and I'm really excited to see how PyOhio has grown over the years--it's now almost as big as PyCon was when I first started attending it. From great talks to a fun hallway track, sprinting, and socializing, it's clear that there's something great going on here, and I'm really excited to return.

Read and Post Comments

Next Page »