Thursday, July 31, 2008

I recently wanted to upgrade the BIOS on one of my PCs and I used the ASUS BIOS update Windows utility. 

I downloaded the latest BIOS and update tool from the ASUS Website then launched the update process.  After a few seconds, the tool reported an error so I tried to flash the previous BIOS version (that I saved earlier) but with the same result.  I ended up bricking the motherboard.  I then went to my local MicroBytes store and the first question the technician asked me was if I did the update from Windows.  Looks like it's very common problem using the ASUS Windows tool.  Yeah, great!

ASUS_BIOS_Bart.jpg

 

Thursday, July 31, 2008 11:25:44 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

If you were thinking about sending sessions abstracts fro DevTeach 2008 Montreal, hurry!  The cut off is today!

More info here:
http://www.devteach.com/TechChair.aspx

Thursday, July 31, 2008 5:59:31 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Tuesday, July 29, 2008

I just upgraded from dasBlog 1.9.7 to the latest version (2.1) and everything seams to work fine.  Here's how I did it:

  1. Downloaded the latest version from www.codeplex.com/dasblog
  2. Extracted the Zip file to a temp directory
  3. Copied everything over the existing folder except these sub folders: Content, SiteConfig, Logs & Themes

That's it!

 

Tuesday, July 29, 2008 6:08:51 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Wednesday, July 23, 2008

The problem
You have SQL Servers for each of your environments (development, test, pre-prod, production) and in each one, the table names are different.  In fact, it’s not the table names that are different but the schema names but since the schema name is part of the table name, it must be specified.
Ex : dev.ZeTable et prod.ZeTable

Easy to solve, right?  Just put the schema value in the config file and do a simple concatenation at runtime.  Well, it’s not as easy as it seams because the table name is stored in an attribute of the partial class generated by the LINQ to SQL designer and Microsoft didn’t provide a way or method to change it at runtime.

[Table(Name="dev.ZeTable")]
public partial class TheTable

Solution
The solution is to dynamically load at runtime a mapping specific for each environment.  Here’s how to do it:

Initial Mapping
Use the LINQ to SQL designer to create the initial mapping.  The .dbml file will act as the starting point for our specialized mappings.

SqlMetal
Next, use the SqlMetal.exe tool to generate a mapping file but instead of pointing the tool to the database and redo all our customization in XML, the trick is to point it to the .dbml file we created earlier using the LINQ to SQL designer.  This way, all our initial customizations are preserved.  Nice!

From the Visual Studio 2008 Command Prompt, invoque SqlMetal like this :
C:\>SqlMetal /map:"MyApp.PROD.map" "C:\Visual Studio 2008\Projects\MyDataClasses.dbml" /code:"test.cs"
Microsoft (R) Database Mapping Generator 2008 version 1.00.21022
for Microsoft (R) .NET Framework version 3.5
Copyright (C) Microsoft Corporation. All rights reserved.

SqlMetal.exe will generate a C# or VB class.  We won’t use it so you can delete it. 

Next, open the mapping file and change the name of the tables to reflect the right schema:
<Table Name="prod.ZeTable" Member="TheTables">

A good practice might be to include the schema name in the mapping file name:
Ex : MyApp.PROD.map

DataContext
Next, we need to dynamically load the mappings at runtime by specifying a connection string and the mapping info in the DataContext constructor.  The Microsoft’s documentation is located here :
http://msdn.microsoft.com/en-us/library/bb534562.aspx

You can store that info in the config file and load it dynamically:
  <appSettings>
    <add key="MyAppConnectionString" value=" MyAppDev" />
    <add key="MyAppLinqMappings" value="c:\MyApp.DEV.map" />
  </appSettings>
  <connectionStrings>
    <add name="MyAppDev"
      connectionString="Data Source=MyDevServer;Initial Catalog=MyDatabase;Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>

//Read the ConnectionStrings from the config file
TheConnectionString = ConfigurationManager.ConnectionStrings[ConfigurationManager.AppSettings.Get("MyAppConnectionString")].ConnectionString;

//Read the LINQ mapping and store it in memory
System.Data.Linq.Mapping.XmlMappingSource TheLinqMappings = System.Data.Linq.Mapping.XmlMappingSource.FromReader(XmlReader.Create(ConfigurationManager.AppSettings.Get("MyAppnLinqMappings")));

Next, feed the DataContext’s constructor :

TheDataClassesDataContext ctx = new TheDataClassesDataContext(TheConnectionString, TheLinqMappings)
That's it!

