Listen to Gen Z Media - by Annika McKay

By the end of this text, I hope to convince you to listen to Gen Z media.

Gen Z media (gzm shows) is a collection of podcasts for kids. They are public media podcasts, so you don't need to pay any money and you can find them wherever you listen!

One reason why you should listen to these podcasts is that every character has a different voice, so you can easily tell them apart.

My favorite podcast is the Nature Verse, an amazing story with mythical creatures like Mother Nature, Father Time, Chaos, Cupid, and the Grim Reaper. The AMAZING sound effects soud real as Chaos turns into a snake and the Grim Reaper teleports to the underworld.

These stories are hilarious like the time the Reaper did selfies for Tik Tok and sad like when Chloe (Mother-Nature) had to learn about being Mature Nature, not just an ordinary teenager.

The Nature Verse isn't the only podcast on gzm shows! Listen now, wherever you listen.

Ruhpolding

Ruhpolding may just be a typical German alpine village, but we've been at least 5 times and it continues to be one of my favorite places in the world. Here are my recommendations when visiting:

* The tourist information office is really helpful. They can recommend hikes to all of the alms and give maps and know the best places to go with kids, when it's raining, etc. They also are a good source to find out about any special events that are happening.

* It's always been easy for us to find a holiday apartment (ferienwohnung) which includes a kitchen for around 100 euros per night - we just used the town website to find and book it. We've stayed in all different parts of town, some close to the center, some on the outskirts and they've all been great. With the lodging comes the Chiemgau Karte which gives free rides up chairlifts, free entrance to the swimming pool, discounts - it's very valuable and helpful in directing you to various activities.

* The hiking is great. Most of the hikes are arranged so that you can visit multiple alms/huettes along the way. These are a great place to have a beer or a full meal. Using the free chairlift rides (from the Chiemgau card) enables you to do some spectacular mountain top day hikes. It looks like overnight hut to hut is possible nearby as well but we haven't tried it yet in this region. For example, http://www.hochgernhaus.de/

* A really nice day is to hike to Langerbauer Alm. You can start from town, take a bus to the start, hike from one valley up into the mountains to the Alm, and then down the other side to some lakes (nice for swimming) and then take a bus back. We've also done it with ebikes with some kids in a trailer and some in bike seats. We've also hiked around the top of the Rauschberg (the cable car mountain) the top of the Unterberg (the chairlift) and to at least 4 other alms. They are all different and lovely.

* Mountain biking. I have not explored as much of it as I would like, but what I have done is fantastic. We've done dozens of kilometers with kids along the river path, which is beautiful and easy. I also did a fantastic ride to Austria, where the border was a literal waterfall that we had to carry the bikes behind. Ebikes can be rented in town and almost make cars entirely unnecessary.

* Food. The prices and the menus don't seem to vary too much, but it's all quite delicious. We haven't eaten too many meals in the center of town, although the little town square is nice. Mostly we get out into the countryside where there are playgrounds and views. The most spectacular view is at the Weingarten, with a view over the whole valley and a nice playground. Raffner alm is another great playground with trampolines and toys and rabbits. I would highly recommend going for the huttenabend (hut evening) which is usually once a week. You can drive to Raffner Alm or you can hike down to it after taking the chairlift up the Unterberg (free with the Chiemgau Karte). Brandleralm is really nice too. Make sure you go for an afternoon ice cream to a place that serves spaghetti-eis (ice-cream only restaurants in town). It's amazing. Pizza at the swimming pool (either inside or out) is convenient. We've also had some very nice meals at Gastatte Beim Hausler which is a little bit outside of town. The fancy bakery near the roundabout by the train station is delicious, my favorite is lagebrotchen (pretzel rolls). At the more remote alms (that you hike to) it's mostly bread and meats. The alms near the top of chairlifts often have kaiserschmarn, which are torn up pancakes - that's a family favorite. A Radler is a German shandy and the perfect drink to enjoy mid-hike.

* Swimming pool. The Vita Alpina is fantastic. You can go down the huge slide with little kids if you go with them. It's a great place to go on a rainy day. If you are up for an amazing but vulnerable cultural experience go to the sauna. You pay extra for it and the wristband scanning is a bit confusing, but totally worth it. Kids are not allowed and neither are clothes inside of the mixed gender saunas. There is one room where they lock you in for 15 minutes, stoke the rocks up to high and then a burly German uses a towel to swirl the air around and make it excruciatingly hot. After you go outside and dunk in an ice cold pool and feel fully alive.

* Kneipbad - there is a little place not far from the river where you take off your shoes and march around a pool of freezing cold water. Then you walk on a path made of different textures. Apparently these things are often prescribed as treatments by doctors in Germany.

