Windows Blue

“Windows 8 is the best Windows ever”. And by “best ever” Project Manager, Steven Sinofsky, meant “so good I’m going to quit the company a month after its release”.

There has been much press this week about Microsoft’s new annual-update programme for its Windows operating system, purported to be called “Windows Blue”. This has been mostly driven by the leak of an early copy of Blue onto file sharing websites.

WinSuperSite’s Paul Thurrott gives the best overview. As well as several new “Modern UI” (previously ‘Metro’) apps such as Alarms, Calculator, Sound Recorder and Movie Moments, a significant amount of the traditional Windows Desktop is being moved into the Modern UI too. For example, choosing which application to open certain file types with. This, as Paul suggests, could be an indication of Microsoft’s intention to eventually move everything into the Modern UI and get rid of “the Desktop”, as we all know it, completely. Perhaps in Windows 9?

 

The Start Menu

Today I had a bit of an epiphany when I saw a personalised Team Foundation Server (TFS) dashboard shown on the Windows 8 start menu. TFS is a system used by software developers to make backlogs, track bugs and keep track of code. I myself spend at least an hour, probably two or three, each day hunting through TFS for information. So this made me leap for joy:

TFS Dashboard in your Start Menu – Genius!

 

Of course! That’s the paradigm shift! I have been wondering exactly how we’re supposed to use this Start Menu, and learn to embrace it rather than hate it, and now I get it! The Start Menu is your launchpad. You receive some information on the live tiles, you click on them to launch the full-screen Modern UI app, do your thing (send an email, reply to a Tweet, etc.) and then Whoosh! you’re back to the Start Menu for your next task.

That’s all it’s supposed to be, that’s why new Modern UI apps take up all the screen. It is Microsoft’s way of helping you focus in the modern world where everything is vying for your attention. That’s why, at most, you can have two apps side by side. But that’s all.

I announced my breakthrough to my development team at work. And it was quickly rebuked.

“I’m trying to use it as a dashboard but I keep getting distracted by the benign animations on things like the ‘Photos’ tile,” said Lloyd, my Team Leader.

And he’s right.

If it was clean, and live tiles were used properly – to catch your attention when it was necessary – it would work very well.

But the Start Menu is awash with noise. It’s a very busy, awkward interface. It has promise, but Microsoft has already confused its own message by creating live tiles with no real purpose. They’re just there to show off the technology – but in reality they’re hurting it. Badly.

 

Touch First

Windows 8 has largely been slated by users and the technology press because it has clearly been designed to work on touch-screens first – and non-touch-screens (with traditional keyboard and mouse setups) second. I’ve covered this before. If you move your mouse to any corner of a screen you find invisible menus springing forth and covering up what you were trying to do. This is a massive hack to support the features you get on touch-screens (by swiping in from the sides, top and bottom) but with a mouse.

As a multi-monitor user I frequently snap a window to be full screen on one screen (so my mouse cursor is at the top of the screen) and then move the mouse cursor to another window to snap another app full-screen there. But because the corners now have special, and apparently I push forward slightly as I move my mouse cursor, the little pointer ends up getting “stuck” in between the monitors. This is a very jarring, fist-clenchingly frustrating experience. It’s such a minor thing but when it happens it feels like the computer has taken over your mouse and is actively preventing you from doing what you want to do.

And you know what? I move my cursor from screen to screen a hell of a lot more often than I want to use charms! And don’t even bother showing me the “Share” charm when I’m in the desktop because you’re only going to show the “Can’t share anything from the desktop” message. That’s a major breach of basic User Experience (UX) guidelines, right there.

I’ve also always been fond of double-clicking the top-left of a window to close it. While I still can do this if I’m careful in Windows 8, I usually end up triggering the preview of the last Modern UI app I had open, which hides the part of the application I was actually trying to use.

For years and years I’ve been able to use Word without things popping up reminding me that before Word, I opened up Minesweeper. It is a ridiculous feature that needs removing as soon as possible (Windows Blue maybe, Microsoft?). Except…. it is there for a purpose: to let you switch between the traditional desktop and Modern UI apps. There is no other way to do that (Except clicking on the app tile again in the Start Menu, but this feels like a “re-launch” behaviour).

The lack of a “taskbar” in the Modern UI world is also a huge failing. Taskbars provide context and allow for far faster task-switching than swiping. While also preventing the awkwardness of having to reclick a tile just to get back to an already-open Modern UI app.

 

Windows Blue: Modern UI and Traditional Desktop (For Now…)

Microsoft seems to think that the two worlds are split by technology: Modern UI (running on the Windows Runtime – or WinRT – technology stack) and the traditional desktop (running on Win32 APIs and various abstraction technologies) and to some degree they’re right but that’s the wrong delineation. That is very much the thinking of a software engineer and in no way represents the thinking of the typical user.

Modern UI is good for focussed tasks and the desktop is good for having lots of windows open and quick task switching. The desktop is the perfect environment for researching while writing a dissertation. For copy and pasting. For dragging images off websites. For comparing photographs while painting in Photoshop.

