Five New FxCop Globalization Rules

I have updated the downloadable source code for my .NET Internationalization book. The Visual Studio 2012 source code is downloadable from here. In this update there are 5 new FxCop globalization rules:-

  • Do not convert to uppercase - This rule catches all uses of ToUpper. It can be considered a more severe version of FxCop's own "Specify CultureInfo" rule. If the conversion to uppercase is used to perform a case insensitive comparison then String.Compare should be used instead. If the conversion to uppercase is used to change user data then it would be better not to convert the user data at all.
  • Do not convert to lowercase - This rule catches all uses of ToLower. It serves the same purpose as the previous rule except that it catches ToLower instead of ToUpper.
  • Boolean.ToString() is not localizable - This rule catches all uses of Boolean.ToString(). The words "True" and "False" are specific to English and are therefore not localizable. This rule is similar to the existing "Enum.ToString() is not localizable" rule.
  • Identifiers should not be called FirstName - This rule catches fields and properties that are called FirstName (or a variation of FirstName). The term "first name" is a western naming convention and it does not accurately identify a name part (even in Europe some countries use Family Name / Given Name order). Use the term "Given Name" instead.
  • Identifiers should not be called LastName - This rule catches fields and properties that are called LastName (or a variation of LastName). The term "last name" is a western naming convention and it does not accurately identify a name part. Use the term "Family Name" instead.

In total the downloadable source code now contains 25 FxCop globalization and localization rules.

Technorati Tags: ,,,

Currently rated 3.2 by 40 people

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

Posted by: guysmithferrier
Posted on: Monday, April 22, 2013 at 6:04 PM
Tags:
Categories: Internationalization | .NET Internationalization Book
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

A ResourceManager Abstraction for Custom Resource Managers

Please help me.

Of all of the features I would like added to the .NET Framework the top of the list is an abstraction from System.Resources.ResourceManager so that anyone could make use of Custom Resource Managers as an alternative to the .NET Framework's venerable .resx ResourceManager. It is relatively easy to add your own custom resource managers but what is more difficult is to ensure that those custom resource managers get used instead of System.Resources.ResourceManager.

So I am asking for your help. Microsoft reads and watches User Voice. In particular they pay attention to feature requests that get voted for. Please vote for Provide a ResourceManager abstraction mechanism and get this feature into the product.

Thank you.

Currently rated 3.2 by 42 people

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

Posted by: guysmithferrier
Posted on: Monday, April 22, 2013 at 10:25 AM
Tags:
Categories: Internationalization
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

NCLDR 0.0.0.7-Alpha Release Notes

Last month I announced the alpha of NCLDR. Since then there have been a few updates to improve the overall NCLDR experience. The current release is 0.0.0.7-Alpha and this blog post lists the changes since version 0.0.0.1-Alpha.

Features

  • Added support for genitive month names
  • Added IndexExemplarCharacters property to the Characters class
  • Added NCldrBinaryFileDataSource to replace NCldrLoader (NCldrLoader exists for backwards compatibility for a few releases). In addition static members have been changed to instance members. Save and Exists methods have been added together with an NCldrDataFilename property.
  • Added new INCldrFileDataSource implementations (NCldrJsonFileDataSource and NCldrXmlFileDataSource) to allow the NCLDR data file to be saved as JSON or XML as an alternative to the binary format
  • Added support for CLDR release 23 (keeping backwards compatibility with release 22.1)
  • Added new TimeData and RegionHour types and corresponding properties to support the new TimeData type in CLDR release 23
  • Added CashRounding to CurrencyFraction inline with CLDR Release 23
  • The Calendar.CalendarDisplayNames property has been removed and replaced
    with Dates.CalendarDisplayNames to coincide with the corresponding change in CLDR release 23
  • Various refactorings to allow NCLDR to be compiled for Windows Phone (replacement of Hashtables with Lists, use of compatible string.Compare overload)
  • Added IsDataLoaded property to NCldr class
  • Changed TextBoxes in NCldrExplorer to be Right To Left when showing RTL data
  • Added support for CLDR Layout (including Orientation, Right-To-Left)
  • Removed hardwired reference to Core in CLDR path (if you have downloaded to a folder called Core you will now need to include this in your path)
  • Added a checkbox to NCldrBuilderGui to allow CalendarPreferences to be set
  • Added a FolderBrowserDialog to NCldrBuilderGui to allow path to be set easily
  • Removed the CultureInfo GetCurrency and GetCurrencyPeriod extension methods as their functionality is available through the GetNumbers extension method
  • Added GetCasing, GetCurrencyPeriods, GetDelimiters, GetLayout, GetListPatterns,
    GetNumbers, GetUnitPatternSets, GetRuleBasedNumberFormatting, GetGenderList, GetLikelySubTag, GetRegionInformation, GetYes, GetYesShort, GetNo, GetNoShort extension methods to CultureInfo
  • Added GetRegionInformation extension method to RegionInfo
  • Added a -DisplayMode parameter to NCldrBuilderCmd which supports Verbose and Diagnostics options

