“Maybe I could learn to be a truck driver. Mav, do you still have the number for that truck driving school we saw on TV? TruckMaster I think it is. I might need that.”
Late Friday night (it’s always a Friday night with these things, isn’t it?) I decided to cap off a great week by upgrading the server and system software that supports Jetrecord. A number of security and performance updates have been released over the last few months and I wanted to install these before AirVenture and before people really started using the embedded maps.
As traffic had died down about 11:30pm MST I pulled the trigger and ran the update scripts. Everything installed just fine. I was very happy. Until I rebooted the machine to pick up the updated software.
Boom! Down goes Jetrecord. Hmm, that sounds familiar.
Oh, boy. So was it Jetrecord again like last time or was it something else? I pulled up Jetrecord on my local machine and did all my usual tests. No problems. No errors. Nothing in the logs. Everything seemed fine. I checked my email to see if Jetrecord had sent any notices. (I have a script that does this when a major error occurs.) Nope, nothing.
I went back to the server and started testing everything manually. The updates I installed touched almost all of the major software for running the server and Jetrecord. So which one was it?
I didn’t want to drag this out by testing everything line by line if it wasn’t necessary. This isn’t a nuclear reactor. Most likely I probably just made a stupid mistake. See the previous example.
What was I seeing? Apache, PHP, and MySQL were working fine and I could actually load up this blog which runs on WordPress. I already knew that the application was working fine because it was running prior to updating the software and it was also running fine locally.
That could mean two things. It was either Ruby or it was PostgreSQL. Jetrecord runs on Ruby on Rails and uses Postgres for the data store. I hadn’t updated Ruby on Rails and I hadn’t deployed any new releases so it most likely wasn’t the framework or the code that sits on top of it.
I tried connecting to Postgres via the command line. No problems. So it’s Ruby, then.
Ruby was recently updated to address some security issues and it was one of the reasons I was upgrading in the first place. I did some searching and discovered that the latest releases of Ruby were segfaulting on almost every OS while running a Rails app. This was Saturday afternoon. Jetrecord had been down for 12 hours at this point. I slept for 2 of those hours.
I started doing some research (hard, research-scientist, Google research) and found people saying that an earlier version of Ruby was working fine, even with patched security updates. I didn’t care at this point. Just get my site up, somebody!
I went back to my server and started working to uninstall the recent release of Ruby that killed Jetrecord. Unfortunately, I’m a novice at Solaris administration. Needless to say it was a good learning experience not only about debugging a Ruby app on Solaris but also how Solaris works with pkgsrc to do its thing and how all the dependencies work together.
I worked as hard as I could to understand the problem but I got tired around 9pm. I’m not in my twenties anymore. I went to bed at 10. Jetrecord was still down. I was exhausted but my mind probably raced into the night for another hour or so. I dreamt of electric sheep and losing all of Jetrecord’s users and their data, followed by all of my hair.
Sunday. A day of rest for some. My family and I got up and went to church. That was probably the best thing I could have done. When we got home I felt strangely at peace. We ate lunch and then I went back to work. Around 1:30pm I figured out how to get Ruby 1.8.6.230 off the server and put 1.8.6.111 back on with the security patches.
I went back to my manual tests on the server and everything appeared fine. I restarted the application in its production configuration and voilà, Jetrecord is back up as of 2pm MST.
Some Lessons Learned
- Always test your code changes before deployment, no matter how trivial; that means the supporting software as well, not just the application code
- As much as possible, set up a test environment that mimics the production environment; for me that means I need to add OpenSolaris to my VMware instances on my Mac
- No matter how tempting it is, never run an update right before bed time, especially on a Friday night
- Unless it’s an absolute emergency, plan major updates like this a week in advance and inform everyone that you’re about to bork the machine; give people a chance to make their own backups, cancel their accounts, prepare for Armageddon, et cetera
- Of course, that means, plan for a week after you have already tested the updates on your test environment
- Bring friends
That is all I can think of right now. I truly believe Jetrecord is stable again and actually performing better with the updates, so log away.
Cheers, Harry
Update Sunday, 7/27, 2pm MST: Well, that was a long, painful ride through the system. The good news is we’re back up and all is well. There’s no bad news, thankfully, except for the downtime. I’ll have a detailed write up later today that will be posted on the blog if you’re interested. If not, you can just continue to use Jetrecord as normal.
I apologize sincerely for the downtime and I hope it didn’t inconvenience any of you too badly. I learned some valuable lessons from this that will improve the software and the system it runs on and hopefully reduce the time to reset when something like this occurs again.
Thanks for your patience. If you have any questions, please let me know.
****
Update Saturday, 7/26, 1pm MST: Still working. Evidence is pointing to problems with Ruby. So far the application code for Jetrecord checks out.
****
Saturday, 7/26, 4am MST: Earlier this evening I ran some needed maintenance updates on the server to address some security issues. Unfortunately it took down the web site, which I half expected would happen.
Your data is safe but inaccessible through the site right now.
I’m going to get the site back up as soon as possible and I’ll have a write up on the problem as soon as I know what went wrong.
Thank you for your patience while I try to restore the system.
Cheers,
Harry
Just in time for Oshkosh! I’m excited to announce that you can now embed route maps of your flights (or any route for that matter) into your own web site.
Here, for example, is the route I would take if I was flying from Vance Brand in Longmont to Wittman Regional in Oshkosh for AirVenture.
Combine this with the fact that you can create routes on the fly in Jetrecord and you have a pretty easy way to add a nice map to your web site or blog.
How Do I Get It?
Visit the page for the route you want to display. For example, here’s the page for the route above. At the bottom of the page (below the map), look for the Embed This Map section. Copy the code listed there (the iframe tag) and paste it into your web site. You can customize the width and height of the map by changing the width and height parameters in the URL.
For example, http://jetrecord.com/routes/KLMO+KOSH.map?width=550&height=350 will produce a map 550 pixels wide and 350 pixels high.
Obviously, you can control the style of the iframe tag if you know a little HTML and CSS. However, using the default code as-is should be fine for most people.
Terms and Conditions
First, this is an experimental feature. I cannot guarantee that it will remain operational in any form. If performance issues arise, I may have to take it down without notice. Of course, the way to go is to find a way to make the service pay for itself. If you’d like to sponsor this service and see your company promoted under the map, contact me.
Next, it’s very unlikely that you don’t meet the conditions of use, but please, for both our sakes, make sure your web site or blog meets the conditions outlined in the Google Maps Terms of Service. The maps come from Google but Jetrecord is not endorsed by Google. Google may also decide at any time to change their terms of service and prohibit this extremely awesome use of their maps. Again, this would mean taking down the service without notice.
Lastly, you may also want to familiarize yourself with Jetrecord’s Terms of Service and Privacy Policy. They’re both fairly liberal and accommodating, but I want you to be informed.
If you have any questions or suggestions, please let me know.
Cheers, Harry
Earlier this week I discovered someone had added N280CJ, the Cirrus Vision SJ50 test aircraft, the same one that flew its maiden flight on July 3, to Jetrecord. I quickly went through our list of users and discovered Ben “stscdr” Hager’s profile and web site in which he talks about recently joining the flight testing group at Cirrus. Bingo!
I quickly contacted Ben to ask him some questions about what it’s like to work on one of the hottest aircraft in the new personal jet market. Even with EAA AirVenture Oshkosh beginning on Monday and with what I’m sure is a hectic schedule at Cirrus right now, Ben graciously took the time to answer.
Jetrecord: You’re a Flight Test Engineer for Cirrus and you work specifically with the SJ50. Is that correct? Give us a little history on how you ended up in what seems like such a dream job. Where did you get your start and how did you end up at Cirrus?
Ben: Yes, I am a Flight Test Engineer working for Cirrus’ Advanced Development Group which is the group responsible for designing, building, testing, and eventually certifying the SJ50. I started off at Embry-Riddle Aeronautical University in Daytona Beach, Florida in the Fall of 2003 as an Aerospace Engineering student. While there I earned a Bachelor of Science and a Master’s degree in Aerospace Engineering. I got into flight testing in college where I was fortunate enough to work on multiple flight test projects where the goal was to collect enough flight data to develop Level 6 FTDs for flight schools to use as trainers. During those projects I got the opportunity to work with Cirrus’ SR20 and SR22 aircraft as well as one of the schools new DA42 Twin Stars.
I enjoyed the mix between flying and engineering that flight testing afforded me so coming out of school I looked for a job in that field. I looked at Cirrus because I was very impressed with their aircraft and the quality of product they put out. When I learned they were working on this new personal jet I knew it was the place for me. I, like others, think that this type of aircraft will revolutionize both general aviation and commercial aviation and I wanted to be a part of that.
Jetrecord: From what I know of the job of a flight test engineer (which is very little), you’re responsible for designing the testing series along with the pilot and analyzing the data. Can you give us a glimpse of what that’s like? How does it work at Cirrus?
Ben: You pretty much have it there. Our main responsibilities include planning the flights and then looking at the data afterwards. Right now the flight test group is 12 people: 3 pilots, 4 engineers, and 5 A&Ps. It’s a small group but we all work pretty well together to get things done.
Because it is such a small group I get to be a part of almost every step in the process, something I really enjoy. Besides planning the flights we are also tasked with instrumenting the aircraft with whatever is required. Figuring out how to mount things, where to put them, and then how to run the wires can be very tricky sometimes with everything else going on in the plane. We then calibrate the instrumentation on the plane. Some calibration is ground work and some has to be done in flight.
In terms of data analysis the way it works here is that the flight test group is responsible for collecting the data and ensuring that it is of good quality. We then pass it off to the different design groups and they do a detailed analysis of the data pertaining to their field. Besides just looking at data quality we also go back through the data from a higher level and take a look at general trends and handling qualities and, of course, we always keep an eye out for safety issues.
Jetrecord: From the pictures and videos available on the web, the SJ50 looks gorgeous both on the ground and in the air. Are there any parts of the design that you’re particularly fond of?
Ben: I really like the plane as a whole. For me it’s more about how all the parts come together than anything individually, although I particularly like how the engine mounted on top flows into the V-tail to give it that very sleek look.
Jetrecord: What about your own flying experience?
Ben: Actually, I’m almost finished with my private pilot’s license. I’ve done a lot of flying outside of that but never got around to finish it before because of the cost. My plan is to try and finish it by the fall sometime!
Jetrecord: I saw that you recently flew an L-39. That must have been an amazing experience! How did that come about?
Ben: The L-39 was quite a flight actually. Cirrus owns one and we use it as a chase plane while flight testing the SJ50. Before the SJ50 had completed its build process we used the L-39 to practice some of the first few flight plans that we had for The-Jet1. The pilots are great here and try to take the engineers and mechanics along on some of those types of flight when it’s appropriate.
Jetrecord: Thanks so much, Ben, for this quick look into flight testing the Cirrus Vision SJ50. Where are some places folks can find out more about getting involved in flight testing?
Ben: In terms of learning about flight testing the Society of Flight Test Engineers is a good place to start. There’s also the Society of Experimental Test Pilots. And the American Institute of Aeronautics and Astronautics is always good too.
Jetrecord: And finally, I don’t know if it’s still a guarded secret but will we see the Vision at Oshkosh?
Ben: You’ll have to come up and find out…
Thanks, Ben!
Notes: 1. “The-Jet” was Cirrus’ moniker for the Vision SJ50 prior to naming
You can create a visualization of a route (using a combination of airports, navaids, and fixes) just by entering the URL in your web browser. Crazy, I know, but really useful if you just want a quick visualization of where you’re going that you can share with others. Obviously this could be useful to pilots and travelers alike.
Some examples:
Starting to get the picture? ← Yes, a pun. If you know the codes for the points you want, just type them in and separate them with plus signs (or spaces).
Some notes:
- Jetrecord favors U.S. and major international airports; airports, navaids, and fixes outside of the U.S. may not be in the database
- Uppercase/lowercase doesn’t matter for the codes
- The route finder looks for airports (and only airports) at the beginning and end of the route, so if your route only consists of two points, both have to be airports
- If you want to ensure you’re getting airports as map points in the middle of your route (assuming 3 or more route points) you have to use the ICAO code for the airport if one exists (not all airports have one); a great way to look up the ICAO code is to search Wikipedia for your airport
- Otherwise, the middle of the route searches navaids, fixes, and then airports
- The route finder skips any codes it can’t find in the database and leaves them off the map; worst case scenario is you will end up with a blank page
I can see this going in two directions very fast: extremely useful/artistic/hackful on one hand and extremely spammy/vulgar on the other, as all good things on the web do.
I’m not preventing any of these scenarios from happening because I think that’s a waste of time. If you’re offended by spammy/vulgar things (see the Terms of Service), you probably shouldn’t look at the main Routes index page because it lists all of the available routes. If it starts to present a performance problem I’ll have to remove it but for now let’s call it an interesting experiment.
I make no guarantees that this feature will remain available in any form whatsoever. Again, read the Terms of Service before you use Jetrecord.
Have at it! Use them together. Use them in peace.
Paraphrasing Tufte here: an information display is designed to display evidence in such a way that questions may be answered. A good information display, then, is one that does this as simply and effectively as possible.
Before the display is made, though, you have to know which questions need answering and what their priorities are. A display cannot possibly put every answer to every question front and center on the display. Choices have to be made.
The Quadrants

