Add Satellite Assemblies To An Assembly For Any Culture

Since the very first release of the .NET Framework we have been able to build satellite assemblies for (almost) any culture. The critical factor though is that in order to do this either the original assembly must not have been signed or else you must be able to sign your satellite assembly with the same key. Clearly Microsoft will not give anyone the key they use to sign their assemblies so although Microsoft release various language versions of their products we, as consumers of those products, are unable to add our own language versions. This includes but is not limited to the .NET Framework itself, ASP.NET MVC and Silverlight.

I would like your help. I would like to optionally remove the restrictions on loading satellite assemblies. At present the satellite assembly must be signed with the same key as its parent assembly. I would like Microsoft to add a mechanism to the CLR which would optionally allow the author of the assembly to relax the rules on loading satellite assemblies such that it checks that the satellite assembly matches its parent in all criteria *except* for the key with which it is signed.

In this were possible then communities would be able to add support for their own language without waiting for Microsoft to support them. Close to home, this would mean that we could have a Welsh version of the .NET Framework (or ASP.NET MVC). This desire isn't limited solely to getting support for Welsh; the feature would work for all languages (there are ~7000 languages in the world and the .NET Framework 4 supports 23 of them so this affects a community near you).

So here's where I would like your help. If you think this is a useful feature please vote for it on User Voice here.

Thanks.

Currently rated 2.7 by 6 people

  • Currently 2.666667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: guysmithferrier
Posted on: Tuesday, March 13, 2012 at 3:25 PM
Tags:
Categories: Internationalization
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

What's New In The .NET Internationalization Source Code

