Video: Mind Control Your Computer In C#

Earlier this month I spoke at NDC Oslo and presented "Mind Control Your Computer In C#". The session was recorded and it is available for download now.

You can watch all of the NDC 2012 sessions at http://vimeo.com/ndcoslo/videos.

Technorati Tags: ,,,

Currently rated 2.8 by 6 people

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

Posted by: guysmithferrier
Posted on: Wednesday, June 20, 2012 at 8:29 AM
Tags:
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

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.8 by 19 people

  • Currently 2.789474/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.1 by 9 people

  • Currently 3.111111/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.8 by 8 people

  • Currently 3.75/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.3 by 4 people

  • Currently 3.25/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

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.7 by 3 people

  • Currently 3.666667/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

DDD South West 3 Sticker Photo Competition – Win a Kinect

Going to DDD South West 3 on Saturday ? In your attendee bag you will find an "I Was There" sticker. We are running a competition to find the best photo of a DDD South West 3 sticker stuck on to something. Travelling somewhere ? Take the sticker with you and photograph the sticker stuck on a famous place. Going to DDD Sydney on 3rd July ? Take the sticker with you and photograph it stuck on a DDD Sydney banner. Here's what you need to know:-

  • You must be a DDD South West 3 attendee.
  • Either Tweet your photo using the hashtag #dddswpic or email it to admin at dddsouthwest.com.
  • The competition closes at midnight (GMT) on Sunday 31st July 2011.
  • The judges decision is final.
  • The winner will be notified by Friday 5th August 2011.
  • The winner will receive an XBox Kinect (postage paid inside the UK only).

Thanks to Microsoft for donating the Kinect to a very worthy cause.

Currently rated 5.0 by 2 people

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

Posted by: guysmithferrier
Posted on: Tuesday, June 07, 2011 at 2:27 PM
Tags:
Categories: DDD | Events
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

DDD South West 3 Speaker Room

Even if you are not a speaker you may be aware that most conferences have a Speaker Room. The purpose of a Speaker Room is a matter for some debate. Most speakers will explain to anyone naive enough to listen that it is absolutely essential that speakers have somewhere to go, away from the attendees so that they may prepare their session. Of course, this is simply a facade. It is nothing of the sort. Instead most people think that the Speaker Room is a place where speakers can hang out with other speakers safe in the knowledge that the attendees cannot just come up to them and ask them a question or engage them in conversation. At the first two DDD South Wests we did not provide a Speaker Room because DDD events are community events and having a place where speakers can hide from the very people who have come there to meet them is anti-community. Instead we provided counselling services and darkened rooms where speakers could retire if an attendee had approached them, talked directly at them and even touched them in the guise of "shaking hands" (I'll stop now as speakers of a more nervous persuasion might stop reading). But for DDD South West 3 we are going to do something different. For DDD South West 3 we are going to use a Speaker Room for the one true purpose which all Speaker Rooms should be used for: to meet the speakers. Room 3Q83 is the Speakers Room at DDD South West 3. Speakers will go there specifically to talk to attendees. We encourage all attendees to go there to and avail themselves of the speakers therein. Also we might put some chocolate bars in that room.

One final point of note: we have reached an agreement with all conference organisers the whole world over that from here on all Speaker Rooms will be places where you can go and meet speakers and we would encourage you to forcefully resist security staff everywhere and stand up for your rights as attendees to engage speakers in conversations wherever they may be.

Currently rated 5.0 by 3 people

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

Posted by: guysmithferrier
Posted on: Monday, June 06, 2011 at 4:58 PM
Tags:
Categories: DDD | Events
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

DDD South West 3 Mobile Phone Apps

DDD South West 3 (Saturday 11th June 2011) is blessed in having not one but two apps for mobile phones.

  • For Windows Phone 7 you can download the free app (including the agenda) from the MarketPlace on your phone. Search on "DDD". Thanks to Chris Myhill for his excellent creation and to Mike Hole for publishing it. (If you have downloaded the first version you need to do a refresh to get the agenda).
  • For Android, iOS, FireFox 4, IE 9 (not IE 8), Chrome 11 and Safari you can download the free app (including the agenda) from http://www.pocketddd.com/dddsw3. Thanks to Ross Scott for his excellent creation.
See you there.

Currently rated 3.0 by 2 people

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

Posted by: guysmithferrier
Posted on: Thursday, June 02, 2011 at 9:24 AM
Tags:
Categories: DDD | Events
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

DDD Scotland 4 Speaker Scores

Congratulations to Glen Mehn, the top speaker at DDD Scotland 4 for his session in the Alternative Track entitled "Beyond Hackdays/Weekends: Finding Problems To Solve". Thanks also to Andy Gibson not only for compiling all the feedback but also for releasing the top of the Speaker Board (below). Some conferences keep this information a secret and I am disappointed by this because I think great speakers deserve recognition for their presentations (we also list the top speakers at DDD South West).

Speaker Track Slot Responses Average
Glen Mehn F 4 9 4.74
Guy Smith-Ferrier D 2 15 4.62
Paul Stack B 4 28 4.60
Nial Merrigan B 2 33 4.52
Gary Short A 2 47 4.47
Phil Winstanley A 3 64 4.45
Kendall Miller A 1 49 4.42

The average score is the average of all questions except the question on meeting your expectations.

Currently rated 4.5 by 2 people

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

Posted by: guysmithferrier
Posted on: Tuesday, May 17, 2011 at 12:47 PM
Tags:
Categories: DDD | Events
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed