Sunday, January 27, 2013

Greatness

People who change the world for the better do so because they are led to do it by their conscience. Sometimes it's intuition of what the future should look like. Sometimes it's belief in enriching people's lives. Sometimes it's a feeling about what makes the best experience. Sometimes it's the sense that they are meant to do this.

Once in a generation

When you find yourself in the presence of greatness, there is no way to ignore it. You are stricken by the clarity, the simplicity, and the inarguably correct statements. Their way of understanding is fresh and insightful. Imagine talking with a scientist or mathematician that changed the world: Euclid, Sir Isaac Newton, Karl Friedrich Gauss, Srinvasa Ramanujan, Nikola Tesla, or Albert Einstein! Imagine spending the afternoon in conversation with a great leader that forever changed the way society works, like King Solomon, Charlemagne, Emperor Augustus, or Abraham Lincoln. How I would like to sit and exchange musical ideas with a composer who forever changed the language of music such as Johann Sebastian Bach, Ludwig van Beethoven, John Lennon, or Paul McCartney (I still have that chance, since McCartney is still around!). And what could I do but sit in admiration at the brilliance of the artists and geniuses that forever affected style and ignited our imaginations, such as Leonardo da Vinci, Jan Vermeer, Vincent van Gogh, Pablo Picasso, or Maurits Cornelis Escher?

When I was an idealistic kid, I wondered about each of these people. I wondered what it would be like to be one of them. Was that even something I would want? How did they accomplish what they did? What sort of difficulties did they go through?

I had so many questions! And I was bursting with ideas also. How should I channel my creative energies? How would people look at my life's work?

It was an interesting motivation, to imagine myself in the shoes of someone great. Soon I forgot all about it, though, and immersed myself in number theory, computer programming, music, and analytic geometry.

I couldn't figure out how they did what they did. All I had was their work to look at. But, once exposed to it, I began to want to create my own music, write my own programs, investigate my own areas of mathematics. It was the start of a journey that I am still on today.

The weight

Talented people are also flawed. It's a bit like they carry the weight of their greatness that is always with them. This theme, with the ring of truth to it, has been expressed in fiction several times. For instance, Sir Arthur Conan Doyle's Sherlock Holmes, a beloved character adept at following clues and making deductions, was only the intense, enlightened sleuth when the game was afoot. During off times, he fell prey to cocaine addiction.

But is the theme of the tortured genius only around because it makes a better story? No.

Beethoven went deaf at the pinnacle of his fame. Einstein had his remorse at unleashing the atom and yet urged Roosevelt to build the atomic bomb. Van Gogh courted madness and tinnitus, even cutting off his ear. Newton's mother abandoned him, remarrying when he was only 3, which left him a furiously competitive, ruthless, and paranoid man who never had any romantic relationships of any kind. Ramanujan lived in squalor much of his life, starving at some points, and yet made discoveries of such genius that even today we are still struggling to decrypt them. When they tried to school him in modern mathematics, he spouted ideas at such a furious pace that it became useless to continue.

So let's look behind the curtain. What makes this happen?

Some people believe, once they have exerted great change on the world, that they deserve more than mere humans. This is a corrupting influence borne of pride, conceit, even megalomania. Such people may make great changes, but they are rarely truly great. This kind of flaw has brought us dictators, generals, and warriors.

Other people find, when they are working obsessively on a very hard project, that it is their destiny to solve the problem. Even that it is their duty to humanity to build it. I know that, once I am wrapped up in a problem, I often think of nothing else. It is this vacuum, however, that leads to the pathways of delusion. Still, you have to get your motivation from somewhere!

It's true that people can be driven to overcome their difficulties in life. If they are hurt by those around them, they might easily escape into a self-created world where they can feel comfortable. Such a world allows them to channel their genius. Or they might be disabled in some way. The compensating behavior for a disability can also become a framework for channeling their specific talents. This was certainly the case in Beethoven's career. In his silent world, he was no longer influenced by the local styles and instead created his own. Work can be a distraction from a painful existence. In Karl Friedrich Gauss' case, the death of his wife and son in 1809 led to a depression that he couldn't shake. Only his work could give him respite from the blackness.

Madness can be an influence that compels the genius to excel. There can be ideas in the head that are literally struggling to get out. Sometimes creation is the only therapy that helps. This was certainly the case with Vincent van Gogh. Nikola Tesla suffered from obsessive-compulsive disorder, finding it ever necessary to do things in threes and loathing to touch round objects.

Obsession can be a weight as well. Someone driven to solve a problem will exhibit behavior that is simply obsessive. This can drive them to forget about the responsibilities of life such as relationships, food, and sleep.

Producing greatness

To make a great thing is not just something that is done in a few minutes. The first thing you must do is to understand fully what the concept is for what you are making. And write it down. Clarify it. Make drawings. But never lose sight of what makes it great. Spend some time thinking about the concept. Figure out what its value is. Put the concept away and return to it later. It happens that the best things might come to you when you are driving, shaving, or even dreaming.

To produce it may take many, many tries. I have mentioned before that a large fraction of things tried often must simply be thrown away. This is the way it is when I am solving an unbounded, difficult problem with no general closed-form solution. Examples of this are common.

When Thomas Alva Edison was working on the light bulb, he tried 2000 different materials before he settled on the carbon filament. Isaac Newton spent a laborious eighteen months working on his Principia, itself the result of a decade of thought. In it, he developed the infinitesimal calculus, laboriously rewriting it in standard geometrical terms so astronomers of his day could understand it.