Wednesday, July 23, 2008 3:04:03 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

I was looking to replace my old wireless presentation remote (PowerPoint clicker) so I asked presenter extraordinaire and PowerPoint guru Etienne "E.T." Tremblay for a recommendation.  He said that the best device on the market is the Logitech 2.4 GHz Cordless Presenter so I quickly ordered one from TigerDirect to use it for my talks in Paris.

Verdict: 2 thumbs up!

Here are a few features that I like:

  • No drivers
  • 50’ range
  • Responsive
  • The receiver is stored in the device
  • 5 minutes increment timer
  • Vibrates at T -10 minutes and when timer reaches 0
  • Not cluttered with dozen of buttons and features
  • Feels “right” in the hand with the buttons placed at the right place

http://www.logitech.com/index.cfm/notebook_products/presenters/devices/175&cl=us,en

 

Wednesday, July 23, 2008 6:15:45 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Tuesday, July 22, 2008

While in Paris for speaking at the Université du SI conference, Mario Cardinal and I went podcast crazy.  During the week, we recorded 8 podcasts with French MVPs and even a bonus one with a French software engineer working for Microsoft Ireland. 

GUILLAUME BELMAS, MVP Team System, Exakis
CLERET ARNAUD, MVP BizTalk, Exakis
GREGORY RENARD Regional Director & MVP ASP.NET, Wygwam
ERIC GROISE, Octo
MATTHIEU MEZIL, MVP C#, Winwise
FLORENT SANTIN, MVP Team System, Winwise
MICHEL PERFETTI, MVP C#, Winwise
FABRICE MARGUERIE, MVP C#, Metasapiens, author of Linq in Action
VINCENT VERGONJEANNE, Microsoft Ireland

The first one is already online.  Check for the others throughout the fall.
http://www.visualstudiotalkshow.com

BTW, a big Merci Beaucoup to each one of you.

 

Tuesday, July 22, 2008 8:25:14 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

I was planning to get a Zune 80GB when I saw that Microsoft is offering free engraving (+ shipping) thru September 15th.  Being a Kraftwerk fan, I couldn't resist ordering this design:

http://zuneoriginals.net

 

Tuesday, July 22, 2008 7:59:48 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

Accueil

Eric Groise: L’avenir est aux technologies vectorielles

Nous discutons avec Eric Groise qu'il est temps de quitter le Win32, le monde des boutons et fenêtres carrés ou il y a trop de texte et pas assez de visuel. Mort au « bitmap » et vive le vectoriel.

Eric Groise est spécialisé sur les problématiques liées à l’utilisabilité des interfaces homme machine . Depuis plus de 10 ans, Eric aide les équipes de développement à améliorer les applications qu’ils produisent : architecture, technologies et interface homme machine. Convaincu qu’il reste un grand chemin à parcourir avant que les applications en entreprises atteignent l’ergonomie des applications Apple, il s’occupe du centre de compétence GUI d’OCTO Technology. Eric fut également Microsoft Regional Director pour avoir été parmi les premiers à supporter activement la plateforme .NET de laquelle il est toujours un fervent admirateur.

Télécharger l'émission

Si vous désirez un accès direct au fichier audio en format MP3 ou Windows Media (WMA), nous vous invitons à télécharger le fichier en utilisant un des boutons ci-dessous.

         

Si vous désirez utiliser le feed RSS pour télécharger l'émission, nous vous invitons à vous abonnez en utilisant le bouton ci-dessous.

Si vous désirez utiliser le répertoire iTunes Podcast pour télécharger l'émission, nous vous encourageons à vous abonnez en utilisant le bouton ci-dessous.

Tuesday, July 22, 2008 6:10:32 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

Anyone interested in the business of social networking Websites should take a look at Technology Review Magazine's August issue.  It's a special issue about social networking and the future of the Web.  Being published by the MIT, you would expect more then just a list of cool social network sites à la PC World.  Well, the magazine deliver the goods.  Not only you get a good assessment of the current situation, you get to understand the business of it (or lack of).  They also explain what Facebook runs on.

BTW, you don't have to rush to your newsstand to get a copy because you can read it online for free.

So, will it burst?

Tuesday, July 22, 2008 6:08:48 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Sunday, July 20, 2008

The first ALT.NET Canadian conference will take place on August 15-17 2008 in Calgary.

Check all the details here:
http://www.altnetconfcanada.com/home/index.castle

Sunday, July 20, 2008 7:37:14 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Monday, June 23, 2008

