<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.microsoft.co.il/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>All Your Base Are Belong To Us - All Comments</title><link>http://blogs.microsoft.co.il/blogs/sasha/</link><description>Mostly .NET internals and other kinds of gory details</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>re: HTML5 Web Workers: Classic Message Passing Concurrency</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2012/02/05/html5-web-workers-classic-message-passing-concurrency.aspx#1008573</link><pubDate>Tue, 07 Feb 2012 08:14:54 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1008573</guid><dc:creator>Sasha Goldshtein</dc:creator><description>&lt;p&gt;@David: &amp;quot;Better&amp;quot; is relative :-) For experienced developers with a strong background in operating systems, cache coherence protocols, and synchronization mechanisms -- I agree that the &amp;quot;traditional&amp;quot; way is more flexible and more powerful. Most developers I know, however, abuse that power due to lack of that strong background...&lt;/p&gt;
&lt;p&gt;@peter: Because the &amp;quot;isPrime&amp;quot; implementation is very naive -- it checks all possible factors from 2 to n-1.&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1008573" width="1" height="1"&gt;</description></item><item><title>re: HTML5 Web Workers: Classic Message Passing Concurrency</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2012/02/05/html5-web-workers-classic-message-passing-concurrency.aspx#1008115</link><pubDate>Mon, 06 Feb 2012 20:00:50 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1008115</guid><dc:creator>peter</dc:creator><description>&lt;p&gt;Why is the distribution uneven?&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1008115" width="1" height="1"&gt;</description></item><item><title>re: HTML5 Web Workers: Classic Message Passing Concurrency</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2012/02/05/html5-web-workers-classic-message-passing-concurrency.aspx#1008035</link><pubDate>Mon, 06 Feb 2012 17:16:02 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1008035</guid><dc:creator>David Nelson</dc:creator><description>&lt;p&gt;I don&amp;#39;t envy JavaScript developers at all. It is trivial to write multi-threaded code in C# using a message passing style if that is what you want to do. But C# ALSO has the ability to use shared state and synchronization where it is appropriate (and there are many such cases). Being less powerful and less functionally complete does not make JavaScript better.&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1008035" width="1" height="1"&gt;</description></item><item><title>re: Windows To Go</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2011/09/16/windows-to-go.aspx#1006282</link><pubDate>Sat, 04 Feb 2012 08:36:27 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1006282</guid><dc:creator>Matt</dc:creator><description>&lt;p&gt;And to think I was gonna stuff around with Virtualisation to make sure it was easy to upgrade to new hardware later at home, THIS IS AWESOME, no more annoying hardware upgrades...&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1006282" width="1" height="1"&gt;</description></item><item><title>re: Windows To Go</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2011/09/16/windows-to-go.aspx#1003180</link><pubDate>Tue, 31 Jan 2012 09:26:29 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1003180</guid><dc:creator>Anant Kamath</dc:creator><description>&lt;p&gt;This has benn possible with several Linux distros since ages&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1003180" width="1" height="1"&gt;</description></item><item><title>re: Garbage Collection in The Age of Smart Pointers</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2012/01/12/garbage-collection-in-the-age-of-smart-pointers.aspx#1002656</link><pubDate>Mon, 30 Jan 2012 20:22:27 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1002656</guid><dc:creator>Fulvio Esposito</dc:creator><description>&lt;p&gt;Well, C++11 offers a minimal support for garbage collection, but the point is that C++ memory model is always deterministic.&lt;/p&gt;
&lt;p&gt;When you use automatic storage, dtors are granted to be excuted upon block leaving (whatever is the reason, so don&amp;#39;t need to try/catch/finally).&lt;/p&gt;
&lt;p&gt;With unique_ptr&amp;lt;T&amp;gt; we have the same behaviour of automatic objects for objects allocated on the heap&lt;/p&gt;
&lt;p&gt;With shared_prt&amp;lt;T&amp;gt;/weak_ptr&amp;lt;T&amp;gt; dtors are granted to be executed when last owner is destoyed.&lt;/p&gt;
&lt;p&gt;All of this means that we manage all the resources, not just the memory, the same way and there&amp;#39;s always a guarantee about resource deallocation time (that&amp;#39;s a very valuable and desiderable property).&lt;/p&gt;
&lt;p&gt;If fragmentation is a problem, C++ let you override standard allocatino mechanism. But fragmentation is a problem just in very limited contexts. If allocation time is a problem, no-one forbid to provide a memory allocation scheme similar to what a garbage collection system do, preallocate a large block and just returns pointer to internal offset of the block on memory demand).&lt;/p&gt;
&lt;p&gt;In my opinion, with GC we trade all resource management for just automatic memory management.&lt;/p&gt;
&lt;p&gt;in c++&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp;fstream f( &amp;quot;a.out&amp;quot; );&lt;/p&gt;
&lt;p&gt; &amp;nbsp;f &amp;lt;&amp;lt; &amp;quot;hello&amp;quot;;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp;fstream f( &amp;quot;a.out&amp;quot; );&lt;/p&gt;
&lt;p&gt; &amp;nbsp;f &amp;lt;&amp;lt; &amp;quot;hello&amp;quot;;&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;the equivalent correct java version is&lt;/p&gt;
&lt;p&gt;...&lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp;FileStream fs = new FileStream( ... );&lt;/p&gt;
&lt;p&gt; &amp;nbsp;try&lt;/p&gt;
&lt;p&gt; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;fs.write( &amp;quot;hello&amp;quot; );&lt;/p&gt;
&lt;p&gt; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp;finally&lt;/p&gt;
&lt;p&gt; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;if( fs != null )&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;fs.close();&lt;/p&gt;
&lt;p&gt; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp;try&lt;/p&gt;
&lt;p&gt; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;fs.write( &amp;quot;hello&amp;quot; );&lt;/p&gt;
&lt;p&gt; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt; &amp;nbsp;finally&lt;/p&gt;
&lt;p&gt; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;if( fs != null )&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;fs.close();&lt;/p&gt;
&lt;p&gt; &amp;nbsp;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;it&amp;#39;s really an improvement in productivity?&lt;/p&gt;
&lt;p&gt;Just my 2 cents&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1002656" width="1" height="1"&gt;</description></item><item><title>re: Garbage Collection in The Age of Smart Pointers</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2012/01/12/garbage-collection-in-the-age-of-smart-pointers.aspx#1001427</link><pubDate>Sun, 29 Jan 2012 17:35:27 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1001427</guid><dc:creator>Karan Kadam</dc:creator><description>&lt;p&gt;Excellent article. Good insight into GC vs smart pointers. Thanks!&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1001427" width="1" height="1"&gt;</description></item><item><title>re: Garbage Collection in The Age of Smart Pointers</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2012/01/12/garbage-collection-in-the-age-of-smart-pointers.aspx#1000566</link><pubDate>Sat, 28 Jan 2012 22:23:41 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1000566</guid><dc:creator>Catalin</dc:creator><description>&lt;p&gt;You missed the core aspect of the things: what about DETERMINISTIC vs NON-DETERMINISTIC facet of the problem. This is not a minor issue, fast system programming can&amp;#39;t rely on non-deterministic destruction, so I don&amp;#39;t agree with the conclusion.&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1000566" width="1" height="1"&gt;</description></item><item><title>re: Managed-Unmanaged Interoperability in the 2010s: Part 2, P/Invoke – Unmanaged to Managed</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2012/01/28/managed-unmanaged-interoperability-in-the-2010s-part-2-p-invoke-unmanaged-to-managed.aspx#1000039</link><pubDate>Sat, 28 Jan 2012 10:16:17 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:1000039</guid><dc:creator>Jeroen Frijters</dc:creator><description>&lt;p&gt;LPARAM should be IntPtr&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=1000039" width="1" height="1"&gt;</description></item><item><title>re: .NET to C++ Bridge</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2008/02/16/net-to-c-bridge.aspx#999485</link><pubDate>Fri, 27 Jan 2012 19:34:03 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:999485</guid><dc:creator>Kiran</dc:creator><description>&lt;p&gt;Hi there!&lt;/p&gt;
&lt;p&gt;I tried using this solution, but does not work for my environment. One small difference is that the application that loads my native library fails to load, if there are mixed dll dependencies -- or so, it seems. It loads perfectly, if i comment out all references to the mixed model dll, in my native library.&lt;/p&gt;
&lt;p&gt;Has anyone run into this issue? Any luck?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=999485" width="1" height="1"&gt;</description></item><item><title>re: CLR Stack Explorer – Preview</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2011/07/19/clr-stack-explorer-preview.aspx#993291</link><pubDate>Fri, 20 Jan 2012 14:03:07 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:993291</guid><dc:creator>Andrew</dc:creator><description>&lt;p&gt;The tool is useful to me too.&lt;/p&gt;
&lt;p&gt;Having source code would be great.&lt;/p&gt;
&lt;p&gt;Several bugs: do not display services even if Explorer running as admin&lt;/p&gt;
&lt;p&gt;If it can&amp;#39;t attach to process (already debugged) it shows error message, but after several tries, crashes.&lt;/p&gt;
&lt;p&gt;Also all &amp;quot;Service&amp;quot; application crashes when I start them. I don&amp;#39;t know if I need to start them at all.&lt;/p&gt;
&lt;p&gt;I have Win 7 x64&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=993291" width="1" height="1"&gt;</description></item><item><title>re: Garbage Collection in The Age of Smart Pointers</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2012/01/12/garbage-collection-in-the-age-of-smart-pointers.aspx#993262</link><pubDate>Fri, 20 Jan 2012 13:21:44 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:993262</guid><dc:creator>Sasha Goldshtein</dc:creator><description>&lt;p&gt;@POKE53280,0: You can always manage non-memory resources yourself, the same way you do with destructors in C++ (after all, you're responsible for calling the destructor). And there's the &amp;quot;using&amp;quot; statement. But I agree, there's room for improvement here.&lt;/p&gt;
&lt;p&gt;@Jon: No, most garbage collection implementations do not use reference counting.&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=993262" width="1" height="1"&gt;</description></item><item><title>re: Garbage Collection in The Age of Smart Pointers</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2012/01/12/garbage-collection-in-the-age-of-smart-pointers.aspx#988044</link><pubDate>Sun, 15 Jan 2012 00:00:11 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:988044</guid><dc:creator>POKE53280,0</dc:creator><description>&lt;p&gt;The problem is that .NET GC can be OK for memory resources, but doesn&amp;#39;t have a clue on non-memory resources (like textures, sockets, files...). Instead, C++ destructors (and smart pointers) can be used to handle every kind of resource uniformly, releasing it as soon as possible.&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=988044" width="1" height="1"&gt;</description></item><item><title>re: Windows 7 on 512 MB of RAM</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2009/08/09/windows-7-on-512-mb-of-ram.aspx#987123</link><pubDate>Sat, 14 Jan 2012 04:32:31 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:987123</guid><dc:creator>Maisum</dc:creator><description>&lt;p&gt;I am having pentium 4 with cpu 2.80 ghz and 2.79 ghz processor an 512 of ram so can i install windows 7 ....????&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=987123" width="1" height="1"&gt;</description></item><item><title>re: Garbage Collection in The Age of Smart Pointers</title><link>http://blogs.microsoft.co.il/blogs/sasha/archive/2012/01/12/garbage-collection-in-the-age-of-smart-pointers.aspx#987093</link><pubDate>Sat, 14 Jan 2012 03:42:26 GMT</pubDate><guid isPermaLink="false">b5c4f5bc-c09b-4439-a595-91a98c1847df:987093</guid><dc:creator>Guest</dc:creator><description>&lt;p&gt;agreed, plus, reference counting doesn&amp;#39;t do compacting, so it leads to fragmentation.&lt;/p&gt;
&lt;img src="http://blogs.microsoft.co.il/aggbug.aspx?PostID=987093" width="1" height="1"&gt;</description></item></channel></rss>
