<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://cs.rthand.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>RightHand's community place</title><link>http://cs.rthand.com/blogs/default.aspx</link><description>RightHand's community place</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 (Build: 60809.935)</generator><item><title>Moving my blog to BlogEngine.net</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/27/Moving-my-blog-to-BlogEngine.net.aspx</link><pubDate>Fri, 27 Feb 2009 08:52:00 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12692</guid><dc:creator>Miha Markic</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I am moving away my blog from &lt;a href="http://communityserver.com/" target="_blank"&gt;Community Server&lt;/a&gt;, as many others did (i.e. &lt;a href="http://www.tozon.info/blogs/andrej/" target="_blank"&gt;Andrej Tozon&lt;/a&gt;)&amp;nbsp; before me, to &lt;a href="http://www.dotnetblogengine.net/" target="_blank"&gt;BlogEngine.net&lt;/a&gt;. The reason is that Community Server is meant for communities, not for single lightweight blogs &amp;ndash; it is a complex beast and it does its job great, yet it is too much for a single blog. I&amp;rsquo;ll keep my Community Server up mostly for my &lt;a href="http://cs.rthand.com/files/default.aspx" target="_blank"&gt;public downloads&lt;/a&gt; but the blog here won&amp;rsquo;t be updated anymore. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blog.rthand.com" target="_blank"&gt;blog.rthand.com&lt;/a&gt; is my new location. If you are subscribed to my feedburner feed (default) then you don&amp;rsquo;t need to change anything. Otherwise change the subscription to it: &lt;a href="http://feeds.feedburner.com/RighthandBlogs" title="http://feeds.feedburner.com/RighthandBlogs"&gt;feeds.feedburner.com/RighthandBlogs&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Update: The old RSS is redirected to feedburner feed, so you really don&amp;#39;t need to change anything. &lt;br /&gt;&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12692" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Announcement/default.aspx">Announcement</category></item><item><title>Building an Intel Core i7 based computer - Storage</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/24/Building-an-Intel-Core-i7-based-computer-_2D00_-Storage.aspx</link><pubDate>Tue, 24 Feb 2009 18:33:03 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12668</guid><dc:creator>Miha Markic</dc:creator><slash:comments>4</slash:comments><description>&lt;p&gt;Disks fail more often than one can imagine. Because my data is the most important part of my computer my main objective is data safety so I’ll go for RAID 1 – disk mirroring that guarantees data integrity even if one of the two disks fails. Heck, I wouldn’t even miss a working day in such case – I’d just work with one disk until the damaged one gets replaced. RAID 1 is expensive because it mirrors the data – you’ll need two disks for the same data, however, the data will be redundant and furthermore RAID 1 reads data almost as twice faster than a single disk solution, write process is a bit slower compared to the single disk solution though. Another benefit of RAID 1 is possibility of using a motherboard-integrated RAID controller (which uses few CPU cycles, yet one won’t notice it on 4-core CPU) without any performance loss. RAID 5 is out of question because of really slow writes and requirements for an (expensive) add-on controller (although there are integrated controllers that handle RAID 5 but they will make it even slower). Add-on controllers have additional features such as memory cache (I’ll just use cheaper OS caching) and an option for batteries that will save the data in case of power failure (I will use an UPS to power my computer anyway – no need for those batteries).&lt;/p&gt;  &lt;p&gt;Secondary objective is performance/price ratio. These days storage devices are the main performance bottleneck because they are relatively slow and computer often accesses them. They are even more important when you ran out of RAM (hope not, but it can happen) – then the page file swapping party begins. So the main goal is to get as good price/performance ratio as possible.&lt;/p&gt;  &lt;p&gt;First, there are two choices: hard disk (HD) or solid state drive (SSD). I’ll pick HD option because SSDs are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;unproven new technology (in the long term)&lt;/li&gt;    &lt;li&gt;usually slow for writing operations (they are improving though)&lt;/li&gt;    &lt;li&gt;very pricey&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So, I have three choices with HD technology:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SATA (mainstream)&lt;/li&gt;    &lt;li&gt;SAS&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;SAS drives are very expensive, relatively small and I am not sure whether their faster speed would bring enough benefits in the performance/price sense. Furthermore they require additional SAS controller which isn’t cheap either. I think that SATA technology is far better for me. Every motherboard has an integrated SATA controller, better motherboards support RAID 1. But which drive? I’ll go for WD Velociraptors because, albeit they are more expensive, they are considerably faster than standard 7.200 RPM disks. Interestingly, Velociraptors are 2.5” disks packed in 3.5” chassis (no, they can’t be mounted in a laptop).&lt;/p&gt;  &lt;p&gt;I bought a pair of Western Digital Velociraptor &lt;a href="http://www.wdc.com/en/products/products.asp?driveid=495" target="_blank"&gt;WD3000HLFS&lt;/a&gt; 300GB 10.000 RPM drives from &lt;a href="http://www.mimovrste.com/artikel/2060050013/trdi-disk-wd-velociraptor-300gb-10000rpm-16mb-sata-wd3000hlfs" target="_blank"&gt;mimovrste.com&lt;/a&gt; for 2 x 246,79 Euros.&lt;/p&gt;  &lt;p&gt;See other relevant posts:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-Introduction.aspx"&gt;Introduction&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-CPU-cooler.aspx"&gt;CPU cooler&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/10/Building-an-Intel-Core-i7-based-computer-_1320_-The-goal.aspx"&gt;The goal&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/14/Building-an-Intel-Core-i7-based-computer-_1320_-Power-Supply-Unit.aspx"&gt;Power Supply Unit&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/17/Building-an-Intel-Core-i7-based-computer-_2D00_-Memory.aspx" target="_blank"&gt;Memory&lt;/a&gt;&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12668" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Hardware/default.aspx">Hardware</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Slovenia/default.aspx">Slovenia</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Building+a+computer/default.aspx">Building a computer</category></item><item><title>Building an Intel Core i7 based computer - Memory</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/17/Building-an-Intel-Core-i7-based-computer-_2D00_-Memory.aspx</link><pubDate>Tue, 17 Feb 2009 15:53:00 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12625</guid><dc:creator>Miha Markic</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Core i7 requires DDR3 memory. The more cheaper and slower DDR2 isn&amp;rsquo;t an option. &lt;strong&gt;But beware that not every DDR3 memory is good for Core i7&lt;/strong&gt;. Oh no, they have to have a lower voltage than usual, that&amp;rsquo;s max 1.65V (1.5V recommended). Lookout for memory modules that are &amp;ldquo;build/optimized/etc. for Core i7&amp;rdquo;. Read &lt;a href="http://www.anandtech.com/memory/showdoc.aspx?i=2989" target="_blank"&gt;this article&lt;/a&gt; to learn more about differences between DDR2 and DDR3.&lt;/p&gt;  &lt;p&gt;Another innovation in memory access is that Core i7 is capable of using three channels to read/write from/to memory. Previous Intel and AMD CPUs could utilize only two channels at most. Thus the necessity for a triple channel modules. IOW you get the best performance by using three (or a multiplier of) physical modules. You are not constrained by the multiplier of three (the number of modules depends on motherboard as well &amp;ndash; not every motherboard accepts many modules) but then you&amp;rsquo;ll get lower performances.&lt;/p&gt;  &lt;p&gt;So, I&amp;rsquo;ll go for &lt;strong&gt;three DDR3 modules&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;The final two aspects of interests to me where I can choose:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;size        &lt;br /&gt;&lt;/strong&gt;I&amp;rsquo;ve chosen the size of &lt;strong&gt;6GB (3x2GB)&lt;/strong&gt; because I think it will be enough for my usage. Note that you shouldn&amp;rsquo;t go below your requirements (you should know how much memory on average your applications consume and what applications you are going to run at the same time) &amp;ndash; if you run out of physical memory then your computer will start swapping memory to disk like crazy and performance will go down the drain. So, the size matters after all. No need for exaggeration though. Having more memory than required doesn&amp;rsquo;t help a lot.       &lt;p&gt;Another word of caution: &lt;strong&gt;32 bit operating systems can&amp;rsquo;t use more than, at most, 3.5GB of RAM&lt;/strong&gt; (there are ways for servers to get around this limitation but for special use). This is a hardware limitation. Which means that&lt;strong&gt; if you want to use more than 3.5GB of RAM you&amp;rsquo;ll have to install a 64 bit OS&lt;/strong&gt; which doesn&amp;rsquo;t have such a limitation. In fact I am planning to install either Windows 7 x64 or Vista x64.&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;performance/price and performance        &lt;br /&gt;&lt;/strong&gt;The faster the memory is, the faster can CPU access it and thus your applications will run faster.       &lt;br /&gt;There are two factors affecting memory performance: frequency and latency. The former should be as high as possible (1333 is the lowest and cheapest frequency for DDR3 that I&amp;rsquo;ve found on the net &amp;ndash; note: allowed max and min frequency depends on the motherboard as well) but then again, not too high because of a non-linear increase of performance/price &amp;ndash; you don&amp;rsquo;t gain that much performance if you increase the frequency insanely. Also beware that there are two frequency labels out there: one is the frequency itself (i.e. 1600Mhz) while the other is a PC3 rating that depends on the frequency (PC3 12700 for 1600Mhz).       &lt;br /&gt;The other factor is latency. It is marked by a single number (i.e. CL9) or by a group of numbers where first number is CL (i.e. 9-9-9-27). The number(s) should be as low as possible because latency (simplified) states how much time is required for memory module to do an operation.       &lt;br /&gt;Memory frequency is far more important than latency (look at the benchmark tests on the web). Thus invest in higher frequencies rather than lower latency. Or better, both, but the most important is frequency.       &lt;br /&gt;After a while I concluded that I&amp;rsquo;ll go for a &lt;strong&gt;1600Mhz/CL9 modules&lt;/strong&gt;, partially because of price and partially because of the lack of the availability of lower latency 1600Mhz modules &amp;ndash; I was shooting for CL7 but I couldn&amp;rsquo;t find any (OCZ has &lt;a href="http://www.ocztechnology.com/products/ddr3/triple_channel_series/platinum_series" target="_blank"&gt;nice modules&lt;/a&gt; for a great price &amp;ndash; but those can&amp;rsquo;t be found these days). &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I bought a Super Talent 6GB/DDR3/1600/CL9 triple channel kit (SKU: &lt;a href="http://www.supertalent.com/products/overclock_memory_detail.php?reg=N&amp;amp;mtid=5" target="_blank"&gt;WA160UX6G9&lt;/a&gt;) modules from &lt;a href="http://www.mlacom.si/article.aspx?docid=41539" target="_blank"&gt;Mlacom&lt;/a&gt; for 238 Euros.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://cs.rthand.com/images/blogs/BuildinganIntelCorei7basedcomputerMemory_DE5F/005.jpg"&gt;&lt;img alt="005" border="0" height="177" src="http://cs.rthand.com/images/blogs/BuildinganIntelCorei7basedcomputerMemory_DE5F/005_thumb.jpg" style="border:0px none;display:inline;" title="005" width="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;See other relevant posts:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-Introduction.aspx"&gt;Introduction&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-CPU-cooler.aspx"&gt;CPU cooler&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/10/Building-an-Intel-Core-i7-based-computer-_1320_-The-goal.aspx"&gt;The goal&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/14/Building-an-Intel-Core-i7-based-computer-_1320_-Power-Supply-Unit.aspx" target="_blank"&gt;Power Supply Unit&lt;/a&gt;&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12625" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Hardware/default.aspx">Hardware</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Slovenia/default.aspx">Slovenia</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Building+a+computer/default.aspx">Building a computer</category></item><item><title>Building an Intel Core i7 based computer – Power Supply Unit</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/14/Building-an-Intel-Core-i7-based-computer-_1320_-Power-Supply-Unit.aspx</link><pubDate>Sat, 14 Feb 2009 12:49:49 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12613</guid><dc:creator>Miha Markic</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;If you think that power supply unit (PSU) seems like a non-important piece of the computer think again. It is the heart of the computer as it delivers the blood to the brains and other parts. The blood in this context is the electricity of course.&lt;/p&gt;  &lt;p&gt;The PSU aspects that are important to me:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;the quality of the components/build &lt;/strong&gt;      &lt;br /&gt;If you want to start a fire or have an instable computer then a no-name PSU is a good choice. They are cheap but they use low quality components and 220V (or other input voltages, i.e. 110V in the US) and a bunch of amperes can make some smoke at least if not start a huge fire. As it happened once to me. Luckily, I was at home at the time. I didn’t see smoke yet but I smelled that something is burning. After some “find that smell” exercise with my nose it turned out to be the low-quality PSU of my computer. Again, I was lucky that it happened while I was at home. The moral of the story is that you shouldn’t but a cheap junk PSU. Instead go with a branded one at least. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;silence &lt;/strong&gt;      &lt;br /&gt;As usual, the bigger the cooling fan the better. There are some passively cooled PSUs out there however I wouldn’t use them since… well the point above and the fact that you might require additional fans on the chassis to cool them and they are not very powerful either. A heat controlled fan is a bonus – it would spin as fast as it is required and produce less noise when the temperature is low. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;output power distribution &lt;/strong&gt;      &lt;br /&gt;Isn’t a 500W PSU equal to another 500W PSU? No, it isn’t. A PSU delivers various voltages to various computer components through various rails (wires). The declared power is distributed between these voltages. It is good as long every voltage has enough power. Even if PSU is rated at 1kW (yes, they do exist) and it lacks power even on only one rail then computer might behave oddly or it won’t turn on at all. PSU might even damage the computer components in such case. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;energy efficiency        &lt;br /&gt;&lt;/strong&gt;The higher the better. It should be at least 80% (meaning that 20% is a waste). The higher the efficiency is the less energy gets wasted and your electricity bill is lower. Not to mention that the world benefits from it as well. Note also that efficiency varies with operating power. Check out &lt;a href="http://www.80plus.org/" target="_blank"&gt;80plus website&lt;/a&gt; for more info on PSU energy efficiency. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I’ve been using &lt;a href="http://www.super-flower.com.tw/" target="_blank"&gt;Super Flower&lt;/a&gt; as manufacturer of my PSUs for some time now and I am happy with them although they are not a very well known manufacturer. Nevertheless web reviews are praising their PSUs in all the aspects mentioned above.&lt;/p&gt;  &lt;p&gt;I’ve chosen the Aurora 600W (SF-600R14A) model (you won’t find it on their web site - which is a poor web site btw). It is rated at 82% efficiency though I don’t think it has been certified for (yet). It uses a huge 14cm cooling fan that is supposed to be very silent, furthermore it is heat-driven – it will adapt its speed to the actual conditions. 600W should be more than enough for my configuration. It should be enough for the most configurations, except for the dual graphic card ones (nVidia SLI, ATI CrossFire) (additional graphic card might draw a lot of additional power, i.e. 200W - depends on the card). So do calculate the power required in such case and buy an adequate PSU (again, check out the railings power).&lt;/p&gt;  &lt;p&gt;Another bonus for Aurora is the usage of round cable connectors toward PSU. The round shape facilitates the air movement in the chassis and thus the cooling of the components. Another good thing is that cables are attached with connectors – you can attach and detach them if you don’t need them (as opposite to fixed cables on cheaper PSU). Less cables means better air movement and again, better cooling of the chassis interior. And less clutter in the chassis.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom:0px;padding-left:0px;width:737px;padding-right:0px;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0px;" id="scid:66721397-FF69-4ca6-AEC4-17E6B3208830:a27552e5-f80c-4c7f-8635-f756aa41de6b" class="wlWriterEditableSmartContent"&gt;&lt;a style="border:0px;" href="http://cid-e6127800d2ecdb2f.skydrive.live.com/redir.aspx?page=browse&amp;amp;resid=E6127800D2ECDB2F!156&amp;amp;ct=photos"&gt;&lt;img style="border:0px;" alt="View Super Flower Aurora 600W PSU" src="http://cs.rthand.com/images/blogs/BuildinganIntelCorei7basedcomputerPowerS_B414/InlineRepresentation2eb5af256d574e38a367cda5ca6d2552.jpg" /&gt;&lt;/a&gt;&lt;div style="width:737px;text-align:right;"&gt;&lt;a href="http://cid-e6127800d2ecdb2f.skydrive.live.com/redir.aspx?page=browse&amp;amp;resid=E6127800D2ECDB2F!156&amp;amp;ct=photos"&gt;View Full Album&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Bought it from &lt;a href="https://www.cool-pc.org/productdetail.php?prodid=1819" target="_blank"&gt;CoolPC&lt;/a&gt; for 109,54€.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;See other relevant posts:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-Introduction.aspx"&gt;Introduction&lt;/a&gt;     &lt;br /&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-CPU-cooler.aspx"&gt;CPU cooler&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/10/Building-an-Intel-Core-i7-based-computer-_1320_-The-goal.aspx"&gt;The goal&lt;/a&gt;&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12613" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Hardware/default.aspx">Hardware</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Slovenia/default.aspx">Slovenia</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Building+a+computer/default.aspx">Building a computer</category></item><item><title>Building an Intel Core i7 based computer – The goal</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/10/Building-an-Intel-Core-i7-based-computer-_1320_-The-goal.aspx</link><pubDate>Tue, 10 Feb 2009 21:33:55 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12601</guid><dc:creator>Miha Markic</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Somehow I’ve missed two important things to mention in the &lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-Introduction.aspx" target="_blank"&gt;introduction&lt;/a&gt;: what will I use computer for and the budget.&lt;/p&gt;  &lt;p&gt;The computer is, of course, meant to be a development workstation that will replace my current aged Core 2 Duo E6600 based one. I’ll base my new computer on three pillars in this order of importance:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Reliability&lt;/li&gt;    &lt;li&gt;Silence&lt;/li&gt;    &lt;li&gt;Performance and Price/Performance ratio&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;The first point is all about avoiding unnecessary risks by taking in consideration only quality components if possible and redundancy. Nothing is more important than data. And having certain disk redundancy keeps computer operational even if a single disk fails – a disk failure is not uncommon at all. Backups are important as well, but that’s another story.&lt;/p&gt;  &lt;p&gt;Does second point really need an explanation? Do you want the noise level of a vacuum cleaner under the desk? If you work a lot with computer you’ll appreciate as quiet machine as it gets. Low noise is mostly achieved through passive cooling or big fans that rotate slowly – the bigger they are the slower they need to rotate and thus noise is lower.&lt;/p&gt;  &lt;p&gt;So, performance and price make only the third pillar in order of importance. Of course those performance and price are important but only &lt;strong&gt;after&lt;/strong&gt; the first two.&lt;/p&gt;  &lt;p&gt;Se what’s left is the budget: 1501 euros. Expensive? Cheap? I think this is a good compromise for my three pillars of a development workstation.&lt;/p&gt;  &lt;p&gt;In case that I’ve missed some other relevant information so far, let me know.&lt;/p&gt;  &lt;p&gt;See other relevant posts:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-Introduction.aspx"&gt;Introduction&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-CPU-cooler.aspx" target="_blank"&gt;Building an Intel Core i7 based computer – CPU cooler&lt;/a&gt;&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12601" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Hardware/default.aspx">Hardware</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Slovenia/default.aspx">Slovenia</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Building+a+computer/default.aspx">Building a computer</category></item><item><title>Parallel computing in Visual Studio 2010/.net 4.0 slides</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/10/Parallel-computing-in-Visual-Studio-2010_2F002E00_net-4.0-slides.aspx</link><pubDate>Tue, 10 Feb 2009 14:01:06 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12599</guid><dc:creator>Miha Markic</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Just finished the presentation about Parallel computing in Visual Studio 2010/.net 4.0 at &lt;a href="http://web.tsc.si/" target="_blank"&gt;TŠC Nova Gorica&lt;/a&gt; (a part of Microsoft’s event for students). Audience was cool and almost everything went well, except for VS2010CTP crash at very beginning. Not a big problem, one has to expect such problems running CPT versions. Visual Studio restart fixed it.&lt;/p&gt;  &lt;p&gt;All in all a good day for my presentation. Go get the &lt;a href="http://cs.rthand.com/files/folders/righthand_downloads/entry12598.aspx" target="_blank"&gt;slides here&lt;/a&gt; (slides are in Slovene language).&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12599" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Slovenia/default.aspx">Slovenia</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/.net+4.0/default.aspx">.net 4.0</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Parallel+programming/default.aspx">Parallel programming</category></item><item><title>Entity Framework leaves the door open to a SQL Injection attack?</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/09/Entity-Framework-leaves-the-door-open-to-SQL-Injection-attack_3F00_.aspx</link><pubDate>Mon, 09 Feb 2009 08:51:00 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12587</guid><dc:creator>Miha Markic</dc:creator><slash:comments>7</slash:comments><description>&lt;p&gt;I couldn&amp;rsquo;t believe it when I read Julie Lerman&amp;rsquo;s post about &lt;a href="http://www.thedatafarm.com/blog/2009/02/08/LINQToEntitiesEntitySQLParameterizedStoreQueriesAndSQLInjection.aspx" target="_blank"&gt;EF and SQL Injection&lt;/a&gt;. She discovered that Entity Framework doesn&amp;rsquo;t use parameterized queries always! &lt;/p&gt;  &lt;p&gt;I had to try it for myself on Northwind database: &lt;/p&gt;  &lt;p&gt;var query = from c in entities.Customers   &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where c.ContactName == &amp;quot;Tubo&amp;quot;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select c; &lt;/p&gt;  &lt;p&gt;produces this SQL statement (courtesy of SQL Profiler): &lt;/p&gt;  &lt;p&gt;SELECT    &lt;br /&gt;[Extent1].[CustomerID] AS [CustomerID],     &lt;br /&gt;[Extent1].[CompanyName] AS [CompanyName],     &lt;br /&gt;[Extent1].[ContactName] AS [ContactName],     &lt;br /&gt;[Extent1].[ContactTitle] AS [ContactTitle],     &lt;br /&gt;[Extent1].[Address] AS [Address],     &lt;br /&gt;[Extent1].[City] AS [City],     &lt;br /&gt;[Extent1].[Region] AS [Region],     &lt;br /&gt;[Extent1].[PostalCode] AS [PostalCode],     &lt;br /&gt;[Extent1].[Country] AS [Country],     &lt;br /&gt;[Extent1].[Phone] AS [Phone],     &lt;br /&gt;[Extent1].[Fax] AS [Fax]    &lt;br /&gt;FROM [dbo].[Customers] AS [Extent1]    &lt;br /&gt;WHERE &lt;strong&gt;N&amp;#39;Tubo&amp;#39;&lt;/strong&gt; &lt;strong&gt;= [Extent1].[ContactName]&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;See the Tubo condition expressed like a string? Speechless. Granted, if you specify a variable instead a string within the EF query then a parameter is used. &lt;/p&gt;  &lt;p&gt;So I tried a classic SQL Injection attack, like this: &lt;/p&gt;  &lt;p&gt;var query = from c in entities.Customers   &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where c.ContactName == &amp;quot;Tubo&amp;#39;; UPDATE [Northwind].Categories SET Description=&amp;#39;SQL Injection&amp;#39; WHERE CategoryID=9; --&amp;#39;&amp;quot;    &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; select c; &lt;/p&gt;  &lt;p&gt;which produces this condition (select columns trimmed) &lt;/p&gt;  &lt;p&gt;WHERE N&amp;#39;Tubo&lt;strong&gt;&amp;#39;&amp;#39;&lt;/strong&gt;; UPDATE [Northwind].Categories SET Description=&lt;strong&gt;&amp;#39;&amp;#39;&lt;/strong&gt;SQL Injection&lt;strong&gt;&amp;#39;&amp;#39;&lt;/strong&gt; WHERE CategoryID=9; --&lt;strong&gt;&amp;#39;&amp;#39;&lt;/strong&gt;&amp;#39; = [Extent1].[ContactName] &lt;/p&gt;  &lt;p&gt;Luckily the attack fails due to duplication of single quotes. So there is a protection against SQL attacks afterall. &lt;/p&gt;  &lt;p&gt;However, I am not feeling safe with this approach. Attackers are smart and sooner or later they might find a way across string-replacement defense strategy. &lt;/p&gt;  &lt;p&gt;But the real questions is: why leave the door open to a possible attack in first place? Why not always use parameters as there is no way around them? What good is to risk a SQL injection attack?&lt;/p&gt;&lt;p&gt;Update: A possible scenario where one could exploit this feature, granting there is a way around single-quote-replacement, is with add-ins. Imagine you have an add-in based application where each add-in is allowed to perform EF selects on database (enforced by your application). One could fake a select with all sort of T-SQL code nested within.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12587" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/ORM/default.aspx">ORM</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/.net+3.5/default.aspx">.net 3.5</category></item><item><title>Building an Intel Core i7 based computer – CPU cooler</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-CPU-cooler.aspx</link><pubDate>Sat, 07 Feb 2009 15:06:00 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12580</guid><dc:creator>Miha Markic</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;The most valuable aspects for my computer are &lt;strong&gt;performance&lt;/strong&gt; and &lt;strong&gt;silence&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;The later means as less possible noise producing components and as silent moving parts as possible. The Core i7 920 comes usually in a boxed SKU which means that is comes with a stock cooler. This cooler usually isn&amp;rsquo;t meant to be silent but rather an average noisy one. Thus the need for a 3rd party solution. Core i7 has a different socket than previous Core 2 Duo line &amp;ndash; 1366 as opposed to 775 (the change is mostly due to integrated memory controller and hence more pins for the memory bus). The change of sockets also means that all available coolers won&amp;rsquo;t work just like that and since the socket 1366 is pretty much new there are no many coolers to choose from. After googling a bit I&amp;rsquo;ve found one that caught my attention: &lt;a href="http://www.scythe-eu.com/en/products/cpu-cooler/mugen-2-cpu-cooler.html" target="_blank"&gt;Scythe Mugen 2&lt;/a&gt;. It natively supports socket 1366 and it has a 12cm fan. The bigger the fan is the slower it has to rotate and thus it produces less noise. Well actually it comes with a single low noise 12cm fan but one can attach additional three similar fans (which I don&amp;rsquo;t plan &amp;ndash; one should be more than enough). Anyway, my rule of the thumb for any cooler &amp;ndash; the bigger the fan is the less noise it produces.&lt;/p&gt;  &lt;p&gt;I bought &lt;a href="http://www.scythe-eu.com/en/products/cpu-cooler/mugen-2-cpu-cooler.html" target="_blank"&gt;Scythe Mugen 2&lt;/a&gt; from &lt;a href="http://www.mojcomp.net/index.php/Hladilniki/procesorji/2879-Scythe-SCMG-2000-Mugen-2-za-LGA775/LGA1366/Detailed-product-flyer.htm" target="_blank"&gt;mojcomp.net&lt;/a&gt; (Slovene online shop) for 49 Euros.&lt;/p&gt;  &lt;p&gt;Here is a bunch of photos of the &lt;a href="http://www.scythe-eu.com/en/products/cpu-cooler/mugen-2-cpu-cooler.html" target="_blank"&gt;Scythe Mugen 2&lt;/a&gt;. I placed a CD case next to it to show the cooler&amp;rsquo;s relative size. There is also some cardboard stuffed in the cooler which I will remove before mounting it:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cs.rthand.com/images/blogs/BuildinganIntelCorei7basedcomputerCPUcoo_E256/mugen4.jpg" target="_blank"&gt;&lt;img alt="mugen4" border="0" height="185" src="http://cs.rthand.com/images/blogs/BuildinganIntelCorei7basedcomputerCPUcoo_E256/mugen4_thumb.jpg" style="border:0px none;display:block;float:none;margin-left:auto;margin-right:auto;" title="mugen4" width="244" /&gt;&lt;/a&gt; &lt;a href="http://cs.rthand.com/images/blogs/BuildinganIntelCorei7basedcomputerCPUcoo_E256/mugen1.jpg" target="_blank"&gt;&lt;img alt="mugen1" border="0" height="149" src="http://cs.rthand.com/images/blogs/BuildinganIntelCorei7basedcomputerCPUcoo_E256/mugen1_thumb.jpg" style="border:0px none;display:block;float:none;margin-left:auto;margin-right:auto;" title="mugen1" width="244" /&gt;&lt;/a&gt; &lt;a href="http://cs.rthand.com/images/blogs/BuildinganIntelCorei7basedcomputerCPUcoo_E256/mugen2.jpg" target="_blank"&gt;&lt;img alt="mugen2" border="0" height="157" src="http://cs.rthand.com/images/blogs/BuildinganIntelCorei7basedcomputerCPUcoo_E256/mugen2_thumb.jpg" style="border:0px none;display:block;float:none;margin-left:auto;margin-right:auto;" title="mugen2" width="244" /&gt;&lt;/a&gt; &lt;a href="http://cs.rthand.com/images/blogs/BuildinganIntelCorei7basedcomputerCPUcoo_E256/mugen3.jpg" target="_blank"&gt;&lt;img alt="mugen3" border="0" height="125" src="http://cs.rthand.com/images/blogs/BuildinganIntelCorei7basedcomputerCPUcoo_E256/mugen3_thumb.jpg" style="border:0px none;display:block;float:none;margin-left:auto;margin-right:auto;" title="mugen3" width="244" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The cooler is one huge beast. Its size is amazing. At least is not that heavy. Few years ago I couldn&amp;rsquo;t imagine I&amp;rsquo;d mount coolers of this size and weight to motherboards.&lt;/p&gt;  &lt;p&gt;Another important aspect of lowering the noise is fan speed controller on the mainboard. You attach the fan to the mainboard and BIOS takes care of fan speed. Not sure which motherboards support it but I am sure I&amp;rsquo;ll get one with proper support.&lt;/p&gt;  &lt;p&gt;BTW if you wonder why I am buying a boxed CPU just to replace the stock cooler then wonder no more: non-boxed versions aren&amp;rsquo;t much cheaper and even if they were it is hard to find one.&lt;/p&gt;&lt;p&gt;See other relevant posts:&lt;/p&gt;&lt;p&gt;&lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-Introduction.aspx"&gt;Introduction&lt;/a&gt; &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12580" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Hardware/default.aspx">Hardware</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Slovenia/default.aspx">Slovenia</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Building+a+computer/default.aspx">Building a computer</category></item><item><title>Building an Intel Core i7 based computer – Introduction</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/02/07/Building-an-Intel-Core-i7-based-computer-_1320_-Introduction.aspx</link><pubDate>Sat, 07 Feb 2009 14:30:00 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12579</guid><dc:creator>Miha Markic</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;I am starting to build a new computer for me and I&amp;rsquo;ll document the parts and decisions along the path. &lt;/p&gt;  &lt;p&gt;Parts required for a computer:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;CPU&lt;/li&gt;    &lt;li&gt;Motherboard&lt;/li&gt;    &lt;li&gt;Memory&lt;/li&gt;    &lt;li&gt;Hard disks&lt;/li&gt;    &lt;li&gt;Chassis&lt;/li&gt;    &lt;li&gt;Power supply unit (PSU)&lt;/li&gt;    &lt;li&gt;CPU cooler&lt;/li&gt;    &lt;li&gt;Graphic card&lt;/li&gt;    &lt;li&gt;Operating system&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Based on price/performance ration of new Intel Core i7 CPU line I&amp;rsquo;ve decided to build the computer around the i7 920 model which is the slowest of the i7 line yet it blasts all the Core 2 Quad line, not to mention Core 2 Duo line. It is a quad core CPU with hyperthreading thus it looks like 8 cores to the OS (albeit hyperthreading cores are not real ones &amp;ndash; they can work in parallel only to a certain degree). It also features integrated memory controller which significantly reduces memory latency (lesson learned from AMD). The price of i7 920 is very reasonable as well: 282,8 Euros (all prices I&amp;rsquo;ll list are VAT included and expressed in Euros- use the currency converter such as &lt;a href="http://www.xe.com/ucc/" target="_blank"&gt;Universal Currency Converter&lt;/a&gt; to convert prices to other currencies) from &lt;a href="http://www.mimovrste.com/artikel/2420028725/procesor-intel-core-i7-920-266-ghz-1366" target="_blank"&gt;mimovrste.com&lt;/a&gt; (Slovene online shop). I&amp;rsquo;ll get back to the CPU when I receive it.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12579" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Hardware/default.aspx">Hardware</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Slovenia/default.aspx">Slovenia</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Building+a+computer/default.aspx">Building a computer</category></item><item><title>Change the HAL of Windows OS</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/01/25/Change-the-HAL-of-Windows-OS.aspx</link><pubDate>Sun, 25 Jan 2009 19:00:00 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12562</guid><dc:creator>Miha Markic</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;I am doing a presentation on Visual Studio 2010/.net 4 parallel programming enhancements in the near future. &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt; released Visual Studio 2010 CTP and that&amp;rsquo;s fine. The problem was that the one and only release comes in the form of a VirtualPC image. This is not a problem by itself but it is a problem if one wants to show &lt;strong&gt;parallelism&lt;/strong&gt;. You see, VirtualPC supports only single processor guests (&lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt; isn&amp;rsquo;t exactly pushing for VirtualPC enhancements, is it &amp;ndash; at the time &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt; bought VirtualPC it was on the same level as &lt;a href="http://www.vmware.com/"&gt;VMWare&lt;/a&gt; Workstation, now it is lightyears away). How can one show performance enhancements of parallelism with one CPU?&lt;/p&gt;  &lt;p&gt;Part of the solution is &lt;a href="http://www.vmware.com/"&gt;VMWare&lt;/a&gt; Workstation 6.5 (and earlier, don&amp;rsquo;t know exactly which ones): it supports multiprocessor guests. Great. However once I&amp;rsquo;ve imported VirtualPC image into Workstation the OS was still showing only one processor even though device manager recognized two processors. Even updating the computer driver (node Computer\Advanced Configuration and Power Interface (ACPI) PC) didn&amp;rsquo;t help &amp;ndash; there were no choices. Luckily I&amp;rsquo;ve googled over this blog post: &lt;a href="http://blogs.technet.com/tonyso/archive/2008/10/09/hyper-v-how-to-change-the-hal-on-your-vm.aspx"&gt;Hyper-V How To: Change the HAL on your vm&lt;/a&gt;. Oh, the joy, the trick just worked.&lt;/p&gt;  &lt;p&gt;The other problem with this presentation is that Visual Studio 2010 CTP expired by the end 2008. The solution is to change date backwards (silly, isn&amp;rsquo;t it) but Workstation/Windows keep synchronizing the time with current and thus yielding all sort of activation and expiration warnings. The solution is a twofold one:&lt;/p&gt;  &lt;p&gt;- add these lines to Workstation&amp;rsquo;s configuration file so the Workstation won&amp;rsquo;t synchronize the guest on every occasion (thanks to &lt;a href="http://mcpmag.com/columns/rss.asp?editorialsid=1639"&gt;Virtual Time Freeze&lt;/a&gt;):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;tools.syncTime = &amp;quot;FALSE&amp;quot;     &lt;br /&gt;time.synchronize.continue = &amp;quot;FALSE&amp;quot;      &lt;br /&gt;time.synchronize.restore = &amp;quot;FALSE&amp;quot;      &lt;br /&gt;time.synchronize.resume.disk = &amp;quot;FALSE&amp;quot;      &lt;br /&gt;time.synchronize.shrink = &amp;quot;FALSE&amp;quot;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;- remove or disable guest&amp;rsquo;s network capabilities so the OS won&amp;rsquo;t synchronize as well.&lt;/p&gt;  &lt;p&gt;Ah, the joys of presentations based on CTPs.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12562" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Slovenia/default.aspx">Slovenia</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Windows/default.aspx">Windows</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/VMWare/default.aspx">VMWare</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Virtualization/default.aspx">Virtualization</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/.net+4.0/default.aspx">.net 4.0</category></item><item><title>Hollywood graphics FX</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/01/21/Hollywood-graphics-FX.aspx</link><pubDate>Wed, 21 Jan 2009 09:15:37 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12552</guid><dc:creator>Miha Markic</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Did you ever watch a Hollywood movie/episode where police/detective/bad guy/alien manages to get a blurry low res photo of a vehicle? And then they enhance the picture to get a readable vehicle’s license plate? Like, for example the picture below:&lt;a href="http://cs.rthand.com/images/blogs/HollywoodgraphicsFX_9011/IMG_0081_o.png"&gt;&lt;img title="IMG_0081_o" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="171" alt="IMG_0081_o" src="http://cs.rthand.com/images/blogs/HollywoodgraphicsFX_9011/IMG_0081_o_thumb.png" width="244" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The enhancement in the movie is done by a single click and (through a nice video animation) they get the result below (intentionally hidden two letters):&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cs.rthand.com/images/blogs/HollywoodgraphicsFX_9011/IMG_0081.png"&gt;&lt;img title="IMG_0081" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="178" alt="IMG_0081" src="http://cs.rthand.com/images/blogs/HollywoodgraphicsFX_9011/IMG_0081_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Notice how much readable and sharper is the second plate?&lt;/p&gt;  &lt;p&gt;Is this kind of enhancement really possible? No. You just can’t recreate the information that isn’t available in the source. It can go the other way round but not the way as shown by Hollywood movie makers. In the reality they’d produce a interpolated version of original picture, like the zoomed region in first picture. Can you read that? Nope.&lt;/p&gt;  &lt;p&gt;So, has been Hollywood lying to us all the time and movies aren’t real? Perhaps not. I think that reading a blurry low res the license plate is still possible but not as easily as shown in the movies. Most probably there is often enough information there to recreate the letters even when human can’t read them. With proper software you can really read those letters I guess – it still depends on the quality of the photo.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12552" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Graphics/default.aspx">Graphics</category></item><item><title>Windows Live Writer doesn’t work well under Windows 7 beta x64</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/01/19/Windows-Live-Writer-doesn_1920_t-work-well-under-Windows-7-beta-x64.aspx</link><pubDate>Mon, 19 Jan 2009 13:01:52 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12544</guid><dc:creator>Miha Markic</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I’ve tried to run Windows Live Writer under Windows 7 beta today. It runs but it can’t upload pictures through FTP. There are two indications of the problem:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;when you configure FTP connection it will yield this warning&lt;/li&gt;    &lt;p&gt;&lt;strong&gt;The remote server could not be contacted to verify the settings. Do you want to continue anyway?&lt;/strong&gt;&lt;/p&gt;    &lt;li&gt;Publish or save draft to server will yield an error:&lt;/li&gt;    &lt;p&gt;&lt;strong&gt;Error occurred while transferring file [picture name here] &lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;(Publishing Error) A publishing error occurred: The source of the error is unknown.&lt;/strong&gt;&lt;/p&gt; &lt;/ul&gt;  &lt;p&gt;I wonder whether this bug is related to x64, Windows 7 beta or to both.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12544" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Windows/default.aspx">Windows</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Windows+Live/default.aspx">Windows Live</category></item><item><title>VMWare Workstation's Easy Install</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/01/19/VMWare-Workstation_2700_s-Easy-Install.aspx</link><pubDate>Mon, 19 Jan 2009 12:54:10 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12543</guid><dc:creator>Miha Markic</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;When you think that &lt;a href="http://www.vmware.com/"&gt;VMWare&lt;/a&gt; invented everything they push the innovations even further. These days I've finally accomplished Windows 7 beta download and since I don't have a spare computer right now I've though of installing it under Workstation 6.5. I have to admit that I didn't install any new OS for a while now (thanks to Workstation's excellent snapshot management system). So I created a new typical configuration and entered the path to the Windows 7 beta x64 iso file. Workstation recognized it as Vista (W7 is enhanced Vista after all, but I am sure Workstation will be updated to reflect the proper name in the future) and notified me that it will be installed using Easy Install. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://cs.rthand.com/images/blogs/Test_C2CB/ei_3.png"&gt;&lt;img title="ei" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="212" alt="ei" src="http://cs.rthand.com/images/blogs/Test_C2CB/ei_thumb_3.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I didn't know about Easy Install and I was pleasantly surprised about it. It lets you enter all the required data for the installation in the next next dialog:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://cs.rthand.com/images/blogs/Test_C2CB/eii.png"&gt;&lt;img title="eii" style="border-right:0px;border-top:0px;display:block;float:none;margin-left:auto;border-left:0px;margin-right:auto;border-bottom:0px;" height="212" alt="eii" src="http://cs.rthand.com/images/blogs/Test_C2CB/eii_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;and that’s it. After you put in all the required configuration data Workstation will install the OS for you, no interaction required whatsoever. That’s right, after some time you’ll be greeted by running OS. A huge timesaver even if you don’t install a lot.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12543" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Windows/default.aspx">Windows</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/VMWare/default.aspx">VMWare</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Virtualization/default.aspx">Virtualization</category></item><item><title>Stop Israeli slaughter</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/01/16/Stop-Israeli-slaughter.aspx</link><pubDate>Fri, 16 Jan 2009 13:03:00 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12535</guid><dc:creator>Miha Markic</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;When I started blogging I&amp;#39;ve decided not to bore the audience with political or other non-technical content. However, the situation in Gaza is well beyond political or rational - there is an&lt;strong&gt; Israeli state led slaughter over Palestinian, mostly civilian population&lt;/strong&gt; going on. I can&amp;#39;t do much to help stop the slaughter but at least I can boycott Israeli companies as well as state clearly my stand to my government and foreign ministry which didn&amp;#39;t condemn the Israeli actions and have once again proven Slovene submisive attitude to Israel. They do not represent me, and judging from the public reaction, neither the majority of Slovenes.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Shame on them both, shame on everybody that supports Israel and their slaughter!&lt;br /&gt;&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12535" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Non-tech/default.aspx">Non-tech</category></item><item><title>A developer diving into microcontroller world part 1</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/01/15/My-first-microcontroller-project.aspx</link><pubDate>Thu, 15 Jan 2009 12:44:00 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12531</guid><dc:creator>Miha Markic</dc:creator><slash:comments>1</slash:comments><description>
&lt;p&gt;I always wanted to do play with microcontrollers but I lacked hardware knowledge. Actually the last time I wanted to play with them was at the very early stages of the internet (during my university time that is). So I let it go for the time being because of lack of the available informations and other more important tasks (like going out with friends).&lt;/p&gt;

