Tech Talk: NBAA

Recently, I began preparing a session for the NBAA conference in Orlando targeted at the aviation industry. I struggled identifying the needs of the audience since they were a bit different than I usually have the opportunity to speak to. The following article was not the presentation I gave, but an early direction to introduce several technology concepts to the group and help them understand how these topics could improve their business processes and general operations. The primary topics included:

  • Electronic Data
  • Specialized Software (and SaaS)
  • The Cloud
  • Mobile
  • Security Tips

Though I ultimately presented a slightly different direction for this material, I think it still has some value to be presented here.

Migrating from paper to electronic systems is a challenge. Technically, the data needs to be structured in a way that computer systems understand, but the real challenge comes from user adoption. Paper let’s you write anything you want, change workflow however you need at that moment, and is comfortable to some workforces that are still not yet at ease with computers.

However, the move to electronic data allows for real time validation of the data to significantly reduce mistakes, gives us visibility into trends that may be occurring, and allows us to access the information by several people at a time.

Take reporting aviation discrepancies for example; at Flightdocs, we have seen a number of operators switch from a paper based write-up to electronic. Images and video can be captured and attached to the discrepancy for later evaluation and over time, we can begin to track trends in part failure or unexpected use.

As you begin to move your data to electronic systems you may be tempted to move to Excel or other similar general use software. This is a great start, but it has many drawbacks. Data is typically not validated and doesn’t reflect the real use of the data such as proper tolerances or required fields.

Collaboration becomes a real issue as emailing files back and forth is fraught with errors and typically if the file exists on a network it can only be in use by one person at a time.

Look for specific software that solves an important problem for you. Whether it is maintenance, flight scheduling, inventory, or accounting — find an expert company that can help you tackle these problems in a purpose driven way.

In most cases, I advise against buying on-premise software if possible. This is software that you have to install and maintain at your company and comes with all kinds of hidden costs and complexity. At Flightdocs, we both use software as a service as customers, and providers as our business. This is software that is hosted by someone else, often in a cloud, and is accessed by the internet for a monthly or yearly fee.

The cloud, at it’s simplest form is a way of renting servers from another company with quite a bit of magic thrown in to handle massive scaling. However, this over simplification shouldn’t belittle how important this shift in technology is and all of the tremendous opportunities it now gives us.

In the past, it was incredibly difficult to scale quickly and across continents. It meant purchasing servers, setting up data centers, staffing the appropriate IT resources to manage the hardware and software, and keeping everything up to date and running smoothly.

The cloud allows all of that scale and complexity to disappear and you to simply use or develop applications and has led to more innovation in mobile device software and internet enabled embedded devices.

Now that you’ve moved from paper to electronic, selected the right targeted software for your operations, and have access to that data anywhere through the internet, look to mobile for access away from your desktop.

Imagine each leg of your flight updating compliance metrics and aircraft times in real time to help keep your due list in check or notify home base of necessary maintenance or inventory orders.

You could even dispatch work to individuals who can follow up with their mobile devices and keep getting the latest information throughout the day.

Now that we’ve built up this discussion with all of the good things you can do with technology, let’s share a couple of important drawbacks.

When you go to software as a service or to the cloud, you intentionally give up a lot of responsibility. This can also work against you in that you may not have as much control if there is an issue. In computers, we all know that things aren’t perfect. Outages do happen, hardware does fail, and mistakes are made. If you are already outfitted with the best experts in supporting a production quality network and application, then it may not make sense for you to give over this control.

Security is a double edged topic. If the data that you are storing is of significantly high security, such as weapons systems, or medical patient information, then you may want to reconsider a cloud provider. This is not to say that a cloud provider is going to be necessarily less secure, but you have less direct oversight and therefore are unable to answer some specific security requirements for certain certifications.

  • Home Depot — 56m credit cards potentially stolen through installed malware on cash register machines.
  • JP Morgan — Month long attack stealing 76m names, email addresses, addresses, and phone numbers of account holders.
  • Ebay — 145m user accounts potentially compromised by hackers stealing employee accounts.
  • Adobe — 152m credentials accessed and sensitive information erased.
  • Target — 70m records stolen from compromised magnetic strips on card readers.

When you opt to start moving more and more data to the cloud, you’re making your information more accessible. This is a good thing, but it needs to be controlled for the right people. There are several steps that you can take to further protect yourself and your data.

