<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>Snorre's Blog</title>
  <link rel="alternate" type="text/html" href="http://snorre.amende.no/" />
  <link rel="self" href="http://snorre.amende.no/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2008-09-29T00:15:24.6759918+02:00</updated>
  <author>
    <name>Snorre Garmann</name>
  </author>
  <subtitle>Deployment and Continuous Integration</subtitle>
  <id>http://snorre.amende.no/</id>
  <generator uri="http://dasblog.info/" version="2.1.8102.813">DasBlog</generator>
  <entry>
    <title>MimeParser published on codePlex</title>
    <link rel="alternate" type="text/html" href="http://snorre.amende.no/2008/09/28/MimeParserPublishedOnCodePlex.aspx" />
    <id>http://snorre.amende.no/PermaLink,guid,dbfee2c1-7d62-499f-9e5c-5cbb57d31a2a.aspx</id>
    <published>2008-09-29T00:15:24.6759918+02:00</published>
    <updated>2008-09-29T00:15:24.6759918+02:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">I have from time to time stumbled over the
need to integrate a system with email receiving. Email sending has usually been a
trivial task, and with the System.Net.Mail.SmtpClient in the .net framework this is
the case. But the .net framework lacks a class that can do the reverse, take a message
and build an object. 
<br /><br />
The reason for this is probably that this is a bees nest to enter. There are hundreds
of email clients out there, and they all have a saying on whats legal in the message
format. When you send an email you just have to conform to the standards one way or
the other, but if you receive emails, you never know what you're gonna get.<br /><br />
Well I decided that I would try to do it better than the other open source projects
out there that parses mime messages, and put it all on codeplex. Take a look at:<br /><br />
http://www.codeplex.com/mimeParser<br /><br />
My parser populates the standard System.Net.Mail.MailMessage so that the user don't
have to learn a new object structure, and then the messages are easily forwarded in
their original form.<br /><br />
Please give me input if you find a message that the parser doesn't handle correctly.
I'm very interested in making it even more robust.<br /><br />
My first impression with CodePlex is so far very good. The wiki approach to all the
project pages is nice. I can edit away my spelling mistakes, and the Team Explorer
integration is very handy. They even added a Subversion gateway so for those that
uses visual studio std or express it's just to install Tortoise svn and check in your
code.<br /><br />
With team explorer I can add and maintain work items also for the project, and this
seems usefull. Don't know how much rights I have been given in my project yet, so
I don't know how much havoc I can cause, but I surely will test out :)<br /><br /><br /><br /><br /><br /><p></p><img width="0" height="0" src="http://snorre.amende.no/aggbug.ashx?id=dbfee2c1-7d62-499f-9e5c-5cbb57d31a2a" /></div>
    </content>
  </entry>
  <entry>
    <title>Serious bug in MailAddressCollection</title>
    <link rel="alternate" type="text/html" href="http://snorre.amende.no/2008/09/20/SeriousBugInMailAddressCollection.aspx" />
    <id>http://snorre.amende.no/PermaLink,guid,0359fe6e-ada6-4044-bdc2-acb08751f3c6.aspx</id>
    <published>2008-09-20T13:54:05.485+02:00</published>
    <updated>2008-09-20T13:54:57.455633+02:00</updated>
    <category term="c# mail message" label="c# mail message" scheme="http://snorre.amende.no/CategoryView,category,cMailMessage.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Hi<br /><br />
Found a serious bug in .net 3.5 sp1 today concerning email addresses and international
characters. The class MailAddressCollection used in MailMessage has a nice overload
Add(string) which parses comma separated email addresses and creates MailAddress objects
of these. A very nice thought. 
<br /><br />
When passing email addresses with international characters, this method throws an
'System.FormatException'. For example:<br /><br />
Normalbakke, Sølvi &lt;solvi.normalbakke@abc.de&gt;,"ulv, Per" &lt;per.ulv@def.gh&gt;<br /><br />
fails...<br /><br />
while<br /><br />
Luth, trude &lt;trude.luth@abc.de&gt;, Larsen, Kamuf &lt;kamuf.larsen@ping.pong&gt; 
<br /><br />
works.<br /><br />
The strange thing is that this code works correctly. No Exceptions...<br /><br />
MailAddress m = new MailAddress("Normalbakke, Sølvi &lt;solvi.normalbakke@abc.de&gt;").<br /><br />
I made this piece of ugly code to circumvent the bug. I know that there probably is
a nasty regex that can do this more nicely, but the fact that you can have more or
less any character in the display name of the address, makes this too hard to bother
with. I spent an hour trying, without any success at least... Feel free to comment
and improve.<br /><br />
               
MailAddressCollection coll = new MailAddressCollection();<br />
               
string[] emails ="Normalbakke, Sølvi &lt;solvi.normalbakke@abc.de&gt;,\"ulv, Per\"
&lt;per.ulv@def.gh&gt;".Split(',');<br />
               
for (int i = 0; i &lt; emails.Length; i++)<br />
               