&lt;p&gt;Now, 15 years later, the very same idea kicked in my head again. I was still hardware ignorant - more or less like I was 15 years ago. But this time there was a major factor in my advantage: Internet. So I went surfing for microcontrollers and soon found a priceless site for beginners and advanced users: &lt;a href="http://www.societyofrobots.com/"&gt;Society Of Robots&lt;/a&gt;. The author has written plenty of tutorials that even a beginner can understand. The tutorials are excellent. There are also tutorials and other content provided by the author and community. But tutorials don&amp;#39;t answer every question one can come up with - yes, there is a &lt;a href="http://www.societyofrobots.com/robotforum/index.php"&gt;forum&lt;/a&gt; as well. And again, the forum is excellent as tutorials are - many skilled users are ready to answer (even beginner&amp;#39;s) questions and many questions are already answered. The author of the site has even created its own MCU (microcontroller unit) Axon (it can be ordered on-line) - an advanced microcontroller worth checking out (I&amp;#39;ll buy it, just to support his efforts if not for anything else, but not right now).&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;Now, armed with new the new knowledge I had to decide which microcontroller I am going to start with. The first choice was Axon, mentioned above, ATmega640  based one with plenty of in/out pins. I went browsing for alternatives. Soon it struck me: &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt; &lt;a href="http://www.microsoft.com/netmf/default.mspx"&gt;.net microframework&lt;/a&gt; might be a perfect choice. The drawbacks? Expensive compared to the Axon. It is much more powerfull in terms of CPU though. The thing is that I wasn&amp;#39;t looking for a powerful MCU. Rather I was looking for two features:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Bluetooth connection with PC - as a beginner I really didn&amp;#39;t want to fry my workstation PC by a shortcircuit. That means no physical connection between two entities can exist to be on the safe side. (so far I didn&amp;#39;t manage a shortcircuit anyway). Most of the MCUs communicate with PC via USB or RS232 port.&lt;br /&gt;
&lt;/li&gt;

