RSS | Comments RSS | Atom

Cagefree Software – Mike Yost

I am an experienced software developer, specializing in iOS.

humor&Tech21 Jun 2013 06:11 pm

Foursquare, the geo-socio-check-in-io website has just launched their newest twist on their popular venue-tagging phenomenon.  This time, it’s aimed squarely at the $26 billion-a-year pet industry, and it’s called Four-Legged-Square.  Since most dogs now have their own cell phone or at least a set of RFID tags (aka Arfies), it’s easy for them to geo-track each other, fire hydrants, crotches, whatever –  and comment on what they find.
Fifi, the French poodle investigative reporter for upscale Scent Magazine, was yapping about it the other day. She’s here in the studio with us now and wants to share her thoughts.
Announcer: Fifi, why this market, and why now?
Fifi: Well, Announcer, it’s just like it was with people.  For centuries, people kept track of each other’s whereabouts using two basic tools: gossip, and carving their initials in tree bark.  Then this geo-venue thing came along and people can now use their smart phones to track the location of other people’s smartphones.  This has taken a lot of pressure off the trees, and so the dog population has exploded.
Ann: An interesting theory, Fifi, but how does geo-tracking apply to dogs?
Fifi: Well, Ann, since there are more trees, there are more places for dogs to sniff, and a lot more information to share.  You naturally want to tell your friends and pound-mates about that great new beech grove with exposed roots where everyone seems to be marking.    There’s a nice incentive too – as you sniff enough places, you can earn Biscuits.  And if you out-sniff the rest of the pack at any one place, you can be elected Dog-Catcher of that venue.
Ann: Naturally.  What’s the coolest place you’ve learned about via 4-leggedSquare, Fifi?
Fifi: Well, Ann, our entire office went down to check out a report that a recycling truck full of re-purposed tennis shoes had overturned near West-Side Park.  When we got there, the fur was flying, and the noses were packed so tightly you’d have thought it was a pod of humans the day after Thanksgiving.  But what a set of stories those sneakers had to tell!  There was fresh-from-the-gym, stuck-in-the-closet-for-years, pre-chewed, hung-from-telephone-wires, bunions-on-the-left-foot,  and my personal favorite, never-wore-socks. There was so much tagging going on, I thought we’d bring the server down.
Ann: My my, Fifi, that sounds exciting!  What’s this tagging you keep talking about?
Fifi: Well, Ann, when you find a place that smells interesting, you can alert your pack about it.
Ann, Can you give us an example, Fifi?
Fifi: Yes, Ann, I can.  At the sneaker-sniffer (as there events are now called), one bloodhound couldn’t get close to the action, and wandered away with his head hung low, leaving his nose right above the ground.  And by pure coincidence, he happened upon one of the first places Lassie ever peed in our city.  At first, of course, it didn’t make any scents, but he scratched a bit, and sure enough, it was a 10 year old Lassie marking.  Well, you can bet your last collar that he tagged THAT spot!
Ann: Gosh, Fifi, it seems anyone can participate, and maybe even get famous for 10 minutes or so.  How can your average lab or collie get involved?
Fifi: Well, Ann, you need a couple of things: a nose, an inexplicable desire to be top dog of some tiny place, and enough understanding of human psychology to make your owner think that walking through doo-doo encrusted parks was their idea, or is at least fun.  Most dogs do it all the time.  Anyway, you log onto, paw in your rabies tag number, and you’re ready to go.
Ann: Well, Fifi, I see our time is just about up.  Any final thoughts you’d like to share with our listeners?
Fifi: Yes, Ann, I want everyone to … SQUIRREL!!

Management&Tech12 Jun 2013 05:36 pm

Management Patterns – From Donuts to Dollars
1. Sandwich (aka Bookends)
Frequently as a manager you need to give someone bad news, provide some negative feedback, or just say “no”.  No matter how you say this, it’s still negative.  It has been my experience that it is very easy for the person to take it personally.  It can be perceived as an attack on them as a person, and not what it is: enforcement of a company policy, or an attempt to correct behavior.
One approach to this is to sugar-coat the news.  This basically disguises what you have to say, and distorts the message.  A better way is to sandwich it.  Start with something positive, such as “In general, your work is very good.” Then deliver the news. “However, the quality of the Foo project was not what we needed.  You’ll have to do better next time.”  Then close the sandwich (or the other bookend) with something positive.  “I expect you’ll be able to solve this problem, since you’ve solved other problems in the past.”  What this does is to isolate the behavior that you’re trying to address, while allowing the recipient to save face, and not interpret the news as an attack.

