<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2383828208827101325</id><updated>2012-02-16T17:09:59.000Z</updated><category term='LINQ'/><category term='ILMerge'/><category term='tracking'/><category term='static'/><category term='leak'/><category term='reCAPTCHA'/><category term='HtmlAgilityPack'/><category term='uTorrent'/><category term='memory'/><category term='assembly'/><category term='windows 7'/><category term='taskbar'/><category term='C#'/><category term='DHT'/><category term='3D'/><category term='XPath'/><category term='plugin'/><category term='stereo'/><category term='GIMP'/><category term='icon'/><category term='foobar'/><category term='link'/><category term='patcher'/><category term='image'/><category term='work'/><category term='OCR'/><category term='patch'/><category term='foobar2000'/><title type='text'>Just One Another Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-991192634845744180</id><published>2011-10-08T17:40:00.009+01:00</published><updated>2011-10-08T18:24:22.839+01:00</updated><title type='text'>FAR3 Color Tuner</title><content type='html'>&lt;p&gt;
Although FAR3 haven't been officially &lt;a target="_blank" href="http://farmanager.com/download.php?l=en"&gt;released&lt;/a&gt;, you already can get some builds &lt;a target="_blank" href="http://code.google.com/p/conemu-maximus5/downloads/list"&gt;here&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;
For those who doesn't know it's free (BSD-like license) console file manager for Windows, like Total Commander. Besides of the freeness it has a big amount of plugins for almost every business. Earlier all they could be get from the &lt;a target="_blank" href="http://http://plugring.farmanager.com/"&gt;plugring&lt;/a&gt; but now it seems that not all authors use it. You can also find plugins on the &lt;a target="_blank" href="http://forum.farmanager.com/"&gt;forum&lt;/a&gt; but you probably have to know Russian :).
&lt;/p&gt;

&lt;p&gt;
One of the main (at least for me) feature of the 3.0 version is truecolor support (with &lt;a target="_blank" href="http://code.google.com/p/conemu-maximus5/downloads/list"&gt;ConEmu&lt;/a&gt; ONLY. I use "Maximus5" version).
&lt;/p&gt;

&lt;p&gt;
FAR3 Color Tuner program provides quick and easy color control. It can tune standard colors and file highlight colors:
&lt;/p&gt;

&lt;div class="screenshot"&gt;
&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-IrZ5whWvsgk/TpCCbPHzsDI/AAAAAAAAADE/qLdlZrxI0SU/s1600/far3colortuner.png"&gt;&lt;img style="cursor:hand;width: 400px; height: 209px;" src="http://2.bp.blogspot.com/-IrZ5whWvsgk/TpCCbPHzsDI/AAAAAAAAADE/qLdlZrxI0SU/s400/far3colortuner.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5661168136032071730" /&gt;&lt;/a&gt;
&lt;/div&gt;

&lt;p&gt;
You can load, save, export and import colors.
&lt;/p&gt;

&lt;p&gt;
All colors are being converted to truecolor.
&lt;/p&gt;

&lt;p&gt;
Attached config have the following colors:
&lt;/p&gt;

&lt;div class="screenshot"&gt;
&lt;img style="width: 576px; height: 459px;" src="http://4.bp.blogspot.com/-H4_dBNre2SA/TpCDmCIJdOI/AAAAAAAAADM/HvW1pntx6fY/s1600/far3colorfilespanels.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5661169421034026210" /&gt;
&lt;/div&gt;

&lt;p&gt;
&lt;a target="_blank" href="http://sites.google.com/site/gmlite/FAR3ColorTuner_v01.7z?attredirects=0&amp;d=1"&gt;Download FAR3 Color Tuner v0.1 with sqlite library&lt;/a&gt; (341 KB)
&lt;/p&gt;

&lt;p&gt;
&lt;a target="_blank" href="http://sites.google.com/site/gmlite/FAR3ColorTuner_v01_src.7z?attredirects=0&amp;d=1"&gt;Download FAR3 Color Tuner v0.1 Sources&lt;/a&gt; (29 KB)
&lt;/p&gt;

&lt;p&gt;
P.S. The program is written on .NET 4, you can get it &lt;a target="_blank" href="http://www.microsoft.com/download/en/details.aspx?id=17851"&gt;here&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-991192634845744180?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/991192634845744180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2011/10/far3-color-tuner.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/991192634845744180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/991192634845744180'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2011/10/far3-color-tuner.html' title='FAR3 Color Tuner'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-IrZ5whWvsgk/TpCCbPHzsDI/AAAAAAAAADE/qLdlZrxI0SU/s72-c/far3colortuner.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-9195985366497457147</id><published>2011-10-08T17:05:00.009+01:00</published><updated>2011-10-08T17:39:24.453+01:00</updated><title type='text'>Preventing of Submiting JQuery.UI Dialogs on Return</title><content type='html'>&lt;p&gt;
Look at the usual JQuery.UI &lt;a target="_blank" href="http://liiws.com/examples/jquery.ui.dialog-2-fields.htm"&gt;dialog example&lt;/a&gt;. It works the same way as the &lt;a target="_blank" href="http://jqueryui.com/demos/dialog/#modal-form"&gt;official site example&lt;/a&gt; - you can press Enter in the fields and nothing will happen. But check out &lt;a target="_blank" href="http://liiws.com/examples/jquery.ui.dialog-1-field.htm"&gt;this one&lt;/a&gt;. It submits the form (dialog).
&lt;/p&gt;

