Thursday, November 24, 2011

Why I’m Not Using Facebook Comments

A while back, TechCrunch switched from using Disqus to Facebook Comments for its comments section.

TechCrunch says this is to cut down on people being jerks by forcing them to post under their true name, and I’m fine with that. In fact, the reason I post under the pseudonym ‘MarkKB’ (my first name and the initials of my last) is that I believe accountability is a good thing. I want to be known for both my opinions and the stuff I do, good or bad.

However, the implementation of Facebook Comments as it is right now doesn’t work for me. The reason is really simple, to be honest, and maybe I shouldn’t be as annoyed as I am, but I am.

The problem is there’s a lack of control.

Again, I don’t care about the fact that my name gets displayed for all to see. I’m fine with that. But I can’t control where users go when they click on my name – it’s my Facebook profile or nothing.

My Facebook profile is my personal space on the web. Sure, people can find it by searching for my (rather unique) name. But forcing people to search for it means that only people who really want to expend the effort of being my friend will do it. I want to discourage random people popping in and deciding to be my friend – that’s why I don’t link to my Facebook account elsewhere.

And that’s what Facebook Comments undermines.

It doesn’t have to be this way, of course. Facebook knows my website address. It knows my Twitter account. There is no reason why they couldn’t link to either of these (even if it has a ‘Here there be dragons (that Facebook doesn’t control)’ landing page first). There’s no reason why I shouldn’t be able to link to one of my Facebook pages.

There’s no reason they can’t implement Twitter login support like they promised the users back in March.

The only thing my cynical brain can think of is Facebook wants to monetise its users by emphasising its own website above user choice. Either that, or they’re being lazy.

And that’s something I simply cannot get behind.

Postscript: Yes, I know Facebook allows logins from AOL, Yahoo! and Hotmail. The problem there, however, is threefold: 1) They don’t link to the profiles of any of the three. 2) They don’t import the avatar of any of the three. 3) Those are all inherently private networks – my problem is I want to be able to link to my public accounts.

I do, however have some ideas on how Facebook can improve how it works even if they do continue to link to my Facebook profile. I’ll discuss those at a later date.

Tuesday, June 14, 2011

Why the devs Peter Bright wrote about are wrong (and why Peter Bright is right about what to do about it)

Earlier this week, Peter Bright wrote a passionate piece about developers seemingly being up in arms about two sentences in the Windows 8 tablet demo from D9. (This follows two similar, albeit less detailed, pieces: one from Mary Jo Foley and the other from Paul Thurrott.) Those sentences, spoken by Microsoft VP Julie Larson-Green, are as follows:

“So this application[, an immersive weather application,] is written with our new developer platform, which is based on HTML 5 and JavaScript. People can write new applications for Windows using the things they are doing already on the Internet.”

Apparently, some developers have taken this to mean that the only way to write immersive apps is through HTML 5 and JavaScript. Peter Bright thinks this interpretation is completely rational. I disagree, and in fact I’m going to come right out and say it – anyone who got that from that statement is making a rather large logical leap.

It’s Called A Non-Sequitur For A Reason

These are the facts presented in the above sentences:

  • The weather app is an immersive application.
  • HTML5/JavaScript is the base for a new development platform from Microsoft.
  • The weather app uses the HTML5/JavaScript-based platform.
  • People can now use their experience from HTML5/JavaScript to write Windows 8 programs.

It doesn’t follow from this at all that HTML5/JavaScript will be the only medium for development, merely that you will be able to write an immersive app in HTML5/JavaScript. It may be the only option, but it’s rather ridiculous to assume such from the above statements.

It appears that the argument is as follows:

  1. All HTML5/JavaScript apps shown at the demo are immersive apps
  2. I want to develop Program X as an immersive app
  3. Therefore I will have to develop Program X in HTML5/JavaScript

This is a logical fallacy known as the ‘fallacy of the undistributed middle’. In this case, the ‘undistributed middle’ is that ‘all immersive apps are HTML5/JavaScript apps’, which is at this point unsubstantiated.

Evidence, Shmevidence

First off, the Weather, Piano and Stocks apps were the only apps explicitly mentioned to be HTML5/JavaScript. None of the other apps demoed were described in this manner.

