Having lived and breathed computers and electronics since I first helped my dad run a card sorter at work as a child, I've never been afraid to try new things (or to break them). I've run every release of Windows except Vista over the years, but I had real fun with things like my Commodore Amiga 1000, or when I ran OS/2 Warp on my 386. My first Linux experience was with Red Hat 5 on a web server at work. Since I grew up with things like TRS-DOS and Commodore BASIC, I felt right at home.
I wasn't really hooked on Linux until a coworker introduced me to Red Hat 6 with GNOME, and from there a whirlwind of trying different distributions including Mandrake Linux, straight Debian, and Knoppix. I dual-booted Windows 2000 and Knoppix for a while, and found that more and more I didn't boot into Windows unless I needed to manage a Windows server.
Soon I was so enamored with Linux that I wanted to see what I could do to ditch Windows entirely. At the time I was dual-booting Mandrake, and having previously done a lot of developing with Borland Delphi I started playing around with Free Pascal and Lazarus. I took inventory of what applications I used and found that the only thing I really needed Windows for anymore was Microsoft Money. I'd looked at GnuCash and it was too much like a business accounting package for me. I decided to write my own, and since I was passionate about Linux I decided it was going to be open source and free. I spent two weeks writing the first release and named it "CheckBook Tracker."
When I posted it on Freshmeat.net (now freecode.com) in 2003 it made perfect sense to me, but I was surprised by how many people asked me "Why in the world are you just giving this away?" or "What would posses you to just make it free?" My answer was always "To encourage people to use Linux." I used CheckBook Tracker for balancing my checkbook for about seven years until I quit writing checks. Unfortunately it's a dead project now, but the sources are still out there. Every once in a while, I get an email from someone related to the customized widgets I created for Lazarus that I used in that project.
Continuing in my career in IT support, I began to install floppy-based Internet firewalls using a special tiny Linux for customers and started to see the advantages of using FOSS in business. Even though Linux desktops still weren't for the average person, if there was a technical problem you needed to solve, generally you could find an open source project that addressed that issue.
Starting from the beginning with Linux in Business
In 2004 I joined EvriChart, Inc. as Director of IT. Later, when the company got big enough to justify it, my title changed to CIO. This gave me the unique opportunity of driving the entire IT infrastructure at an early stage in whatever direction I wanted it to go. At first we had six employees and a single Asterisk phone system built to reduce phone expenses. I stopped dual booting and did away with Windows on my work desktop completely. I was still running Mandrake 10.1, and in 2006 decided to switch to Ubuntu 6.06 Dapper Drake. I've stuck with Ubuntu for the most part since. Initially it was because the desktop management tools seemed easier. Now I'm slowly converting things over to Fedora as we are more embedded with business applications such as OpenLDAP, Gluster, PXE, and Puppet.
As we expanded our technology at EvriChart, I would always look to Linux first for solutions. Over the last 10 years we've saved an estimated $400,000+ in software licenses and specialized hardware because of this. A lot of that is due to server operating system licenses and storage systems, but also to software we wrote ourselves in PHP instead of licensing a commercial product.
While we do have a few machines running Windows, it's always decided based on need—such as driving specific enterprise scanning hardware or an executive who demands a specific version of Microsoft Office. We've built our domain infrastructure on things like OpenLDAP authentication with a Samba server to authenticate the few Windows users. We have several internally developed applications we use for image processing and workflow that are all web server based and primarily written in PHP so they are client agnostic. We utilize Linux and OSS like Lego bricks, snapping together different projects with a bit of scripting glue that allows us to have completely customized systems for very little time and effort.
Windows and a proprietary document management system couldn't keep up
One of the early driving factors of our full switch to Linux in image processing was due to the Windows server based document management system we were using. We hit a point where the commercial application we'd spent over $25k on the past few years just couldn't keep up—we needed to purge data off daily just to keep production running or it was crushing under its own weight. That drove us to develop our own solution, again using Linux and various open source applications like bricks that we tied together with some PHP code and a web interface. From there, our DocStore document management storage engine was built.
Since we weren't tied down by any legacy system, we were able to develop it from the ground up using more modern technologies. We studied how Flickr and Facebook ran their infrastructure, and I went and met with Reddit's Alexis Ohanian and Steve Huffman at a presentation they did in Virginia to glean a bit of how they handled the huge traffic their site was generating. Talking infrastructure design with Alexis taught me a lot about finding out where your bottlenecks are and developing around them. As a result, we designed a single document repository that could handle all the document storage needs for every hospital in the U.S. if necessary simply by adding more bricks to the system.
For high availability, we've tried several systems but finally settled on a combination of ZFS and Gluster for file storage with geo-replicated on-line backups along with Galera and MariaDB for database management and again, geo-replication. All data gets encrypted with AES-256, and we're able to survive not only a drive failure but a server failure and even a complete data-center failure.
Our five locations are linked together using OpenVPN and we've implemented a custom iptables + Packetfence NAC system for internal network control in addition to custom iptables firewalls at the perimeters. We did it all on commodity server hardware with Linux at a fraction of the cost—there's not a single proprietary "black box" device on our network. In the past year, I've solicited quotes to replace some of our HA infrastructure with commercial data storage products and found that the minimum quote just to replicate what we did with about $20,000 worth of hardware and Linux was around $300,000.
Linux is so easy anyone can install it, even by accident!
We utilize a PXE network install server and a Puppet system that lets us set up a new Linux desktop in less than 10 minutes completely hands-off. We go through growth phases every so often where we suddenly need multiple new desktops deployed, and this automated system saves our staff many hours of work.
The system surprised us one day when a user's Windows install went corrupt on her laptop and she accidentally installed Linux. When her laptop couldn't boot from the hard drive, it automatically booted from the network. When she got the PXE install menu she just hit enter, installing a Linux desktop with all of our default network security settings and applications. She then logged into it with her network account and emailed me to say that her Windows had updated and she wanted to know why her Microsoft Office looked so different now and "Where did Outlook go?" We had a good laugh over how Linux is so easy you can install and configure it by accident now, even on a laptop.
My personal set-up
My personal set-up includes Gnome 3, Chrome, LibreOffice, PhpStorm, MySQL Workbench, and ClusterSSH. Most all of the tools I use are web server based, such as Jira and Stash for development work, phpLDAPadmin, CUPS, BandwidthD, Ganglia, and LogAnalyzer for admin and monitoring. I also use ownCloud, which syncs my KeePassX database file between devices for me.
I'm an avid gamer, and I'm really excited that Linux has raised its head in the gaming realm recently and is making great strides. I run Valve's Steam platform, and lately in my spare time you can find me online playing Ark: Survival Evolved, Killing Floor 2, or the Unreal Tournament 2015 alpha test. I currently own 61 commercial Linux games purchased through Steam for myself and my kids and grandkids, and while I still have a Windows install at home for gaming and photography work, I look forward to the day I won't need to.
For me Linux is about choice, control, and learning something new. I think that's one reason it's not as "easy" for some people. Some prefer a mouse with just one button because there's less to confuse. Personally, I'd rather have a 20-button mouse for more flexibility and spend two hours making it work my way. And yes, I run Gnome 3 because I like it, not because I have to.