Thursday, July 26, 2012

Sporty's Visit and Radio Repair

Over the past week, my wife and I have been visiting family and friends around the Midwest. A few days ago, when leaving Louisville for Cincinnati, one of the radios in our airplane stopped working.

Since it's a secondary radio, it wasn't a big deal, but I missed the convenience of using it for ground services such as getting the airport weather and talking to ground control.

When taxiing, I may have to use four different radio frequencies for receiving the weather and advisories, talking to the terminal (FBO) , picking up my flight clearance, and getting permission to taxi from ground control. Just before takeoff, I'll get takeoff clearance from the tower and then, shortly after takeoff, I'll have to flip over to air traffic control frequencies along my route. As I reach my destination, I'll need to receive the local airport weather and advisories and then, as soon as I taxi off the runway I have to immediately contact ground control.

My point is that there are a lot of different frequencies to manage. I've found it easiest to keep track of my frequencies by breaking them down into two distant categories: air and ground.


I keep the air frequencies on my top (primary) radio and my ground frequencies on my bottom (secondary) radio. The beauty of this system is that I can listen to two radios at once and, when someone is transmitting on the primary radio, it will block transmissions on the secondary radio.


With my secondary radio out of service it meant that I'd have to temporarily switch away from the ATC frequency to the ground frequency to hear the important advisories, which is a bit of an inconvenience.

Radio Repair
Since my secondary radio was out of service, and I was traveling on vacation in the Cincinnati area, I had to find a local avionics shop that could help me out. I received a great recommendation for Cincinnati Avionics at Clermont County Airprot (I69) which also happens to be the home of Sporty's Pilot Shop - the pilot shop of pilot shops. You'd be hard pressed to find any pilot in the U.S. who hasn't heard of Sporty's.


I made an appointment for Tuesday at 9 AM at Cincinnati Avionics and I arrived at my local airport, Butler County Airport (KHAO), with plenty of time. But, as I was preflighting my plane, a thunderstorm moved through so I had to sit it out in the plane for about 45 minutes until it passed.


Scott testing out my secondary com/nav radio.
Once the thunderstorm was out of the way, I took off for the 20 minute flight. Even though it was still raining, the flight was exceptionally smooth. As soon as I landed and taxied up to the avionics shop, the avionics tech that I'd been speaking to, Scott, came out to greet me just as I shut down the plane. Once Scott, who is also a former Marine, confirmed that my radio was properly seated in its chassis he pulled it out, took into his shop, and disassembled it on his bench.


He checked out a few things on the radio and confirmed that the problem was actually with the radio and not with the airplane's power. Then he said, "this is the moment of truth," as he checked the radio's internal fuse. If it was just an issue with the fuse, that would be a quick fix. Otherwise, it could possibly mean replacing the entire radio which runs $4,000 – $5,000 since this radio also used for navigation.


Luckily, once he replaced the fuse, everything worked fine. But, before he had time to repair it he told me that he had to run to a 9:30 AM meeting which would last about 20 minutes. He asked me if I'd like to visit Sporty's - which was a no brainier. So, he gave me the keys to their crew car and I drove over to the mecca of pilot's shops on the other side of the field.


Sporty's
The retail portion of Sporty's pilot shop is only several hundred square feet. But the warehouse stocks virtually everything and it's "ginormous." They even have a dais so visitors can get a good view of the warehouse. In front of the store is their fleet of Cessnas for flight training with a large cafeteria on the second floor.


Stratus
After dodging thunderstorms while flying throughout the Midwest this past week I decided to get a Stratus which displays inflight weather directly on the iPad. The beauty of this device is that, unlike XM Aviation Weather, it doesn't require a subscription. The FAA broadcasts weather reports, at no charge, throughout the country, as part of its next generation flight tracking system, ADS-B.  As luck would have it, there's only one place that sells the Stratus: Sporty's.


After purchasing my Stratus, I headed back to the avionics shop to settle up and saddle up for the flight back to Butler County Airport. I noticed several thunderstorms moving in the direction of Butler County, but I still had plenty of time - after all, it was only a 17 minute flight back.


When I got back to Butler County, I put my plane to bed and went into the terminal for about half an hour. While waiting for my ride, the staff at the terminal spilled outside to see a wicked cloud formation from the cold front that was moving in with the thunderstorm.


Only the edge of the thunderstorm hit the airport, but it was still not gentle. On the way home I noticed many downed tree branches. The Stratus will definitely pay dividends in weather like this.


