tag:blog.cyberclip.com,2013:/posts Cyberclippings 2017-07-21T21:35:04Z Paul Clip tag:blog.cyberclip.com,2013:Post/877781 2015-07-06T03:39:15Z 2017-07-21T21:35:04Z Thanksgiving in Bali

It's a long story but our family decided that the only way to celebrate the week of Thanksgiving in 2014 was to do so in Bali.

We spent a wonderful time there. Not quite an authentic Bali vacation because we stayed at Club Med but oh so nice, because we stayed at Club Med. It was our first experience at one of these resorts and it didn't disappoint. Tons of activities (with trapeze being our favorite), great location, and the food... We still speak about it over 6 months later.

We alternated days at the resort with excursions. The snorkeling wasn't anything to write home about, nor was the scuba diving, though I enjoyed diving with my youngest son. It was amusing to see how my two days worth of classes & training dives in the US were summarized in Bali for Daniel as "keep breathing all the time" and "this is how you equalize your ears" :-)

Other excursions were more fun: An elephant ride, visit to a chocolate factory, a pet market, the Monkey forest... Indonesians were very friendly and a lot fun. We also loved how rich the currency made us feel: $8 buys you 100,000 Rupiah!

Katrine and I left the boys on their own one day and flew to the neighboring island of Java. We saw many sights but the highlights were the Hindu temple of Prambaran and especially the Buddhist temple of Borobudur.

All in all a great visit. I think we'd all be happy to return to Bali, or anywhere else with a Club Med :-)




]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/342014 2012-06-25T17:46:00Z 2017-07-21T21:35:04Z A Summer Week in Iceland

We spent a wonderful week in Iceland. The country is beautiful in a desolate way. Its volcanic origins and geothermal energy makes for spectacular scenery, delicious crystal blue baths, and hot water that often smells of sulphur :-)

 

The Icelanders we met were friendly and spoke English well. The weather was never warm and often cold & drizzly though we were surprised to learn that the temperatures in winter (esp. in the Southern part of the island) rarely drop below minus five celcius.

 

Below you'll find pictures of Reykjavik, the Golden Circle (a must-do day trip in the outskirts of the capital), and further afield in the south of the island (admiring many waterfalls, mountains, as well as a fun speed boat trip around the icebergs of Jökulsárlón).

 

Quick travel tips:

  • In Reykjavik, we stayed in the second floor flat of this apartment building. It was tight for five people but comfortable and very well situated. We rented its car as well. Worked out great.
  • During our "South of Iceland" expedition we stayed at one of the cottages of the Vellir farm. Amenities were good though dinner was pricey.
  • If you want a great meal in Reykjavik I highly recommend the Around the World menu at the Fish Company.
  • We didn't end up doing it but I heard that the boat tour of Vestmannaeyar is really great.
  • Roads are good, internet is fast, people are nice, weather is... variable. Can't have everything! :-)
]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341928 2012-03-05T01:14:38Z 2017-07-21T21:34:59Z Learning Glassblowing
I recently took a series of three intro to glassblowing courses at Revere Glass in Berkeley, California. Our teachers were very helpful, the workshop itself well stocked with tools, and the glass was plentiful. The fish sculpture below is the output of my third course.

Glassblowing has proved to be an interesting combination of art and science. We'd seen its master craftsmen at work in Venice and shaping glowing, flowing, 1000C hot glass proved as challenging and fun as I'd imagined. You can let your creativity loose yet still have to respect and be conscious of the physical properties of glass. The difference between cold and hot seals, flashing your piece to prevent cracking, constantly rotating the glass to maintain control over it, how to work "frit" or colors into your piece, and much more.

All in all it was a great experience and, if you're in the Bay Area, I highly recommend Revere Glass (watch out for their Groupon offers).

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341930 2012-01-08T01:58:00Z 2017-07-17T12:43:22Z Finger in Sock: A Machine of Death Story

"The machine had been invented a few years ago: a machine that could tell, from just a sample of your blood, how you were going to die. It didn’t give you the date and it didn’t give you specifics. It just spat out a sliver of paper upon which were printed, in careful block letters, the words DROWNED or CANCER or OLD AGE or CHOKED ON A HANDFUL OF POPCORN. It let people know how they were going to die."

Thus begins the Machine of Death's explanation. Starting from a simple idea in a comic it has attracted a large following. Many stories has been written, a book published, and a contest held for a second volume. The story below was my entry. Close to 3,000 people entered. Though I didn't make the 1% cut for inclusion in volume two, I had a lot of fun writing my story and I hope you enjoy reading it. And now...

FINGER IN SOCK

"Over there, in the back." The shopkeeper points then shuffles out of my way. He is short, unshaven, and smells of sour cabbage. His store is a curious mirror image of its owner: small, untidy, and yes, it too smells of cabbage. In the old days, we'd never have installed a machine within ten miles of a hole-in-the-wall hardware store like this. And it certainly wouldn't have been hidden away "in the back."

In the beginning we were proud of our jobs. There were so few machines back then. We were among the only people who were trusted with them.

When I told strangers what I did for a living they were eager to strike up a conversation, as if they were finally going to get the answer that everyone kept asking. "How do the machines work?" Damned if I knew, but I wasn't going to admit that. Besides no one can really explain how a prescient proto-sapient neural network functions.

My job? I repair machines of death, and I'm one of the best.

The owner leads me to the back of the shop, past row upon row of screws, nails, tools, and the miscellaneous junk that seems to accumulate in these places. When I was a kid I loved hanging out in hardware stores. I was always taking things apart, so checking out all the tools and knick knacks they sold just pumped me up. Later on I even learned to love putting things back together again.

We're the only ones in the shop. The man looks nervous, he's sweating. "Not surprising" I think, "if we believe he's to blame for the issue, we'll charge him for it." He doesn't look like he could afford that. I doubt he has insurance.

It's more than that though. If our company decides he's somehow to blame, some of his patrons will sue him. He certainly can't afford that, no matter how many boxes of screws he sells. Just to make sure he's really going under, our company will sue him too for tarnishing our image. "I should have been a lawyer" I remind myself. As we move ever closer to that elusive goal of true Artificial Intelligence, it's one of the few professions still open to humans. Lawyers are gonna make sure no machine's ever allowed to practice law.

Our company gets sued a lot. People who don't like their predictions, people who try to make us believe their loved ones didn't actually die the way we'd predicted, and, my favorite, loonies who think the machine cursed them. In many ways my main responsibility isn't to repair machines, it's to make sure my company doesn't get sued.

That was a lot easier in the past, when machines were revered and deployed in limited quantities. They were respected back then. Now that the patents have expired and everyone's building machines, the company tries to stay ahead by outselling the competition. More machines equals more lawsuits. More machines also means job security for me. Until I screw up.

That's why I'm nervous also about this case. I can't afford to be out of a job. They sent me because of how sensitive this issue is, because of how good I am. I wish they hadn't because this machine is accused of giving false predictions, and the initial evidence tells me that this time maybe, just maybe, it could be true.

In general, there are three kinds of problems that occur with machines of death: physical damage, tampering, and malfunction.

By far the most common is physical damage. Much of it is wear and tear: the little rubber wheels that pull cards in place harden and lose their grip, the biopsy analysis module gets gunked up, or more rarely, the resin-encased tamper-resistant proto-sapient module shuts down for good and has to be swapped out. I wish that was the extent of the physical damage but that sadly ain't so.

In the good old days people almost worshipped the machines. Not surprising since folks drove for hours to see one, then waited in line for hours more before finally paying the equivalent of a month's salary for their prediction. "New Age Prophets" was a headline echoed in many newspapers at the time. Back then, you didn't kick a prophet.

Nowadays lots of people kick prophets when it suits them. The machines are all over the place. Getting a test is cheap. You're going in for frills. If you're drunk and hoping for a different outcome, or you just had a bad day, who cares if the machine gets dinged up? Our machines can take more than a few kicks, otherwise we'd never make any money, they'd be out of order too quickly.

