Episode 2 of The Building of Jetrecord
Episode 2: Tell Me a Story, is out now. How do you know what you’re building is what people really want?
Episode 2: Tell Me a Story, is out now. How do you know what you’re building is what people really want?
The servers that support Jetrecord will be undergoing routine maintenance on Thursday, October 23, 5–6am UTC/Zulu. Here in the States, that’s Wednesday, October 22, 11pm–12am MDT. Jetrecord will be unavailable during this time.
Cheers,
Harry
I’ve just posted the first episode of my developer series on building version 2 of Jetrecord. If you’re interested in application development, this is for you. There’s not much code in this one (actually, there’s no code), but one of the hardest steps to take in any project is the first one. That’s what this first episode is about. Have a look!
Cheers,
Harry
Jetrecord will undergo routine maintenance on Monday, October 6, from 9am to 11am MDT. The web site will be unavailable during this time. Please let me know if you have any questions.
Update: Maintenance complete as of 11:41am. Started later than expected. Thankfully, upgrade process was quick and painless.
I recently redesigned Jetrecord on paper and have come to a major decision point: I need to write the code again from scratch.
One, the redesign is enough of a change that it actually warrants a new foundation for the software. The user system is being changed to support accounts with multiple users, account features, roles, and permissions. I’m setting the base for paying accounts with extended features beyond the free version and these will use an ecommerce subscription system. To top it off the user interface is almost completely new. Plus I’m adding a developer API that will be ready to go from day one of the new design.
Two, now is a good time. I’ve been watching the use of the site trying to determine the usage patterns. Why? Because websites, like buildings, learn. This is why the practice of “release early, release often” works so well. You start writing the software using the best plans you’ve got. You lay down the sod and let users create the well-worn paths. You put the sidewalks in after you know where the paths are.
Also, at the time of writing Jetrecord has about 100 users and everyone is on the free plan. It’s much easier to rewrite the software and perform all the necessary data migrations with a smaller user base.
The first is that Jetrecord will have a better foundation going into the future. This is not to say we’re on shaky ground right now. On the contrary, aside from some very minor issues that have affected one or two people, Jetrecord has been running smoothly for the last couple months. What I mean is that I’m putting down a better, more flexible sodding system, so to speak. I’ve written a lot of code that was designed to get features up and running fast. After a time it starts getting harder and harder to add new features without repeating your code in too many places. This is also known as code debt. I’m starting to mix metaphors here so just know that Jetrecord is going to be better software.
The second upside is that I’m going to broadcast the process. That’s right. I’m going to cover the rebuilding of Jetrecord in detail in a series of screencasts aimed at developers on my personal website. I’m going to take you behind the scenes of Jetrecord and expose the internal process I’m using to create the best online logbook software around. Code! Aviation! Vulnerability! What more could you ask for? And truly, if you follow along, there’s no reason why you couldn’t create your own logbook software if you wanted. At the very least you’ll get to see what’s coming next for Jetrecord, and, assuming you join the discussion, you can have a say in its direction.
Aside from bug fixes and performance improvements, not much. The site pretty much runs itself without any intervention from me because I’ve set it up to be mostly automated. You can continue to use Jetrecord as normal. For the most part I’m going to concentrate on making the new version the best it can be. Since I’m the only person here I’ve got to put myself wholeheartedly into version 2, so I hope you’ll understand and I really hope you’ll stick around for the exciting conclusion.
I’ll keep posting here when I have new things to say about Jetrecord or about the screencasting series. Otherwise, things will be mostly quiet for a while. Maybe that’s a good thing. :)
Cheers,
Harry
Sometimes you want to log the PIC’s name, the examiner for your checkride, your instructor, your student, or even a memorable passenger. This is now possible on Jetrecord.
You can add as many people as you like. Name, role, and privacy is available for each person. As a bonus, if the person is a Jetrecord user you can enter their nickname or real name (if they’ve provided their real name) and Jetrecord will link them up on your flight page.
The roles listed currently are instructor, student, PIC, SIC, engineer, safety pilot, examiner, other crew, and passenger. I would love to have your feedback on whether or not these role names work for you, and if you’d like to see others listed. And if something else is missing from this feature, say the word.
Cheers,
Harry
If you’ve got at least one flight logged on Jetrecord you can now view a breakdown of your hours by experience and aircraft type. The default hours page will show the breakdown for all flights. You can select a date range if you want to be more selective. For example, if you need to know if you meet your minimums for recent flight experience over the last 90 days, you can type from “90 days ago” to “today” and click “Go”. It’s that easy. You can also say things like “2.5 years ago” or “yesterday” or “3 weeks ago” or “1 month ago.” Give it a try!
More breakdowns by aircraft type are coming soon.
Something I’ve been excited about ever since I got the idea for Jetrecord is being able to have a dialogue about your flights. Now you can! Comments are now enabled for flights. Want to know more about a pilot and the flights they’re taking? Ask a question. Share a tip. Share pictures and links to related web sites or other blog posts. Flight instructors: give feedback on your student’s performance right in their logbook for the flight they just took.
And that’s not all. Comments are enabled for aircraft, aircraft types, airports, routes, navaids, and fixes, too. Want to share your thoughts on your favorite (or least favorite) aircraft? Want to share tips on making the perfect landing at your favorite airport? Want to share sightseeing tips (or photos or links) along your favorite route? Have at it!
Textile markup is supported so you can make your point or provide links and embed photos right in your comments.
Comments are part of a larger blogging effort here at Jetrecord, so look for more along this front soon.
Cheers,
Harry
It’s been a while since I’ve written about updates to Jetrecord. I usually skip out on minor upgrades and bug fixes because most aren’t worth mentioning and the upgrades have been small enough to blend in with what’s currently there.
I started working on a major redesign of Jetrecord last month and the work is going well. Along with a new interface I’m adding some new features and the foundation for the account management system that will include both free and paying accounts. As I work on that foundation I’m realizing how important it is to get it right. Not perfect, but right. No software is perfect.
At the same time I’m itching to push out a couple new features that have an impact on data visualization and community building. I had hoped to get the new account management system out the door first, followed soon after by the new features, but I’m starting to think I want to push out those features before the new system is in place. It gives me a chance to gauge their use and make adjustments in the new design.
So, that’s what I’m going to do. And here’s what’s coming, most likely arriving in the order listed below.
I’m not mentioning release dates because they usually fall by the wayside. There’s a lot more coming but I don’t want to get too far ahead of myself so I’m stopping here.
Cheers,
Harry
Last night I had the privilege of being on the Airplane Geeks Podcast along with several other online aviation community leaders. The episode, a live online meetup hosted by Courtney Miller and Max Flight, is a roundup of what’s happening online in the social sphere of aviation and looks specifically at blogs, podcasts, social community sites, and film.
You can download the episode in MP3 format on the post for Episode 10. With 10 interviews, it’s a long recording at 1 hour 40 minutes, but it’s worth it if you’re an aviation geek. If you’d like to go straight to my interview in the show, fast forward to about 54:45.
Here’s the list of people on the show:
There are so many great sites out there with people doing really interesting work. You can be sure I’ll be adding several new blogs and podcasts to my feed reader. And I’m excited to see what happens next as I’m sure there will be more meetups of this kind in the community with a lot more sites coming into view.
In other news, I’m looking for a vocal/public speaking coach. :)
Cheers,
Harry
“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.
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