Programming »

Notes for the class “Startups, Chapter 1 Getting Started, Founders, and Employees”

You can find the notes at the following link: https://dl.dropboxusercontent.com/u/194775/StartupsChapter1.pdf

Modifying pg_backup to include a latest directory

I wanted to use this script to back up my database, but I needed a directory that would always have the latest version in it. I added/modified the following lines in the script: LATEST_BACKUP_DIR=$BACKUP_DIR”latest/” rm $LATEST_BACKUP_DIR”$DATABASE”.sql.gz cp $FINAL_BACKUP_DIR”$DATABASE”.sql.gz.in_progress $LATEST_BACKUP_DIR”$DATABASE”.sql.gz mv $FINAL_BACKUP_DIR”$DATABASE”.sql.gz.in_progress $FINAL_BACKUP_DIR”$DATABASE”.sql.gz Here’s the new script pg_backup.sh: #!/bin/bash ########################### ####### LOAD CONFIG ####### ########################### while […]

How to set up a Linode environment for the Pyramid Framework 1.5, Python 3, PostgreSQL 9.1 on Debian 7.5

I’m in the process of working on a new startup, and I finally decided to break down and do things right this time, which means leaving PHP and my custom written framework in the past. I’m not really a system administrator, so I figured when I set up my Linode there would be a guide out there to go by. To my surprise, even the Linode hosted config repository didn’t have what I needed or it was out of date. So, I just decided to do it all myself and learn it from scratch.

PostGIS Basics – Part 2 – Hello World

SELECT AddGeometryColumn(‘public’, ‘table’,’column’, 4269, ‘POINT’, 2) This will add a new column to the table and add an entry to the metadata table (the 4269 specifies my reference system, more on that below). It will also add a column to “table” and several constraint checks on the new column. Next, you’ll need to know about […]

PostGIS Basics – Part 1 – Installation

My OS is CentOS, so I used yum to handle installs from the rpm database. The thing with CentOS is that it is purposefully one step behind the cutting edge, so the most recent version of certain applications are not available (PHP, Postgres, etc). To get around this limitation, you have to instruct CentOS to […]

Transforming an address into Latitude and Longitude using PHP and curl

Step 2 – Construct the query Yahoo offers a REST interface to handle the conversion so we can use either a plain HTTP GET request, or if you want to do it inside of a script that is doing many other things you can use CURL, a set of very useful functions for querying and […]

Really hairy problem with (seemingly) random CRLF and spaces inserted in emails

Troubleshooting I isolated the process into three components: the email builder (my code), the mailer application, and the sending application (in this case, smtp through postfix). I followed the below process to troubleshoot: Changed the mailer application to use the built in PHP mail() function, and I also tried sending using a completely different SMTP […]

How to configure your web application to correctly deal with character set/encoding issues

Background I’ll just link to the best places i’ve found to read up on the background. Read these first if you want to understand whats going on: Excellent intro to character encodings Joel On Software, on Unicode The Details In order to get your website working harmoniously with one character set, you first have to […]

More ModRewrite – Using a dbm file instead of a txt file

The most confusing thing is when you use the perl script on the official apache site here it’s written for the NDBM format (which isn’t available on my box). Here’s the perl script: #!/path/to/bin/perl ## ## txt2dbm — convert txt map to dbm format ## use NDBM_File; use Fcntl; ($txtmap, $dbmmap) = @ARGV; open(TXT, “

Mod_rewrite: Attempting to bend RewriteMap, RewriteCond, and RewriteRule to my will…

RewriteEngine On RewriteMap redirects txt:/home/…/…/rewriterules.map RewriteRule ^(.*)$ ${redirects:$1|$1} [R,L,NC] How does it work? (See here for details.) The first line turns on mod_rewrite. The next line sets the location of the map file (the two column list of source/destinations). The third line sets a RewriteRule that says “take everything in the request uri” (.*), and […]