&lt;p&gt;
You may think that the workaround is to add a hidden input field:
&lt;/p&gt;

&lt;div class="sources"&gt;
&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;&lt;font color="#0000ff"&gt;&amp;#60;&lt;/font&gt;&lt;font color="#800000"&gt;input&lt;/font&gt; &lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;="hidden"&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;#62;&lt;/font&gt;&lt;/font&gt;&lt;/code&gt;
&lt;/div&gt;

&lt;p&gt;
but it doesn't work. Adding the normal text input hidden by css &lt;a target="_blank" href="http://liiws.com/examples/jquery.ui.dialog-1-field-ok.htm"&gt;will help&lt;/a&gt;:
&lt;/p&gt;

&lt;div class="sources"&gt;
&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;&lt;font color="#0000ff"&gt;&amp;#60;&lt;/font&gt;&lt;font color="#800000"&gt;input&lt;/font&gt; &lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;="text"&lt;/font&gt; &lt;font color="#ff0000"&gt;style&lt;/font&gt;&lt;font color="#0000ff"&gt;="display: none;"&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;#62;&lt;/font&gt;&lt;/font&gt;&lt;/code&gt;
&lt;/div&gt;

&lt;p&gt;
Another way is to remove the &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; tag, but it isn't suitable if you have many fields and want use &lt;a target="_blank" href="http://api.jquery.com/serialize/"&gt;serialize&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-9195985366497457147?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/9195985366497457147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2011/10/preventing-of-submiting-jqueryui.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/9195985366497457147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/9195985366497457147'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2011/10/preventing-of-submiting-jqueryui.html' title='Preventing of Submiting JQuery.UI Dialogs on Return'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-3267499520006664252</id><published>2011-03-19T19:58:00.022Z</published><updated>2011-03-19T21:33:05.763Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='OCR'/><category scheme='http://www.blogger.com/atom/ns#' term='reCAPTCHA'/><title type='text'>reCAPTCHA Recognition</title><content type='html'>&lt;p&gt;
A few days ago I was required to pass &lt;a href="http://www.google.com/recaptcha"&gt;reCAPTCHA&lt;/a&gt; for many times. And I noticed that it's being accepted even if it's wrong. So, I decided to examine how accurately it works.
&lt;/p&gt;

&lt;p&gt;
The result was sad :).
&lt;/p&gt;

&lt;p&gt;
While Chad Houck and Jason Lee broke the captcha on &lt;a href="http://www.defcon.org/html/links/dc-archives/dc-18-archive.html"&gt;DEF CON 18&lt;/a&gt; it has another vulnerability.
&lt;/p&gt;

&lt;p&gt;
I tested percentage of wrong accepting and some of them are shown below.
&lt;/p&gt;

&lt;table class="stats-table"&gt;
&lt;tr&gt;
  &lt;th&gt;Distance
  &lt;th&gt;Accepted?
  &lt;th&gt;Right / Wrong
  &lt;th&gt;Image
&lt;tr&gt;
  &lt;td&gt;1
  &lt;td&gt;Y
  &lt;td&gt;gromor prolog&lt;br/&gt;gromor prolo&lt;b&gt;k&lt;/b&gt;
  &lt;td&gt;&lt;img class="no-border" src="https://sites.google.com/site/gmlite/recaptcha1-1.jpeg?attredirects=0"/&gt;
&lt;tr&gt;
  &lt;td&gt;1
  &lt;td&gt;Y
  &lt;td&gt;dentl anthony&lt;br/&gt;dentl an&lt;b&gt;g&lt;/b&gt;hony
  &lt;td&gt;&lt;img class="no-border" src="https://sites.google.com/site/gmlite/recaptcha1-2.jpeg?attredirects=0"/&gt;
&lt;tr&gt;
  &lt;td&gt;2
  &lt;td&gt;Y
  &lt;td&gt;any etiation&lt;br/&gt;an&lt;b&gt;q&lt;/b&gt; eti&lt;b&gt;o&lt;/b&gt;tion
  &lt;td&gt;&lt;img class="no-border" src="https://sites.google.com/site/gmlite/recaptcha2-1.jpeg?attredirects=0"/&gt;
&lt;tr&gt;
  &lt;td&gt;2
  &lt;td&gt;Y
  &lt;td&gt;121 cipansi&lt;br/&gt;12&lt;b&gt;5&lt;/b&gt; cipa&lt;b&gt;f&lt;/b&gt;si
  &lt;td&gt;&lt;img class="no-border" src="https://sites.google.com/site/gmlite/recaptcha2-2.jpeg?attredirects=0"/&gt;
&lt;tr&gt;
  &lt;td&gt;2
  &lt;td&gt;Y
  &lt;td&gt;bilii three&lt;br/&gt;bili&lt;b&gt;y&lt;/b&gt; three&lt;b&gt;e&lt;/b&gt;
  &lt;td&gt;&lt;img class="no-border" src="https://sites.google.com/site/gmlite/recaptcha2-3.jpeg?attredirects=0"/&gt;
&lt;tr&gt;
  &lt;td&gt;3
  &lt;td&gt;Y
  &lt;td&gt;meolo scc&lt;br/&gt;me&lt;b&gt;e&lt;/b&gt;lo sc&lt;b&gt;oo&lt;/b&gt;
  &lt;td&gt;&lt;img class="no-border" src="https://sites.google.com/site/gmlite/recaptcha3-1.jpeg?attredirects=0"/&gt;
&lt;tr&gt;
  &lt;td&gt;3
  &lt;td&gt;Y
  &lt;td&gt;flowered crocc&lt;br/&gt;fl&lt;b&gt;a&lt;/b&gt;we&lt;b&gt;t&lt;/b&gt;ed cro&lt;b&gt;q&lt;/b&gt;c
  &lt;td&gt;&lt;img class="no-border" src="https://sites.google.com/site/gmlite/recaptcha3-2.jpeg?attredirects=0"/&gt;
&lt;/table&gt;

&lt;p&gt;
You can see that accuracy is not very high. Codes with up to three errors were accepted almost all the time. Codes with four errors were accepted very rarely. Also I didn't notice that letter matching matters.
&lt;/p&gt;

&lt;p&gt;
I haven't yet need to break Google's &lt;a href="http://www.google.com/recaptcha"&gt;reCAPTCHA&lt;/a&gt; but I have already known one of its weakness. You can use it too - don't waste much your attention recognizing the words, like I did before I got this :).
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-3267499520006664252?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/3267499520006664252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2011/03/recaptcha-recognition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/3267499520006664252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/3267499520006664252'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2011/03/recaptcha-recognition.html' title='reCAPTCHA Recognition'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-3961581131950394920</id><published>2011-02-16T19:06:00.025Z</published><updated>2011-02-16T19:54:09.849Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='GIMP'/><category scheme='http://www.blogger.com/atom/ns#' term='icon'/><title type='text'>GIMP Easy Icon Creation</title><content type='html'>&lt;p&gt;
It's not often I need to make icons but it happens sometimes. Having no favorite tool for creation I tried GIMP. I was surprised how easy it can create icon with several images.
&lt;/p&gt;

&lt;p&gt;
First of all create image with biggest size you need. I chose 64x64. You might also want to create a layer with background to see the result better. I usually use white or dark-blue depending on foreground image lightness.
&lt;/p&gt;

&lt;div class="screenshot"&gt;
&lt;img style="width: 463px; height: 253px;" src="http://1.bp.blogspot.com/-EEXVKHFw66A/TVwjrl3k8VI/AAAAAAAAAB4/20nlJxpNzYk/s1600/gimp_icon1.png" alt=""id="BLOGGER_PHOTO_ID_5574369670584398162" /&gt;
&lt;/div&gt;

&lt;p&gt;
Then duplicate the layer with icon and select "Scale Layer.." from layer's right-click menu. Resize it to next size you need, ex. 32x32. Note, that unlike in Photoshop you can have layers with different size. By default you'll see current layer's border.
&lt;/p&gt;

&lt;div class="screenshot"&gt;
&lt;img style="width: 461px; height: 252px;" src="http://4.bp.blogspot.com/-IKZ1b59LAjM/TVwly8WChdI/AAAAAAAAACA/-2BUOLkJlLs/s1600/gimp_icon2.png" alt="" /&gt;
&lt;/div&gt;

&lt;p&gt;
Let's create the last layer 16x16 and colorize layers with different colors. Also delete background before saving icon (leave only layers with icon images).
&lt;/p&gt;

&lt;div class="screenshot"&gt;
&lt;img style="width: 460px; height: 252px;" src="http://3.bp.blogspot.com/-dzcTvrfCfiY/TVwmx4Qd6xI/AAAAAAAAACI/ewlXWxHpf8Y/s1600/gimp_icon4.png" alt="" /&gt;
&lt;/div&gt;

&lt;p&gt;
Now save document as .ico file.
&lt;/p&gt;

&lt;div class="screenshot"&gt;
&lt;img style="width: 674px; height: 328px;" src="http://4.bp.blogspot.com/-IottQ1D1y6A/TVwnyI_xWiI/AAAAAAAAACQ/uEIVajhzHbM/s1600/gimp_icon5.png" alt=""id="BLOGGER_PHOTO_ID_5574374181139733026" /&gt;
&lt;/div&gt;

&lt;p&gt;
Now you have icon with all the images. On the following screenshot explorer shows different images in file list window (16x16 icon) and preview window (smaller sized 64x64 icon).
&lt;/p&gt;

&lt;div class="screenshot"&gt;
&lt;img style="width: 362px; height: 342px;" src="http://4.bp.blogspot.com/-zw336-wlMmo/TVwpB6XOjnI/AAAAAAAAACY/mm6Y3do9QpQ/s1600/gimp_icon6.png" alt=""id="BLOGGER_PHOTO_ID_5574375551601118834" /&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-3961581131950394920?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/3961581131950394920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2011/02/gimp-easy-icon-creation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/3961581131950394920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/3961581131950394920'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2011/02/gimp-easy-icon-creation.html' title='GIMP Easy Icon Creation'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-EEXVKHFw66A/TVwjrl3k8VI/AAAAAAAAAB4/20nlJxpNzYk/s72-c/gimp_icon1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-6863421541544949581</id><published>2011-02-05T16:57:00.007Z</published><updated>2011-02-06T18:49:59.257Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='XPath'/><category scheme='http://www.blogger.com/atom/ns#' term='HtmlAgilityPack'/><title type='text'>HtmlAgilityPack and XPath Peculiarity</title><content type='html'>&lt;p&gt;
Parsing several HTML pages I noticed that &lt;a href="http://htmlagilitypack.codeplex.com/"&gt;HtmlAgilityPack&lt;/a&gt; doesn't consider that its node has relative path for XPath. The following code illustrates this:
&lt;/p&gt;

