pg_service.conf Syntax

I am setting up monitoring for my PostgreSQL database server, and ran across a cool way to get around specifying the username/password via the command-line every time the checks are run: pg_service.conf. Unfortunately, there is very little documentation on the config file. As best as I can figure out, if you are connecting to a remote host, your definitions should look as follows:

2009 in Review

So, I haven’t posted anything really talking about the details of my life in 2009. This is likely attributed to my extremely busy schedule for the majority of the year, amongst being overwhelmed at times with the changes going on that directly and indirectly affect me and my family. I hope to cover the highlights of the year, and then wrap up with great news that has changed Melissa’s and my life forever. 2009 started out relatively relaxing. Melissa and I kicked off the new year in Red River, NM with my mother and sister Courtney. We did a little skiing and snowmobiling, but in general were just resting and enjoying some time off from a busy 2008. I finished the Fall semester with a 4.0 GPA and was eager to take the next 2 courses in the Spring since I was rather bored with the simplicity of the Fall classes. I was still working at the College of Architecture, and the pressure to deliver a newly revised College home page and to really prove that we will help to get the College out of the “dark ages” and bring it forward as a technically proficient division of Texas A&M University. Furthermore, I had a consulting gig with the CFEgroup, a division of the Texas AgriLife Extension Service, to redevelop their online education system. In all, things were really well both personally and professionally.

Why I Hate RedHat

[root@sheerjira ~]# rpm -i rpmforge-release-0.5.1-1.el5.rf.i386.rpm
        package rpmforge-release-0.5.1-1.el5.rf.i386 is already installed
[root@sheerjira ~]# rpm -e rpmforge-release-0.5.1-1.el5.rf.i386.rpm
error: package rpmforge-release-0.5.1-1.el5.rf.i386.rpm is not installed

JIRA Failed to Find DataSource

If you were a luck systems administrator who followed the instructions for a Tomcat container installation using the EAR-WAR install when setting up Atlassian JIRA, then you may have been privileged to see the following error message in your log files:

2009-12-06 22:56:25,762 main WARN     [core.entity.transaction.JNDIFactory] [ConnectionFactory.getConnection] 
Failed to find DataSource named java:comp/env/jdbc/JiraDS in JNDI server with name default. 
Trying normal database. javax.naming.NameNotFoundException: Name jdbc is not bound in this Context

If you’d like the solution on how to get rid of this error, please read on. Many EAR-WAR installs are lucky to not have this error, because they’re likely installing their instance of JIRA at a URL like http://jira.example.com/. In my case(s), I always buy the suite of Atlassian products (JIRA, Confluence, Fisheye, Crowd, Bamboo) and would like to reference them through a single proxy instance (e.g. http://intranet.example.com//). I put each instance in a separate virtual machine and use mod_jk through an Apache front-end proxy to accomplish this, this allowing me to have a single Tomcat container per application.

Mac OS X Mobility - Not Worth the Headache

I recently upgraded my student worker workstations up to Snow Leopard (Mac OS X.6) to take advantage of the better integration with Active Directory and Exchange. The primary reason: getting network home drives working correctly. We have a set schedule for them, but they may come in early or late depending on their school schedule. This introduces problems if someone is on a workstation that another typically uses. If all of their data were on a network server, there would be no cause for concern because they could use any workstation and still have access to all of their data. This blog represents my trials and failures with getting mobility synchronization to work properly. A little bit of background on our environment: We are running an Active Directory enterprise (most of our users are Windows users) with an IBM N3600 Series Network Attached Storage (also known as a NetApp FAS3020 Filer). Our filer is attached to our AD environment with Kerberos trusts, and we share our data out to end-users via CIFS. I had all my student worker Mac OS X clients joined to Active Directory and set to use the network share specified in their AD account as their home directory. This would have been all fine and dandy, if the network / filer were faster. To illustrate how slow it was, if I went to Terminal and created a directory or file using mkdir or touch, respectively, then immediately checked the permissions on that folder or file, there would be no permissions. Instead, only on the second look at the contents did the correct permissions show up.

Star Trek: The Next Generation

I cannot believe i’ve never seen the first Star Trek: The Next Generation episode. Then again, it first aired in 1987, which would have made me about 3. I have to say, the later years were so much better!! the camera angles, acting, and music were quite campy in the first episodes. Oh, and Riker is really boy-ish. It’s weird.

For any person who hasn't flown recently

Many airlines have lowered their maximum weight restrictions, such as Frontier, to just 50 lbs. We found this out this morning when going to Yellowstone when Melissa and I expected to save $15 by using 1 checked bag (because each bag checked after 0 costs). However, this put us only 11 lbs. overweight resulting in a whopping $75 overweight “penalty”. What ever happened to the good ole days where airlines didn’t charge for checked baggage?

Strange LDAP & Sudo Problem

After several updates of various systems software packages on my Gentoo Linux servers, I began to notice a problem where I was being denied sudo access. The solution was amazingly simple, once I actually Googled to figure out what was going on. To my surprise, a log entry was actually being generated which indicated what the problem was:

PostgreSQL Group & User Role Inheritance

As I’m trying to finish up one of my consulting projects (and enhance other active projects), I decided to take a nice long hard look a PostgreSQL permissions - the correct way of doing it. PostgreSQL applies the commonly accepted principle of assigning permissions to resources. They’re moving away from the concept of users and groups and more to roles. As of PostgreSQL 8.3, the primary command to create new users OR groups is CREATE ROLE. The existing CREATE USER / CREATE GROUP commands still exist, but are becoming non-existent in hopes of replacing the user / group permissions model with a strictly role-based model.

Zend Framework Update and Zend_Db Mocks

Recently I upgraded one of my projects from 1.6.1 to the latest in branch-1.8.x of the Zend Framework. This resulted in most of my 1200+ unit tests breaking for that project. After several hours of trying to figure out the cause of the break, I managed to stumble onto the differences that is causing the problems I was experiencing. As I had blogged about in a recent post, the architecture of a couple of my Zend Framework applications involve me building a framework (of sorts) on-top of the Zend Framework, specifically for my applciation. This framework has it’s own Data Access Layer (DAO) which utilizes the Zend_Db_Table_Abstract to query against the database. However, when I wanted to test just the DAO logic (and not the Zend logic), I needed a way to help make sure that happens. This is where mocking comes into play.

Pagination