<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5503583455244392541</id><updated>2011-12-12T23:50:01.254+02:00</updated><category term='Personal'/><category term='Free Software'/><category term='Mono'/><category term='Miscellaneous'/><category term='Linux'/><category term='Programming'/><title type='text'>Ach blah - or - Valentins Blog</title><subtitle type='html'>Don't you sometimes feel like everything is "Ach blah" too? I do, especially after a hard day of programming in .NET, Mono or PHP.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>24</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-9079138068986343438</id><published>2008-07-10T23:18:00.003+02:00</published><updated>2008-07-10T23:37:00.610+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Annoying Brother printer margin</title><content type='html'>This is one of those posts where desperate Linux users share their most annoying experience with Bugs/Errors/ConfigurationAttempts, and how they fixed it, with the world.&lt;br /&gt;&lt;br /&gt;Today I've printed out half a bug to fix an error with Brother my DCP-115C Printer. (But I think that all printers using the MFC-210C drivers will have the error in a similiar way)  They have this little annoyance that the print margin is not correct for the used paper format. The top was cut off, but I've seen a lot of users that complaining about left, right and bottom margins as well.&lt;br /&gt;&lt;br /&gt;But luckily this is easy to fix:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Make sure that CUPS uses the right paper format. E.g. Letter is often the default format while europeans use A4 instead.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Excecute  this as root: &lt;pre&gt;brprintconfij2 -P MFC210C -reso 600 -pt A4&lt;/pre&gt;This will lauch some &lt;a href="http://solutions.brother.com/linux/sol/printer/linux/printsetlpr-ink2.html"&gt;brother configuration script&lt;/a&gt; which will helped in my case and as far as I could tell from google, it helped others as well. :-)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-9079138068986343438?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/9079138068986343438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=9079138068986343438' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/9079138068986343438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/9079138068986343438'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2008/07/annoying-brother-printer-margin.html' title='Annoying Brother printer margin'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-3800917517933852672</id><published>2008-06-12T23:52:00.002+02:00</published><updated>2008-06-12T23:57:54.951+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Why do I have two instances of X running?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_60um4A_UMnE/SFGbo2fAZWI/AAAAAAAAAE4/wmX5SmyEda8/s1600-h/Screenshot.png"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_60um4A_UMnE/SFGbo2fAZWI/AAAAAAAAAE4/wmX5SmyEda8/s320/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5211117369967011170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I just don't get it. Is this normal for openSuse 10.3?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-3800917517933852672?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/3800917517933852672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=3800917517933852672' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/3800917517933852672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/3800917517933852672'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2008/06/why-do-i-have-two-instances-of-x.html' title='Why do I have two instances of X running?'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_60um4A_UMnE/SFGbo2fAZWI/AAAAAAAAAE4/wmX5SmyEda8/s72-c/Screenshot.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-5083570486216028304</id><published>2008-06-09T22:49:00.002+02:00</published><updated>2008-06-09T23:06:42.746+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Free Software'/><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Is Ogg-Video really that slow?</title><content type='html'>I recently downloaded &lt;a href="http://www.bigbuckbunny.org/"&gt;Big Buck Bunny&lt;/a&gt; and as a free software enthusiast like I am, I chose the 1920x1080p-ogg-Version of the Clip. However, I was not able to see the movie because it was just so terribly slow. I counted seconds until the next picture was shown...&lt;br /&gt;&lt;br /&gt;I first wondered whether my System (Core Due T2300 with 1GB RAM)  was too old to handle that high-res videos therefore I tried the 1280x720p version which worked, the cpu load was still relatively high though.&lt;br /&gt;&lt;br /&gt;At last, just out of curiosity, I downloaded the 1920x1080p-mp4-Version and expected the roughly the same results as with the ogg-Version. But the performance was completely out of my expectations. I was able the see movie without a problem and the cpu load was even lower then the low-res ogg-Version!&lt;br /&gt;&lt;br /&gt;And now I wonder if this performance difference is caused by the fact that the ogg-developers needed to work around some of patents in the development of ogg, or is there some other reason?&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-5083570486216028304?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/5083570486216028304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=5083570486216028304' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/5083570486216028304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/5083570486216028304'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2008/06/is-ogg-video-really-that-slow.html' title='Is Ogg-Video really that slow?'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-3245056989074185362</id><published>2008-04-21T20:14:00.006+02:00</published><updated>2008-04-21T20:28:58.502+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>VBA and comparing Dates</title><content type='html'>Right now I've been busy developing a Office 2003 Macro which analyzes and merges multiple Txt-Files into Excel. And while doing so I came across a pretty odd situation, because to me it seems that VBA is not able to correctly compare two dates, as the following screenshot shows.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_60um4A_UMnE/SAzbCXN2YCI/AAAAAAAAAEw/_z22xA6wMhM/s1600-h/DateComparisonError.PNG"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_60um4A_UMnE/SAzbCXN2YCI/AAAAAAAAAEw/_z22xA6wMhM/s320/DateComparisonError.PNG" alt="" id="BLOGGER_PHOTO_ID_5191765304089665570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The Screenshot clearly shows that LastDate is not greater than estimatedDate. But still, the debugger stops at the breakpoint within the if clause. And as you can see, the only way I found out to avoid false negatives was to perform a second check with DateDiff to get the amount of seconds between the two dates. Because luckily this works as expected.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-3245056989074185362?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/3245056989074185362/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=3245056989074185362' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/3245056989074185362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/3245056989074185362'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2008/04/vba-and-comparing-dates.html' title='VBA and comparing Dates'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_60um4A_UMnE/SAzbCXN2YCI/AAAAAAAAAEw/_z22xA6wMhM/s72-c/DateComparisonError.PNG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-3787639901155102049</id><published>2008-03-22T11:52:00.008+02:00</published><updated>2008-03-22T12:43:19.144+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>USB is not as standartized as I had thought</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_60um4A_UMnE/R-Tb3-DN-mI/AAAAAAAAADw/Ht7s0v-wlCM/s1600-h/dsc00003.jpg"&gt;&lt;img style="margin: 0px auto 10px; float: right; text-align: right; cursor: pointer;" src="http://3.bp.blogspot.com/_60um4A_UMnE/R-Tb3-DN-mI/AAAAAAAAADw/Ht7s0v-wlCM/s200/dsc00003.jpg" alt="" id="BLOGGER_PHOTO_ID_5180507225978698338" border="0" /&gt;&lt;/a&gt;Yesterday I tried to fix the front USB-Connectors of a Computer I set up a month before. The mainboard of the machine had died and so I needed to replace it with a different board. However after that the front USB-Connectors did not work.&lt;br /&gt;&lt;br /&gt;Looking at the two manuals clearly revealed that both boards use different layouts for their extra USB-Connectors. (The little pins on the picture)&lt;br /&gt;&lt;pre&gt; The old Layout      The new Layout&lt;br /&gt;|-----------------|  |-----------------|&lt;br /&gt;| Cable+ | GND    |  | Cable+ | Cable+ |&lt;br /&gt;| Data-  | Cable- |  | Data-  | Data-  |&lt;br /&gt;| Data+  | Data+  |  | Data+  | Data+  |&lt;br /&gt;| Cable- | Data-  |  | Cable- | Cable- |&lt;br /&gt;| GND    | Cable+ |  |        | GND    |&lt;br /&gt;|-----------------|  |-----------------|&lt;/pre&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_60um4A_UMnE/R-TgVeDN-nI/AAAAAAAAAD4/Jj_syrWaZaw/s1600-h/dsc00008.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://1.bp.blogspot.com/_60um4A_UMnE/R-TgVeDN-nI/AAAAAAAAAD4/Jj_syrWaZaw/s200/dsc00008.jpg" alt="" id="BLOGGER_PHOTO_ID_5180512130831350386" border="0" /&gt;&lt;/a&gt;Luckily this was easy to fix as I just had to change the pin-order of the connector. But I'm still a little bit sad that I had to do so as it damages the nice plug'n'play-image of USB that it had in my mind. Because I was of the opinion that those connectors were standardized and "plug'n'play" as well.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt;&lt;br /&gt;Oops, I forgot to whish everybody frohe Ostern and happy holidays.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-3787639901155102049?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/3787639901155102049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=3787639901155102049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/3787639901155102049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/3787639901155102049'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2008/03/usb-is-not-as-standartized-as-i-had.html' title='USB is not as standartized as I had thought'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_60um4A_UMnE/R-Tb3-DN-mI/AAAAAAAAADw/Ht7s0v-wlCM/s72-c/dsc00003.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-7093588100128388946</id><published>2008-03-21T01:05:00.004+02:00</published><updated>2008-03-21T01:12:42.369+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Linux Sound driver for Asus A7N8X (Targa Edition)</title><content type='html'>I've spent all evening trying to get the onboard sound of the Asus A7N8X to work. I need to mention that this board is no ordinary Asus A7N8X. It is the Targa Edition which has a modified Southbridge (&lt;span style="font-weight: bold;"&gt;nForce2 TM MCP-T&lt;/span&gt; instead of a normal nForce2 TM MCP). Right now, no "stock" dirver shipped with openSuse 10.3 and Ubuntu 7.10 has been working.&lt;br /&gt;&lt;br /&gt;So if anybody has got a clue on how to get this thing working, please leave a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-7093588100128388946?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/7093588100128388946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=7093588100128388946' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/7093588100128388946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/7093588100128388946'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2008/03/linux-sound-driver-for-asus-a7n8x-targa.html' title='Linux Sound driver for Asus A7N8X (Targa Edition)'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-1977547410541209893</id><published>2007-12-23T23:47:00.000+02:00</published><updated>2007-12-24T00:30:30.152+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>System.IO.StreamReader + complex file processing = Headaches (Part 2)</title><content type='html'>Yes I know, and I'm terribly sorry that I've took so long to write the continuation of &lt;a href="http://achblah.blogspot.com/2007/09/systemiostreamreader-complex-file.html"&gt;that blog-post&lt;/a&gt;. Nevertheless, here it is.&lt;br /&gt;&lt;br /&gt;But at first I'd like to sum up the results of the last post:&lt;ul&gt;&lt;li&gt;StreamReader is not the right choice for this task.&lt;/li&gt;&lt;li&gt;Seeking does not work.&lt;/li&gt;&lt;li&gt;The index is completely useless and contains wrong data.&lt;/li&gt;&lt;/ul&gt;However the good News is that a small and clean facade&lt;sup&gt;1&lt;/sup&gt; pattern can fix all of this.  The Facade can be a simple as this:&lt;pre&gt;class FacadeReader&lt;br /&gt;&lt;br /&gt;fields:&lt;br /&gt;An internal position marker, as well as a real FileStream and&lt;br /&gt;StreamReader.&lt;br /&gt;&lt;br /&gt;Method ReadLine:&lt;br /&gt; Read the next Line from the StreamReader and then add the&lt;br /&gt; byte-count of the new line + the line feed character(s) to the&lt;br /&gt; internal position marker&lt;br /&gt;&lt;br /&gt;Method Seek(position):&lt;br /&gt; Seek on the underlying stream, call&lt;br /&gt; StreamReader.DiscardBufferedData() and last but not least store&lt;br /&gt; the given position at this.position.&lt;/pre&gt; That few lines would be enough to make the application run. It is fairly fast and has the big advantage that it's simple to implement (no need to cope with all the low level stuff). Amazing, isn't it?&lt;br /&gt;&lt;br /&gt;Oh, I almost forgot: Happy Christmas everybody! :-)&lt;br /&gt;&lt;br /&gt;&lt;sup&gt;1&lt;/sup&gt; Or is this a decorator, am unsure about this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-1977547410541209893?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/1977547410541209893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=1977547410541209893' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/1977547410541209893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/1977547410541209893'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/12/systemiostreamreader-complex-file.html' title='System.IO.StreamReader + complex file processing = Headaches (Part 2)'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-7597377210015922949</id><published>2007-12-10T18:18:00.000+02:00</published><updated>2007-12-10T18:28:02.186+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>You have 1436 unread mails in your Inbox</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_60um4A_UMnE/R11nlQaT_VI/AAAAAAAAAB8/tSMyfOIJDrk/s1600-h/Screenshot.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_60um4A_UMnE/R11nlQaT_VI/AAAAAAAAAB8/tSMyfOIJDrk/s320/Screenshot.png" alt="" id="BLOGGER_PHOTO_ID_5142380239285124434" border="0" /&gt;&lt;/a&gt;That's what I was seeing when I checked my Mail today after school. After my initial shock I downloaded a couple of the mails and saw that these are old emails (I'm using Pop3 and leave a copy of my downloaded mails on the server). The neat thing is that I have to download all of them to get my new mails as well..... &gt;_&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-7597377210015922949?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/7597377210015922949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=7597377210015922949' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/7597377210015922949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/7597377210015922949'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/12/you-have-1436-unread-mails-in-your.html' title='You have 1436 unread mails in your Inbox'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_60um4A_UMnE/R11nlQaT_VI/AAAAAAAAAB8/tSMyfOIJDrk/s72-c/Screenshot.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-2904787045915866424</id><published>2007-10-30T16:02:00.001+02:00</published><updated>2007-10-30T16:30:15.847+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mono'/><title type='text'>Another small success for Monos WinForms</title><content type='html'>In August I was looking for a UML-Like editor for C# (see my corresponding &lt;a href="http://achblah.blogspot.com/2007/08/uml-modelling-not-written-in-but-for.html"&gt;blog-post&lt;/a&gt;). During the search I came across &lt;a href="http://nclass.sourceforge.net/index.html"&gt;NClass&lt;/a&gt; which looked kinda neat so I tried running it on Mono. But this endeavor failed gracefully because Winforms 2.0 was not mature enough to run a non-trivial application like NClass.&lt;br /&gt;&lt;br /&gt;Just out of curiosity I downloaded NClass again to see what exception it might throw at me now. But hey it works right out of the box with Mono 1.2.5! (With some minor problems e.g. unmovable ToolStrip-Menus)&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_60um4A_UMnE/Ryc_Sk8lO_I/AAAAAAAAAB0/wuLN-IRlzSo/s1600-h/NClass+on+Mono.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: none; cursor: pointer;" src="http://1.bp.blogspot.com/_60um4A_UMnE/Ryc_Sk8lO_I/AAAAAAAAAB0/wuLN-IRlzSo/s320/NClass+on+Mono.png" alt="" id="BLOGGER_PHOTO_ID_5127136289172569074" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So congratiulations to the Winforms team and every single contributor. And also a very big thanks for all the effort you all have put into it :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-2904787045915866424?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/2904787045915866424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=2904787045915866424' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/2904787045915866424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/2904787045915866424'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/10/another-little-success-for-monos.html' title='Another small success for Monos WinForms'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_60um4A_UMnE/Ryc_Sk8lO_I/AAAAAAAAAB0/wuLN-IRlzSo/s72-c/NClass+on+Mono.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-4832630533124259947</id><published>2007-10-21T19:54:00.000+02:00</published><updated>2007-10-21T21:05:01.830+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>How to fix sticky keyboard-keys.</title><content type='html'>After &lt;a href="http://achblah.blogspot.com/2007/10/on-verge-of-death.html"&gt;my last entry&lt;/a&gt; a reviewed a lot of different comments on how to clean the keyboard (thanks everybody). The last comment by Johnel proved to be quite helpfully because that's basically what I did.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Remove the keyboard:&lt;/span&gt; Luckily the keyboard is just held by 5 clips which can be opened easily opened with a screwdriver. This is the result:&lt;br /&gt;&lt;a href="http://picasaweb.google.co.uk/AchBlah/Misc/photo#5123034953829495106"&gt;&lt;img src="http://lh4.google.co.uk/AchBlah/RxitJcLqsUI/AAAAAAAAABY/EV0i7cPhzaU/s400/DSC00010.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;Unfortunately I was not able to remove the cable-connection so that I had to clean my keyboard while it was still connected to the rest of the machine.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Cleaning the Keyboard:&lt;/span&gt; This proved to be quite simple, I just poured some warm water over my keyboard and dried it with a hairdryer afterwards.&lt;br /&gt;&lt;a href="http://picasaweb.google.co.uk/AchBlah/Misc/photo#5123849984003453266"&gt;&lt;img src="http://lh3.google.co.uk/AchBlah/RxuSacLqsVI/AAAAAAAAABk/uT1jP4w7uZA/s400/DSC00011.JPG" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Now it's almost as good as it was before the accident. The most sticky keys still feel a little bit different than the rest but I can live with this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-4832630533124259947?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/4832630533124259947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=4832630533124259947' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/4832630533124259947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/4832630533124259947'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/10/how-to-fix-sticky-keyboard-keys.html' title='How to fix sticky keyboard-keys.'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-5445511639434970630</id><published>2007-10-17T16:29:00.000+02:00</published><updated>2007-10-17T16:55:19.472+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>On the verge of death!</title><content type='html'>Not me, I'm perfectly healthy, my laptop (Fujitsu Siemens Amilo Pi1536) however survived a Vanilla-Coke-Shower yesterday evening. I spilled almost half a bottle over the right side of my Laptop. Looked like a real mess, coke was pouring out of my PCMCIA-Slot and the corner of the case. :-/&lt;br /&gt;&lt;br /&gt;However, after about 20 hours of drying it still seems to work quite well. All of my connectors at the right side of it are still working, but my keys are a bit gluey, especially enter and backspace :-/&lt;br /&gt;&lt;br /&gt;Does anyone know by any chance how to clean the keyboard to get rid of all that glue without dismantling the laptop? (because I don't know how to dismantle it, tried it yesterday evening but without any luck...)&lt;br /&gt;&lt;br /&gt;Any help will be appreciated :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-5445511639434970630?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/5445511639434970630/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=5445511639434970630' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/5445511639434970630'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/5445511639434970630'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/10/on-verge-of-death.html' title='On the verge of death!'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-5237011368457228791</id><published>2007-09-20T18:14:00.000+02:00</published><updated>2007-09-26T23:15:34.517+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>System.IO.StreamReader + complex file processing = Headaches (Part 1)</title><content type='html'>System.IO.StreamReader is a great thing for simple reading operations but tends to cause some unforseen headaches in more complex scenarios. Try to image a scenario like the following:&lt;br /&gt;&lt;br /&gt;You are trying to develop some kind application to display text subtitles for Audiobooks, apart from simply playing audiobooks and seeking within books, no other features a required. To keep things simple, will the Audiobooks be stored a common audio format and the subtitles shall be stored in additional text files of the following format:&lt;br /&gt;&lt;pre&gt;Some Header-Lines&lt;br /&gt;&lt;br /&gt;HH:MM:SS;The text to display at a certain time&lt;br /&gt;HH:MM:SS;The text that will be displayed after the first line&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;Now first let's try to implement a simple szenario: Play the Book from the beginning to the end without seeking&lt;br /&gt;&lt;br /&gt;The Algorithm for parsing the file could be as simple as the following:&lt;br /&gt;&lt;pre&gt;Method Init:&lt;br /&gt; Create a StreamReader to read the file.&lt;br /&gt; A couple of readlines that parse the header.&lt;br /&gt; Read the first and second text-line from the stream.&lt;br /&gt; Display the first line.&lt;br /&gt;&lt;br /&gt; while playing audiobook&lt;br /&gt;  Wait for the position where the next line should be diplayed.&lt;br /&gt;  Display the Next Line.&lt;br /&gt;  Read a new line from the stream.&lt;br /&gt; loop&lt;/pre&gt;&lt;br /&gt;But as we explicitly want seeking our algorithm must be altered. But let's first evaluate some ways to implement seeking-capability:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Keep all the lines stored in memory, but as we expect pretty large Subtitle files (about 15MB)  this is not an option.&lt;/li&gt;&lt;li&gt;Remember the position inside the filestream where the data began. On seek jump to the beginning of the data and then read out all lines till the right one has been found. This will consume the least memory but again as our files might become pretty large reading the file from the beginning on each seek-operation might result in a severe performance loss and a lot of disk interaction.&lt;/li&gt;&lt;li&gt;Create a temporary index of the subtitle-file in the memory. That index will not contain the text but just the a dictionary to store the times found within the file and their position in the file-stream. Since a full index can still consume up to 5 MB a partial index will suffice where every 50th line will be stored.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;In this case I think implementing the algorithm number 3 would be the best choice, so let's alter our code then:&lt;br /&gt;&lt;pre&gt;Method Init:&lt;br /&gt; Create a StreamReader to read the file.&lt;br /&gt; A couple of readlines that parse the header.&lt;br /&gt;&lt;br /&gt; while not end of file&lt;br /&gt;  if this is every 50th line then&lt;br /&gt;   parse the time&lt;br /&gt;   store time and FileStream.Position&lt;br /&gt;  endif&lt;br /&gt; loop&lt;br /&gt; &lt;br /&gt; Seek Filestream to first text-entry&lt;br /&gt; Call ContinuePlaying&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Method OnSeek(timeToSeek):&lt;br /&gt; seeking = true&lt;br /&gt;&lt;br /&gt; Look within our dictionary for the time directly smaller than or equal to timeToSeek&lt;br /&gt; Seek our FileStream to the position of our time retrieved from the dictionary&lt;br /&gt; &lt;br /&gt; if dictionaryTime == timeToSeek then&lt;br /&gt;  Read contents from stream and display it&lt;br /&gt;  Call ContinuePlaying&lt;br /&gt; endif&lt;br /&gt; &lt;br /&gt; currently retrieved time = dictionaryTime&lt;br /&gt; previousLine = null&lt;br /&gt; while currently retrieved time &lt;= timeToSeek&lt;br /&gt;  previousLine = currentLine&lt;br /&gt;  currentLine = FileStream.ReadLine&lt;br /&gt; loop&lt;br /&gt; &lt;br /&gt; seeking = false&lt;br /&gt; Display the previousLine&lt;br /&gt; Call ContinuePlaying&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Method ContinuePlaying:&lt;br /&gt; While Not end of file&lt;br /&gt;  if seeking then&lt;br /&gt;   exit method&lt;br /&gt;  endif&lt;br /&gt; &lt;br /&gt;  Read next line from file&lt;br /&gt;  Wait till it's time to display the new line&lt;br /&gt;  Display the new Line&lt;br /&gt; loop&lt;/pre&gt;So far so good, looks pretty correct to me (Please hit me if you think otherwise :-). However testing this with a sample subtitle file will terribly fail. But why?&lt;br /&gt;&lt;br /&gt;Because StreamReader.ReadLine does not work similar like Read. While Read only reads out 1 char from the stream, ReadLine reads out the next 1kB, this will be buffered internally and the first line within that buffer will be returned. The next 1kB will be read from the string when all the lines from the buffer have been returned.&lt;br /&gt;&lt;br /&gt;In our application this will mean that our index will not contain the positions but 1024, 2048, 3072,... instead. In addition as this buffer is not being cleared if the FileStream performs a seek, we won't be able to perform any seek operation as well.&lt;br /&gt;&lt;br /&gt;So this is basically how System.IO.StreamReader caused me headaches (Took me quite some time and a lot of debug output to figure this behavior out). Next part of this post I will tell you what I did to fix this unforeseen complications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-5237011368457228791?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/5237011368457228791/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=5237011368457228791' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/5237011368457228791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/5237011368457228791'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/09/systemiostreamreader-complex-file.html' title='System.IO.StreamReader + complex file processing = Headaches (Part 1)'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-8125092557275365604</id><published>2007-08-22T18:39:00.000+02:00</published><updated>2007-08-22T19:17:00.965+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Mono'/><title type='text'>UML-Modelling not written in, but for .Net</title><content type='html'>These days I've tried to port &lt;a href="http://nclass.sourceforge.net/index.html"&gt;NClass&lt;/a&gt; to Mono on Linux (which failed because of some missing 2.0 System.Windows.Forms Members in Mono 1.2.4, but this is not the point anyways) because I hoped to finally find a CASE-Tool which has not only been written in .Net but also for .Net. Tried it later out on Windows and it was not what I was looking for.&lt;br /&gt;&lt;br /&gt;Where's the difference between "written in .Net" and "written for .Net" you might ask.&lt;br /&gt;&lt;br /&gt;The answer is quite simple, while the first one provides only the "normal" UML-Specification like a class is only allowed to have Properties and Methods and so forth, does the second provide tools to Model software especially for .Net.&lt;br /&gt;&lt;br /&gt;I'm thinking here of a tool that...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;knows how to handle Events, Delegates and Generics and how to integrate them into the Model.&lt;/li&gt;&lt;li&gt;would know the difference between Fields and Properties&lt;/li&gt;&lt;li&gt;could extract Types from Assemblies and integrate them into the Model (eg: I want to write a custom Enumerator and could make it implement the IEnumerator-Interface by selecting it from the corlib-assembly.)&lt;/li&gt;&lt;li&gt;could generate Code (okay that's nothing special) and keeping track of changes in the code to adopt the Model (that would be especially cool when the Modeling tool would be integrated into some kind of IDE)&lt;/li&gt;&lt;li&gt;would allow to define multiple diagrams for the same class-model so that one diagram would only display the Main classes without showing all small helper classes&lt;/li&gt;&lt;/ul&gt;Wouldn't it be nice to have such a tool?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-8125092557275365604?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/8125092557275365604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=8125092557275365604' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/8125092557275365604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/8125092557275365604'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/08/uml-modelling-not-written-in-but-for.html' title='UML-Modelling not written in, but for .Net'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-401791007444317647</id><published>2007-07-01T13:28:00.000+02:00</published><updated>2007-07-01T15:15:44.127+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><category scheme='http://www.blogger.com/atom/ns#' term='Mono'/><title type='text'>An explanation of "stand-alone bugtracking"</title><content type='html'>Okay, it seems like my "write as you think"-approach on &lt;a href="http://achblah.blogspot.com/2007/06/stand-alone-bugtracking.html"&gt;my last blog post&lt;/a&gt; didn't work as expected because it resulted in some quite different comments. So I'll this time I'll try to explain what I meant by stand-alone bugtracking.&lt;br /&gt;&lt;br /&gt;First of all, I was not thinking of an ASP.Net and Mono powered &lt;a href="http://www.bugzilla.org/"&gt;Bugzilla&lt;/a&gt; or &lt;a href="http://trac.edgewall.org/"&gt;Trac&lt;/a&gt;. Because this software has been developed to support the open-source distributed development of software and therefore has to be online available. But since there are a lot of people who do develop software on their own they all have to go through the burden of setting up and Web-Server and some Database just to have a Bugtracker despite the fact that they do not need to have their bugtracker online available because they will be the only ones using it. In this case a small, local (local as in "not running on a webserver") bugtracking software (let's name it MyBugT.exe for now) would come in handy. The usage and features of MyBugT.exe would be quite the same as of it's "bigger brothers" but since we will mostly develop small software there will be no need to have a full SQL-Server back end to store our bugs, a small and simple file based storage (maybe &lt;a href="http://ach%20blah%20-%20or%20-%20valentins%20blog%0a%0a%20%20%20%20*%20posting%0a%20%20%20%20*%20settings%0a%20%20%20%20*%20template%0a%20%20%20%20*%20view%20blog%0a%0a%20%20%20%20*%20create%0a%20%20%20%20*%20edit%20posts%0a%20%20%20%20*%20moderate%20comments%0a%0atitle:20//mono-project.com/SQLite"&gt;SQLite&lt;/a&gt;) would suffice, user management could be dropped as well and the GUI will be of course something like &lt;a href="http://mono-project.com/WinForms"&gt;System.Windows.Forms&lt;/a&gt; or &lt;a href="http://mono-project.com/Gtk"&gt;GTK#&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This has been my basic idea, however while writing the post some more advantages of MyBugT.exe came into my mind: Automatic bug reporting if application crashes due to a exception, either into our local storage or to a external bug tracking software.&lt;br /&gt;&lt;br /&gt;Since MyBugT.exe is a local assembly we could link our development projects against it and then make them call MyBugT.exe once they terminate due to a  uncaught exception. Based on the application that threw the exception MyBugT.exe will know whether this is a bug to file locally or to forward. MyBugT.exe could obtain the information to forward or not to forward in three ways.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Build a try-catch block around the main method which then handles the bug-report manually.&lt;/li&gt;&lt;li&gt;From xml-Configuration Files (I am thinking of how &lt;a href="http://mono-project.com/Mono.Addins"&gt;Mono.Addins&lt;/a&gt; does handle it's configuration files)&lt;/li&gt;&lt;li&gt;Assembly wide attributes like &lt;tt&gt;[BuggyProject("name", "MyComponent")] and &lt;/tt&gt;&lt;tt&gt;[BuggyCustomTracker("http://mytracker.com", "bugzilla3.0")]&lt;/tt&gt;&lt;/li&gt;&lt;/ol&gt;While the first one is pretty straightforward the other two might be somewhat more difficult to realize as this would require some kind of profiler or observer attached to the buggy application to take the needed actions once the exception has not been caught.&lt;br /&gt;&lt;br /&gt;And this is how the small and neat MyBugT.exe could be extended to a generic bug-reporting tool. All the fuzz about IDE integration at the end of my previous post was just because I thought that it would be cool to have bugtracker (and probably task tracker) integration in MonoDevelop....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-401791007444317647?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/401791007444317647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=401791007444317647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/401791007444317647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/401791007444317647'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/07/explanation-of-stand-alone-bugtracking.html' title='An explanation of &quot;stand-alone bugtracking&quot;'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-2871086682047870019</id><published>2007-06-28T18:29:00.000+02:00</published><updated>2007-06-28T19:03:06.860+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><category scheme='http://www.blogger.com/atom/ns#' term='Mono'/><title type='text'>Stand-alone bugtracking...</title><content type='html'>Recently an interesting thought crossed my mind (and this is very seldom).&lt;br /&gt;&lt;br /&gt;While developing on Windows (where I have no webserver running) I thought: "I've just found 4 Bugs in my application, if I don't write them down now I'll forget at least two of them before I'll have the chance to fix them." The Problem was however, that I do not have a any bug-tracking software available and I'm not willing to install apache and mysql just for a seldom used bug-tracking application. So I went looking for an "off line and stand-alone bug tracking software" just to find nothing.&lt;br /&gt;&lt;br /&gt;But why? Is this an irrelevant scenario for bug tracking as this is normally a task which is spread among a lot of people (the reporters and the poor-pals who have to fix this)?&lt;br /&gt;&lt;br /&gt;In my opinion it is not, as there will be a lot of people who are developing small software which still could profit from a small bug-tracking solution. First of all, those like me who do not want to install a web-server and second, this bug tracking software could easily be integrated into other software, I'm thinking here of the following two scenarios:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The Main-Method has one big try-catch block which then passes the uncaught exception to the local bug-tracker. The bug-tracker then files this exception in automatically so that no possible error will be missed.&lt;/li&gt;&lt;li&gt;This one would be even nicer but I do not know if this is possible. However, the local-bug-tracker would introduce Assembly wide attributes like &lt;tt&gt;[BuggyProject("name", "MyComponent")]&lt;/tt&gt; now if we run our project we attach a custom profiler which is just waiting for an exception to arise, this exception is then being passed over to our bug-tracking software and filed in as usual. The beauty of this version is that additional attributes like &lt;tt&gt;[BuggyCustomTracker("http://mytracker.com", "bugzilla3.0")]&lt;/tt&gt; could allow developers to easily integrate automatic bug-reporting, if they provide a Web-API.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;If someone has any idea how to implement such a profiler or anything that will do the job, please drop me a note, because this thing is really tickling me.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;What could also sweeten up the life of a developer a little bit is integration of the bug-tracking software into the IDE but this is &lt;a href="http://wiki.mozilla.org/Bugzilla:Addons#IDE_integration"&gt;nothing new&lt;/a&gt;, although it is still missing in MonoDevelop.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-2871086682047870019?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/2871086682047870019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=2871086682047870019' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/2871086682047870019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/2871086682047870019'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/06/stand-alone-bugtracking.html' title='Stand-alone bugtracking...'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-658446095361258926</id><published>2007-06-15T16:50:00.000+02:00</published><updated>2007-06-15T16:54:16.325+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personal'/><title type='text'>Yehaw! Finally Done!</title><content type='html'>Today I've had the last test of my Fachhochschulreife-Prüfung (If I pass this test I'll be allowed to study at any University of applied sciences). One year of studying is now over and I'll have more time again for my hobbies and friends :-) YEHAW!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-658446095361258926?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/658446095361258926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=658446095361258926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/658446095361258926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/658446095361258926'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/06/yehaw-finally-done.html' title='Yehaw! Finally Done!'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-3275024268109511490</id><published>2007-06-01T11:54:00.000+02:00</published><updated>2007-06-01T13:24:05.815+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><category scheme='http://www.blogger.com/atom/ns#' term='Mono'/><title type='text'>Does the Rush to Open-Source really worry .Net Developers?</title><content type='html'>In Germany there is the &lt;a href="http://www.linuxtag.org/2007/en/home/welcome.html"&gt;LinuxTag2007-Conference&lt;/a&gt; right now. During this Conference the German administration announced to enter a Proposal to the German parliament which will force the utilization of open standards within the government. Their goal has been, to strengthen the open-source market for small and middle-sized companies within Germany since those US-American proprietary-source "big-shots"  like MS or IBM do not help the German economy much. They especially declared the usage of ODF over MS products.&lt;br /&gt;&lt;br /&gt;So far this looks like an quite good outcome of this LinuxTag2007 however there has been one statement from Dr. Pablo Mentzinis from the &lt;a href="http://www.bitkom.org/en/Default.aspx"&gt;Bitkom-Association&lt;/a&gt; that caught my attention.&lt;br /&gt;&lt;blockquote&gt;Mentzinis placed an emphasis on the worries, the open source boom caused those companies which decided to do their software development with .Net.&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Note from the author: I translated the quote from the heise.de/open article.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;It is a pity that the article does not state which worries he thinks those companies have. My guess is he is thinking about one of the following. (Please drop a note or leave a comment if you think I'm missing something)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Patent claims and all this FUD-Spreading.&lt;sup&gt;1&lt;/sup&gt;&lt;/li&gt;&lt;li&gt;.Net runs only on Windows&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;While the first one is more a legal matter and I'm certainly no expert on that I would like to comment on the second. I can imagine that a lot of those worries evolve from either unawareness of Mono or the thought that Mono, as a .Net platform, is yet not ready for business applications because it is missing some of the features MS .Net provides (e.g. the Debugger, ClickOnce, MSI-Softare-Deployment). What they do not know is that Mono-World does have alternatives which do roughly the same on Linux, and how much of .Net is supported. The Mono-Project tries to address these issues by creating &lt;a href="http://www.mono-project.com/Guide:_Porting_Winforms_Applications"&gt;porting guides&lt;/a&gt; and a &lt;a href="http://www.mono-project.com/MoMA"&gt;Mono Migration Analyzer&lt;/a&gt; but still it does not seem that there are a lot more people now trying to port their applications or to develop cross platform applications wit Mono and .Net.&lt;br /&gt;&lt;br /&gt;However as the rush to open source continues and if it is true that .Net-Companies have severe sorrows about it, this could mean a big chance for Mono to show it's capabilities and wash the sorrows away. (At least if we knew what these sorrows were.)&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;span style="font-weight: bold;"&gt;Footnotes:&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I know that the MS-Novell-Contract should have solved all those problems for Mono but it still seems like a highly controversial topic.&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Sources:&lt;/span&gt; &lt;a href="http://www.heise.de/open/artikel/90475/from/rss09"&gt;http://www.heise.de/open/artikel/90475/from/rss09&lt;/a&gt; (German)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-3275024268109511490?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/3275024268109511490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=3275024268109511490' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/3275024268109511490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/3275024268109511490'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/06/does-rush-to-open-source-really-worry.html' title='Does the Rush to Open-Source really worry .Net Developers?'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-7956374554877539993</id><published>2007-05-30T20:51:00.000+02:00</published><updated>2007-05-30T21:27:32.455+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Mono'/><title type='text'>The shortuct to Know-How is documentation</title><content type='html'>It is funny to see the difference between the &lt;a href="http://dir.gmane.org/gmane.comp.gnome.mono.devel"&gt;developer-list&lt;/a&gt; of mono and the &lt;a href="http://dir.gmane.org/gmane.comp.gnome.mono.documentation"&gt;documentation list&lt;/a&gt;. According to Gmane the developer list contains 10-15 messages per day while the documentation list is between zero and one.&lt;br /&gt;&lt;br /&gt;It is especially funny when looking at the senders of the whole month May with more then two posts:&lt;br /&gt;- Adrien Dessemond&lt;br /&gt;- Miguel de Icaza&lt;br /&gt;- me&lt;br /&gt;&lt;br /&gt;Miguel de Icaza once said that there has always been a problem with documentation of Mono. Nobody wanted to write one, but why? I know it's a difficult and time consuming task but it's something I like to do to give my projects some polish. I consider an undocumented project an unfinished one. And he also wrote something interesting:&lt;br /&gt;&lt;blockquote&gt;Developers should pay special attention when they write code to ensure that features are properly documented: if a feature is not documented, the feature should be considered non-existent and we should consider the work as wasted effort.&lt;br /&gt;&lt;small&gt;from: &lt;a href="http://mono-project.com/NovellTeamGoals#Documentation"&gt;http://mono-project.com/NovellTeamGoals&lt;/a&gt;&lt;/small&gt;&lt;/blockquote&gt;&lt;br /&gt;So please take the time and write &lt;a href="http://www.techscribe.co.uk/techw/whatis.htm"&gt;good&lt;/a&gt;, &lt;a href="http://www.dr-zeller.com/00Images/Fun/2lukrd.jpg"&gt;easy to understand&lt;/a&gt; and most of it all, complete documentation as this helps your users, other developers and of course &lt;span style="font-weight: bold;"&gt;yourself as well&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Just think of an case where you needed to fix something in an one year old project, all your inside knowledge was gone and you needed to rely on your own documentation. Good project documentation can save you the pain to go through hundreds of source-files just be looking into a single document. Hours of stupid try-and-error approaches could have been spared by one good Tutorial or Walkthrough.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-7956374554877539993?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/7956374554877539993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=7956374554877539993' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/7956374554877539993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/7956374554877539993'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/05/shortuct-to-know-how-is-documentation.html' title='The shortuct to Know-How is documentation'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-4721044457940661658</id><published>2007-05-25T18:04:00.000+02:00</published><updated>2007-05-25T18:47:20.237+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>How to organize your source-files properly?</title><content type='html'>While it is pretty well discussed how to organize your source-code (where to set parentheses and line breaks, order of sorting members, etc.) there's no word about how to organize your source-files.&lt;br /&gt;&lt;br /&gt;I myself am thinking about using the following layout for my projects:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$(Project) // Contains build files&lt;br /&gt; bin // For binaries&lt;br /&gt; $(Sub Projects) // Same layout as parent project&lt;br /&gt; res // Resources&lt;br /&gt; src // Contains source-files with the Project name as namespace&lt;br /&gt;     $(Subnamespaces)&lt;br /&gt; test // parent for tests for this project.&lt;br /&gt;     src // Test Source&lt;br /&gt;     result // dumps nunit results in this folder&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;But the problem with such a layout is that is not fully supported by IDE's like &lt;a href="http://monodevelop.com/"&gt;MonoDevelop&lt;/a&gt;, &lt;a href="http://sharpdevelop.net/OpenSource/SD/Default.aspx"&gt;SharpDevelop&lt;/a&gt; and &lt;a href="http://msdn2.microsoft.com/en-us/vstudio/default.aspx"&gt;Visual Studio&lt;/a&gt;. They use an layout like this:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;$(Solution)&lt;br /&gt; $(Project) // can appear multiple time&lt;br /&gt;     bin // Binaries with debug and release subfolders for each build-configuration&lt;br /&gt;     IDE project files + source code in the same folder.&lt;br /&gt;     $(Subnamespace)&lt;br /&gt; $(Sub Solution) // Like solution&lt;/pre&gt;&lt;/blockquote&gt;These differences make things quite complicated when having a project with many Subprojects and -folders , they tend to create large and complicated Solution trees in the IDE.&lt;br /&gt;&lt;br /&gt;Therefore in my opinion IDE should allow to define their source-layout more freely to give developers the change to organize their files the way they like it because this "One-Layout-Fits-All" paradigm is not working all the time (at least it does not for me).&lt;br /&gt;&lt;br /&gt;However despite of that there is still the question if there isn't any way to organize the files in a different way, for example how Mono does this. They use a top directory for each dll in their class library sources containing folders named after the full namespache of the files it contains. While this is a pretty clear structure it results in having long folder names when having a very vertical namespace structure.&lt;br /&gt;&lt;br /&gt;So the question how to organize the source-files still remains....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-4721044457940661658?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/4721044457940661658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=4721044457940661658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/4721044457940661658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/4721044457940661658'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/05/how-to-organize-your-source-files.html' title='How to organize your source-files properly?'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-8186682906836015551</id><published>2007-05-18T17:36:00.000+02:00</published><updated>2007-05-18T17:55:45.841+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Mono'/><title type='text'>Getting my hands dirty with Mono.Addins</title><content type='html'>It is not really one of those life changing experiences but still something noteworthy (at least if you have the right audience).&lt;br /&gt;&lt;br /&gt;Today I've toyed a little bit with &lt;a href="http://www.mono-project.com/Mono.Addins"&gt;Mono.Addins&lt;/a&gt;, a Addin-Framework based on Mono (but it works under .Net too) and I must admit I'm quite impressed. At first it seems like an hell of a beast to handle (I even could not create an error-message on purpose) but after a couple of hours it's true beauty has been revealed. Those .addin manifests give developers the chance to fully configure their Addins and how they should behave (e.g. and addin should only be loaded if a certain condition is met).&lt;br /&gt;&lt;br /&gt;But still it is not (yet) flawless. When running .Net 2.0 Apps with Mono.Addins a Warning about the RuntimeCompatabilityAttribute is being displayed. This can be fixed by compiling Mono.Addins against the .Net 2.0 Framework but due to an reason unknown to me Mono.Addins is only being built against the .Net 1.1 Framework at the moment.&lt;br /&gt;&lt;br /&gt;Beside of that it is a very cool piece of software and at last when &lt;a href="http://foodformonkeys.blogspot.com/2007/05/monoaddins-keeps-growing.html"&gt;this cool MonoDevelop-Extension&lt;/a&gt; comes out it's definitely worth checking out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-8186682906836015551?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/8186682906836015551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=8186682906836015551' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/8186682906836015551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/8186682906836015551'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/05/getting-my-hands-dirty-with-monoaddins.html' title='Getting my hands dirty with Mono.Addins'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-9187345509529568861</id><published>2007-05-10T19:56:00.000+02:00</published><updated>2007-05-10T20:03:04.583+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>We're still not any smarter....</title><content type='html'>This year I got something special for my birthday. An old game which has already been played by the Greek. It has become very popular at the of Sokrates. And as I've already said in the title, more than two thousand years later, we're still not any smarter. Most of the people will fail solving this game with only one try, despite the fact that our civilization is now regarded to be much more educated and "smarter". If you don't believe me, &lt;a href="http://www.darkfish.com/pentalpha/Pentalpha.html"&gt;play the game yourself&lt;/a&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-9187345509529568861?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/9187345509529568861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=9187345509529568861' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/9187345509529568861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/9187345509529568861'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/05/were-still-not-any-smarter.html' title='We&apos;re still not any smarter....'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-5651197864804861337</id><published>2007-04-29T21:59:00.000+02:00</published><updated>2007-04-29T22:07:23.282+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Looking for a new virtual machine</title><content type='html'>It's again one of those experiences where first think hey, thats great but after you get to know it a little bit better it's not what it seemed to be in the first place.&lt;br /&gt;&lt;br /&gt;That's what I was thinking when I first laid my hands on &lt;a href="http://fabrice.bellard.free.fr/qemu/index.html"&gt;Qemu&lt;/a&gt;. Seemed to be a quite nice vm, which worked quite well, was (after the installation of the accelerator kqemu) fairly fast, nothing to fancy, could not boot my WinXP-Installation with it but that was not a turn-off for me since none of the vm-software I was looking at could do this.&lt;br /&gt;&lt;br /&gt;But, there one thing that is annoying my very much. When running my newly installed WinXP-Image with Qemu I can not install the .net framework. I always encounter some mysterious errors. Therefore I am now looking for something new. Maybe I'll take a look at the vm-ware server this time (or I'll wait till xen can boot my XP-Installation but this does not seem to happen anytime soon :-( )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-5651197864804861337?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/5651197864804861337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=5651197864804861337' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/5651197864804861337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/5651197864804861337'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/04/looking-for-new-virtual-machine.html' title='Looking for a new virtual machine'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-8583930781560770559</id><published>2007-04-25T18:23:00.000+02:00</published><updated>2007-04-30T18:53:12.759+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Mono'/><title type='text'>Monocov and my contribution to it.</title><content type='html'>Well it's been a while since I posted last but I, as always, I've been busy (We all are, aren't we?)&lt;br /&gt;&lt;br /&gt;However I recently got my hands on &lt;a href="http://mono-project.com/Code_Coverage"&gt;monocov&lt;/a&gt; a &lt;a href="http://en.wikipedia.org/wiki/Code_coverage"&gt;Code-Coverage&lt;/a&gt; Analysis Tool for &lt;a href="http://mono-project.com/Main_Page"&gt;Mono&lt;/a&gt;. The first impression was quite good it worked quite well but then, when I tried to run my &lt;a href="http://www.nunit.org/"&gt;NUnit&lt;/a&gt; tests with monocov attached things started to get interesting, because attaching monocov to the NUnit-Console Runner didn't work as expected so I needed to write my own runner:&lt;blockquote&gt;&lt;span style="color: rgb(0, 102, 0);font-family:courier new;" &gt;#if CODE_COVERAGE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;using&lt;/span&gt; NUnit.Core;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;using&lt;/span&gt; System;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;using&lt;/span&gt; System.Reflection;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;namespace&lt;/span&gt; MyApp.Test {&lt;/span&gt;&lt;br /&gt;&lt;span style="padding-left: 20px;font-family:courier new;" &gt;&lt;span style="color: rgb(0, 0, 153);"&gt;  public class&lt;/span&gt; TestMain {&lt;/span&gt;&lt;br /&gt;&lt;span style="padding-left: 40px;font-family:courier new;" &gt;&lt;span style="color: rgb(0, 0, 153);"&gt;    public static void&lt;/span&gt; Main(string[] args) {&lt;/span&gt;&lt;br /&gt;&lt;span style="padding-left: 60px;font-family:courier new;" &gt;      SimpleTestRunner s = &lt;span style="color: rgb(0, 0, 153);"&gt;new&lt;/span&gt; SimpleTestRunner();&lt;/span&gt;&lt;br /&gt;&lt;span style="padding-left: 60px;font-family:courier new;" &gt;      s.Load(Assembly.GetExecutingAssembly().Location);&lt;/span&gt;&lt;br /&gt;&lt;span style="padding-left: 60px;font-family:courier new;" &gt;      s.Run(&lt;span style="color: rgb(0, 0, 153);"&gt;new&lt;/span&gt; NullListener());&lt;/span&gt;&lt;br /&gt;&lt;span style="padding-left: 40px;font-family:courier new;" &gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="padding-left: 20px;font-family:courier new;" &gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);font-family:courier new;" &gt;#endif&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Now I this file needed to be included into the Test-Lib of my app and the compiler must be set to produce a exe file. After that monocov could be attached to the test-lib as usual and it all worked perfectly fine.&lt;br /&gt;&lt;br /&gt;At least until I tried to run the first Application containing Generic-Classes.... Because monocov dumps the coverage data in a xml File those files however contain the name of the class and the "&lt;" and "&gt;" in generic names were not escaped properly so that this file was not well formatted and could therefore not be loaded by xml-parsers. Therefore I made a first quick fix trying to escape them as well but this has been the wrong solution since these files could be loaded, but the monocov-gui could not link them to their Assembly since classes were named "Class&lt;type1,&gt;&lt;double,string&gt;&lt;type1,&gt;" in the monocov output and "Class`2" in the Assembly so this patch needed to be changed. But it is now in &lt;a href="http://anonsvn.mono-project.com/viewcvs/trunk/monocov/coverage.c?rev=76114&amp;r1=76047&amp;amp;r2=76114"&gt;svn&lt;/a&gt;, as well as a short &lt;a href="http://anonsvn.mono-project.com/viewcvs/trunk/monocov/gui/gtk/CoverageView.cs?rev=76185&amp;r1=68506&amp;amp;r2=76185"&gt;patch I have made to the monocov-gui&lt;/a&gt;.&lt;/type1,&gt;&lt;/double,string&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-8583930781560770559?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/8583930781560770559/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=8583930781560770559' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/8583930781560770559'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/8583930781560770559'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/04/monocov-and-my-contribution-to-it.html' title='Monocov and my contribution to it.'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5503583455244392541.post-9182558905800497012</id><published>2007-04-12T18:48:00.000+02:00</published><updated>2007-04-29T17:45:06.639+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Ähm Hello, I guess?</title><content type='html'>Well, I'ts been a while since I blogged about something, and I skipped it after about 5 entries if I'm not mistaken, but let's see if it's gonna work this time.&lt;br /&gt;&lt;br /&gt;First I'd like to introduce myself a little bit, I'm Valentin, almost 20 years old and I'm from germany. I'm a software developer who's now back in school to achieve a higher graduation so that I can study computer science in university. And I'm maybe the first programmer who does not have his own website nor any project on &lt;a href="http://sourceforge.net/"&gt;sourceforge.net&lt;/a&gt; or something similar, but hey, at lest I've got a blog now. ;-)&lt;br /&gt;&lt;br /&gt;And by the way I do still contribute to OpenSource, there are some contribuitions I made to the &lt;a href="http://mono-project.com/ThreadsBeginnersGuide"&gt;Mono-Wiki  &lt;/a&gt;&lt;span style="font-size:85%;"&gt;(I have to mention here, that I've written the top part, everything after "Passing parameters to threads" was written by &lt;span class="user"&gt;&lt;/span&gt;&lt;span class="new"&gt;Luciano Callero&lt;/span&gt;.)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5503583455244392541-9182558905800497012?l=achblah.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://achblah.blogspot.com/feeds/9182558905800497012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5503583455244392541&amp;postID=9182558905800497012' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/9182558905800497012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5503583455244392541/posts/default/9182558905800497012'/><link rel='alternate' type='text/html' href='http://achblah.blogspot.com/2007/04/hm-hello-i-guess.html' title='Ähm Hello, I guess?'/><author><name>Valentin Sawadski</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-jL4YdKNYmB0/AAAAAAAAAAI/AAAAAAAAAL4/ha61AEM19aQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