It's been a while since I had to use Fiddler with Cassini, the Web server included with Visual Studio.  Fiddler is a HTTP Debugging Proxy which logs all HTTP traffic between your computer and the Internet.  It is free and it is a must have tool.

However, to use it with Cassini, you must do one little simple thing: in the URL of your browser, you must add a dot (.) after localhost.  Something like http://localhost.:5555/Default.aspx
Notice
the dot: http://localhost.:5555/Default.aspx

Get Fiddler here: http://www.fiddlertool.com

Monday, June 23, 2008 6:13:26 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Wednesday, May 28, 2008

I'm a fan of Cliff Atkinson's book Beyond Bullet Points and in my presentations, I tried to use bullet points to a minimum.  What? PowerPoint presentations without bullet points?  Intrigued?  Cliff is doing a free Webcast for Microsoft on Thursday June 12th.

quote.png
Microsoft Office System Webcast: How to Create a 15-Minute Presentation (with Graphics!) in One Hour (Level 300)

If you are in a time crunch and have to get a presentation done, you need an approach that will get you results quickly. Join us for this advanced-level webcast with bestselling author Cliff Atkinson, and learn the tips and tricks you need to complete a Microsoft Office PowerPoint 2007 presentation in record time. As the clock ticks down from 60 to zero minutes, see how you can use Cliff's book Beyond Bullet Points (Microsoft Press, 2007) to structure your story, identify your key points, and create the slides you need to get amazing results.

Presenter: Cliff Atkinson, Communications Consultant and Author, BBP Media, LLC

Cliff Atkinson is a leading authority on improving communications across organizations. He is a popular keynote speaker, writer, and independent management consultant for leading attorneys and companies ranking in the top five of the Fortune 500. He is president of Sociable Media in Los Angeles, teaches at the University of California, Los Angeles (UCLA) Extension, is a senior contributor for the MarketingProfs newsletter, and writes the blog Beyond Bullets. Cliff is also the author of Beyond Bullet Points: Using Microsoft PowerPoint to Create Presentations That Inform, Motivate, and Inspire (Microsoft Press, 2005).
unquote.png

Register for the Webcast here:
http://msevents.microsoft.com/CUI/WebCastEventDetails.aspx?EventID=1032378660&EventCategory=4&culture=en-US&CountryCode=US

Bbp_cover_200

Wednesday, May 28, 2008 8:39:26 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

I have been using ZoomIt for a while now.  It's a great and free presenter tool that let you zoom on screen areas while demoing stuff but there's a new pretender to the throne: NLarge.  What's so different about NLarge?  Well, it provides you with the same features as ZoomIt and it's also free but it's using WPF for smooth zoom effects.  Cool!

Wednesday, May 28, 2008 8:14:44 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

Registration for PDC 2008 is now open:
http://www.microsoftpdc.com/

PDC2008.jpg

Wednesday, May 28, 2008 11:22:58 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Tuesday, May 27, 2008

Everybody knows Carl Franklin from the .NET Rocks world famous podcast.  You may also saw him speak at conferences but do you know that he's an accomplished rock musician?  And that he plays multi instruments?

Here's his latest one, a cover of Steve Miller's Jungle Love:
http://www.intellectualhedonism.com/2008/05/27/JungleLoveAnotherOnemanbandCoverTune.aspx

Tuesday, May 27, 2008 5:57:32 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 
Sunday, May 25, 2008

logoGUVSM.gif

More info at www.guvsm.net

Team System Version Control: 0-100km 
Tuesday, May 27, 2008 at 6:15 PM 
Conférencier: Barry Gervin, Regional Director Toronto et MVP Team System
Note: Cette présentation sera en anglais

barry

Version Control is a natural place to start with Team System. So with that in mind, why not spend an evening with Barry Gervin, MS Regional Director and VSTS MVP as he tells stories of failure and success from his experiences helping companies migrate to Team System. Along the way he will share his ideas for good version control hygiene, techniques for handling project to project dependencies, branching & merging scenarios, evil VSTS “gotcha’s”, inner workings, working offline, and check-in policies. Come to this event and you’ll learn the answers to mysterious questions such as: “what is a workspace anyway?”, “will the Leafs ever win the cup again?” , “how come my get latest didn’t?”, and “who the heck wrote that line code?”

Barry Gervin is a Principal Consultant with ObjectSharp Consulting. Barry, a technical leader with over 15 years experience, has helped many development teams architect and build large-scale mission critical applications. Barry is skilled in the Architecture and Development of Distributed Applications and Databases. Some of his notable recent work is aimed at establishing best practices for .NET development. He has been deeply involved with Microsoft's .NET platform and is a convert from the PowerBuilder development community. In addition to consulting, Barry has been a Software Development Instructor for over 10 years and currently holds a MS Certified Trainer designation in addition to .NET MS Certified Solution Developer and MS Solution Framework Practitioner designations.

