The 12 step process to download Microsoft SQL Server Express 2014

The Microsoft SQL Server team has many goals. One of them is to create an industry-leading, high-performance, scalable and resilient database software. The other is to make said-software difficult to download.

In previous years, the team has employed the confusing file-name strategy. But this year, with SQL Server 2014, they have done their best work yet.

step-1

Step 1: I guess I want to “evaluate” SQL Server 2014 Express.

The hip developer guy not using his ergonomic Aeron chair instead opting for a standing desk certainly looks like he’s enjoying his SQL Server.

step-2

Step 2: Good to see there are now explanations for each of the download versions, but the “download” button turns out to be a con. Every single one of the five buttons all link to the same URL. (Hint: it’s not the actual download URL)

The two guys at the front of the office seems to be enjoying their Aeron chairs. They’re not having any of this standing desk business.

step-3

Step 3: This is definitely not the download page but there’s a green button so I must be on the right track. I get another chance to read about all the different versions of SQL Express in case I’ve changed my mind from a second ago.

step-4

Step 4: Wait, I have to log in to download this?

dr-evil-right

step-5

Step 5: Why am I filling out a form with my name and email address? No I don’t want any marketing emails from Microsoft or Microsoft’s partners. Of course this is fruitless because they’ll email anyway. “By Downloading SQL Server 2014 Express software, you may receive emails from Microsoft with SQL Server 2014 Express resources”.

And at the top of the page “if you do not want to submit your information, click Cancel” might sound like a good deal but you’ll just get sent back to the previous page without a download. It’s Microsoft’s way or the highway.

Oh and don’t forget which version of SQL Server Express you want to download. Of course there’s no description of what the versions contain on the page that actually matters.

step 6

Step 6: I want the 64-bit version. I have no idea what version “Other” might be and at this point I don’t care.

step 7

Step 7: For some reason this list selects the first item by default which happens to be “Chinese (Simplified)”. I had to double back to this page since I assumed English would be the default, like most people I would imagine. 我的中文不是很好。

step 8

Step 8: Yes! I’m done with the forms. Wait, where is my download? I need to download Akamai what? Why can’t you just serve the file over HTTP like a normal web server?

yes-wait-wtf

step 9

Step 9: The ultimate bait-and-switch. You thought you were downloading SQL Server, now you’re downloading Akamai NetSession. And “my_downloader_installer.exe” totally sounds like a virus.

step 10

Step 10: More button clicks.

step 11

Step 11: Of course this inconspicuous app wants outgoing firewall access. And I finally get to choose where to save “SQLEXPRWT_x64_ENU.exe”, using the legacy Windows save dialog without the handy sidebar.

step 12

Step 12:

1385753810661

Even after installing the almighty “downloader”, I have to track the progress of this download on a web page. What!?

really

Update 18/6: Microsoft’s Scott “Handyman” Hanselman has taken matters into his own hands and registered downloadsqlserverexpress.com which points to a simple page of the different versions and direct HTTP download links.

messenger

MSN Messenger and AIM instant messenger war: reverse engineering and sabotage

Found this amazing Microsoft story from Twitter told first-hand by David Auerbach, a former Microsoft developer in 1998 on the MSN Messenger Service team. It’s a sleuthing story of back-and-forth reverse engineering by Microsoft and sabotage by AOL, all for one simple feature – chatting with AOL Instant Messenger friends inside MSN Messenger.

It’s a bit long but a great weekend read.

After we finished the user part of the program, we had some down- time while waiting for the server team to finish the Hotmail integration. We fixed every bug we could find, and then I added another little feature just for fun. One of the problems Microsoft foresaw was getting new users to join Messenger when so many people already used the other chat programs. The trouble was that the programs, then as now, didn’t talk to one another; AOL didn’t talk to Yahoo, which didn’t talk to ICQ, and none of them, of course, would talk to Messenger. AOL had the largest user base, so we discussed the possibility of adding code to allow Messenger to log in to two servers simultaneously, Microsoft’s and AOL’s, so that you could see your Messenger and AIM buddies on a single list and talk to AIM buddies via Messenger. We called it “interop.”

Our client took the surrounding boilerplate and packaged up text messages in it, then sent it to the AOL servers. Did AOL notice that there were some odd messages heading their way from Redmond? Probably not. They had a hundred million users, and after all I was using their own protocol. I didn’t even send that many messages. My program manager and I thought this little stunt would be deemed too dubious by management and taken out of the product before it shipped. But management liked the feature. On July 22, 1999, Microsoft entered the chat markets with MSN Messenger Service. Our AOL “interop” was in it.

