Airport Security Shuffle

Whenever going through airport security I am somewhat amused and mildly frustrated, as most normal people probably are. Of course abnormal people and those predisposed to stress are always freaking out.

I find the current airport security shuffle to be quite amusing though, imagine if you will, my typical pass through the security checkpoint:

  • Pass by the person helping bewildered people with their liquids and gels. “Does hair gel count?” “What about perfume?” “But I paid $50 for that!”
  • Pass by the TSA staffer waiting at the end of the rope lines for no obvious reason. Try to show her your documents, but she doesn’t care and points you on to the next person. What is she here for? Nobody knows.
  • Show your boarding pass and ID to the TSA staffer who marks it with an easy-to-forge mark, such as initials or a number. Note that this is the only time that an ID is ever checked. I won’t point out the flaws in this system. Staffer tells you to keep your boarding pass out.
  • Note that it’s impossible to strip as required to get through security while actually keeping your boarding pass out as they’ve told you to. Place boarding pass in pocket.
  • Remove cell phone and keys and place them in backpack pocket.
  • Remove shoes and belt and place them in a tray.
  • Remove laptop and place it in a tray.
  • Walk through metal detector.
  • Get dirty looks from staffer after metal detector because the boarding pass was not out, when they told me to keep it out.
  • Fetch backpack from X-ray conveyor.
  • Shock laptop with static electricity while fetching it from X-ray conveyor. Grounding yourself first doesn’t help because it’s the laptop itself that is charged.
  • Fetch belt and shoes from X-ray conveyor.
  • Walk sock-footed and belt-less to my gate, or the nearest gate with open seats to re-apply clothing.
  • Wait for plane.

Pretty much the same everywhere you go. It gets even more exciting if you get “randomly” selected for extra screening. This of course isn’t random at all: buying a one-way ticket gets you extra screening pretty much every time.  If I was feeling frisky and wanted to blow up the plane, couldn’t I just spring for the extra $90 for the round trip ticket? Hmm…

Impressions of TiVo Series3 HD

At the beginning of the year, we got a new TiVo: the beautiful 300-hour Series3 HD. We’ve been TiVo owners for a while now, since we got our 80-hour Series2 about a year ago. TiVo has completely changed how we watch TV, and for better or worse, we’re watching a lot more these days.

We don’t have an HDTV, so we’re not really using the HD features of the Series3 (yet). We mainly got it because:

  • It’s beautiful
  • It has dual tuners using CableCard so we could get rid of our digital cable tuner, which we hate, and still get digital channels
  • It has a very high recording capacity
  • It has a display on the front showing the shows it’s recording
  • We like new toys

Our initial impressions are: The Series3 is awesome.

Since we’re not really using HD, the recording capacity has been great — it’s picked up so much more that we used to get on our 80-hour Series2. Since it has dual tuners, there are rarely conflicts. It tunes much faster than the Charter cable box, so channel surfing is much better as well.

We had a bit of trouble getting the two CableCards the Series3 needs from Charter. The person we spoke to (in person) at the Charter office in Reno had vaguely even heard of CableCard. She couldn’t figure out why we needed them, or how they work. She did determine that they do not carry them at the office, and would have to have a technician come out and install them, for a $99 fee. We argued on that point, that it’s just a card that has to be plugged in, and a phone call made, and there’s no reason I couldn’t do it myself. She finally conceded and waived the $99 fee, but said that a technician would still have to come out. Oh well.
Some observations about the Series3:

  • When we initially connected it without any CableCards and did a channel scan, it found many channels we are not supposed to get. The most interesting part, was that it seemed to find several channels that are used for OnDemand from Charter–they would show full movies “sometimes” throughout the day.
  • Since having a Series3 means you don’t need a cable box, and cable boxes usually have clocks on them, the Series3 has a clock on the front, using its OLED display. It is, however, WAY too small, and not bright enough. We can barely read it from the couch, which is pretty close. This should be easy to fix in software, so please have an option for clock size, TiVo!
  • The power connector comes out WAY too easily. I’ve accidentally unplugged the Series3 5-6 times now, while connecting and re-arranging things. The tiniest tug, and the power is out.