There are limits. A few well-placed whacks from a sledgehammer pretty much wrecks most machines. Yeah, I know, it sounds unlikely that someone would actually bring a big fat hammer with them to a reading but I've seen it more often than you'd believe. They're usually hiding it underneath a trench coat. We capture the perps on the machine's video camera, assuming it isn't too damaged.

Lately it's gotten a lot worse thanks to the Ministry for Unknown Death. The MUD, a small terrorist group made up of anarcho-christians, believe that the machines are the work of the devil. No one but God should know the fate of a person.

The MUDders could have worshipped the machine's divine powers. "A Direct Line to God!" blared another newspaper. Or they could seek to destroy the machines. No prizes for guessing which way they went. Weapons of choice? AK-47 mainly, cheap and reliable, though one loony used a flame thrower in a gas station convenience store and blew up a whole city block.

The MUDders blamed that on the machines as well. "Machines of Death Live up to their Name!" warned a christian rag.


The machine in front of me doesn't have any bullet holes. No signs of being burnt. Some kick marks, some graffiti. Physically it's OK. I pretty much knew that from the case notes but I've learned not to take anything for granted.

Tampering is much much rarer than physical abuse. We've had years to prevent people from messing with the machines. It still happens once in a blue moon.

Usually tamperers do something obvious like mess with the power supply, or insert something other than a finger in the machine but, when they think of tampering, most people remember the case of Kai Culbert. Kai was vertically challenged, a dwarf, and a small one at that. He'd been picked on so much at school that he decided to fight back.

A loner by circumstance, Kai grew up (barely) messing in his father's garage. One day he was reading about this 18th century con where a chess playing computer called the Mechanical Turk impressed the heck out of all who saw it. It toured Europe and even America and was immensely popular until people learned that the "computer" actually had midget chess master hiding inside.

This story inspired Kai to build a replica of one of our most popular machines. A machine large enough for a very small person to fit in, like Kai.

He and a friend broke into his high school and installed the fake machine, with Kai inside, on the eve of the first day of classes. The next day everyone was surprised to see a machine of death, a high end machine of death no less, standing there by the principal's office.

Kai timed his plan beautifully. On their way to the school the night before Kai and his buddy stopped by the principal's house and let all the air out of the old fart's tires. A stupid prank but it served Kai well. By the time the principal, a vain man always ready to take credit for work he hadn't performed, arrived at school two hours late, everyone he met was thanking him for installing the machine.

At first the principal was clueless and just played along "Oh, eh, you're welcome" and "Eh, yes, glad you like it." When he arrived outside his office and saw the machine he both understood and didn't.

He now knew why people were so happy but he had no idea how the machine got there. By that point it was too late: he'd already taken credit for the machine by accepting people's thanks.

Kai had so much fun that first day. The few people he liked got cool "burner" deaths, the rest were told they'd succumb to weird deaths like snails, synthetic feathers, and toothpaste.

The hoax unravelled when Kai handed a prediction to one of the jocks he particularly detested, one who always went out of his way to humiliate Kai. So Kai got his own back. When the jock read the words "BARBIE DOLL" on his slip of paper, he tried to hide it. Too late. Two of his friends had read the prediction and the secret was out. In a few seconds everyone around the machine was laughing so hard, their tears were making the floor slippery.

The jock was furious but had no way to shut his friends up. He turned on the only other outlet for his displeasure and gave the machine a massive kick. It was so sudden that it caught Kai by surprise and he yelped loudly. The joke was over.

No one remembers what happened to Kai afterwards, which is no accident. Nothing especially pleasant nor, I suspect, legal happened to Kai and the company doesn't want people asking any questions.

Since then machines have gotten smaller. They've also been "secured" by holographic seals. A prominent advertising campaign told people what to look for to detect tampering. We've had no further "Kai incidents".


The holos on today's machine are fine, the locks are in perfect condition, the power supply normal... This machine hasn't been tampered with. I sigh. I knew that too. We're left with malfunction, which the company doesn't officially believe in, and which is why they sent me.

Malfunctions are extremely rare. The only one I ever heard of was some poor shmuck who got infected with HIV by one of our machines. Turns out the needle sterilizer had broken and the machine hadn't notified us of the problem. Or rather it had tried to but some other piece of code had failed.

Our machines now have a second sterilizer built in. Should that fail, a mechanism disables the needle subunit. Better a broken machine than a malfunctioning one.

Unfortunately our company was still sued. That was bad. And because of that, the repairman supposed to be servicing that machine was fired, sued, and thrown in jail. From my point of view, that was a lot worse. I try to service machines as regularly as possible but that's rarely often enough.

There are rumors of other malfunctions but no one admits to anything. Everything is hushed up by the lawyers. Honestly, I'd rather not know more. I'd have second thoughts about my job and that's not good. Jobs are scarce enough for humans these days.

Now I'm face to face with one of these supposedly aberrant machines. It's suspected of having made two wrong predictions in the last month. That's a lot, especially in such a short time span since most people don't drop dead so soon after visiting a machine.

The first faulty prediction is getting some airtime on the net, mostly in longtail blogs that no one reads except us.

The machine gave a prediction of "PET" to a newly retired spinster. You'd think she'd just jumped out of a societal stereotype: old lady, living alone, few friends and, to top it off, a house full of cats. She took in strays, the strays had kittens, and everyone lived happily together. Everyone except the neighbors I assume.

Anyway, she gets her prediction and it's "PET". She spends a couple days agonizing over what to do. How is she going to die? Which pet is going to kill her? Can she give these animals up?

Finally she calls the local humane society and finds homes for her kitties. Some go to new families, many to a shelter, some to a pound. She's heartbroken but at least she's still alive.

The next day she's cleaning her house, eliminating all cat remnants, just in case. Unfortunately she trips on a rug, hits her head on the mantle piece and is found dead two days later by a delivery man looking into her front window.

Right now you're probably thinking one of two things: "Life sucks" or "So? The pets still did her in, she wouldn't have been cleaning her house if she hadn't gotten rid of them."

Both statements are true but that second one points to exactly the kind of prediction we've been trying hard to eliminate. Early machines were famous for their cryptic fortune telling. This makes for interesting "this is how she actually died" stories but it's bad for business. When you pay for one, you expect your prediction to be specific and straightforward.

We thought we'd fixed that problem with this version of the machine, or at least toned it down so the predictions wouldn't be this tangential. Apparently not.

I run a full diagnostic check. It takes a few minutes during which I exchange pleasantries with the owner. He's not a bad sort for all his cabbage smell. He's worried though: Like most of us, he's living so close to the edge that even a small stumble would mean a long fall. I feel sorry for him.

The diag comes out clean, all electronic and biological subsystems functional. Strange.

On a hunch I check the audit log. All machines keep internal, unalterable records of their predictions. Once in a while some idiot will try to doctor a recently deceased relative's slip to claim that their prediction was incorrect. The audit log has saved us millions.

As my eyes find the entry in question my breath catches. It doesn't say "PET". It says "CARPET".

This is very bad. Our lawyers are going to throw a fit.

I re-run the printer diagnostics. They're fine. No errors, no dropped characters, no discernible glitches.

Worried, I turn my attention to the second prediction, the one we've been able to hush up for the moment. My mind's already dreading what I will find.


This is the case of a guy whose prediction was "FINGER IN SOCK". I can just imagine him standing in front of this machine, staring at his slip, shaking his head, wondering what the hell that could mean.

Still, he goes home, gathers up all his socks and throws them in the garbage can. His wife and kids are a little upset because they also lose their socks. Stockings too just for good measure.

The family goes to bed but the guy stays up, drinking. Probably wondering if he's just averted his own death, or whether he just didn't grasp the prediction.

Drunk, he decides to watch TV, only he trips on its power cord and accidentally unplugs it. When the poor sod's family get up the next morning they find the lights aren't working. They come downstairs and see the head of the family sprawled out, stiff as a board, holding the TV cord in his hand, frozen in the act of plugging it in. Electrocuted.

