the further adventures of

Mike Pirnat

a leaf on the wind

Next Page »

Announcing Procatindex

Replacements

If you're even a little bit like me, you think Procatinator is one of the Internet's greatest achievements. (If you don't know Procatinator, pop on over there for a minute or two and you'll know whether the rest of this post is for you or not.)

If, like me, you have favorite cat GIF/music mashups but can't recall their exact URLs when you're trying to wow your friends, then my latest silly website project is for you.

Behold: the Procatindex!!

Procatindex.com keeps a list of all the Procatinator cats, with titles pulled from the music videos used. The list is automatically refreshed when there's a new cat, and you can subscribe to the RSS feed to make sure you never miss the latest additions.

The site and the script that refreshes it were built in a couple of hours with Requests and Flask, which made short work of the task. (If you aren't familiar with these, you should check them out. Though I have mixed feelings about Flask, it's a wonderful go-to for quick web apps like this. And Requests has become something I can no longer live without.)

Hopefully this improves the effectiveness of your procatination. Enjoy!

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

366/365: See You Later

366/365: See You Later

Thanks to the leap year, I couldn't resist adding an extra day to the 365 project. Here we find Andrew, Cory, and Liz headed to dinner at Greenhouse Tavern on a cold and snowy night far different from the unseasonable weather we enjoyed last year. As usual, Greenhouse delivered an amazing culinary journey that made for both a delightful birthday celebration for Liz and a satisfying end to a challenging year.

Read and Post Comments

365/365: 365!

365/365: 365!

It's with a bit of surprise, mixed with pride, delight, and no small amount of relief that I come at last to 365 of 365, the conclusion of my year-long photographic odyssey. I barely knew what I was getting myself into when I started, but in spite of (and perhaps because of) all the time and work I put in over the year I can truly say that I've enjoyed it and hopefully grown and improved.

If you've been following along, thank you for the opportunity to fill your eyes with what mine have seen this year. If you've been a voice of encouragement, thank you for keeping my spirits aloft when it would have been easier to quit. If you've been a subject of one (or more) photos, or even just put up with me and my camera, thank you for your patience and cooperation. No matter what roles you've played, thank you for indulging me; I hope you've enjoyed watching it all unfold.

Here we find some celebratory Legos that I assembled for the occasion, with my 365 Flickr set in the background.

ZERO more days to go--WOO HOO!!!

Read and Post Comments

364/365: To the Rescue

364/365: To the Rescue

We were just starting to rearrange cars in a driveway to facilitate a departure from our late-December game night when a car skidded around the corner and sailed gracefully off the road and into a snow bank. The high school-aged driver was clearly well and properly stuck, so we gatherered shovels and came to his aid, eventually freeing his car. Unfortunately, this freedom came at the cost of his front bumper, which the packed snow and ice staunchly refused to release without damage.

Just one more day to go!

Read and Post Comments

363/365: Tower City

363/365: Tower City

I drove downtown to meet up with Mike Crute to work on our CodeMash tutorial. I parked below Tower City, which afforded me several photographic opportunities, but I ended up liking this the most.

At this point, shooting something every day has become such a part of my life that I'm not really sure what I'll do when I've completed the 365. It's really hard to believe that it's coming up so quickly...

Two more days to go!

Read and Post Comments

362/365: Making Connections

362/365: Making Connections

Claire demonstrates one of the projects from her Snap Circuits kit that we built together. She's a little young for it, but she's definitely enjoying the process of discovery. The set is well-made and offers a lot of interesting possibilities (the included book contains over 180 projects!). We did six projects over an hour or two, so it should give us plenty of great father-daughter science time.

Three days to go!!

Read and Post Comments

Next Page »