When producing a great product sometimes the product is not the only thing you have to produce. It is clear in many cases that you have to build a whole system of capabilities for it to live in. A context of usefulness.

For Edison, it wasn't enough to create the light bulb. He also had to create a generator of electricity so there was an ecosystem to support it. When Newton was writing his Principia, he had to incorporate and prove the work of people before him, like Johannes Kepler, whose second law, shown above, had already been empirically verified.

For Steve Jobs, it wasn't enough to produce the iPod, iPhone and iPad. He also had to build the iTunes media store, the app store, and several other web services. These are considered to be essential to the success of the iDevices.

You learn things along the way to creating and perfecting it. Some aspects of your product don't even occur to you until it gets used.

This wasn't the case with Albert Einstein, whose General Theory of Relativity finally provided the framework that superseded Newton's physical laws. While it was introduced in 1915 and correctly accounted for the procession of Mercury's perihelion (part of its orbital mechanics), it wasn't until 1959 and later that a systematic series of precision test had verified many of its provisions.

Productizing greatness

Most inventions are not so theoretical. With these, you get a chance to make sure they are right. And the best inventions, the ones that really have an effect, are productized.

If you are making a product, decide what it is that you want this product to be. Do you want it to be the lowest price product so you can sell a lot of them? Or do you want it to enrich the life of the person who buys it? You must deeply care what happens after they buy the product. It's not about what they will do with the product. It's about what the product will do for them. You must understand how it will transform their lives. How will they feel about the product? You must find a way to own the customer because they believe that their life is better. What you don't want to happen is for the user to not care at all about the product. Then it will just sit in a drawer. Instead of being on their person at all times.

To ship a product without first perfecting it is not a good thing. So, when developing the product, use it for everything. Keep on improving it and its main modes of use. Make sure that everybody using the product will appreciate it as a fundamental advancement. Ensure that it will change their lives as well as the nature of all products that come after it.

Fearlessness

Great people don't fear change. They embrace it, right? No, that misses the point! You should realize it's much more than that.

Change is their most valuable tool. Let's look at a key example that is already changing things.

In the recent conference call, when asked about the iPad, which appears to be cannibalizing Mac sales, Apple's CEO Tim Cook said this:
We’ve learned over the years not to worry about cannibalization of our own products. It’s much better for us to do that than somebody else to do it. The far, far bigger opportunity here is the 80 million to 90 million PCs that are being sold per quarter. There’s still over 300 million PCs being bought per year, and I think a great number of those people would be much better off buying an iPad or a Mac. So that’s a much bigger opportunity for Apple, and instead of being focused on cannibalizing ourselves, I look at it much more that it’s an enormous incremental opportunity for us.
Instead of fearing the cannibalization effect, he is using the effect to gain entry into a larger market. He's seeing the forest for the trees. Disruption thus becomes a useful tool and a cantilever to huge potential growth.

Disruption is necessary for change. So, if you want to change the world, think about what comes next, and how that process of disruption will occur.

Sunday, January 20, 2013

Hard Problems, Part 2

Some problems are hard nuts to crack. We have discussed this one before. Other problems are simply statically complex. As we will see, when things get hairy, there are still choices to make and techniques which work every time.

A statically complex problem has so many cases that it becomes daunting just to imagine a solution. This comes to mind because, of course, I am working on one of these problems right now. But I can't discuss it. Instead, we will look at another such problem and what it took to solve it.

In the 1980 I was working on a three-dimensional problem: rendering solid fractals. First Benoit Mandelbrot and then Loren Carpenter made famous the construction of mountains using fractal techniques. These were so-called plane-to-line functions, where the domain was a plane and the range was a line.

How to make nice fractals

In plainer English, you could create a mountain by making the height (z) a function of x and y. So, x and y are subdivided, and each time you subdivide, you add some random amount of z that depends upon the size of the x,y patch. In this way your mountain has a predictable fractal dimension. But now I would create such a thing by using Fourier transforms in the frequency domain: create a circular spot, transform it from the spatial domain to the frequency domain, randomize its phase, then transform it back into the spatial domain. This is shown in my blog post Textures, Part 2.

Once this technique is demonstrated, it becomes tempting to implement it. Which, of course, I did! I remember going to SIGgraph in 1980 and bringing a poster created at Calma on a Versatec raster plotter of some fractal mountains. Each facet was shaded using dither patterns, which I coded specifically for the poster. I presented it to Benoit Mandelbrot.

I'm sure Mandelbrot could've cared less about my rather amateurish fractal forgeries. There were so many people there, also. But I was undaunted and continued to play with fractals.

And so here comes the problem: what if you make a space-to-line function?

A space-to-line function is a function where w can be evaluated as a function of x, y, and z. Imagine that every point in space has a w value. And that w varies fractally. This construction can make clouds and rocks and all sorts of things!

So I decided to create a renderer that could display such a thing. The first way it could be displayed was simply to facet the zeroset of the surface, where w = 0. In a plane-to-line function, the zeroset z = 0 is simply a coastline. In a space-to-line function, the zeroset w = 0 is an actual surface of the object.

The problem can then be refined to this: how can you render the zeroset of the space-to-line function?

My answer to the problem was an early implementation of what is now called Marching Cubes. This technique was invented later by Lorensen and Cline and published in the 1987 SIGgraph proceedings. But I was using it in 1984. I won't say I invented it. Actually, it's a rather obvious solution.

