<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11049085</id><updated>2012-01-23T17:11:59.669+02:00</updated><category term='TBB'/><category term='Sgen.exe'/><category term='LINQ'/><category term='Performance'/><category term='tr1'/><category term='SQL'/><category term='SQL 2008'/><category term='Freakostatistics'/><category term='Velocity'/><category term='Task Manager'/><category term='TFS'/><category term='Self-Dev'/><category term='Control'/><category term='AJAX'/><category term='Misc'/><category term='SQL 2005'/><category term='Design'/><category term='Security'/><category term='Google'/><category term='.NET 3'/><category term='ASP.NET'/><category term='Finance'/><category term='e-book'/><category term='C#'/><category term='C++'/><category term='Distributed Computing'/><category term='regex'/><category term='Utility'/><category term='Code'/><category term='Working Set'/><category term='AWE'/><category term='Interesting'/><category term='WCSF'/><category term='Tip'/><category term='WCF'/><category term='STL'/><category term='patterns and practicies'/><category term='ORM'/><category term='Tools'/><category term='Debug'/><category term='Humor'/><category term='HtmlControl'/><category term='WPE/E'/><category term='Blog'/><category term='.NET 3.5'/><category term='Freakonomics'/><category term='Silverlight'/><category term='.NET'/><title type='text'>Alex Pinsker</title><subtitle type='html'>Agito obviam astrum</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default?start-index=101&amp;max-results=100'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>148</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11049085.post-6861955118626147544</id><published>2012-01-02T00:43:00.000+02:00</published><updated>2012-01-02T00:43:30.237+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><title type='text'>SQL–getting all rows with rank 2 (N)</title><content type='html'>&lt;p&gt;CREATE TABLE&amp;nbsp; #test ( id int, ProductName VARCHAR(25) ) &lt;br /&gt;insert into #test &lt;br /&gt;select 1, 'Apple' union all &lt;br /&gt;select 2, 'Apple' union all &lt;br /&gt;select 5, 'Apple' union all &lt;br /&gt;select 3, 'Orange' union all &lt;br /&gt;select 4, 'Orange' union all &lt;br /&gt;select 10, 'Orange' &lt;br /&gt;SELECT * FROM #test&lt;/p&gt;&lt;p&gt;SELECT maxID FROM &lt;br /&gt;( &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SELECT MAX(id) AS mid, name AS nn, RANK() OVER (PARTITION BY name ORDER BY id DESC) AS MyRank &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; FROM #test &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GROUP BY id, name &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; --ORDER BY id desc -- RANK() &lt;br /&gt;) tmp &lt;br /&gt;WHERE tmp.MyRank = 2&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6861955118626147544?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6861955118626147544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6861955118626147544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6861955118626147544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6861955118626147544'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2012/01/sqlgetting-all-rows-with-rank-2-n.html' title='SQL–getting all rows with rank 2 (N)'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-41027496865476058</id><published>2012-01-02T00:41:00.001+02:00</published><updated>2012-01-02T00:41:54.488+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>Get current username in SQL</title><content type='html'>&lt;p&gt;SELECT PARSENAME(REPLACE(ORIGINAL_LOGIN(), '\', '.'), 1)&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-41027496865476058?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/41027496865476058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=41027496865476058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/41027496865476058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/41027496865476058'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2012/01/get-current-username-in-sql.html' title='Get current username in SQL'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-939083994478674262</id><published>2011-10-11T23:52:00.001+02:00</published><updated>2011-10-11T23:52:39.276+02:00</updated><title type='text'>What is a size of DateTime type in C#?</title><content type='html'>What is a size of DateTime type in C#? - A trivial question, unexcitingly facing few obstacles. Self-explanatory code below describes how you can't get it and how you can (and yes, it's 8 bytes):   &lt;div style="border-bottom: #000080 1px solid; border-left: #000080 1px solid; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; color: #000; font-size: 10pt; border-top: #000080 1px solid; border-right: #000080 1px solid"&gt;   &lt;div style="padding-bottom: 2px; background-color: #ffffff; padding-left: 5px; padding-right: 5px; overflow: auto; padding-top: 2px"&gt;&lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;       &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; DateTimeSizeExample       &lt;br /&gt;{       &lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;#160; public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;struct&lt;/span&gt; &lt;span style="color: #2b91af"&gt;TypeSizeProxy&lt;/span&gt;&amp;lt;T&amp;gt;       &lt;br /&gt;&amp;#160; {       &lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; public&lt;/span&gt; T PublicField;       &lt;br /&gt;&amp;#160; }       &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;#160; public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;SizeCalculator&lt;/span&gt;       &lt;br /&gt;&amp;#160; {       &lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; SizeOf&amp;lt;T&amp;gt;()       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; try&lt;/span&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return&lt;/span&gt; System.Runtime.InteropServices.&lt;span style="color: #2b91af"&gt;Marshal&lt;/span&gt;.SizeOf(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(T));       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; catch&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;ArgumentException&lt;/span&gt;)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {       &lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return&lt;/span&gt; System.Runtime.InteropServices.&lt;span style="color: #2b91af"&gt;Marshal&lt;/span&gt;.SizeOf(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TypeSizeProxy&amp;lt;T&amp;gt;());       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }       &lt;br /&gt;&amp;#160; }       &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;#160; public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; GetSize(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt; &lt;span style="color: #0000ff"&gt;object&lt;/span&gt; obj)       &lt;br /&gt;&amp;#160; {       &lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;#160;&amp;#160;&amp;#160; return&lt;/span&gt; System.Runtime.InteropServices.&lt;span style="color: #2b91af"&gt;Marshal&lt;/span&gt;.SizeOf(obj);       &lt;br /&gt;&amp;#160; }       &lt;br /&gt;}       &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: #0000ff"&gt;internal&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Program&lt;/span&gt;       &lt;br /&gt;{       &lt;br /&gt;&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Main(&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;[] args)       &lt;br /&gt;{       &lt;br /&gt;&lt;span style="color: #008000"&gt;// Error: 'System.DateTime' does not have a predefined size, therefore sizeof can only be used in an unsafe context&lt;/span&gt;       &lt;br /&gt;&lt;span style="color: #008000"&gt;// (consider using System.Runtime.InteropServices.Marshal.SizeOf)&lt;/span&gt;       &lt;br /&gt;&lt;span style="color: #008000"&gt;//int s1 = sizeof(DateTime); &lt;/span&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: #008000"&gt;// Run time Argument Exception: Type 'System.DateTime' cannot be marshaled as an unmanaged structure; no meaningful size or offset can be computed&lt;/span&gt;       &lt;br /&gt;&lt;span style="color: #008000"&gt;//int s2 = System.Runtime.InteropServices.Marshal.SizeOf(typeof(DateTime));&lt;/span&gt;       &lt;br /&gt;      &lt;br /&gt;&lt;span style="color: #0000ff"&gt;int&lt;/span&gt; dateTimeSize = SizeCalculator.SizeOf&amp;lt;&lt;span style="color: #2b91af"&gt;DateTime&lt;/span&gt;&amp;gt;(); &lt;span style="color: #008000"&gt;// 8 bytes&lt;/span&gt;       &lt;br /&gt;}       &lt;br /&gt;}       &lt;br /&gt;}&lt;/div&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-939083994478674262?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/939083994478674262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=939083994478674262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/939083994478674262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/939083994478674262'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2011/10/what-is-size-of-datetime-type-in-c.html' title='What is a size of DateTime type in C#?'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1421247169131145549</id><published>2011-02-07T23:17:00.001+02:00</published><updated>2011-02-07T23:17:08.843+02:00</updated><title type='text'>Google Desktop Search as intranet search tool</title><content type='html'>&lt;p&gt;Here is list of GDS proxies that could be used:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.asabox.com/goolag/"&gt;http://www.asabox.com/goolag/&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://sourceforge.net/projects/soogle/"&gt;http://sourceforge.net/projects/soogle/&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://www.projectcomputing.com/resources/desktopProxy/"&gt;http://www.projectcomputing.com/resources/desktopProxy/&lt;/a&gt;    &lt;br /&gt;(left as comment on my &lt;a href="http://alexpinsker.blogspot.com/2007/05/fix-dnka-invalid-request-problem-it.html"&gt;former post&lt;/a&gt; by anonymous good Samaritan).&lt;/p&gt;  &lt;p&gt;See also: &lt;a href="http://alexpinsker.blogspot.com/2006/04/turn-google-desktop-into-multisite_30.html"&gt;Turn Google Desktop into multisite search tool&lt;/a&gt;. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1421247169131145549?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1421247169131145549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1421247169131145549' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1421247169131145549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1421247169131145549'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2011/02/google-desktop-search-as-intranet.html' title='Google Desktop Search as intranet search tool'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-2755464661141184061</id><published>2011-01-29T00:51:00.001+02:00</published><updated>2011-01-29T00:51:56.198+02:00</updated><title type='text'>Dynamic casting in c#</title><content type='html'>&lt;div style="font-family: courier new; background: white; color: black; font-size: 10pt"&gt;   &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;var&lt;/span&gt; typesSubset = &lt;span style="color: blue"&gt;new&lt;/span&gt;[] { &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: blue"&gt;decimal&lt;/span&gt;), &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Int32&lt;/span&gt;), &lt;span style="color: blue"&gt;typeof&lt;/span&gt;(&lt;span style="color: #2b91af"&gt;Int64&lt;/span&gt;) };&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Type&lt;/span&gt; someDynamicType = &lt;span style="color: blue"&gt;typeof&lt;/span&gt; (&lt;span style="color: blue"&gt;int&lt;/span&gt;);&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;int&lt;/span&gt; someDynamicValue = 777;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;if&lt;/span&gt; (typesSubset.Any(t =&amp;gt; t == someDynamicType))&lt;/p&gt;    &lt;p style="margin: 0px"&gt;{&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;object&lt;/span&gt; result = &lt;span style="color: #2b91af"&gt;Expression&lt;/span&gt;.Lambda&amp;lt;&lt;span style="color: #2b91af"&gt;Func&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;object&lt;/span&gt;&amp;gt;&amp;gt;(&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Expression&lt;/span&gt;.Convert(&lt;span style="color: #2b91af"&gt;Expression&lt;/span&gt;.Add(&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Expression&lt;/span&gt;.Constant(someDynamicType), &lt;span style="color: #2b91af"&gt;Expression&lt;/span&gt;.Constant(someDynamicValue)),&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;typeof&lt;/span&gt; (&lt;span style="color: blue"&gt;object&lt;/span&gt;))).Compile()();&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(result); &lt;span style="color: green"&gt;// 777&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin: 0px"&gt;}&lt;/p&gt; &lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-2755464661141184061?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/2755464661141184061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=2755464661141184061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2755464661141184061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2755464661141184061'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2011/01/dynamic-casting-in-c.html' title='Dynamic casting in c#'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-6171009824679200591</id><published>2011-01-29T00:35:00.001+02:00</published><updated>2011-01-29T00:35:57.840+02:00</updated><title type='text'>Pass xml to stored procedure</title><content type='html'>&lt;p&gt;In C#:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="90%"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;div style="font-family: courier new; background: white; color: black; font-size: 10pt"&gt;           &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160;&amp;#160; 1&lt;/span&gt;&amp;#160;&lt;span style="color: green"&gt;// create XML string&lt;/span&gt;&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160;&amp;#160; 2&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;var&lt;/span&gt; dataToPass = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;StringBuilder&lt;/span&gt;(&lt;span style="color: #a31515"&gt;&amp;quot;&amp;lt;RowsOfNumbers&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160;&amp;#160; 3&lt;/span&gt; dataToPass.AppendFormat(&lt;span style="color: #a31515"&gt;&amp;quot;&amp;lt;id&amp;gt;{0}&amp;lt;/id&amp;gt;&amp;quot;&lt;/span&gt;, 1);&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160;&amp;#160; 4&lt;/span&gt; dataToPass.AppendFormat(&lt;span style="color: #a31515"&gt;&amp;quot;&amp;lt;id&amp;gt;{0}&amp;lt;/id&amp;gt;&amp;quot;&lt;/span&gt;, 2);&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160;&amp;#160; 5&lt;/span&gt; dataToPass.AppendFormat(&lt;span style="color: #a31515"&gt;&amp;quot;&amp;lt;id&amp;gt;{0}&amp;lt;/id&amp;gt;&amp;quot;&lt;/span&gt;, 3);&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160;&amp;#160; 6&lt;/span&gt; dataToPass.Append(&lt;span style="color: #a31515"&gt;&amp;quot;&amp;lt;/RowsOfNumbers&amp;gt;&amp;quot;&lt;/span&gt;);&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160;&amp;#160; 7&lt;/span&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160;&amp;#160; 8&lt;/span&gt;&amp;#160;&lt;span style="color: green"&gt;// call SP&lt;/span&gt;&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;&amp;#160;&amp;#160;&amp;#160; 9&lt;/span&gt; myDB.ExecuteStoredProcedure(&lt;span style="color: #a31515"&gt;&amp;quot;GetXmlData&amp;quot;&lt;/span&gt;, &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: blue"&gt;object&lt;/span&gt;[] { dataToPass.ToString() });&lt;/p&gt;         &lt;/div&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;IN SQL:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="90%"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;div style="font-family: courier new; background: white; color: black; font-size: 10pt"&gt;           &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;CREATE PROCEDURE &lt;/span&gt;[dbo].[GetXmlData]&amp;#160;&amp;#160;&amp;#160; (@dataIdsXml XML)&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&lt;span style="color: blue"&gt;AS&lt;/span&gt;&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;DECLARE &lt;/span&gt;@dataIdsTable &lt;span style="color: blue"&gt;TABLE &lt;/span&gt;(ID &lt;span style="color: blue"&gt;int&lt;/span&gt;)&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;INSERT INTO &lt;/span&gt;@dataIdsTable (ID) &lt;span style="color: blue"&gt;SELECT &lt;/span&gt;ParamValues.ID.value(&lt;span style="color: #a31515"&gt;'.'&lt;/span&gt;,&lt;span style="color: #a31515"&gt;'VARCHAR(20)'&lt;/span&gt;)&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;FROM &lt;/span&gt;@dataIdsXml.nodes(&lt;span style="color: #a31515"&gt;'/RowsOfNumbers/id'&lt;/span&gt;) &lt;span style="color: blue"&gt;as &lt;/span&gt;ParamValues(ID)&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&amp;#160;&lt;/p&gt;            &lt;p style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;SELECT &lt;/span&gt;[ID] &lt;span style="color: blue"&gt;FROM &lt;/span&gt;@dataIdsTable &lt;span style="color: blue"&gt;WHERE &lt;/span&gt;[ID]=1&lt;/p&gt;            &lt;p style="margin: 0px"&gt;GO&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;         &lt;/div&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6171009824679200591?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6171009824679200591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6171009824679200591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6171009824679200591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6171009824679200591'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2011/01/pass-xml-to-stored-procedure.html' title='Pass xml to stored procedure'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5606502381920455039</id><published>2011-01-28T23:57:00.001+02:00</published><updated>2011-01-28T23:57:18.160+02:00</updated><title type='text'>Workforce turnover around me (LinkedIn stats)</title><content type='html'>&lt;p&gt;Following to LinkedIn data 57 out of my 382 contacts changed jobs in 2010.   &lt;br /&gt;This is 15%. Probably actual rate is a bit higher since in some cases this info may be not updated in LinkedIn.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5606502381920455039?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5606502381920455039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5606502381920455039' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5606502381920455039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5606502381920455039'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2011/01/workforce-turnover-around-me-linkedin.html' title='Workforce turnover around me (LinkedIn stats)'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1766111073974521628</id><published>2011-01-28T23:43:00.001+02:00</published><updated>2011-01-28T23:43:30.513+02:00</updated><title type='text'>Subset of TED lectures on health</title><content type='html'>&lt;p&gt;(with bits of practical information)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.ted.com/talks/gregory_petsko_on_the_coming_neurological_epidemic.html"&gt;http://www.ted.com/talks/gregory_petsko_on_the_coming_neurological_epidemic.html&lt;/a&gt; – drink coffee, no strikes/box, no avian flue, low pressure, 3 grams of omega-three a day    &lt;br /&gt;&lt;a href="http://www.ted.com/talks/carl_honore_praises_slowness.html"&gt;http://www.ted.com/talks/carl_honore_praises_slowness.html&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://www.ted.com/talks/dan_buettner_how_to_live_to_be_100.html"&gt;http://www.ted.com/talks/dan_buettner_how_to_live_to_be_100.html&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://www.ted.com/talks/martin_rees_asks_is_this_our_final_century.html"&gt;http://www.ted.com/talks/martin_rees_asks_is_this_our_final_century.html&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://www.ted.com/talks/dean_ornish_says_your_genes_are_not_your_fate.html"&gt;http://www.ted.com/talks/dean_ornish_says_your_genes_are_not_your_fate.html&lt;/a&gt;    &lt;br /&gt;&lt;a href="http://www.ted.com/talks/juan_enriquez_shares_mindboggling_new_science.html"&gt;http://www.ted.com/talks/juan_enriquez_shares_mindboggling_new_science.html&lt;/a&gt; - current crisis and future bionic technology    &lt;br /&gt;&lt;a href="http://www.ted.com/talks/julian_treasure_the_4_ways_sound_affects_us.html"&gt;http://www.ted.com/talks/julian_treasure_the_4_ways_sound_affects_us.html&lt;/a&gt; – well once I used nice utility (still downloadable) – Aire Freshner    &lt;br /&gt;&lt;a href="http://www.ted.com/talks/mark_bittman_on_what_s_wrong_with_what_we_eat.html"&gt;http://www.ted.com/talks/mark_bittman_on_what_s_wrong_with_what_we_eat.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Just interesting:   &lt;br /&gt;&lt;a href="http://www.ted.com/talks/misha_glenny_investigates_global_crime_networks.html"&gt;http://www.ted.com/talks/misha_glenny_investigates_global_crime_networks.html&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1766111073974521628?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1766111073974521628/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1766111073974521628' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1766111073974521628'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1766111073974521628'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2011/01/subset-of-ted-lectures-on-health.html' title='Subset of TED lectures on health'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-6482568132676361020</id><published>2011-01-28T23:35:00.001+02:00</published><updated>2011-01-28T23:35:49.351+02:00</updated><title type='text'>Fallen giant</title><content type='html'>Few photo subsets from &lt;a href="http://zhigane.livejournal.com/19093.html"&gt;this&lt;/a&gt; blog:  &lt;p&gt;&lt;img src="http://lh6.ggpht.com/_LvECeOebFYY/TGGgiqT-yoI/AAAAAAAABrQ/ATdYgoLzGLk/0106.jpg" width="502" height="347" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img src="http://lh5.ggpht.com/_LvECeOebFYY/TGGgsvbR2oI/AAAAAAAABrk/QvkIybNaUy8/0114.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img src="http://lh5.ggpht.com/_LvECeOebFYY/TGGgvfAOLCI/AAAAAAAABro/UFPAXisUNvI/0115.jpg" width="498" height="333" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img src="http://lh3.ggpht.com/_LvECeOebFYY/TGGg7NXRLvI/AAAAAAAABr8/7sgj7-fD_rE/0119.jpg" width="496" height="332" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img src="http://lh5.ggpht.com/_LvECeOebFYY/TGGhRpqlcXI/AAAAAAAABss/0lJItcwL4_o/0136.jpg" width="490" height="732" /&gt; &lt;/p&gt;  &lt;p&gt;“Heroic deeds live in eternity” – are they?&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;img src="http://lh4.ggpht.com/_LvECeOebFYY/TGGjCi5kMGI/AAAAAAAABwk/fNaTP4WVDsU/0163.jpg" width="493" height="330" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img src="http://lh3.ggpht.com/_LvECeOebFYY/TGGidrdHZzI/AAAAAAAABvU/eyrzvslDZh0/0169.jpg" /&gt; &lt;/p&gt;  &lt;p&gt;&lt;img src="http://lh3.ggpht.com/_LvECeOebFYY/TGGiG8-qf_I/AAAAAAAABuo/_-Jxmckf4hc/0158.jpg" width="498" height="344" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6482568132676361020?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6482568132676361020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6482568132676361020' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6482568132676361020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6482568132676361020'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2011/01/fallen-giant.html' title='Fallen giant'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_LvECeOebFYY/TGGgiqT-yoI/AAAAAAAABrQ/ATdYgoLzGLk/s72-c/0106.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1219714837192636392</id><published>2010-09-19T23:28:00.001+02:00</published><updated>2010-09-19T23:28:23.520+02:00</updated><title type='text'>Free eBook’s from Red Gate</title><content type='html'>&lt;p&gt;Please visit &lt;a href="http://www.red-gate.com/about/book_store/dynamic_management_views.htm"&gt;here&lt;/a&gt; for the full list with descriptions. Below some links:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://www.red-gate.com/products/SQL_Response/offers/Mastering%20Profiler%20eBook.zip"&gt;Mastering Profiling&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="https://www.red-gate.com/dynamic/downloads/DownloadEbook.aspx?download=ebook1"&gt;Best of SQL Server central&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.red-gate.com/specials/Ebooks/Defensive_Database_Programming.pdf"&gt;Defensive Database Programming&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://downloads.red-gate.com/ebooks/sysadmin/SysAdmin_eBook_Final_Feb2010.zip"&gt;The SysAdmin handbook&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.red-gate.com/products/ants_performance_profiler/want_to_be_dotnet_perf_testing_expert_ebook.htm"&gt;.NET performance and optimization&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://downloads.red-gate.com/ebooks/SQL_Server_Maintenance_Plans_Brad_eBook.zip"&gt;Brad’s guide to SQL Server Maintenance plans&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.red-gate.com/specials/Exchange/esa_exchange2010.htm"&gt;Exchange 2010 – a practical approach&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.simple-talk.com/books/sql-books/dont-just-roll-the-dice---ebook-download/"&gt;Don’t Just roll the dice&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.simple-talk.com/books/sql-books/dont-just-roll-the-dice---ebook-download/"&gt;Best of SQL Server central&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="https://www.red-gate.com/dynamic/downloads/downloadform.aspx?download=ebook1"&gt;Protecting SLQ server data&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://downloads.red-gate.com/ebooks/SQL_Server_Tacklebox_EBook.zip"&gt;SQL Server Tacklebox&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.red-gate.com/products/SQL_Backup/offers/images/backup_exceptionalebook_button.gif"&gt;How to become as exceptional DBA&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://downloads.sqlservercentral.com/Books/SSC%20Stumper%20Vol%205.pdf"&gt;SQL Server Stumpers&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.red-gate.com/products/ants_performance_profiler/boost_app_performance_ebook7.htm"&gt;Confessions of an IT manager&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.red-gate.com/about/book_store/The_Art_of_XSD.pdf"&gt;Art of XSD&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.red-gate.com/specials/Grant.htm"&gt;SQL Server Execution Plans&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1219714837192636392?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1219714837192636392/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1219714837192636392' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1219714837192636392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1219714837192636392'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/09/free-ebooks-from-red-gate.html' title='Free eBook’s from Red Gate'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-78008103059641654</id><published>2010-09-18T01:35:00.001+02:00</published><updated>2010-09-18T01:35:13.293+02:00</updated><title type='text'>China - The Mother of All Black Swans - By Vitaliy Katsenelson</title><content type='html'>&lt;p&gt;Article &lt;a href="http://www.scribd.com/doc/26781802/China-The-Mother-of-All-Black-Swans-By-Vitaliy-Katsenelson#"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-78008103059641654?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/78008103059641654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=78008103059641654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/78008103059641654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/78008103059641654'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/09/china-mother-of-all-black-swans-by.html' title='China - The Mother of All Black Swans - By Vitaliy Katsenelson'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-4818920911098381224</id><published>2010-09-18T00:59:00.001+02:00</published><updated>2010-09-18T00:59:25.033+02:00</updated><title type='text'>Military segway</title><content type='html'>&lt;object width="640" height="385"&gt;&lt;param name="movie" value="http://www.youtube.com/v/hh2nLWYnxkM?fs=1&amp;amp;hl=en_US&amp;amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/hh2nLWYnxkM?fs=1&amp;amp;hl=en_US&amp;amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-4818920911098381224?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/4818920911098381224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=4818920911098381224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4818920911098381224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4818920911098381224'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/09/military-segway.html' title='Military segway'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-2486819330534329778</id><published>2010-08-26T21:49:00.001+03:00</published><updated>2010-09-18T01:30:26.648+02:00</updated><title type='text'>16 years of survival in extreme conditions - in 43 sentences</title><content type='html'>&lt;span style="font-family: times new roman; font-size: 85%"&gt;&lt;/span&gt;  &lt;div align="left"&gt;   &lt;table border="1" align="left"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;           &lt;p align="left"&gt;Below is my (partial) translation of a short story written by &lt;a href="http://en.wikipedia.org/wiki/Shalamov"&gt;Varlam Tihonovich Shalamov&lt;/a&gt; who was prisoner of Gulag camps from 1937 till 1953.               &lt;br /&gt;It’s called “&lt;a href="http://shalamov.ru/library/29/"&gt;What I have seen and understood in jail&lt;/a&gt;”.               &lt;br /&gt;16 years of survival in extreme conditions in 43 sentences…               &lt;br /&gt;              &lt;br /&gt;What I have seen and understood in jail:               &lt;br /&gt;1. Extreme fragility of human culture, civilization. Man turns into beast after three weeks of hard work, coldness, hunger and beating.               &lt;br /&gt;2. The main way of spirit defilement is coldness – people enjailed in camps of Asia hold for longer – it was warmer there.               &lt;br /&gt;3. I understood that friendship and fellowship never starts in difficult, really difficult conditions – when your life is a stake. Friendship may start in conditions that are difficult but feasible.               &lt;br /&gt;4. I understood that emotion that man keeps for last is the emotion of hate. It’s enough flesh on a hunger man to keep only his hate. A hunger man is indifferent to the else.              &lt;br /&gt;…              &lt;br /&gt;7. I understood that humans raised the humankind because human is more strong and tenacious than any animal – horse can’t sustain hard work in conditions of Far North, human – does.              &lt;br /&gt;8. The only group of people that were behaving a bit like humans were religious, mostly sectarian and camisters.              &lt;br /&gt;9. Former militaries and politicians are broken first.              &lt;br /&gt;10. I’ve seen what a sound argument an ordinary slap can be.              &lt;br /&gt;11. Mob differentiates leaders by their ardor and strength of beating.              &lt;br /&gt;12. Beating is an irresistible argument.              &lt;br /&gt;…              &lt;br /&gt;16. I understood that you may live only by hate.              &lt;br /&gt;17. I understood that you may live by apathy.              &lt;br /&gt;18. In extreme conditions – man not motivated by his hopes (there is no hopes), not by his will but rather by animal instinct, instinct of survival similar to one that exist in tree, animal or a stone.              &lt;br /&gt;…              &lt;br /&gt;23. I’ve seen that women more fair and selfless than man. There was not a single case when man followed his wife to the North, but the opposite was common.              &lt;br /&gt;…              &lt;br /&gt;31. You should differentiate people not as ‘good’ and ‘bad’, but as coward and brave. 95% are coward and ready to do any villainy in case of even minor danger.              &lt;br /&gt;32. I’m convinced that every single hour you’ve spent in camp adds to your defilement.              &lt;br /&gt;…              &lt;br /&gt;36. I learned to plan one day ahead only              &lt;br /&gt;37. I understood that thieves are not humans.              &lt;br /&gt;…&lt;/p&gt;            &lt;p align="left"&gt;&amp;#160;&lt;img src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/Varlam_Shalamov_barelef.jpg/423px-Varlam_Shalamov_barelef.jpg" /&gt; &lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt; &lt;span style="font-family: times new roman; font-size: 85%"&gt;&lt;/span&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-2486819330534329778?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/2486819330534329778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=2486819330534329778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2486819330534329778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2486819330534329778'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/08/16-years-of-survival-in-extreme.html' title='16 years of survival in extreme conditions - in 43 sentences'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1760304544023692061</id><published>2010-05-09T11:37:00.000+03:00</published><updated>2010-05-09T11:37:25.311+03:00</updated><title type='text'>Some photos from Think Next 2010</title><content type='html'>Some photos from Think Next 2010:&lt;br /&gt;&lt;br /&gt;Portable sonar device, enable to show people locations through walls:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_If2EaQD4ZgM/S-Zz60Z7WAI/AAAAAAAABQc/1_Y7xnB8m6w/s1600/14042010030.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="240" src="http://3.bp.blogspot.com/_If2EaQD4ZgM/S-Zz60Z7WAI/AAAAAAAABQc/1_Y7xnB8m6w/s320/14042010030.jpg" tt="true" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Big touch-screen device:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_If2EaQD4ZgM/S-Z0KoLgm5I/AAAAAAAABQk/iz_hgtONQIw/s1600/14042010031.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_If2EaQD4ZgM/S-Z0KoLgm5I/AAAAAAAABQk/iz_hgtONQIw/s320/14042010031.jpg" tt="true" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:60390cbc-8599-4e64-bbf3-b99426043c7c" style="display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Think+Next+2010" rel="tag"&gt;Think Next 2010&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1760304544023692061?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1760304544023692061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1760304544023692061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1760304544023692061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1760304544023692061'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/05/some-photos-from-think-next-2010.html' title='Some photos from Think Next 2010'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_If2EaQD4ZgM/S-Zz60Z7WAI/AAAAAAAABQc/1_Y7xnB8m6w/s72-c/14042010030.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-6144995685125121013</id><published>2010-03-10T11:15:00.002+02:00</published><updated>2010-04-27T15:30:28.341+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><title type='text'>Solution for "Impossible to log SQL 2008 performance counters under Windows 2008 64 bit?"</title><content type='html'>&lt;a href="http://alexpinsker.blogspot.com/2010/02/impossible-to-log-sql-2008-performance.html"&gt;Alex Pinsker: Impossible to log SQL 2008 performance counters under Windows 2008 64 bit?&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: times new roman; font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Here is solution, found by our DBA:&lt;br /&gt;1. Open regedit.exe&lt;br /&gt;2. Find the key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER\Performance"&lt;br /&gt;3. Find the value named "Performance counters disabled"&lt;br /&gt;4. Ensure, that its value is NOT "4" or "1". If it is - enforce it to "0"&lt;br /&gt;5. Notice file name in value of "PerfIniFile" key and copy it to clipboard&lt;br /&gt;6. Close the regedit&lt;br /&gt;7. Open cmd and go to Binn folder of Sql Server installation. Usually in "C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn"&lt;br /&gt;8. Run the following commands:&lt;br /&gt;8.1 unlodctr mssqlserver&lt;br /&gt;8.2 lodctr [clipboard filename from (5.) above]&lt;br /&gt;8.2.1 lodctr [clipboard filename from (.5) above]&lt;br /&gt;(this only needs for sure, that counters are installed - there will be a message notifying on that)&lt;br /&gt;8.3 lodctr /T:mssqlserver&lt;br /&gt;9. Restart the server&lt;br /&gt;10. Use perfmon to ensure, that counters for Sql Server reappeared&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: times new roman; font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6144995685125121013?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://alexpinsker.blogspot.com/2010/02/impossible-to-log-sql-2008-performance.html' title='Solution for &quot;Impossible to log SQL 2008 performance counters under Windows 2008 64 bit?&quot;'/><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6144995685125121013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6144995685125121013' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6144995685125121013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6144995685125121013'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/03/solution-for-impossible-to-log-sql-2008.html' title='Solution for &quot;Impossible to log SQL 2008 performance counters under Windows 2008 64 bit?&quot;'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5794972131650548627</id><published>2010-03-07T12:06:00.001+02:00</published><updated>2010-03-07T12:06:33.752+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 3'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Excellent guide on hosting wcf in asp.net iis environment</title><content type='html'>&lt;span style="font-family: times new roman; font-size: 85%"&gt;&lt;/span&gt;  &lt;table border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;&lt;a href="http://www.leastprivilege.com/HostingWCFServicesInASPNETTheSurvivalGuide.aspx"&gt;www.leastprivilege.com - Hosting WCF Services in ASP.NET - The Survival Guide&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt; &lt;span style="font-family: times new roman; font-size: 85%"&gt;&lt;/span&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4d3928f9-9bf8-404b-a1e7-5369b579611a" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/WCF" rel="tag"&gt;WCF&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IIS+7" rel="tag"&gt;IIS 7&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5794972131650548627?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5794972131650548627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5794972131650548627' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5794972131650548627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5794972131650548627'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/03/excellent-guide-on-hosting-wcf-in.html' title='Excellent guide on hosting wcf in asp.net iis environment'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-703153060218470612</id><published>2010-03-01T19:44:00.001+02:00</published><updated>2010-03-01T19:44:32.286+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>blog ping list</title><content type='html'>&lt;p&gt;Long blog ping list - compiled from few sources:&lt;/p&gt;  &lt;table border="0" cellspacing="0" cellpadding="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="390"&gt;http://1470.net/api/ping&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://api.feedster.com/ping&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://api.moreover.com/ping&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://api.moreover.com/RPC2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://api.my.yahoo.com/RPC2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://api.my.yahoo.com/rss/ping&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://bblog.com/ping.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://bitacoras.net/ping&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://blog.goo.ne.jp/XMLRPC&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://blogdb.jp/xmlrpc&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://blogmatcher.com/u.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://blogsearch.google.com/ping/RPC2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://bulkfeeds.net/rpc&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://coreblog.org/ping/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://mod-pubsub.org/kn_apps/blogchatt&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.amagle.com/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.bitacoras.com&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.blo.gs/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.bloggers.jp/rpc/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.blogmura.jp/rpc/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.cocolog-nifty.com/xmlrpc&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.exblog.jp/xmlrpc&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.feedburner.com&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.myblog.jp&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.rootblog.com/rpc.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.syndic8.com/xmlrpc.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.weblogalot.com/rpc.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://ping.weblogs.se/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://pingoat.com/goat/RPC2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://rcs.datashed.net/RPC2/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://rpc.blogbuzzmachine.com/RPC2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://rpc.blogrolling.com/pinger/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://rpc.icerocket.com:10080/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://rpc.newsgator.com/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://rpc.pingomatic.com&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://rpc.pingomatic.com/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://rpc.technorati.com/rpc/ping&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://rpc.weblogs.com/RPC2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://topicexchange.com/RPC2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://trackback.bakeinu.jp/bakeping.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.a2b.cc/setloc/bp.a2b&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.bitacoles.net/ping.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.blogdigger.com/RPC2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.blogoole.com/ping/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.blogoon.net/ping/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.blogpeople.net/servlet/weblogUpdates&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.blogroots.com/tb_populi.blog?id=1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.blogshares.com/rpc.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.blogsnow.com/ping&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.blogstreet.com/xrbin/xmlrpc.cgi&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.lasermemory.com/lsrpc/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.mod-pubsub.org/kn_apps/blogchatter/ping.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.mod-pubsub.org/ping.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.newsisfree.com/RPCCloud&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.newsisfree.com/xmlrpctest.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.popdex.com/addsite.php&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.snipsnap.org/RPC2&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://www.weblogues.com/RPC/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://xmlrpc.blogg.de&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://xmlrpc.blogg.de/&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;http://xping.pubsub.com/ping/&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:72c1655e-699a-4563-bab2-afcf274ad623" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/blog" rel="tag"&gt;blog&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ping+list" rel="tag"&gt;ping list&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ping" rel="tag"&gt;ping&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-703153060218470612?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/703153060218470612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=703153060218470612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/703153060218470612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/703153060218470612'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/03/blog-ping-list.html' title='blog ping list'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1700025208660813575</id><published>2010-03-01T19:38:00.001+02:00</published><updated>2010-03-01T19:38:14.541+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>::boost for C# - Umbrella</title><content type='html'>&lt;p&gt;Nice project: &lt;a href="http://umbrella.codeplex.com/"&gt;http://umbrella.codeplex.com/&lt;/a&gt;. Provides many components similar to the &lt;a href="http://www.boost.org/"&gt;::boost&lt;/a&gt; basics (like bind()...) - for C#.&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d42a0d4a-da98-4c4d-94ee-128f41d0bb63" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%2b%2b" rel="tag"&gt;C++&lt;/a&gt;,&lt;a href="http://technorati.com/tags/%3a%3aboost" rel="tag"&gt;::boost&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1700025208660813575?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1700025208660813575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1700025208660813575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1700025208660813575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1700025208660813575'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/03/boost-for-c-umbrella.html' title='::boost for C# - Umbrella'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-8494966421083683980</id><published>2010-02-24T00:00:00.001+02:00</published><updated>2010-02-24T00:00:05.611+02:00</updated><title type='text'>C# - the fastest way to iterate over dictionary</title><content type='html'>&lt;p&gt;Having a big dictionary, say 1M of &amp;lt;double,double&amp;gt; samples – what is the fastest way to iterate over it?   &lt;br /&gt;Comparing 3 options (iterate over &lt;em&gt;KeyValuePair&lt;/em&gt; in the dictionary, iterate over &lt;em&gt;Values&lt;/em&gt; collection and iterate over &lt;em&gt;Keys&lt;/em&gt; collection) – below is code and timing comparison results.    &lt;br /&gt;&lt;em&gt;&lt;span style="color: lime"&gt;// Of course if you iterating over Keys collection and accessing the value by key – it would be the &lt;strong&gt;slowest&lt;/strong&gt; case.&lt;/span&gt;&lt;/em&gt; &lt;/p&gt;  &lt;div style="font-family: courier new; background: white; color: black; font-size: 10pt"&gt;   &lt;div style="margin: 0px"&gt;&lt;span style="color: green"&gt;// Create sample dictionary&lt;/span&gt;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: blue"&gt;var&lt;/span&gt; random = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Random&lt;/span&gt;();&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: blue"&gt;var&lt;/span&gt; randomDictionaryOfDoubles =&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Enumerable&lt;/span&gt;.Repeat(0, 1000000).Select(&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; i =&amp;gt; &lt;span style="color: #2b91af"&gt;Convert&lt;/span&gt;.ToDouble(random.Next()))&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .Distinct().OrderBy(i=&amp;gt;i)&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .ToDictionary(i =&amp;gt; i);&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: blue"&gt;double&lt;/span&gt; total = 0.0;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: blue"&gt;var&lt;/span&gt; stopWatch = &lt;span style="color: blue"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;Stopwatch&lt;/span&gt;();&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: green"&gt;//Console.WriteLine(&amp;quot;Starting KVP&amp;quot;);&lt;/span&gt;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;stopWatch.Reset();&lt;/div&gt;    &lt;div style="margin: 0px"&gt;stopWatch.Start();&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: blue"&gt;foreach&lt;/span&gt; (&lt;span style="color: #2b91af"&gt;KeyValuePair&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;double&lt;/span&gt;, &lt;span style="color: blue"&gt;double&lt;/span&gt;&amp;gt; kvp &lt;span style="color: blue"&gt;in&lt;/span&gt; randomDictionaryOfDoubles)&lt;/div&gt;    &lt;div style="margin: 0px"&gt;{&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; total += (kvp.Value);&lt;/div&gt;    &lt;div style="margin: 0px"&gt;}&lt;/div&gt;    &lt;div style="margin: 0px"&gt;stopWatch.Stop();&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;KVP took:&amp;#160;&amp;#160;&amp;#160; {0} Total = {1}&amp;quot;&lt;/span&gt;, stopWatch.Elapsed, total);&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: green"&gt;//Console.WriteLine(&amp;quot;Starting Values&amp;quot;);&lt;/span&gt;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;total = 0.0;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;stopWatch.Reset();&lt;/div&gt;    &lt;div style="margin: 0px"&gt;stopWatch.Start();&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: green"&gt;// To get the values alone, use the Values property.&lt;/span&gt;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;double&lt;/span&gt;, &lt;span style="color: blue"&gt;double&lt;/span&gt;&amp;gt;.&lt;span style="color: #2b91af"&gt;ValueCollection&lt;/span&gt; valueColl = randomDictionaryOfDoubles.Values;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: blue"&gt;foreach&lt;/span&gt; (&lt;span style="color: blue"&gt;double&lt;/span&gt; d &lt;span style="color: blue"&gt;in&lt;/span&gt; valueColl)&lt;/div&gt;    &lt;div style="margin: 0px"&gt;{&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; total += d;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;}&lt;/div&gt;    &lt;div style="margin: 0px"&gt;stopWatch.Stop();&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Values took: {0} Total = {1}&amp;quot;&lt;/span&gt;, stopWatch.Elapsed, total);&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: green"&gt;//Console.WriteLine(&amp;quot;Starting keys&amp;quot;);&lt;/span&gt;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;total = 0.0;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;stopWatch.Reset();&lt;/div&gt;    &lt;div style="margin: 0px"&gt;stopWatch.Start();&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: green"&gt;// To get the keys alone, use the Keys property.&lt;/span&gt;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: blue"&gt;double&lt;/span&gt;, &lt;span style="color: blue"&gt;double&lt;/span&gt;&amp;gt;.&lt;span style="color: #2b91af"&gt;KeyCollection&lt;/span&gt; keyColl = randomDictionaryOfDoubles.Keys;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: blue"&gt;foreach&lt;/span&gt; (&lt;span style="color: blue"&gt;double&lt;/span&gt; d &lt;span style="color: blue"&gt;in&lt;/span&gt; keyColl)&lt;/div&gt;    &lt;div style="margin: 0px"&gt;{&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; total += d;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;}&lt;/div&gt;    &lt;div style="margin: 0px"&gt;stopWatch.Stop();&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515"&gt;&amp;quot;Keys took:&amp;#160;&amp;#160; {0} Total = {1}&amp;quot;&lt;/span&gt;, stopWatch.Elapsed, total);&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.ReadLine();&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Here are results:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Method&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Time spent in iteration&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Over key-value pairs&lt;/td&gt;        &lt;td valign="top" width="200"&gt;00:00:00&lt;strong&gt;&lt;span style="color: red"&gt;.1854684&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Over Values collection&lt;/td&gt;        &lt;td valign="top" width="200"&gt;00:00:00&lt;strong&gt;&lt;span style="color: red"&gt;.1221380&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Over Keys collection&lt;/td&gt;        &lt;td valign="top" width="200"&gt;00:00:00&lt;strong&gt;&lt;span style="color: red"&gt;.0955291&lt;/span&gt;&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Related article: &lt;a href="http://dotnetperls.com/dictionary-lookup"&gt;http://dotnetperls.com/dictionary-lookup&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:4eec2aed-1fb2-4193-9099-b7e1ea56dfb5" class="wlWriterEditableSmartContent"&gt;Technorati Теги: &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Dictionary" rel="tag"&gt;Dictionary&lt;/a&gt;,&lt;a href="http://technorati.com/tags/performance" rel="tag"&gt;performance&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-8494966421083683980?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/8494966421083683980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=8494966421083683980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8494966421083683980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8494966421083683980'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/02/c-fastest-way-to-iterate-over.html' title='C# - the fastest way to iterate over dictionary'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-4316862260826023613</id><published>2010-02-23T23:56:00.002+02:00</published><updated>2010-03-01T17:02:37.677+02:00</updated><title type='text'>Copy code as HTML from VS 2008 into Live Writer</title><content type='html'>&lt;p&gt;The best option for me is this:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://copysourceashtml.codeplex.com/"&gt;http://copysourceashtml.codeplex.com/&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.squaredroot.com/2008/01/07/Copy-Code-to-Clipboard-Extension-for-BlogEngine/"&gt;http://www.squaredroot.com/2008/01/07/Copy-Code-to-Clipboard-Extension-for-BlogEngine/&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:48eaca94-3518-4268-8e78-cb0d66ee96b3" class="wlWriterEditableSmartContent"&gt;Technorati Теги: &lt;a href="http://technorati.com/tags/VS+2008" rel="tag"&gt;VS 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AddIns" rel="tag"&gt;AddIns&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-4316862260826023613?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/4316862260826023613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=4316862260826023613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4316862260826023613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4316862260826023613'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/02/copy-code-as-html-from-vs-2008-into.html' title='Copy code as HTML from VS 2008 into Live Writer'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-8123278865477905876</id><published>2010-02-23T23:41:00.002+02:00</published><updated>2010-09-18T01:37:13.660+02:00</updated><title type='text'>Probability to observe the same number calling Random.Rand()</title><content type='html'>It’s not an efficient query. Just a game…   &lt;div style="font-family: courier new; background: white; color: black; font-size: 10pt"&gt;   &lt;div style="margin: 0px"&gt;&lt;span style="color: blue"&gt;for&lt;/span&gt; (&lt;span style="color: blue"&gt;int&lt;/span&gt; j = 1; j &amp;lt; 8; j++)&lt;/div&gt;    &lt;div style="margin: 0px"&gt;{&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;int&lt;/span&gt; numElements = (&lt;span style="color: blue"&gt;int&lt;/span&gt;)&lt;span style="color: #2b91af"&gt;Math&lt;/span&gt;.Pow(10, j);&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;var&lt;/span&gt; numersList = &lt;span style="color: #2b91af"&gt;Enumerable&lt;/span&gt;.Repeat(0, numElements).Select(&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; i =&amp;gt; &lt;span style="color: #2b91af"&gt;Convert&lt;/span&gt;.ToDouble(random.Next()))&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; .Distinct().OrderBy(i =&amp;gt; i);&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;double&lt;/span&gt; probabilityGetSameNumber = 1 - (&lt;span style="color: blue"&gt;double&lt;/span&gt;) numersList.Count()/numElements;&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #2b91af"&gt;Console&lt;/span&gt;.WriteLine(&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #a31515"&gt;&amp;quot;Rand() was called {0} times. Same number was observed in {1} % cases&amp;quot;&lt;/span&gt;,&lt;/div&gt;    &lt;div style="margin: 0px"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; numElements, probabilityGetSameNumber);&lt;/div&gt;    &lt;div style="margin: 0px"&gt;}&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Results:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="472"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="98"&gt;Num of Rand() calls&lt;/td&gt;        &lt;td valign="top" width="267"&gt;Same number observed in % of cases&lt;/td&gt;        &lt;td valign="top" width="105"&gt;Cases count&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="98"&gt;10&lt;/td&gt;        &lt;td valign="top" width="267"&gt;0&lt;/td&gt;        &lt;td valign="top" width="105"&gt;0&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="98"&gt;100&lt;/td&gt;        &lt;td valign="top" width="267"&gt;0&lt;/td&gt;        &lt;td valign="top" width="105"&gt;0&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="98"&gt;1000&lt;/td&gt;        &lt;td valign="top" width="267"&gt;0&lt;/td&gt;        &lt;td valign="top" width="105"&gt;0&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="98"&gt;10000&lt;/td&gt;        &lt;td valign="top" width="267"&gt;0&lt;/td&gt;        &lt;td valign="top" width="105"&gt;0&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="98"&gt;100000&lt;/td&gt;        &lt;td valign="top" width="267"&gt;0.00002999999999997&lt;/td&gt;        &lt;td valign="top" width="105"&gt;3&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="98"&gt;1000000&lt;/td&gt;        &lt;td valign="top" width="267"&gt;0.00024100000000004&lt;/td&gt;        &lt;td valign="top" width="105"&gt;241&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="98"&gt;10000000&lt;/td&gt;        &lt;td valign="top" width="267"&gt;0.00234760000000001&lt;/td&gt;        &lt;td valign="top" width="105"&gt;23476&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ca8beee4-da47-4ad8-a245-771b5c6ae621" class="wlWriterEditableSmartContent"&gt;Technorati Теги: &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Rand()" rel="tag"&gt;Rand()&lt;/a&gt;,&lt;a href="http://technorati.com/tags/probability" rel="tag"&gt;probability&lt;/a&gt;,&lt;a href="http://technorati.com/tags/LINQ" rel="tag"&gt;LINQ&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-8123278865477905876?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/8123278865477905876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=8123278865477905876' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8123278865477905876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8123278865477905876'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/02/probability-to-observe-same-number.html' title='Probability to observe the same number calling Random.Rand()'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-9218844337158283095</id><published>2010-02-23T23:29:00.001+02:00</published><updated>2010-02-23T23:29:17.953+02:00</updated><title type='text'>Random clicks</title><content type='html'>&lt;p&gt;&lt;a href="http://www.evernote.com/about/home.php"&gt;http://www.evernote.com/about/home.php&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sendmehome.com/"&gt;http://www.sendmehome.com/&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-9218844337158283095?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/9218844337158283095/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=9218844337158283095' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/9218844337158283095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/9218844337158283095'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/02/random-clicks.html' title='Random clicks'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-4277582175372520132</id><published>2010-02-19T00:49:00.000+02:00</published><updated>2010-02-19T00:49:30.699+02:00</updated><title type='text'>Good URL compressor</title><content type='html'>is.gd -&amp;nbsp;&lt;a href="http://is.gd/8DuwB" target="_blank"&gt;http://is.gd/8DuwB&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-4277582175372520132?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/4277582175372520132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=4277582175372520132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4277582175372520132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4277582175372520132'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/02/good-url-compressor.html' title='Good URL compressor'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-4467291822267756072</id><published>2010-02-17T19:17:00.001+02:00</published><updated>2010-02-17T19:17:47.482+02:00</updated><title type='text'>Impossible to log SQL 2008 performance counters under Windows 2008 64 bit?</title><content type='html'>&lt;p&gt;Here is some strange problem I’ve experienced (right now it seems to me as a bug in Windows 2008 64 bit):&lt;/p&gt;  &lt;p&gt;I have an environment with Windows 2008 64 bit and SQL Enterprise 64 bit.&lt;/p&gt;  &lt;p&gt;To begin with - it's possible to see SQL-related performance counters values only in perfmon opened from SysWow64 (i.e. 32 bit) - they are not present in 64-bit perfmon.&lt;/p&gt;  &lt;p&gt;Now, if I open perfmon (32 bit) and add any SQL counters (e.g. SQL Latches) to the &amp;quot;Performance Monitor&amp;quot; section I can see that those values are updated &amp;quot;live&amp;quot; in perfmon graphs.&lt;/p&gt;  &lt;p&gt;Yet, if I create a new Data Collector Set for the same values under Data Collector Sets -&amp;gt; User Defined - the values for SQL counters are not being stored in the created log file. If I add some other counters (e.g. Processor) they ARE saved.&lt;/p&gt;  &lt;p&gt;Seems that this is some sort of bug/problem related to 64 bit…&lt;/p&gt;  &lt;p&gt;There are some clues on this problem in two following articles:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.code-magazine.com/Article.aspx?quickid=080015"&gt;http://www.code-magazine.com/Article.aspx?quickid=080015&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/psssql/archive/2009/03/03/troubleshooting-sql-server-2005-2008-performance-counter-collection-problems.aspx"&gt;http://blogs.msdn.com/psssql/archive/2009/03/03/troubleshooting-sql-server-2005-2008-performance-counter-collection-problems.aspx&lt;/a&gt;&amp;#160;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;but both do not help (for the first one – there is no such service anymore in Windows 2008…&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-4467291822267756072?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/4467291822267756072/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=4467291822267756072' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4467291822267756072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4467291822267756072'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/02/impossible-to-log-sql-2008-performance.html' title='Impossible to log SQL 2008 performance counters under Windows 2008 64 bit?'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-2066990692443596339</id><published>2010-02-17T17:22:00.001+02:00</published><updated>2010-02-17T17:39:51.945+02:00</updated><title type='text'>Many, many pretties... piled high beyond the sky</title><content type='html'>Yes, it could be a lot more small rectangles in it, I know ;o)&lt;br /&gt;(But you can't look too far - when you look too far - it looks back).&lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_If2EaQD4ZgM/S3q3OAohpmI/AAAAAAAABOQ/6v_Fp4o2pd0/s1600-h/Strong%20Server%5B7%5D.jpg"&gt;&lt;img alt="Strong Server" border="0" height="515" src="http://lh5.ggpht.com/_If2EaQD4ZgM/S3q3OzrndnI/AAAAAAAABOU/syTK-7rrMHY/Strong%20Server_thumb%5B3%5D.jpg?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline;" title="Strong Server" width="640" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1be9b0f2-708a-4a1e-ab77-d88a4916a06f" style="display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Task+Manager" rel="tag"&gt;Task Manager&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Multi-core" rel="tag"&gt;Multi-core&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-2066990692443596339?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/2066990692443596339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=2066990692443596339' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2066990692443596339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2066990692443596339'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/02/many-many-pretties-piled-high-beyond.html' title='Many, many pretties... piled high beyond the sky'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh5.ggpht.com/_If2EaQD4ZgM/S3q3OzrndnI/AAAAAAAABOU/syTK-7rrMHY/s72-c/Strong%20Server_thumb%5B3%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1312395905944335793</id><published>2010-02-12T00:13:00.000+02:00</published><updated>2010-02-12T00:21:54.548+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Interesting'/><title type='text'>Browser’s yin yang</title><content type='html'>&lt;p&gt;Awesome design – click on it to see the page…&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.michaelvandaniker.com/labs/browserVisualization/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="Browsers Zen" border="0" alt="Browsers Zen" src="http://lh3.ggpht.com/_If2EaQD4ZgM/S3SDAckVbaI/AAAAAAAABOM/FzF3EvLza40/BrowsersZen%5B13%5D.jpg?imgmax=800" width="354" height="481" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1312395905944335793?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1312395905944335793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1312395905944335793' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1312395905944335793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1312395905944335793'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/02/browsers-yin-yang.html' title='Browser’s yin yang'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_If2EaQD4ZgM/S3SDAckVbaI/AAAAAAAABOM/FzF3EvLza40/s72-c/BrowsersZen%5B13%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-4822751481861268985</id><published>2010-02-11T23:55:00.000+02:00</published><updated>2010-02-11T23:59:31.349+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Added online chat to my blog</title><content type='html'>&lt;p&gt;It’s a nice feature of &lt;a href="http://www.meebo.com/" target="_blank"&gt;meebo.com&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-4822751481861268985?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/4822751481861268985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=4822751481861268985' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4822751481861268985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4822751481861268985'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/02/added-online-chat-to-my-blog.html' title='Added online chat to my blog'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5870568790898894750</id><published>2010-02-11T23:54:00.001+02:00</published><updated>2010-02-11T23:54:07.410+02:00</updated><title type='text'>Got on twitter</title><content type='html'>&lt;p&gt;Follow me on twitter: &lt;a href="https://twitter.com/alex_pinsker"&gt;https://twitter.com/alex_pinsker&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5870568790898894750?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5870568790898894750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5870568790898894750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5870568790898894750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5870568790898894750'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/02/got-on-twitter.html' title='Got on twitter'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-6458488092216543466</id><published>2010-02-11T12:18:00.001+02:00</published><updated>2010-02-11T12:18:16.539+02:00</updated><title type='text'>Virtual travel over Trans-Siberian railroad with Google</title><content type='html'>&lt;p&gt;Incredible - 22 day travel over Trans-Siberian railroad - full recorded by Google.   &lt;br /&gt;You may listen for &amp;quot;War &amp;amp; Peace&amp;quot; all over during that time :)    &lt;br /&gt;&lt;a href="http://www.google.ru/intl/ru/landing/transsib/"&gt;http://www.google.ru/intl/ru/landing/transsib/&lt;/a&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0abc53a5-4aa5-428a-a104-c3aff09549d5" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Google" rel="tag"&gt;Google&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Trans-Siberian" rel="tag"&gt;Trans-Siberian&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6458488092216543466?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6458488092216543466/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6458488092216543466' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6458488092216543466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6458488092216543466'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/02/virtual-travel-over-trans-siberian.html' title='Virtual travel over Trans-Siberian railroad with Google'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-4391815779823408522</id><published>2010-01-28T18:32:00.001+02:00</published><updated>2010-01-28T18:32:38.990+02:00</updated><title type='text'>Song about war</title><content type='html'>&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/fqVXEPb9ftA&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/fqVXEPb9ftA&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:70359c60-b8dd-4121-8b18-0cfc5551d43f" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/%d0%9f%d0%b5%d1%81%d0%bd%d1%8f+%d0%be+%d0%b2%d0%be%d0%b9%d0%bd%d0%b5" rel="tag"&gt;Песня о войне&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-4391815779823408522?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/4391815779823408522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=4391815779823408522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4391815779823408522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4391815779823408522'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/01/song-about-war.html' title='Song about war'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-8547874208832173102</id><published>2010-01-21T14:45:00.002+02:00</published><updated>2010-01-21T14:46:21.479+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>LINQ extension method to Capitalize string</title><content type='html'>&lt;p&gt;LINQ extension method to Capitalize first letter of each word in a sentence:&lt;/p&gt;&lt;p&gt;public static string Capitalize(this string s)   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return s.ToCharArray().Aggregate(String.Empty,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (currentWord, nextWord) =&amp;gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; currentWord.Length == 0 &amp;amp;&amp;amp; nextWord != ' ' ? nextWord.ToString().ToUpper() : (    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; currentWord.EndsWith(&amp;quot; &amp;quot;) ? currentWord + nextWord.ToString().ToUpper() :    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; currentWord + nextWord.ToString()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; )    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; );    &lt;br /&gt;}&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-8547874208832173102?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/8547874208832173102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=8547874208832173102' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8547874208832173102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8547874208832173102'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/01/linq-extension-method-to-capitalize_21.html' title='LINQ extension method to Capitalize string'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-8522384940936783532</id><published>2010-01-17T11:26:00.001+02:00</published><updated>2010-01-17T12:11:06.507+02:00</updated><title type='text'>What’s new in Windows 2008 for developer</title><content type='html'>&lt;p&gt;Here is nice summary:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/bb852234.aspx" target="_blank"&gt;Windows Server 2008 for Developer&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-8522384940936783532?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/8522384940936783532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=8522384940936783532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8522384940936783532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8522384940936783532'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/01/whats-new-in-windows-2008-for-developer.html' title='What’s new in Windows 2008 for developer'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-8915384186671916853</id><published>2010-01-14T16:24:00.002+02:00</published><updated>2010-04-28T14:47:02.035+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>Return collection of anonymous type from method in LINQ</title><content type='html'>&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d80b8d9f-9d21-44cc-aa66-bd0afdca6ef0" style="display: inline; float: none; margin: 0px; padding: 0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/LINQ" rel="tag"&gt;LINQ&lt;/a&gt;&lt;/div&gt;Let’s say you have some method that execute a LINQ query over collection and constructs a collection of (new) anonymous type as result. Here is how you can return it and use it below the scope of the method:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Program&lt;br /&gt;{&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; IEnumerable&amp;lt;T&amp;gt; GetExampleCollection&amp;lt;T&amp;gt;(T type)&lt;br /&gt;{&lt;br /&gt;&lt;span class="rem"&gt;// generate some random collection simulating source data&lt;/span&gt;&lt;br /&gt;var random = &lt;span class="kwrd"&gt;new&lt;/span&gt; Random();&lt;br /&gt;var collection =&lt;br /&gt;Enumerable.Repeat(0, 100).Select(&lt;br /&gt;i =&amp;gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; { ClientId = random.Next(), OrderId = random.Next(), Price = random.NextDouble() });&lt;br /&gt;&lt;br /&gt;&lt;span class="rem"&gt;// run some linq query over it&lt;/span&gt;&lt;br /&gt;var queryOverCollection = from item &lt;span class="kwrd"&gt;in&lt;/span&gt; collection&lt;br /&gt;&lt;span class="kwrd"&gt;where&lt;/span&gt; item.ClientId % 2 == 0&lt;br /&gt;select &lt;span class="kwrd"&gt;new&lt;/span&gt; { DoublePrice = item.Price * 2.0 };&lt;br /&gt;IQueryable v = (from item &lt;span class="kwrd"&gt;in&lt;/span&gt; collection&lt;br /&gt;&lt;span class="kwrd"&gt;where&lt;/span&gt; item.ClientId % 2 == 0&lt;br /&gt;select &lt;span class="kwrd"&gt;new&lt;/span&gt; { DoublePrice = item.Price * 2.0 }).AsQueryable();&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;return&lt;/span&gt; queryOverCollection &lt;span class="kwrd"&gt;as&lt;/span&gt; IEnumerable&amp;lt;T&amp;gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;{&lt;br /&gt;&lt;span class="rem"&gt;// bring collection of anonymous type items from a method!&lt;/span&gt;&lt;br /&gt;var v = GetExampleCollection(&lt;span class="kwrd"&gt;new&lt;/span&gt; { DoublePrice = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;double&lt;/span&gt;() });&lt;br /&gt;&lt;span class="kwrd"&gt;foreach&lt;/span&gt; (var item &lt;span class="kwrd"&gt;in&lt;/span&gt; v)&lt;br /&gt;{&lt;br /&gt;&lt;span class="rem"&gt;// ... and use it!&lt;/span&gt;&lt;br /&gt;Console.WriteLine(item.DoublePrice);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;Note, that anonymous type is resolved on the assemble level, so you can’t reference it in another assembly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-8915384186671916853?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/8915384186671916853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=8915384186671916853' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8915384186671916853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8915384186671916853'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/01/return-collection-of-anonymous-type.html' title='Return collection of anonymous type from method in LINQ'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1505324792110508386</id><published>2010-01-13T14:17:00.002+02:00</published><updated>2010-01-13T14:18:55.512+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>SQL connection string application name</title><content type='html'>Add “Application Name=My Application Name” to connection string to differentiate your connections (e.g. in SQL Profiler).&lt;br /&gt;(it’s a self reminder post).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1505324792110508386?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1505324792110508386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1505324792110508386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1505324792110508386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1505324792110508386'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2010/01/sql-connection-string-application-name.html' title='SQL connection string application name'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-8444856815045992291</id><published>2009-12-14T16:35:00.002+02:00</published><updated>2009-12-14T16:39:48.623+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><title type='text'>Regular expressions for connection string parsing</title><content type='html'>Collection of regular expressions for parsing of connection string:&lt;br /&gt;Split to parts:&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; regexSplitToParts = &lt;span class="str"&gt;"([^=;]*)=([^=;]*)"&lt;/span&gt;;&lt;br /&gt;RegexOptions options = RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline | RegexOptions.IgnoreCase | RegexOptions.Compiled;&lt;br /&gt;Regex reg = &lt;span class="kwrd"&gt;new&lt;/span&gt; Regex(regexSplitToParts, options);&lt;/pre&gt;&lt;br /&gt;&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Courier New", courier, monospace;background-color: #ffffff;/*white-space: pre;*/}.csharpcode pre { margin: 0em; }.csharpcode .rem { color: #008000; }.csharpcode .kwrd { color: #0000ff; }.csharpcode .str { color: #006080; }.csharpcode .op { color: #0000c0; }.csharpcode .preproc { color: #cc6633; }.csharpcode .asp { background-color: #ffff00; }.csharpcode .html { color: #800000; }.csharpcode .attr { color: #ff0000; }.csharpcode .alt {background-color: #f4f4f4;width: 100%;margin: 0em;}.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;Fetch specific part of connection string (e.g. DataSource):&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;string&lt;/span&gt; regexDataSource = &lt;span class="str"&gt;"Data\\sSource(\\s)*=(\\s)*(?&amp;lt;DataSourceName&amp;gt;([^;]*))"&lt;/span&gt;;&lt;br /&gt;RegexOptions options = RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline | RegexOptions.IgnoreCase | RegexOptions.Compiled;&lt;br /&gt;Regex reg = &lt;span class="kwrd"&gt;new&lt;/span&gt; Regex(regexDataSource, options);&lt;/pre&gt;&lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f2561601-aadc-4c91-ba21-69903c00241b" style="display: inline; float: none; margin: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/regex" rel="tag"&gt;regex&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-8444856815045992291?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/8444856815045992291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=8444856815045992291' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8444856815045992291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8444856815045992291'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/12/regular-expressions-for-connection.html' title='Regular expressions for connection string parsing'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1904526954617767729</id><published>2009-12-02T15:03:00.001+02:00</published><updated>2009-12-02T15:03:16.556+02:00</updated><title type='text'>Shakespeare - Sonnet 66 – few translations</title><content type='html'>&lt;div style="margin-left: 30px"&gt;&lt;font size="4"&gt;&lt;font size="2"&gt;Below is from &lt;a href="http://jaerraeth.livejournal.com/274011.html"&gt;http://jaerraeth.livejournal.com/274011.html&lt;/a&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;  &lt;div style="margin-left: 30px"&gt;&lt;a href="http://en.wikipedia.org/wiki/Samuil_Marshak" target="_blank"&gt;Samuil Marshak&lt;/a&gt; +1 !!! :o)&lt;/div&gt;  &lt;div style="margin-left: 30px"&gt;&amp;#160;&lt;/div&gt;  &lt;div style="margin-left: 30px"&gt;&lt;font size="+1"&gt;&lt;i&gt;&lt;b&gt;Бессмертный Шекспир&lt;/b&gt;&lt;/i&gt;&lt;/font&gt;    &lt;br /&gt;ШЕКСПИР, Сонет 66&lt;a name="cutid1"&gt;&lt;/a&gt;     &lt;br /&gt;&lt;/div&gt;  &lt;div style="margin-left: 30px"&gt;   &lt;table border="2"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td&gt;Original&lt;/td&gt;          &lt;td&gt;Перевод Маршака&lt;/td&gt;          &lt;td&gt;Перевод Пастернака&lt;/td&gt;          &lt;td&gt;Актуальный перевод&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;br /&gt;Tired with all these, for restful death I cry, -             &lt;br /&gt;As to behold desert a beggar born,             &lt;br /&gt;And needy nothing trimm'd in jollity,             &lt;br /&gt;And purest faith unhappily forsworn,             &lt;br /&gt;And gilded honour shamefully misplac'd,             &lt;br /&gt;And maiden virtue rudely strumpeted,             &lt;br /&gt;And right perfection wrongfully disgrac'd,             &lt;br /&gt;And strength by limping sway disabled,             &lt;br /&gt;And art made tongue-tied by autority,             &lt;br /&gt;And folly (doctor-like) controlling skill,             &lt;br /&gt;And simple truth miscall'd simplicity,             &lt;br /&gt;And captive good attending captain ill:             &lt;br /&gt;            &lt;br /&gt;Tired with all these, from these would I be gone,             &lt;br /&gt;Save that, to die, I leave my love alone.             &lt;br /&gt;&lt;/td&gt;          &lt;td&gt;           &lt;br /&gt;Зову я смерть. Мне видеть невтерпеж            &lt;br /&gt;Достоинство, что просит подаянья,            &lt;br /&gt;Над простотой глумящуюся ложь,            &lt;br /&gt;Ничтожество в роскошном одеянье,            &lt;br /&gt;И совершенству ложный приговор,            &lt;br /&gt;И девственность, поруганную грубо,            &lt;br /&gt;И неуместной почести позор,            &lt;br /&gt;И мощь в плену у немощи беззубой,            &lt;br /&gt;И прямоту, что глупостью слывет,            &lt;br /&gt;И глупость в маске мудреца, пророка,            &lt;br /&gt;И вдохновения зажатый рот,            &lt;br /&gt;И праведность на службе у порока.            &lt;br /&gt;            &lt;br /&gt;Все мерзостно, что вижу я вокруг...            &lt;br /&gt;Но как тебя покинуть, милый друг!             &lt;br /&gt;&lt;/td&gt;          &lt;td&gt;           &lt;br /&gt;Измучась всем, я умереть хочу.             &lt;br /&gt;Тоска смотреть, как мается бедняк,             &lt;br /&gt;И как шутя живется богачу,             &lt;br /&gt;И доверять, и попадать впросак,             &lt;br /&gt;И наблюдать, как наглость лезет в свет,             &lt;br /&gt;И честь девичья катится ко дну,             &lt;br /&gt;И знать, что ходу совершенствам нет,             &lt;br /&gt;И видеть мощь у немощи в плену,             &lt;br /&gt;И вспоминать, что мысли заткнут рот,             &lt;br /&gt;И разум сносит глупости хулу,             &lt;br /&gt;И прямодушье простотой слывет,             &lt;br /&gt;И доброта прислуживает злу.             &lt;br /&gt;            &lt;br /&gt;Измучась всем, не стал бы жить и дня,             &lt;br /&gt;Да другу трудно будет без меня.             &lt;br /&gt;&lt;/td&gt;          &lt;td&gt;           &lt;br /&gt;Когда ж я сдохну! До того достало,             &lt;br /&gt;Что бабки оседают у жлобов,             &lt;br /&gt;Что старики ночуют по вокзалам,             &lt;br /&gt;Что &amp;quot;православный&amp;quot; значит - бей жидов!             &lt;br /&gt;Что побратались мент и бандюган,             &lt;br /&gt;Что колесят шестерки в шестисотых,             &lt;br /&gt;Что в загс приходят по любви к деньгам,             &lt;br /&gt;Что лег народ с восторгом под сексотов.             &lt;br /&gt;Что делают бестселлер из говна,             &lt;br /&gt;Что проходимец лепит монументы,             &lt;br /&gt;Что музыкант играет паханам,             &lt;br /&gt;А быдло учит жить интеллигента.             &lt;br /&gt;            &lt;br /&gt;Другой бы сдох к пятнадцати годам,            &lt;br /&gt;Но я вам пережить меня не дам!            &lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;div style="margin-left: 30px"&gt;   &lt;br /&gt;(с) не я, найдено в сети&lt;/div&gt;  &lt;br style="clear: both" /&gt;  &lt;hr align="center" size="2" width="100%" /&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1904526954617767729?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1904526954617767729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1904526954617767729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1904526954617767729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1904526954617767729'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/12/shakespeare-sonnet-66-few-translations.html' title='Shakespeare - Sonnet 66 – few translations'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1482331253947137000</id><published>2009-11-22T10:26:00.001+02:00</published><updated>2009-11-22T10:26:45.234+02:00</updated><title type='text'>1 year after post on Joseph de la Vega</title><content type='html'>I wanted to return to his &lt;a href="http://alexpinsker.blogspot.com/2008/11/joseph-de-la-vega-on-credit-crunch.html" target="_blank"&gt;post&lt;/a&gt; in 1 year... DJI graph since then...   &lt;div style="text-align: center; clear: both" class="separator"&gt;&lt;a style="margin-bottom: 1em; float: left; clear: left; margin-right: 1em" href="http://3.bp.blogspot.com/_If2EaQD4ZgM/Swj1R5a9gnI/AAAAAAAABMM/sxE7EupEhIs/s1600/DJI1year.jpg" imageanchor="1"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_If2EaQD4ZgM/Swj1R5a9gnI/AAAAAAAABMM/sxE7EupEhIs/s320/DJI1year.jpg" /&gt;&lt;/a&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0fb8fdea-bcac-4703-a900-e07b251a3473" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Finance" rel="tag"&gt;Finance&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Freakonomics" rel="tag"&gt;Freakonomics&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1482331253947137000?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1482331253947137000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1482331253947137000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1482331253947137000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1482331253947137000'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/11/1-year-after-post-on-joseph-de-la-vega.html' title='1 year after post on Joseph de la Vega'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_If2EaQD4ZgM/Swj1R5a9gnI/AAAAAAAABMM/sxE7EupEhIs/s72-c/DJI1year.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-7806121152935716725</id><published>2009-11-17T10:20:00.002+02:00</published><updated>2009-11-19T10:56:04.436+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Control'/><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><category scheme='http://www.blogger.com/atom/ns#' term='HtmlControl'/><title type='text'>Silverlight HTML Control</title><content type='html'>If you need to display a piece of HTML in your Silverlight application…&lt;br /&gt;Public/open-source Silverlight HTML controls:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;a href="http://blogs.msdn.com/delay/archive/2007/09/10/bringing-a-bit-of-html-to-silverlight-htmltextblock-makes-rich-text-display-easy.aspx"&gt;&lt;i&gt;HtmlTextBlock&lt;/i&gt;&lt;/a&gt;&lt;/b&gt; – replacement for Silverlight &lt;b&gt;&lt;i&gt;TextBlock&lt;/i&gt;&lt;/b&gt; that may render simple HTML.      &lt;br /&gt;Demo: &lt;a href="http://cesso.org/Samples/SilverlightHtmlTextBlock/" target="_blank"&gt;http://cesso.org/Samples/SilverlightHtmlTextBlock/&lt;/a&gt;      &lt;br /&gt;Source code: &lt;a href="http://delay.members.winisp.net/SilverlightHtmlTextBlock/SilverlightHtmlTextBlock.zip" target="_blank"&gt;http://delay.members.winisp.net/SilverlightHtmlTextBlock/SilverlightHtmlTextBlock.zip&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://csharp-snippets.blogspot.com/2009/03/html-host-control-in-silverlight.html" target="_blank"&gt;&lt;b&gt;&lt;i&gt;HtmlHost&lt;/i&gt;&lt;/b&gt;&lt;/a&gt; control – use DOM to create HTML Document.      &lt;br /&gt;Source code: &lt;a href="http://www.codersource.net/silverlightcode/htmlhost/FreeHtmlHost.zip" target="_blank"&gt;http://www.codersource.net/silverlightcode/htmlhost/FreeHtmlHost.zip&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Commercial Silverlight HTML controls:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;C1HtmlHost by &lt;a href="http://componentone.com/" target="_blank"&gt;ComponentOne&lt;/a&gt;.      &lt;br /&gt;Demo: &lt;a href="http://demo.componentone.com/Silverlight/ControlExplorer/#C1HtmlHost/See%20it%20in%20action%21" target="_blank"&gt;http://demo.componentone.com/Silverlight/ControlExplorer/#C1HtmlHost/See%20it%20in%20action!&lt;/a&gt;      &lt;br /&gt;Trial Download: &lt;a href="http://www.componentone.com/StudioSilverlight/Download/" target="_blank"&gt;http://www.componentone.com/StudioSilverlight/Download/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:5b2a6d9c-2b4e-4853-a913-32b2862802aa" style="display: inline; float: none; margin: 0px; padding: 0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Control" rel="tag"&gt;Control&lt;/a&gt;,&lt;a href="http://technorati.com/tags/HtmlControl" rel="tag"&gt;HtmlControl&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-7806121152935716725?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/7806121152935716725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=7806121152935716725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7806121152935716725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7806121152935716725'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/11/silverlight-html-control.html' title='Silverlight HTML Control'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-7966120657336872534</id><published>2009-11-15T12:24:00.002+02:00</published><updated>2009-11-15T12:24:58.741+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Working Set'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='AWE'/><category scheme='http://www.blogger.com/atom/ns#' term='Task Manager'/><title type='text'>What you see in Working Set of SQL Server 2008 process (sqlservr.exe) is NOT amount of memory allocated by the process</title><content type='html'>&lt;a href="http://blogs.msdn.com/psssql/archive/2009/09/11/fun-with-locked-pages-awe-task-manager-and-the-working-set.aspx"&gt;Here&lt;/a&gt; is some extended info.   &lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fad75616-68c4-47ba-bd09-67fd7bba0b5b" style="display: inline; float: none; margin: 0px; padding: 0px;"&gt;&lt;br /&gt;&lt;br /&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SQL+2008" rel="tag"&gt;SQL 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AWE" rel="tag"&gt;AWE&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Task+Manager" rel="tag"&gt;Task Manager&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Working+Set" rel="tag"&gt;Working Set&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-7966120657336872534?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/7966120657336872534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=7966120657336872534' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7966120657336872534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7966120657336872534'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/11/what-you-see-in-working-set-of-sql.html' title='What you see in Working Set of SQL Server 2008 process (sqlservr.exe) is NOT amount of memory allocated by the process'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-7350522653312874810</id><published>2009-11-11T18:22:00.002+02:00</published><updated>2009-11-11T18:30:39.870+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sgen.exe'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Practical tutorial on using Sgen.exe to improve performance of XML serialization startup.</title><content type='html'>&lt;span style="font-family: times new roman; font-size: 85%"&gt;There is an overhead incurred when using serialization in your application, which is caused by generation of a ‘helper’ assembly for each type that is serialized with XmlSerializer (per-process-per-domain). (Btw – this has subtle adverse effect – if you use serialization – your application should have Read/Write permissions to %windir%\temp folder).    &lt;br /&gt;    &lt;br /&gt;This overhead may be avoided by using Sgen.exe tool to pre-generate serialization assemblies.     &lt;br /&gt;Basically it should be pretty &lt;a href="http://msdn.microsoft.com/en-us/library/bk3w6240%28VS.80%29.aspx"&gt;straightforward&lt;/a&gt;, especially if your FooBar.dll assembly for which you pre-generating serialization assembly doesn’t has a lot of references. Unfortunately – if you do have a lot of references – you would have to add them all using /reference:c:\foo1\foo1.dll /reference:c:\foo2\foo2.dll /reference:c:\foo3\foo3.dll ……     &lt;br /&gt;    &lt;br /&gt;Here is a workaround:     &lt;br /&gt;To generate serialization assembly manually (could be done as a post-build step):     &lt;br /&gt;1) Visual Studio –&amp;gt; Foo.csproj –&amp;gt; Properties –&amp;gt; Build –&amp;gt; Generate Serialization Assembly –&amp;gt; On     &lt;br /&gt;You would expect it to work automatically now – but it wouldn’t, or saying it more precisely it would create serialization assembly only if your assembly includes proxy types (e.g. web-services).     &lt;br /&gt;Anyway – build your assembly, open MSVC output window and look for sgen.exe line in the end of output.     &lt;br /&gt;2) Copy whole sgen.exe line – it would include all the references needed.     &lt;br /&gt;3) Remove from it &lt;strong&gt;/proxytypes&lt;/strong&gt; parameter – this will cause sgen.exe to generate serializers for regular types.     &lt;br /&gt;4) Add &lt;strong&gt;/force&lt;/strong&gt; parameter to force overwrite of previously created assembly.     &lt;br /&gt;    &lt;br /&gt;Now you almost done except of following caveats:     &lt;br /&gt;1) If you have types with the same name in different namespaces you would get error saying something like:     &lt;br /&gt;&lt;strong&gt;Error: There was an error reflecting type ‘FooNamespace.Foo’ –&lt;/strong&gt; &lt;strong&gt;Types ‘FooNamespace1.Foo’ and ‘FooNamespace2.Foo’ both use the XML type name. Use XML attributes to specify a unique XML name and/or namespace for the type.      &lt;br /&gt;&lt;/strong&gt;To resolve it – differentiate your types by specifying XML namespace:     &lt;br /&gt;    &lt;div class="csharpcode"&gt;     &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System.Xml.Serialization;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&amp;#160;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;[XmlType(Namespace = &lt;span class="str"&gt;&amp;quot;urn:Foo1&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;[XmlRoot(Namespace = &lt;span class="str"&gt;&amp;quot;urn:Foo1&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Foo{}&lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;  &lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;2)&amp;#160; If you have properties with readonly or &lt;strong&gt;internal&lt;/strong&gt; properties, or &lt;strong&gt;internal&lt;/strong&gt; types – you would get the following error: &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;strong&gt;Error … property or indexer cannot be assigned to it is read only. &lt;br /&gt;    &lt;br /&gt;&lt;/strong&gt;You may either mark such property with [XmlIgnore] attribute or (for &lt;strong&gt;internal&lt;/strong&gt;) – add following line to AssemblyInfo.cs file: &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div class="csharpcode"&gt;&lt;br /&gt;    &lt;pre class="alt"&gt;[assembly: InternalsVisibleTo(&lt;span class="str"&gt;&amp;quot;&amp;lt;AssemblyName&amp;gt;.XmlSerializers, PublicKeyToken=null&amp;quot;&lt;/span&gt;)]&lt;/pre&gt;&lt;br /&gt;  &lt;/div&gt;&lt;br /&gt;  &lt;style type="text/css"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: consolas, "Courier New", courier, monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;/style&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;br /&gt;    &lt;br /&gt;You may still add it as part of build process manually modifying MSBUILD script in .csproj file. &lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;Look &lt;a href="http://www.kiwidude.com/blog/2007/02/vs2005-when-sgen-doesnt-work.html"&gt;here&lt;/a&gt; or &lt;a href="http://stackoverflow.com/questions/134224/generating-an-xml-serialization-assembly-as-part-of-my-build"&gt;here&lt;/a&gt; for details.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;  &lt;p&gt;&lt;br /&gt;    &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6aae384c-1adc-4842-8161-1579da6ffafc" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Sgen.exe" rel="tag"&gt;Sgen.exe&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;  &lt;/p&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-7350522653312874810?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/7350522653312874810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=7350522653312874810' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7350522653312874810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7350522653312874810'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/11/practical-tutorial-on-using-sgenexe-to.html' title='Practical tutorial on using Sgen.exe to improve performance of XML serialization startup.'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-7493013453011324847</id><published>2009-11-09T10:03:00.002+02:00</published><updated>2009-11-12T11:49:59.905+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>How to activate Fusion logs</title><content type='html'>&lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d8fbd885-8973-4e4e-86e3-96ea6dd9eccd" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;&lt;/div&gt;&lt;p&gt;Fusion.reg file:&lt;/p&gt;&lt;table border="1" cellspacing="0" cellpadding="2" width="400"&gt;&lt;tbody&gt;&lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;Windows Registry Editor Version 5.00            &lt;br /&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]             &lt;br /&gt;&amp;quot;LogPath&amp;quot;=&amp;quot;C:\\FusionLogs&amp;quot;             &lt;br /&gt;&amp;quot;ForceLog&amp;quot;=dword:00000001&lt;/p&gt;&lt;/td&gt;     &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-7493013453011324847?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/7493013453011324847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=7493013453011324847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7493013453011324847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7493013453011324847'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/11/how-to-activate-fusion-logs.html' title='How to activate Fusion logs'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5354011379171358655</id><published>2009-09-14T00:42:00.001+03:00</published><updated>2009-09-14T00:42:41.388+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Freakostatistics'/><category scheme='http://www.blogger.com/atom/ns#' term='Freakonomics'/><title type='text'>How productivity changes throughout the weekdays</title><content type='html'>&lt;p&gt;Graph below shows distribution of my blog visitors throughout the weekdays (this picture depicts a specific week, but the pattern is consistent over the time.   &lt;br /&gt;Since my blog is mostly devoted to the technical issues I think it could be a measure of common productivity pattern throughout the week.&lt;/p&gt;  &lt;p&gt;So:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;It seems that proverb saying “Monday is a holiday” looks to be statistically right.&lt;/li&gt;    &lt;li&gt;Well, actually it seems it talks about the Tuesday as well …&lt;/li&gt;    &lt;li&gt;Wednesday and Thursday are most productive days, Thursday is a bit better.&lt;/li&gt;    &lt;li&gt;Friday is in much better than Tuesday but shows clear decline to Thursday.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://lh3.ggpht.com/_If2EaQD4ZgM/Sq1nUBdF1KI/AAAAAAAABLc/m5iaKYn1BNE/image_thumb%5B6%5D.png?imgmax=800" width="584" height="260" /&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5354011379171358655?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5354011379171358655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5354011379171358655' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5354011379171358655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5354011379171358655'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/09/how-productivity-changes-throughout.html' title='How productivity changes throughout the weekdays'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_If2EaQD4ZgM/Sq1nUBdF1KI/AAAAAAAABLc/m5iaKYn1BNE/s72-c/image_thumb%5B6%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-6972616015493898904</id><published>2009-09-14T00:20:00.001+03:00</published><updated>2009-09-14T00:20:08.127+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Finance'/><title type='text'>Insiders sell like there's no tomorrow …</title><content type='html'>&lt;p&gt;&lt;a href="http://money.cnn.com/2009/09/10/news/economy/insider.sales/index.htm?postversion=2009091107" target="_blank"&gt;&lt;img style="margin: 0px; display: inline" align="left" src="http://i2.cdn.turner.com/money/2009/09/10/news/economy/insider.sales/chart_insider_sales2_03.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6972616015493898904?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6972616015493898904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6972616015493898904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6972616015493898904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6972616015493898904'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/09/insiders-sell-like-there-no-tomorrow.html' title='Insiders sell like there&amp;#39;s no tomorrow …'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-2219016277823392311</id><published>2009-08-25T15:33:00.001+03:00</published><updated>2009-08-25T16:02:46.462+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Velocity'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Performance of Velocity distributed cache</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;I was looking for some numbers on performance and throughput of Velocity.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;First of all here is some extensive performance data from Microsoft Velocity team blog: &lt;a href="http://blogs.msdn.com/velocity/archive/2009/04/21/more-performance-numbers.aspx" target="_blank"&gt;http://blogs.msdn.com/velocity/archive/2009/04/21/more-performance-numbers.aspx&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;My own test (single cache node, single client on a neighbor LAN computer - sequentially storing 100 .. 1000 instances of the same data into the cache) shown time of around 14-18 ms (per chunk) when storing data chunks of 100K up to 1Mb.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-2219016277823392311?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/2219016277823392311/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=2219016277823392311' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2219016277823392311'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2219016277823392311'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/08/performance-of-velocity-distributed.html' title='Performance of Velocity distributed cache'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-3861241274559455415</id><published>2009-08-24T14:26:00.001+03:00</published><updated>2009-09-14T00:23:27.060+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tip'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>The requested upgrade is not supported by </title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Proxy should be updated...&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-3861241274559455415?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/3861241274559455415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=3861241274559455415' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3861241274559455415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3861241274559455415'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/08/requested-upgrade-is-not-supported-by.html' title='The requested upgrade is not supported by &lt;MEX endpoint&gt;'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-8733336527384680460</id><published>2009-08-24T14:16:00.003+03:00</published><updated>2009-09-14T00:22:19.827+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>No connection could be made because the target machine actively refused it...</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Just a self-reminder... Could be caused by WCF security configurations. Either set Binding&amp;rarr;Security&amp;rarr;&lt;b&gt;Mode&lt;/b&gt;&amp;rarr;None or if Mode is Transport - then add Windows credentials of user running the service in security config section.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-8733336527384680460?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/8733336527384680460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=8733336527384680460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8733336527384680460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8733336527384680460'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/08/no-connection-could-be-made-because.html' title='No connection could be made because the target machine actively refused it...'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5429021672576451347</id><published>2009-08-16T11:25:00.004+03:00</published><updated>2009-09-14T00:21:53.211+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Finance'/><title type='text'>How flash order works</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Taken from &lt;a href="http://seekingalpha.com/article/151385-how-flash-orders-work" target="_blank"&gt;this&lt;/a&gt; post.&lt;br /&gt;&lt;p&gt;&lt;a href="http://static.seekingalpha.com/uploads/2009/7/26/saupload_flash_orders_diagram.jpg"&gt;&lt;img src="http://static.seekingalpha.com/uploads/2009/7/26/saupload_flash_orders_diagram.jpg" align="left" title="Flash Order Flow Diagram" width="700" height="460" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5429021672576451347?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5429021672576451347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5429021672576451347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5429021672576451347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5429021672576451347'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/08/how-flash-order-works.html' title='How flash order works'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-7915045934988249970</id><published>2009-08-12T17:21:00.002+03:00</published><updated>2009-08-12T17:26:46.143+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tip'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>The server has rejected the client credentials - WCF Exception</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Control Panel&amp;rarr;Administrative Tools&amp;rarr;Local Security Policy&amp;rarr;Local Policies&amp;rarr;User Rights Assignment&amp;rarr;Access this computer from the network&lt;br&gt;Now add &lt;i&gt;Authenticated Users&lt;/i&gt; if your services runs as an application or &lt;i&gt;Network Service&lt;/i&gt; if it's service.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-7915045934988249970?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/7915045934988249970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=7915045934988249970' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7915045934988249970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7915045934988249970'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/08/server-has-rejected-client-credentials.html' title='The server has rejected the client credentials - WCF Exception'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-3117965302684066353</id><published>2009-07-27T14:30:00.004+03:00</published><updated>2009-09-14T00:45:42.770+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Interesting'/><title type='text'>Google Books stickers</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Google giveaway Google Books stickers here: &lt;a href="https://services.google.com/fb/forms/tendaysingooglebooks/"&gt;https://services.google.com/fb/forms/tendaysingooglebooks/&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-3117965302684066353?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/3117965302684066353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=3117965302684066353' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3117965302684066353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3117965302684066353'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/07/google-giveaway-google-books-stickers.html' title='Google Books stickers'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-2133306552967316903</id><published>2009-07-26T22:33:00.004+03:00</published><updated>2009-07-27T21:39:49.945+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>How to: Update Windows driver from command line</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;li&gt;Download DevCon from &lt;a href="http://support.microsoft.com/kb/311272"&gt;here&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Create list of drivers on your machine: &lt;em&gt;devcon drivernodes * &gt; drivers.txt&lt;/em&gt;&lt;/li&gt;&lt;li&gt;Find driver you want to update in the list, e.g. &lt;em&gt;SoundMAX Integrated Digital Audio&lt;/em&gt;&lt;/li&gt;&lt;li&gt;You may check that you've selected the proper driver running &lt;br&gt;&lt;span style="font-weight:bold;"&gt;devcon status "PCI\VEN_8086&amp;DEV_24D5&amp;SUBSYS_80F31043&amp;REV_02"&lt;/span&gt; Please note that you should include driver ID in "quotation marks" and use part of string up to &lt;span style="font-weight:bold;"&gt;REV_02&lt;/span&gt; (revision part).&lt;/li&gt;&lt;li&gt;run &lt;strong&gt;devcom updateNI&lt;/strong&gt; using following parameters:&lt;ul&gt;Use name of inf file from &lt;em&gt;Inf file is ...&lt;/em&gt;&lt;br /&gt;Use driver ID from line in the end of that section, but only up to and including" "Revision" part, e.g. &lt;strong&gt;PCI\VEN_8086&amp;DEV_24D5&amp;SUBSYS_80F31043&amp;REV_02&lt;/strong&gt;\3&amp;267A616A&amp;0&amp;EA&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Command line would be something like:&lt;br /&gt; &lt;strong&gt;devcon update "c:\windows\inf\oem0.inf" "PCI\VEN_8086&amp;DEV_24D5&amp;SUBSYS_80F31043&amp;REV_02"&lt;/strong&gt;&lt;/li&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-2133306552967316903?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/2133306552967316903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=2133306552967316903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2133306552967316903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2133306552967316903'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/07/how-to-update-windows-driver-from.html' title='How to: Update Windows driver from command line'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5911135628020782182</id><published>2009-07-20T12:25:00.006+03:00</published><updated>2009-08-23T18:37:12.511+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TBB'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>TBB Performance</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;My &lt;a href="http://www.linkedin.com/pub/dan-malkin/1/b79/4" title="Dan Malkin" target="_blank"&gt;colleague&lt;/a&gt; who is working on optimization of quantitative calculations and plays around with Intel's thread building blocks (TBB) shared with me interesting performance results.&lt;br /&gt;&lt;br /&gt;Let's say you trying to do a simple math operation, e.g. sum numbers in arrays A and B into correspondent cells of array S.&lt;br /&gt;The intuitive guess would be that this is exactly type of operation that would benefit form running it in parallel on few threads/processors. Well, it's not and here are results (test was executed on two Intel's core Dell laptop):&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_If2EaQD4ZgM/SmQ5X-MgrKI/AAAAAAAABLQ/ozhO_D-wODs/s1600-h/TBB+Performace.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 101px;" src="http://2.bp.blogspot.com/_If2EaQD4ZgM/SmQ5X-MgrKI/AAAAAAAABLQ/ozhO_D-wODs/s400/TBB+Performace.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5360472540472978594" /&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br /&gt;As you may see - running it using a straight loop is around four times faster than running it using TBB (selecting manual splitting of 1000 pieces) and around eight times faster (almost order of magnitude!) than running it using TBB and letting it employ automatic splitting heuristic.&lt;br /&gt;&lt;br /&gt;Our guess is that processor is perfectly fine-tuned for such types of task (locality of reference, L2 cache, optimistic pre-fetching of commands from pipe etc). If you employ few processors you introduce "coordination overhead" and pay performance price for it.&lt;br /&gt;&lt;br /&gt;It seems that TBB would provide performance benefits for tasks of a certain complexity balance - more complicated than described here, but still not "too complicate" so that coordination overhead is not too high...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://alexander.pinsker.googlepages.com/TBBTest.cpp" target="_blank"&gt;Here&lt;/a&gt; is the code if you want to check it out.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5911135628020782182?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5911135628020782182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5911135628020782182' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5911135628020782182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5911135628020782182'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/07/my-colleague-who-is-working-on.html' title='TBB Performance'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_If2EaQD4ZgM/SmQ5X-MgrKI/AAAAAAAABLQ/ozhO_D-wODs/s72-c/TBB+Performace.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-2210029703142598915</id><published>2009-07-20T11:14:00.002+03:00</published><updated>2009-07-20T11:52:13.831+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='STL'/><category scheme='http://www.blogger.com/atom/ns#' term='tr1'/><category scheme='http://www.blogger.com/atom/ns#' term='C++'/><title type='text'>Calling a member function for all STL map values (in a single line of code)</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;blockquote&gt;&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;&lt;font color="#0000ff"&gt;int&lt;/font&gt; newSize = 50;&lt;br /&gt;typedef std::map&amp;#60;&lt;font color="#0000ff"&gt;int&lt;/font&gt;, vector&amp;#60;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&amp;#62;&amp;#62; MyMap;&lt;br /&gt;&lt;br /&gt;&lt;font color="#008000"&gt;// call vector.resize(newSize) for all values (pair-&amp;#62;second) of STL map&lt;/font&gt;&lt;br /&gt;for_each(m_map.begin(), m_map.end(),&lt;br /&gt;&amp;nbsp;&amp;nbsp; tr1::bind(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;mem_fun_ref(&amp;#38;vector&amp;#60;&lt;font color="#0000ff"&gt;double&lt;/font&gt;&amp;#62;::resize), &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tr1::bind(&amp;#38;MyMap::value_type::second, tr1::placeholders::_1), &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; newSize));&lt;br /&gt;&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-2210029703142598915?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/2210029703142598915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=2210029703142598915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2210029703142598915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2210029703142598915'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/07/calling-member-function-for-all-stl-map.html' title='Calling a member function for all STL map values (in a single line of code)'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1970027180507389565</id><published>2009-07-16T10:50:00.007+03:00</published><updated>2009-09-14T00:43:55.292+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Freakostatistics'/><category scheme='http://www.blogger.com/atom/ns#' term='Freakonomics'/><title type='text'>Sociological poll's results are clustered</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Occasionally I watch some TV news programs that do polling on various political and social issues. First of all - the fact of existence of such polls is curious by itself, since it depicts how many simple minded peoples there is out there happily paying for the phone calls to poll numbers just to express their opinion. In my view all those polls are nothing more that side revenue generation options for TV/phone corps and specifically designed for it.&lt;br /&gt;&lt;br /&gt;Anyway I've noted an interesting fact - those results have some clustering patterns - both in time and quantitative space and let me explain what I mean.&lt;br /&gt;Quantitatively - results are always clustered around the following ratios:&lt;br /&gt;98:2&lt;br /&gt;90:10&lt;br /&gt;2/3: 1/2&lt;br /&gt;1/2: 1/2&lt;br /&gt;&lt;br /&gt;I didn't done a massive statistic on it, but it's my observation. Isn't that curious?&lt;br /&gt;&lt;br /&gt;Now regarding "time clustering" - if poll results would be very biased, i.e. huge majority in favor of a certain option (like 98:2 or 90:10) - then usually during the very first seconds (something like 30 - 40 sec's) of the poll - the minority option would be the leading one! It's seems like people supporting an option which is really not favorable in view of the majority are reacting much more actively than the average citizen.&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1970027180507389565?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1970027180507389565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1970027180507389565' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1970027180507389565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1970027180507389565'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/07/sociological-polls-results-are.html' title='Sociological poll&apos;s results are clustered'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-335046476258131349</id><published>2009-07-16T10:31:00.003+03:00</published><updated>2009-07-16T11:09:37.264+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Distributed Computing'/><title type='text'>My lecture on distributed computing</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://alexander.pinsker.googlepages.com/DistributedComputingLecture.pps"&gt;Here&lt;/a&gt; is my lecture on distributed computing which I presented recently to my colleagues.&lt;br /&gt;(Some of the slides were taken from open materials that I've googled out.)&lt;br /&gt;I think that Distributed Computing/Grid/Clouds and related technologies are going to be in the center of next technological boom/bubble cycle.&lt;br /&gt;This is both because technology seems to be cheap and mature enough to crop the fruits and since it would be employed by Energy Grid / EnergyNET..&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-335046476258131349?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/335046476258131349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=335046476258131349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/335046476258131349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/335046476258131349'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/07/my-lecture-on-distributed-computing.html' title='My lecture on distributed computing'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-6411301752127499603</id><published>2009-06-25T12:01:00.003+03:00</published><updated>2009-06-25T13:04:44.378+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='TFS'/><title type='text'>Use Beyond Compare with Team Foundation Server in VS 2008/VS2005</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;VS2008 &amp;rarr; Tools &amp;rarr; Source Control &amp;rarr; Visual Studio Foundation Service &amp;rarr; Configure User Tools:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Compare &amp;rarr; C:\Program Files\Beyond Compare 3\BComp.exe &amp;rarr; %1 %2&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Merge &amp;rarr; C:\Program Files\Beyond Compare 3\BComp.exe &amp;rarr; %1 %2 /savetarget=%4 /title1=%6 /title2=%7&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6411301752127499603?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6411301752127499603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6411301752127499603' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6411301752127499603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6411301752127499603'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/06/use-beyond-compare-with-team-foundation.html' title='Use Beyond Compare with Team Foundation Server in VS 2008/VS2005'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5257577522509315949</id><published>2009-06-21T15:49:00.006+03:00</published><updated>2009-09-14T00:44:09.135+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Blog'/><title type='text'>Addin favicon to your blog</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://hapiblogging.blogspot.com/2009/01/how-to-change-favicon-in-blogger-in-xml.html"&gt;Here&lt;/a&gt; is how to add Favicon to your blog:&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_If2EaQD4ZgM/Sj4s5zm5CwI/AAAAAAAABKk/XXUiCKzMnHw/s1600-h/Alex!.GIF"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 16px; height: 16px;" src="http://1.bp.blogspot.com/_If2EaQD4ZgM/Sj4s5zm5CwI/AAAAAAAABKk/XXUiCKzMnHw/s400/Alex!.GIF" border="0" alt=""id="BLOGGER_PHOTO_ID_5349762778980223746" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5257577522509315949?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5257577522509315949/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5257577522509315949' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5257577522509315949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5257577522509315949'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/06/addin-favicon-to-your-blog.html' title='Addin favicon to your blog'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_If2EaQD4ZgM/Sj4s5zm5CwI/AAAAAAAABKk/XXUiCKzMnHw/s72-c/Alex!.GIF' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-154339282423000055</id><published>2009-06-21T14:07:00.008+03:00</published><updated>2009-11-15T16:06:45.356+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><title type='text'>ThreadPool.QueueUserWorkItem() could be very slow</title><content type='html'>&lt;i&gt;ThreadPool.QueueUserWorkItem()&lt;/i&gt; could be &lt;b&gt;very&lt;/b&gt; slow if callback being executed as a work item calls &lt;i&gt;Thread.Sleep()&lt;/i&gt;. Consider the following example: &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;span style="color: black; font-family: courier new; font-size: x-small;"&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;span style="color: black; font-family: courier new; font-size: x-small;"&gt;&lt;li&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt; System; &lt;/li&gt;&lt;li&gt;&lt;span style="color: blue;"&gt;using&lt;/span&gt; System.Threading; &lt;/li&gt;&lt;li&gt;&amp;nbsp; &lt;/li&gt;&lt;li&gt;&lt;span style="color: blue;"&gt;namespace&lt;/span&gt; Test &lt;/li&gt;&lt;li&gt;{ &lt;/li&gt;&lt;li&gt;&amp;nbsp; &lt;span style="color: blue;"&gt;class&lt;/span&gt; Program &lt;/li&gt;&lt;li&gt;&amp;nbsp; { &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;const&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; waitTime = 10000; &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; Main(&lt;span style="color: blue;"&gt;string&lt;/span&gt;[] args) &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;for&lt;/span&gt; (&lt;span style="color: blue;"&gt;int&lt;/span&gt; i = 0; i &amp;lt; 10; i++ ) &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ThreadPool.QueueUserWorkItem( TestProc, i); &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.ReadKey(); &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;&lt;li&gt;&amp;nbsp; &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;static&lt;/span&gt; &lt;span style="color: blue;"&gt;void&lt;/span&gt; TestProc(&lt;span style="color: blue;"&gt;object&lt;/span&gt; stateInfo) &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; { &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: #a31515;"&gt;"Item number #{0} at {1}"&lt;/span&gt;, (&lt;span style="color: blue;"&gt;int&lt;/span&gt;)stateInfo, &lt;span style="color: #2b91af;"&gt;DateTime&lt;/span&gt;.Now); &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Thread.Sleep(waitTime); &lt;/li&gt;&lt;li&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/li&gt;&lt;li&gt;&amp;nbsp; } &lt;/li&gt;&lt;li&gt;} &lt;/li&gt;&lt;/span&gt;&lt;/ol&gt;&lt;span style="color: black; font-family: courier new; font-size: x-small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_If2EaQD4ZgM/SvvgqQiqlFI/AAAAAAAABL4/soikoUrINQU/s1600-h/ThreadPool1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_If2EaQD4ZgM/SvvgqQiqlFI/AAAAAAAABL4/soikoUrINQU/s640/ThreadPool1.jpg" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The problem is that thread pool waits around 500 ms before allocating a new thread. &lt;br /&gt;You may solve it by pre-specifying a minimal amount of threads in your application:&lt;br /&gt;&lt;b&gt;ThreadPool.SetMinThreads(20, 200);&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-154339282423000055?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/154339282423000055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=154339282423000055' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/154339282423000055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/154339282423000055'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/06/threadpool.html' title='ThreadPool.QueueUserWorkItem() could be very slow'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_If2EaQD4ZgM/SvvgqQiqlFI/AAAAAAAABL4/soikoUrINQU/s72-c/ThreadPool1.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-2969650023560024605</id><published>2009-06-21T11:30:00.004+03:00</published><updated>2009-09-14T00:46:14.014+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Interesting'/><title type='text'>Sand Requiem - devoted to soviet soldiers and people fallen in war that started 69 years ago...</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;object width="445" height="364"&gt;&lt;param name="movie" value="http://www.youtube.com/v/XvHX0bgoouc&amp;hl=en&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;border=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/XvHX0bgoouc&amp;hl=en&amp;fs=1&amp;color1=0x2b405b&amp;color2=0x6b8ab6&amp;border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-2969650023560024605?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/2969650023560024605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=2969650023560024605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2969650023560024605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2969650023560024605'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/06/devoted-to-soviet-soldiers-and-people.html' title='Sand Requiem - devoted to soviet soldiers and people fallen in war that started 69 years ago...'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5221607338101295062</id><published>2009-06-17T16:12:00.006+03:00</published><updated>2009-09-14T00:45:02.749+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>Howto: publish metadata for net.tcp endpoint and add reference to WCF service hosted in process/service/console</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;app.config =&gt; Edit WCF configuration&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Open "Services" section, then "Endpoints" section.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Select an endpoint for which you want to add metadata/MEX endpoint hosted with TCP binding&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Endpoints =&gt; New service endpoint&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Set &lt;b&gt;Address &lt;/b&gt;to something like &lt;b&gt;net.tcp://localhost:5060/MyEndpointMex&lt;/b&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Set &lt;b&gt;Name &lt;/b&gt;to be something like MyEndpointMex&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Set &lt;b&gt;Binding &lt;/b&gt;to &lt;b&gt;mexTcpBinding&lt;/b&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Set &lt;b&gt;Contract &lt;/b&gt;to &lt;b&gt;IMetadataExchange&lt;/b&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Set &lt;b&gt;ListenUriMode &lt;/b&gt;to &lt;b&gt;Explicit&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Advanced =&gt; Service Behaviours =&gt; Add "New Service Behaviour Configuration"&lt;br /&gt;Add &lt;strong&gt;serviceMedatadata&lt;/strong&gt; section and set both &lt;strong&gt;HttpGetEnabled&lt;/strong&gt; and &lt;strong&gt;HttpsGetEnabled&lt;/strong&gt; to &lt;strong&gt;False&lt;/strong&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Now start your service process, open VS 2008, select References and then Add Service Reference.&lt;br /&gt;Put &lt;b&gt;net.tcp://localhost:5060/MyEndpointMex&lt;/b&gt; in Address field.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Enjoy&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5221607338101295062?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5221607338101295062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5221607338101295062' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5221607338101295062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5221607338101295062'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/06/howto-publish-metadata-for-nettcp.html' title='Howto: publish metadata for net.tcp endpoint and add reference to WCF service hosted in process/service/console'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-504928098631484829</id><published>2009-06-17T15:59:00.002+03:00</published><updated>2009-06-17T16:12:10.178+03:00</updated><title type='text'>Metadata contains a reference that cannot be resolved net.tcp</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;Error "Metadata contains a reference that cannot be resolved: 'service reference'.&lt;br /&gt;If the service is defined in the current solution, try building the solution and adding the service reference again." could be caused by specifying specific contract rather than IMetadataExchange in &lt;i&gt;Contract&lt;/i&gt; section of service endpoint configuration.&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-504928098631484829?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/504928098631484829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=504928098631484829' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/504928098631484829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/504928098631484829'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/06/metadata-contains-reference-that-cannot.html' title='Metadata contains a reference that cannot be resolved net.tcp'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-3548288432783793725</id><published>2009-06-17T15:14:00.004+03:00</published><updated>2009-09-14T00:44:47.340+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Barrier multithreading primitive in C#</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;!-- code formatted by http://manoli.net/csharpformat/ --&gt;&lt;br /&gt;&lt;style type="text/css"&gt;&lt;br /&gt;.csharpcode, .csharpcode pre&lt;br /&gt;{&lt;br /&gt; font-size: small;&lt;br /&gt; color: black;&lt;br /&gt; font-family: Consolas, "Courier New", Courier, Monospace;&lt;br /&gt; background-color: #ffffff;&lt;br /&gt; /*white-space: pre;*/&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.csharpcode pre { margin: 0em; }&lt;br /&gt;&lt;br /&gt;.csharpcode .rem { color: #008000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .kwrd { color: #0000ff; }&lt;br /&gt;&lt;br /&gt;.csharpcode .str { color: #006080; }&lt;br /&gt;&lt;br /&gt;.csharpcode .op { color: #0000c0; }&lt;br /&gt;&lt;br /&gt;.csharpcode .preproc { color: #cc6633; }&lt;br /&gt;&lt;br /&gt;.csharpcode .asp { background-color: #ffff00; }&lt;br /&gt;&lt;br /&gt;.csharpcode .html { color: #800000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .attr { color: #ff0000; }&lt;br /&gt;&lt;br /&gt;.csharpcode .alt &lt;br /&gt;{&lt;br /&gt; background-color: #f4f4f4;&lt;br /&gt; width: 100%;&lt;br /&gt; margin: 0em;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;.csharpcode .lnum { color: #606060; }&lt;br /&gt;&lt;/style&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; Barrier&lt;br /&gt;{&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; Barrier(&lt;span class="kwrd"&gt;int&lt;/span&gt; count)&lt;br /&gt;    {&lt;br /&gt;        Count = count;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt; Count{get; set;}&lt;br /&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Wait()&lt;br /&gt;    {&lt;br /&gt;        &lt;span class="kwrd"&gt;lock&lt;/span&gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;            &lt;span class="kwrd"&gt;if&lt;/span&gt; (--Count &amp;gt; 0)&lt;br /&gt;            {&lt;br /&gt;                System.Threading.Monitor.Wait(&lt;span class="kwrd"&gt;this&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;            &lt;span class="kwrd"&gt;else&lt;/span&gt;&lt;br /&gt;            {&lt;br /&gt;                System.Threading.Monitor.PulseAll(&lt;span class="kwrd"&gt;this&lt;/span&gt;);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-3548288432783793725?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/3548288432783793725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=3548288432783793725' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3548288432783793725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3548288432783793725'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/06/barrier-multithreading-primitive-in-c.html' title='Barrier multithreading primitive in C#'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5132377479345758318</id><published>2009-06-16T11:01:00.012+03:00</published><updated>2009-12-23T16:04:41.210+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>Productivity tools suite</title><content type='html'>&lt;span style="font-family: 'times new roman'; font-size: 85%;"&gt;   &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;         &lt;td&gt;&lt;i&gt;This post would be periodically updated and contain list of best tools for personal use.              &lt;br /&gt;(Updated: 23/12/2009)&lt;/i&gt;             &lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;Blogging&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href="http://wbloggar.com/download.php"&gt;w.bloggar&lt;/a&gt; - free blog editor; integrates with most of blogging platforms.             &lt;br /&gt;&lt;a href="http://download.live.com/writer" target="_blank"&gt;Windows Live Writer&lt;/a&gt; – same… slim UI.             &lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;Productivity&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Office:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://www.copernic.com/en/products/agent/download.html"&gt;Copernic Search Desktop&lt;/a&gt; - Index and search your e-mails (in non-commercial version indexes mails only). Interface is outlook-oriented and it's easier to use then Google Desktop.                 &lt;br /&gt;&lt;a href="http://www.google.com/support/calendar/bin/answer.py?answer=98563"&gt;Google Calendar Sync&lt;/a&gt; - automatically synchronize Outlook and Google Calendar.                 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Health:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://www.workrave.org/" target="_blank"&gt;Workrave&lt;/a&gt; - assist healthy work organization by reminding to make exercises and mini-breaks&lt;br /&gt;&lt;a href="http://www.peterhirschberg.com/mysoftware.html" target="_blank"&gt;Aire Freshener&lt;/a&gt; - Nature sounds player - good for relaxation (&lt;a href="http://www.ted.com/talks/lang/eng/julian_treasure_the_4_ways_sound_affects_us.html"&gt;see why&lt;/a&gt;).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;Security&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Antivirus:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://www.free-av.com/en/download/index.html" target="_blank"&gt;Avira Antivir - Free Edition&lt;/a&gt; - great for home use                 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Firewalls:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://www.pctools.com/firewall/download/" target="_blank"&gt;PC Tools Firewall Plus&lt;/a&gt; - easy to use personal firewall - the only one which is free for personal use and works &lt;b&gt;with Windows 2003&lt;/b&gt;                 &lt;br /&gt;&lt;a href="http://free.agnitum.com/" target="_blank"&gt;Agnitum Outpost Free Edition&lt;/a&gt; - great for home use                 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;File system:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://virtuawin.sourceforge.net/downloads.php"&gt;Eraser&lt;/a&gt; - secure data removal tool.                 &lt;br /&gt;&lt;a href="http://www.truecrypt.org/downloads"&gt;True Crypt&lt;/a&gt; - open-source virtual encrypted disk                 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Security Scanners:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://secunia.com/vulnerability_scanning/personal/"&gt;Secunia PSI&lt;/a&gt; - check whether any installed software requires upgrades. Download and install update patches automatically.                 &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/security/cc184923.aspx"&gt;Microsoft Baseline Security Analyzer&lt;/a&gt; - check missing security updates and detect some security breaches. May scan range of PC's in a network.                 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Passwords Management:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://keepass.info/download.html"&gt;KeePass&lt;/a&gt; - Manage all your password in encrypted container. Freeware; support search, groups, expiration control, language packs.                 &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;Sound, Music, Video, Images&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;MP3:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://mp3splt.sourceforge.net/"&gt;MP3 Split&lt;/a&gt; - Open-source &amp;amp; freeware application to split MP3 &amp;amp; OGG files by size, duration etc (without decoding). I using it really heavily to split audiobooks into chunks of 15-20 minutes and listen them while driving to work. It has command line and UI version (GTK). If you use it to split audiobook - select "auto-adjust mode" in Preferences to automatically split around silence zones.                 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Video:                &lt;br /&gt;&lt;a href="http://www.free-codecs.com/download/Media_Player_Classic.htm"&gt;Media Player Classic&lt;/a&gt; - looks like old-style Windows Media Player but provides major features and supports many video formats.                 &lt;br /&gt;&lt;a href="http://www.videolan.org/vlc/"&gt;VLC Media Player&lt;/a&gt; - open-source media player, support virtually every format...&lt;br /&gt;&lt;a href="http://www.free-codecs.com/download/XP_Codec_Pack.htm"&gt;XP Codec Pack&lt;/a&gt; - codecs for majority of video formats.                 &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Image editors &amp;amp; viewers:                &lt;br /&gt;&lt;a href="http://www.getpaint.net/download.html"&gt;Paint.NET&lt;/a&gt; - opensource image editor.                 &lt;br /&gt;&lt;a href="http://www.faststone.org/FSViewerDownload.htm"&gt;FastStone Image Viewer&lt;/a&gt; - free image browser, converter and editor.                 &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;System&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Sniffers:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://www.ethereal.com/download.html" target="_blank"&gt;Ethereal&lt;/a&gt; - comprehensive network sniffer - Windows + #nux. Free.                 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Web Sniffers:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://www.fiddler2.com/Fiddler2/version.asp" target="_blank"&gt;Fiddler&lt;/a&gt; - free web (HTTP/HTTPS) sniffer &amp;amp; debugger.                 &lt;br /&gt;&lt;a href="http://www.httpwatch.com/download/" target="_blank"&gt;HttpWatch&lt;/a&gt; - web sniffer &amp;amp; debugger with programmatic (C#, Javascript &amp;amp; Ruby) automation interface. Free in basic edition.                 &lt;br /&gt;&lt;a href="http://www.sstinc.com/ethernet.html" target="_blank"&gt;TracePlus &amp;amp; Web Detective&lt;/a&gt; - bundle of regular &amp;amp; web sniffer - no free edition.                 &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;div align="center"&gt;&lt;b&gt;System Tools&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;i&gt;Download Managers:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://www.freedownloadmanager.org/download.htm"&gt;Free Download Manager&lt;/a&gt; - free, GNU license&lt;br /&gt;&lt;strike&gt;&lt;a href="http://www.flashget.com/en/download.htm" target="_blank"&gt;Flashget&lt;/a&gt; - Free, built-in ads&lt;/strike&gt;                 &lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Miscellaneous:&lt;/i&gt;                 &lt;br /&gt;&lt;a href="http://www.donationcoder.com/Software/Mouser/proctamer/index.html"&gt;Process Tamer&lt;/a&gt; - monitor and dynamically adjust CPU usage of running processes.                 &lt;br /&gt;&lt;a href="http://www.runtime.org/shadowcopysetup.exe"&gt;Shadow Copy&lt;/a&gt; - Copy files (including locked files!) or entire drives.                 &lt;br /&gt;&lt;a href="http://virtuawin.sourceforge.net/downloads.php"&gt;Unlocker&lt;/a&gt; - check which process locks your file and unlock it.                 &lt;br /&gt;&lt;a href="http://virtuawin.sourceforge.net/downloads.php"&gt;VirtuaWin&lt;/a&gt; - virtual desktop manager.                 &lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/290301"&gt;Windows Installer CleanUp Utility&lt;/a&gt; - Uninstall any component installed on your system. Usefull to resolve installation problems.                 &lt;br /&gt;&lt;a href="http://www.nirsoft.net/utils/wul.html"&gt;WinUpdatesList&lt;/a&gt; - list all windows updates on the system and provide extensive information on each (install date, install user, list of files) + show uninstall command for the update (properties window).                 &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/td&gt;       &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-family: 'times new roman'; font-size: 85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5132377479345758318?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5132377479345758318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5132377479345758318' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5132377479345758318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5132377479345758318'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/06/productivity-tools-suite.html' title='Productivity tools suite'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-8963625106404326271</id><published>2009-06-11T10:14:00.007+03:00</published><updated>2009-09-14T00:45:16.562+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Distributed Computing'/><title type='text'>Rally toward the multiprocessors and cloud computing</title><content type='html'>&lt;SPAN style="FONT-SIZE: 85%; FONT-FAMILY: times new roman"&gt;&lt;br /&gt;&lt;TABLE width="100%" border=1&gt;&lt;br /&gt;&lt;TBODY&gt;&lt;br /&gt;&lt;TR&gt;&lt;br /&gt;&lt;TD&gt;The rally to multiprocessor/grid/cloud computing begins. I think technology starting gradually to approach maturity point, when it's possible to crop money from the technological break. It is especially important, since mentioned areas are essential for the next economy boom/bubble cycle, which seems to ride on energy consumption:&lt;br /&gt;&lt;br /&gt;&lt;EMBED id=VideoPlayback style="WIDTH: 400px; HEIGHT: 326px" src=http://video.google.com/googleplayer.swf?docid= type=application/x-shockwave-flash allowscriptaccess="always" allowfullscreen="true" hl="en&amp;amp;fs="&gt;&lt;/EMBED&gt;&lt;br /&gt; &lt;br /&gt;Interesting development in this field is NVIDIA's &lt;A href="http://www.nvidia.com/object/cuda_learn.html"&gt;CUDA&lt;/A&gt; technology which evolved from their developments done for the high-performance gaming video cards.Basically CUDA is a set of processors embedded in a GPU card, that are clustered in a blocks. Amount ranges from few hundreds in low-budget cards and up to thounsands in GPU-dedicated cards line (Tesla). There is a ready API enabling to utilize this enormous (and enormously cheap) computing power in software applications. (It integrates with VS 2005 / 2008 and from development point of view - the parallel code should be placed in a separate files [.cu], developed in plain C extended with some parallel notions. - You kind of specifying (by using special registers) which MP cluster and which processor inside of cluster is used for the specific code route.) For a now such integration is not really smooth and requires development effort, but by no doubts NVIDIA would extend it for C++ and .NET. There are some 3rd party SDK's already to integrate it with .NET actually: &lt;A href="http://www.gass-ltd.co.il/en/products/cuda.net/Releases.aspx"&gt;http://www.gass-ltd.co.il/en/products/cuda.net/Releases.aspx&lt;/A&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-8963625106404326271?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=6d8d54de50630439&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/8963625106404326271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=8963625106404326271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8963625106404326271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8963625106404326271'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/06/rally-toward-multiprocessors-and-cloud.html' title='Rally toward the multiprocessors and cloud computing'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-7227656542912964431</id><published>2009-06-11T09:40:00.003+03:00</published><updated>2009-09-14T00:46:04.524+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Interesting'/><category scheme='http://www.blogger.com/atom/ns#' term='Distributed Computing'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance'/><title type='text'>Notes about future developments in multiprocessign computing</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;Below are engrossing notes from Intel Developers Conference by my collegue &lt;a href="http://www.linkedin.com/pub/adam-shaked-gish/0/861/8a5" target="_blank"&gt;Adam Shaked Gish&lt;/a&gt; about future of computing, as Intel sees it.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There will be no more performance improvements for the single core - it is as fast it may be, as physics prohibits silicon from getting any faster. &lt;/li&gt;&lt;li&gt;Performance will be achieved by properly utilizing multiple cores. Intel is committed to this visions  they already see a future in which a desktop has 100 cores inside. &lt;/li&gt;&lt;li&gt;As opposed to single core  where apps gained performance when installed on new hardware for free, there is no free lunch in multi core. Engineers must be properly trained, and code properly written to utilize the cores in a scalable manner, and to write correct code (multithreading bugs can be very difficult to discover and fix). &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In order to utilize the MP power you will need two things: &lt;br /&gt;&lt;ol&gt;&lt;li&gt;A high level library you can use to parallelize tasks, without directly using OS primitives like threads and locks. The low level code is just too complicated to understand or maintain.&lt;/li&gt;&lt;li&gt;A set of tools to help you analyze your performance, and find bugs and bottlenecks  whithout these there is no way to achieve maximum performance.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;As for C++ libraries they discussed:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;OpenMP  as the C style API to parallelize loops. Its advantage is that it is easier to introduce into existing code. Old standard  supported by most modern C++ compilers.&lt;/li&gt;&lt;li&gt;TBB  - a set of templates that allows to think about multi tasking in an object oriented way - you define a task objects and have them run in parallel. It is open source (a set of templates) and has ports to most major OS'es. It is also benchmarked to be faster than OpenMP. However it is more difficult to introduce into existing code and usually requires some amount of redesign. &lt;/li&gt;&lt;li&gt;An additional new technology is being researched and it will allow a user to prove the correctness of code written with it. It is still in research stages.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;As for tools - Intel just released a new suite of tools named "Intel Parallel Studio". It is aimed at making parallel computing available to the mainstream developer. All tools are addins into Visual Studio:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Intel Parallel Composer - a compiler, and a set of libraries and compiler extensions aimed at making development of multithreaded code easier.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Intel Parallel Inspector - a bug finder  focuses on finding memory bugs (like tools we try to use today) and threading bugs.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Intel Parallel Amplifier-  a performance analysis tool, focused on finding threading bottlenecks and optimizing the use of multi cores.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;The suite's retail price is 800$ per license (25% off till end of summer).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-7227656542912964431?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/7227656542912964431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=7227656542912964431' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7227656542912964431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7227656542912964431'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/06/notes-about-future-developments-in.html' title='Notes about future developments in multiprocessign computing'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-6570328885036553130</id><published>2009-06-01T12:20:00.004+03:00</published><updated>2010-08-26T21:15:37.613+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Debug'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Comprehensive list of Debugger Visualizers for Visual Studio</title><content type='html'>&lt;span style="font-family: &amp;#39;times new roman&amp;#39;; font-size: 85%"&gt;   &lt;br /&gt;&lt;/span&gt;  &lt;br /&gt;  &lt;table border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td&gt;         &lt;br /&gt;Here is a comprehensive list of Debugger Visualizers for Visual Studio.          &lt;br /&gt;It's based on (sorted and merged) info from &lt;a href="http://weblogs.asp.net/vardi/archive/2008/05/31/net-debugger-visualizers-list.aspx" target="_blank"&gt;here&lt;/a&gt;, &lt;a href="http://vahidnasiri.blogspot.com/2009/03/debugger-visualizers.html" target="_blank"&gt;here&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/01/12/435236.aspx" target="_blank"&gt;here&lt;/a&gt; and my own additions.          &lt;br /&gt;          &lt;br /&gt;Here you go:          &lt;br /&gt;          &lt;br /&gt;&lt;b&gt;ASP, WEB:&lt;/b&gt;          &lt;br /&gt;ASP.NET control graph visualizer - &lt;a href="http://odetocode.com/Blogs/scott/archive/2006/01/12/2726.aspx" target="_blank"&gt;http://odetocode.com/Blogs/scott/archive/2006/01/12/2726.aspx&lt;/a&gt;          &lt;br /&gt;ASP.NET Cache Visualizer - &lt;a href="http://blog.bretts.net/PermaLink,guid,07cd8437-862e-45c6-b24e-3a286fce1b66.aspx" target="_blank"&gt;http://blog.bretts.net/PermaLink,guid,07cd8437-862e-45c6-b24e-3a286fce1b66.aspx&lt;/a&gt;          &lt;br /&gt;ASP.NET Control Visualizer - &lt;a href="http://blog.bretts.net/PermaLink,guid,87d735a0-1592-4711-860f-8a1d29c9630f.aspx" target="_blank"&gt;http://blog.bretts.net/PermaLink,guid,87d735a0-1592-4711-860f-8a1d29c9630f.aspx&lt;/a&gt;          &lt;br /&gt;ASP.NET Visualizers - &lt;a href="http://weblogs.asp.net/scottgu/archive/2006/01/12/435236.aspx" target="_blank"&gt;http://weblogs.asp.net/scottgu/archive/2006/01/12/435236.aspx&lt;/a&gt;          &lt;br /&gt;WebVisualizers - &lt;a href="http://webvisualizers.codeplex.com/" target="_blank"&gt;http://webvisualizers.codeplex.com/&lt;/a&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;b&gt;Graphics &amp;amp; UI:&lt;/b&gt;          &lt;br /&gt;Bitmap Debugger Visualizer - &lt;a href="http://blogs.geekdojo.net/brian/archive/2006/08/06/bitmapvisualizer.aspx" target="_blank"&gt;http://blogs.geekdojo.net/brian/archive/2006/08/06/bitmapvisualizer.aspx&lt;/a&gt;          &lt;br /&gt;Graphics Debugger Visualizer - &lt;a href="http://www.codeproject.com/KB/macros/GraphicDebuggerVisualizer.aspx" target="_blank"&gt;http://www.codeproject.com/KB/macros/GraphicDebuggerVisualizer.aspx&lt;/a&gt;          &lt;br /&gt;ControlTree visualizer - &lt;a href="http://odetocode.com/Blogs/scott/archive/2006/01/12/2726.aspx" target="_blank"&gt;http://odetocode.com/Blogs/scott/archive/2006/01/12/2726.aspx&lt;/a&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;b&gt;DataSource &amp;amp; Data:&lt;/b&gt;          &lt;br /&gt;Data Debugger Visualizer - &lt;a href="http://www.codeproject.com/KB/grid/datadebuggervisualizer.aspx" target="_blank"&gt;http://www.codeproject.com/KB/grid/datadebuggervisualizer.aspx&lt;/a&gt;          &lt;br /&gt;Debugger Visualizer for Visual Studio - &lt;a href="http://coding-time.blogspot.com/2009/03/debugger-visualizer-for-visual-studio.html" target="_blank"&gt;http://coding-time.blogspot.com/2009/03/debugger-visualizer-for-visual-studio.html&lt;/a&gt;          &lt;br /&gt;Mole Visualizer For All Project Types - &lt;a href="http://www.codeproject.com/KB/macros/MoleForVisualStudio.aspx" target="_blank"&gt;http://www.codeproject.com/KB/macros/MoleForVisualStudio.aspx&lt;/a&gt;          &lt;br /&gt;&lt;a href="http://www.moleproject.com/" target="_blank"&gt;http://www.moleproject.com/&lt;/a&gt;          &lt;br /&gt;&lt;a href="http://joshsmithonwpf.wordpress.com/mole/" target="_blank"&gt;http://joshsmithonwpf.wordpress.com/mole/&lt;/a&gt;          &lt;br /&gt;Righthand Dataset Debugger Visualizer - &lt;a href="http://cs.rthand.com/blogs/blog_with_righthand/pages/Righthand-Dataset-Debugger-Visualizer.aspx" target="_blank"&gt;http://cs.rthand.com/blogs/blog_with_righthand/pages/Righthand-Dataset-Debugger-Visualizer.aspx&lt;/a&gt;          &lt;br /&gt;XML Visualizer - &lt;a href="http://blogs.conchango.com/howardvanrooijen/archive/2005/11/24/2424.aspx" target="_blank"&gt;http://blogs.conchango.com/howardvanrooijen/archive/2005/11/24/2424.aspx&lt;/a&gt;          &lt;br /&gt;IEnumerable Visualizer -          &lt;br /&gt;&lt;a href="http://rapiddevbookcode.codeplex.com/wikipage?title=EnumerableDebugVisualizer"&gt;http://rapiddevbookcode.codeplex.com/wikipage?title=EnumerableDebugVisualizer&lt;/a&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;b&gt;LINQ, DB:&lt;/b&gt;          &lt;br /&gt;DB Connection Visualizer - &lt;a href="http://dbvisualizer.codeplex.com/" target="_blank"&gt;http://dbvisualizer.codeplex.com/&lt;/a&gt;          &lt;br /&gt;LINQ Expressions DebuggerVisualizer - &lt;a href="http://www.manuelabadia.com/blog/PermaLink,guid,9160035f-490f-46bd-ab55-516b5c7545af.aspx"&gt;http://www.manuelabadia.com/blog/PermaLink,guid,9160035f-490f-46bd-ab55-516b5c7545af.aspx&lt;/a&gt;          &lt;br /&gt;LINQ Expression Tree Visualizer- &lt;a href="http://code.msdn.microsoft.com/csharpsamples" target="_blank"&gt;Look in VS 2008 Samples&lt;/a&gt;          &lt;br /&gt;LINQ to SQL Debug Visualizer - &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx" target="_blank"&gt;http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx&lt;/a&gt;          &lt;br /&gt;LINQ Query Visualizer - &lt;a href="http://msdn.microsoft.com/en-us/library/bb629285.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/bb629285.aspx&lt;/a&gt;          &lt;br /&gt;LINQ to SQL Visualizer - &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx" target="_blank"&gt;http://weblogs.asp.net/scottgu/archive/2007/07/31/linq-to-sql-debug-visualizer.aspx&lt;/a&gt;          &lt;br /&gt;LINQ to Entity Visualizer - &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/99468ece-689b-481c-868c-19e00e0a4e69"&gt;http://visualstudiogallery.msdn.microsoft.com/en-us/99468ece-689b-481c-868c-19e00e0a4e69&lt;/a&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;b&gt;System &amp;amp; miscellanea:&lt;/b&gt;          &lt;br /&gt;CAB Visualization - &lt;a href="http://www.codeplex.com/WorkItemVisualizer" target="_blank"&gt;http://www.codeplex.com/WorkItemVisualizer&lt;/a&gt;          &lt;br /&gt;GUID Debugger Visualizer - &lt;a href="http://devmatter.blogspot.com/2006/04/guid-debugger-visualizer-for-visual.html" target="_blank"&gt;http://devmatter.blogspot.com/2006/04/guid-debugger-visualizer-for-visual.html&lt;/a&gt;          &lt;br /&gt;IL Visualizer - &lt;a href="http://blogs.msdn.com/haibo_luo/archive/2006/11/16/take-two-il-visualizer.aspx" target="_blank"&gt;http://blogs.msdn.com/haibo_luo/archive/2006/11/16/take-two-il-visualizer.aspx&lt;/a&gt;          &lt;br /&gt;Improving Visual C++ Debugging - &lt;a href="http://www.codeguru.com/columns/kate/article.php/c15291" target="_blank"&gt;http://www.codeguru.com/columns/kate/article.php/c15291&lt;/a&gt;          &lt;br /&gt;PowerShell Debug Visualizer - &lt;a href="http://poshdebugvisualizer.codeplex.com/" target="_blank"&gt;http://poshdebugvisualizer.codeplex.com/&lt;/a&gt;          &lt;br /&gt;Regular Expression Visualizers - &lt;a href="http://weblogs.asp.net/rosherove/archive/2005/11/26/AnnoucingRegexKit10.aspx" target="_blank"&gt;http://weblogs.asp.net/rosherove/archive/2005/11/26/AnnoucingRegexKit10.aspx&lt;/a&gt;          &lt;br /&gt;Sharepoint debug visualizer - &lt;a href="http://spdv.codeplex.com/" target="_blank"&gt;http://spdv.codeplex.com/&lt;/a&gt;          &lt;br /&gt;WindowsIdentity Debugger Visualizer - &lt;a href="http://geekswithblogs.net/khanna/archive/2006/01/05/64903.aspx" target="_blank"&gt;http://geekswithblogs.net/khanna/archive/2006/01/05/64903.aspx&lt;/a&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;b&gt;WCF:&lt;/b&gt;          &lt;br /&gt;WCF Visualizers Tool - &lt;a href="http://wcfvisualizer.codeplex.com/" target="_blank"&gt;http://wcfvisualizer.codeplex.com/&lt;/a&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;b&gt;WPF:&lt;/b&gt;          &lt;br /&gt;WPF Tree Debugger Visualizer - &lt;a href="http://wpftreevisualizer.codeplex.com/" target="_blank"&gt;http://wpftreevisualizer.codeplex.com/&lt;/a&gt;          &lt;br /&gt;DepO WPF Dependency Object Visualizer - &lt;a href="http://www.codeplex.com/dathanliblikdepo" target="_blank"&gt;http://www.codeplex.com/dathanliblikdepo&lt;/a&gt;          &lt;br /&gt;WPF Debugger Visualizer - &lt;a href="http://blogs.oosterkamp.nl/blogs/thomas/archive/2009/03/11/wpf-debugger-visualizer.aspx" target="_blank"&gt;http://blogs.oosterkamp.nl/blogs/thomas/archive/2009/03/11/wpf-debugger-visualizer.aspx&lt;/a&gt;          &lt;br /&gt;XAML Debugger Visualizer for WPF - &lt;a href="http://www.codeproject.com/KB/WPF/XamlVisualizer.aspx" target="_blank"&gt;http://www.codeproject.com/KB/WPF/XamlVisualizer.aspx&lt;/a&gt;          &lt;br /&gt;Snoop - a WPF Utility - &lt;a href="http://blois.us/Snoop/" target="_blank"&gt;http://blois.us/Snoop/&lt;/a&gt;          &lt;br /&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;b&gt;XML:&lt;/b&gt;          &lt;br /&gt;Xml Visualizer v.2 - &lt;a href="http://www.codeplex.com/XmlVisualizer" target="_blank"&gt;http://www.codeplex.com/XmlVisualizer&lt;/a&gt;          &lt;br /&gt;Lithium XML Debugger Visualizer - &lt;a href="http://blogs.conchango.com/howardvanrooijen/archive/2005/04/11/1267.aspx" target="_blank"&gt;http://blogs.conchango.com/howardvanrooijen/archive/2005/04/11/1267.aspx&lt;/a&gt;          &lt;br /&gt;          &lt;br /&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt; &lt;span style="font-family: &amp;#39;times new roman&amp;#39;; font-size: 85%"&gt;   &lt;br /&gt;&lt;/span&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6570328885036553130?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6570328885036553130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6570328885036553130' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6570328885036553130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6570328885036553130'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/06/comprehensive-list-of-debugger.html' title='Comprehensive list of Debugger Visualizers for Visual Studio'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-4801147464836786429</id><published>2009-05-26T14:56:00.003+03:00</published><updated>2009-09-14T00:44:29.826+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Interesting'/><title type='text'>Symantic Search Engine - Wolfram Alpha</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Symantic search engine - Wolfram Alfa:&lt;br /&gt;&lt;a href="http://www.wolframalpha.com/" target="_blank"&gt;http://www.wolframalpha.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;table width="70%" border="0"&gt; &lt;tr&gt;&lt;td&gt;Space Station Info:&lt;br&gt;&lt;a href="http://1.bp.blogspot.com/_If2EaQD4ZgM/ShvXgxgcIcI/AAAAAAAABKE/8jM3ZHU_PJc/s1600-h/wolfram0.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 391px;" src="http://1.bp.blogspot.com/_If2EaQD4ZgM/ShvXgxgcIcI/AAAAAAAABKE/8jM3ZHU_PJc/s400/wolfram0.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5340098741223039426" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;br&gt;Comparison of Google and Microsoft stocks:&lt;br&gt;&lt;a href="http://3.bp.blogspot.com/_If2EaQD4ZgM/ShvX58aS7xI/AAAAAAAABKM/jkWI7t5KDxY/s1600-h/wolfram1.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 356px; height: 400px;" src="http://3.bp.blogspot.com/_If2EaQD4ZgM/ShvX58aS7xI/AAAAAAAABKM/jkWI7t5KDxY/s400/wolfram1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5340099173646790418" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;br&gt;Taylor series:&lt;br&gt;&lt;a href="http://4.bp.blogspot.com/_If2EaQD4ZgM/ShvYAJ32ssI/AAAAAAAABKU/MlcUGIPoL1M/s1600-h/wolfram2.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 386px; height: 400px;" src="http://4.bp.blogspot.com/_If2EaQD4ZgM/ShvYAJ32ssI/AAAAAAAABKU/MlcUGIPoL1M/s400/wolfram2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5340099280339645122" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt; &lt;/table&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-4801147464836786429?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/4801147464836786429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=4801147464836786429' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4801147464836786429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4801147464836786429'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/05/symantic-search-engine-wolfram-alpha.html' title='Symantic Search Engine - Wolfram Alpha'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_If2EaQD4ZgM/ShvXgxgcIcI/AAAAAAAABKE/8jM3ZHU_PJc/s72-c/wolfram0.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-282604311446219666</id><published>2009-05-26T11:02:00.006+03:00</published><updated>2009-09-14T00:46:41.224+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Interesting'/><category scheme='http://www.blogger.com/atom/ns#' term='Finance'/><title type='text'>Information Arbitrage with SkyGrid</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Link to the invitations (around 70 left right now) to join SkyGrid:&lt;br /&gt;&lt;a href="http://www.parkparadigm.com/2009/05/24/welcome-to-skygrid/" target="_blank"&gt;http://www.parkparadigm.com/2009/05/24/welcome-to-skygrid/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"SkyGrid filters the real-time web with high quality financial content from trusted sources.  Founded in 2005, SkyGrid creates innovative technology that lets people have a simple way to see what information is having the most impact on the financial world at every moment of every day. "&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;Post-mortem written by the Roger Ehrenberg - co-founder of Monitor110 - company that was developing similar product. Really worth reading. Look for 7 anti-amendments:&lt;br /&gt;&lt;a href="http://www.businessinsider.com/2008/7/monitor110-a-post-mortem/" target="_blank"&gt;http://www.businessinsider.com/2008/7/monitor110-a-post-mortem/&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-282604311446219666?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/282604311446219666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=282604311446219666' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/282604311446219666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/282604311446219666'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/05/information-arbitrage-with-skygrid.html' title='Information Arbitrage with SkyGrid'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-778361847214433089</id><published>2009-05-24T16:39:00.002+03:00</published><updated>2009-05-24T16:55:15.222+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Finance'/><title type='text'>Bear market durations</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Bear market durations (from the stock market peak to the lowest point):&lt;br /&gt;&lt;table width="70%" border="1"&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;div align="center"&gt;&lt;b&gt;Period&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div align="center"&gt;&lt;b&gt;From&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div align="center"&gt;&lt;b&gt;Till&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;td&gt;&lt;div align="center"&gt;&lt;b&gt;Duration (months)&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Great Depression&lt;/td&gt;&lt;td&gt;August 1929&lt;/td&gt;&lt;td&gt;June 1932&lt;/td&gt;&lt;td&gt;35&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Dot Com Bubble&lt;/td&gt;&lt;td&gt;March 2000&lt;/td&gt;&lt;td&gt;October 2002&lt;/td&gt;&lt;td&gt;32&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Financial Meltdown&lt;/td&gt;&lt;td&gt;September 2007&lt;/td&gt;&lt;td&gt;Now is May 2009...&lt;/td&gt;&lt;td&gt;22 months and rolling down...&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-778361847214433089?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/778361847214433089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=778361847214433089' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/778361847214433089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/778361847214433089'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/05/bear-market-durations.html' title='Bear market durations'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1636983213813609622</id><published>2009-05-04T00:41:00.008+03:00</published><updated>2009-05-04T01:07:01.583+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Finance'/><category scheme='http://www.blogger.com/atom/ns#' term='Misc'/><title type='text'>"Good Enough" Counterrevolution</title><content type='html'>&lt;span style="font-family: courier new;font-family:times new roman;font-size:100%;"  &gt;&lt;br /&gt;&lt;table border="1" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;This post is essentially my comment to the &lt;a href="http://illusionofprosperity.blogspot.com/2009/05/good-enough-revolution.html"&gt;"Good-Enough" Revolution&lt;/a&gt; post which I think worthwhile to be turned into separate article. Besides - I didn't wrote anything non-technical for a long time... "Good-Enough" Revolution stands that many contemporary goods are "good enough" to be used and hence consumer often do not have motivation to buy a new version of the same good (e.g. man using Windows XP wouldn't go for Window Vista as XP is good enough for most of every day tasks, like e-mail, Internet or editing some office documents). While this observation is absolutely correct I think that important point is missed - contemporary goods are deliberately created not to be durable to compel consumer to, well, consume.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A silent "Good-Enough" Counterrevolution is in its high. Producers do not create goods that are designed to last any more. Almost anything you are buying nowadays is deliberately designed to last for a short, programmed time and then broke. I think that the only consumer strategy to deal with it is to buy the cheapest version of an appliance you need - it would usually serve you the same time as its high-end version, while cost a half of it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Your washing machine served you for 10 years? – I bet that a new one would not stand for more than 2-3 years. Your old electric kettle worked for 5-7 years? - Buy a new one and it would leak in a year or so. Talk to guys who are working in electronics service/repair centers and they would tell you that stuff nowadays is PROGRAMMED to work for a predefined time and then broke. A friend of mine who works in a big car repairs firm told me that every car accumulator that occasionally served significantly more than a guaranty period is sent to the lab for examination to check out why did it lasted so long and didn’t broke. An observation about "good enough" was correct, but it's not applicable to the new goods - manufacturers are not interested in you wiping yourself with the same towels till your golden years. No, you should buy towels, use them and then buy new ones. We all are squirrels that have to rotate wheels of economy. No one asks squirrel whether it wants to get our of a squirrel-wheel marathon, right?&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1636983213813609622?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1636983213813609622/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1636983213813609622' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1636983213813609622'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1636983213813609622'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/05/good-enough-counterrevolution.html' title='&quot;Good Enough&quot; Counterrevolution'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5973893187383814772</id><published>2009-04-26T11:39:00.003+03:00</published><updated>2009-04-26T11:44:13.737+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>Manually scheduling Check Disk upon next computer restart</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Set following value in &lt;strong&gt;&lt;em&gt;BootExecute&lt;/em&gt;&lt;/strong&gt; key of &lt;strong&gt;&lt;span style="color:#33ccff;"&gt;[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager]&lt;/span&gt;&lt;/strong&gt; registry entry:&lt;/p&gt;&lt;p&gt;autocheck autochk /r \??\C:autocheck autochk /r \??\D:autocheck autochk *&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5973893187383814772?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5973893187383814772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5973893187383814772' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5973893187383814772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5973893187383814772'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/04/manually-scheduling-check-disk-upon.html' title='Manually scheduling Check Disk upon next computer restart'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1566693267159072107</id><published>2009-04-23T16:40:00.003+03:00</published><updated>2009-06-17T15:23:54.631+03:00</updated><title type='text'>How to uninstall an assembly installed by MSI from GAC</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;If you getting message "Assembly 'assemblyname' could not be uninstalled&lt;br /&gt;because it is required by other applications." while trying to uninstall an assembly from GAC - here is potential resolution:&lt;br /&gt;&lt;a href="http://bytes.com/groups/net/47733-unable-remove-any-assembly-gac"&gt;http://bytes.com/groups/net/47733-unable-remove-any-assembly-gac&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1566693267159072107?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1566693267159072107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1566693267159072107' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1566693267159072107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1566693267159072107'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/04/how-to-uninstall-assembly-installed-by.html' title='How to uninstall an assembly installed by MSI from GAC'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-2569034256221886353</id><published>2009-02-17T12:25:00.004+02:00</published><updated>2009-02-17T12:29:16.842+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Utility'/><title type='text'>Sort Team System query results by multiple fields</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;You can sort Team System query results by by multiple fields at once by holding the Shift button, while clicking on the desired headers. You can click a header twice in order to change the sort direction.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_If2EaQD4ZgM/SZqRQFhYgLI/AAAAAAAABJM/TzI8QPGhhLM/s1600-h/TeamSystemSortByManyFields.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 140px;" src="http://1.bp.blogspot.com/_If2EaQD4ZgM/SZqRQFhYgLI/AAAAAAAABJM/TzI8QPGhhLM/s400/TeamSystemSortByManyFields.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5303711216728309938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-2569034256221886353?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/2569034256221886353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=2569034256221886353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2569034256221886353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2569034256221886353'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/02/sort-team-system-query-results-by.html' title='Sort Team System query results by multiple fields'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_If2EaQD4ZgM/SZqRQFhYgLI/AAAAAAAABJM/TzI8QPGhhLM/s72-c/TeamSystemSortByManyFields.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-3984051668501712031</id><published>2009-02-17T12:04:00.001+02:00</published><updated>2009-02-17T12:15:33.633+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Finance'/><title type='text'>Today vs Great Depression</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Two interesting charts I've came around:&lt;table width="70%" border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;br /&gt;&lt;td&gt;&lt;img title="Today vs Great Depression" src="http://howardlindzon.com/wp-content/uploads/2009/02/today_vs_greatdepression.jpg" align="left" border="0" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;img title="Worst Decade Ever" src="http://graphics8.nytimes.com/images/2009/02/06/business/0207-biz-CHARTSweb.gif" align="left" border="0" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;br /&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-3984051668501712031?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/3984051668501712031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=3984051668501712031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3984051668501712031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3984051668501712031'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/02/today-vs-great-depression.html' title='Today vs Great Depression'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-3699059501945979902</id><published>2009-02-04T15:47:00.005+02:00</published><updated>2009-02-04T18:20:06.391+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Silverlight'/><title type='text'>Hard Rock Memorabilia Easter Egg</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;There is a nice Easter Egg in &lt;a href="http://www.microsoft.com/presspass/features/2008/mar08/03-05HardRock.mspx"&gt;Silverlight 2 Hard Rock Memorabilia &lt;/a&gt;application, demonstrating power of the &lt;a href="http://en.wikipedia.org/wiki/Deep_Zoom"&gt;Deep Zoom&lt;/a&gt; technology. Here is how it works: open the Memorabilia &lt;a href="http://memorabilia.hardrock.com/"&gt;Home Page&lt;/a&gt; and press "V". You are photo of the Beatles figures now. Start to zoom-out - wow, the photo is inside of framework, which is on the ad' desk on the Hard Rock Café, which is on the NY street, which is a postcard, which is one of the tiles on a book stamp, which is ..............................&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-3699059501945979902?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/3699059501945979902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=3699059501945979902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3699059501945979902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3699059501945979902'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/02/hard-rock-memorabilia-easter-egg.html' title='Hard Rock Memorabilia Easter Egg'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-6214463049036064914</id><published>2009-01-12T13:20:00.008+02:00</published><updated>2009-07-23T11:06:31.260+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>Top N Firefox Addons/Extension</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;table width="100%" border="1"&gt;&lt;br /&gt;&lt;tbody&gt;&lt;br /&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;p&gt;&lt;i&gt;&lt;font color="#C0C0C0"&gt;Updated: 23/7/2009&lt;/font&gt;&lt;/i&gt;&lt;br&gt;&lt;br /&gt;First of all - why Top N? Well, it's just cause I'm completely fatigued by all those "Top 10..", "Top 50..", "Best everyday..." and similar that became ubiquitous in the blog space.&lt;/p&gt;&lt;p&gt;So here is just the list of &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;FireFox&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;addons&lt;/span&gt; that I found to be &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;useful&lt;/span&gt; for myself and use on everyday basis.&lt;br /&gt;I basically gonna use this post as a book-keeping entry to myself.&lt;/p&gt;&lt;p&gt;Here it goes:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1865"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;Adblock&lt;/span&gt; Plus&lt;/a&gt; - cleans out most of annoying ads from web pages you &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;visiting&lt;/span&gt;. Supports update of cleaning rules set (check it in its options). Enables to create your own blocking rules for the stuff you don't want to see.&lt;br /&gt;&lt;img title="Adblock Plus" src="https://addons.mozilla.org/en-US/firefox/images/p/13530/1177025970" border="0" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/6349"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;BugMeNot&lt;/span&gt; &lt;/a&gt;- automatically &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;login&lt;/span&gt; to forums and site, for which you were to lazy to pass tedious registration process using infamous &lt;a href="http://www.bugmenot.com/"&gt;http://www.bugmenot.com/&lt;/a&gt; site.&lt;br /&gt;&lt;img title="BugMeNot" src="https://addons.mozilla.org/en-US/firefox/images/t/18240/1200551465" border="0" /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/26" target="_blank"&gt;Download &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;Statusbar&lt;/span&gt;&lt;/a&gt; - see download status and manage your downloads from a tidy status bar, rather that using default download window.&lt;br /&gt;&lt;img title="Download Statusbar" src="https://addons.mozilla.org/en-US/firefox/images/p/9395/1174607013" border="0" /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2464"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;FoxyProxy&lt;/span&gt;&lt;/a&gt; - easy proxies management.&lt;br /&gt;&lt;img title="FoxyProxyt" src="https://addons.mozilla.org/en-US/firefox/images/t/20062/1208743619" border="0" /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3006" target="_blank"&gt;Video Download Helper&lt;/a&gt; - &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_9"&gt;instantaneously&lt;/span&gt; download videos displayed on a web-page you &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_10"&gt;visit&lt;/span&gt; (e.g. &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_11"&gt;YouTube&lt;/span&gt;).&lt;br /&gt;&lt;img title="Video Download Helpe" src="https://addons.mozilla.org/en-US/firefox/images/t/25993/1221482458" border="0" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/220" target="_blank"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;FlashGot&lt;/span&gt;&lt;/a&gt; - &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_13"&gt;instantaneously&lt;/span&gt; integrate your favourite downloads manager with &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_14"&gt;FireFox&lt;/span&gt;.&lt;br /&gt;&lt;img title="FlashGot" src="https://addons.mozilla.org/en-US/firefox/images/t/1503/943948800" border="0" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2410" target="_blank"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;Foxmarks&lt;/span&gt; Bookmark &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Synchronizer&lt;/span&gt;&lt;/a&gt; - this one is especially cool. Synchronize your bookmarks between your computers (work/home/laptop/...). Don forget to set HTTPS as a default communication protocol in option to secure your information!&lt;br /&gt;&lt;img title="Foxmarks Bookmark Synchronizer" src="https://addons.mozilla.org/en-US/firefox/images/t/19473/1206748320" border="0" /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/173" target="_blank"&gt;Gmail Notifier&lt;/a&gt; - get notifications on new e-mails in your Gmail account, check mails and easily switch between few Gmail accounts.&lt;br /&gt;&lt;img title="Gmail Notifier" src="https://addons.mozilla.org/en-US/firefox/images/t/21308/1212269732" border="0" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1419" target="_blank"&gt;IE Tab&lt;/a&gt; - open sites in &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_17"&gt;FireFox&lt;/span&gt;-hosted IE window by one click. Setup sites to be automatically opened in embedded IE tab.&lt;br /&gt;&lt;img title="IE Tab" src="https://addons.mozilla.org/en-US/firefox/images/t/2895/943948800" border="0" /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1512" target="_blank"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;LinkedIn&lt;/span&gt; Companion for &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_19"&gt;FireFox&lt;/span&gt;&lt;/a&gt; - manage you Linked In account and automatically get job insiders in your network for the site you've visited.&lt;br /&gt;&lt;img title="LinkedIn Companion for Firefox" src="https://addons.mozilla.org/en-US/firefox/images/t/9277/943948800" border="0" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/722" target="_blank"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;NoScript&lt;/span&gt;&lt;/a&gt;- disable/enable JavaScript per site or globally for better security.&lt;br /&gt;&lt;img title="NoScript" src="https://addons.mozilla.org/en-US/firefox/images/t/820/943948800" border="0" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/636" target="_blank"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;PDF&lt;/span&gt; Download&lt;/a&gt; - whenever you click link to a &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;PDF&lt;/span&gt; document - you may choose to either Save, Open or Open as HTML.&lt;br /&gt;&lt;img title="PDF Download" src="https://addons.mozilla.org/en-US/firefox/images/t/23701/1216621818" border="0" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1122" target="_blank"&gt;Tab Mix Plus&lt;/a&gt; - improved tabs management + possibility to save sessions/lists of currently open tabs.&lt;br /&gt;&lt;img title="Tab Mix Plus" src="https://addons.mozilla.org/en-US/firefox/images/t/4307/943948800" border="0" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.ghostery.com/" target="_blank"&gt;Ghostery&lt;/a&gt; - show list of web trackers used by site you visiting.&lt;br /&gt;&lt;img src="http://cache.ghostery.com/media/img/ghostery-browser-screenshot-500x238.gif" title="Ghostery" border="0"&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6214463049036064914?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6214463049036064914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6214463049036064914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6214463049036064914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6214463049036064914'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2009/01/top-n-firefox-addonsextension.html' title='Top N Firefox Addons/Extension'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-7105580901234990712</id><published>2008-12-03T17:11:00.001+02:00</published><updated>2008-12-03T17:12:50.497+02:00</updated><title type='text'>No sound in Flash over Citrix connection</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Here are some tips that may help:&lt;br /&gt;1) Try uninstalling Flash, logon with a new administrator account that's never been used, switch to install mode (change user /install), install flash, launch and test flash, switch to execute mode (change user /execute).&lt;br /&gt;2) Check that you have 'Enable Sound' on ICA Client and on server-side.&lt;br /&gt;3) Uninstall PSE450R02W2K3040 Windows Update&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-7105580901234990712?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/7105580901234990712/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=7105580901234990712' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7105580901234990712'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7105580901234990712'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/12/no-sound-in-flash-over-citrix.html' title='No sound in Flash over Citrix connection'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-843451615099992547</id><published>2008-12-03T16:34:00.001+02:00</published><updated>2008-12-03T17:08:47.965+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Finance'/><title type='text'>Very interesting interview with Jeremy Grantham</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/xU3lgYAwBio&amp;hl=en&amp;fs=1&amp;rel=0"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/xU3lgYAwBio&amp;hl=en&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-843451615099992547?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/843451615099992547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=843451615099992547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/843451615099992547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/843451615099992547'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/12/very-interesting-interview-with-jeremy.html' title='Very interesting interview with Jeremy Grantham'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-2492616626868900540</id><published>2008-12-03T16:05:00.003+02:00</published><updated>2008-12-03T16:25:13.585+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>How to specify maxJsonLength property in web.config</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;If you're getting the following exception while using JavaScriptSerializer:&lt;br /&gt;"Error during serialization or deserialization using the JSON &lt;b&gt;JavaScriptSerializer&lt;/b&gt;. The length of the string exceeds the value set on the maxJsonLength property." - you may enlarge the default &lt;b&gt;maxJsonLength&lt;/b&gt; value in web.config:&lt;br /&gt;&lt;hr&gt;&lt;b&gt;&amp;#60system.web.extensions&amp;#62&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &amp;#60scripting&amp;#62&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;      &amp;#60webServices&amp;#62&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;        &amp;#60jsonSerialization maxJsonLength="123456"&amp;#62&amp;#60/jsonSerialization&amp;#62&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;      &amp;#60/webServices&amp;#62&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;    &amp;#60/scripting&amp;#62&lt;br /&gt;&amp;#60/system.web.extensions&amp;#62&lt;/b&gt;&lt;br /&gt;&lt;hr&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-2492616626868900540?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/2492616626868900540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=2492616626868900540' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2492616626868900540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2492616626868900540'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/12/how-to-specify-maxjsonlength-property.html' title='How to specify maxJsonLength property in web.config'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5836842976931635640</id><published>2008-11-26T00:19:00.003+02:00</published><updated>2008-12-03T16:26:07.678+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Reading ini-file from C# - used in Open Simulator</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;My &lt;a href="alexpinsker.blogspot.com/2005/12/reading-ini-file-from-c_113432097333021549.html"&gt;class&lt;/a&gt; for reading settings from old-style .ini files using C# was &lt;a href="http://opensimulator.org/cgi-bin/viewcvs.cgi/branches/Sugilite/OpenSim/Framework/Data/IniConfig.cs?revision=1128&amp;view=markup&amp;pathrev=1128"&gt;used&lt;/a&gt; in &lt;a href="http://opensimulator.org/wiki/Main_Page"&gt;Open Simulator&lt;/a&gt;.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5836842976931635640?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5836842976931635640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5836842976931635640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5836842976931635640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5836842976931635640'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/11/reading-ini-file-from-c-used-in-open.html' title='Reading ini-file from C# - used in Open Simulator'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-7483411902582080204</id><published>2008-11-26T00:08:00.002+02:00</published><updated>2008-11-26T00:12:48.481+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Finance'/><category scheme='http://www.blogger.com/atom/ns#' term='Humor'/><title type='text'>Над финансовой системой кризис тучи собирает.</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;(Really good black humor - in Russian).&lt;br /&gt;&lt;br /&gt;Над финансовой системой кризис тучи собирает.&lt;br /&gt;Между долларом и евро гордо реет Неликвидность, конфискации подобна.&lt;br /&gt;То обрушивая рынки, то зашкаливая ставки,&lt;br /&gt;Неликвидность торжествует, -&lt;br /&gt;спекулянты чуют гибель в её воплях громогласных.&lt;br /&gt;&lt;br /&gt;В этом стоне - жажда денег!&lt;br /&gt;Обрушенье котировок, экономики паденье и уверенность в банкротстве слышат рынки в этом крике.&lt;br /&gt;Глупый Минфин перед бурей робко мечется по рынкам,&lt;br /&gt;в девальвации готовый спрятать страх перед дефолтом.&lt;br /&gt;&lt;br /&gt;Олигархи тоже стонут, - олигархам недоступно наслажденье дерзким рынком, чудной рыночной стихией: разоренье их пугает.&lt;br /&gt;Все мрачней и ниже индекс опускается над биржей, и бегут прочь&lt;br /&gt;капиталы, в бездну сбрасывая курсы.&lt;br /&gt;&lt;br /&gt;Гром грохочет. Все сверкает. Это рухнул "Леман Бразерс".&lt;br /&gt;В пене гнева конгрессмены принимают план спасенья.&lt;br /&gt;И с размаху в дикой злобе миллиарды выделяют для спасенья "Голдман Сакса".&lt;br /&gt;&lt;br /&gt;Неликвидность с криком реет, черной молнии подобна, как стрела пронзает биржи, банки в бездну отправляя.&lt;br /&gt;Кризис носится, как демон, - гордый, черный демон рынка, - и смеется,&lt;br /&gt;и хохочет...&lt;br /&gt;Над банкирами смеется, над правительством хохочет!&lt;br /&gt;&lt;br /&gt;В общем стоне "волатильность!" демон зрит давно усталость.&lt;br /&gt;Он уверен: центробанки не спасут от краха биржи.&lt;br /&gt;Пресса воет... Дети плачут. И инвесторы рыдают...&lt;br /&gt;Красным пламенем пылают биржевые котировки. И сгорают триллионы: -&lt;br /&gt;Кризис! Скоро грянет кризис!&lt;br /&gt;&lt;br /&gt;Это смело и свободно реет дух Стихии Рынка над ревущим гневно миром;&lt;br /&gt;то кричит пророк победы: - Пусть сильнее грянет КРИЗИС!&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-7483411902582080204?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/7483411902582080204/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=7483411902582080204' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7483411902582080204'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7483411902582080204'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/11/blog-post.html' title='Над финансовой системой кризис тучи собирает.'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-7683193332080532051</id><published>2008-11-24T15:44:00.003+02:00</published><updated>2008-11-26T00:07:13.529+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Link: Best Practices for Production ASP.NET</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Great article on &lt;a href="http://daptivate.com/archive/2008/02/12/top-10-best-practices-for-production-asp-net-applications.aspx"&gt;Best Practices for Production ASP.NET&lt;/a&gt;...&lt;br /&gt;Important addition to item &lt;strong&gt;4&lt;/strong&gt; - if ScriptMode of ScriptManageer is set to "Auto" – then setting deployment retail to "true" would also switch ScriptMode to Release, i.e. release versions of AJAX scripts would be loaded in your page. (I think the main difference is that there is no parameters validation in release version).&lt;br /&gt;The seting is defined in machine.config.&lt;br /&gt;&lt;td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-7683193332080532051?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/7683193332080532051/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=7683193332080532051' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7683193332080532051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7683193332080532051'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/11/link-best-practices-for-production.html' title='Link: Best Practices for Production ASP.NET'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-7129636055643846386</id><published>2008-11-16T17:51:00.003+02:00</published><updated>2008-11-26T00:05:47.206+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Finance'/><title type='text'>Joseph de la Vega on credit crunch</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Joseph_de_la_Vega"&gt;Joseph de la Vega&lt;/a&gt; was a Portuguese Jewish author who at first described practices of stock exchange in Amsterdam (including usage of derivatives). He came to his own financial fiasco in crisis of 1688. Following to &lt;a href="http://www.wilmott.com/blogs/collector/index.cfm/2008/10/11/Labyrinth-of-labyrinths"&gt;this blog&lt;/a&gt; - I want to re-quote him…&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Joseph de la Vega, 1688: "This year too was a year of confusion for many unlucky speculators declared in one voice that the present crisis was a labyrinth of labyrinths, the terror of terrors, the confusion of confusions...".&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Doesn't that mean that this 2008 year wasn't a labyrinth of labyrinths in a backward perspective? I promise to return to it in 1 year.&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-7129636055643846386?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/7129636055643846386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=7129636055643846386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7129636055643846386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7129636055643846386'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/11/joseph-de-la-vega-on-credit-crunch.html' title='Joseph de la Vega on credit crunch'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-3292973631310116990</id><published>2008-08-28T12:18:00.004+03:00</published><updated>2009-03-24T12:25:10.410+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>Enable XSS Detect in VS 2008</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;XSS Detect is a code-analysis tool proposed, as suggested by its name, for reveal of XSS vulnerabilities in web-applications.&lt;br /&gt;It's developed by MS ACE Team and could be downloaded here: &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=19a9e348-bdb9-45b3-a1b7-44ccdcb7cfbe&amp;displaylang=en" title="download XSS Detect" target="_blank"&gt;XSS Detect&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The problem is that out of the box it works in VS 2005 only. &lt;a href="http://blogs.msdn.com/ace_team/archive/2007/12/11/xssdetect-faq.aspx" title="" target="_blank"&gt;Here&lt;/a&gt; is how to enable it in Visual Studio 2008:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open %USERPROFILE%\Application Data\Microsoft\MSEnvShared\Addins&lt;/li&gt;&lt;br /&gt;&lt;li&gt; Insert &amp;lt Version &amp;gt 9.0 &amp;lt /Version &amp;gt in HostApplication section&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-3292973631310116990?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/3292973631310116990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=3292973631310116990' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3292973631310116990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3292973631310116990'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/08/enable-xss-detect-in-vs-2008.html' title='Enable XSS Detect in VS 2008'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-8807637862908330061</id><published>2008-08-28T12:01:00.003+03:00</published><updated>2008-08-28T12:06:16.745+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>Preventing XSS in server code in .aspx files using AntiXss</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Preventing XSS in server code in .aspx files using AntiXss:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;font-size:85%;"&gt;_someID=&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;lt%=Microsoft.Security.Application.AntiXss.HtmlEncode(Request.Form["someID"])%&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note that you need to specify fully qualified assembly name for the AntiXss.&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-8807637862908330061?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/8807637862908330061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=8807637862908330061' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8807637862908330061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8807637862908330061'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/08/preventing-xss-in-server-code-in-aspx.html' title='Preventing XSS in server code in .aspx files using AntiXss'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-5229088047832533226</id><published>2008-08-24T16:31:00.002+03:00</published><updated>2008-08-24T16:35:12.818+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>Pixel Ruler</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Here is great (and free) tool to measure sizes of your UI elements - &lt;a href="http://www.mioplanet.com/products/pixelruler/" title="Pixel Ruler" target="_blank"&gt;Pixel Ruler&lt;/a&gt;&lt;br /&gt;&lt;img src="http://www.mioplanet.com/products/pixelruler/preview.jpg" align="left" title="Pixel Ruler" border="0"&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-5229088047832533226?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/5229088047832533226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=5229088047832533226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5229088047832533226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/5229088047832533226'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/08/pixel-ruler.html' title='Pixel Ruler'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-2252971988555108704</id><published>2008-08-04T10:45:00.007+03:00</published><updated>2008-08-06T22:33:47.836+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tools'/><title type='text'>Viewing log4net files in notepad++</title><content type='html'>&lt;span style="font-family:times new roman;font-size:80%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;If you're a frequent user of &lt;strong&gt;notepad++&lt;/strong&gt; and &lt;strong&gt;log4net&lt;/strong&gt; - here is a nice trick I've discovered, that brings a synergism between two. As you know - &lt;strong&gt;notepad++&lt;/strong&gt; has an option to highlight syntax for subset of supported languages. It is either applied automatically, based on the file extension or could be chosen manually from the &lt;em&gt;Language&lt;/em&gt; menu.&lt;br /&gt;And here is the trick - just select VB language for opened log4net file (&amp;#60;Alt&amp;#62;+L,V,Enter) and you have a very readable syntactic highlights.&lt;br /&gt;&lt;br /&gt;&lt;img title="log4net file open in notepad++" src="http://lh4.ggpht.com/Alexander.Pinsker/SJb77gQX9tI/AAAAAAAAADw/IFE_IL80amQ/log4net%20in%20notepadpp.JPG?imgmax=912" width="75%" align="left" border="0" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-2252971988555108704?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/2252971988555108704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=2252971988555108704' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2252971988555108704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2252971988555108704'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/08/viewing-log4net-files-in-notepad.html' title='Viewing log4net files in notepad++'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/Alexander.Pinsker/SJb77gQX9tI/AAAAAAAAADw/IFE_IL80amQ/s72-c/log4net%20in%20notepadpp.JPG?imgmax=912' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-7842181117171779461</id><published>2008-07-22T15:21:00.005+03:00</published><updated>2008-07-22T16:51:03.580+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2008'/><title type='text'>SQL Tips: Using MERGE SQL statement in SQL 2008</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;i&gt;... And still one more from the same generous source ...&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;SQL Server &lt;b&gt;&lt;font color="#FF8000"&gt;2008's&lt;/font&gt;&lt;/b&gt; new &lt;b&gt;&lt;font color="#FF8000"&gt;MERGE&lt;/font&gt;&lt;/b&gt; statement allows you to &lt;strong&gt;insert, update, or delete data based on certain join conditions in the same statement.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;font color="#FF8000"&gt;MERGE &lt;/font&gt;&lt;/b&gt;SalesArchive AS SA&lt;br /&gt;USING (&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspSELECT&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspCustomerID,&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspLoadDate = MIN(CONVERT(VARCHAR(8), GETDATE(), 112)),&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspTotalSalesAmount = SUM(SaleAmount),&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspTotalSalesCount = COUNT(*)&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspFROM SalesFeed&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspGROUP BY CustomerID&lt;br /&gt;) AS SalesFeedCTE (CustomerID, LoadDate, TotalSalesAmount, TotalSalesCount)&lt;br /&gt;   ON (SA.CustomerID = SalesFeedCTE.CustomerID AND SA.SalesDate = SalesFeedCTE.LoadDate )&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;font color="#FF8000"&gt;WHEN NOT MATCHED THEN&lt;/font&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;font color="#FF8000"&gt;INSERT&lt;/font&gt;&lt;/b&gt; (CustomerID, SalesDate, TotalSalesAmount, TotalSalesCount, CreationDate, UpdatedDate)&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspVALUES( SalesFeedCTE.CustomerID, SalesFeedCTE.LoadDate, SalesFeedCTE.TotalSalesAmount, SalesFeedCTE.TotalSalesCount, GETDATE(), GETDATE())&lt;br /&gt;&lt;b&gt;&lt;font color="#FF8000"&gt;WHEN MATCHED THEN&lt;br /&gt;UPDATE&lt;/font&gt;&lt;/b&gt;&lt;br /&gt;&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspSET SA.TotalSalesAmount = SA.TotalSalesAmount + SalesFeedCTE.TotalSalesAmount,&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;nbspSA.TotalSalesCount = SA.TotalSalesCount + SalesFeedCTE.TotalSalesCount,&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;nbspSA.UpdatedDate = GETDATE();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Also, there is a new ability to pass a table variable to the stored procedures:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;font color="#FF8000"&gt;DECLARE&lt;/font&gt;&lt;/b&gt; @MyTable &lt;b&gt;&lt;font color="#FF8000"&gt;TABLE&lt;/font&gt;&lt;/b&gt; (Col1 INT, Col2 Varchar(100))&lt;br /&gt;&lt;b&gt;&lt;font color="#FF8000"&gt;EXEC&lt;/font&gt;&lt;/b&gt; MySP @Par1 = @MyTable &lt;b&gt;&lt;font color="#FF8000"&gt;OUTPUT&lt;/font&gt;&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-7842181117171779461?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/7842181117171779461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=7842181117171779461' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7842181117171779461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/7842181117171779461'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/07/using-merge-sql-statement-in-sql-2008.html' title='SQL Tips: Using MERGE SQL statement in SQL 2008'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-2299363468983684790</id><published>2008-07-14T15:54:00.003+03:00</published><updated>2008-07-14T17:34:31.953+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><title type='text'>SQL Tips: Using Regular Expressions in SQL Query</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;One more; courtesy of our greate DBA - K. Fridman:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;DECLARE&lt;/span&gt;&lt;span style="font-size:85%;"&gt; @RegExp &lt;/span&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;VARCHAR&lt;/span&gt;&lt;span style="font-size:85%;color:#808080;"&gt;(&lt;/span&gt;&lt;span style="font-size:85%;"&gt;100&lt;/span&gt;&lt;span style="font-size:85%;color:#808080;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;SET&lt;/span&gt;&lt;span style="font-size:85%;"&gt; @RegExp &lt;/span&gt;&lt;span style="font-size:85%;color:#808080;"&gt;= &lt;/span&gt;&lt;span style="font-size:85%;color:#ff0000;"&gt;'%[^a-zA-Z0-9._-]%'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;SELECT &lt;span style="color:#000000;"&gt;*&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color:#0000ff;"&gt;FROM&lt;/span&gt; Clients&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;WHERE &lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;PATINDEX&lt;/span&gt;&lt;span style="font-size:85%;color:#808080;"&gt;(&lt;/span&gt;&lt;span style="font-size:85%;"&gt;@RegExp&lt;/span&gt;&lt;span style="font-size:85%;color:#808080;"&gt;,&lt;/span&gt;&lt;span style="font-size:85%;"&gt; UserName&lt;/span&gt;&lt;span style="font-size:85%;color:#808080;"&gt;) &lt;span style="font-size:85%;color:#808080;"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt; 0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-2299363468983684790?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/2299363468983684790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=2299363468983684790' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2299363468983684790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/2299363468983684790'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/07/sql-tips-using-regular-expressions-in.html' title='SQL Tips: Using Regular Expressions in SQL Query'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-8753797884801584110</id><published>2008-07-14T15:46:00.003+03:00</published><updated>2008-07-14T17:24:34.769+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><title type='text'>SQL Tips: Search String In All SP's</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;This is nice one; courtesy of our great DBA - Kostya Fridman:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;SELECT &lt;span style="font-size:85%;color:#0000ff;"&gt;name&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#808080;"&gt;, &lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;OBJECT_DEFINITION&lt;/span&gt;&lt;span style="font-size:85%;color:#808080;"&gt;(&lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;object_id&lt;/span&gt;&lt;span style="font-size:85%;color:#808080;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;FROM &lt;/span&gt;&lt;span style="font-size:85%;color:#008000;"&gt;sys.procedures&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;color:#0000ff;"&gt;WHERE &lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;OBJECT_DEFINITION&lt;/span&gt;&lt;span style="font-size:85%;color:#808080;"&gt;(&lt;/span&gt;&lt;span style="font-size:85%;color:#ff00ff;"&gt;object_id&lt;/span&gt;&lt;span style="font-size:85%;color:#808080;"&gt;) &lt;span style="font-size:85%;color:#0000ff;"&gt;LIKE &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;color:#ff0000;"&gt;'%Search String%'&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-8753797884801584110?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/8753797884801584110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=8753797884801584110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8753797884801584110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/8753797884801584110'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/07/sql-tips-search-string-in-all-sps.html' title='SQL Tips: Search String In All SP&apos;s'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-4197758893281454571</id><published>2008-06-16T10:06:00.003+03:00</published><updated>2008-06-16T11:08:43.976+03:00</updated><title type='text'>How to configure Excel to work with IIS/ASP.NET</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;Detailed instruction on how to configure Excel to work with IIS/ASP.NET:&lt;/p&gt;&lt;p&gt;&lt;a href="http://blog.crowe.co.nz/archive/2006/03/02/589.aspx"&gt;http://blog.crowe.co.nz/archive/2006/03/02/589.aspx&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-4197758893281454571?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/4197758893281454571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=4197758893281454571' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4197758893281454571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4197758893281454571'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/06/how-to-configure-excel-to-work-with.html' title='How to configure Excel to work with IIS/ASP.NET'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-6166518351339133429</id><published>2008-06-15T18:23:00.003+03:00</published><updated>2009-05-13T13:12:45.972+03:00</updated><title type='text'>touch command for DOS/command line</title><content type='html'>&lt;span style=";font-family:times new roman;font-size:85%;"  &gt;&lt;br /&gt;&lt;table border="1" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Following command would simulate UNIX &lt;em&gt;touch&lt;/em&gt; command in DOS:&lt;br /&gt;&lt;b&gt;copy /b test.txt +,,&lt;/b&gt;&lt;br /&gt;(command was changed following to the comments).&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6166518351339133429?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6166518351339133429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6166518351339133429' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6166518351339133429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6166518351339133429'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/06/touch-command-for-doscommand-line.html' title='touch command for DOS/command line'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-1169145226186794271</id><published>2008-06-15T17:25:00.006+03:00</published><updated>2008-08-06T22:31:38.280+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET 3.5'/><title type='text'>ArgumentOutOfRangeException at HttpCachePolicy.UtcSetLastModified if assembly file with script control has future date relatively to the machine date</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;It seems that I discovered an annoying bug in the AJAX engine:&lt;br /&gt;if you have a JavaScript file of script control, which is loaded through the WebResource.axd and the DLL module that embeds this JavaScript file has a file creation date, which is in the future relatively to the current machine date – you would get an unhandled ArgumentOutOfRangeException exception, raising from System.Web.HttpApplication.ExecuteStep:&lt;br /&gt;&lt;br /&gt;&lt;pre class="csharpcode"&gt;&lt;br /&gt;System.Web.HttpCachePolicy.UtcSetLastModified(DateTime utcDate)&lt;br /&gt;System.Web.HttpCachePolicy.SetLastModified(DateTime date)&lt;br /&gt;System.Web.Handlers.AssemblyResourceLoader.System.Web.IHttpHandler.ProcessRequest(HttpContext context)&lt;br /&gt;System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()&lt;br /&gt;System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&amp;amp; completedSynchronously)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;This would cause JavaScript error "Type NNN is undefined or null" in your browser.&lt;br /&gt;The simple resolution for this problem is to "touch" the affected DLL to update it's date to current machine date time:&lt;br /&gt;&lt;b&gt;copy /y nul tt.txt&lt;/b&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-1169145226186794271?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/1169145226186794271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=1169145226186794271' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1169145226186794271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/1169145226186794271'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/06/argumentoutofrangeexception-at.html' title='ArgumentOutOfRangeException at HttpCachePolicy.UtcSetLastModified if assembly file with script control has future date relatively to the machine date'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-6721690237165264543</id><published>2008-06-10T17:42:00.000+03:00</published><updated>2008-06-10T17:43:31.945+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Enable flash .flv video streaming in with IIS / ASP.NET</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Enable flash .flv video streaming in with IIS / ASP.NET:&lt;br /&gt;1) &lt;a href="http://blogs.ittoolbox.com/c/engineering/archives/adding-flv-mime-type-in-iis-4198"&gt;Adding .FLV MIME Type in IIS&lt;/a&gt;&lt;br /&gt;2) &lt;a href="http://blogs.ugidotnet.org/kfra/archive/2006/10/04/50003.aspx"&gt;FLV Flash video streaming with ASP.NET 2.0, IIS and HTTP handler&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6721690237165264543?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6721690237165264543/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6721690237165264543' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6721690237165264543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6721690237165264543'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/06/enable-flash-flv-video-streaming-in.html' title='Enable flash .flv video streaming in with IIS / ASP.NET'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-4155126239816835731</id><published>2008-04-08T16:36:00.002+03:00</published><updated>2008-04-08T16:39:32.269+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Humor'/><title type='text'>Funny automatic translation (English to Russian):</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;i&gt;Original:&lt;/i&gt;&lt;br /&gt;ThreadPoolSynchronizer marshals all calls to a custom thread pool, where the calls are first queued up, then multiplexed on the available threads. The size of the pool is provided as a construction parameter. If the pool is maxed out, the call will be pending in the queue until a thread is available. You can also provide a pool name (which will be the prefix of the name of the threads in the pool). Disposing or closing ThreadPoolSynchronizer kills all threads in the pool gracefully...&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;i&gt;Translated:&lt;/i&gt;&lt;br /&gt;ThreadPoolSynchronizer маршалы все звонит таможенному бассейну нитки, где призывы сначала стоятся в очереди, тогда multiplexed на доступных нитках. Размер бассейна обеспечивается в качестве строительного параметра. Если бассейн maxed, призыв будет находящийся на рассмотрении в очереди прежде чем нитка имеется в распоряжении. Вы можете также обеспечить имя бассейна (который будет префикс имени ниток в бассейне). Размещая или закрытие ThreadPoolSynchronizer убивает все нитки в бассейне грациозно...&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-4155126239816835731?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/4155126239816835731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=4155126239816835731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4155126239816835731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4155126239816835731'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/04/funny-automatic-translation-english-to.html' title='Funny automatic translation (English to Russian):'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-4840737267675820175</id><published>2008-04-07T16:50:00.001+03:00</published><updated>2008-04-07T16:51:55.969+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 3'/><title type='text'>Redistributable installation of Microsoft .NET framework 3.0 SP 1</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Somehow there are no direct link and installation instructions for the .NET framework 3.0 SP 1 on MS site.&lt;br /&gt;Here is how to get it:&lt;br /&gt;1) Make sure &lt;a href="http://download.microsoft.com/download/0/8/c/08c19fa4-4c4f-4ffb-9d6c-150906578c9e/NetFx20SP1_x86.exe"&gt;.NET 2.0 SP 1&lt;/a&gt; is installed.&lt;br /&gt;2) Get redistributable install of .NET 3.0 SP 1 from here: &lt;a href="http://download.microsoft.com/download/8/F/E/8FEEE89D-9E4F-4BA3-993E-0FFEA8E21E1B/NetFx30SP1_x86.exe"&gt;http://download.microsoft.com/download/8/F/E/8FEEE89D-9E4F-4BA3-993E-0FFEA8E21E1B/NetFx30SP1_x86.exe&lt;/a&gt; &lt;br /&gt;3) You may need to install XPSEPSC before installation of .NET 3.0 SP 1. Get it here: &lt;a href="http://download.microsoft.com/download/8/D/4/8D4C4B2F-269B-44E1-80EA-BF59143D7BAC/XPSEPSC-x86-en-US.exe"&gt;http://download.microsoft.com/download/8/D/4/8D4C4B2F-269B-44E1-80EA-BF59143D7BAC/XPSEPSC-x86-en-US.exe&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-4840737267675820175?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/4840737267675820175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=4840737267675820175' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4840737267675820175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4840737267675820175'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/04/redistributable-installation-of.html' title='Redistributable installation of Microsoft .NET framework 3.0 SP 1'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-3365761020622589252</id><published>2008-04-01T11:04:00.003+03:00</published><updated>2008-04-01T11:15:29.565+03:00</updated><title type='text'>How to install Windows Media Player 11 on Windows Server 2003</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;1) Download the installation file &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F54F5537-CC86-4BF5-AE44-F5A1E805680D&amp;displaylang=en"&gt; wmp11-windowsxp-x86-enu.exe&lt;/a&gt; and then extract its content to subfolder&lt;br /&gt;2) Change value of HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows\CSDVersion from 100 to 200&lt;br /&gt;3) Go to this sub-folder and change compatibility mode of &lt;b&gt;wmfdist11.ex&lt;/b&gt;e to WindowsXP. Run it.&lt;br /&gt;4) Change compatibility mode compatibility mode of &lt;b&gt;wmfdist11.exe&lt;/b&gt; to WindowsXP. Run it.&lt;br /&gt;5) Change compatibility mode compatibility mode of &lt;b&gt;wmdbexport.exe.&lt;/b&gt;  to WindowsXP. Run it.&lt;br /&gt;6) &lt;b&gt;&lt;font color="#FF0000"&gt;RESTART!!!&lt;/font&gt;&lt;/b&gt;&lt;br /&gt;7) Return to the extracted files, change compatibility of &lt;b&gt;wmp11.exe&lt;/b&gt; to Windows XP and run it&lt;br /&gt;8) Change value of HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Windows\CSDVersion from 200 back  to 100&lt;br /&gt;9) Enjoy&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-3365761020622589252?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/3365761020622589252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=3365761020622589252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3365761020622589252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/3365761020622589252'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2008/04/download-installation-file-wmp11.html' title='How to install Windows Media Player 11 on Windows Server 2003'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-262799785462316592</id><published>2007-10-15T10:57:00.000+02:00</published><updated>2007-10-15T10:59:44.232+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SQL 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><title type='text'>How to uninstall SQL 2005 if it's missing in Add/Remove Programs</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;First of all - &lt;a href="http://support.microsoft.com/kb/909967" target="_blank"&gt;here &lt;/a&gt; is the support KB article.&lt;br /&gt;In my case - I was unable to uninstall SQL 2005 even manually from the command line (ArpWrapper was ceasing to work, displaying some "Registry Enumeration Failed" error and uninstalling components with MsiExec using their GUID's listed in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall just didn't worked).&lt;br /&gt;&lt;br /&gt;I was able to do it by uninstalling SQL components manually with Microsoft Windows Install Clean Up utility (do it in order, specified in KB article).&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-262799785462316592?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/262799785462316592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=262799785462316592' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/262799785462316592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/262799785462316592'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2007/10/how-to-uninstall-sql-2005-if-its.html' title='How to uninstall SQL 2005 if it&apos;s missing in Add/Remove Programs'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-4842414605802380582</id><published>2007-10-10T17:21:00.000+02:00</published><updated>2007-10-10T17:30:15.790+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 3'/><category scheme='http://www.blogger.com/atom/ns#' term='WCF'/><title type='text'>How to create WCF service proxy without publishing mex endpoint #2</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Important update to my &lt;a href="http://alexpinsker.blogspot.com/2007/08/how-to-create-wcf-service-proxy-without.html" target="_blank"&gt;previous article&lt;/a&gt;: if your service is defined inside of a namespace - you must specify the namespace using &lt;b&gt;/serviceName&lt;/b&gt; option during the 1st step (WSDL and XSD creation).&lt;br /&gt;Updated step #1 example:&lt;br /&gt;&lt;b&gt;svcutil /serviceName:MyNamespace.MyService MyServiceSvc.exe /reference:SomeReference.dll&lt;/b&gt;&lt;br /&gt;If you'll miss specification of the namespace - resulting proxy code would be wrong (including even endpoing binding defintion).&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-4842414605802380582?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/4842414605802380582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=4842414605802380582' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4842414605802380582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/4842414605802380582'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2007/10/how-to-create-wcf-service-proxy-without.html' title='How to create WCF service proxy without publishing mex endpoint #2'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-6215450827869276223</id><published>2007-10-10T17:10:00.000+02:00</published><updated>2007-10-10T17:19:14.238+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AJAX'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Internet Explorer cannot open the Internet site - Operation aborted</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;I was affected by this issue and it took me some time to figure out what's the reason of it (in my case it was quite tricky). Generally - the reasons causing this error in IE are quite known. (Here are some for your reference :)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://support.microsoft.com/default.aspx/kb/927917" target="_blank"&gt;http://support.microsoft.com/default.aspx/kb/927917&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://dean.edwards.name/weblog/2005/09/busted2/" target="_blank"&gt;http://dean.edwards.name/weblog/2005/09/busted2/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.mysticcoders.com/blog/2007/03/20/internet-explorer-cannot-open-the-internet-site-operation-aborted/" target="_blank"&gt;http://www.mysticcoders.com/blog/2007/03/20/internet-explorer-cannot-open-the-internet-site-operation-aborted/&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://channel9.msdn.com/wiki/default.aspx/Channel9.InternetExplorerProgrammingBugs" target="_blank"&gt;http://channel9.msdn.com/wiki/default.aspx/Channel9.InternetExplorerProgrammingBugs&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In my case it was a completely different story - it was caused by few IE DOM implementation bugs. Consider you have code on the IE client side that parses page body nodes and then removes them:&lt;br /&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;while&lt;/font&gt;&lt;font size=2&gt; (body &amp;&amp; body.hasChildNodes()) {&lt;/font&gt;&lt;br /&gt;&lt;font color="#0000FF" size=2&gt;var&lt;/font&gt;&lt;font size=2&gt; node = body.firstChild;&lt;/font&gt;&lt;br /&gt;&lt;font color="#008000" size=2&gt;// ... app logic&lt;/font&gt;&lt;br /&gt;&lt;font size=2&gt;body.removeChild(node);&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;Now consider that body content is created by Response.Write() on the server side (I write down some context in &amp;lt;p&amp;gt;...&amp;lt;/p&amp;gt; paragraphs sections).&lt;br /&gt;My application was working as a blaze, but occasionally I was getting "Internet Explorer cannot open the Internet site - Operation aborted" in IE. In Firefox it was never happen.&lt;br /&gt;After some research I narrowed down the reason to the fact that body context is created by Response.Write and then I catched up what the problem was - it was related to the fact that on the server side I was writing body nodes in 4 steps:&lt;br /&gt;1) &amp;lsquo;&amp;lt;p&amp;gt;&amp;rsquo;&lt;br /&gt;2) app-specific content&lt;br /&gt;3) &amp;lsquo;&amp;lt;/p&amp;gt;&amp;rsquo;&lt;br /&gt;4) Flush() output.&lt;br /&gt;&lt;br /&gt;So - sometimes on the client side the code was running while paragraph weren't fully formed (e.g. only starting &amp;lt;p&amp;gt; was written).&lt;br /&gt;In this case body.hasChildNodes() still returns true (IE bug #1) and body.removeChild(node) will cause "operation aborted" (IE bug #2).&lt;br /&gt;As I noted - it's IE-specific and not happens in other browsers.&lt;br /&gt;&lt;br /&gt;Fortunatelly - I had Response() bufferring turned off at the server side - o/w above problem would still happen, but with much lower frequency, making it very difficult to track it down.&lt;br /&gt;The solution, as you may guess, is to write whole node at once on the server side...&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-6215450827869276223?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/6215450827869276223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=6215450827869276223' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6215450827869276223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/6215450827869276223'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2007/10/internet-explorer-cannot-open-internet.html' title='Internet Explorer cannot open the Internet site - Operation aborted'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11049085.post-944849160221728141</id><published>2007-09-19T15:33:00.000+02:00</published><updated>2007-09-19T15:52:51.697+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.NET 3.5'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><title type='text'>.NET 3.5 Beta 2 - no LINQ performance improvements?</title><content type='html'>&lt;span style="font-family:times new roman;font-size:85%;"&gt;&lt;br /&gt;&lt;table width="100%" border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Today I've got a comment on my &lt;a href="http://alexpinsker.blogspot.com/2007/07/benchmarking-linq-vs.html" target="_blank"&gt;post&lt;/a&gt; where I compared performance of LINQ vs. DAAB vs. ADO.NET, saying that I should repeat my test with .NET Framework 3.5 beta 2. Indeed there are a lot of posts about performance improvements introduced in it, so I've rushed and repeated my test, compiling it in Microsoft Visual Studio 2008 Beta 2, targeting .NET 3.5 beta 2.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Not sure that proverb "no news - good news" is correct in this case, but - well - no news. I mean that performance results are absolutely the same - &lt;strong&gt;LINQ is about 30% slower than raw ADO.NET&lt;/strong&gt; (4.28 ms per call for ADO.NET vs. 5.51 ms per call for LINQ). Also, using LINQ rather than ADO.NET makes application much more CPU intensive (something like ~20% of CPU intensity with LINQ vs. ~2% of CPU intensity with ADO.NET - difference of order of magnitude!). You may see screenshots below.&lt;br /&gt;&lt;img src="http://img159.imageshack.us/img159/3619/linqnet35betatimingscm2.jpg" title="Timing results" border="1"&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;i&gt;Timing results&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;img src="http://img509.imageshack.us/img509/6355/linqvsadonetperfmon1qa0.jpg" title="CPU intensity" border="1"&gt;&lt;br /&gt;&lt;div align="left"&gt;&lt;i&gt;CPU Intensity&lt;/i&gt;.&lt;sub&gt;(First third - ADO, second - DAAB, third - LINQ.)&lt;/sub&gt;&lt;/div&gt;&lt;br /&gt;So it seems to me that there are no significant performance improvements, unless there is something fundamentally wrong with my tests (check code &lt;a href="http://alexpinsker.blogspot.com/2007/07/benchmarking-linq-vs.html" target="_blank"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Yet - I want to develop here something I've mentioned in my previous post. This additional performance cost doesn't mean "don't use LINQ". You'll probably never will get to performance incur of 30% in the real project. In the real life scenario you'll never abuse your DB by shooting thousands of SP calls in a batch, without doing something with results. There is always some business logic around, some DAL, some timings, etc - so the performance costs are never so high and they will be spread around evenly, rather than composed into a performance-loss peak. Also - mind that LINQ greatly improves coding productivity, decreases amount of code and project complexity. This means that developers would spend less timing coding and the costly thing for the project is the developer time. In the very worst case - profile your application to find the bottlenecks of 20:80 rule and use ADO.NET in critical sections of your code. And buy quicker CPU - they are cheap today :) ...&lt;br /&gt;&lt;br /&gt;P.S.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Few links to related articles:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;My post with &lt;a href="http://alexpinsker.blogspot.com/2007/07/benchmarking-linq-vs.html" target="_blank"&gt;previous benchmarking data and code&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Quick LINQ link list in &lt;a href="http://weblogs.asp.net/fmarguerie/archive/2007/07/04/quick-linq-link-list.aspx" target="_blank"&gt;Fabrice's weblog&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;DLinq (Linq to SQL) Performance &lt;a href="http://blogs.msdn.com/ricom/archive/2007/06/22/dlinq-linq-to-sql-performance-part-1.aspx" target="_blank"&gt;(part 1)&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;LINQ to SQL &lt;a href="http://rogerjenn.googlepages.com/vb.netcodeforthelinqtosqlperformancetest" target="_blank"&gt;Performance test&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11049085-944849160221728141?l=alexpinsker.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexpinsker.blogspot.com/feeds/944849160221728141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11049085&amp;postID=944849160221728141' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/944849160221728141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11049085/posts/default/944849160221728141'/><link rel='alternate' type='text/html' href='http://alexpinsker.blogspot.com/2007/09/net-35-beta-2-no-linq-performance.html' title='.NET 3.5 Beta 2 - no LINQ performance improvements?'/><author><name>Alex Pinsker</name><uri>http://www.blogger.com/profile/01712994496088023843</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry></feed>
