<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8545272539217356502</id><updated>2024-09-18T08:40:27.897+09:30</updated><category term=".Net"/><category term=".NET 5"/><category term="Boost"/><category term="C#"/><category term="C# 5"/><category term="CSS"/><category term="Chrome"/><category term="FireFox"/><category term="IE"/><category term="INumeric"/><category term="Nemerle"/><category term="NuGet"/><category term="Opera"/><category term="SVG"/><category term="Safari"/><category term="Silverlight"/><category term="Wikipedia"/><category term="Windows Phone 7"/><category term="Xbox"/><category term="browser"/><category term="development"/><category term="gradient"/><category term="software"/><category term="tools"/><title type='text'>Sergey Shandar</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>11</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8545272539217356502.post-2998720407788012229</id><published>2014-08-09T04:54:00.002+09:30</published><updated>2014-08-09T04:54:41.322+09:30</updated><title type='text'></title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;https://getboost.codeplex.com/releases/view/126256&quot;&gt;Nuget for Boost 1.56.0&lt;/a&gt;.
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/2998720407788012229/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sergey-shandar.blogspot.com/2014/08/nuget-for-boost-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/2998720407788012229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/2998720407788012229'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/2014/08/nuget-for-boost-1.html' title=''/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8545272539217356502.post-7979067644147899312</id><published>2014-07-25T02:14:00.001+09:30</published><updated>2014-07-25T02:14:52.617+09:30</updated><title type='text'></title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;https://getboost.codeplex.com/releases/view/125707&quot;&gt;Nuget for Boost 1.56 Beta 1&lt;/a&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/7979067644147899312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sergey-shandar.blogspot.com/2014/07/nuget-for-boost-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/7979067644147899312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/7979067644147899312'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/2014/07/nuget-for-boost-1.html' title=''/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8545272539217356502.post-8438849255017077584</id><published>2013-11-14T04:06:00.003+10:30</published><updated>2013-11-14T04:06:50.059+10:30</updated><title type='text'>Nuget packages for Boost 1.55</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;a href=&quot;https://getboost.codeplex.com/releases/view/114813&quot;&gt;https://getboost.codeplex.com/releases/view/114813&lt;/a&gt;. Source files and pre-compiled libraries for Visual Studio 2012 (vc110) and 2013 (vc120).&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/8438849255017077584/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sergey-shandar.blogspot.com/2013/11/nuget-packages-for-boost-155.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/8438849255017077584'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/8438849255017077584'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/2013/11/nuget-packages-for-boost-155.html' title='Nuget packages for Boost 1.55'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8545272539217356502.post-3274285373620378603</id><published>2013-10-29T04:56:00.002+10:30</published><updated>2013-10-29T04:56:31.797+10:30</updated><title type='text'>getboost</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
I&#39;ve created a new open source project for Boost NuGet packages: &lt;a href=&quot;http://getboost.codeplex.com/&quot;&gt;getboost.codeplex.com&lt;/a&gt;.
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/3274285373620378603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sergey-shandar.blogspot.com/2013/10/getboost.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/3274285373620378603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/3274285373620378603'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/2013/10/getboost.html' title='getboost'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8545272539217356502.post-6465278807814055377</id><published>2013-08-20T11:58:00.000+09:30</published><updated>2013-09-18T01:02:17.476+09:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Boost"/><category scheme="http://www.blogger.com/atom/ns#" term="NuGet"/><title type='text'>Boost at nuget.org</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;p&gt;
It&#39;s unofficial but it works &lt;a href=&quot;https://www.nuget.org/packages/boost/&quot;&gt;https://www.nuget.org/packages/boost/&lt;/a&gt;. For Visual Studio 2012, supported platforms: Win32 and x64.
&lt;p/&gt;
&lt;p&gt;It&#39;s huge 235Mb and takes about half an hour to install.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open your C++ project. Or create a new one.&lt;/li&gt;
&lt;li&gt;Open &lt;b&gt;Tools | Library Package Manager | Manage NuGet Packages for Solution...&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Search for &quot;boost&quot; in &lt;b&gt;Online | NuGet Official Package Source (Include Prerelease)&lt;/b&gt;.&lt;/li&gt;
&lt;li&gt;Press the &lt;b&gt;Install&lt;/b&gt; button.&lt;/li&gt;
&lt;li&gt;Wait for about 10 minutes.&lt;/li&gt;
&lt;li&gt;Select your C++ project and press Ok.&lt;/li&gt;
&lt;li&gt;Wait for another 10 minutes.&lt;/li&gt;
&lt;li&gt;Close the dialogs.&lt;/li&gt;
&lt;li&gt;Include some boost header files. For example: #include &amp;lt;boost/atomic.hpp&amp;gt;&lt;/li&gt;
&lt;li&gt;Build the project.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&lt;h1&gt;Update&lt;/h1&gt;
&lt;p&gt;The updated boost package doesn&#39;t contain compiled libraries (.lib/.dll) any more. Now it&#39;s only 15Mb. I&#39;ve created separate packages for the boost compiled libraries:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_atomic/&quot;&gt;boost_atomic&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_chrono/&quot;&gt;boost_chrono&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_context/&quot;&gt;boost_context&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_coroutine/&quot;&gt;boost_coroutine&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_date_time/&quot;&gt;boost_date_time&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_exception/&quot;&gt;boost_exception&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_filesystem/&quot;&gt;boost_filesystem&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_graph/&quot;&gt;boost_graph&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_iostream/&quot;&gt;boost_iostream&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_locale/&quot;&gt;boost_locale&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Boost.Log:
&lt;a href=&quot;https://www.nuget.org/packages/boost_log/&quot;&gt;boost_log&lt;/a&gt;,
&lt;a href=&quot;https://www.nuget.org/packages/boost_log_setup/&quot;&gt;boost_log_setup&lt;/a&gt;;
&lt;/li&gt;
&lt;li&gt;Boost.Math:
&lt;a href=&quot;https://www.nuget.org/packages/boost_math_c99/&quot;&gt;boost_math_c99&lt;/a&gt;,
&lt;a href=&quot;https://www.nuget.org/packages/boost_math_c99f/&quot;&gt;boost_math_c99f&lt;/a&gt;,
&lt;a href=&quot;https://www.nuget.org/packages/boost_math_c99l/&quot;&gt;boost_math_c99l&lt;/a&gt;,
&lt;a href=&quot;https://www.nuget.org/packages/boost_math_tr1/&quot;&gt;boost_math_tr1&lt;/a&gt;,
&lt;a href=&quot;https://www.nuget.org/packages/boost_math_tr1f/&quot;&gt;boost_math_tr1f&lt;/a&gt;,
&lt;a href=&quot;https://www.nuget.org/packages/boost_math_tr1l/&quot;&gt;boost_math_tr1l&lt;/a&gt;;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_program_options/&quot;&gt;boost_program_options&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_random/&quot;&gt;boost_random&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_regex/&quot;&gt;boost_regex&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;Boost.Serialization:
&lt;a href=&quot;https://www.nuget.org/packages/boost_regex/&quot;&gt;boost_serialization&lt;/a&gt;,
&lt;a href=&quot;https://www.nuget.org/packages/boost_regex/&quot;&gt;boost_wserialization&lt;/a&gt;;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_signals/&quot;&gt;boost_signals&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_system/&quot;&gt;boost_system&lt;/a&gt;;&lt;/li&gt;
&lt;/li&gt;
&lt;li&gt;Boost.Test:
&lt;a href=&quot;https://www.nuget.org/packages/boost_prg_exec_monitor/&quot;&gt;boost_prg_exec_monitor&lt;/a&gt;,
&lt;a href=&quot;https://www.nuget.org/packages/boost_unit_test_framework/&quot;&gt;boost_unit_test_framework&lt;/a&gt;,
&lt;a href=&quot;https://www.nuget.org/packages/boost_test_exec_monitor/&quot;&gt;test_exec_monitor&lt;/a&gt;;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_thread/&quot;&gt;boost_thread&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_timer/&quot;&gt;boost_timer&lt;/a&gt;;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.nuget.org/packages/boost_wave/&quot;&gt;boost_wave&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/6465278807814055377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sergey-shandar.blogspot.com/2013/08/boost-on-nugetorg.html#comment-form' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/6465278807814055377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/6465278807814055377'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/2013/08/boost-on-nugetorg.html' title='Boost at nuget.org'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8545272539217356502.post-7955891092762191971</id><published>2011-02-13T22:48:00.002+10:30</published><updated>2011-02-13T22:53:37.832+10:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Nemerle"/><category scheme="http://www.blogger.com/atom/ns#" term="Wikipedia"/><title type='text'>Nemerle at Wikipedia.</title><content type='html'>The &lt;a href=&quot;http://en.wikipedia.org/wiki/Nemerle&quot;&gt;article&lt;/a&gt; about Nemerle has been removed from Wikipedia as a non-notable programming language.</content><link rel='replies' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/7955891092762191971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sergey-shandar.blogspot.com/2011/02/nemerle-at-wikipedia.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/7955891092762191971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/7955891092762191971'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/2011/02/nemerle-at-wikipedia.html' title='Nemerle at Wikipedia.'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8545272539217356502.post-4137732746925209100</id><published>2011-02-01T10:03:00.003+10:30</published><updated>2011-02-09T22:04:15.877+10:30</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net"/><category scheme="http://www.blogger.com/atom/ns#" term="INumeric"/><title type='text'>INumeric policy.</title><content type='html'>Policies:&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;interface&lt;/span&gt; INumericPolicy&amp;lt;T&gt;
{
    T Zero();
    T Add(T a, T b);
    ...
}

