Scott Hanselman

Iñtërnâtiônàlizætiøn

June 14, '04 Comments [6] Posted in ASP.NET | Ruby | Internationalization | XML | Tools
Sponsored By

I'm feeling very international this Monday, so here' s a collection of things for you to read.  It's a reminder <gasp> that there are a lot of people out there who don't speak English every day (or ever) and it's responsbility of the English-dominated Web to respect that.  Even if you don't even write code to be internationalized, you have a karmic obligation to be aware of these things.

And for folks in my world:

And in the vein of 'Whaaaaaa?' check out:

  • The Microsoft Application Translator: "This new solution, called Microsoft Application Translator (MAT) enables applications to offer on-the-fly localization with no code change and limited investment in localization." Here's their FAQ.

Update: Here's a crucial update. ;) Don't forget that Japanese Emoticons are different than English ones!

Japanese Smileys

American Smileys

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Linus is moving down the street from me...

June 11, '04 Comments [1] Posted in Musings
Sponsored By

Apparently I'm going to bump into Linus at the Murray Street Safeway soon...I wonder if anyone is going to say, "Can you sign my Minux book?"

Inventor of Linux is Portland-bound

BEAVERTON, ORE. - Linus Torvalds, the Finnish-born inventor of the Linux computer operating system, is Portland-bound.

The Oregonian reported Thursday that Torvalds is moving to Portland from California to oversee the Open Source Development Labs in Beaverton

"Quite frankly," he told the newspaper via e-mail, "We want to be somewhere calmer and saner. Silicon Valley is a bit crazy."

Torvalds says he and his family will make the move after his children finish school next week.

"The plan was to try to acclimatize and have time to grow webbed feet (although I'm told there are implants available) by moving during the summer," he wrote.

Torvalds is often credited with transforming free operating system software from idea to reality.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

.NET and Mono: The Libraries, the Framework and the Very Big Fish

June 10, '04 Comments [1] Posted in Learning .NET | DasBlog
Sponsored By

Via Gordon, I see that Tim Bray pointed to Jeff Dillon's points on cross platform .NET.  Jim Blizzard chimed in as well.

I like Gordon's brief and complete summary:

The point? If you care about cross platform .NET, there are details you need to pay attention to, and you really shouldn't do dumb things like use the registry. As for "the cost of not being able to do native system programming in pure Java" we already know that pure .NET is a myth, too. [The 80/20 Solution]

With due respect, I'm not getting a few of Jeff's views:

The Java API writers have always been very careful not to introduce an API which does not make sense on all platforms.  This makes Java extremely portable at the cost of not being able to do native system programming in pure Java. [Jeff Dillon]

Which sounds just like the Least Common Denominator point I've made before.  However, while the Java API writers may try to support the LCD, the Java Application Server vendors explicitly promote vendor lock-in by introducing APIS that are App Server specific.  As Jeff wisely points out, there is a cost.  I say it's too high for most.

Microsoft is very open about their goals - Vendor lock-in is a good thing.  Exploit the platform.  Jeff says:

With .NET, Microsoft went ahead and wrote all kinds of APIs for accessing the registry, accessing COM objects, changing NTFS file permissions, and other very windows specific tasks. In my mind, this immediately eliminates .NET or Mono from ever being a purely system independent platform. [Jeff Dillon]

No, it really just eliminates the possibility of using a COM API on another platform.  This will lead to the rise of ".NET Code - Pure Enough for Mono" , and that suits me just fine.

If Microsoft were to truly virtualize the machine, they would have marginalized their investment in the Windows platform. [Me]

I'm not trying to promote bad feelings.  I worked at Nike getting Java over RMI on Solarious to talk to DB2 on a Mainframe - I love all religions, remember:

Scott's Rule of Programming 0x303b: Don't Player-Hate, Integrate.

I'm just trying to remind folks that, by definition, write once, run anywhere, means writing to Least Common Denominator APIS (or introducing "if (!IsMacIE)" code - You may have seen that before on a Write Once technology called HTML/ECMAScript?)

The only difference is that Mono has seen fit to raise the level of the Least Common Denominator API to a reasonable level.  That, combined with common sense like there's no Registry on Linux means that apps like dasBlog can happily be ported to Mono.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Version Independent ProgIDs in the .NET Framework and C#

June 10, '04 Comments [0] Posted in Programming
Sponsored By

Generating a Version Independent ProgID in a C# Component that is being exposed as COM is apparently tantamount to Voodoo.  Nothing has been written about it either in Google Groups or in Google proper.  Sam Gentile in his wisdom confirmed to me that there is no [VersionIndependentProgID] attribute or the like. 

So, sounds like I'll need it manually in my own "DllRegisterServer" functions:

[ComRegisterFunctionAttribute]
public static void myDllRegisterServer(string registrationLogic) {
   // perform my logic 
   Trace.WriteLine( "Registration is occuring ..." );

}

[ComUnregisterFunctionAttribute]
public static void myDllUnregisterServer(string registrationLogic) {
    // perform my logic
    Trace.WriteLine( "Dis-Un-registration is occuring ..." );
}

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.