* Freitzeitpark - it's just too perfect. Spend the whole day there. With raingear it wouldn't be a bad choice in the rain. If the kids find the place to stamp their 'passport' in the dwarf mine they get a free toy in the restaurant.

* Sommerodelbahn - really fun, why aren't there more roller coasters built onto the sides of mountains?

* Groceries. Since kitchens are part of the apartment you can save a lot of money by eating at home. The Edeka supermarket near the entrance to town is great.

* The playground across the street from the swimming pool is fun and different (ziplines, water pumps, a trampoline like device...).

* Inzell is a nearby town (15-20 minute drive), and the Chiemgau Karte has some free stuff to do there. There is a summer innertube ride that is amusing and also a really cool natural swimming pool (plus indoor pool with slide/sauna etc). The pool isn't as nice as Ruhpolding, but on a hot day the natural swimming pool is really fun.



Things I do when analyzing large datasets in CouchDB

Views should return gzip'd results


CouchDB is a good HTTP server. I usually don't need to proxy requests through Apache or Nginx. What it doesn't do is return views in a compressed format. Views are great candidates for compression because there is often a lot of redundant data returned. I used to proxy through Apache in order to get gzip compression for all json data. That worked ok, but large replications would often fail no reason that I could ever understand. When replicating directly to couch, there was no problem. My current solution is to use this very simple, easy to understand node proxy that adds gzip: http://broken-by.me/tag/accept-encoding-gzip/
I then use forever in a reboot cron job to make sure it stays up:
@reboot /usr/local/bin/forever start -c /usr/bin/node /var/www/gooseberry/scripts/proxy.js


When a view isn't possible, just make documents

For me, data is captured at different times and stored in separate documents that correspond with the type of data that is captured. But analyzing data often requires me to group documents together that are then analyzed in groups. For instance Coconut Surveillance tracks malaria cases. A single case will consist of data captured at different times by different users in different places. One record will be for the data captured at the facility, other data will be captured at a household. It could even be captured on different tablets, so it isn't all available until the results are replicated to the cloud server. Views can emit one or more rows per document, but they cannot emit a row that includes data from multiple document. In other words, I can't make a view where each emitted row represents the full data for one of my malaria cases. What ends up happening is I have to do one query to figure out all of the documents relevant to my case. Then on the client side I have to group all of the results together into one object that I can analyze. When I need to analyze a lot of cases, this approach becomes very slow. Even to create a spreadsheet of case data is very slow. After lots of different strategies my current approach is to manually create a document for each case that contains all of the data pulled from the docs relevant to that case. I have a script that watches the _changes feed, if it detects a change relevant to a case, it will open up the case document and update that case document. Now, if I want to analyze case data I can simply load the relevant case documents (one document per case) or use views that work on the case documents (on row per case) and things are fast. It feels dirty to manually keep and update redundant data in the database, but that is basically what a view is, just a manually managed one.

Keep a class

Related to the approach above, I keep a class (in my case in CoffeeScript) that maps to this aggregated document of documents (one example being a malaria case). As I build up logic that does calculations on the document, I have it all in one nice place that can be reused across reports. This might be a simple thing that looks up the date the person was found positive for malaria (check the faclility record, if it doesn't exist, use the creation time of the notification) or something more complex that looks across multiple pieces of data to calculate how long it took to followup the case. When I grab the documents from couch, I load them as this class and can easily do analysis in all sorts of contexts.

One view per design document

The couchapp tool that I use forces us to have one design document and then put all of your views in that single design document. This is really terrible. Any change to any view forces the entire design document to be re-processed and blocks the entire application until that is done (unless you use stale requests - but then your data is not up to date). Thanks to this post by Nolan Lawson I realized that I should put each view in it's own design document. I expect there may be some minor performance hits in CouchDB doing this, but the overall result is so much better. Single views build relatively quickly after changes, and don't block other views. I ended up writing my own little tool that lets me keep all of my views (maps and reduces) in one directory and then uploads them and loads them (to cache them). Here's the script that creates one design doc mapfile for each coffee file in the directory (and looks for reduces too):
pushViews.rb
And here's the one for executing views (done in node since async is so easy):
executeViews.coffee

Don't be afraid to add another view

This is obvious, but at first I tried to create one view that ruled them all. I am often trying to be clever about re-using views. Before I had the one view per design doc approach (above), adding a new view required the entire app to stop working while the design doc rebuilt itself. With that problem solved, it's easy to add and remove views. Sure they use disk space, but who cares. Don't be afraid to make a really specific view with hardcoded values and magic numbers.

Make use of arrays in view results

Despite years of working with couchdb and a few forays into using arrays as the key my views was emitting, I rarely used it to its potential. Once I understood that keys passed to view can look this:

startkey: ["People"]
endkey: ["People",{}]

Things began being much more manageable and tidy (I was doing embarrassing things like string concatenation before). But much more amazing was using the group_level option. This option still amazes me. I didn't know about it for years, simply because of how it is described in the documentation. Here's the relevant part from the table of options that can be passed to a view:
group_level
number
-
see below

"see below" - Are you kidding me? I don't have time to see below! So I never did, until I saw an example online that used group_level and was doing things I never thought possible. Now I do stuff like this:

emit [country, state, county, city, neighborhood], population

Then, when I want to know the population at any of those levels, I just use group_level (combined with the _count builtin reduce function) and I can get the aggregated data for any level I need. I actually don't do this for population, but for more complex data aggregation and disaggregation but the idea is the same. group_level is a game changer, but it's hiding outside of the table that lazy people like me depend on.

If I need a reduce function, I am doing it wrong

I used to pound my head against the wall until it understood how reduce functions (and their mysterious options like rereduce) work. I would eventually get it, implement something that worked, then totally forget everything I had learned. So when my reduce function needed fixing I was back to banging my head against the wall. My brain just doesn't seem to be able to maintain the neural pathways needed for reduce. So I don't use them. I use the builtin ones and that's it.

One gun fewer



I was upset too. I hugged my wife. Kissed my baby girl. Mourned for the children and teachers. I was sad about the lack of mental health resources and angry about the guns.

The more I thought about guns the more upset I became. I laid awake for hours on Saturday night in sadness and anger. I found myself contemplating my own gun experiences - mostly just shooting guns as a kid. I decided that I want fewer guns in my family's future. Then I thought about one person that I know who has a gun, someone I trust and who trusts me. I decided I would call him up and ask him to consider destroying his gun. This idea didn't help me to sleep.

It wasn't easy. My voice was shaky. I did not manage to coolly and clearly explain the data that describes why guns in homes are dangerous. I did not win a debate but the conversation didn't devolve into abstract politics. I wish that I was more sensitive ("having a gun to defend yourself is a stupid idea") but conversations in the real world are like that. I'm not sure if I will succeed, but I'm trying to care for people I love and make the world a better place one relationship, and one gun fewer, at a time.

Read ebooks hands free


Every year for Christmas I try and make Claudia a Christmas present. Sometimes it's a big success (an old laptop I turned into a digital photoframe that shows local bus positions, bike share station status and more recently streaming video from our baby monitor) and sometimes less so (a fish scale modified to set off a buzzer when pulled too far that was supposed to teach our dog not to pull on the leash). This past Christmas, my wife was pregnant so I decided to build something that would help us get through the late nights of breastfeeding.

Claudia loves to read, and we now buy a lot of digital books, which Claudia reads on an old Kindle and I on my phone. I decided that I wanted to come up with a way that would enable Claudia to read hands free while breastfeeding our baby. Besides Kindles and phones, Amazon also lets you read books on their kindle cloud reader. You just go to http://read.amazon.com, sign in with your kindle account, and all of your books are there and ready to be read.

When you put the browser in full screen mode, it makes good use of the screen. You can adjust the text size and spacing so that it is quite readable, even at a distance. Of course you can click an icon to change the page, but you can also use the right and left arrow keys to flip pages. With all of this in hand, the rest of my solution was pretty obvious.

I really only had to buy two things:

A music stand:



Musician's Gear Heavy-Duty Folding Music Stand Black





A set of foot pedals:




Scythe Usb-2fs-2 USB 2 Foot Switch Version 2


The music stand is adjustable to hold the laptop at eye level, is sturdy and easy to move around. The foot pedals basically work like a keyboard with two keys. I used the included software to configure them so that the right pedal would send the right arrow key, and the left pedal would send the left arrow key.

Needless to say, I was pretty psyched when I plugged it all in, went to the read.amazon.com and everything worked perfectly.

Now that Annika, our little baby girl, has arrived, my wife is using the system around the clock and it seems to be working flawlessly. With the background color set to black, it barely even lights up the room, which is helpful when you are trying to keep the baby in sleep mode.

Ways to improve it

It turns out that having a computer around really helps pass the time for breastfeeding mommies. Besides reading books, she has been watching a lot of movies and TV shows. It would be great if you could program the pedals to send "space" to pause a TV show. If the pedals could switch modes and send the right keys depending on which application had focused - then that would be awesome. Or simply allowing long presses or combo taps (left, right, left, right) to send other keys or key combinations would allow you to also launch new applications. Then she could scroll on websites or browse iPhoto. Maybe I can use voice recognition to do this...

Twitter Strategy for Humans


Another from the Recent Emails I have Sent Department:


The most effective Twitter strategy is to use Twitter personally (as yourself, not as your organization) and engage in (and start new) online discussions about things that you feel strongly about. This includes education strategies, new products and, yes, sometimes even what you had for breakfast. The reason is that twitter is about online community and conversation, sort of like Facebook, but with people (not products or organizations) that you often have never met personally. No one wants to talk to a press release, or a corporate department they want real people (who eat breakfast). It is useful to have a corporate twitter identity, but mostly it’s just as a mechanism for real people to share press releases – the real value add happens in public discussion that everyone can see. Often those online discussions turn into post-conference meetings or drinks when people pass through town, and that is usually when the most important opportunities and discussions happen. One more thing – using Twitter during a conference is a great way to establish thought leadership, get followers, and participate in a discussion that is often much more interesting than what is going on at the front of the room.

[An entirely new strategy will probably be necessary once @horse_ebooks begins reproducing.]

Ode to Coffeescript

(this started as email to a friend but I thought it might be useful to share)

I’ve been using coffeescript for about a year. Other than using it for my own projects, I have learned it's syntax from the coffeescript website and from the random coffeescript snippet that I see here and there.

I started using it to try and write expressive code that reminded me of Ruby. I like my code readable, with very descriptive (and sometimes long) variable names (never abbreviated) and few comments. If I can’t understand the code by reading it, then I probably need to split up my one-liner into a few lines or make a new function or two.

Being able to abandon a lot of the extra braces and parens for indentation helped for readability (I actually agree with Python over Ruby on this one), especially relative to the javascript that I was writing before.

Initially I used all of the looping shortcuts that coffeescript comes with, but now I tend to use underscore.js whenever I am looping/mapping/etc. I am not sure if this is what @jashkenas had in mind (did this guy really write coffeescript, underscore and backbone??) but I think coffeescript + underscore results in a really nice compromise.

I have only recently really understood that everything is an expression in coffeescript. Using it really helps me to modularize my code

Here’s an example I have just written that sort of sums up what I like about coffeescript:



Line 1. Takes advantage of "everything is an expression". Whatever the block indented below line 1 returns, will be set to formElement. This is so much better than initializing an empty string and then setting it.

Line 2. Note that I am using underscore to check if the value I am interested in is in an array. If so, then line 3 just returns the screen which bubble back to line 1. Same thing with line 4-5.

Line 7. See how we can do ruby style string interpolation. That is huge - so huge. Javascript doesn't let you do sane multi-line strings, nor can you interpolate. But wait - check out the crazy interpolation of line 8 - I start a multi-line map (underscore again!). Coffeescript basically enables quick and dirty templating inside any string. It's a bit dangerous to mix too much logic and templating, but for small things it is awesome. (I use handlebars.js for the big jobs)

Anyways, it's not the greatest code in the world, but it's real code I wrote yesterday and it's helping me get the job done.

I am one of those people that think you should learn a new programming language every year or so – and indeed coffeescript has made me a better programmer. So if you are learning it, I recommend that you stick with it. You’ll get it and be better for it.

Fall blooms and dies over a few weeks


Skateistan: To Live and Skate Kabul

Memories

Operation Say Yes

It was ten years ago today that I asked Claudia to marry me. The intervening years have far surpassed all expectations of partnership, meaning, growth, adventure and plain old love than even the best Hollywood romance or English novel could inspire.

Here is how I recorded the events of that day:

On Sunday March 25, I was supposed to go with Claudia's family on my favorite hike in Southern California. But wouldn't you know just as we were pulling out of the driveway, my cell phone rang, it was work complaining that my code broke the latest build, and I needed to come in right away. Damn - I told the family to go on the hike without me - maybe I could catch up later. Claudia (my girlfriend) goes on the hike totally upset that I didn't go because I was basically the only reason she was going (she has been unbelievably busy writing and sending off applications for business school in Europe). In the meantime there was a shady looking character a few houses up from Claudia's parents' house sitting on the sidewalk with his hat pulled low, cellphone in his hand. I jumped in my car to head off to work but instead I doubled back and picked up the hoodlum (my brother Darren). We raced to the nearest gas station where the other members of Operation Say Yes were stationed. The game was afoot and we took off towards the hills past Malibu about an hour away. Meanwhile, Claudia's family made a well planned pit stop that puts Operation Say Yes ahead of them by about 45 minutes.

As soon as Team OSY arrived at La Jolla Canyon the group sprung into action packing gourmet food, bouquets of flowers, a table, coolers, chairs, a guitar, a computer, some speakers and more. Knowing that the von der Ohe family was hot on the trail they double timed it up 3 miles or so of steep and narrow terrain. Heroic efforts were par for the day, but my sherpa friends could have brought the mountain to downtown Los Angeles that day. With sweat pouring they came over a ridge and looked onto a green valley sprinkled with wildflowers and oak trees next to a flowing creek. I went on ahead hoping that I would find a nice place to set the stage for the evening's activities. The first overgrown offshoot trail that I took led to a green meadow that fell off into the creek with one beautiful oak tree in the middle. I am not exaggerating when I say that there were golden streams of light filtered by a misty fog coming from the sun that was right on top of the mountain illuminating the spot. The place literally glowed and I knew I had found the spot.

The team arrived and we set up a table, the chairs, tablecloth, candles, and a dozen roses as the centerpiece. Sean, our scout, ran back to find my girlfriend's family and hurried back with the news that we had maybe 5-10 minutes tops until they arrived. I took a bag of rosepetals and lined the trail for about 50 yards with the dark red flowers. I also strategically placed a couple of poems along the trail - one that included a hint of what was to come. I ran back, hid some speakers in the old oak tree and set up my computer to start playing a selection from Claudia's favorite Opera: La Traviata. I changed into a tie and sportjacket as Darren went back on the trail with flowers for Claudia's mom and sisters and to retrieve the true centerpiece of the evening - Claudia. Darren found Claudia - and brought her towards the spot - but first escorted her to a place where a nice dress and sweater were hanging for her to change into. After changing and looking magnificent, Claudia took Darren's arm and he led her to the spot. A gourmet meal ensued with my friend Jeff moonlighting as our server. We had incredible homecooked Italian food and Claudia's favorite Cheesecake from the Cheesecake Factory for dessert. It was the most romantic and beautiful dinner ever. I played the guitar and sang a nervous rendition of "It's Your Love". I got down on my knee, took out a basin full of water and rosepetals and washed Claudia's feet promising to be her servant for life. Then I asked The Question. Suffice to say that Operation Say Yes was a success. We then laughed and ran and walked and kissed and hugged our way all the way down the mountain . . .


Shrooms!


A few weeks before Christmas I received a heavy box in the mail. It was labelled "Mushroom Adventures" and a few days later my brother told me it was my Christmas gift.


So we opened it and followed the instructions, which were basically: add water to make mud and spread over the bark/dirt mixture, stick in corner and wait.


It was really easy, and before long we had a few mushrooms peeping through. We chopped them up and put them in pasta and they were full of flavor and totally fresh. The "adventure" part seemed to target tastebuds and greenthumbs, not neurons, but I wasn't disappointed.


Now we have so many mushrooms we can't eat them all - a nice problem to have. Thanks bro for an awesome gift!

Smartphones need web apps not app store apps

via @andyi on flickr


I don't think you need to learn objective C, or the android environment in order to make useful smartphone applications. Html & javascript should be able to cover 90% (99%?) of the sorts of applications that are being written. I think it is actually a step backwards to force people with good ideas to have to write "close to the metal" (C) code, especially if you already know HTML and the concepts behind flash.

Take for instance this link:

http://sixrevisions.com/web-development/html5-iphone-app/

It teaches you how to create a nice version of tetris that runs in your phone's web browser using html and javascript (iphone and android, maybe blackberry's, microsoft and PalmOS too?) . Not only is it touch friendly, but it works offline, and can even save your high scores on your phone (much of this is due to HTML5 stuff like manifest files and local data stores).

