The Dangling Pointer

Sh*t my brain says and forgets about

On the Importance of Glue

Glue is the thing that … well … glues everything together.  You don’t see glue (if the product is made right) but it plays an important role in the overall satisfaction with the product.  If you buy a bird house that has bad gluing technique or not enough glue, you will be upset when the first bird flattens the house.

The same hold trues for mobile apps as well as web and desktop applications.  For sake of this discussion, I’m limiting myself to mobile apps and mentioning some specific iOS technologies.

So much time is seemingly spent on visual design and user experience that occasionally the glue doesn’t receive the attention it should.  Glue is everything that the user doesn’t see outright in your app:

  • Persistence / State Restoration
    • Core Data
    • Data Synchronization (iCloud, Dropbox, Simperium, etc.)
    • UIStateRestoration
  • Performance
    • Power
    • CPU
    • Memory
  • Integration & Networking
  • Internationalization
  • Dates & Times
  • Accessibility
  • Unit Testing

It’s easy to get hung up on the visual details and leave some of these incredibly important things to the side.  Users may not see the problems outright but they will come to associate a bad feel with your app if things don’t work quite right.

Example: The Nike+ Fuelband App

I’ve been an avid Fuelband user for almost two years now.  I’ve come to treat the device as something that I use every day and pay attention to how much activity I’ve done for the day.  Getting to green is my goal and it irritates me when things don’t work.  Some of the glue that has been broken lately includes funky sync over Bluetooth LE and bad dates/times when syncing with their web app.  The web app itself has also been flaky and slow.  This is a good example of when a beautifully designed app fails the user and causes distrust of the entire brand.

The Recourse

Admit your mistakes and start fixing them.  The WordPress iOS app has been around for quite some time but had been unstable for a while.  The nature of open source software means there are so many hands touching it.  We started focusing on the glue to make the experience better overall.  Once we got some of the stability back into the project, we moved forward with the UI changes for iOS 7.  Things are improving with every release – especially when we are able to spend the time to replace aging code.  Core Data has a big role in the application and stabilizing the stack there with multithreading has made a huge improvement.  We have big plans for further UI improvements!  Get involved at http://make.wordpress.org/mobile if you’re interested. 🙂

The Balance

A balance has to be maintained between visual and the non-visual elements of an application.  If you’re in charge of running a mobile project, make sure the people paying the bill know upfront what’s important to keep in mind when developing an application.  If they don’t want to pay for what you’re estimating, don’t take the project.  This may be a little hard at an ad agency or working with an internal department, but the outcome is the same.  Make sure they know if all they want to focus on is the user experience and visual design, the output will be of prototype quality.  It’s your job to educate your customer and product owner of the importance of the things that can’t be seen.

 

If you run Unit Tests in Xcode

If you run unit tests inside of Xcode, you may wish to turn on the behavior to show the test results after they run.

TestBehaviors

  1. Go to Preferences in Xcode.
  2. Click on the Behaviors tab.
  3. Click on Succeeds.
  4. Check the box shown and select “Show” then “Test Navigator”.
  5. Repeat step 4 for Fails as well.

Now when your tests finish (failed or succeeded) you’ll see the pretty green or red marks.

Apple’s Public Mailing Lists

You may not be aware but Apple has a pretty extensive set of public e-mail discussion lists.

https://lists.apple.com/mailman/listinfo

There are topics ranging from fundamental Objective-C issues through to development for their various desktop applications.  Some of the lists are quite chatty but you can subscribe in digest format to get a daily e-mail instead of each individual message.  This is a great way to reach engineers working on the piece you’re interested in and is a quite interesting place to lurk.

How to Make Me Instantly Unsubscribe

This is a pretty definite way of making me unsubscribe from your marketing emails.

Bieber

Dark & Stormy Cocktail

Ever since I visited House of Shields downtown San Francisco, the cocktail called a Dark & Stormy has been one of my favorites.  HoS makes their own variation of it, one part using a ginger syrup that they make themselves.  I ended up finding a decent combination of ingredients locally that I prefer from HoS’ recipe.  Most Dark & Stormy recipes will indicate to use Gosling’s Black Seal rum which can be hard to obtain.  Gosling’s also makes a ginger beer which is the staple used in a Dark & Stormy.  I found a zippier ginger beer and a tasty alternative to Black Seal.

Aaron’s Dark & Stormy

Roughly 205cal per serving

There are technically formal methods to make the Dark & Stormy.  At House of Shields they have all the fancy bar equipment and hand tools.  I just dump all the ingredients on top of the ice in the pint glass and then stir with a straw.

 

Enjoy!

Those Judgmental Baristas

I’ve noticed that when I’ve achieved a free drink at Starbucks, I tend to add on things I normally wouldn’t.  Sometimes the baristas like to make a special comment about it as well which makes me feel guilty about ordering literally “anything I want.”

You know what, f**k that.

I’ve purchased 12 drinks to get one free.  It’s one of the reasons I continue to patronize Starbucks because I feel like that 12th drink is nice to get.  I don’t go very often any more so when I do get the free one, I like to take advantage of their offer.  Hell, I’ve dropped probably $60 by then!

This past Friday I ordered a Venti Soy Green Tea Frappucino with Protein Powder.  I’ve ordered this before and like the consistency having both the soy and protein powder.  I get to the window to pay and I mention I have a free drink coming.  Before I can hand my phone over the barista makes a snarky comment:

Oh well that makes sense why you added all those extras on!

Immediately I tell him that the order isn’t that unusual for me.  His reply?

Wow that’s a really expensive drink.

No shit, Sherlock.  I tell him something like that’s why I don’t come to Starbucks often anymore.  I get my drink and go on my way.

As I’m driving home I realize his attempt at humorous banter was a complete fail and ended up making the customer feel uncomfortable.  I’ve recalled similar situations before when I get my free drink.  What the f**k do they expect that I’m going to get a tall drip coffee for my freebie?  If I ordered 20 espresso shots in a Venti cup, by all means point me out and call me a bitch in front of everyone.

That’s my rant.  Scan my damn phone, be polite and give me my goddamn free drink.

You Know You’ve Lost Your Mind When…

You know you’ve lost your mind when you trip a little and the recovery move resembles a move from your step aerobics routine and you hear the instructor say:

“Now, funky push!”

Agility Not Agile Development

Dave Thomas has a really excellent post about how it’s time to kill Agile.  It’s a very well thought out post and it embodies a lot of my concerns with the movement.  I have a few insights to add to his perspective.

I was a software engineer consultant for over five years.  The Java and open-source community had adopted Agile and implementations like Scrum and XP fairly quickly.  It made us find the way to get software that was good out the door in a timely fashion.  It made us not sit on our asses collecting requirements for months before any real work was done.  I worked on a very successful search project at a Fortune 500 company following Agile methods loosely based on Scrum.  I still believe to this day the level of success was due to the project being in “skunkworks” and therefore having a simplified budget and leaving us in control of the moving parts.  Once that project got into a normal budgeting process, innovation floundered.

Something happened to Agile.  Maybe it was Microsoft adopting Scrum, maybe it was some publication for management types convincing them Agile would save them oodles of money.  I’m not really sure what it was.  But at some point the word Agile because synonymous with “bring in consultants give them incredibly short deadlines and expect high quality for cheeeeeeeeeap” – and it lost its power.

I think I realized this shift was coming when a previous manager at a client thought they were being astute by terming their development lifecycle was “pwagile” – a combination of waterfall and Agile.  It was at that point I saw that the true value of Agile development had been muddied and it would be hard to come back from that.  The one thing I saw that made Scrum fail time and time again was budgeting by feature and not for an entire project.  Management couldn’t see the benefit of this change of perspective, so I lost hope.

There has also been this big rush to train companies to become Agile partners – to learn the ways of “doing it right”.  At some point we forgot that Agile was meant to be lean, easy to remember, something that is taught and then becomes reflex memory.  Adding so much process (and selling training & tools) around it defeats the purpose.  I found it interesting how many of these trainers no longer developed software themselves.  I really believe in dog-fooding your own stuff.

Dave’s plea to consider developing with agility instead of following “Agile” is dead on.  Get back to making software great and doing what people actually need.

 

I’m making  a pledge as a software developer to think of accessibility with every change I make.  My first step was to turn on iOS’ VoiceOver and test everything I’m working on with it.  In the first five minutes of using it, I’ve discovered so many necessary improvements to make the app even useful for someone who has trouble seeing.  There are many more accessibility tools than VoiceOver (like Dynamic Type) that should also be on your list to try.  Baby steps.

Developers: Spend some time with your apps without your eyes.  It’s not fair to place limits on sight-impaired people because you’re lazy.

I’m going to stop being lazy.

Home Hacks – DC Blower Motor

A couple days ago we had to replace the air conditioning condenser and evaporator units in our home’s central air system.  The unit was 21 years old and was leaking coolant slowly throughout the last summer.  It was just time.  The new unit is much more efficient, handles more air, and should be quieter even though it’s physically larger.

We had been talking about another item in our furnace and that was replacing the A/C motor with a D/C motor.  The A/C motor is called a PSC or permanent split capacitor motor and they are largely inefficient over time.  The Nest Thermostat allows you to schedule your fan to be on for time periods in the day.  We’ve been running our fan for 15 minutes every hour during the daytime to keep air circulating to reduce warm/cool spots and to help reduce dust.  Running the fan that much with a standard PSC blower is expensive and taxing on the motor itself.

5SME39SXL111

The D/C motor is called an ECM – or electronically commutated motor.  It has a built-in transformer to convert to DC, uses less energy and can change its speed variably without suffering on efficiency.  The motors are also built with better ball bearings and are meant to be on 24×7 for the life of the unit.  The ECM motor is set to run at the lowest & quietest speed for circulation and then speeds up when the heat or A/C turns on.  We can leave the fan on 24×7 for the same (maybe even less) energy cost that the old A/C fan for 15 minutes every hour between 6am and 10pm.

If you have an energy efficient furnace (which we don’t right now) then you may be eligible for a rebate from your State.  The State of Wisconsin gives homeowners a $125 check for replacing their PSC motors with an ECM if you have a furnace that is efficient at 90% or greater.

More about ECMs

http://www.thomasnet.com/articles/machinery-tools-supplies/ECM-Motors-HVAC-Systems

http://www.comfortgurus.com/product_info.php/products_id/3646

Page 22 of 30

Powered by WordPress & Theme by Anders Norén