Here are a few helpful tips:

  • Always use a strong password. These are passwords that can be harder to remember but provide much better security.
  • Never use the same password on more than one system. By enforcing this, you limit your exposure if by some chance a password is compromised.
  • Always ensure you are connecting over secure traffic, look for sites that show a lock in the address bar.
  • Ask for and setup multi-factor authentication to help protect you, even if your password is stolen. Multi-factor authentication also called 2-factor authentication is when you have a username and password and a second factor such as your phone to confirm login attempts.
  • When using a software as a service company, ensure your password is hashed when stored. Flightdocs uses one way hashing to prevent decryption attacks.
  • Ask about encrypted data practices when moving data to the cloud. Not all data needs to be encrypted, but data that you consider sensitive should be.
  • Keep computers and browsers up to date with the latest patches.
  • Install virus and malware scanning software on your computer to help prevent attacks.
  • Always set a pin or login for your mobile phone. Phones are easy to steal and provide lots of information as we adopt mobile access strategies.
  • Be careful with roaming settings on your phone due to wireless hijacking.
  • Backup your data, but also be careful to encrypt and protect backups as they can become vulnerable sources of data.

Moving to the Cloud, as a Consumer

Recently, I’ve been thinking a lot about the cloud. As a .NET developer, most of my thoughts have been on whether there were any projects I had which would make sense to reside on Azure. I struggled with the temptation of putting something up for the pure sake of trying it out but couldn’t really come up with a valid business case for the current suite of applications my team develops on. The assumption is there that moving applications to the cloud have some immediate benefit, such as scalability, ease of use in future deployments, and minimizing the need for internal infrastructure maintenance. However, whether these benefits would materialize is still in question and in most cases there simply isn’t a need right now.

So, with all of the uncertainty of putting business critical systems in the cloud yet, I thought I would try as a consumer first. I broke down my current day to day needs from my machine to see what I could potentially offload to the cloud. Here is my initial list:

  • Programming
  • Office
  • Pictures
  • Videos
  • Virtual Images
  • Note Taking
  • Email
  • Instant Messaging (Communication)
  • Twitter/Blogging/Social
  • System Administration (putty, VNC, remote desktop)
  • Zune/Music/Podcasts (WP7 Downloads)

Programming

This is a difficult one because this is where I draw on the horsepower of my machine throughout the day. I did work with a consultant about eight months back where he was running his development environment purely inside an Amazon EC2 instance that he would remote into whenever needed. There are some pretty nice advantages to this, such as, being able to access your full development environment from a netbook or lightweight, inexpensive laptop. Also, this removes the worry about breaking, losing, or having your primary development machine stolen.

The two options I am currently looking into are the VM role in Azure or Amazon EC2.

In addition to the development environment and OS, I focused on source control. Most companies that employ full time developers have centralized source control. However, if you’re on your own, or want to have separate source control for your non-work related projects, there are several options you can explore.

Several companies host Team Foundation Server (TFS) for a monthly fee of anywhere from $15-40 per user per month. Check out a list of TFS hosting companies from Microsoft.

If you are working on purely open source projects that you would like to source control, you can also host your code on Codeplex.

For more cost effective cloud-based source control (as low as $7 per month), try comparing some of the Subversion providers.

Office

There are quite a few options for storing documents online, but besides Office 365, I haven’t seen a really complete set of tools for developing document content without a local install.

A free alternative to Office 365 is Google Docs for basic document types.

Pictures/Videos

I am still on the lookout as to how I want to store pictures and videos. My current search has narrowed me down to Photobucket and Flickr with Flickr being the clear favorite for me. However, if someone has a really great suggestion, please let me know because I’m not quite sold yet. With either solution, it looks like you’re probably going to have to pay a fairly nominal amount in order to make this a truly usable option.

Virtual Images

See Amazon EC2 and Microsoft Azure VM Role above.

As a side comment, I really like spinning up VM’s for specific purposes instead of polluting my machine with hacks and patches to get all of the software I need to run on a single instance without causing headaches.

Note Taking

This is an interesting one. I had been diligently using OneNote for quite a while now and only last week switched to Evernote. I am pretty confident I will be staying with Evernote for one primary reason, compatibility. Above everything else, is the wide array of compatibility for devices and operating systems. I run an Ubuntu environment in addition to my Win7 and WinXP VM’s as well as I may be looking into the Asus eee Transformer 2 tablet when it comes out in October. Both Linux and Android Honeycomb do not support OneNote to my knowledge and do not require any additional license purchases for OneNote.

One thing I did like about OneNote a little better was the much richer text entry for note taking that OneNote offered, however for my personal notes it is something I can live with in Evernote.

One final note, for Evernote Pro Edition there is a charge of $5 per month which allows greater bandwidth usage per month for storing your notes.

Email

There are countless options for webmail, however I have separated my work email through company exchange and my personal email through Google Business Apps. I use the free business version so I can maintain my personal domain instead of gmail.com.

Instant Messaging

