Yggdrasil : Home of Nidhogg

.NET coding at the roots of the Great Tree of Life
posts - 83, comments - 269, trackbacks - 233

Wednesday, January 18, 2006

Solution-sudoku opens !

I've been working on http://www.solution-sudoku.com in the past few days. The site is now functionnal and active. Its sole purpose is to give hints about or solve sudoku puzzles. Give it a try and tell me what you think about it

I also created software for solving sudoku puzzles for MS smartphones and PocketPC, the Windows version should be online soon. They are available on the site for free.

posted @ 8:31 AM | Feedback (391)

MCT now

Since my last post about a century ago, I moved into a new flat my wife and I bought. Then there was a 1 month Internet black-out until my ISP restored my connection to the world.

In other news, I passed the MCT exam so I will be teaching .NET and related technologies from time to time, starting at the end of this month.

posted @ 8:27 AM | Feedback (130)

Friday, August 05, 2005

MCSD.NET

I passed the 70-340 certification on .NET security a while ago which makes me a MCSD.NET. It took me some time but it is done, on to the MCT now.

posted @ 4:37 PM | Feedback (71)

Saturday, July 09, 2005

Gauge, a CounterStrike : Source monitor application

As promised here is the first alpha version of Gauge, an application that monitors your computer, waits until you play CounterStrike: Source and when you do, publishes the server information (server ip, port, map name) to MSN 7, using the "What I'm listening to" feature.

This is a test only version, so don't expect much.

I'm open to suggestions, feel free to send feedback using the comments or email me at the address specified in the readme.txt file.

Download

PS: it connects to a webservice on stup.org, don't worry its just that Valve releases a new version of CSS every now and then, and I need to update certain variables to keep it working.

EDIT: it looks like the method I use to get the server from the memory is not reliable as the address is dependant on the machine on which the software runs. I'll try to look into it when I have some free time ... The download is now inactive.

posted @ 2:19 PM | Feedback (26)

Friday, May 06, 2005

70-300. Done.

I just passed the 70-300 .NET Architecture exam. Another one down, only one left (70-340 on .NET security) and I'll be a MCSD.NET. After that I plan to go for the Microsoft Certified Trainer certification. This will enable me to teach official Microsoft courses on .NET. I really look forward to it, it should be a lot of fun.

And I still get married next week :)

posted @ 5:51 PM | Feedback (163)

Tuesday, April 26, 2005

Back to blogging .. for a while anyway

I just realized it's been months since I last posted anything on this blog. So, here are the news :

  • I am now a MCAD.NET, working on my MCSD.NET certification
  • My work right now is on a ASP.NET v2.0 project which is about as cool as I could hope for
  • I am getting married in 2 weeks which is obviously way cooler than all of the above :)

As an aside, I'm working on a little application that will monitor CounterStrike:Source. When a user is playing online it will publish the server IP and port so that fellow gamers can come and join the fun. I have a working prototype that publishes the information to the Friendly Name in Windows Messenger 4.7 (In the more recent versions the friendly name in the COM APIs has been made read-only which makes the whole publishing stuff a pain). I plan to support publishing to a FTP site, mIRC, MSN (if I find a way to do so), maybe other IM software. I'll build a simple plugin architecture to extend it if needed. I may even design it to support other games / apps.

posted @ 6:06 PM | Feedback (7)

Monday, January 31, 2005

Captcha Enabled

Recently we started to get some comment spam on the stup.org blogs. Removing them manually was beginning to be a real bore so I implemented Miguel Jimenez's Captcha control for .Text. From now on, you'll have to enter the text displayed on the image to post a comment. It sucks but it's the most efficient way to stop this annoying spam.

posted @ 5:27 PM | Feedback (351)

Sunday, January 30, 2005

Strongly Typed Config Generator v1.2

I updated the Strongly Typed Config Generator tool to fix a bug reported on this blog. I also fixed some project file problems (I apparently had a modelling addin installed that included some .tgs files in my project). Please note that some of the references still need to be manually changed to reflect the installation folders on your machine for both VS.NET and CodeSmith.