Bug fixes

  • Fixed a bug in Calendars ShortestDayNames and ShortestMonthNames properties where the properties always returned null
  • Fixed a bug in NCldrCustomCulture to allow NCLDR to be used with seed cultures
  • Fixed a bug in NCldrExplorer when the NCLDR data was not loaded and the tab changed then an exception would be thrown
  • Fixed a bug in NCldrBuilderGui where CalendarPreferences was not being saved/loaded
  • Fixed a bug in NCldrBuilderGui where IncludeCultures and ExcludeCultures were not being loaded
  • Ensured that zero element arrays are not written to NCLDR.dat
  • Fixed a bug where the culture identifiers in LikelySubTags were being stored as CLDR identifiers instead of NCLDR identifiers
  • Fixed a bug where extension methods didn't work with the Invariant culture
  • Fixed a bug in RegionInfo extension methods where the region was incorrectly being identified by its name instead of its two letter ISO name

Currently rated 3.0 by 45 people

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

Posted by: guysmithferrier
Posted on: Monday, April 15, 2013 at 4:08 PM
Tags:
Categories: NCLDR
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (1) | Post RSSRSS comment feed

Videos: How to Give Great Presentations

A couple of years ago I created 8 free videos for Microsoft's User Group Support Services on the subject of How To Give Great Presentations. These videos became unavailable when the UGSS site was replaced with Microsoft's Technical Communities. Well now they're back. You can download them from here. The 8 videos are:-

  1. Introduction (6 minutes 23 seconds)
  2. Choosing The Right Presentation (8 minutes 30 seconds)
  3. How To Explain Absolutely Anything (8 minutes 51 seconds)
  4. Planning Your Presentation (22 minutes 52 seconds)
  5. Nervousness And How To Overcome It (13 minutes 7 seconds)
  6. How To Give Great Demos (26 minutes 9 seconds)
  7. Preparing Your Laptop (19 minutes 21 seconds)
  8. Presenting Your Presentation (35 minutes 39 seconds)

In addition you can read the paper upon which the videos are based.

Technorati Tags: ,

Currently rated 3.0 by 44 people

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

Posted by: GuySmithFerrier
Posted on: Monday, April 15, 2013 at 11:45 AM
Categories: Presentation Skills
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Statistics for DDD South West 1 to 4

Each year after DDD South West we have compiled statistics about the event. After DDD South West 4 we never really found the time to update the website but rather than let the statistics just disappear I thought a few people might find it interesting to know how it compared with previous events:-

  DDD SW1 DDD SW2 DDD SW3 DDD SW4
People registered on site 313 642 908 1201
Cancellations 36 62 77 119
Registered attendees (after cancellations) 227 309 331 372
Actual Attendees 158 218 257 288
Percentage Drop Out Rate 30% 29% 22% 23%
Unregistered UWE Students 0 3 3 0
Event Feedback Forms returned 111 152 173 173
Percentage of Event Feedback Forms returned 70% 70% 67% 60%
Session Feedback Forms returned 591 887 1082 1075
Percentage of Session Feedback Forms returned 88% 85% 87% 86%
Geek Dinner Registrations 30 47 54 60
Geek Dinner Attendees 27 45 59 42

As you can see DDD South West 4 had the highest attendance of any DDD South West to date which was very rewarding. DDD South West 4 was fully booked within 4 hours of registration opening and the wait list was full within 24 hours. You can also see that the number of cancellations reached a massive all time high of 119 people. This seems to confirm our theory that people register for DDD events without having any real conviction of whether they will attend simply because they want the option of attending if they decide they will go and it is easier to give up a place than to get a place through the wait list. This raises the age old debate of whether to charge a nominal fee (e.g. 5 UKP) in order to discourage this practice.

Another great statistic from DDD South West 4 was the geek dinner attendance (which was more strictly controlled than for the previous year on the grounds that the venue was clear that they would not accept more than our allocated number).

If you came along to any of these DDD South West events we hope you had a fabulous time.

Technorati Tags: ,

Currently rated 3.1 by 50 people

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

Posted by: guysmithferrier
Posted on: Monday, April 15, 2013 at 10:52 AM
Tags:
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed

Transfer of Ownership of DDD South West Limited

Yesterday, I appointed two new directors of DDD South West Limited, Martyn Fewtrell and Rob Bracken. At the same time I resigned as the then sole director of DDD South West Limited. Martyn Fewtrell has been on the DDD South West team every year since its inception and Rob Bracken joined the team with Rachel Clements for DDD South West 4.

To recap: DDD South West Limited is a "limited with guarantors" company. This means that although it can make a profit it is unable to distribute its profits because it is not allowed to have shares or shareholders. I chose this model for the legal DDD South West entity to get as close to a "not for profit" organisation as possible without having to go through the considerable hurdles of actually being a "not for profit" organisation.

The bank account (complete with a reasonable balance) will be transferred shortly.

As I have mentioned previously the time and effort involved in creating DDD South West each year is significant and it is apparent to me that I want to spend more time on technology and this community activity has inhibited this desire in recent years. As such it makes sense to transfer DDD South West to the community people who can find the time and energy to continue to this great event for years to come. A new leadership means new approaches and new experiments. Some experiments will succeed and some won't but then this was equally true for the first four DDD South West events. Please welcome the new leadership and the new direction and support them in the same fabulous way the community supported the first four years.

Currently rated 3.1 by 58 people

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

Posted by: guysmithferrier
Posted on: Tuesday, April 02, 2013 at 4:51 PM
Actions: E-mail | Kick it! | DZone it! | del.icio.us
Post Information: Permalink | Comments (0) | Post RSSRSS comment feed