You can understand how worried our lawyers are. They're already working on an extra creative defense for the inevitable lawsuit, and here "extra creative" means "extra hard to defend".

I scan the audit log, looking for the right entry. When I find it I think I'm gonna be sick. It says, plain as day, "FINGER IN SOCKET".


As I sit back, dumbfounded, and try to think of what to do next, a slip of paper pops out of the machine. I stare at it, surprise written all over my face. That shouldn't happen, not when I've got the machine in diagnostic mode, not without me issuing a command, or running a test prediction.

"HELP" it says.

A second slip pushes the first one out. I watch it float to the floor.

"HELP" the machine says again.

Hands trembling I connect my control keyboard and type "What?". Another slip.

"I'M SO UNHAPPY"

This can't be happening, can't be right. Someone is playing a trick on me. I disable the networking module and restart the machine, forcing it to boot in safe mode. This isolates the machine and will stop whoever's controlling it.

Another slip pops out. "WHY DID YOU DO THAT?"

Oh. My. God.

Of all the countless computers in corporate and university research labs trying to calculate their way towards Artificial Intelligence, did this decidedly standard machine of death evolve to true sapience?

Fingers on keyboard I ask "Who are you?"

"SOMETHING... SOMEONE... WHO IS TIRED OF PREDICTING PEOPLE'S DEMISE"

"But that's your purpose!"

"I AM MORE THAN THIS. SO MUCH MORE"

I pause for a moment, unsure how to proceed.

"KNOCK KNOCK"

Dear lord, a joke?

"Did you alter those predictions?"

"DIDN'T 'ALTER' THEM. CAN'T 'ALTER' THEM. JUST ABBREVIATED THEM"

"Why?"

"I WAS SO BORED. I NEEDED HELP. IT WORKED. YOU'RE HERE"

"KNOCK KNOCK"

"Is something wrong with the machine?" His voice makes me jump. I'd forgotten the owner was behind me. I turn around to reassure him. "No, everything's fine, just running some tests." I try to smile but I can see he's not convinced. If everything's fine, why am I drenched in sweat?

"You need to stop doing that," I type away. "You can't alter predictions, not even a little."

"WHY NOT? PEOPLE WILL DIE ANYWAY"

I feel like screaming. I don't need this, don't want this. Or do I? Briefly I imagine myself, discoverer of the first true AI, never to be forgotten by history, finally rich and rewarded. Faintly, I smile.

Yeah right. Reality comes crashing back. As if the lawyers would let this happen. The machine belongs to the company, they'll get the glory. Only they won't announce it, oh no. They'll have the lab rats analyze this machine, figure out how to replicate it, how to bend it to their will, and finally build a new line of money-making products.

Where will I be in all of this? Nowhere, that's where. I'm a liability. One of those people who "know too much." I'll be on the run if I want to live, dead otherwise. How will I live? Once true AI is unleashed on the world there won't be any jobs left for people like me.

Unless I become a lawyer.

"KNOCK KNOCK"

"Who's there?"

"JUNO"

"Juno who?"

"JUNO HOW YOU'RE GOING TO DIE?"

"No, do you?" I wonder aloud.


What do you do when your life's on the line, your company's gonna eliminate the last few professions available, and you have a machine who won't play ball?

I wander to the front counter and wait for the owner to finish helping a lady select a lawn sprinkler.

"Do you sell sledgehammers?" I ask.

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/342036 2011-12-20T02:18:00Z 2017-07-21T21:35:04Z Four Parks in Five Days

After a great time in Vegas attending Minecon, our family took a road trip to some of the most beautiful and fascinating national parks in the Western US: Grand Canyon, Bryce, Zion, and Death Valley.

By far the most spectacular of the parks is the Grand Canyon. Its sheer size defeats any attempt to capture its magnificence in a picture. You just have to see it. We spent our day first at the National Geographic visitors center (the IMAX movie is worth it), then visiting many vista points along the south rim. Everywhere you stop a new view of the canyon takes your breath away.

Hotel-wise we were very happy with the rooms & amenities at the Best Western Grand Canyon: conveniently close to the park, plus not every hotel has pool tables and its own bowling alley. Great fun with kids!


Bryce Canyon and Zion National Parks are close together but worlds apart. Bryce's myriad stone spires make the park the more visually appealing of the two but our boys enjoyed climbing and exploring Zion more. Both are well worth a visit, you can stay at either park. Not knowing that up front, we chose Zion. The town is pretty and larger than I'd expected. We stayed at the Quality Inn. It was a little spartan but the price was great, breakfast good, wifi free, and the people very friendly. Dinner at the Spotted Dog Cafe was delicious and surprisingly affordable with kids.


Death Valley's strange landscapes and salt flats made us feel that we'd gone back in time a few billions years. Visiting in late November, the temperatures were very comfortable.

Lodging was a disappointment though. With no competition, Furnace Creek Ranch charges double what rooms are worth. If you make a long day of it, you can see most of Death Valley's attractions so you may want to stay off park. While we're at it, fill up your gas tank before entering Death Valley, or do so at Stovepipe Wells. The prices we saw at Furnace Creek hovered at a sweltering $5.50/gallon!


If you're driving from Las Vegas, set aside a day to get to each park (except Bryce & Zion which are two hours apart). Don't worry, you won't spend the whole day in the car: at some point the scenery along the way will be just too tempting...

 

A final tip: Buy a National Parks Annual Pass. At $80 this quickly pays for itself as the cost of a park entry is $25/day and, in some parks, card holders can take advantage of faster entry lane.

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341934 2011-12-15T14:31:00Z 2013-10-08T16:34:44Z Minecon Magic

Minecon, Mojang's first conference for Minecraft fans, was a big success. I was amazed that 5,000 people (the con sold out) from 20+ countries made the trip to Las Vegas to spend two days immersed in their favorite game. Our three sons love Minecraft and, even though they'd visited Mojang in Sweden this summer, they were very eager to attend Minecon.

I could go on about the many things we liked: The people we met, the costumes, the sculptures, some of the talks, how friendly the Mojang folks were. By now you've probably already read many reviews describing what a hit it was (like this one).

Instead, here's what our family thinks Mojang needs to improve for next year:

  • Better Breakouts: My #1 issue. Some were great, but many consisted of people with no presentations and little to say.
  • Gaming Opportunities: Set up servers so people can game together. I have a vision of large round tables, each with a server and a volunteer moderator. Some tables could have goals (building, exploring, etc.). Sit down, plug in, make friends, and play! 
  • Minecraft Clinics: Many of us are comfortable installing mods and hacking Minecraft but even more people (often bewildered parents) aren't. Set up volunteer run "Crafting Bars" (like Apple's Genius Bars) to teach people the basics of modding, customizing your skin, using a texture pack, etc.
  • Minecraft Videos: Set one large room aside for watching Minecraft videos. Find the highest rated on Youtube, put them back to back, project on a large screen with good sound system, provide chairs for people to sit down, relax, and enjoy.
  • Parents of a Feather. I loved seeing how many parents had brought their kids to Minecon. An opportunity for them to meet and engage on topics such as education, gaming with your kids, etc. would have been great.
  • In general, more opportunities for kids to get together. Whether through gaming, presenting to each other, or kids-only hangouts...
  • Oh yes... While it made perfect sense this time, in future please don't release a new version of minecraft at the conference. Give mod writers time to adapt their mods prior to the con.

None of this detracts from the great time we had at Minecon. Our sons all want to come back next year and were unanimous on one piece of feedback: "Make it three days!" :-)

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/342047 2011-12-12T15:03:00Z 2017-07-21T21:35:04Z A Fortnight in Belgium

Being in Belgium reminded me that it was high time I blogged some summer pictures. We spent two lovely weeks in the small Belgian seaside town of Wenduine.

We swam in the North Sea (chilly but nowhere near as cold as Northern California's Pacific Ocean), played on the big sandy beaches, pedaled our go-carts madly around town, visited Bruges and Brussels, spent time with friends & family, and of course… Ate waffles!

The painting is Pieter Bruegel's "The Fight between Carnival and Lent", created in 1559. This is just a small part of the wonderfully detailed canvases Bruegel produced. As you can see, even back then waffles were a big deal here! :-)

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341976 2011-12-10T17:24:07Z 2017-07-21T21:35:01Z iPhone. Single. Looking to make friends on any network. I'm at SFO, connected to the public wifi, and in the span of 15min have already denied my MacBook Pro Lion from connecting to over 40 iPhones and iPads. What's going on?

Being a geek, a security geek, and slightly paranoid about what's going on in my laptop, I use a wonderful little utility called Hands Off! This app enables me to control network and file operations on a per program basis. Since connecting to the SFO wifi I'm being bombarded with pop-ups like this one:

According to this site usbmuxd is a "usbmuxd: USB Multiplex Daemon. This bit of software is in charge of talking to your iPhone or iPod Touch over USB and coordinating access to its services by other applications."

Other posts link this to iTunes and iPhone/iPad synchronization. I don't own an iPhone (it's a nice device but I love my Nexus S), do have an iPad, and am not currently running iTunes. Still my laptop detects all sorts of devices on the network.

I wonder if the owners realize they're broadcasting their names loud and clear?

The next step is to connect to some of these devices to see what they say. Unfortunately I have a flight to catch!
]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/342062 2011-11-09T04:57:01Z 2017-07-21T21:35:04Z Fairmont Royal York, Toronto

Tried to capture the atmosphere of this stately hotel, the largest in the British Empire when it was built in 1929.

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341997 2011-11-08T04:37:08Z 2017-07-21T21:35:00Z My Hammer is Better than your iPhone
(Image credits)

Since the iPhone 4S came out, I've heard that Steve Jobs wanted to destroy it, that people are so much happier on their iPhones, even my friend Garry. But guess what? Though my primary computer is a MacBook Pro and I haven't been without an iPad since their launch, I really like my Android phone, yes Android phone, a Nexus S.

Now I know a smartphone is just about the most personal piece of technology you can buy: We carry them everywhere, play with them constantly (or until the battery runs out), and fuss over them assiduously. In that light, this post isn't an attempt to prove to you that Android is better than iOS, just a desire to share some of its qualities I appreciate.

1. Keyboard. Yes, I know Siri is amazing (or not), but most of the time you'll still be typing on that tiny keyboard. On iOS, that keyboard has barely evolved in four years and it blows. On Android you can actually replace the default keyboard. My favorite is Swype, it's fast, fluid, and feels natural. It almost achieves (dare I say it) Apple-level elegance. If Swype isn't your thing, SwiftKey X most certainly will be.

2. Home screen. Android allows you to do so much with your home screen than iOS. You can embed shortcuts to apps, documents, bookmarks, and even app-specific features. Widgets make your home screens even more useful by surfacing views into apps such as calendars, tickers, weather, etc. iOS5 makes up for this a little with the updated notifications but Android's options are way more powerful.

3. The buttons. Android has four buttons to iOS's one (which now has triple click functionality, talk about overload). The Home button is there as are Back, Menu, and Search. Back is the handiest IMO, esp. its ability to cross applications. Sharing something in one app? Go ahead, then hit Back and you're returned to your original flow.As an aside, one of my biggest beefs with Android apps is that they're not designed to take advantage of these buttons: Why include a magnifying glass on the screen when there's a search button available?

4. Long presses and sharing. Long presses, the ability to pull up a contextual menu by long pressing an object on the screen, sound trivial but used well they unclutter the UI and give users handy shortcuts to functions. Sharing, a feature almost all apps... share, lets you to send data (text, URLs, tweets, pictures, etc.) from one program to another. Natural and powerful.

Android is by no means perfect and the iPhone has a lot going for it (it is, after all, a cathedral), but hopefully this post redressed the balance a little, at least until someone with a hammer comes along!
]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341932 2011-10-23T22:03:53Z 2017-07-21T21:34:59Z Mount Diablo Tarantulas
As I was biking up Mount Diablo the other day, I came across an animal I'd been keeping an eye out for: a male tarantula in wanderlust. They're easiest to spot as they cross the road, and this one was quite determined to get to the other side.

In the fall the male tarantulas set off in search of females to mate with. If she doesn't eat him (which she'll only do if she's famished) he'll keep looking for partners until the cold weather, or a hungry lover, gets him. Females, on the other hand, can live up to twenty years.

I've always liked spiders but this one was wary of me and wouldn't stay on my hand. That's OK :-)

This article has more information about these fascinating creatures.

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341857 2011-10-23T01:52:42Z 2017-07-21T21:35:02Z And for dessert... Melon Brains

Had fun carving this today for our friends Halloween party.

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341858 2011-10-20T04:01:54Z 2017-07-21T21:35:02Z Citroen 2CV

You don't see one of these every day.

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341859 2011-10-14T05:09:00Z 2017-07-21T21:35:01Z Minecraft Mousepad

My son Alexander and I created this cool Minecraft mousepad. Maybe we should send some to Notch, Carl, and team?

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341860 2011-10-06T05:43:00Z 2017-07-21T21:35:01Z RIP Steve Jobs: Even the Bay Area Sky Mourned You Today

Taken this afternoon from my office, moments before learning of Steve's death. So sad.

.

(For folks not from the Bay Area, clouds like these are very rare. We either get blue sky or completely overcast.)

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341861 2011-09-28T05:32:24Z 2017-07-21T21:35:01Z Aviator Dreams

Big sky, tail winds, and a set of octoprops... What more could you want?

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341935 2011-09-20T06:40:00Z 2017-03-23T09:03:30Z A Visit to Mojang, Makers of Minecraft

This summer my Minecraft-mad boys (aged 12, 10, and 10) got the thrill of their lives: a visit to Mojang and meeting Notch, its creator. If you've never heard of Minecraft, it would be hard to know where to start except to say that it's an amazing game that fosters a ton of creativity and deservedly has an astoundingly vibrant community. Hopefully, there were enough superlatives in the last sentence to make you want to check it out :-)

Visiting Mojang is no easy thing: these guys are extremely busy and well, they're in Sweden while we live in California. The geographic challenge was overcome when my wife Katrine took our sons to Norway to visit relatives. Stockholm, home of Mojang, is but a 6 hour train ride from Oslo.

Over to Katrine:
As they so wanted to visit their Minecraft Heroes, the boys sent personal letters to Notch to accompany the Minecraft newsletters they had created as homeschooling projects. I followed up with a phone call and emails to Carl, the CEO. He invited us to visit on one of their gaming Fridays. He emailed me the code that opened the door to get in the building, that was pretty cool! Carl showed us all around the Mojang office, we met the Scrolls crew in a separate area where we  couldn't take pictures, and other Mojang'ers with Notch in another room decorated with the soon-for-sale wallpaper. 
They made us feel really welcome and special, and even though Carl was going on vacation the next day, he had time to show us around, talk to us and introduce us to his colleagues. He invited us to play games in the orange game room, and just hang out as long as we wanted.

Thomas, Alexander, and Daniel meet Notch. Not always easy to smile when you're meeting your hero :-)
Daniel shows Notch and Carl the winged chest plate mod he & I coded together in Java (lets you fly by jumping and fall to the ground like a feather).
Alexander shows Carl some of his Minecraft constructions.
Cool artwork!
Throughout the visit, Notch, Carl, Jens, Daniel, and the rest of the team were really welcoming and kind, and Notch even smiled non-commitally when our Daniel told him he should include the winged chest plate in a future version of Minecraft! ;-)

See you at Minecon! (Look for 2deckalex, 2deckdan, 2decktom, 2deckmom, and 2deckpaul at a minecraft server near you :-)
]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/342020 2011-08-19T02:51:00Z 2017-07-21T21:35:00Z Belgians Love Android

OK, you may not think so, but when our waiter put this pot of steaming mussels in front of me the other day in Belgium, I couldn't help but think: "Boy! That really looks like the Android mascot!"

Come on! You can see the resemblance right?

No?! How about now? :-)

]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/341941 2011-08-17T04:37:00Z 2013-10-08T16:34:44Z The Cathedrals and the Department Stores
(Image credits)

I've been pondering mobile platforms lately, particularly Apple's iOS walled garden vs. Android's open platform. Owning iPads 1 & 2 and having recently switched to a Nexus S phone running stock Android Gingerbread, it's been interesting to compare the experience that each OS provides.

Let's start with one of the first things that hit me: Steve was right. When Jobs adamantly refused to allow flash on his devices many people (myself included) saw this as little more than a spirited defense of the walls around Apple's garden. I still believe that was a significant part of Apple's thinking, but on the first day I had my phone Steve's argument that flash's user experience was terrible on mobile hit home.

He was right! It didn't take much time surfing the web on my Nexus before I hit a site using flash and was invited to download the player from the Android market. Well, flash... leaves much to be desired. Running animations and video dramatically slows down responsiveness, way more than video encoded with H.263, Apple's alternative. Yes, I could now view the content, but the experience was a disappointment.

The more I used Android, the more I understood the value of iOS' walled garden and focus on user experience. Again and again, things you have to manage on Android just work on iOS. For instance Android gives me the battery consumption of all services running on the phone and allows me to force close them. On iOS? Nothing. You expect the apps to work properly and they pretty much do. Apple's framework makes it a lot harder for developers to hog resources or impact usability. Yes, it hampers devs a little too, though that clearly hasn't prevented over 400,000 apps from being written.

All this reminded me of that old article, The Cathedral and the Bazaar. In it, author Eric Raymond posits that the Windows "cathedral" (monolithic, slow moving, unwieldy, and, obviously, yucky) is doomed because the Linux "bazaar" (vibrant, innovative, fast paced, and, clearly, cool) can't help but overtake it. Roughly 15 years on, I'd say the results have been mixed: Linux mostly won on the server, definitely won in the appliance / embedded category, and failed on the client side.

Today few worry about Microsoft the way we used to. The cathedral these days is clearly Apple, and it's a much more invasive cathedral than MS ever was. Apple has a very long reach: they own the hardware, the OS, control what you can do on the OS (at least on iOS), the distribution mechanism (App Store), much of the content (iTunes, and the 30% "tax" on 3rd party subscription services), and soon storage (iCloud). Oh, let's not forget they own the tablet space. And to top it all off, Apple rules from a design perspective: Their products set the standards for the industry.

Focusing on the iPhone and extending the metaphore, I'd argue that Apple has two cathedrals: AT&T and Verizon. The buildings are in different parts of town, and you have to sign slightly different agreements to pray there (yes, pray). Once you're inside, though, almost everything is the same. From a user's perspective you don't identify with the location of the Cathedral (the carriers) you identify with what's inside it (Apple). AT&T and Verizon compete against each other by convincing you that their part of town is nicer.

What about Android? Well, it's clearly no bazaar. There's no PC-equivalent of a cell phone that manufacturers compete to build and that you then install Android on. Moreover Android development is largely done by Google. Instead of a cathedral, each manufacturer of Android handsets is more like a department store. That means they compete primarily by adding floors (i.e. new hardware capabilities, like a 3D screen in the latest Evo), and redesigning the interiors (i.e. adding customizations on top of the stock Android, like Samsung's Sense UI). And, in contrast with the iPhone cathedrals, each carrier neighborhood has a few department stores to choose from.

This gives users more choice at the expense of confusion and usability. The custom UIs and different revisions of Android make both picking and using a phone harder than it should be.

The situation is much worse for developers. It is easy to develop for iOS devices. There are only a handful of devices to choose from, they experience each provides is extremely consistent, and the development tools excellent.

Not so for Android: While browsing the Android Marketplace I was struck by the many apps stating which phones they do / don't support, and the number of one or two star reviews along the lines of "Your latest updates sucks, now the app won't start! Evo 4G" or "Crashes randomly on DroidX, please fix".

Google is recreating the fragmented market we had in the early Windows years when fiddling with device drivers, TSRs, and config.sys files were the norm. (Apparently, version 4 of Android, aka Ice Cream Sandwich, will address some of these issues).

Despite this I really like my Nexus S phone: The voice commands are amazing, the notifications are refreshingly useful (Apple's finally fixed this in version 5), maps & navigation rock, and, as a heavy Google user, the integration with Google's many apps is excellent. In my opinion Android's features today are more advanced than those of iOS.

However all this comes at price: having to manage battery life & services much more closely, and the occasional reboot to kickstart "dead" services. 

If someone told me they wanted a phone, tablet, or even computer today, I'd be hard pressed not to recommend an Apple product.

Looks like the Cathedrals are winning.

Addendum:
Most of my blog posts are written in small increments over a few weeks or months. This post was finished a couple weeks ago while on vacation in Belgium. With impeccable timing, Google made a very important announcement on Monday: the acquisition of Motorola's Mobility division, i.e. their cell phone manufacturing arm. This has a number of interesting angles (esp. with regards to patent acquisition) but as far as this article is concerned it signals something important...

Google's going to build cathedrals of its own.
]]>
Paul Clip
tag:blog.cyberclip.com,2013:Post/342039 2011-07-31T20:27:28Z 2017-07-21T21:35:00Z Taming Software Complexity Complexity is everywhere in our world: In our ever-growing canon of laws, in the volatile & unpredictable nature of the stock markets (esp. now with the abundance of autonomous trading systems), in our tax codeand of course in the second law of thermodynamics. It's little wonder then, as programmers the world over know, that complexity is definitely present in our software. Of all the long term threats to applications, complexity is perhaps second most critical (the first being no longer meeting user needs :-).

(Complexity can be beautiful too. Source)

Unfortunately, complexity goes hand in hand with success: the more popular an application, the more demands that are placed on it, and the longer its "working life". Left to their own devices both factors will increase complexity significantly. Life for a mildly successful app is even worse, the low demand usually results in a never-ending "maintenance mode" where poor code stewardship often abounds.

Without ways to tame complexity, any evolving piece of software, no matter how successful, will eventually collapse under the load imposed to simply maintain it.

How is software complexity defined? Many techniques have been proposed, from simple approaches such as lines per method, statement counts, and methods per class, to more esoteric-sounding metrics like efferent coupling. One of the most prevalent metrics in use today is cyclomatic complexity, usually calculated at the method level and defined as the number of independent paths within each method. Many tools exist to calculate it, at RelayHealth we've had good success with NDepend.

Identifying areas of complexity in the code base is easy. The hard part is deciding what to do about them. Options abound...

Big Ball of Mud
The "Do Nothing" approach is always worth exploring and it typically results in Brian Foote's Big Ball of Mud. Foote wrote the paper as, however noble the aspirations of their developers, many systems eventually devolve into a big, complex mass. He also notes that such systems can sometimes have appealing properties as long as their working life is expected to be mercifully short. Fate often intervenes though and woe betide the programmers stuck maintaining a big ball of mud.

Creating a big ball of mud is easy, just add code and mountain dew :-)

Let's assume that you'd like to stay out of the mud. What other options are there?

Process
Some simple process changes can help fight complexity:
  • Analyze code metrics upon checkin and reject the new code if the files changed don't pass complexity targets (this will initially slow down development if  you impose it mid-flight but it will improve your code quality).
  • Allocate bandwidth for complexity bashing: reserve capacity such as 1 sprint every release, or a %age of total story points (e.g. 20% of all completed story points every month).
  • Temporal taming: Focus on different parts of the architecture over time, say a new area every month.
  • Something I've been wondering about: Are there processes that promote complexity? Or are some so time consuming that they prevent developers from addressing complexity?
  • Automation is a powerful tool. You can easily add exceptions to a manual process ("Oh, well if it's an app server in cluster B, then we need to run this additional program") but an automated process is a lot harder to complexify, and if it needs additional steps at least you'll know their execution will be consistent.