My solution to the problem was to split the volume into small cubes. By evaluating the function for w at each corner of the cube, it will be found to be less than or equal to zero (a 0 bit) or greater than zero (a 1 bit). Since each cube has 8 corners, this was conveniently an 8-bit number.

Thus there were 256 cases to consider. That's a lot of cases, hence it was statically complex.

This is the first time I ever wrote a program to write the program to solve the problem. The program that generated the code for marching cubes was cloudtst.c, written in C on February 6, 1984, designed to run on a DEC VAX 11-780.

When a problem is this complex, it's hard to get every case right and consistent with every other case. This leads to the need to make sure each case is correct by having each case be generated by a program.

I categorized the eight bits into topological cases. And then I used the program to decide, for one of the 256 cases, which topological case it fell into. Then I mapped the solution for the topological case onto the 8-bit case.

Actually, the way I framed the problem was even more clever, since I allowed myself the luxury of subdividing a cube into 8 sub-cubes and faceting them. This meant that I could recursively subdivide the volume I was rendering, only subdividing it where it needed to be subdivided. This would minimize the total number of facets output and thus cut down on the time to render the fractal volume.

Code that writes code

It sounds a bit recursive, doesn't it? But there are several advantages to writing code that writes code. I will discuss them now.

The first and most obvious thing is this: if a program writes the code, then you won't have to. This is advantageous because there might be a lot of code to write. With a lot of complicated cases. And a program can make sure that each case is correct. So you won't have to. All you have to make sure of is that the program that analyzes the cases will get the right answer in each case.

The second advantage happens when you are generating a lower-level language. The program can see to all the details. This is useful when optimizing something. Lower-level languages are inherently more efficient because they are closer to the machine they run on. There is no hidden complexity. Each instruction is atomic. If you have to break each operation into smaller operations, the program can do it slavishly for you. This is the reason that people write compilers.

The third and most important advantage is also useful to you. To fix bugs, even those occurring in several cases, you only have to change the program that writes the code, not all the cases. This turns out to be characteristic of the code-writing-code process. Each bug in the generated code can be attacked one-by-one in the generating code. And eventually a perfectly correct program is the result. This can be done without tediously fixing each case in the generated code one at a time. Actually, many cases in the generated code can come from one part of the program, so a single bug fix in the generating program can fix several bugs in the generated program. This illustrates the power of this approach.

What language should you use? You have two choices to make. First, you choose a language to write the generating program in. This is usually a high-level language. One that you can work in with extreme freedom and ease. This can be something as utilitarian as C or ripe in data structures like C++. It can also be Python, a common choice nowadays. The second choice is the language used for the program you are generating. This should generally be chosen for its efficiency. Sometimes you do not have a choice. For instance, I have written code that generates programs in various forms of assembler, in C, in fragment shaders, and in OpenCL.



Tuesday, December 25, 2012

Observing Microsoft, Part 2


Some of the most important assets a company has are its brands. A brand distinguishes a product from its competitors and can spread out like an umbrella to encompass several related products. But it must be coherent, meaningful, and inspire trust and signify value. You don't want a brand to become unclear. Brand management is a vital aspect of business.

Microsoft's main brand is Windows, an operating system. It is an umbrella brand, covering Windows 8 and Windows Server, though many people still are running Windows XP and Windows 7. The company also has the Office brand, which is an umbrella brand covering various pieces of software, like Word, Excel, PowerPoint, and Outlook. The brands specifically spell out what Microsoft is known for, and by inference what it is good at: operating systems and software.

It is abundantly clear that Microsoft is stepping out of its circle of expertise by creating hardware. It seeks to add another brand, Surface. But the Surface product is actually Microsoft Surface with Windows RT.

Let's look at the Windows brand. The billion or so Windows users are all familiar with Windows user interface. This includes such items as the taskbar, the start menu, and the desktop, with the plethora of blue-topped rectangular windows, from which the brand gets its moniker. Icons on the desktop, really just aliases to actual files, are called shortcuts.

But by creating a touch-based interface for Windows 8, really just a start-up screen veneer on desktop systems, those one billion users are led into into unfamiliar territory by the new user interface. There are reports of users being uncomfortable with the user interface and putting off the upgrade to Windows 8. Perhaps the main problem is that there are now two user interfaces, and they are quite different.

In some sense, this splits the brand, fracturing what Windows actually means. And that's not good. Furthermore, using the Windows brand on their hardware products actually stretches the Windows umbrella brand to include hardware, which has dire consequences for their OEMs like Sony, Toshiba, Acer, Asus, Dell, and HP. Reports are emerging that Dell urged Microsoft not to use the Windows brand for their Surface product. This causes confusion as to what Windows itself actually is: is it an operating system or a computer? Oh, man.

Some even claim that Microsoft is abusing the Windows brand.

All this, combined with the apparent lack of Surface sales, has investors in the same boat as the Windows user base: should they invest in Microsoft now?

Many users seem content to wait for Windows 9. There are some indications that Windows 8 could be like Windows Vista, which was met with whole-hearted scorn from users, who hung onto their prized Windows XP systems. Only with Windows 7, captained by recently-fired Steven Sinofsky, did the users finally resume their upgrades.

Arguments in favor of Microsoft's current Windows 8/Surface strategy center around three concepts. The first is, because they covet the Apple revenue model, that by integrating their software with their own hardware, they can do the same. The second is that they can't abandon the Windows brand and simultaneously they must make a move into the mobile space with it. And the third is that they are bridging the gap between tablets and laptops.