Sunday, May 25, 2008 7:40:15 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

Microsoft released a new cool tool called Microsoft Source Analysis for C#.  It's an internal tool that does somewhat FxCop does.  While FxCop analyse the IL, Source Analysis analyse the source code itself.  It comes with about 200 built in rules that are however not customizable.  These rules cover:

  • Microsoft Layout of elements, statements, expressions, and query clauses
  • Placement of curly brackets, parenthesis, square brackets, etc
  • Spacing around keywords and operator symbols
  • Line spacing
  • Placement of method parameters within method declarations or method calls
  • Standard ordering of elements within a class
  • Formatting of documentation within element headers and file headers
  • Naming of elements, fields and variables
  • Use of the built-in types
  • Use of access modifiers
  • Allowed contents of files
  • Debugging text

After installation, the tool is integrated into the VS 2005 or 2008 IDE.  You can right click in the code window to analyse that code:

Or right click on the project name in the Solution Explorer to analyse the whole project:

From the same menu, you can change the tool's settings:

The results are displayed in the same area as the Output window:


You can read about Source Analysis for C# here:
http://blogs.msdn.com/sourceanalysis/

You can download it here:
http://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx?ReleaseId=1047

 

Sunday, May 25, 2008 6:46:55 PM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

DevTeach was held for the first time in Toronto.  When a new dev conference like this comes to town, the hard work is making people aware of the quality of the content they'll get from attending a "paid" conference like DevTeach.  Jean-René Roy, the conference owner, sent the speakers a few comments he received.

quote.png
Great conference! I especially enjoyed the up and personal nature of the conference. I was able to talk with the presenters. I spent most of my time at the agile track. Having topics that are rarely dealt with at user groups was a bonus. I enjoyed all the sessions I attended. The venue was great and the attention to little details, e.g., afternoon ice cream was appreciated.

Jean-René, thank you SO MUCH for bringing DevTeach to Toronto. It was fantastic and I will go again. Your tech chairs did a great job choosing sessions for each track. While I especially enjoyed the Agile sessions, I attended something from each track and the variety was good.

An outstanding conference! All the speakers I saw were terrific — affable, down-to-earth, talented, incredibly knowledgeable. The sessions were entertaining as well as in-depth and honest — no BS, no company line. I also met many people and had many interesting and thought provoking discussions outside the classrooms, and came away with new knowledge, ideas and inspiration. “Training you can’t get anywhere else” is an understatement.

Most of the speakers tell us 'why' and 'so what' instead of 'how'. This is what I expected and is good for developer in the long run. Please let speakers know this is good.

This is an excellent conference. I feel I updated my skills intensively effectively during these 3 days. I believe it will become a key event in .net area.

DevTeach was an amazing experience, especially for first timers. It was a good way to network with people in the industry, learn new techniques, make friends and bring home stories.

This was my first DevTeach and if I have any say in the matter, won't be my last. I had a great time, the sessions that I attended were top notch for the most part. Jean-Rene and his team deserve a hugh pat on the back for their efforts. What-ever they're getting paid - isn't half enough

What can I say. You'll definitely see me next year. I hope its still in Toronto. This was one of the BEST training conferences I've been on in quite some time. The "take-away's" from all the sessions were astounding. My mind is still spinning. Anyway, great job, nice prizes, great orgranization, absolutely no negative thoughts or comments.

This was a fantastic experience, MUCH better information than what I got from TechEd last year. TechEd's information was very visionary, things I can talk about now but not use for a few years out. DevTeach taught me things and gave me ideas I can use NOW! I LOVE THAT! The presentators were awesome, professional and very gifted at presenting their material. The only suggestions I would make are to have hot food every day (cold cut sandwiches are fine, even suggested for people at the Pre/Post Con but not for the actual event). More evening sessions (like at TechEd). I would have liked to have seen a presentation on MSBuild. PS You should have a value for the drop down of NA for hotel and accomodations if you didn't stay at the hotel.