Secondly, we know Internet Explorer is an immersive app, and we know that it’s written in unmanaged C++. Unless they are suggesting Microsoft will be using private APIs for IE9 (a move that is A) unprecedented in Windows history and b) would surely get antitrust investigators on their tail lickity-split), or that IE9’s immersive mode is an HTML application (also unlikely), then I somewhat doubt that HTML5/JavaScript will be the only way to develop immersive apps.

There’s Nothing Stopping You Anyway

Let’s face it – ‘immersive’ apps are full-screen apps with touch controls. Are developers really suggesting that it will be impossible to write such an application for Windows 8?

Windows 7 added touch APIs. These will still exist in Windows 8. And it’s trivial to create a full-screen application with large text, buttons and whatnot – and since Metro is a design language, not an API, as long as it behaves like Metro, it is, for all intents and purposes, Metro. The fact of the matter, then, is that it’s silly to state that you can’t make an application for Windows 8 that you can do right now using existing APIs.

If it turns out you need to code in HTML5/JavaScript for live tiles, then a stub application will most likely be a cinch to make. I mean, people already do basically the same thing for Gadgets anyway, and Live Tiles are essentially Gadgets that launch programs.

So even if the developer’s fears are justified, they’d still be able to easily make an ‘immersive’ app, even if it’s not using any special API to do so.

But that’s a huge ‘if’, and one that seems incredible, to say the very least.

Nothing Is Being Said Because Nothing Needs To Be Said

At least, that was my initial reaction to the article, and that was probably Microsoft’s thinking as well. I would have argued that any developer who took “here’s an immersive app, and oh, it’s developed in HTML5/JavaScript” and got out of it “HTML5/JavaScript is the only way to develop immersive apps” should probably not be allowed to develop for Windows 8 anyway (or any platform, for that matter, because they’d be continually worried about being abandoned whenever anyone announces a new platform and doesn’t mention the old one.) They probably shouldn’t work in the aviation industry either, least they be worried that when Boeing announces the 797 or whatever and not mention any of its previous planes that Boeing will stop making or supporting them.

Microsoft Should Probably Say It Anyway

But the problem is, it’s not just irrational developers on the Silverlight support board. Ina Fried, writing the official analysis for the demo, also interpreted the statement in the same way as the developers Peter Bright and others mention, which was also carried over in Joanna Stern’s write-up for this is my next, and Oliver Haslam’s write-up for Redmond Pie. And completely rational and logical-thinking developers are going to read these sources and think that immersive apps will be HTML5/JavaScript only, having not the time, patience, ability or knowledge to view the original demo.

So, in the end, I do agree with Peter Bright (and thus Thurrott and Foley) on this point: for the sake of all this sillyness, Microsoft should make an official statement that HTML5/JavaScript won’t be the only way to develop immersive apps, and that you will be able to develop them in .NET and Win32 as well.

My real issue is that this shouldn’t need to be said at all. Peter Bright claims the problem is with how Microsoft worded the statement, and again, I disagree – I think it will be a sad day when tech demos need to devote time to point out the blindingly obvious.

But obviously, we can’t force tech publications and developers to take a course in logical thinking, so an official statement is really the only way to solve this. Sitting in silence until BUILD will only create confusion and possibly even get developers to not develop for Windows 8. And, if anything, loosing developers at this critical time is not something Microsoft can afford.


So, in summary, I do not believe that the fears developers have about having to develop immersive apps in HTML5/JavaScript are rational, nor do I believe Microsoft should have to make an official statement. However, to prevent conclusion, I do believe that they should, if only to dissuade these irrational fears from getting into the minds of the mainstream of developers.

Edit: I should note that both Paul Thurrott and Mary Jo Foley also wrote articles about the same developers Peter Bright did. I blame the previous few weeks without Internet (I’m still catching up on some things) and I’ve edited the article to more generalise it.

Friday, February 4, 2011

A Modest Proposal: Private Clouds on a Large Scale

This blog post is based on a post I made on the Ars Technica forums. It’s been edited here for spelling, clarification and to add an idea I had.

I really don't like the idea of my data being in 'the cloud' in a primary sense. Backup? Sure - if there's data loss, I can just make another backup. Publication? Sure, that's what the Internet is for.  Full-hog is a different thing.

