The Future is Here! And Its Not an iPhone…

Humor June 26th, 2007

It’s a big-ass table! :)

Didn’t take long for someone to make a parody of the Microsoft Surface ad…

WPF Overview

.NET, Programming, WPF June 23rd, 2007

Josh Smith ahs written a nuch of very comprehensive overview posts on WPF topics:

nibbles: snack tutorials for hungry designers

Programming, WPF June 23rd, 2007

Just came across this new WPF\Silverlight site – nibbles: snack tutorials for hungry designers.
As described on the site:

As the name suggests, nibbles are short tutorials that teach you one specific feature at a time. Later, you can combine all the things you have learned to develop a complex project by yourself.

There are already some tutorials about Expression Blend and Silverlight and content on Blend with WPF is expected soon. You can watch for new releases on the nibbles blog.

Tags:

Software Patents – Is There Hope In Sight?

Business June 18th, 2007

Software Patents is a controvertial subjects. It has been the subject of an intense debate on the past few decades, so intense that it even has its own wikipedia page.
One of the main problems with the current patent system is that it is way to easy to file patents on obvious ideas (such as the famouse VB “Is Not” operator or Eolas’s patent on emmbeding objects in html) which then get approved by the patent examiners who are overworked and do  not have the resources to validate all the motions.

There seems to be a new hope and bringing some sanity to the software patents field in the form of a yearlong pilot project, endores by the U.S. Patent and Trademark Office, that aims to allow anyone who is interested to weigh in on 250 pending patent applications belonging to one of the more difficult categories to decipher: that including computer architecture, software and information security. Read more on the CNet post

Maybe this is the first step in ending the race of software companies to produce large ammounts of pointless patents (as protection ofcourse…) and reverting some of the resources spent on lawyers to induce some real innovation…

Tags: ,

Is Microsoft Dead?

Technology June 17th, 2007

Paul Graham, founder of Y-Combinator, declares Microsoft is dead (also translated to Hebrew at Ynet)
While this is certainly an eye-catching, buzz-creating headline, but it seems there isn’t much behind it.

Paul notes four reasons why he believes Microsoft is “dead”:

  • Google is the most dangerous and feared company nowadays
  • AJAX and JavaScript is the new programming model of choice
  • Broadband Internet connections make the desktop irrelevant
  • Apple “Their victory is so complete I am now surprised when I see a Windows PC”
  • Startups no longer fear Microsoft.

Holding up Apple and Google as the Microsoft killers is an interesting notion but far from reality.

Apple is a hardware (and retailing) company and has roughly about 6% of the computers market. Yet, Paul marks Apple as a clear leader in the computers industry with its OS X operating system – “Their victory is so complete that I’m now surprised when I come across a computer running Windows.”
He also mentions that “Nearly all the people we fund at YC use Apple laptops”. I have to say that I know only few people who use Apple, I haven’t seen many Apple machines when I traveled in the US and the penetration rate here at Israel is low to non-existing. Furthermore, the people I do know who use are using Apple, usually boot it with Windows.
Paul’s statements on this matter are simply far fetched and outrageous…

Google is an advertising company. One can say that it does consumer web search and a bunch of other things but basically its business is based advertising through the different channels it owns.
Google has about 45% of the search market which is its primary channel.

Both companies are doing really well in their respective domains, but are they Microsoft killers? I don’t think so.

Microsoft competes in desktop operating systems, server operating systems, databases, and development tools. Microsoft also competes in home entertainment with its multi-billion dollars XBox gaming console and its Media Center software. It also has nearly a billion dollar business in Windows Mobile for mobile devices (SmartPhones, Pocket PCs etc.) which is currently the most widespread Os for such devices.
Microsoft is also in the search business with it’s Live! Search which has about 10% of the search market. If Apple can make money and be considered as a leader with its 6% than I’m certain that Microsoft can do well with these 10%.
So, which one of these areas is currently being killed by Google and Apple? None.

Another argument from Paul’s post states the fact that startup companies no longer fear Microsoft. Why should Microsoft scare startups? Is Google scaring any startups?
I think its of the interest for big companies like MicrosoftGoogleetc. to encourage startups as part of their ecosystem rather than scare them away.
Encouraging startups and building a large dynamic ecosystem increases their business value, and it also makes it easier to buy and integrate one of these startups if it shows potential.
I don’t think there’s a company out there with a larger amount of partners and a better ecosystem than Microsoft’s (In fact, recent posts show that Google is struggling in this area)

In his second post on the topic, besides deeming SAP and IBM as dead too (what about Oracle?) it becomes very clear that Paul’s meaning for “Dead” is boring and profitable. Companies that are “Dead” are not doing any cutting edge research and release new disruptive software using new business models.

Yet, Microsoft’s Surface and Silverlight are good examples for just that…

Tags: ,

Acropolis uses XAML to define business logic components

.NET, Programming June 14th, 2007

