Showing posts tagged with project

in project, new years, goals, 2015

I'm a firm believer in always moving forward. Every day I strive to learn something new, improve an existing skill, or otherwise advance myself in some fashion. That being said, I really enjoy New Year's as it marks the end of another year of work and another year of advancement!

This year I've made some pretty big strides forward in a number of areas, I'd like to highlight a few of my favorite areas here:

  • Linux - When this year started I was still fresh in the face at Linode. I knew a little about a few things, but there is no way I could be described as anything but a beginner. This doesn't go to say I'm anything but that now, but I've learned a lot this year and I feel like I'm good enough to handle most problems and situations.
  • Sysadmin foo - This kind of goes in line with the previous bullet point, but I think its worth splitting out into its own point. Not only did I learn quite a bit about general Linux things (general use, troubleshooting, design, etc.), but I also learned quite a bit about managing systems, both for myself, and others.
  • Python/Flask - I started the year writing most of my web applications in PHP and I thought this was fine and dandy. I saw no reason why I should write in any other language. I'm fortunate that I was shown the light (in my opinion) and encouraged to try something else. In doing this, not only did I learn a very popular programming language (Python), a very popular web framework (Flask), but I also substantially improved my development process overall. With that being said, I'm still a terrible dev, but I'm less terrible than I was last year, so that is a victory in my book!
  • Career Advancement - Always forward, always upward. I had several great opportunities to learn many things throughout the year, both at Linode, and now at DigitalOcean. I'm very grateful for these opportunities and I hope to continue learning more in 2015.

So now for 2015! I always have a laundry list of goals, so I'll touch on some of the more important ones for the coming year:

  • Obtain RHCSA certification - I'm usually kind of meh on certs, but I think this might help me round out some areas I'm not well versed in currently.
  • Complete Master's Program - I'm about halfway through my Master's in IT Management, I'd like to make one final push and finish this up in the coming year.
  • Virtualization - It's kind of funny to think about it given my employment history, but truth be told, I'm not extremely familiar with virtualization as a whole. I know the basics, but there is a ton I don't know, this needs to change!
  • Ruby - I've recently tried to make it a point to become familiar with a new programming language each year - this year I'd like to learn some Ruby. If, by some miracle I become a Ruby expert before year's end, I intend to take a second look at C.
  • Projects - With several big life changes recently (primarily employment related) I've stopped working on some of my favorite projects, this needs to change!
  • Move - I've lived in South Jersey all my life, from what I've observed, the most successful people seem to leave the area and return later in life. I intend to explore the possibility of moving to the midwest to be closer to my fiancĂ©e's family.

Welp, thats it. Happy New Year's everybody, I hope your 2014 has been joy-filled and productive and I hope that 2015 is the same!

in google, api, remote, open source, project

I was recently tasked with making a simple drop a pin style application that integrates with Google Maps to visually represent locations of remote team members. I started work on that project today - I've called it remote.

remote is written in Python (shocker, right?) using Flask (full of surprises here). It's backed with a standard MySQL database that consists of a single table to hold the latitude, longitude, and name for each pin.

The app its self consists of just a few endpoints, /get to get a list of existing pins, /add to add a new pin, and / which displays the index page.

The index page of a sample install

The index page is not pretty by any means, I kind of left it this way so it would be easy for you to do what you want. The City/State/Country box links right into Google's Geocoding API so its relatively smart, it will take just about any input and convert it into coordinates.

Once you hit "Add Pin" a request is fired off to /add to add the new pin to the database, and then the map is refreshed with an updated list from /get.

I'm not sure if it would be worthwhile to add the ability to delete a pin - it seems like that would be messy because I would need to track who "owns" a pin, so for the time being that hasn't been implemented.

remote is 100% open source, you can view the repo here. I'll likely be cleaning it up quite a bit in the coming days, but it works as it is, feel free to clone it and give it a whirl!

in open source, project, ptpb, pastebin, python, flask

I've tried a few different times to make a decent command line pastebin - each ended up being super bloated and slow. I think I've finally succeeded in that goal though - with the help of Zack Buhman I made ptpb.

ptpb is ultralight, ultrafast and feature rich. It is written entirely in Python and is completely open source. I'm a big advocate for keeping your own data, so I wanted to make sure ptpb could be deployed by anybody who wants to roll their own version of it so I/we have written detailed deployment instructions in the repo.

A quick overview of things ptpb can do:

  • Make pastes (obviously)
  • Edit pastes (using a UUID that is given to you when you make a paste, secure and easy)
  • Handle all types of data (images, documents, pdf's, bits in bits out)
  • Display all types of data (append the extension and your browser does the rest)
  • Render different types of text with syntax highlighting
  • Forced SSL everywhere

Thanks to Zack, this is all done extremely quickly and in a (relatively) light fashion. My latest tests show ptpb outperforming all of the major competitors in this realm (,

I'm super pumped about this project - give it a whirl!