Adam Fortuna Ruby/Rails Developer in Orlando, FL

2011 Year in Review

My yearly recap of what’s happened in my life over the last year.

Travel

  • Ruby Conf in New Orleans
  • South Florida for Danielle and Matts wedding
  • St. Petersburg for Crab Feast
  • New York City with Marilyn for Christmas and New Years

Body

  • Got Lasik on both eyes in June.
  • Changed up my diet to be more in line with The Primal Blueprint
  • Dropped soda for the most part. Occasional diet at lunch
  • Started going to CrossFit 2 times a week (and feeling sore the other 5)
  • Got more clothes that fit well

Hobbies

  • Continued gardening, but at a slower pace
  • Moved from Plex over to Boxee as a media center and spent our first year without cable.
  • Setup an awesome backup/recovery plan
  • Began brewing beer, starting with an Octoberfest and a wheat beer
  • Developed an appreciation for whiskey
  • Ripped every DVD I own, and compressed them, then sold the physical DVDs.
  • Moved music over to iCloud for day to day access.
  • Massive consolidation of financial accounts, and using 1Password to keep things even simpler.

Events and Entertainment

Work

  • Decided to part ways with IZEA after 2 years, 10 months.
  • Took a month off of work, mostly to relax, clean out some of the house, and work on a side project.
  • Joined EnvyLabs in April, and continue to be amazed by both the people and the culture.

Programming and Technology

  • Launched Line of Thought, a site for tracking what technologies different websites are using. More a “for-fun” personal project than a get rich project.
  • Helped Marilyn on the technical side of her blog, Forkful whenever possible. Her blog is doing great so far!
  • Moved the code for my first ever website, DDRei to github so I can continue to laugh at it for years to come.
  • Created my first ruby gem, a super basic wrapper for TicketUtils. Have to start somewhere.
  • Got my feet wet with iOS development.
  • Started creating a budgeting application as a way of learning Backbone.js

As for goals for the new year? For most of this past year I was setting goals in smaller increments and working towards them, which I’d like to do more of. It’s great for developing a routine without too much overthinking. Most things I want to do in the new year are already in progress — going to CrossFit more, working on (and using) the budgeting app, learning more iOS development, uncluttering the house and bringing in more color. Other than that, I’d like to be more social in the new year, and spend less time watching TV.

January 01, 2012

personal, goals

Adding tasks to Remember the Milk with Alfred

A few months ago I made the switch from QuickSilver to Alfred. If you’ve ever used QuickSilver you have a good idea what Alfed can do – but it does it in a single pane rather than the multi-command way QuickSilver goes about it. Amongst other abilities, it’s an application launcher that accepts additional parameters. On their site, they give an overview of the abilities:

Alfred is a productivity application for Mac OS X, which aims to save you time in searching your local computer and the web. Whether it’s maps, Amazon, eBay, Wikipedia, you can feed your web addiction quicker than ever before.

Pairing with Nate at work, we setup Alfred on our new pairing station and I instantly saw some of the power. Setting up custom searching was the first, and easiest, feature. With how often I search GitHub and RubyGems, these shortcuts help.

And another for GitHub:

Setting these up is extremely simple. Just do a search on the site you want to add, and replace the query term with {query} within Alfred. The result looks like this:

You should be able to follow this setup for any searches you would like to add a shortcut for.

Setting up Remember the Milk and Alfred

My favorite addon though, is Remember the Milk integration via terminal. In order to use RTM, you’ll need to grab the PowerPack (paid) version of Alfred. Unfortunately this version isn’t available through the App Store, so you’ll need to download it manually from the Alfred site.

In order to add tasks from Alfred, you’ll first need to be able to add tasks from the command line. There are many ways of doing this, but following this guide should help. I installed the rumember gem into its own gemset. You can then use an RVM wrapper to be able to execute the gem from the command line, even when it isn’t the currently set gemset. Alfred will have no concept of rvm or gemsets, so this helps make it available.

~/rvm wrapper 1.9.2@research ru
~/ru_ru Do laundry ^tomorrow

After creating the gemset and wrapper, you should be able to add tasks to your RTM account using the command ru_ru from anywhere, regardless of the gemset you’re currently in. You can always go into ~/.rvm/bin and alias “ru” to “ru_ru” as well, then be able to just use that.