Jon Resig, the creator of JQuery (the wonderful and ubiquitous javascript library) has just released an alpha version of jquery mobile, which makes creating smartphone UIs easy. I believe this, and not objective C, is the future:

http://jquerymobile.com/2010/10/jquery-mobile-alpha-1-released/

If you hone your skills in developing browser based solutions that are awesome on smartphones, then you are gaining long term valuable skills, as you can expect that pretty much all phones for the next 5 years will have browsers on them. Learning objective C or the android API is a higher risk investment of your time - who knows what phone will be hot next year?

If you need to access lower level hardware, like the accelerometer or the camera then you probably need some closer to the metal code. Then again, location aware browsers show me that these sorts of interfaces will be exposed more and more through the browser as time goes on. Maybe you are doing graphically intense 3D visualizations, then that needs hard core C, but again 3D optimized graphics libs for browsers are on their way. Finally, smartphone browser apps don't get you into the app store, which might or might not be a good thing (no approval process but no chance to hit the app store lottery and make money).

I Hate Farm Subsidies

Boll is Opening to Reveal the Cotton
Via @judybaxter on flickr

I just listened to an excellent Planet Money Podcast about cotton, cotton subsidies and a trade war between the US and Brazil. It interviewed Dahlin Hancock an American cotton farmer, as well as Brazilians and WTO people. It reminded me how much I hate American farm subsidies. Here's what I sent:

Thanks so much for the podcast on cotton and cotton subsidies. It was fascinating, and I loved how the story twisted and turned through the WTO process and showed how Brazil eventually found leverage despite the WTO having no power of enforcement. Great stuff.

But here is what I was disappointed not to hear:

* Mr Hancock, why do you need subsidies, and isn't that cheating? I mean, he was complaining about Brazil, but as far as I understand it, the American farmer gets paid extra because he can't otherwise compete with Brazil.

* What about African cotton farmers? It was only after Brazil became powerful and savvy enough to hire American lawyers that it had a chance to fight unfair subsidies. This leaves Nigeria, Tanzania, Zimbabwe and many other developing countries with no voice. The result of the Brazil v US cotton war (the US now subsidizes Brazilian farmers too) only leaves an increasingly unfair playing field for everyone else. I mean not only do they have to fight already deflated American prices, but now the Brazilian industry has $150 million per year to subsidize itself with.

It seems to me that the result is a loss for the American taxpayer and a loss for developing countries. The only winners are Texan farmers, who should be in other industries (he dropped out of electrician school) but can't handle the extra training required. Is this actually a subsidy of under-education?

What a fascinating but grim story! More like it please!

American farm subsidies seem wrong to me. I love hearing my Grandpa talk about his boyhood days on the farm, but for America, those days are over. America is no longer a country of millions of farmers anymore. America has about as many computer programmers as we do farmers. For Americans, the future is about creativity, strategy, technology. Subsidizing those fields is a long term investment, and it can be done through education.