&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;class&lt;/span&gt; All: INumericPolicy&amp;lt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;int&lt;/span&gt;&gt;, INumericPolicy&amp;lt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;long&lt;/span&gt;&gt;, ...
{
    ...
    &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;public&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; All P = &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;new&lt;/span&gt; All();
}
&lt;/pre&gt;User&#39;s algorithms:&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;class&lt;/span&gt; Algorithms
{
    &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;public&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; T Sum&amp;lt;P, T&gt;(&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;this&lt;/span&gt; P p, &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;params&lt;/span&gt; T[] a)
        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;where&lt;/span&gt; P: INumericPolicy&amp;lt;T&gt;
    {
        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;var&lt;/span&gt; r = p.Zero();
        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;foreach&lt;/span&gt;(var i &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;in&lt;/span&gt; a)
        {
            r = p.Add(r, i);
        }
        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;return&lt;/span&gt; r;
    }

    ...
}
&lt;/pre&gt;Usage:&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;int&lt;/span&gt; i = All.P.Sum(1, 2, 3, 4, 5);
&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;long&lt;/span&gt; l = All.P.Sum(1L, 2, 3, 4, 5);
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/4137732746925209100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sergey-shandar.blogspot.com/2011/02/inumeric-using-policies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/4137732746925209100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/4137732746925209100'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/2011/02/inumeric-using-policies.html' title='INumeric policy.'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8545272539217356502.post-5015226018911128976</id><published>2011-01-31T11:28:00.030+10:30</published><updated>2011-07-20T11:38:38.277+09:30</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET 5"/><category scheme="http://www.blogger.com/atom/ns#" term="C# 5"/><title type='text'>.NET/C# 5 wish list</title><content type='html'>&lt;ol&gt;&lt;li&gt;Merge WPF and Silverlight. .NET Framework and .NET Compact Framework. It would be better to have just different profiles of framework like (.NET client profile) instead of different frameworks.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Non-nullable references&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;string&lt;/span&gt;! x = &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;xxx&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;;
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Discriminated unions:&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;union&lt;/span&gt; MyUnion: Enum
{
    &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;case&lt;/span&gt; Enum.Red: RedClass;
    &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;case&lt;/span&gt; Enum.Green: GreenClass;
    ...
}
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;INumeric interface for standard numeric types.&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;struct&lt;/span&gt; UInt32: INumeric&amp;lt;UInt32&gt;
{
...
}
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Fixed size arrays&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;byte&lt;/span&gt;[10] x;
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Operator extensions (syntax sugar):&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;public&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;class&lt;/span&gt; Extensions
{
    &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;public&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; T &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;operator&lt;/span&gt;+ &amp;lt;T&gt;(T a, T b) &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;where&lt;/span&gt; T: INumeric&amp;lt;T&gt;
    ...
}
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Polymorphic up cast:&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;class&lt;/span&gt; A: B { ... }
...
&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;new&lt;/span&gt; A() &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;up&lt;/span&gt; B
&lt;/pre&gt;&lt;b&gt;Update:&lt;/b&gt; No needs any more. Solution:&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;public&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;class&lt;/span&gt; Extension
{
    &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;public&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; T UpCast&amp;lt;T&gt;(T derived)
    {
        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;return&lt;/span&gt; derived;
    }
}
&lt;/pre&gt;Example:&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;new&lt;/span&gt; B().UpCast&amp;lt;A&gt;()
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Force use &#39;using&#39; keyword for some classes.&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;using&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;class&lt;/span&gt; My: IDisposable
{
    ....
}