Setting it up within Alfred is just as easy. Under Extensions > Scripts, click on the + sign to add a new “Shell Script”. You can title it whatever you want. My edited version looks like this:

After that, you should be able to add RTM tasks easily from Alfred! There is no feedback that it’s successful or not the way I have it setup, so it’s more of a fire and forget it approach to task management.

Extremely easy to fire off tasks to deal with later. It’ll even organization by date and category if you use the correct syntax in your messages. If you have any other tips that might help with RTM/Alfred integration, feel free to comment.

November 19, 2011

productivity, motivation

Write Your 'Year in Review' Post Now

At the end of last year, I wrote a post about what I’d been up to in the past year. I do this every year (though usually unpublished) while things are still fresh in my mind, and find it fun to look back on the highlights and see what I was able to accomplish. It’s something I’d recommend to anyone.

Rather than writing this post at the end of year, why not try writing it a few months early? You might have a number of “new years resolutions” from eight months ago that need some reassessment, and now is the time! Go through everything you want to get done before the end of the year and write them down in a post as though you have already done them. Next, take the next steps to accomplish those tasks.

For me this called out a few things I really wanted to do this year that I haven’t made enough progress on. Cleaning out my garage, getting an iPhone app in the app store and any kind of exercise come to mind. Time to get crackin’ on those!

August 04, 2011

personal, motivation

My LASIK Experience

On Thursday, June 23, 2011 at about 11:30am, I had LASIK. It took years of coming to terms with the idea that if something failed I may end up blind for the rest of my life. Having come through the procedure successfully, and with practically no issues whatsoever so far, I wanted to give a basic heads up on what’s involved in having LASIK, and what you should expect based on my experiences.

Consultation (~ half hour)

Choosing a place to have LASIK is the only decision you’ll have to make. For me, I polled some friends to see where they had been and 2 here in Orlando suggested Dr. Magruder — including one who had successfully had LASIK there the year before. An optometrist friend of mine suggested the same place, and for me that settled it.

Consultations are typically free, so this the time to shop around if you want to. Prior to talking with the doctor that will be doing the procedure, you will have eyes mapped out, your prescription checked and your tear generation measured. These measurements, coupled with a few basic questions, let them know if you’re a good candidate for LASIK.

The only part that is uncomfortable is the tear generation test. Small tissue-like papers are put under your eyelids and kept there for a minute to measure your body’s automatic response. Most people tend to have dryer eyes after LASIK, so if your eyes are already extremely dry according to this test, it’s a warning sign.

If you’re a candidate for LASIK, you will probably talk to the doctor that will be performing the operation next. In my case Dr. Magruder was extremely personable and seemed to want to stay and keep prodding me for questions to make sure I’d asked everything that was on my mind. This the typical part where he’ll go over the format of what to expect.

If you’re interested in going forward at this point, you’ll end up talking with someone who sets up the appointments. They’ll go over the billing details, any discounts or financing available. In the case of the place I went, the procedure would be $5,000, which includes the pre-operation appointment, follow up appointments for a year and any adjustments necessary in the first year. They also offered a $500 discount if you schedule your operation within a month of your consultation (although the discount cannot be used if you use financing).

They listed out some dates they have available, and went over what the next steps would be if I did decide to have the procedure on one of those dates. I didn’t feel pressured to make an appointment right then and there — instead they gave me all the information I’d need to make it on my own, and call back to schedule it. I called back and made the appointment a few days later (after Marilyn had confirmed taking a day off to help me).

Types of LASIK

The Wikipedia Article on LASIK goes into much more detail, but the two forms flap creation (might want to read the wikipedia article if that term isn’t familiar) are either by laser or blade. I went the laser route.

Wearing Contacts?

Depending on what type of contacts you wear, you will need to stop wearing them for some time before the actual procedure can be performed. This ranges from 14 days up to 2 months for harder lenses. If you don’t wear contacts there is no waiting period required before proceeding

Homework before the Pre-Operation

After calling in and scheduling the procedure and the pre-operation, they called in two prescriptions for me to pickup at my local pharmacy along with an over the counter lid cleaner. 7 days before the procedure the lid cleaning began twice a day. The two prescriptions they gave me were:

FML Forte – Used for treating inflammation (swelling, warmth, redness, pain) of the eyes and eyelids.
Ofloxacin Ophthalmic Solution – Used to prevent infection

Both of these eye drops were started 5 days before the surgery and taken 4 times per day.

Pre-Operation Exam (2 hours)

The pre-op is the most intensive eye exam you’ve ever had. Think of this way – if after you have LASIK you discover you have XYZ wrong with your eye, it’s difficult to prove if it was a result of the LASIK or not. Their protective response to this is a very long examination of every millimeter of your eye.

  • Re-scan and mapping of your retina
  • Thorough eye sight test (the “which is clearer, #1 or #2?” test)
  • Numbing drops following by measuring your cornea (used for creating the flap later on)
  • Tests for blind spots in your vision
  • Eye dilation followed by thorough investigation with a head mounted magnifying glass

In the last part, they were able to uncover that have I small holes in the back of my retina, which is why I occasionally have seen floaters in certain parts of my vision. I rarely ever saw these, but it was interesting to know the actual cause of them.

After the op is over, you’re given the usual sunglass shields (to protect your dilated eyes), and are now set for surgery.

Operation Day (2 hours total, 5 minutes of action)

You won’t be able to drive home, so you’ll need someone to accompany you the day of the procedure. After getting there, they’ll go over things once more, and give you instructions on what to do in the time following the procedure. For me this included:

  • Don’t expose your eyes to bright sun.
  • Go home and sleep for 6 hours.
  • Take the 2 eye drops you have even more often (FML Forte every 2 hours, Ofloxacin every 4).

Once you know what you’re in for, they give you a Valium to calm you down. Having never had Valium, I didn’t realize just how much this calms you down. After waiting 20 or so minutes, and with absolutely no fear at that point, they led me into the operating room. There are three stages to the procedure, each taking a very short time.

Creating the flap

In reading about LASIK, or watching The Discovery Channel, this always looked like the worst part of the procedure. They put a corneal suction ring in place around your eye to hold it in place while using a laser to cut a hole and in your eye and fold it back. While this sounds like a highly invasive part of the process, I actually had to ask the doctor “Did you just create the flap?”. There was no pain, and no discomfort – I didn’t even know what hit me and the process took only a minute or two.

At the place I went, they had one chair for flap creation and another for the procedure. They led me over to the second chair, but I could still see alright even with the flap created. I imagine this is because I had IntraLASIK rather than the steel blade method.

The Procedure

After laying down in the chair they lowered a large machine down over one eye at a time. They asked me to stare directly at the green light at the very center while the red lasers that took up most of my vision did the work. At this point my vision became so blurry that all I could make out with a red haze, but I tried to keep my focus on where I thought the green light used to be. The equipment is smart enough to track your eye to impressive accuracy (4,000 times per second), so it’ll stabilize for minor movements. Do you know that smell when you’re at the dentist having your teeth drilled? During this stage I was able to smell the same thing.

My perception of time might be off, but the entire procedure couldn’t have taken longer than 5 minutes.

Repositioning the Flap

After everything is set, the doctor took what felt like a very damp paint brush and lightly brushed the flap closed. This only took a few seconds.

Immediately After the Operation

I kept my eyes closed for the drive home, but I wasn’t feeling any pain at this point (thanks to the Valium). My eyes weren’t itchy, but I took their advice and downed a Tylenol PM and went to sleep. The 6 hours immediately after are considered the worst, but it’s easy to knock yourself out for that period. Your eyes heal best when they are closed, the more sleep you can get, the better off your eyes will be.

6 hours later I woke up and could see pretty darn well. Over the next few hours vision returned more and more to where I was seeing almost as well as with glasses. Things would occasionally go slightly blurry and my eyes would have trouble adapting – similar to the feel when you wake up in the morning before your eyes focus.

First Follow-up

The day after the procedure, they wanted to schedule a follow up to see how things were progressing. This is a really quick followup where they do an old fashion eye test (the big E test) and the doctor asks you a few questions. The day after the procedure my vision was 20/20 in my right eye and 20/25 in my left. According to the doctor it takes a few days for the swelling in your eyes to go down, and in that time your vision will improve. The best thing to do in the meantime is stay on top of your eye drops.

Adjusting

For me the hardest part of the entire experience came after the follow up. This is when your eyes are most sensitive to light and your body hasn’t yet adjusted to the new vision you’re now seeing. After 6 more days when I discontinued the anti-pain/inflammatory drops my eyes went through withdrawal for a night. They were both extremely itchy and all I wanted to do was rub them. By the next day the itching had subsided.

The night visor only needed to be worn for the 6 days after the procedure. This is just to prevent you from rubbing your eyes in your sleep or sleeping on them wrong.

The only side affect for me was that my eyes are now a little dryer than they used to be. Unless I was wearing contacts, I never needed to use eye drops. Lately I have been finding myself using them once or twice a day (at most). The oddest realization was that the feeling of having “dry eyes” seems to feel different than it did before. It’s a tough change to explain, but it’s not uncomfortable to the point where eye drops have ever been urgent, or even required.

By the Monday after the surgery I was back at work programming all day without any problems. Twenty days later my vision is up to 20/20 and things are going great! If you’ve been thinking about getting LASIK, based on my experience it’s a good time to do it. Good luck!

July 11, 2011

personal

Home Backup Like a Boss

After hearing about the FBI Raid on Marco Arment’s servers, it got me interested in how he was doing backups. I’ve been slowly tweaking my own backup procedures over the last few years — to the point of being borderline obsessed with having local backups. A few years ago in 2002, a failing SATA drive containing my windows partition and all my files left me high and dry and without just about any backups of anything. This was a time before Dropbox and other synchronizing services had come along to make things easier, and I hadn’t taken the step on my own to make backup a priority.

Two years ago when I was setting up my home media center, I took a first stab at serious backup. Since then I’ve been gradually tweaking my system and trying new things. What follows is what worked for me.

What’s being backed up?

In this case I’m talking about a lot of data, but split over a few discreet sections:

  • Under 60 GB of photos, documents, code and general files.
  • About 150 GB of music, mostly ripped from my Mom’s extensive CD collection when she was a DJ, plus my iTunes downloads.
  • About (gulp) 7 TB of movies. This includes a DVD rip of just every movie I’ve ever bought.
  • 3 Macs are being backed up with TimeMachine (Mac Mini and 2 MacBook Pros)

I eased back to the steam-only version of NetFlix, so this is (luckily) the size of the movies folder no longer going up. Occasionally movies/TV are pruned down, so hopefully that’ll be down to a “manageable” 5TB soon enough.

What Hardware is this Using?

  • Dedicated Seagate 1TB TimeMachine Hard Drive
  • 4-bay USB/Firewire Drobo with 4×2TB drives (~5.6TB) connected to the MacMini
  • 4-bay MediaSonic Raid Enclosure with 4×1TB (~3TB) connected to the MacMini
  • 2 x Western Digital 3TB Drive connected to the Mac Mini (used exclusively for backups).

    

The Drobo and MediaSonic both can withstand a single drive failure with no data loss, which is an ideal first line of defense. I’ve heard from many reviews that the performance of the Drobo is awful, but I haven’t had too many issues. The initial load of data onto it is a long, slow, painful experience — and adding a new drive can require upwards of a day before you can use it, but for general use I haven’t had any issues.

I’d consider the MediaSonic enclosure as a lower priced alternative. The downside is needing 4 drives up front, but that’s an issue you’ll encounter with any RAID solution. You have the option of choosing the level of Raid you want, and formatting takes only a few minutes.

It’s been a a year or two since I looked into hardware, but these have both lasted well without any data loss, and without any failed drives (so far).

Software Makes it Happen

There’s a few important pieces of software that keep things in sync. In my previous post I was using mostly cron jobs – which works, but were a little rough around the edges. Since then I’ve added a few more to the mix:

  • TimeMachine is installed on all 3 Macs
  • Chronosync installed everywhere
  • Backblaze ($50/year) on Mac Mini
  • Dropbox ($99/year) on laptop

Now, if I had less than 100 GB of total data, I’d just use Dropbox and call it a day. I’d probably even enable the “Packrat” option for unlimited undo history. Even with the recent Dropbox authentication bug it’s still the best tool on the market. There are other ways to roll your own Dropbox that may be worth checking out as well. Dropbox has the added bonus of having an API that other tools can interact with, that you wouldn’t get from a home rolled solution.

It’s also possible to increase the size of your Dropbox with referrals and other promotions they offer. My 50 GB box is up to 67.75 GB at the moment, just by taking advantage of their offer to increase the size with referrals. The additional amount of space for each referral is dependent on your pricing level, so you get more extra space for a referral when you’re on the 50 GB plan than on the free plan.

Backblaze is a tool I haven’t heard much fuss about, but for me it’s been a reliable, cost efficient and effective tool in my backup strategy. The Mac app for Backblaze installs itself into your system preferences and is completely controlled from there. You can specify which folders/drives you want to keep backed up, and tweak the speed to upload.

It took upwards of 3 months to upload 6 TB to Backblaze (which Brighthouse luckily didn’t have any issues with). Since then it’s stayed in sync a few days at any given time. The contents on the drive aren’t in constant flux, so often it’s updated within a few minutes. If you’re on a slow connection, this might not be possible, but Road Runner Lightning or FIOS will make the process a lot smoother.

Bringing it All Together

The Drobo and Mediasonic devices serve as file storage for archived DVDs, and also store all music I’ve ever ripped/downloaded. Both devices allow for a single drive failure without the loss of data – and advantage over the standalone Western Digital 3TB drives which if they fail, all data is lost.

Time Machine

The 2 MacBook Pros and the Mac Mini are backed up constantly to Time Machine. Although not encouraged supported, you can plug a USB hard drive into an Airport Extreme and use it as a TimeMachine drive. From my experience, you can’t do a first backup via USB then plug it in there either — you have to do all backups and restores while it is connected to the Airport Extreme (probably a paths thing).

Music

Music on my main computer isn’t backed up to TimeMachine. Usually I have about 100GB of music, podcasts and other videos from iTunes University which is instead backed up to the Mediasonic device. Chronosync does the work of keeping a nightly snapshot of my entire music folder on one of those drives. If I grab a new album off iTunes, or rip a CD, it’ll be backed up that same day.

The MediaSonic has 2 Music folders actually. It has an “In Use” folder and an “Archive” folder. The MacBook Pro music folder is mirrored to “In Use” – which is always a snapshot of what’s currently on my laptop. Later, the Mac Mini does a sync to a second “Archive” folder. This may sound redundant, but that’s because for much of the data it is.

The nice part is that if I delete something from my laptop, it’ll also be deleted from the “In Use” copy, but the “Archive” folder will retain a copy. The goal of all this is that I can restore my music directly at anytime, not eat up space on the TimeMachine drive, and have an canonical archive for all music.

In-House Backups

The MediaSonic drive is synced nightly to one of the WD 3TB drives. The sizes match, so it’s a clean mirror. Chronosync handles the scheduling and syncing, keeping it easy to edit as well. 3 TB of data from the Drobo is backed up to the other MediaSonic Drive nightly as well. That leaves about 2.6 TB of data that’s not duplicated in house, but is still available on Backblaze.

The End Result

Any single hard drive or device can fail with a backup readily at hand. It’s important to not only protect against a single hard drive failure but a single device failure. Having a device like a Drobo or a Raid helps with redundancy, but it’s not a backup — if the device itself malfunctions or corrupts your data, you’re out of luck. By having a in house backup of these, I still have access to anything important at a moments notice.

Setting up an offsite backup plan is annoying at first, but once it’s in place it’s a huge relief. At the moment I’m very happy with both Backblaze and Dropbox, and plan to renew both. I haven’t priced out how much it would cost to store 6 TB on S3, but I imagine it’d be below $50 a year. The nice part of Backblaze is that they can mail you hard drives loaded with your data in the event of a failure — or you can just download specific files.

One obvious gap in my setup is offsite backups for my TimeMachine drive. These could be synced up with BackBlaze as well, but at the moment Backblaze requires all backed up drives to be physically connected to the machine with it installed.

What’s your Plan?

I’m always interested to see what people are doing to backup large amounts of data like this. If you’re backing up a large amount of files, or even a small amount, I’d be interested in hearing what your strategy is!

June 27, 2011

backup