&lt;div class="sources"&gt;
&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; html = &lt;font color="#A31515"&gt;@"&lt;br&gt;&amp;#60;div class="&lt;/font&gt;&lt;font color="#A31515"&gt;"header"&lt;/font&gt;&lt;font color="#A31515"&gt;"&amp;#62;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#60;p&amp;#62;header &amp;#60;span&amp;#62;paragraph 1-1&amp;#60;/span&amp;#62;&amp;#60;/p&amp;#62;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#60;p&amp;#62;header &amp;#60;span&amp;#62;paragraph 1-2&amp;#60;/span&amp;#62;&amp;#60;/p&amp;#62;&lt;br&gt;&amp;#60;/div&amp;#62;&lt;br&gt;&amp;#60;div class="&lt;/font&gt;&lt;font color="#A31515"&gt;"content"&lt;/font&gt;&lt;font color="#A31515"&gt;"&amp;#62;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#60;p&amp;#62;content &amp;#60;span&amp;#62;paragraph 2-1&amp;#60;/span&amp;#62;&amp;#60;/p&amp;#62;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;#60;p&amp;#62;content &amp;#60;span&amp;#62;paragraph 2-2&amp;#60;/span&amp;#62;&amp;#60;/p&amp;#62;&lt;br&gt;&amp;#60;div&amp;#62;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;"&lt;/font&gt;;&lt;br&gt;&lt;br&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; doc = &lt;font color="#0000ff"&gt;new&lt;/font&gt; HtmlDocument();&lt;br&gt;doc.LoadHtml(html);&lt;br&gt;&lt;br&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; node = doc.DocumentNode.SelectSingleNode(&lt;font color="#A31515"&gt;"div[1]/p[1]"&lt;/font&gt;);&lt;br&gt;&lt;br&gt;&lt;font color="#2B91AF"&gt;Console&lt;/font&gt;.WriteLine(&lt;font color="#A31515"&gt;"\r\n1st &amp;#60;p&amp;#62; in 1st &amp;#60;div&amp;#62;:"&lt;/font&gt;);&lt;br&gt;&lt;font color="#2B91AF"&gt;Console&lt;/font&gt;.WriteLine(node.OuterHtml);&lt;br&gt;&lt;br&gt;&lt;font color="#2B91AF"&gt;Console&lt;/font&gt;.WriteLine(&lt;font color="#A31515"&gt;"\r\nCount of &amp;#60;span&amp;#62; (//):"&lt;/font&gt;);&lt;br&gt;&lt;font color="#2B91AF"&gt;Console&lt;/font&gt;.WriteLine(node.SelectNodes(&lt;font color="#A31515"&gt;"//span"&lt;/font&gt;).Count);&lt;br&gt;&lt;br&gt;&lt;font color="#2B91AF"&gt;Console&lt;/font&gt;.WriteLine(&lt;font color="#A31515"&gt;"\r\nCount of &amp;#60;span&amp;#62; (.//):"&lt;/font&gt;);&lt;br&gt;&lt;font color="#2B91AF"&gt;Console&lt;/font&gt;.WriteLine(node.SelectNodes(&lt;font color="#A31515"&gt;".//span"&lt;/font&gt;).Count);&lt;/font&gt;&lt;/code&gt;
&lt;/div&gt;

&lt;p&gt;
It produces the output:
&lt;/p&gt;

&lt;div class="sources"&gt;
&lt;pre&gt;
1st &amp;lt;p&amp;gt; in 1st &amp;lt;div&amp;gt;:
&amp;lt;p&amp;gt;header &amp;lt;span&amp;gt;paragraph 1-1&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;

Count of &amp;lt;span&amp;gt; (//):
4

Count of &amp;lt;span&amp;gt; (.//):
1
&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;
&lt;a href="http://www.w3schools.com/xpath/xpath_syntax.asp"&gt;w3schools.com&lt;/a&gt; says that "//" selects nodes "from the current node". So does it mean that HtmlAgilityPack works wrong?
&lt;/p&gt;

&lt;p&gt;
Learning XPath on w3schools.com I had no doubt. But W3C specification &lt;a href="http://www.w3.org/TR/xpath/#path-abbrev"&gt;says&lt;/a&gt; that it's alright:
&lt;/p&gt;

&lt;blockquote&gt;//para selects all the para descendants of the document root and thus selects all para elements in the same document as the context node&lt;/blockquote&gt;
&lt;blockquote&gt;.//para selects the para element descendants of the context node&lt;/blockquote&gt;

&lt;p&gt;
All I wanna say is that you must be cautious to the information you got, even if it from the popular site with a good reputation (like w3schools is). "Trust no one", like Horde says :).
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-6863421541544949581?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/6863421541544949581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2011/02/htmlagilitypack-and-xpath-peculiarity.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/6863421541544949581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/6863421541544949581'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2011/02/htmlagilitypack-and-xpath-peculiarity.html' title='HtmlAgilityPack and XPath Peculiarity'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-3420495784311912293</id><published>2011-01-26T19:07:00.016Z</published><updated>2011-02-07T08:01:40.372Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='tracking'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='memory'/><category scheme='http://www.blogger.com/atom/ns#' term='LINQ'/><category scheme='http://www.blogger.com/atom/ns#' term='leak'/><title type='text'>LINQ to SQL and Memory Leaks</title><content type='html'>&lt;p&gt;
This happened when I parsed several gigabytes of HTML pages. I've noticed that program's process ate my memory tragically - over 1 GB in 5-10 minutes.
&lt;/p&gt;

&lt;p&gt;
The first thing I thought was memory leaks in &lt;a href="http://htmlagilitypack.codeplex.com/"&gt;HtmlAgilityPack&lt;/a&gt;, that I heard being updated not very often. But removing it was not successful. After several minutes of removing all components I figured out that the reason is LINQ to SQL. My code like the following:
&lt;/p&gt;

&lt;div class="sources"&gt;
&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; dcTableOne = &lt;font color="#0000ff"&gt;new&lt;/font&gt; TableOneDataContext(_connectionString);&lt;br&gt;&lt;font color="#0000ff"&gt;while&lt;/font&gt; (&lt;font color="#0000ff"&gt;true&lt;/font&gt;)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;var&lt;/font&gt; row = &lt;font color="#0000ff"&gt;new&lt;/font&gt; TableOne() { Status = 0, Name = stringToSave };&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dc.TableOnes.InsertOnSubmit(row);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dc.SubmitChanges();&lt;br&gt;}&lt;/font&gt;&lt;/code&gt;
&lt;/div&gt;

&lt;p&gt;
Besides of that I had notice that Entity Framework v4 has memory leaks too. The only method that woks fine was direct SQL executing - via &lt;a href="http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.aspx"&gt;SqlCommand.ExecuteNonQuery&lt;/a&gt; or via the same but over LINQ to SQL:
&lt;/p&gt;

&lt;div class="sources"&gt;
&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;dcTableOne.ExecuteCommand(&lt;font color="#A31515"&gt;"INSERT INTO TableOne(Status,Name) VALUES({0},{1})"&lt;/font&gt;, 0, stringToSave);&lt;/font&gt;&lt;/code&gt;
&lt;/div&gt;

&lt;p&gt;
After minutes of googling the reason was found. LINQ to SQL (and EF) has the feature, that tracks all objects that passed through it. And what I needed to do is turn it off. But it's caused my code to fail on inserts. So, I wend in further searches. They said me that DataContext object was designed for short lifetime and then has to be used in such way:
&lt;/p&gt;

&lt;div class="sources"&gt;
&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;&lt;font color="#0000ff"&gt;while&lt;/font&gt; (&lt;font color="#0000ff"&gt;true&lt;/font&gt;)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;using&lt;/font&gt; (&lt;font color="#0000ff"&gt;var&lt;/font&gt; dc = &lt;font color="#0000ff"&gt;new&lt;/font&gt; TableOneDataContext(_connectionString))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;var&lt;/font&gt; row = &lt;font color="#0000ff"&gt;new&lt;/font&gt; TableOne() { Status = 0, Name = stringToSave };&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dc.TableOnes.InsertOnSubmit(row);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dc.SubmitChanges();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;}&lt;/font&gt;&lt;/code&gt;
&lt;/div&gt;

&lt;p&gt;
That fixed my problems, but after a moment of working on my project I got similar problem: I required to read big array of data from database, and it couldn't be solved with the method mentioned above by the technical reason - I had to read all data sequentially. Turning tracking off was the right decision:
&lt;/p&gt;

&lt;div class="sources"&gt;
&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;dcTableOne.ObjectTrackingEnabled = &lt;font color="#0000ff"&gt;false&lt;/font&gt;;&lt;br&gt;&lt;font color="#0000ff"&gt;foreach&lt;/font&gt; (&lt;font color="#0000ff"&gt;var&lt;/font&gt; elem &lt;font color="#0000ff"&gt;in&lt;/font&gt; dcTableOne.TableOnes)&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#008000"&gt;// working with elem&lt;/font&gt;&lt;br&gt;}&lt;br&gt;&lt;/font&gt;&lt;/code&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-3420495784311912293?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/3420495784311912293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2011/01/linq-to-sql-and-memory-leaks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/3420495784311912293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/3420495784311912293'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2011/01/linq-to-sql-and-memory-leaks.html' title='LINQ to SQL and Memory Leaks'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-9150936050016678220</id><published>2010-12-23T19:47:00.003Z</published><updated>2011-03-09T10:55:17.241Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='static'/><category scheme='http://www.blogger.com/atom/ns#' term='link'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='assembly'/><category scheme='http://www.blogger.com/atom/ns#' term='ILMerge'/><title type='text'>C# and Static Linking</title><content type='html'>&lt;p&gt;
When I was writing application that required to parse HTML pages, I selected &lt;a href="http://htmlagilitypack.codeplex.com/"&gt;HtmlAgilityPack&lt;/a&gt; to do this. It is excellent library but it's sometimes inconvenient to distribute program with multiple DLLs. So, I decided to link required DLL statically.
&lt;/p&gt;

