Friday, December 20, 2013

Exporting GarageBand Tracks for Use in Other DAW Software

This post is basically just a digested form of the information in the following article:


Create the AIF Tracks:

  1. Turn on Track Lock buttons:
    • Track -> Show Track Lock, or Cmd-Option-L
  2. Lock all tracks.
  3. Hit "Play".
  4. When the "Locking Tracks..." dialog clears, the files have been created.

Access the AIF Tracks:

  1. Open Finder.
  2. Go to Music -> GarageBand.
  3. Cmd-Click or Right-Click on your projects .band file.
  4. Select Show Package Contents.
  5. Open the folder named Freeze Files.
  6. The .aif files you see are the complete tracks from your GarageBand project.  AIF is not a compressed format, so these files will be big.  Copy them to a location of your choice.
    • Note:  This is a temporary file location for GarageBand and these files will be overwritten or deleted.  You must make a copy of them if you wish to use these versions.
  7. Enjoy.

Sunday, November 3, 2013

Senior Citizen Discounts

I grabbed this from a Facebook post.  I have no idea if these are real or not, but in the off chance that they are, I've saved them.

If you find that any of these are incorrect or invalid, please let me know and I'll update accordingly.


RESTAURANTS


  • Applebee's: 15% off with Golden Apple Card (60+)
  • Arby's: 10% off ( 55 +)
  • Ben & Jerry's: 10% off (60+)
  • Bennigan's: discount varies by location (60+)
  • Bob's Big Boy: discount varies by location (60+)
  • Boston Market: 10% off (65+)
  • Burger King: 10% off (60+)
  • Chick-Fil-A: 10% off or free small drink or coffee ( 55+)
  • Chili's: 10% off ( 55+)
  • CiCi's Pizza: 10% off (60+)
  • Denny's: 10% off, 20% off for AARP members ( 55 +)
  • Dunkin' Donuts: 10% off or free coffee ( 55+)
  • Einstein's Bagels: 10% off baker's dozen of bagels (60+)
  • Fuddrucker's: 10% off any senior platter ( 55+)
  • Gatti's Pizza: 10% off (60+)
  • Golden Corral: 10% off (60+)
  • Hardee's: $0.33 beverages everyday (65+)
  • IHOP: 10% off ( 55+)
  • Jack in the Box: up to 20% off ( 55+)
  • KFC: free small drink with any meal ( 55+)
  • Krispy Kreme: 10% off ( 50+)
  • Long John Silver's: various discounts at locations ( 55+)
  • McDonald's: discounts on coffee everyday ( 55+)
  • Mrs. Fields: 10% off at participating locations (60+)
  • Shoney's: 10% off
  • Sonic: 10% off or free beverage (60+)
  • Steak 'n Shake: 10% off every Monday & Tuesday ( 50+)
  • Subway: 10% off (60+)
  • Sweet Tomatoes: 10% off (62+)
  • Taco Bell : 5% off; free beverages for seniors (65+)
  • TCBY: 10% off ( 55+)
  • Tea Room Cafe: 10% off ( 50+)
  • Village Inn: 10% off (60+)
  • Waffle House: 10% off every Monday (60+)
  • Wendy's: 10% off ( 55 +)
  • Whataburger: 10% off (62+)
  • White Castle: 10% off (62+)

RETAIL & APPAREL


  • Banana Republic: 30% off ( 50 +)
  • Bealls: 20% off first Tuesday of each month ( 50 +)
  • Belk's: 15% off first Tuesday of every month ( 55 +)
  • Big Lots: 30% off
  • Bon-Ton Department Stores: 15% off on senior discount days ( 55 +)
  • C.J. Banks: 10% off every Wednesday (50+)
  • Clarks : 10% off (62+)
  • Dress Barn: 20% off ( 55+)
  • Goodwill: 10% off one day a week (date varies by location)
  • Hallmark: 10% off one day a week (date varies by location)
  • Kmart: 40% off (Wednesdays only) ( 50+)
  • Kohl's: 15% off (60+)
  • Modell's Sporting Goods: 30% off
  • Rite Aid: 10% off on Tuesdays & 10% off prescriptions
  • Ross Stores: 10% off every Tuesday ( 55+)
  • The Salvation Army Thrift Stores: up to 50% off ( 55+)
  • Stein Mart: 20% off red dot/clearance items first Monday of every month ( 55 +)