The only farming that the vast majority of Americans will ever do is in Farmville.

The next chance to kill farm subsidies is in 2012, when the farm bill comes up. How do we do it?

Mobile Phone Banking in Developing Countries to Leapfrog Old Banks

Money makes the world go round. The more money, the faster we spin. In America each of us spends, on average about $50,000 per year. That works out to be $136 per day. Imagine if the only way to spend my daily $136 was to hand over cash. Not only does this mean carrying around $136 in my pocket every day, but it also means carrying my cash to the person that I am buying stuff from. Buying a sandwich - no big deal there. Paying bills sucks. You have to go the electric company, the phone company, the water company. How about going to the Amazon.com office in Washington DC with cash in hand to pay for the headphones I want them to send me. That would be lame. All of those businesses that you are buying from - they also have to deal in cash. Before you bought your sandwich, the sandwich shop owner had to carry cash to the flour seller. But where did she get the cash to buy the flour? She has to save it from the day before. To make sure no one stole yesterday's profits, she carried it home and hid it under the mattress at home.



Sounds crazy, but this is the reality in many developing countries. Introducing banks helps a lot, but only for people who have bank accounts. I have seen business owners carrying boxes and dufflebags full of cash to the bank in Malawi. I used to spend half a day locked in a storage closet every month counting out stacks of 500 kwacha notes (about $3) so that I could pay 25 Baobab Health employees. Walking out of the bank and then driving home with all of that cash stuffed in my bag was rather thrilling.

When everyone has a bank account and a credit card, this problem pretty much goes away. Instead of having to carry around money everywhere we have about a month's worth of available spending on our credit cards ($4000). This means that over the course of a month, my money can bounce around from employer to me to baker to flour grinder to farmer, before anyone really needs to settle up. This is such a monumental step forward in efficiency, yet so commonplace, that we take it for granted.

Why are some countries without banks and credit cards? Well bank accounts depend on reliably identifying who people are, which is hard if government documents like drivers licenses and passports are out of reach for most. And credit cards depend on banks, credit scoring and a communications infrastructure that is pretty much a non-starter in many places. (2% of all consumer spending in the US is spent on proprietary credit card infrastructure, which is ridiculous now that everyone is connectable via the internet and that credit cards depend on 40 year old technology to read a 16 digit number off a card)

Developing countries, are therefore left to plod along until that tipping point hits when enough people are rich enough to get bank accounts to get credit cards to build their national network and start scoring credit. Up until that point, people are carting around cash. After that point, money stops getting buried and starts flowing. Money jumps from person to person, with each person holding it just long enough to make more money. And if they decide to hold onto it, then the bank will figure out how to make more money with it.

In Malawi I plodded along with cash, as did everyone else. But mobile phone banking promises a leapfrog over both traditional banks and credit cards. And developing countries don't need to wait - they can get started now. Here's why:

Mobile phones can identify people even more reliably than a passport. Phone number (something you have) plus pin (something you know) is enough to securely setup a bank account. But mobile phones also come with a built-in communications network. This means that there is no need to visit a bank to do banking. Deposits and withdrawals can be performed by anyone with cash and a sufficient balance in their account. In these, the early stages of mobile phone banking, these activities are facilitated by agents who are trained and supplied by the mobile phone banking provider. This ensures a good experience for the customer, who might not understand how banking, let alone mobile phone banking works. Agents can accept cash and then transfer funds from the agent's own mobile phone banking account into the client's. They can also accept a funds transfer from a client and then pay them out in cash. Deposits and withdrawals sorted, although the agents and the mobile phone banking provider will charge for the transactions.

From here things get very fun. People can safely store money in their phones, so money is no longer stagnating under mattresses or buried in a field. When it is stored on a phone, it isn't just sitting there doing nothing. Banks will let other people use it, by investing with it. Practically this means that interest can be earned and more money is generally available to everyone the economy. Win! But it is more than just a savings device. Funds can be transferred securely between accounts, which means that any payment that used to happen in cash can now be done as a funds transfer between phones. I can now pay for my sandwich with a funds transfer to the sandwich shop, which is convenient. But now the sandwich maker doesn't have to carry the cash I paid him with to the flour seller. He can just transfer the funds and during the flour seller's next delivery it will be efficiently delivered to my sandwich maker. Money flows, economy grows.

Eventually the need to use cash at all pretty much disappears and a cashless ecosystem emerges, but that is years, perhaps decades away. Yet each step taken towards that eventual goal affords many opportunities for individuals and businesses to increase efficiency, save money and in many cases start entirely new businesses. I am particularly interested in looking at the edge cases, watching how people use mobile phone banking to do things that no one every thought of before.

One of the most obvious things that will happen will be replacing some formal mobile phone banking agents with informal cash in and cash out facilities. Many businesses take on a lot of cash during their daily operations. If the business could deposit this cash into their account by providing cash out services to individuals or other local businesses (people withdrawal from their accounts by transferring funds to someone that gives them cash) then neither group has to visit the bank or an ATM machine. Vice versa for businesses that need a lot of cash on hand, or who routinely make trips to the bank. Businesses can accept deposits by transferring funds to people giving them cash. The efficiencies gained from avoiding standing in line at the bank alone, are important, let alone the expense of travel, or for the banks, the expense of maintaining high capacity facilities and staff.

Other businesses are sure to emerge as well. Sending money to rural villages was the big surprise business in Kenya when m-pesa (the biggest mobile phone banking success story so far) was first launched. I expect online purchasing, discounts for electronic payments, loyalty schemes, real-time credit scoring, microfinance, credit card services, outsourced micro jobs and all sorts of other things will emerge that we can't even think of. These killer apps, will be the surprises that drive adoption.

Wow! Sounds great - why isn't this already happening? A number of reasons I think. Firstly, it takes a significant amount of time and resources to write the software and forge the required partnerships between banks, mobile phone operators and regulators. Massive marketing campaigns and having formal banking agents available throughout the target market are necessary to get to scale, and without scale mobile phone banking is virtually pointless. Marketing is critical financial education. I still know many Americans who don't use ATMs because they think see ATMs as a banking scam to extort fees. Malawian preachers warned congregations against fingerprint based ATM machines which "scanned your soul"! These sorts of barriers are not insignificant.

Finally, banking regulators are responsible for making sure that we have safe mechanisms for saving and investing money. Without financial regulation (think FDIC insurance), banks can close and people's money can disappear. It only takes one time for your money to disappear for you to never trust a bank again. Unfortunately, this happens a lot in developing countries and money gets stuck back under the mattress (literally) and a generation of financial progress is lost. These financial regulators are doing the important work in figuring out how to save people from getting burned by mobile phone banking. But like everyone else, they are moving slowly! But it will eventually happen, and it will be a great ride. I can't wait!

(thanks to Claudia for letting me read the cool stuff she comes across in her job researching this stuff at CGAP)

From Great Need Comes Great Innovation

This past weekend I attended and presented at Africa Gathering DC - an Africa ideas oriented  event with social media craftfully employed to amplify the great messages. There were artists, entrepreneurs, engineers, development workers and more sharing and remixing their hope for Africa.



I presented a broad overview of the amazing things that I got to be a part of, when I lived in Malawi and worked with Baobab. My zooming/swooping/rotating "prezi" can be seen here: http://prezi.com/z1tsvo_xftb8/. I think a video was made too, but it isn't posted yet.

Here's a selection of the tweets people made about my presentation (thanks everyone!).



tracy1314 #agdc up now... Mike McKay of Boabab Health

tracy1314 #agdc @mikemckay social justice hacker... Setting up his presentation.

tracy1314 #agdc talking abt HIV killing the people who hold the future of africa in their hands