Perhaps, if they can do any one of these things right, they will survive. But right now, analysts have been noticing that PC sales have been dropping off. This is because the mobile market is disrupting it. Notice I didn't say that the tablet market is disrupting the PC market. More and more users are using mobile devices. By making their tablet more like a laptop, Microsoft doesn't really get what's happening.

The Holiday Season

The holiday season accounts for a large amount of retailers' sales annually. Indications are that online sales have surged 16% this season over last year. However, retail sales in brick-and-mortar have only risen by about 2.5%. But, to me, there is no doubt that the malls are crowded. Yesterday, it took me about 40 minutes to find a parking spot at the ValleyFair mall in Silicon Valley! This could mean that retailers are selling, but just not the big ticket items. This testifies to economic troubles or perhaps the widespread purchase of discounted items after hurricane Sandy.

The sales of Windows 8 depends partly upon the purchase of new computers. This is because those who purchase the new, exciting computers are essentially a captive audience. And if consumers (and possibly businesses) aren't buying the big-ticket items, then that could be a reason.

Let's analyze that for a moment. If computers are more expensive than tablets, then the consumers will buy tablets. Businesses will rush to construct low-cost business solutions using tablets as well because they can save on expenses - and the apps are there. And even if they aren't, the cost of developing corporation-local apps will make the conversion worth it. Nitro Mobile is one such company that specializes in creating corporation-local solutions on mobile platforms, like iOS.

Another sign that sales for Windows 8 aren't quite up to snuff is this article about Microsoft stores in the metropolitan New York Area, which states again that Microsoft stores were sparsely populated when the aisles at the mall were practically impossible to get through. In Silicon Valley, I noticed the same thing: Microsoft stores were just not filling up or selling their wares as fast as Apple stores. Perhaps Ballmer's idea of putting Microsoft stores right next to Apple stores wasn't so good after all: it invites unfavorable comparison. For PC sales to be lackluster in the holiday season is more than just a slow start. It's a definite problem. The market is changing fast.

Sunday, December 16, 2012

Disorganization

Why is it that we need things to be a little disorganized to understand them properly? Because perfect order doesn't really exist and it is most certainly the flaws that draw our gaze and make us think.

Mistakes are classic examples of disorder: an accidental paint spill, or a hand slips and draws an errant line. Perhaps they are intentional: on a whim, we decide to take a different path home, or we try a different turn of phrase or melody line so we can convey our thoughts in a novel way.

Even the need to convey disorder is useful to us. The Firm, in their song Radioactive, evoke a kind of complexity and disorder in the solo with what appear to be random notes.

In fact, I'm not sure that any perfectly ordered world would even be desirable. Consider Pleasantville: when everything is perfect, it becomes irrelevant, and the intrusion of the real world causes things to turn upside-down very quickly. To make the best music, perhaps we have to have trauma and discontent. One of my favorite of this genre is Everclear's Wonderful: childhood trauma makes for the best songs, right?

So music is clearly affected by this notion that increasing entropy is inspirational. But drawings and painting are not immune to this. Recently I wrote about the nail that sticks out, and this testifies to the effect of disorder on progress and disruption. Really, the world wouldn't be the way it is without the crazy ones.

In fact, Darwin would almost certainly agree that humans wouldn't even exist if it weren't for disorder. If DNA just replicated perfectly and everything was stable, we would never evolve. If that stray cosmic ray didn't wreak havoc in somebody's gene, we would still be amoebas. Or, more likely, amoebas wouldn't even have existed at all.

Some say that the stray rays also come from the earth itself. This is true. We have radioactive elements in the earth's crust and so they contribute as well. Trace impurities thus become central to essential change.

Order implies lack of change and therefore stagnancy. Perhaps this is why it is so seldom that I clean up my office! Yet I like to solve the Rubik's cube. This inherently is an act of finding patterns in randomness and restoring order, like solving a jigsaw puzzle.

We can see patterns and images in disorder. Little things become noticeable. Our imagination wanders. We are all looking to make sense of randomness, like when we see familiar shapes in the clouds. Perhaps it's a kind of wishful emotional need.

Let me tell you a short story. Kai Krause and I were visiting Steve Jobs to show him our recent advances in human interface in 1999. I showed the Idea Processor, which was almost all the joint work of myself and John Derry. It featured the concept of disorganization. There were stacks of unsorted pages that could overlap into little messy piles that, once they were in a pile, you could straighten them up. Or clip them together. One could be double-clicked to spread it out for perusal.

Of course, Steve instantly showed us that it wasn't scaleable. But he also made a comment about disorder. "People don't need computers to make messes. They need them to organize." That's one of the things I liked about Steve: he always got right to the point.

But, of course, it wasn't thirty days before Steve walked into our booth at a Seybold show in San Jose, located me in our press room, and set up a one-on-one meeting so he could recruit me.

When I make patterns and texture, I'm looking for another kind of disorder. Well, the patterns repeat and therefore they are by definition ordered. But they look disordered to the eye. What I want is an artful kind of disorganization that is pleasing to the eye. So once again creativity is involved in the crossroads between order and disorganization. Like in the annealing pattern above.

And once again I have applied some principles that don't seem to apply (the principle of disorganization to the process of creating order) and it leads to a creative result.

Tuesday, December 4, 2012