A lot of developers are mistaking XAML to be an exclusively WPF technology. The truth is, that as it’s name (Extensible Application Markup Language) suggests, it can be used to represent all kinds of application mechanisms, not just the UI.
David Hill has written a post with a brief explanation as to why Acropolis uses XAML instead of code to represent its business logic component. Check the “Why XAML?” section under this post.

Using a declarative approach like this, though, provides a number of benefits:

  • Using XAML gives you a very concise way to express the structural aspects of your component – not just the external ‘class interface’, but how it is structured internally. For example, it allows you to cleanly define how any child components or services that your component uses are configured or interact with each other.
  • It allows you to concentrate more on the code that defines the actual implementation of your component. In other words, we want to make it so that 99%+ of the code that you do write is the actual code that will solve your business problem and not plumbing or glue code.
  • It is much easier for us (or you) to build visual designers or other tools (including test tools) for your component since its structure is more easily ‘machine-parsable’. It also allows for a looser coupling between the application model and the tools allowing each of them to evolve more quickly.

Since there is very little documentation I could find on the subject, I wonder how complicated is to create my own application markup and a designer for Visual Studio…
Anyone has any good pointers on this?

Build an Outlook 2007 UI Clone using WPF

.NET, Programming, WPF June 14th, 2007

Two engineers from Microsoft Switzerland, Ronnie Saurenmann and Ruihua Jin, have put together this 90-page hands-on lab that takes you through the process of building a business application that has the same UI as Outlook 2007 using Expression Blend.
You can check out the xbap, read the hands-on-lab manual, or look at the source.

More details on this here:

Microsoft Kitchen?

Technology June 10th, 2007

According to Mary Jo Foley at ZDnet, Microsoft preps a Windows-based kitchen client:

Among the features Microsoft is planning to make part of its forthcoming kitchen computing environment are a family calendar, recipe center, entertainment features and a shared bulletin board, sources added.

I guess it’s Surface technology opens ways to a whole new markets of “Tailored PCs”. I wonder when my firdge and laundry machine will run Vista…
Or if it means that my parents will now call me every time the fridgelaundrykitchen stops working…

Just hope it wouldnt just end up as a museum exhibit like this computer I saw when visting the computing history museum at Palo Alto:

Kitchen Computer - DescriptionKitchen Computer

Tags: ,

Getting the Full Name of the Current User

.NET, Programming June 7th, 2007

One of the developers in our team recently encountered a problem of getting the display name of the current user.
The .NET framework exposes the user name through Environment.UserName or System.Security.Principal.WindowsIdentity.GetCurrent().Name but there’s no API to get the user’s display name.
The simplest implementation to get the display name would be using DirectoryServices:

    public static string GetUserFullName(string domain, string userName) { DirectoryEntry userEntry = new DirectoryEntry("WinNT://" + domain + "/" + userName + ",User"); return (string)userEntry.Properties["fullname"].Value; }

The above method can be called with the current user name and domain to get the user’s fullname:

GetUserFullName(Environment.UserDomainName, Environment.UserName)

This method will fail to provide a correct result of the fullname property is not configured in ActiveDirectory.
Windows provide an unmanaged API called GetUserNameEx that can be called using interop:

  /// <summary>  /// Wraps the GetUserNameEx API in secur32.dll  /// </summary>  /// <see>  /// http://msdn2.microsoft.com/en-us/library/ms724435.aspx  /// </see>  public static class GetUserNameExUtil  {  #region Interop Definitions public enum EXTENDED_NAME_FORMAT { NameUnknown = 0, NameFullyQualifiedDN = 1, NameSamCompatible = 2, NameDisplay = 3, NameUniqueId = 6, NameCanonical = 7, NameUserPrincipal = 8, NameCanonicalEx = 9, NameServicePrincipal = 10, NameDnsDomain = 12, } [System.Runtime.InteropServices.DllImport("secur32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)] public static extern int GetUserNameEx(int nameFormat, StringBuilder userName, ref int userNameSize);  #endregion  public static string GetUserName(EXTENDED_NAME_FORMAT nameFormat) { if (Environment.OSVersion.Platform != PlatformID.Win32NT) { return null; } StringBuilder userName = new StringBuilder(1024); int userNameSize = userName.Capacity; if (GetUserNameEx((int)nameFormat, userName, ref userNameSize) != 0) { string[] nameParts = userName.ToString().Split('\\'); return nameParts[0]; } return null; } public static string GetUserFullName() { return GetUserName(EXTENDED_NAME_FORMAT.NameDisplay); } }

Just call GetUserNameExUtil.GetUserDisplayName() to get the user’s display name…

Acropolis News

.NET, Programming, WPF June 7th, 2007

It seems there’s a lot of new stuff about Acropolis from TechEd:

Acropolis sounds like a very promising new technology for smart-clients (unlike CAB which I hated).
I’ll try to drill more into this new framework in the near future…