2. Stone Soup
The old story goes that a hungry traveller came into a villiage, and had no money and no food.  So he picked up a stone from the road, and told the people he met that he could make “stone soup” with this magic stone.  The people were interested and helped him get some of the “other” ingredients.  He sent them off for a cook pot, some carrots, cabbage, water, spices, etc.  All these things would make the stone soup even better.  So they made soup with this magic stone in it, and everyone liked it.  Then the traveller opened a car dealership and retired owning half the town.
The relevance to management is that the manager really doesn’t have any carrots of her own – she must focus people’s efforts around a magic stone, or the vision/goals/mission, and let the people make their own soup.  By giving up some control over what’s actually in the soup, the manager allows the villiagers some creativity in choosing ingredients, and the results are frequently different, and better, than the original idea.

3. Count Down (aka Time Box)
It’s well known that “work expands to fill the time allotted for it’s completion.”  It is therefore useful to impose limits on the time allotted.  This is standard project management – set an end date for the work.  However, as people get busy, they tend to get deeply absorbed in the details of the work.  It’s easy to lose sight of the deadline.  By keeping a countdown to the deadline clearly visible, an interesting thing happens.  Since people see it every day, they get used to it.  But as the deadline approaches (the number gets under 10 days), there is a new realization that time is limited, and people naturally triage and prioritize their work to meet the deadline.  It cuts down on the amount of nagging that a manager has to do.

4. Donut
Donuts have amazing powers.  They cost about 35 cents apiece. They weigh about 4 or 5 ounces.  They are for sale almost everywhere.  So they’re not hard to come by.  Yet, when I take 5 minutes out of my day and 5 dollars out of my wallet and show up at work with a couple boxes of donuts, people react as if I’m Marco Polo back from the far east with exotic treasures, or Santa Clause with a bag of very special toys that are only available once a year.  Actual quote as I walked the donuts into the building “You are God.”  I think that’s a little strong.  But the point is clear – donuts have supernatural powers because they come from another realm.
So, what’s the management lesson?  Cheaply and easily available deep-fried, sugar-coated dough buys a disproportionate amount of loyalty and goodwill.  Just amazing.

5. Barrel-hoop
Buckminster Fuller thought outside the box his whole life.  It wasn’t even a box.  It was a tetra-hedron or dodecagon, composed of triangles, which are much more stable than squares.  Why are they more stable?  Because they balance the opposing forces of tension and compression.  Tension wants to pull things apart, as in centrifugal force, entropy, or magnetic repusion.  Compression wants to squash things together, like gravity, or impact, or magnetic attraction.  Balance these forces or tendencies, and you have stability.
A great example is the old fashioned barrel.  The vertical staves (the wood part) are wider on the outside than on the inside.  The outward pressure of the contents of the barrel makes them want to radiate (go outward).  This is the tension, as if they are being pulled away from the center.  To counterbalance this, there is the hoop.  It is perpendicular to the staves and thus encloses them all.  It forms a limit, past which the staves cannot expand.  Since the staves are wider on the outside than on the inside, they can only be compressed to a certain minimum degree.  This is the right radius for the hoops to hold them.  So the barrel is held together without nails or glue because it effectively wedged together: balancing these opposing forces.
Still with me?  Good.  What’s the relevance for management or software development.  I’m glad you asked.  The tension (or radiational) force is analogous to functional decomposition and specialization.  Digging deep into the details.  The compression (or integrative) force is analogous to communication, or connecting all of these deeply dug details.  So the manager’s responsibility is to be the barrel hoop, constraining the divergent nature of specialization into a coherent whole.  This means filling in all the cracks between people’s knowledge of what others are doing, preventing leaks.  As we’ve all seen, when this integration is lacking, all the juice and pickles spill all over the floor and it’s a big sticky mess.  Yuk.