And thus the two worlds are suddenly very clearly separated and defined.

Modern UI is the perfect platform for consumption. The traditional desktop is the perfect platform for creation. That is the proper delineation between the two worlds.

So when Microsoft starts moving more and more things towards the Modern UI they think they are making a technology choice: “we’re just consolidating our technology stacks into one: WinRT!”, but, because they think like engineers not like real people, they’re about the shoot themselves in the foot.

Because if this focus on Modern UI means that the end of the traditional desktop is nigh, then that really means that Microsoft is killing off the ability to create.

And that is very sad. And very mad.

Some people need to create. That’s why books get written, art gets painted, sculptures get carved, faces of Presidents get cut into hillsides, bridges get built, etc. And if the desktop really is about to die, then those people will move somewhere else.

If that place offers a good consumption experience too, then by nothing more than word of mouth advertising between friends at light-speed on social networks, Microsoft Windows will fade into nothing.

And Microsoft will only have itself to blame.

 

 

Learn to Code (An Intermission): Code.org

The founders of Facebook, Microsoft, Dropbox, Twitter and many more top tech companies have provided their voices and recognisable fizzogs to this latest video from Code.org. Code.org promotes the principle that nobody is born with the ability to code, or play basketball, or drive a racing car: it is a learned skill. The biggest hurdle is that first step overcoming the apprehension of the unknown. That’s something that all of these people have done. From humble beginnings and all that jazz…

 

Oracle Appeals Google’s Java Win. What’s next for Dalvik?

Larry Ellison points finger at Larry Page. Shakes it. Offers cookie. Redundantly.

This week, Oracle appealed Google’s win at the patent trial over the Java application programming interface (API) being used in the Android operating system.

In a new document published this week (PDF), Oracle’s lawyers start by introducing a character called Ann Droid. And then tell a story about Ann ripping off Harry Potter: The Order of the Phoenix. Quite strange, but hilarious to think of a serious legal department putting this into such an important document:

 

Ann Droid wants to publish a bestseller. So she sits down with an advance copy of Harry Potter and the Order of the Phoenix—the fifth book—and proceeds to transcribe.

She verbatim copies all the chapter titles—from Chapter 1 (“Dudley Demented”) to Chapter 38 (“The Second War Begins”). She copies verbatim the topic sentences of each paragraph, starting from the first (highly descriptive) one and continuing, in order, to the last, simple one (“Harry nodded.”). She then paraphrases the rest of each paragraph. She rushes the competing version to press before the original under the title: Ann Droid’s Harry Potter 5.0. The knockoff flies off the shelves. J.K. Rowling sues for copyright infringement.

Ann’s defenses: “But I wrote most of the words from scratch. Besides, this was fair use, because I copied only the portions necessary to tap into the Harry Potter fan base.”

Obviously, the defenses would fail.

Defendant Google Inc. has copied a blockbuster literary work just as surely, and as improperly, as Ann Droid—and has offered the same defenses.

Continue Reading “Oracle Appeals Google’s Java Win. What’s next for Dalvik?”

Learn to Code: Chapter 2 – Black Tie Function

She only wants you for your brain…

This is the third part of my Learn to Code series. The previous part is here: Chapter 1 – Meet Bob.

 

See Bob. See Bob Run. Run Bob, Run!

We last spoke about making Bob run 5 miles. We were going to do that by performing an action – a “function” in programmer parlance – called “run”, and give the number 5 (meaning the miles he is to run) to the function. We do that like this:

bob.run(5);

 

The problem is, we haven’t said what “run” actually means or does. Later we’ll use code that already exists but this time it’s all up to us. We’re going to have to write this “run” function ourselves. Again, this is a very easy thing to do once you understand the pattern you use.

function (miles) {
}

 

Here we say we want to create a “function” and that the function will take some information in brackets that we can refer to by the name “miles”. You see, when information (such as the number 5) is “passed” into the function, it is important that we can get to it because we can use it to change how the function operates. You can write a function once, but pass different things to it each time and it will behave differently every time. That is the real beauty of programming.

You will notice there aren’t any semi-colons in the bit of code above, this is because we are using a pattern that the computer will understand – those curly brackets (called “braces”) tell the computer when you’re starting and stopping to describe your function. However, when we write code inside those braces, we still must use semi-colons to differentiate one .

The devil is very much in the details when programming. Different programming languages have different requirements for WHERE those curly braces go. Sometimes they should be on the same line as the start of your function, and sometimes they go on the next line down. Like this:

function (miles)
{
}

 

But the language we are learning needs them to be on the same line as the word “function”.

Here’s an example of combining curly braces and semi-colons. Gosh it’s getting complicated… but stick with it, this is as complex as it gets. let’s write some code inside the function that uses that number 5 that was passed in, which we can refer to as “miles”:

function (miles) {
    return miles + miles;
}

 

This is now a fully-functioning function. If you’ll pardon the pun. Although… not a particularly useful one. Yet.  Continue Reading “Learn to Code: Chapter 2 – Black Tie Function”