There are several options here, especially around which particular instant message client you used locally, however if you want to aggregate nearly all of the major services and access a completely web-based client, then meebo.com is a decent choice.

Twitter/Blogging/Social

All of the usual suspects for online tools. Twitter, Hootsuite, WordPress, Blogger, Facebook, LinkedIn, etc.

Obviously, I use WordPress for my blog but I included Blogger because many colleagues of my use Blogger and like it quite a bit.

System Administration

In most cases these days, this means the following tools I need to access: PuTTY, VNC, and Remote Desktop. PuTTY is nice since there is no install needed, so I can put it on my cloud file storage (read below) and access it directly. Sometimes I wish more programs were like this.

Zune/Music/Podcasts

Viable contenders include Amazon, Spotify, and Pandora. Unfortunately for my WP7, Zune needs to be locally installed and occasionally help sync my physical device. If anyone knows of a way around this or really good services for storing and accessing all of your music please let me know.

General Storage

Again, there are a lot of options for simple file storage. I’ve tried a few and here are the ones I liked best.

Microsoft’s Skydrive, used by several applications including OneNote gives you 5 GB of free space and the ability with Windows Live Mesh to automatically sync files across several machines. Photos I take with my WP7 automatically are uploaded to Skydrive for safe keeping (and helps limit the space taken up on my phone itself). The downside, is that I had several problems with Windows Live Mesh not working properly inside my guest VM’s and often failing to sync or connect to the service on my host machine. I still use Skydrive for my WP7 photo storage automatically, but I’ve switched off for file storage.

Google Docs was the original location of my offline stored documents but it’s fairly crude interface and lack of support for so many file types hindered my long term use.

Ubuntu One is very similar to Skydrive and performs live syncing as well, but to my understanding is only for the web and Ubuntu operating system. I also ran into problems connecting to the service often with Ubuntu One but it worked enough to make it on the list.

Finally, the service that I currently run and plan to use for a long time is Dropbox. Similar to Windows Skydrive, Dropbox is both a web version and a client installed helper application which monitors a local folder syncing files to and from the cloud. I can readily install the client tool in multiple operating systems, inside of both host and guest VM’s, and it seems to always connect in the background without problems.

There is a cost for Dropbox depending on the amount of storage you need and if it is quite large you may want to continue comparative shopping. You can view their price chart to help make your decision as to whether Dropbox is right for you.

Not Everything Can Go to the Cloud

Unfortunately, there is still quite a bit that I need to run natively, especially anything that requires communication to physical devices (Kinect, WP7, USB devices, video camera, etc.)

Also, certain development requirements may not be able to run in a virtualized environment such as the Windows Kinect SDK, XNA Game Studio (this may no longer be true but it was for quite a while and I’ll leave it up to someone else to fact check as it’s getting late).

Other Useful Web-based Services

Passpack for storing passwords online.
Delicious for storing bookmarks online.
Mint for personal spend tracking and planning.
Zillow for depressing home valuation and trending.
Bitly for url shortening and link tracking.

Not All Roses With Azure

Azure

As many of you who occasionally read my blog know, I tend to be an early adopter of most Microsoft technologies. Let me rephrase that, I am an early explorer of most Microsoft technologies; adoption into production generally comes a little later. However, I did try out Azure two months ago with a sandbox web service hosted in the cloud. I hadn’t thought much about it until recently when I received a bill for around eighty dollars. I am an MSDN subscriber, so I figured this must be a mistake (MSDN subscribers are free for 18 months based on limited usage). After discussing the situation with Microsoft I found out the charge was for a second instance I unknowingly had. As it turns out, maintaining a staging and production environment in Azure is actually listed as two instances, even though only one is “production”. I thought staging was internal and therefore not counted as a paid instance, in fact, at the time I was deploying the web service it suggested adding a second instance to maintain the true service level agreement of max up time. This led me to believe I was only running one true instance, and would be therefore covered under the MSDN subscription.

I was wrong, and because it does clearly state it several lines into the lengthy Terms and Conditions document which you agree to by setting up Azure, I had no leg to stand on in refuting the charge. I will admit, I was pretty irritated that as I sat in front of Visual Studio 2010, calling on my WP7, and only moments before spreading Microsoft praises to fellow employees, that there was no understanding or attempt to reconcile… only the cold abruptness of a Microsoft employee telling me how I “clearly signed in full knowledge and agreement”. Formally, the representative filed a request for reimbursement which was promptly denied.

Hopefully, as you excitedly dive into new technology you do so with caution. In Microsoft’s case, I still believe there are no better development tools, no better programming languages, and no worse pricing structures and convolution. I’m hope by reading this, you will at least avoid making the same mistake I did and save yourself a little cash in the process.