I wrote a book called .NET Internationalization back in 2006. There is a whole bunch of source code (examples and reusable library code) that accompanies the book that is available for download (you don't need to buy the book to get the source code). I have been keeping the source code up to date with various changes since it was first released and I have just uploaded the most recent version. This blog post describes what's new.

Custom Cultures

I added an example of a new custom culture for Spanish (Chile) Unidad de Fomento, es-CL-CLF, to support the UDF currency in Chile.

Resource Code Generators

I added 3 new code generators for Visual Studio:-

  • JavaScriptResourceCodeGenerator - Creates .js files (JavaScript object literals) from .resx files
  • JavaScriptAddParentsResourceCodeGenerator - Creates .js files (JavaScript object literals) from .resx files, adds all parents except invariant
  • JavaScriptAddAllParentsResourceCodeGenerator - Creates .js files (JavaScript object literals) from .resx files, adds all parents including invariant

Machine Translation

The PseudoTranslator has a new Boolean property, ExcludeMarkup (default is true), where characters that are markup tags (e.g. "<strong>") are not pseudo translated.

The GoogleTranslator is now deprecated because the Google v1 translation API was deprecated by Google in December 2010.

I added Google2Translator for the Google v2 translation API. This is a paid service. See http://code.google.com/apis/language/translate/v2/getting_started.html for details.

Resource Administrator

You can now specify a value for PseudoTranslationCultureInfoName in the App.Config which allows you to change the name of the culture used for pseudo translation.

The GoogleTranslator is no longer used.

The Google2Translator is used if a value for "Google2TranslatorApplicationKey" is set in the App.config file.

If either the MicrosoftTranslator or the Google2Translator are used the remaining translators are disabled (because the Microsoft and Google translators are very reliable).

I fixed a bug where comments were not being preserved in neutral and specific resources when automatic translation was on.

The FileBasedResourcesGovernor now has a new property, Extension, which is the file extension of the files (e.g. ".resx").

ResourceGovernor.ReintegrateResourceSet has various bugs fixed.

Globalization FxCop Rules

I added 2 new rules:-

  • DoNotConcatenateLocalizableStrings - identifies code where resource strings are concatenated (use string parameters instead)
  • ResourceEntryIsNotUsed - identifies properties in Strongly Typed Resource Classes that are not used

Note that the ResourceEntryIsNotUsed class requires the Strongly Typed Resource

Class code to be manually modified so that the CompilerGeneratedAttribute is commented out.

The Translator
I added two new utilities:-

  • ReintegrateResources - a command line utility that intelligently reintegrates resources being sent back from the translator
  • ResourcePackager - a command line utility that ZIPs and unZIPs .resx files being sent to/from the translator

Enjoy.

Technorati Tags: ,

Currently rated 3.0 by 5 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: guysmithferrier
Posted on: Monday, March 12, 2012 at 4:19 PM
Tags:
Categories: .NET Internationalization Book | Internationalization
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

Internationalizing ASP.NET MVC Around The UK

I will be presenting "Internationalizing ASP.NET MVC" (aka "How To Achieve World(-Ready) Domination In ASP.NET MVC") at the following venues over the next few months:-

Here's the session abstract:-

So you've written your ASP.NET MVC application and you want it to work in another language ? Then this session is for you. World-Readiness is all of the work that a developer needs to do to globalize an application and make it localizable (i.e. capable of being localized). In this session we will cover localizing HTML and HTML Helpers, localizing and globalizing Data Annotations, the importance of Resource Manager abstraction, localizing and globalizing JavaScript and localizing URLs. No previous experience of ASP.NET localization is required.

Do come along and bring your internationalization problems and questions. This is my favourite subject so getting me talking on it isn't difficult. It's getting me to shut up that's special.

Currently rated 3.3 by 6 people

  • Currently 3.333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: guysmithferrier
Posted on: Tuesday, February 21, 2012 at 3:43 PM
Tags:
Categories: Internationalization | Events
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

Mind Control Your Computer on .NET Rocks!

I recently recorded an episode of .NET Rocks (episode 702) on the subject of the Emotiv EPOC Neuroheadset. The episode covers the headset, the technology behind it, the Expressiv suite (facial detection), the Affectiv suite (detection of emotional state), the Cognitiv suite (detection of conscious thought), along with the applications for this technology including gaming market, applications for the physically impaired and the research potential.

I have to say that recording it was a whole load of fun (although I suspect it was difficult for Carl and Richard to shut me up as I love to go on and on when I'm really into something).

Thanks again to Carl Franklin and Richard Campbell for inviting me on to the show. And congratulations on the very many hundreds of episodes you have created. Looking forward to show #1000.

Currently rated 3.0 by 3 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: guysmithferrier
Posted on: Tuesday, November 01, 2011 at 7:09 PM
Tags:
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Announcing DDD South West 4

The DDD South West Team is delighted to announce that DDD South West 4 will be held at UWE, Bristol, on Saturday 26th May 2012. There will be all the usual DDD South West fun and games along with the usual 4 regular technical tracks, the return of the "+1" Repeat Track (back by popular demand), the Balloon Debate and the Getting Started In .NET Track. There will be a call for speakers and as usual we will be looking for lunch time grok talks from new speakers and micro-presentations from experienced speakers.

Note that this weekend is not a bank holiday weekend. The usual May bank holiday has been put back one week to coincide with the Queen's Golden Jubilee.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: GuySmithFerrier
Posted on: Tuesday, November 01, 2011 at 5:08 PM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (5) | Post RSSRSS comment feed

DDD South West 3 Sticker Photo Competition Winner

At DDD South West 3 we ran a competition to find the best photo of an "I Was There" sticker. The competition is closed now and out of the 28 entries The DDD South West Team chose this entry from @surlydev as the winner:-

Congratulations and tanks for the excellent pic. Honourable mentions (but no actual prize) go to John Albrecht for the buoy on Normandy beach on D Day:-

And to Paul Stack for this Welcome sign in Ireland:-

And finally to this PhotoShopped (so we couldn't include it) picture from @surlydev of one of our speakers:-

Thanks to everyone for all of your photos. See you at DDD South West 4.

Currently rated 3.0 by 2 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: guysmithferrier
Posted on: Tuesday, August 09, 2011 at 9:03 PM
Tags:
Categories: DDD | Events
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (3) | Post RSSRSS comment feed

Thanks, Jose

DDD South West is run by a team of people. It has to be because it takes a whole heap of work. We were very pleased with the result of DDD South West 3 and now after 3 years and 3 DDD South Wests Jose Simas, our graphics and printing wizard, has decided to move on.

For those of you who don't know Jose he is the quiet one, the George Harrison of DDD South West, but he has been fabulous for the last 3 years - balanced, incredibly efficient and superb with graphics. Thanks, Jose, you were excellent and we really appreciate all of the hard work you put in over the last 3 years.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: GuySmithFerrier
Posted on: Monday, August 08, 2011 at 9:18 PM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

DDD South West 3 On The Day

DDD South West 3 was held on Saturday 11th June 2011 in Bristol and I think it went fairly well. There were 257 attendees, 6 simultaneous tracks and 25 speakers. You can see the full set of statistics here. The day went mostly without problems. We learnt some lessons from last year and the queues for food and drink were much shorter this time and the wifi worked much better (but not perfectly). The feedback we received was invaluable as always. For the question on "What did you like most about DDD South West 3 ?" the top answers were:-

  • the food
  • the speakers and the sessions
  • it was free

For the questions on "What did you like least about DDD South West 3 ?" the top answers were:-

  • some rooms were hot and did not have air-conditioning
  • the food
  • the wifi

Another statistic I find interesting is that 27% of attendees had not been to a DDD event previously. This means after 3 years of DDD South West (not to mention the 9 DDD Events in Reading) we are still reaching developers that are new to this format.

The last statistic I think is worth highlight is the increase in word-of-mouth recommendations over the last 3 years. In the question "How did you find out about DDD South West ?" the answer "Friend/Colleague" was 11% at DDD South West 1, 16% at DDD South West 2 and now 26% at DDD South West 3. That's a lot of people spreading a lot of good information on our behalf - thanks, everyone!

Like previous years the highlight of the day was the speakers and the quality of their sessions. I would like to say a huge thanks to all of our speakers and congratulations to our Top Speakers By Knowledge of Subject:-

  1. Steve Sanderson (Getting Started In ASP.NET MVC) 8.88
  2. Richard Campbell (Why Web Performance Matters) 8.85
  3. Richard Parker (Getting Started In The .NET Framework) 8.56

and to our Top Speakers By Presentation Skills:-

  1. Richard Campbell (Why Web Performance Matters) 8.73
  2. Richard Parker (Getting Started In The .NET Framework) 8.33
  3. Steve Sanderson (Getting Started In ASP.NET MVC) 8.30

One of the features of 'regional' DDDs is that they allow the different DDD teams to innovate and try out new ideas. One of the ideas we tried out at DDD South West 3 was lunchtime micro-presentations. It is a long running theme of DDD events that the lunchtime is spent listening to grok talks (10 minute presentations). We followed this approach at DDD South West 3 as we did at previous DDD South West events but this year we asked presenters to give micro-presentations instead of grok talks. Micro-presentations (aka pecha kucha, aka 20/20, aka lightning talks) are 20 slides of 20 seconds each. They are a particularly tough presentation format but I think it can be safely said that our speakers took the challenge and were superb. You can watch videos (slides with the live audio) of these presentations:-

Another idea we tried out was the "+1" Repeat Track wherein the most popular sessions get repeated. This is an attempt to mitigate the 'problem' of having so many great sessions. The repeated sessions were determined by the public voting on which sessions to repeat after seeing the agenda for the other 5 tracks. The feedback on this track was that it was a good idea and much welcomed. Thanks to all of the speakers who repeated their sessions (not only for repeating them but also for missing out on seeing other presenters sessions twice).

Yet another idea was the re-interpretation of the Speaker Room. In general the idea that attendees had a place where they could find the speakers and could sit and chat worked quite well. I think we still need to do a bit more in terms of breaking down attendees' resistance that speakers 'should not be disturbed' but it is something to work on.

At DDD South West 2 we introduced the "Getting Started In .NET" track which was an attempt to help non-.NET developers get into the community and get started in .NET for free. It was back again this year and like last year it was well attended and well liked. Thanks to the trainers who provided their services for free again.

You can catch up with what others have blogged about DDD South West 3 below:-

As I am sure you know DDD South West is a free event and I am sure people have heard me say many times before "free means someone else pays". And specifically this means our fabulous sponsors. Thank you to our platinum sponsors AspDotNetStoreFront, UWE, Microsoft and Telerik and to all of the sponsors who made this event possible and who gave us such great swag to give away to attendees (60+ quality pieces of swag valued at over £9000). And the swag fest isn't over yet. If you attended DDD South West 3 you will have found in your attendee bag a DDD South West 3 "I Was There" sticker. We are running a competition to find the best photo of this sticker stuck somewhere. The winner wins a Kinect (thanks, Microsoft). Details are here. The competition ends at midnight on 31st July 2011.

So finally I would like to thank the army of people who made this event possible: room monitors, helpers, speakers, sponsors, catering staff, attendees, everyone. One of my enduring memories of DDD South West 3 and previous DDD South West events is the large number of people who came up to me throughout the whole day and said "can I do anything to help ?". The UK .NET community does indeed rock.

And very finally DDD South west is run by a team of people: Martyn Fewtrell, Chris Myhill, Ross Scott, Jose Simas and myself. A massive thanks to my team mates who don't stand centre stage but nonetheless do a ton of work that doesn't typically get seen but has to happen somehow.

You can see photos of DDD South West 3 from Jose Simas here and Craig Murphy here.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: GuySmithFerrier
Posted on: Monday, July 11, 2011 at 3:05 PM
Categories: DDD | Events
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (2) | Post RSSRSS comment feed

Emotiv Scan Of Emotions Whilst Listening To Music

Recently I have been showing the Emotiv EPOC neuroheadset in a presentation called "Mind Control Your Computer In C#". The neuroheadset scans brain waves and interprets facial expressions (Expressiv), emotions (Affectiv) and cognitive thought (Cognitiv). During my presentation I show all three of these but demonstrating emotions live is quite difficult because it is tough to force yourself to be interested or excited on demand. Listening to recorded music doesn't produce a significant emotional response from me either. So I seized an opportunity at the weekend. I attended a music festival and recorded the Affectiv output whilst listening to two different types of music.

The first is a slow blues by Patrick Smet. I like slow blues and I like Patrick Smet's performances but you can see the effect that the slow blues has on me as the piece progresses. In particular watch the black line (Instantaneous Excitement) and the red line (Engagement/Boredom). After 2 minutes you will see a considerable drop and a stability in both lines. Also note that the red line starts around 0.8 and drops to around 0.6 or lower for most of the piece.

The second piece is a fast boogie by Big John Carter. I like fast boogie and I like Big John Carter's performances. Again watch the red and black lines. In particular notice them after about 1 minute 40 seconds. The red line (Engagement/Boredom) averages around 0.8 often peaking at 0.9. The black line (Instantaneous Excitement) frequently hits 1.0. Also note the plummeting of the black line at the end of the piece.

I found this experiment very interesting. Clearly it is not without its flaws. For example you can't see what I was looking at whilst I made this recording and this would have an effect on the fluctuating emotional levels. I also can't explain why my Frustration levels (the blue line) go up sometimes when I'm clearly enjoying the music.

Currently rated 3.0 by 1 people

  • Currently 3/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: GuySmithFerrier
Posted on: Wednesday, July 06, 2011 at 12:52 PM
Categories: Emotiv
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Mind Control Your Computer In C#

This coming Wednesday (22nd June 2011) and next Friday (1st July 2011) I will presenting a new session at VBUG Bristol and Fest '11 respectively:-

  • Mind Control Your Computer In C#
    No, really. This isn't some clever session title. I'm really talking about controlling your computer with your mind. I'm not making this stuff up. This is real. Today. You put on a headset, you use a C# SDK and you control your computer with your thoughts. Yes, you are reading this right - you mind control your computer. It is a reality and it is possible today. Once you've gotten over your disbelief consider the applications. Applications for the physically impaired alone are a whole revolution. Not to mention the possibilities for gaming. Want to be shocked and amazed ? Come and see this session.

This session uses the Emotiv EPOC neuroheadset to control a PC by thought. I am delighted that I live in a world where it is possible to do this and where it is within an individual's affordable price range.

Please note: for the record, this presentation is all about the Emotiv EPOC neuroheadset. I do not work for Emotiv, nor do I have any financial interest in this company or any of its associates. I present this subject solely because I am delighted that it is possible to do this.

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Posted by: GuySmithFerrier
Posted on: Monday, June 20, 2011 at 11:55 AM
Categories: Events
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (4) | Post RSSRSS comment feed