GROCERY


  • Albertson's: 10% off first Wednesday of each month ( 55 +)
  • American Discount Stores: 10% off every Monday ( 50 +)
  • Compare Foods Supermarket: 10% off every Wednesday (60+)
  • DeCicco Family Markets: 5% off every Wednesday (60+)
  • Food Lion: 60% off every Monday (60+)
  • Fry's Supermarket: free Fry's VIP Club Membership & 10% off every Monday ( 55 +)
  • Great Valu Food Store: 5% off every Tuesday (60+)
  • Gristedes Supermarket: 10% off every Tuesday (60+)
  • Harris Teeter: 5% off every Tuesday (60+)
  • Hy-Vee: 5% off one day a week (date varies by location)
  • Kroger: 10% off (date varies by location)
  • Morton Williams Supermarket: 5% off every Tuesday (60+)
  • The Plant Shed: 10% off every Tuesday ( 50 +)
  • Publix: 15% off every Wednesday ( 55 +)
  • Rogers Marketplace: 5% off every Thursday (60+)
  • Uncle Guiseppe's Marketplace: 15% off (62+)

TRAVEL

Airlines:


  • Alaska Airlines: 50% off (65+)
  • American Airlines: various discounts for 50% off non-peak periods (Tuesdays - Thursdays) (62+)and up (call before booking for discount)
  • Continental Airlines: no initiation fee for Continental Presidents Club & special fares for select destinations
  • Southwest Airlines: various discounts for ages 65 and up (call before booking for discount)
  • United Airlines: various discounts for ages 65 and up (call before booking for discount)
  • U.S. Airways: various discounts for ages 65 and up (call before booking for discount)

Rail


  • Amtrak: 15% off (62+)

Bus


  • Greyhound: 15% off (62+)
  • Trailways Transportation System: various discounts for ages 50+

Car Rental


  • Alamo Car Rental: up to 25% off for AARP members
  • Avis: up to 25% off for AARP members
  • Budget Rental Cars: 40% off; up to 50% off for AARP members ( 50+)
  • Dollar Rent-A-Car: 10% off ( 50+) Enterprise Rent-A-Car: 5% off for AARP members Hertz: up to 25% off for AARP members
  • National Rent-A-Car: up to 30% off for AARP members

Overnight Accommodations


  • Holiday Inn: 20-40% off depending on location (62+)
  • Best Western: 40% off (55+)
  • Cambria Suites: 20%-30% off (60+)
  • Waldorf Astoria - NYC $5,000 off nightly rate for Presidential Suite (55 +)
  • Clarion Motels: 20%-30% off (60+)
  • Comfort Inn: 20%-30% off (60+)
  • Comfort Suites: 20%-30% off (60+)
  • Econo Lodge: 40% off (60+)
  • Hampton Inns & Suites: 40% off when booked 72 hours in advance
  • Hyatt Hotels: 25%-50% off (62+)
  • InterContinental Hotels Group: various discounts at all hotels (65+)
  • Mainstay Suites: 10% off with Mature Traveler's Discount (50+); 20%-30% off (60+)
  • Marriott Hotels: 25% off (62+)
  • Motel 6: Stay Free Sunday nights (60+)
  • Myrtle Beach Resort: 30% off ( 55 +)
  • Quality Inn: 40%-50% off (60+)
  • Rodeway Inn: 20%-30% off (60+)
  • Sleep Inn: 40% off (60+)

ACTIVITIES & ENTERTAINMENT 


  • AMC Theaters: up to 30% off ( 55 +)
  • Bally Total Fitness: $100 off memberships (62+)
  • Busch Gardens Tampa, FL: $13 off one-day tickets ( 50 +)
  • Carmike Cinemas: 35% off (65+)
  • Cinemark/Century Theaters: up to 35% off
  • Massage Envy - NYC 20% off all "Happy Endings" (62 +)
  • U.S. National Parks: $10 lifetime pass; 50% off additional services including camping (62+)
  • Regal Cinemas: 50% off Ripley's Believe it or Not: @ off one-day ticket ( 55 +)
  • SeaWorld, Orlando , FL : $3 off one-day tickets ( 50 +)

CELL PHONE DISCOUNTS


  • AT&T: Special Senior Nation 200 Plan $19.99/month (65+)
  • Jitterbug: $10/month cell phone service ( 50 +)
  • Verizon Wireless: Verizon Nationwide 65 Plus Plan $29.99/month (65+).

MISCELLANEOUS


  • Great Clips: $8 off hair cuts (60+)
  • Supercuts: $8 off haircuts (60+)

Lyrics and Chords for "Down By The Sea"

As performed by Quincy the Robot
in "The Beach Party at the Threshold of Hell"

Original Recording (YouTube) is in F#, so the Roman numerals below can be substituted as follows:
I = F# 
IV = B
V = C# 
III = A 
VII = E  
Enjoy!


Intro

I     V    I    V