&lt;li&gt;It should be cheap - because I am a beginner and I don&amp;#39;t want to make too much damage from the start.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After a while I&amp;#39;ve found &lt;a href="http://www.arduino.cc/"&gt;Arduino&lt;/a&gt; - a cheap MCU and again, great site with a great forum and a huge community. Quote form the web site:&lt;br /&gt;
&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&amp;quot;&lt;em&gt;Arduino is an open-source electronics prototyping platform based on
flexible, easy-to-use hardware and software. It&amp;#39;s intended for artists,
designers, hobbyists, and anyone interested in creating interactive
objects or environments.&lt;/em&gt;&amp;quot;&lt;br /&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Society of Robots is friendlier to the beginners while this one has definitely a larger community. The base Arudino MCU (based on &lt;span class="wikiword"&gt;ATmega168, a chip from the same family as Axon&amp;#39;s.)&lt;/span&gt; is dirty cheap (Arduino Duemillenova - 22&amp;euro;) and there is even DIY documentation (how to build it from the scratch). There is plenty of Arduino versions and even variations (Roboduino, RainbowDuino, etc.) The bluetooth Arduino BT (built in bluetooth Class I reciever - 100m range) version is cheap as well - 79&amp;euro; from &lt;a href="http://www.smartprj.com/catalog/index.php?main_page=product_info&amp;amp;cPath=1&amp;amp;products_id=2"&gt;Smart Projects&lt;/a&gt;. Perfect. I went with it. You can buy from various on-line sellers found &lt;a href="http://arduino.cc/en/Main/Buy"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;p align="center"&gt;&lt;a href="http://cs.rthand.com/images/blogs/ArduinoPart1/ArduinoBT.jpg"&gt;&lt;img alt="Arduino BT" src="http://cs.rthand.com/images/blogs/ArduinoPart1/ArduinoBT.png" style="border:0px none;" /&gt;&lt;/a&gt; &lt;br /&gt;
Arduino BT&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;So Arduino BT for the start it is. Next, for bringing it to live I needed an energy source. While it runs perfectly well on batteries (&lt;strong&gt;5.5V max&lt;/strong&gt; for this particular version) I opted for a power supply instead. I bought a Voltcraft VLP 1602pro from &lt;a href="http://shop.conrad.si/cgi/websale6.cgi?Ctx=%7bver%2f6%2fver%7d%7bst%2f3eb%2fst%7d%7bcmd%2f0%2fcmd%7d%7bm%2fwebsale%2fm%7d%7bs%2fconrad%2dslowenien%2fs%7d%7bl%2f01%2daa%2fl%7d%7bmi%2f000073%2fmi%7d%7bpi%2f511402%2fpi%7d%7bpo%2f1%2fpo%7d%7btpl%2fhead%2ehtm%2ftpl%7d%7bsf%2f%3cs1%3evlp%201602%3c%2fs1%3e%3cs2%3e%24%241%3c%2fs2%3e%2fsf%7d%7bsid%2f1ee0e63a1f0497f9d6eaeac883cf6cf9%2fsid%7d%7bmd5%2fc1b0e4a47becae36805701898cdbc9cf%2fmd5%7d"&gt;Conrad&lt;/a&gt; in Slovenia. It is a dual channel thing with short circuit protection, voltage and current limitator - meaning it is very safe to use and can provide two different voltages at the same time. I&amp;#39;ll use batteries when I&amp;#39;ll need to move around Arduino.&lt;/p&gt;

&lt;p align="center"&gt;&lt;a href="http://cs.rthand.com/images/blogs/ArduinoPart1/VLP1602pro.jpg"&gt;&lt;img alt="Voltcraft VLP 1602pro" src="http://cs.rthand.com/images/blogs/ArduinoPart1/VLP1602pro.png" style="border:0px none;" /&gt;&lt;/a&gt; &lt;br /&gt;
Voltcraft VLP 1602pro&lt;br /&gt;
&lt;/p&gt;

&lt;p&gt;At that point I was able to power up Arduino and open the communication with PC via bluetooth.&lt;/p&gt;
&lt;p&gt;&lt;span style="font-style:italic;"&gt;To be continued...&lt;/span&gt; &lt;br /&gt;
&lt;/p&gt;
&lt;br /&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12531" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Hardware/default.aspx">Hardware</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Arduino/default.aspx">Arduino</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Microcontroller/default.aspx">Microcontroller</category></item><item><title>Lost Windows Live Writer</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/01/15/Lost-Windows-Live-Writer.aspx</link><pubDate>Thu, 15 Jan 2009 12:26:00 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12530</guid><dc:creator>Miha Markic</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Today I lost my Windows Live Writer. I was doing a Windows Live update of installed WL applications. The update performed an uninstall first and install after. But the install failed and fails with an error 0x80070643. Of course it didn&amp;#39;t rollback the original installation.&lt;/p&gt;&lt;p&gt;Quick googling for the solution doesn&amp;#39;t help as well. Great error message and hidding installation log file is a great feature, &lt;a href="http://www.microsoft.com/"&gt;Microsoft&lt;/a&gt;. Damn, I&amp;#39;ll just use Sysinternals to figure out what goes wrong.&lt;br /&gt;&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12530" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Windows/default.aspx">Windows</category></item><item><title>Calling WCF services from within Sql Server</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/01/09/Calling-WCF-services-from-within-Sql-Server.aspx</link><pubDate>Fri, 09 Jan 2009 17:28:34 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12527</guid><dc:creator>Miha Markic</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;It is possible to create a managed .net stored procedure for SQL Server that acts like a WCF client. SQL Server 2005 at least is required. But I won't talk about how to. I'd rather discuss an odd error you can encounter while performing this stunt.&lt;/p&gt; &lt;p&gt;On development machines one can encounter this odd error when WCF client is being initialized, after managed stored procedure is being invoked through T-SQL.&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:54dbe6cd-d95e-4271-ab1b-978e024c7972" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;overflow:auto;"&gt;&lt;div&gt;&lt;span style="color:#000000;"&gt;Msg &lt;/span&gt;&lt;span style="color:#800080;"&gt;6522&lt;/span&gt;&lt;span style="color:#000000;"&gt;, Level &lt;/span&gt;&lt;span style="color:#800080;"&gt;16&lt;/span&gt;&lt;span style="color:#000000;"&gt;, State &lt;/span&gt;&lt;span style="color:#800080;"&gt;1&lt;/span&gt;&lt;span style="color:#000000;"&gt;, Procedure CalcAdd, Line &lt;/span&gt;&lt;span style="color:#800080;"&gt;0&lt;/span&gt;&lt;span style="color:#000000;"&gt;
A .NET Framework error occurred during execution of user&lt;/span&gt;&lt;span style="color:#000000;"&gt;-&lt;/span&gt;&lt;span style="color:#000000;"&gt;defined routine or aggregate &lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#800000;"&gt;CalcAdd&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;: 
System.Configuration.ConfigurationErrorsException: The type &lt;/span&gt;&lt;span style="color:#800000;"&gt;'&lt;/span&gt;&lt;span style="color:#800000;"&gt;Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior, Microsoft.VisualStudio.Diagnostics.ServiceModelSink, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&lt;/span&gt;&lt;span style="color:#800000;"&gt;'&lt;/span&gt;&lt;span style="color:#000000;"&gt; registered &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;for&lt;/span&gt;&lt;span style="color:#000000;"&gt; extension &lt;/span&gt;&lt;span style="color:#800000;"&gt;'&lt;/span&gt;&lt;span style="color:#800000;"&gt;Microsoft.VisualStudio.Diagnostics.ServiceModelSink.Behavior&lt;/span&gt;&lt;span style="color:#800000;"&gt;'&lt;/span&gt;&lt;span style="color:#000000;"&gt; could not be loaded. (C:\Windows\Microsoft.NET\Framework\v2.&lt;/span&gt;&lt;span style="color:#800080;"&gt;0.50727&lt;/span&gt;&lt;span style="color:#000000;"&gt;\Config\machine.config line &lt;/span&gt;&lt;span style="color:#800080;"&gt;192&lt;/span&gt;&lt;span style="color:#000000;"&gt;)
System.Configuration.ConfigurationErrorsException: 
   at System.Configuration.BaseConfigurationRecord.EvaluateOne(String[] keys, SectionInput input, Boolean isTrusted, FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult)
   at System.Configuration.BaseConfigurationRecord.Evaluate(FactoryRecord factoryRecord, SectionRecord sectionRecord, Object parentResult, Boolean getLkg, Boolean getRuntimeObject, Object&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#000000;"&gt; result, Object&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#000000;"&gt; resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#000000;"&gt; result, Object&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#000000;"&gt; resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#000000;"&gt; result, Object&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#000000;"&gt; resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#000000;"&gt; result, Object&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#000000;"&gt; resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSectionRecursive(String configKey, Boolean getLkg, Boolean checkPermission, Boolean getRuntimeObject, Boolean requestIsHere, Object&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#000000;"&gt; result, Object&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;amp;&lt;/span&gt;&lt;span style="color:#000000;"&gt; resultRuntimeObject)
   at System.Configuration.BaseConfigurationRecord.GetSection(String configKey, Boolean getLkg, Boolean checkPermission)
   at System.C...&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Note that everything is configured properly and WCF client inside stored procedure should initialize just fine. The problem is somehow connected to &lt;strong&gt;machine.config&lt;/strong&gt; file or better, to some initialization of types defined there.&lt;/p&gt;
&lt;p&gt;After few google searches I've come across &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/wcf/thread/07ed7bd1-2c73-430b-a414-9a57e3aaf371" target="_blank"&gt;this post&lt;/a&gt; from MS' Jason Pang. Looks like the exception is linked to WCF debugging feature, usually installed on development machines - this debugging service has problems with WCF client running under SQL Server.&lt;/p&gt;
&lt;p&gt;Workaround: (Temporary) disable WCF debugging by invoking this command line utility:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[Program Files]\Microsoft Visual Studio 9.0\Common7\IDE\vsdiag_regwcf.exe &lt;strong&gt;-u&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Now the WCF client inside SQL Server runs just fine. After you've done you can re-enable WCF debugging services by calling same exe with different parameter:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;[Program Files]\Microsoft Visual Studio 9.0\Common7\IDE\vsdiag_regwcf.exe &lt;strong&gt;-i&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Note that administrator privileges are required to disable/enable it.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12527" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/.net+3.5/default.aspx">.net 3.5</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/SQL/default.aspx">SQL</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Windows 7 beta at MSDN Subscriptions</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2009/01/08/Windows-7-beta-at-MSDN-Subscriptions.aspx</link><pubDate>Thu, 08 Jan 2009 12:00:35 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12525</guid><dc:creator>Miha Markic</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;In case you didn't notice Windows 7 beta is available at MSDN Subscriptions. The web site looks like under pressure so keep trying if you get errors.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12525" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Windows/default.aspx">Windows</category></item><item><title>Autoimplement base class constructors with CodeRush</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2008/12/05/Autoimplement-base-class-constructors-with-CodeRush.aspx</link><pubDate>Fri, 05 Dec 2008 07:57:19 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12509</guid><dc:creator>Miha Markic</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;How often do you derive a class and re-create all of the base constructors? This is not an uncommon task, let's take a custom exception class for example:&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:d421a2f8-68b6-4e55-a6b3-46c520b9e27b" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;overflow:auto;"&gt;&lt;div&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;class&lt;/span&gt;&lt;span style="color:#000000;"&gt; MyException: Exception
{
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;If you right click on Exception and pick &lt;em&gt;Go to Definition&lt;/em&gt; from the context menu you'll see that the &lt;em&gt;Exception&lt;/em&gt; class has four constructors:&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:4e4fcd7b-3419-4e95-8f7a-5078630c1d4d" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;overflow:auto;"&gt;&lt;div&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;class&lt;/span&gt;&lt;span style="color:#000000;"&gt; Exception : ISerializable, _Exception
{
  &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; Exception();
  &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; Exception(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; message);
  &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;protected&lt;/span&gt;&lt;span style="color:#000000;"&gt; Exception(SerializationInfo info, StreamingContext context);
  &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; Exception(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; message, Exception innerException);
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;And you better re-create all four in your derived &lt;em&gt;MyException &lt;/em&gt;class if you want to follow the design guidelines. This is how &lt;em&gt;MyException &lt;/em&gt;should look like (without custom code that is):&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:412a924e-8b77-4816-899b-2fcc86f14a48" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;overflow:auto;"&gt;&lt;div&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;class&lt;/span&gt;&lt;span style="color:#000000;"&gt; MyException: Exception
{
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; MyException()
    {
        
    }
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; MyException(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; message)
        : &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;base&lt;/span&gt;&lt;span style="color:#000000;"&gt;(message)
    {
        
    }
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; MyException(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;string&lt;/span&gt;&lt;span style="color:#000000;"&gt; message, Exception innerException)
        : &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;base&lt;/span&gt;&lt;span style="color:#000000;"&gt;(message, innerException)
    {
        
    }
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;protected&lt;/span&gt;&lt;span style="color:#000000;"&gt; MyException(SerializationInfo info, StreamingContext context)
        : &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;base&lt;/span&gt;&lt;span style="color:#000000;"&gt;(info, context)
    {
        
    }
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;This is a straightforward &lt;em&gt;derived Exception &lt;/em&gt;class definition and needless to say it is quite boring to create all those constructors again and again. That's why &lt;a href="http://www.devexpress.com/Products/NET/IDETools/CodeRush/"&gt;CodeRush&lt;/a&gt; has a one-click base constructors recreation feature. Position the caret somewhere on the &lt;em&gt;Exception&lt;/em&gt; word and invoke &lt;a href="http://www.devexpress.com/Products/NET/IDETools/CodeRush/"&gt;CodeRush&lt;/a&gt; with keyboard shortcut (by default the shortcut is &lt;strong&gt;Ctrl+CEDILLA&lt;/strong&gt;) and instantly all of those &lt;em&gt;boring-to-recreate&lt;/em&gt; constructors appear from nowhere. Brilliant.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12509" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/.net/default.aspx">.net</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/DevExpress/default.aspx">DevExpress</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Visual+Studio+2005/default.aspx">Visual Studio 2005</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Visual+Studio+Add+In/default.aspx">Visual Studio Add In</category></item><item><title>Axialis is making a 50% off sale today only</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2008/11/28/Axialis-is-making-a-50_2500_-off-sale-today-only.aspx</link><pubDate>Fri, 28 Nov 2008 12:02:44 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12505</guid><dc:creator>Miha Markic</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Marc from &lt;a href="http://www.axialis.com/" target="_blank"&gt;Axialis&lt;/a&gt; sent me a message that &lt;a href="http://www.axialis.com/" target="_blank"&gt;Axialis&lt;/a&gt; is having 50% off sale today and only today. If you are in mood for creating artwork such as icons and cursors this would be the perfect timing. BTW their &lt;a href="http://www.axialis.com/iconworkshop/" target="_blank"&gt;IconWorkshop&lt;/a&gt; is really a nice product, even for non designers like me. I haven't tried others.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12505" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Visual+Studio+Add+In/default.aspx">Visual Studio Add In</category></item><item><title>SIOL (IPTV provider) managed to upset its customers once more</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2008/11/14/SIOL-_2800_IPTV-provider_2900_-managed-to-upset-its-customers-once-more.aspx</link><pubDate>Fri, 14 Nov 2008 14:28:38 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:12194</guid><dc:creator>Miha Markic</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;I have an IPTV provided by biggest national IPTV/IS provider. The current service is poor at best. We have FTTH (the slowest is 20Mb - that's awesome) but really lousy (~4Mb at best) &lt;a href="http://en.wikipedia.org/wiki/MPEG-2" target="_blank"&gt;MPEG2&lt;/a&gt;(!) encoded streams. The most obvious consequence of such encoding is pixelation when there is a faster change on the picture and poor quality in general. To make things worse there is a crappy, yet somewhat functional UI that lets you select channels and read &lt;a href="http://en.wikipedia.org/wiki/Electronic_program_guide" target="_blank"&gt;EPG&lt;/a&gt;. It mostly works (except for occasional ASP.NET 1.1 server too busy error) and its speed is decent. IMO it mostly lacks two features:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;one can't browse other channel's &lt;a href="http://en.wikipedia.org/wiki/Electronic_program_guide" target="_blank"&gt;EPG&lt;/a&gt; (electronic program guide) without actually changing channel (IOW watch a channel and read other channel's &lt;a href="http://en.wikipedia.org/wiki/Electronic_program_guide" target="_blank"&gt;EPG&lt;/a&gt;). I once asked SIOL about this and the response was: "Check out the teletext - you can't perform this stunt in teletext either". So much about understanding the technology progress.&lt;/li&gt; &lt;li&gt;one can't mark favorite shows and have an option of notification before the show&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Now, both features are minor, yet SIOL isn't capable of implementing them. Since the UI is built around ASP.NET 1.1 (as seen on occasional errors) it shouldn't take more than a week to implement the two features. But they didn't change the UI for years now. Except for upgrading the progress icon to an animated gif.&lt;/p&gt; &lt;p&gt;Then, one day, they started a SIOL TV&lt;strong&gt;+&lt;/strong&gt; UI. (note the + char). It features a newly organized and richer UI, plus &lt;a href="http://en.wikipedia.org/wiki/Video_on_demand" target="_blank"&gt;VOD&lt;/a&gt; and a recorder through UI (storage is provided on SIOL's server). Sounds great, right? Not at all. Here is the list of consequences:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;You have to buy a newer &lt;a href="http://en.wikipedia.org/wiki/Set-top_box" target="_blank"&gt;STB&lt;/a&gt; (or get one for free if you sign with SIOL for 2 years)&lt;/li&gt; &lt;li&gt;UI is slow as hell. I mean really really slow at the point where it is unusable.&lt;/li&gt; &lt;li&gt;UI is cluttered as hell - it is really bad and a total mess.&lt;/li&gt; &lt;li&gt;It doesn't have favorite channels group.&lt;/li&gt; &lt;li&gt;Recorder doesn't work and even when it will it will be useless: it is enabled only for a couple of Slovene channels (due to legal issues) and those shows will be persisted only for at most 2 days (the total place for storage per user is 6 hrs in total) . It won't be free as well since it uses SIOL's storage. There are other problems with recorder not listed but the question is why they bother at all with such crap service?&lt;/li&gt; &lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Video_on_demand" target="_blank"&gt;VOD&lt;/a&gt;: after you pay for the movie you have 24 hours to watch it. The library is poor, at least the last time I've checked it.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;True, I didn't check it lately. But for a reason. There were reports that lately people who checked out the new UI couldn't go back to the old, functional, one. The two UIs could coexist until recently. &lt;/p&gt; &lt;p&gt;And now, actually 10 days from now, SIOL is disabling the old UI for good and forcing everybody to new great new one - with or without the new &lt;a href="http://en.wikipedia.org/wiki/Set-top_box" target="_blank"&gt;STB&lt;/a&gt;. That's indeed a great move, kill the customer's will to watch TV, way to go! On the other side I'll watch less TV and spend more time with other activities I guess.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=12194" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/.net/default.aspx">.net</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Slovenia/default.aspx">Slovenia</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/ASP.Net/default.aspx">ASP.Net</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/IPTV/default.aspx">IPTV</category></item><item><title>DirectX HLSL compiler chokes on unicode sources</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2008/11/12/DirectX-HLSL-compiler-chokes-on-unicode-sources.aspx</link><pubDate>Wed, 12 Nov 2008 15:19:45 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:11789</guid><dc:creator>Miha Markic</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;In a week or so I've created two &lt;a href="http://en.wikipedia.org/wiki/High_Level_Shader_Language" target="_blank"&gt;HLSL&lt;/a&gt; effects in two different .fx files. While they were really simple and straightforward, one of them failed to load at runtime in my managed DirectX 3D application (yet both worked in &lt;a href="http://developer.nvidia.com/object/FX_Composer_Home.html" target="_blank"&gt;NVidia FX Composer&lt;/a&gt;). Why would one fail while another is working? The error information was really non existent (i.e. "there was an error in the application" - DirectX, thanks so much for all of the details...). So I tried the &lt;em&gt;fxc&lt;/em&gt; compiler that comes with DirectX SDK. The problematic effect didn't compile, of course. This time the error was more verbose but highly misleading:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;em&gt;ID3DXEffectCompiler: There were no techniques&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;The problem with this message was that I had a technique defined (remember, the thing was working in FX Composer). Hm. Google didn't help me at all. Then I went with my standard problem solving approach (SPSA) - eliminate pieces step by step (take a working sample and modify it slowly step by step to pinpoint the problem). Ok, so I copied the working effect content into non-working file opened in editor (I did copy&amp;amp;paste of the code, not the file). I tried &lt;em&gt;fxc&lt;/em&gt; again and to my surprise it yelled the same error at me. What? How could it be? The content was the same. Perhaps I've drank too much coffee today? So I used &lt;a href="http://kdiff3.sourceforge.net/" target="_blank"&gt;KDiff3&lt;/a&gt;, a file comparison tool (free), to compare both files. On opening it warned me that while the content is the same the binary content isn't. This info finally triggered my brains - it has to be the unicode signature prefix. To be sure I fired yet another free utility, this time a hex editor called &lt;a href="http://mh-nexus.de/en/hxd/" target="_blank"&gt;HxD&lt;/a&gt;. And there is was a hex prefix of &lt;em&gt;EF BB BF&lt;/em&gt; meaning an UTF-8 encoded text. We live in an unicode universe for a bunch of years now and I guess &lt;em&gt;fxc&lt;/em&gt; should work with non-ASCII files as well. Or at least it should complain that file isn't an ASCII one.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=11789" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/.net/default.aspx">.net</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/HLSL/default.aspx">HLSL</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/DirectX/default.aspx">DirectX</category></item><item><title>Twittering</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2008/11/08/Twittering.aspx</link><pubDate>Sat, 08 Nov 2008 14:14:00 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:11699</guid><dc:creator>Miha Markic</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;I have obviously too much free time and thus started twittering. Here is my &lt;a href="http://www.twitter.com/" target="_new"&gt;twitter&lt;/a&gt; &lt;a href="http://twitter.com/MihaMarkic" target="_blank"&gt;profile&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=11699" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Announcement/default.aspx">Announcement</category></item><item><title>Using extension methods to make code less cluttered</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2008/11/08/Using-extension-methods-to-make-code-less-cluttered.aspx</link><pubDate>Sat, 08 Nov 2008 14:09:31 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:11698</guid><dc:creator>Miha Markic</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;Here is an example where an extension method is useful. Take this &lt;a href="http://www.llblgen.com/"&gt;LLBLGen Pro&lt;/a&gt; code for example:&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:f552fd37-f9ba-4bc0-89b1-bb6c277d0631" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;overflow:auto;"&gt;&lt;div&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; EntityCollection&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;CustomersEntity&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; GetCustomers()
{
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;using&lt;/span&gt;&lt;span style="color:#000000;"&gt; (DataAccessAdapter da &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; DataAccessAdapter(&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#800000;"&gt;Data Source=[SERVER];Initial Catalog=Northwind;Integrated Security=True&lt;/span&gt;&lt;span style="color:#800000;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color:#000000;"&gt;))
    {
        LinqMetaData context &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;new&lt;/span&gt;&lt;span style="color:#000000;"&gt; LinqMetaData(da);
        var q &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; from c &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;in&lt;/span&gt;&lt;span style="color:#000000;"&gt; context.Customers
                select c;
        EntityCollection&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;CustomersEntity&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; result &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; ((ILLBLGenProQuery)q).Execute&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;EntityCollection&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;CustomersEntity&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;();
        &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; result;
    }
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;It is a simple LINQ to LLBLGenPro select against (we all love) Northwind database. Pay attention at &lt;em&gt;result&lt;/em&gt; assignment. To have data returned as a native &lt;a href="http://www.llblgen.com/"&gt;LLBLGen Pro&lt;/a&gt; EntityCollection you have to resort to &lt;em&gt;ILLBLGenProQuery&lt;/em&gt; interface. You have to use &lt;em&gt;ILLBLGenProQuery.Execute&lt;/em&gt; method on &lt;em&gt;IQueryable&amp;lt;T&amp;gt; q&lt;/em&gt;. A cast is obviously required because IQueryable&amp;lt;T&amp;gt; doesn't know anything about &lt;em&gt;ILLBLGenProQuery&lt;/em&gt;. While this code works it is not exactly elegant - I am referring to the later cast of course.&lt;/p&gt;
&lt;p&gt;So, the idea is to have something like this instead:&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:f99f8595-ef2c-4b0c-bf09-63cb67bd55d5" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;overflow:auto;"&gt;&lt;div&gt;&lt;span style="color:#000000;"&gt;EntityCollection&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;CustomersEntity&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; result &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; q.Execute&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;EntityCollection&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;CustomersEntity&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Possible? Sure, just add this static class with a single extension method and you are good to go:&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:12b6ac66-71dc-4a4f-8600-36552c8d2f1e" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;overflow:auto;"&gt;&lt;div&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;static&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;class&lt;/span&gt;&lt;span style="color:#000000;"&gt; Tubular
{
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;static&lt;/span&gt;&lt;span style="color:#000000;"&gt; TResult Execute&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;TResult&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;this&lt;/span&gt;&lt;span style="color:#000000;"&gt; IQueryable q)
        &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;where&lt;/span&gt;&lt;span style="color:#000000;"&gt; TResult : IEntityCollection2
    {
        &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; ((ILLBLGenProQuery)q).Execute&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;TResult&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;();
    }
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Or perhaps, we can further reduce the cluttering by introducing this extension method:&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:e3f219b2-fdb6-4674-b557-baa7b90120c7" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;overflow:auto;"&gt;&lt;div&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;static&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;class&lt;/span&gt;&lt;span style="color:#000000;"&gt; Tubular
{
    &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;public&lt;/span&gt;&lt;span style="color:#000000;"&gt; &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;static&lt;/span&gt;&lt;span style="color:#000000;"&gt; EntityCollection&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;TEntity&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; Execute&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;TEntity&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;(&lt;/span&gt;&lt;span style="color:#0000FF;"&gt;this&lt;/span&gt;&lt;span style="color:#000000;"&gt; IQueryable q)
        &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;where&lt;/span&gt;&lt;span style="color:#000000;"&gt; TEntity : EntityBase2, IEntity2
    {
        &lt;/span&gt;&lt;span style="color:#0000FF;"&gt;return&lt;/span&gt;&lt;span style="color:#000000;"&gt; ((ILLBLGenProQuery)q).Execute&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;EntityCollection&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;TEntity&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;();
    }
}&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;to achieve this, even less cluttered, line:&lt;/p&gt;
&lt;p&gt;
&lt;div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:49909ed3-d275-47f7-8521-0220280b4b3a" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;&lt;pre style="background-color:White;overflow:auto;"&gt;&lt;div&gt;&lt;span style="color:#000000;"&gt;EntityCollection&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;CustomersEntity&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt; result &lt;/span&gt;&lt;span style="color:#000000;"&gt;=&lt;/span&gt;&lt;span style="color:#000000;"&gt; q.Execute&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;CustomersEntity&lt;/span&gt;&lt;span style="color:#000000;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;Isn't this or former de-cluttered line more readable and more elegant than the original?&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=11698" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/LLBLGenPro/default.aspx">LLBLGenPro</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/.net+3.5/default.aspx">.net 3.5</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>CodeRush Xpress is free</title><link>http://cs.rthand.com/blogs/blog_with_righthand/archive/2008/11/05/CodeRush-Xpress-if-free.aspx</link><pubDate>Wed, 05 Nov 2008 20:09:00 GMT</pubDate><guid isPermaLink="false">20ec5e80-32dc-4b10-81e7-24de002b7736:11584</guid><dc:creator>Miha Markic</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;A stripped (more express) version of CodeRush, called CodeRush Xpress, is available for download at no charge! And even a bunch of refactorings are included. See the &lt;a href="http://community.devexpress.com/forums/t/70612.aspx" target="_blank"&gt;announcement&lt;/a&gt; or go to the &lt;a href="http://www.devexpress.com/coderushx" target="_blank"&gt;product page&lt;/a&gt; directly.&lt;/p&gt;&lt;p&gt;Now you don&amp;#39;t have any more excuses to avoid the very handy and useful CodeRush!&lt;/p&gt;&lt;p&gt;UPDATE: I missed the fact that it works only with C#. (thanks to pinkpanter)&lt;/p&gt;&lt;img src="http://cs.rthand.com/aggbug.aspx?PostID=11584" width="1" height="1"&gt;</description><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/DevExpress/default.aspx">DevExpress</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Visual+Studio+2005/default.aspx">Visual Studio 2005</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://cs.rthand.com/blogs/blog_with_righthand/archive/tags/Visual+Studio+Add+In/default.aspx">Visual Studio Add In</category></item></channel></rss>