&lt;p&gt;
The first solving that I found was to merge required assemblies into my own using &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=22914587-b4ad-4eae-87cf-b14ae6a939b0&amp;amp;displaylang=en"&gt;ILMerge&lt;/a&gt;. Spent a little time to find required options I merged DLL into the program:
&lt;/p&gt;

&lt;div class="sources"&gt;
&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;ILMerge.exe /targetplatform:v4,"C:\Windows\Microsoft.NET\Framework4.0.30319" /out:appout.exe app.exe HtmlAgilityPack.dll&lt;/font&gt;&lt;/code&gt;
&lt;/div&gt;

&lt;p&gt;
It works ok, but while searching command line options I found another decision&amp;nbsp;by&amp;nbsp;&lt;a href="http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx"&gt;Jeffrey Richter&lt;/a&gt;&amp;nbsp;how to get one file for application. Read the comments I took a notice on this one by Jeff:
&lt;/p&gt;

&lt;blockquote&gt;
ILMerge produces a new assembly file from a set of existing assemblies. This means that the original assemblies lose their identity (name, version, culture, and public key).
&lt;/blockquote&gt;
&lt;blockquote&gt;
What I am showing here is creating an assembly that embeds the EXISTING assemblies into it so that they do not lose their identity at all.
&lt;/blockquote&gt;

&lt;p&gt;
So, I decided to use his method. But there was one problem - it didn't work for me :). His code couldn't find the resource. So, I started to search further for its another variations. But I couldn't find what's was wrong.
&lt;/p&gt;

&lt;p&gt;
Nevertheless, I found two ways how to implement Jeff's idea. The first resolution is direct:&lt;br /&gt;
&lt;/p&gt;

&lt;div class="sources"&gt;
&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =&amp;#62;&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (&lt;font color="#0000ff"&gt;new&lt;/font&gt; AssemblyName(args.Name).Name == &lt;font color="#A31515"&gt;"HtmlAgilityPack"&lt;/font&gt;)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#2B91AF"&gt;Assembly&lt;/font&gt;.Load(Properties.Resources.HtmlAgilityPack);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;null&lt;/font&gt;;&lt;br&gt;}&lt;/font&gt;&lt;/code&gt;
&lt;/div&gt;

&lt;p&gt;
And the second is more universal and doesn't require to write "if" for every embedded assembly:&lt;br /&gt;
&lt;p&gt;

&lt;div class="sources"&gt;
&lt;code&gt;&lt;font size="2" face="Courier New" color="black"&gt;AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =&amp;#62;&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;var&lt;/font&gt; requestedAssemblyName = &lt;font color="#0000ff"&gt;new&lt;/font&gt; AssemblyName(args.Name).Name;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;var&lt;/font&gt; manifestResourceName = &lt;font color="#0000ff"&gt;new&lt;/font&gt; AssemblyName(&lt;font color="#2B91AF"&gt;Assembly&lt;/font&gt;.GetExecutingAssembly().FullName).Name + &lt;font color="#A31515"&gt;".Properties.Resources.resources"&lt;/font&gt;;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;using&lt;/font&gt; (&lt;font color="#0000ff"&gt;var&lt;/font&gt; stream = &lt;font color="#2B91AF"&gt;Assembly&lt;/font&gt;.GetExecutingAssembly().GetManifestResourceStream(manifestResourceName))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;using&lt;/font&gt; (&lt;font color="#0000ff"&gt;var&lt;/font&gt; reader = &lt;font color="#0000ff"&gt;new&lt;/font&gt; ResourceReader(stream))&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;var&lt;/font&gt; resource = reader.GetEnumerator();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;while&lt;/font&gt; (resource.MoveNext())&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;if&lt;/font&gt; ((&lt;font color="#0000ff"&gt;string&lt;/font&gt;)resource.Key == requestedAssemblyName)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#2B91AF"&gt;Assembly&lt;/font&gt;.Load((&lt;font color="#0000ff"&gt;byte&lt;/font&gt;[])resource.Value);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#0000ff"&gt;return&lt;/font&gt; &lt;font color="#0000ff"&gt;null&lt;/font&gt;;&lt;br&gt;}&lt;/font&gt;&lt;/code&gt;
&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-9150936050016678220?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/9150936050016678220/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2010/12/c-and-static-linking.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/9150936050016678220'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/9150936050016678220'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2010/12/c-and-static-linking.html' title='C# and Static Linking'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-4802672423572933350</id><published>2010-11-19T15:52:00.001Z</published><updated>2011-02-07T07:53:35.112Z</updated><title type='text'>GetColor Color Picker</title><content type='html'>&lt;p&gt;
I'm not a designer, and marking-up HTML is not my primary duty too, but sometimes I have requirement to choose some colors. I've tried several color pickers, but they turned out to be not very convenient. The problem was that I had to press "Copy" button.
&lt;/p&gt;

&lt;p&gt;
Therefore, I decided to write my own. And here it is.
&lt;/p&gt;

&lt;div class="screenshot"&gt;
&lt;img style="width: 352px; height: 255px;" src="http://3.bp.blogspot.com/_rXHDcXjeZgo/TU7IpsHEokI/AAAAAAAAABw/NCzym93dO6w/s400/GetColor.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5570610407644897858" /&gt;
&lt;/div&gt;