...

&lt;span style=&#39;color:#808080; &#39;&gt;// Ok.&lt;/span&gt;
&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;using&lt;/span&gt;(var my = &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;new&lt;/span&gt; My())
{
}

&lt;span style=&#39;color:#808080; &#39;&gt;// Compilation error.&lt;/span&gt;
{
 var my = &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;new&lt;/span&gt; My();
}

&lt;span style=&#39;color:#808080; &#39;&gt;// Ok.&lt;/span&gt;
&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;return&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;new&lt;/span&gt; My();
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;Units of measurements. As in F# &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/dd233243.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/dd233243.aspx&lt;/a&gt;.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Named code blocks.&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;code Block
{
  &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;foreach&lt;/span&gt;(var x &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;in&lt;/span&gt; M)
  {
    &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;foreach&lt;/span&gt;(var y &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;in&lt;/span&gt; x)
    {
      &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;if&lt;/span&gt;(y)
        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;break&lt;/span&gt; Block; 
    }
  }
}
&lt;/pre&gt;&lt;/li&gt;
&lt;li&gt;A reference to an anonymous delegate inside the delegate.&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;Control.Selected += (s, e) =&gt;
{
    ...
    Control.Selected -= &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;this&lt;/span&gt; function;
}
&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;</content><link rel='replies' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/5015226018911128976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sergey-shandar.blogspot.com/2011/01/net-5-wishlist.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/5015226018911128976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/5015226018911128976'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/2011/01/net-5-wishlist.html' title='.NET/C# 5 wish list'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8545272539217356502.post-6988974846107827173</id><published>2010-12-28T02:30:00.017+10:30</published><updated>2011-09-18T12:21:39.061+09:30</updated><category scheme="http://www.blogger.com/atom/ns#" term=".Net"/><category scheme="http://www.blogger.com/atom/ns#" term="Silverlight"/><category scheme="http://www.blogger.com/atom/ns#" term="Windows Phone 7"/><category scheme="http://www.blogger.com/atom/ns#" term="Xbox"/><title type='text'>.NET Frameworks</title><content type='html'>&lt;h1&gt;Class Library / Windows Metro style&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Runtime:&lt;/b&gt; ?&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Framework:&lt;/b&gt; .NETCore&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Version:&lt;/b&gt; 4.5&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Class Library / .NET Framework 4 Client&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Runtime:&lt;/b&gt; 4.0.30319&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Framework:&lt;/b&gt; .NETFramework&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Version:&lt;/b&gt; 4.0&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Profile:&lt;/b&gt; Client&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;Windows Game Library / .NET Framework 4 Client&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Runtime:&lt;/b&gt; 4.0.30319&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Framework:&lt;/b&gt; .NETFramework&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Version:&lt;/b&gt; 4.0&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Profile:&lt;/b&gt; Client&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;Xbox 360 Game Library&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Runtime:&lt;/b&gt; 2.0.50727&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;Silverlight Class Library / Silverlight 4&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Runtime:&lt;/b&gt; 2.0.50727&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Framework:&lt;/b&gt; Silverlight&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Version:&lt;/b&gt; 4.0&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;Silverlight for Windows Phone 7.1&lt;/h1&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Runtime:&lt;/b&gt; ?&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Framework:&lt;/b&gt; Silverlight&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Version:&lt;/b&gt; 4.0&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Profile:&lt;/b&gt; WindowsPhone71&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;Silverlight for Windows Phone 7.0&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Runtime:&lt;/b&gt; 2.0.50727&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Framework:&lt;/b&gt; Silverlight&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Version:&lt;/b&gt; 4.0&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Profile:&lt;/b&gt; WindowsPhone&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;Silverlight Class Library / Silverlight 3&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Runtime:&lt;/b&gt; 2.0.50727&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;Windows Phone Game Library&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Runtime:&lt;/b&gt; 2.0.50727&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/6988974846107827173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sergey-shandar.blogspot.com/2010/12/net-frameworks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/6988974846107827173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/6988974846107827173'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/2010/12/net-frameworks.html' title='.NET Frameworks'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8545272539217356502.post-2674811254662585692</id><published>2010-12-10T04:54:00.005+10:30</published><updated>2011-02-01T23:38:32.224+10:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="C#"/><category scheme="http://www.blogger.com/atom/ns#" term="Chrome"/><category scheme="http://www.blogger.com/atom/ns#" term="CSS"/><category scheme="http://www.blogger.com/atom/ns#" term="FireFox"/><category scheme="http://www.blogger.com/atom/ns#" term="gradient"/><category scheme="http://www.blogger.com/atom/ns#" term="IE"/><category scheme="http://www.blogger.com/atom/ns#" term="Opera"/><category scheme="http://www.blogger.com/atom/ns#" term="Safari"/><category scheme="http://www.blogger.com/atom/ns#" term="SVG"/><title type='text'>CSS gradient on C#</title><content type='html'>CSS gradient on C# using &lt;a href=&quot;http://citylizard.codeplex.com&quot;&gt;CityLizard Framework&lt;/a&gt;. Works in IE 5.5-8.0, FireFox 3.6, Chrome 8.0, Safari 5.0 and Opera 10.&lt;br /&gt;
&lt;pre style=&#39;color:#000000;background:#ffffff;&#39;&gt;&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;namespace&lt;/span&gt; Css
{
    &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;using&lt;/span&gt; S = www_w3_org._2000.svg.X;
    &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;using&lt;/span&gt; D = System.Drawing;

    &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;class&lt;/span&gt; Gradient
    {
        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;class&lt;/span&gt; Svg : S
        {
            &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;public&lt;/span&gt; T.svg Gradient(&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;string&lt;/span&gt; start, &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;string&lt;/span&gt; end)
            {
                &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;return&lt;/span&gt;
                    svg_(width: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;100%&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;, height: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;100%&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;)
                        [defs
                            [linearGradient_(
                                id: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;grad&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;,
                                x1: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;0&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;,
                                y1: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;0&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;,
                                x2: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;0&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;,
                                y2: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;100%&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;)
                                [stop_(offset: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;0&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;, stop_color: start)]
                                [stop_(offset: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;1&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;, stop_color: end)]
                            ]
                        ]
                        [rect_(
                            width: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;100%&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;,
                            height: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;100%&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;,
                            x: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;0&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;,
                            y: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;0&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;,
                            style: &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;fill:url(#grad)&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;)
                        ];
            }
        }

        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;string&lt;/span&gt; X2(&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;byte&lt;/span&gt; x)
        {
            &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;return&lt;/span&gt; x.ToString(&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;X2&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;);
        }

        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;string&lt;/span&gt; ToString(D.Color c)
        {
            &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;return&lt;/span&gt; &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;#&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; + X2(c.R) + X2(c.G) + X2(c.B);
        }

        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;byte&lt;/span&gt; Avg(&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;byte&lt;/span&gt; a, &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;byte&lt;/span&gt; b)
        {
            &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;return&lt;/span&gt; (&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;byte&lt;/span&gt;)((a + b) / 2);
        }

        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; D.Color Avg(D.Color a, D.Color b)
        {
            &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;return&lt;/span&gt; D.Color.FromArgb(
                Avg(a.R, b.R), Avg(a.G, b.G), Avg(a.B, b.B));
        }

        &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;public&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;static&lt;/span&gt; &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;string&lt;/span&gt; Y(D.Color Start, D.Color End)
        {
            var s = ToString(Start);
            var e = ToString(End);
            var svgB = &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;new&lt;/span&gt; Svg().Gradient(s, e).ToString();
            var svg = &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;;
            &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;foreach&lt;/span&gt; (var c &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;in&lt;/span&gt; svgB)
            {
                var x = (&lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;int&lt;/span&gt;)c;
                &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;if&lt;/span&gt; (x &amp;lt;= 0x40)
                {
                    svg += &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;%&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; + x.ToString(&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;X2&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;);
                }
                &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;else&lt;/span&gt;
                {
                    svg += c;
                }
            }
            &lt;span style=&#39;color:#808080; &#39;&gt;// Next browsers to test: Opera 11 (hopefully it has CSS gradient), &lt;/span&gt;
            &lt;span style=&#39;color:#808080; &#39;&gt;// IE 9.&lt;/span&gt;
            &lt;span style=&#39;color:#000084; font-weight:bold; &#39;&gt;return&lt;/span&gt;
                &lt;span style=&#39;color:#808080; &#39;&gt;// for other browsers.&lt;/span&gt;
                &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;background: &lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; + ToString(Avg(Start, End)) + &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; +

                &lt;span style=&#39;color:#808080; &#39;&gt;// Opera 10. It also works for Chrome and Safari.&lt;/span&gt;
                &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;background: url(\&quot;data:image/svg+xml,&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; + svg + &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;\&quot;);&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; +

                &lt;span style=&#39;color:#808080; &#39;&gt;// IE 5.5-8.0.&lt;/span&gt;
                &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;filter: progid:DXImageTransform.Microsoft.gradient(&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; +
                &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;startColorstr=&#39;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; +
                s +
                &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&#39;, endColorstr=&#39;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; +
                e +
                &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&#39;);&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; +

                &lt;span style=&#39;color:#808080; &#39;&gt;// webkit browsers (Chrome, Safari). It is not required &lt;/span&gt;
                &lt;span style=&#39;color:#808080; &#39;&gt;// because SVG gradient for Opera works fine for these &lt;/span&gt;
                &lt;span style=&#39;color:#808080; &#39;&gt;// browsers.&lt;/span&gt;
                &lt;span style=&#39;color:#808080; &#39;&gt;/*&lt;/span&gt;
&lt;span style=&#39;color:#808080; &#39;&gt;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&quot;background: -webkit-gradient(&quot; +&lt;/span&gt;
&lt;span style=&#39;color:#808080; &#39;&gt;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&quot;linear, left top, left bottom, from(&quot; + &lt;/span&gt;
&lt;span style=&#39;color:#808080; &#39;&gt;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;s + &lt;/span&gt;
&lt;span style=&#39;color:#808080; &#39;&gt;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&quot;), to(&quot; + &lt;/span&gt;
&lt;span style=&#39;color:#808080; &#39;&gt;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;e + &lt;/span&gt;
&lt;span style=&#39;color:#808080; &#39;&gt;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&quot;));&quot; +&lt;/span&gt;
&lt;span style=&#39;color:#808080; &#39;&gt;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;&amp;#xa0;*/&lt;/span&gt;

                &lt;span style=&#39;color:#808080; &#39;&gt;// FireFox 3.6+&lt;/span&gt;
                &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;background: -moz-linear-gradient(top,  &lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; + s + &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;, &lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt; + e + &lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;);&lt;/span&gt;&lt;span style=&#39;color:#0000ff; &#39;&gt;&quot;&lt;/span&gt;;
        }
    }
}
&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/2674811254662585692/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sergey-shandar.blogspot.com/2010/12/css-gradient-on-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/2674811254662585692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/2674811254662585692'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/2010/12/css-gradient-on-c.html' title='CSS gradient on C#'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8545272539217356502.post-7831942740196764210</id><published>2010-12-06T23:28:00.145+10:30</published><updated>2011-10-03T11:44:26.865+10:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="browser"/><category scheme="http://www.blogger.com/atom/ns#" term="development"/><category scheme="http://www.blogger.com/atom/ns#" term="software"/><category scheme="http://www.blogger.com/atom/ns#" term="tools"/><title type='text'>List of free tools</title><content type='html'>&lt;h1&gt;Tools&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;&lt;b&gt;Windows Developer Preview&lt;/b&gt; &lt;a href=&quot;http://msdn.microsoft.com/en-us/windows/apps/br229516&quot;&gt;http://msdn.microsoft.com/en-us/windows/apps/br229516&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Windows 7 USB/DVD Download Tool&lt;/b&gt;. &lt;a href=&quot;http://www.microsoftstore.com/store/msstore/html/pbPage.Help_Win7_usbdvd_dwnTool&quot;&gt;http://www.microsoftstore.com/store/msstore/html/pbPage.Help_Win7_usbdvd_dwnTool&lt;/a&gt; or &lt;a href=&quot;http://wudt.codeplex.com&quot;&gt;http://wudt.codeplex.com&lt;/a&gt;. GNU GPL.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Git Extensions&lt;/b&gt; &lt;a href=&quot;http://gitextensions.sourceforge.net/&quot;&gt;http://gitextensions.sourceforge.net/&lt;/a&gt;. GPL 3. &lt;/li&gt;
&lt;li&gt;&lt;b&gt;Nemiver&lt;/b&gt; &lt;a href=&quot;http://projects.gnome.org/nemiver/&quot;&gt;http://projects.gnome.org/nemiver/&lt;/a&gt;. Open Source. GPL.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TortoiseHg&lt;/b&gt; &lt;a href=&quot;http://tortoisehg.bitbucket.org/&quot;&gt;http://tortoisehg.bitbucket.org/&lt;/a&gt;. Open Source. GPL 2.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Visual Studio 2010 Express&lt;/b&gt; &lt;a href=&quot;http://www.microsoft.com/express/Downloads/&quot; &gt;http://www.microsoft.com/express/Downloads/&lt;/a&gt;. Freeware.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Visual C# 2010 Express&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Visual C++ 2010 Express&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Visual Web 2010 Express&lt;/b&gt;, even if you do not develop ASP.NET application, the IDE editor is really good for HTML, JavaScript, CSS, and XML.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Windows Phone Developer Tools&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Visual Studio 2010 Downloads&lt;/b&gt;. &lt;a href=&quot;http://msdn.microsoft.com/en-us/vstudio/bb984878&quot;&gt;http://msdn.microsoft.com/en-us/vstudio/bb984878&lt;/a&gt;. Freeware.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;Visual Studio 2010 Shell (Integrated)&lt;/b&gt; for F#.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Visual Studio 2010 Shell (Isolated)&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Visual Studio 2008 Shell (Isolated) with SP1&lt;/b&gt; as an IDE for Nemerle, &lt;a href=
&quot;http://www.microsoft.com/downloads/en/details.aspx?familyid=021b3bee-b2ad-42a8-854a-c5eaef69e927&amp;displaylang=en&quot;&gt;http://www.microsoft.com/downloads/en/details.aspx?familyid=021b3bee-b2ad-42a8-854a-c5eaef69e927&amp;displaylang=en&lt;/a&gt;. Freeware.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Microsoft SQL Server 2008 R2 Express&lt;/b&gt;. &lt;a href=&quot;http://www.microsoft.com/express/Database/&quot;
&gt;http://www.microsoft.com/express/Database/&lt;/a&gt;.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Windows SDK&lt;/b&gt; adds x64 and Itanium to Visual C++ 2010 Express. &lt;a href=&quot;http://msdn.microsoft.com/en-us/windows/bb980924&quot;
&gt;http://msdn.microsoft.com/en-us/windows/bb980924&lt;/a&gt;. Freeware.&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Windows PowerShell 2.0&lt;/b&gt; &lt;a href=&quot;http://support.microsoft.com/kb/968930&quot; &gt;http://support.microsoft.com/kb/968930&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SP1 for Visual Studio 2010&lt;/b&gt; &lt;a href=&quot;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=23691&quot;&gt;http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=23691&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NUnit&lt;/b&gt; &lt;a href=&quot;http://www.nunit.org/&quot; &gt;http://www.nunit.org/&lt;/a&gt;. Open Source. NUnit license.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Boost&lt;/b&gt; &lt;a href=&quot;http://www.boost.org/&quot; &gt;http://www.boost.org/&lt;/a&gt;. Open Source. Boost licence.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Far Manager&lt;/b&gt; &lt;a href=&quot;http://www.farmanager.com/&quot;&gt;http://www.farmanager.com/&lt;/a&gt;. Open Source. Revised BSD license.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;7-Zip&lt;/b&gt; &lt;a href=&quot;http://www.7-zip.org/&quot;&gt;http://www.7-zip.org/&lt;/a&gt;. Open Source. GNU LGPL + unRAR restrictions.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Sandcastle Help File Builder&lt;/b&gt; &lt;a href=&quot;http://shfb.codeplex.com/&quot;&gt;http://shfb.codeplex.com/&lt;/a&gt;. Open Source. Ms-PL.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Mono&lt;/b&gt; &lt;a href=&quot;http://www.mono-project.com/&quot;&gt;http://www.mono-project.com/&lt;/a&gt;. Open Source. GPL, LGPL, MIT X11, Microsoft Permissive License.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;MonoDevelop&lt;/b&gt; &lt;a href=&quot;http://monodevelop.com/&quot;&gt;http://monodevelop.com/&lt;/a&gt;. Open Source. LGPLv2 and MIT X11.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;yEd&lt;/b&gt; &lt;a href=&quot;http://www.yworks.com/en/products_yed_about.html&quot;&gt;http://www.yworks.com/en/products_yed_about.html&lt;/a&gt;. Freeware.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;WiX&lt;/b&gt; &lt;a href=&quot;http://wix.codeplex.com/&quot;&gt;http://wix.codeplex.com/&lt;/a&gt;. Open Source. Common Public License Version 1.0.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;SharpDevelop&lt;/b&gt; &lt;a href=&quot;http://www.icsharpcode.net/OpenSource/SD/Default.aspx&quot;&gt;http://www.icsharpcode.net/OpenSource/SD/Default.aspx&lt;/a&gt;. Open Source. LGPL.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;ILSpy&lt;/b&gt; &lt;a href=&quot;http://wiki.sharpdevelop.net/ilspy.ashx&quot;&gt;http://wiki.sharpdevelop.net/ilspy.ashx&lt;/a&gt;. Open Source.&lt;/li&gt;

&lt;li&gt;&lt;b&gt;Doxygen&lt;/b&gt; &lt;a href=&quot;http://www.stack.nl/~dimitri/doxygen/&quot;&gt;http://www.stack.nl/~dimitri/doxygen/&lt;/a&gt;. Open Source. GPL.&lt;/li&gt;

&lt;/ul&gt;. &lt;h1&gt;Browsers&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Firefox&lt;/b&gt; &lt;a href=&quot;http://www.mozilla.com/firefox/&quot;&gt;http://www.mozilla.com/firefox/&lt;/a&gt;. Open Source. Mozilla Public License.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Chrome&lt;/b&gt; &lt;a href=&quot;http://www.google.com/chrome&quot;&gt;http://www.google.com/chrome&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Safari&lt;/b&gt; &lt;a href=&quot;http://www.apple.com/safari/&quot;&gt;http://www.apple.com/safari/&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Opera&lt;/b&gt; &lt;a href=&quot;http://www.opera.com&quot;&gt;http://www.opera.com&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Internet Explorer&lt;/b&gt;. Freeware.&lt;ul&gt;&lt;li&gt;&lt;b&gt;Microsoft Expression Web SuperPreview&lt;/b&gt; &lt;a href=&quot;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8e6ac106-525d-45d0-84db-dccff3fae677&amp;amp;displaylang=en&quot;&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=8e6ac106-525d-45d0-84db-dccff3fae677&amp;amp;displaylang=en&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IETester&lt;/b&gt; &lt;a href=&quot;http://www.my-debugbar.com/wiki/IETester/HomePage&quot;&gt;http://www.my-debugbar.com/wiki/IETester/HomePage&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;h1&gt;Others&lt;/h1&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;VirtualBox&lt;/b&gt; &lt;a href=&quot;http://www.virtualbox.org/&quot;&gt;http://www.virtualbox.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;openSUSE&lt;/b&gt; &lt;a href=&quot;http://software.opensuse.org/&quot;&gt;http://software.opensuse.org/&lt;/a&gt;. Open Source. GPLv2. Binaries for Personal Use.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Free Download Manager&lt;/b&gt; &lt;a href=&quot;http://www.freedownloadmanager.org/&quot;&gt;http://www.freedownloadmanager.org/&lt;/a&gt;. Open Source. GPL.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;OpenProj&lt;/b&gt; &lt;a href=&quot;http://openproj.org/openproj&quot;&gt;http://openproj.org/openproj&lt;/a&gt;. Freeware. CPAL.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;LibreOffice&lt;/b&gt; &lt;a href=&quot;http://www.libreoffice.org/&quot;&gt;http://www.libreoffice.org/&lt;/a&gt;.  Open Source. GNU Lesser General Public License.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Open Office&lt;/b&gt; &lt;a href=&quot;http://www.openoffice.org/&quot;&gt;http://www.openoffice.org/&lt;/a&gt;. Open Source. GNU Lesser General Public License.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Thunderbird&lt;/b&gt; &lt;a href=&quot;http://www.mozillamessaging.com/thunderbird/&quot;&gt;http://www.mozillamessaging.com/thunderbird.&lt;/a&gt;. Open Source. MPL, GPL, LGPL,&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Skype&lt;/b&gt; &lt;a href=&quot;http://www.skype.com/&quot;&gt;http://www.skype.com/&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;KeePass&lt;/b&gt; &lt;a href=&quot;http://keepass.info/&quot;&gt;http://keepass.info/&lt;/a&gt;. Open Source. GPL.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;TortoiseSVN&lt;/b&gt; &lt;a href=&quot;http://tortoisesvn.net/&quot;&gt;http://tortoisesvn.net/&lt;/a&gt;. Open Source. GPL.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;VisualSVN Server&lt;/b&gt; &lt;a href=&quot;http://www.visualsvn.com/server/&quot;&gt;http://www.visualsvn.com/server/&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ImgBurn&lt;/b&gt; &lt;a href=&quot;http://www.imgburn.com/&quot;&gt;http://www.imgburn.com/&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Adobe Reader&lt;/b&gt; &lt;a href=&quot;http://get.adobe.com/reader/&quot;&gt;http://get.adobe.com/reader/&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;ZoneAlarm Free Firewall&lt;/b&gt; &lt;a href=&quot;http://www.zonealarm.com/security/en-us/trialpay-za-signup.htm&quot;&gt;http://www.zonealarm.com/security/en-us/trialpay-za-signup.htm&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CCCP&lt;/b&gt; &lt;a href=&quot;http://www.cccp-project.net/&quot;&gt;http://www.cccp-project.net/&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;µTorrent&lt;/b&gt; &lt;a href=&quot;http://www.utorrent.com/&quot;&gt;http://www.utorrent.com/&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WinCDEmu&lt;/b&gt; &lt;a href=&quot;http://wincdemu.sysprogs.org&quot;&gt;http://wincdemu.sysprogs.org&lt;/a&gt;. Open Source. LGPL.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Security Essentials&lt;/b&gt; &lt;a href=&quot;http://www.microsoft.com/security_essentials/&quot;
&gt;http://www.microsoft.com/security_essentials/&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;AVG Free&lt;/b&gt; &lt;a href=&quot;http://free.avg.com/&quot;&gt;http://free.avg.com/&lt;/a&gt;. Freeware.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Blender&lt;/b&gt; &lt;a href=&quot;http://blender.org&quot;&gt;http://blender.org/&lt;/a&gt;. Open Source. GNU GPL.&lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://sergey-shandar.blogspot.com/feeds/7831942740196764210/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sergey-shandar.blogspot.com/2010/12/list-of-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/7831942740196764210'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8545272539217356502/posts/default/7831942740196764210'/><link rel='alternate' type='text/html' href='http://sergey-shandar.blogspot.com/2010/12/list-of-tools.html' title='List of free tools'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/00079330706099573036</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>