<?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'><id>tag:blogger.com,1999:blog-15758573</id><updated>2009-11-14T14:57:03.938+02:00</updated><title type='text'>Why not? (Ilan Assayag's blog)</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default?start-index=26&amp;max-results=25'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>244</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-15758573.post-6788313129489055963</id><published>2008-10-22T11:09:00.001+02:00</published><updated>2008-10-22T11:09:10.390+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='linq'/><title type='text'>Configurable  connection string with Linq to SQL</title><content type='html'>&lt;p&gt;When using Linq-to-SQL with the dbml designer, by default it generates an App.config file and puts the connection string to use in it. This is fine (well, not really, but at least it works) for applications, but when working with class libraries it's a problem – DLL's don't load the app.config, so changing the connection string in the app.config won't produce any change (the application will still try to use the connection string that was used at design time).&lt;/p&gt; &lt;p&gt;I found a pretty neat solution here by David Klein ( &lt;a href="http://ddkonline.blogspot.com/2008/02/set-connection-string-in-linq-dbml-file.html"&gt;http://ddkonline.blogspot.com/2008/02/set-connection-string-in-linq-dbml-file.html&lt;/a&gt; ), which is based on Jon Gallant's solution ( &lt;a href="http://blogs.msdn.com/jongallant/archive/2007/11/25/linq-and-web-application-connection-strings.aspx"&gt;http://blogs.msdn.com/jongallant/archive/2007/11/25/linq-and-web-application-connection-strings.aspx&lt;/a&gt; )&lt;/p&gt; &lt;p&gt;P.S: The problem is known by MSFT: &lt;a href="http://msdn.microsoft.com/en-us/library/bb386996.aspx"&gt;http://msdn.microsoft.com/en-us/library/bb386996.aspx&lt;/a&gt; . It doesn't seems to bother them though…&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-6788313129489055963?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/6788313129489055963/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=6788313129489055963' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6788313129489055963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6788313129489055963'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/10/configurable-connection-string-with.html' title='Configurable  connection string with Linq to SQL'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-8386361527137850472</id><published>2008-07-16T11:22:00.001+03:00</published><updated>2008-07-16T11:22:10.947+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='robot'/><category scheme='http://www.blogger.com/atom/ns#' term='technology'/><title type='text'>Undoubtedly the most amazing technology I have ever seen</title><content type='html'>&lt;p&gt;&lt;/p&gt;No matter what you had planned for the next 2 minutes - change your plan. Check &lt;a href="http://www.bostondynamics.com/content/sec.php?section=BigDog"&gt;BigDog - The Most Advanced Quadruped Robot on Earth&lt;/a&gt;. It's worth it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-8386361527137850472?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/8386361527137850472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=8386361527137850472' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/8386361527137850472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/8386361527137850472'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/07/undoubtedly-most-amazing-technology-i.html' title='Undoubtedly the most amazing technology I have ever seen'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-6758214871674348640</id><published>2008-05-11T14:55:00.001+03:00</published><updated>2008-05-11T14:55:05.879+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='linq'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Linq: Composite keys don't work + Beware of ElementAt ...</title><content type='html'>&lt;p&gt; &lt;p&gt;I was trying to join two lists (one being a linq-to-sql result and the other being a List&amp;lt;&amp;gt; in memory) using a composite index. I tried doing it the right way, but it just didn't work. (By the way, the "right" way is really awkward. it means you must define a new anonymous type in both query, having the same fields. The best resource I found is &lt;a href="http://blogs.msdn.com/shitals/archive/2008/03/07/hello-word.aspx"&gt;here&lt;/a&gt;). So after the "right" way didn't work, I tried the more time-consuming way, which involves a Where inside another Where and turned out to be completely irrelevant performance-wise (~20K rows).&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;In the end, I had to do the join by myself. By chance, the two lists I needed to join had the exact same number of records, and the only thing I had to do was to make sure both lists are sorted in the same manner. Then I could just join each element in one list with the element at the same position in the second list. So the code looked something like that:&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;for&lt;/span&gt; (&lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt; i = 0; i &amp;lt; sWeights.Count(); i++)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(0,0,255)"&gt;double&lt;/span&gt; val = 0.0;&lt;br /&gt;    &lt;span style="color: rgb(43,145,175)"&gt;DateTime&lt;/span&gt; date = sWeights.ElementAt(i).Date;&lt;br /&gt;    &lt;span style="color: rgb(0,0,255)"&gt;while&lt;/span&gt; (i &amp;lt; sWeights.Count() &amp;amp;&amp;amp; sWeights.ElementAt(i).Date.Equals(date))&lt;br /&gt;    {&lt;br /&gt;        val += sWeights.ElementAt(i).Weight * sChanges.ElementAt(i).Change;&lt;br /&gt;        i++;&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: rgb(0,128,0)"&gt;// Do something with date and val&lt;br /&gt;&lt;/span&gt;}&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;Now here's the deal - this code sucks! It takes AGES to complete. I searched MSDN for an indication about the running time of ElementAt, because I had a feeling this could be the problem - but it doesn't say anything about it. So I made a test - turned the two lists into arrays and ran using an array selector ([i]) and ... voila - the code completes in no time.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;So now the code looks like this:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;for&lt;/span&gt; (&lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt; i = 0; i &amp;lt; sWeights.Length; i++)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(0,0,255)"&gt;double&lt;/span&gt; val = 0.0;&lt;br /&gt;    &lt;span style="color: rgb(43,145,175)"&gt;DateTime&lt;/span&gt; date = sWeights[i].Date;&lt;br /&gt;    &lt;span style="color: rgb(0,0,255)"&gt;while&lt;/span&gt; (i &amp;lt; sWeights.Length &amp;amp;&amp;amp; sWeights[i].Date.Equals(date))&lt;br /&gt;    {&lt;br /&gt;        val += sWeights[i].Weight * sChanges[i].Change;&lt;br /&gt;        i++;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: rgb(0,128,0)"&gt;// Do something with val&lt;br /&gt;&lt;/span&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;strong&gt;CONCLUSION: &lt;/strong&gt;BEWARE - ElementAt DOES NOT guarantee anything about its running time, so if you need to run through the whole list, it's better to create an array with the list's elements and run over the array.&lt;/p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-6758214871674348640?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/6758214871674348640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=6758214871674348640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6758214871674348640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6758214871674348640'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/05/linq-composite-keys-don-work-beware-of.html' title='Linq: Composite keys don&amp;#39;t work + Beware of ElementAt ...'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-4111952992413873340</id><published>2008-05-05T14:25:00.001+03:00</published><updated>2008-05-05T14:25:20.819+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='linq'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Can't this be simpler?</title><content type='html'>&lt;p&gt; &lt;p&gt;I'm trying to run a Linq query which, in SQL, would look like this:&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;select&lt;/span&gt; V&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;Date&lt;span style="color: rgb(128,128,128)"&gt;,&lt;/span&gt; &lt;span style="color: rgb(255,0,255)"&gt;SUM&lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;(&lt;/span&gt;F&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;Factor&lt;span style="color: rgb(128,128,128)"&gt;/&lt;/span&gt;V&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;Change&lt;span style="color: rgb(128,128,128)"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;AS&lt;/span&gt; Denom&lt;br /&gt;&lt;span style="color: rgb(0,0,255)"&gt;from&lt;/span&gt; AllVols V &lt;span style="color: rgb(128,128,128)"&gt;JOIN&lt;/span&gt; Factors F &lt;span style="color: rgb(0,0,255)"&gt;on&lt;/span&gt; F&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;&lt;span style="color: rgb(0,0,255)"&gt;Key&lt;/span&gt; &lt;span style="color: rgb(128,128,128)"&gt;=&lt;/span&gt; V&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;FId&lt;br /&gt;&lt;span style="color: rgb(0,0,255)"&gt;group&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;by&lt;/span&gt; V&lt;span style="color: rgb(128,128,128)"&gt;.&lt;/span&gt;Date&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;The only way I found looks like this:&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; denoms = &lt;span style="color: rgb(0,0,255)"&gt;from&lt;/span&gt; v &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; allVols&lt;br /&gt;             &lt;span style="color: rgb(0,0,255)"&gt;join&lt;/span&gt; f &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; factors &lt;span style="color: rgb(0,0,255)"&gt;on&lt;/span&gt; v.FId &lt;span style="color: rgb(0,0,255)"&gt;equals&lt;/span&gt; f.Key&lt;br /&gt;             &lt;span style="color: rgb(0,0,255)"&gt;group&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; {v.Date, Factor = f.Value, v.Change} &lt;span style="color: rgb(0,0,255)"&gt;by&lt;/span&gt; v.Date&lt;br /&gt;             &lt;span style="color: rgb(0,0,255)"&gt;into&lt;/span&gt; g&lt;br /&gt;                 &lt;span style="color: rgb(0,0,255)"&gt;orderby&lt;/span&gt; g.Key.Date&lt;br /&gt;                 &lt;span style="color: rgb(0,0,255)"&gt;select&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; {g.Key.Date, Denom = g.Sum(d =&amp;gt; d.Factor/d.Change)};&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;Is there no better way ?!?!&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/15758573-4111952992413873340?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/4111952992413873340/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=4111952992413873340' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/4111952992413873340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/4111952992413873340'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/05/can-this-be-simpler.html' title='Can&amp;#39;t this be simpler?'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-8303159532293745705</id><published>2008-04-30T17:38:00.001+03:00</published><updated>2008-04-30T17:38:57.800+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='mathematics'/><category scheme='http://www.blogger.com/atom/ns#' term='linq'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Linq Goodies 2 - Calculating Standard Deviation</title><content type='html'>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Check out the following function, which calculates the Standard Deviation of a given list of values:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;double&lt;/span&gt; calcStdev(&lt;span style="color: rgb(43,145,175)"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(0,0,255)"&gt;double&lt;/span&gt;&amp;gt; values)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(0,0,255)"&gt;double&lt;/span&gt; avg = values.Average();&lt;br /&gt;    &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Math&lt;/span&gt;.Sqrt( (values.Sum(d =&amp;gt; &lt;span style="color: rgb(43,145,175)"&gt;Math&lt;/span&gt;.Pow(d - avg, 2))) / (values.Count() - 1) );&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Extra sweet...&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;Note that I could have replaced (d - avg) with (d - values.Average()) , hence resulting in a single line instead of 2, but the performance hit isn't worth it.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;It may not look very readable looking at it as a programmer, but if you look at the &lt;a href="http://en.wikipedia.org/wiki/Standard_deviation"&gt;mathematical formula of standard deviation&lt;/a&gt;, the above code is much closer to it than anything I've previously seen in C*.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-8303159532293745705?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/8303159532293745705/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=8303159532293745705' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/8303159532293745705'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/8303159532293745705'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/04/linq-goodies-2-calculating-standard.html' title='Linq Goodies 2 - Calculating Standard Deviation'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-7539151787687527378</id><published>2008-04-30T17:34:00.001+03:00</published><updated>2008-04-30T17:34:35.106+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='linq'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>Linq Goodies 1 - Extracting a range from an array</title><content type='html'>&lt;p&gt; &lt;p&gt;Slowly but surely I'm starting to get the huge benefits Linq is bringing into our lives. Take a look at the following code snippet, which retrieves values from an array in a specified range:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/p&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;var&lt;/span&gt; range = cData.Where((d, index) =&amp;gt; index &amp;gt;= (i - 40) &amp;amp;&amp;amp; index &amp;lt; (i));&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Sweet!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-7539151787687527378?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/7539151787687527378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=7539151787687527378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/7539151787687527378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/7539151787687527378'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/04/linq-goodies-1-extracting-range-from.html' title='Linq Goodies 1 - Extracting a range from an array'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-8488717899583952611</id><published>2008-04-30T11:45:00.001+03:00</published><updated>2008-04-30T11:45:15.560+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>No support for static Extension Methods - bummer!</title><content type='html'>&lt;p&gt;&lt;/p&gt; &lt;p&gt;I wanted to add an extension method to Debug, which would automatically write a given set of parameters separated with commas (to generate CSV files). However, since extension methods are not supported for static methods, and the Debug.WriteXXX are static - it's not possible. Bummer!&lt;/p&gt; &lt;p&gt;&lt;/p&gt;Yet another missing feature in C#/CLR ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-8488717899583952611?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/8488717899583952611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=8488717899583952611' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/8488717899583952611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/8488717899583952611'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/04/no-support-for-static-extension-methods.html' title='No support for static Extension Methods - bummer!'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-6916852883977661035</id><published>2008-04-21T15:33:00.001+03:00</published><updated>2008-04-21T15:37:50.896+03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user experience'/><category scheme='http://www.blogger.com/atom/ns#' term='excel'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Excel WTF</title><content type='html'>&lt;p&gt; &lt;p&gt;This is an old one, but I'm always stunned by the fact that a major application such as Excel still has issues like this. I'm trying to view two copies of the same file, located in different folder (I want to check a specific cell to see if it was changed). For some obscure reason, Excel can't handle two simultaneously opened files with the same name, even if they reside in different folder (not that there is any option for them to &lt;em&gt;do&lt;/em&gt; reside in the same folder, but that's beside the point).&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;em&gt;"A document with the name 'blablabla.xls' is already open. You cannot open two documents with the same name, even if the documents are in different folders. To open the second document, either close the document that's currently open, or rename one of the documents."&lt;/em&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-6916852883977661035?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/6916852883977661035/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=6916852883977661035' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6916852883977661035'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6916852883977661035'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/04/excel-wtf.html' title='Excel WTF'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-7647116303871213656</id><published>2008-03-20T10:06:00.001+02:00</published><updated>2008-03-20T10:06:01.147+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>Connecting to a remote console</title><content type='html'>&lt;p&gt;Say you want to connect to a remote machine with Remote Desktop (RDP) but want to get hold of the actual machine's console. That is - you want to get the session that you would have were you standing in front of the machine physically.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;To do so, run the following command:&lt;/p&gt; &lt;p&gt;&lt;/p&gt;mstsc /console &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Then connect to the machine as you would with a regular RDP session. What you will get is the actual console session.&lt;/p&gt; &lt;p&gt;&lt;/p&gt;Thanks to Chen Avnery for this little (but helpful) info. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-7647116303871213656?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/7647116303871213656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=7647116303871213656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/7647116303871213656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/7647116303871213656'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/03/connecting-to-remote-console.html' title='Connecting to a remote console'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-7188314619972525356</id><published>2008-02-26T11:37:00.001+02:00</published><updated>2008-02-26T11:37:32.970+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><category scheme='http://www.blogger.com/atom/ns#' term='rantings'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><title type='text'>SQL Server 2005 rantings - User Defined Aggregate Functions are nice, but not there yet...</title><content type='html'>&lt;p&gt;1. Why can't there be UDA's in T-SQL? Granted, it's easy to write it in CLR, but sometimes it would be simpler (and more appropriate) to write it in SQL. It also took me a while to figure out that indeed there is such limitation...&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;2. UDA's must be serializable. Why? I don't know yet (still need to figure that one out), although I have some ideas, but anyway it's besides the point - it's a must and I assume there are good reasons for that. The problem is that whenever you're doing something slightly more complicated than just an average or Product, you need to accumulate all the values until you get to Terminate() (e.g. a variation on STDEV). This means that this list you've just accumulated could grow significantly. Now to the pitfall - when you use user-defined serialization (which you would &lt;strong&gt;have &lt;/strong&gt;to in this case), you must specific the maximum size that the UDA structure could grow to. This maximum size is limited to 8000 bytes (*sounds familiar...). So in my case, I'm using a UDA over double values, and thus I'm limited to aggregating a little below 1000 records. IMHO this reduces the practical usage of UDA's to about 50%...&lt;/p&gt; &lt;p&gt;&lt;/p&gt;3. I tried to write a UDA for decimal data. No matter what I did, it constantly produced a function defined to return decimal(18,0). In other words - no decimal numbers to the right of the dot. In the end I didn't have the time to find out the KB article talking about it, but I suppose there is - I pretty much tried everything. In my particular case using double values was an acceptable compromise - it won't always be that way... &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-7188314619972525356?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/7188314619972525356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=7188314619972525356' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/7188314619972525356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/7188314619972525356'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/02/sql-server-2005-rantings-user-defined.html' title='SQL Server 2005 rantings - User Defined Aggregate Functions are nice, but not there yet...'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-6432475632346887664</id><published>2008-02-14T16:00:00.001+02:00</published><updated>2008-02-14T16:05:27.468+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='weka'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='machine learning'/><title type='text'>Learning Machine Learning - The WEKA Way</title><content type='html'>&lt;p&gt;If you're interested in working with or learning about Machine Learning, you really MUST check out &lt;a href="http://www.cs.waikato.ac.nz/ml/weka/"&gt;WEKA&lt;/a&gt;. When I first saw WEKA, a few years ago, it looked like a cute tool to start learning ML, with a very small set of implemented algorithms and only available for Java developers. Now, it has become a very rich research platform, in which one can easily test a very wide variety of ML algorithms with endless tuning parameters and analysis tools. You can &lt;a href="http://weka.sourceforge.net/wiki/index.php/Frequently_Asked_Questions#How_do_I_connect_to_a_database.3F"&gt;read data directly from a database&lt;/a&gt; and you can now even &lt;a href="http://weka.sourceforge.net/wiki/index.php/Use_Weka_with_the_Microsoft_.NET_Framework"&gt;run WEKA directly from within your .NET code&lt;/a&gt; (check also &lt;a href="http://weka.sourceforge.net/wiki/index.php/IKVM_with_Weka_tutorial"&gt;this&lt;/a&gt;) !!!!!&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;I'm a complete newbie with WEKA, but it seems that it's going to be a lot of fun and much faster working with it than anything I did before. I just hope it will hold up to the expectations that are building up in me now...&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;One more thing - notice that there is t&lt;a href="http://weka.sourceforge.net/wiki/index.php/Frequently_Asked_Questions#What.27s_the_difference_between_book_and_developer_version.3F"&gt;he "book version" and the "developer version"&lt;/a&gt;. The former is the one on which their &lt;a href="http://www.cs.waikato.ac.nz/~ml/weka/book.html"&gt;book&lt;/a&gt; is based on and is not expanded (only bug fixes). The latter is the version that is on constant development, has more features, and significantly more implemented algorithms.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-6432475632346887664?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/6432475632346887664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=6432475632346887664' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6432475632346887664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6432475632346887664'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/02/learning-machine-learning-weka-way.html' title='Learning Machine Learning - The WEKA Way'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-8749045167292351831</id><published>2008-02-12T16:10:00.001+02:00</published><updated>2008-02-12T16:10:51.821+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user experience'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>WLW - Didn't they hear about 64-bit ???</title><content type='html'>&lt;p&gt; &lt;p&gt;When opening WLW it says that the Beta has expired and&amp;nbsp;forwards me to download the new version. When I do that -&amp;nbsp;I get a message that&amp;nbsp;it is not supported for 64-bit windows (I'm using XP 64bit).&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Hum, what?&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;1. 64bit is alive and kicking and getting more and more users. It's time that software companies (MS being one, IMHO) get used to provide support for 64bit platforms by default.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;2. If the new version does not support my platform - why sending me to download it and waste my time and nerves?&lt;/p&gt; &lt;p&gt;&lt;/p&gt;Grrrrr...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-8749045167292351831?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/8749045167292351831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=8749045167292351831' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/8749045167292351831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/8749045167292351831'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2008/02/wlw-didn-they-hear-about-64-bit.html' title='WLW - Didn&amp;#39;t they hear about 64-bit ???'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-4627546870995417071</id><published>2007-12-13T17:41:00.001+02:00</published><updated>2007-12-13T17:41:38.064+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='rantings'/><category scheme='http://www.blogger.com/atom/ns#' term='spam'/><category scheme='http://www.blogger.com/atom/ns#' term='mail'/><title type='text'>Chain Letters Are Worse Than Viruses</title><content type='html'>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Yesterday I got once again a Chain Letter. In case you don't know - &lt;a href="http://ilanas.blogspot.com/2007/02/personal-letter-to-everyone-i-know.html"&gt;I HATE CHAIN LETTERS&lt;/a&gt;!!!&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;This time, it was a &lt;a href="http://www.hoax-slayer.com/olympic-torch-virus-hoax.html"&gt;pseudo virus alert&lt;/a&gt;. When I complained with the sender, urging her to stop sending me chain letters, she said: "But it's a VIRUS alert! I can't take the chance you'll miss it!"&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;What people don't understand, is that if 50% of the users would think like this sender, there would be no Internet. Nada, zip, nil, rien du tout, nothing, niets, kadachat...&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Just do the math:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Let's assume 50% of the people believe in those nonsense and send such a virus alert to 20 other people.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Now assume it takes on average 5 minutes from the moment you get the email until you forward it (some a little more, some a little less).&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;In this worst case scenario, we flood the Net with 10^12 emails after 1 hour. Keeping the 5-minute window I assumed above, it's more than 3 BILLION emails per second. No need to calculate how many emails would be sent after 2 hours - there would be no Internet by then.&lt;/p&gt; &lt;p&gt;&lt;/p&gt;Fortunately for the Internet, most users know better than to forward Chain Letters...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-4627546870995417071?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/4627546870995417071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=4627546870995417071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/4627546870995417071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/4627546870995417071'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/12/chain-letters-are-worse-than-viruses.html' title='Chain Letters Are Worse Than Viruses'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-5247413532497319764</id><published>2007-12-12T19:10:00.001+02:00</published><updated>2007-12-12T19:10:06.030+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AI'/><category scheme='http://www.blogger.com/atom/ns#' term='malware'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='machine learning'/><title type='text'>AI AI AI AI AI ...</title><content type='html'>&lt;p&gt;My curiosity has been arisen big time. Apparently, there is a new kind of malware, which involves the use of natural language dialogue to extract information from users, in the disguise of a flirtatious conversation. It's called CyberLover and was apparently developed in Russia. According to &lt;a href="http://www.pctools.com/"&gt;PC Tools&lt;/a&gt;, this program can converse with a human for 30 minutes without the dude being able to see he's talking to a robot.&lt;/p&gt; &lt;p&gt;The &lt;a href="http://en.wikipedia.org/wiki/Turing_test"&gt;Turing Test&lt;/a&gt; has officially been passed...&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Read the original warning issued by &lt;a href="http://www.pctools.com/news/view/id/192/"&gt;PC Tools&lt;/a&gt;, or an article at &lt;a href="http://www.computerworld.com.au/index.php/id;1672098041"&gt;ComputerWorld&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;/p&gt;AMAZING!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-5247413532497319764?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/5247413532497319764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=5247413532497319764' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/5247413532497319764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/5247413532497319764'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/12/ai-ai-ai-ai-ai.html' title='AI AI AI AI AI ...'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-2529960292336695997</id><published>2007-12-04T11:56:00.001+02:00</published><updated>2007-12-04T11:56:01.361+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>A Killing IDE Feature I Would Like To See</title><content type='html'>&lt;p&gt; &lt;p&gt; &lt;p&gt;A long time ago I used to use &lt;a href="http://geyra.com/mutek/bugTrapper.htm"&gt;BugTrapper&lt;/a&gt; - an application that sits on the production server, records every instruction, and makes it possible to "play" everything back, step by step. It's a great tool to analyze bugs and especially crashes "post mortem", as long as it's not related to some obscure race condition (the overhead of using BugTrapper often ruling out the race in the first place).&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;I think there definitely is a case for applications like this, and the fact that Mutek hasn't been able to push itself farther into developers' awareness is quite surprising to me.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;The feature I would like to see in an IDE is a mini-BugTrapper. I would like the IDE to be able to record up to a certain amount of instructions (say up to 100,000) during debugging. How many times did you stop at some breakpoint and suddenly realized you should have put this breakpoint a little bit earlier in the flow? You really need to see&amp;nbsp; the value of some parameter, or the actually executed flow, a few steps back - but you can't. The only thing the IDE gives you is the static current call stack - which just isn't enough. You want to know what variables caused you to get into that current call stack, but that's beyond the scope of the IDE's features.&lt;/p&gt; &lt;p&gt;&lt;/p&gt;That's, IMHO, a killing feature that could significantly boost debugging time.&lt;/p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-2529960292336695997?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/2529960292336695997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=2529960292336695997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/2529960292336695997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/2529960292336695997'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/12/killing-ide-feature-i-would-like-to-see.html' title='A Killing IDE Feature I Would Like To See'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-5473450702967435745</id><published>2007-12-02T14:20:00.001+02:00</published><updated>2007-12-02T14:20:59.182+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><title type='text'>Is GOTO always evil?</title><content type='html'>The other day I decided to use a "goto" statement in my C# code. It was a difficult decision to take, and was primarily motivated by the need for readability. &lt;p&gt;&lt;/p&gt; &lt;p&gt;Apparently, &lt;a href="http://en.wikipedia.org/wiki/Linus_Torvalds"&gt;Linus Torvalds&lt;/a&gt; also &lt;a href="http://kerneltrap.org/node/553/2131"&gt;thinks there are cases where "goto" is appropriate&lt;/a&gt;, so I'm in good company...&lt;/p&gt; &lt;p&gt;&lt;/p&gt;Thanks to Scott Hanselman for &lt;a href="http://www.hanselman.com/blog/TheWeeklySourceCode10PatternsConsideredHarmful.aspx"&gt;pointing to this thread&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-5473450702967435745?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/5473450702967435745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=5473450702967435745' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/5473450702967435745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/5473450702967435745'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/12/is-goto-always-evil.html' title='Is GOTO always evil?'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-6069843770373347890</id><published>2007-12-02T12:52:00.001+02:00</published><updated>2007-12-02T12:52:09.545+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>How do you Exactly Approximate??</title><content type='html'>&lt;p&gt;Let me quote from MSDN about &lt;a href="http://msdn2.microsoft.com/en-us/library/system.double.aspx"&gt;System.Double&lt;/a&gt;:&lt;/p&gt; &lt;p&gt;&lt;/p&gt;"A mathematical or comparison operation that uses a floating-point number might not yield the same result if a decimal number is used because the floating-point number might not &lt;strong&gt;&lt;em&gt;exactly approximate&lt;/em&gt;&lt;/strong&gt; the decimal number." &lt;p&gt;&lt;/p&gt; &lt;p&gt;I found this funny, go figure...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-6069843770373347890?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/6069843770373347890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=6069843770373347890' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6069843770373347890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6069843770373347890'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/12/how-do-you-exactly-approximate.html' title='How do you Exactly Approximate??'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-3088008943903545458</id><published>2007-11-15T14:05:00.001+02:00</published><updated>2007-11-15T14:05:14.821+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>How consistent should a blogger be?</title><content type='html'>&lt;p&gt; &lt;p&gt;I recently got back to reading &lt;a href="http://www.codinghorror.com/blog/"&gt;Jeff Atwood's blog&lt;/a&gt;, after a long pause on my part. I was very surprised to see advertisements there, especially since I remembered him discussing &lt;a href="http://www.codinghorror.com/blog/archives/000700.html"&gt;this issue in the past&lt;/a&gt; - opting for the negative. Of course, one can always change his mind. But still, I find it quite funny. Reading the last few comments on that post you can read him agreeing that advertising on a blog is "like advertising on your business card".&lt;/p&gt; &lt;p&gt;&lt;/p&gt;Apparently he now doesn't mind advertising on&amp;nbsp;his business card ... &lt;p&gt;&lt;/p&gt; &lt;p&gt;By the way - I found &lt;a href="http://weblogs.asp.net/jgalloway/"&gt;Jon Galloway&lt;/a&gt;'s comment hilarious...&lt;/p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-3088008943903545458?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/3088008943903545458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=3088008943903545458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/3088008943903545458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/3088008943903545458'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/11/how-consistent-should-blogger-be.html' title='How consistent should a blogger be?'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-676760310300495428</id><published>2007-11-13T16:36:00.001+02:00</published><updated>2007-11-13T16:36:45.405+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='code'/><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='wtf'/><title type='text'>VB Grrrrrr...</title><content type='html'>&lt;p&gt;Yet another MSDN and .NET WTF:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;I'm currently implementing some temporary code that was written in VB into our C# infrastructure (let's skip the details). Anyway, there are parts in the VB code that I would like to group because either they are currently not being used, or for some reason I want to hide it from view and get to it at some later phase.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Obviously, a #Region directive seems like the best solution.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;My VB is quite rusted, but using common sense I tried using&amp;nbsp; the same syntax I'm used in C#. But alas - it didn't work. So I &lt;a href="http://msdn2.microsoft.com/en-us/library/sd032a17(VS.80).aspx"&gt;searched MSDN&lt;/a&gt; - hey, it should work! Well, VB have this little difference that the &lt;em&gt;identifier_string&lt;/em&gt; MUST exist and it must be surrounded by quotation marks. OK, no biggy, I usually put it there anyway.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;But why doesn't it work?&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Well, there is this tiny little limitation, hidden from you if you rely solely on MSDN, that "'&lt;strong&gt;#Region' and '#End Region' statements are not valid within method bodies.&lt;/strong&gt;"&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Which raises two questions:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt; &lt;p&gt;1. Why, in Heaven's name, should there be such a difference between C# and VB. It's just a freaking compilation directive!&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;2. Assuming there is some justified reason for that (which I doubt - I guess it's just a non-implemented feature) - would it hurt someone to put this info in MSDN so I won't have to get crazy trying to figure out why it doesn't work?!?!&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;And now to a personal to-remember note:&lt;/p&gt; &lt;p&gt;&lt;/p&gt;I relied solely on Intellisense and Resharper to know the code is wrong. I'm using the C# only version of Resharper, so I have no idea whether Resharper would have been more helpful. Anyway - had I compiled from the beginning (or at least looked at the message Intellisense gave me) - I would have seen much sooner why it doesn't work...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-676760310300495428?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/676760310300495428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=676760310300495428' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/676760310300495428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/676760310300495428'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/11/vb-grrrrrr.html' title='VB Grrrrrr...'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-1236822545516817456</id><published>2007-11-12T11:16:00.001+02:00</published><updated>2007-11-12T11:16:18.095+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='better place'/><category scheme='http://www.blogger.com/atom/ns#' term='car'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><title type='text'>Could the World become a Better Place?</title><content type='html'>&lt;p&gt;Shai Agassi is a person who doesn't have to prove himself - he's done it 400,000,000 ($) times and much more. I had the chance of working for him at TopTier, though at the time he was mostly in the US and I don't think he'll remember me.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;He's now investing all his power in the &lt;a href="http://projectbetterplace.com/"&gt;Project Better Place&lt;/a&gt;, with the goal of transforming our fuel-based cars into electric-cars, by providing the necessary infrastructure and business plan.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt; &lt;p&gt;Will he succeed? I sincerely hope so. I am also willing to be one of his first customers for a pilot plan in Israel. If anyone is to succeed in such a project - it's him.&lt;/p&gt; &lt;p&gt;&lt;/p&gt;Some say his &lt;a href="http://www.eweek.com/article2/0,1895,2212874,00.asp"&gt;real goal&lt;/a&gt; is to own the software that will handle the whole system. Well, I think that if he succeeds in this project, it makes complete sense and there's no harm about it. If making this world a Better Place means Agassi will own the most important software in history - so be it!&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;In any case, I admire him for being ready to risk his most valuable asset - his reputation - for this huge and very risky project.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;If you want to keep track of what's going on, I suggest you read his &lt;a href="http://shaiagassi.typepad.com/the_long_tailpipe/"&gt;blog&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;/p&gt;Good luck Shai! &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-1236822545516817456?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/1236822545516817456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=1236822545516817456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/1236822545516817456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/1236822545516817456'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/11/could-world-become-better-place.html' title='Could the World become a Better Place?'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-2719327820429621433</id><published>2007-11-12T09:04:00.001+02:00</published><updated>2007-11-12T09:04:38.465+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='musings'/><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>Citations of the day</title><content type='html'>&lt;p&gt;By &lt;a href="http://en.wikipedia.org/wiki/Henry_Kissinger"&gt;Henry Kissinger&lt;/a&gt;:&lt;/p&gt; &lt;p&gt; &lt;p&gt;&lt;/p&gt;&lt;/p&gt; &lt;p&gt; &lt;ul&gt; &lt;li&gt;Military men are just dumb stupid animals to be used as pawns in foreign policy.&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt; &lt;li&gt;If everybody is your enemy, then you are not paranoid. &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt; &lt;li&gt;Power is the ultimate aphrodisiac.&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt; &lt;li&gt;Corrupt politicians make the other ten percent look bad. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Source: &lt;a href="http://en.wikipedia.org/wiki/Henry_Kissinger#Quotes"&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-2719327820429621433?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/2719327820429621433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=2719327820429621433' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/2719327820429621433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/2719327820429621433'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/11/citations-of-day.html' title='Citations of the day'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-3683508057509772104</id><published>2007-11-11T11:17:00.001+02:00</published><updated>2007-11-11T11:17:50.546+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user experience'/><category scheme='http://www.blogger.com/atom/ns#' term='rantings'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><title type='text'>XP Printing issues - Grrrr...!!!</title><content type='html'>&lt;p&gt;D., my colleague came to me today asking for help with printing problems. At some point I decided to log off, but then I couldn't log on again. The machine kept saying that the current time is different than the network time. I couldn't log on with any of our domain users (including Administrator), so I had to log on with the local Admin user. Looking at the time, it looked fine. After digging and searching for 15 minutes, we discovered that the &lt;em&gt;date&lt;/em&gt; differed - running some simulation D. had to move his clock one day ahead and forgot to move it back.&lt;/p&gt;Once we moved the clock back to the right day, he could print flawlessly! &lt;p&gt;&lt;/p&gt; &lt;p&gt;Things gives rise to many questions:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;1. Why couldn't he print when his day was wrong? I understand there are synchronization issues involved - but in 2007 (almost 2008) these things shouldn't happen! Sometimes you really &lt;em&gt;can not&lt;/em&gt; have all your computers synchronized. That's life!&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;2. Why did the error talk about time and not date?&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;3. Why couldn't we even log on with a domain user?&lt;/p&gt; &lt;p&gt;&lt;/p&gt;Grrrrrrrrrrrr........!@#!@#!@#@!@#!@#!@# &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-3683508057509772104?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/3683508057509772104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=3683508057509772104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/3683508057509772104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/3683508057509772104'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/11/xp-printing-issues-grrrr.html' title='XP Printing issues - Grrrr...!!!'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-7679210237621543286</id><published>2007-11-07T12:47:00.001+02:00</published><updated>2007-11-07T12:47:08.544+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='funny'/><title type='text'>Supermarket 2.0</title><content type='html'>&lt;p&gt;&lt;/p&gt; &lt;p&gt; &lt;p&gt;A paraphrase of Web 2.0 to real life - GREAT!&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/p&gt; &lt;p&gt;&lt;embed src="http://www.youtube.com/v/e9MgHuitMwU" width="425" height="355" type="application/x-shockwave-flash" wmode="transparent"&gt;&lt;/embed&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-7679210237621543286?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/7679210237621543286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=7679210237621543286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/7679210237621543286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/7679210237621543286'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/11/supermarket-20.html' title='Supermarket 2.0'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-6287459516115206997</id><published>2007-11-05T12:10:00.001+02:00</published><updated>2007-11-05T12:10:52.167+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sql'/><title type='text'>Parameterized SELECT TOP</title><content type='html'>&lt;p&gt;&lt;/p&gt; &lt;p&gt;Just a small tip:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Say you want to run a query that returns the first @X results of some query, such that @X is a &lt;em&gt;parameter&lt;/em&gt;.&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;The simple "SELECT TOP @X ..." statement doesn't work. I found this weird, because I know for a fact that SQL 2005 supports using a parameter in the TOP clause (as opposed to SQL 2000 where you had to use either dynamic queries or the SET ROWCOUNT statement).&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;Solution - surround the parameter with parenthesis as so:&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;"SELECT TOP (@X) ..."&lt;/p&gt; &lt;p&gt;&lt;/p&gt;Something to remember...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/15758573-6287459516115206997?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/6287459516115206997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=6287459516115206997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6287459516115206997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/6287459516115206997'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/11/parameterized-select-top.html' title='Parameterized SELECT TOP'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-15758573.post-766750215018845568</id><published>2007-10-29T12:46:00.001+02:00</published><updated>2007-10-29T12:46:16.962+02:00</updated><title type='text'>We're Hiring - Searching for a Quantitative Analyst</title><content type='html'>&lt;p&gt; &lt;p&gt;For the past few years I've been working for a global investment firm. At the beginning I worked part-time as a freelancer, but recently the company opened an R&amp;amp;D facility in Herzliya and now I'm a full time employee again. We're now looking for exceptionally talented quantitative analysts, to participate in the development, validation &amp;amp; documentation of risk &amp;amp; analytical applications and processes.&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;/p&gt; &lt;p&gt;Our firm has been engaged for over 10 years in the research and development of systematic trading models for the global financial markets. The developed models are used in the actual money management of clients' portfolios.&lt;/p&gt; &lt;p&gt;Role will involve working on new risk management models, data extrapolation, and trading model analysis and development. &lt;/p&gt; &lt;p&gt;&lt;u&gt;Requirements:&lt;/u&gt;&lt;/p&gt; &lt;p&gt;· MS or PhD in Math or Physics&lt;/p&gt; &lt;p&gt;· Exposure to stochastic calculus&lt;/p&gt; &lt;p&gt;· Excellent general modeling skills&lt;/p&gt; &lt;p&gt;· Grasp of PDE’s and Monte Carlo&lt;/p&gt; &lt;p&gt;· Experience in statistical data analysis or signal processing is a plus&lt;/p&gt; &lt;p&gt;· Experience in Matlab \ C# is a plus&lt;/p&gt; &lt;p&gt;· Financial knowledge is a plus&lt;/p&gt; &lt;p&gt;To apply, fax your resume and a cover letter to 09-970-7329 or email &lt;a href="mailto:careers@eaglets.com"&gt;careers@eaglets.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/15758573-766750215018845568?l=ilanas.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ilanas.blogspot.com/feeds/766750215018845568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=15758573&amp;postID=766750215018845568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/766750215018845568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/15758573/posts/default/766750215018845568'/><link rel='alternate' type='text/html' href='http://ilanas.blogspot.com/2007/10/we-hiring-searching-for-quantitative.html' title='We&amp;#39;re Hiring - Searching for a Quantitative Analyst'/><author><name>Ilan Assayag</name><uri>http://www.blogger.com/profile/05885131038068500210</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='01014334671315427652'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>