Observing Microsoft

Microsoft doesn't hang quite as straight as it used to. What has happened to Microsoft? If the question is even being asked, things can't be going well.

The media are definitely asking the question. For instance, an interesting article in businessinsider asks whether Steve Ballmer's nightmare is coming true.

I don't know if it's poor execution or just the fact that Microsoft has been classically a software company (its name literally means microcomputer software) but I wonder at the missteps in their Surface strategy. We'll get to that in a moment.

I pointed to Microsoft's corporate culture in my blog post The Nail That Sticks Out. I am positive that they are fabulous about research in the ranks but at the top levels I believe their management is grimly despotic and unimaginative. In that case, what they need is a great leader. A few days ago, Microsoft CEO Steve Ballmer said, "We see nothing but a sea of upside". But they need a leader that doesn't need to boil the ocean to come up with the gold. One that has a vision for what can work. And, more importantly, what people will buy.

They need two things: focus and simplicity.

It is sad that, today, there are more than a few trends that point to the beginnings of a death spiral for Microsoft. To name a few: tablets start to eat the PC market, mobile computing succeeds for others but not for them, gigantic software bloat like Excel and Word are being replaced in the industry by small, mobile apps that cost a only a few of bucks, and companies are starting to use a Bring Your Own Device (BYOD) policy for their IT connectivity.

Individually, any of these trends would be quite bad for Microsoft. Taken together, these things are terrible.

Getting Into the Hardware Game

Microsoft's CEO Steve Ballmer laughed at, then roundly criticized the iPhone in September 2007 after it was introduced by Steve Jobs. It is clear that he simply didn't understand what was going to happen to the mobile space in a short five years.

Microsoft should have been working on Surface from that moment onwards. But clearly that didn't happen, since they only introduced Surface one month ago. To build mobile devices, Microsoft has to undergo a major transformation.

Microsoft claims that they are a hardware company. Mice and keyboards do not count. Comparing Microsoft to Apple, Dell, or HP in hardware prowess would be like comparing someone who dipped their toe into the pool with an olympic swimming champion. So that leaves the Xbox, which plugs into the wall. This doesn't exactly point to expertise miniaturizing hardware or really building any mobile computing technology. And their Xbox gaming platform is also under siege by mobile. They should never have let this happen. A whopping 61% of mobile phone owners use them for games. It is noted that iOS is the world's leading gaming platform.

So, why is Microsoft, a software company, also becoming a hardware company? Simple: both Apple and Google have the ability to craft their software and hardware together. In Apple's case, this core competence specifically led to the disruptive, record-breaking products such as the iPod, iPhone, and iPad that consumers just can't get enough of. In the process, these products and the ability to execute has led to a profit model that is unparalleled in the business and now the envy of Microsoft.

And this is exactly where Microsoft wants to be: back on top.

Which means they must build hardware so they can create the whole product. Microsoft knows from experience that their OEMs willfully do what they want. And lag behind Microsoft's wishes and suggestions. Furthermore, the developers will have a larger set of hardware configurations to support. This has always been a problem with Windows: its generality. And it is the current problem with Android. If Microsoft wants to take a page from Apple, it must control the hardware configuration as well.

Microsoft's act of angering the OEMs by creating its own home-grown hardware is dangerous and can backfire on its revenue stream. For one thing, this doesn't build on its core competence. In retrospect it might have been better to take the Google approach and simply buy one of the OEMs, perhaps Sony or HP. Still, Microsoft clearly knows that mergers are not an easy process so it foolishly started building hardware.

Windows 8

Microsoft says they sold some 40 million licenses (hologram stickers). So Windows 8 is going great, right? Well, no. Firstly, this only represents Windows 8 PCs that have been shipped to retailers or distribution points, not end-user licenses (I can't believe they don't report end-user licenses!). Secondly, StatCounter reports that the Windows 8 usage share is falling behind Windows 7 in a comparable period from the launch. At only about 33% of Windows 7 usage, Windows 8 usage is in a serious lag. The firm NetApplications is telling the same story. Perhaps this is the effect of hurricane Sandy, as they said. But it's already one full month since the October 26th launch (and the hurricane). Things should have equalized by now.

On Black Friday, the busiest shopping day of the year, I would have expected the new, exciting Microsoft Surface RT to be a top seller, fulfilling several weeks of pent-up demand. Indications are just the opposite. When I have thrice visited the Microsoft and Apple stores in the Santa Clara Valley Fair mall since, I have consistently seen that customers in the Apple store outnumber those in the Microsoft store at least two-to-one. Though I did see my first Microsoft bag yesterday, being carried by a woman in Nordstrom.

Another force limiting Microsoft sales of Windows 8 has been the OEMs such as Toshiba, Sony, and Dell. The situation is this: both Windows 8 and appropriate OEM hardware must be in sync to produce the large numbers Microsoft is really expecting. My suspicion is that the enthusiasm of the OEMs has been dampened by Microsoft's entry into the hardware market. It has essentially become their competitor. I doubt that is going to help the relationship between Microsoft and the OEM. And they need to co-operate closely to get the numbers going. The OEMs, because there are several and they work to outdo each other in price, already operate on small margins and so it has become a dog-eat-dog world.

So PC sales are sluggish, and reportedly sales of Windows laptop and desktop devices have dropped 21% year-over-year since the Windows 8 launch, led by a 24% drop-off in laptop sales.