6. Cannon Balls
Did you ever notice that the tiles in a bathroom are never, ever round?  That’s because circles don’t tesselate.  Squares do – you can completely fill in a given area with squares with no space left over. Same with hexagons. Circles just don’t do that very well.  There’s all those curvy diamond shaped areas that you have to fill in.  And if you use smaller circles, you get into an infinite regress of ever smaller circles, and you never, ever finish.  So don’t go there.
Ok, crank it up to three dimensions.  Cubes tesselate, you can completely fill space with cubes.  Same with tetrahedrons (a solid with four triangular sides – the minimal polyhedron (tetra==four, poly==many, hedron==face)).  But spheres don’t tesselate.  Look at the oranges in the supermarket, there are all those spaces between them.  Look at cannonballs on the courthouse lawn.  Spaces.  (Read Cat’s Cradle by Kurt Vonnegut. Ice Nine DOES tesselate, and you REALLY don’t want to go there.)
So what? Well, developers are cannonballs.  They represent spheres (not ammunition).  They have spheres of knowledge, spheres of experience.  They have social circles and spheres of influence on each other.  The point here is to note the radial nature of people’s experience – it starts with them as the circle, and goes approximately the same distance in all directions.  It is the manager’s job to either turn people into cubes (CSAWs? I’m DEFINITELY not going there!), or fill in the spaces between these spheres.  You can put smaller spheres (interns) between the larger ones to fill some of the space, and just tolerate what’s left over.  Or you can find diamond shaped people to fit between these curved surfaces.
So, even though as a woodworker it pains me to say it, we need to cut down the “tree” model, and  think more along the lines of the cannonball (or barrel-hoop) model of management.  Fill in the gaps. Connect the dots.  Tesselate.

7. Fail (in order) to learn
Failure is the big bugaboo, no one’s allowed to fail.  Everyone defines success criteria, wants to be successful.  And that’s hard, you have to know what you’re trying to accomplish, and get it right the first time.  The odds are stacked against you.  Don’t get me wrong, it’s extremely important to try to succeed, but you should not be surprised (or ashamed or disappointed) if you don’t.
That’s where learning comes in.  Rather than sweeping the failure under the rug, plop it right on the table and take a good hard look at it.  It’s loaded with useful information.  It will tell you about your assumptions that you’re not aware of.  It will tell you about factors outside of your control that you did not account for.  It will tell you whether your goals are even achievable, or if there are better goals to shoot for.  The point is to learn from your mistakes.  In this light “mistake” is a terrible name for a very rich source of guidance.  And learning is a good thing.
It makes sense to remove the stigma from “failure” or “mistake”.  Recast it as research and learning.  The person who tries the most things is going to be the most knowledgable.  It’s hard work, but it’s quite useful to know all the things that don’t work – you can help others not waste time trying them.
The problem here is that we carry around the assumption that if we think about things enough, plan enough and analyze enough, we’ll solve the problem in advance, without the benefit of experience.  This is rarely the case.  We only hire people with experience.  We talk about the voice of experience.
The scientic method is based on testing assumptions, hypotheses and theories.  The results of the test have a huge influence on the theory – the theory must fit the experimental results.
So what’s the point? As a manager, encourage a culture that values experimentation, learning, open analysis of unexpected results.  Words like “failure”, “mistake”, “risk” don’t apply (if there is no stigma for an unexpected result, there is no risk in trying.)
So, starting next Monday, the dress code will be amended: everyone must wear a scientific-looking white lab coat.

Uncategorized22 Jun 2011 05:29 pm

Wow!  Huge, big, sizable and ginormous!


When I was growing up, a millionaire was a rare thing, a big deal. My older brother explained to me that a million was a thousand a thousand times. Like a thousand marbles in a bucket, and 999 more buckets just like it. A million pennies, he told me, equaled ten thousand dollars. These were all big numbers to me. I could count- theoretically- as high as I wanted to, but had never really gotten past a couple of hundred, and all that would really fit in my brain was maybe a thousand. Since I was 8 years old, that number had the most real-world meaning to me, the rest were abstract, though I didn’t know that word at the time. Like looking upward from the foot of a really tall ladder, after a relatively short distance, it just fades into a blur named “way up there”.