&lt;p&gt;
It hasn't great functions like some other pickers, but it might being liked to you of its "Your selected color is already in the clipboard" function. It's really handy, try it right now! :)
&lt;/p&gt;

&lt;p&gt;
Hold ALT key and move your mouse to view zoomed region. You can change zoom factor and click on the preview window to select the color.
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://sites.google.com/site/gmlite/GetColor_v0.7.7z?attredirects=0&amp;d=1"&gt;Download GetColor v0.7&lt;/a&gt; (10 KB)
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://sites.google.com/site/gmlite/GetColor_v0.7_src.7z?attredirects=0&amp;d=1"&gt;Download GetColor v0.7 Sources&lt;/a&gt; (12 KB)
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-4802672423572933350?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/4802672423572933350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2010/11/getcolor-color-picker.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/4802672423572933350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/4802672423572933350'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2010/11/getcolor-color-picker.html' title='GetColor Color Picker'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rXHDcXjeZgo/TU7IpsHEokI/AAAAAAAAABw/NCzym93dO6w/s72-c/GetColor.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-2209050010629334973</id><published>2010-10-14T17:27:00.001+01:00</published><updated>2011-02-07T07:58:56.351Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='foobar2000'/><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='foobar'/><category scheme='http://www.blogger.com/atom/ns#' term='taskbar'/><title type='text'>foobar2000 Plugin for Windows 7 - Progress Bar on Its Taskbar Icon</title><content type='html'>&lt;p&gt;
Some tautology but it's true :).&lt;br/&gt;
Shows progress of currently played song in the taskbar. Foobar is stopped:
&lt;/p&gt;

&lt;div class="screenshot"&gt;
&lt;img alt="" id="BLOGGER_PHOTO_ID_5527940491969542738" src="http://3.bp.blogspot.com/_rXHDcXjeZgo/TLcwltNXulI/AAAAAAAAABM/_a_siHCnPvU/s400/foobar2k_stopped.png" style="height: 60px; width: 320px;" /&gt;
&lt;/div&gt;

&lt;p&gt;
Foobar is playing song:
&lt;/p&gt;

&lt;div class="screenshot"&gt;
&lt;img alt="" id="BLOGGER_PHOTO_ID_5527940704202176802" src="http://2.bp.blogspot.com/_rXHDcXjeZgo/TLcwyD1kuSI/AAAAAAAAABU/_RoWvzqZj7w/s400/foobar2k_playing.png" style="height: 60px; width: 320px;" /&gt;
&lt;/div&gt;

&lt;p&gt;
Foobar is paused:
&lt;/p&gt;

&lt;div class="screenshot"&gt;
&lt;img alt="" id="BLOGGER_PHOTO_ID_5527940792552872962" src="http://3.bp.blogspot.com/_rXHDcXjeZgo/TLcw3M-BXAI/AAAAAAAAABc/wr70FOH2nXo/s400/foobar2k_paused.png" style="height: 60px; width: 320px;" /&gt;
&lt;/div&gt;

&lt;p&gt;
Minimal OS is Windows 7, of cause.
&lt;/p&gt;