Nonetheless, it's must be fortunate that Microsoft's strategy is moving towards the mobile space, right? I would say that it's an absolute necessity. Let's look at that.

Windows 8 features a new modern user interface (UI) that features live tiles and supports touch. At first glance this new UI looks like the first real competitor to the elegance and clarity of iOS. Yet, I have two questions:

How Well Does It Work?

A friend brought in his Microsoft Surface RT this last week and I spent some more time playing with it and comparing it to my gen 3 iPad. Microsoft claims the text is sharper and better. The displaymate.com shootout shows that it really isn't. To me, the Surface is certainly not clearer. It seems designed to look good to PC users who have been using Microsoft fonts for years. Come on! In a side-by-side comparison there was no comparison: the iPad looked way better. Hell, even an iPad Mini text looked better. I compared the nytimes.com site directly.

I played around with it some more and found that browsing was an almost completely keyboard-centric experience. I had to have the keyboard attached. And type in the URLs (there was auto-complete). Which meant that I had to use it in the landscape format pretty much all the time because that's the way the keyboard works.

With that keyboard on it resembles a laptop in form factor. I found that, with its built-in kickstand, it really has to sit on a desk to be used. On your lap, it just doesn't work in this form factor. It's just not stable enough. So, it's a laptop that doesn't work on your lap. Hmm.

I am used to holding my iPad on my lap while I am at the couch, with the magnetic cover folded into its triangular shape and the screen therefore at an ergonomic angle to type on. Or using the iPad to read to my son at night with the lights off when he goes to bed. I use landscape for browsing, portrait for reading.

There were some interesting features that I was able to find and use, since I had read a few articles on Surface usability (that mostly came to the conclusion that it was very bad indeed). But it would have been difficult to figure them out if I had to discover them. I actually wondered is there was a user's manual available.

On Surface, swiping from the side and back brings up a task manager of sorts. Then you have to swipe down to change the app you are reading. On the iPad I can double-click the home button for that purpose or, even easier, use a four fingered swipe from side-to-side to get to the next app.

In fairness, on both devices, the gestures and actions need to be discovered. So it is really about how easy these actions are to accomplish.

Won't It Be Confusing For Desktop Users?

Windows 8 becomes the default mode for the desktop systems as well. But doesn't that mean there are two UIs being used and that the users have to switch their brains between them?

Yes, and yes.

In a recent article, venerable PCWorld talked to some usability experts on Windows 8 (before Surface had come out) and so it only deals with the bipolar design of the desktop version.

The overall tone is grim. Users are confused as to what to do. Commands aren't where they used to be. Mouse actions (replacing touch and swipe actions) are unobvious and hard to discover.

In InfoWorld, they call it bad. "Guaranteed to disappoint nearly everyone".

Jakob Nielsen reports that it the disparity between the two UIs is bad for many classes of users, both power and novice.

Live Tiles

This seems like a pretty good feature. And my experiences with Surface indicated that they are useful. Yet Microsoft doesn't really exercise enough control in their usability guidelines. Or they exercise the wrong control, which would be worse.

In an excellent summary article, Jakob Nielsen reports that unfortunately live tiles' implicit call to action creates "an incessantly blinking, unruly environment that feels like dozens of carnival barkers yelling at you simultaneously". That's not a good thing.

So let's just say that understated is not a term I would use with the Windows 8 user interface.

Perhaps this is one good reason why Apple curates the apps that can be run on their devices.

What's Going On With Surface Pro?

You can't use current Intel-based Windows apps on Surface RT because it uses an ARM processor, like the iPhone, iPad, and nearly all other mobile devices. This is generally because of the economical power consumption of the ARM. So you have to wait for the Surface Pro, which supports Intel-based applications, arriving in 2013.

The latest on the Surface Pro is, since Microsoft states it will use an Intel "Ivy Bridge" Core i5 processor, it will get about half the battery life of an iPad. Microsoft could have used an Atom "Clover Trail" processor or even one of the newer-generation Core "Haswell" processors. Either one would have required significantly less power.

It is becoming increasingly clear that power management becomes the main issue with designing a new gadget. After all, you can't just keep adding cores.

Hey, it hasn't shipped yet. They could still change it, right?

I think they really need their first full-featured Intel tablet to be a winner. But that battery life issue could be a real deal killer. Brian X. Chen from the New York Times, tweeted RIP in advance.

Surface Pro comes out at $899 for the 64GB model and $999 for the 128 MB model. And I believe you will need a keyboard for it. My experience trying out the two keyboards is that you will want to $120 Type Cover.

So, why not buy a MacBook Air, which actually costs less than the Surface Pro/Type Cover combination?

You can certainly use a MacBook Air in your lap.

Going Mobile

The claim is that by 2014, mobile internet usage will overtake desktop internet usage. So Microsoft needs a mobile solution as soon as possible. Like yesterday. Some argue that Microsoft may simply be too late.

Star power testimonials, like that of Oprah, were rendered famously laughable because they were tweeted on an iPad. Maybe they should have gotten Ashton Kutcher, or somebody like him with much more social media cred. And knowledge.

And BTW Oprah, you can tweet from the browser in Surface. Be careful how you (or your flotilla of social media minions) make testimonials. Sometimes it's the little things that matter!

What's Keeping It Propped Up?

Microsoft is being kept afloat because its revenue stream, with Windows, Office, Xbox, Server, and support, is not going to fall through the floor any time soon. There are plenty of loyal users. Who have iPhones and iPads and use them day in and day out. Even at work now that they started this BYOD stuff. Hmm.