Sometime in middle school science class, we started with scientific notation, which is a convenient way to express powers of ten. That’s a fancy way of saying how many zero’s are at the end of a number: 100 is ten to the 2, 10,000 is ten to the 4, a million is ten to the 6, etc. This method shortens the ladder by making the rungs closer together the higher you go. It makes it easy to talk about big numbers but the price is the loss of awesomeness. Going to each larger kind of number becomes a step. A Thousand to a Million is going from 10^3 to 10^6, from 3 to 6. Not so big. Million to a Billion is 6 to 9. So what. M to B.

At about the same time, I became aware of the scale of government, where stuff happens with billions of dollars. Billions. A thousand thousand thousand. A Thousand Million. Imaging a thousand marbles in a bucket. Now imagine a row of a thousand such buckets. That’s a million marbles. Now imagine a thousand rows of a thousand buckets of a thousand marbles each. That’s a million buckets, and a billion marbles.
Through the 60s and 70s and 80s, we heard a lot about cold war stockpiles, usually in terms of how each side had the capability to blow up the whole world a certain number of times over. Russia could wipe us out 500 times, but we were ahead because we could wipe them out 800 times. And sometimes these numbers would be converted into equivalents of millions of tons of tnt or dynamite, as if I could distinguish a small deafening boom that killed me from a large deafening boom that killed me. We all sort of got used to thinking in absurdities like that, because there really was no alternative.
So now, in the late Tendies (the decade after the nineties), we have a financial crisis that puts the word trillion into common usage. A trillion is 1 followed by 12 zero’s, or a thousand Billion, or a Million Million, or a thousand thousand thousand thousand. Now we’ve gone from 6 to 9 to 12, from M to B to T. The ladder got taller, but it did so starting miles up in the sky where it was a smudgy blur to start with.

A trillion. A thousand marbles in each bucket, a row of a thousand buckets, 1000 columns such buckets in a huge 1000×1000 bucket square. That’s a billion (with a B). Now make a vertical stack of such squares 1000 buckets high. That’s a billion buckets and a trillion marbles.

I’ve been working with these numbers and these concepts for many many years, and just explaining all these ladders, buckets and marbles makes me tired. For non-numerically oriented people, this must be just gibberish. I think it is a rare person indeed who can actually comprehend how much a billion is, much less a trillion. I think most people think a trillion is just “bigger than a billion”, and a billion is just “bigger than a million”, and a million is just “big”. What scares me most is that there are a lot of people making decisions based on these numbers, and I cannot imagine that these are rational decisions because I don’t think these decision makers really know a Million from a Billion from a Trillion, other than M, B, and T.

Q anyone?

Tech06 May 2011 03:23 pm

WordPress noob attempts to help iPhone Dev Noobs.

Things I wish I’d known 2 years ago.

  1. Understand reference counting
    -If you alloc, copy, new or retain an object, you must release it.
  2. Understand Zombies
    -A deallocated object that your code thinks is still allocated.
  3. NSLog is your friend.
    -When in doubt, print it out.
  4. Messaging a nil object no-ops silently.
    -When you push a view controller onto your navigation controller and nothing happens, usually it’s because your navigation controller is nil.
  5. When things act weird, Clean your product and Reset the Simulator
  6. Connect your IBOutlets
    -If it’s not hooked up, it won’t show up.
  7. If you’re fighting the API alot, you’re probably doing it wrong.
  8. Quadruple punctuation is a red flag; triple is a yellow flag.
    [[[[[[anObject alloc] init] subViews] objectAtIndex:[Database funIndex] removeFromSuperview] retain] autorelease];
    This is just asking for trouble; break it into multiple simpler statements.  You can thank me later.
  9. Get out of the appDelegate as soon as you can.
    -Create your main view controller and then go there.  Don’t do UI, controller or database work in the app delegate unless you have to.  Leave the appDelegate for app level stuff (foreground and background, external notifications, etc.)
  10. Treat Warnings as Errors (config your Project Build Settings, under GCC – Warnings).
  11. StackOverflow totally rocks.