nektar nektar

Niner since 2004


  • Unit Testing with Microsoft Fakes

    The bad thing is that unlike in all other programming frameworks such as Java, JavaScript, Objective C, Python, you name it, this functionality is provided for free or can be easily achieved. For .NET you have to buy Visual Studio Primium Edition and above. I think that requiring me to pay so much for this feature is problematic because unit testing with mocks is such an essential need in today's software development.

  • A Look at Windows 8 Ease of Access

    Narrator in Windows 8 is buggy, sloppily designed and still incomplete, even though it has been greatly improved from the version in Windows 7 which was effectively useless.

    For example, it works differently in Windows Store Apps that are written using HTML5 and Javascript, than in those written using C# and .NET. So, a blind person can tell if he/she is dealing with an HTML5 app vs. a .NET one just by using it. This is certainly a bad design and something which might be hard for you to fix.

    Why isn't there a shortcut to move from form element to form element on the Web, like edit boxes, check boxes, etc., similar to all other screen readers? I guess the answer is that with all the unwise choices you made with the shortcut keys, there were no more neighborring letters on the keyboard to use for this functionality. For those that don't know, Narrator's shortcuts are numerous and very hard to remember. It seems that the team made a list of features and then assigned shortcut keys by going through this list and picking neighboring keys on the keyboard to fill it in. Just like that. No logic. No mnemonic combinations were picked.

    Its sound effects are not so good compared to Apple's Voiceover, even its TTS is worse than Alex on the Mac. Voiceover has TTSs for over 30 languages all pre-installed on the iPhone/iPad complete with logic to auto-detect and switch TTS when text in another language is encountered. And they don't take up 300 MB like the Windows TTS voices you would have to buy.

    Why is apple's Voiceover so much better, with no bugs and fully featured, even since its first iPhone version, whilst Narrator, ten years on, is still so bad. Plus Windows+enter does not work unless you first actually go in and turn this particular shortcut on in Settings. As you can surely understand this is totally useless for a blind person, since if you could go in and turn the shortcut on, you could turn Narrator on as well without the shortcut. The shortcut that actually works is ctrl+Windows+u but it is not documented or perhaps not known even by MS employees.

    Voiceover is so so so much more polished and just works in most iPhone/iPad apps. On the other hand, most apps on the Windows Store are inaccessible, such as Skype. I could use Skype on my iPhone since iPhone 3Gs some years ago.

    With Microsoft's speed, it would take you ten years to implement what Voiceover v1 had already implemented 4 years ago. Why is that?

  • Power your app with Live services

    I have a few very serious concerns:

    1. How would a user revoke a permission previously given to an application or most importantly a Web site for accessing his/her profile information or Skydrive, etc? Is the UI for doing this centralized? If yes, aren't there issues of discoverability? If no and the revoke UI is per application, isn't there the issue of consistency amongst implementations?

    For example, the permissions UI on the iPhone for managing push notifications has the above issue of discoverability as it is centralized.

    2. How do you ensure that permissions requested by applications and web sites are adequately described? For example, "Do you want to allow Facebook to access your Skydrive and read and write photos and documents?" A typical user reaction would then be "Access my Skydrive in what way exactly?" Meaning, "Do what exactly to my photos?" "Delete them, edit them, what exactly?" In other words, how do you ensure that applications and most importantly Web sites adequately describe fully to the user the reasons for requiring and what they intent to do to his/her profile information, photos, calendars or documents, etc, and then promise the user that they will access his/her information in the described way and no more? This is something that permission categories on their own cannot ensure as they just provide or refuse access to the information but do not describe how the information should be used. Applications and Web sites should be forced through the API to provide descriptive text making their intentions clear and Marketplace rules should be in place to force applications to honour their promises. Otherwise, Web sites and applications are going to blindly ask for access and users might blindly again grand all requested permissions, since they have no way of knowing if the requested information or access rights are going to be used for good or for evil. The descriptive text below each permission request is too generic to enable the user to make an informed choice for the specific application. This is especially true since the user will be initially trying out a new Web site or a new application for testing it to see if he/she likes it.

    3. How do you remove malitious applications. Most importantly, how to you deal with malitious sites. Since registering for Windows Live Connect is so easy, then what will prevent malicious people for registering phishing web sites on a massive scale under different URLs and pseudonyms, Since no official proof of identity seems to be required?

    4. How do you solve the multiple identity problem? I might have a work identity, a home identity, a family identity, a personal identity a semi-private identity and perhaps a secret identity for posting anonymously online. I might want to share all my settings between some of my identities but not with all of them. I might want to share specific applications and Web site information and settings with all my identities whilst keeping other applications and settings private to some of my identities. I might want to easily transfer settings, applications, etc, from identity to identity, i.e. I might want to change an identity without having to rebuild it from scratch. I might want to run multiple applications and Web sites using multiple of my identities in the same user session, without having to (A) create 5 accounts on my computer and (B) having to log on and log off all the time.

    The above are not only desirable and valid scenarios but are situations which are really common nowadays. Just think how you use your Web sites and applications on an everyday bases and compare with the above situations. You will find that you run into these scenarios continuously, especially if you have kids and a family.

    5. How do you solve the issue whereby I might want a friend to use my computer for a while or just use the Internet to browse on my PC without giving him access to all my online Web sites and applications at the same time? Is there a setting for example for keeping this automatic signing-in experience enabled, whilst always requiring me to re-enter my password on sensitive applications or Web sites, or better, on applications or Web sites that I designate as sensitive?

    6. How can I as a user or as administrator audit what exact data and at which time and in what way it was accessed by a specific site or application?

    7. I might want to visit a site without logging in just for the specific visit. Reasons for doing this are perhaps I might want to create a new account on that site for my friend or family member. Do you mean to tell me that (A) I will need to create a new Windows account first? What if I don't want my friend creating a new account on my computer just for him/her to be able to sign up to a new site. Or (B) Wait until I am signed in and possibly tracked by the site and then sign out in some site specific way in order to create a new account? And what if that specific site or application does not offer signing out? And what if I don't want the site to track that it is me who has helped my friend or family member to establish a new account in the first place?

    The above are valid concerns and what surprises me is that it seems that your company has not thought of them. These are not the times at which we find ourselves at the beginning of the discussions around identity management. There is at least a decade of research, political discourse, online debates and many many failed industry attempts such as Open ID perhaps?

    My computer is not my phone. My phone is not usually shared. It is more personal. Bringing the simplistic phone identity management to the PC needs thinking. And I am not sure if this thinking has been made. Has it?


  • If only this app could speakā€¦

    The free voice that comes with Windows Vista/7 is called Microsoft Anna. It is not state-of-the-art. Its inteligibility is not at all as high as the competition, its performance is poor and it cannot be really adjusted in any way except perhaps speed. Other voices from Nuance , Acapela and Loquendo are so much more intelligible. The default voice (called Alex) that comes with Mac OSX is also extremely intelligible and it is so much better than the one in Vista/7. And all these other voices are more responsive that Microsoft Anna and so perform much better. Much worse, Microsoft Anna has not been improved for 5 years now while the competition has continuously released new versions. Mac OSX Alex can even take natural-sounding breaths between phrases. Moreover, in Vista Microsoft Narrator which uses Microsoft Anna had a serious bug whereby it would take a very long time of more than 1 second before speaking after the user had navigated to a new item on the screen, such as while cursoring down through a document or even the Start menu. You can imagine how hard it was to use Microsoft Anna in Vista then. How can a product as big as Vista be released with such a serious bug is beyond me. Even today with Windows 7, screen readers which use the SAPI voices are generally slow to respond and are full of bugs. I can only conclude that SAPI has serious performance or design flaws which have not been addressed for more than a decade.

    As I said, Anna is not at all adjustable. Also, very importantly it only supports English. You might say that developing a free synthetic voice for multiple languages that is easily tunable and performant would be very hard even for Microsoft. And yet, volunteers without any corporate assistance, from what I understand, have created and released as open source the free synthetic voice espeak. It can speak something like 40 languages, even obscure ones. And it is extremely performant and adjustable, such as its peech and intonation, even though it might not be as intelligible as paid voices from Nuance. You can get it from Sourceforge and incorporate it into your Windows applications according to its open source license and do it very easily as it is very lightweight and has an extremely small footprint. If a small group of volunteers can do this, why not a big company.

  • Office Casual Extended: Outlook Social Connector

    "Turn off your mail notifications". Apparently there is no need to do that. In Outlook 2010 mail notifications do not work if you are using an IMAP account. Also, even if you have an IMAP account as your default account and you choose "E-mail This File" from Windows Explorer in Windows XP, the file is e-mailed using not the IMAP account but the next account in the list of accounts in Outlook, ignoring your choice of a default account. I had several e-mails getting lost because of this. How can you ship a product with so serious bugs? I am considering going back to 2007. No mail notifications and not using my default account when sending from XP's Explorer is too bad. I guess you haven't tested Outlook 2010 with IMAP?

    And also I am fet up with the same bugs not being fixed for 10 years now. Using LDAP for name look-up freezes the UI thread as it is not executed on a background thread. Is this modern software. And this issue has been there for years. The dialog boxes  that appear when clicking the "To" and "CC" buttons when composing an e-mail are so old. The Advanced Find in these dialog boxes still does not have any "Advanced" features as it can only search by contact's name. And it is called "Advanced Find". But even the non-advanced find does not search in all column fields when thrying to search for a mobile contact but only works correctly in the non-mobile section of contacts. Try searching using the last-name of a mobile contact. The IMAP folders dialog box is so old and the tab order of OK with Cancel are in the wrong order. And these bugs are there for 10 years. Every version no improvements. Why?

  • TWC9: The First Look at the New Channel 9!

    Did you think about accessibility and screen readers? In the current Channel9 if you use a screen reader it is not easy to find where the next reply in a post starts or to go from one post in a forum to the next. On most sites to make easier to jump from reply to the next in a thread, they make the title of each reply into a heading and thus one can easily jump to it. This is what they do on Google search results page too. Each search result title is an HTML heading in the markup, even though it might not appear as such to the eye. But to a screen reader user, it makes all the difference as you can easily jump from HTML heading to to heading and thus easily go from one search result to the next, from one forum post to the next, from one reply within a post to the next, etc. But on Channel9 headings are today not implemented for this reason, are they going to be in place for the new release. It is easy, just put headings and style them if you want do not look as large as they would appear by default if it would change the sites appearance.

  • New Windows Live Wave 4 Messenger Preview

    There is still it seems no multi-party audio/video conversations like in Skype. I use them all the time. There is no voicemail, although they added video messages. But for those who do not have cameras, voicemail should have been also added as an alternative. How come you add a more advanced feature, whilst you do not offer the less advanced one?

    Messenger Companion is only for Internet Explorer why?

    Messenger Companion allows you to see only comments from your friends. Why don't they make a feature like Google Wiki, where you can see comments from anyone so that one can add annotations to any site and have them appear to the public as a whole through Messenger Companion, instead of it seems only one's friends? Why should I be friends with a commentor to see his contributions?

    Generally, there is nothing revolutionary in this version that is not already offered by at least one of the other competitors' services. It is certainly an improvement but there is nothing innovative.

  • A Deeper Look at Speech NUI

    Your speech products need improvements in the following:
    1. Natural Voice Quality: Microsoft Anna is better than Microsoft Sam but it is still much much lower quality in terms of natural voices than the competition. Companies like Loquento and Acapela make much better voices. Alex on the Mac is much much better. Anna sound old by now. You need to modernize the voice and bring it at least up to the level of your competitors.
    2. Slowness: In Vista using Narrator to interact with Microsoft Anna is extremely slow. In all versions of Windows, using a screen reader like Jaws to interact with any SAPI5 or SAPI4 synthesizer takes much longer than any synthesizer which interacts directly with the screen reader and not through the Windows SAPI interface. So, (A) Make Anna respond and work much much faster and (B) Very very importantly!, make the SAPI interface "talk" to the synthesizers fast. Currently, SAPI is extremely slow for any visually impaired person to even use it with any screen reader. That is why most screen readers bypass it. Jaws uses the Real Speak voices through a proprietory interface, bypassing SAPI5. Supernova uses Dolphin SAM (their own product) for interacting with synthesizers, bypassing SAPI5. Conclusion: SAPI5 needs to mature and get much much faster.
    3. Slow development: Your company is too slow to react and make new improvements. Microsoft Anna has been released in 2006 and it is 2010 and no improvements have been made? Why isn't Windows 7 equipped with a better voice? Why has SAPI5 remained vertually the same for 10 years?
    4. Multi-language support: Do the following: Buy an iPhone and turn on its built-in screen reader. Switch the language of the whole phone to a not so popular language, say Greek. The phone's interface comes up in that language. Surprising though, the synthesyzer's voice of the built-in screen reader also swiches to that language. Conclusion: Even from its first version, the iPhone has a lot of built-in synthesizers for lots of languages. Also try: Buy a Nokia phone, any modern one. Observe the many synthesizers that come pre-installed with the phone for so many languages. Now, do the following: Buy Windows 7. Observe that there is only Microsoft Anna, a U.S. only synthesizer. Conclusion: It is unbelievable that in 2010, all your competitors have support for so many languages which comes free with their product, whilst you have only a half-baked U.S. only synthesizer.
    5. Blind people do not like natural voices: The general slowness and inability to use at high speech rates of natural voice synthesizers, has made most blind people (the main users of speech technology on an everyday basis) to shy away from them. Instead, they prefer older synthetic voices, even though some of them might be out-of-support. Take, Eloquence, for example, a synthesizer which is currently at end-of-life by its company. And yet it is still used extensively in  the world, making it the most popular synthesyzer. Take Espeak, for example, a free and open source synthesyzer, which does not sound as good as any of the natural voices but due to its extensive multi-language support and its extremely fast responsiveness, especially at high speech rates, it became the synthesyzer of choice for many blind users. Please then, (A) consider improving Microsoft Sam making it multi-lingual and (B) making it open source. This would free you from some of the development costs but would greatly assist the visually impaired community which is many times unhappy with the move to so called "natural" voices. Try reading long documents all day with a "natural" voice, which is slow to respond and which puts many pauses between words and phrases to sound "natural", and then realize how frustrating it can become.
    5. Windows Mobile has a Synthesyzer? Even though most of the other phone OSes have had a text-to-speech cabability by now, Windows Mobile is still behind I think? I have certainly haven't read anything about Windows Mobile 6.5's text-to-speech and no documentation that I could find said anything. In any case, how many languages are supported? And is there a screen reader built-in? Do you know how much screen readers and so called "natural" voices cost? 300$ 500$, more than the phone certainly.
    6. TellMe Needs Improvements: Compared to Google's 411 service and having tried TellMe's speech recognision extensively, I have to say that it does not mostly get it when you ask for something and it does not even ask to confirmation, giving you in many cases the completely wrong results. You say something, it "thinks" it has recognised something and then it gives you something completely different from what you wanted. Whilst with the Google recognizer, it at least asks for confirmation and it usually recognises what you say correctly. On the whole, you need to improve TellMe. Also, the voice used for TellMe, is out-of-date and it does not sound very well. It sound angry or something.

  • Microsoft Help Viewer - New Help System in Visual Studio 2010

    How horrible!
    1. The browser is not a rich controls application. No tree-view control. No tabs and property sheets. No easy to use keyboard shortcuts.
    (A) Can I use the table of contents to navigate the documentation using the cursors in the browser? Most probably not. It is all a set of links and links and more links.
    (B) Can I press ctrl+alt+f1, f2 and f3 to get the table of contents, the index and the search in your new browser-based viewer? Most probably not. By the way, in VS 2008 although it says that these shortcuts should work, they don't so that is a bug in VS 2008 too.
    (C) Can I use alt+c and alt+n to get table contents and index in the browser?
    (D) Can I browser the index using cursors and tab or is there no index in the browser?
    (E) Is search its own floating window or every time I use it a new page would be navigated to in the browser? Of course the later. But in your previous viewer I could keep the search results and view them one by one without having to go back and forward.
    (F) There is a reason why desktop applications are richer than the browser, even though everybody talks about the browser and the browser nowadays.
    2. Can you at last decide on one help viewer for all your company? Windows has one, Office another, now you another. Where is the collaboration?
    3. Your MSDN online search results page is not a simple as Google and it doesn't still work as good. Even after so many years. Especially the interface has too many links. So, now you are going to make that the default search experience?
    4. You know how hard it is for me to navigate MSDN online? There is no Next and Previous link at the end of each help topic. And so every time I read a topic I have to go up to the table of contents again and again and find and click the next topic. Is hard, very hard. You go down to read, you finish and you go up and up to find the title of what you are reading in the TOC and then find and click the next and the next topic. All over and over. Whilst in your previous help viewer, one can easily press alt+down and alt+up to navigate through the topics. How easy. Can your "browser" do that?

  • Expert to Expert: Erik Meijer and Butler Lampson - Abstraction, Security and Embodiment

    Nice conversation.

  • Windows PowerShell : Variables, Types, and Operators

    I don't like the choice of the relational operators. Everything in Powershell flows and looks natural, except these relational operators. Less than, equals, greater than, etc. Instead of using the natural and easy to remember and easy to type <, >, <=, >=, != and == symbols, which every programmer, from the beginner to the advanced, knows, you used the counter-intuitive -lt, -gt, -ge, -ne, etc, strings. I know, I know what you are going to say: "Other shell languages use similar things." But isn't this what Powershell wanted to change, namely the mess of the other shells. Instead of using inconsistent esac and fi and other end of block delimiters, Powershell simply uses the highly intuitive { and }. Very good! Instead of words which one has to memorize, Powershell uses punctuation like () and [] and , which is common to most imperative languages. Easy to learn and also easy to reuse in other programming tasks using other languages. Why then have you used these strange combinations for the relational operators? If it was for compatibility with the < and > operators in cmd.exe, it is not worth it since < does not work in Powershell anyway and > is problematic since many time one has to change the encoding anyway and so one has to type "| -encoding ascii filename". In any case, > piping simantecs is unnecessary, ambiguous and less flexible than the "|" to an "out-something" commandlet. Also, < and > piping does not fit into the simplistic model of Powershell which does not use extra operators when not needed. So, there is really no excuse?

  • George Moore: Windows Azure Business Model for Developers - An Introduction

    No, I do not understand. I know that it should make more sense if I think more and I am sure your plan is cristal clear in your minds but for me, the simple customer, at first glance your naming does not make sense. And I guess this is what counts in the end, the first or perhaps the second impressions. Nobody will sit down and think, "well .NET Services does not have a client offering so ...". Nobody. It is a mess. Let me clarify:

    1. You have a new operating system you say in the cloud, meaning it runs on the Web or something. Ok, I get that. You call it what exactly though? Documentation calls it Windows Azure, The Azure Services Platform, The Windows Azure Platform, etc, etc. What is it then? Stick with Windows Azure and finish please. No Services Platform and Azure Platform. Imagine if I had called Windows 7, The Windows 7 Platform, or the 7 Desktop Platform, or the Windows 7 Client Platform, all in one show or in one documentation set.

    2. I am really confused with these namings which have suttle distinctions between them. You had Live Services. And Live Mesh. But you also have Office Live, not Live Office. But you have Exchange Online and not Live. You have Dynamics Online or is it Live but you have SQL Azure not SQL Live and I think not SQL Online. You have BisTalk Services and .NET Services, but no BisTalk Online or Live or Azure. I know, I know, most probably you will find an explanation. Something like, "The first is consumer focused, the second business focused, the other is a platform and the last one is .... something without a cloud piece which makes it less 'magic' than the rest." etc, etc. But as a customer I don't care. I am simply confused.

    There was an era at this company during which you named everything Active. Active Sync and Active Directory and ActiveX and Active Movie, etc, etc. Then, you decided to call everything .NET, Passport .NET, or was it .NET Passport, .NET Alerts and Visual Studio .NET.NET this and .NET that. Now, you said, "Well we do not want to make the same mistake again". And so what did you do, find not one but a set of words which you decided to add at the end of every product. "Now it is better," you say. Not like in the past that everything was .NET, now everything is either Online, either Live, either a Service or an Azure but not everything the same thing". "Less confusion," you say.

    What is wrong with your people at this company, you cannot name a single product correctly?

View All