Microsoft makes about 30% of their revenue from Office products and 55% of their revenue from Windows, Windows Server and Tools. The other odd 15% comes from their Entertainment division (Xbox) and their online services (support).

So if Windows begins to tail off, they can still exist merely by keeping Office relevant in the mobile environment. I hear an iOS version of Office is in the works.

Friday, November 30, 2012

Patterns, Part 7

The Tile Pattern Designer is coming along. In it, you design a tile pattern in a parallelogram repeat block. This gives you quite a bit of leeway, with the ability to design triangular and hexagonal tiles, as shown in Patterns, Part 5. Using a grid to design tile patterns in this way is sufficient to plot out most of the tile patterns from the floor of the San Marco Basilica in Venice, as shown in Patterns, Part 6.

Now I will show you some of its features, all based on complex analytic geometry, which you can learn about in How Does It Work, Part 2.

First I design a pattern by drawing lines between grid points. This one took only eight lines, using a slightly rotated rectangle as the basis. I am careful to leave a few unusual shapes for open areas. This is so I can show you how the beveling works later.

I base it on a staggered block pattern, but I also place some rotated rectangles inside the largest rectangle.

I suppose I could have been a little more fancy in my design, but I wanted to show a few of the characteristics that you can control to render your tile patterns. The first, which you are familiar with, is the automatic recognition of closed polygonal areas.

Here I show the polygon areas.

The pattern is really made up of line segments that are automatically divided up. Then they are arranged into a graph, with nodes at the places where the segment ends meet. Then I mark each segment so both sides of it get visited. And start tracing counterclockwise to collect closed polygon areas. The complex part is how to handle holes and stand-alone polygons, but we'll talk about that some other time.


By the way, the graph is special because it wraps around just like the pattern does.


There is a tool to put color into each of the polygons directly. I have chosen an "earth and aqua" color scheme: surf and turf.

Next I bevel the edges of the polygons. This is actually complicated. It involves a gabling operation as we will see in a moment.

A bevel is shaded using an interesting model which predicts its color in HSV space based on the base color of the polygon and shading from the angle of the edge it is derived from. You can adjust the overall light angle in the interface.

The cool thing about polygonal display is that you only need to create the polygons once. Then you just need to evaluate all the copies on screen within the view. It's a bit messy to do that!

The bevel width is controllable, allowing you to magically adjust the look of the tiles directly with a slider. For me, it's a bit disorienting to change the bevel width, because I am not used to seeing this occur in real time in the real world.

I have made the computation of the bevel geometries bulletproof, a thing I was not able to accomplish at Fractal Design (and Metacreations) when I was trying to create the first version of this tool.

It appears that I've learned a few things since then! With previous posts, I have created the bevels by hand, by designing polygons on the grid. Now The bevels can be created automatically from the source polygons using a non-destructive procedural process. In other words, they can also be turned off if you like.

There is also a grout control. This means you can change the grout width in real time with a slider as well. This can make tiles that look a bit more real, since real tiles do have grout in between them.

The grout operation uses the beveling engine, so even if a tile disappears because the grout is so large, it knows not to output it.

And yes, it is disorienting to change the grout width in real time as well! When you move the slider fast, it's just crazy!

And, of course, you can turn the grout off if you like.

The beveling is completely general. If you crank up the beveling width until it is large enough, the center parts of the tiles disappear. This is why I call this a gabling operation.

The actual polygons output are really equivalent to the computations required by architects when they are producing gables for a roof of an oddly-shaped house.

I'm glad it works, because sometimes the polygon shapes are non-intuitive! It seems to be bulletproof now, and works in the general case. Like I said, I use this same engine for the grout computation as well.

One more problem presented itself when I was building this tool: the matte edge problem. When rendering polygons that abut each other, you get a tiny matte edge. I have made the background black to make this more obvious.

This problem occurs because I am using a standard polygon renderer (CoreGraphics bezierPath) and each polygon is output with anti-aliasing. This means that the edges will have a one-pixel-thick one-quarter-intensity dropout between them.

I remedy this by enlarging each polygon by 0.24 pixels before I render it. This can't really be done properly by stroking the edge (as in Postscript). It must be done by widening the polygon. So I built a widening engine into my tile engine.

All of the other diagrams show the result of this widening setting.

I think next I will do some work in refraction. With just a bit of work, it could look just like stained glass. This would require me to make the results actually 3D. Actually, that's not too hard, given the gabling model I use to compute the bevels.

Perhaps one tile could shade its neighbor. Or a global illumination model could give the rendering a bit more life.

Now, what does real marble look like?

Sunday, November 25, 2012

The Nail That Sticks Out


There is a rule in conformist societies (and companies) that implicitly limits their evolution: the nail that sticks out gets hammered down. This rule almost single-handedly leads to stagnation.

Why Hammer It Down?

When a civilization is structured, the nature of specialization helps to build an intricate machine of the society, where individuals must do their specific part to keep society going.

And when various winnowing forces such as feudal warfare, disease, or sequestering on an island keep a society's population constant, or force it to grapple with a shrinking base, the structure of society must be tested and tempered. The machine that society has become must operate in lockstep to survive. The pressure on an individual to carry on his parents' trade and role models becomes very strong indeed. An individual with new thoughts, swerving from traditional roles and creating disruption, cannot be tolerated. And such rules are born.