It's an issue of control. With local data, I own (in a physical sense) all parts of the system - the computer, the hard drive, the metal filings that represent 0 or 1. I can literally pick up and hold my data, and take it with me. With the cloud, the data is on some server far away, and all I have is a projection of that data.

The same with apps. If a company goes out of business, I can play their games or run their programs indefinitely. If I don't like a new version of the program, I can keep using the old one. Because I own the physical data on my hard drive, I don't have to follow the whims of a company if I don't like it.

If we switch to a world where apps were served by remote computers to our own (as with web apps and streaming games), then I no longer have that control. If a company shuts down or discontinues a service, I have no recourse. If I don't like a new version of something, I can't use old versions unless the company makes provisions for such a thing.

For me, the convenience is simply not worth the loss of control.

However, I'm a big fan of the 'private cloud' - servers that I own that can stream my data anywhere. Right now, I've set up a file server that stores my documents and music, and I can access this via LAN on any computer in the house. It's very liberating.

There are three problems with private servers, however:

  • Marketing: This is a big one. Consumers don't know what servers are and how they can help, and it's clear that companies don't know how to market servers to consumers (one would only have to look as far as Microsoft and WHS to see that.) Companies should emphasise the convenience factor, and the ability to access your files from anywhere over the network (and, in the future, the internet).
  • Distribution/Expense: Even among geeks, a small percentage use file servers. Part of this is because of not being able to justify the expense of buying a computer or paying for power just to serve files, and part is because private servers are so few that no-one really considers it.
  • Ease of use: To a consumer, it's relatively hard to set up file shares, network drives, redirect profile folders, etc. It's a hurdle that most ordinary people will find difficult to overcome.

So, here's my proposal:

A server system that's made up of a computer and a removable drive (which will store the user's data.) The company that makes these servers cuts deals with real estate companies to place these servers, as well as wifi routers, in new and resold homes, offering to train for free real estate staff so they can help consumers set things up, and make deals with power companies to not charge for the server's power usage (read by a meter attached to the server), etc. These servers can be placed in the wall behind a service panel, with a collection of USB sockets embedded in the wall (like telephone and power sockets in most homes today) - this will be where the drives will be attached - and maybe a simple LCD display with relevant information.

The removable drive contains a key on it in a standardised location, as well as a user-set password[*]. They key is also printed somewhere for the user's reference. If two removable hard drives are attached, it duplicates the files on the second hard drive - basically, software RAID 1.

[*] This could be implemented as a drive-wide encryption, with the password/key as the seed, as opposed to plain text storage.

On their home computers, the user could install some software that requests the drive key and password, then broadcasts a message on LAN to see if the server responds. Once it does, the key and password are transmitted to the server, which checks the data against the info on the removable drive, and, after log in, sets everything up so that the profile folders link to the right folders on the server's removable hard drive. (The software can act as a "dashboard" of sorts, allowing the user to keep track of stuff like disk space and backup status, and letting them set up additional shares, if need be.)

If the person moves house, they can just unplug the removable drive in their old house and plug it into their new house. Since the server reads the key off the removable drive, the user can keep working as if nothing happened.

The main issue with Internet streaming is dynamic IPs. This could be possible by having companies host "redirection servers" at fixed IPs, whereby both the client and the server is given the address of the redirection server (in the private server's case, stored on the removable drive, of course), and the client could use software on the computer to integrate the data it receives into Explorer (ala Dropbox, I believe.)

This doesn't stop at computers - phones, tablets, digital photo frames can all take advantage of this system, continuingly syncing data with the server. And you could 'upgrade' removable drives by having booths where you can exchange your old removable drive for a larger one, have them transfer the data across, and only pay the difference.

I’m aware some programs are finicky with regards to where they put their data, especially games – Age of Empires III, for example, doesn’t like network drives for some reason. Like how routers can unblock ports (and some routers have a Games section so you can unblock ports without having to remember the number), you could set up a data sync, so the data is stored on the hard drive of the local computer, but synced to the server and then to the other computers in the network.

Now, I would love this idea to come about. I'd be thrilled, in fact. Microsoft already has a server + software dashboard solution, so they're the most likely, but I really wouldn't care who does it. Just make it a reality.