Overall, we love you TiVo!

Projection support in libmygis 0.7

I’ve just recently released a new version of libmygis, a library for dealing with various GIS formats. Its main purpose is importing ESRI Shapefile data into MySQL’s GIS, but it is useful for much more.

There are many new small features in libmygis 0.7, but the biggest new feature is projection support (and automatic re-projection) via the PROJ.4 cartographic library. With support for projections and the ability to read Shapefile PRJ files, libmygis is getting much closer to having full support for the Shapefile format.  This means you can easily import Shapefiles in any projection into MySQL and deal with it in pure lat/lon, which is what you’ll need in order to interface with outside tools such as Google Maps API.

Making connections more manageable

For the past few weeks off and on, as part of Proven Scaling‘s project to improve the MySQL server, I’ve been helping Joel Seligstein to really dig into the MySQL source code and add some features, in preparation for a much bigger feature coming up (more on that at a future date). He has now finished three smaller projects that have been on Proven Scaling’s and my own to-do list for quite some time: SET CONNECTION STATUS status, KILL connection_id WITH QUERY query_id, and SHOW ... FOR CONNECTION connection_id.1

SET CONNECTION STATUS

This patch adds a new SET CONNECTION STATUS status command, which allows each session to set a status which will be shown in a new Status column in SHOW FULL PROCESSLIST.

This allows a administrators to gain a bit more insight into complex multi-tier architectures, by having essentially a comment for each database connection. In SET CONNECTION STATUS, the status argument may be a complex expression, so CONCAT() and other string manipulations may be used. The current connection status may be retrieved with CONNECTION_STATUS(). Some things which I could imagine putting in the connection status are:

  • in pool — See at a glance which connections are idle in the connection pool, and which are checked out.
  • GET /foo.php — Easily see what request each connection is responsible for.
  • apache pid 672 — Allow you to easily correlate activity on a given server with activity on MySQL, without having to use netstat and friends to track things down.

Of course, there are many more creative people than me to figure out things to do with this useful feature!

KILL thread_id WITH QUERY query_id

In order to make this command useful, the query_id first had to be exposed in SHOW FULL PROCESSLIST. When WITH QUERY query_id is specified in a KILL command, KILL checks that the connection is still executing the query_id you’ve specified (and locks to ensure that it does not start a new query) before killing it. This solves a well-known race condition between SHOW PROCESSLIST and KILL, where the connection may have moved on to a potentially dangerous query to kill, such as a non-transactional UPDATE.

SHOW ... FOR CONNECTION connection_id

This patch extends the SHOW VARIABLES and SHOW STATUS commands with a FOR CONNECTION connection_id clause, which allows a user with either the same credentials as the connection, or with the SUPER privilege to view the connection’s status and variables.

All of these features will be great for debugging production systems, where it can be difficult or impossible to get any insight into what is happening at any given moment in time.

Thanks, Joel, for the hard work!

1 All three patches are against 5.0.26.

MySQL Camp Free Ride goes to Adam Ritter

And, the winner is……

Adam Ritter, of Nashville, Tennessee has been selected by Proven Scaling for a free ride to MySQL Camp!

Adam’s enthusiasm and very quick (within the first few hours of my original post), yet courteous and complete entry impressed us. His excitement to learn, and professionalism sealed the deal. Here’s an excerpt from his entry:

My name is Adam Ritter and I’m a recent Computer Science graduate from UT Knoxville. I’m currently looking for a job and I realized that being a DBA is what I want to do. I had started working with MySQL back in a course on Database Design and Management course I took in school. This course started the fire inside of me but unfortunately, it was over all too soon and I was left wanting to learn more. I’ve read through every intermediate MySQL source I could find, but I’m looking for as much advanced and expert level topics as I can find. I’ve worked on projects utilizing MySQL and have grown very fond of it.

If you’re attending MySQL Camp in a few weeks time, be sure to say hello to Adam!

Thanks, everyone! Keep an eye on my blog early next year for a similar offer for MySQL Conference & Expo 2007!