Showing posts with label seriously. Show all posts
Showing posts with label seriously. Show all posts

25 February 2012

Bing Linking and Internet Anonymity

This last Wednesday (22. Feb) the people behind the Bing search engine announced a rather big feature, Bing Linked Pages. This feature integrates your Facebook profile to the Bing search experience in a much more visible way than before.

Although "likes" made by friends have been used in the past by Bing to influence the search results you're served, Linked Pages might be far more jarring due to how much more in-your-face the "we know who you are" factor is than before.

Forever Archived
I like the general idea to give people a little more control over their digital identity than they currently have. It is a bit crazy that in an age where nothing about our life will be forgotten ever again and whatever stupid photo, silly comment or posted text will forever more be indexed and available within milliseconds as a part of our digital persona, that we cannot have even the slightest control over any of it.

So the much hyped Web 2.0 today pretty much boils down to you either posting something as your official digital persona and then be ready to face the consequences of that perhaps 20 years down the line or opt for complete anonymity. Why do we need these absolutes? I like neither.

I think it is every ones basic right as the fallible ever-evolving humans we are to have the right to change our minds, form different opinions or change our behaviour patterns. Think this is what is basically happening when we grow up, become adults, go on a diet etc. The fact that we still have to lug around with us (and this applies more to the younger >25y generation than me) our entire history for anyone to recall or browse through is in short frightening.

Linked Pages could have been so much more
But back to Bing, so that is why my first reaction to the Bing Linked Pages was an overall positive one. The idea is great. But it seems that the realisation is however not. Below are a few things that bother me about this particular implementation:
  1. Requiring Friend Status To See a Person's Linked Pages: In all seriousness do you really need yet another profile in addition to your Facebook one? This new Linked Pages feature is apparently only visible when the person searching is logged into Facebook on Bing and is currently registered as a friend of the person they're searching for.

    This sounds to me just a duplication of the existing profile system in Facebook which is already quite extensive and most people put quite a bit of thought into these days. If you're searching for your Facebook friend's name on a search engine it is fairly likely that you do not want information already available to you in Facebook.
  2. Facebook Timeline Integration: Bing's choice of Facebook Connect as a sign-in ID makes a lot of sense (rather than requiring you to sign up for a LiveID). The FC user-base is huge and the process can be completed in under three clicks. However the decision to make it necessary to allow the Linked Pages feature app to post to your timeline is beyond me.

    Why does this otherwise great way to make sure that people find relevant information about you when you are "binged" (is that a verb yet?) have to have any ping-back communication or linkage with your Facebook profile? Remove this silly posting restriction, it makes no sense that Bing needs to post anything to your Facebook (optional is fine).

    To be fair: you can delete individual postings from your timeline after the fact. But it quickly becomes annoying as other friends of yours start linking pages to you. Which brings me to...
  3. Allowing Friends to Link Pages to You: Now this makes absolutely no sense to allow. Why would anyone want anyone other than themselves to control or influence their outward online persona? This single point completely defeats the purpose of the whole Linked Pages feature as we're back into the land of uncertainties where you're hopelessly dependent on outside factors to direct this aspect of yourself.

    Facebook already has a way for your friends to post to your timeline on Facebook why would you want to essentially create the same thing again on Bing? I think very few of us on Facebook have a completely separate accounts and rather opt for controlling friends access to information through groups or simply just let everyone see everything. Which brings me to...
  4. Not Every Friend on Facebook is Your Friend: aka not every friend on Facebook can be trusted. The fact is that if you're anything like me you have people on Facebook from all walks of life and for a variety of different reasons. Real-life friends, family, extended family, old school buddies, current and former work mates and bosses, current and former partners of friends, people you've met travelling, in the pub, on a boat, in a plane, you name it.

    You would not necessarily want to trust them all with your search result profile. Especially since it is becoming increasingly common that peoples' names get binged/googled by prospective employers, when applying for mortgages or loans, applying for adoption and countless other reasons.
  5. Unhelpful, Borderline Arrogance Towards Users: While you might want to allow your friends to post to your already locked off Facebook wall, you might not want them to influence your public search results without supervision. Perhaps it is just me but I like to joke around with some of my friends and different groups of people have different kinds of humor. Some of the jokes are very much in-jokes, which quite often surface as Facebook wall posts, comments and likes.

    But as everyone that is allowed to post on your wall can use the Bing Linked Pages to link you to a page you might see how this could become a little bit problematic when dealing with your joker friends (as well as them dealing with yourself).

    Providing ridiculous suggestions such as the one below, should never ever ever ever be a part of the Bing team's response. When playing the role of the underdog, this kind of borderline "take-it-or-leave-it" attitude is not acceptable. Bing should humbly want their users to adopt their technology. You're asking people to give their time into something collaborative which will provide Bing with heaps of valuable information. Treat it as you would a present not like this:
    If a friend keeps linking you to pages that you don’t want associated with you, you can't prevent the friend from doing it again as long as they're a friend, but you can unfriend them, and then remove the links.

