Google Watch: Time to DuckDuckGo

You can't spell

You can’t spell “Don’t be evil” without “evil”! Coincidence?

Google do a lot of good things. They host free webfonts to make the web a nicer place to be. Their cloudy PaaS service, Engine Yard, gets rave reviews. Their maps are better than anyone’s, their mobile OS is the most popular in the world, and their photo hosting offer is second to none. But they can be very evil sometimes too.

Remember when Google forced you to sign up to Google+ to comment on Youtube videos, or stole your email passwords while they took pictures of your house and then “forgot” to delete it after they got found out and all the Governments told them to, or made you type extra characters to include all your words in their search, or when their CEO said there was no place for privacy and anonymity on the Internet?

* big breath*

Well they are at it again.

And I’ve had enough.

The Devil’s In The Detail

For the last few days I’ve been seeing this ‘privacy reminder’ popup whenever I go to Google (including by searching in Chrome’s address bar). And it stops you dead in your tracks. You have to read through all the legalese before it lets you search for pictures of cats. Well I just don’t have time for that, I need instant cat gratification now!.

That sounds so wrong.

Anyway, I had a quick scan through the privacy reminder and immediately smelled a rat… It all seems really un-evil at first, you can choose to switch off some of Google’s invasive behaviour by following the handy-dandy links in the privacy reminder itself. Wowzers! What a nice thing to do. I opted to switch off all the weird adverts-following-you-around settings. They’re here, in case you’re wondering.

But then I noticed it says these settings are just for this browser. Your other devices and PCs will still track the living crap out of you. Read more

aspnetcore.dll failed to load. The data is the error

Added to Code, Technology by on

This morning, while trying to debug our big ol’ web project in Visual Studio 2015 I encountered a problem – it held me up for a while so I wanted to quickly blog about the solution in case it hits you too. When hitting F5 to start debugging, Chrome launched but then immediately Visual Studio detached from IIS Express and showed the following error:

A process with the ID of <id> is not running

True enough, IIS Express wasn’t running…

Open Wide and Say ‘Ahh!’, Mr Windows

I ran a Repair on IIS Express 10.0 in case it was an issue with that, or the self-signed SSL certificate it uses to host web projects over a secure connection…. but still had the same problem.

I then created a brand new ASP.NET MVC 5 project and hit F5… but that ran fine. Hmm, curious. That let me know IIS Express was fundamentally OK, and the issue lay with the big ol’ web project.

Microsoft are usually pretty good at logging when things go wrong so I fired up eventvwr, the Windows Event Viewer, and saw the following  error being thrown by IIS Express:

The Module DLL C:\Program Files (x86)\Microsoft Web Tools\AspNetCoreModule\aspnetcore.dll failed to load. The data is the error

Strange… We don’t have any ASP.NET Core projects in that solution so why aspnetcore.dll is being loaded was beyond me. Furthermore, that path didn’t exist on my disk. Read more

Things I learned at my last job

Today I closed a chapter in my life. After nearly 4 years tenure at a company I wanted to reflect on the things I learned over that time.

I have been very lucky to have a few excellent – world-class even – mentors here who have taught me things that will stay with me for the rest of my life, and I wanted to share the reflection process with you in the hope you gain something valuable too.

Individual Success Isn’t Success

For a long, long time I  adopted the ‘aircraft oxygen mask’ approach to my career: I’ll get to where I want to be first, then I’ll help others. This company has taught me that isn’t the right thing to do.

ubuntumeme

My thinking was always “I’ll be in a better position to help others” once I hit my objectives, but that simply doesn’t work in practice: without respectful, cooperative development across your team(s), you risk yourself hitting your goals at all, and if you haven’t helped others hit theirs too, nobody wins.

Dare I use the management-bullshit-bingo term ‘synergy’?

My current role here is a technical leadership role – that means I don’t have people reporting to me but I do have authority over technology direction and a remit to ensure conceptual integrity of the solution. I have led project teams before, I have even run small businesses before, but being a leader in a larger company was new to me when I began this chapter of my life, and I wanted to be good at it.

I’ve seen all the memes about the difference between a boss and a leader but for some reason I struggled to enact the differences. However, after some time spent being (in retrospect) a terrible boss, some sage advice from one of those mentors made everything ‘click’, and I was given the mental tools to develop the techniques required to become a good leader instead. (Note, a good mentor won’t give you the answer, but the means of finding it on your own!).

boss-vs-leader

“Take people with you.”

So what does that look like in practice? Last year I was offered the chance to travel to our American HQ to present some new work to 1,500 customers. ‘Prestigious’ isn’t even close – this is a huge event, so compelling that our customers pay us to listen to our plans and roadmap. The trip dripped with a significant amount of attached ‘kudos’ and the opportunity to rub shoulders with the highest of the high in the business. Not only that – the opportunity to ask probing questions to 1,500 customers about our technology direction is such a rare occurrence it was unmissable. The old me would have started packing immediately. Read more

Introducing QuickModules for ASP.NET MVC

Added to Code by on
INTERNET ALL THE THINGS!

Do what he says! He has a giant cotton bud in his hand!

Like you I often spend my weekends writing REST APIs for fun. And like you I am often frustrated by the amount of server-side code I need to write just to expose some data to JavaScript. Boilerplate, boilerplate, boilerplate. Ugh! So this weekend, in between bouts of erratic and unsatisfying jetlag-sleep, I decided to try and simplify the task of exposing an API to JavaScript. Introducing “QuickModules for ASP.NET MVC”, available now as a NuGet package!

QuickModules

QuickModules provides you with a basic, modular framework for hanging API endpoints from. Internally using the Managed Extensibility Framework (MEF) to load modules, QuickModules gives you the ability to build encapsulated CRUD services without needing to write, or understand, the usual plumbing.

Consumer Experience

As a software developer, and a human (vaguely), I like an easy life, so I’m all about the consumer experience when publishing code or frameworks (see my JavaScript business-object CRUD framework at http://richstokoe.github.io).

In order to ease any concerns you may have I will run through all the steps required (there are very few) to get QuickModules into your MVC application.

Step 0: Open Visual Studio (Duh!)

Step 1: Create a new MVC project

quickmodules_1

 

Step 2: Choose an Empty, Basic, Internet, Intranet or SPA template (actually, any will do, but these make the most sense)

quickmodules_2

 

Step 3: Notice how barren your project is without QuickModules. 🙁 (I’ve chosen a Basic template here)

quickmodules_3

 

Step 4: Install QuickModules using NuGet: Right-click on the References node in your Solution Explorer tree and click on “Manage NuGet Packages”:

quickmodules_4

 

Step 5: Search for “QuickModules” and choose “Install”. (Don’t worry if the details and version numbers look a little different on your PC, this is a screenshot of an early work-in-progress package).

quickmodules_5

 

That’s it! Hit F5 to run your application. If you’ve chosen an Empty or Basic template you’ll probably get a 404 Not Found error. Try navigating to the sample “Nearby Restaurants” module by adding /QM/Get?ActivityType=NearbyRestaurants to your URL (QM being shorthand for QuickModules of course!).

You should see a list of food places from The Simpsons as a wonderful, unformatted, JSON object array, ready to be consumed by your JavaScript:

quickmodules_7

 

But Wait There’s More!

Built into the framework (and optionally supported by your modules) is paging, and filtering. All for the low, low price of $9.95.  (Just kidding, it’s free). Use the LINQ-style Skip and Take arguments to control paging:

quickmodules_8

 

And use the Filter argument to narrow the result set down:

quickmodules_9 Read more

“The Format of the PE Module is Invalid” After VS2012 Update 2 Installed

Added to Software by on

If you’re a Windows stack developer and you’ve just installed the VS2012 Update 2, which came out last week, you may have suddenly started to see this beautifully impenetrable error message whenever you try to debug a web project: “Unable to launch the configured Visual Studio Development Web server. Unable to start debugging. The format of the PE module is invalid.”

 

Oh no! Not the PE module!

 

A bit of Google-fu confirms there’s a coincidence between installing Update 2 and getting this error.

So how do you resolve this?  Read more

Windows Blue

Added to Software by on

“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.

Read more

Next Page »