Culture thus evolves to accommodate and sustain this pressure on the individual.

However, this doesn't happen quite as easily when a civilization's population is sufficiently large during its structure-formation stages. When services can be performed by a small fraction of the population base, there is actually pressure to move away or to do something different. Progress is rewarded, not squelched.

For the same reasons, competition also leads to progress.

On an island there is practically nowhere to go, since the barrier to moving away is essentially life in exile. But consider for a minute the case study of San Francisco, where the population has held nearly constant since the 1950s. There it is possible to move away but sweeping changes are still difficult to accomplish. Yet culture continues to evolve. Mass transit was developed. Even urban renovation continues.

Cultural forces can also promote or prevent stagnation. San Francisco's culture has changed over the last few decades significantly, and this has prevented stagnation. Pockets of culture remain and provide alternatives to what could have been a regimented, conformist society. Particularly after the 1906 earthquake and two world wars acted as winnowing forces.

Culture and Its Influence

Culture can also be a force that leads to societal stagnation because culture provides us with laws, through morality, and peer pressure, and thus imposes its will on individual behavior. When culture is too regimented and strict, this can lead to suppression of new ideas. In the middle ages, Copernicus' views of a solar-centric astronomical neighborhood were suppressed in favor of an established view. Even Galileo, whose views were provable in ten minutes with common everyday objects, had his views suppressed.

Culture can come from religion, this is true. But it can also be influenced by war and other external forces. After a war, for instance, a local culture's survival can be threatened and so the pressure of sticking around to keep the culture alive can become paramount.

The conformist society also promotes a rigid class structure with despotic rulers. The fear of being hammered down is constantly reinforced by this.

Copying

So, what does a structured, conformist society do when it is presented with external forces that threaten to overcome it?

It evolves.

But it does so by examining the advantages of its external threat and duplicating them. In this process the society applies its machine-like efficiency to survival. The society is already efficiently shaped for the purpose of retooling and adapting. Feudal warfare and the constant advances of weapon-making have shaped the society to this task.

What a society must never do is to kill off its talent, and thus its greatest advantage. It is this capability that keeps it alive during times of adversity. It is the talent that keeps a society mobile and adaptable.

Disruption Then

But there are inherent adversarial forces that even the talented cannot surmount: disruptive forces.

Technology can provide disruption like no other force.

I have talked about disruptive technology before and its effects on brick-and-mortar, the dissemination of information, the replacement of old gadgets by new ones (cameras, televisions, games, and music media).

I have also talked about the disruption of fossil fuels and their eventual replacement by battery energy storage.

Disruption Now

Right now there is a disruption in mobile technologies that is challenging the old guard of desktop systems. This is a serious problem for the old guard. Either they must embrace the change or they must use disinformation to fight it. And the second option only really postpones their inevitable death. Adapt or die. Never was this more at issue than at Microsoft.

Their core talents were in the desktop Wintel paradigm, which is quickly fading. Megalithic applications like Office and Word are quickly being replaced by the lighter mobile applications, which can be sold over the air. The advantages of an adaptable, mobile enterprise are obvious.

Now Microsoft is being criticized for implementing two different interfaces in Windows 8, provoking some usability researchers to declare that users should just wait for Windows 9.

As for the advantages of the mobile enterprise, consider for a moment the Apple store and the Microsoft store.

Here's a YouTube video contrasting the traffic of the two stores on Black Friday, the massive shopping day after the American holiday, Thanksgiving.

Microsoft copied the spartan wood tables and lighter ambience of the Apple store, yet their inability to embrace mobile point-of-sale systems seems to be costing them.

At Apple stores, the salespeople help you one-on-one, and use an iPhone with an integrated credit-card reader to complete your transaction. You even sign for the credit card transaction on the iPhone. The first time I visited an Apple store, I got the sense that it was the future of the in-store buying experience.

Let's contrast that with the Microsoft store experience. A friend of mine went to a Microsoft store to buy a Surface tablet. He was directed to a single place where the sales took place (sounds a bit like a cash register doesn't it?). The point-of-sale system crashed, complicating the transaction significantly.

While Microsoft stores might start using iPhones with integrated credit card readers, it seems improbable that a Microsoft employee would actually suggest that. Perhaps there is a Windows 8 Phone alternative? Well, if so, why aren't they using it?

My point is this: Microsoft has almost 100,000 employees. They should have some fraction of those employees building apps for their Windows 8 Phone ecosystem. They can't afford to catch up by attracting developers at this point! That would take precious time. They should already have such a point-of-sale system in their bag of tricks. Don't these guys think ahead?

My suspicion is that somebody probably wanted to do just that, but he got hammered down.

New ideas and new concepts replace old ones. Many of the trends that shaped the progress on the desktop simply do not work in the mobile computing space. Even Moore's law seems outdated, as I mention in one of my more recent posts Keep Adding Cores? It's clear that computers are simply built differently as a result of this disruption. When you consider that batteries are the power source, then power management becomes central. Efficient and targeted computation becomes highly desirable, rather than general processor computing.


What Disruption Comes From

Disruption comes from people.

People with new ideas.

New ideas whose value can easily be demonstrated to a large number of people.

If everybody sees the value then they want it.

When everybody gets it, this results in significant change.

Change in how people spend their time. Change in what people buy. Change in how people think.

So disruption comes from that nail that didn't get hammered down: an individual with radical new ideas and a conviction that his or her ideas can succeed like nothing else.