<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns: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'><id>tag:blogger.com,1999:blog-7654350238437550554</id><updated>2024-09-06T22:04:18.101+03:00</updated><category term="philosophy"/><category term="Ivan Bodyagin"/><category term="job"/><category term="paper"/><category term="тех. люди"/><category term="ASP.NET"/><category term="Optimization"/><category term="Performance"/><category term="fun"/><category term="javascript"/><category term="trick"/><category term="Entity Framework"/><category term="LINQ"/><category term="LINQ2Sql"/><category term="ORM"/><category term="architecture"/><category term="code"/><category term="jQuery"/><category term="programming"/><category term="Active Directory"/><category term="IIS"/><category term="OOP"/><category term="SQL"/><category term="Silverlight"/><category term="TechDays"/><category term="UI design"/><category term="WCF"/><category term="authentication"/><category term="books"/><category term="cmd"/><category term="discussion"/><category term="google"/><category term="internal"/><category term="recomendations"/><category term="sam-solutions"/><category term="sequrity"/><category term="tools"/><category term="windows"/><category term="проекты"/><title type='text'>Happy Programming!</title><subtitle type='html'>Discussion of technologies and what is behind them</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Stas Slunkov</name><uri>http://www.blogger.com/profile/14686786629215343304</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-1272764462050464378</id><published>2009-11-12T11:23:00.004+02:00</published><updated>2009-11-12T13:33:04.028+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="tools"/><category scheme="http://www.blogger.com/atom/ns#" term="UI design"/><title type='text'>Подбор цветов</title><content type='html'>Сегодня помогал Диме подобрать цвет для выделения строки таблицы, который подходил бы к общей теме сайта. Денис увидел и попросил запостить метод и название тулов сюда, чем собственно и занимаюсь) Что я делал:&lt;br /&gt;Поставил &lt;a href=&quot;https://addons.mozilla.org/en-US/firefox/addon/271&quot;&gt;ColorZilla&lt;/a&gt; плагин к FF (позволяет без лишних телодвижений определить цвет в любой точке страницы). Затем пошел на сайт &lt;a href=&quot;http://kuler.adobe.com&quot;&gt;http://kuler.adobe.com&lt;/a&gt; , затем перешел &lt;a href=&quot;http://kuler.adobe.com/#create/fromacolor&quot;&gt;сюда&lt;/a&gt; ввел Base Color (который я достал при помощи вышеупомянутого плагина) и по нему подобрал несколько схожих цветов. Затем выбрал один из этих цветов и прикрутил к css-классу. Просто и быстро)</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/1272764462050464378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/1272764462050464378' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/1272764462050464378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/1272764462050464378'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/11/blog-post.html' title='Подбор цветов'/><author><name>jay</name><uri>http://www.blogger.com/profile/17536374156750088941</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-1465279383773170987</id><published>2009-11-09T12:24:00.002+02:00</published><updated>2009-11-09T12:25:00.772+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="philosophy"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><title type='text'></title><content type='html'>&lt;em&gt;1. Когда я программирую, я стараюсь думать: «Как бы мне написать это так, чтобы люди, которые будут читать мой код, восхищались тем, насколько он компактный и насколько мало он делает?» (об итеративности в программировании)&lt;br /&gt;&lt;br /&gt;Если черная обезьяна собрала много бананов, то ей доверят собрать еще больше. Если белая обезьяна загубила много бананов, то ей доверят загубить еще больше. (о неграх и шерифах)&lt;/em&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/1465279383773170987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/1465279383773170987' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/1465279383773170987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/1465279383773170987'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/11/1.html' title=''/><author><name>Stas Slunkov</name><uri>http://www.blogger.com/profile/14686786629215343304</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-5664065860761561191</id><published>2009-06-07T16:38:00.001+03:00</published><updated>2009-06-07T16:38:35.720+03:00</updated><title type='text'>CLIP - быстро скопировать все из консоли в буфер обмена</title><content type='html'>Искал в пуске Clipboard Viewer - раньше была такая утилита для просмотра содержимого буфера обмена. Нашел только clip.exe и Office Clip Organizer. Решил посмотреть, что за clip.exe.&lt;br /&gt;&lt;br /&gt;Вот что она сама о себе сообщает (clip /?)&lt;br /&gt;&lt;br /&gt;CLIP&lt;br /&gt;&lt;br /&gt;Description:&lt;br /&gt;Redirects output of command line tools to the Windows clipboard.&lt;br /&gt;This text output can then be pasted into other programs.&lt;br /&gt;&lt;br /&gt;Parameter List:&lt;br /&gt;/?                  Displays this help message.&lt;br /&gt;&lt;br /&gt;Examples:&lt;br /&gt;DIR | CLIP          Places a copy of the current directory&lt;br /&gt;listing into the Windows clipboard.&lt;br /&gt;&lt;br /&gt;CLIP &lt; README.TXT   Places a copy of the text from readme.txt&lt;br /&gt;on to the Windows clipboard.&lt;br /&gt;&lt;br /&gt;Теперь проблема копирования всего списка файлов из папки в буфер обмена в текстовом виде решена)&lt;br /&gt;&lt;br /&gt;DIR c:\ | CLIP&lt;br /&gt;&lt;br /&gt;Удачи.</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/5664065860761561191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/5664065860761561191' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/5664065860761561191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/5664065860761561191'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/06/clip.html' title='CLIP - быстро скопировать все из консоли в буфер обмена'/><author><name>AlexS</name><uri>http://www.blogger.com/profile/08708753260640179059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-8002269520080353041</id><published>2009-06-02T00:37:00.002+03:00</published><updated>2009-06-02T00:39:43.141+03:00</updated><title type='text'>Тех. Люди #6. Труд и удовольствие</title><content type='html'>&lt;span xmlns=&#39;&#39;&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Тех. Люди #6&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt; text-decoration:underline&#39;&gt;&lt;em&gt;Труд и удовольствие&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;По-моему, подошло самое время для следующего поста. У меня в последнее время складывается впечатление, что какие-то потусторонние силы готовят меня к запуску в космос: английский, учёба вождению, перегрузки на работе, энергетические вампиры, представленные детьми, придуманный мной для себя режим (самосовершенствование вечером и пробежки утром), сон по 6 часов, постоянные стрессы из-за вождения... Наверное, точно в космос полечу. И тут самое, наверное, важное - не сорваться и сохранить себя. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Жизнь слишком коротка. Труд занимает основную часть нашей жизни. И было бы совершенно неправильно не получать ничего от того, что ты делаешь.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Получать удовольствие от труда иногда достаточно трудно. Не всегда интересные проекты, много стрессов, короткие сроки, монотонность работы, разрдражение на коллег, телефон, который мешает работать, доступ в интернет, который отвлекает и т.д.. Но надо постоянно напоминать себе, что работа – это удовольствие, а значит и твоё душевное равновесие. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Для себя я выработал набор правил, которые соблюдаю и которые помогают мне беречь себя. Ниже они перечисляются. Не все они безукоризненно исполняются, но если стремится к этому, то это будет уже пол-дела.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Центр&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;В центре всего и работы в том числе стоите вы сами. Не начальник, не проект, не успех проекта. Вы. Прежде всего вы сами. Проекты приходят и уходят, а вы остаётесь. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Поэтому никогда не надо идти на уступки проекту, если надо будет перешагнуть через себя. Постоянно находится в согласии со своим внутренним миром поможет поставить дополнительный барьер между стрессами на работе и вами.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Не важно как проект закончится, в конце у вас должно остаться удовлетворение самим собой – вы сделали всё, что было в ваших силах. Вы работали честно, упорно и сделали всё, что в ваших силах.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Самое главное понимать, что в центре всего этого стоите сами вы. Не работа, а вы контролируете себя и ваше равновесие. Это ваша жизнь и несёте ответственность за неё вы сами, вы должны контролировать её, а не кто-то или что-то извне.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Жить на все 100&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Давно уже приметил, что если пытаешься посидеть в интернете и одновременно поиграть с детьми, то не получится ни того и ни другого. На выходе вместо удовольствия получишь одно разрадражение. Пару раз вот так было и после этого решил, что если чем то занимаешься, то заниматься нужно только этим и ничем иным. И не просто заниматься, а отдавать себя этому.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Играешь – отдаёшь себя полностью игре, занимаешься с детьми – ты только с ними, работаешь – поглащаешься целиков в свои труды, занимаешься любовью – пусть это будет страстно, быстро и со всей твоей энергией.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;После в другой замечательной книге нашёл подтверждение этой практики. Точного названия не помню, но смысл приблизительно – &lt;em&gt;жить на все 100&lt;/em&gt;. Т.е. чтобы ты не делал, отдаёшься этому на 100% без остатка и тебе идёт максимальный возврат в виде удовлетворения от того, что ты делаешь. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;А ещё один человек описывал, как дети смотрят мультфильмы (конечно, когда их очень очень редко смотрят). Они смотрят не глазами, они смотрят этот мультфильм всем телом. Каждая клеточка от кончиков пальцев на ногах до макушки жаждет этого мультфильма и после идёт поглощение этого мультфильма всем телом. Замечательно, конечно, описал. Идея в том, что если ты что-то делаешь, то отдаёшься этому на все 100. Ты ешь – и каждая твоя клетка получает удовольствие от еды, ты едешь на машине и ловишь постоянно себя на том, что как это классно управлять автомобилем, ты идёшь и чувствуешь огромное счастье, что тебе ничего не болит (обычно такое состояние мы испытываем после того как пару дней нам, например, зуб поболел, но почему не ловить такое состояние всегда – тебе ведь ничего не болит).&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;  От работы даже самой рутинной начинаешь получать удовольствие, если отдаёшься ей полностью и не даёшь другим вещам вмешиваться в это. За собой заметил, что если начинаю переключаться на чтение, к примеру, почты или блогов, несвязанных с работой или заполнением какого-нить бланка (опять же не по работе), то всё... можно сказать день потерян. К вечеру, не чувствую никакого удовольствия, от проведённого дня.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Уже давно завёл себе за правило - на работе только работа. Поменьше личного. Никаких блогов, видосов, самообразования – это я откладываю на нерабочее время. Даже сейчас, я разграничил себе чётко время – если прихожу до 10 часов, то никакой работы до 10, а после 10 – ничего лишнего. И это помогает.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Что заметил, чем сильнее человек в команде, тем больше он отдаёт себя работе на работе. А кто послабее, у того вижу постоянно &quot;не те&quot; страницы открыты на экране. У одного человека один раз чисто случайно у него на компьютере, когда вместе сидели, увидел историю посещений сайтов за день. Ммм... как полегче выразиться – нельзя получать удовольствия от работы, если ты её практически не занимаешься. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Проблема телефона на работе всё ещё остаётся для меня проблемой, но всеми силами пытаюсь эту проблему разрешить. В чём проблема. Выше уже сказал, что если ты на работе, то только работа. Но что делать с теми вещами, которые нельзя просто так выкинуть из повседневной жизни. Телефон как-то особенно выбивал из колееи. Сидишь, работаешь, полностью в работе, а тут звонок – любимая, к примеру, звонит узнать как дела. Тебя прерывают, тебе нужно остановиться на полстрочке кода или на полписьме – вот тут на тебя наплывает раздражение. А ведь тебя любимая просто хочет приободрить, узнать как дела, сказать что любит и ждёт. Частично эту проблему уже решил для себя: принял как должное, что телефон тебя может останаваливать в работе и это нормально, и разговору по телефону отдаёшь себя полностью, т.е. не смотришь в экран, парралельно читая почту, или исправляя в коде ошибку, а полностью, когда только ты и разговор по телефону (лучше выхожу в коридор подальше от компа, или моник полностью выключаю (хотя иногда неподсознательно его включаю во время разговора)).&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Конечно иногда стрессы с работы не дают тебе полностью отдаться семье. Но это чаще неконроллируемое чувство, с которым очень трудно справиться. Но с этим нужно бороться и искать пути как их выбрасывать из личной жизни.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Надеятся на других&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Вот это самый трудный пункт в плане объяснить. Никогда не полагайся на других в твоей работе. Жутковато звучит, потому что нельзя не полагаться, потому как команда вокруг и один в поле не воин. Но я уже такое кол-во шишок себе в этом плане набил, что понял одно – скажем так, никогда не полагайся &lt;strong&gt;100%&lt;/strong&gt; на других, даже если человеку полностью доверяешь – у человека могут возникнуть обстоятельства, он может заболеть, он может приоритет задач себе другой выбрать, он может забыть – всякое может произойти. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Ещё раз повторю, это пришло из моего собственного личного опыта. Если можешь сам сделать или проконтролировать это – сделай лучше сам.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Делегируй ответственности&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;И в тоже время – полагайся на других (не на 100%). Один ты ничего не сможешь сделать. Помню, Юра В. в роли менеджера как-то незаметно начал работать по 12-14 часов и всё одно не всё успевал. И это не нравилось ни ему, ни мне. А кол-во задач и зон ответственности у него всё увеличивалось. А отдать тоже некому, потому как не хватит знаний и сил. И решение мы вместе с ним нашли - делегировать задачи, даже если люди ещё не готовы к таким задач. Научатся. И это сработало.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Если можешь и видишь потребность в делегировании своей работы, чтобы немного разгрузить себя - сделай это. Люди не машины, которым подсовывай таски и они бездумно будут делать это. Они тоже умеют переживать и им хочется думать. Чем больше у человека ответственности на проекте, тем больше он будет думать, как сделать лучше.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Ни в коем случае не говорю, что не надо быть ответственным и спихивать ответственность с себя. Ответсвенным надо быть за любое решение, что ты принял, или кусок, что ты отдал, и сделал за него ответственным другого человека. Но это скорее более высокоуровневая ответственность. Виновным, что этот кусок не сделан, будешь ты.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Не бойся показаться глупым&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Это, наверное, многие заметили. Больше всего вопросов (даже самых простых) задают люди кто посильнее. Это, наверное, опыт. С годами начинаешь осознавать, что задавая даже самые глупые вопросы, ты не выглядишь глупым. Да и вообще забиваешь на это, что можешь показаться глупым, когда чувствуешь уверенность в себе. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Это когда молодой да зелёный, киваешь головой даже тогда, когда тебе ничего не понятно. Даже себя помню... Но ни капли не переживаю, так и должно было быть. Это нормально.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Тут правда и в другую крайность в падать не надо. Был у меня опыт, когда вместо того, чтобы что-то делать, было в основном дотошное изучение вопроса, причём процент случайности 95% случаев был менее одного процента. Тут просто не туда энергия тратилась. И на выходе мы получили ничего. Вообще, ничего - этот функционал выкинули с продакшна из-за его слабости.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Боязнь ошибок&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Где-то уже ранее в постах мы описывали это. Не делает ошибок тот, кто ничего не делает. Поэтому самое главное не боятся сделать то, что видишь нужным. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Заметил за годы, что многим людям не хватает духу принять ответственность за какое-то решение, хотя они уверены, что они правы. Но они боятся сделать ошибку. И мучаются этим. И им нужен рядом человек, который будет просто и тупо брать ответственность за выполнение задачи на себя. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Понятно, что ошибки будут. Они по статистике будут. Из 100 раз один раз обязательно не получится. Но 99 раз можно сделать и всё пройдёт, и через этот 1% иметь силы  перешагнуть.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Отношения в команде&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Проекты уходят и приходят, а люди остаются. Не мешай проектам и работе портить отношения с твоими коллегами. Построение отношений между людьми – сложная и трудоёмкая задача. А разрушить отношения и сделать себя неприятным в глазах других людей – минутное дело.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Уважение – вот что главное в отношениях. В любых отношениях между людьми. Никогда не делай ничего неуважительного, по отношению к другим. Относись к другим так, как хочешь чтобы относились к тебе. Золотые слова. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Подумай, будет ли тебе приятно, что тебя в клуб анальных девственников запишут или представят геем на весь мир. Не думаю, что это приятно. Шутки должны быть подобрее и как можно менее оскорбительными. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Уровень приемлимо&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Всегда стоит помнить, что есть уровень – приемлимо. Опять же мысль одного человека, с которой полностью согласен (по большей части мы на своём жизненном пути не придумываем что-то новое, а собираем лучшее от других людей). &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Лучшее – враг хорошего. Это уже народное.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Помню проект один. Ни одна строчка кода мимо меня не прошла. Практически всё было как мне того хотелось. Уровень качества кода был довольно высокий. Нагрузка на меня как на лида была колосальная. Это качество тянуло очень много доп. ресурсов. Не помню даже, во сколько раз мы превысили бюджет и сроки. А в конце понял одну простую истину – что достаточно было уровня хорошо, а эта разница между хорошим и лучшим могла быть доделана потом или не сделана вообще. Но овертаймов не было бы, и такого превышения бюджета. Хорошего было достаточно.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Сейчас код ревью делаю не так придирчиво как раньше. Пусть кривовато, но если это работает – пусть работает. Конечно, если это кричитическая вещь, то обязательно это к исправлению. Рефакторинг можно делать до бесконечности долго.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Один человек мне когда-то сказал, написать сложный функционал может каждый, а написать его просто – только проффесионал. Cебя помню, когда на любую задачу хотелось сделать что-то универсальное. По большей части этого не надо для проектов с чёткими сроками.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Другой человек сказал. Что профессионалом считается тот, у кого перед дедлайном ещё остаётся время, чтобы что-то улучшить. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Хотя сейчас на проекте мы делаем всё универсальным. ;)&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Срывы&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Уже видел воочию пару примеров, как люди срываются на работе, и ещё пару случаев рассказали знакомые. Или как люди в больницу надолго ложились по окончанию проекта, тоже видел.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Что тут сказать... Трудно комментировать.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Главное, костьми ложится не надо, сказал один замечательный человек. И я его полностью поддерживаю. Вы можете отдавать себя 100%  в работе, но одержимым работой или проектом быть не стоит. В большинстве своём, овчинка не стоит выделки. Это всё таки выше здоровье.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Требование уважения&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Уважать нужно не только других людей, но и требовать уважение прежде всего к себе. Я в первом посте писал о зависимости уважения других к тебе от твоего личного опыта и самоуважения к самому себе.  Не надо скрывать того, что вы сдали 20 сертификатов, или поломали что-то, или курсы закончили.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Моя огромная официальная подпись (все её видели) это, скажем, первое требование к другим относительно уважения ко мне. В первую очередь это важно при работе с  конечными клиентами. Не зря есть корпоративная политика по написанию писем и подписей в частности.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Видел пару раз письма заказчикам от людей, которые первый раз пишут им, без подписей вообще. Представьте, сидит эдакий Бил, приходит ему два письма. В них одинаковые предложения, но в одном стоит подпись, что это PM или архитектор крупной организации, вот такие заслуги, вот такие официальные контакты, даже факс есть. И есть второе письмо от Васи Пупкина, вообще без подписи. Вопрос? Кто требует к себе больше уважения и как заказчик будет разговаривать с Васей и с вами.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Подпись – это только один из примеров. Главное, не стесняться показать, что ты умеешь и на что способен. К тебе будет столько уважения, сколько ты сам к себе этого требуешь.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Качество работы&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Конечно, иногда приходится сложно и ты делаешь ту работу, которую не хочешь делать. В можно просто сказать себе – это просто так стеклись обстоятельства, жизнь сама по себе логична и она расставит в конце концов всё по своим местам. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Как пережить такой период? Пытаться получать удовольствие используя вышеуказанные пункты плюс ещё один из самых главных – &lt;strong&gt;всегда качественно выполнять свою работу&lt;/strong&gt;. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Труд программиста сам по себе созидателен. Какое удовольствие получишь ты, если построишь какашку, и какое удовольствие ты получишь, когда вчекинишь код, который никому потом не придётся исправлять, потому как ты отбросил лень и спешку, и качественно сделал своё дело. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Именно лень и спешка мешают программистам писать хороший код.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Но опять же есть у меня один пример запасе. Его уже описывал выше. Люди хотели написать очень качественный код и всё время обсуждали все-все случаи и спешку напрочь выкинули. И не получили ничего. Не надо забывать про уровень приемлимо.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;А есть куча других примеров, когда человек чекинов 5 делал, а проект из сорс контрола всё не хотел собираться и работать.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Скажем так, есть не спешка – есть сроки. Сроки как раз для уровня приемлимо. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Вот приблизительно так... Жду комментов.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/8002269520080353041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/8002269520080353041' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/8002269520080353041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/8002269520080353041'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/06/6.html' title='Тех. Люди #6. Труд и удовольствие'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-327320398564516344</id><published>2009-05-02T01:54:00.013+03:00</published><updated>2009-05-02T02:18:45.842+03:00</updated><title type='text'>Тонкости лома каптчи или как лишить Данчу работы</title><content type='html'>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Привет,&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Многие, наверное, слышали о моём споре с Женей Д., что я сломаю его каптчу до конца месяца, которую он лично разработал для нашего сайта.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-size:10pt&#39;&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Признаюсь, когда спорил, даже толком в код не посмотрел, а действовал по принципу – ПОЛОМАТЬ МОЖНО ВСЁ. Я просто пошутить хотел, а Женя всё по-серьёзному решил спорить. И завязался спор на тортик до конца месяца, что я сломаю его творение. &lt;/span&gt;&lt;span style=&#39;font-family:Wingdings&#39;&gt;J&lt;/span&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;br /&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Сразу хочу сказать, что сама каптча написано высококлассно и защищена практически от всех известных атак по каптчам. Споры разделились относительно можно нашу каптчу поломать распознаванием или нельзя. Мнения были разные. Но в эту сторону я даже не смотрел – во-первых, знаний по распознаванию образов и нейронным сетям ещё не хватает, а во-вторых, есть хорошая пословица – &quot;Двери крепки, да петли хлипки&quot;.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Немного о самой каптче. Это серверный хэндлер, который генеряет текст для каптчи и кладёт его в сессию и по этому тексту генеряет картинку. Страница регистрации содержит ссылку на этот хэндлер. Т.е. по загрузке страницы на клиенте идёт ещё один запрос на сервер в хэндлер для получения картинки. Пользовать заполняет форму, разгадывает каптчу и отсылает запрос на сервер. На сервере введённый текст для каптчи сравнивается с тем, что лежит в сессии, и если всё верно регистрация продолжается.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Всё стандартно. И работает отлично. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;А потом глянул в код и нашёл таки 2 узких места.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;strong&gt;Уязвимость номер 1.&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Что будет, если загрузить страницу регистрации, а запрос на генерацию каптчи забанить? С каким значением будет сравнивать сервер пользовательский ввод? Вот здесь и была уязвимость. Женя сравнивал пользовательский ввод с... константой. Т.е. если в сессии ключа нет, то сравнивал с &quot;EmptyText&quot;. Ну, дальше, все сообразили, что надо ввести пользователю, чтобы пройти регистрацию.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Почему &lt;em&gt;была&lt;/em&gt;? Только-только похвалился Жене, что уже нашёл дыры, Женя ещё раз всё пересмотрел, переписал (даже к сессию стал ложить не сам текст, а только его хэш), и этой дыры больше не оставил. А жаль... это самый простой способ похачить.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;strong&gt;Уязвимость номер 2.&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Связана с неодноразовостью самой каптчи. Что это значит? Один раз разгдав каптчу, пользователь может зарегистрировать 1000 пользователь под одной и той же каптчей. Из сессии ведь никто не удаляет текст каптчи, оставшейся после предыдущей регистрации пользователя.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Дабы, подтвердить это, я написал небольшой экспоит для всем хорошо вам известного сайта, где наша каптча лежит. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Что скриптик делает:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Предоставляет красивый итерактивный интерфейс на WPF&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUHXcZIBe7PWIe_619YAkeHQd40RAWNS0Zw3viT0NF3g5vCni1USXF_IV_S2Lt2yVK_k9XSgvkBaQWmTqop77WcwYghbgPvcsZXeuQH8qMrdlXaRCUPeeuM2QEVlv-dKcTm88iXSCYJFh/s1600-h/1.PNG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 181px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUHXcZIBe7PWIe_619YAkeHQd40RAWNS0Zw3viT0NF3g5vCni1USXF_IV_S2Lt2yVK_k9XSgvkBaQWmTqop77WcwYghbgPvcsZXeuQH8qMrdlXaRCUPeeuM2QEVlv-dKcTm88iXSCYJFh/s320/1.PNG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5330995850825875890&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Делает запрос на страницу регистрации на сервер, чтобы получить ASP.NET Session кук&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;И делает ещё один запрос на сервер в хэндлер генерации каптчи, дабы получить картинку (ессно с куком полученным на шаге 2)&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrYG5eyi7sWfDjM7nWdb827oF8Yp_Eavw1J5-FiryooctgRJbTwRqJCFHsaSHLVk6JIp_4pIDZKIRJEXDacOenjd6GxfOfa-hlFp6qg1c8YNLF1uCsT45N49S8B9JDfasVvIuLVvIV2I3K/s1600-h/2.PNG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 226px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrYG5eyi7sWfDjM7nWdb827oF8Yp_Eavw1J5-FiryooctgRJbTwRqJCFHsaSHLVk6JIp_4pIDZKIRJEXDacOenjd6GxfOfa-hlFp6qg1c8YNLF1uCsT45N49S8B9JDfasVvIuLVvIV2I3K/s400/2.PNG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5330996442551967218&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Пользователь вручную разгадывает каптчу (один разок всего)&lt;br /&gt;&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRQ1tMbposroenZhc5nhPDZ5W0RhwPCGuYX1vFz6CpFBf1mReqlrdxLpRKlIMZQyVZoV2rRV0D4gflUdErk8mY2KuMWwTxZci8Gee0Yg9T7nFbWbLK_XhSuRLpZhw6UwTY-Sp06LjFxajO/s1600-h/3.PNG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRQ1tMbposroenZhc5nhPDZ5W0RhwPCGuYX1vFz6CpFBf1mReqlrdxLpRKlIMZQyVZoV2rRV0D4gflUdErk8mY2KuMWwTxZci8Gee0Yg9T7nFbWbLK_XhSuRLpZhw6UwTY-Sp06LjFxajO/s400/3.PNG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5330997217929162146&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Скрипт посылает 10(0)(00) постов запросов на сервер использую разгаданную каптчу и сессионный кук, иммитируя настоящую страницу регистрации&lt;br /&gt;&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN8uZB65EnSL8P1PNvdpkMsV-W3jt7d6sQJFXRJ0-6AEO2SEb521MyfsSjYOaOjbUiGOJVD9Gn7TXqLZzBZEd1HqLGm2UdQhNWhD8saKoIf9jzOL99_tH_acLdOpGCIodAEW2FEeew_Sqe/s1600-h/4.PNG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN8uZB65EnSL8P1PNvdpkMsV-W3jt7d6sQJFXRJ0-6AEO2SEb521MyfsSjYOaOjbUiGOJVD9Gn7TXqLZzBZEd1HqLGm2UdQhNWhD8saKoIf9jzOL99_tH_acLdOpGCIodAEW2FEeew_Sqe/s400/4.PNG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5330997649986541314&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Сервер успешно создаёт всех юзиков&lt;br /&gt;&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnX4sQ4qNe63yZ1AW7c-IgWkMui0iznRA6KwK9M106UfWb2BHkEm1n6B0ByOrDedUClpExh6Mq0G9GPKS5s7HXWu-6o6COyfrI1shrgI-yNBqRr-Dg_KPdkQFHw1sOlSKgpS4PvSmYgcd7/s1600-h/5.PNG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 374px; height: 367px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnX4sQ4qNe63yZ1AW7c-IgWkMui0iznRA6KwK9M106UfWb2BHkEm1n6B0ByOrDedUClpExh6Mq0G9GPKS5s7HXWu-6o6COyfrI1shrgI-yNBqRr-Dg_KPdkQFHw1sOlSKgpS4PvSmYgcd7/s400/5.PNG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5330998029921728370&quot; /&gt;&lt;/a&gt;&lt;p style=&#39;margin-left: 18pt&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Даже залогиниться могу под этими аккаунтами&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihQtetOQ5jyuphlQF0i-IteU8Yssl7UAicmeSopwlFFppb5DguBBmKdOytmji5bx9JpUBa1HB86blX-WwUi9_ALnnK0jPz8ckAk6raBPey4j8-ixhSUJBFjMqH31lXtnToDnSr0V4U9NHJ/s1600-h/6.PNG&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 338px; height: 255px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihQtetOQ5jyuphlQF0i-IteU8Yssl7UAicmeSopwlFFppb5DguBBmKdOytmji5bx9JpUBa1HB86blX-WwUi9_ALnnK0jPz8ckAk6raBPey4j8-ixhSUJBFjMqH31lXtnToDnSr0V4U9NHJ/s400/6.PNG&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5330998589556755250&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&#39;margin-left: 18pt&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;margin-left: 18pt&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;margin-left: 18pt&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Вот, собственно,  и всё. Можно сказать, что это проблема не каптчи, а кода, который каптчу юзает (к примеру, сессию после регистрации нужно полностью убивать, или явно вызывать перегенерять текст). Но... Основная цель каптчи как компоненты для регистрации пользователей - это предотвратить построение ботов для автоматической регистрации пользователей. Цель недостигнута – вышеуказанный скрипт не что иное как настоящий бот. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;margin-left: 18pt&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Поэтому эта дыра каптчи, которую надо исправлять. Как? Сами догадаетесь, как одноразовость каптчи организовать. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;margin-left: 18pt&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;А ещё это значит, что скоро мы все дружно большой тортик поедим, который нам Женя Д. в салодком фальварке купит.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;margin-left: 18pt&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;PS. Я на мыло лично вышлю (если кому интересно) сердцы скрипта по автоматическому созданию юзиков на нашем сайте.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;margin-left: 18pt&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt; &lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;br /&gt;    &lt;/span&gt; &lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/327320398564516344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/327320398564516344' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/327320398564516344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/327320398564516344'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/05/blog-post.html' title='Тонкости лома каптчи или как лишить Данчу работы'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwUHXcZIBe7PWIe_619YAkeHQd40RAWNS0Zw3viT0NF3g5vCni1USXF_IV_S2Lt2yVK_k9XSgvkBaQWmTqop77WcwYghbgPvcsZXeuQH8qMrdlXaRCUPeeuM2QEVlv-dKcTm88iXSCYJFh/s72-c/1.PNG" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-6457956324945085938</id><published>2009-04-14T20:45:00.003+03:00</published><updated>2009-04-14T20:56:42.078+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET"/><category scheme="http://www.blogger.com/atom/ns#" term="IIS"/><title type='text'>Типы файлов и &quot;ASP.NET пайплайн&quot;</title><content type='html'>Как-то давно возникал вопрос проходят ли через ASP.NET запросы к файлам картинок, скриптов, css-к и тому подобным ресурсам. Сегодня нашлось время это проверить и оказалось, что под студийным веб-сервером проходят, а под IIS-м - нет. Так что ограничивать доступ к таким файлам на уровне веб-конфига не получится. Хотя если захотеть, думаю можно и под IIS-м пропустить все что хочется через ASP.NET, только вряд ли стоит это делать.</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/6457956324945085938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/6457956324945085938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/6457956324945085938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/6457956324945085938'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/04/aspnet.html' title='Типы файлов и &quot;ASP.NET пайплайн&quot;'/><author><name>Stas Slunkov</name><uri>http://www.blogger.com/profile/14686786629215343304</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-3997932062572144404</id><published>2009-04-12T23:28:00.002+03:00</published><updated>2009-04-13T12:50:36.499+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="trick"/><category scheme="http://www.blogger.com/atom/ns#" term="WCF"/><title type='text'>WCF, Known Types, Serialization, Dictionary</title><content type='html'>Если вам знакомо большинство слов из названия статьи то вам сюда.&lt;br /&gt;&lt;br /&gt;Итак, проблема. Есть контракт сервиса:&lt;br /&gt;&lt;code&gt;&lt;span style=&quot;  ;font-family:Courier New;font-size:small;color:black;&quot;&gt; &lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;ol&gt; &lt;span style=&quot;  ;font-family:Courier New;font-size:small;color:black;&quot;&gt;&lt;br /&gt;&lt;li&gt; [ServiceContract]&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;interface&lt;/span&gt; IService1&lt;/li&gt;&lt;br /&gt;&lt;li&gt; {&lt;/li&gt;&lt;br /&gt;&lt;li&gt; [OperationContract]&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt; GetData(&lt;span style=&quot;color:#0000ff;&quot;&gt;int&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;value&lt;/span&gt;);&lt;/li&gt;&lt;br /&gt;&lt;li&gt; [OperationContract]&lt;/li&gt;&lt;br /&gt;&lt;li&gt; CompositeType GetDataUsingDataContract(CompositeType composite);&lt;/li&gt;&lt;br /&gt;&lt;li&gt; }&lt;/li&gt;&lt;br /&gt;&lt;/span&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style=&quot; ;font-size:xx-small;color:gray;&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;span style=&quot; ;font-size:xx-small;color:gray;&quot;&gt;Source Code Highlighter&lt;/span&gt;&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;Описание  CompositeType ниже:&lt;br /&gt;&lt;code&gt;&lt;span style=&quot;  ;font-family:Courier New;font-size:small;color:black;&quot;&gt; &lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;ol&gt; &lt;span style=&quot;  ;font-family:Courier New;font-size:small;color:black;&quot;&gt;&lt;br /&gt;&lt;li&gt; [DataContract]&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;class&lt;/span&gt; CompositeType&lt;/li&gt;&lt;br /&gt;&lt;li&gt; {&lt;/li&gt;&lt;br /&gt;&lt;li&gt; [DataMember]&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt; StringValue&lt;/li&gt;&lt;br /&gt;&lt;li&gt; {&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;get&lt;/span&gt;;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;set&lt;/span&gt;;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; }&lt;/li&gt;&lt;br /&gt;&lt;li&gt; [DataMember]&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; Dictionary&amp;lt;&lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt;, &lt;span style=&quot;color:#0000ff;&quot;&gt;object&lt;/span&gt;&amp;gt; Parameters&lt;/li&gt;&lt;br /&gt;&lt;li&gt; {&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;get&lt;/span&gt;;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;set&lt;/span&gt;;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; }&lt;/li&gt;&lt;br /&gt;&lt;li&gt; }&lt;/li&gt;&lt;br /&gt;&lt;/span&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style=&quot; ;font-size:xx-small;color:gray;&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;span style=&quot; ;font-size:xx-small;color:gray;&quot;&gt;Source Code Highlighter&lt;/span&gt;&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;Все довольно просто.&lt;br /&gt;Создаем простой клиент для этого сервиса и пытаемся передать int[] в нашем словаре параметров CompositeType.Parametes (Dictionary):&lt;br /&gt;&lt;code&gt;&lt;span style=&quot;  ;font-family:Courier New;font-size:small;color:black;&quot;&gt; &lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;ol&gt; &lt;span style=&quot;  ;font-family:Courier New;font-size:small;color:black;&quot;&gt;&lt;br /&gt;&lt;li&gt; Service1Client client = &lt;span style=&quot;color:#0000ff;&quot;&gt;new&lt;/span&gt; Service1Client();&lt;/li&gt;&lt;br /&gt;&lt;li&gt; CompositeType input = &lt;span style=&quot;color:#0000ff;&quot;&gt;new&lt;/span&gt; CompositeType();&lt;/li&gt;&lt;br /&gt;&lt;li&gt; input.Parameters= &lt;span style=&quot;color:#0000ff;&quot;&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt;, &lt;span style=&quot;color:#0000ff;&quot;&gt;object&lt;/span&gt;&amp;gt;();&lt;/li&gt;&lt;br /&gt;&lt;li&gt; input.Parameters.Add(&lt;span style=&quot;color:#a31515;&quot;&gt;&quot;array&quot;&lt;/span&gt;, &lt;span style=&quot;color:#0000ff;&quot;&gt;new&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;int&lt;/span&gt;[] { 1, 2 });&lt;/li&gt;&lt;br /&gt;&lt;li&gt; CompositeType output = client.GetDataUsingDataContract(input);&lt;/li&gt;&lt;br /&gt;&lt;/span&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style=&quot; ;font-size:xx-small;color:gray;&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;span style=&quot; ;font-size:xx-small;color:gray;&quot;&gt;Source Code Highlighter&lt;/span&gt;&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;И при работе получаем такое вот исключение:&lt;br /&gt;&lt;blockquote&gt;There was an error while trying to serialize parameter http://tempuri.org/:composite. The InnerException message was &#39;Type &#39;System.Int32[]&#39; with data contract name &#39;ArrayOfint:http://schemas.microsoft.com/2003/10/Serialization/Arrays&#39; is not expected. Add any types not known statically to the list of known types - for example, by using the KnownTypeAttribute attribute or by adding them to the list of known types passed to DataContractSerializer.&#39;.  Please see InnerException for more details.&lt;/blockquote&gt;&lt;br /&gt;В интернете куча таких постов, которые до сих пор висят без ответа. Ни ServiceKnownType, ни KnowType аттрибуты не помогают. &lt;span style=&quot;font-weight:bold;color:red;&quot;&gt;Потому что они работают для классов-наследников.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Решение этой проблемы гениально просто.&lt;br /&gt;Добавляем аттрибут [KnownType(typeof(int[]))] или [ServiceKnownType(typeof(int[]))] куда нужно и в DataContract-класс добавляем поле типа System.Object.&lt;br /&gt;(For english readers: solution is pretty smart. Just add to DataContract-class DataMember field of type System.Object. Then use KnownType or ServiceKnownType attributes )&lt;br /&gt;&lt;code&gt;&lt;span style=&quot;  ;font-family:Courier New;font-size:small;color:black;&quot;&gt; &lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;ol&gt; &lt;span style=&quot;  ;font-family:Courier New;font-size:small;color:black;&quot;&gt;&lt;br /&gt;&lt;li&gt; [DataContract]&lt;/li&gt;&lt;br /&gt;&lt;li&gt; [KnownType(&lt;span style=&quot;color:#0000ff;&quot;&gt;typeof&lt;/span&gt;(&lt;span style=&quot;color:#0000ff;&quot;&gt;int&lt;/span&gt;[]))]&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;class&lt;/span&gt; CompositeType&lt;/li&gt;&lt;br /&gt;&lt;li&gt; {&lt;/li&gt;&lt;br /&gt;&lt;li&gt; [DataMember]&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;object&lt;/span&gt; UsedForKnownTypeSerializationObject;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; [DataMember]&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt; StringValue&lt;/li&gt;&lt;br /&gt;&lt;li&gt; {&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;get&lt;/span&gt;;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;set&lt;/span&gt;;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; }&lt;/li&gt;&lt;br /&gt;&lt;li&gt; [DataMember]&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;public&lt;/span&gt; Dictionary&amp;lt;&lt;span style=&quot;color:#0000ff;&quot;&gt;string&lt;/span&gt;, &lt;span style=&quot;color:#0000ff;&quot;&gt;object&lt;/span&gt;&amp;gt; Parameters&lt;/li&gt;&lt;br /&gt;&lt;li&gt; {&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;get&lt;/span&gt;;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; &lt;span style=&quot;color:#0000ff;&quot;&gt;set&lt;/span&gt;;&lt;/li&gt;&lt;br /&gt;&lt;li&gt; }&lt;/li&gt;&lt;br /&gt;&lt;li&gt; }&lt;/li&gt;&lt;br /&gt;&lt;/span&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style=&quot; ;font-size:xx-small;color:gray;&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;span style=&quot; ;font-size:xx-small;color:gray;&quot;&gt;Source Code Highlighter&lt;/span&gt;&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.codeguru.com/forum/showthread.php?p=1820691&quot;&gt;Похожий вопрос тута&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://blogs.msdn.com/sowmy/archive/2006/06/06/all-about-knowntypes.aspx&quot;&gt;All about known types&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms730167.aspx&quot;&gt;Data Contract Known Types&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/3997932062572144404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/3997932062572144404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/3997932062572144404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/3997932062572144404'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/04/wcf-known-types-serialization.html' title='WCF, Known Types, Serialization, Dictionary'/><author><name>AlexS</name><uri>http://www.blogger.com/profile/08708753260640179059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-3126010984726352102</id><published>2009-03-31T19:01:00.010+03:00</published><updated>2009-04-13T12:51:55.031+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="cmd"/><category scheme="http://www.blogger.com/atom/ns#" term="trick"/><title type='text'>Command Shell tricks</title><content type='html'>То же похвалюсь. Пару дней назад узнал ещё один трик с работой из командных файлов.&lt;br /&gt;&lt;br /&gt;Теперь как минимум 2 трика знаю:&lt;br /&gt;1) Получить текущую директорию&lt;br /&gt;&lt;strong&gt;echo %cd%&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh23QDVNR2WvHwc8ikoAutq43akkLrWH-bo20gSgOYQuvbvUan2jAHhN7LQsjklOCSKHjQzKozmyQyfz2w4cDZsew_wWE3JkwoQZYp3yK2vUNdICD6hLh9BAa17LK_F0kIBaTE6_5O4eQBc/s1600-h/1.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 167px; height: 103px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh23QDVNR2WvHwc8ikoAutq43akkLrWH-bo20gSgOYQuvbvUan2jAHhN7LQsjklOCSKHjQzKozmyQyfz2w4cDZsew_wWE3JkwoQZYp3yK2vUNdICD6hLh9BAa17LK_F0kIBaTE6_5O4eQBc/s320/1.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5319384960706127602&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeSfboyPCmZ2MX_wOUwbaOYUpKJHZP5Ld06o9cadJOGHDCc1BoC5r3X_FZruz72ZOO7aGL9CtwsKMb1e_q44WvZoHY_ox8xT4ocb19wEql-6Ng_RV7rteX4hAbbeTmMeCAXGgW8qIhSgGV/s1600-h/1a.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 175px; height: 68px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeSfboyPCmZ2MX_wOUwbaOYUpKJHZP5Ld06o9cadJOGHDCc1BoC5r3X_FZruz72ZOO7aGL9CtwsKMb1e_q44WvZoHY_ox8xT4ocb19wEql-6Ng_RV7rteX4hAbbeTmMeCAXGgW8qIhSgGV/s320/1a.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5319385102895753602&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2) Установить в бат-файле текущую директорию как текущую директорию где сам файл находится&lt;br /&gt;Пример, &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeSfboyPCmZ2MX_wOUwbaOYUpKJHZP5Ld06o9cadJOGHDCc1BoC5r3X_FZruz72ZOO7aGL9CtwsKMb1e_q44WvZoHY_ox8xT4ocb19wEql-6Ng_RV7rteX4hAbbeTmMeCAXGgW8qIhSgGV/s1600-h/1a.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 175px; height: 68px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeSfboyPCmZ2MX_wOUwbaOYUpKJHZP5Ld06o9cadJOGHDCc1BoC5r3X_FZruz72ZOO7aGL9CtwsKMb1e_q44WvZoHY_ox8xT4ocb19wEql-6Ng_RV7rteX4hAbbeTmMeCAXGgW8qIhSgGV/s320/1a.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5319385102895753602&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQxh0gFw2LuhFMYUUJd9-eG85E7SDmuQJbfRWTA5VXXxHeWnJDH94GnwvDAFEKcr2ygdb6eU3AmafgubgezJZdpQOAxGrm14uspusak3bKzxztw-up71M44hoPF6y9KnnVnQGotlskUZV0/s1600-h/2.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 159px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQxh0gFw2LuhFMYUUJd9-eG85E7SDmuQJbfRWTA5VXXxHeWnJDH94GnwvDAFEKcr2ygdb6eU3AmafgubgezJZdpQOAxGrm14uspusak3bKzxztw-up71M44hoPF6y9KnnVnQGotlskUZV0/s320/2.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5319385700665855170&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;посмотрите что красным выводится. А если я хочу вызывать в той же директории другой бай-файл из этого, то тут начинаются проблемы. мы не можем получить к нему доступ.&lt;br /&gt;Вот такой код просто не работает, если запускать 1.bat по его полному пути.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB6aAHEk8U7w0-tATtikbfDg8etnHIB74Kps33y72-irje9h46ZX3jNqJadY4q5AHl-zGtrc_I1sFpciANw6kx1o0CereNeUHl0FyNzdDpiovsbZNNSS5pqicXsdiNKdtvcKqJwRjYnlXh/s1600-h/3.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 212px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB6aAHEk8U7w0-tATtikbfDg8etnHIB74Kps33y72-irje9h46ZX3jNqJadY4q5AHl-zGtrc_I1sFpciANw6kx1o0CereNeUHl0FyNzdDpiovsbZNNSS5pqicXsdiNKdtvcKqJwRjYnlXh/s320/3.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5319386429882451458&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Здесь на помощь придёт вот этот трик &lt;strong&gt;cd /d %~dp0&lt;/strong&gt;. Он устанавливает текущую директории, где сам бат-файл лежит.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZXNA372t-pix8CwY9bXjoz0VR6KGGD_6hXbCIB5sP7i_jLGCP1O4tIXBE_TiWacoDikkDhdfM_rzteE8rpYGrQRu52_hWYB5CwPc0-dHJ-ag5a5Ar0AgUeVMdn1ueOz1pIG5TqjV9NVPJ/s1600-h/4.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 208px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZXNA372t-pix8CwY9bXjoz0VR6KGGD_6hXbCIB5sP7i_jLGCP1O4tIXBE_TiWacoDikkDhdfM_rzteE8rpYGrQRu52_hWYB5CwPc0-dHJ-ag5a5Ar0AgUeVMdn1ueOz1pIG5TqjV9NVPJ/s320/4.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5319387209625587698&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxuAbV9V2pCtMMaJArxl5s262f0BLOVgBjvkTBkpajYF8jlLel5KDykLecxHB3eJ-OezIkLZlONhYBxH_zOaMIov7nwsXRm_5c0zfissjoVEqRe9MXU8-PvOI7Zk-Fgd2Su1k5-npaUtRq/s1600-h/5.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 158px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxuAbV9V2pCtMMaJArxl5s262f0BLOVgBjvkTBkpajYF8jlLel5KDykLecxHB3eJ-OezIkLZlONhYBxH_zOaMIov7nwsXRm_5c0zfissjoVEqRe9MXU8-PvOI7Zk-Fgd2Su1k5-npaUtRq/s320/5.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5319387306748003122&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Пишите в комментах ещё трики, если у вас в запасе есть, и пусть это останется в истории. и не надо будет по закоулкам лазить, чтобы поднять старые знания, как это иногда приходится делать.</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/3126010984726352102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/3126010984726352102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/3126010984726352102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/3126010984726352102'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/03/command-shell-tricks.html' title='Command Shell tricks'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh23QDVNR2WvHwc8ikoAutq43akkLrWH-bo20gSgOYQuvbvUan2jAHhN7LQsjklOCSKHjQzKozmyQyfz2w4cDZsew_wWE3JkwoQZYp3yK2vUNdICD6hLh9BAa17LK_F0kIBaTE6_5O4eQBc/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-437525579686774304</id><published>2009-03-31T16:02:00.008+03:00</published><updated>2009-03-31T16:18:47.687+03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Active Directory"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL"/><title type='text'>Using SQL for Active Directory</title><content type='html'>Мне аж самому понравилось и чтобы не забыть, когда в след. раз понадобится пощу сюда.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwWjixxJ-fcQZzDr4hBlDBqjuYo1DCaorBSF512x7XNjmru8G8W6MocAhHsuNEE0DYWL32KuB_kFlQL8-wVKhqmgidE0HtyegR9ztGnP1c5RusH4BVkvQGqDMUKGuG0z4PBzFbbPHwtJ4/s1600-h/3-31-2009+4-10-02+PM.png&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;width: 400px; height: 365px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwWjixxJ-fcQZzDr4hBlDBqjuYo1DCaorBSF512x7XNjmru8G8W6MocAhHsuNEE0DYWL32KuB_kFlQL8-wVKhqmgidE0HtyegR9ztGnP1c5RusH4BVkvQGqDMUKGuG0z4PBzFbbPHwtJ4/s400/3-31-2009+4-10-02+PM.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5319340646358799730&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;sp_addlinkedserver &#39;ADSI&#39;, &#39;Active Directory Services 2.5&#39;, &#39;ADSDSOObject&#39;, &#39;adsdatasource&#39; &lt;br /&gt;go&lt;br /&gt;&lt;br /&gt;SELECT REPLACE(userPrincipalName, &#39;@sam-solutions.net&#39;, &#39;&#39;) as l, &lt;br /&gt;telephoneNumber, Name FROM OPENQUERY( ADSI, &#39;SELECT displayName, &lt;br /&gt;sn, name, cn, telephoneNumber, userPrincipalName FROM &lt;br /&gt;&#39;&#39;LDAP://DC=sam-solutions,DC=net&#39;&#39; WHERE objectCategory &lt;br /&gt;= &#39;&#39;Person&#39;&#39; AND objectClass = &#39;&#39;User&#39;&#39; AND memberOf = &lt;br /&gt;&#39;&#39;CN=tbw,OU=groups,OU=dept2,OU=SamSol,OU=Belcaf,DC=sam-solutions,DC=net&#39;&#39; &#39;) &lt;br /&gt;order by l</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/437525579686774304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/437525579686774304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/437525579686774304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/437525579686774304'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/03/using-sql-for-active-directory.html' title='Using SQL for Active Directory'/><author><name>Stas Slunkov</name><uri>http://www.blogger.com/profile/14686786629215343304</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwWjixxJ-fcQZzDr4hBlDBqjuYo1DCaorBSF512x7XNjmru8G8W6MocAhHsuNEE0DYWL32KuB_kFlQL8-wVKhqmgidE0HtyegR9ztGnP1c5RusH4BVkvQGqDMUKGuG0z4PBzFbbPHwtJ4/s72-c/3-31-2009+4-10-02+PM.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-6542540947809362479</id><published>2009-03-22T00:35:00.002+02:00</published><updated>2009-03-22T09:29:20.596+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="books"/><category scheme="http://www.blogger.com/atom/ns#" term="programming"/><category scheme="http://www.blogger.com/atom/ns#" term="recomendations"/><title type='text'>Список высокорекомендуемой литературы для программиста</title><content type='html'>&lt;span xmlns=&#39;&#39;&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Привет,&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Может некоторые заметили, в письме, которое отсылаю для новеньких на проекте от том, что поставить для работы, включаю 2 книги как Highly Recommended для чтения: &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Рихтера (CLR via C#)&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Дино эспозито (ASP.NET)&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;У меня лежит запрос на &quot;что ещё можно почитать из recommended&quot;. Оно и правда – среди книг шлака очень много. Даже сейчас читаю книгу, что Саша С. Подогнал по WCF – руки поотрывал бы автору – очень слабо. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Я прочитал довольно много книг - ~60% из них не рекомендовал бы ни в коем разе – потеря времени. Но есть очень хорошие авторы. Из всего набора сегодня выделил 10 лучших книг, которые читал и которые высоко рекомендую.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;30 марта список рекомендуемой литературы со ссылками уйдёт на всю группу разработчиков. Если у вас есть книги, которые читали (обязательно читали) и хотели бы включить в этот список – &lt;strong&gt;отпишите обязательно сюда же&lt;/strong&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Security &lt;em&gt;(книга a и b ну просто must – огненные штуки)&lt;/em&gt;&lt;br /&gt;      &lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Writing Secure Code &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;Коммент: читал в бумажном виде, в своей эл. Библиотеке не нашёл&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Hacking the Code by Mark M. Burnett and James C. Foster – &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;Коммент: есть в эл. Виде в моей библиотеке&lt;/em&gt;&lt;br /&gt;        &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;(Hacking the Code - ASP.NET Web Application Security Cookbook (2004) .chm)&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;НЕ ЧИТАЙТЕ РУССКИЙ АНАЛОГ В ИЗБЕЖАНИИ ПОТЕРИ МОЗГА&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;ООП&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Объектно-ориентированный анализ и проектирование  Гради Буч &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;Коммент: Книга на русском, есть в эл. Виде. Буч тяжёл для восприятия, но пробивает насквозь. Классика.&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;.NET&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;CLR via C#&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;Коммент: no comment – must&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;.NET Gotchas By Venkat Subramaniam &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;Коммент: раскрываются тонкости языков и платформы (OReilly.dot.NET.Gotchas.May.2005.chm)&lt;/em&gt;&lt;br /&gt;        &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Essential .NET - Volume 1 The Common Language Runtime.chm &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;Коммент: книга про .NET 1.1, но есть часть того, чего в рихтере нет. Не знаю, есть ли продолжение для .Net 2.0 – сам почитал бы (OReilly.dot.NET.Gotchas.May.2005.chm)&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Aрхитектура&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Patterns of Enterprise Application Architecture by Martin Fowler - &lt;em&gt;Коммент: Есть эл. вариант (Addison Wesley - Patterns of Enterprise Application Architecture.chm). Отличная книга как первая для захода в архитектуры&lt;/em&gt;&lt;br /&gt;        &lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Шаблоны проектирования для Java&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;Коммент: Читал бум. Версию. не нашёл в электронной своей библиотеке пока той, которую читал. Буду искать.&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Книга про построение кластеров &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;Коммент: пока не нашёл. Буду искать.&lt;/em&gt;&lt;br /&gt;        &lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Misc&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;Refactoring. Improving the Design of Existing Code&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;Коммент: no comment. Замечательная книга. (Refactoring. Improving the Design of Existing Code.pdf)&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana&#39;&gt;&lt;em&gt;&lt;br /&gt;         &lt;/em&gt;&lt;/span&gt; &lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/6542540947809362479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/6542540947809362479' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/6542540947809362479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/6542540947809362479'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/03/blog-post_22.html' title='Список высокорекомендуемой литературы для программиста'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-5418521482128253383</id><published>2009-03-21T21:39:00.001+02:00</published><updated>2009-03-21T21:41:18.261+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="architecture"/><title type='text'>Соблазны модели распределенных объектов</title><content type='html'>Два-три раза в год мне доводится участвовать в одном и том же &quot;шоу&quot;. Архитектор очередной объектно-ориентированной системы (допустим, приложения для обработки каких-то заказов) с гордостью выставляет на общее обозрение план распределения объектов: каждый программный компонент размещается в отдельном узле системы.&lt;br /&gt;&lt;br /&gt;&quot;Зачем все это?&quot; — спрашиваю я.&lt;br /&gt;&lt;br /&gt;&quot;Производительность, вестимо, — отвечает архитектор, глядя на меня со слабо скрываемым превосходством. — Мы можем запустить каждый компонент на обработку в своем собственном блоке. Если мощности блока не хватит, мы запросто добавим еще парочку, чтобы сбалансировать нагрузку&quot;. Теперь он уже и не пытается утаить самолюбования вперемешку с удивлением по поводу того, что я вообще посмел открыть рот.&lt;br /&gt;&lt;br /&gt;Между тем передо мной возникает любопытная дилемма: заявить парню все сразу и выставить за дверь либо не торопясь показать ему дорогу к светлому будущему. Последнее во всех смыслах выгоднее, но гораздо хлопотнее, поскольку архитектор обычнослишком пленен собственными иллюзиями и вряд ли легко с ними расстанется.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Безусловно, все это просто замечательно, но... Хотя многие стороны жизни распределенных объектов действительно приобретают искомую прозрачность, это явно не относится к аспектам производительности. Наш герой-архитектор осуществил распределение объектов, как ему казалось, исходя из соображений производительности, но на самом деле выбор подобной структуры наверняка снизит эффективность системы и существенно усложнит процессы ее разработки и практического внедрения.&lt;/p&gt;&lt;p&gt;&lt;em&gt;(C) Фаулер&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/5418521482128253383/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/5418521482128253383' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/5418521482128253383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/5418521482128253383'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/03/blog-post.html' title='Соблазны модели распределенных объектов'/><author><name>Stas Slunkov</name><uri>http://www.blogger.com/profile/14686786629215343304</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-9192858987688063255</id><published>2009-03-17T22:54:00.004+02:00</published><updated>2009-03-21T21:38:43.610+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="philosophy"/><category scheme="http://www.blogger.com/atom/ns#" term="тех. люди"/><title type='text'>Тех. люди #5. Быть в согласии со своим внутренним Я</title><content type='html'>&lt;span xmlns=&quot;&quot;&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot;  text-decoration:underline;font-family:Verdana;font-size:10pt;&quot;&gt;&lt;em&gt;Быть в согласии со своим внутренним Я&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Да уж... давненько ничего не писал. Тяжеловато дался период перехода зимы в весну и физически, и на работе работки поувеличилось, поэтому времени не хватало. Но ничего. Теперь опять стало всё более-менее в своё русло и вот вам следующий пост. А то совсем все уснули.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Принцип #3.&lt;em&gt; Всегда работай в согласии со своим внутренним Я.&lt;/em&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Это значит всегда придерживаться тех жизненных принципов, что ты себе выбрал. Ты определил себе, что друга обмануть это плохо – и ничто не должно тебя заставить сделать в этом исключение. В этом и есть твоя сила. Ты силён, когда тебя изнутри ничего не мучает. Ты уверен, когда знаешь, что поступаешь правильно. У тебя меньше сомнений, потому что выбор гораздо меньше и чётко очерчен.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;&lt;em&gt;Совесть&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Одна из вещей, которой больше всего в жизни дорожу – это моя совесть. Для меня это и есть главный показатель моего согласия с внутренним Я. Ты сорвался, нагрубил, это сразу отдаётся внутри тебя. Ты обманул, и тебя в зависимости от глубины и последствий вранья начинает мучать совесть.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Помню большие дядьки недавно меня спросили, сколько тебе лет. Я годик себе накинул, дабы старше показаться. А зачем? Потом только мучался мыслью, зачем это сделал. Зачем унизил себя перед ними. Такая ложь быстро забывается, но даже этих мыслей и мучений не было бы, если бы сказал действительно сколько лет. Да и результат был бы в принципе один и тот же.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Думаю, у каждого в запасе есть такая маленькая история.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;&lt;em&gt;Скидки&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Здесь самое главное никогда не делать себе скидок. Это очень важно. Каждое исключение будет отдаваться чем-то нехорошим тебе же самому.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Если тебя, кто-то заставляет сделать что-то, что противоречит твоим принципам – пошли его подальше и тебе спокойней будет. Пусть даже это будет твой непосредственный руководитель.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Быть собой - вот что больше всего ценится в человеке.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;&lt;em&gt;Умение контроливать себя&lt;/em&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;В последний раз, ко мне друг приезжал. Завязался небольшой спор. Первые пол-часа я отшучивался. А после не выдержал и сорвался – начал с пеной у рта доказывать обратное, говорить, что за такие вещи за дверь выставлю и т.д. После этого момента, как перешёл больше на эмоции, я уже не контролировал ситуацию, она меня контролировала и руководила. Был ли я сильным в тот момент? Нет ещё слабее, чем когда либо. Тот щит, который в виде шуток имел, у меня выпал из рук, и защищаться было нечем, плюс при сильных эмоциях человек раскрывается сильно, и у него ещё больше брешей видно.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Одно из правил у Карнеги – никогда не спорь с человеком. Его всё равно не переспоришь, только ещё больше каждый останется при своей позиции.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;После того, как друг мой ушёл, я понял, что сделал ошибку. Всё что надо было сказать себе тот момент: его цель - сделать мир вокруг лучше и себя тоже. Так ведь на самом деле и и было. И всё получилось бы спокойней и цивилизованней.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Строить и поддерживать отношения между людьми достаточно трудная задача. Тут как раз контролирование себя выходит на первое место. Обидеть человека можно в течении минуты, обидеть человека и не увидеть его больше никогда, можно в течении 10 секунд.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Конечно, иногда ты срываешься, и твой коллега или спутник получает, то что ты выворачиваешь на него. Будь с этим осторожней. Больше самоконтроля и самодисциплины. Может этот человек благую цель имел – ничего в этом мире просто так не происходит.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;&lt;em&gt;Уважение&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Отностить к людям так, как хочешь чтобы относились к тебе. Поистине золотые слова Карнеги.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Мир сам по себе субъективен – он такой каким ты сам его видишь. В мире не может быть гармонии, если её нету внутри самого человека.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Если ты не можешь с уважением относится прежде всего к себе, ты не сможешь с уважением относится к другим. Есстествено, эти другие не смогут к тебе отнестись к тебе, как ты это желаешь или видишь.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Начать нужно прежде всего с себя. Сделай всё, чтобы для начала самого себя уважать.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Будешь ли ты уважать человека, у которого зарыты скелеты в шкафу, которому самому противно от того, что он постоянно делает, и мучают угрызения совести.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Уже давно говорю, и свято уверен в этом. Семья (настоящая семья) без любви существовать может, без уважения к друг другу нет. И об этом нужно чаще напоминать друг другу и не давать себе и твоему спутнику показывать неуважение к тебе да и к себе тоже. А если всё это ещё и любовью закрепляется – то такая семья через любые невзгоды пройдёт.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Не позволяйте себе и другим показывать неуважение к вам.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;&lt;em&gt;Прощение&lt;/em&gt;&lt;br /&gt;    &lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Умение учится себя прощать – великое дело. Нужно понимать, что человек несовершеннен и ему свойственно ошибится.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Вот я сейчас намного меньше боюсь ошибится, чем пару лет назад. Не ошибается тот, кто ничего не делает. Отличные слова. Ошибки – это твой бесценный опыт. Ты попробовал – не получилось, ещё разок – снова нет, ещё – да... всё получилось. Золотое правило. За двух небитых одного битого дают.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Можно заложить себе какой-то процент ошибок в любом действии. Сделать это можно ожидаемым и меньше разочарований будет. Даже тестированию и исправлению ошибок в проектах обычно выделяют ~30 процентов от времени разработки.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Особенно у женщин, подметил, восприятие своих ошибок - это проблема. Вот уж кто всей душой отдаётся саму себя на растерзание. У меня жена на права ходила. Мне больно было смотреть, как она переживает уже после первых уроков вождения о своих ошибках и промахах. В таких ситуациях, главное понимать, что а по-другому то просто не бывает. Как говорит моя бабка, ребёнок должен сразу определённое кол-во раз упасть, чтобы научится ходить.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;&lt;em&gt;Люди&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Я вот только недавно (пару лет назад) понял одну истину, вроде простую, но для меня очень важную. Люди - это прежде всего люди, а всё остальное потом. Ты приходишь к доктору и прежде всего перед тобой сидит человек, а потом доктор. К тебе подходит миллиционер, это прежде всего человек, а потом миллиционер. Если ты лидер команды, то ты прежде всего человек, а потом менеджер.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Проекты приходят и уходят, а люди остаются, построенные отношения между людьми остаются, уважение или неважение между людьми остаётся. И если те же люди хотят рядом с тобой идти в бой в следующий проект, значит всё ты построил правильно.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Конечно, в любом правиле есть исключения. Когда  человеческие качества ставят на потом, а на передние – твои профессиональные. В армии особо много таких – их ещё называют &lt;em&gt;вояками в ср@#у&lt;/em&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;&lt;em&gt;Голова и сердце&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Если решение исходит из сердца, оно всегда правильное. Это решение не будет тебя мучать. У головы другое предназначение – постоянно думать и порождать сомнения.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Мы перенесли принятие решений в голову. Мы руководствуемся чужими правилами для принятия решений. Мы выбираем из книг, что человека вот за это нужно наказывать этим, и тогда он будет делать вот это.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Посмотрите для начала, что ваше сердце подсказывает. А потом что ваш мозг говорит. Не всегда нужно оперировать голыми фактами, иногда достаточно посмотреть человеку в глаза, чтобы понять, что он сам знает, что он сделал и что он этого больше не сделает. Не надо добивать его, как иногда хочется сделать. Он сам всё понимает.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Но и ещё одну штуку нужно помнить. Пользоваться вашим сердцем должны вы сами. Если видите попытку кого-либо использовать это в своих целях – включайте мозг и действуйте как считате нужным.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;&lt;em&gt;Главное&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;Так что же главное? Если у тебя внути всё в порядке, если ты ощущаешь внутреннюю гармонию, если работаешь и живёшь в согласии со своим вторым Я, у тебя всё получится. Не будь воякой, будь воином.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;text-align: justify&quot;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p&gt;&lt;span style=&quot; ;font-family:Verdana;font-size:10pt;&quot;&gt;PS. Везде по тексту говоря тебе, я подразумевал себя. И буду только несказано рад, если хотя бы в нескольких местах вы поставите себя.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/9192858987688063255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/9192858987688063255' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/9192858987688063255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/9192858987688063255'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/03/5.html' title='Тех. люди #5. Быть в согласии со своим внутренним Я'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-1358827253045486164</id><published>2009-02-13T00:19:00.001+02:00</published><updated>2009-02-13T00:19:22.941+02:00</updated><title type='text'>Тех. Люди #4. Здоровье.</title><content type='html'>&lt;span xmlns=&#39;&#39;&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Сегодня хотел бы поговорить о принципе #2, о жизненно важном принципе. Звучит он просто: &lt;em&gt;Самое главное в жизни – это человеческое здоровье&lt;/em&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Как и с принципом #1 звучит просто, да включает очень много.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Что имеем не храним, потерявши плачем.&lt;/em&gt;&lt;br /&gt;				&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Да уж, это видно человеческая природа и её очень трудно изменить.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Маленькая история: &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;- Слушайте, пациент, если вы не бросите курить – вы умрёте через месяц, а так вы ещё долго проживёте...&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;... Он умер через месяц.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Смешно. Неправда ли?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Очень часто мы не делаем ничего загодя для профилактики: &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;только когда совсем с зубом плохо стало, пошёл к стоматологу и лишился зуба (хотя в начале была очень маленькая дырочка)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;плоскостопие не лечил, пока ноги не заболели и трудно ходить стало (да и теперь не лечу)&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;гастрит не лечил, язву заработал&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;язву заработал, но на вечеринку пошёл&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Думаю, у каждого в загашнике есть подобная история. Склоняюсь к тому, что это обыкновенная человеческая лень и пренебрежение собой... пока петух в заднее место не клюнет, не пошевелишься.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Состоявляющие здоровья&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Для меня здоровье состоит из 3 основных составляющих:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Духовное здоровье&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Моральное здоровье&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Физическое здоровье&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Они написаны по приоритетам, начиная с высшего. Здоровье - это не только твои физические болячки и физическое здоровье. Это твоё общее здоровье. Если ты встаёшь утром и улыбаешься и чувствуешь себя, как заново родился, если идёшь и чувствуешь прилив инергии и тебе хочется прожить этот день и ты с наслаждением вдыхаешь полной грудью – вот такому здоровью можно только позавидовать. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;#1 Духовное здоровье&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Это основа не только здоровья, но и самого человека. Это нечто незыблемое, фундаментальное, чего человек постоянно держится и к чему стремится.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Мне нравится другим словом это здоровье назвать, исконно русским, – это дух твой.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Во время поиска самого себя, во время депресняков, меня мучали и преследовали глобальные вопросы:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Для чего человек живёт, какая конечная цель?&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Вот есть Земля, а дальше бесконечность. Насколько бесконечная бесконечность? Она ведь не может быть бесконечной. Насколько мы ничтожны в этой бесконечности?&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Вот я сейчас еду, а вокруг люди. Куда они все? Зачем все спешат и суетятся? Для чего?&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Кто я такой и какое моё предназначение?&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;И т.д. – не буду напрягать мозг сейчас и вспоминать те вопросы&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Чувство рассклеенности меня в такие минуты охватывало. Причём расклеенности где-то внутри меня. Был ли здоров духовно в те минуты – нет. Не чувствовал фундамента под ногами.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Но, как говорится время и знания приходящие с опытом и возврастом всё исправляют. После каждого депресняка мой фундамент становился ещё крепче, чем был.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Какую основу у меня этот фундамент составляет:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Семья&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Вера в Бога&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Позитив&lt;/em&gt;&lt;br /&gt;						&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Совесть&lt;/em&gt;&lt;br /&gt;						&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;На таком фундаменте можно строить что угодно. Но и беречь его нужно как зеницу ока. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Многие у нас, наверное, и спиваются, потому как фундамента такого нету либо он шаток очень.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Приведу пару выражений из мультфильмов про богатырей русских, которые недавно вышли. Сам дух мультфильмов очень нравится:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Кто духом слаб, у того животное в опале (Илья Муромец).&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;В ратном деле всё важно: тактика, стратегия, а главное - это дух укрепить (Добрыня Никитич).&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Огонёк. Думаю, комментировать не надо. И так всё понятно.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;#2 Моральное здоровье&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Это твоя устойчивость к стрессам, твоё каждодневное состояние, насколько твоя психика подвержена стрессам... в принципе, это и есть здоровье твоей психики.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Очень часто люди переживают очень сильно за свои ошибки, изводя себя в состояние депрессняка. Понятно, что от ошибок и стрессов никто не застрахован. И чем сильнее ты, тем больше пользы от ситуации получишь и последсвия уменьшишь – вместо переживаний и обзывания себя лохом, ты можешь оценить насколько богатый и уникальный опыт ты приорбрёл. Только себя мучать не надо. Это только подрывает психику и уверенность в себе. Учитесь лучше на чужих ошибках и подмечайте, как другие люди выходят из сложных ситуаций. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;А лучше всего – поделись с другом проблемой, он всегда тебе поможет и подскажет лучшее решение.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Вот это здоровье имеет почти полное отражение на твоё физическое здоровье. Перегрузился работой за день? Получи бессоницу. Получил стрессов? Получи болячку. Плохое настроение? Сейчас твоё тело ещё хуже тебе сделает.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Что входит в твоё моральное здоровье:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Умение противостоять стрессам&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Твоя уверенность в самом себе&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Твоя уверенность в людях окружающих тебя&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Твои отношения с окружающими тебя людьми &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;На работе - это самое главное здоровье из всех. Это и твоя защита, если ты можешь противостоять стрессам; это твоя и брешь, если стрессы сильнее тебя.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;#3 Физическое здоровье&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Ну, это, думаю, все догадались, что значит. Это твои физические болячки, бессоницы, язвы, болящее коленко или ключица и т.д.. &lt;/span&gt;&lt;br /&gt;			&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Тут, как говорится, я сам пропрофанил. Всё в этом мире компенсировано – уделяя особое внимания и следя за своим здоровьем #1 и #2, меньше следил за этим здоровьем. И понимал это, но сил не находил. По крайней мере, этот пост заставил меня ещё раз передумать многое о здоровье и теперь чувствую, что и этому здоровью нужно уделить такое же внимание и заботу. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Проблемы со здоровьем #1 и #2 находят отражение на физическом уровне. Но и проблемы со здоровьем несовсем хорошо отражаются на твоём духе. Не зря говорят, в здоровом теле здоровый дух.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Поддержка&lt;br /&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Цени не только своё здоровье, но и здоровье других. Что посеешь, то и пожнёшь. Ты сам себя лучше будешь чувствовать, если выгонешь с работы человека, который не жалея себя 15-тый час сидит. Это здоровья ни ему не добавит, ни проекту.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Жизнь коротка. И не стоит не дооценивать и не любить то, чем наградил тебя Господь – душой и телом. Только в прекрасном настроении и когда у тебя ничего не болит – ты становишься самым продуктивным человеком на свете. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Но ничего просто так не даётся, и за всё надо платить. Поэтому задумайся, если ты вторую неделю по 12 часов сидишь на работе – стоит ли оно твоего здоровья. Может чуть меньше, но качественнее?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;PS. Ещё раз... Здесь я отобразил только свои мысли, и каждый волен найти в этих строках свой смысл либо не найти. Рад буду любым комментам.&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/1358827253045486164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/1358827253045486164' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/1358827253045486164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/1358827253045486164'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/02/4.html' title='Тех. Люди #4. Здоровье.'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-3110889237669624291</id><published>2009-01-27T12:53:00.003+02:00</published><updated>2009-01-27T13:04:22.043+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Optimization"/><category scheme="http://www.blogger.com/atom/ns#" term="Performance"/><title type='text'>HTTPS Performance Tuning</title><content type='html'>&lt;p&gt;Интересные и красивые статьи про HTTPS и перформанс. Я полез их искать, потому что у меня давно было подозрение, что всегда принимаемое за аксиому утверждение, что HTTPS и кэширование контента на стороне клиента не совместимы, не совсем верно. В этих статьях я нашел этому подтверждение, все кэшируется, просто требуется грамотно к этому подойти, как и к любому делу. А тормоза HTTPS могут быть вызваны другими причинами, например долгой установкой безопасных соединений. Про это тоже можно почитать в этих статьях.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://blog.httpwatch.com/2009/01/15/https-performance-tuning/&quot;&gt;HTTPS Performance Tuning&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://blog.httpwatch.com/2007/12/10/two-simple-rules-for-http-caching/&quot;&gt;Two Simple Rules for HTTP Caching&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/3110889237669624291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/3110889237669624291' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/3110889237669624291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/3110889237669624291'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/01/https-performance-tuning.html' title='HTTPS Performance Tuning'/><author><name>Stas Slunkov</name><uri>http://www.blogger.com/profile/14686786629215343304</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-5867250641463242179</id><published>2009-01-27T12:39:00.006+02:00</published><updated>2009-01-27T12:49:31.541+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Optimization"/><category scheme="http://www.blogger.com/atom/ns#" term="Performance"/><title type='text'>Best Practices for Speeding Up Your Web Site</title><content type='html'>&lt;span style=&quot;color:#ff0000;&quot;&gt;&lt;span style=&quot;font-size:130%;&quot;&gt;Очень полезные советы собранные все вместе&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color:#ff0000;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href=&quot;http://developer.yahoo.com/performance/rules.html&quot;&gt;&lt;br /&gt;http://developer.yahoo.com/performance/rules.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Make Fewer HTTP Requests&lt;br /&gt;Use a Content Delivery Network&lt;br /&gt;Add an Expires or a Cache-Control Header&lt;br /&gt;Gzip Components&lt;br /&gt;Put Stylesheets at the Top&lt;br /&gt;Put Scripts at the Bottom&lt;br /&gt;Avoid CSS Expressions&lt;br /&gt;Make JavaScript and CSS External&lt;br /&gt;Reduce DNS Lookups&lt;br /&gt;Minify JavaScript and CSS&lt;br /&gt;Avoid Redirects&lt;br /&gt;Remove Duplicate Scripts&lt;br /&gt;Configure ETags&lt;br /&gt;Make Ajax Cacheable&lt;br /&gt;Flush the Buffer Early&lt;br /&gt;Use GET for AJAX Requests&lt;br /&gt;Post-load Components&lt;br /&gt;Preload Components&lt;br /&gt;Reduce the Number of DOM Elements&lt;br /&gt;Split Components Across Domains&lt;br /&gt;Minimize the Number of iframes&lt;br /&gt;No 404s&lt;br /&gt;Reduce Cookie Size&lt;br /&gt;Use Cookie-free Domains for Components&lt;br /&gt;Minimize DOM Access&lt;br /&gt;Develop Smart Event Handlers&lt;br /&gt;Choose link over @import&lt;br /&gt;Avoid Filters&lt;br /&gt;Optimize Images&lt;br /&gt;Optimize CSS Sprites&lt;br /&gt;Don&#39;t Scale Images in HTML&lt;br /&gt;Make favicon.ico Small and Cacheable&lt;br /&gt;Keep Components under 25K&lt;br /&gt;Pack Components into a Multipart Document&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/5867250641463242179/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/5867250641463242179' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/5867250641463242179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/5867250641463242179'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/01/best-practices-for-speeding-up-your-web.html' title='Best Practices for Speeding Up Your Web Site'/><author><name>Stas Slunkov</name><uri>http://www.blogger.com/profile/14686786629215343304</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-817768421058129377</id><published>2009-01-27T11:58:00.002+02:00</published><updated>2009-01-27T12:45:12.514+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Entity Framework"/><title type='text'>Entity Framework guide</title><content type='html'>Вот такой документ неофициальный на 500 листов по Entity Framework нашёл &lt;a href=&quot;http://cid-245ed00edb4c374e.skydrive.live.com/self.aspx/Public/entity%20framework%20learning%20guide.pdf&quot;&gt;здесь&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/817768421058129377/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/817768421058129377' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/817768421058129377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/817768421058129377'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/01/entity-framework-guide.html' title='Entity Framework guide'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-3781492905656366546</id><published>2009-01-18T23:57:00.002+02:00</published><updated>2009-01-19T10:21:22.556+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="job"/><category scheme="http://www.blogger.com/atom/ns#" term="philosophy"/><category scheme="http://www.blogger.com/atom/ns#" term="тех. люди"/><title type='text'>Тех. Люди #3</title><content type='html'>&lt;span xmlns=&#39;&#39;&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Привет в Новом году. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Пожелаем себе удачного и главное безопасного года. Ждал когда освободится ближайший свободный вечерок, чтобы продолжить дальше. Следующим, о чём хотел рассказать, это о своих основных принципах, которые выработал сам для себя для решения, вернее, для подхода к решению задач и проблем. Их использую не только на работе, но и повседневно в жизни. Дались они мне не легко – через шишаки, через долгие раздумья, депрессняки и стрессы. Тем сильнее они и засели.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Очень часто, особенно, в последнее время, они помогают находить правильные решения и делать правильный выбор в работе и очень помогают избавляться от ненужных стрессов. По крайней мере, меньше сомнения начинают терзать, а сомнения это плохая штука, которая мешает жить. Если что-то происходит не так в моей жизни и на работе, первое, что делаю, это налагаю все эти принципы и смотрю, что могло быть упущено.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Принципов немного больше, но основные, связаные с работой, приведены ниже:&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&#39;margin-left: 100pt&#39;&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Позитив&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Человеческое здоровье&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Согласие с внутренним Я&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Удовольствие и труд&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Ничего идеального не бывает&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Проблемы не решаются&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Только соблюдая их, чувствую себя в безопасности, сильным, довольным и счастливым.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;_______&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Сегодня хотел поговорить о первом из них и самом главном #1. Формулируется он легко: &quot;Самое главное в жизни - позитив&quot;. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Вот только идея его более сложна в понимании и глубже в восприятии, чем формулировка. У каждого своё понимание этой формулировки и он абсолютно прав в ней. Выскажу своё понимание этого. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Что имеем не храним, потерявши – плачем. &lt;/em&gt;Пару раз в жизни в последние годы от перегрузки на работе лично попадал в лапы депрессняка. Тяжёлые периоды, конечно, ничего не скажешь. Эти периоды обычно называл переоценкой ценностей – много мыслей ходило в голове в такую пору. И бессоница мучала из-за этих мыслей. Но обычно после таких периодов, когда депрессняк заканчивался, чувствовал намного сильнее стал духовно и морально, чем был. Это было чувство как будто ты только что родился заново. Вот в такие моменты начинаешь понимать, что жизнь одна и она прекрасна. Что надо радоваться каждому дню, что у тебя есть и каждой минуте. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Раз и всё. &lt;/em&gt;Только недавно смотрел с женой какой-то фильм, слезливый какой-то. Начало фильма - между ним и ней разгорается скандал, она его пилит, что денег нет, дома нет, и, вообще, когда мы, наконец-то, жить начнём. Потом он умирает от рака. Неплохой сюжет, но идея проста – начинать жить надо прямо сейчас с этой минуты и получать от этой минуты удовольствие. Человек не контролирует конец жизни и она может прийти в любую минуту, а ты на небе скажешь, что и не успел пожить даже. С каждым годом, с каждым моим годом количество раз, когда говорят, что кто-то из знакомых умер, растёт. Причём, не от старости. И часть из них не старые люди, а мои ровесники. Один под машину попал, второй на мотоцикле разбился, третий гриппом заболел и организм не выдержал, зарезаной нашли... не буду продолжать. Всё это были мои ровесники, которых очень хорошо знал. Вот только вчера с ними разговаривал и вот никто и не подозревал, что человеку-то начертано всего лишь вот столько. Надеюсь, они все начали жить и успели насладиться жизнью.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Две стороны медали.&lt;/em&gt; Ещё из древних кто-то сказал, что любая вещь в этом мире, абсолютно любая имеет две стороны – хорошую и плохую. Пойдем как в математике от противного. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol style=&#39;margin-left: 46pt&#39;&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Поехали знакомые в Египет на отдых недавно. Приехали такие недовольные и неодохнувшие, что ужас - там всё дорого, любая экскурсия это деньги, ночью холодно и т.д.... &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Человеку не каждый год удаётся выбраться в такую экзотику. За это знакомые выбросили деньги и... не отдохнули. Как правильно было бы поступить: забить на экскурсии, купить одеяла и травы, и гостиницу подешевле. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Есть у меня знакомый. Подсел он в последнее время на белорусские новости. И впал в депресняк. Он как приходит – всё плохо, все мы в ж..., и будем в ж..., и вокруг всё скоро рухнет, и отдаёт полностью себя этим чувствам. Даже от мобильной связи отказался, хотя имел два телефона. &lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Я долго читал Библию, и одолел-то только половину ещё, но она даёт большие знания людям. Одно из моих лучших умозаключений по ней – люди за 10.000 лет не изменились ни на йоту. Атмосфера вокруг людей тоже ни на йоту не изменилась – был богатым, стал бедным, был бедным, стал ещё беднее, а потом богатым. Люди переживали времена, по сравнению, с которыми нынешний кризис, это расцвет.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Медаль отдам другом знакомому человеку. Это верх совершенства. Человек умудрился научиться видеть плохое во всём. Работа – плохо, дом – плохо, семья – плохо, Беларусь – совсем плохо. Он собирается уехать в другую страну. Но у меня есть знаете какие подозрения – ему там тоже будет плохо.&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Все перечисленные это прекрасные люди и ни в коем случае не корю и не обвиняю их за то, что они смотрят на вещи немного с другой стороны – каждый волен выбирать себе жизнь сам. Но, по-мне, нельзя отдавать себя и свои чувства кризису. Но ходить улыбаться как дурачок в такую пору, тоже неправильно. Можно видеть текущие проблемы и подстраховываться от них, создавать себе тыл. А откуда возьмутся силы для борьбы с проблемами, если ты их все отдашь им же?&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Умение найти, что-то хорошее в любой вещи и получить от неё силы - этому нужно учится и к этому стоит стремится.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Никто не говорит, что плохую сторону не надо замечать. Эту сторону можно и нужно видеть и делать всё возможное, чтобы предотвратить последствия. Секрет - ей не надо отдавать свои эмоции. Правило простое – хорошей стороне отдавайся полностью и зарядись ею, на плохую посмотри трезво и не дай ей ничего от своих чувств.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Проблемы&lt;/em&gt;. Они есть всегда. Одни из них большие, другие маленькие. Они есть даже у той птички, что летает, и проблемы у неё может гораздо глобальнее, чем твои – может она птенца лишилась.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Часто знакомые послушав мои мысли про позитив, начинают трунить надо мной. Типа, вот народ увольнять надо, ну, Дёня, где твой позитив, давай, ну где он? Или она опаздывает и мы всё одно уже не успеем, чего нервничаешь, где твой позитив, давай радуйся.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Что тут ответить. Ммм... Это было бы странно, если бы получал удовольствие от этих вещей. Скорее всего за дурачка приняли бы.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Ребёнок может чувствовать себя счастливым только когда он чувствует себя в безопасности (Детская психология).&lt;/em&gt; Полностью согласен. Лучше и не скажешь. Если чувствуешь, что что-то, что ты собираешься сделать, может принести дизбаланс в твою жизнь, постоянные сомнения, угрызения совести – не делай этого. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Всё делать правильно нельзя&lt;/em&gt;. Это важно понимать. Первые звонки с закачиком подрывали меня достаточно сильно - переживал сильно, что тупил много. Юра рассказал мне после одного из звонков интересную притчу, которая хорошо запомнилась. Отличие дурака от человека знаете какое? Только дурак может переживать перед каким-то событием, что он будет делать что-то неправильно, потом во время события он будет волноваться и из-за этого делать что-то неправильно, а после события корить себя долго, что он сделал что-то неправильно во время события. А получал весь этот негатив герой притчи знаете почему? Потому что он дурак. Он, конечно, не обозвал меня тогда дураком, но идею притчи я понял - если тупанул, то лучше проанализируй почему и в следующий раз так не делай. А если ты подготовлен, то ни одно событие тебя не вспугнёт.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Люди по умолчанию хорошие. &lt;/em&gt;Если любую проблему так рассматривать, то решение может найтись быстрее и лучше. Мир такой каким мы его сами себе представляем. Не надо видеть в каждом человеке врага своего или что у него плохие мысли постоянно ходят.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Ессно. Есть исключения. Отличный рассказ у кого то был (Женя часто вспоминает), что человек болты с рельс выкручивал, чтобы сделать что-то хорошее - подарить кому-то, а поезд с рельз сошёл. Есть плохие люди, которые специально плохие вещи делаеют. Таких людей к счастью не так много, по крайней мере в нашей кабинетной профессии. Но их тоже нужно замечать и лучше избавлять коллектив от них либо перевоспитывать и перестарховываться от всяких ненужных случаев.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Вот какое правило для себя понял. Если человек украл, то в 90% случаях виноват не воришка, а тот человек, который спровоцировал человека украсть. Если ты на работе положил кошелёк с деньгами прямо на столе, то это ты полностью виноват, что его лишился. Если разработчику в руки дать продакшн базу, то рано или поздно бедой это обернётся. И виноват не разработчик, а менеджер, который не предусмотрел это.   &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;С этим правилом нужно быть поосторожнее, чтобы на небе тебя не назвали лохом. Для себя я принимаю, что 90% людей хорошие, а 10% всё же имеют недостатки в своём воспитании. Таких действительно видел и попадался в их лапы, но всё же их очень мало. И не стоит видеть в каждом дурные мысли. Если чувствуешь, что что-то не то, то стоит настрожиться.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Чтение между строк&lt;/em&gt;. Вот это действительно много сил забирает. На себе испробовано. Иногда придёт письмо о чём-то конкретном, а ты начинаешь думать, что тебя пытались поддеть, или унизить, или оговорить, или ещё что-то. Самый большой фокус в этом – человек всегда найдёт то, что он ищет. Если он ходит с мыслью, что его кто-то пытается поддеть – он найдёт это в любом письме. Если есть у него дурные мысли, он их только будет подтверждвать каждый день фактами.  &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Есть действительно такие письма или разговоры, когда явно намекают на что-то. Но это из другой песни и их очень-очень мало. Можете забить, если чувствуете, что вам даст это только негатив. Это проблема не ваша. Это проблема другого человека, который не может выразить свою мысль правильно. А может это вам только показалось и письмо не содержит ничего.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Тут категорично себе правило это поставил - если явно чего-то не было высказано, то в баню всё и всех – это могло тебе только показаться. Жизнь легче становится, когда в ней меньше сомнений.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;em&gt;Секрет. &lt;/em&gt;Первый раз когда посмотрел фильм &quot;Секрет&quot; был немного приятно удивлён. Это как раз то, о чём думал, только сформулировать трудно было. Недавно скачал книгу в оригинале и прочитал её. Ещё лучше. Идея теории секрета проста – если ты получаешь удовольствие от того что есть, получаешь удовольствие от того, что у тебя будет – то у тебя всё будет. &lt;span style=&#39;text-decoration:underline&#39;&gt;Мир такой, каким ты делаешь его сам.&lt;/span&gt; Многие из вас смотрели, многие ещё посмотрят фильм – рассписывать не буду. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Дорогу от ЦУМА до работы называю дорогой совершенствования. Каждое утро я иду по ней, у меня есть своя мантра, которую каждое утро повторяю на ней – каждое утро я благодарю Бога за этот новый день, за то, что я есть здесь и могу чувствовать этот день, за то что он есть, и я чувствую гармонию с этим миром, за эту машину, дерево, мороз, девушку, за то что это и есть жизнь, за то что у меня есть здоровая семья, отличная машина, превосходная работа, и есть всё в достатке и изобилии, за то, что большие деньги легко и часто входят в мою жизнь каждый день, а проблемы есть везде, даже вон у той птички, что летает, а я проведу полной грудью этот день.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;И знаете что? Дохожу до работы и чувствую насколько я зарядился и стал сильнее, и любые проблемы мне поплечу и никакой работой и проблемами меня не испугаешь.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Посыл этой басни простой. Получай удовольствие от каждой минуты, что ты работаешь, живёшь, идёшь или поёшь. Пытайся и учись получать удовольствие от всего. Ты сам делаешь свою жизнь и мир вокруг. &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Работа за удовольствие, а не за деньги – верх мастерства. Но что приятно видеть, есть порох в наших пороховницах и есть у нас люди, которые работают не ради денег.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;Много букофф. Но остановится не мог. Буду рад ещё комментам. Ещё раз, это только моя точка зрения, и каждый волен выбрать для себя что-то своё. Но даже, если хоть одно предложение посеяло хоть маленькое зернышко – буду только несказанно рад.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;С уважение ко всем и лично к каждому, &lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;karlito&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;br /&gt; &lt;/p&gt;&lt;p style=&#39;text-align: justify&#39;&gt;&lt;span style=&#39;font-family:Verdana; font-size:10pt&#39;&gt;&lt;br /&gt;    &lt;/span&gt; &lt;/p&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/3781492905656366546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/3781492905656366546' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/3781492905656366546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/3781492905656366546'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/01/3.html' title='Тех. Люди #3'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-915664233652600595</id><published>2009-01-13T13:13:00.007+02:00</published><updated>2009-01-13T19:44:28.535+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="authentication"/><category scheme="http://www.blogger.com/atom/ns#" term="sequrity"/><category scheme="http://www.blogger.com/atom/ns#" term="trick"/><category scheme="http://www.blogger.com/atom/ns#" term="windows"/><title type='text'>Access Remote SQL Server with SQL Management Studio and Windows Authentication</title><content type='html'>Hello, All!&lt;br /&gt;&lt;br /&gt;I found an interesting way how to access sql server, when only windows user is granted access to it (and this user is in different domain).&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.galcho.com/Blog/CommentView.aspx?guid=20d0d23f-9f7d-46e8-a82c-971c1118996e&quot;&gt;http://www.galcho.com/Blog/CommentView.aspx?guid=20d0d23f-9f7d-46e8-a82c-971c1118996e&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwcF2atDW1lBJEl9bey-HacgrpmDVQZOUFJybNSg8Ov3_SQ1d6PMY1WsNGd3nEaKxnlEi9XnQ_st6X8iRFeX2qUuSs_HyuwERgKypuV-kPRzCxV2SK8AAho1bGMaFsD4_0aJQFuiyh100/s1600-h/1-13-2009+12-03-53+PM.png&quot;&gt;&lt;img style=&quot;cursor:pointer; cursor:hand;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwcF2atDW1lBJEl9bey-HacgrpmDVQZOUFJybNSg8Ov3_SQ1d6PMY1WsNGd3nEaKxnlEi9XnQ_st6X8iRFeX2qUuSs_HyuwERgKypuV-kPRzCxV2SK8AAho1bGMaFsD4_0aJQFuiyh100/s1600/1-13-2009+12-03-53+PM.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5290735473805234866&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;So the command is the following:&lt;br /&gt;&lt;/p&gt;&lt;b&gt;runas /netonly /user:domain\user SqlWb.exe&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;/netonly&lt;/span&gt; – is required switch. It means that the process should be runned locally under the current windows account, but when accessing remote side it uses the specified credentials.</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/915664233652600595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/915664233652600595' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/915664233652600595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/915664233652600595'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2009/01/access-remote-sql-server-with-sql.html' title='Access Remote SQL Server with SQL Management Studio and Windows Authentication'/><author><name>Stas Slunkov</name><uri>http://www.blogger.com/profile/14686786629215343304</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwcF2atDW1lBJEl9bey-HacgrpmDVQZOUFJybNSg8Ov3_SQ1d6PMY1WsNGd3nEaKxnlEi9XnQ_st6X8iRFeX2qUuSs_HyuwERgKypuV-kPRzCxV2SK8AAho1bGMaFsD4_0aJQFuiyh100/s72-c/1-13-2009+12-03-53+PM.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-1015528443686896593</id><published>2008-12-30T23:59:00.000+02:00</published><updated>2008-12-31T00:00:48.364+02:00</updated><title type='text'>кста, с новым годом.</title><content type='html'>будь таким, каким себя видишь.</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/1015528443686896593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/1015528443686896593' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/1015528443686896593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/1015528443686896593'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2008/12/blog-post_4709.html' title='кста, с новым годом.'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-662203790370429171</id><published>2008-12-30T23:58:00.003+02:00</published><updated>2009-01-18T23:59:34.846+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="job"/><category scheme="http://www.blogger.com/atom/ns#" term="philosophy"/><category scheme="http://www.blogger.com/atom/ns#" term="тех. люди"/><title type='text'>Тех. Люди #2. Опыт.</title><content type='html'>&lt;u&gt;Опыт.&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;Почему этот пункт первый в плане? Потому что это прямо пропорционально твоей зарплате. Об опытном человеке обычно говорят – профессионал своего дела. А некоторые в IT области уже много лет так и не могут заслужить этого названия.&lt;br /&gt;&lt;br /&gt;Что же такое опыт? Я полностью солидарен с ЕК, относительно возраста прожект менеджера. Ну не может человек минимум до 25 стать полноценным прожект менеджером, чтобы не говорили. И 18-летний прожект менеджер в Итр@нзишн скорее показывает неопытность и молодость самой компании - это скорее недостаток, чем достоинство.&lt;br /&gt;&lt;br /&gt;Закономерно возникает вопрос почему нельзя в 18 руководить проектом?&lt;br /&gt;&lt;br /&gt;Ответ прост. Нехватка опыта. Но ведь он самый умный, самый коммуникабельный и лучшее знание языка имеет, ответите вы. Хороший вопрос. Но ответ всё один и тот же – нехватка опыта.&lt;br /&gt;&lt;br /&gt;Мы с Юрой В. как-то в последний раз много поговорили о том, что такое опыт и какая его формула. С самого начала мы понимали, что опыт это не просто знание технологий, это нечто больше. А что именно – трудно было сформулировать. Но когда начинаешь говорить об этом  - начинаешь находить нужные определения. Давайте ниже посмотрим, к чему мы всё таки дошли.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Опыт = знания + набор готовых решений + уровень уважения к себе.&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Давайте по порядку разберём.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Знания&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Вы сами понимаете, что только через горы книг и гранит науки можно добиться в этом деле чего-то. Когда говорят про опыт, то люди прежде всего смотрят в резюме с какими технологиями человек работал, какую техническую роль выполнял.&lt;br /&gt;&lt;br /&gt;Извини, но тебя не назовут опытным разработчиком, если ты в конце эшелона последние 10 лет проплёлся и ещё.&lt;br /&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;li&gt;знания как вести себя с заказчиком,&lt;/li&gt;&lt;li&gt;умение поддерживать отношения с окружающими,&lt;/li&gt;&lt;li&gt;умение писать корректные письма и т.д.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;С этим пунктом можно разобраться проще всего – большинство задач решается упорным трудом, самодисциплиной и желанием получить эти знания.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Набор готовых решений&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Здесь можно рассмотреть несколько типов готовых решений:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Материальная часть проектов в виде багажа, который ты повсюду в течение многих лет за собой таскаешь. &lt;br /&gt;&lt;br /&gt;Все более-менее проекты, над которыми я лично работал, в виде кода, документации аккуратненько хранятся у меня на диске. И что заметил интересное – довольно часто мне приходится к ним возвращаться (особенно к коду), чтобы достать уже готовое решение, или посмотреть как оно делалось и как его делать не надо.&lt;br /&gt;&lt;br /&gt;Не могу не прокомментировать случай, который я увидел между Юрой В. и Ваней Л.&lt;br /&gt;- Ваня, смотри какую штуку мы взяли с предыдущего проекта и всунем его сейчас в текущий, - грит Юра, показывая на шаблон документа, на котором ещё название старого проекта сохранилась.&lt;br /&gt;- Ёпта, это и называется опыт.&lt;br /&gt;&lt;br /&gt;Ёпта, полностью согласен с Ваней. Эту материальную часть нужно беречь как зеницу ока и аккуратно собирать её.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Сюда также можно отнести на набор техн. решений в голове. Долго думал, можно ли этот пункт оставить здесь - время, к сожалению, неумолимо. И из проектов прошлых лет, ты помнишь только основные решения и подходы. Но, всё одно, это &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;твои&lt;/span&gt; знания.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Набор решений на проблемные ситуации&lt;br /&gt;&lt;br /&gt;Очень часто в этом пункте приходится набивать себе тумаки самому. И ещё чаще нужно несколько тумаков набить, чтобы найти себе какое-нить более-менее работающее решение для одной и той же ситуации. Особенно это связано при работе с людьми или заказчиками.&lt;br /&gt;&lt;br /&gt;Получив пару хороших тумаков и пару хороших советов, я сам научился (по крайней мере так надеюсь) что смогу противостоять, когда тебя провоцируют при большом количестве людей. Хорошие тумаки, конечно, были. Не позавидуешь.&lt;br /&gt;&lt;br /&gt;Какие проблемы могут встретиться:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Заказчик требует статус репорт, а в реальности ничего не готово&lt;/li&gt;&lt;li&gt;Заказчик просит в очередной раз посидеть вне рабочее время&lt;/li&gt;&lt;br /&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;li&gt;Твой коллега занимается посторонними вещами, и тебе нужно сказать ему об этом&lt;/li&gt;&lt;li&gt;Видишь внутренние конфликты между двумя людьми&lt;/li&gt;&lt;li&gt;Можно продолжать до бесконечности&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;Что с этим пунктом не так. К сожалению, он приходит с годами. Его можно немного ускорить правда, за счёт получения тех же готовых решений от других, но и только.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Уровень уважения к себе&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Это скорее самый важный пункт из всех. Но он не может существовать без предыдущих.&lt;br /&gt;&lt;br /&gt;Так что значит этот пункт. Доволно сложный в определении, но попробую. Это не какое-то абстаркное общее уважение к себе. Это ну как бы лучше выразиться. Это когда внутреннее твоё Я требует к себе уважение от других. Требовать относительно к себе отноститься – это ваше право, но здесь речь о другом уважении (уважении к моему мнению).&lt;br /&gt;&lt;br /&gt;Пару примеров.&lt;br /&gt;&lt;br /&gt;Общение с заказчиком по телефону. Сразу можно заприметить в разговоре малоопытных людей. Они мало говорят, редко переспрашивают, кипятятся когда отвечают. Внутреннее Я этого человека не чувствует себя в безопасности и не требует к себе уважение (т.е. уважения к его мнению), и его голос не звучит убеждённо и вообще его никто особо слушать не будет.&lt;br /&gt;&lt;br /&gt;Ещё ярче пример. Посадить человека, незнакомого с IT вообще, между двумя архитекторами во время их разговора о сумрачности двойного вырожденного полиморфизам и... всё. Голос этого человека не будет значить, в принципе, ничего. Хотя он обладает большей реальной властью, чем архитекторы, к примеру, может уволить в любой момент кого захочет из них двоих. Но здесь кроется самое интересное. Человек сам показывает, всем своим видом и поведением, что к моему голосу прислушиваться не следует. Т.е. виноват сам человек, что его так трактуют, а не те которые к нему так относится.&lt;br /&gt;&lt;br /&gt;А вот ещё. Приходит 2 человека с одними и теми же знаниями на проект. Одного через некоторое время начинают слушаться и доверять ему, а другого нет, чтобы он не старался делать.&lt;br /&gt;&lt;br /&gt;В большинстве своём, человек сам виноват в том, как к нему относятся окружающие, а окружающие, в большинстве, своём не виноваты в этом. Всё зависит от того уровня уважения, которое человек сам к себе требует.&lt;br /&gt;&lt;br /&gt;Управлять этим внутренним Я очень сложно. Большинсто оферистов, актёров умеют это делать по-настоящему, когда к его голосу начинают прислушиваются в области, где он ни в зуб ногой.&lt;br /&gt;&lt;br /&gt;Ещё с годами у человека всё меньше и меньше остаётся областей, в которых он не может потребовать к себе уважения. И если тот человек между двумя архитекторами старец, у которого целый багажник внуков, и который прожил честную и достойную жизнь, то он не даст себя в обиду и любое слово пророненное этим старцем будет подхвачено архитекторами и рассмаковано и оценено по достоинсту.&lt;br /&gt;&lt;br /&gt;Что подкрепляет внутреннее Я. Определённые знания в какой-то области (#1) и набор решений (#2) на ситуации, которые могут возникнуть в этой области + уже достигнутый среди окружащих уровень уважения к тебе. Только тогда ты себя можешь чувствовать как рыба в воде. Только тогда о тебе могут сказать громко - профессионал.&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Как заработать дополнительно экспиренса (в героев 3, думаю, многие играли), надеюсь, вы поняли – работать, работать и ещё раз работаться и стараться заработать опыт при любом удобном случае. Помни: за двух небитых, одного битого дают. Поэтому если выпадает шанс на халяву получить экспиренса – получай. К примеру, приглашают на кол поговорить – говори.&lt;br /&gt;&lt;br /&gt;Ещё раз напомню. Что это только моё мнение и мой опыт, который может быть вами трактован, собственно, как вам заблагорассудиться.</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/662203790370429171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/662203790370429171' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/662203790370429171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/662203790370429171'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2008/12/2.html' title='Тех. Люди #2. Опыт.'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-2823466088240235790</id><published>2008-12-30T23:55:00.005+02:00</published><updated>2009-01-04T20:52:32.632+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="job"/><category scheme="http://www.blogger.com/atom/ns#" term="philosophy"/><category scheme="http://www.blogger.com/atom/ns#" term="тех. люди"/><title type='text'>Тех. люди #1.Вступление.</title><content type='html'>&lt;div&gt;Привет,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Устраивайся поудобнее в своём кресле (кто в общежитии – поудобнее на табуретке) – чувствую много мыслей в голове бродит.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Давно в голове ходила мысль сделать это - начать вести технический блог, но не про технологии (благо сейчас этой информации завались), а про людей. Очень часто на работе приходится решать не технические вопросы, а разбираться в своих личных ошибках, в отношениях с людьми, с самим собой. На технические вопросы всегда есть ответы, и вы как нельзя те люди, которые умеют эти ответы быстро находить и понимают, что с технической точки зрения сделать можно всё.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Но по мере того как человек растёт (а здесь уже все немалелькие), по мере того как он становится лидером (не зря ведь название Team/Tech &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: bold;&quot;&gt;Leader&lt;/span&gt;) всё больше времени начинает уходить на работу с людьми. Люди должны поверить в тебя и пойти за тобой. И тут уже начинаются свои совсем новые ньюансы: в отличие от технической литературы, тут мало пособий, либо человек не знает где информацию достать и приходится всего добиваться через свои шишки. Не зря говорят, что отрицательный результат, это тоже результат. Отрицательный результат – это твой бессценный опыт.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Но думаю у каждого из вас возникали вопросы типа (попытался вынести все возможные вопросы, которые приходили мне на ум):&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Почему я больше всех работаю?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Почему я провожу на работе 12-13 часов, а другие ребята в 6 часов – go home, и не важно в каком статусе они оставили работу?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Почему только некоторые люди в команде душой болеют за проект?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Почему кода приходится так много за другими людьми пересматривать и переписывать?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Почему люди не хотят учится и расти?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Наверное, надо было резче сказать, что так делать больше нельзя?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Я не хочу работать с людьми, мне легче писать код – я для этого учился&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Моё мнение проигнорили сегодня и моё предложение даже недослушали – они не правы&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Я технически очень сильно подготовлен и много читаю, но есть люди, которые с тем же набором знаний, но выше меня&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Как найти подход к человеку, который сильнее, опытнее и что самое главное старше тебя&lt;br /&gt;&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;br /&gt;&lt;/div&gt;&lt;div&gt;Так в чём мысль-то моя была. Донести, по крайней мере, свой опыт и умозаключения, какими приципами пользуюсь и руководствуюсь при работе. И возможно это поможет вам стать сильнее. Приятно с вами рабоать, мои милые коллеги, но неприятно видеть, как вы сталкиваетесь с теми же ошибками.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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;Принципы&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;li&gt;Ничего идеального не бывает&lt;/li&gt;&lt;li&gt;Проблемы не решаются&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;li&gt;Проблемы и способы их решения&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Роли поменялись&lt;/li&gt;&lt;/ol&gt;&lt;li&gt;Что дальше?&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;Каждый должен понимать, что это только мой взгляд на жизнь и применять что-то к себе или не применять – это дело уже индивидульное.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Буду очень рад, если в обсуждении этих тем буду не один. Надеюсь, на хорошую ответную реакция. Буду рад, если в комментах укажете какой пункт или проблему хотели бы в свой план внести. И мы все вместе подумаем над этим.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Здесь на блоге сидит человек 5. Думаю, так если 3 человека согласится, чтобы я писал об этом дальше, то так и будет. Если нет, то не судьба. А пока ещё один пост об опыте брошу, чтобы увидели сколько буков нужно прочитать.&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/2823466088240235790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/2823466088240235790' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/2823466088240235790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/2823466088240235790'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2008/12/blog-post_30.html' title='Тех. люди #1.Вступление.'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-4028551746678259536</id><published>2008-12-29T00:21:00.006+02:00</published><updated>2009-01-04T20:05:54.524+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="fun"/><title type='text'>За 10000 лет человек ни капли не изменился</title><content type='html'>Случайно на своём буке наткнулся на файлик, в котором нашёл свои маленькие сочинения, написанные пару лет назад для одного поста в форум. Перечитал и в некоторых местах улыбнулся - актуально осталось. Решил выкинуть эти пару мест в этот пост. Эдакий набор маленьких чего-то там.&lt;br /&gt;&lt;br /&gt;................................................................................&lt;br /&gt;&lt;br /&gt;- Любимый, ложись спать. Уже три.&lt;br /&gt;- Родненькая,  работа такая. Вот я уже-уже. Сейчас код декомпилирую, чтобы команда в 8 утра смогла начать работу...&lt;br /&gt;- Любимый. Уже пятый час.&lt;br /&gt;- Не получается, солнышко. (в мыслях) Я ведь тебя всё равно сделаю...  Главное сделать тебя статической. (вслух) Главное сделать тебя статичеcкой. Точно. И статическим классом тебя  заодно сделать надо.&lt;br /&gt;- Ты меня уже не любишь?&lt;br /&gt;- Да, конечно.&lt;br /&gt;- Что?&lt;br /&gt;- Да, конечно.&lt;br /&gt;- Что “да конечно”?&lt;br /&gt;- Что?&lt;br /&gt;- Это я у тебя спрашиваю что?&lt;br /&gt;- Что? Извини. Я не помню что ты сказала. Можешь повторить?... Главное сделать тебя статической. Точно.&lt;br /&gt;- (грустно) О, брат...&lt;br /&gt;................................................................................&lt;br /&gt;&lt;br /&gt;Специфика работы или я схожу с ума?&lt;br /&gt;И всё же мне нравиться эта работа!&lt;br /&gt;................................................................................&lt;br /&gt;&lt;br /&gt;Спецификация?! Уж поверь ты моему опыту.&lt;br /&gt;................................................................................&lt;br /&gt;&lt;br /&gt;- Можно телефон руководителя направления?&lt;br /&gt;- Его нет? Слушайте, меня сегодня не будет.&lt;br /&gt;- Почему в 6 вечера?&lt;br /&gt;- Я очень заболел. Заказчик звонил? А кто с ним говорил? Никто? Во млин... Меня завтра и послезавтра не будет.&lt;br /&gt;- Что?&lt;br /&gt;- Нет, справки не будет.&lt;br /&gt;................................................................................&lt;br /&gt;&lt;br /&gt;- Хорошо-то как. Сидишь баклуши бьёшь, а оно всё работает...&lt;br /&gt;- Хорошо-то как...&lt;br /&gt;- Что ты там говоришь? Не успеваем? Поговори с командой насчёт субботы... Хорошо-то как...&lt;br /&gt;- Не успели? Так ведь в воскресенье работали. Ничего вытянем! И не такой объём вытягивали.&lt;br /&gt;- Что? Заболел главный разработчие? Заказчик звонит?...&lt;br /&gt;- Простите, я звоню по объявлению насчёт работы.&lt;br /&gt;................................................................................&lt;br /&gt;&lt;br /&gt;- Значит, так. Вот тебе, тебе, тебе и тебе задание. Я у вас главный. Меня вы можете беспокоить меня небольше 5 минут в день после полдника. Согласовывайте между собой, делите время, берите по 10 секунд, НО... Не больше  5 минут в сумме. Не больше. Я человек большОй, занятОй, строю архитектуры, посылаю заказчиков и подымаю ваш уровень как разработчиков.&lt;br /&gt;................................................................................&lt;br /&gt;&lt;br /&gt;ЙА</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/4028551746678259536/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/4028551746678259536' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/4028551746678259536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/4028551746678259536'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2008/12/10000.html' title='За 10000 лет человек ни капли не изменился'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-7585833566494559863</id><published>2008-12-19T09:51:00.001+02:00</published><updated>2008-12-19T10:08:42.383+02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="code"/><category scheme="http://www.blogger.com/atom/ns#" term="LINQ"/><category scheme="http://www.blogger.com/atom/ns#" term="LINQ2Sql"/><category scheme="http://www.blogger.com/atom/ns#" term="Optimization"/><category scheme="http://www.blogger.com/atom/ns#" term="Performance"/><title type='text'>10 Tips to impove Linq2Sql  performance</title><content type='html'>Я думаю, если мы собираемся использовать линк в проектах, стоит узнать, как ускорить работу этой технологии:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Отключить ObjectTracking - у нас уже используется.&lt;/li&gt;DataContextManager.Create&amp;#60;tcontext&amp;#62;(bool readOnly) - если true, то object tracking выключен. Это позволит отключить ненужный в таком случае контроль изменений объектов.&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Разнести не связанные таблицы по разным датаконтекстам. Сокращение размера датаконтекста позволит уменьшит количество используемой памяти и операций для контроля изменений объектов.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Использовать CompiledQuery - думаю, прирост будет, только вот какой? &lt;a href=&quot;http://blogs.msdn.com/ricom/archive/2008/01/14/performance-quiz-13-linq-to-sql-compiled-query-cost-solution.aspx&quot;&gt;Тут&lt;/a&gt; можно посмотреть результаты тестирования compiled vs uncompiled запросов на LINQ&lt;br /&gt;В двух словах - прирост есть, в зависимости от частоты похожих запросов от 10% до 70%&lt;br /&gt;&lt;br /&gt;Пример компилированного запроса:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot; color=&quot;black&quot;&gt;Func&amp;#60;NorthwindDataContext, &lt;font color=&quot;#2B91AF&quot;&gt;IEnumerable&lt;/font&gt;&amp;#60;Category&amp;#62;&amp;#62; func =&lt;br /&gt;&amp;nbsp; CompiledQuery.Compile&amp;#60;NorthwindDataContext, &lt;font color=&quot;#2B91AF&quot;&gt;IEnumerable&lt;/font&gt;&amp;#60;Category&amp;#62;&amp;#62;&lt;br /&gt;&amp;nbsp; ((NorthwindDataContext context) =&amp;#62; context.Categories.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;Where&amp;#60;Category&amp;#62;(cat =&amp;#62; cat.Products.Count &amp;#62; 5));&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Далее, можно создать статический класс с набором этих компилированных запросов:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot; color=&quot;black&quot;&gt;&lt;font color=&quot;#008000&quot;&gt;/// &amp;#60;summary&amp;#62;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#008000&quot;&gt;/// Utility class to store compiled queries&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#008000&quot;&gt;/// &amp;#60;/summary&amp;#62;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;public&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;static&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;class&lt;/font&gt; QueriesUtility&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&lt;font color=&quot;#008000&quot;&gt;/// &amp;#60;summary&amp;#62;&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&lt;font color=&quot;#008000&quot;&gt;/// Gets the query that returns categories with more than five products.&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&lt;font color=&quot;#008000&quot;&gt;/// &amp;#60;/summary&amp;#62;&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&lt;font color=&quot;#008000&quot;&gt;/// &amp;#60;value&amp;#62;The query containing categories with more than five products.&amp;#60;/value&amp;#62;&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;public&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;static&lt;/font&gt; Func&amp;#60;NorthwindDataContext, &lt;font color=&quot;#2B91AF&quot;&gt;IEnumerable&lt;/font&gt;&amp;#60;Category&amp;#62;&amp;#62;&lt;br /&gt;&amp;nbsp;&amp;nbsp;GetCategoriesWithMoreThanFiveProducts&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;get&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Func&amp;#60;NorthwindDataContext, &lt;font color=&quot;#2B91AF&quot;&gt;IEnumerable&lt;/font&gt;&amp;#60;Category&amp;#62;&amp;#62; func =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CompiledQuery.Compile&amp;#60;NorthwindDataContext, &lt;font color=&quot;#2B91AF&quot;&gt;IEnumerable&lt;/font&gt;&amp;#60;Category&amp;#62;&amp;#62;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;((NorthwindDataContext context) =&amp;#62; context.Categories.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Where&amp;#60;Category&amp;#62;(cat =&amp;#62; cat.Products.Count &amp;#62; 5));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;return&lt;/font&gt; func;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;Использование же этого класса будет следующим:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot; color=&quot;black&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;using&lt;/font&gt; (NorthwindDataContext context = &lt;font color=&quot;#0000ff&quot;&gt;new&lt;/font&gt; NorthwindDataContext())&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;var&lt;/font&gt; categories = QueriesUtility.GetCategoriesWithMoreThanFiveProducts(context);&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;Кроме того, поддержание многих запросов в одном месте позволит избежать дублирование кода и более легкую его поддержку&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Использовать DataLoadOptions.AssociateWith - смысл в том чтобы не использовать LazyLoading, а грузить связанные таблицы сразу. Но грузить не все данные, а лишь по определенному условию.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot; color=&quot;black&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;using&lt;/font&gt; (NorthwindDataContext context = &lt;font color=&quot;#0000ff&quot;&gt;new&lt;/font&gt; NorthwindDataContext())&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;DataLoadOptions options = &lt;font color=&quot;#0000ff&quot;&gt;new&lt;/font&gt; DataLoadOptions();&lt;br /&gt;&amp;nbsp;options.AssociateWith&amp;#60;Category&amp;#62;(cat=&amp;#62; cat.Products.Where&amp;#60;Product&amp;#62;(prod =&amp;#62; !prod.Discontinued));&lt;br /&gt;&amp;nbsp;context.LoadOptions = options;&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Использовать Optimistic concurrency - добавить в каждую таблицу поле типа TimeStamp - таким образом сам LINQ будет отвечать за concurrency. Кроме того, используя такой подход, можно передавать entity из одного датаконтекст. Если же приложению Optimistic Concurrency не нужна - ее можно отключить. В свойствах Entity в дизайнере выставить UpdateCheck равным UpdateCheck.Never&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Мониторить запросы, которые генерирует LINQ. Большинство запросов будет генерироваться на лету, поэтому, как большинство генераторов-дизайнеров от MS, LINQ может сгенерировать не совсем оптимальный запрос - подтягивать лишние колонки, к примеру. Логирование делается очень просто -&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot; color=&quot;black&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;using&lt;/font&gt; (NorthwindDataContext context = &lt;font color=&quot;#0000ff&quot;&gt;new&lt;/font&gt; NorthwindDataContext())&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;context.Log = &lt;font color=&quot;#2B91AF&quot;&gt;Console&lt;/font&gt;.Out;&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;Так как мы используем DataContextManager, через который создаем все датаконтексты, то привязать логгирование ко всему приложению будет еще проще:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot; color=&quot;black&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;internal&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;static&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;class&lt;/font&gt; DataContextManager&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;public&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;static&lt;/font&gt; DataContextType Create&amp;#60;DataContextType&amp;#62;(&lt;font color=&quot;#0000ff&quot;&gt;bool&lt;/font&gt; readOnlyAccess)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;where&lt;/font&gt; DataContextType : DataContext, &lt;font color=&quot;#0000ff&quot;&gt;new&lt;/font&gt;()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;DataContextType dc = &lt;font color=&quot;#0000ff&quot;&gt;new&lt;/font&gt; DataContextType();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=&quot;#008000&quot;&gt;//DebugWriter is a TextWriter that writes to DebugInfo.txt file&lt;/font&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;dc.Log = SaM.Dept2.Common.Logging.Logger.DebugWriter;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dc.ObjectTrackingEnabled = !readOnlyAccess;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dc.DeferredLoadingEnabled = &lt;font color=&quot;#0000ff&quot;&gt;false&lt;/font&gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;return&lt;/font&gt; dc;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Использовать метод Attach только тогда, когда это действительно нужно. Например, не использовать AttachAll для коллекций, а проверять каждый объект из коллекции на изменения и привязывать/не привязывать его.&lt;/li&gt;&lt;li&gt;Быть более внимательным при работе c контролем изменений объектов. При работе с датаконтекстом в режиме не только чтения простые запросы могут создавать дополнительные затраты ресурсов. Например, очень простой запрос:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot; color=&quot;black&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;using&lt;/font&gt; (NorthwindDataContext context = &lt;font color=&quot;#0000ff&quot;&gt;new&lt;/font&gt; NorthwindDataContext())&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;var&lt;/font&gt; a = &lt;font color=&quot;#0000ff&quot;&gt;from&lt;/font&gt; c &lt;font color=&quot;#0000ff&quot;&gt;in&lt;/font&gt; context.Categories&lt;br /&gt;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;select&lt;/font&gt; c;&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;Однако этот запрос будет тратить больше ресурсов нежели следующий:&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot; color=&quot;black&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;using&lt;/font&gt; (NorthwindDataContext context = &lt;font color=&quot;#0000ff&quot;&gt;new&lt;/font&gt; NorthwindDataContext())&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;var&lt;/font&gt; a = &lt;font color=&quot;#0000ff&quot;&gt;from&lt;/font&gt; c &lt;font color=&quot;#0000ff&quot;&gt;in&lt;/font&gt; context.Categories&lt;br /&gt;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;select&lt;/font&gt; &lt;font color=&quot;#0000ff&quot;&gt;new&lt;/font&gt; Category&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;CategoryID = c.CategoryID,&lt;br /&gt;&amp;nbsp;&amp;nbsp;CategoryName = c.CategoryName,&lt;br /&gt;&amp;nbsp;&amp;nbsp;Description = c.Description&lt;br /&gt;&amp;nbsp;};&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;Почему? Потому что в первом все еще продолжает работать Object Tracking, в то время как во втором LINQ просто отдает вам объекты и забывает о них.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;Получать только нужное количество строк используя Take и Skip методы. Стандартный сценарий для постраничного просмотра:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;code&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot; color=&quot;black&quot;&gt;&lt;font color=&quot;#008000&quot;&gt;/// &amp;#60;summary&amp;#62;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#008000&quot;&gt;/// Gets the products page by page.&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#008000&quot;&gt;/// &amp;#60;/summary&amp;#62;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#008000&quot;&gt;/// &amp;#60;param name=”startingPageIndex”&amp;#62;Index of the starting page.&amp;#60;/param&amp;#62;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#008000&quot;&gt;/// &amp;#60;param name=”pageSize”&amp;#62;Size of the page.&amp;#60;/param&amp;#62;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#008000&quot;&gt;/// &amp;#60;returns&amp;#62;The list of products in the specified page&amp;#60;/returns&amp;#62;&lt;/font&gt;&lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;private&lt;/font&gt; IList&amp;#60;Product&amp;#62; GetProducts(&lt;font color=&quot;#0000ff&quot;&gt;int&lt;/font&gt; startingPageIndex, &lt;font color=&quot;#0000ff&quot;&gt;int&lt;/font&gt; pageSize)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;using&lt;/font&gt; (NorthwindDataContext context = &lt;font color=&quot;#0000ff&quot;&gt;new&lt;/font&gt; NorthwindDataContext())&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;font color=&quot;#0000ff&quot;&gt;return&lt;/font&gt; context.Products&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Take&amp;#60;Product&amp;#62;(pageSize)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .Skip&amp;#60;Product&amp;#62;(startingPageIndex * pageSize)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .ToList&amp;#60;Product&amp;#62;();&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/font&gt;&lt;br /&gt;&lt;br /&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;* This source code was highlighted with &lt;a href=&quot;http://virtser.net/blog/post/source-code-highlighter.aspx&quot;&gt;&lt;font size=&quot;1&quot; color=&quot;gray&quot;&gt;Source Code Highlighter&lt;/font&gt;&lt;/a&gt;.&lt;/font&gt;&lt;/code&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&quot;Преждевременная оптимизация — корень всех зол&quot;. Это сказал еще Дональд Кнут.&lt;br /&gt;Поэтому будьте внимательны, особенно с использованием CompiledQuery. Запросы LINQ не компилируются, как Regex. Компиляция запроса LINQ создает объект в памяти, в котором уже есть SQL-запрос и делегат для работы с ним.&lt;br /&gt;&lt;br /&gt;В принципе, слова Кнута относятся к любым оптимизациям, поэтому не стоит сломя голову оптимизировать все подряд. Лучший выход - попробовать подход и проверить, приносит ли он реальную пользу.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Спасибо.&lt;br /&gt;&lt;br /&gt;На основе статьи &lt;a href=&quot;http://www.sidarok.com/web/blog/content/2008/05/02/10-tips-to-improve-your-linq-to-sql-application-performance.html&quot;&gt;10 Tips to Improve Linq2Sql Performance...&lt;/a&gt; и собственного опыта.</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/7585833566494559863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/7585833566494559863' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/7585833566494559863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/7585833566494559863'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2008/12/10-tips-to-impove-linq2sql-performance.html' title='10 Tips to impove Linq2Sql  performance'/><author><name>AlexS</name><uri>http://www.blogger.com/profile/08708753260640179059</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-8937701214683715224</id><published>2008-12-15T00:50:00.000+02:00</published><updated>2008-12-15T01:27:33.954+02:00</updated><title type='text'>Потенциальная уязвимость в ASP.NEt приложении из-за неправильного управления ключами шифрования</title><content type='html'>Пока ничего не поломал ещё. Но в поисках... :) В поисках, прежде всего, в уже написанных нами приложениях. &lt;br /&gt;&lt;br /&gt;Поднял для себя ещё одну уязвимость, которую можно сделать в ASP.NET приложении. Ошибку такую в уже существующих приложениях мы делали, но до дыры это не доводило. А может и доводило...&lt;br /&gt;Собственно, хватит предыстории, пора и к делу.&lt;br /&gt;&lt;br /&gt;Проблема связана с шифорованием, вернее, с использованием ключей для шифрования. Ещё вернее, с использованием одних и тех же ключей для шифрования разной информации. Помню, несколько моих ответов на вопрос, где положить ключики для шифрования, &quot;да давай мэшин кэйем - такой чёрта-с-два угадаешь и достанешь:)&quot;. Причём не важна была задача, для которой шифруется. А между прочем, этот же ключик ASP.NET используется для шифрования auth и role &quot;печенюшек&quot;. &lt;br /&gt;&lt;br /&gt;В чём собственно дыра. К примеру, пользователь расскрыл для себя возможность получать с сайта шифрованный текст на его любые вводимые данные (к примеру, генерация шифрованного урл параметра по паролю пользователя для его последующего сброса (в открытом же виде не гоже пароли слать ;))). и более того, это функционал использует machinekey для шифрование и дешифрования. дальше дело техники. аuth кук содержит только имя пользователя - пароля нет в шифрованной печенюшке. пользователь составляет в текстовом виде как выглядит незашированный текст FormsAuthenticationCookie (можно рефлектором поднять место перед шифрацией (byte[] FormsAuthentication.MakeTicketIntoBinaryBlob(FormsAuthenticationTicket ticket)) для пользователя скажем admin или karlito (ты ведь помнишь, что пароль не нужен) и посылает этот текст на шифрацию. Класс, сервер возвращает нам шифрованный текст (читай аутекатионный кук). Теперь, точно дело техники. как послать запрос с определённым куком - это, надеюсь, ты знаешь. Кста, role-кук это отдельный кук содержащий только имя пользователя и роли. , но тоже пользуется мэшин кэйем для шифрования. Короче, поняли.&lt;br /&gt;&lt;br /&gt;Посыл простой:&lt;br /&gt;1) Внимательнее с использованием одних и тех же ключей для разной функциональности&lt;br /&gt;2) Стараться не давать пользователю функциональности, получить по тексту его шифрованный эквивалент. Если по спеке так надо, тогда добавляй какой нить RandomId поле в шифрованный контент.&lt;br /&gt;3) Осторожней с печенюшками, особенно с такими критическими как аутеканционными&lt;br /&gt;&lt;br /&gt;Что такая уязвимость существует - это минус, что мы о ней знаем - это плюс.&lt;br /&gt;&lt;br /&gt;Ссылочная информация:&lt;br /&gt;http://www.cacr.math.uwaterloo.ca/hac/about/chap13.pdf&lt;br /&gt;http://blogs.msdn.com/ace_team/archive/2008/11/29/vulnerabilities-in-web-applications-due-to-improper-use-of-crypto-part-2.aspx&lt;br /&gt;&lt;br /&gt;ЙА - karlito</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/8937701214683715224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/8937701214683715224' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/8937701214683715224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/8937701214683715224'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2008/12/aspnet.html' title='Потенциальная уязвимость в ASP.NEt приложении из-за неправильного управления ключами шифрования'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7654350238437550554.post-4064207286807745733</id><published>2008-12-15T00:13:00.001+02:00</published><updated>2008-12-15T00:20:20.965+02:00</updated><title type='text'>Seadragon эта штука называется</title><content type='html'>С этой штукой впервые встретился на отто, когда одежду с женой заказывали. Вот здесь можете посмотреть &lt;a href=&quot;http://www.otto.de/is-bin/INTERSHOP.enfinity/WFS/Otto-OttoDe-Site/de_DE/-/EUR/OV_DisplayProductInformation-SuperZoomColors;sid=tW8qEUxaLXYjEwUfMVZUeCBQvkrHhiybeJHABCPFkS9le1WdINkz1tnskS9lezHQy9l6AbB6?ProductID=vWR_AAAB260AAAEdvFhNPP7n&amp;usePictureSlides=&amp;ThumbID=0&quot;&gt;otto.de&lt;/a&gt;. Потому увидел эту штуку в Silverlight. Вот &lt;a href=&quot;http://samples.msdn.microsoft.com/Silverlight/silverlight_next/Imaging/DeepZoomFullSample/ClientBin/TestPage.html&quot;&gt;здесь&lt;/a&gt; пример. А сегодня ещё нашёл и на Ajax-е такую штуку &lt;a href=&quot;http://livelabs.com/seadragon-ajax/&quot;&gt;здесь&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;На PIQ-е такую штуку можно было бы заюзать в матрице.&lt;br /&gt;&lt;br /&gt;ЙА.</content><link rel='replies' type='application/atom+xml' href='http://sam-sol.blogspot.com/feeds/4064207286807745733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/7654350238437550554/4064207286807745733' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/4064207286807745733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7654350238437550554/posts/default/4064207286807745733'/><link rel='alternate' type='text/html' href='http://sam-sol.blogspot.com/2008/12/seadragon.html' title='Seadragon эта штука называется'/><author><name>Денис Колошко</name><uri>http://www.blogger.com/profile/14904494987684475298</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh2ivCY_sN3b-lwOVlL7YJ3Dx9dPuGc43SvRiwG5XCKiQ8FzfNl1w0RHSNgtuQfFjGUMDwvVLwYk0fImh71_QLR3bBb5_voJmVFwIS7uh1Fdplvq40EESd8OyO5WLnI5Q/s1600/*'/></author><thr:total>2</thr:total></entry></feed>