Verse

I                         V                         IV     V
Lived on an island down by the sea,

I                                     V      IV   //
Ask yourself "Where else,

                           V
Would an island be?"
                           IV   V   //
Down by the sea.
                           IV   V  //
With you and me.
                           IV   V  //
Love so tenderly.
                                                   
Down by the sea.

Repeat Intro

Verse

When to the market down by the sea.
Ask yourself what I would buy
In a market by the sea
Maybe kiwis
Or orange-ees
Or appl-ees
Or kumquat-ees
But definitely goat's milk.

Bridge


III          VII          
Monkey see, monkey do
        IV                              I
As I go to the market with you.
III          VII
Monkey see, monkey do
            IV                  
As I'm lighting my fire and drinking my goat's milk.

Repeat Intro (and vamp out)

Wednesday, October 9, 2013

Facebook rant++: Open Letter to Speaker John Boehner

Speaker Boehner:

Do your job. You need to call for a vote on a "clean" budget bill IMMEDIATELY or resign. If you refuse to do so and continue your anti-government, un-Constitutional tactics to the point that the United States of America defaults on our debt, you should be tried for seditious conspiracy (18 U.S.C. § 2384), and I do not level this charge lightly. You are not only actively destroying the credibility of the US government, you stand to destroy the credit-worthiness of the United States of America and a significant portion of the amassed wealth of its citizens.

You refuse to call for a vote on a budget bill that will re-open the government based on your claims that it lacks the votes to pass. There are MANY sources that disagree with your math on this (see Doing the Math, below), but "your math" shouldn't matter. The government is shutdown due to lack of a viable budget bill being presented for a vote, and you, Speaker Boehner, are the one that can call for this vote. If there aren't the votes to pass this bill, fine, but give your fellow legislators a chance to do their job. This is obstructionism at its absolute worst.

I'll concede that I'm no Constitutional scholar, and since neither of us are attorneys, we'll each have our own layman's understanding of how it's supposed to work. But even so, the Constitution provides that any bills that involve "raising revenue" (such as a "budget bill") originate in the House of Representatives (Article 1, Section 7), which you control. Further, the Constitution also expressly burdens Congress with the duty "to pay the Debts and provide for the common Defence and general Welfare of the United States" (Article 1, Section 8). I don't think it's a huge stretch to think that if the Framers went to the trouble to think through both who's responsible for "raising revenues" and paying our debts that they considered that something that's relatively important. And is a government that is shut down (offering only critical services) yet costing taxpayers MORE in the process really contributing to the "general Welfare of the United States"?

Instead of doing your job, you choose to ignore the Constitution and resort to extortionist tactics to expand your powers beyond those bestowed upon your office by the Constitution. In so doing, you defiantly trample on the intentions of the Constitution and its Framers. You've chosen to turn your office and the execution of your duties into a political lever to claim a personal veto power over existing legislation. This incredible over-reach asserts a power that the Constitution affords NO ONE -- not even the President.  
As I said, I'm no Constitutional scholar, but I just can't imagine that somewhere in the Great Beyond the Framers of the Constitution are watching this debacle you've created and thinking, "Yeah. That's it. THAT'S how this is supposed to work." I'd suppose, instead, that they're with the rest of us and probably lining up behind your latest 11% Congressional approval rating, which is statistically a tie with the WORST APPROVAL RATING EVER FOR ANY CONGRESS. You must be proud.


As citizens of this great country with a vested interest in an operational government and sound economy, we must constantly measure the performance of our elected officials. And truthfully, your latest assessment doesn't look very good (the 11% approval rating aside, I'm specifically talking about your PERSONAL performance). Your refusal to call for a vote suggests that either:

a) the vote won't go the way you want it to, so you've decided to take the US (and possibly global) economy hostage to impose your will over the will of the people, or,
b) you are incapable or unwilling to execute the duties of your office.

I will happily give you the benefit of the doubt; I don't believe that the good people of southwestern Ohio managed to elect a total moron to 12 terms in the House of Representatives. But that, unfortunately, leaves us to assess your recent actions as incompetence, intransigence, or seditious conspiracy, which is defined by the U.S. Code, in part, as when "...two or more persons...conspire to...prevent, hinder, or delay the execution of any law of the United States". Of course, as a member of Congress, you are also exempted from arrest, save Treason, Felony or Breach of the Peace (Article 1, Section 6), but seditious conspiracy is a felony. This would qualify you and your Tea Party co-conspirators for fines and up to 20 years in prison. Honestly, that sounds about right, especially when these behaviors come from those sworn by oath to uphold the Constitution.