It seems to me there are two axes we should consider: urgency and importance. These mesh with the quadrants of time management proposed by Stephen Covey in The Seven Habits of Highly Effective People. The table into which we place our questions looks like this:
|
Urgent |
Not Urgent |
| Important |
I |
II |
| Not Important |
III |
IV |
According to Covey, these are the types of activities that go in each quadrant:
I. crises, pressing problems, deadlines
II. preparation, prevention, planning, relationship building, true recreation
III. interruptions, some phone calls, some email, some meetings
IV. trivia, time wasters
In ideal situations we’re supposed to spend the majority of our time in quadrant II because it has the most profound impact on our quality of life, both personally and professionally.
A quadrant II flight example might be the behaviors and procedures used to “stay ahead of the airplane,” lest we end up in quadrant I which leads to high stress and the possibility of making critical mistakes.
But we’re not talking about designing an avionics package or a life management application. We’re talking about a logbook. So how do we translate those quadrant activities into logbook design questions?
A First Step
Here is a first crack at questions that could be answered by a logbook, in no particular order and without regard to importance:
- How many flights/hours do I have?
- How many hours in each aircraft?
- How many hours by type of aircraft?
- How many hours by type attribute (complex, LSA, turboprop, multi-engine, balloon)?
- How many hours do I have by experience (PIC, solo, XC, IFR, etc)?
- How many hours of instruction received/given?
- Am I currently qualified to fly a given flight based on a set of given rules?
- How far away am I from meeting a certain goal or requirement?
- Do I meet the requirements of my insurance provider and/or employer?
- How many times have I flown to this airport and when was the last time?
- When was the last maintenance action performed on this aircraft and what was the action?
- How many hours to go until the next required maintenance action for this aircraft?
- How many unscheduled maintenance actions have been performed on this aircraft?
- Why did I go around on that ILS approach 6 months ago? Which approach was it? How many ILS approaches have I made at that same airport? How many were go-arounds?
- What was the weather like at the origin/destination airports and along the route of my flight 2 years ago?
With those as a starting point, what have I left out? And what would be the top questions for you and the type of flying you do?
If you want out, you should be able to get out clean. That’s my philosophy, anyway. I have accounts on quite a few web properties, like Del.icio.us, Flickr, Twitter, BrightKite, Github, and on and on. At most sites like these, they make it as easy as pie to get signed up and get started.
Well, Flickr is an exception. (Shame on you, Yahoo!, for killing an otherwise awesome signup/login experience in the interest of integration.)
The problem with some sites is that once you’re on, they’ve got you. They’ve got your data. They’ve got your history on the site. Facebook used to be the poster child for this. You can check out any time you like, but you can never leave. They’ve since cleaned up their act. A little. I think. Or so I’ve read.
Well, needless to say, I don’t want Jetrecord to become Hotel California. Starting today, you can now delete your account and walk away knowing that everything about you is erased from the system. No intervention by me or anyone else associated with Jetrecord is necessary. Why should it be?
This is not to say I don’t want you here using the site and logging flights. I really do and I hope you stay. But if you decide you’ve had enough or you want to move to another online logbook, you can do so quickly and quietly.
Of course we’ll still talk about you after you’re gone and we’ll reminisce about the good old days when you were still at Jetrecord using the best online logbook software that is available on planet Earth. But that’s our business.
Okay, I’m already tearing up.
How do you do it, though? Easy. Go to the bottom of your user settings page. I made sure to put it all the way down there so you’ll have to think about it while you scroll. Click the link to “I want to delete my account.”
From there you’ll go to a confirmation page. Click the button to delete and that’s it.
After you click the button, your aircraft will be deleted if you’re the only one flying them, your routes will be deleted if you’re the only one flying them, then your flights, and then your account.
You should receive an email when it’s all done just to confirm.
Obviously, you’re welcome back any time. In fact, if you want to delete everything just so you can start over, you can do that too. I won’t tell. I’m a “work from a clean slate” type of guy, myself.
Cheers,
Harry
You can now export flights to Jetrecord CSV, LogTen Pro 4, Aloft Flight Log 4, Logshare, and ZuluLog. You can select a subset of flights using the date picker or you can export them all. It’s your choice.
This makes Jetrecord fully import/export capable. Your data isn’t locked in and you can import and export whenever you feel like it.
Additionally, I’ve added the ability to delete flights in bulk. Just like exporting, you can delete a subset of flights by using the date picker or you can delete them all. It’s up to you. Do you ever feel like starting over with a fresh import of flights? Now you can. Delete all your flights and then import a new batch from your favorite software.
You can find both the export feature and the delete feature at the bottom of your flights page. Please note that you can still delete individual flights by selecting the Delete link next to your flight or on your flight detail page.
If your software isn’t supported, just send me an email with your software name, version, and attach a sample export file. I’ll add import/export capability as quick as I can.
Cheers,
Harry
Finally!
You can now import flights from other logbook software into Jetrecord. A great big thank you goes out to Daniel “daniel” Roman, Bill “BillG” Gargano, and Chris “captainslim” Johnson for loaning me their data so I could test.
Currently, LogTen Pro, Aloft Flight Log 4, Logshare, ZuluLog, and plain CSV are supported. I will gladly add support for other software. Just let me know the software and version number and send me some sample data.
You can also export flights in all of these formats.
Some important details:
- You’ll find the link to the importer on your user page
- It does not check for duplicate flights so make sure you weed those out before importing
- For aircraft that are not already in the database, if the aircraft type doesn’t match the type format in the database it makes a best guess attempt but will leave it blank otherwise
- For routes, depending on your software, it constructs them like this: From + Route + To
- You can choose to “ignore” the route field when you import your flights
- If the From field matches the first part of the Route field, From is ignored
- If the To field matches the last part of the Route field, To is ignored
- Matches are exact; this keeps the airport and any of its navaids separate
- There is no undo yet; if there’s an error, you can delete the flights and import again or edit the flight directly on Jetrecord
Please let me know if you find any errors and I’ll get them cleaned up quickly. This feature is a priority for me because it means you can continue to use your preferred logbook software as a primary and keep your data on Jetrecord as a backup (and vice versa) without having to duplicate your efforts.
Cheers,
Harry
A huge thanks goes out to Eric “egid” Gideon for suggesting this feature and helping me out with the implementation.
You can now log detailed instrument approaches with each flight on Jetrecord. You can log the total number of approaches, the name of the approach, the approach type (GPS, ILS, VOR, etc.), and the number of actual IMC approaches.
Not only that, but you can have as many approach entries as you like per flight. For example, did you make two missed approaches at 13R at Boeing Field and then decide to head north to Paine Field for an approach at 16R? Jetrecord can handle it.

By the way, am I the only one bothered by the spelling of the word approach. Every time I look at it I feel like I should pronounce it in Gaelic. Either that or it looks like the name of a really bad Web 2.0 product.
Cheers,
Harry