<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-36008262</atom:id><lastBuildDate>Fri, 01 Nov 2024 10:42:51 +0000</lastBuildDate><category>Полезное</category><category>Забавное</category><category>Ссылки</category><category>Важное</category><category>Видео</category><category>Фотки</category><category>Картинки</category><category>Интересно</category><category>dotNet</category><category>Гаджет</category><category>Карьера</category><category>С#</category><category>Исходники</category><category>Новости</category><category>Sharepoint</category><category>Silverlight</category><category>Мысли</category><category>Грустное</category><category>AR</category><category>Flash</category><category>SLARToolkit</category><category>NUI</category><category>netBot</category><category>newverhost.com</category><category>Безопасность</category><category>Отзывы</category><category>Робототехника</category><category>Blader</category><category>Chronoforms</category><category>Joomla</category><category>NVHR</category><category>Newverhost Reports</category><category>None</category><category>PHP</category><category>RIA</category><category>WCF</category><category>Yota</category><category>aleafricaexpeditions.com</category><category>featured on picvi.com</category><category>indiantiger.org</category><category>kwathabeng.co.za</category><category>newnerhost</category><category>picvi</category><category>picvi.com</category><category>picvi.com external profiles</category><category>puppyfinder.com</category><category>qatarshares.com</category><category>unical.it</category><category>Здоровье</category><category>связь</category><title>Хай-тек блог</title><description>Свалка мыслей by FruT:Гаджеты, Фото, Новости,Компоненты, Классы и интересные ссылки</description><link>http://frutb.blogspot.com/</link><managingEditor>noreply@blogger.com (FruT&#39;b)</managingEditor><generator>Blogger</generator><openSearch:totalResults>221</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-8993313878021233770</guid><pubDate>Sun, 24 Jan 2016 16:02:00 +0000</pubDate><atom:updated>2016-01-24T19:03:15.680+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Важное</category><category domain="http://www.blogger.com/atom/ns#">Грустное</category><category domain="http://www.blogger.com/atom/ns#">Здоровье</category><title>Ужасный сервис в МК Клиник в кожухово</title><description>У жены 35ая неделя. &amp;nbsp;Записались 24.01.2016 на 17.30. Приехли ко времени. Дикая очередь, все идут не по времени, духота, жене плохо и тянет живот... Ждали 30 минут. Когда врач освободилась и спросила &quot;кто следующий&quot; (что само по себе в очереди со временим абсурдно) сказали что это мы, но нас проинорировали и приняли какую-то тетку которая пришла позже нас. Плюнули и уехали, когда доехали домой жене стало еще хуже - пришлось вызывать неотложку.&lt;br /&gt;
Более уродского сервиса я не видел даже в городских клиниках.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;P.S.: у них даже не работает форма обратной связи на сайте.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2016/01/blog-post.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-4457179794413209139</guid><pubDate>Thu, 09 Jul 2015 19:27:00 +0000</pubDate><atom:updated>2015-07-09T22:27:26.485+03:00</atom:updated><title>Screeps - MMO-игра для программистов</title><description>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://leto42g.storage.yandex.net/rdisk/b67210d380613455614cc877411a50a94f72efa23fecf0dd4d7258370ccca1dc/inf/7_ui_MnuNUwLFlNz-O78BzSTd6l7__pxkYHKi-bqJAsxvz853uJYALVIhupW7pljdRAI6aB9AMJb8uIBfw0crQ==?uid=0&amp;amp;filename=2015-07-09%2022-21-09%20Screeps.png&amp;amp;disposition=inline&amp;amp;hash=&amp;amp;limit=0&amp;amp;content_type=image%2Fpng&amp;amp;tknv=v2&amp;amp;rtoken=7cfb96d0eaca54e0038c0690a818e116&amp;amp;force_default=no&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;177&quot; src=&quot;https://leto42g.storage.yandex.net/rdisk/b67210d380613455614cc877411a50a94f72efa23fecf0dd4d7258370ccca1dc/inf/7_ui_MnuNUwLFlNz-O78BzSTd6l7__pxkYHKi-bqJAsxvz853uJYALVIhupW7pljdRAI6aB9AMJb8uIBfw0crQ==?uid=0&amp;amp;filename=2015-07-09%2022-21-09%20Screeps.png&amp;amp;disposition=inline&amp;amp;hash=&amp;amp;limit=0&amp;amp;content_type=image%2Fpng&amp;amp;tknv=v2&amp;amp;rtoken=7cfb96d0eaca54e0038c0690a818e116&amp;amp;force_default=no&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Меня недавно пригласили в очень интересную игру поиграть. &amp;nbsp;&lt;a href=&quot;https://screeps.com/&quot; target=&quot;_blank&quot;&gt;Screeps&lt;/a&gt; называется. На самом деле очень интересная и революционная во многих отношениях игра. Суть в том что надо программировать AI (с использованием JS). Прямого управления нету. Весть ваш успех зависит только от того насколько классно вы запрограммировали своих крипов. Приглашаю всех поиграть. (Пока идет ЗБТ но мета все еще есть)&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2015/07/screeps-mmo.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-1564990549216166304</guid><pubDate>Tue, 26 Jul 2011 20:47:00 +0000</pubDate><atom:updated>2011-07-27T00:47:06.111+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Безопасность</category><category domain="http://www.blogger.com/atom/ns#">Важное</category><category domain="http://www.blogger.com/atom/ns#">Интересно</category><category domain="http://www.blogger.com/atom/ns#">Отзывы</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>По поводу утечек персональных данных с сайтов.</title><description>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;На мой взгляд все очень просто.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;Надо:&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Оштрафовать всех владельцев сайтов с которых произошла утечка в пользу людей чья информация оказалась в публичном доступе.&lt;/li&gt;
&lt;li&gt;Уволить всех псевдо специалистов имевших отношение к развертыванию информационных систем из которых произошла утечка и их начальников (составить robots.txt крайне просто, а если ты не в курсе что это такое и зачем оно надо ты не тех а ДЕБИЛ&lt;/li&gt;
&lt;li&gt;Наконец перестать нанимать студентов с мизерной ЗП на должности где есть ответственность.&lt;/li&gt;
&lt;/ol&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;З.ы.: ублюдков из мегафона штрафовать в 10кратном размере. Они должны знать 152фз на зубок. Вообще за такой косяк я-бы лишил ЗАО &quot;СОНИК ДУО&quot; лицензии на предоставление услуг.&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/07/blog-post_27.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-4795262488212034731</guid><pubDate>Wed, 13 Jul 2011 19:03:00 +0000</pubDate><atom:updated>2011-07-13T23:29:03.347+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Новости</category><title>Все гениальное просто. Смена стиля.</title><description>Надоело пестрое разноцветие прошлой темы.&lt;br /&gt;
Решил - &quot;Все гениальное просто&quot; и выбрал стандартную темную тему.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/07/blog-post_13.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-7786752187120558372</guid><pubDate>Wed, 13 Jul 2011 18:41:00 +0000</pubDate><atom:updated>2011-07-14T16:10:38.302+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dotNet</category><category domain="http://www.blogger.com/atom/ns#">Sharepoint</category><category domain="http://www.blogger.com/atom/ns#">Исходники</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><category domain="http://www.blogger.com/atom/ns#">С#</category><title>Sharepoint 2010 и пустые значения SPFieldLookup и SPFieldLink</title><description>Тут недавно обнаружил что если очистить поле Lookup или Ссылка в записи списка. То вместо пустого значения пишется не &lt;b&gt;null&lt;/b&gt;&amp;nbsp;а &lt;b&gt;&quot;0;#&quot;&lt;/b&gt; для Lookup и &lt;b&gt;&quot;,&quot;&lt;/b&gt; для Ссылки. А во время создания поле будет задано как &lt;b&gt;null&lt;/b&gt;.&lt;br /&gt;
&lt;div&gt;
Скажу более - данное поведение зависит от браузера. Таким образом в пустом значении этих полей может оказаться как &lt;b&gt;null &lt;/b&gt;так и&amp;nbsp;&amp;nbsp;&lt;b&gt;&quot;0;#&quot;&lt;/b&gt;или&amp;nbsp;&lt;b&gt;&quot;,&quot;&lt;/b&gt;.&lt;br /&gt;
Далее привожу пример функции проверки на пустые значения:&lt;/div&gt;
&lt;br /&gt;
&lt;pre&gt;public static class NullComparer{
       public bool IsEmptyValue(object value){
              var strval=string.Format(&quot;{0}&quot;,value).Trim();
              if(value==null ||
                 string.IsNullOrEmpty(strval) ||
                 strval == &quot;,&quot; ||
                 strval == &quot;0;&quot;) return true;
              return false;
       }
}
&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/07/sharepoint-2010-spfieldlookup.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-8630144197584055242</guid><pubDate>Tue, 12 Jul 2011 11:27:00 +0000</pubDate><atom:updated>2011-07-14T15:26:21.795+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dotNet</category><category domain="http://www.blogger.com/atom/ns#">Интересно</category><category domain="http://www.blogger.com/atom/ns#">Исходники</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><category domain="http://www.blogger.com/atom/ns#">С#</category><title>Настройка GZIP для IIS ASP.NET приложений в web.config</title><description>Можно включить GZIP сжатие из web.config сайта\приложения. Очень полезно на shared хостингах&lt;br /&gt;
&lt;div class=&quot;a-b-f-i-p-R&quot;&gt;
&lt;br /&gt;
&amp;lt;system.webServer&amp;gt;&lt;br /&gt;
&amp;lt;httpCompression directory=&quot;%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files&quot;&amp;gt;&lt;br /&gt;
&amp;lt;scheme name=&quot;gzip&quot; dll=&quot;%Windir%\system32\inetsrv\gzip.dll&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;dynamicTypes&amp;gt;&lt;br /&gt;
&amp;lt;add mimeType=&quot;text/*&quot; enabled=&quot;true&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;add mimeType=&quot;message/*&quot; enabled=&quot;true&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;add mimeType=&quot;application/javascript&quot; enabled=&quot;true&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;add mimeType=&quot;*/*&quot; enabled=&quot;false&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/dynamicTypes&amp;gt;&lt;br /&gt;
&amp;lt;staticTypes&amp;gt;&lt;br /&gt;
&amp;lt;add mimeType=&quot;text/*&quot; enabled=&quot;true&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;add mimeType=&quot;message/*&quot; enabled=&quot;true&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;add mimeType=&quot;application/javascript&quot; enabled=&quot;true&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;add mimeType=&quot;*/*&quot; enabled=&quot;false&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/staticTypes&amp;gt;&lt;br /&gt;
&amp;lt;/httpCompression&amp;gt;&lt;br /&gt;
&amp;lt;urlCompression doStaticCompression=&quot;true&quot; doDynamicCompression=&quot;true&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/system.webServer&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Дл&lt;wbr&gt;&lt;/wbr&gt;я проверки работы убедитесь в том, что у страниц сайта появился заголовок:&lt;br /&gt;
Content-Encoding: gzip&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/07/gzip-iis-aspnet-webconfig.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-624811042955380801</guid><pubDate>Sat, 09 Jul 2011 06:28:00 +0000</pubDate><atom:updated>2011-07-10T18:53:14.515+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Забавное</category><category domain="http://www.blogger.com/atom/ns#">Мысли</category><title>Кладбищенский сторож.</title><description>Чувствую себя сторожем кладбища фильмов. Я постоянно качаю что-нибудь посмотреть и всегда нехватает времени на &quot;посмотреть&quot;. При поверхностной проверке диска обнаружилось около 20ГБ фильмов которые я уже вряд-ли посмотрю.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/07/blog-post.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-3692440902172608877</guid><pubDate>Wed, 29 Jun 2011 08:33:00 +0000</pubDate><atom:updated>2011-08-06T20:52:34.013+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Важное</category><category domain="http://www.blogger.com/atom/ns#">Видео</category><category domain="http://www.blogger.com/atom/ns#">Интересно</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>Максим Дорофеев &quot;О программах похожих на авто&quot;</title><description>Очень интересный доклад. На тему взгляда на&amp;nbsp;производство&amp;nbsp;программ и&amp;nbsp;систем&amp;nbsp;вообще.&lt;br /&gt;
&lt;div id=&quot;__ss_7607197&quot; style=&quot;width: 425px;&quot;&gt;
&lt;strong style=&quot;display: block; margin: 12px 0 4px;&quot;&gt;&lt;a href=&quot;http://www.slideshare.net/Cartmendum/softwarepeople11&quot; target=&quot;_blank&quot; title=&quot;softwarepeople11&quot;&gt;softwarepeople11&lt;/a&gt;&lt;/strong&gt; &lt;iframe frameborder=&quot;0&quot; height=&quot;355&quot; marginheight=&quot;0&quot; marginwidth=&quot;0&quot; scrolling=&quot;no&quot; src=&quot;http://www.slideshare.net/slideshow/embed_code/7607197&quot; width=&quot;425&quot;&gt;&lt;/iframe&gt; &lt;br /&gt;
&lt;div style=&quot;padding: 5px 0 12px;&quot;&gt;
View another &lt;a href=&quot;http://www.slideshare.net/&quot; target=&quot;_blank&quot;&gt;webinar&lt;/a&gt; from &lt;a href=&quot;http://www.slideshare.net/Cartmendum&quot; target=&quot;_blank&quot;&gt;Maxim Dorofeev&lt;/a&gt; &lt;/div&gt;
&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/06/blog-post_29.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-5354123472367060169</guid><pubDate>Sat, 25 Jun 2011 12:53:00 +0000</pubDate><atom:updated>2011-06-25T16:53:30.145+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AR</category><category domain="http://www.blogger.com/atom/ns#">dotNet</category><category domain="http://www.blogger.com/atom/ns#">NUI</category><category domain="http://www.blogger.com/atom/ns#">Silverlight</category><category domain="http://www.blogger.com/atom/ns#">SLARToolkit</category><category domain="http://www.blogger.com/atom/ns#">Видео</category><category domain="http://www.blogger.com/atom/ns#">Мысли</category><title>Новая технологическая демонстрация. SLAR + SL5</title><description>Итак. Поигравшись с &lt;b&gt;Balder &lt;/b&gt;для &lt;b&gt;Sliverlight 4&lt;/b&gt;, я понял - он не справляется с производительностью. Было принято решение перейти на &lt;b&gt;Silverlight 5 XNA&lt;/b&gt;. Что дало приличный прирост производительности. Правда все еще не перенесены некоторые ф-ции (залипание объекта, множественные одинаковые теги).&lt;br /&gt;
Создана демонстрация концепции интерактивного объекта смешанных реальностей (Визитка\Портфолио).&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/DrLMytPZoQ4?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;br /&gt;
Новые вопросы:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Правильное положение и дизайн логотипа.&lt;/li&gt;
&lt;li&gt;Как правильно активировать объекты портфолио (сами картинки).&lt;/li&gt;
&lt;li&gt;Дизайн и носитель карточки.&lt;/li&gt;
&lt;li&gt;Возможность дальнейшего уменьшения элементов карточки.&lt;/li&gt;
&lt;/ol&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/06/slar-sl5.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-3128801190899654256</guid><pubDate>Fri, 24 Jun 2011 14:49:00 +0000</pubDate><atom:updated>2011-06-24T18:52:54.502+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dotNet</category><category domain="http://www.blogger.com/atom/ns#">Sharepoint</category><category domain="http://www.blogger.com/atom/ns#">Интересно</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><category domain="http://www.blogger.com/atom/ns#">С#</category><title>Вернулись времена коротких путей.</title><description>Сегодня при попытке использовать msbuild словил.
&lt;br /&gt;
Error 14 The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.
[C:\Users\holinov\Desktop\SRC\Layer1\MRR.DVIZ\trunk\src\Mrr.Dviz.LookupFieldWithPicker
\LookupFieldWithPicker\Mrr.Dviz.LookupFieldWithPicker.csproj] C:\Users\holinov\Desktop\SRC\Layer1\MRR.DVIZ\trunk\src\Mrr.Dviz.Deploy\Mrr.Dviz.Setup.DeployAction\&amp;gt;
C:\Users\holinov\Desktop\SRC\Layer1\MRR.DVIZ\trunk\src\Mrr.Dviz.LookupFieldWithPicker\
LookupFieldWithPicker\Package\Package.package Mrr.Dviz.Setup.DeployAction
&lt;br /&gt;
Мда, я думал такие времена уже прошли. Придется искать workaround.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/06/blog-post.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-2255984048589853222</guid><pubDate>Thu, 23 Jun 2011 15:27:00 +0000</pubDate><atom:updated>2011-06-23T21:06:03.613+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Yota</category><category domain="http://www.blogger.com/atom/ns#">Интересно</category><category domain="http://www.blogger.com/atom/ns#">связь</category><title>Качество связи #yota и обновление</title><description>Вчера вечером мой Yota-egg решил обновиться. Как водится начал мигать синим огоньком. Минуты через две огонек мигать перестал мигать и просто загорелся. Я подождал мигель десять и понял что ситуация не меняется. Позвонил в тех поддержку йоты, где мне посоветовали его перезагрузить. Сказав спасибо, я положил трубку, но подойдя к яйцу и взяв его в руки, я обнаружил что яйцо не реагирует на нажатия кнопок. Так что я не смог его ни выключить, ни перезагрузить, ни сбросить в заводские настройки. Сегодня днем я отвез яйцо в сервис. Там мне его смогли перезагрузить путем поочередного тыкания в ресет и кнопку включения. Что-ж на этом цирк не окончился. Приехав домой я обнаружил что сеть ловится на несколько секунд и пропадает. Пинг яндекса в течении 40 минут дал около 75% потерь пакетов. По моим сведениям подобное поведение связи наблюдалось не только не моем устройстве.  &lt;br /&gt;
Вот собственно интересно - что было в том обновлении?&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/06/yota.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-393089464330531105</guid><pubDate>Sat, 04 Jun 2011 10:00:00 +0000</pubDate><atom:updated>2011-06-25T23:39:45.458+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AR</category><category domain="http://www.blogger.com/atom/ns#">dotNet</category><category domain="http://www.blogger.com/atom/ns#">NUI</category><category domain="http://www.blogger.com/atom/ns#">Silverlight</category><category domain="http://www.blogger.com/atom/ns#">SLARToolkit</category><category domain="http://www.blogger.com/atom/ns#">Видео</category><category domain="http://www.blogger.com/atom/ns#">Мысли</category><title>Серия статей про Augmented Reality. Моя точка зрения.</title><description>Начинаю публикацию результатов моих исследовательских работ связанных с концепциями AR (Augmentet reality), NUI (Natural User Interface).&lt;br /&gt;
Идея концепции которую я хочу проверить состоит в построении системы пользовательского интерфейса на принципах смешанных реальностей. В теории пользователь, для&amp;nbsp;удовлетворения&amp;nbsp;своих информационных потребностей, должен производить действия не с экранными объектами , а с объектами реального или виртуального-трехмерного миров(реальностей). &amp;nbsp;Пользователь может воздействовать на объекты виртуального мира посредством воздействия на объекты реального мира (AR-теги), путем относительных перемещений, вращения или внесения новых AR-тегов. А так-же распознания трехмерного положения пользователя относительно&amp;nbsp;виртуальных&amp;nbsp;объектов производимых системой Kinekt или подобной ей.&lt;br /&gt;
Для проверки данной концепции были выбраны следующие технологические платформы:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Система смешивания реальностей построена на AR-тегах. (&amp;nbsp;&lt;a href=&quot;http://www.hitl.washington.edu/artoolkit/&quot;&gt;ARToolkit&lt;/a&gt;: Реализация &lt;a href=&quot;http://slartoolkit.codeplex.com/&quot;&gt;SLARToolkit&lt;/a&gt;&amp;nbsp;)&lt;/li&gt;
&lt;li&gt;Система 3D визуализации (&lt;strike&gt; &lt;a href=&quot;http://balder.codeplex.com/&quot;&gt;Balder&lt;/a&gt;&amp;nbsp;&lt;/strike&gt;, &lt;b&gt;Silverlight 5 XNA&lt;/b&gt;&amp;nbsp;)&amp;nbsp;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
Список опубликованных мною материалов по данному &amp;nbsp;исследованию: (все видео в статьях)&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Первые результаты экспериментов&amp;nbsp;&lt;a href=&quot;http://frutb.blogspot.com/2011/06/slartoolkit-blader.html&quot;&gt;SLARToolkit + Blader + Концепция&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://frutb.blogspot.com/2011/06/slar-sl5.html&quot;&gt;Демонстрация&amp;nbsp;концепции&amp;nbsp;интерактивного&amp;nbsp;объекта смешанных реальностей&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/06/augmented-reality.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-3447077295792963844</guid><pubDate>Fri, 03 Jun 2011 13:28:00 +0000</pubDate><atom:updated>2011-06-04T18:45:02.634+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AR</category><category domain="http://www.blogger.com/atom/ns#">Blader</category><category domain="http://www.blogger.com/atom/ns#">Silverlight</category><category domain="http://www.blogger.com/atom/ns#">SLARToolkit</category><category domain="http://www.blogger.com/atom/ns#">Видео</category><category domain="http://www.blogger.com/atom/ns#">Мысли</category><title>SLARToolkit + Balder + Концепция</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
В последнее время я все чаще стал задумываться на тему создания интерфейсов пользователей взаимодействующих с 3D окружение пользователя. Здесь можно увидеть первые&amp;nbsp;эксперименты&amp;nbsp;на эту тему. Как тех. основа взяты SLARToolkit (ARToolkit для Silverlight), Balder (3d движок полностью реализованный на C# для Silverlight)&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Существующие в эксперименте сущности:&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Информационный объект (Тег: SLAR, время жизни 50 циклов распознания, отображается как большой синий куб)&lt;/li&gt;
&lt;li&gt;Объект команда (Тег: L, время жизни 5 циклов, отображается маленьким зеленым кубом, выполняет произвольную смену цветов объекта)&lt;/li&gt;
&lt;li&gt;Связи команда-объект отображаются зелеными линиями&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
Часть 1&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/yEeUtxPMadg?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
Часть 2&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.youtube.com/embed/vgpuoBKXzX8?feature=player_embedded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
Выводы:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Распознание AR-тегов &amp;nbsp;происходит быстро и плавно (при распознании 3х тегов по 16 сегментов на стороне FPS не падало меньше 60).&lt;/li&gt;
&lt;li&gt;Качество и стабильность&amp;nbsp;распознания сильно зависят от освещения и деформаций маркеров.&lt;/li&gt;
&lt;li&gt;Необходима калибровка камеры для улучшения качества распознания положения маркеров&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Вопросы для экспериментов:&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Возможно ли распознание цветных паттернов?&lt;/li&gt;
&lt;li&gt;Максимальное количество распознаваемых тегов за один раз.&lt;/li&gt;
&lt;li&gt;Схемы композиции тегов (для считывания большего количества информации)&lt;/li&gt;
&lt;li&gt;Оптимальная размерность тегов (16,32 ... )&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Путь развития&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Теги разных размеров&lt;/li&gt;
&lt;li&gt;Создание удобного движка манипулирования 3D сценой&lt;/li&gt;
&lt;li&gt;Отслеживание позиций ушедших с экранов тегов&lt;/li&gt;
&lt;li&gt;Разные размеры для тегов объектов и тегов команд (как&amp;nbsp;линейные так и количество сегментов)&lt;/li&gt;
&lt;li&gt;Разработать систему команд для воздействия на объекты. (сейчас вижу что-то вроде набора из Переместить, Вращать, Активация, Считать стоку данных)&lt;/li&gt;
&lt;li&gt;Вывод изображения через 3D-телевизор для получения эффекта установки 3D-объекта дат AR-тегом непосредственно.&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
Меркантильные вопросы. Буду благодарен за помощь в разрешении этих вопросов.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;Нужна внешняя веб-камера.&lt;/li&gt;
&lt;li&gt;Нужна система Kinekt с кабелем питания \ адаптером подключения к ПК&lt;/li&gt;
&lt;li&gt;Нужен 3D телевизор для проверки системы отображения&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/06/slartoolkit-blader.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-3989524207306171850</guid><pubDate>Sun, 15 May 2011 16:51:00 +0000</pubDate><atom:updated>2011-05-15T20:51:15.997+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dotNet</category><category domain="http://www.blogger.com/atom/ns#">Sharepoint</category><category domain="http://www.blogger.com/atom/ns#">Исходники</category><category domain="http://www.blogger.com/atom/ns#">Карьера</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><category domain="http://www.blogger.com/atom/ns#">С#</category><title>Sharepoint 2010 и русские имена столбов списков</title><description>Если вы сталкивались с написанием CAML запросов для Sharepoint 2010 то знаете, что обращение к столбцам с русскими именами достаточно затруднительно т.к. если столбец создавался изначально с русским именем то его внутреннее имя будте представленно закодированным значением. Например если вы назвали свой столбец &lt;b&gt;&quot;Столбец&quot;&lt;/b&gt; то его внутренним именем будет : &lt;b&gt;_x0421__x0442__x043e__x043b__x0431__x0435__x0446_&lt;/b&gt;.&lt;br /&gt;
Я часто сталкиваюсь с такой белибердой и выяснил что это на самом деле HEX значение Unicode символов окруженные &lt;b&gt;_х&lt;/b&gt; и &lt;b&gt;_&lt;/b&gt; . Вооружившись этим знанием я написал две функции для преобразования строки туда и обратно: &lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;public static class NameConverter
    {
        /// &amp;lt;summary&amp;gt;
        /// Расшифровать имя из внутреннего представления
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&quot;val&quot;&amp;gt;Закодированое имя&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;Расшифрованое значение&amp;lt;/returns&amp;gt;
        public static string DecodeName(string val)
        {
            val = val.Replace(&quot;ows&quot;, &quot;&quot;);
            if (!val.Contains(&quot;_x&quot;)) return val;

            var sb = new StringBuilder();
            val = val.Replace(&quot;_&quot;, &quot;&quot;);
            var parts = val.Split(new[] { &#39;x&#39; }, StringSplitOptions.RemoveEmptyEntries);
            foreach (string part in parts)
            {
                int v = int.Parse(part, NumberStyles.HexNumber);
                var c = (char)v;
                sb.Append(c);
            }
            return sb.ToString();
        }
        /// &amp;lt;summary&amp;gt;
        /// Закодировать русскую строку
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&quot;name&quot;&amp;gt;Имя для кодирования&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;Закодированое значение&amp;lt;/returns&amp;gt;
        public static string EncodeName(string name)
        {
            var sb = new StringBuilder();
            for (int i = 0; i &amp;lt; name.Length; i++)
            {
                sb.AppendFormat(&quot;_x{0:x4}_&quot;, (int)name[i]);
            }
            return sb.ToString();
        }
    }
&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/05/sharepoint-2010.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-193573804811328034</guid><pubDate>Sat, 30 Apr 2011 11:38:00 +0000</pubDate><atom:updated>2011-04-30T15:38:36.119+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dotNet</category><category domain="http://www.blogger.com/atom/ns#">Sharepoint</category><category domain="http://www.blogger.com/atom/ns#">Интересно</category><category domain="http://www.blogger.com/atom/ns#">Исходники</category><category domain="http://www.blogger.com/atom/ns#">Карьера</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><category domain="http://www.blogger.com/atom/ns#">С#</category><title>Удаление элементов из SPList через ProcessBatchData</title><description>Всем разработчикам Sharepoint 2010 (да и вообще любой версии Sharepoint или MOSS) известна ситуация с медленной работой объектной модели и большом времени поиска\модификации через нее.&lt;br /&gt;
Так вот мне однажды пришлось писать систему массового удаления данных из разных списков сайта под управлением Sharepoint 2010. Решения через &lt;b&gt;SPListItem.Delete()&lt;/b&gt;, &lt;b&gt;SPList.Items.DeleteItem(idx)&lt;/b&gt; и даже &lt;b&gt;SPList.Items.DeleteItemById(itemId)&lt;/b&gt; давали жуткие показатели времени работы (удаление 100 элементов за &lt;b&gt;60000(!)-120000(!) &lt;/b&gt;секунд). И тут я вспомнил про волшебную возможность &lt;b&gt;SPWeb.ProcessBatchData&lt;/b&gt; которая позволяет выполнять CAML запросы напрямую, минуя слой объектной модели.( Забегая вперед скажу что такое решение мне дало производительность в районе ~650сек на 5000 записей.)&lt;br /&gt;
Что-ж покопав документацию на сайте Microsoft (&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.processbatchdata.aspx&quot;&gt;http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spweb.processbatchdata.aspx&lt;/a&gt;) я подумал что все тривиально и создал свое первое решение. Радостно посапывая я ткнул в кнопочку деплой и запустил свой код. Как ни странно код рухнул. Не буду описывать процесс поиска ошибки и сразу скажу: &lt;b&gt;Разбивайте свои запросы на пачки! Не больше 180 запросов в одном теге &lt;batch&gt;. &lt;/batch&gt;&lt;/b&gt;Лично&lt;b&gt; &lt;/b&gt;я разбиваю свои запросы в пачки по 100.&lt;br /&gt;
Поправив код и сделав разбиение на пачки я запустил все снова. Как и ожидалось пепелац не взлетел. А я поимел совершенно смутившую меня ошибку &lt;b&gt;ArgumentException&lt;/b&gt;. Тут надо отметить удивительную абсолютную невразумительности сообщений Sharepoint об ошибках. 
&lt;br /&gt;
Вот к примеру как выглядел мой Expcetion
&lt;br /&gt;
&lt;pre&gt;Exception type: ArgumentException
[Message] = &quot;&lt;nativehr&gt;0x80070057&lt;/nativehr&gt;&lt;nativestack&gt;&lt;/nativestack&gt;&quot;
[ParamName] = &quot;&quot;
[Data] = &quot;System.Collections.ListDictionaryInternal&quot;
[TargetSite] = &quot;Void GetListItemDataWithCallback2(Microsoft.SharePoint.Library.IListItemSqlClient, System.String, System.String, System.String, System.String, Microsoft.SharePoint.Library.SAFEARRAYFLAGS, Microsoft.SharePoint.Library.ISP2DSafeArrayWriter, Microsoft.SharePoint.Library.ISPDataCallback, Microsoft.SharePoint.Library.ISPDataCallback, Microsoft.SharePoint.Library.ISPDataCallback, Microsoft.SharePoint.Library.ISPDataCallback, Microsoft.SharePoint.Library.ISPDataCallback, Boolean ByRef)&quot;
[StackTrace] = &quot;   в Microsoft.SharePoint.Library.SPRequestInternalClass.GetListItemDataWithCallback2(IListItemSqlClient pSqlClient, String bstrUrl, String bstrListName, String bstrViewName, String bstrViewXml, SAFEARRAYFLAGS fSafeArrayFlags, ISP2DSafeArrayWriter pSACallback, ISPDataCallback pPagingCallback, ISPDataCallback pPagingPrevCallback, ISPDataCallback pFilterLinkCallback, ISPDataCallback pSchemaCallback, ISPDataCallback pRowCountCallback, Boolean&amp;amp; pbMaximalView)
   в Microsoft.SharePoint.Library.SPRequest.GetListItemDataWithCallback2(IListItemSqlClient pSqlClient, String bstrUrl, String bstrListName, String bstrViewName, String bstrViewXml, SAFEARRAYFLAGS fSafeArrayFlags, ISP2DSafeArrayWriter pSACallback, ISPDataCallback pPagingCallback, ISPDataCallback pPagingPrevCallback, ISPDataCallback pFilterLinkCallback, ISPDataCallback pSchemaCallback, ISPDataCallback pRowCountCallback, Boolean&amp;amp; pbMaximalView)
   в Microsoft.SharePoint.SPListItemCollection.EnsureListItemsData()
   в Microsoft.SharePoint.SPListItemCollection.GetEnumerator()
   в MRR.DVIZ.Workflows.ClearFormsWorkflow.ClearFormsWorkflow.FindRunning(Object sender, EventArgs e)
   в System.Workflow.ComponentModel.Activity.RaiseEvent(DependencyProperty dependencyEvent, Object sender, EventArgs e)
   в System.Workflow.Activities.CodeActivity.Execute(ActivityExecutionContext executionContext)
   в System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)
   в System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext)
   в System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)
   в System.Workflow.Runtime.Scheduler.Run()&quot;
[HelpLink] = &quot;&quot;
[Source] = &quot;&quot;
&lt;/pre&gt;
Поиски google ничего вразумительного не дали. Правда у меня зародилось смутное сомнение в том что я что-то не так делаю с форматом CAML запроса. Я даже не могу сказать что мена натолкнуло на эту мысль, интуиция если только.&lt;br /&gt;
Не буду рассказывать свои танцы вокруг подбора нового формата. скажу лишь что:
&lt;br /&gt;
&lt;pre&gt;&amp;lt;Batch OnError=&quot;Continue&quot;&amp;gt;

&amp;lt;SetList&amp;gt;b15da36c-6ed8-4fe1-bbcc-89a1996c1dbe&amp;lt;/SetList&amp;gt;
&amp;lt;Method ID=&quot;1&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;638&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;2&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;639&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;3&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;648&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;4&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;649&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;5&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;650&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;6&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;651&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;7&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;652&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;8&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;653&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;9&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;654&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;10&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;655&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;11&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;656&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;12&quot; Cmd=&quot;Delete&quot;&amp;gt;&amp;lt;Field Name=&quot;ID&quot;&amp;gt;657&amp;lt;/Field&amp;gt;&amp;lt;/Method&amp;gt;

&amp;lt;/Batch&amp;gt;&lt;/pre&gt;
не красиво но не правильно. Надо: 
&lt;br /&gt;
&lt;pre&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;

&amp;lt;Batch OnError=&quot;Return&quot;&amp;gt;&lt;/pre&gt;
&lt;pre&gt;&amp;lt;Method ID=&quot;1,Del&quot;&amp;gt;&amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;20&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;2,Del&quot;&amp;gt; &amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;21&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;3,Del&quot;&amp;gt; &amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;22&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;4,Del&quot;&amp;gt; &amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;23&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;5,Del&quot;&amp;gt; &amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;24&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;6,Del&quot;&amp;gt; &amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;25&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;7,Del&quot;&amp;gt; &amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;26&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;8,Del&quot;&amp;gt; &amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;27&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;9,Del&quot;&amp;gt; &amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;28&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;10,Del&quot;&amp;gt; &amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;29&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;11,Del&quot;&amp;gt; &amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;30&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;
&amp;lt;Method ID=&quot;12,Del&quot;&amp;gt; &amp;lt;SetList 
Scope=&quot;Request&quot;&amp;gt;465ebd0a-d6d4-4736-81d7-27cac86e8952&amp;lt;/SetList&amp;gt; &amp;lt;SetVar 
Name=&quot;ID&quot;&amp;gt;31&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=&quot;Cmd&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;

&amp;lt;/Batch&amp;gt;&lt;/pre&gt;
Код создающий такую структуру и выполняющие его в пачках (listMods - IEnumerable&lt;int&gt; с ИД строк для уделания):
&lt;/int&gt;&lt;br /&gt;
&lt;pre&gt;List&amp;lt;string&amp;gt; listBatch = new List&lt;string&gt;();

StringBuilder batch = new StringBuilder();
StringBuilder log = new StringBuilder();

if (!string.IsNullOrEmpty(listTitle) &amp;amp;&amp;amp; listMods != null &amp;amp;&amp;amp; listMods.Count &amp;gt; 0)
{
    log.AppendFormat(&quot;Очистка списка {0}. Удалеине {1} элементов.&quot;, listTitle, listMods.Count);
    batch.AppendLine(&quot;&amp;lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;UTF-8\&quot;?&amp;gt;&quot;);
    batch&lt;batch onerror=&quot;\&amp;quot;Return\&amp;quot;&quot;&gt;.AppendLine(&quot;&amp;lt;Batch OnError=\&quot;Return\&quot;&amp;gt;&quot;);
    int batchSize = 0;
    foreach (int toDelete in listMods)
    {
        batchSize++;
        batch.AppendFormat(
            &quot;&amp;lt;Method ID=\&quot;{0},Del\&quot;&amp;gt; {2} &amp;lt;SetVar Name=\&quot;ID\&quot;&amp;gt;{1}&amp;lt;/SetVar&amp;gt;&amp;lt;SetVar Name=\&quot;Cmd\&quot;&amp;gt;Delete&amp;lt;/SetVar&amp;gt;&amp;lt;/Method&amp;gt;&quot;,
            batchSize, toDelete,
            string.Format(&quot;&amp;lt;SetList Scope=\&quot;Request\&quot;&amp;gt;{0}&amp;lt;/SetList&amp;gt;&quot;,
                            queryRoot.Lists[listTitle].ID))
            .AppendLine();

        if (batchSize &amp;gt;= 100)
        {
            batch.AppendLine&lt;/batch&gt;(&quot;&amp;lt;/Batch&amp;gt;&quot;);
            listBatch.Add(batch.ToString());
            batchSize = 0;

            batch = new StringBuilder(batch.Capacity);
            batch.AppendLine(&quot;&amp;lt;?xml version=\&quot;1.0\&quot; encoding=\&quot;UTF-8\&quot;?&amp;gt;&quot;);
            batch.AppendLine(&quot;&amp;lt;Batch OnError=\&quot;Return\&quot;&amp;gt;&quot;);
        }
    }
    batch.AppendLine(&quot;&amp;lt;/Batch&amp;gt;&quot;);
    listBatch.Add(batch.ToString());


    foreach (string cmd in listBatch)
    {
        try
        {
            log.Append(&quot;Исполнение запроса :&quot;).AppendLine().Append(cmd).AppendLine();
            string cmd1 = cmd;
            SPSite siteColl = currentSite;
            SPWeb site = currentWeb;
            SPSecurity.RunWithElevatedPrivileges(delegate()
                                                        {
                                                            using (
                                                                SPSite ElevatedsiteColl =
                                                                    new SPSite(siteColl.ID))
                                                            {
                                                                using (
                                                                    SPWeb ElevatedWeb =
                                                                        ElevatedsiteColl.OpenWeb(
                                                                            site.ID))
                                                                {
                                                                    ElevatedWeb.ProcessBatchData(cmd1);
                                                                }
                                                            }
                                                        });                                
        }
        catch (Exception e)
        {
            var ex = new ApplicationException(&quot;Ошибка при исполнении комманды: &quot; + cmd, e);
            throw ex;
        }
    }
}
&lt;/string&gt;&lt;/pre&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/04/splist-processbatchdata.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-762720096819689334</guid><pubDate>Wed, 20 Apr 2011 14:56:00 +0000</pubDate><atom:updated>2011-05-15T21:02:19.390+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Silverlight</category><category domain="http://www.blogger.com/atom/ns#">Исходники</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>Chrome\Firefox + Silverlight + CSS Styles</title><description>Если вы на своей странице используете silverlight и попытаетесь изменить значение атрибута стиля position то&amp;nbsp;Chrome\Firefox заново создадут и загрузят ваше приложение.&lt;br /&gt;
Обойти это не получилось.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/04/chromefirefox-silverlight-styles.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-4066825193519767041</guid><pubDate>Thu, 07 Apr 2011 08:52:00 +0000</pubDate><atom:updated>2011-05-16T09:54:51.242+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Sharepoint</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><category domain="http://www.blogger.com/atom/ns#">С#</category><title>Настройка приложения Sharepoint 2010 для авторизации форм (FBA) с хранением данных в SQLServer</title><description>Для настройки приложения Sharepoint 2010 для работы с авторизацией форм FBA (forms based authentication) важно знать что приложение должно быть настроено для работы через Claims Based Authentication.&lt;br /&gt;
&lt;br /&gt;
Самый простой вариант - при создании приложения указать Claims based [Авторизация на утверждениях] (по умолчанию приложение создается в режиме Basic authentication).&lt;br /&gt;
Если-же у вас уже имеется приложение для которого надо включить FBA вам придется конвертировать приложение. Сложного в этом ничего нет, но стоит помнить что конвертация &lt;b&gt;НЕОБРАТИМА.&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
Для конвертации приложения из Basic в Claims based вам необходимо открыть Powershell для Sharepoint 2010 с правами администратора и там выполнить команды:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;
$app=Get-SPWebApplication(&quot;http://site&quot;)&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;$app.UseClaimsAuthentication = 1&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;$app.Update()&amp;nbsp;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;$app.ProvisionGlobally()
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Теперь можно приступить к настройке базы данных. Для создания базы данных для хранения пользователей надо запустить мастер создания и регистрации базы данных пользователей командой:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;c:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_regsql.exe&lt;/code&gt;

&lt;br /&gt;
&lt;br /&gt;
В своем случае я указал имя БД &lt;u&gt;SharepointAuthDB&lt;/u&gt;, и учетные данные пользователя от которого у меня работает Sharepoint для простоты настройки администратором домена/сервера, а так-же из-за стойкой неприязни к хранению имени пользователя и пароля доступа в строке подключения. &amp;nbsp;Для создания строки подключения нам надо запомнить имя сервера, имя БД, и способ авторизации пользователя.&lt;br /&gt;
&lt;br /&gt;
Далее открываем Управление службами IIS и в настройках сервера &amp;nbsp;нажимаем на ConnectionStrings(Строки подключения) и там нажимаем на &quot;Создать&quot;. В открывшемся диалоге вводим имя сервера,имя БД (&lt;u&gt;SharepointAuthDB &lt;/u&gt;в моем случае) и способ авторизации пользователя которые вы указывали в мастере регистрации. Так-же необходимо проверить что данный пользователь имеет права dbo и public на базу с пользователями. Так-же вам надо указать имя строки подключения (я указал &lt;u&gt;SqlAuthConnection&lt;/u&gt;) и запомнить его.&lt;br /&gt;
&lt;br /&gt;
Далее нам необходимо модифицировать 3 файла web.config&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Web.config от приложения Sharepoint которые вы настраиваете для авторизации форм
Обычно он расположен по адресу: &lt;i&gt;C:\inetpub\wwwroot\wss\VirtualDirectories\80&lt;/i&gt; (можно посмотреть в настройках узла)
&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;roleManager defaultProvider=&quot;c&quot; enabled=&quot;true&quot; cacheRolesInCookie=&quot;false&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;providers&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;add name=&quot;c&quot; type=&quot;Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;add connectionStringName=&quot;SharepointAuthDB&quot; applicationName=&quot;/&quot; description=&quot;Stores and retrieves roles from SQL Server&quot; name=&quot;FBARole&quot; type=&quot;System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/providers&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/roleManager&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;membership defaultProvider=&quot;i&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;providers&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;add name=&quot;i&quot; type=&quot;Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;add connectionStringName=&quot;SharepointAuthDB&quot; passwordAttemptWindow=&quot;5&quot; enablePasswordRetrieval=&quot;false&quot; enablePasswordReset=&quot;false&quot; requiresQuestionAndAnswer=&quot;true&quot; applicationName=&quot;/&quot; requiresUniqueEmail=&quot;true&quot; passwordFormat=&quot;Hashed&quot; description=&quot;Stores and Retrieves membership data from SQL Server&quot; name=&quot;FBA&quot; type=&quot;System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/providers&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;lt;/membership&amp;gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Файл web.config от SharePoint Central Administration
Обычно он расположен по адресу: &lt;i&gt;C:\inetpub\wwwroot\wss\VirtualDirectories\26719&lt;/i&gt; (можно посмотреть в настройках узла)&lt;br /&gt;
В этом файле после тега &amp;lt;/SafeControls&amp;gt; добавить секцию
&lt;br /&gt;
&amp;lt;PeoplePickerWildcards&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;clear /&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;add key=&quot;AspNetSqlMembershipProvider&quot; value=&quot;%&quot; /&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;add key=&quot;FBA&quot; value=&quot;%&quot; /&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;add key=&quot;LdapMembershipProvider&quot; value=&quot;*&quot;/&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;add key=&quot;LdapRoleManager&quot; value=&quot;*&quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/PeoplePickerWildcards&amp;gt;&lt;br /&gt;
&lt;br /&gt;
и перед тегом &amp;lt;/system.web&amp;gt; добавить секцию: &lt;br /&gt;
&amp;lt;roleManager defaultProvider=&quot;AspNetWindowsTokenRoleProvider&quot; enabled=&quot;true&quot; cacheRolesInCookie=&quot;false&quot;&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;providers&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;add connectionStringName=&quot;SharepointAuthDB&quot; applicationName=&quot;/&quot; description=&quot;Stores and retrieves roles from SQL Server&quot; name=&quot;FBARole&quot; type=&quot;System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/providers&amp;gt;&lt;br /&gt;
&amp;lt;/roleManager&amp;gt;&lt;br /&gt;
&amp;lt;membership defaultProvider=&quot;FBA&quot;&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;providers&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;add connectionStringName=&quot;SharepointAuthDB&quot; passwordAttemptWindow=&quot;5&quot; enablePasswordRetrieval=&quot;false&quot; enablePasswordReset=&quot;false&quot; requiresQuestionAndAnswer=&quot;true&quot; applicationName=&quot;/&quot; requiresUniqueEmail=&quot;true&quot; passwordFormat=&quot;Hashed&quot; description=&quot;Stores and Retrieves membership data from SQL Server&quot; name=&quot;FBA&quot; type=&quot;System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/providers&amp;gt;&lt;br /&gt;
&amp;lt;/membership&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;Файл web.config от Sharepoint Security Token Service (STS)Обычно он расположен по адресу: &lt;i&gt;C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\WebServices\SecurityToken&lt;/i&gt;
В этот файл необходимо добавить секцию: 
&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&amp;lt;system.web&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;roleManager defaultProvider=&quot;c&quot; enabled=&quot;true&quot; cacheRolesInCookie=&quot;false&quot;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;providers&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;add name=&quot;c&quot; type=&quot;Microsoft.SharePoint.Administration.Claims.SPClaimsAuthRoleProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; /&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;add connectionStringName=&quot;SharepointAuthDB&quot; applicationName=&quot;/&quot; description=&quot;Stores and retrieves roles from SQL Server&quot; name=&quot;FBARole&quot; type=&quot;System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/providers&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/roleManager&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;membership defaultProvider=&quot;i&quot;&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: monospace;&quot;&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;providers&amp;gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;add name=&quot;i&quot; type=&quot;Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c&quot; /&amp;gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;   &lt;/span&gt;&amp;lt;add connectionStringName=&quot;SharepointAuthDB&quot; passwordAttemptWindow=&quot;5&quot; enablePasswordRetrieval=&quot;false&quot; enablePasswordReset=&quot;false&quot; requiresQuestionAndAnswer=&quot;true&quot; applicationName=&quot;/&quot; requiresUniqueEmail=&quot;true&quot; passwordFormat=&quot;Hashed&quot; description=&quot;Stores and Retrieves membership data from SQL Server&quot; name=&quot;FBA&quot; type=&quot;System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&quot; /&amp;gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;&amp;lt;/providers&amp;gt;&lt;/div&gt;
&lt;div&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&amp;lt;/membership&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;lt;/system.web&amp;gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
Далее необходимо открыть приложение Sharepoint Central Administration &amp;nbsp;и нам в настройках приложения нажать &quot;Поставщики проверки безопасности&quot;, выбрать необходимую зону и в настройках зоны включить галочку &quot;Разрешить проверку подлинности на основе форм (FBA)&quot;.&lt;br /&gt;
&lt;br /&gt;
Далее в поле &quot;Имя поставщика контроля членства в ASP.NET&quot; (membership provider) задать &lt;b&gt;FBA &lt;/b&gt;, а в поле &quot;Имя поставщика контроля членства в ASP.NET&quot; (role provider) задать &lt;b&gt;FBARole &lt;/b&gt;(если вы не меняли имя поставщиков в XML а указали как я написал). А так-же проверить что разрешен анонимный доступ (для обеспечения работоспособности&amp;nbsp;сервиcов&amp;nbsp;Sharepoint)&lt;br /&gt;
&lt;br /&gt;
Нам осталось совсем немного. Для проверки&amp;nbsp;корректности&amp;nbsp;работы авторизации форм надо создать пользователей в базе данных. (ВНИМАНИЕ из-за особенностей настройки Membreship&lt;br /&gt;
&lt;br /&gt;
Providers для Sharepoint 2010 управлять пользователями через стандартную оснастку IIS не получится, я могу посоветовать написать свой менеджер пользователей или воспользоваться программой&amp;nbsp;&lt;a href=&quot;http://cks.codeplex.com/releases/view/7450&quot;&gt;MembershipSeeder&lt;/a&gt;)&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
Теперь осталось&amp;nbsp;перезапустить&amp;nbsp;IIS. Зайдти в Sharepoint Central Admin и в настройках приложения задать политику доступа для пользователей FBA.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/04/sharepoint-2010-fba-sqlserver.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-9017384602012588369</guid><pubDate>Thu, 07 Apr 2011 06:28:00 +0000</pubDate><atom:updated>2011-04-07T10:30:19.726+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Важное</category><category domain="http://www.blogger.com/atom/ns#">Видео</category><category domain="http://www.blogger.com/atom/ns#">Новости</category><category domain="http://www.blogger.com/atom/ns#">Фотки</category><title>Обрушение потолка в &quot;Москва сити&quot;</title><description>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dwfjXUKImaTGL0QxRu3vpYo6MaOV2ztDkVYBg11YEZFdGgKRZ8QWSYE_XJiF2afP7ZLnK1UAC5yiWw&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;
Сегодня 7 апреля 2010 гола приблизительно в 09:10 утра произошло обрушение потолка вестибюля выхода со станции метро &quot;Выставочная&quot;. В данном вестибюле так-же расположен вход в открывшийся две недели назад торговый цента Амфи Сити Молл расположенный на территории бизнес комплекса Москва-Сити. Во время обрушения в&amp;nbsp;вестибюле&amp;nbsp;станции было достаточно много людей, лишь по счастливой случайности никто не пострадал. Из дырки&amp;nbsp;образовавшейся&amp;nbsp;на месте пролома тут-же начала теч вода (лужу отчетливо видно на фотографиях).&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7jfrP-VaYLrIu6nlb9qMsHTILImHVphnOcChpgYpar4aUaGzqpUYg3GujuqXJaXjvpGYjzdeZOdcpN_NffKtThix_1u8S1pFgooOFIQ5E-Ytj15tMpOQuart0HXbAs9_B8NKu/s1600/IMAG0107.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinty0gFqySmqz2k8tq1xq-XRgBaCaHI67Vwu91Kqm6uKiDCX3tQYAudyIyh92pf_gxE8NaCLmVg20r5MejtwQArUrhpSfgKUjeY08h1xYAfI687QCc_VMyVWuYVQmKSppEdYCp/s1600/IMAG0106.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinty0gFqySmqz2k8tq1xq-XRgBaCaHI67Vwu91Kqm6uKiDCX3tQYAudyIyh92pf_gxE8NaCLmVg20r5MejtwQArUrhpSfgKUjeY08h1xYAfI687QCc_VMyVWuYVQmKSppEdYCp/s320/IMAG0106.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_E4-j08z3otarC6fGy6pSjux4AehFnxE_-ToFF1_PRpOP7rYa9bmD0b5l9BWW0w9x1N6BswzMI-HYPR8K8oxsdLliKSoLHrz2bxWaHQBNiRlxTPkctR8JhIhVC3nPvF61I_h/s1600/IMAG0105.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7_E4-j08z3otarC6fGy6pSjux4AehFnxE_-ToFF1_PRpOP7rYa9bmD0b5l9BWW0w9x1N6BswzMI-HYPR8K8oxsdLliKSoLHrz2bxWaHQBNiRlxTPkctR8JhIhVC3nPvF61I_h/s320/IMAG0105.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7jfrP-VaYLrIu6nlb9qMsHTILImHVphnOcChpgYpar4aUaGzqpUYg3GujuqXJaXjvpGYjzdeZOdcpN_NffKtThix_1u8S1pFgooOFIQ5E-Ytj15tMpOQuart0HXbAs9_B8NKu/s1600/IMAG0107.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7jfrP-VaYLrIu6nlb9qMsHTILImHVphnOcChpgYpar4aUaGzqpUYg3GujuqXJaXjvpGYjzdeZOdcpN_NffKtThix_1u8S1pFgooOFIQ5E-Ytj15tMpOQuart0HXbAs9_B8NKu/s320/IMAG0107.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/04/blog-post.html</link><author>noreply@blogger.com (FruT&#39;b)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEinty0gFqySmqz2k8tq1xq-XRgBaCaHI67Vwu91Kqm6uKiDCX3tQYAudyIyh92pf_gxE8NaCLmVg20r5MejtwQArUrhpSfgKUjeY08h1xYAfI687QCc_VMyVWuYVQmKSppEdYCp/s72-c/IMAG0106.jpg" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-1397140476497108120</guid><pubDate>Wed, 06 Apr 2011 19:06:00 +0000</pubDate><atom:updated>2011-04-06T23:06:12.513+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">dotNet</category><category domain="http://www.blogger.com/atom/ns#">Sharepoint</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><category domain="http://www.blogger.com/atom/ns#">С#</category><title>Sharepoint 2010 и исключение file not found exception</title><description>Маленький совет:
Если вы пишите приложение использующее объектную модель Sharepoint и при попытке открыть сайт как в примере:&lt;br /&gt;
using(SPSite sirte=new SPSite(&quot;http://site&quot;){&lt;br /&gt;
......&lt;br /&gt;
}&lt;br /&gt;
И получаете исключение &lt;b&gt;File not fount exception&lt;/b&gt; хотя сайт в браузере открывается - проверьте две вещи:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Build platform для проекта должен быть .NET Framework 3.5&lt;/li&gt;
&lt;li&gt;Проект&amp;nbsp;обязательно&amp;nbsp;собираться для x64 платформы&lt;/li&gt;
&lt;/ol&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2011/04/sharepoint-2010-file-not-found.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-1394405925744765868</guid><pubDate>Mon, 01 Nov 2010 17:44:00 +0000</pubDate><atom:updated>2010-11-01T20:44:36.857+03:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Видео</category><category domain="http://www.blogger.com/atom/ns#">Интересно</category><title>Знаете ли вы что? (видео) Меня заставило задуматься</title><description>&lt;iframe src=&quot;http://vkontakte.ru/video_ext.php?oid=10072933&amp;id=129386115&amp;hash=f5bf1e4f37fde085&quot; width=&quot;560&quot; height=&quot;280&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2010/11/blog-post.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-48918779147550629</guid><pubDate>Sat, 23 Oct 2010 07:30:00 +0000</pubDate><atom:updated>2010-10-25T20:13:09.307+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>Где жить в командировке.</title><description>Часто бывает так: еще вчера вы работали в офисе и нечего не предвещало изменений. Но вот к вам подходит ваш начальник и говорит, что, завтра вы срочно выезжаете&amp;nbsp;командировку. И вот вы уже загружены решением вопросов связанных с этой бизнес-поездкой. И главным вопросом является &quot;Где жить?&quot;.&lt;br /&gt;
По своему опыту знаю - ваш начальник будет рад если вы предложите ему хороший вариант проживания. Как оказалось даже&amp;nbsp;&lt;a href=&quot;http://corporatehousing.ru/&quot;&gt;элитные квартиры посуточно&lt;/a&gt;&amp;nbsp;будут стоить вам дешевле чем отели и гостиницы. А уж наличие холодильника и кухни в длительной поездке является весомым&amp;nbsp;преимуществом. Как показала практика, на те деньги что запрашивает у вас отель за сутки можно снять и квартиру, и машину, и все-равно выйдет дешевле.&lt;br /&gt;
Удачных вам поездок.
&lt;br /&gt;
&lt;hr /&gt;
&lt;a href=&quot;http://homedsn.ru/&quot;&gt;Современные интерьеры домов&lt;/a&gt; - крайне полезный ресурс по дизайну интерьеров домов и квартир.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2010/10/blog-post_23.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-4389207848563671832</guid><pubDate>Sat, 16 Oct 2010 05:25:00 +0000</pubDate><atom:updated>2010-10-23T03:35:08.565+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Интересно</category><title>Экономия</title><description>Тут начал заниматься построением профиля расходов своей семьи - ибо понял что денег уходит много и не понятно куда. Начал все траты выписывать в отдельной программе, которую сам по случаю и написал. Теперь вот ищу нетривиальные способы сэкономить.&lt;br /&gt;
Вот первое место на которое я обратил внимание:&amp;nbsp;&lt;a href=&quot;http://5tl.ru/&quot;&gt;интернет магазин китайских телефонов&lt;/a&gt;&amp;nbsp;- место где можно найти iPhone за 5000руб.
&lt;hr/&gt;
&lt;a href=&quot;http://soccerua.livejournal.com/&quot;&gt;Рекомендую почитать&lt;/a&gt; подборку интересных статей
&lt;br/&gt;
&lt;a href=&quot;http://stavkisport.ru/&quot;&gt;Прогнозы на спорт&lt;/a&gt; для любителей тотализатора&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2010/10/blog-post_16.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-3560570865487261327</guid><pubDate>Fri, 15 Oct 2010 16:12:00 +0000</pubDate><atom:updated>2010-10-23T03:45:04.284+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Интересно</category><title>Классическая мягкая мебель как часть интерьера</title><description>Мягкая мебель присутствует во всех местах которые мы воспринимаем как комфортные – рестораны, клубы, в конце концов, дом. Данная мысль пришла мастерам еще в начале средних веков – когда зарождались понятия «комфорт» и «классика». С тех пор многое изменилось, но видение комфортной мебели как предмета создающего основное восприятие интерьера сохранилось и в наше время.&lt;a href=&quot;http://www.salon-konservator.ru/klassicheskaya_mjagkaya_mebel.php&quot;&gt;  Классическая мягкая мебель&lt;/a&gt; проверенных временем брендов создает комфортное восприятие пространства, в котором она установлена.  Этот проверенный временем тезис работает как для дома, так и для офисных помещений. Не забывайте, что впечатление у клиента создается в первый момент пребывания в вашем офисе.&amp;nbsp;Классическая&amp;nbsp;мягкая мебель создает впечатления уверенности в&amp;nbsp;будущем, устойчивости традиций и гармонии в намерениях.
&lt;br /&gt;
&lt;hr /&gt;
Всем кто хочет увеличить свою конкурентоспособность советую &lt;a href=&quot;http://www.lennevaproekt.ru/gost.html&quot;&gt;Скачать ГОСТы бесплатно&lt;/a&gt;.
&lt;br /&gt;
Бюджетный и люксовый отдых в Анапе. полная информация на сайте : &lt;a href=&quot;http://anapa-w.ru/&quot;&gt;http://anapa-w.ru&lt;/a&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2010/10/blog-post_8646.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-8861736344076079232</guid><pubDate>Fri, 15 Oct 2010 14:43:00 +0000</pubDate><atom:updated>2010-10-23T11:33:34.371+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Интересно</category><category domain="http://www.blogger.com/atom/ns#">Карьера</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><title>Производство и сертификация</title><description>Сегодня я хочу поговорить о сертификации.
Итак вы развернули свое производство (будь то производственный конвейер или маленькое домашнее производство). и начали предлагать свой товар на реализацию в розничных точках. Первое что вы обнаружите: все стали просить сертификаты на товар\продукцию. Это повышает гарантии со стороны поставщика и магазина по отношению к покупателю. И, как оказалось, это касается и товаров подлежащих добровольной сертификации. Таким образом &lt;a href=&quot;http://etalon-groupp.ru/&quot;&gt;сертификация продукции&lt;/a&gt; становится вашей целью на пути успешных продаж товара.
А как только заходит речь о сертификации продукции становится необходимым соблюдать ГОСТы. &lt;a href=&quot;http://www.lennevaproekt.ru/gost.html&quot;&gt;Скачать ГОСТы бесплатно&lt;/a&gt; можно тут.
&lt;hr/&gt;
Если у вас возникли вопросы про &lt;a href=&#39;http://www.nivona.ru/article/article_23.htm&#39;&gt;комплексный ремонт квартир&lt;/a&gt; советую посетить сайт http://www.nivona.ru&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2010/10/blog-post_15.html</link><author>noreply@blogger.com (FruT&#39;b)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-36008262.post-7742988298005505192</guid><pubDate>Thu, 14 Oct 2010 08:18:00 +0000</pubDate><atom:updated>2010-10-23T03:33:30.441+04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Интересно</category><category domain="http://www.blogger.com/atom/ns#">Полезное</category><category domain="http://www.blogger.com/atom/ns#">Ссылки</category><title>Life-Radio - Интерактивная интернет радиостация</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOModCThcGKEqP7JbGgWkf_aaEaHDyzwkQH-z6AzSDY1WULq_1qdEdYvYmIcBut98h84K2GJi7exKmsGSCHnGH8vzGbB28WgXbj1ecYuEe4olwbmXvLS-a8TS2cwdHCHfaj4jw/s1600/lw.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOModCThcGKEqP7JbGgWkf_aaEaHDyzwkQH-z6AzSDY1WULq_1qdEdYvYmIcBut98h84K2GJi7exKmsGSCHnGH8vzGbB28WgXbj1ecYuEe4olwbmXvLS-a8TS2cwdHCHfaj4jw/s1600/lw.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Этот пост своего хайтек блога я хотел-бы посвятить очень качественному ресурсу найденному мною на просторах &quot;великой всемирной помойки&quot;. Это радиостанция&amp;nbsp;&lt;a href=&quot;http://life-radio.ru/&quot;&gt;http://life-radio.ru/&lt;/a&gt;. Суть такая-же как и у обычной радиостанции, но с доступом через интернет. Очень порадовала возможность слушай эфир прям с главной страницы. Да и дизайн плеера встроенного в страницу очень приятно порадовал. Нагрузка на канал - вполне терпимая. Качество звука 128.&lt;br /&gt;
Еще из особенностей стоит отметить постоянный контакт со слушателями (вы можете связаться с дижеями и через асю и через скайп).&lt;br /&gt;
Еще раз&amp;nbsp;повторю&amp;nbsp;что сайт очень приятно порадовал.
&lt;br /&gt;
&lt;hr /&gt;
Для тек кому понадобилось что-то из софта советую покопать сборник &quot;&lt;a href=&quot;http://freesoftspace.com/&quot;&gt;лучшие программы&lt;/a&gt;&quot;. И ведь правда &quot;лучшие&quot;, а главное БЕСПЛАТНЫЕ!!
&lt;br/&gt;
&lt;a href=&quot;http://lekarstvaonline.ru&quot;&gt;Виагра&lt;/a&gt; - возможности и желания совпадают. Держи потенцию под контролем.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--google_ad_client = &quot;pub-6282155264870791&quot;;google_ad_width = 468;google_ad_height = 60;google_ad_format = &quot;468x60_as&quot;;google_ad_type = &quot;text_image&quot;;google_ad_channel = &quot;&quot;;google_color_border = &quot;000000&quot;;google_color_bg = &quot;F0F0F0&quot;;google_color_link = &quot;0000FF&quot;;google_color_text = &quot;000000&quot;;google_color_url = &quot;008000&quot;;google_ui_features = &quot;rc:10&quot;;//--&gt;&lt;/script&gt;&lt;script type=&quot;text/javascript&quot;  src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;&lt;/script&gt;&lt;/div&gt;</description><link>http://frutb.blogspot.com/2010/10/life-radio.html</link><author>noreply@blogger.com (FruT&#39;b)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOModCThcGKEqP7JbGgWkf_aaEaHDyzwkQH-z6AzSDY1WULq_1qdEdYvYmIcBut98h84K2GJi7exKmsGSCHnGH8vzGbB28WgXbj1ecYuEe4olwbmXvLS-a8TS2cwdHCHfaj4jw/s72-c/lw.jpg" height="72" width="72"/><thr:total>1</thr:total></item></channel></rss>