In the end, it was a successful morning. Mission accomplished and it wasn't even noon, yet.

Monday, July 23, 2012

Portland, Tennessee: Life in a Small Town

I'm always fascinated how "someone else's" local news can seem irrelevant until you're a part of it.

Last week, I visited a Marine buddy and I spent a couple days in the small Tennessee town of Portland. My buddy is the seventh generation of his family to live there. When he was a kid, the town's population was about 6,000; now, a few decades later, it's doubled to about 12,000. There's even a street, which bears his surname, that used to be the driveway to his grandfather's farm.

Main Street revitalization board meeting.
After living there for so many generations my buddy knows his neighbors and the town's history. As an attorney, my buddy has an office in downtown Portland on Main Street and he also serves on a couple local non-profits.

While I was visiting, I had the opportunity to accompany him, as an observer, at a board meeting of a soon-to-be-formed non-profit to revitalize the downtown area. Most of the 90 minute meeting was run by a state rep who specialized in helping Tennessee towns implement Main Street revitalization plans focusing on design, history, and the economy.

Portland Airport expansion plans on the drawing board.
The previous day, my wife and I flew into the Portland Municipal Airport. For such a small town, the airport has a surprisingly long runway - 5,000'. But, apparently that's not long enough for Portland. A few hours before the meeting, I read an article on the front page of the local paper, The Shopper, about how the city had plans on the drawing board to extend the runway.

When I walked into the downtown revitalization planning meeting I immediately noticed the airport expansion plans, quite literally, on the drawing board. It struck me as a coincidence that I should see the very plans, at an unrelated meeting, which I had just read about on the front page of the local newspaper.

Portland's future airport plans include lengthening the runway by 200' and adding taxiway access to each end. Large corporate jets should have no problem landing on a 5,200' runway. Currently, pilots have to taxi on the runway to get to the end before beginning their takeoff run (a technique called back taxiing). I hope that a bigger airport means bigger business for Portland.

Monday, July 16, 2012

Twitter Alternatives (Rough Draft)

The beauty of Twitter is that it's simply 140 characters of text. Shorter than an SMS text message - akin to a headline. Any other payload in the message is a hyperlink which is also text.

Why only 140 characters per tweet? Because it was designed to fit into a 160 character SMS message preceded by the sender's user name:
"@joemoreno: Just arrived at the Top of the Rock. http://epics3.com/piqk"

Which begs another question: Why only 160 charters for an SMS? Because the inventor of SMS, Friedhelm Hillebrand, typed out random sentences and noticed that they fit into 160 characters.

Worthy Competition
There have been some alternatives to Twitter, but they're just copies. What's the point of making a copy of Twitter if it still suffers from the same Achilles' heel: a centralized single point of failure controlled by one corporation?

A worthy competitor to Twitter requires fundamental integration into the Internet's infrastructure. This shouldn't be too difficult, after all, it's just text --- or another way to think about it, it's just TXT.

DNS? Seriously?
The Twitter alternative that I'm proposing simply uses DNS. In other words, a tweet would simply be stored as a DNS TXT record. Since it's widely recognized that DNS is the Internet's single point of failure, it has multiple, redundant and distributed, servers to keep it running. DNS servers have impeccable uptime stats because, without DNS we have no practical Internet connectivity.

Advantages.
1. No additional servers required. Simply add a new DNS record for each TXT tweet.

2. Redundantly propagated across multiple DNS servers.

3. Server load distributed to ISP DNS caches. In other words, massive traffic for a single tweet would not need to go back to the authoritative DNS server. Set a long TTL for the TXT tweet, say 24 or 48 hours, and each local ISP should only hit the authoritative DNS server once every day or two to refresh a particular tweet's TTL.

Disadvantages
1. Can't easily delete tweets since they're cached at each ISP's DNS server, especially if added with a long TTL.

2. Tweets would need to be inserted into TXT records using a robust API - the only one I'm aware of is Amazon's Route 53 API.

3. Each TXT tweet would need to be a linked list to the previous tweet; or, perhaps, a double linked list to both previous and next TXT tweet.

4. Each TXT tweet would need an embedded timestamp (either UNIX timestamp: 1342472514 or a human readable dateTime object: 2012-07-16T20:38:00Z).

5. TXT tweets, unlike Twitter tweets, can be edited.

6. TXT tweets can expire after the TTL timesout.