So I took the AIM client and checked for differences in what it was sending, then changed our client to mimic it once again. They’d switch it up again; they knew their client, and they knew what it was coded to do and what obscure messages it would respond to in what ways. Every day it’d be something new. At one point they threw in a new protocol wrinkle but cleverly excepted users logging on from Microsoft headquarters, so that while all other Messenger users were getting an error message, we were sitting at Microsoft and not getting it. After an hour or two of scratching our heads, we figured it out.

The messenger war was a rush. Coming in each morning to see whether the client still worked with AOL was thrilling. I’d look through reams of protocol messages to figure out what had changed, fix the client, and try to get an update out the same day. I felt that I was in an Olympic showdown with some unnamed developers over at AOL. I had no idea who my adversaries were, but I had been challenged and I wanted to win.

Image credit: Robert Ian Hawdon

Google Chrome 35 beta adds much needed DirectWrite font rendering on Windows

Web designers rejoice. The jaggies are gone!

Fonts in Chrome on Windows no longer look like they’re from the XP-era. Thanks to a new experimental flag added to the latest version of the Google Chrome beta (35.0.1916.27 beta-m), Chrome is finally rendering fonts with the advanced DirectWrite font rendering engine.

For a before and after comparison, here’s one I compiled with the Windows.com website. The effect is most noticeable on big curves like the “a” and bends of the question mark.

chrome-directwrite

Simply open the Chrome experiments screen chrome://flags/#enable-direct-write and “Enable DirectWrite“, then relaunch Chrome for the change to take effect.

chrome-flags

20140326_112346_933_x

Making a Google Glass app with C# on Xamarin: PTVGlass

Missing the train by just a minute is mildly frustrating. Every time I see the train roll away from the platform as I walk towards the station makes me wonder what if I had walked a little bit faster or paced up the escalator. (This dilemma keeps me up at night)

Of course there are plenty of cool mobile apps with public transport timetables but pulling out a phone and fiddling about while I’m walking is more trouble than its worth.

After two nights of hacking, I can now access Melbourne’s bus, train and tram timetables while I’m walking to the station with voice and geolocation, thanks to my Google Glass app PTVGlass! I’ll be the Glasshole shouting “trams near me” in the city.

ptvglass

20140326_182408_638_x

Download the source code

I’m making the Xamarin/C# source code freely available on GitHub along with the Glass APK for sideloading.

Unfortunately I know the number of Google Glass Explorers in Melbourne will be in the single digits so this app has very little commercial value. I’m hoping someone can critique my code or be inspired to create more Google Glass apps.

Falling in love with Xamarin

A couple of weeks ago, the state government agency Public Transport Victoria released the first version of their Timetable API. I knew I just had to make an app for Google Glass. Except one problem, I didn’t know Java or how to write Android apps.

Unlike my previous Google Glass apps using the Mirror API which allows web developers to develop apps in the form of Glass push notifications, this particular scenario required a native GDK app which could be initiated through voice and menu commands.

I tried a good effort to quickly get my head around Android development, but the tooling and documentation was simply sub-par compared to C# and .NET development. I’m sure the Glass Development Kit would be a piece of cake for any Android developer but learning Java, Android and the GDK all at once was just too much.

In an amazing coincidence, around the same time rumors of Microsoft acquiring Xamarin floated. I wasn’t entirely familiar with the Xamarin product at the time, but my eyes opened when I saw they supported developing for Google Glass using C# and Visual Studio piqued my interest.

Even as a C# noob, I could appreciate the straightforwardness of C#. (Objective-C makes me want to cry.)

Android Screen Monitor (28)

Although I was skeptical of Xamarin Studio at first, I’m pleasantly surprised by the capabilities of the tooling. It was like Visual Studio Lite. Intellisense for the full Android SDK, multi-threaded breakpoints, variable explorers and integrated device deploys and debugging.

ptvglass debug

I have to admit the only weak aspect of developing with Xamarin is the documentation. Xamarin tries its best in its developer guides to provide an overview of the fundamentals in C#, but this is obviously no match to the official documentation in the native language. Surprisingly though StackOverflow was quite saturated with Xamarin questions and answers which helped with the small quirks here and there.

Unfortunately the current Xamarin licensing cost (upwards from $299 to $999 a year) would scare off most hobbyist developers. If the rumors of Microsoft’s acquisition are true, I certainly look forward to Microsoft opening up access for this amazing technology and tools to more developers via MSDN and the Visual Studio Express programs.

Microsoft already has the best developer tools on Windows. Now imagine if their tools were also the best in class for the competing but dominant mobile platforms.

narrativeclip

Hands-on with the Narrative Clip wearable lifelogging camera: disappointing

In early 2012 it seemed like everyone jumped on the Kickstarter bandwagon. At TechCrunch Disrupt San Francisco 2012 I was introduced to a project called Memoto, a miniature camera small enough to clip on to your clothing and it’ll automatically take photos of your day-to-day life – lifelogging.