Here are the files :

  • Binaries
  • Sources
  • I tested it for about 5 minutes so if something is broken post a comment... I'll try to fix it.

    posted @ 1:51 PM | Feedback (7)

    Wednesday, December 15, 2004

    RangeValidator quirks

    I've been busy for weeks, hence the lack of post on this weblog. Here's a little one on strange things I noticed about RangeValidator and Double.

    A few days ago I was trying to find the cause of an exception in an ASP.NET web application. It happened when I set a RangeValidator's Type to ValidationDataType.Double, then set the MaximumValue to Double.MaxValue.ToString(). I found two things :

    • Apparently, the real maximum value of a Double is 1.7976931348623157E+308. However, Double.MaxValue.ToString() produces 1.79769313486232E+308 which is not parsable with Double.Parse() because it is too big. The cause is that the default formatting for the Double type is 15 digits + exponent whereas the value itself has 17 fractional digits + exponent. When ToString() is called, it rounds the value and the result is a bigger number than the real value. Same goes for Double.Minimum value.

      Therefore, when you want to transform a Double to a string so that String.Parse works, use ToString("r"). This formatting ensures that a roundtrip Double->String->Double always works.

    • The RangeValidator uses a regular expression to validate the user input. You can see this with Reflector in the BaseCompareValidator.Convert method. The expression is : @"^\s*([-\+])?(\d+)?(\" + decimalSeparator + @"(\d+))?\s*$"; As you can see, it does not handle numbers formatted in scientific notation. Therefore, Double.MaxValue produces the exception I was getting : "The value '1.7976931348623157E+308' of the MaximumValue property of 'RangeValidator1' cannot be converted to type 'Double'."

      So the only Double values that can be used in a RangeValidator are the ones that can be written in string format without the scientific notation. I didn't check but I doubt you can write all Double numbers that way, there must be a limit to the number of digits in the string representation of a Double.

    posted @ 6:38 PM | Feedback (53)

    Wednesday, October 13, 2004

    David Brin's Uplift saga

    I've just finished David Brin's Uplift scifi saga. The basic theme is that Earth has found alien races in the galaxy and soon find that humanity's story is a bit atypical. In Brin's universe there is a galactic tradition of Uplift, that is the process of an alien sentient race bringing other non-spient races to sapiency usually using gene-meddling techniques. Each race has a patron race that uplifted them and they themselves have patrons all the way to the original sapient race. Earth doesn't fit in this scheme and found its way to sapiency in the purest Darwinist form, through evolution. In this context, a particular race gains power by uplifting other races and through the standing of their own patrons. There a lot more to it but this is the central concept.

    The series relates stories in this universe involving humans, uplifted dolphins and chimpazees going against some other alien races and helped by a few others.

    It has a kind of an old-school scifi ring to it, a bit like the anticipation novels of old. It features lots of classic sci fi themes like FTL (Faster Than Light) travel, anti-gravity fields, strange alien races and so on. One other good point I found was that there is no real "bad guys" to beat although there a friends, allies, and of course ennemies. But the plot is not about kicking the ass of some ugly monsters.

    I liked every bit of it and read the whole of it as fast as I could. The only gripe I have with this series is that there's a lot of loose ends. I would have liked a follow-up on this but it's been a great read anyway. The second book in the series got a Nebula, Hugo and Locus award, the third one got the Hugo and Locas, which usually means these are VERY good books.

    I'm now reading David Brin's Kiln People, another popular novel by this author that explores an interesting concept. But I'll talk about that later.

    posted @ 7:25 PM | Feedback (45)

    Font for programmers (and users of text editors)

    If you're a programmer or if you use text editors on a regular basis you might want to check out this font. It's a fixed-size font called Proggy and it's the best I've found. I've tried quite a few other fixed size font but none was as good as this one. There are multiple versions, choose the one you like best. I use the Proggy Clean version.

    posted @ 7:04 PM | Feedback (662)

    this.Job = new Job();

    It's been in preparation for months. I now work for a company that specializes in Microsoft technologies, mostly .NET. Among some of my new coworkers I now can count a handful of MVPs, a MSDN Regional Director, a lot of MCSD.NET and more broadly speaking some very interesting and knowledgeable people (Disclaimer: I'm not saying there weren't any in my previous job, it's just refreshing to talk to new ones). I've been at it for a week and so far it's been great. It looks like the projects I'll be working on will be a little more on the "up-to-date" side than before (think Agile methodologies, latest products from Microsoft, stuff like that).

    posted @ 5:41 PM | Feedback (68)

    Wednesday, October 06, 2004

    Identify AppSight for .NET

    I found this nice piece of software via the .NETDJ newsletter the other day. Basically it records everything that happens during your application's runtime and can replay it afterwards, exactly as it occured. It has other interesting features but this one is IMHO the most important.

    There are a lot of situations where that would be the ideal solution to track hard-to-find bugs

    posted @ 5:39 PM | Feedback (78)

    Tuesday, September 21, 2004

    Got my Orange SPV C500 !

    I just got my brand new SPV C500 phone from Orange. There's a review on Neowin.

    So far I find it great. I knew from reviews that the joystick was not so good but for normal use it works quite well.

    Now it's time to look at what the .NET Compact Framework offers on this platform.

    posted @ 5:06 PM | Feedback (112)

    Sunday, September 12, 2004

    DMS Explorer menu editor 1.0

    If you don't understand what this post is all about, you don't need this software =)

    I wrote this little application to be able to edit the DMS Explorer MENU.TXT file easily. Normally to install custom software on your PS2 with a DMS modchip you burn a CD with a INSTALL.CNF file and DMS explorer does the rest.

    Unfortunately some PS2 models can't read CD-RW very well so you need to burn quite a few CDs just to install some apps.

    I decided to install Execftp on my memory card and use a ftp client instead. Now the problem is that DMS Explorer uses the \BOOT\MENU.TXT file which is not a valid file because the PS2 uses "/" as the folder separator, not "\". So normal or even advanced FTP clients like FlashFXP could not get this file (ok maybe you can but I didn't find how). So I quickly wrote this application to bypass this problem.

    Download it here : DMSMenuEditor_v1.0.zip

    posted @ 8:47 AM | Feedback (211)