TXT Tweet Proposed Standard
The format of the TXT tweet uses pipe | delimited text:

Timestamp | GPS Encoding | TXT Tweet | Previous Chronological Tweet Host Name | Next Chronological Tweet Host Name (optional)

(White space added around pipes only for readability purposes.)

Since the TXT tweets are a single (or double) linked list, we need to know where to start. The logical place to start is with the most recent (i.e. last) TXT tweet. That could be defined in the domain's root TXT record which can be found via the dig command:

dig -t txt joemoreno.com
joemoreno.com.   1 IN TXT "2012-07-16T20:38:00Z|tweet4.joemoreno.com"

So, the most recent TXT tweet is at tweet4.joemoreno.com. (A simpler naming convention could be host names with integers, such as 0.joemoreno.com, 1.joemoreno.com, 2.joemoreno.com, etc.)

dig -t txt tweet4.joemoreno.com
tweet4.joemoreno.com. 86400 IN TXT "\"2012-07-16T20:38:00Z | 40\16150'16.8\"N74\16127'57.6\"W | 31 years ago, today, Harry Chapin left us. http://blog.joemoreno.com/2011/07/harry-chapin.html | tweet3.joemoreno.com |\""

TXT tweet tweet4.joemoreno.com points to tweet3.joemoreno.com as the previous TXT tweet.

dig -t txt tweet3.joemoreno.com
tweet3.joemoreno.com. 86400 IN TXT "2012-07-16T20:36:00Z | | Yahoo has named Google executive Marissa Mayer as its new CEO. | tweet2.joemoreno.com | tweet4.joemoreno.com"

Practically speaking, we might be limited to 254 characters in a DNS TXT record in order to support older DNS servers. It's a tight fit, but it works with the timestamp, GPS encoding, 160 character TXT tweet, plus the previous and/or next TXT tweet host name.

Left for the Student
Several services need to be built on top of this proposal. Displaying a single user's TXT tweets can be rendered by a simple script running on a web server to display a specific user's feed. Mixing different user feeds, chronologically, is a little harder, but very doable.

However, where it gets challenging is how to handle "follows" and "mentions." In both cases, a server would need to either push or pull these notifications in real time. Pulling could be simple polling, like an RSS feed query. But, push notifications can be a bit more challenging. I'll have to think about how this part would work.

Sunday, July 8, 2012

Time Management in the 21st Century


The primary purpose for planning is to get results by controlling events.

Over the years, I've learned how to plan to forget everything that I need to do and organize in a way so that I could afford to forget.

The key is to organize my tasks so they are either self-prioritizing (we never forget to wear our shoes to work) or ensure that they come in front of me at the appropriate time. This seemingly simple advice took me a long time to master. But, now that it's a habit that makes for relaxing evenings since I can free my mind from work. 

Que Sera, Sera

I come from a rather casual family. I like to use the term, "Neapolitan," to describe my New York Italian upbringing. In simple terms, this means that my family was always late to events, or, rather, we considered 90 minutes late to be on time.

When I was 18 years old I joined the Marines. The Marine Corps obviously had a different philosophy about timeliness and tardiness. Being late was a crime known as UA (AWOL). "Hurry up and wait," was the norm as well as other axioms such as, "To err is human; to forgive is divine. Neither of which is Marine Corps policy."

Two events from my time as a Marine helped me refine my time management skills.

Write It Down

When I was a corporal, we were getting ready to make an amphibious landing, during an exercise, after spending two weeks aboard ship.

Technical aside: We were testing out new military equipment which we could use to set up simple, secure, chatrooms. It was nothing more than a specialized piece of hardware that could interface with an encrypted military radio system (PRC-77 and KY-57) using Procomm software that was very popular in the pre-TCP/IP world of the mid-1980s.

While preparing for our amphibious assault, I had packed up the equipment and then, unbeknownst to me, another Marine had placed it on a chair and slid it under the desk to tidy up our workspace. Instead of making a list of materiel to bring ashore, I just glanced around the desk and saw that there was no visible equipment - I completely missed the fact that the laptop and communications equipment were tucked under the desk on the chair.

When we got ashore and discovered that the comm gear was missing I received a nice reaming from my captain.

Lesson #1: Write it down.

Plan It Out

About seven years later, when I was a first lieutenant, I was deployed with a MEU made up of four ships sailing for the Persian Gulf. While in the middle of the Pacific Ocean, I was supervising the transfer of supplies from one ship to another - known as cross-decking. To make a long story short, the supplies didn't get palletized in time to make the scheduled helicopter.

Lesson #2: Plan It Out.

Get Results

As a Marine supply officer I was responsible for ensuring that we tracked all of the equipment in our battalion - after all, it was entrusted to us by the U.S. tax payer. This process was accomplished using a cryptically named procedure referred to as the quarterly CMR reconciliation.

Since I, working in the supply warehouse, didn't have day to day control over, say, the rifles in the armory or the Humvees in the motor pool, we'd ensure that these items were tracked by a specific person, designated in writing, known as the Responsible Officer (RO). We had about a dozen CMR accounts in our battalion and, once a quarter, we'd task the RO to physically inventory each item within 15 calendar days as per the Marine Corps Order (at the time, deadline extensions were not allowed).

The problem is, even with the ROs best intentions to complete the inventory, on time, the CMRs were rarely completed by many ROs within 15 days for a host of legitimate reasons. Although this wasn't my responsibility, it would always come back to bite me, later, when our records were inspected annually.

I tried a variety of techniques to improve this process. One option was to have the RO sign a letter of intent that the inventory would be completed within 15 days. But, when the CMR still wasn't done on time (again, usually due to circumstances beyond our control) I was stuck with the same "ding" on our inspection. Another option was to get the CO or XO involved in the process, each quarter, but that still didn't work.

Of course, we could have backdated the CMRs - formally known as fraud - but we never did that. I'd rather take the hit on the inspection.

After trying a host of different techniques, we finally found one that worked. Instead of issuing out all CMRs to all the ROs at the same time, we'd meet with each RO, before the beginning of each quarter, to see when he wanted to conduct his inventory. This definitely made our job, in the supply section, harder since we had to track a dozen different CMR deadlines, but that's what it took to get the job done. We put up a large white board in our office so we could easily see the status of each CMR. Problem solved.

Lesson #3: Get results.

Time Management in the 20th Century

After my mistake, when I was supervising the pallet cross decking, I became intrigued with time management. I needed to find a way to better track tasks. I tried different techniques and studied time management books ranging from Time Management for Dummies to Stephen Covey's The Seven Habits of Highly Effective People and First Things First. Many of these teachings focused on the four generations of time management.

The key that I discovered in the mid 1990s was to carry a day planner with me, all the time, and write down every task and appointment. I wouldn't check off a task until I had confirmed that it had been completed. Any to-do item that didn't get done today was moved forward to the next day's list in my day planner. After a few days of rewriting low priority tasks, I either got it done or explicitly dropped that to-do since it was no longer important. I didn't prioritize to-dos with letters or numbers, such as A, B, or C - that just doesn't work on paper. If there was something on my list that was urgent or important, I simply highlighted it with a yellow highlighter.

I photocopied important lists - such as a list of all the equipment in our infantry battalion or a list of the supply chain status codes, etc - and added them to my day planner so that they were always at my finger tips.

Any task that I wrote down in my day planner, which needed to be delegated, was prefaced by my coworker's name:
☐ Sgt Smith - Complete maintenance report and fax to HQ.

As I delegated the task Sgt. Smith and I would agree on the deadline and then I'd add that to the task in my day planner:
☐ Sgt Smith - Complete maintenance report and fax to HQ. By Thursday close of business.

I ended up turning my time management techniques into a 74 page workbook that I used to train others.

All of these techniques worked fine until the consumerization of IT resulting in the proliferation of personal smart phones and tablets in the workplace. Carrying around a day planner was no longer practical.

Welcome to the Digital World

While the fundamentals of the time management skills I learned haven't changed, the implementation is much easier in the digital world. No more carrying around a paper based day planner or writing and rewriting tasks on paper.

Over the past year, I've learned how to simply use my iPhone, iPad, and Mac to easily manage my time and tasks via iCloud. You don't need all of these devices and services - just an iPad, alone, will suffice - but I found it very convenient to have it all tied together and kept in sync. However, if you're not disciplined enough to follow my first lesson - write it down - then it won't work.

Meetings and Appointments

Keeping track of meetings and appointments is much simpler, now, since you'll probably be notified of an upcoming meeting, via e-mail, with either an Exchange or iCal invitation. As a matter of fact, you probably won't even see the e-mail with the calendar attachment; instead your device will automatically place the meeting invitation on your calendar where you can answer Yes / No / Maybe.