I Want Bing To Succeed
Don't get me wrong, I am rooting for the Bing group to become wildly successful and for the Bing search engine to provide a viable alternative to the Googlelith. Partly because Bing is the underdog in the competition. But also and more importantly because a lot of us don't realise the wool that has been pulled over our eyes with regard to the so called "features" and "freebies" that the G offers us (the hypocrisy is not lost on me, me writing this on Blogger, don't worry).

But as real life is fast clashing with the naive Google idealism of doing no evil more of the general public will hopefully catch on that they're only getting these so called freebies because they are indeed Google's livestock being raised and sold.

But Bing, you have to do more than just match G, make search different!

... maybe I should jot down some ideas (stay tuned)

24 February 2012

Why I Think C# and Java Trump C and C++

Well the title is a bit sensationalist. As a disclaimer I strongly believe that you need to pick the correct tool that best suits the job at hand and that you believe you will be the most productive in.

However when faced with the agonizing task of printing out Trace messages with variable formatting in a bit of C code that I had lying around recently, I realised just how focused C# is on getting things done rather than faffing about with boilerplate code.

As an example, here are two functions that fundamentally do the same thing, print a formatted string to the system Trace listeners using a single format string and then a variable number of arguments:

First the C# function:
void odprintf(string format, params object[] args)
    Trace.WriteLine(string.Format(format, args));

Compared to the C equivalent:
void __cdecl odprintf(const char *format, ...)
    char buf[4096], *p = buf;
    va_list args;
    int n;

    va_start(args, format);
                             // buf-3 is room for CR/LF/NUL
    n = _vsnprintf(p, sizeof buf - 3, format, args);

    p += (n < 0) ? sizeof buf - 3 : n;
    while ( p > buf  &&  isspace(p[-1]) )
            *--p = '\0';

    *p++ = '\r';
    *p++ = '\n';
    *p   = '\0';

Really, all this magic is necessary to just print to Trace?

I reserve the right to seriously doubt that "lower" level languages have any place but in highly specialised or those extremely few cases where throughput and latency are more important than developer productivity and deadlines are lax and forgiving.

Here is someone that is more eloquent than I am on this issue.
There is no reason to use C++ for new projects. However, there are existing projects in C++ which might be worth working on. Weighting the positive aspects of such a project against the sad fact that C++ is involved is a matter of personal judgement.

If you end up working with C++, don't try to "fix" it (or "boost" it). You'll just add more layers of complexity. The most productive approach is to accept the problems and try to write simple code which people can easily follow.

If you are an expert in the intricacies of C++, please consider this knowledge a kind of martial art - something a real master never uses.

17 February 2012

Bit manipulation gasp, gasp

Call me an elitist if you want, but it still surprises me how reluctant programmers are to use basic bit operations.

As an example, let's say that you have a series of calls to functions that might return true or false and you want to call every single one of them but if one of them returns true you want to preserve that value at the expense of the other false values.

For such a problem I am more likely to encounter code written similar to this:
bool anyreturntrue = false;
for( a few calls )
    bool result = SomeFunction();
    if( !anyreturntrue && result)
        anyreturntrue = result;
return anyreturntrue;

rather than the more elegant:
bool anyreturntrue = false;
for( a few calls )
    anyreturntrue |= SomeFunction();
return anyreturntrue;

Should this really be considered wizardry?
I hope not.

15 February 2012

What are we, five?

If you wear this badge, I have no respect for you :/