Gifford Pinchot National Forest
Photo Credit: Daniel Betcher
My name is Jesse Morgan. I'm a 23 year old Software Engineer currently working
at Amazon.com and living outside of
Outside of work I enjoy spending time with my wife, camping, hiking, reading,
and fiddling with HAM radios. I'm also a member of
King County 4x4 Search and Rescue.
This last week was my first on-call rotation at work. With each issue I was working on, I would usually find myself looking at some dashboard of hostnames and metrics. When I found the suspect machine, I would copy the hostname, open a new terminal, and type ssh hostname. Pretty straightforward, but I still got tired of doing the same repeative actions ad nauseam. I turned to one of my co-workers and said “wouldn’t it be great if I could highlight a hostname, press a button, and have a new shell opened on that host?”
It turns out I can. I use Ubuntu and the i3 window manager at work. X11 has two clipboards: the primary clipboard contains the last selected text and the secondary clipboard is usually filled after you press ctrl+c. I found a utility called xclip which gives me the contents of either in a shell script. Now I have a script, sshclip, which will launch a terminal and connect to whatever is in my primary clipboard. I bound the script to super+g for go-to (really it was the only free key close to ctrl+c).
The script attempts to strip off any surrounding garbage or port numbers from the hostname, so I don’t even need to be picky about what I select.
Every year, Foursquare Church has the Christmas Giving Tree. A tree is setup at the church with gift requests on tags. This web based application eases the administrative burden by managing the application process, automatically printing the tags, and tracking which tags have been taken and which have been brought back with gifts.
Utilaclock is a simple clock utility. It opens any number of clocks in separate windows. It can also create countdowns and timers. Count downs change color and start counting up after they reach zero. The font size can now be set for each clock.
So, we’re still running Leopard Server because I’m waiting for any snow leopard issues to get ironed out before I upgrade. We were about to put our internal podcast into use when I noticed Podcast Producer forgot how to talk to the Xgrid controller. After spending some time staring to the settings, I finally realized that the Xgrid Controller setting had to be set to the same domain as the Kerberos domain, which in my case is improperly set to Server.local instead of the server’s actual name.
So, for future reference: The xgrid controller address is tied to the kerberos domain.
So, I spent quite a bit of time trying to get Podcast Producer running on our not-so-correctly-setup xserve. After getting podcast producer connected to Xgrid I thought everything should work. I fired up Podcast Capture and recorded a screen capture podcast. I pushed publish and watched it go into the Xgrid jobs list. Then I watched it stay in the Xgrid jobs list indefinitely while the lone Xgrid agent sat idle. I searched to no avail, then the project had to sit a while during the Sold Out Youth Conference and Easter services. I started tackling Podcast Producer again today. With a bit of poking I found the last job message in Xgrid admin: “Art “0” returned score “0” for agent”. Interesting. Sticking it in google lead me to the solution to my problem. After updating the UUID, Podcast Producer started working without a hitch. Now to see how it works in production.
Experience has proven Brent’s rogerism, “let the sheep onto the field and they poop all over it.” But making a mess of things is part of the learning process. If developing leaders are never given a chance to clean up when they make a mess, they will never learn how. They will be stuck at square one; they’ll never get to the point where you don’t fear giving them control.
What should you do? Slow down and teach then get out of the way. Show them what needs to be done and how to do it, then step back. Let them do it themselves. Let them mess up. Be there to support them, but give them a chance to fail. If you don’t risk the result of releasing control, you may never have a mess on your hands, but you’re capping yourself and them. Remember, someone took a risk with you when you were learning.
Even though this site is no where near finished, I wanted to write this down.
Now I know just about nothing about perl, but I felt like perl would provide the simplest solution. So, for future reference, here’s my snazzy one-liner:
I was in need of an asset management system at Puyallup Foursquare Church, so I developed Assets. I particularly wanted to track computers and what software was installed on each computer, so each asset has a list of associated assets. The database is made up of many items which have a name, an image, and a set of fields. For any item there are zero or more assets. An asset is essentially the manifestation of an item.
In Auguest of 2008 I was asked to build a online registration system and family directory for Lighthouse Homeschool Co-op. The system was designed to accommodate Lighthouse’s needs while being flexible enough to reuse for another co-op. The system was built using PHP, MySQL, and Facebook Scribe for logging and has been running since the 2009-2010 school year.