I attended DevTeach in Toronto last week and can tell you it is every thing it claims to be and more. All the speakers I saw were terrific — affable, down-to-earth, talented, incredibly knowledgable. The sessions were entertaining as well indepth and honest — no BS, no company line. I also met many people and had many interesting and thought provoking discussions outside the classrooms, and came home full of new knowledge, ideas and inspiration. It really is “Training you can’t get anywhere else”. I would add, you probably couldn’t afford it if you could get it. I want to go again in December. I would recommend it to anyone wants to begome a better computing professional, or as JP would say — “Develop With Passion!”. In summary, an outstanding conference!
unquote.png

Sunday, May 25, 2008 9:51:46 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

I've been using IE/Outlook as my RSS client for a while now but a couple of weeks ago, a switched to Google Reader.  Here are my findings so far:

IE/Outlook

Using IE 7, you can subscribe to RSS feeds.  It's very easy as described here:
http://www.ie-vista.com/rss.html

IE7 introduce the concept of a shared RSS store and Outlook 2007 use that store so you can view the blog entries directly in Outlook.  You can also manage the feeds directly in Outlook.

http://office.microsoft.com/en-us/outlook/HA101595391033.aspx?pid=CH100622171033

On the plus side:
Everything is centralized.
If you add a feed from IE, it will appear in Outlook.
You can use Outlook to search the feeds.
Great for archiving blog entries containing great info.
One client to read them all  ;-)

Downside:
Everything is centralized on one PC.
If I use OWA, I won't get the newest blog entries until I go back to my PC.
There's a limit on the number of blog entries (per feed) that can be stored on the RSS store.
Your PST file will grow so plan on setting auto archive.

Google Reader

I gave Google Reader a try a couple of weeks ago.  Google Reader is an online RSS reader so everything is stored on Google's servers.  The main benefit is that it's online so nothing is stored locally and it's always fresh.

Tour 1

On the plus side:
Everything is centralized on Google's servers.
It's always in sync.
You use Google search engine to search the feeds.
One client to read them all  ;-)
Each blog entry is marked as read after you view it.
You can group feeds using foders and Google Reader will list all the blog entries from that folder if you click on the folder's name.
You can mark blog entries with a star.  This way, you can retrieve entries of interest later on.
You can share blog entries.  Best of all, there's an RSS feed others can subscribe to.  You can also display an HTML clip on your Web site.
You can listen to podcasts directly from the blog entries.
You have stats but I'm not sure I want to know how much time I'm spending reading blogs  ;-)
There's a mobile interface.
Google offers you feed recommendations based on what you're subscribing to.
Dilbert displays nicely  ;-)

Downside:
Everything's on Google's servers.
Using IE, there's no easy button to subscribe to feeds.  You need to do the good old Copy/Paste.


Overall, I'm quite pleased by Google Reader. 

Here's how audio files are displayed:

Dilbert's feed showing how pictures are displayed:
GoogleReader2.jpg

Some stats:

Sunday, May 25, 2008 8:45:54 AM (Eastern Standard Time, UTC-05:00)  #    Comments [2]  | 

Let's face it, if you're a small shop, building a redundant Exchange infrastructure is way too hard and way too expensive.  So what if you have a simple Exchange setup with just a few users?  You can prey that you server will never go down and you can plan the reboots after the critical updates installs on Sunday mornings.

But why not leverage Gmail itself?  Yep, why not use Google's Gmail as the backup email server?  Sounds wacky?  It is but it works AND it's free!!!

OK, how you I do that?

First, you must have access to the domain's DNS entries because you'll have to modify them.

Point your browser to www.google.com/a, do a little reading and discover what is Google Apps.

Next, create an a free account.

Use your existing domain

Follow the steps that let Google verify that you really own the domain name.  That will involve either putting a text file in the root directory of your Website or adding a CNAME.

I use GoDaddy to register my domain names and they let you tweak the domain settings using their Total DNS Control Panel.  Check if your registrar let you do this.

After the domain ownership has been verified, you need to change the MX records (Mail Exchange).  Gmail lists instructions for a few registrars.

Basically, you need to add Gmail's MX records to the domain's MX records list.

The trick is to leave the one with PriorityValue 0 (zero) pointing to YOUR email server.

This way, mail will flow to your email server and Gmail will catch them only if your server is down.

The downside:
You'll have to create a Gmail account for each users.
You'll have to ask them to check their Google apps Gmail account when you have downtime.
The accounts are not synched.

To simplify this, you can add a CNAME to point directly to Google apps Gmail.  Something like gmail.mydomain.com
 

This is a great solution for small shops, best of all, it's free!

Sunday, May 25, 2008 7:08:55 AM (Eastern Standard Time, UTC-05:00)  #    Comments [0]  | 

Theme design by Jelle Druyts