At the time it seemed like a diamond in the rough (remember this was before Google Glass was announced). It exceeded its $50,000 goal with $550,000 of backers. Fast forward to today, after a year of production delays and a company rebrand, the Narrative Clip has finally started shipping.

IMG_3625

The design

The Narrative Clip takes the wear in wearables quite literally. Inside a plastic case about half a business card sized is a 5MP camera, a GPS, accelerometer, accelerometer, magnetometer and 8GB of memory. It’s a good example of minimalist Scandinavian design and engineering that weighs less than a pack of gum.

A small pinhole opening on the frontside is the camera lens. A metallic clip at the back allows the device to grip on to most pieces of clothing – shirts, pockets, hats and anything with an edge.

Since there’s no buttons on the device a 4-light LED indicates battery life and a microUSB port (with rubber cover) charges and syncs. The front surface is touch sensitive so you can double tap to force it to take a photo and show battery life. Without a power button, placing the Clip face down or in a totally dark place (like a bag) will put it in sleep mode.

Although you’re suppose to wear a wearable, the Clip can stand vertically on any of its four sides and the user guide actually encourages people to use the camera as a time-lapse tool to capture the clouds outside a window as a neat secondary use for the device.

2014-03-21 02_57_00 +0000

The camera

The Clip automatically takes a photo every 30 seconds (changing the interval is coming in a future firmware update). Needless to say the camera in a lifelogging wearable is pretty important but unfortunately the camera in the Clip leaves a lot to be desired.

The most significant issue is the field of view. At only just 70 degrees, the photos are basically half of what the human eye sees (approx 120 degrees). The camera on Google Glass on the other hand is fantastic with a wide-angle lens (no official FOV but I predict around 100-120).

2014-03-21 04_12_58 +0000

2014-03-21 03_05_05 +0000

One redeeming factor about the camera is the ability to automatically correct the tilt of the photo. Due to the flexible design of the Clip, in a lot of scenarios it will be attached to clothing at an angle and also taking photos at an angle. Of course photos at an angle doesn’t make for stunning pictures.

Thanks to the sensors built-in to the device, each photo has some metadata which the Narrative cloud servers process and make adjustments to the rotation of each photo so it is more consistently levelled with the horizon.

The app

The Clip is actually pretty useless without two companion apps: an uploader on a computer and a viewer on the phone.

narrativeuploader

The uploader program for Windows and OS X allows the Clip to sync its photos to the computer, the cloud or a combination of the two.

The Narrative Cloud is free for all users in the first year (and $9/month after that). Due to the amount and size of the photos you would take day-to-day, the cloud is actually the only reasonable option if you intend to keep all your captures. The Narrative Cloud is also required for the photo post-processing features like tilt-correction, date grouping and location grouping.

Users with slow or limited upload bandwidth are not going to enjoy the fact that you could be uploading gigabytes of photos every few days.

narrativeiphone

The mobile app, available only on iPhone and Android at the moment, provides the ability to view the post-processed and grouped photos stored in the cloud.

The cloud service tries its best to automatically select a number of photos in each group that it thinks are interesting and represent key “moments” of the day. Whilst this trims down browsing hundreds of photos down down to just a handful, the algorithm is a bit hit and miss.

Each moment (trimmed or in full) can also be played back like a time-lapse, but unfortunately there’s no way to export a video or animated GIF of this. You can share individual photos to Facebook, Instagram, Twitter or email.

The experience

Wearing a Narrative Clip is somewhere between a watch like Pebble and a headset like Glass. It’s not as obvious as a display and camera on your head but someone directly infront of you will definitely still notice a little black box around your neck.

Even though I believe the arguments against wearables for its ability to discretely take photos and video are invalid by the fact that video recording glasses and pens are readily available in the market with much more affordable prices and discreteness, however I do recognise that people behave differently if they are aware they are being recorded which changes the dynamics of social gatherings.

For that reason I think the Narrative Clip is actually a worse experience than Google Glass since the Clip is entirely passive. As long as it is worn, it is always recording at a set interval without any interaction or control, until it is put in a bag or placed face down. A device like Glass on the other hand is barely “on/active” and only takes photos on command.

The funny thing is that I actually felt uncomfortable wearing the Clip myself.

Summary

If you’re willing to upload gigabytes of nondescript photos day after day with the anticipation that you might have captured an interesting Kodak moment while out and about, the Narrative Clip is the gadget to check out.

Wearable technologies have come a long way since 2012 and the Narrative Clip is disappointing at $279. Its simple lifelogging functionality only scrapes the surface of what I have come to expect of a device to be worn day-in day-out.