KateBomz #AGDC Mike Mckay "Social Justice Hacker" of Baobab HEALTH running a chilling @prezi presentation.

tracy1314 #agdc stuff is happening in developing countries that does not happen anywhere else. Good stuff!

tracy1314 #agdc there is shout from the roof tops awesome stuff happening in Africa.

KateBomz #AGDC "POVERTY PORN!"

MByrd No place for poverty porn in @mikeymckay book at #agdc

digitalafrican RT @tracy1314: Baobab health started with an idea that touch screen computers could improve health in Malawi. #agdc

tracy1314 I wish my Dr. Had this system! 30 sec to check in at the dr? Awesome. #agdc

ideasforafrica Hospital registration with this touchscreen system has gone from 20 minutes to 57 seconds in Malawi (Boabab Health) #agdc

nicktadd there are less than 300 doctors for 1million people in Malawi #agdc #omidyar

tracy1314 1 million HIV positive people and 300 dr. In Malawi. Plenty of HIV medication, not enough medicine to distribute medicine #agdc

nicktadd "I wish my Dr. Had this system! 30 sec to check in at the dr? Awesome. #agdc" -@tracy1314 - agreed awesome

KateBomz RT @ideasforafrica: Hospital registration with this touchscreen system has gone from 20 minutes to 57 seconds in Malawi (Boabab Health) #agdc

VaxTrac @mikemckay #agdc Great presentation on health, tech and !Success! by Baobab Health in Malawi.

EGlue RT @ideasforafrica: Baobab Health-started by using touch screen computers to improve healthcare in Malawi @mikemckay #agdc

KateBomz Truly awesome! 'at least' you have a doctor RT @tracy1314 I wish my Dr. Had this system! 30 sec to check in at the dr? Awesome. #agdc

AfricanAncestry #agdc @liveafrican used social media to promote sales of scarves; 5% of gross sales goes toward educating child of artisan for 1 year


tracy1314 Treatment protocols have to be strictly managed and documented... Result unmanageable paper mess #agdc

jkainja RT @africagathering: there are less than 300 doctors for 1million people in Malawi #agdc #omidyar

tracy1314 Time waste managing the paper. Touch screen clinical work stations at every point of contact. That guide them thru the protocol. #agdc

ideasforafrica Baobab Health- touch screen clinical work stations to guide healthcare worker through treatment protocol- more efficient #agdc

KateBomz Prime example of visual transparency #problem & #solution..Baobab Health presentation #agdc

marcopuccia LOL I agree! RT @tracy1314 I wish my Dr. Had this system! 30 sec to check in at the dr? Awesome. #agdc

tracy1314 #agdc helps w accuracy and prediction of supplies. Problem: computers are a non starter in Africa

tmarente RT @africagathering: there are less than 300 doctors for 1million people in Malawi #agdc #omidyar

marcopuccia "From great need comes great innovation!" - @mikeymckay #agdc

KateBomz RT @marcopuccia: "From great need comes great innovation!" - @mikeymckay #agdc

mollymali 9 months is avg life of a computer in rural village in Africa, @mikemckay of Baobab Health. #agdc

tracy1314 #agdc what to do abt power? You can't assume reliable power. Computers need power... What to do?

danyasteele Love that >> RT @ideasforafrica: "from great need comes great innovation" @mickemckay #agdc

tracy1314 #agdc low power machines run by car battery. When power on it chrges the batteries, when power down, baterries kick in. This same set up...

ideasforafrica Innovation 4 power: Use car batteries to run a whole clinic's touch-screens, works for days if power is cut. @mikemckay #agdc

tracy1314 #agdc works with out main power... Replace it with solar or wind>> again awesome!

marvintumbo RT @ideasforafrica: Innovation 4 power: Use car batteries to run a whole clinic's touch-screens, works for days if power is cut. @mikemckay #agdc

mollymali Hey @VOA_Crystal you should contact @mikeymckay from Baobab Health about putting computers into rural areas. #agdc

marcopuccia Focusing African ingenuity into high-impact innovation can create disruptive change! #agdc

ideasforafrica African innovation isn't just low-tech ingenuity, it can be harnessed for the high impact and high tech- @mickemckay #agdc

tracy1314 #agdc William kawemba on screen with Malawian building touch screen computers for boabab. >> thats some awesome innovation in that pix

africagathering Great presentation done by Mike McKay #agdc #omidyar

nicktadd Great presentation done by Mike McKay #agdc #omidyar

marvintumbo RT @ideasforafrica: African innovation isn't just low-tech ingenuity, it can be harnessed for the high impact and high tech- @mickemckay #agdc

madayo So impressed with @mikeymckay on necessity and innovation and "just figuring out how to do stuff" in Africa. #agdc