Toy Helicopter Review and Durability Test: Flutterbye Deluxe Fairy

We’ve bought several cheap toy helicopters that have usually met their demise via the breakage of one of the components that rotates at high speed breaking. Air Hogs has been a favorite brand because they are usually cheap and your face on retail shelves. [The charging port on this doll bears the Air Hogs brand, as well.]

[Somewhat related: our big dog doesn’t like any of these flying things and thinks it’s his mission to “kill” them, giving us an extra obstacle to their longevity.]

This fairy doll is the first one we’ve had that doesn’t look like a standard helicopter for us.

When taking off from its base, the doll floats fairly gracefully to the floor. The doll mostly hovers within a foot or two of the surface underneath her. However, you can cup your hands directly below it and it’ll float above your hands briefly instead. I noticed when I did this, the fairy would float steadily to the ceiling and hover and gradually come back down.

The doll will also take off from your hand, but it’s very easy to not be vertical at take-off and/or to present an uneven surface below it, causing to lift off erratically. I recommend letting it take off from the base stand each time.

We’ve had 5-10 crashes with the doll. One thing I noticed with this doll (unlike manually controlled helicopters) is that power is immediately cut to the rotors when a collision happens. This minimizes the high speed damage that the blades and balances endure when you don’t react quickly enough to cut the power on a remote control.

Between the ease of flight, the safety cut-off, and the relatively more durable structure overall, this doll seems like the best value in the under $50 helicopter department for those of us who really don’t know how to successfully fly a toy helicopter, anyway.

Note:
The doll in the video is the Deluxe Light Up Flutterbye Fairy – Rainbow (Amazon affiliate link)

Toy Helicopter Review and Durability Test: Sky Rover Aero Spin

The Sky Rover Aero Spin was a pretty impressive little toy helicopter.

It has a hover mode that stabilizes flight a certain distance off of the ground and a “controller” mode which allows you to try controlling the spin rate of the propellers to fly the helicopter.  A good video demonstration is on the rcgroups forums.

This helicopter has been by far the easiest budget (<$50) helicopter to fly, at $10 at Wal-Mart ($7.51 online now).

Unfortunately, a collision within the first minute of flight broke the ring holding the blades together onto the spin shaft. [See Flutterbye Deluxe Fairy for a “helicopter” from this Christmas that’s still going.]