Now don't get me wrong -- I'm all for smaller government, but there are Constitutionally-provided mechanisms to achieve these goals. You cannot undo the collective work of government expansionists (like Reagan and G. W. Bush) overnight -- and you shouldn't try. Even if the will of the people was on your side, this is not the right course of action to accomplish your goals. Propose legislation that amends the current legislation you want to change and follow the process. Oh, and "following the process" also implies that you must live with the outcome. It seems you're not happy with the results of your MANY failed attempts to defund, delay, or otherwise undermine the Affordable Care Act, or we wouldn't be in this situation. Did you learn nothing from Newt Gingrich's GOP-led government shutdown(s) in 1995 (which you were party to), the resulting public backlash, and Gingrich's own acknowledgement that shutting down the government was his "single most avoidable mistake"? And seriously, there can't be anything enjoyable in letting political opportunists like Ted Cruz call the shots.

It's incomprehensible to me that you've learned nothing from history and shut down the government for purely political reasons. Then, coincidentally, that shut down puts us squarely on a trajectory that forces the world to wonder if the United States of America is about to default on its debts. You show no respect for this country, our Constitution, due process, or our international reputation, which, prior to now, I didn't think could be any worse. Your actions are counter to the interests of the United States and have squarely crossed into the territory of "high crimes and misdemeanors". 


THIS. MUST. STOP. NOW.

You are the Speaker of the House of Representatives of the United States of America. This is a leadership role -- one that has responsibilities beyond political boundaries and party lines. It's time to start LEADING. Your country is depending on you to do so. This has gone too far and you're the one empowered to end it. Stop the political infighting, step up, and get busy doing something to earn your $223K+ salary. You were the one that wanted this job -- now you need to do it. #doyourjob

Sincerely -

Shane O.


Doing the Math: 217 votes are required to pass a budget bill in the House of Representatives. 195 members of Congress have signed a document indicating they would support a "clean" budget bill, and 25 more have indicated verbally that they would support it as well. This means there are 220 votes to support it, 3 more than necessary to pass. You indicate that there aren't enough votes to pass, but offer no details or numbers.

Monday, June 10, 2013

Playing with new toys...

I'm a fan of Google Apps.  I was a fan of OpenOffice back in the day, but then ended up working at a couple of Microsoft-centric companies and fell back into my Microsoft Office ways.  And to be fair, Microsoft Office is a simply amazing suite of office productivity applications.  To a package, Microsoft still probably has at least 50% more features/capabilities than the corresponding Google App.  However, I typically only need a simply functional suite of office applications and rarely do I need amazing.

What's cool, though, is the ability to extend Google Apps -- relatively easily -- with Google Apps Script.

So today, I was working on compiling some survey responses from a SurveyMonkey poll I put together.  It was important to us to see not only the IP address of the respondent, but to learn what we could about them from that information.  I Googled around and quickly came to the conclusion that the protected "sandbox" that Google allows you to build your scripts/functions/formulae in is simply too constrained to be able to do what I needed.  So, I figured I'd need to reach out to another system to do the lower-level work for me.

SurveyMonkey gives you the option to download your survey responses in a spreadsheet-friendly format.  I downloaded mine in Excel (.xls) format and imported them into a Google Spreadsheet.

Amongst the fields that SurveyMonkey shares is a standard one:  "IP Address".  What I needed was a quick way to do a reverse DNS lookup (PTR record) on the IP and stuff that into a cell.  Unfortunately, Google spreadsheet doesn't provide a gethostbyaddr() function by default, so I had to build one.

This amounted to two key things:
  • Get familiar with Google Apps Script
  • Use my freshly honed PHP-fu to finish the job
Google makes it pretty easy to get familiar with Google Apps Script (courtesy their tutorials) and using their training wheels (templates and sample code), I was able to knock out a quick and dirty solution in nothing flat.

Following their "Add a Custom Function to a Spreadsheet" guidance, I threw together a function (in Javascript) that looks like this (with the URL hostname changed to protect the innocent):

function getHostByAddr(addr) {
  var addr = addr;
  var baseUrl = "http://foo.com/utils/ptr.php?ip=";
  var url = baseUrl + addr;
  var result = UrlFetchApp.fetch(url);
  var content = result.getContentText();

  return content;
}

Now by simply adding a function into a spreadsheet cell, a la:

     =getHostByAddr(F2)

I end up grabbing the response HTML document from the URL request and stuffing it into the cell containing the function call/"formula".  Note:  In the formula example above, "F2" refers to the cell containing the IP address.

Now, I just need something to do the actual reverse DNS lookup for me.  Here's where the quickest and dirtiest PHP script ever came into play.  At the URL listed above in the function code, I laid down ptr.php, which contains nothing more than:

<?php

/* This grabs the value of "ip" from the URL parms, does a reverse DNS lookup, then prints it and exits */

$hostname = gethostbyaddr($_GET["ip"]);
echo $hostname;

?>

Now I said this was quick and dirty.  The anal-compulsive amongst you might notice that the output of this script will actually be a well-formed HTML document, complete with , , and tags.  Fortunately, for my current purposes, this is OK, since the spreadsheet basically strips those tags and displays just the content, which is just what I wanted.  If I wanted to invest more time in this, I could parse the returning HTML and grab the data I want, or get even more complicated and return JSON, but for my needs for now, this works just fine.

And by now, I've already spent more than twice as long writing this blog post than I did the two scripts combined (including ramp-up time).



Wednesday, February 6, 2013

DevOps - in comments, tweets, and rants...

A friend shared an article today:

        http://www.grahamlea.com/2013/02/what-is-devops-in-bullet-points-quotes-and-tweets/

For me, I don't think that DevOps is as much a "cultural movement" as it is a logical response to changes in the market, so here are my bullets:

  • "Shrink-wrap Software" left engineering groups believing that software needs to be damn near perfect before you can ship it. 
    • "Perfect" software has always been as mythical as unicorns and leprechauns, and chasing it has always been a fallacy. 
    • It's known that buggy, crappy software doesn't sell (without massive marketing efforts).
  • SaaS has changed the way engineers can think about the "perfection" level of their software. 
    • It's easier to fix bugs, apply security updates, add features, etc., if your software is running on machines you control and not buried behind firewalls in the inner sanctum of an enterprise data center. 
  • Most engineers cannot be trusted to have unfettered access to change software, once deployed into production.  No offense intended, but if you're offended, I was probably talking about you.  
    • Even if "most" were "some" or even "occasionally", you still can't identify which ones can be trusted and which ones can't, so you have to build process and access firewalls to protect your operational service platforms. 
  • You need people with the "operations mentality": 
    • motivated by successful delivery of a service
    • enchanted with thoughts of high availability and service resilience in the face of every variable that could change
    • paranoid that anything that could go wrong, will 
  • Things in data centers (or the cloud) tend to go wrong when humans are responsible for changing things. 
    • Classic "operations" techs/engineers have been more focused on infrastructure, networks, physical security, server hardware, etc. -- all of which you now inherit or are no longer material as services move to "the cloud". 
    • Agile development practices are shifting teams away from building "products" and toward building "service features". This more modular approach means you have the option to consider releasing features independently of "product releases". 
    • Some companies are releasing changes to their services multiple times a day. Whether you use it or not, having the ability to do multiple releases a day is VERY VALUABLE!
      • Consider only the bug fix scenario — VERY VALUABLE! 
  • All of these changes in IT, development practices, market expectations, and product delivery combine to force companies to reconsider how they deliver their software-based products and/or services 
    • Reconsidering is necessary only for the existing, transitioning company. Start-ups are viewing this brave new world as a massive removal of barriers to entry in even the biggest and most complex marketplaces. 
    • Start-ups are looking at this new world order not as "How do my staffing needs change?" but rather as "What minimal functions do I need in my organization to guarantee that my customers can get to their service in almost any situation?" 
    • DevOps largely incorporates those minimal functions into a role. 
  • What are the responsibilities of a real DevOps team?
    • Procedurally keep the developers from making arbitrary changes whenever they feel like it.
    • Understand how "servers" get deployed in the infrastructure that you're using (e.g., Amazon cloud, Rackspace cloud, physical hardware in a hosted data center, virtual machines in a VMware virtual center, etc.), know that server deployment is part of the job, and figure out how to make it as easy and repeatable as possible. 
    • Understand how applications get deployed on servers deployed in the infrastructure and know that you have to do this a lot.  Work with development to get a comprehensive understanding of the app and figure out how to make it as easy and repeatable as possible.
    • Know enough about system administration, network administration and application administration to be able to configure your infrastructure appropriately — and troubleshoot typical problems 
    • Know the application(s), its dependencies, its features, its idiosyncrasies, its performance, its behavior and how to make it sing 
    • Know how to monitor the application — while running — and the infrastructure it's dependent on to be able to detect anomalies quickly and ultimately, to detect impending problems before they happen (using predictive indicators — it ain't magic, it's science).
    • And most importantly, embrace the fact that you've been given an application that's been built and blessed by development, tested and blessed by QA, and accepted by you and your peers as the new basis for the service that you are responsible for running 7x24x365 at 99.999% availability (and note: The .001% downtime must be scheduled.)