<?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/opensearch/1.1/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0' xmlns:gd='http://schemas.google.com/g/2005' gd:etag='W/&quot;DU8FSX48eip7ImA9Wx5aFU8.&quot;'><id>tag:blogger.com,1999:blog-7578927</id><updated>2010-11-12T03:10:18.072+01:00</updated><title>the work blog of p-petter</title><subtitle type='html'>Mostly links I find useful in my work</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default?redirect=false&amp;v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>58</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry gd:etag='W/&quot;Dk4HQn8zfyp7ImA9WBBSGEk.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-6453819555565843685</id><published>2006-10-26T08:09:00.000+02:00</published><updated>2006-10-26T08:42:13.187+02:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2006-10-26T08:42:13.187+02:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><title>Delphi: Use LIBSUFFIX to Avoid Package Versioning Headaches</title><content type='html'>Craig Stuntz writes about using the rather unknown {$LIBSUFFIX} directive to Avoid Package Versioning Headaches in Delphi:&lt;blockquote&gt;In early versions of Delphi, you pretty much had to put the VCL version number into the name of the package. This was because if you were going to support multiple versions of the VCL then you needed to create separate BPL files for each version of the VCL.&lt;br /&gt;&lt;br /&gt;Starting with Delphi 6, you can use a single DPK file without reference to the VCL number and then use the {$LIBSUFFIX } directive to have the output BPL file include the appropriate VCL version. The other nice benefit of this is that the DCP file for the package does NOT include the VCL version. Therefore, any packages that require your package, do NOT need to be edited when recompiled for a new version of Delphi.&lt;/blockquote&gt;Full article: &lt;a href="http://blogs.teamb.com/craigstuntz/archive/2006/10/25/libsuffix.aspx"&gt;Here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-6453819555565843685?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/6453819555565843685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=6453819555565843685' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/6453819555565843685?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/6453819555565843685?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2006/10/delphi-use-libsuffix-to-avoid-package.html' title='Delphi: Use LIBSUFFIX to Avoid Package Versioning Headaches'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;D0cDSXg5fSp7ImA9WBBSFko.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-4880061323363836658</id><published>2006-10-24T09:24:00.000+02:00</published><updated>2006-10-24T09:31:18.625+02:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2006-10-24T09:31:18.625+02:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title>Delphi: More articles on Windows Vista compability</title><content type='html'>&lt;a href="http://bdn.borland.com/sameauthor/33749"&gt;David Intersimone&lt;/a&gt; writes:&lt;blockquote&gt;TMS Software, a Borland Technology Partner (BTP) has posted a series of technical articles showing Delphi 2006 developers how they can make their applications ready for Vista today.&lt;br /&gt;&lt;br /&gt;As of this posting the following articles are available:&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.tmssoftware.com/atbdev5.htm"&gt;Using the new Windows Vista TaskDialog from Delphi 2006&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.tmssoftware.com/atbdev6.htm"&gt;The new File Open / Save dialogs in Windows Vista&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.tmssoftware.com/atbdev7.htm"&gt;Taking the new Windows Vista TaskDialog one step further&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-4880061323363836658?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/4880061323363836658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=4880061323363836658' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/4880061323363836658?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/4880061323363836658?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2006/10/delphi-more-articles-on-windows-vista.html' title='Delphi: More articles on Windows Vista compability'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CkYCQnw_eip7ImA9WBBSEkk.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-8764662406943185016</id><published>2006-10-19T08:39:00.000+02:00</published><updated>2006-10-19T08:42:43.242+02:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2006-10-19T08:42:43.242+02:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='vista'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title>Delphi: Creating Windows Vista Ready Applications with Delphi</title><content type='html'>Nathanial Woolls has written a great article called &lt;a href="http://www.installationexcellence.com/articles/VistaWithDelphi/index.html"&gt;Creating Windows Vista Ready Applications with Delphi&lt;/a&gt; which shows how to make your Delphi application fit in better with Vista's new look.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-8764662406943185016?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/8764662406943185016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=8764662406943185016' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/8764662406943185016?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/8764662406943185016?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2006/10/delphi-creating-windows-vista-ready.html' title='Delphi: Creating Windows Vista Ready Applications with Delphi'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUQMR389fyp7ImA9WBBSEk4.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-4619106293796722263</id><published>2006-10-19T07:46:00.000+02:00</published><updated>2006-10-19T07:56:26.167+02:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2006-10-19T07:56:26.167+02:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title>Windows: Creating an image of an existing Vista installation stripped of machine-specific information</title><content type='html'>Bilal Aslam, the Shell’s Deployment Program Manager of Windows Vista, writes about how to capture an image of an already customized installation of Windows Vista so it can be deployed on any PC.&lt;blockquote&gt;This is possible using two great tools: &lt;strong&gt;sysprep&lt;/strong&gt; and &lt;strong&gt;ImageX&lt;/strong&gt;. /.../ The System Preparation (Sysprep) tool prepares an installation of Windows for duplication, auditing, and customer delivery. Duplication, also called imaging, [using ImageX in this case] enables you to capture a customized Windows image that you can reuse throughout an organization.&lt;br /&gt;&lt;br /&gt;So in other words, sysprep can 'generalize' a system by removing machine-specific information, files and registry settings from it.&lt;/blockquote&gt;Full article: &lt;a href="http://shellrevealed.com/blogs/shellblog/archive/2006/10/18/Part-3-Dr.-Unattend_3A00_-Sysprep-and-ImageX-or-how-to-capture-an-image-by-its-toe.aspx"&gt;Part 3 Dr. Unattend: Sysprep and ImageX or how to capture an image by its toe&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-4619106293796722263?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/4619106293796722263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=4619106293796722263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/4619106293796722263?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/4619106293796722263?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2006/10/windows-creating-image-of-existing.html' title='Windows: Creating an image of an existing Vista installation stripped of machine-specific information'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEMNQHc5fip7ImA9WBJWFEo.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-114547645521515833</id><published>2006-04-19T21:52:00.000+02:00</published><updated>2006-04-19T21:54:51.926+02:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2006-04-19T21:54:51.926+02:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title>Why is programming fun?</title><content type='html'>I stumbled upon a great quote by Frederick P. Brooks. It’s from his book, &lt;a href="http://www.amazon.com/gp/product/0201835959/"&gt;The Mythical Man-Month&lt;/a&gt;, originally written in 1975 (I haven’t read it):&lt;blockquote&gt;Why is programming fun? What delights may its practioner expect as his reward? &lt;br /&gt;&lt;br /&gt;First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. I think this delight must be an image of God's delight in making things, a delight shown in the distinctiveness of each leaf and each snowflake. &lt;br /&gt;&lt;br /&gt;Second is the pleasure of making things that are useful to other people. Deep within, we want others to use our work and to find it helpful. In this respect the programming system is not essentially different from the child's first clay pencil holder "for Daddy's office." &lt;br /&gt;&lt;br /&gt;Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. The programmed computer has all the fascination of the pinball machine or the jukebox mechanism, carried to the ultimate. &lt;br /&gt;&lt;br /&gt;Fourth is the joy of always learning, which springs from the nonrepeating nature of the task. In one way or another the problem is ever new, and its solver learns something: sometimes practical, sometimes theoretical, and sometimes both. &lt;br /&gt;&lt;br /&gt;Finally, there is the delight of working in such a tractable medium. The programmer, &lt;br /&gt;like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures. (As we shall see later, this tractability has its own problems.) &lt;br /&gt;&lt;br /&gt;Yet the program construct, unlike the poet's words, is real in the sense that it moves and works, producing visible outputs separately from the construct itself. It prints results, draws pictures, produces sounds, moves arms. The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be. &lt;br /&gt;&lt;br /&gt;Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.&lt;/blockquote&gt;[via &lt;a href="http://www.codinghorror.com/blog/archives/000566.html"&gt;Coding Horror&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-114547645521515833?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/114547645521515833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=114547645521515833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/114547645521515833?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/114547645521515833?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2006/04/why-is-programming-fun.html' title='Why is programming fun?'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUEARHs6fip7ImA9WxdXGEk.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-114534423425221544</id><published>2006-04-18T09:10:00.001+02:00</published><updated>2008-06-30T18:34:05.516+02:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2008-06-30T18:34:05.516+02:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title>Firefox: Gmail chat not working</title><content type='html'>Had some trouble with getting Gmail chat (i.e. Google Talk) to work in Firefox. After logging in to Gmail, the "Quick Contacts" were never populated, all it said was "Loading..." and after a while it timed out. It worked fine in Internet Explorer as well as when I created a new Firefox user profile from scratch.&lt;br /&gt;&lt;br /&gt;How to solve the problem:&lt;ol&gt;&lt;li&gt;Write "about:config" (without quotation marks) in the address bar in your browser.&lt;/li&gt;&lt;li&gt;Write "dom.disable_image" (without quotation marks) in the Filter field.&lt;/li&gt;&lt;li&gt;If the value of "dom.disable_image_src_set" is TRUE, double click the row to change the value to FALSE.&lt;/li&gt;&lt;/ol&gt;Incidentally, this also solves the problem of the maps not displaying at &lt;a href="http://www.hitta.se"&gt;hitta.se&lt;/a&gt; (the instructions are translated from their &lt;a href="http://www.hitta.se/info/FAQTechnicalProblems.aspx"&gt;FAQ&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;UPDATE 2008-06-30&lt;/strong&gt;&lt;br /&gt;I've been getting some hits on this topic lately, and I just thought I'd mention that I wrote this &lt;em&gt;over two years ago&lt;/em&gt;! Firefox was only at version 1.5 then, I think. What I'm getting at is that I'm not sure whether this fix still works or not. So if there's anyone out there for which this advice has worked recently, I'd appreciate a comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-114534423425221544?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/114534423425221544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=114534423425221544' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/114534423425221544?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/114534423425221544?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2006/04/firefox-gmail-chat-not-working.html' title='Firefox: Gmail chat not working'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>7</thr:total></entry><entry gd:etag='W/&quot;DEAAR3wzeyp7ImA9WBJSGEk.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-114184674627149915</id><published>2006-03-08T20:37:00.000+01:00</published><updated>2006-03-08T20:39:06.283+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2006-03-08T20:39:06.283+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='programming'/><title>Stevey's Drunken Blog Rants</title><content type='html'>I stumbled upon &lt;a href="http://www.cabochon.com/~stevey/blog-rants/"&gt;Stevey's Drunken Blog Rants&lt;/a&gt; a couple of days ago (I forget from where).&lt;br /&gt;&lt;br /&gt;It has some really interesting articles, even if I didn’t read them all. Those that I have read and can recommend are the following (listed in the approximate order in which I read them):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cabochon.com/~stevey/blog-rants/tour-de-babel.html"&gt;Tour de Babel&lt;/a&gt; "A very drunken blog rant that I evidently never published; I ran across it in my drafts. Tours (and bashes) C, C++, Lisp, Perl, Ruby, Python."&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cabochon.com/~stevey/blog-rants/polymorphism-fails.html"&gt;When Polymorphism Fails&lt;/a&gt; "Essay on how polymorphism doesn't work in sufficiently open systems"&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cabochon.com/~stevey/blog-rants/singleton-stupid.html"&gt;Singleton Considered Stupid&lt;/a&gt; "A somewhat clumsy early essay about how the Singleton pattern is often a sign of poor OO design." &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cabochon.com/~stevey/blog-rants/win32-ruby-scripting.html"&gt;Scripting Windows Apps&lt;/a&gt; "Results of some early experiments with scripting Windows apps using Ruby." &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cabochon.com/~stevey/blog-rants/blog-ancient-perl.html"&gt;Ancient Languages: Perl&lt;/a&gt; "A whole lot of very mean Perl-bashing"&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cabochon.com/~stevey/blog-rants/the-emacs-problem.html"&gt;The Emacs Problem&lt;/a&gt; "Various musings on XML and text processing." &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cabochon.com/~stevey/blog-rants/next-big-thing.html"&gt;The Next Big Thing&lt;/a&gt; "Some discussion of Java's type system, and speculation about which language will be the successor to Java." &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cabochon.com/~stevey/blog-rants/strong-weak-typing.html"&gt;Is Weak Typing Strong Enough?&lt;/a&gt; "Summary of a multi-year showdown at Amazon between two sets of programmers working on the same problem in Java and Perl." &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cabochon.com/~stevey/blog-rants/digging-into-ruby-symbols.html"&gt; Digging Into Ruby Symbols&lt;/a&gt; "An attempt to explain Ruby's oft-misunderstood first-class symbols in terms of their role in Lisp code." &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cabochon.com/~stevey/blog-rants/duck-season.html"&gt;Duck Season&lt;/a&gt; “More discussion of Lisp and other languages”&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-114184674627149915?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/114184674627149915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=114184674627149915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/114184674627149915?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/114184674627149915?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2006/03/steveys-drunken-blog-rants.html' title='Stevey&apos;s Drunken Blog Rants'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEcARXo8eyp7ImA9WBJSGEk.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-114184585269742936</id><published>2006-03-08T20:22:00.000+01:00</published><updated>2006-03-08T20:27:24.473+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2006-03-08T20:27:24.473+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title>C#:  New language features in C# 3.0</title><content type='html'>Niek writes about &lt;a href="http://www.codepost.org/view/126"&gt;new language features in C# 3.0&lt;/a&gt;. I especially like the anonymous types – you’re able to construct a new untyped object out of the blue, like this: &lt;br /&gt;&lt;pre&gt;&lt;code&gt;var o = new { Name = "Niek"&lt;br /&gt;  , Gender = "Male"&lt;br /&gt;  , Active = true &lt;br /&gt;  };&lt;/code&gt;&lt;/pre&gt;Cool, huh?&lt;br /&gt;&lt;br /&gt;But I was surprised that the adding of static methods to existing classes was new. I mean, Delphi’s had this for .NET since version 8 (released in 2003), with its class helpers. And if I remember correctly, new in Delphi 2006 is that it’s also supported for Win32 (it was buggy and unsupported in Delphi 2005).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-114184585269742936?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/114184585269742936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=114184585269742936' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/114184585269742936?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/114184585269742936?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2006/03/c-new-language-features-in-c-30.html' title='C#:  New language features in C# 3.0'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;AkIERnY4fip7ImA9WBVXFUk.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-113295418229489568</id><published>2005-11-25T22:28:00.000+01:00</published><updated>2005-12-14T09:21:47.836+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2005-12-14T09:21:47.836+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title>Windows: Problems connecting a K750i via USB</title><content type='html'>I had trouble when connecting a K750i via USB – it didn’t show up as new hardware on the computer in question. But it worked fine on another one (both running Windows XP SP2). &lt;br /&gt;&lt;br /&gt;The solution in this case was the following:&lt;br /&gt;Going to Control Panel &gt; Administrative Tools &gt; Computer Management &gt; Device Manager revealed five K750i items marked yellow. Right-clicking on each one of them and selecting "Update Driver..." and following the instructions solved the problem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-113295418229489568?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/113295418229489568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=113295418229489568' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/113295418229489568?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/113295418229489568?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2005/11/windows-problems-connecting-k750i-via.html' title='Windows: Problems connecting a K750i via USB'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>1</thr:total></entry><entry gd:etag='W/&quot;CEcERH0yeyp7ImA9WBVSFU8.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-113082801262083737</id><published>2005-11-01T07:52:00.000+01:00</published><updated>2005-11-09T08:40:05.393+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2005-11-09T08:40:05.393+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title>Windows: Getting rid of strange colours during video playback</title><content type='html'>&lt;a href="http://distribucon.com/blog/archive/2005/10/31/805.aspx"&gt;Dan Miser&lt;/a&gt; shows a way to solve the problem of strange colours during WMV playback: &lt;br /&gt;&lt;dd&gt;&lt;br /&gt;In Windows Media Player, go to Tools | Options | Performance and turn the Video acceleration setting down to None.&lt;br /&gt;&lt;/dd&gt;&lt;br /&gt;We've been having the same problem here at work, but not just for WMV files in the browser - always, and for &lt;em&gt;all&lt;/em&gt; video formats. Well, this solved our problem, at least for WMP. Now, does anyone know how to achieve the same for Media Player Classic (because the problem still remains there)?&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;UPDATE 2005-11-09&lt;/strong&gt;&lt;br /&gt;I found the actual solution to the problem: It was the video driver settings. &lt;br /&gt;Once fixed it works in either player, and you can restore the video acceleration setting to full in WMP.&lt;br /&gt;&lt;br /&gt;Here's how I did it: [Note that these instructions only apply if you use drivers from S3.]:&lt;ol&gt;&lt;li&gt;Start playing a video file using your favourite media player [this was needed because otherwise I got an error message during step 6 and step 7 wasn't made available].&lt;/li&gt;&lt;li&gt;Start the Control Panel.&lt;/li&gt;&lt;li&gt;Select "Display".&lt;/li&gt;&lt;li&gt;Go to the "Settings" tab.&lt;/li&gt;&lt;li&gt;Press the "Advanced" button.&lt;/li&gt;&lt;li&gt;Go to the "S3Overlay" tab.&lt;/li&gt;&lt;li&gt;Press the "Standard" button. You will see video switch back to normal colours.&lt;/li&gt;&lt;li&gt;Press OK.&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/7578927-113082801262083737?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/113082801262083737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=113082801262083737' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/113082801262083737?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/113082801262083737?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2005/11/windows-getting-rid-of-strange-colours.html' title='Windows: Getting rid of strange colours during video playback'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DkcMSHs_eyp7ImA9WBNVGUk.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-111881657334630199</id><published>2005-06-15T08:22:00.000+02:00</published><updated>2006-08-30T15:21:29.543+02:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2006-08-30T15:21:29.543+02:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='mssql'/><title>MS SQL Server: MSDE Install parameters</title><content type='html'>Don't know if I'll ever need this but it may come in handy:&lt;br /&gt;&lt;br /&gt;Ben Reichelt's post on &lt;a href="http://benreichelt.net/blog/2005/6/14/Basic-MSDE-2000-Install-parameters/"&gt;Basic MSDE 2000 Install parameters&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2006-08-30&lt;/strong&gt;&lt;br /&gt;Updated the link.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-111881657334630199?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/111881657334630199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=111881657334630199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/111881657334630199?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/111881657334630199?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2005/06/ms-sql-server-msde-install-parameters.html' title='MS SQL Server: MSDE Install parameters'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DkAGSXkyfip7ImA9WBdQEE8.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-111302472879465281</id><published>2005-04-09T07:30:00.000+02:00</published><updated>2005-04-09T07:32:08.796+02:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2005-04-09T07:32:08.796+02:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='mssql'/><title>MS SQL Server: SQL Packager</title><content type='html'>David Hayden &lt;a href="http://codebetter.com/blogs/david.hayden/archive/2005/04/08/61692.aspx"&gt;mentions SQL Packager by Red Gate Software&lt;/a&gt;:&lt;blockquote&gt;I have a client who has a database located on a 3rd party web host on the Internet.  I needed to get an exact copy of this database, schema and data, on my test PC, which is not connected to the Internet.  I had been putting off this task for the past couple of days as it just seemed like a monotonous task given the situation.&lt;br /&gt;/.../&lt;br /&gt;After downloading and installing SQL Packager, I just pointed it to my client's remote database and it's simple wizard-like interface walked me through the 4-step process that created a 452KB .NET executable that contained everything to re-create the database on my test PC.  I copied this executable to my USB drive, walked it over to my test PC, ran it, and it made an exact copy of the database on my local instance of SQL Server.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-111302472879465281?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/111302472879465281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=111302472879465281' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/111302472879465281?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/111302472879465281?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2005/04/ms-sql-server-sql-packager.html' title='MS SQL Server: SQL Packager'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DEcBSH06eCp7ImA9WBZaGEk.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110984605931099273</id><published>2005-03-03T11:33:00.000+01:00</published><updated>2005-03-03T11:34:19.310+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2005-03-03T11:34:19.310+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title>Delphi: Using ADO.NET in VCL for .NET</title><content type='html'>Dr. Bob shows how to use ADO.NET datasets together with .NET VCL datasets by using the &lt;code&gt;TADONETConnector&lt;/code&gt; component. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.drbob42.com/examines/examin62.htm"&gt;Full Article&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110984605931099273?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110984605931099273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110984605931099273' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110984605931099273?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110984605931099273?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2005/03/delphi-using-adonet-in-vcl-for-net.html' title='Delphi: Using ADO.NET in VCL for .NET'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEINQ3w8fip7ImA9WBZaFks.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110966259227219305</id><published>2005-03-01T08:34:00.000+01:00</published><updated>2005-03-01T08:36:32.276+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2005-03-01T08:36:32.276+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title>.NET: How to lie with .NET</title><content type='html'>&lt;a href="http://codebetter.com/blogs/geoff.appleby/"&gt;Geoff Appleby&lt;/a&gt; has an interesting post on how you can "lie" about the properties your class has. You do this by implementing the &lt;code&gt;ICustomTypeDescriptor&lt;/code&gt; interface. Very cool.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://codebetter.com/blogs/geoff.appleby/archive/2005/03/01/56195.aspx"&gt;Full article&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110966259227219305?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110966259227219305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110966259227219305' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110966259227219305?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110966259227219305?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2005/03/net-how-to-lie-with-net.html' title='.NET: How to lie with .NET'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DU4MRn46eCp7ImA9WBZaEEg.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110905798700978973</id><published>2005-02-22T08:35:00.000+01:00</published><updated>2005-02-22T08:39:47.010+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2005-02-22T08:39:47.010+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title>Windows: Faster than Alt+Tab</title><content type='html'>Sure, any self-respecting Windows user (that may be an oxymoron for some, I know) uses Alt+Tab to switch between programs. But did you know that there's a faster way:&lt;blockquote&gt;[If] you use ALT+ESC instead, you can switch between windows, without that annoying; but (at times) useful window showing up.&lt;/blockquote&gt;Friggin' awesome. "Hey mom, look! No Alt+Tab!"&lt;br /&gt;&lt;br /&gt;But wait! There's (a little) more:&lt;blockquote&gt;[You] can use a combination of ALT+TAB and ALT+ESC. So as you’re alt-tabbing between windows, quickly hit ALT-ESC and release the keyboard (needs some getting used to), to quickly “cancel” your alt+tab process.&lt;/blockquote&gt;[via &lt;a href="http://codebetter.com/blogs/sahil.malik/archive/2005/02/21/51300.aspx"&gt;Sahil Malik&lt;/a&gt;]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110905798700978973?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110905798700978973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110905798700978973' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110905798700978973?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110905798700978973?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2005/02/windows-faster-than-alttab.html' title='Windows: Faster than Alt+Tab'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>1</thr:total></entry><entry gd:etag='W/&quot;CkINR345fip7ImA9WBZVE0k.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110634059602848151</id><published>2005-01-21T21:49:00.000+01:00</published><updated>2005-01-21T21:49:56.026+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2005-01-21T21:49:56.026+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><title>Delphi: Global interface references in a TComponent</title><content type='html'>We've had some trouble using interface variables in our Delphi Win32 projects: We've gotten lots of Access Violations when a component (usually a form) is freed.&lt;br /&gt;&lt;br /&gt;We often have private global (to the form) interface variables like this &lt;code&gt;FFoo: IFoo&lt;/code&gt;. Since interfaces are reference counted we figured we wouldn't have to nil the reference as that would happen automatically which in turn would call the destructor. And we were right - that's the way it works.&lt;br /&gt;&lt;br /&gt;But when your implementor of &lt;code&gt;IFoo&lt;/code&gt; also contains a reference to a component that is owned by the form, you're heading for trouble: The &lt;code&gt;IFoo&lt;/code&gt; reference count is not decreased until after the form has destroyed all the components it owns. Thus you risk the &lt;code&gt;IFoo&lt;/code&gt;-implementor referencing a component that's not there any more. The solution is to explicitly &lt;code&gt;&lt;strong&gt;nil&lt;/strong&gt;&lt;/code&gt; the &lt;code&gt;IFoo&lt;/code&gt; reference in the form's destructor, before it calls &lt;code&gt;&lt;strong&gt;inherited&lt;/strong&gt;&lt;/code&gt;.&lt;br /&gt;&lt;br /&gt;We had already implemented this by trial and error, but we wheren't really sure of why it worked. I'm sure this is all old stuff to all real Delphi gurus, but it was a revelation to me. At least now I know &lt;em&gt;why&lt;/em&gt; the references need to be &lt;code&gt;&lt;strong&gt;nil&lt;/strong&gt;&lt;/code&gt;:ed.&lt;br /&gt;&lt;br /&gt;[I may of course be completely wrong about this. Maybe there's another explanation. Or maybe it's only part of a more complex one.]&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110634059602848151?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110634059602848151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110634059602848151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110634059602848151?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110634059602848151?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2005/01/delphi-global-interface-references-in.html' title='Delphi: Global interface references in a TComponent'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUAHQ3s8eyp7ImA9WBZVEk0.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110620773257170584</id><published>2005-01-20T08:53:00.000+01:00</published><updated>2005-01-20T08:55:32.573+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2005-01-20T08:55:32.573+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title>Delphi: Interface-to-interface casts</title><content type='html'>Hallvard Vassbotn has posted yet another part in his series &lt;a href="http://p-petter-work.blogspot.com/2004/09/delphi-win32-vs-net-casting-issues.html"&gt;Win32 vs. .NET casting issues in Delphi&lt;/a&gt;. This time it's on &lt;a href="http://hallvards.blogspot.com/2005/01/interface-to-interface-casts.html"&gt;Interface-to-interface casts&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;He specifically goes through how the following works on the various Delphi platforms (Delphi 8 .NET, Delphi 2005 .NET and Delphi 2005 Win32 and D7):&lt;ul&gt;&lt;li&gt;Interface as-casts&lt;/li&gt;&lt;li&gt;Interface hard-casts&lt;/li&gt;&lt;li&gt;Interface is-checks&lt;/li&gt;&lt;li&gt;Supports function&lt;/li&gt;&lt;li&gt;QueryInterface&lt;/li&gt;&lt;/ul&gt;Finally he provides a working code sample for all those environments that concretely shows how things work differently.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110620773257170584?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110620773257170584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110620773257170584' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110620773257170584?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110620773257170584?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2005/01/delphi-interface-to-interface-casts.html' title='Delphi: Interface-to-interface casts'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DUUBQnY8eyp7ImA9WBZXF0g.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110475721883757251</id><published>2005-01-03T13:56:00.000+01:00</published><updated>2005-01-03T14:00:53.873+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2005-01-03T14:00:53.873+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title>Firefox: Speed Up FireFox</title><content type='html'>&lt;a href="http://www.componentscience.net/csblog/PermaLink.aspx?guid=d484d1d9-4404-4dda-abb9-f47d7959334f"&gt;Phillip Blanton&lt;/a&gt; mentioned the hack a day article &lt;a href="http://www.hackaday.com/entry/1234000803024910/"&gt;Speed Up FireFox&lt;/a&gt;. I haven't tried it yet, but I will when I get home.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110475721883757251?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110475721883757251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110475721883757251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110475721883757251?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110475721883757251?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2005/01/firefox-speed-up-firefox.html' title='Firefox: Speed Up FireFox'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DkcHRHs_eyp7ImA9WBZXE00.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110430403554218623</id><published>2004-12-29T08:06:00.000+01:00</published><updated>2004-12-29T08:07:15.543+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2004-12-29T08:07:15.543+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title>.NET: Delphi and C# destructors</title><content type='html'>Hallvard Vassbotn has a very enlightening post on the &lt;a href="http://hallvards.blogspot.com/2004/12/delphi-vs-c-destructors.html"&gt;difference between Delphi and C# destructors&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110430403554218623?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110430403554218623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110430403554218623' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110430403554218623?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110430403554218623?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2004/12/net-delphi-and-c-destructors.html' title='.NET: Delphi and C# destructors'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUUGQ3kyfip7ImA9WBZRFks.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110266322279673764</id><published>2004-12-10T08:16:00.000+01:00</published><updated>2004-12-10T08:20:22.796+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2004-12-10T08:20:22.796+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><title>Delphi: Enumerating collections in Win32</title><content type='html'>&lt;a href="http://blogs.borland.com/danielp/archive/2004/12/09/2119.aspx"&gt;Daniel Polistchuck&lt;/a&gt; gives an example of how to implement support for the new &lt;font face="Courier New" size="2"&gt;for..in&lt;/font&gt; construct in Delphi 2005 in a collection class of your own. He also gives examples of how it works out-of-the-box for the built-in types.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110266322279673764?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110266322279673764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110266322279673764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110266322279673764?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110266322279673764?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2004/12/delphi-enumerating-collections-in.html' title='Delphi: Enumerating collections in Win32'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CUEGRHcyfip7ImA9WBZREUQ.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110219362599648423</id><published>2004-12-04T21:52:00.000+01:00</published><updated>2004-12-04T21:53:45.996+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2004-12-04T21:53:45.996+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='delphi'/><title>Delphi: SOAP bug using array of TByteDynarray</title><content type='html'>There's a bug in the Delphi SOAP source code when using parameters like:&lt;pre&gt;&lt;code&gt;type&lt;br /&gt;  MultiArray = array of TByteDynArray;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Deepak Shenoy &lt;a href="http://shenoyatwork.blogspot.com/2004/12/bug-in-delphi-soap-arrays-of.html"&gt;has a fix&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110219362599648423?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110219362599648423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110219362599648423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110219362599648423?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110219362599648423?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2004/12/delphi-soap-bug-using-array-of.html' title='Delphi: SOAP bug using array of TByteDynarray'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEQASHg8fip7ImA9WBZREEw.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110201234967567907</id><published>2004-12-02T19:30:00.000+01:00</published><updated>2004-12-02T19:32:29.676+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2004-12-02T19:32:29.676+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title>.NET: XmlSerializer PreCompiler Tool</title><content type='html'>Paul Ballard &lt;a href="http://www.theserverside.net/news/thread.tss?thread_id=30334"&gt;writes&lt;/a&gt;:&lt;blockquote&gt;Matthew Nolton and Chris Sells have joined forces to create a GUI tool that will try to serialize to XML a type that you have created and more importantly will generate useful errors if the type won't serialize. Another nice feature is that it actually shows you the C# source code generated when your type is serialized.&lt;br /&gt;&lt;br /&gt;Unfortunately, there are a number of ways for a serialization to fail with the XmlSerializer. No default public constructor, unknown dependencies, etc. At runtime the error messages you receive are not entirely useful in determining why the type won't serialize.&lt;br /&gt;&lt;br /&gt;/.../ [We] now have a tool that will allow us to test at design time to ensure that the types we create will serialize properly. It also provides us with the exact code generated by the XmlSerializer when it tries to serialize our type so that we have that to use to determine what the problem is.&lt;/blockquote&gt;&lt;a href="http://www.cybral.com/solutions/tools.htm#XmlPrecompiler"&gt;Link&lt;/a&gt;.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110201234967567907?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110201234967567907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110201234967567907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110201234967567907?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110201234967567907?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2004/12/net-xmlserializer-precompiler-tool.html' title='.NET: XmlSerializer PreCompiler Tool'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEUMRX4yeyp7ImA9WBZSF0Q.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110179228408511152</id><published>2004-11-30T06:22:00.000+01:00</published><updated>2004-11-30T06:24:44.093+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2004-11-30T06:24:44.093+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title>.NET: TestDriven.NET 1.0 released</title><content type='html'>&lt;a href="http://samgentile.com/blog/archive/2004/11/29/12342.aspx"&gt;Sam Gentile&lt;/a&gt; mentions that &lt;a href="http://www.testdriven.net/"&gt;TestDriven.NET 1.00 &lt;/a&gt;has been released.&lt;br /&gt;&lt;blockquote&gt;TestDriven.NET is a free, zero friction unit testing add-in for Microsoft Visual Studio .NET. The current release /.../ supports multiple unit testing frameworks including NUnit, MbUnit, csUnit and MS Team System and is fully compatible with all versions of the .NET Framework.&lt;br /&gt;&lt;br /&gt;TestDriven.NET allows a developer to run (or debug!) their tests from within Visual Studio with a single-click.&lt;br /&gt;&lt;br /&gt;/.../ developed for a number of years under the name NUnitAddIn.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110179228408511152?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110179228408511152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110179228408511152' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110179228408511152?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110179228408511152?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2004/11/net-testdrivennet-10-released.html' title='.NET: TestDriven.NET 1.0 released'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;DkYFQXk6eCp7ImA9WBZSF0w.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110171411070986994</id><published>2004-11-29T08:39:00.000+01:00</published><updated>2004-11-29T08:41:50.710+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2004-11-29T08:41:50.710+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title>Java: Inversion Of Control (IoC)</title><content type='html'>&lt;a href="http://yyanghhong.blogspot.com/2004_11_01_yyanghhong_archive.html#110167190878638531"&gt;Elegant coding&lt;/a&gt; brought to my attention the concept of Inversion Of Control (IoC), by referencing &lt;a href="http://today.java.net/pub/a/today/2004/02/10/ioc.html"&gt;A Brief Introduction to IoC&lt;/a&gt; by Sam Newman.&lt;br /&gt;&lt;br /&gt;More articles on IoC:&lt;br /&gt;&lt;a href="http://www.martinfowler.com/articles/injection.html"&gt;Inversion of Control Containers and the Dependency Injection pattern&lt;/a&gt;  by Martin Fowler. Seems to be down for the moment, so here's the &lt;a href="http://www.google.se/search?q=cache:5L9W-it8I_gJ:www.martinfowler.com/articles/injection.html+%22Inversion+of+Control+Containers+and+the+Dependency+Injection+Pattern"&gt;Google cache&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picocontainer.org/Five+minute+introduction"&gt;PicoContainer: Five minute introduction&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://nanocontainer.codehaus.org/Two+minute+tutorial"&gt;NanoContainer: Two minute tutorial&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110171411070986994?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110171411070986994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110171411070986994' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110171411070986994?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110171411070986994?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2004/11/java-inversion-of-control-ioc.html' title='Java: Inversion Of Control (IoC)'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry><entry gd:etag='W/&quot;CEYCSHw-fip7ImA9WBZSFU0.&quot;'><id>tag:blogger.com,1999:blog-7578927.post-110150216925456597</id><published>2004-11-26T21:45:00.000+01:00</published><updated>2004-11-26T21:49:29.256+01:00</updated><app:edited xmlns:app='http://www.w3.org/2007/app'>2004-11-26T21:49:29.256+01:00</app:edited><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><title>.NET: Cool .NET Tools</title><content type='html'>Another list of .NET tools, courtesy of Roy Osherove: &lt;a href="http://weblogs.asp.net/rosherove/archive/2004/11/26/270637.aspx"&gt;Cool Tools Every .NET Developer should be aware of&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7578927-110150216925456597?l=p-petter-work.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://p-petter-work.blogspot.com/feeds/110150216925456597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=7578927&amp;postID=110150216925456597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110150216925456597?v=2'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7578927/posts/default/110150216925456597?v=2'/><link rel='alternate' type='text/html' href='http://p-petter-work.blogspot.com/2004/11/net-cool-net-tools.html' title='.NET: Cool .NET Tools'/><author><name>Patrik Edholm</name><uri>http://www.blogger.com/profile/06353023133889452407</uri><email>noreply@blogger.com</email><gd:extendedProperty name='OpenSocialUserId' value='06935527727595345826'/></author><thr:total>0</thr:total></entry></feed>