One gotcha when using iOS devices in a Microsoft Exchange environment is that, occasionally, if you accept a meeting on Windows it might not show up on your iOS device. The key to preventing this is to only accept meetings on your iOS devices. If you accidentally accept a meeting on your Windows computer and it doesn't show up on your iOS device, then you can forward the meeting from Outlook, to yourself, as an iCal invitation. The iCal and Exchange meeting invite won't be in sync if the meeting time changes, but it's better than completely forgetting about the meeting.

To-Do Tasks

Every time you come up with a new to-do task then write it down in your device. Since iCloud syncs everything for you - usually within seconds - then it doesn't matter where you write it down since it'll show up on all of your devices and computers.

I use iOS's free Reminders app which is a simple way to track a list of tasks. I've labeled one list "Me," which are tasks that I need to complete. I've also created a list for each person that I interact with on a daily basis. As to-do tasks come up that I need to delegate, I write them down on that person's list. Now, whenever I'm talking to that person, I can just look at the person's to-do list in my Reminders app.

The key, when jotting down tasks for delegation, is to write out the to-do reminder as you'd actually ask it. For example, if you only write down "Report" then there's a good chance that you'll forget which report, etc, you were going to ask about. It's better to write down as much detail as possible; for example, "What is the status of the maintenance report that's due to the COO tomorrow afternoon?"

After each tasking that isn't fully completed, I put an "A:" and jot down the "answer" to the question I asked or its status. That way, when we reviewed it later we could pick up from where we left off.

Notes and Minutes

Over the years I've sat in some long meetings and conference calls. It's impossible to remember every decision, tasking, issue, and due date from every meeting. I've found it very handy to capture all of this information in the iOS Notes app. This is especially handy since it's searchable. I generally create a separate note for each project where I can track key events and decisions. Many times, project information will be passed via e-mail, so it's simple to copy and paste it directly into the respective note. When deadlines changes, it helps to explicitly capture that, too.

7/9: Code complete (was 7/1)
7/10-18: User acceptance testing (was 7/6)
7/19: QA begins
7/20-21:Vulnerability assessment scan
7/24: QA complete
7/25: QA sign off
8/1: New website live

Remember, to have a fighting chance, you'll need to get into the habit of always writing down all of your tasks.

Tuesday, July 3, 2012

Blogging vs Journalism

Journalism, meet blogging:
Writing a personal blog post on 5/20/12 that CNN reported on.
What's the difference between blogging and journalism?

There's a perception that journalists tend to look down on bloggers since the bar to blog is low. Anyone can become a blogger - simply set up a free blog and write whatever you please. If you blog on a semi-regular basis then, congratulations, you're now, officially, a bona fide blogger.

Journalists, on the other hand, tend to be paid professionals - backed by a corporation with proofreaders and fact-checkers - whereas all but a few bloggers do it pro bono (or receive a trivial amount of incidental ad revenue).

Key Difference
I, having been both a paid and unpaid journalist and blogger, noticed one key difference between blogging and journalism...

Journalist tend to report the facts and interview (quote) witnesses. To put a fine point on it, journalists report what witnesses say.

Bloggers, on the other hand, tend to write essays from their personal point of view. Many times, if a blogger does quote a witness, the witness was probably not speaking directly to the author (i.e. the blogger heard the quote on T.V. or Twitter, etc.)

(Side note: Is this the future of reporting, complete with witness citations?)

Bloggers tend to write in first (I) or second (you) person. Journalist tend to write in third person with first hand quotes from witnesses.

These key differences are not hard and fast rules, they're simply generalizations.

Let's look at it a different way. How many blog posts have quotes from multiple first hand witnesses expressing different opinions? Not many.

Just to be clear, I am, in no way, favoring journalism over blogging, or vice versa; rather, I'm simply pointing out a key difference between the two.

Purpose
Rather than debate whether journalism is more important than blogging, it's best to realize that each serve a different purpose.

The purpose of journalism is to report the facts and record events for a (daily) historic purpose. Many regularly scheduled publications are official newspapers of record - in other words, a private or public company authorized by the government to publish public or legal notices. (Conversely, I am not aware of any "blog of record" which serves this purpose.)

While blogs can have many different purposes, their best use, as Dave Winer has described for more than a decade, is to "Narrate your work." You can think of blogs as both professional diaries for discussion and debate as well as a place for describing personal experiences.

Neither a single news article can define journalism nor a single post define blogging. Rather, it's left as an exercise for the reader.