Learn to Code: Chapter 1 – Meet Bob

You understand that, right?

This is the second part of a series of articles called Learn to Code. Click here to go to Chapter 0, “Wax on, Wax off”.

 

Learn to Code

Well done. You’re now a World class programmer! And you’ve been given a brief  by your customer who wants you to write some software for them. The following sentence is the first line of their brief to you:

“Bob is a man. He is 30 years old. He can run 5 miles.”

What a peculiar start!! But bear with me. Remember, in order to start programming, we have to fully understand the real-world thing we are transforming into some computer code. Let’s take that sentence apart and write some bullet points about what we know about Bob:

  • Bob is a “something”.  A real thing. A proper object.
  • That thing is categorised as a “man” (whatever that is).
  • Bob has something called an “age”. The value of his “age” thing is “30”.
  • Bob can perform an action known as “running”.
  • Bob can do that action for “5 miles”.

 

Sorry for all the quotation marks and playing-dumb, but all will become clear as we move through this lesson.

Like pretty much anything in the universe, Bob can be defined by a set of “properties” (like his age, height, inside leg measurement) and the actions that he can perform (like “run”). In proper programming, we call these “properties”, “properties” (hahaha, surprise! I slipped a programming term into your vocabulary!). Slightly more complex, we call the actions he is capable of performing, “methods” or “functions”, depending on which programming “language” you’re using. We’ll use the term “functions” to start with because the first programming language you’ll use demands this terminology.

The programming language we’ll start with also prefers things to start with a lowercase letter. For now, just accept that, we’ll cover why later. Let’s start by creating Bob in code.  Continue Reading “Learn to Code: Chapter 1 – Meet Bob”

Learn to Code: Chapter 0 – Wax on, Wax off

Warning! Programming might not make you rich. On a completely different topic, here’s Paul Allen’s private yacht, “Octopus”. (He’s a programmer).

So you want to learn to code? Well this is the right place. I assume no prior knowledge, except knowing how to turn on a computer, open a text editor such as Notepad, and have some idea of the operation of a keyboard. It may not be immediately obvious WHY I’m covering some of the topics in this article, but rest assured that, like Daniel-san painting fences or waxing Myagi’s car, it is all about preparing your state of mind.

Actually, while we’re on the subject of films, before you begin, make sure you watch The Social Network and The Pirates of Silicon Valley. They’re essential viewing for wannabe programmers!

 

Basic Mathematics

WAIT! Stop! Don’t be afraid, we’re only going to touch the absolute basics. Primary school stuff. Nothing else. That’s all you need!

Really? I hear you ask. Yes!! You don’t need to be a maths whiz to be a great programmer. Leave all that business to the computer!!

If you’ve ever written this:

1 + 1

…you’ve written a “program”. A program is simply a set of “instructions” for the computer to perform. Even if it’s just 1 + 1! Sure, most programs are a lot more complicated than adding 1 to 1, but at its most basic, that’s it. Easy!

Computer programming (also known as “coding”) is usually done to replace human effort with automation. The first step in any coding project is usually to break the real world problem down to its smallest parts. That way you can better understand what it really is that you’re turning into code.  Continue Reading “Learn to Code: Chapter 0 – Wax on, Wax off”

Automatic Task List in Visual Studio

Uhh… a little help?

The Task List in Visual Studio is apparently very well hidden. But if you’ve ever put a “TODO” comment in some code in Visual Studio, you’ve already started to use it! This is a feature of Visual Studio that has been around since at least VS 2005 and yet I talk to so many developers who have no knowledge if its existence!

 

Enabling the Task List in Visual Studio

Go to View, and click on “Task List”, it is usually about half way down the list. Continue Reading “Automatic Task List in Visual Studio”

Whatever You’re Good At, Graph It

Facebook’s Open Graph – connecting creepy stalkers and sexy, unobtainable femmes faster than ever before…

What are you good at? What do you, or your business, do best? Is there something you do better than anybody else? Once you have identified your specialism, turn it into a graph.

TL;DR: I predict that graphs will become the standard way of storing and sharing information. And that providing graphs containing useful information such as banking data or flight prices will end up being a thriving, trillion-dollar economy.

 

What is a Graph?

A ‘graph’ is a collection of things connected together using a common piece of information. For example, you are connected to the people on your street with a common postal code. You are connected to several tens of thousands of people across the country by sharing the same bank. And you are connected to a much larger graph of people who are Internet users.

But the ‘things’ that are connected together don’t all have to be the same type of thing. The most famous and successful graph on the planet is Facebook’s Social Graph. The social graph is a connected network of people, photos, events, likes, comments and many more things. A photo in itself is a good, monetisable, chunk of information to store (just ask Flickr!). But a photo which is connected to the people in the photo, the place it was taken, and the event that was happening, brings a wealth of context to such a simple thing as a snapshot. But graphs are about more than just things and the connections between things, the type of connection adds an order of magnitude again more information.

Continue Reading “Whatever You’re Good At, Graph It”