{<br />
                   
MailAddress address = null;<br />
                   
try<br />
                   
{<br />
                       
address = new MailAddress(emails[i]);<br />
                   
}<br />
                   
catch<br />
                   
{<br />
                       
address = new MailAddress(emails[i] + "," + emails[i + 1]);<br />
                       
i++;<br />
                   
}<br />
                   
coll .Add(address);<br />
               
}<br /><br />
The fact that MailAddress parses correctly, but not MailAddressCollection makes me
think that the developers has duplicated some really closely related code here. tsk
tsk...<br /><br />
Snorre Garmann<br /><br /><p></p><img width="0" height="0" src="http://snorre.amende.no/aggbug.ashx?id=0359fe6e-ada6-4044-bdc2-acb08751f3c6" /></div>
    </content>
  </entry>
  <entry>
    <title>Upgrading to Visual Studio 2008 in an enterprise environment</title>
    <link rel="alternate" type="text/html" href="http://snorre.amende.no/2008/09/11/UpgradingToVisualStudio2008InAnEnterpriseEnvironment.aspx" />
    <id>http://snorre.amende.no/PermaLink,guid,daff19ee-8942-4373-b90d-048693cd145a.aspx</id>
    <published>2008-09-11T23:52:45.097+02:00</published>
    <updated>2008-09-12T00:01:12.6541025+02:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">The last weeks my project which is 30 developers
large, with an extensive continuous integration setup and a automated deployment,
has experienced the joy of upgrading visual studio to 2008 sp1. With the size and
complexity of our setup, I think we might have hit just about every bug and unpredictable
changes in the upgrade process. Just to mention a few ingrediences, we use mstest,
clickOnce, msbuild, team foundation server with extensive automation and customization
(integration with nant scripts and the TFS api), web services, windows services, web
applications, win forms applications, wpf applications, ssis projects, reporting services
projects, sql server clr projects, message queueing, etc.<br /><br />
We have not upgraded sql server to 2008, and we probably will not in the forseen future,
so we have to live with sql server 2005.<br /><br />
I thought I'd write a few articles about what quirks we had to circumvent before we
were successful (more or less), so that others might have a smoother upgrade. The
issues I will go through are:<br /><br />
- MStest, problems with converting mstest projects, and mstest 8.0 vs mstest 9.0<br />
- clickonce, manifest problems<br />
- al.exe missing<br />
- tf.exe and missing workspaces<br />
- new targets (.net 2.0,3.0 and 3.5), and references to 3.0 assemblies.<br />
- resx files that misses code behind<br />
- ssis projects and reporting services projects.<br /><br /><br />
So stay tuned for the gory details.<br /><br /><br /><br /><br /><img width="0" height="0" src="http://snorre.amende.no/aggbug.ashx?id=daff19ee-8942-4373-b90d-048693cd145a" /></div>
    </content>
  </entry>
  <entry>
    <title>Clipperz.com</title>
    <link rel="alternate" type="text/html" href="http://snorre.amende.no/2008/08/30/Clipperzcom.aspx" />
    <id>http://snorre.amende.no/PermaLink,guid,5e06de12-0a70-486e-9c70-e5e885a62370.aspx</id>
    <published>2008-08-30T08:12:58.49+02:00</published>
    <updated>2008-08-30T08:12:58.4901576+02:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">Hi<br />
I'm starting off this blog in a sort of off topic manner, with a little recommendation.
You might have heard about Clipperz.com before, but a good thing can't be repeated
to often.<br /><br />
As most of you, I probably have been much too sloppy using the same, not too hard
password again and again as I create new user accounts on more or less serious web
sites. And I shouldn't have to remind you, (or myself) that this is not a good idea.
Some of the sites I've used registered for even have stored my credit card information,
or allows the user to order things on my account. And I have no idea how any of these
sites protect my information.<br /><br />
I would have to assume that the more serious sites protect my information adequately,
otherwise their business would not be trustworthy, and the would loose customers.
But the less serious sites is probably not very careful with how they handle my password...<br /><br />
Ok, so why haven't I changed this before? One of the reasons is laziness of course,
another reason is the lack of a solution that is both secure, and available wherever
I go. 
<br /><br />
Enter Clipperz.com. The solution is simple itself: It's a web service that stores
your account information in a database. So I hear you say, how can I trust this, and
not the other startup web sites that provides a similar service? The secret is, I
don't, and I don't have to. Clipperz.com works in a way that everything is encrypted
and decrypted in the browser, and only scrambled data is stored in Clipperz.com's
central database. That way, if clipperz.com's information is compromised, the intruders
will only get the encrypted data, and no passwords, credit cards or anything, without
asking me for my clipperz.com password. Very nice.<br /><br />
Clipperz.com helps you generate strong passwords for your accounts, and even has a
one click solution that will directly sign you in to the site. This one click solution
works fairly well, about 70% of my accounts worked with this.<br /><br />
You can also store other sensitive information with clipperz, like creditcards and
pin codes etc.<br /><br />
Ok, so what is not so great about Clipperz.com? The sign in time for one. probably
because of the heavy javascript encryption magic signing in to clipperz takes a while,
so when you have to go through clipperz every time you want to sign in somewhere that
is a little bit irritating. 
<br />
Another issue is the organizing of the bookmarks. Now it is only one long list of
accounts etc. There should be a way to tag or categorize the information so that there
wouldn't be a long list of things to traverse to find your favorite login.<br /><br />
Clipperz.com is free. With that said they introduce a rather annoying popup every
now and then urging you to donate. I can live with that, and after a few more weeks
of usage I will probably donate, and the popup hopefully will go away :)<br /><br />
Anyways, I urge you all to take control of your passwords, one way or the other, and
why not try out Clipperz.com<br /><br />
Snorre<br /><br /><br /><br /><p></p><img width="0" height="0" src="http://snorre.amende.no/aggbug.ashx?id=5e06de12-0a70-486e-9c70-e5e885a62370" /></div>
    </content>
  </entry>
</feed>