RustProof Labs: blogging for education (logo)
My book Mastering PostGIS and OpenStreetMap is available!

Python and Databases

By Ryan Lambert -- Published November 13, 2014

With all the cool things I recently discovered with Python, and some headaches with one of our systems at work, I wanted to make a case for setting up a dedicated Python Notebook server for my department. Before I get into the fun details of testing the setup for our needs, I should probably explain our needs. My goal is to replace our (very expensive) SPSS licenses with something not so expensive. It just so happens that Python, Pandas, MatplotLib, iPython and all the other goodies come at the correct price of Free. The only cost that should come out of this is the virtual server that would be needed to run it.

In order to evaluate if python could be used provide a viable alternative, I had to ask: what do we use SPSS for currently? Well, we load data from csv format to MS SQL and run an occasional statistical analysis. That's about it.

Continue Reading

Fun With Python

By Ryan Lambert -- Published November 08, 2014

Warning: This post is outdated. It is here for reference purposes only.

I think it's pretty common that most individuals who write code have their favorite go-to language. For years my language of choice has been PHP. I always defaulted to PHP because I had done so much in PHP that it just came naturally and I could focus on my task which is writing code. I think it's a good thing to use familiar tools because it makes you more efficient in solving the problem at hand, but its also vital to see what else is out there. I haven't been unhappy with PHP, but I had been wanting an excuse to dive into Python for a while now and a few weeks ago my reason to seriously give Python a try came up. I had a project that needed to get done and it required working with a lot of data, doing some statistical analysis and generating charts.

Continue Reading

Watch out for Shellshock

By Ryan Lambert -- Published September 26, 2014

Just in case you haven't heard yet... there's another security concern, called Shellshock, to worry about and it's a big one! This bug affects Bash, and since plenty of people are already talking about it I won't spend time elaborating further here. Learn how to secure your Linux servers against it, it's only a partial patch at this time but it's better than nothing.

Continue Reading

Checking for Valid Integers in SQL Server 2008 R2

By Ryan Lambert -- Published September 17, 2014

Today I was moving code from my SQL Server 2014 dev server to a SQL Server 2008 R2 production server and I ran into a problem with a function I created a few weeks back. I tend to work across versions frequently, and up until now I have been pretty good at avoiding issues with backwards compatibility... but this one slipped by me!

The function is used during an import process and is intended to convert a term and year (think "Fall 2014") to a numeric representation of the term. The data source is a relatively dirty Excel file with lots of people entering data. While they are pretty good at being consistent, humans make mistakes with data entry. I know, that might be a surprise, but it's true. The code below is a small chunk of the error checking inside the function to catch invalid values so I can send them data integrity reports and get them to clean it up.

Continue Reading

Jenkins CI on Debian: Install and Setup

By Ryan Lambert -- Published September 16, 2014

Warning: This post is outdated. It is here for reference purposes only.

While there are many options to consider when picking your continuous integration server, at some point you'll have to make a choice and start using one. I started using Jenkins CI about two years ago and I have never looked back! It's amazing how much can be streamlined by using the right tool for the job. In today's post I will walk you through installing and configuring Jenkins on a development virtual machine running Debian. All commands given are assumed to be for a regular user that has sudo privileges.

Continue Reading

<-- Older Posts          Newer Posts -->