&lt;p&gt;
NOTE! This plugin is for version 0.8.3, not 0.9 or 1.0, 'cos I like it. It's sad, but new versions (since 0.9) don't satisfy my requirements (the main is customization of playlist with my own colors, not default one with several tones).
&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://sites.google.com/site/gmlite/foo_win7_taskbar_progress_v1_0.rar?attredirects=0&amp;amp;d=1"&gt;Download "foo_win7_taskbar_progress" plugin&lt;/a&gt; (3 KB)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://sites.google.com/site/gmlite/foo_win7_taskbar_progress_v1_0_src.rar?attredirects=0&amp;d=1"&gt;Download Sources for "foo_win7_taskbar_progress" plugin&lt;/a&gt; (927 KB)
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-2209050010629334973?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/2209050010629334973/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2010/10/foobar2000-plugin-for-windows-7.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/2209050010629334973'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/2209050010629334973'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2010/10/foobar2000-plugin-for-windows-7.html' title='foobar2000 Plugin for Windows 7 - Progress Bar on Its Taskbar Icon'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rXHDcXjeZgo/TLcwltNXulI/AAAAAAAAABM/_a_siHCnPvU/s72-c/foobar2k_stopped.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-57028153692268361</id><published>2010-10-14T17:20:00.000+01:00</published><updated>2011-02-06T16:39:41.749Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='patcher'/><category scheme='http://www.blogger.com/atom/ns#' term='DHT'/><category scheme='http://www.blogger.com/atom/ns#' term='uTorrent'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><title type='text'>uTorrent DHT Patcher Departs This Life</title><content type='html'>&lt;p&gt;I've noticed that new versions can't be patched ever more, so &lt;a href="http://liiw.blogspot.com/2010/05/utorrent-dht-patcher.html"&gt;uTorrent DHT Patcher&lt;/a&gt; is staying unusable...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-57028153692268361?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/57028153692268361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2010/10/utorrent-dht-patcher-departs-this-life.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/57028153692268361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/57028153692268361'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2010/10/utorrent-dht-patcher-departs-this-life.html' title='uTorrent DHT Patcher Departs This Life'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-3812775716876554853</id><published>2010-08-11T20:16:00.001+01:00</published><updated>2011-02-05T19:56:34.402Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='3D'/><category scheme='http://www.blogger.com/atom/ns#' term='image'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='stereo'/><title type='text'>I Can See 3D</title><content type='html'>&lt;p&gt;For many years I'm interesting in stereo-images - pictures with garbage that stay 3D if you look properly on them. I could see none of them and that got me upset. But several days ago I found a new (for me) technology of 3D that I could see! &lt;/p&gt;&lt;p&gt;Here're two 3D mages that I made. The first is part of the view outside of my office, and the second is two IT guys and designer (without me) I work with. Click on them to enlarge.&lt;/p&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_rXHDcXjeZgo/TGL6QCfeQwI/AAAAAAAAAA0/XXXigosIRLg/s1600/work_window.jpg"&gt;&lt;img style="margin:0px 0px 0px 0px;cursor:pointer; cursor:hand;width: 200px; height: 148px;" src="http://3.bp.blogspot.com/_rXHDcXjeZgo/TGL6QCfeQwI/AAAAAAAAAA0/XXXigosIRLg/s200/work_window.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5504236848053895938" /&gt;&lt;/a&gt;   &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_rXHDcXjeZgo/TGL6H8ooItI/AAAAAAAAAAs/nQnlAfSsI-U/s1600/work_guys.jpg"&gt;&lt;img style="margin:0px 0px 0px 0px;cursor:pointer; cursor:hand;width: 200px; height: 148px;" src="http://4.bp.blogspot.com/_rXHDcXjeZgo/TGL6H8ooItI/AAAAAAAAAAs/nQnlAfSsI-U/s200/work_guys.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5504236709042725586" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;To see picture in 3D you must start look at the point between eyes and LCD. You'll see third image between these two. This image is 3D. And the last thing - you must get the right eyes' focus to take away the blur.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-3812775716876554853?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/3812775716876554853/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2010/08/i-can-see-3d.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/3812775716876554853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/3812775716876554853'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2010/08/i-can-see-3d.html' title='I Can See 3D'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rXHDcXjeZgo/TGL6QCfeQwI/AAAAAAAAAA0/XXXigosIRLg/s72-c/work_window.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-1379136759053497395</id><published>2010-06-27T09:11:00.000+01:00</published><updated>2010-08-11T20:48:16.643+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='patcher'/><category scheme='http://www.blogger.com/atom/ns#' term='DHT'/><category scheme='http://www.blogger.com/atom/ns#' term='uTorrent'/><category scheme='http://www.blogger.com/atom/ns#' term='patch'/><title type='text'>uTorrent DHT Patcher</title><content type='html'>&lt;img style="float:left; margin:0 10px 10px 0; width: 243px; height: 189px;" src="http://3.bp.blogspot.com/_rXHDcXjeZgo/TAE-XPAjQtI/AAAAAAAAAAM/fDoDB4D2EFM/s320/uTorrentDHTPatcher.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5476727190745989842" /&gt;&lt;p&gt;Some time ago I required to download a torrent from a private tracker but I didn't want to lose my rating. So, I decided to remove private tracker from the list and enable DHT. There was a one problem - I couldn't do it - "Enable DHT" checkbox was disabled!&lt;/p&gt;&lt;p&gt;Within five minutes I found several patches to fix it, but there was no patch for the latest version. So, I wrote my own patcher to do it automatically.&lt;/p&gt;&lt;p&gt;And here I'm glad to announce it for you too! :) It searches for the "private" string, then for reference for it and then for "je" in next 50 bytes.&lt;/p&gt;&lt;p&gt;&lt;a href="http://liiw.googlegroups.com/web/uTorrentDHTPatcher_alone.rar"&gt;uTorrent DHT Patcher 1.1&lt;/a&gt; (5 KB)&lt;/p&gt;&lt;p&gt;&lt;a href="http://liiw.googlegroups.com/web/uTorrentDHTPatcher_w_upx300.rar"&gt;uTorrent DHT Patcher 1.1 with UPX 3.00&lt;/a&gt; (258 KB)&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-1379136759053497395?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/1379136759053497395/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2010/05/utorrent-dht-patcher.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/1379136759053497395'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/1379136759053497395'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2010/05/utorrent-dht-patcher.html' title='uTorrent DHT Patcher'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_rXHDcXjeZgo/TAE-XPAjQtI/AAAAAAAAAAM/fDoDB4D2EFM/s72-c/uTorrentDHTPatcher.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2383828208827101325.post-2419210608022321797</id><published>2010-05-29T16:44:00.001+01:00</published><updated>2011-02-06T18:54:29.833Z</updated><title type='text'>Hi, People!</title><content type='html'>Just decided to open a my own blog to post some stuff that might be interesting for others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2383828208827101325-2419210608022321797?l=liiw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://liiw.blogspot.com/feeds/2419210608022321797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://liiw.blogspot.com/2010/05/hi-people.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/2419210608022321797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2383828208827101325/posts/default/2419210608022321797'/><link rel='alternate' type='text/html' href='http://liiw.blogspot.com/2010/05/hi-people.html' title='Hi, People!'/><author><name>Liiw</name><uri>http://www.blogger.com/profile/05563185141748606404</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
