<?xml version='1.0' encoding='utf-8' ?>
<!--  If you are running a bot please visit this policy page outlining rules you must respect. http://www.livejournal.com/bots/  -->
<rss version='2.0' xmlns:lj='http://www.livejournal.org/rss/lj/1.0/' xmlns:media='http://search.yahoo.com/mrss/' xmlns:atom10='http://www.w3.org/2005/Atom'>
<channel>
  <title>The Dave Code</title>
  <link>http://knowbody.livejournal.com/</link>
  <description>The Dave Code - LiveJournal.com</description>
  <lastBuildDate>Sat, 02 Apr 2011 20:02:45 GMT</lastBuildDate>
  <generator>LiveJournal / LiveJournal.com</generator>
  <lj:journal>knowbody</lj:journal>
  <lj:journalid>7000738</lj:journalid>
  <lj:journaltype>personal</lj:journaltype>
  <image>
    <url>http://l-userpic.livejournal.com/78329094/7000738</url>
    <title>The Dave Code</title>
    <link>http://knowbody.livejournal.com/</link>
    <width>100</width>
    <height>83</height>
  </image>

<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/21827.html</guid>
  <pubDate>Sat, 02 Apr 2011 20:02:45 GMT</pubDate>
  <title>How I Lost 25 Pounds in a Month Without Exercising</title>
  <link>http://knowbody.livejournal.com/21827.html</link>
  <description>&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;How Things Got So Bad&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Since joining Microsoft back in mid-2006, my weight skyrocketed about 15% or 30 pounds. A large part of this can be attributed to the abundance of unhealthy, free food at Microsoft, but that&amp;rsquo;s only half of the story. When I worked at University of Calgary, I had to walk at least a mile and a half each day to get to and from various transit points. Now, the parking lot is at best 50 meters away from my building. While I might have complained about walking around in -20 degree weather in Canada, I really had no idea how good it was for my health. Up until recently, I didn&amp;rsquo;t know just how bad Microsoft&amp;rsquo;s &lt;a href=&quot;http://careers.microsoft.com/careers/en/us/collegeusbenefits.aspx&quot; rel=&quot;nofollow&quot;&gt;free perks &lt;/a&gt;such as unlimited soda and the constant supply of junk food outside co-workers&apos; offiices were really&amp;nbsp;harming me either. That said,&amp;nbsp;my health is my own responsibility and I shouldn&apos;t have listened to the &lt;em&gt;demons in my head&amp;nbsp;&lt;/em&gt;that kept telling me to eat more.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The Scare&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Flash forward to January 2011. An annual check-up revealed that my &amp;ldquo;fatty-liver&amp;rdquo; condition (human equivalent of &lt;a href=&quot;http://en.wikipedia.org/wiki/Foie_gras&quot; rel=&quot;nofollow&quot;&gt;foie gras&lt;/a&gt;) diagnosed in 2008 had progressed such that I now have either gallstones or possibly even a growth in my gallbladder. I was only 30 at the time! Any ways, this was exactly the &amp;lsquo;scare&amp;rsquo; I needed for a major lifestyle change. My amazing wife letting me know that my snoring had gotten far worse since moving to Seattle wasn&amp;rsquo;t enough. Fear of cancer and Microsoft&amp;rsquo;s announcement that our 100% healthcare would disappear in two short years skyrocketed me into action.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Douglas Crockford&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;By chance, I came across a wonderful blog post, &lt;a href=&quot;http://www.crockford.com/pwl/&quot; rel=&quot;nofollow&quot;&gt;http://www.crockford.com/pwl/&lt;/a&gt;, by Douglas Crockford which explained our society&amp;rsquo;s current obesity epidemic and gave some awesome advice on losing weight. If you haven&amp;rsquo;t read this post before, I highly recommend it as it&amp;rsquo;s quite logical and well thought-out.&amp;nbsp;&lt;/span&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Dr. Sandra Cabot&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Concurrently, I was also trying to abide by &lt;a href=&quot;http://www.liverdoctor.com/&quot; rel=&quot;nofollow&quot;&gt;Dr. Sandra Cabot&amp;rsquo;s &lt;/a&gt;advice she gave in her book, the Liver Cleanse Diet. The basic premise of the book is that the liver is solely responsible for removing fat from the bloodstream, and an unhealthy liver implies you&amp;rsquo;ll pack on the pounds. Well, the way my &amp;ldquo;fatty-liver&amp;rdquo; was diagnosed was via blood tests looking for chemicals the liver releases when it&amp;rsquo;s under duress.&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The Lifestyle Changes&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;What exactly did I do to lose the 25 pounds you ask? It was a combination of the Liver Cleanse Diet, Doug&amp;rsquo;s advice, and strong support from my wife:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;No more sausage biscuits for breakfast. Instead,&amp;nbsp;my wife or I&amp;nbsp;typically juice apples/carrots/celery/kiwi/etc. or eat a bowl of oatmeal followed by a cup of black coffee&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Replaced Indian food, pizza, and burgers for lunch with either a low-fat salad or a turkey (Subway) sub. The former set is incredibly high in fat&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Take double the daily recommended amount of Milk Thistle, a herb purported to protect the liver&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;I used to eat 90% meat/cheese/dairy/flour for every meal, and perhaps 10% were fruits and vegetables. Now more than 50% of my food intake comes from fruits and vegetables&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Portion control, portion control, portion control. My wife&amp;rsquo;s culture &amp;ldquo;loves you with food&amp;rdquo; which needed to change to &amp;ldquo;love you with less food&amp;rdquo;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Limited my intake of fats to those found in avocadoes, nuts, and lean poultry. It was hard to give up cheese and red meat, but it has paid off&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Severely restricted my intake of alcohol. While it doesn&amp;rsquo;t necessarily add fat to my bloodstream, it does hurt one&amp;rsquo;s liver. Over the course of three months I&amp;rsquo;ve had a grand total of four beers&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Severely restricted my intake of refined sugar. Had only one coke in three months and all the oatmeal cookies I&amp;rsquo;ve eaten have been low-sugar and low-fat. Have had a few peanut butter and honey sandwiches though&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;For two weeks I took a commercial (As Seen on TV) product called the &amp;ldquo;The Cleaner&amp;rdquo;. Basically just pop some pills every day and have weird looking bowel movements&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;This is perhaps the most difficult, yet also the most important facet of my diet &amp;ndash; do a gallbladder cleanse. After finishing &amp;ldquo;The Cleaner&amp;rdquo;, one evening I downed 1.25 cups of the finest cold-pressed olive oil I could find chased by 1 cup of fresh lemon juice; all over the course of three hours. If you want to do this, be forewarned the next day will not be fun by any means. I didn&amp;rsquo;t *really* start shedding weight like crazy until after the gallbladder cleanse &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;I even jumped off the wagon for four days while on a business trip last month and have lost five pounds since then!&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The Benefits&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;Now onto the benefits I&amp;rsquo;ve seen thus far:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;the look of shock from people who haven&amp;rsquo;t seen me in a while&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;a recent blood test indicates my liver function is back to normal&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;a sleep study performed after I&amp;rsquo;d lost about 15 pounds showed I was no longer snoring excessively nor breathing incorrectly&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;my brain is operating at a frequency I quite honestly haven&amp;rsquo;t experienced since 2004&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;far less tired yet I&amp;rsquo;ve also been getting less sleep (i.e., maybe six hours a night)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;lost 31 pounds to date. After another five I plan on relaxing the diet just a bit&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;</description>
  <comments>http://knowbody.livejournal.com/21827.html</comments>
  <category>health</category>
  <lj:security>public</lj:security>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/21593.html</guid>
  <pubDate>Tue, 24 Aug 2010 22:01:53 GMT</pubDate>
  <title>JavaScript Fail</title>
  <link>http://knowbody.livejournal.com/21593.html</link>
  <description>&lt;p&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large&quot;&gt;The following snippet: &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 40px&quot;&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 40px&quot;&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;document.write(typeof &lt;span style=&quot;color: #ff0000&quot;&gt;NaN&lt;/span&gt;);&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin-left: 40px&quot;&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large&quot;&gt;produces:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;color: #33cccc&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;number&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #00ffff&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-size: large&quot;&gt;&lt;br /&gt;&lt;br /&gt;The type of &lt;em&gt;not a number&lt;/em&gt; is &lt;em&gt;number...&lt;/em&gt;&amp;nbsp; Seriously, what were they thinking!?!&lt;/span&gt;&lt;/p&gt;*edit*&lt;br /&gt;&lt;span style=&quot;font-size: large&quot;&gt;Far worse is the result of &lt;em&gt;&apos;parseInt(&amp;quot;&lt;span style=&quot;color: #ff0000&quot;&gt;number&lt;/span&gt;&amp;quot;)&lt;/em&gt;&apos;.&amp;nbsp; This produces &lt;em&gt;NaN&lt;/em&gt;!&lt;/span&gt;&lt;br /&gt;</description>
  <comments>http://knowbody.livejournal.com/21593.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/21359.html</guid>
  <pubDate>Tue, 10 Aug 2010 20:39:01 GMT</pubDate>
  <title>Code Coverage Report for IronPython 1.0(ish)</title>
  <link>http://knowbody.livejournal.com/21359.html</link>
  <description>&lt;span style=&quot;font-size: large&quot;&gt;Digging through some old emails when I found this=)&lt;br /&gt;&lt;h2&gt;&lt;br /&gt;Today&apos;s Statistics (2006-08-30)&lt;/h2&gt;&lt;div align=&quot;center&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&amp;nbsp;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Blocks&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Source Files&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Namespaces&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Classes&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Functions&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Block Delta&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;[ipy.exe]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;1239&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;10&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;90&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Hit&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;1043&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;2&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;10&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;82&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Percentage Hit&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;84.18 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;100.00 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;100.00 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;100.00 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;91.11 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;[IronMath.dll]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;1520&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;173&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Hit&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;1322&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;1&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;3&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;158&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Percentage Hit&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;86.97 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;100.00 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;100.00 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;100.00 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;91.33 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;[IronPython.dll]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;84661&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;185&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;11&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;579&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;8029&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Hit&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;70176&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;185&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;11&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;534&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;6311&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;+7&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Percentage Hit&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;82.89 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;100.00 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;100.00 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;92.23 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;78.60 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;+0.01%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;[All Components]&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Total&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;87420&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;190&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;13&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;592&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;8292&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;0&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Hit&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;72541&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;190&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;13&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;547&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; background-color: transparent; padding-left: 0.75pt; padding-right: 0.75pt; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;6551&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;+7&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&amp;nbsp;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;Percentage Hit&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;82.98 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;100.00 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;100.00 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;92.40 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;79.00 %&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;td style=&quot;border-bottom: #d4d0c8; border-left: #d4d0c8; padding-bottom: 0.75pt; padding-left: 0.75pt; padding-right: 0.75pt; background: lightcyan; border-top: #d4d0c8; border-right: #d4d0c8; padding-top: 0.75pt&quot;&gt;&lt;p align=&quot;right&quot;&gt;&lt;span style=&quot;font-size: 10pt&quot;&gt;+0.01%&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;</description>
  <comments>http://knowbody.livejournal.com/21359.html</comments>
  <category>ironpython</category>
  <category>testing</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/21032.html</guid>
  <pubDate>Wed, 26 May 2010 22:29:35 GMT</pubDate>
  <title>Another Reason I Love PowerShell and Python...</title>
  <link>http://knowbody.livejournal.com/21032.html</link>
  <description>&lt;span style=&quot;font-size: medium&quot;&gt;I&apos;ve been refactoring a ton of scripts lately and today I was doing a simple rename of an environment variable that we&apos;ll call &amp;quot;&lt;strong&gt;ABC&lt;/strong&gt;&amp;quot; to &amp;quot;&lt;strong&gt;DEFG&lt;/strong&gt;&amp;quot;.&amp;nbsp; Well in some random batch file there was a snippet similar to: &lt;/span&gt;&lt;div style=&quot;margin-left: 40px&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;IF &amp;quot;%&lt;strong&gt;ABC&lt;/strong&gt;%&amp;quot; == &amp;quot;&amp;quot; (&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #808080&quot;&gt;REM Do something &lt;br /&gt;&lt;/span&gt;) &lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #808080&quot;&gt;REM ... &lt;br /&gt;REM a bunch more cruft &lt;br /&gt;REM ... &lt;br /&gt;&lt;/span&gt;&lt;br /&gt;IF &amp;quot;%SOME_CONDITION%&amp;quot; == &amp;quot;&amp;quot; &lt;br /&gt;&lt;span style=&quot;color: #ff0000&quot;&gt;(&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;color: #808080&quot;&gt;REM Do something else &lt;br /&gt;&lt;/span&gt;) &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: medium&quot;&gt;Astute observers will notice the &amp;quot;&lt;span style=&quot;color: #808080&quot;&gt;Do something else&lt;/span&gt;&amp;quot; piece is incorrect as the left parenthesis needs to be on the same line as the IF statement for this to work.&amp;nbsp; For some reason I cannot fathom though, Windows allowed this mistake to run correctly.&amp;nbsp; Well as soon as I did a global search/replace on &amp;quot;ABC&amp;quot; to &amp;quot;DEFG&amp;quot;, lo and behold Windows decided this was in fact a grammar mistake.&amp;nbsp; Spent an hour or so digging through &amp;quot;&lt;span style=&quot;color: #808080&quot;&gt;a bunch more cruft&lt;/span&gt;&amp;quot; (quite more significant than the three lines I&apos;ve abstracted it to be) to figure out what the underlying issue was.&lt;br /&gt;&lt;br /&gt;Writing new scripts for MS Windows?&amp;nbsp; Please do yourself a favor and use PowerShell, IronPython, or even Perl to save yourself and maintainers of your code future troubles:)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;</description>
  <comments>http://knowbody.livejournal.com/21032.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/20751.html</guid>
  <pubDate>Mon, 12 Apr 2010 18:26:34 GMT</pubDate>
  <title>Top Three Reasons to Upgrade to .NET 4.0 Today</title>
  <link>http://knowbody.livejournal.com/20751.html</link>
  <description>&lt;h3&gt;Startup Time for IronPython 2.6.1 &lt;em&gt;for .NET 4.0&lt;/em&gt; is 30% Faster&lt;/h3&gt;&lt;img alt=&quot;&quot; src=&quot;http://farm5.static.flickr.com/4046/4515458652_7285003d85_o.jpg&quot; /&gt;&lt;br /&gt;&lt;img alt=&quot;&quot; src=&quot;http://farm5.static.flickr.com/4056/4515458624_7511c2bdf8_o.jpg&quot; /&gt;&lt;br /&gt;&lt;br /&gt;Where exactly is this improvement coming from?&amp;nbsp; Well we don&apos;t know quite yet.&amp;nbsp; Our first bona fide &lt;em&gt;.NET 2.0 SP1 versus .NET 4.0&lt;/em&gt; IronPython perf suite run&amp;nbsp;occurred less than two&amp;nbsp;weeks ago!&amp;nbsp; An educated guess is that &lt;strong&gt;at least &lt;/strong&gt;a small portion of this improvement stems from the fact that &lt;em&gt;Microsoft.Scripting.Core.dll &lt;/em&gt;is actually part of the .NET 4.0 framework.&amp;nbsp; Any ways, you can see more of the performance characteristics of IronPython running under both these .NET releases &lt;a href=&quot;http://ironpython.codeplex.com/wikipage?title=IronPython%20Performance&quot; rel=&quot;nofollow&quot;&gt;&lt;font color=&quot;#002c29&quot;&gt;here&lt;/font&gt;&lt;/a&gt;.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;&lt;em&gt;Beautiful is better than Ugly&lt;/em&gt; and &lt;em&gt;Simple is Better than Complex&lt;/em&gt;&lt;/h3&gt;&lt;div style=&quot;text-align: center&quot;&gt;&lt;img alt=&quot;.NET 2.0 SP1 versus .NET 4.0 DLR Hosting APIs&quot; style=&quot;width: 741px; height: 996px&quot; src=&quot;http://farm5.static.flickr.com/4054/4515503806_10ce4a3273_o.jpg&quot; /&gt;&lt;/div&gt;&amp;nbsp;&lt;br /&gt;The screenshot above&amp;nbsp;shows a small C# snippet of code utilizing a Python module both as a .NET 3.5 application (top) and as a .NET 4.0 application (bottom).&amp;nbsp;&amp;nbsp;Both of these snippets have been diffed&amp;nbsp;to highlight differences in red.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;It should be blindingly obvious that the bottom snippet is far more readable due to the use of C# 4.0&amp;rsquo;s new &lt;em&gt;dynamic&lt;/em&gt; type.&amp;nbsp; What the hell&amp;rsquo;s an &amp;ldquo;IDynamicMetaObjectProvider&amp;rdquo; supposed to be any ways?&amp;nbsp; In any event, our DLR and IronPython hosting APIs are adhering more to the &lt;a href=&quot;http://www.python.org/dev/peps/pep-0020/&quot; rel=&quot;nofollow&quot;&gt;&lt;font color=&quot;#002c29&quot;&gt;Zen of Python&lt;/font&gt;&lt;/a&gt; with each release. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Python and Ruby Play Nice Together&lt;/h3&gt;&lt;img alt=&quot;Command Prompt&quot; style=&quot;width: 732px; height: 364px&quot; src=&quot;http://farm3.static.flickr.com/2314/4514866341_11f296a57e_o.jpg&quot; /&gt;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;In the &lt;strong&gt;Command Prompt&lt;/strong&gt; session above, I&amp;rsquo;ve created a trivial Ruby class, &lt;em&gt;RubyPC&lt;/em&gt;, which provides a factorial method, &lt;em&gt;fact&lt;/em&gt;, in&amp;nbsp;&lt;strong&gt;rbfactorial.rb&lt;/strong&gt;.&amp;nbsp; From there, I started an IronPython interactive session and directly called into the&amp;nbsp;&lt;strong&gt;rbfactorial&lt;/strong&gt; Ruby&amp;nbsp;script via our &lt;strong&gt;clr&lt;/strong&gt; builtin Python module.&amp;nbsp; Let&amp;rsquo;s see you do that from other implementations of Python:-) &lt;br /&gt;&lt;br /&gt;IronPython 2.6.1 for .NET 4.0 and IronRuby 1.0v4 are the first two major releases of these dynamic languages that share the same Dynamic Language Runtime pedigree.&amp;nbsp; The end result of this is that they interop together quite nicely out of the box with one small caveat:&amp;nbsp;&amp;nbsp;you just need to copy &amp;ldquo;&lt;em&gt;IronPython-2.6.1-Src\IronPython-2.6.1\Config\Signed\App.config&lt;/em&gt;&amp;rdquo; from the source&amp;nbsp;or binary zip file&amp;nbsp;releases to &lt;em&gt;&amp;ldquo;%ProgramFiles%\IronPython 2.6 for .NET 4.0\ipy.exe.config&lt;/em&gt;&amp;rdquo; and/or &amp;ldquo;&lt;em&gt;%ProgramFiles%\IronPython 2.6 for .NET 4.0\ipy64.exe.config&lt;/em&gt;&amp;rdquo;.&amp;nbsp; This configuration file tells IronPython which version of IronRuby it needs to load, and we simply forgot to include this file in the IronPython MSI installer.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;NOTES&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;Remember to uninstall any IronPython .NET 4.0 CTPs &lt;strong&gt;before &lt;/strong&gt;uninstalling .NET 4.0 Betas/Alphas/etc&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=9cfb2d51-5ff4-4491-b0e5-b386f32c0992&amp;amp;displaylang=en&quot; rel=&quot;nofollow&quot;&gt;&lt;strong&gt;&lt;font color=&quot;#002c29&quot;&gt;Upgrade to .NET 4.0&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;&amp;nbsp;from here&lt;/li&gt;&lt;li&gt;Download &lt;font color=&quot;#3e62a6&quot;&gt;IronPython for .NET 4.0.msi&lt;/font&gt;&amp;nbsp;&amp;nbsp;from&amp;nbsp;&lt;a href=&quot;http://ironpython.codeplex.com/releases/view/36280&quot; rel=&quot;nofollow&quot;&gt;http://ironpython.codeplex.com/releases/view/36280&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;</description>
  <comments>http://knowbody.livejournal.com/20751.html</comments>
  <category>.net 4.0</category>
  <category>ironpython</category>
  <category>dlr</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/20579.html</guid>
  <pubDate>Thu, 04 Feb 2010 20:11:32 GMT</pubDate>
  <title>Poor Man&apos;s PowerShell Linecount Tool</title>
  <link>http://knowbody.livejournal.com/20579.html</link>
  <description>&lt;p&gt;&lt;span style=&quot;font-size: larger&quot;&gt;This obviously doesn&apos;t account for empty lines, comments, etc., but it works:)&lt;br /&gt;&lt;br /&gt;function get-numlines($filter) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $num_lines = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ls -recurse -filter $filter |% {gc $_.FullName | measure-object} | % {$num_lines+=$_.Count}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $num_lines&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: larger&quot;&gt;get-numlines *.py&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;</description>
  <comments>http://knowbody.livejournal.com/20579.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/20286.html</guid>
  <pubDate>Sun, 27 Dec 2009 00:53:15 GMT</pubDate>
  <title>Mom&apos;s Chicken-fried Steak Recipe</title>
  <link>http://knowbody.livejournal.com/20286.html</link>
  <description>&lt;ul&gt;&lt;li&gt;Cube Steak or beef steak that you tenderize&lt;/li&gt;&lt;li&gt;Salt and Pepper&lt;/li&gt;&lt;li&gt;Buttermilk&lt;/li&gt;&lt;li&gt;Egg&lt;/li&gt;&lt;li&gt;Flour&lt;/li&gt;&lt;li&gt;Oil&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Begin heating oil as soon as the meat is tenderized.  Take tenderized steak (cube steak) and salt and pepper both sides to taste.  Dip meat in flour to cover on both sides.  Shake off excess.  Beat egg into buttermilk.  Dip flour covered meat in egg mixture covering well.  Dip meat back into flour.  Test oil by dropping a small drop of water in it.  If it splatters, it is hot enough.  Place meat into hot oil and fry on one side until brown.  Turn meat and cook on other side until brown.  Check for doneness.  Turn and fry some more if needed.  Sometimes a salt and pepper the flour too.  I use bacon fat for deer steak or any wild meat.  I like it for beef too, but it is not always available.</description>
  <comments>http://knowbody.livejournal.com/20286.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/20192.html</guid>
  <pubDate>Fri, 20 Nov 2009 18:16:54 GMT</pubDate>
  <title>IronPython 2.6 RC 3</title>
  <link>http://knowbody.livejournal.com/20192.html</link>
  <description>&lt;a href=&quot;http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=36150&quot; rel=&quot;nofollow&quot;&gt;http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=36150&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This release contains a few small Silverlight fixes, with basically zero changes to the Desktop version of IronPython.  Hopefully third time&apos;s a charm.</description>
  <comments>http://knowbody.livejournal.com/20192.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/19800.html</guid>
  <pubDate>Tue, 27 Oct 2009 21:13:20 GMT</pubDate>
  <title>IronPython 2.6 Part Deux Released</title>
  <link>http://knowbody.livejournal.com/19800.html</link>
  <description>&lt;span style=&quot;font-size: large&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href=&quot;http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34451&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&lt;span&gt;http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=34451&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&lt;span&gt;Well assuming no major problems are found this release, I should in theory have some time for more IronPython blog entries in about a month.&amp;nbsp; Let&apos;s see what happens...&lt;/span&gt;&lt;/span&gt;</description>
  <comments>http://knowbody.livejournal.com/19800.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/19510.html</guid>
  <pubDate>Thu, 22 Oct 2009 22:09:24 GMT</pubDate>
  <title>Uninstalling &quot;IronPython 2.6 CTP for .NET 4.0 Beta 1&quot; without .NET 4.0 Beta 1 Installed</title>
  <link>http://knowbody.livejournal.com/19510.html</link>
  <description>&lt;span style=&quot;font-size: medium&quot;&gt;&lt;span&gt;We&apos;ve heard from a few people in the last week that they&apos;re having trouble uninstalling our community technology preview of IronPython running under .NET 4.0 &lt;strong&gt;Beta 1&lt;/strong&gt; if the installation of .NET 4.0 &lt;strong&gt;Beta 1&lt;/strong&gt; has&amp;nbsp;been removed or replaced in some fashion.&amp;nbsp; Basically what&apos;s going on is that a prerequisite for running &lt;em&gt;IronPython.msi &lt;/em&gt;(whether you intend on installing/repairing/removing it) is the presence of a very specific version of .NET - namely v4.0&lt;strong&gt;.20506&lt;/strong&gt;.&amp;nbsp; The tie in to this .NET 4.0 release means that&amp;nbsp;even with an install of .NET 4.0 &lt;strong&gt;Beta 2&lt;/strong&gt;, you&apos;ll be unable to remove the IronPython CTP for Beta &lt;strong&gt;1&lt;/strong&gt;&amp;nbsp;&lt;em&gt;cleanly&lt;/em&gt; unless you also have .NET 4.0 &lt;strong&gt;Beta 1&lt;/strong&gt; installed concurrently (is this even possible I wonder...).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;There&apos;s at least one alternative to removing &amp;quot;IronPython 2.6 CTP for .NET 4.0 Beta &lt;strong&gt;1&lt;/strong&gt;&amp;quot; if you no longer have access to .NET 4.0 &lt;strong&gt;Beta 1&lt;/strong&gt; on your machine.&amp;nbsp; Basically you&apos;ll just need to remove the related installation directory and shortcut menus by hand.&amp;nbsp; Also, there&apos;s&amp;nbsp;those pesky registry entries that don&apos;t have to be removed, but can be if you prefer.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;&lt;br /&gt;While the info presented below on&amp;nbsp;removing &amp;quot;IronPython 2.6 CTP for .NET 4.0 Beta &lt;strong&gt;1&lt;/strong&gt;&amp;quot; without using the uninstaller from the &lt;em&gt;Control Panel &lt;/em&gt;should work on just about anybody&apos;s machine, the steps were tested on&amp;nbsp;a single 32-bit Windows 7 machine.&amp;nbsp; There&apos;s at least a trillion ways your machine(s) may vary from the test box, and not only may some steps not work...they could even hurt your machine!&amp;nbsp; Proceed with caution...&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1 - Remove the Installation Directory&lt;/strong&gt;&lt;br /&gt;Assuming you accepted the default installation directory for the CTP, you&apos;ll have either &amp;quot;%&lt;em&gt;ProgramFiles%\IronPython 2.6 CTP for .NET 4.0 Beta 1&lt;/em&gt;&amp;quot; or &lt;em&gt;&amp;quot;%ProgramFiles% (x86)\IronPython 2.6 CTP for .NET 4.0 Beta 1&lt;/em&gt;&amp;quot;.&amp;nbsp; Simply open a command prompt as an Administrator and remove this directory:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rmdir /s /q &amp;quot;%&lt;em&gt;ProgramFiles%\IronPython 2.6 CTP for .NET 4.0 Beta 1&amp;quot;&lt;/em&gt;&lt;br /&gt;&lt;span&gt;&lt;br /&gt;&lt;strong&gt;Step 2 - Remove the Shortcut Menu&lt;/strong&gt;&lt;br /&gt;The shortcuts to the CTP&apos;s ipy.exe should be in &amp;quot;%ProgramData%\Microsoft\Windows\Start Menu\Programs\IronPython 2.6 CTP for .NET 4.0 Beta 1&amp;quot;.&amp;nbsp; Verify the presence of this directory, open a command prompt as an Administrator again, and remove the directory:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rmdir /s /q &amp;quot;%ProgramData%\Microsoft\Windows\Start Menu\Programs\IronPython 2.6 CTP for .NET 4.0 Beta 1&amp;quot;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 3 - &amp;quot;Fix&amp;quot; the registry&lt;/strong&gt;&lt;br /&gt;Background: as of today no IronPython&amp;nbsp;release uses *any* information found in the registry.&amp;nbsp; There&apos;s .NET&amp;nbsp;key/value pairs that could&amp;nbsp;affect the runtime behavior of IronPython (e.g., NGen&apos;ing), but these are not&amp;nbsp;directly utilized by IronPython.&amp;nbsp; In effect, the only reason to follow this step is to remove &amp;quot;IronPython 2.6 CTP for .NET 4.0 Beta 1&amp;quot; as an option from the &amp;quot;Add/Remove Programs&amp;quot;&amp;nbsp;portion of the Control Panel.&amp;nbsp; While the previous steps have very little chance of screwing up your machine, most people know that messing with the registry can cripple your box&amp;nbsp;if you&apos;re not careful.&amp;nbsp; If I haven&apos;t scared you off yet...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium&quot;&gt;Run &amp;quot;regedit&amp;quot; from an elevated command prompt&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium&quot;&gt;Press Ctrl-F and do a search on &amp;quot;IronPython 2.6 CTP for .NET 4.0 Beta 1&amp;quot;. Keep searching (via the F3 key) until you find something like &lt;strong&gt;Computer\HKEY_CLASSES_ROOT\Installer\Products&lt;/strong&gt;\&lt;strong&gt;&lt;em&gt;70089FC31E5E8B340817C3CA5F82E45D&lt;/em&gt;&lt;/strong&gt; containing keys such as &lt;em&gt;ProductName&lt;/em&gt;, &lt;em&gt;Version&lt;/em&gt;, etc.&amp;nbsp; Remove the&amp;nbsp;directory&amp;nbsp;which contains these keys and &amp;quot;IronPython 2.6 CTP for .NET 4.0 Beta 1&amp;quot; will be uninstalled as far as the Control Panel is concerned&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium&quot;&gt;There are other keys in the registry with respect to the CTP Beta 1 release.&amp;nbsp; My guess is that these are perfectly harmless to remove, but&amp;nbsp;I wouldn&apos;t advise removing them&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&lt;br /&gt;&lt;/span&gt;</description>
  <comments>http://knowbody.livejournal.com/19510.html</comments>
  <category>ironpython</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/19366.html</guid>
  <pubDate>Thu, 27 Aug 2009 23:33:40 GMT</pubDate>
  <title>What do you want to know about IronPython?</title>
  <link>http://knowbody.livejournal.com/19366.html</link>
  <description>&lt;span style=&quot;font-size: large&quot;&gt;&lt;span&gt;While I&apos;ve been waiting for a huge build to finish unzipping on a shiny new Windows 7 test machine, I&apos;ve been looking over my own and &lt;a href=&quot;http://blogs.msdn.com/ironpython/&quot; rel=&quot;nofollow&quot;&gt;other IronPython team members&apos; blogs&lt;/a&gt;.&amp;nbsp; I&apos;ve come to the conclusion&amp;nbsp;that there are far more comments for&amp;nbsp;posts &lt;strong&gt;not &lt;/strong&gt;dealing with Python, and in many cases the IronPython posts aren&apos;t getting any comments at all.&amp;nbsp; The missing interaction isn&apos;t necessarily limited to technical posts either from what I&apos;ve seen.&lt;br /&gt;&lt;br /&gt;Is this because we&apos;re doing a great job at covering IronPython topic &lt;em&gt;xyz&lt;/em&gt; or because &lt;em&gt;xyz&lt;/em&gt; just isn&apos;t that interesting?&amp;nbsp; If it&apos;s the latter, what would you like to see more of and less of?&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;</description>
  <comments>http://knowbody.livejournal.com/19366.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/19023.html</guid>
  <pubDate>Wed, 26 Aug 2009 23:06:10 GMT</pubDate>
  <title>Cited in a dissertation?</title>
  <link>http://knowbody.livejournal.com/19023.html</link>
  <description>&lt;span style=&quot;font-size: large&quot;&gt;Looks like&amp;nbsp;a talk/&lt;a href=&quot;http://accelconf.web.cern.ch/accelconf/ica05/proceedings/pdf/O3_017.pdf&quot; rel=&quot;nofollow&quot;&gt;paper&lt;/a&gt; I gave on distributed object simulation frameworks at the ICALEPCS (The International Conference on Accelerator and Large Experimental Physics Control Systems) conference back in 2005 was cited&amp;nbsp;in what appears to be&amp;nbsp;a &lt;/span&gt;&lt;a href=&quot;https://csrg.inf.utfsm.cl/twiki4/pub/ACS/AlmaTheses/thesis-mmora08.pdf&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: large&quot;&gt;computer science dissertation&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large&quot;&gt;.&amp;nbsp; Sweet&lt;br /&gt;&lt;/span&gt;</description>
  <comments>http://knowbody.livejournal.com/19023.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/18843.html</guid>
  <pubDate>Thu, 20 Aug 2009 22:36:12 GMT</pubDate>
  <title>A few interesting tidbits about IronPython CodePlex releases</title>
  <link>http://knowbody.livejournal.com/18843.html</link>
  <description>&lt;div style=&quot;margin-left: 40px&quot;&gt;*written about a month ago*&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&lt;/div&gt;&lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;While it&apos;s still fresh on my mind, I&apos;ll share a bit of interesting info about IronPython releases.&amp;nbsp;What will blow most peoples&apos; minds is that on average it takes us about five full working days to produce and signoff on a release for CodePlex.&amp;nbsp;For example, we started the release process for IronPython 2.6 Beta 2 on Friday morning and released it today.&amp;nbsp;&amp;quot;Dave, when all you have to do is build the &apos;release&apos; configuration of the sources already on CodePlex how can it possibly take this long?&amp;quot; you ask.&amp;nbsp;Three words: testing and Microsoft bureaucracy&amp;hellip;err I mean &amp;quot;Microsoft processes&amp;quot;.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 0in 0in 0in 40px; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 0in 0in 0in 40px; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;First lets talk about testing as this is my field.&amp;nbsp;If you look at the source zip file (or TFS enlistment) for any given IronPython release, you&apos;ll notice well over a hundred Python files under the &amp;quot;Src\Tests&amp;quot; directory.&amp;nbsp;There&apos;s actually far more than this as this doesn&apos;t include the plethora of tests we don&apos;t ship on CodePlex yet (e.g., 100s of Cpython tests).&amp;nbsp;For simplicity&apos;s sake&amp;hellip;we&apos;ll just say there&apos;s exactly 100 tests.&amp;nbsp;&amp;nbsp; Well each of these tests are run against the digitally signed &amp;quot;release&amp;quot; binaries you find in IronPython MSI installations and also &amp;quot;debug&amp;quot; binaries that we build from the source zip file and never redistribute.&amp;nbsp;In other words, we&apos;re now up 200 (2x100) individual invocations of IronPython, and the tests against &amp;quot;debug&amp;quot; binaries take longer to run of course.&amp;nbsp;To complicate things further, each of these 100 tests gets run with four different sets of flags passed to ipy.exe.&amp;nbsp;For example, we might run &amp;quot;ipy.exe test_str.py&amp;quot;, &amp;quot;ipy.exe -X:Interpret test_str.py&amp;quot;, &amp;quot;ipy -X:NoAdaptiveCompilation test_str.py&amp;quot;, etc.&amp;nbsp;&amp;nbsp; This puts us at 800 (4x2x100) individual IronPython test invocations.&amp;nbsp;Now you&apos;re probably saying &amp;quot;800 isn&apos;t that many Dave&amp;quot;, but I haven&apos;t mentioned the OS combinations we run the tests on yet which include: x86 XP, x86 2003, x64 2003, x86 Vista, and x64 Vista.&amp;nbsp;Ouch&amp;hellip;we&apos;re now at a staggering 4000 (5x4x2x100) IronPython invocations for only 100 tests.&amp;nbsp;It normally takes around two to three days to run all these tests and another half a day to investigate the 100+ failures we see during test pass signoffs.&amp;nbsp;Let&apos;s just call this three full days of testing as I didn&apos;t even call out manual testing on the release contents among other things.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 0in 0in 0in 40px; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-size: medium&quot;&gt;Most people will be surprised to know that IronPython must adhere to many of the same Microsoft corporate policies as a product such as Office 2007.&amp;nbsp;I won&apos;t divulge any real details on these policies, but will say the following:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&lt;span&gt;We must ensure there&apos;s no &amp;quot;profanity&amp;quot; in IronPython sources.&amp;nbsp; You&apos;d be amazed to know what kind of every day terms are forbidden...&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&lt;span&gt;All images distributed with IronPython need to be reviewed&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&lt;span&gt;Full security test passes are sometimes needed&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&lt;span&gt;Etc&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;Adhering to these policies and documenting said adherence is now largely automated and takes anywhere from an hour to a full day.&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin: 0in 0in 0in 0.375in; font-size: 11pt&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;As for the remaining day spent on releases&amp;hellip;well&amp;hellip;I&apos;ll save that for another blog entry.&lt;/span&gt;&lt;/p&gt;</description>
  <comments>http://knowbody.livejournal.com/18843.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/18659.html</guid>
  <pubDate>Sun, 16 Aug 2009 17:28:05 GMT</pubDate>
  <title>Skydrive Needs Work</title>
  <link>http://knowbody.livejournal.com/18659.html</link>
  <description>&lt;a href=&quot;http://pics.livejournal.com/knowbody/pic/0000831y/&quot; rel=&quot;nofollow&quot;&gt;&lt;img height=&quot;150&quot; border=&quot;0&quot; width=&quot;320&quot; src=&quot;http://pics.livejournal.com/knowbody/pic/0000831y/s320x240&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;br /&gt;Two out of the last three times I&apos;ve tried to access my Skydrive in the past two weeks I&apos;ve been &lt;em&gt;welcomed &lt;/em&gt;with a message stating &amp;quot;That item seems to be missing&amp;quot;.&amp;nbsp; This really is one software as a service Microsoft &lt;strong&gt;must&lt;/strong&gt; get right and have a very high up-time.&amp;nbsp; Disappointing. &lt;/span&gt;&lt;br /&gt;</description>
  <comments>http://knowbody.livejournal.com/18659.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>1</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/18293.html</guid>
  <pubDate>Mon, 10 Aug 2009 23:53:52 GMT</pubDate>
  <title>When trivial CPython snippets don&apos;t work...</title>
  <link>http://knowbody.livejournal.com/18293.html</link>
  <description>&lt;div style=&quot;text-align: center&quot;&gt;&lt;a href=&quot;http://pics.livejournal.com/knowbody/pic/00007btz/&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&lt;img border=&quot;0&quot; align=&quot;middle&quot; style=&quot;width: 379px; height: 115px&quot; alt=&quot;&quot; src=&quot;http://pics.livejournal.com/knowbody/pic/00007btz/s320x240&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-size: medium&quot;&gt;&lt;br /&gt;&lt;br /&gt;...it&apos;s time to call it a day.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;I&apos;ve spent way too much time today trying to get&amp;nbsp;a&amp;nbsp;simple&amp;nbsp;_ssl sample to&amp;nbsp;run under CPython to show how broken IronPython&apos;s _ssl.cs is.&amp;nbsp; First, I&amp;nbsp;discovered that not only do&amp;nbsp;CPython&apos;s&amp;nbsp;tests&amp;nbsp;not work (they&apos;re trying to connect to svn.python.org, port 443, which consistently times out);&amp;nbsp;they seem to be disabled as well via test_support.is_resource_enabled(&lt;font color=&quot;#800000&quot;&gt;&lt;font color=&quot;#800000&quot;&gt;&apos;network&apos;&lt;/font&gt;&lt;/font&gt;).&amp;nbsp;&amp;nbsp;If anyone has encountered the &amp;quot;&lt;em&gt;TypeError: sslwrap() argument 1 must be _socket.socket, not _socketobject&lt;/em&gt;&amp;quot; above and knows how to workaround it, I&apos;m all ears.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;</description>
  <comments>http://knowbody.livejournal.com/18293.html</comments>
  <lj:mood>tired</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/17428.html</guid>
  <pubDate>Thu, 23 Jul 2009 19:15:51 GMT</pubDate>
  <title>Python 2.5 Reference Card</title>
  <link>http://knowbody.livejournal.com/17428.html</link>
  <description>&lt;a href=&quot;http://users.physik.fu-berlin.de/~goerz/blog/wp-content/uploads/2008/09/python_refcard.pdf&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: large&quot;&gt;http://users.physik.fu-berlin.de/~goerz/blog/wp-content/uploads/2008/09/python_refcard.pdf&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large&quot;&gt;&lt;br /&gt;&lt;br /&gt;Applicable to IronPython 2.0.2 and largely relevant to IronPython 2.6.&lt;br /&gt;&lt;/span&gt;</description>
  <comments>http://knowbody.livejournal.com/17428.html</comments>
  <category>ironpython</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/17170.html</guid>
  <pubDate>Thu, 23 Jul 2009 18:19:55 GMT</pubDate>
  <title>Good interpersonal relationship advice</title>
  <link>http://knowbody.livejournal.com/17170.html</link>
  <description>&lt;br /&gt;This is a general summary of Dale Carnegie&apos;s &amp;quot;How to Win Friends and Influence People&amp;quot;.&amp;nbsp; The book was published in the 1930s but is still completely applicable today.&amp;nbsp; My two cents is that anyone in a management type position should try to live by this:&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;a name=&quot;one&quot;&gt;&lt;font size=&quot;-1&quot;&gt;&lt;i&gt;Part One&lt;/i&gt;&lt;/font&gt;&lt;/a&gt;&lt;/center&gt;&lt;h2&gt;Fundamental Techniques in Handling People&lt;/h2&gt;&lt;tt&gt;&lt;ol&gt;&lt;li&gt;Don&apos;t criticize, condemn or complain.&lt;/li&gt;&lt;li&gt;Give honest and sincere appreciation.&lt;/li&gt;&lt;li&gt;Arouse in the other person an eager want.&lt;/li&gt;&lt;/ol&gt;&lt;/tt&gt;&lt;hr /&gt;&lt;center&gt;&lt;a name=&quot;two&quot;&gt;&lt;font size=&quot;-1&quot;&gt;&lt;i&gt;Part Two&lt;/i&gt;&lt;/font&gt;&lt;/a&gt;&lt;/center&gt;&lt;h2&gt;Six ways to make people like you&lt;/h2&gt;&lt;tt&gt;&lt;ol&gt;&lt;li&gt;Become genuinely interested in other people.&lt;/li&gt;&lt;li&gt;Smile.&lt;/li&gt;&lt;li&gt;Remember that a person&apos;s name is to that person the sweetest and most important sound in any language.&lt;/li&gt;&lt;li&gt;Be a good listener. Encourage others to talk about themselves.&lt;/li&gt;&lt;li&gt;Talk in terms of the other person&apos;s interests.&lt;/li&gt;&lt;li&gt;Make the other person feel important - and do it sincerely.&lt;/li&gt;&lt;/ol&gt;&lt;/tt&gt;&lt;hr /&gt;&lt;center&gt;&lt;a name=&quot;three&quot;&gt;&lt;font size=&quot;-1&quot;&gt;&lt;i&gt;Part Three&lt;/i&gt;&lt;/font&gt;&lt;/a&gt;&lt;/center&gt;&lt;h2&gt;Win people to your way of thinking&lt;/h2&gt;&lt;tt&gt;&lt;ol&gt;&lt;li&gt;The only way to get the best of an argument is to avoid it.&lt;/li&gt;&lt;li&gt;Show respect for the other person&apos;s opinions. Never say, &amp;quot;You&apos;re wrong.&amp;quot;&lt;/li&gt;&lt;li&gt;If you are wrong, admit it quickly and emphatically.&lt;/li&gt;&lt;li&gt;Begin in a friendly way.&lt;/li&gt;&lt;li&gt;Get the other person saying &amp;quot;yes, yes&amp;quot; immediately.&lt;/li&gt;&lt;li&gt;Let the other person do a great deal of the talking.&lt;/li&gt;&lt;li&gt;Let the other person feel that the idea is his or hers.&lt;/li&gt;&lt;li&gt;Try honestly to see things from the other person&apos;s point of view.&lt;/li&gt;&lt;li&gt;Be sympathetic with the other person&apos;s ideas and desires.&lt;/li&gt;&lt;li&gt;Appeal to the nobler motives.&lt;/li&gt;&lt;li&gt;Dramatize your ideas.&lt;/li&gt;&lt;li&gt;Throw down a challenge.&lt;/li&gt;&lt;/ol&gt;&lt;/tt&gt;&lt;hr /&gt;&lt;center&gt;&lt;a name=&quot;four&quot;&gt;&lt;font size=&quot;-1&quot;&gt;&lt;i&gt;Part Four&lt;/i&gt;&lt;/font&gt;&lt;/a&gt;&lt;/center&gt;&lt;h2&gt;Be a Leader: How to Change People Without Giving Offense or Arousing Resentment&lt;/h2&gt;A leader&apos;s job often includes changing your people&apos;s attitudes and behavior. Some suggestions to accomplish this: &lt;tt&gt;&lt;ol&gt;&lt;li&gt;Begin with praise and honest appreciation.&lt;/li&gt;&lt;li&gt;Call attention to people&apos;s mistakes indirectly.&lt;/li&gt;&lt;li&gt;Talk about your own mistakes before criticizing the other person.&lt;/li&gt;&lt;li&gt;Ask questions instead of giving direct orders.&lt;/li&gt;&lt;li&gt;Let the other person save face.&lt;/li&gt;&lt;li&gt;Praise the slightest improvement and praise every improvement. Be &amp;quot;hearty in your approbation and lavish in your praise.&amp;quot;&lt;/li&gt;&lt;li&gt;Give the other person a fine reputation to live up to.&lt;/li&gt;&lt;li&gt;Use encouragement. Make the fault seem easy to correct.&lt;/li&gt;&lt;li&gt;Make the other person happy about doing the thing you suggest.&lt;/li&gt;&lt;/ol&gt;&lt;/tt&gt;</description>
  <comments>http://knowbody.livejournal.com/17170.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/16946.html</guid>
  <pubDate>Thu, 23 Jul 2009 16:51:34 GMT</pubDate>
  <title>IronPython 2.6 Beta 2 Released!</title>
  <link>http://knowbody.livejournal.com/16946.html</link>
  <description>&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: #0066ff; font-size: 11pt; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: &amp;#39;Times New Roman&amp;#39;; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA&quot;&gt;&lt;a href=&quot;http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27350&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: x-large&quot;&gt;&lt;span style=&quot;color: #0066ff&quot;&gt;http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27350&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-size: large&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: &amp;#39;Times New Roman&amp;#39;; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA&quot;&gt;Lots of improvements in this release.&amp;nbsp; Startup time on 64-bit OSes should be about 33% faster, the _ctypes module has been implemented, and the Python debugger module, pdb, works for basic scenarios.&lt;/span&gt;&lt;/span&gt;</description>
  <comments>http://knowbody.livejournal.com/16946.html</comments>
  <category>ironpython</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/16735.html</guid>
  <pubDate>Wed, 22 Jul 2009 15:41:55 GMT</pubDate>
  <title>IronPython 2.0.2 Released</title>
  <link>http://knowbody.livejournal.com/16735.html</link>
  <description>&lt;a href=&quot;http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=22981&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: large&quot;&gt;http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=22981&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large&quot;&gt;&lt;br /&gt;&lt;br /&gt;This is a pretty typical patch release of IronPython as it just includes a few bug fixes, assembly version numbers are the same, etc.&amp;nbsp; The only other interesting thing to report is it&apos;s every so slightly slower than IronPython 2.0.1 (see &lt;a href=&quot;http://ironpython.codeplex.com/Wiki/View.aspx?title=IP202VsCPy25Perf&amp;amp;referringTitle=Home&quot; rel=&quot;nofollow&quot;&gt;http://ironpython.codeplex.com/Wiki/View.aspx?title=IP202VsCPy25Perf&amp;amp;referringTitle=Home&lt;/a&gt;&amp;nbsp;and compare this to &lt;a href=&quot;http://ironpython.codeplex.com/Wiki/View.aspx?title=IP201VsCPy25Perf&amp;amp;referringTitle=Home&quot; rel=&quot;nofollow&quot;&gt;http://ironpython.codeplex.com/Wiki/View.aspx?title=IP201VsCPy25Perf&amp;amp;referringTitle=Home&lt;/a&gt;) which could very well be attributable to machine jitter.&lt;br /&gt;&lt;/span&gt;</description>
  <comments>http://knowbody.livejournal.com/16735.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/16576.html</guid>
  <pubDate>Wed, 08 Jul 2009 17:40:51 GMT</pubDate>
  <title>North Carolina State&apos;s Computer Science Department</title>
  <link>http://knowbody.livejournal.com/16576.html</link>
  <description>&lt;span style=&quot;font-size: large&quot;&gt;Anyone have strong opinions on the computer science program at North Carolina State University?&amp;nbsp; They seem to have a distance education program for a Masters of Computer Science degree - see &lt;/span&gt;&lt;a href=&quot;http://www.csc.ncsu.edu/academics/graduate/degrees/mcsdl.php&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: large&quot;&gt;www.csc.ncsu.edu/academics/graduate/degrees/mcsdl.php&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large&quot;&gt;.&amp;nbsp; Awfully tempting given their (relatively) low tuition rate and Microsoft&apos;s tuition reimbursement program...&lt;br /&gt;&lt;br /&gt;Also, does anyone know of any other major universities with a MSCS distance education program?&lt;br /&gt;&lt;/span&gt;</description>
  <comments>http://knowbody.livejournal.com/16576.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>2</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/16210.html</guid>
  <pubDate>Fri, 26 Jun 2009 16:10:15 GMT</pubDate>
  <title>And now for something completely different</title>
  <link>http://knowbody.livejournal.com/16210.html</link>
  <description>&lt;span style=&quot;font-size: medium;&quot;&gt;I believe I&apos;m not really allowed to comment on the &lt;/span&gt;&lt;a href=&quot;http://www.itwriting.com/blog/1553-eu-responds-to-questions-on-microsofts-plans-for-windows-7.html&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;European Commission complaining that Microsoft is unbundling Internet Explorer from Windows 7 in the EU&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: medium;&quot;&gt;, so I&apos;ll comment on something else entirely...&amp;nbsp; It goes without saying that the opinions expressed here are entirely my own.&lt;/span&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;br /&gt;Seeing as&amp;nbsp;Toyota is now the world leader in automobile sales, I&apos;d like to see the US Federal Trade Commission file an anti-trust suit against them for the unfair bundling of GPS units&amp;nbsp;in their cars.&amp;nbsp; You see...due to these GPS&apos;s being physically attached to the interior of the vehicle I&apos;m hurt as a consumer because:&lt;/span&gt;&lt;ul&gt;    &lt;li&gt;&lt;span style=&quot;font-size: large;&quot;&gt;I can&apos;t install a portable unit from a different GPS manufacturer inside the vehicle.&amp;nbsp; Err...now that I think about it the portable units install on the windshield or the dash and get powered by cigarette lighter outlets&amp;nbsp;so&amp;nbsp;this is not actually an issue&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The vehicle doesn&apos;t come with a map of local electronics stores where I could buy my own portable GPS unit.&amp;nbsp; Oh...now that I think about it I Toyota&apos;s built-in GPS unit will actually HELP me to find these stores selling competing GPS units.&amp;nbsp; Darn again&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style=&quot;font-size: large;&quot;&gt;My car insurance won&apos;t cover the theft of Toyota&apos;s GPS unit because it&apos;s physically attached to the vehicle.&amp;nbsp; No, wait...that&apos;s not right either.&amp;nbsp; It&apos;s the other way around which actually provides a huge benefit to me&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Ten years ago no cars came with GPS units pre-installed on them and I don&apos;t want to pay whatever extra money Toyota is adding to the base vehicle price to cover this GPS.&amp;nbsp; On that note,&amp;nbsp;I don&apos;t want to pay for the heater or&amp;nbsp;useless things like seat belts and parking brakes either&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Hopefully you realize the absurdities above are intended as pure sarcasm.&amp;nbsp; My wife and I love the Toyota Rav4 we bought a couple years ago and WISH they bundled all Rav4s with GPS units.&amp;nbsp; Maybe if they did our car wouldn&apos;t have been broken into for&amp;nbsp;the portable unit last year.&lt;/span&gt;&lt;br /&gt;</description>
  <comments>http://knowbody.livejournal.com/16210.html</comments>
  <lj:mood>confused</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>5</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/16023.html</guid>
  <pubDate>Tue, 23 Jun 2009 19:43:21 GMT</pubDate>
  <title>IronPython 2.6 Startup Time Now 34% Faster Under x64</title>
  <link>http://knowbody.livejournal.com/16023.html</link>
  <description>&lt;span style=&quot;font-size: large&quot;&gt;&lt;strong&gt;&lt;span&gt;DISCLAIMER&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span&gt;The performance numbers called out below were obtained using Ngen&apos;ed IronPython/DLR&amp;nbsp;assemblies&amp;nbsp;with CPython&apos;s stdlib in sys.path.&amp;nbsp;&amp;nbsp;It&amp;nbsp;goes without saying that&amp;nbsp;your (performance) mileage will vary greatly depending on your machine setup.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style=&quot;margin-left: 40px&quot;&gt;&lt;span style=&quot;font-size: large&quot;&gt;&lt;span&gt;&lt;br /&gt;PS C:\SnapTempi&amp;gt; type hw.py&lt;br /&gt;print &amp;quot;Hello World&amp;quot;&lt;br /&gt;&lt;br /&gt;PS C:\SnapTemp&amp;gt; (measure-command {&amp;amp;&amp;quot;C:\Program Files (x86)\IronPython 2.6\&lt;span style=&quot;color: #00ff00&quot;&gt;ipy.exe&lt;/span&gt;&amp;quot; hw.py}).TotalSeconds&lt;br /&gt;&lt;strong&gt;1.1590107&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;PS C:\SnapTemp\&amp;gt; (measure-command {&amp;amp;&amp;quot;C:\Program Files (x86)\IronPython 2.6\&lt;span style=&quot;color: #ff6600&quot;&gt;ipy&lt;strong&gt;64&lt;/strong&gt;.exe&lt;/span&gt;&amp;quot; hw.py}).TotalSeconds&lt;br /&gt;&lt;strong&gt;1.7733379&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-size: large&quot;&gt;&lt;span&gt;Allow me to elaborate on this perf gain...Dino made a change recently such that ipy.exe is now strictly a 32-bit only assembly.&amp;nbsp; That is, it gets executed as a 32-bit CLR process on both x86 and x64 operating systems.&amp;nbsp; ipy64.exe, despite what its name might imply, is a platform agnostic assembly matching the old behavior of&amp;nbsp;ipy.exe in the sense that it gets executed as a 32-bit process on 32-bit OSes and 64-bit on 64-bit OSes.&amp;nbsp; At least part of the perf gain here comes from the fact that my simple Hello World program is most definitely not consuming anywhere near 4 gigs of memory, and overall memory consumption goes up for 64-bit processes =&amp;gt; remember the size of pointers gets doubled.&amp;nbsp; Just checked and the&amp;nbsp;physical memory working set of ipy.exe was 31K compared to 44K under ipy64.exe for the Hello World program.&amp;nbsp; This ~30% difference in memory consumption helps explain why we get better perf under ipy.exe.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=&quot;font-size: large&quot;&gt;&lt;br /&gt;&lt;/span&gt;</description>
  <comments>http://knowbody.livejournal.com/16023.html</comments>
  <category>performance</category>
  <category>ironpython</category>
  <category>python</category>
  <lj:mood>tired</lj:mood>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/15675.html</guid>
  <pubDate>Thu, 18 Jun 2009 05:06:31 GMT</pubDate>
  <title>Python Support in Visual Studio</title>
  <link>http://knowbody.livejournal.com/15675.html</link>
  <description>  &lt;p&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Every couple of months we see a bug report on IronPython Studio or someone on the IronPython Mailing List asking why Microsoft doesn&amp;rsquo;t support Python in Visual Studio.&amp;nbsp; Most recently there was a pretty lengthy thread about Python intellisense in VS &amp;ndash; see &lt;/span&gt;&lt;a href=&quot;http://lists.ironpython.com/pipermail/users-ironpython.com/2009-June/010566.html&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;http://lists.ironpython.com/pipermail/users-ironpython.com/2009-June/010566.html&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt;.&amp;nbsp; I&amp;rsquo;ll attempt to shed more light on some facts mentioned in the thread&amp;hellip;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: large;&quot;&gt;A long time ago (2005), in a galaxy far, far away (Microsoft&amp;rsquo;s building 42) at least one Jedi (aka software engineer) used the Visual Studio Force to put together a Python light saber&amp;hellip;err&amp;hellip;I mean &amp;lsquo;language service&amp;rsquo; for Visual Studio 2005 &amp;ndash; see &lt;/span&gt;&lt;a href=&quot;http://lists.ironpython.com/pipermail/users-ironpython.com/2005-December/001375.html&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;http://lists.ironpython.com/pipermail/users-ironpython.com/2005-December/001375.html&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt; for background.&amp;nbsp; A &amp;lsquo;language service&amp;rsquo; is simply an extension to Visual Studio that makes it aware of one or more file extensions denoting a programming language Visual Studio doesn&amp;rsquo;t understand by default.&amp;nbsp; Among other things, this means Visual Studio might provide syntax highlighting for the programming language in the editor.&amp;nbsp; Any ways, this particular Python language service was &lt;b style=&quot;&quot;&gt;never&lt;/b&gt; intended to provide complete IronPython support for Visual Studio.&amp;nbsp; Instead, this was bundled with the VS 2005 SDK as a complete sample to show developers how to extend Visual Studio for their own programming languages.&amp;nbsp; I&amp;rsquo;m not even sure any testers on the IronPython team ever evaluated this sample, but do believe we had at least one developer working on it.&amp;nbsp; I can&amp;rsquo;t really provide too many more details on the Python language service in the VS 2005 SDK as I didn&amp;rsquo;t join the IronPython team until summer 2006.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://www.codeplex.com/IronPythonStudio&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;IronPython Studio&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt; was an update to the VS 2005 SDK Python language service for VS 2008 put together by a consulting firm named Clarius Consulting Labs.&amp;nbsp; To the best of my knowledge the IronPython Team had no involvement in the creation of IronPython Studio.&amp;nbsp; Also, the emphasis again was on being a &lt;b style=&quot;&quot;&gt;complete&lt;/b&gt; VS language service implementation and not necessarily adding the best Python support to VS.&amp;nbsp; I think it&amp;rsquo;s a little unfortunate this tool has &amp;lsquo;IronPython&amp;rsquo; in the title as this confuses people and leads them to believe we have the ability to fix bugs in it and also add new features (none of the IronPython Team is even listed as contributors to IronPython Studio &amp;ndash; see &lt;/span&gt;&lt;a href=&quot;http://ironpythonstudio.codeplex.com/People/ProjectPeople.aspx&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;http://ironpythonstudio.codeplex.com/People/ProjectPeople.aspx&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt;).&amp;nbsp; Finally, a few people in the IronPython community have observed that this piece of software is &amp;ldquo;abandonware&amp;rdquo;. &amp;nbsp;I agree, but wouldn&amp;rsquo;t be too surprised if it got revived for VS2010.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size: large;&quot;&gt;I think I speak for everyone on the IronPython Team when I say we&amp;rsquo;d love to see IronPython support in Visual Studio by default without the need for any language service addition.&amp;nbsp; The thing is these types of decisions are made at a much higher level than us and are heavily influenced by business needs.&amp;nbsp; What I&amp;rsquo;m getting at here is if enough people provided feedback via the proper channels that:&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The next version of VS is great, but it&amp;rsquo;d be better if it supported Python development&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: large;&quot;&gt;You don&amp;rsquo;t currently use VS but you would if it had Python support&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Ahem&amp;hellip;you&amp;rsquo;d be willing to pay for IronPython support in VS&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Etc&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style=&quot;font-size: large;&quot;&gt;then the next version of VS could very well have Python support built into it&lt;span style=&quot;font-family: Wingdings;&quot;&gt;J&lt;/span&gt;&amp;nbsp; What are the proper channels for feedback you ask?&amp;nbsp; The VS 2010 feedback page (&lt;/span&gt;&lt;a href=&quot;https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=9790&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=9790&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt;) would be a great start. &lt;/span&gt;&lt;/p&gt;</description>
  <comments>http://knowbody.livejournal.com/15675.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/15490.html</guid>
  <pubDate>Thu, 18 Jun 2009 02:43:00 GMT</pubDate>
  <title>Congratulations to the Jython Team</title>
  <link>http://knowbody.livejournal.com/15490.html</link>
  <description>&lt;a href=&quot;http://fwierzbicki.blogspot.com/2009/06/jython-250-final-is-out.html&quot; rel=&quot;nofollow&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Looks like&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: large;&quot;&gt; the Jython guys just released 2.5.0 final!&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-size: large;&quot;&gt; I&apos;m curious as to which version of CPython they target next compatibility wise...&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description>
  <comments>http://knowbody.livejournal.com/15490.html</comments>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
<item>
  <guid isPermaLink='true'>http://knowbody.livejournal.com/15177.html</guid>
  <pubDate>Tue, 02 Jun 2009 23:42:44 GMT</pubDate>
  <title>Umm...</title>
  <link>http://knowbody.livejournal.com/15177.html</link>
  <description>&lt;span style=&quot;font-size: medium&quot;&gt;IronPython most definitely should not be able to spawn an error message box that&apos;s visible when Vista is locked at the username/password screen:&lt;div style=&quot;text-align: center&quot;&gt;&lt;a href=&quot;http://pics.livejournal.com/knowbody/pic/00006r2t/&quot; rel=&quot;nofollow&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; style=&quot;width: 400px; height: 300px&quot; src=&quot;http://pics.livejournal.com/knowbody/pic/00006r2t/s320x240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: medium&quot;&gt;Quite annoying yet very interesting at the same time...&lt;/span&gt;</description>
  <comments>http://knowbody.livejournal.com/15177.html</comments>
  <category>vista</category>
  <category>ironpython</category>
  <lj:security>public</lj:security>
  <lj:reply-count>0</lj:reply-count>
</item>
</channel>
</rss>