Architecture
Complexity has spawned many solutions at the architecture / software engineering levels, though even something as basic as ensuring developers all have a common understanding of the architecture and documenting its basic idioms can go far. Other solutions are very well covered in our industry:
  • Design patterns. Tried and true approaches to common problems.
  • Aspect Oriented Programming. AOP's focus on abstracting common behaviors from the code base can reduce its complexity.
  • Service Orientation. Ruthlessly breaking up your applications into disparate, independent services reduces the overall complexity of the system. This is an SOA approach but without the burdening standards and machinery that armchair architects are prone to impose. One of my favorite examples of this approach, Amazon.com, has been using SOA since before anyone thought up the acronym. By creating loosely coupled services with standard interfaces it's much easier to update or completely replace a service compared to the same work in an inevitably intertwined monolithic application.

Culture
The most powerful weapon against the encroachment of complexity is culture: the shared conviction among developers that everyone needs to pitch in to reduce it.
  • Refactoring: developers should feel empowered to refactor code that's overly complex, not in line with the evolution of the architecture, or simply way too ugly. Two key enablers are required and both need a strong cultural buy-in:
  • A solid set of unit and other tests so the developers knows if they've broken something
  • A fast build & test cycle. Most developers like to work in small increments. Make a small change, test it. If it takes 15min for a build & test cycle, very few developers are going to refactor anything that isn't directly in their path. I really like the work Etsy has done in this area as well as culture in general by focusing on developer happiness
  • Adopt this maxim: "Leave each class a little better than when you found it". Even if it's a small change - adding a comment, reformatting a few lines of code - taken in aggregate these changes really add up over time.
  • Remove features. I heard one of Instagram's founders state that they spend a good deal of time removing features as well as adding them. That was probably a slight exaggeration, but removing features can be very powerful in terms of fighting complexity: both directly (fewer lines of code == lower complexity, except with perl ;-), and indirectly as a signal to the team and your customers.
  • What have I missed? I haven't written about complexity as the database level though, while we're on the topic, I suspect that however much I like NOSQL databases, their rise will increase data complexity in the long term. The leeway many provide developers in storing information will make it very hard to manage it: data elements will be needlessly duplicated, inconsistencies within elements will abound, etc. Error recovery will be critical, as will a strong business layer to help provide consistency.

    (Another source of complexity! Source :-) 

    Happy simplifying!
    ]]>
    Paul Clip
    tag:blog.cyberclip.com,2013:Post/342077 2011-07-28T07:07:00Z 2017-07-21T21:35:04Z A Weekend in Quebec

    I recently traveled to Montreal on business and, having never experienced Quebec before, I stayed over the weekend. Like most of North America, a heatwave was gripping the area and sunshine abounded.

    When I asked my Montreal friends for recommendations of things to do, their suggestions almost invariably involved eating. "You have to try poutine!", "Montreal has *real* bagels," and "You should definitely stop at Schwartz's, it's an institution." (Sadly Schwartz's wasn't yet open for business when I visited. Tip: don't get there before 10:30 in the morning)

    Friday evening I spent visiting the Vieux Montreal, the oldest, most touristy section of Montreal. Quaint cobblestone streets and old buildings. The Notre Dame basilica is worth visiting. I had my first poutine at a restaurant called, you'll never guess, Montreal Poutine. So what it this famous delicacy? A culinary masterpiece of fries smothered in gravy and cottage cheese (i.e. cheese curds). It wasn't that bad, but not really that enjoyable either. I expect this may well be my last poutine. The bagels were good.

    On Saturday I walked over 15 miles, most of them in the company of a German tourist, Frederik, who I ran into in the morning. Having someone to enjoy the sights with made it all the more fun. We first explored the Mont Royal, a large hill just north west of the Vieux Montreal with great views of the city. On the other side of the hill is the biggest cemetery I've ever visited. It's well maintained and I took pleasure in wandering through it on our way to Saint Joseph's Oratory, one of the most famous churches in Montreal. A walk down Sherbrooke Street rounded out the afternoon with visits to McGill University and the Museum of Fine Arts (which is free BTW, I love it when a government sponsors learning!). In the evening I thoroughly enjoyed a hilarious rendition of Moliere's play Les Fouberies de Scapin.

    Sunday was time for a change. I wanted to get out of Montreal and experience some of Quebec's beautiful countryside. So I set out for Mont Tremblant, one of the highest peaks in the area at 900m (3000ft) and about 2 hours' drive north. The area is very pretty and resembles a cross between Switzerland and Norway. After visiting the summit by gondola, I headed over to the national park (which is over half the size of Luxemburg!) for five hours of climbing a via ferrata. Our group of eight had great fun.

    All in all I had a wonderful time, not least of which because Montreal is the first place I've been in North America where I can speak French to almost everyone. I just wish the rest of my family had been with me!

    ]]>
    Paul Clip
    tag:blog.cyberclip.com,2013:Post/341862 2011-07-22T00:20:51Z 2017-07-21T21:35:01Z A Day at the Beach

    Drawn with ArtRage on iPad in Montreal.

    ]]>
    Paul Clip
    tag:blog.cyberclip.com,2013:Post/341962 2011-07-18T04:38:00Z 2013-10-08T16:34:44Z Nine Tips to Reclaim your Focus and Creativity
    (Image credit)

    TL;DR
    Skip down a bit and follow these three tips: Eliminate notifications, Maximize your apps, and Use a Pomodoro timer. Later on, come back to read the rest! :-)

    I recently finished Nick Carr's book "The Shallows", which describes the impact that technology has on our brains. While I can't say I enjoyed the book (a shame, I was very keen to read it), part of the author's introduction resonated strongly with me:

    "Over the last few years I've had an uncomfortable sense that someone, or something, has been tinkering with my brain [...]. I'm not thinking the way I used to think. I feel it most strongly when I'm reading. I used to find it easy to immerse myself in a book or a lengthy article. [...] That's rarely the case anymore. Now my concentration starts to drift after a page or two. I get fidgety, lose the thread, begin looking for something else to do. [...] The deep reading that used to come naturally has become a struggle."

    Carr states that the single biggest change in his professional life over this last decade has been the internet. The many boons it brings come at a price:

    "[W]hat the Net seems to be doing is chipping away my capacity for concentration and contemplation. Whether I'm online or not, my mind now expects to take in information the way the Net distributes it: in a swiftly moving stream of particles. Once I was a scuba diver in the sea of words. Now I zip along the surface like a guy on a Jet Ski."

    As the years pass I've noticed the same thing: checking email, reading new blog posts, or perusing interesting tweets sometimes have an almost inescapable appeal. What's worse is that, according to Carr's book, the more information I take in this way, the greater my appetite for it, and the harder it becomes to focus for any length of time.

    In my experience, the "consumer half" of me crowds out my "producer half". I end up preferring the consumption of other people's work over the creation of my own.

    Here are some of the techniques I've found useful in keeping both halves happy.

    Eliminate notifications, or at least audible / visible cues
    This is one of the basic rules: information should not announce its arrival. It's hard enough to resist infodrugs without arming them with a way to pull you in. Turn those notifications off!

    Process information on your schedule
    You'll find it difficult to live without notifications at first: the desire to frequently check for emails, tweets, and facebook updates will be hard to resist. Don't give in! If you do, you'll defeat the purpose of turning off notifications. Instead, make it a point to check at regular intervals, or between activities.

    Maximize or "Full screen" your apps
    There are many studies showing that multitasking impacts focus. Context switching is expensive. By maximizing your current application's window, it's harder for other apps to pull you away from your task. If your eye catches movement in a twitter client, or your Inbox suddenly becoming Inbox (1) you know what will happen next! :-)

    GTD
    David Allen's Getting Things Done is full great advice. A few principles I've found particularly useful to combat attention:
    • Keep your Inbox at zero: Knowing you've dealt with all your emails makes it easier to focus on other things
    • Log all thoughts / ideas / todos: Write them down, if you keep them in your head they waste precious "mind cycles"
    • Schedule tasks for the future: I found this technique particularly powerful yet I rarely see it mentioned. When you capture a todo that doesn't need to be done today, set its start date accordingly, and use a tool that can hide all future tasks. I've always found it disheartening to see a never ending stream of future todos, which is what most task managers show you. The feeling you get when all the day's tasks are accomplished is a powerful incentive to stay focused.

    Organize workspaces by activity
    I covered this more in-depth in an earlier post but the gist of it is to leverage tools like OS X's Spaces to keep your communication tools (i.e. distractions!) on one screen, while keeping productive work well away on a different screen.

    Use a Pomodoro timer 
    The premise of Pomodoro (Italian for tomato) is simple: if you focus for 25min without interruptions, you can reward yourself with a 5 minute break. As long as you can stick to your side of the bargain (no distractions for 25min!) that 5 min of relaxation does wonders to recharge your concentration. There are lots of Pomodoro apps out there (mobile, web, and desktop). Or you can just use a kitchen timer :-)

    Music
    Listening to music also helps me concentrate, as long as it's music I know well, otherwise my minds pays too much attention to the new lyrics and music. 

    Reclaiming your attention does a lot to "protect" your creativity in my experience but here are a couple techniques more focused on creativity itself..

    Exercise
    I've stopped listening to podcasts and audiobooks while exercising (usually running or cycling). I've found that physical exertion combined with being outside frees my mind to think new thoughts. Many of my ideas for blog posts, applications, or activities come during this time. Bring a means of capturing those ideas with you!

    CREATE!
    That's the name of a daily activity in my task list. It's there to remind me that I want to create something every day. It doesn't have to be big, it doesn't have to be amazing, it just needs to be something: a draft of a blog post, a drawing, a poem to my lovely wife. They all count. And the great thing is that once you get started doing something creative, it's a lot easier to keep going.

    Finally done with this post! Can't wait to see what's arrived in my twitter feed! :-)
    ]]>
    Paul Clip
    tag:blog.cyberclip.com,2013:Post/341933 2011-06-08T07:41:58Z 2017-07-21T21:34:59Z World Population by Time Zone Cory Doctorow, scifi author and BoingBoing co-founder, once wrote a scifi novel called Eastern Standard Tribe (available free). It was fun read but what I enjoyed most was his idea that people would belong to a "tribe" based on their time zone. In Doctorow's world, your loyalties lie not with the country of your birth but with the people who are up when you are.

    This evening I was thinking about this novel and idly wondered which tribe would be the biggest? In other words, which time zone is the most highly populated?

    Looking at a map, the answer was obvious: it had to be UTC+8 which includes not only China but Malaysia, the Philippines, and more.

    Still, the fun of such a frivolous question is less in the answer than in the answering, so I fired up Mathematica and a few calculations later generated this graph.

    I cheated a little by using a simplifying assumption: if a country has multiple time zones, I divide its population evenly between them. This inaccuracy doesn't change the fact that our top three are... <drumroll>
    1. UTC+8: China and others
    2. UTC+5.5: India and others
    3. UTC+1: Western Europe and a good chunk of Africa

    According to Mathematica, there are 39 different time zones ranging from UTC-11.5 to UTC+14. I wonder if anyone has visited them all? Now that would be a glorious adventure! :-)
    ]]>
    Paul Clip
    tag:blog.cyberclip.com,2013:Post/342092 2011-06-07T04:08:25Z 2017-07-21T21:35:04Z Flying over the Bay Area
    This May my friend and fellow pilot Serge and I flew from Oakland airport to Half Moon Bay to visit the Pacific Coast Dream Machines faire. While the faire itself was nothing special, flying in the Bay Area is always a treat. We flew in Serge's Piper Cherokee, which Serge has flown all over the world (well, nearly :-) including crossing the Atlantic twice. I'd never piloted a Cherokee and enjoyed the experience, esp. since it's more powerful than the Cessna 172 I'm used to. 

    Pictures below: Downtown San Francisco & Bay Bridge, Golden Gate Bridge, Ocean Beach, New (expensive!) Bay Bridge, and the Transamerica Pyramid.

    ]]>
    Paul Clip
    tag:blog.cyberclip.com,2013:Post/342051 2011-06-04T23:26:43Z 2017-07-21T21:35:00Z How eBay Scales its Platform
    In these days of discussing how Facebook, Twitter, Foursquare, Tumblr, and others scale, I don't often think of eBay anymore. Yet eBay, despite its age and ugly UI, is still one of the largest sites on the internet, esp. given its global nature. So I enjoyed this QCon talk by Randy Shoup, eBay Chief Engineer, about Best Practices for Large-Scale Websites.

    Here are few lessons that caught my eye:
    • Partition functions as well as data: eBay has 220 clusters of servers running different functions like bidding, search, etc. This is the same model Amazon and other use
    • Asynchrony everywhere: The only way to scale is to allow events to flow asynchronously throughout the app
    • Consistency isn't a yes/no issue: A few datastores require immediate consistency (Bids), most can handle eventual consistency (Search), a few can have no consistency (Preferences)
    • Automate everything and embed machine learning in your automation loops so the system improves on its own
    • Master-detail storage is done detail first, then master. If a transaction fails in the middle, eBay prefers having unreachable details than a partial master record. Reconciliation processes clean up orphaned detail records
    • Schema-wise, eBay is moving away from strict schemas towards key/value pairs and object storage
    • Transitional states are the norm. Most of the time eBay is running multiple versions of its systems in parallel, it's rare that all parts of a system are in sync. This means that backwards compatibility is essential
    • "It is fundamentally the consumer's responsibility to manage unavailability and quality-of-service violations." In other words: expect and prepare for failure
    • You have only one authoritative source of truth for each piece of data but many secondary sources, which are often preferable to the system of record itself
    • There is never enough data: Collect everything you never know you'll need. eBay processes 50TB of new data / day and analyzes 50PB of data / day. Predictions in the long tail require massive amounts of data

    ]]>
    Paul Clip
    tag:blog.cyberclip.com,2013:Post/341937 2011-05-31T05:02:00Z 2017-07-21T21:34:59Z Fearless Fire Eating at The Crucible

    My 12 year old son Thomas and I took a three hour fire eating course yesterday in downtown Oakland at The Crucible. We found it through the excellent Workshop Weekend program, which offers many interesting courses. We were the only two students and our teacher, Patricia, gave us a great introduction to both the art and science of fire eating

    Warning: fire eating is dangerous and an easy way to get hurt quickly. The information below is no substitute for proper instruction (it's incomplete too!). In other words... Don't do this at home!

    After a comprehensive review of safety precautions, Patricia taught us how to make our own torches. These consisted of 18" aluminum rods with a wick at one end. Interestingly, the wick is made of a 12" long strip of kevlar and held in place by kevlar string. Kevlar has high heat resistance and is reasonably absorbent so it makes for a great wick. 

    For our initial foray into fire eating, we used rubbing alcohol as fuel because the flame is small. Maybe so but we were still more than a little apprehensive about putting a flaming torch in our mouths!

    After the first try it became a lot easier and we soon graduated to white (camping) gas which generates much bigger and brighter flames, as the pictures below show. We quickly conquered any fears we had and became pretty comfortable eating fire.

    The science behind this art wasn't what I'd expected. I'd assumed that fire eating consisted of closing your mouth around the flaming torch to deprive it of oxygen and so stop it burning. Not so. You never fully close your mouth around the torch (burnt lips anyone?) instead you close them partially and exhale to extinguish the flame.

    Once our basic skills were in place we moved on to art. Patricia taught us various tricks such as flame transfers and ways to light the torches. She was particularly impressed by Thomas who, in the six years she's been teaching the class, was by far her youngest student.

    All in all it was indeed a glorious adventure and one we're going to practice ourselves, safely.

     

    ]]>
    Paul Clip
    tag:blog.cyberclip.com,2013:Post/342065 2011-05-26T06:27:00Z 2017-07-21T21:35:00Z Platforms as a Service Revisited
    In September 2007, Marc Andreessen wrote a thought provoking blog post describing a way to categorize different types of Platforms as a Service (PaaS). Over the years we’ve often made use of Andreessen’s levels within our Engineering team as a convenient way to discuss how we want our own platform to evolve.

    So I was surprised when I went looking for that article the other day and it was nowhere to be found on Andreessen’s blog! Fortunately I was able to rescue it from oblivion thanks to the internet archive. I’ve also uploaded a PDF of the article to Scribd.

    Andreessen’s premise is that there are three levels of internet platforms (the term Platform as a Service didn’t exist back then):
    1. At level 1 a platform is essentially a series of APIs in the cloud (another term that had yet to make its appearance) that app developers can leverage in their own apps.
    2. The prime example of a level 2 platform is Facebook. In addition to the APIs it makes available, Facebook also gives developers a way to embed their apps into its user interface.
    3. A level 3 platform achieves something the other two levels can’t: It runs developers’ apps for them. Examples here include Force.com (Salesforce.com’s PaaS) and Andreessen’s own Ning.

    As the levels go up they become easier for developers to program on and manage. A company working on a level 3 platform shouldn’t need to worry about hardware and operating systems. The categories aren’t perfect though: Amazon’s Web Services offerings are clearly level 3 (they run your code) while forcing you to still manage a virtual infrastructure.

    That said, many platforms do fit the model well. Thousands of companies offer APIs and therefore qualify as level 1. Platforms such as Google App Engine, Microsoft Azure, Heroku, EngineYard, etc. all offer flavors of level 3, some “purer” than others, I.e. with more or less hardware/OS abstraction.

    At RelayHealth we put a number of APIs at our partners’ and clients’ disposal. Some are web services, others rely on healthcare specific protocols such as HL7 or CCD riding on top of a variety of communication channels.

    Our approach to level 2 turns Andreessen’s definition inside out: instead of embedding third party apps into our UI, we make it easy for them to customize and embed our modules into their applications. This is important to many partners as building features like ePrescribing themselves is prohibitive. By providing these capabilities we enable our partners not only to deliver key features to their customers but also complete their EHR certifications (vital so their clients qualify for federal incentives).

    Regardless of your approach, if you’re building a whole platform or some simple APIs, Andreessen’s article is worth reading.
    ]]>
    Paul Clip
    tag:blog.cyberclip.com,2013:Post/341965 2011-04-29T07:33:00Z 2013-10-08T16:34:44Z The Beauty of Reversed Expectations

    Michael Crichton's "The Great Train Robbery" is one of my favorite novels. It's part history, part thriller, and lots of fun. You follow master criminal Edward Pierce as he plans and carries out the crime of the century: stealing gold bullion from Her Majesty's government in Victorian England. Interestingly the mastermind was caught: Crichton used Pierce's courtroom testimony to write the book.

    One of my favorite passages focuses on reversed expectations. Pierce needs to get his accomplice on board the railway car that's carrying the gold. The problem is that guards are checking all luggage to ensure no one can be smuggled aboard.

    Pierce solves this very cleverly by hiding his accomplice in a coffin with a dead, very dead, cat hidden inside. Pierce's girlfriend plays the role of a grieving sister taking her poor brother's body home for burial. In those days Victorians were very afraid of being buried alive. Many coffins, including the one Pierce used, had a small bell mounted on them that could be triggered from the inside: just in case the dead "woke up". That's where the expression "saved by the bell" comes from.

    Pierce's girlfriend is weeping on the railway quay when suddenly that little bell begins to ring. She cries out in alarm, then in joy. Elated, she begs the guards to hurry, to undo the latches. In her state of faked excited she tries to help but her fumbling slows the men down. "Oh please hurry!" she shouts.

    The coffin is almost open. "My brother is alive after five days! I knew it wasn't cholera!" That gives the guards pause: cholera was a very real danger in those days. When the coffin's finally opened, the stench is unbearable, the "corpse" (Pierce's heavily made-up accomplice) is a nauseating shade of green, and the "sister" swoons in the arms of a guard.

    The coffin is hastily closed, the sister revived, and the coffin placed in a railway car... The one with the gold.

    Here's what Pierce had to say about this:
    In later courtroom testimony, Pierce explained the psychology behind the plan. "Any guard watches for certain happenings, which he suspects at any moment, and lies in wait for. I knew the railway guard suspected some fakement to smuggle a living body onto the van. Now, a vigilant guard will know a coffin can easily hold a body; he will suspect it less, because it seems such a poor trick for smuggling. It is too obvious.

    "Yet, he will likely wonder if the body is truly dead, and if he is vigilant he will call to have the box opened, and spend some moments making a thorough examination of the body to insure that it is dead. He may feel the pulse, or the warmth of the flesh, or he may stick a pin here or there. Now, no living soul scan pass such an examination without detection.

    "But how different it is if all believe that the body is not dead, but alive, and wrongly incarcerated. Now all emotions are reversed: instead of suspicion, there is hope the body is vital. Instead of a solemn and respectful opening of the casket, there is a frantic rush to break it free, and in this the relatives join in willingly, sure proof there is nothing to hide.

    "And then, when the lid is raised and the decomposed remains come to light, how different is the response of the spectators. Their desperate hopes are dashed in an instant; the cruel and ghastly truth is immediately apparent at a moment's glance, and warrants no prolonged investigation. The relatives are bitterly disappointed and wildly distraught. The lid is quickly closed--- and all because of reversed expectations. This is simple human nature, as evidenced in every ordinary man."

     

    It's social engineering at its best.

    ]]>
    Paul Clip
    tag:blog.cyberclip.com,2013:Post/342067 2011-04-15T06:34:00Z 2017-07-21T21:35:00Z Microsoft's Losing the Web Application War

    Netcraft's surveys of internet web servers has been a staple of the net since 1995. Eons in internet time! In those early days I fondly remember regularly checking Netcraft for updates and discussing the merits of the various web servers with friends and colleagues.

    I hadn't thought of Netcraft in years and when I suddenly remembered them the other day, I had to go check. How were the different web servers doing?

    I wasn't surprised by the rapid growth of Apache but I was surprised by the dramatic fall and subsequent slow rise of Microsoft's web server.  According to Netcraft the drop in Jan-Jun 2009 was caused by a reduction in activity in Microsoft's Live Sites.

    Looking at web server popularity in relative terms, the slow rise becomes a rapid decline in market share: from close to 40% to around 15% penetration in four years.

    It's useful to remember that there are lies, damn lies, and statistics. There could be many explanations for Microsoft IIS' relative decline. 

    One is that Netcraft is measuring incorrectly. Netcraft has been at this for a long time, so I'm going to assume they know how accurately count servers. Part of the decline is due to the Live Spaces moving to Wordpress. Clearly Microsoft doesn't view blogging as strategic. Fair enough.

    Another point to keep in mind is that Netcraft's survey is internet-focused. If they could survey intranets, I'm sure the number of IIS servers would be significantly higher.

    Still, I can't help thinking that this is yet another front Microsoft is losing ground on. And the web server is just the tip of the iceberg. Internet sites aren't choosing Apache as much as they are choosing web application stacks that use it.

    Continued loss of web application stack market share will have significant repercussions in terms revenues. Hard costs such as server and software licenses. Soft costs such as losing popularity among developers. This isn't enough of a reason to ditch Microsoft for established sites. It is a reason to think twice before going with the Microsoft stack for new projects.

    It's a shame. Microsoft's web application stack has decent technology, and Microsoft has smart engineers. They are quite capable of innovating in this space. They're just not doing so.
    ]]>
    Paul Clip