We played around with Gorilla Glue to try and repair the ring (should have used crazy glue. After the glue was allowed to set, the helicopter was mostly back in flying shape, with the exception of a bit of constant roll due to the imbalance.

We were able to fly the helicopter for another few minutes prior to a collision that snapped the same fragile ring yet again, both in the glued spot and in the spot opposite to it.

Ease of flight is definitely an A+. There’s virtually no thought to it.

Durability is a bit worse that most Air Hogs brands that we’ve had.

To be determined: If there will be any support from the company who manufactured the helicopter.

Gorilla glued one side, it worked until until side broke along with it
Gorilla glued one side, it worked until until side broke along with it

Using jquery us map to Create a Map of States That Can Be Toggled

The us-map plugin was already in use elsewhere and I wanted to create a clickable map that would display an anchor state and allow for configuration of related states.

Also in use is the gon gem to allow passing of data directly into Javascript, included in a Rails 4.1 project.

Controller code:

  # assume @state is the current state
  gon.current_state_code = @state.state_code 
  gon.regional_states = @state.related_state_codes # returns ["AL", "AK", ...]

View code:

<%# this is inside a form and states_list maintains the current list of selected states%>
  
<%= hidden_field_tag 'states_list' %>

Associated CoffeeScript:


states = ->
  # initialize the hidden field for states selected
  $('#states_list').val(JSON.stringify(gon.regional_states))
  $('#map').usmap(
    stateStyles:
      fill: 'lightGray'
    stateSpecificStyles: do ->
      # current state is red, selected states green
      specificStyles = {}
      specificStyles[gon.current_state_code] = fill: 'red'

      for state in gon.regional_states
        specificStyles[state] = fill: 'green'

      specificStyles
    click: (event, data) ->
      # don't allow current state to be selected
      if data.name != gon.current_state_code
        # add green as a specific style or delete to toggle state highlight
        if this.stateSpecificStyles[data.name]
          delete this.stateSpecificStyles[data.name]
        else
          this.stateSpecificStyles[data.name] = fill: 'green'

      # this could be more intelligent, but I'm just recalculating along the way
      regionalStates = []
      for key of this.stateSpecificStyles
        if this.stateSpecificStyles[key]['fill'] != 'red'
          regionalStates.push(key)
      $('#states_list').val(JSON.stringify(regionalStates))
  )

$(document).ready ->
  if gon? && gon.regional_states?
    states()

Sites That Have a Problem Working in Google Chrome

I’ve been hitting issues with site compatibility with Chrome lately, so I decided to start with a list of sites that I’ve had issues with in the last day, and I’ll build on from there.

As of Chrome 39.0.2171.71 (64-bit) on Yosemite:

  • panel.dreamhost.com – Rebilling edit does not allow you to check the checkbox to limit billing on one day or specify an amount. (Only happened when my recurring was expired. Cannot reproduce now.)
  • Fidelity.com – Quicklinks dropdown after login collapses immediately instead of allowing you to select a menu item.
  • playstation.com – Password Reset password fields don’t register that you’re typing in any information (strength meter doesn’t change), and when you submit, you password hasn’t actually been changed. Same functionality worked in Firefox.
  • GWT Developer Plugin installed but not recognized.

The story behind rspec kung fu hamster

rspec-kungfuhamster originated as a joke on a POS development team I worked on almost 10 years ago. In the battle of scope creep and requirements changes, we all got a bit loopy and a couple members of the team drew up an ASCII animated “kung fu hamster” as a terminal-based spinner while the credit card authorization (often by modem) was taking place.

Strangely, product ownership didn’t see the humor in so much time being spent on the animation.

I decided to revive kung fu hamster as an rspec formatter in honor of those days of solving technical problems on out-of-date SCO Unix boxes without access to anything but standard and home grown libraries, as well as the two team members that have passed away at far too young an age since.

 

Applescript to periodically raise unsent Outlook replies to the foreground

I’ve had a particular problem starting replies in Outlook for Mac and then losing track of them or forgetting about them.

This script is a fairly naive attempt at having such replies raised to the foreground. It doesn’t distinguish between a reply you’re reading and one you’re writing. It also won’t notice email that you’re composing that *doesn’t* have a ‘Re:’ as the start of the title. I imagine there’s a window property that I can look for to select those, I just didn’t want to go there yet.

The script also unintelligently repeats every 60 seconds, which I figure is better than leaving an email unsent for 2 hours.

I’m publishing updates to my “applefritters” project on GitHub if you want to keep up with further improvements to this script.

repeat
	tell application "System Events"
		tell process "Microsoft Outlook"
			repeat with aWindow in (get every window)
				set aName to get the name of aWindow
				set initialName to ((characters 1 through 3 of aName) as string)
				if (initialName = "Re:") then
					tell application "Microsoft Outlook"
						activate
					end tell
					activate aWindow
					set frontmost to true
					perform action "AXRaise" of aWindow
					exit repeat -- only activate one window
				end if
			end repeat
		end tell
	end tell
	delay 60
end repeat

Dollar Shave Club (Executive) Review as a Gillette Mach 3 User

I decided to try the Dollar Shave Club Executive (6 blade) model for a month. The subscription for 4 blades per month is $9.

The initial shipment came with their own shave butter, which I tried for my first shave. The shave butter broke down too quickly for my skin and facial hair thickness, and didn’t seem to do much for the shaving experience, but then again, I generally use a shave cream or hair conditioner while shaving.

The blade angles felt a bit too sparse–or maybe the space between them clogged too quickly, though I didn’t notice that this was the case. My first shave attempt was on about 3 days growth, and felt spotty irritation in my skin and notices several patches that had clearly been shaved, but had not been shaved particularly closely.

On my second shave attempt on about 2 days growth, I used my Gillette Sensitive Skin to try and alleviate the irritation and possibly get a bit closer with the shave. After shaving, I had a lot of spots in my facial hair that were about a half day’s worth of growth in length. Whether using the shave butter or my Gillette Sensitive Skin shaving cream, I experienced a small amount of irritation–not as much as a cheap disposable, but a little more than the Schick Quattro.

The closeness of the shave is ultimately as close as the Quattro, but with noticeably more irritation.

For comparison:

  • I use the base Gillette Mach 3 razor normally, usually with the Gillette Sensitive Skin shaving cream.
  • I generally shave twice a week, partly because my skin is too sensitive if I shave more frequently than that.
  • I have sparse and uneven facial hair.
  • Dollar store and disposable Bic razors break the skin for me.
  • The Schick Quattro razor didn’t irritate the skin any more than my Mach 3, but the shave isn’t that close for me.
  • Electric razors turn my skin red with irritation.

Hope this helps you decide if Dollar Shave is an option for you. Interestingly enough, the Executive blades are $2.25 per cartridge vs. the Gillette Mach3 Base Cartridges 15 Count(Amazon associates link) per-cartridge price of about $2.06 per cartridge.

Using a vimscript to run through a list of substitutions with dictionary pairs

I wanted to modify a test suite to call a method using ruby 2’s keyword arguments. There were several calls to the same initialization function that followed a pattern that made it a good candidate for a series of `%s` calls using key-value pairs in a dictionary.

Interesting how vimscript uses a leading slash as line continuation instead of a trailing slash at the end of the continued line.

Also, it took me a while to figure out that interpolating a variable in an Ex command required “execute” and string concatenation with periods.

let fields = { 'public_key' : 'public_pem_key',
              \'private_key' : 'private_pem_key',
              \'username' : 'username',
              \'password' : 'password',
              \'url' : 'url',
              \'ssl_verify_host' : 'ssl_verify_host'
            \}

for key in keys(fields)
  execute '%s/\([ \t]*\)\(.*TestCommon::' . fields[key] . '\)/\1' . key . ': \2/'
endfor

Mac OS X Mavericks, rbenv, and ruby-build “Missing the OpenSSL lib?”

openssl version: 1.0.1i, rbenv version: 0.4.0, ruby-build as plugin in the ~/.rbenv/plugins directory.

The version of openssl on a Mavericks machine got out of sync with rbenv and ruby-build for some reason. For every attempt at installing a ruby version through rbenv attempted, we got the following message:

“The Ruby openssl extension was not compiled. Missing the OpenSSL lib?”

Tried every permutation of trying to fix one thing at a time, but ultimately ended up doing the following:

~/.rbenv/plugins/ruby-build directory
brew unlink openssl rbenv ruby-build
brew uninstall openssl rbenv ruby-build
brew update
brew install openssl
brew link openssl --force
brew install rbenv
eval "$(rbenv init -)"
brew install ruby-build

Then we were able to install whatever ruby version we wanted.

I’m sure some of the above process was overkill and unnecessary, but the steps in total did the job.