tag:blogger.com,1999:blog-20205677551186009462024-03-05T21:36:29.632+03:00Заметки, зарисовки, наблюдения, размышления...Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.comBlogger73125tag:blogger.com,1999:blog-2020567755118600946.post-16996589579709992072017-07-31T09:55:00.001+03:002017-07-31T09:55:42.488+03:00Ldum Dare, gamedev на коленке или как оно вообще<div dir="ltr" style="text-align: left;" trbidi="on">
Итак, 29 июля в 4 утра по Москве начался джем. Как обычно два варианта участия - Compo и Jam. В рамках Jam разрешается работать командой, на все дается 72 часа, можно использовать контент, на который есть права. В Compo все веселей - 48 часов, один человек, контент должен быть создан самостоятельно.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO5eqSjJDglCxSS_H3yxO-nUycLqx7p7TN9AH5pYNMs7j0VSY-og4nad6wBgb8IRByPzYBJL8CwPnqnbhJZ20EEKYcgdh_NyG-dixLDMonFdF9evfFuBcsFi9xPKJlo7bgiaCaXtCIfdg-/s1600/5a29.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="559" data-original-width="893" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO5eqSjJDglCxSS_H3yxO-nUycLqx7p7TN9AH5pYNMs7j0VSY-og4nad6wBgb8IRByPzYBJL8CwPnqnbhJZ20EEKYcgdh_NyG-dixLDMonFdF9evfFuBcsFi9xPKJlo7bgiaCaXtCIfdg-/s640/5a29.png" width="640" /></a></div>
<a name='more'></a><br />
<br />
Я участвую второй раз, и второй раз в Compo. В прошлый раз я что-то быстро перегорел и за выданные 48 часов поработал от силы 12-16. За это время был найден какой-никакой графический стиль, сделан прототип на основе физического движка Unity( до этого не использовал физические связи объектов, помимо учебных курсов), пару часов было потрачено на попытку написать правильную мелодию, но так и не смог добиться подходящего звука. При создании стартового экрана использовал реальные префабы, и как следствие - развалил игровую физику, о чем узнал позже...<br />
<br />
Иногда возникает вопрос - зачем участвовать в джемах. Для 48-72 часовых джемах ответ прост - получить прототип, на который ты получишь фидбэк за столь малый промежуток от рождения идеи до реализации - это непередаваемое удовольствие! Ведь игра появляется действительно на глазах. Еще час назад у тебя ничего не было, а уже квадратик прыгает по сцене и стреляет кружочками в треугольники. А через час - это уже статичные персонажи.<br />
<br />
Жаль, что в субботу пришлось устроить другой джем - "поработай 12 часов", поэтому на LudumDare 39 оставалось всего 15 часов, но это были очень насыщенные 15 часов. Как обычно, главное - это идея. А она, в целом простая - есть база, ее сторож должен следить за зарядом 4 пушек, которые отбиваются от чего-то, пусть это будут космические розовые пони. Для работы пушек нужен плутоний, который валяется на базе, но сама база заражена космическими радиактивными слизнями. В целом безобидные создания, которые, в силу нехватки времени, обрели способность к левитации :), но если их убить, то из них падает тот самый плутоний. Но вот печаль - база большая, пушки быстро разряжаются, а сторож может перенести ограниченный запас энергии. Вот и придется игроку бегать туда-сюда, чтобы заполнить все орудия на максимум. Даже не знаю - реально ли это в реализации :)<br />
<br />
До LD39 я все делал практически вручную. На FWJ я сразу же столкнулся с тем, что надо оптимизировать ручную работу и не тратить драгоценное время на графику на сцене. В ход идет генерация по предустановленным шаблонам и использование различных сторонних редакторов. В этот раз я применял Tiled - очень хороший редактор 2d миров. По весне я хотел написать свой редактор, но во время остановился и погуглил :)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9NX_gqEkp1CWljTGAzOnSijPr85_xfCPO5uZDoemokP6kUBm0j3pqtgqxHx7AkNT77brve1ZidtqzBVwM-PBNK_Rz4g8-KLDNAhTFXJKkk-KhUcbLkHjAAPlKz4_m9sT1u5WbfmKawybP/s1600/3107.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="867" data-original-width="1600" height="345" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9NX_gqEkp1CWljTGAzOnSijPr85_xfCPO5uZDoemokP6kUBm0j3pqtgqxHx7AkNT77brve1ZidtqzBVwM-PBNK_Rz4g8-KLDNAhTFXJKkk-KhUcbLkHjAAPlKz4_m9sT1u5WbfmKawybP/s640/3107.png" width="640" /></a></div>
<br />
Tiled умеет выделять области в том числе и по образцу, заливать, перемещать, рисовать по тайлово. Редактор 2d карт без слоев - бесполезен. В Tiled со слоями очень просто и удобно работать. Учитывая, что потом применяется Tiled2Unity, то все становится совсем просто. Сразу разбивается мир на фон, твердые предметы, активные элементы(лестницы).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFkCxAJiExv_5tIuWBnAXr1gF3fTOAR1DTylM8YDtQhgt3iU6D0ek-I6dfoNF3D9fnkQlwvwYbAxsIXVGDHTeEAT_w_IzSOyJaTuVBTcob-GxfJye5SVsVzLpsLJKUPp-46DuZ9azCGu_-/s1600/3107.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="361" data-original-width="362" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFkCxAJiExv_5tIuWBnAXr1gF3fTOAR1DTylM8YDtQhgt3iU6D0ek-I6dfoNF3D9fnkQlwvwYbAxsIXVGDHTeEAT_w_IzSOyJaTuVBTcob-GxfJye5SVsVzLpsLJKUPp-46DuZ9azCGu_-/s320/3107.png" width="320" /></a></div>
<br />
Tiled2Unity - это просто находка! Может быть визуально он и неказист, но это же утилита, от нее не требуется UI, главное требование - перенеси в Юнити то, что я нарисовал, с чем она замечательно справляется, благодаря Большой Кнопке:)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9l2Sdnq5rYUF1o4llPQEUsB8B-2qUOnOYMpQuI5bDDo92d5IazkwXR5i1oXQ_Q6fNOLWcJmDCZixt2uAmuUru3IjCA9DZryBls71fZ2bXYIyFuqfZhNUQ8DnUzDmrq_z1dpEd3rW3kfhw/s1600/3107.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="520" data-original-width="840" height="247" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9l2Sdnq5rYUF1o4llPQEUsB8B-2qUOnOYMpQuI5bDDo92d5IazkwXR5i1oXQ_Q6fNOLWcJmDCZixt2uAmuUru3IjCA9DZryBls71fZ2bXYIyFuqfZhNUQ8DnUzDmrq_z1dpEd3rW3kfhw/s400/3107.png" width="400" /></a></div>
<br />
Далее в Юнити подгружаются префабы, причем Tiled поддерживает параметры тайлов, в том числе коллайдеры, а Tiled2Uniti распознает базовый набор свойств - слой, триггер, коллайдеры и создает полигональные коллайдеры с Rigidbody2d, чем упрощает разработку.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0tGknX1aNJbxrZeMmV-K8udWGSdPP6YkNOyud7ceyDDI65VtCChOtgPlChfA-7i36r9O3UnuQuMpUJQl9gipLkcqT80uudxQQqEgddmeh98ksAcgad4uw1QrkRgRUQmtTa595YySVe4Mn/s1600/3107.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="867" data-original-width="1600" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0tGknX1aNJbxrZeMmV-K8udWGSdPP6YkNOyud7ceyDDI65VtCChOtgPlChfA-7i36r9O3UnuQuMpUJQl9gipLkcqT80uudxQQqEgddmeh98ksAcgad4uw1QrkRgRUQmtTa595YySVe4Mn/s640/3107.png" width="640" /></a></div>
<br />
Первые часа три ушло на рисование и построение уровня, Это очень увлекательное занятие, и здесь, главное, контролировать время, т.к. можно увлечься, и его не хватит на кодинг и отладку. Поэтому от анимаций я решил отказаться - на это уходит много времени. Так же я отказался от звука. Анимирован только космический слизень, но не очень хорошо. Видимо надо побольше времени уделить анимациям, хотя бы уделить время анимациям в будущем :)<br />
<br />
Позже, когда прикручивал стрельбу, выяснил интересную особенность - пули почему-то не реагировали на импортированный мир - со слизнями и игроком - отлично контактировали, но пролетали сквозь стены и уходили в бесконечность. За 20 минут простого решения, чтобы работало как надо, не нашлось, поэтому пулям добавлено время жизни, чтобы они не летали бесконечно, тратя ресурсы CPU.<br />
<br />
Кодинг, тут все совсем плохо. С утра смотреть на свой код страшно :) Но он работает. Вообще джемы отлично показывают как появляется говнокод! Вот, к примеру, кусок, который не попал в версию для джема(в первом часу ночи уже было лениво), но если бы попал, то выглядел именно так:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqBlvPz1g8uECPAbPwAhul8j3q0Frz6kT5IQm_lzoR7_-7cTZ7igwemFua6uXc8BnY15gKxerfnMebNWQGQWfNHpzIwc-ZWrLmELxk_x84TPw2-8g4QZPibm_RQmMcMstfsWsvYAiu1f7T/s1600/3107.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="671" data-original-width="710" height="604" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqBlvPz1g8uECPAbPwAhul8j3q0Frz6kT5IQm_lzoR7_-7cTZ7igwemFua6uXc8BnY15gKxerfnMebNWQGQWfNHpzIwc-ZWrLmELxk_x84TPw2-8g4QZPibm_RQmMcMstfsWsvYAiu1f7T/s640/3107.png" width="640" /></a></div>
<br />
Любой, кто попробует так работать поймет, зачем и почему нужен рефакторинг после реализации первой версии - изначально ты делаешь "чтобы заработало то, не знаю что", и только через определенный промежуток времени, когда это "что-то" становится понятным, ты знаешь как это надо переделать, чтобы в дальнейшем код был красивым и читаемым, легко поддерживаемым для развития.<br />
<br />
Итоги по джему:<br />
Считаю, что получился очень неплохой прототип, который мне кажется довольно перспективным. Почему-то хочется отказаться от статичной комнаты со слизнями, и заменить ее на генерируемую в духе RoguaLegacy. Добавить десяток существ(нейтральных носителей энергии и агрессивных воришек), шипы или пилы, отладить физику персонажа, добавить его прокачку(увеличение объема рюкзака, атака). Посмотрим, что скажут участники LD.<br />
А в целом очень рад, что все же заставил себя и стал одним из 899 участников Compo, которые зарелизились в срок.<br />
<a href="https://drive.google.com/file/d/0B8lnfJ6cvC7bSjNGY0JJTTN4MlE/view" target="_blank">Windows версия</a><br />
<a href="https://drag0mir.itch.io/the-last-frontier" target="_blank">Web версия</a><br />
<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-82932337263231514392016-06-05T15:46:00.001+03:002016-06-06T18:15:36.159+03:00First Weekend Jam #2<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Последнее время все чаще в информационный поток попадались посты о GameDev'е. Ну собственно я и не избегаю этого потока. Он манит и притягивает меня уже давно. Пару недель назад родилась идея одной игры. Но процесс дам идет медленно и мучительно, т.к. я не художник, да и тема очень объемная. Чтобы как-то продвинуться в направлении разработки игр, я решил поучаствовать в каком-нибудь конкурсе или джеме. Наткнулся на gamedev.ru на тему <a href="http://www.gamedev.ru/projects/forum/?id=212541">First Weekend Jam</a>, который должен был состояться через одни выходные. Ну что ж, всему свое время, а значит надо поучаствовать!<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEbZOvHeav8x-X42IUC2Iy9O7wC4P4H9f3tHUy-go77SoyUoCagc1oRfHOrxYgl7aODevvKqfQE7bWRa_kco2B394NjpR5MVjrAy7LGhKA_83kHFt5T9ZNSJFW0ZRZAsbDTHcuWe6kwL70/s1600/game-e-1000x600.png"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEbZOvHeav8x-X42IUC2Iy9O7wC4P4H9f3tHUy-go77SoyUoCagc1oRfHOrxYgl7aODevvKqfQE7bWRa_kco2B394NjpR5MVjrAy7LGhKA_83kHFt5T9ZNSJFW0ZRZAsbDTHcuWe6kwL70/s640/game-e-1000x600.png" /></a></div>
<br />
<br />
<a name='more'></a><br />
Окончательно решение об участии я решил оставить на вечер пятницы, когда будет объявлена тема. Но заранее обдумал - что и как можно сделать по каждой из обозначенных тем:<br />
<br />
<ul style="text-align: left;">
<li>Гравитация</li>
<li>Эволюция</li>
<li>Искусство - это взрыв</li>
<li>Цвет имеет значение</li>
<li>Главное, не трогай ...!</li>
<li>You can't see me!</li>
<li>Всего 3 заряда</li>
<li>Прыжок веры</li>
</ul>
<br />
Итак. 21:00. Тема - "Цвет имеет значение". Открываю Unity3d. Создаю чисты проект. На эту тему у меня уже давно была идея - модель эмоционального взаимодействия людей, доведенная до максимальной минималистичности и абстрактности! Шарики разного живут в сером мире. Общаясь, они делятся своими цветами. Конечно то, что было задумано изначально, и то что вышло - два совершенно разных мира, но идея есть, шлифовать будем по ходу.<br />
<br />
<br />
К 12 часам ночи по сцене бегал управляемый игроком шарик, который мог взаимодействовать с другими шарами, получая от них их цвет. От сложной системы передача цвета(когда в зависимости от преобладающего цвета шарик может терять его при взаимодействии, а так же о постепенном уменьшении колорной компоненты) пришлось отказаться. Точнее не от всего был именно отказ. Про что-то я вспоминал уже в воскресение. Вот они минусы разработки без спецификаций - на последних этапах всплывают потребности, которые уже сложно внедрить, т.к. существующие механизмы в какой-то степени отлажены.<br />
<br />
<br />
Вся суббота ушла на построение игрового мира. С утра нарисовал карту, которую хотел бы получить. Большая такая карта вышла, минут на 30 игры. С разными сюжетами для разных цветов. После чего приступил к реализации. Первым делом необходимо было сделать общий механизм, позволяющий взаимодействовать разным объектам, с разными эффектами. Т.к. идея игры может быть непонятна, то я решил использовать текстовое поле, которое будет содержать актуальный на текущий момент текст-подсказку. Так вышли первые две комнаты, в которых происходит "обучение" игровой механике.<br />
<br />
<br />
Все взаимодействие между шариками, пирамидами, кубами и дверьми было построение через стандартную систему сообщений. Можно было бы отказаться и от нее, т.к. 99 % сообщений - это Action(string message), где message - это строка формата <Действие> [Параметр1] [Параметр2]<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnuLsHOZAJ1LZH8biGrFLBe-2T63Qf4LbA2AO2EMqami_OwnpJuZqazDHO2gJMgAv9XjoK7uvrq4rf-dvvpkCLRfWNhRve97hv4FIVaHxO6Z4w3k5kau4zx41AlZTiLYK9K94FbUioUkSI/s1600/00001.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="348" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnuLsHOZAJ1LZH8biGrFLBe-2T63Qf4LbA2AO2EMqami_OwnpJuZqazDHO2gJMgAv9XjoK7uvrq4rf-dvvpkCLRfWNhRve97hv4FIVaHxO6Z4w3k5kau4zx41AlZTiLYK9K94FbUioUkSI/s640/00001.png" width="640" /></a></div>
<br />
<br />
Все это в целом работает не сложно. Дизайн уровня выглядел на тот момент удобным - всего лишь надо задать параметры скрипту из GUI. Все так было, пока я делал вторую обучающую комнату. Когда поведение пирамиды и цилиндра было готово, то встал вопрос о дальнейшем мире. Он состоял из 11 дверей, а значит надо было связать вместе более 30 объектов. Вот здесь я стал понимать всю сложность в отладке и проработке уровня. Хотя это была довольно простая, по сравнению с тем, что задумывалась, комната. <br />
<br />
На какое-то время я решил отложить эту задачу, и заняться мелочами, которые дают ощущение полноценной игры, но при этом не требуют решения сложных задач. На этапе пользовательского тестирования были выявлены проблемы - смена текстовых сообщений в нижней части экрана остается незамеченным пользователем, а значит необходимо добавить какой-то эффект. Так игра стала звучать. Всякий раз, когда приходит сообщение - воспроизводится звук. Буквально 10 кликов мыши и пара строк кода улучшили юзабили в разы. <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih6P-6UJDg_FaSQBWDmI5GdrgB67xLYBBySZN0AI3aies_3QYA6upOysO2OevmiHraPOmzwpJ7kL7jCFWZ3DuB2xwKxicvzXBu3OID3CCk2P762RGh4wIewC1X-b7J1BBN-oobWRH-pB34/s1600/00002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih6P-6UJDg_FaSQBWDmI5GdrgB67xLYBBySZN0AI3aies_3QYA6upOysO2OevmiHraPOmzwpJ7kL7jCFWZ3DuB2xwKxicvzXBu3OID3CCk2P762RGh4wIewC1X-b7J1BBN-oobWRH-pB34/s640/00002.png" width="640" /></a></div>
<br />
Следующий момент - игра не может начинать сразу. Так появился экран с приветствием, кнопка "Старт", а так же в самой игровой сцене кнопка "выход". Так же потратив немного времени на стоках - нашел хороший трек, который с одной стороны не надоел бы игроку за время игры, а с другой - сделал бы игру менее скучной. На всякий случай сделал кнопку для выключения музыки. Вообще это правило хорошего тона, как и режим обучения, но про него можно забыть в рамках джема, а потом заставлять немногочисленных игроков слушать твой любимый трек.<br />
<br />
Уже вечером субботы я вернулся к дизайну уровня. Решил, что не стоит пытаться сделать невозможное - собрать и отладить большую карту, поэтому остановился на завершении последней комнаты с 30 вершинным графом. Нарисовал его на бумаге и стал воплощать. Не доведя это занятие до конца - ушел спать, решил, что с утра будет легче. Все это время руки чесались переписать уже существующий код, вынести настройки в конфиг/xml, чтобы не кликать по 30 объектам, сверяя команды, которые они содержат в поисках проблемы. Конфиг был бы нагляднее - все в одном месте, не надо держать в голове. Но уже было поздно что-то менять.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyIzHG5lma-ToVx9Rg3Hvzbs6KOUMSlrMBeNGkBKqJvbPLxaP5Qqu9_xsOsa2oC5OzIcD2-P9OXwJjxhDgET-wWoCAIQthWYhEA8IqqCloaRFyQIjh8HEd2eJA0_H1Bk6y2bKnfVUoSE8k/s1600/7IZuV_dlwNA.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyIzHG5lma-ToVx9Rg3Hvzbs6KOUMSlrMBeNGkBKqJvbPLxaP5Qqu9_xsOsa2oC5OzIcD2-P9OXwJjxhDgET-wWoCAIQthWYhEA8IqqCloaRFyQIjh8HEd2eJA0_H1Bk6y2bKnfVUoSE8k/s640/7IZuV_dlwNA.jpg" width="640" /></a></div>
<br />
В воскресение навел немного лоска, попытался привести в порядок тексты, чтобы они соответствовали действительности. Для этого заснял на видео процесс игры. А потом просматривая его, ставил на паузу и исправлял то, что мне не нравилось. Очень удобный способ, когда нет необходимости проходить 10 раз одно и тоже, чтобы проверить работу последних элементов на уровне. После чего решил, что хватит, и либо я сейчас отправлю игру, либо начну ее переделывать.<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRj68ahf5Fun6i75NiFbW6LeYN9f-23aJIR5k9UwjQhbRbWNF3DPx2HCTBwJIEexQHzWZMBscwvZMhz2E5O0pP_XHt-zcVq7aevtUchrtRU6cxr5-iTBxLwSUnRN6-eS_qS9MUkvBKfRi6/s1600/FJXV8TB_MGs.jpg"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRj68ahf5Fun6i75NiFbW6LeYN9f-23aJIR5k9UwjQhbRbWNF3DPx2HCTBwJIEexQHzWZMBscwvZMhz2E5O0pP_XHt-zcVq7aevtUchrtRU6cxr5-iTBxLwSUnRN6-eS_qS9MUkvBKfRi6/s640/FJXV8TB_MGs.jpg" /></a></div>
<br />
Одна из целей джема - уменьшение прокрастинации участников. Сколько раз я откладывал этот момент получения ценного опыта от создания релизного продукта. За 20 с небольшим часов разработки мои знания о геймдеве выросли. И вот, что я узнал:<br />
<br />
<ul style="text-align: left;">
<li>Если игра предполагает какие-либо механики взаимодействия объектов, при этом самих объектов и вариаций взаимодействия будет много, то необходим удобный инструмент или набор инструментов для облегчения этого процесса. Какой-нибудь редактор уровней+кастомизация редактора Unity могут в разы упростить процесс</li>
<li>Спецификация важна даже в простейших играх. То, что зафиксированно на бумаге, должно сдерживать от траты времени на то, что на ней не написано. В начале я зафиксировал свои задачи, но на выходе получилась другая игра. Что ж - надо лучше себя контролировать.</li>
<li>Дизайн уровней нельзя недооценивать - это сложная и очень объемная работа, на которую может не хватить сил, а без нее - игра не будет интересной.</li>
<li>Компонентная парадигма Unity действительно удобна и полезна. Раньше я пытался с ней бороться, выстраивая иерархии объектов, наследование и композиция, которые боролись с компонентами. Все же систему надо использовать, а не бороться с ней.</li>
<li>Очевидный факт - архитектурные решения, принятые на первых этапах разработки, оказываются на столь существенны, что их переделка может равняться новой разработке. Удивительно, что эта основа основ архитектуры действует даже в таких маленьких проектах с 34 килобайтами прикладного кода.</li>
</ul>
<br />
Ну и сама игра, если вдруг кому-то будет интересно:<br />
<a href="https://drive.google.com/open?id=0B8lnfJ6cvC7bVlVqVFVDbVY4bTQ">Эмоционариум на Google Drive</a><br /><br />Upd:<br />
Итого - второе из трех мест:)<br />
Отзыв судьи:<br />
<blockquote class="tr_bq">
<blockquote class="tr_bq">
Забавная головоломка. Цвет как ресурс - хорошая идея. Управление резковато - в двери вписываться было тяжело. Так же немного чёрствые уровни - открыл 1 дверь, остальные открываются по цепочке. Так же устаёшь стучаться об шары для получения цвета. надо было высасывание так же сделать по пробелу. </blockquote>
<blockquote class="tr_bq">
В игре по сути 3 уровня и косячное сообщение о победе) </blockquote>
<blockquote class="tr_bq">
Есть музыка и звуки. </blockquote>
<blockquote class="tr_bq">
Есть кнопки выключения музыки и выхода из игры. </blockquote>
<blockquote class="tr_bq">
Есть обучение. </blockquote>
<blockquote class="tr_bq">
Итог: игра понравилась, но стоит ли делать из этого полноценную игру? если напридумывать много уровней, причём более интересных с логической точки зрения, и ещё немного механики, то можно.</blockquote>
</blockquote>
<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-67431389777647744292016-05-22T13:05:00.002+03:002016-05-22T13:05:42.825+03:00Движение ради движения<div dir="ltr" style="text-align: left;" trbidi="on">
В продолжение мысли предыдущего поста. Остановился. Огляделся. Понял, что GameDev все еще манит меня. Родилась интересная идея игровой механики. Велосипед уже вторую неделю стоит не тронутым, зато у меня есть 20 станиц описания, и даже небольшой прототип, демонстрирующий базовую идею. Пока что все захардкожено, игроку даже ничего делать не надо - весь процесс прибит гвоздями в коде и префабах. Думаю, что для 4 часов вспоминания юнити результат неплохой.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiefBAfyXzyiHsDDRoYAn1FnYIVUZ6xuYYnB3u6gWH6HBU8QofFIZWdT8Bnc35JHlzdAy97NwzC6JCRcvbIfTGcK2c_1BKvSx3eR3eJlwt6sLhVs1jXGb2r7EsETu_YEH15lNlJUcARi_NZ/s1600/191.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiefBAfyXzyiHsDDRoYAn1FnYIVUZ6xuYYnB3u6gWH6HBU8QofFIZWdT8Bnc35JHlzdAy97NwzC6JCRcvbIfTGcK2c_1BKvSx3eR3eJlwt6sLhVs1jXGb2r7EsETu_YEH15lNlJUcARi_NZ/s640/191.png" width="640" /></a></div>
<br />
<br />
<a name='more'></a><br />
<br />
Безумие на данной картинке - это всего лишь болванки юнитов, которые перемещаются из точка А в точку Б. Но есть объект В, который может привлечь их внимание. Если у него это удается, то они меняют свой путь.<br />
<br />
Все бы хорошо, но вот в районе объекта В обитает красная болванка, которая пугает белые болванки. Пугает так, что они забывают, что же их привлекло и, сломя ноги, бегут к своей изначальной цели.<br />
<br />
Если кому-то интересно, то ниже вся эта вакханалия снята на видео. Жаль, что встроенное видео не позволяет снимать процесс с нормальным fps, хотя в целом это пока и не требуется.<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe width="320" height="266" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/zRwcItL6uwI/0.jpg" src="https://www.youtube.com/embed/zRwcItL6uwI?feature=player_embedded" frameborder="0" allowfullscreen></iframe></div>
</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-63878990570177626772016-05-20T09:24:00.002+03:002016-05-20T11:57:58.820+03:00....<div dir="ltr" style="text-align: left;" trbidi="on">
Свобода выбора , право на счастье, желание быть собой.. ты можешь все! В наше время выбор симуляторов счастья, достижений, удовольствия огромен. Тысячи каучеров(именно каучер - все же коучи нужны обществу) рассказывают сотням тысяч - что все, что они делали до этого было неверно. И теперь он, о святится имя его, расскажет нам как же достичь эти мифические категории.<br />
<br />
Но оставим сию тему. В сущности, все в разы сложнее. Ты находишь частичку себя в каком-то увлечении. Ты нашел ее сам или с чьей-то помощью, но увлекаться или нет - твой выбор, твоя свобода. Постепенно это увлечение поглощает тебя все больше. Или исчезает из твоей жизни.<br />
<br />
В какой-то момент происходит подмена интересов, вместо той частички в твоей голове селятся чужие цели, чужие интересы. Ты думаешь, что это все еще твоя свобода выбора, твое счастье, но ты идешь уже не своим путем. Именно это ты ощущаешь в момент, когда понимаешь, что увлечение превратилось в рутину. Для получения уже почти забытого ощущения счастья тебе надо увеличивать дозу, но эффект каждый раз уменьшается.<br />
<br />
Да. Наша жизнь коротка, но это не спринт, это марафон, это бревет, это поход. Если ощущаешь, что где-то пропустил поворот, то не иди до упора. Остановись, вернись, и почувствуй - куда тебе надо. </div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-78108218065612068012016-03-18T23:35:00.002+03:002016-03-18T23:35:35.370+03:00Путешествия, как раскрытие дружбы<div dir="ltr" style="text-align: left;" trbidi="on">
Очень интересно, что не в одном из HowTo по велотуризму нет такой простой истины, что надо проехать с человеком, с которым собраться в путешествие хотя бы половину от запланированного. Мы с <a href="http://evgeniyzebolov.com/" target="_blank">Евеном</a> лучшие друзья уже больше 10 лет, но даже такой срок не помешал нам получать много казусов, потому что, как не странно, мы стали пересекаться в вопросах, в которых раньше не пересекались, что стало вызывать явные и скрытые конфликты.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsMRtCFG6Z1UUGIAoxu9Qz0misyoYGqrcDDtwW8_igjercUEA3EmK6u8-ar8iShqXvJzfmIEAbnK2J-1jKHjTbtT0NVwa9PXOUB14dtuHzSxOvr-cRdaAon6qTHajgLalMXdneJMeMviZD/s1600/IMG_5159.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsMRtCFG6Z1UUGIAoxu9Qz0misyoYGqrcDDtwW8_igjercUEA3EmK6u8-ar8iShqXvJzfmIEAbnK2J-1jKHjTbtT0NVwa9PXOUB14dtuHzSxOvr-cRdaAon6qTHajgLalMXdneJMeMviZD/s640/IMG_5159.JPG" width="640" /></a></div>
<br />
<br />
<a name='more'></a>Так сложилось, что вся идея поездки в Ульяновск принадлежала мне. Я занимался изучением карт в поисках походящих мест стоянок, которые бы вкладывались в 80-120 километров дневного пробега, я изучал варианты, и лишь отправлял на согласование Евгену. По сути Он стал человеком, который поддержал меня участием в этом самом безумном приключении на текущий момент. Вторым, но не по значимости, стала Вероника, которая отпустила меня в отпуск на три недели.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbJb4ShBMGcJglgydE5jU3mWFIYx2GrsjtBzPg-qkewnBSeAuBRKWVga2rgX8E481-0X2oKC1D0HBm2BGv5dg5lodsx1ajUZuSVSlo9Fqr7pwJRGnQsFEyP4gHMFRY2StBQ6_PkuAyQnMg/s1600/IMG_5214.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbJb4ShBMGcJglgydE5jU3mWFIYx2GrsjtBzPg-qkewnBSeAuBRKWVga2rgX8E481-0X2oKC1D0HBm2BGv5dg5lodsx1ajUZuSVSlo9Fqr7pwJRGnQsFEyP4gHMFRY2StBQ6_PkuAyQnMg/s640/IMG_5214.JPG" width="640" /></a></div>
<br />
<br />
Дружба в горах испытывалась у Высоцкого, но она испытывается в любом походе. Готовил ты вчера ужин, а сегодня хочешь отдохнуть. Свернули там где захотел, то теперь принимай на себя последствия. За каждое твое решение отвечаете вдвоем. Если нет явного лидера, то появляются попытки построить демократию, и тогда, при наличии всего двух голосов, все становится особо сложно!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB_esaDl5MPQTHoLFIFpNDZCWYTCRwDlBayhW5-aLAoYdeYUElw43iwJ2ZP_ziK5tyjE41NqH_lPtfGfqCfONAEPsu9xxW6mjoRzPchwjbRmE8VjJ5szxp933Cixmnl0mm2iysTgQXby6i/s1600/IMG_5082.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiB_esaDl5MPQTHoLFIFpNDZCWYTCRwDlBayhW5-aLAoYdeYUElw43iwJ2ZP_ziK5tyjE41NqH_lPtfGfqCfONAEPsu9xxW6mjoRzPchwjbRmE8VjJ5szxp933Cixmnl0mm2iysTgQXby6i/s640/IMG_5082.JPG" width="640" /></a></div>
<br />
<br />
Забавно, по возвращении мы с Евгеном особо не разговаривали недели полторы. У нас бывали периоды и по несколько месяцев, но все же тогда мы не снимали совместно квартиру.<br />
<br />
Так что же главное в походе с друзьями? Это не забывать, что вы в первую очередь друзья. Если было тяжело, что-то пошло не по плану, то с тобой тот самый друг, с которым можно выпить коньяка в каком-то овраге в Мордовии, или запивать вискарем сжаренное до углей мясо в Ульяновске.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKnHpzZty4QXfet6mA5ugSu-gRTyYPt0GmxGhrC-NTfELMZF3MHYWghkuAjS7KOEQ-A861lrK6h9pb1M71iJKa-vcpPKexWia1XyxvsDvMjsqTsLrV8KGAWybT6JLj5u6tSm0jUBWyLbRs/s1600/Doroga2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKnHpzZty4QXfet6mA5ugSu-gRTyYPt0GmxGhrC-NTfELMZF3MHYWghkuAjS7KOEQ-A861lrK6h9pb1M71iJKa-vcpPKexWia1XyxvsDvMjsqTsLrV8KGAWybT6JLj5u6tSm0jUBWyLbRs/s640/Doroga2.jpg" width="640" /></a></div>
<br />
<br />
А самое главное - никогда не стоит забывать, что Друзья - они вседа будут такими. И даже если у тебя что, то пошло не так, и один друг помочь не может, всегда есть есть второй друг, который приедет на помощь, а первый тебя в этом поддержит! И, чтобы не произошло, это делает вашу дружбу только крепче!</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-49093204141606422922016-01-31T01:23:00.001+03:002016-01-31T01:23:17.006+03:00Байк - это свобода!<div dir="ltr" style="text-align: left;" trbidi="on">
Данный пост написан сразу после посещения паба, где я пересекся с настоящими байкерами, т.е. я сейчас не трезв, поэтому могу быть немного резок и сумбурен :)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4fEQE5weK-v3fBCoaB5mby9rJ4kOToqpDN7m0Q6Ih1Q1UqCwdPU4oSy9LLL_meEgxEd2DHMMnVZJaDwg7B6vXf1Zy2KXAL3RJa8PbYP5fPkEjwkdilRRkppxK7i4DBGGt9dTgLkP1pgwE/s1600/592625-bright-blue-bike-suzuki.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4fEQE5weK-v3fBCoaB5mby9rJ4kOToqpDN7m0Q6Ih1Q1UqCwdPU4oSy9LLL_meEgxEd2DHMMnVZJaDwg7B6vXf1Zy2KXAL3RJa8PbYP5fPkEjwkdilRRkppxK7i4DBGGt9dTgLkP1pgwE/s640/592625-bright-blue-bike-suzuki.jpg" width="640" /></a></div>
<br />
<a name='more'></a>Чему радуются байкеры - это свободе! Но они зависимы от дорог. Кто видел байкера вне дороги? Байкеры радуются мощи своего двигателя....<br /><br />Но только велосипедисты могут их переплюнуть, потому что наша мощь - это мощь наших ног и духа. Серьезно, что может быть слаще того ощущения, когда ты разгоняешь свое тело и байк до 40-50-60 километров по дорог?<br />
<br />
Только мы можем быть абсолютно свободны, потому что даже на ТТ или шоссере мы можем свернуть там, где нельзя, поехать так, как нам хочется, наслаждаться своим путем так, как мы это видим!<br />
<br />
И да, алкоголь... байкеры могут сегодня упиться на очередном концерте, а завтра сесть за руль... выкрутить ручку и поехать.. в этом их, как бы плюс.. Но велосипедисты осознанно выпивают! Они понимают все последствия каждой рюмки водки или тумблера виски на свой организм, и понимают, на сколько это замедлит из результаты. Осознанность есть основной принцип высшей деятельности...</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-73662194871269629192016-01-10T12:18:00.001+03:002016-01-10T12:18:28.492+03:00Schwalbe Ice Spiker Pro evolution 29: Зима в полном разгаре!<div dir="ltr" style="text-align: left;" trbidi="on">
Количество километров на одометре после установки спайкеров перевалил за 200 км, включая в себя выезды как по снегу, так и в теплую погоду, а это значит, что пора поделиться впечатлениями об этой резине.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRtV6Ko-4qWtt3Kd1xbIdeDouSsa_K_66mhBCy-5Z7aZsW9ZNuG9gTUAUp4ieVsTO7MRB8EKicS62_pnYgMMnpZ2OcZgfk7UsQIBoc3AQhQzfjxrgikQ3nX2gg1sNXkRn5jOwbgkW0RwYd/s1600/IMAG0069.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRtV6Ko-4qWtt3Kd1xbIdeDouSsa_K_66mhBCy-5Z7aZsW9ZNuG9gTUAUp4ieVsTO7MRB8EKicS62_pnYgMMnpZ2OcZgfk7UsQIBoc3AQhQzfjxrgikQ3nX2gg1sNXkRn5jOwbgkW0RwYd/s640/IMAG0069.jpg" width="640" /></a></div>
<br />
<a name='more'></a>Первое - ехать на зимней шиповке по асфальту несомненно сложнее: с одной стороны шипы хуже держат, и могут проскальзывать, с другой - длинные поездки требуют больше энергии, а вопрос как сохранить питьевую воду в -10 за бортом остается открытым. Самое неподходящее покрытие для резины - тротуарная плитка.<br />
<br />
Второе - на суровых московских дорогах, на которых при -15 полно луж, а местами парковая зона радует грязью, такой протектор очень полезен - можно смело ехать по размокшему грунту, не беспокоясь о проскальзывании.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUuY04e_FGChcjajHoD3qxJpewB9FZZZ2XLX_M-lYiIWvgiyPpKknGD-1oSk3kNBtyKz2In5VnFzXiYQ2GHElViApi2PE242Hgc1bB76R3gan3zSoOoI58mjidBffu1EeKsWwG7bnR9yMt/s1600/IMAG0067.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="382" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUuY04e_FGChcjajHoD3qxJpewB9FZZZ2XLX_M-lYiIWvgiyPpKknGD-1oSk3kNBtyKz2In5VnFzXiYQ2GHElViApi2PE242Hgc1bB76R3gan3zSoOoI58mjidBffu1EeKsWwG7bnR9yMt/s640/IMAG0067.jpg" width="640" /></a></div>
<br />
<br />
Третье - как отмечалось неоднократно - шипы не панацея, и в снежной каше приходится не сладко. По пути на первый зимний велопарад были участки с 5 сантиметровой кашей, по которой удавалось ехать позорные 15 км/ч. Зато на лыжных трассах и утоптанном снегу ощущения от езды непередаваемые - полный контроль над происходящем, благодаря чему не возникает мыслей отказаться от контактов.<br />
<br />
Итого: эта резина - идеальное вложение средств, т.к. уверен, что ее хватит на три-четыре сезона. Самое страшное, что резина прямо зовет тебя выехать на пруд, чтобы показать - на сколько хорошо она держится на льду. </div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-69305046363945547262016-01-03T12:56:00.001+03:002016-01-03T12:56:26.301+03:002016 - year of ride<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: left;">
Что ж, вот на дворе уже 2016 од, а значит пора делать заявку, и приступать к ее реализации! В этом году я хочу многого, а именно:</div>
<div class="separator" style="clear: both; text-align: left;">
1. 100 километров меньше чем за три с половиной часа</div>
<div class="separator" style="clear: both; text-align: left;">
2. 10 тысяч километров за сезон</div>
<div class="separator" style="clear: both; text-align: left;">
3. Взять с достойным временем 200 и 300 километровые бреветы</div>
<div class="separator" style="clear: both; text-align: left;">
4. Попробовать силы в 400 километровом бревете</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
С такими заявками ясно одно - сезон начинается не апреле, и даже не в марте. Сезон начинается уже сейчас!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUXki2VLBHGI7bDSBcNkgFhOrtgCBxhusbHl6nBU1q6X8Q1vq3PHP-PdfcycKIUqAjMuZqLbE9G1uYGVmdWd5oidCWH-H85InEgHkJpylwzY1GUNsEE9awB3Az8pYfwhpj_Qhicn0fS1EN/s1600/21350001.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUXki2VLBHGI7bDSBcNkgFhOrtgCBxhusbHl6nBU1q6X8Q1vq3PHP-PdfcycKIUqAjMuZqLbE9G1uYGVmdWd5oidCWH-H85InEgHkJpylwzY1GUNsEE9awB3Az8pYfwhpj_Qhicn0fS1EN/s640/21350001.JPG" width="640" /></a></div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-70794011371699903132015-12-31T08:49:00.001+03:002015-12-31T17:49:38.010+03:00Чем запомнился уходящий год.<p dir="ltr">2015-ый был на удивление полон различных событий. Пока что это самые интересный из прошедших 26 лет. Спасибо всем тем, кто помогли стать этому году именно таким!</p>
<p dir="ltr">А теперь по порядку. 2015 начался с того, что я хотел сменить работу, но за пару недель я не нашёл ничего интересного и пришлось остаться. Но все же в ноябре звезды на небе и люди на земле стали в нужном расположении, и 30 ноября я закончил свой 4.5 летний путь в Р-стуле. Удивительно, как может отличаться работа.... Но про это я как-нибудь позже напишу, а пока я очень рад что нашёл более интересное перспективное место работы, где руководство понимает, что делает.</p>
<p dir="ltr">В 2015 году я суммарно проехал на велосипеде почти 6 тысяч километров. Это в два раза больше, чем в прошлом. В моей конюшне появился отличный шоссейный байк, а я заразился марафонским движением. Так же в этом году я открыл удивительный мир велотуризма, прокатившись как по подмосковья, так и по Брянской, Калужской, Владимирской, Нижегородской, Ульяновской областям и по Мордовии, Татарстана и Чувашии. Пока не могу вписать в планы на следующий год новые крупные походы, но малые точно будут. В 2016 я хочу взять зачёт за 200, 300 и 400 километровые бреветы!</p>
<p dir="ltr">Жизнь продолжает набирать обороты, с каждым днём становится интереснее и интереснее! И следующий год принесёт новые открытия, новые ощущения, новые эмоции!</p>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-61562827565943071042015-12-13T09:19:00.002+03:002015-12-13T09:19:30.789+03:00Манхэттен: Бурбон + Вермут <div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: left;">
Для подготовки к Новому году я устраиваю апробацию различных рецептов. В этот раз выбор пал на Манхэттен, коктейль родом аж из 19 века!</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9IgZ3UyB8-WjuBrPlcwGqMm84zrUorMl2b1qZ_PGwyd8KZfp4OonFJh8n_v-QkRUv1EWwnA5vjvjNNACM765YiBUjjITi3fM_08xj696HfSFx-c7kfxbJBKirm5xDfpQ1YBU4s4EtvN5E/s1600/IMG_6740.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9IgZ3UyB8-WjuBrPlcwGqMm84zrUorMl2b1qZ_PGwyd8KZfp4OonFJh8n_v-QkRUv1EWwnA5vjvjNNACM765YiBUjjITi3fM_08xj696HfSFx-c7kfxbJBKirm5xDfpQ1YBU4s4EtvN5E/s640/IMG_6740.JPG" width="480" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<a name='more'></a>Классический Манхэттен состоит из красного вермута и ржаного виски. Но коктейль - это творчество, поэтому всегда можно попробовать заменить ингредиенты. Так вместо ржаного виски берут бурбон, ром или даже коньяк, Я же решил заменить красный вермут на белый. Это лишило конктейль розового оттенка.<br />
<br />
Пропорции следующие:<br />
50 мл Виски<br />
25 мл Вермута<br />
3 капли Ангостура<br />
Апельсиновая цедра в качестве украшения<br />
<br />
Может из-за белого вермута, вместо красного коктейль мне не особо понравился, но тут как и во всем - на вкус и цвет.<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-36139546834615623022015-12-10T22:03:00.000+03:002015-12-10T22:05:56.171+03:00Отпуск на колесах. Осуществляя мечту детства.<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: left;">
Где-то в 2002 году я совершил свой первый "серьезный" велозаезд. Тогда мне было всего 13 лет, и со своим другом мы отправились "по грибы", по крайней мере, так звучала официальная версия для родителей. В тот день мы проехали больше 50 километров, сделав неплохой крюк по Злынковскому району, что на Юго-Западе Брянской области. Вот тогда у меня родилась идея - съездить к бабушке в Климовский район, т.к. до ее деревни было 40 километров, а значит, я мог доехать. Но я так и не решился осуществить это. Летом 2015 года, когда я поехал к родителям совсем нестандартным образом, у меня появился реализовать детскую мечту, посетив Климово.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYTGmPpP8N5k_o7-EuD_bJSPqicNeQeFHOtL22DBtWsZFQhHNIL9jlm0OxRKejoD2dGR_edy2ufp8C3tCj-e4A-7ydAihyFkcjb0GUZXdgPurnoxHMsAEh7SDklBnD3UKRWER1FWcdNLcz/s1600/169.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYTGmPpP8N5k_o7-EuD_bJSPqicNeQeFHOtL22DBtWsZFQhHNIL9jlm0OxRKejoD2dGR_edy2ufp8C3tCj-e4A-7ydAihyFkcjb0GUZXdgPurnoxHMsAEh7SDklBnD3UKRWER1FWcdNLcz/s640/169.jpg" width="640" /></a></div>
<br />
<a name='more'></a>Все началось с того, что у моей двоюродной сестры был День Рождения, и нас пригласили в гости. Муж сестры в этот день работал, поэтому стояла задача - поместить 4 взрослых и двух детей в одну машину. Задача не решаема, если бы у меня не было велосипеда! Поэтому мне поступило предложение - а не хочешь своим ходом добраться. От такого нельзя отказываться, и пришлось отложить посещение Гомеля на велосипеде на будущее.<br />
<div>
<br /></div>
<div>
11 июня в 10 утра я выехал из дома, в очередной раз испугав, своим видом, соседей. Первые 15 километров были знакомы, точнее они когда-то были знакомы - по этой дороге я не ездил больше 10 лет, за это время из хорошей проселочной дороги она превратилась в латаное полотно.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnpAwPQB_5CymQAhsLDkT7m2Sxsi6I3acn48uFE1V1ATZF1hK-tSAMbyJ4RREAaoN2-QiOFIqaF7i3fr_U-zkw0qtVlj2JbTKzK3o-6ZBlXY55jdbFnlojdhrPgGe3tNSpq86gGzABsoUz/s1600/vlcsnap-2015-12-10-20h59m50s228.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnpAwPQB_5CymQAhsLDkT7m2Sxsi6I3acn48uFE1V1ATZF1hK-tSAMbyJ4RREAaoN2-QiOFIqaF7i3fr_U-zkw0qtVlj2JbTKzK3o-6ZBlXY55jdbFnlojdhrPgGe3tNSpq86gGzABsoUz/s640/vlcsnap-2015-12-10-20h59m50s228.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Было интересно проехаться по дороге, по которой в детстве я регулярно ездил по грибы, на рыбалку или просто катался в сад за яблоками. Тогда я покорял ее на стареньком Орленке, и некоторые холмы вызывали сложности, затем родители купили мне новый взрослый Аист, это был один из первых Аистов с полусликами - модель, выпущенная годом раньше, комплектовалась менее накатистыми покрышками. Не удивительно, что с 30 передачами в запасе и контактными педалями, для меня эти горки не вызывали сложностей. Выехав за пределы Злынки, я взял крейсерную скорость порядка 27-28 км/ч и, наслаждаясь утренней прохладой, крутил педали.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZVc-cNaLyue-WWPClgO17CsdcuwRbdiMCIfp6HMtZ2VMPU7lcY6ug-s8buGTrCsJrTAzuBO0a_WURi85iQ-sichVaEslr6H5s8FTZrljqGuNd4YaeRUI5MTqVyyAZ-_jWRYAg3YPvqAun/s1600/vlcsnap-2015-12-10-21h00m39s231.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZVc-cNaLyue-WWPClgO17CsdcuwRbdiMCIfp6HMtZ2VMPU7lcY6ug-s8buGTrCsJrTAzuBO0a_WURi85iQ-sichVaEslr6H5s8FTZrljqGuNd4YaeRUI5MTqVyyAZ-_jWRYAg3YPvqAun/s640/vlcsnap-2015-12-10-21h00m39s231.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Накануне мы с отцом обсуждали маршрут, он меня убеждал в том, что все проселочные дороги давно уже заросли и мне лучше сделать крюк в 20 километров и проехать по нагруженной автомобильной дороге. Я же был уверен, что снимки Яндекса не врут, и старая дорога все еще жива. Спорный участок был порядка 6 километров по полю вдоль границы леса, и я был уверен, что в случае чего - проеду по полю. Так же уверенности в существовании этого пути мне добавляло то, что это был путь в Климово из отдаленного села Злынковского района, т.е. жителям этого и соседних сел ближе съездить в Климово, чем в Злынку, а значит дорога будет.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCUkpOsr6Bt-epjoDRZQHwkaog1tYuh5UmpjPPzXiv4xuZZ2BmgRb1pRl7bbt9ELgBQO_Nt_QiCZvtzSN0exhV5K5CbMwa5IW8_O3pw7pBqLDJm4SIL8ECIqPc_BVBx-foZH2Qv4XAs2vS/s1600/vlcsnap-2015-12-10-21h01m01s193.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCUkpOsr6Bt-epjoDRZQHwkaog1tYuh5UmpjPPzXiv4xuZZ2BmgRb1pRl7bbt9ELgBQO_Nt_QiCZvtzSN0exhV5K5CbMwa5IW8_O3pw7pBqLDJm4SIL8ECIqPc_BVBx-foZH2Qv4XAs2vS/s640/vlcsnap-2015-12-10-21h01m01s193.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Первые 15 километров пролетели незаметно. После Карпиловки дорога стала немного лучше. Попутных машин и до этого было не много, а теперь пропали даже встречные. Как это приятно ехать, не задумываясь про железные коробки на колесах. В Щербиничах я решил сделать паузу - размять ноги и уточнить маршрут, т.к. здесь крупные озера, а мне не хотелось устраивать сусанинг. Отдыхая на остановке, я вызвал интерес у детей, которых куда-то вез школьный автобус.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLIdiZLC6nJEWrg3Vk1fUihCRPCQtDGvZrowsMRX-xUONERXBrUwFDbASpX5bSrFCOL5Io_xNaFMugYW-ubD-v9gbC42pIzF3oecUsKwENIcuIHwjnn0PWSqxlh-56d8_cl2uI0lDWOhKr/s1600/vlcsnap-2015-12-10-21h01m36s43.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLIdiZLC6nJEWrg3Vk1fUihCRPCQtDGvZrowsMRX-xUONERXBrUwFDbASpX5bSrFCOL5Io_xNaFMugYW-ubD-v9gbC42pIzF3oecUsKwENIcuIHwjnn0PWSqxlh-56d8_cl2uI0lDWOhKr/s640/vlcsnap-2015-12-10-21h01m36s43.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Приближаясь к Рогову, я немного беспокоился по поводу существования той самой дороги, т.к. в этом случае пришлось бы разворачиваться и возвращаться обратно. В Рогове я встретил коллегу по велотранспорту. Вообще, велосипедисты крупных городов много смотрят на запад, и даже не догадываются о степени велосипедизации нашей страны. Что в Злынке, что в Климово в обычный день я встречал большее число велосипедистов( людей, использующих велосипед как транспортное средство), чем в той же Москве за такой же промежуток времени.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpdjRTpbCVpzK5Grts7-H2w2n9LDyAm0pRy65xAI4y8ykSdc67ZcQCdIRuPRfqMVsuUsRcrGsMbSkQSdilgwTkCxuOA6wPq89nGhwGgc8_DdO82i2UiNv7MwG_bSiVdoo_7aNzeSMsuTrX/s1600/vlcsnap-2015-12-10-21h01m48s158.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpdjRTpbCVpzK5Grts7-H2w2n9LDyAm0pRy65xAI4y8ykSdc67ZcQCdIRuPRfqMVsuUsRcrGsMbSkQSdilgwTkCxuOA6wPq89nGhwGgc8_DdO82i2UiNv7MwG_bSiVdoo_7aNzeSMsuTrX/s640/vlcsnap-2015-12-10-21h01m48s158.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Выехав к месту ожидаемого поворота, я немного замешкался, пытаясь сопоставить изображение на гармине с тем, что было на местности, в итоге передний полуслик проскользнул на кучке асфальтной крошки, и я очень эпично навернулся на ровном месте, перепугав пастуха и его небольшое стадо коров по соседству. Он подтвердил мою догадку, про целостность дороги, и подсказал, как на нее попасть. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPMcgEUR0gI9HbBR7-LfwcFiL_C8qIATcOC9qpDqSiIHsTUczG325wjiMryJbxAN1EISYy0q6-2dR2pgekBucVhqqD66DKO6mRSinkRiPXYJ6_KeQZpOTcI9Vm2hsCogVHkstmwmsvP5eW/s1600/vlcsnap-2015-12-10-21h02m13s151.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPMcgEUR0gI9HbBR7-LfwcFiL_C8qIATcOC9qpDqSiIHsTUczG325wjiMryJbxAN1EISYy0q6-2dR2pgekBucVhqqD66DKO6mRSinkRiPXYJ6_KeQZpOTcI9Vm2hsCogVHkstmwmsvP5eW/s640/vlcsnap-2015-12-10-21h02m13s151.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
За исключением пару песочных участков, в целом дорога вполне проезжабельна, большая ее часть идет по полям, причем параллельно идет две, а местами три колеи. Видимо одна для тракторов, а вторая для машин. Перед самой Воробьевкой я немного запутался, т.к. в голове по другому представлял себе дорогу, но заблудиться негде, и я спешно выехал на асфальтированную дорогу, по которой мне оставалось 10 километров до Климово. Которые пролетели значительно быстрее, чем по полю, в результате я выехал на кладбище, которое расположено у "черного" входа в Климово.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOSLL5xB39u5dV4akgz_DKufRdAf9h0birb8P1uiz-7SoLv10tPCkjmoeLoc0UFK7Ij0qBgCnGOArZhqkEgwoijIyFVipG0usV9xyBkLBG_wbfSFxJk3KW-ttHH3xbJjTrU79U4OLYNJfY/s1600/01280001.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOSLL5xB39u5dV4akgz_DKufRdAf9h0birb8P1uiz-7SoLv10tPCkjmoeLoc0UFK7Ij0qBgCnGOArZhqkEgwoijIyFVipG0usV9xyBkLBG_wbfSFxJk3KW-ttHH3xbJjTrU79U4OLYNJfY/s640/01280001.JPG" width="640" /></a></div>
<br />
Т.к. я выехал из дома с запасов в 20 минут, то в Климово я оказался почти на час раньше нужного времени. Поэтому я решил немного посмотреть на рабочий поселок, несмотря на то, что я в нем бывал много раз, я с трудом мог бы рассказать где что находится. Первым делом я поехал к "официальному" въезду, потом посетил центр, пересек озеро, думал было съездить в деревню, где раньше жила бабушка, но уже приближалось время встречи, поэтому поехал к дому тети. К этому моменту на одометре было 60 километров.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWS3AijMZtRo2mDV3FelrfE5b-a7FTj4ygkA88_PI112nGl2qF-icWalZ0_OXT3YgX_GQFjTjnXhMbXKQ-0GScNM13PjjfTP7bNH0nKgYyqGSs7QNPc_FwiokkWIU89SETeT5jh6cwiyrG/s1600/01350001.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWS3AijMZtRo2mDV3FelrfE5b-a7FTj4ygkA88_PI112nGl2qF-icWalZ0_OXT3YgX_GQFjTjnXhMbXKQ-0GScNM13PjjfTP7bNH0nKgYyqGSs7QNPc_FwiokkWIU89SETeT5jh6cwiyrG/s640/01350001.JPG" width="640" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
Обратная дорога уже не вызывала проблем. Немного напрягала погода - в Климово прошел дождь, и я немного опасался, что он меня может застать в дороге, но все прошло хорошо. </div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigHDMQ0JQjUYif4iMhPgdfd6d30uyYoi6eCfMJXF4b1wF4SK9X3e6H60-i0P3lcDhT6WBNpIV4HdrNYU5Dh3ZC70mA7TiwQUwrOmzdpjZyZJbFLaML4_kAty_bLYM5kXbQBTDhr1ThXBfO/s1600/vlcsnap-2015-12-10-21h03m14s239.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigHDMQ0JQjUYif4iMhPgdfd6d30uyYoi6eCfMJXF4b1wF4SK9X3e6H60-i0P3lcDhT6WBNpIV4HdrNYU5Dh3ZC70mA7TiwQUwrOmzdpjZyZJbFLaML4_kAty_bLYM5kXbQBTDhr1ThXBfO/s640/vlcsnap-2015-12-10-21h03m14s239.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
К чему весь этот рассказ? К тому, что несмотря ни на что, надо стараться осуществлять свои любые мечты, это делает нас счастливее, позволяет закрыть какие-то давно открытые книги, и тем самым успокоиться. Просторы нашей страны предоставляют нам практически неограниченные возможности для туризма, и всегда можно найти что-то интересное совсем рядом, чему отлично способствует велосипед. С одной стороны он экономит время по сравнению с прогулкой пешком, а с другой - позволяет меньше беспокоиться о дорогах, ведь там, где не сможешь проехать, всегда сможешь пронести велосипед.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAdblTuTqWPswZza2vZLBUVat6GyAW9Zirbnn9G2km5lCBFRD7gmeY1LJtFNVebIhNeW6TXfAEyebhnTSSXXhKv5FC0p2UNZshyXhv6Yu1o8pKoyZKDFg5LEo_QE_1o-pblMIGkjspxT1X/s1600/08530004.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAdblTuTqWPswZza2vZLBUVat6GyAW9Zirbnn9G2km5lCBFRD7gmeY1LJtFNVebIhNeW6TXfAEyebhnTSSXXhKv5FC0p2UNZshyXhv6Yu1o8pKoyZKDFg5LEo_QE_1o-pblMIGkjspxT1X/s640/08530004.JPG" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-77369303436363985022015-12-06T19:17:00.000+03:002015-12-06T19:17:39.714+03:00Алкоголь и мясо<div dir="ltr" style="text-align: left;" trbidi="on">
Я всегда считал, что для мужчины на кухне есть только две роли - готовить мясо и заниматься алкоголем. Пару недель назад, проезжая Брянск, я пополнил запасы хорошим мясом и салом, которое уже полностью ушло в различные заготовки. А сегодня я, наконец-таки, начал формировать свой бар, который сейчас состоит из 13 летнего и 3-летнего виски, текилы, абсента, темного рома, вермута, а так же коллекции ликеров: ромовый, апельсиновый, кофейный. В довершение дополнил набор настойкой ангостура.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilzKVDkMgMzD9aezukT2muT-e3uUGG2Dm2VtbcpmB3nqevwRHStPGd1vboRsOd4ko7OrdAran56dV0g-6aqEGb-c56UbjCixidexpdC84wgAfN2ME6XujHZfc8IbLC7QKwzbiwr7809lYa/s1600/IMG_6733_1.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilzKVDkMgMzD9aezukT2muT-e3uUGG2Dm2VtbcpmB3nqevwRHStPGd1vboRsOd4ko7OrdAran56dV0g-6aqEGb-c56UbjCixidexpdC84wgAfN2ME6XujHZfc8IbLC7QKwzbiwr7809lYa/s640/IMG_6733_1.JPG" width="640" /></a></div>
<br />
<a name='more'></a>Закупленное сало ушло солиться в различных вариантах: острое с красным перцем и чили, нежное в итальянских травах. Вырезка уже достаточно просолилась, и в настоящий момент вялится к обтирке из чеснока, перцев и трав - будет отличная закуска к Новому году. Идея вялить мясо к праздникам меня посетила год назад, тогда эксперимент не совсем удачно закончился, т.к. результатом я остался недоволен. В этом году засолке было уделено больше внимания, поэтому праздничный стол должна украсить домашняя вяленая свининка.<br />
<br />
Алкоголь с сиропами же в таком разнообразном количестве пойдут на коктейли: все же Новый год бывает раз в году, и надо как-то порадовать близких. А разноцветные сладкие, пряные, горящие коктейли могут отлично в этом помочь!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1xTV0jHbMNbue6OKrXoI7eS8UdZGun6e0JQjiH8HsZgD6R8a0jb_h8FaHQgB3LWGfsiMYzy4XA8gZdnvV_0ipve60h5kIhWb8rmpGbUwifsHv8BXqDS5LfrgFmjAcFTb3tHFg0f8tTu9q/s1600/IMG_6738.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1xTV0jHbMNbue6OKrXoI7eS8UdZGun6e0JQjiH8HsZgD6R8a0jb_h8FaHQgB3LWGfsiMYzy4XA8gZdnvV_0ipve60h5kIhWb8rmpGbUwifsHv8BXqDS5LfrgFmjAcFTb3tHFg0f8tTu9q/s640/IMG_6738.JPG" width="640" /></a></div>
<br />
В качестве пробы сил в коктейлях я решил приготовить Сазерак, который удивил интересным сочетанием виски и абсента, под конец бокала раскрывающийся вкусом тростникового сахара. Всего к праздничному столу уже выбрано 15 рецептов коктейлей, надеюсь с ними не будет сложностей в изготовлении.<br />
<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-36014285680761151722015-11-28T14:45:00.002+03:002015-11-28T14:45:46.976+03:00Контактные педали. Тысячи километров спустя<div dir="ltr" style="text-align: left;" trbidi="on">
В этом велосезоне я перешел на контактные педали, об это уже было две заметки, а теперь третья. Сегодня я убедился в том, что переход завершился успешно.<br />
<a href="http://dragomirnote.blogspot.ru/2015/04/500.html" target="_blank">Впечатления после 500 км</a><br />
<a href="http://dragomirnote.blogspot.ru/2015/05/700.html" target="_blank">Впечатления после 700 км</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-fNwaJ5tXFIUM6mYGwCRzY3AWSbwB0HgtCPLj0zZs9Kmyzzplq4KC0AmUptBm8MuaTcbu_u8ciZnSrRn-OaujeMFELsi4NL7jqTp2kyB94de-Xs6l83qjR6kWsxqh7QAs6EHEX9N9mA71/s1600/IMG_6722.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-fNwaJ5tXFIUM6mYGwCRzY3AWSbwB0HgtCPLj0zZs9Kmyzzplq4KC0AmUptBm8MuaTcbu_u8ciZnSrRn-OaujeMFELsi4NL7jqTp2kyB94de-Xs6l83qjR6kWsxqh7QAs6EHEX9N9mA71/s640/IMG_6722.JPG" width="640" /></a></div>
<br />
<a name='more'></a>Начну с того, что за этот сезон ездил в одно <a href="http://dragomirnote.blogspot.ru/2015/06/blog-post_16.html" target="_blank">ПВД на топталках</a>, Было непривычно. Уже тогда я понял все плюсы контактов - не надо думать о том, чтобы нога стояла на педали. Во все последующие поездки я ездил только в контактах: поездка по Брянской области (500+ км), бревет на шоссере(275 км), автономка Владимир - Ульяновск(1100 +км).<br />
<br />
Первый выезд на шоссере я сделал на тестовых педалях, от чего получил только разочарование - подошва скользит по педали, а на подъеме ноги срываются с педалей, пытаясь крутить полным кругом. Потом я поставил на него имеющиеся контакты и он полетел. Уже к осени пришли новые педали для него, и у меня пропала необходимость переставлять педали.<br />
<br />
Во всех походах контакты просто сказка: на шоссе колесам передается вся вращательная мощь, что особенно пригодилось на 2-7 километровых балках Поволжья. Правда по грязи или песку приходилось выстегиваться, т.к. груженный велосипед может вести себя непредсказумо, но это мелочи.<br />
<br />
Было несколько моментов, которые я боялся в начале сезона - экстренное выстегивание. Так в Алатыре спускаясь по разбитой грунтовке у меня вдруг вывернуло переднее колесо, и я начал падать. На удивление нога автоматом сделала нужное движение пяткой в бок, и я стоял на земле. Велосипед удержать не удалось, и он благополучно завалился набок.<br />
<br />
Другой случай произошел уже в ноябре. Проверяя работу шипованой резины я очутился на Осташковском шоссе, где есть пара не очень удобных мест для велосипедиста. Перестраиваясь во вторую полосу, освобождая полосу только на поворот направо, меня подрезал белый Рено, который, возможно, шел по навигатору, поэтому не сразу понял, где ему надо свернуть направо. Удивительно, но тело сработало четко - ноги на педалях, центр массы смещаем назад, торможение двумя колесами. В следующий миг понимаешь, что столкновения не избежать - левая нога уже выстегнулась. Касательный удар в заднюю правую дверь машины рулем, вторая нога выстегивается, руки отпускают руль и оказываешься на асфальте. К моменту, когда из машины вышел водитель, я уже стою на обочине с велосипедом, стараясь не мешать движению автомобилей. Предварительно проверил, что машине не нанесено повреждений, а значит можно миром разойтись :) А в целом поездка показала, что шипованная резина позволяет ездить на контактах круглый год, что не может не радовать!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8nFtRlobX8AA1E8LLQH-RJC2FTVPRB-uVOdpSTf-vkkXaIxUsVkoLnVEEnuBntRXWuwAzppe9iR-gt8lvYnimiWpPGyO5UsqoLNc8karUprJ-iw11cca-wNmPCq9YQ95MbfoKjF1FqP-r/s1600/IMG_6716.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8nFtRlobX8AA1E8LLQH-RJC2FTVPRB-uVOdpSTf-vkkXaIxUsVkoLnVEEnuBntRXWuwAzppe9iR-gt8lvYnimiWpPGyO5UsqoLNc8karUprJ-iw11cca-wNmPCq9YQ95MbfoKjF1FqP-r/s640/IMG_6716.JPG" width="640" /></a></div>
<br />
В общем, мой совет всем, кто желает улучшать свои результаты, и перевести удовольствие от езды на велосипеде на новый уровень - контакты откроют новые горизонты единения со своим железным конем!</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-1001172598735324092015-11-27T19:46:00.002+03:002015-11-27T20:19:43.429+03:00Human Design. Путь проектора<div dir="ltr" style="text-align: left;" trbidi="on">
Вроде бы, как человека с высшим техническим образованием, эзотерика и псевдонаучные темы не должны меня интересовать, но чего кривить душой - все неизвестное манит. Так вот попалось на глаза учение про "Дизайн человека". Немного ознакомившись с базовыми вещами и основными русскоязычными ресурсами, я сделал вывод, что это учение ближе всего к некоему сетевому маркетингу - "верь, что HD работает, вступай в многолетний эксперимент, и плати магистрам за расшифровку карты и правильному обучению". Но схема не будет работать удаленно, если она не подкрепляется опытом, т.е. у адептов, в отличии от других сект, ограничен выбор инструментов для привлечения новых клиентов. Видимо поэтому автор учения посвятил много времени изучению восточных эзотерических школ, черпая из них базовые вещи, основанные на многовековых наблюдениях и анализах. Это приводит к тому, что HD выглядит цельным и увлекательным. Так вот, я решил немного рассказать про жизнь так называемого Проектора.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLx5fAHYnwaDZxgMDgpfQ-hZKTsO9Q-WUeeg3Y6fFGV11Iw4wVKrLEujXgov9AW-s7i1lz9VAdDzyLQ43uRcjNPLDpfxivpQKMxcm4Zx31yyYH3Q-0km9TQWJvSQFz4AeUrEJfQLxVB6Mc/s1600/s1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLx5fAHYnwaDZxgMDgpfQ-hZKTsO9Q-WUeeg3Y6fFGV11Iw4wVKrLEujXgov9AW-s7i1lz9VAdDzyLQ43uRcjNPLDpfxivpQKMxcm4Zx31yyYH3Q-0km9TQWJvSQFz4AeUrEJfQLxVB6Mc/s640/s1.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<a name='more'></a><br />
<br />
<div class="separator" style="clear: both; text-align: left;">
В общем, с момента знакомства с данным учением прошло несколько месяцев, было достаточно времени для наблюдений за происходящим, а так же анализа прошлого. И могу сказать, что стратегия Проектора "Ждать приглашения" имеет право на существование. Так или иначе, но чаще всего самыми удачными были дела, в которые меня приглашали, а не которые я начинаю по своей инициативе.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Небольшое отступление про стратегии и HD. Есть 4 типа аур, из которых две - энергетические, а две - нет. Вот Генератор и Манифестор - энергетические, а Проектор и Рефлектор - нет. Т.е. любые начинания должны подпитываться энергией. Энергетические типы не испытывают проблем с запасом энергии и могу долго и упорно работать на своих запасах, которые постоянно пополняются. Проектор же обладает небольшим запасом энергии, поэтому ему не рекомендуется что-либо начинать по собственному желанию. Особенно это касается длительных процессов. В идеальной схеме Манифестор должен выдать инициативу, которая откликнется у Генератора и тот пожелает выдать приглашение Проектору "фокусировать" Генератора. В сокращенном варианте инициативы может выдавать Генератор Проектору, приглашая его к источнику энергии. Здесь же, наверное, можно использовать лайфхак - Проектор подводит Генератора к идее, после чего Генератор выдает тестовое приглашение Проектору, после чего последний дает запрос Генератору - точно ли он желает дать энергию. А дальше я приведу несколько примеров из жизни, которые должны проиллюстрировать эту схему.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Мой <a href="http://dragomirnote.blogspot.ru/search/label/%D0%9E%D1%82%D0%BF%D1%83%D1%81%D0%BA%20%D0%BD%D0%B0%20%D0%BA%D0%BE%D0%BB%D0%B5%D1%81%D0%B0%D1%85" target="_blank">июньский отпуск</a> я инициировал самостоятельно, и он проходил на моей энергии. В целом ее хватило. Когда я был у родителей мне мама предложила(пригласила) поехать к родственникам своим ходом, а они поедут на машине. Мне эта идея сразу понравилась, и я согласился. В результате 100 километров прошли идеально - дороги были проезжабельны, никаких сложных или опасных моментов не было, даже ветер был попутный, а я получил большое удовольствие от этой поездки.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Второй пример - <a href="http://dragomirnote.blogspot.ru/search/label/%D0%9E%D1%82%D0%BF%D1%83%D1%81%D0%BA%20%D0%BD%D0%B0%20%D0%BA%D0%BE%D0%BB%D0%B5%D1%81%D0%B0%D1%85%202" target="_blank">августовский отпуск </a>. Изначально он по продолжительности в три раза больше, сам маршрут тяжелее. Опять же инициировал его я, но в этот раз не было как таковой подпитки Генератором, не было приглашений, и как результат уже через неделю я стал испытывать недостаток сил. Причем не только психологических, но и физических.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Ну и третьим примером будет моя работа. За все свои 26 лет я работаю только по приглашениям, т.е. всегда находился человек, который приглашал меня на новое рабочее место, и в результате все складывалось хорошо: проблем не возникало, испытательный срок проходился успешно, а коллектив принимал хорошо. При этом была попытка уйти на фриланс, которую инициировал я, вот она меня истощила буквально за пару недель, после чего я отказался от этой затеи.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Окончательных выводов у меня нет, т.к. недостаточно данных, но могу сказать, что я продолжу свой "эксперимент", но при этом не буду всерьез втягиваться в HD, т.е. никаких "гуру" или "адептов" в своей жизни я видеть не желаю. Мне достаточно будет того, что я сам пойму, и, если фишка "приглашений", продолжит себя положительно рекомендовать, то может быть расширю список применяемых хаков из HD.</div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-36637987855980825782015-11-27T19:36:00.002+03:002015-11-27T19:36:38.627+03:00Живи сейчас<div dir="ltr" style="text-align: left;" trbidi="on">
Ну что ж. Я очень рад, что ты заглянул сюда, проходи и садись. Вот тебе деревянная табуретка. Да, именно так - никакого удобного кресла не будет, потому что нас ждет серьезный разговор!<br />
<br />
<a name='more'></a><br /><br />
Вот сколько тебе лет? Надо же, а почему тогда все еще веришь в сказки? Тебе кажется, что все эти иллюзии, которые плодятся и растут у тебя в голове, смогут стать твоей реальностью? Кто-то дал тебе такую ложную надежду!<br />
<br />
Да, ты можешь продолжать тщетные попытки генерировать свою вселенную, но сначала подумай - а хватит ли у тебя способностей сгенерировать ее правильно: одна упущенная мелочь может разрушить этот хрустальный замок!<br />
<br />
Да, ты можешь дальше верить в свою уникальность, в свой особый путь, ты можешь дальше ждать порцию свежего воздуха, которую принесет, может быть, ветер в этот дальний чулан мира. Ты можешь дальше всем и себе врать, что с понедельника, а может и со вторника, или к следующему месяцу все изменится, ведь ты уже увидел как все начало меняться. Но уверен ли ты в том, что ты увидел все правильно?<br />
<br />
Да, ты можешь дальше продолжать тратить свое бесценное время в раздумьях о том, чего не было и не будет! Но вот есть ли смысл в такой трате своих бесценных минут в этом мире?<br />
<br />
Тебе все еще неудобно на этой старой табуретке? Раздражает, что она вся шатается и скрипит? Что? А, боишься упасть... Наверное потому, что уже представил как ты упадешь и ударишься локтем и затылком, как электрический разряд пробежит по твоим суставам ,а голова нальется свинцом. Ты не знаешь - случится ли это или нет, а уже частично прожил это. Зачем?<br />
<br />
Расслабь на минуту ноги, и позволь телу нагрузить табуретку! Смелей! Хм, а ты был прав - она не выдержала. Не спеши вставать, расскажи о том, что случилось, какими местами ты ударился, и что сейчас чувствуешь. Соответствует ли оно твоим ожиданиям? Нет!<br />
<br />
Ладно, вставай, что ты там нашел? Хм, а я и забыл, что эта книга уже лет 10 лежит под диваном. Отличное произведение, советую почитать - это будет полезнее того, чем ты обычно занимаешься! Просто иди сейчас в парк к пруду. На дальнем берегу под большой ивой есть скамейка. Как раз сейчас она будет освещена солнцем, поэтому ты не почувствуешь осенней прохлады. Иди туда, и просто почитай книгу. Поживи сегодня, живи сейчас!<br /> <br />
</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-4882395890335137992015-11-25T15:22:00.001+03:002015-11-25T15:22:52.268+03:00Эволюционное развитие ПО<div dir="ltr" style="text-align: left;" trbidi="on">
Все, кто занимаются разработкой ПО, знают о том, что порой из небольших мелочей могут вырасти серьезные проблемы. Интуиция на первых этапах разработки(проектирования) играет ключевую роль, т.к. от каждого принятого на первых этапах решения будет крайне сложно отказаться в будущем.<br />
<br />
<a name='more'></a><br /><br />
Программное обеспечение, развивающееся эволюционно, можно сравнить со сложным живым организмом: оно несет на себе крест своих предшественников - более молодых версий. При этом ключом в успешном развитии ПО, на мой взгляд, являются менеджеры, которые должны смотреть не на шаг вперед, считая прибыль от текущего проекта, как это делает эволюция, фиксируя выгодные для текущих условий мутации, а действовать более гибко - пытаться просчитать ситуацию на два шага вперед, как это делают шахматисты.<br />
<br />
Эволюция конкретного «родительского» вида, выбрав путь развития один
раз, не может ретроспективно его поменять, поэтому тело сложных
организмов напоминает, по выражению Р. Докинза, «лоскутное одеяло» из
доработок и компромиссов. Именно из-за этого тезиса один из принципов ООП - Наследование, кажущийся на первых парах решением всех бед, в дальнейшем может приводить к усложнению продукта.<br />
<br />
Мы, как создатели своих миров и вселенных, можем, нет, должны уметь признавать свои ошибки ранних этапов, причем делать это во время, чтобы откатиться до предыдущей версии и сделать все заново, с учетом новых возможностей. С другой стороны у нас есть возможности, которых нет у эволюции: всегда можно отрубить устаревшие органы, которые когда-то были преимуществом, а сейчас выступают недостатком. Есть и третий путь - описать существующее состояние, заморозить его в развитии, и создать с нуля аналог с применением лучших практик.<br />
<br />
Получается, что разработка ПО, это та же жизнь, со всей эзотерической вуалью - отпусти прошлое, или иначе оно тебя съест. Причем, чтобы отпустить прошлое и пойти дальше нужна серьезная работа, которая выражается в серьезных финансовых потерях, с точки зрения производителя. Потери, которые должны принести результат на шаге два, если работу выполняют хорошие исполнители. Если же качество работы исполнителей страдает, т.е. консультант-эзотерик нацелен на долгосрочной работе по выуживанию денег, а не на решении существующих проблем, то это форсирование гибели продукта.<br />
</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-31429331420663385762015-11-09T14:23:00.002+03:002015-11-09T14:23:44.221+03:00Спальник против бессонницы!<div dir="ltr" style="text-align: left;" trbidi="on">
Межсезонье - отвратительная пора. За окном уже достаточно прохладно, и в домах включается отопление, но все еще недостаточно прохладно, чтобы в квартире была комфортная температура. Человеку для комфортного сна подходит небольшой диапазон температур, и, в большинстве случаев, это ключевой фактор комфортного сна.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGpeqZ393CrduS03SmBkJ10HaOOjQ-dLwhDow4EMZOZpVwjYK0zPmsxV529rVfUl1Un6mOvSShpkeHO5URo0_Rv7X5E10n6QJPUbezhUEDGaSGdSz6DAyEQrG38T4GjkdPKTXmeRylLBGF/s1600/spalnik+atemi+fox+250.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="504" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGpeqZ393CrduS03SmBkJ10HaOOjQ-dLwhDow4EMZOZpVwjYK0zPmsxV529rVfUl1Un6mOvSShpkeHO5URo0_Rv7X5E10n6QJPUbezhUEDGaSGdSz6DAyEQrG38T4GjkdPKTXmeRylLBGF/s640/spalnik+atemi+fox+250.jpg" width="640" /></a></div>
<br />
<a name='more'></a><br />
Недавно я в обычное время лег спать. Отработанный годами ритуал засыпать под сериал иногда дает осечку, и сон не приходит. Многие рекомендуют сконцентрироваться на дыхании или сне. Может быть я плохо умею концентрироваться, а может мне просто скучно концентрироваться на таком процессе как дыхание. Смысл на нем концентрироваться, если этот процесс великолепно работает и не вызывает никаких нареканий?<br />
<br />
Вот после первых 30 минут попытки уснуть в моей голове пробегает мысль - я даже в отпуске в спальнике засыпал быстрее, несмотря на шум от товарных составов, проходящих по путям в паре сотен метров от места ночевки, или от находящейся по соседству магистрали. Даже засыпая на наклонном берегу, за которым начиналось Куйбышевское водохранилище, я не испытывал серьезных проблем с бессонницей. А все потому, что выполнились пара факторов - адекватная физическая нагрузка и комфортная для сна температура.<br />
<br />
Ключевой момент - в спальнике проще поддержать температуру.Он ближе, чем другое одеяло, которое надо еще запихнуть в пододеяльник. "Так почему же нет?" сказал я в очередной раз выпав из полудремы. Буквально полторы минуты и я уже лежу на полу в спальнике. Пенку или матрас я решил не стелить. Не совсем комфортно, но я уснул буквально за пару минут, стоило лишь поудобнее лечь.<br />
<br />
И что в результате? Я выспался! Конечно, спать в спальнике на ламинате не совсем удобно, слишком уж скользко. В следующий раз надо будет подстелить матрас. Регулировать температуру тела в спальнике оказалось проще, чем в кровати, а сам эксперимент, про который я думал по возвращении из отпуска, себя полностью оправдал: Сон в спальнике пробудил какие-то воспоминания, я почувствовал, что мне необходимо уснуть, и мысли стоит отбросить подальше. Возможно поэтому среди рекомендаций по борьбе с бессонницей есть пункт "не делать ничего в спальне, кроме как спать ". Мозг знает, что в спальнике можно спать, что раз я в спальнике, то у меня нет возможности поваляться в раздумьях, я должен спать, т.к. завтра будет увлекательный день, и мне потребуются силы. Т.е. я нашел простой лайфхак, как победить бессонницу. Но, скорее всего, если его применять слишком часто, то эффект пропадет.</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-27329213570049554492015-11-07T22:56:00.000+03:002015-11-07T22:56:44.548+03:00Сквозь говнокод. Новые окошки для старого кода 1<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
При правильном рефакторинге пользователь не должен заметить разницы между версиями. Может мы избавимся от каких-либо ошибок, может даже добавим фич, но мы должны обеспечить полное сохранение функциональности текущей версии. Пусть это убогий консольный интерфейс, но иногда пользователи не спешат переходить на Windows интерфейс, считая консольное решение более удобным!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwEYowA2WtGcRhQwVu_hTOYJEa6obnHvYd_dwC02HHLdMzcjtZne6gXwcmN540TAx6q6NvU9wUI6FPDHj7LJ-dyTw5L6q4UAzNk5MEhBcO2aPvkNKzWR8ibhyc7xXQMc8z_HT05cMfCT1W/s1600/console+gui.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwEYowA2WtGcRhQwVu_hTOYJEa6obnHvYd_dwC02HHLdMzcjtZne6gXwcmN540TAx6q6NvU9wUI6FPDHj7LJ-dyTw5L6q4UAzNk5MEhBcO2aPvkNKzWR8ibhyc7xXQMc8z_HT05cMfCT1W/s640/console+gui.png" width="640" /></a></div>
<br />
<a name='more'></a>Посмотрим, как работал прежний GUI: из main запускался shell, который содержит как отрисовку, так и обработку клавиш, а так же работу со списком. Оставлю ниже только основные моменты кода, остальное заменив комментариями</div>
<pre><code>
void shell()
{
/*
Инициализация списка и переменных
*/
// Хардкод на размер одной страницы - не удалил, для демонстрации "качества" кода
for (int i = 0; i < 19; i++)
{
ViewEnd = ViewEnd->next;
}
//Рисование
DrawWindow(1);
window(2, 3, 79, 22);
refrashViewBegin, Act); // Видимо перерисовывает область списка
// Основной цикл работы
while (exitkey)
{
//опрос клавиатуры
// Все коды клавиш в цифрах, хорошо, если помнишь, что 13 - Enter, а 27 - Esc, наверное :)
if (menukey == 27)
break;
if (menukey == 80)
{
/*Движение вниз по списку*/
refrash(ViewBegin, Act);
}
if (menukey == 72)
{
/*Движение вверх по списку*/
refrash(ViewBegin, Act);
}
if (menukey == 13)
{
/* Открываем окно а потом вновь перерисовываем*/
DrawWindow(2);
ViewMail(Act);
window(2, 3, 79, 22);
refrash(ViewBegin, Act);
}
}
};
</code></pre>
<br />
Функция refresh не особо далеко ушла по качеству. Какие-то наборы чисел, позиционирования курсора, поэлементная обработка сишных строк и прочее мракобесие - даже не буду чистить - это надо сохранить для истории:)!<br />
<pre><code>
void refrash(mail *Begin, mail *Activ)
{
clrscr();
mail *elem;
elem = new mail;
elem = Begin;
int index;
char *adr, *avt, *tema;
int i;
for (i = 1; i < 21; i++)
{
textcolor(15);
textbackground(9);
if (elem == Activ)
textcolor(4);
if (elem != NULL)
{
gotoxy(1, i);
for (index = 0; elem->adresat[index] != '\n' ; index++)
cprintf("%c", elem->adresat[index]);
gotoxy(20, i);
cprintf(" | ");
for (index = 0; elem->avtor[index] != '\n' ; index++)
cprintf("%c", elem->avtor[index]);
gotoxy(40, i);
cprintf(" | ");
for (index = 0; elem->tema[index] != '\n' ; index++)
cprintf("%c", elem->tema[index]);
puts("\n");
}
if (elem == NULL)
i = 20;
elem = elem->next;
}
};
</code></pre>
<br />
Дальше - веселей! У нас есть еще функция для отображения письма и некая рисовка окна.<br />
<pre><code>
void ViewMail(mail *Activ)
{
int index;
int x;
char menukey;
do {
if (menukey == 27)
{
break;
}
// И рисуем и по данным бегаем
if (menukey == 77)
{
if (Activ->next != NULL)
Activ = Activ->next;
}
if (menukey == 75)
{
if (Activ->prev != NULL)
Activ = Activ->prev;
}
/*Всякие позиционирования и поэлементный вывод данных - аналогично refresh*/
menukey = getch();
} while (1);
};
</code></pre>
<br />
И напоследок самое вкусное! Если видишь в коде if() {...много кода..}else{..много похожего кода..}, то значит этот код следует переписать!<br />
<pre><code>
void DrawWindow(int p)
{
int i;
char ch;
if (p == 1) // оказывается это режим рисования окна скроллинга
{
window(1, 1, 80, 25);
textcolor(112);
textbackground(15);
ch = 205;
/*Всякие ухищрения по отрисовке рамок*/
cprintf("Menu:Esc - Exit Enter - Open mail");
}
if (p == 2) // а это - окно самого письма
{
window(9, 9, 71, 23);
textcolor(0);
textbackground(15);
ch = 205;
/*Рисуем рамку*/
cprintf(" Menu: Esc - Exit Left/Right - Prev/Next Mail ");
}
};
</code></pre>
<br />
При сокращении кода становится заметнее дублирование, но скрывается смысл избавления от этого кода, т.к. вся функция кажется короткой и наглядной. В первом посту я приводи весь код, поэтому всегда можно посмотреть, что было удалено.<br />
<br />
Приступим к написанию нового GUI, чтобы наконец-таки удалось что-то скомпилить и поиграть в VS. Первым делом сделаем адаптер - обертку над функциями работы с консолью, чтобы через 5 лет не пришлось переписывать весь код из-за того, что какие-то функции или библиотеки исчезли<br />
<pre><code>//Константы для цветов
const WORD BG_WHITE = BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED;
const WORD BG_BLUE = BACKGROUND_BLUE;
const WORD BG_GREEN = BACKGROUND_GREEN;
const WORD TX_BLACK = 0;
const WORD TX_WHITE = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED ;
const WORD TX_RED = FOREGROUND_RED | FOREGROUND_INTENSITY ;
const WORD TX_BLUE = FOREGROUND_BLUE | FOREGROUND_INTENSITY ;
/* Рисовалка в консоли*/
class VSConsoleDraw
{
struct FrameCharSet
{
char Horizontal;
char Vertical;
char AngleLeftTop;
char AngleLeftBottom;
char AngleRightTop;
char AngleRightBottom;
};
HANDLE hOutput;
COORD Pos;
COORD NewSBSize;
CONSOLE_SCREEN_BUFFER_INFO SCRN_INFO;
WORD BackGround;
WORD TextColor;
protected:
FrameCharSet getFrameChar(int FrameType);
public:
VSConsoleDraw();</code></pre>
<pre><code> //Рисуем рамку
void RectDraw(COORD BeginPoint, COORD EndPoint, int FrameType = fr_none);
void RectDraw(COORD BeginPoint, COORD EndPoint, int FrameType, WORD Background, WORD Textcolor);
void PrintLine(COORD BeginPoint,string text); // вывести текст от точки
void Clear();</code></pre>
<pre> //сразу добавим 3 типа рамок</pre>
<pre><code> enum
{
fr_none = 0,
fr_single = 1,
fr_double = 2
} _FrameType;
};
// и реализации методов
VSConsoleDraw::VSConsoleDraw()
{
setlocale(LC_ALL,"RUS");
hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
BackGround = BG_WHITE;
TextColor = TX_BLACK|BackGround;
NewSBSize.Y = 25;
NewSBSize.X = 80;
SetConsoleScreenBufferSize(hOutput,NewSBSize);
}
void VSConsoleDraw::Clear()
{
GetConsoleScreenBufferInfo(hOutput, &SCRN_INFO);
Pos.X = 0;
Pos.Y = 0;
FillConsoleOutputCharacter(hOutput, ' ', SCRN_INFO.dwSize.X*SCRN_INFO.dwSize.Y, Pos, NULL);
FillConsoleOutputAttribute(hOutput, BackGround,SCRN_INFO.dwSize.X*SCRN_INFO.dwSize.Y,Pos,NULL);
SetConsoleTextAttribute(hOutput,TextColor);
SetConsoleCursorPosition(hOutput,Pos);
};</code></pre>
<pre><code>
VSConsoleDraw::FrameCharSet VSConsoleDraw::getFrameChar(int FrameType)
{
FrameCharSet retval;
switch(FrameType)
{
case fr_single:
{
retval.Horizontal = 196;
retval.Vertical = 179;
retval.AngleLeftBottom = 192;
retval.AngleLeftTop = 218;
retval.AngleRightBottom = 217;
retval.AngleRightTop = 191;
break;
}
case fr_double:
{
retval.Horizontal = 205;
retval.Vertical = 186;
retval.AngleLeftBottom = 200;
retval.AngleLeftTop = 201;
retval.AngleRightBottom = 188;
retval.AngleRightTop = 187;
break;
}
default:
{
retval.Horizontal = 32;
retval.Vertical = 32;
retval.AngleLeftBottom = 32;
retval.AngleLeftTop = 32;
retval.AngleRightBottom = 32;
retval.AngleRightTop = 32;
break;
}
}
return retval;
};
void VSConsoleDraw::RectDraw(COORD BeginPoint, COORD EndPoint, int FrameType)
{
//сменим локаль для получения ASCII графики
setlocale(LC_ALL,"C");
FrameCharSet FrameChar = getFrameChar(FrameType);
COORD Cursor1, Cursor2;
Cursor1.X = Cursor2.X = BeginPoint.X+1;
Cursor1.Y = BeginPoint.Y;
Cursor2.Y = EndPoint.Y;
for(int i = Cursor1.X ; i< EndPoint.X ; i++)
{
SetConsoleCursorPosition(hOutput,Cursor1);
printf("%c",FrameChar.Horizontal);
Cursor1.X++;
SetConsoleCursorPosition(hOutput,Cursor2);
printf("%c",FrameChar.Horizontal);
Cursor2.X++;
}
Cursor1.Y = Cursor2.Y = BeginPoint.Y+1;
Cursor1.X = BeginPoint.X;
Cursor2.X = EndPoint.X;
for(int i = Cursor1.Y; i < EndPoint.Y ; i++)
{
SetConsoleCursorPosition(hOutput,Cursor1);
printf("%c",FrameChar.Vertical);
Cursor1.Y++;
SetConsoleCursorPosition(hOutput,Cursor2);
printf("%c",FrameChar.Vertical);
Cursor2.Y++;
}
//Рисуем углы
SetConsoleCursorPosition(hOutput,BeginPoint);
printf("%c",FrameChar.AngleLeftTop);
Cursor1.X = BeginPoint.X; Cursor1.Y = EndPoint.Y;
SetConsoleCursorPosition(hOutput,Cursor1);
printf("%c",FrameChar.AngleLeftBottom);
Cursor1.X = EndPoint.X; Cursor1.Y = BeginPoint.Y;
SetConsoleCursorPosition(hOutput,Cursor1);
printf("%c",FrameChar.AngleRightTop);
SetConsoleCursorPosition(hOutput,EndPoint);
printf("%c",FrameChar.AngleRightBottom);
//Вернем курсор туда, где стоял
SetConsoleCursorPosition(hOutput,Pos);
setlocale(LC_ALL,"RUS");
}
void VSConsoleDraw::RectDraw(COORD BeginPoint, COORD EndPoint, int FrameType, WORD Background, WORD Textcolor)
{
SetConsoleTextAttribute(hOutput,Textcolor|Background);
RectDraw(BeginPoint, EndPoint,FrameType);
SetConsoleTextAttribute(hOutput,this->TextColor);
};</code></pre>
<pre><code>
void VSConsoleDraw::PrintLine(COORD BeginPoint,string text)
{
SetConsoleCursorPosition(hOutput,BeginPoint);
printf("%s",text.c_str());
SetConsoleCursorPosition(hOutput,Pos);
}
</code></pre>
<br />
Когда готов каркас, можно проверить простоту использования данной рисовалки:<br />
<pre><code>
void main()
{
<pre><code> VSConsoleDraw console;</code></pre>
console.Clear();
COORD Point1, Point2;
Point1.X = 0; Point1.Y = 1;
Point2.X = 39; Point2.Y = 24;
console.RectDraw(Point1,Point2,VSConsoleDraw::fr_double);
Point1.X = 41; Point1.Y = 1;
Point2.X = 75; Point2.Y = 20;
console.RectDraw(Point1,Point2,VSConsoleDraw::fr_single,BG_GREEN,TX_BLACK);
Point1.X = 5; Point1.Y = 5;
Point2.X = 35; Point2.Y = 15;
console.RectDraw(Point1,Point2,VSConsoleDraw::fr_single,BG_BLUE,TX_WHITE);
}
</code></pre>
Результат работы:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiQ8g2bSddZ9TSIm0f3WvTMsU9TUG0t0CsBOOh1dEZ_iMa6LaRFFYKWq6JNiqOFoefNbaLAOZMfaEGCxzo9I71eZty4ytxQyaiAuh-EmMSTzXusQCqjCy_aNmoU0c11Bm9oa0EvdqM6Erp/s1600/%25D1%2587%25D0%25B0%25D1%2581%25D1%2582%25D1%258C+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="329" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgiQ8g2bSddZ9TSIm0f3WvTMsU9TUG0t0CsBOOh1dEZ_iMa6LaRFFYKWq6JNiqOFoefNbaLAOZMfaEGCxzo9I71eZty4ytxQyaiAuh-EmMSTzXusQCqjCy_aNmoU0c11Bm9oa0EvdqM6Erp/s640/%25D1%2587%25D0%25B0%25D1%2581%25D1%2582%25D1%258C+2.png" width="640" /></a></div>
<br />
А теперь сделаем базовый класс для создания панелей и скроллингов. VisualElement будет содержать инстанс VSConsoleDraw, что позволит, при необходимости, переопределять различные свойства рисовалки для каждого элемента<br />
<br />
<pre><code>
//Объявление
class VisualElement
{
string Caption;
string Menu;
COORD Top;
COORD Bottom;
int Frame;
int BackGround;
int TextColor;
VSConsoleDraw Console;
public:
VisualElement(void) {;}
VisualElement(COORD BeginPoint, COORD EndPoint, int FrameType,string Caption,string Menu);
~VisualElement(void) {;}
void virtual View();
void virtual Run() ;
};
//реализация
VisualElement::VisualElement(COORD BeginPoint, COORD EndPoint, int FrameType,string Caption,string Menu)
{
Console = VSConsoleDraw::VSConsoleDraw();
Top = BeginPoint;
Bottom = EndPoint;
Frame = FrameType;
this->Caption = Caption;
this->Menu = Menu;
};
void VisualElement::View()
{
Console.RectDraw(Top,Bottom,Frame);
COORD CaptionPoint; CaptionPoint.X = Top.X+2; CaptionPoint.Y=Top.Y;
Console.PrintLine(CaptionPoint,Caption);
COORD MenuPoint; MenuPoint.X = Top.X+2; MenuPoint.Y=Bottom.Y;
Console.PrintLine(MenuPoint,Menu);
};
void VisualElement::Run() {};
</code></pre>
<br />
Метод Run пока, что оставим пустым, в дальнейшем вернемся к нему. Теперь можно удостовериться, что все работает так, как задумано:<br />
<pre><code>
void main()
{
VSConsoleDraw console;
console.Clear();
COORD Point1, Point2;
Point1.X = 0; Point1.Y = 1;
Point2.X = 39; Point2.Y = 24;
VisualElement elem(Point1,Point2,VSConsoleDraw::fr_double,"Заголовок левой области","Меню F1 - Справка Enter - Выбор");
Point1.X = 40; Point1.Y = 1;
Point2.X = 79; Point2.Y = 10;
VisualElement elem2(Point1,Point2,VSConsoleDraw::fr_single,"Заголовок правой верхней области","PageUp/Down - прокрутка");
Point1.X = 40; Point1.Y = 11;
Point2.X = 79; Point2.Y = 23;
VisualElement elem3(Point1,Point2,VSConsoleDraw::fr_single,"Заголовок правой нижней области","F4 - Редактировать F5 - Копировать");
elem.View();
elem2.View();
elem3.View();
}
</code></pre>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXJLSYW6DJmbopdrVx_5lZ-0viPK7F4xIN6HGlgiyo3-6ZdfduZV6tEw6mB5z-FcMwBx6xIutCtX4N0GTkvpbibBx-8R5sNJEw0KprFRBBbH_DIxvG0_9s1JfVBfr5eoCORq8sK2jeOudx/s1600/%25D1%2587%25D0%25B0%25D1%2581%25D1%2582%25D1%258C+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXJLSYW6DJmbopdrVx_5lZ-0viPK7F4xIN6HGlgiyo3-6ZdfduZV6tEw6mB5z-FcMwBx6xIutCtX4N0GTkvpbibBx-8R5sNJEw0KprFRBBbH_DIxvG0_9s1JfVBfr5eoCORq8sK2jeOudx/s640/%25D1%2587%25D0%25B0%25D1%2581%25D1%2582%25D1%258C+2.png" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
На этом можно закончить. Далее можно реализовать Классы Скроллинга и Панели, т.е. научиться выводить в полученные области данные.</div>
</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-66603786261619379102015-11-07T19:18:00.001+03:002015-11-07T22:56:44.554+03:00Сквозь говнокод. Мясо и мухи отдельно<div dir="ltr" style="text-align: left;" trbidi="on">
<div dir="ltr" style="text-align: left;" trbidi="on">
Первым делом из подопытного экземпляра надо выделить код, отвечающий за работу с данными. Те. сделать разделение на слои отображения и работы с данными. Это стандартный подход, который в будущем позволит уберечь наши нервы, а в коммерческих продуктах - сократить расходы, т.к. разработку каждого слоя можно вести отдельно.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghaIhNhiLKVEXRlB3Zy8V7dEtNmd5piZcnUm2sFc78f2KlOXksfSr-lEoVzF_z4evjLA7Ya3NKycax6gjoTfvRpM-bsA6GkY50Es4TslKVfaBd-zTRYxVfwcWGgO8g38Qg06jJIdEpnP0O/s1600/%25D1%2587%25D0%25B0%25D1%2581%25D1%2582%25D1%258C+2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="226" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghaIhNhiLKVEXRlB3Zy8V7dEtNmd5piZcnUm2sFc78f2KlOXksfSr-lEoVzF_z4evjLA7Ya3NKycax6gjoTfvRpM-bsA6GkY50Es4TslKVfaBd-zTRYxVfwcWGgO8g38Qg06jJIdEpnP0O/s640/%25D1%2587%25D0%25B0%25D1%2581%25D1%2582%25D1%258C+2.png" width="640" /></a></div>
<br />
<a name='more'></a>Если внимательно посмотреть, то структура mail ограничивает длину сообщения в 255 символов. Так же она завязывается на самописный контейнер и предполагает использование только в двухсвязном списке, который нужен для работы скроллинга. От этого всего необходимо избавиться!<br />
<br />
Создадим класс, который будет описывать экземпляр одного письма и больше ничего!</div>
<pre> <code>
// Mail.h
class Mail
{
string Destination;
string Sender;
string Title;
string Subj;
public:
Mail(void); // Пустой конструктор для тестов
Mail(string Destination, string Sender, string Title, string Subj);
~Mail(void) {}
string getDestination() {return Destination;}
string getSender() {return Sender;}
string getTitle() {return Title;}
string getSubj() {return Subj;}
};
//Mail.cpp
#include "Mail.h"
Mail::Mail()
{
this->Destination = "Destination";
this->Sender = "Sender";
this->Title = "Title";
this->Subj = "Subj\n\r more text \n\r \n\r sign";
}
Mail::Mail(string Destination, string Sender, string Title, string Subj)
{
this->Destination = Destination;
this->Sender = Sender;
this->Title = Title;
this->Subj = Subj;
}
</code></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">Итак, у нас есть отдельный класс, который отвечает за письмо, при этом, если, вдруг, адресатов станет 2 и более, то изменения коснутся только этот класс, т.к. он возвращает строку, а значит он же будет заниматься обработкой string Destination[];. Так же в этом случае надо будет добавить метод, возвращающий массив, если это потребуется в прикладном коде. </span></pre>
<pre> </pre>
</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-20666458245278536102015-11-07T18:37:00.002+03:002015-11-07T23:02:37.357+03:00Сквозь говнокод. Подопытный код<div dir="ltr" style="text-align: left;" trbidi="on">
Несколько раз попытался передать свои ощущения от перехода с процедурной парадигмы на ООП, но все уходило куда-то в эмоциональную сферу, либо растекалось в через чур абстрактных описания. Недавно баловался с небольшим проектом, и меня осенило как правильно передать те "открытия", что я сделал для себя.<br />
<br />
Самым простым и наглядным будет демонстрация эволюции небольшого проекта от процедурного <strike>говно</strike>кода, до удобного в поддержке ООП проекта.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlZWVMUjeHFGkyrMHFx_nBa181z1qG_B1T3LFAIEJ2s4feGY5XPwdXqlP5s0uK95uivQ9baU-3HAhvRUnIZdYvQ0bki_nHE-gzB6KbypAXbuKS5JBdQdyZcWj33d2vnfSxdProG9K4G7rv/s1600/%25D0%259E%25D0%259E%25D0%259F-%25D0%25BF%25D1%2580%25D0%25BE%25D0%25B3%25D1%2580%25D0%25B0%25D0%25BC%25D0%25BC%25D0%25B8%25D1%2580%25D0%25BE%25D0%25B2%25D0%25B0%25D0%25BD%25D0%25B8%25D0%25B5-%25D0%25BB%25D1%258E%25D0%25B1%25D0%25BE%25D0%25B2%25D1%258C-%25D0%25BF%25D0%25BE%25D1%2586%25D0%25B5%25D0%25BB%25D1%2583%25D0%25B9-150407.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="414" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlZWVMUjeHFGkyrMHFx_nBa181z1qG_B1T3LFAIEJ2s4feGY5XPwdXqlP5s0uK95uivQ9baU-3HAhvRUnIZdYvQ0bki_nHE-gzB6KbypAXbuKS5JBdQdyZcWj33d2vnfSxdProG9K4G7rv/s640/%25D0%259E%25D0%259E%25D0%259F-%25D0%25BF%25D1%2580%25D0%25BE%25D0%25B3%25D1%2580%25D0%25B0%25D0%25BC%25D0%25BC%25D0%25B8%25D1%2580%25D0%25BE%25D0%25B2%25D0%25B0%25D0%25BD%25D0%25B8%25D0%25B5-%25D0%25BB%25D1%258E%25D0%25B1%25D0%25BE%25D0%25B2%25D1%258C-%25D0%25BF%25D0%25BE%25D1%2586%25D0%25B5%25D0%25BB%25D1%2583%25D0%25B9-150407.jpeg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<a name='more'></a><div style="text-align: left;">
<pre><code><span style="font-family: "times" , "times new roman" , serif;">Итак, задача: есть файл, котором хранятся сообщения, необходимо реализовать удобный пользовательский интерфейс для просмотра сообщений в этом файле.</span></code></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">Эту задачу я решал в 2007 году. На то время ничего кроме процедурного программирования в Borland C я не знал, поэтому решал так, как мог. Исходный текст я сейчас не трогаю(даже не форматирую), для максимального приближения к задаче поддержки и развития работы с чужим кодом. </span></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">
</span></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkLda9JwZimymwhQBFKOpWGvLa2rPpiUzWogiJnAzRsCyW_d9kWwOk-Guvyn9Sm6ESrg20rQ5go7IKIf8JZDM0FvX1cEsQPDYUByYgXjQu95HtwrW5WsxD4UMRqnTnL6mopvL8iIm8Extz/s1600/console+gui.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkLda9JwZimymwhQBFKOpWGvLa2rPpiUzWogiJnAzRsCyW_d9kWwOk-Guvyn9Sm6ESrg20rQ5go7IKIf8JZDM0FvX1cEsQPDYUByYgXjQu95HtwrW5WsxD4UMRqnTnL6mopvL8iIm8Extz/s640/console+gui.png" width="640" /></a></div>
<pre><span style="font-family: "times" , "times new roman" , serif;">
</span></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">Вся реализация занимает 400 строк вместе с комментариями, поэтому этот пример очень удачен для задачи рефакторинга.</span></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">
</span></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">Перед начало рассмотрения кода, я поставлю для себя цели, которые необходимо выполнить:</span></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">1. Необходимо расширить список поддерживаемых форматов. Вместо одного самописного формата программа должна уметь работать с cvs, xml, json. При этом должна сохраниться поддержка старого формата.</span></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">2. Реализовать Windows интерфейс.</span></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">3. Расширить функциональность.</span></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">4. Покрыть код автотестами.</span></pre>
<pre><pre><span style="font-family: "times" , "times new roman" , serif;">Для начала рассмотрим существующий код. Есть структура mail, которая может выступать в качестве элемента двухсвязного списка, так же есть куча указателей на начало, текущий элементы, и так же на элементы начала и конца области видимости. Память для "головы" выделяется всегда.</span></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">В Main мешанина из выделения памяти, чтения и парсинга файла, запуска GUI.</span></pre>
<pre><span style="font-family: "times" , "times new roman" , serif;">К сожалению, у меня нет сейчас Borland C, поэтому хорошо, что сохранился exe-шник, который позволил посмотреть как это работает. разу же были обнаружены ошибки и лаги в работе.</span> </pre>
<pre><code>
//---------------------------------------------------------------------------
struct mail {
char adresat[20];
char avtor[20];
char tema[20];
char body[256];
mail *next;
mail *prev;
};
mail *Head = new mail;
mail *Buf;
mail *Elem;
mail *ViewBegin;
mail *ViewEnd;
mail *Act;
int key;
FILE *datafile;
mail *AddList(mail *EndList);
void mailsplit(char *str);
void shell();
void refrash(mail *Begin, mail *Activ);
void ViewMail(mail *Activ);
void DrawWindow(int p);
//---------------------------------------------------------------------------
//TODO:
int main(int argc, char* argv[])
{
puts("Start:\n");
Head->prev = NULL;
Elem = new mail;
Head->next = Elem;
Elem->next = NULL;
strcpy(Head->body, "head");
char buffer[256];
char ch[2];
key = 0;
if ((datafile = fopen(".//dmail//mail.dat", "rt")) == NULL)
{
printf("Cannot open input file.\n");
return 1;
}
while (key != 1)
{
fscanf(datafile, "%s ", ch);
mailsplit(ch);
}
fclose(datafile);
clrscr();
shell();
//getch();
return 0;
}
//TODO:
mail *AddList(mail *Elem)
{
Buf = new mail;
Buf->next = NULL;
Buf->prev = Elem;
Elem->next = Buf;
return Buf;
};
//TODO:dfgdfg
void mailsplit(char *str)
{
char i;
char buf[1024];
char ChKey;
char *pt;
i = str[0];
ChKey = str[1];
if (!(i ^ 35))
{
if (!(ChKey ^ 49))
{
fgets(buf, 20, datafile);
strcpy(Elem->adresat, buf);
}
if (!(ChKey ^ 50))
{
fgets(buf, 20, datafile);
strcpy(Elem->avtor, buf);
}
if (!(ChKey ^ 51))
{
fgets(buf, 20, datafile);
strcpy(Elem->tema, buf);
}
if (!(ChKey ^ 52))
{
fgets(buf, 256, datafile);
strcpy(Elem->body, buf);
}
if (!(ChKey ^ 48))
{
Elem = AddList(Elem);
}
if (!(ChKey ^ 35))
{
key = 1;
}
}
}
void shell()
{
int exitkey;
char menukey;
exitkey = 1;
_setcursortype(_NOCURSOR);
ViewBegin = Head->next;
ViewBegin->prev = NULL;
ViewEnd = ViewBegin;
Act = ViewBegin;
for (int i = 0; i < 19; i++)
{
ViewEnd = ViewEnd->next;
}
DrawWindow(1);
window(2, 3, 79, 22);
refrash(ViewBegin, Act);
while (exitkey)
{
//refrash(ViewBegin, Act);
window(2, 3, 79, 22);
menukey = getch();
if (menukey == 27)
break;
if (menukey == 80)
{
if (Act == ViewEnd)
{
ViewEnd = ViewEnd->next;
ViewBegin = ViewBegin->next;
}
if (ViewEnd->next == NULL)
{
ViewEnd->next = Head->next;
}
if (Act->next == NULL)
{
Act->next = Act;
}
else
{
Act = Act->next;
}
refrash(ViewBegin, Act);
}
if (menukey == 72)
{
if (Act == ViewBegin)
{
ViewEnd = ViewEnd->prev;
ViewBegin = ViewBegin->prev;
}
if (ViewBegin->prev == NULL)
{
ViewBegin->prev = ViewBegin;
}
if (Act->prev == NULL)
{
Act->prev = Act;
}
else
{
Act = Act->prev;
}
refrash(ViewBegin, Act);
}
if (menukey == 13)
{
DrawWindow(2);
ViewMail(Act);
window(2, 3, 79, 22);
refrash(ViewBegin, Act);
}
}
};
void refrash(mail *Begin, mail *Activ)
{
clrscr();
mail *elem;
elem = new mail;
elem = Begin;
int index;
char *adr, *avt, *tema;
int i;
for (i = 1; i < 21; i++)
{
textcolor(15);
textbackground(9);
if (elem == Activ)
textcolor(4);
if (elem != NULL)
{
gotoxy(1, i);
for (index = 0; elem->adresat[index] != '\n' ; index++)
cprintf("%c", elem->adresat[index]);
gotoxy(20, i);
cprintf(" | ");
for (index = 0; elem->avtor[index] != '\n' ; index++)
cprintf("%c", elem->avtor[index]);
gotoxy(40, i);
cprintf(" | ");
for (index = 0; elem->tema[index] != '\n' ; index++)
cprintf("%c", elem->tema[index]);
puts("\n");
}
if (elem == NULL)
i = 20;
elem = elem->next;
}
};
void ViewMail(mail *Activ)
{
int index;
int x;
char menukey;
do {
if (menukey == 27)
{
break;
}
if (menukey == 77)
{
if (Activ->next != NULL)
Activ = Activ->next;
}
if (menukey == 75)
{
if (Activ->prev != NULL)
Activ = Activ->prev;
}
window(10, 10, 70, 20);
textbackground(10);
textcolor(1);
for (index = 0; index < 10; index++)
for (x = 0; x < 80; x++)
cprintf(" ");
gotoxy(2, 2);
cprintf("Adresat:");
for (index = 0; Activ->adresat[index] != '\n' ; index++)
cprintf("%c", Activ->adresat[index]);
cprintf("\n\r");
gotoxy(2, 3);
cprintf("Avtor :");
for (index = 0; Activ->avtor[index] != '\n' ; index++)
cprintf("%c", Activ->avtor[index]);
cprintf("\n\r");
gotoxy(2, 4);
cprintf("Tema :");
for (index = 0; Activ->tema[index] != '\n' ; index++)
cprintf("%c", Activ->tema[index]);
cprintf("\n\r");
gotoxy(2, 5);
cprintf("Tetx:");
cprintf("%s \n", Activ->body);
menukey = getch();
} while (1);
};
void DrawWindow(int p)
{
int i;
char ch;
if (p == 1)
{
window(1, 1, 80, 25);
textcolor(112);
textbackground(15);
ch = 205;
for (i = 2; i < 80; i++)
{
gotoxy(i, 2);
cprintf("%c", ch);
gotoxy(i, 23);
cprintf("%c", ch);
}
ch = 186;
for (i = 2; i < 23; i++)
{
gotoxy(1, i);
cprintf("%c", ch);
gotoxy(80, i);
cprintf("%c", ch);
}
ch = 188;
gotoxy(80, 23);
cprintf("%c", ch);
ch = 201;
gotoxy(1, 2);
cprintf("%c", ch);
ch = 187;
gotoxy(80, 2);
cprintf("%c", ch);
ch = 200;
gotoxy(1, 23);
cprintf("%c", ch);
gotoxy(1, 25);
cprintf("Menu:Esc - Exit Enter - Open mail");
}
if (p == 2)
{
window(9, 9, 71, 23);
textcolor(0);
textbackground(15);
ch = 205;
for (i = 1; i < 63; i++)
{
gotoxy(i, 1);
cprintf("%c", ch);
gotoxy(i, 13);
cprintf("%c", ch);
}
ch = 186;
for (i = 1; i < 14; i++)
{
gotoxy(1, i);
cprintf("%c", ch);
gotoxy(63, i);
cprintf("%c", ch);
}
ch = 188;
gotoxy(63, 13);
cprintf("%c", ch);
ch = 201;
gotoxy(1, 1);
cprintf("%c", ch);
ch = 187;
gotoxy(63, 1);
cprintf("%c", ch);
ch = 200;
gotoxy(1, 13);
cprintf("%c", ch);
gotoxy(1, 14);
cprintf(" Menu: Esc - Exit Left/Right - Prev/Next Mail ");
}
};
</code>
</pre>
</pre>
</div>
</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-4529264865392650172015-10-17T11:47:00.002+03:002015-10-17T11:47:56.881+03:00День Икс<div dir="ltr" style="text-align: left;" trbidi="on">
В нашей жизни всегда есть события, даты, от которых чего-то ожидаешь. Сначала ты долго планируешь, рисуешь в голове различные картинки как это произойдет, а потом терпеливо или не совсем ждешь этот день.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHIH8muwOhph2PwEZh2-EMeYfcSEuevbXihKJudlHpE9Vt3EgyVKxRhc8nRtXUCw5F7wYmzbKMVlMhh5BgHRFQKuDb2rPl66MPtyxu_Wc7dRpkerD8mCoYFLM55XE9Z4FKq66MpPCZtHWe/s1600/1406003614_e9ae6dd525_large.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="514" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHIH8muwOhph2PwEZh2-EMeYfcSEuevbXihKJudlHpE9Vt3EgyVKxRhc8nRtXUCw5F7wYmzbKMVlMhh5BgHRFQKuDb2rPl66MPtyxu_Wc7dRpkerD8mCoYFLM55XE9Z4FKq66MpPCZtHWe/s640/1406003614_e9ae6dd525_large.jpg" width="640" /></a></div>
<br />
<a name='more'></a><br /><br />
В детстве мы все ждали с нетерпением Нового Года или Дня рождения, ведь в этот день должно случиться чудо: либо мы, либо планета станет старше, на мир, пусть даже локально, опустится магия чуда, жизнь изменится. Потом мы становились старше, и вот, допустим, мы ждем начало летних каникул или нового учебного года, чтобы уж в этот раз начать новый период так, чтобы потом было чем гордиться, что вспомнить. Подача документов в ВУЗ и первый учебный день, первый рабочий день на новом месте, на новой должности - волнительный момент вступления в новый этап жизни. Потом появляются другие, менее значимые даты - начало отпуска, выпуск в релиз продукта, старт нового проекта, переезд, путешествие, покупка чего-то крупного, ремонт.<br />
<br />
Все эти даты вызывают некий трепет, накал эмоциональный ожиданий. И вот этот момент наступает, а у тебя ощущение, что тебя обманули. Нет ощущения чуда, нет ощущения, что сейчас происходит что-то необычное. Это как с бутылкой 13 летнего виски, если ее открыть и пить как водку, то не заметишь разницы между купажированным и односолодовым, 3 или 13 летним. Только при правильном употреблении можно заметить насколько напиток отличается по аромату вкуса, насыщенности дубовых оттенков, густотой.<br />
<br />
Мы сами портим эти события ожиданием от Вселенной и Окружающих каких-либо перемен, а надо всего лишь научиться правильно наслаждаться и чувствовать эти моменты. Ну а тот факт, что все идет как по маслу, даже лучше чем ожидалось, говорит лишь о том, что ты этого заслужил и все делаешь правильно, и это не должно обманывать мозг, мол это праздник или важное событие превращается в рутину!<br />
<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-68407995452527011672015-10-11T18:46:00.000+03:002015-10-11T18:46:14.118+03:00Schwalbe Ice Spiker Pro evolution 29 2.25 первые впечатления от прикатки<div dir="ltr" style="text-align: left;" trbidi="on">
В прошлом году я осознал необходимость приобретения зимней шиповки, т.к. пару раз меня неплохо заносило на льду, а все остальное время по льду ездил очень аккуратно. Т.к. я полностью перешел на контакты, то вопрос "купить или нет" не стоял. Изначально думал, что это будут обычный спайкеры, но на чайнике была распродажа, и эво версия стоила на 5 баксов дороже, при это за счет этой разницы как раз попадала в бесплатную доставку.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNh8fY4WUzxpV4i9jVuae7xf-SoQipmkNBoig0383NY51ci4g8yNK1KSX98tV8Xr2AsHU_8Yy_OhE3_5_y6lvDbL8hsGCGGO7NK4xwi3jauOijq7BOg6JupzyiVVTJunrulaudtZ8aGKkc/s1600/IMG_6037.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNh8fY4WUzxpV4i9jVuae7xf-SoQipmkNBoig0383NY51ci4g8yNK1KSX98tV8Xr2AsHU_8Yy_OhE3_5_y6lvDbL8hsGCGGO7NK4xwi3jauOijq7BOg6JupzyiVVTJunrulaudtZ8aGKkc/s640/IMG_6037.JPG" width="480" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<a name='more'></a>Сегодня я поставил резину и решил начать ее обкатывать, т.к. требуется порядка 40-60 километров на пониженном давлении в щадящем режиме. Пока что погода позволяет ездить на шоссере, хотя, когда идет снег, то ни на чем не хочется ехать, но температура все сильнее и сильнее приближается к нулю.<br />
<br />
Про шиповку пишут, что она убивает накат, ездить на ней сложно. Но первое, что бросается в глаза, а точнее ощущается, это звук. При двух атмосферах она работает всеми 5 рядами шипов, создавая гул получше автомобиля, даже на скорости 13-15 км/ч. Это очень удобный бонус при езде по тротуарам и паркам - в отличии от шоссера, меня сначала слышат, а потом видят:)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu17PUMlMplKybb36WJK9cv1IhlTnmNHkdtdntSpyfzbsF7gyaA5C4eXNJ8ThI121Lxq-ri8H4wjM4iUMt6r_gArt7ig5Dj-Bw_Dx9hFAoeNLGCXxBY3LaoP2HEFfg1L2eZzWZz9WSWwh7/s1600/IMG_6017.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu17PUMlMplKybb36WJK9cv1IhlTnmNHkdtdntSpyfzbsF7gyaA5C4eXNJ8ThI121Lxq-ri8H4wjM4iUMt6r_gArt7ig5Dj-Bw_Dx9hFAoeNLGCXxBY3LaoP2HEFfg1L2eZzWZz9WSWwh7/s640/IMG_6017.JPG" width="640" /></a></div>
<br />
Удивительно, что, несмотря на низкое давление и заметно агрессивный протектор, катит она хорошо: 20-25 км/ч без напряга, а при желании можно и до 30 втопить. Думаю, что с нормальным давлением в 3,3-3,4 атм накат будет еще лучше, т.к. меньшее число шипов будет соприкосаться с асфальтом.<br />
<br />
Как оказалось, я совсем отвык ездить на обычной резине - при выезде на грунт, я по привычке стал осторожничать, хотя она вгрызается в грунт, давая отличное сцепление. Вот про асфальт я не могу сказать того же. При взъезде на поребрик угол пришелся между шипов и в итоге ничего хорошего из этого не вышло. Я, конечно же, удержался, но решил впредь такие глупости не делать. Пару раз ощущал небольшое проскальзывание на асфальте.<br />
<br />
Ну что ж, буду ждать зимы, чтобы оценить всю силу этой резины.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-66433327348672376762015-10-06T09:35:00.002+03:002015-10-06T09:35:11.757+03:00PVCS Traker или работа с ПО 10-ти летней давности<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
Бытует мнение, что ИТ конторы очень передовые и динамичные. Но чем дальше, тем больше убеждаюсь, что здесь наблюдается тот же процесс консервации. Если есть бизнес-процес и он работает, то не стоит его трогать. Если есть некая утилита и вроде бы особо не напрягает, то пусть она работает - это дешевле чем искать что-то новое и переучивать десятки, а то и сотни(зависит от размера конторы) человек.</div>
<div style="text-align: left;">
</div>
<a name='more'></a><br /><br />
<div style="text-align: left;">
Вот у нас используется забавный баг треккер PVCS Traker версии 7.5, судя по абоуту - 2002 год. Вот волей судьбы мне приходится кроме обычной работы как с трекером еще делать различные отчеты по нему. Это очень неудобный и рутинный процесс. Года полтора я думал, как бы избавиться от этого, пока в какой-то момент не нашел в сети API этого трекера. И здесь я загорелся. За час был сделан тестовый проект, который поднимал коннект, получал информацию из нужной выборки и выводил ее на экран. Это вселило уверенность в успехе затеи!</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Итак, задача:</div>
<div style="text-align: left;">
Сформировать по каждому программисту количество ошибок, внесенных им, по приоритетам за отчетный период.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Здесь, может быть, я поступил как неправильный автоматизатор, т.к. перенес то, что делаю сейчас руками -есть 5 выборок по разным "критичностям" именно их я и решил использовать.</div>
<div style="text-align: left;">
Программа на вход получает набор из пяти названий выборок, а дальше обрабатывает каждую из них: встречая новую фамилию - она добавляет новую запись в коллекцию, а в соответствующий контейнер помещает номер этого запроса. В результате я получаю список объектов, каждый из которых содержит фамилию и 5 списков с номерами запросов. На все про все - 3 часа + полчаса отладки. На удивление всего было пара ошибок работы с памятью, а так все завелось довольно быстро. При написании старался соблюдать "правила чистого кода", поэтому на выходе получил три класса: Tracker, Report и ReportItem с небольшими методами, каждый из который выполняет однозначно одну задачу. Пришлось кончено забить 5 констант для пяти выборок, но в результате получил повторное использование кода по обработке результатов, т.к. это позволило сделать универсальный метод Посчитатьзапросы(id_выборки).</div>
<br />
Небольшие заметки:<br />
<ul style="text-align: left;">
<li><span class="js-showhide__target">TrkQueryInitRecordList<wbr></wbr><span class="g-word-break"></span>(trkRec,QueryName,0,0); - получить допуступ к выборке</span></li>
<li><span class="js-showhide__target">
TrkGetNextRecord(trkRec<wbr></wbr><span class="g-word-break"></span>); - получить следующий запрос из выборки</span></li>
<li><span class="js-showhide__target">
TrkGetNumericFieldValue<wbr></wbr><span class="g-word-break"></span>(trkRec, "Id", &buf.Id); - получить значение целочисленного поля из запроса</span></li>
<li><span class="js-showhide__target">
TrkGetStringFieldValue<wbr></wbr><span class="g-word-break"></span>(trkRec, "Owner", TRK_MAX_STRING, buf.Owner); - получить значение строкового поля из запроса</span></li>
<li><span class="js-showhide__target">
TrkProjectLoginEx(trkHandle<wbr></wbr><span class="g-word-break"></span>, Login.c_str(), Password.c_str(), Project.c_str(), Server.c_str()); - установка соединения</span></li>
<li><span class="js-showhide__target">
TrkProjectLogout(trkHandle<wbr></wbr><span class="g-word-break"></span>); - закрытие соединения</span></li>
</ul>
<div style="text-align: left;">
Так же была найдена<a href="https://github.com/afurlanet/ci-factory/tree/master/Current/Product/Production/Common/Tracker.Common" target="_blank"> C# обертка над либой tktool</a></div>
<br /><div style="text-align: left;">
Порой требуется немного усилий, чтобы избавить себя от чего-то рутинного, скучного и давно надоевшего. При этом, сам процесс, а так же результат, приносят должную порцию удовольствия.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-41212908560784797322015-10-05T18:16:00.001+03:002015-10-05T18:16:28.273+03:00Осенний Экспресс II 200 км. Последний бревет сезона 2015<div dir="ltr" style="text-align: left;" trbidi="on">
Про бреветы я впервые услышал чуть больше года назад. В тот момент это казалось чем-то недостижимым и сверх далеким. Но после <a href="http://dragomirnote.blogspot.ru/2015/06/200.html" target="_blank">июньского отпуска</a>, во время которого я взял дистанцию 200 километров, я снял для себя вопрос о бреветах с повестки дня. Мне хотелось испытать себя, как и требует этого рандоннерское движение, и я это сделал. Но преждевременная покупка шоссера все изменила. Во мне проснулась жажда скорости и новые цели появились на горизонте. Но, что-то мой график никак не совпадал с графиком бреветов от клуба Караван. Не совпадал до 3 октября, дата последнего бревета в сезоне, который я не мог пропустить! И я это сделал!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYpf7TAg7a9aNz_A-Z9fH1QmbGGte5ExW95WwbxyM8fPH5nHgACBufiI5a0M2PPEeBrW-jr2pZhu5FE6eupUgWoOZRv1fSPMjgDneph0qGPYAO-EQIVyLqFLmGQ3X5BH3Q403VXOXdDaq9/s1600/ac39a26ce39e.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYpf7TAg7a9aNz_A-Z9fH1QmbGGte5ExW95WwbxyM8fPH5nHgACBufiI5a0M2PPEeBrW-jr2pZhu5FE6eupUgWoOZRv1fSPMjgDneph0qGPYAO-EQIVyLqFLmGQ3X5BH3Q403VXOXdDaq9/s640/ac39a26ce39e.png" width="640" /></a></div>
<a name='more'></a>Итак, 2 октября 2015 года. Я ушел чуть по раньше с работы, по пути домой забежал в магазин за бананами, парой сникерсов, завтраком. И пошел готовиться. Первым делом я сделал самое главное - сбросил на гармин трек маршрута, и вбил в Google Keep легенду маршрута, которые появились в сети в обед. Потом почистил велосипед, поставил на шоссер новые педали(SDP PD-M780), т.к они меньше размером, и лучше подходят для шоссера. Да и старые педальки за сезон уже немного разносились - левая стала поскрипывать - почистил их WD-40 и оставил их ждать момента, когда я их тщательно почищу и избавлюсь от раздражающих звуков.<br />
<br />
Потом "обновил" воздух в колесах, благо с большим насосом это дело пары минут. Попутно делал перерывы для подпидки ужином, орешками и соком. Смазал цепь для сухой погоды, т.к. по прогнозу должно было быть солнечно и сухо. Установил фару и два аккума, т.к. утром и вечером уже темно. С каждой проходящей минутой волнение от предстоящего дня усиливалось, поэтому надо было чем-то занимать руки. Собрал рюкзак, кинув в него одну флягу с изотоником, полулитровую бутылку воды(чтобы на старте пополнить основную флягу), запаску, шестигранники, запасной замок на цепь, энергетические батончики и бананы.<br />
<br />
Потом был самый сложный момент - выбор в чем ехать:) Я разложил все 10 джерси, велоштаны, термуху... смотрел на это все и думал, "вот жеж блин, мне нечего надеть!" Вспомнил про отличную осеннюю форму от Shimano коллекции 2014 года, которая недавно проходила по распродаже на чейне, вздохнул, и решил, что поеду не по феншую - на Спеше в Кубовской форме, поддев джерси и термуху на верх.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf0VyS4egPAkta4mJLSyqJfTkrUlPnUZovvn4mNvwI4PFckRRU27PcdWSQIIFgDbsBmA-_LYVY-zlvF9C76MUvxYtWEznuE7hPd3D8eO4ssy9GWUkXv-e5R72WgQZmaYrabGIdjpgGE8H6/s1600/3rel6NHgyKs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgf0VyS4egPAkta4mJLSyqJfTkrUlPnUZovvn4mNvwI4PFckRRU27PcdWSQIIFgDbsBmA-_LYVY-zlvF9C76MUvxYtWEznuE7hPd3D8eO4ssy9GWUkXv-e5R72WgQZmaYrabGIdjpgGE8H6/s640/3rel6NHgyKs.jpg" width="640" /></a></div>
<br />
Закончив все подготовки, я лег спать аж в 9 часу вечера, надеясь уснуть. Но в результате провалялся в кровати до 11 часа, когда все же сила сна взяла верх над волнением. Честно, боялся проспать, т.к. несколько дней подряд сонным выключал будильник и валялся еще пару часов после него.<br />
<br />
Но вот в 5 утра играет первый будильник, и, как обычно бывает со мной в подобные моменты, я быстро встаю, чувствую себя бодрым и отдохнувшим, поэтому сразу выключаю уже ненужные три резервных будильника, радуясь своему телу, которое не захотело больше спать или нежиться в теплой постели. А за окном непривычно темно. С некой горечью вспоминая отпуск, когда в шестом часу утра солнце уже во всю прогревало палатку, иду на кухню делать завтрак и кофе. Весь вечерний мандраж сняло как рукой - я проснулся, а значит теперь все в моих руках или ногах, остается только взять шоссер, выйти и сделать это. Чуть меньше часа на утреннее чтение новостной ленты, завтрак и последнюю проверку. На балконе прохладно, поэтому точно поеду в термухе. Закрываю дверь и выхожу на улицу.<br />
<br />
На улице оказалось не совсем и холодно, даже сильный ветер, не такой и холодный, каким казался на высоте 9 этажа. Пробегает мысль вернуться и оставить термуху дома, т.к. ее некуда положить. Но этим утром я решил быть немного суеверным, поэтому не стал возвращаться. Спешить некуда - до Балашихи всего-то 30 с небольшим километров, на которые у меня есть полтора часа до начала регистрации. Поэтому я решил никуда не торопиться, дав мышцам как следует проснуться, наматывая километры предрассветных пустынных московских улиц.<br />
<br />
Ближе к Измайловскому парку выглянуло ленивое осеннее солнце, окрасив все вокруг в прекрасный оранжевый оттенок. На дорогах ехали одинокие машины, ближе к шоссе Энтузиастов стали попадаться первые прохожие. Город просыпался. Перейдя по подземному переходу Энтузиастов я с радостью увидел, как в направлении Балашихи едет велосипедист. Издали узнав в фигуре Юру на красивом Look'e, я быстренько нагнал его, жестом поприветствовал, и поехал следом. Что не говори, а официальное разрешение велосипедистам ездить по полосам общественного транспорта - одна из лучших инициатив. Самого транспорта не было, поэтому мы спокойно крутили педали в направлении поднимающегося солнца. До старта оставалось чуть меньше 10 километров. Какое-то, давно забытое чувство, согрело душу, да еще и солнце, и мне стало становиться жарковато. Все же термуху надо будет снять на старте. <br />
<br />
В эти 10 километров я сразу заметил ключевую разницу между катушками Катушкина и подобными мероприятиями: не нужны никакие рации, ты прекрасно понимаешь, что делает твой попутчик, даже отмашку о перестроении в полосу левее перед съездами вправо, даете одновременно.<br />
<br />
Ближе к заветному макдаку, точке старта, количество машин стало увеличиваться. Либо москвичи решили дружно поехать в последние солнечные деньки на дачу, либо это обычное состояния этого шоссе в это время. И в этот момент я впервые пошел не справа от затора, а сквозь него. После инцидента по весне, когда я на найнере не вписался и снес зеркало машине, я не рисковал так. Но сейчас есть напарник, который идет первым, да и руль всего 42 сантиметра шириной, а не 70. В итоге довольно быстро мы прошли, словно нож сквозь масло, сквозь затор.<br />
<br />
Пройдя несложную регистрацию я пошел за кофе. Вернувшись я наблюдал непривычную для меня картину - со всех сторон стали подтягиваться шоссеры, кто-то доставал их из машины, кто-то приехал сразу на нем. Как-то непривычно. Все в шлемах, в лайкре, в общем все свои:) Сразу пошли свои шутки, а местные с любопытством наблюдали за происходящим. Порадовал разговор двух мужиков "- Ты только посмотри на них, я тут себе машину купил на ходу за 10 тысяч, а у них каждый велосипед в разы дороже...". После этой фразы я обвел взглядом технику, и прикинул в голове, что 24 участника, у каждого велосипед не меньше 50 тысяч стоит, если их все взять и продать, то можно где-нибудь в Брянске купить однушку:)<br />
<br />
В 8:04 был объявлен общий старт. Мне не хватило опыта, чтобы последовать за парнями в левый ряд стоящих в заторе автомобилей, как это сделали "лидеры", и я потащился вместе с основной группой, вместе с которой и пропустил поворот направо. Так я потерял минут 15, т.к. свою ошибку мы поняли только спустя 2 километра. К моменту возвращения на маршрут, истинные лидеры, среди которых был как раз Юра, уже были в 6 километрах от нас.<br />
<br />
Вернувшись на маршрут мы шли плотной группой из 10 человек, уже спустя километр догнали девушку на МТБ, потом обогнали еще одну пару велосипедистов, которые свернули правильно. Постепенно я из хвоста группы перешел ближе к "Красным лидерам". Так я для себя обозвал двух мужчин в красной форме, которые, видимо, собирались проехать весь маршрут на пару. Сразу было видно, что они сильнее группы, т.к. на небольшом участке их незначительный отрыв постепенно увеличивался. В один из моментов я догнал их, и решил держаться за них, как ориентир. Благо их темп, в целом, мне подходил, и я надеялся подольше продержаться с ними. После выезда на Егорьевское шоссе мы стали заметно отрываться от группы позади, а когда впереди показалась пробка, они сделали то, к чему я не был готов, выехали на встречку.<br />
<br />
Честно говоря - одно дело ехать в левой полосе, когда тебя отделяет отбойник от встречки, или пробираться меж стоячих рядом машин, но вот ехать по встречке, нарушая ПДД(сплошная) это страшно. Спасибо "лидерам", они работали слажено, держа меня в курсе происходящего - жесты рукой, все отмашки о поворотах, торможении, все было в нужные моменты времени. В какой-то момент мы так обогнали кроссовер с велосипедом на крыше.. Водитель нам помахал рукой))<br />
<br />
До первого КП в голове крутилась мысль, что вот этого ощущения мне не хватало в августе во время <a href="http://dragomirnote.blogspot.ru/search/label/%D0%9E%D1%82%D0%BF%D1%83%D1%81%D0%BA%20%D0%BD%D0%B0%20%D0%BA%D0%BE%D0%BB%D0%B5%D1%81%D0%B0%D1%85%202" target="_blank">второго отпуска.</a> Это чудное ощущение, что еще нет 9 утра, а ты уже проехал больше 50 километров. Многие знакомые еще спят, другие лениво пьют утренний кофе, а в тебе во всю уже кипит кровь, организм жаждет новых километров, дороги, скорости. Непередаваемое ощущение, которое, к сожалению, к обеду проходит, т.к. уже все проснулись:) Во втором отпуске мы в лучшем случае к 10 утра проезжали первую 20-ку, но никак не 80 километров. <br />
<br />
9:45 первый контрольный пункт - магазин "Дикси" Гжель. По легенде это должен быть 48 километр, по одометру - 52, а суммарно - 84. Удивительно, но никакой усталости нет. Ногам было немного непривычно ходить, но это быстро прошло. Для выполнения чекового контроля, необходимо было что-то купить в магазине. Выбор не сложный - бутылка актива для пополнения первой фляги. Таблетка изотоника и можно выдвигаться, т.к. "красные лидеры" прошли контроль по смс, и двинулись дальше, а мне хотелось их догнать.<br />
<br />
Следующие 20 километров я шел в хорошем настроении, с отличной скоростью. Ощущение полета не покидало меня. Дыша полной грудью воздухом, наполненным запахами осени, я пьянел от удовольствия. Как потом оказалось, 10 километров этого участка я прошел на рекордных для себя 39,9 км/ч. Я всерьез верил, что смогу проехать за 8-9 часов, ведь пока что все шло хорошо: отличная дорога, отличная погода. Я боялся, что против ветра пойдет хуже, но надеялся, что ветер утихнет. Но, как это уже случалось, не стоит хвалить дорогу, т.к. после этого она обычно начинает портиться. А ведь впереди был поворот на север...<br />
<br />
<div style="text-align: right;">
"На север... рвет ветер грудь... но север! На веки взял меня ..."</div>
<div style="text-align: right;">
Пилигрим "На север!"</div>
Как ни странно, но именно эту песню я вспомнил, свернув с Егорьевского шоссе. Дальше пошла удивительная дорога. Изрекая маты, их уносило ветров вдаль, а я еле продвигался вперед. Скорость вообще обладает удивительной особенностью: 25 км/ч могут восприниматься как очень быстро, если до этого приходилось тащиться 15 км/ч или очень медленно, если ехал под 40-к. Собственно из-за этой относительности восприятия я и купил в свое время велокомпьютер, чтобы иметь абсолютное представление о скорости. Так вот дорога выглядела очень хорошо - ровный слой среднего размера гравия. Немного жестковато для шоссера, но в целом ничего серьезного, если бы не один факт. Видимо это покрытие было нанесено на предыдущее без какой-либо предварительной обработки. В результате вроде бы ровная дорога скрывала сотни небольших ямок, которые били в ладони и плечи, съедая все усилия, которые я прикладывал, чтобы набрать скорость.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsRR8XbuYo8cAtV6PqPinx_cnOwNiESvZXTSB1Xwaqa46bmlZYP5KZf-Qykb76qIhqzGHieDpf8pTa6zLloCcB5-V5mS0vpZUaI_nTbiEvAnKrHniU_bOJeTyF3xhWqjtLgOBsgN7auiPE/s1600/vvVH9qFssSw.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="420" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsRR8XbuYo8cAtV6PqPinx_cnOwNiESvZXTSB1Xwaqa46bmlZYP5KZf-Qykb76qIhqzGHieDpf8pTa6zLloCcB5-V5mS0vpZUaI_nTbiEvAnKrHniU_bOJeTyF3xhWqjtLgOBsgN7auiPE/s640/vvVH9qFssSw.jpg" width="640" /></a></div>
<br />
<br />
На этом участке я безумно захотел на комфортный найнер, с его толстыми колесами, воздушной вилкой, ну или хотя бы на циклокросс. Но свой выбор я сделал - шоссер, а значит я должен привыкать ехать по тому покрытию, которое впереди, а не мечтать о чем-то другом!<br />
<br />
Следом закончился небольшой участок леса, и пошли открытые участки, на которых я встретил Его! Беспощадный Ветер жаждал сломать, остановить, и даже опрокинуть меня. Дорога не становилась лучше, а я совершил самую главную ошибку - попытался идти на "запланированной средней" в 25 км/ч, в результате потратил куда больше энергии, чем ожидалось. Мое перемещение стало рваным. За один спринт я проходил от 2 до 5 километров, после чего стал делать остановки на минуту-две. Расход воды стал увеличиваться, причем я, явно, пил больше, чем следовало, и как результат спина стала мокрой. Это привело к самому страшному состоянию - тебе холодно от ветра, ты стараешься вырабатывать больше тепла, и как результат спина мокнет еще сильнее,а запас сил уменьшается. Примерно так со мной было по весне, когда я ехал <a href="http://dragomirnote.blogspot.ru/2015/04/140.html" target="_blank">140 километров</a>. Пару раз боковым ветром меня снесло на обочину, чудом удалось удержаться. По дороге стали попадаться поваленные деревья. Как я узнал потом, на ночь и утро по этому району проходило штормовое предупреждение о ветре с порывами до 20 м/с. В отдельные моменты времени моя скорость падала до 15 км/ч на плоскаче! Я решил во что бы ни стало добраться до второго КП, где подкрепиться бананами и отдохнуть как следует. <br />
<br />
12:00 Второй КП 102 километр марафона или 134 за день. КП представляет из себя обычное сельпо. Здесь я догнал парня, который шел впереди. Увидев, что в магазине очередь ,а он бегает посмотреть за велосипедом, я окрикнул его еще подъезжая, давая понять, что присмотрю за его техникой. После того, как он прошел чековый контроль, я пошел в магазин. Обсудили погоду. Я немного успокоился, оказывается ветер пытается сломать не только меня. Этот парень вообще небольшой участок пробежал, т.к. устал крутить педали "в холостую". Пока я ел бананы, стал подтягиваться народ. Здесь я упустил из вида временной фактор, удобно лег на лавочку. Точнее не совсем удобно: ветер продувал меня, а при попытке выпрямить ногу у меня жутко свело стопу. Очнулся я спустя полчаса. Все же шутить шутки и пытаться проехать на результат - это не совместимо. Как раз два парня из Подольска собрались в дорогу, я решил, что возьму их как ориентир, тем более, что у одного был пульсометр, а значит хотя бы по нему можно будет ориентироваться в силе нагрузки.<br />
<br />
Но за все надо платить. И если я сидел у них на колесе, то не мог же я после того ,как они свернули в Павловском Посаде за бананами поехать дальше. Воспользовавшись 10-ти минутной остановкой, я старался как следует размять спину, которая к этому моменту стала ныть из-за рюкзака. Потом мы попали на перекрытый ж/д переезд, который надо было проскочить, а не терять на нем время. В какой-то момент я заметил, что парни, которые шли, меняя друг друга, стали сбавлять темп, а дорога в это время шла в горку, против ветра. Я ощущал у себя достаточно сил провести их, и впервые для себя вышел в голову колонны. С самого начала бревета в голове крутились извинения, которые я хотел высказать тем, у кого сидел на колесе, т.к. не думал, что буду готов сменить ведущего. И вот мои извинения не надо высказывать, мне предоставился шанс. Очень интересное ощущение, когда видишь жест рукой, после чего впереди идущий отодвигается и тебе надо ускориться, победить вернувшееся сопротивление, после чего опередить коллегу и занять свое место. В этот момент дух кооперативной работы зашкаливает, больше нет никаких мыслей, есть только ты, дорога, и средняя, которую надо держать. Довольно простой набор, вроде бы простая задача, но реализация не всегда такая.<br />
<br />
Я вот весь последний месяц испытываю кайф от руля-барана, т.к. момент перехода в нижний хват обладает некой магией механики, этакий ритуал поклонения скорости. Ты отпускаешь пистолеты, слегка распрямляешь плечи, и плавно опускаешься ниже. Все это время, не знаю мгновения или секунды - когда как, ты крутишь на постоянном каденсе, руки не касаются руль. И в момент одновременного обхвата двумя руками руля все тело выстреливает. Резко уменьшается сопротивление, ноги начинают крутить быстрее, а спустя миг палец правой руки щелкает пистолет. Этот щелчок уже превратился в триггер в мозгу, все накопленные и восстановленные силы выстреливают ,и ты как пуля ускоряешься. Ну может быть не как пуля, но визуализация в голове работает так. Этот триггер мигом очищает мозг от лишних мыслей. Думать не надо - надо крутить!<br />
<br />
И вот я выхожу впервые вперед, выстреливаю, и наша скорость начинает расти. Так мы проходим метров 400, пройдя подъем и поворот, уйдя от лобового ветра, после чего я ощущаю ужасную боль в пояснице. Ощущение, что меня прострелили. Через боль довожу нас до ближайшего подходящего места, где показываю остановку и валюсь на землю. Не знаю, сколько мы здесь провели, не больше 15 минут, но суммарно остановок со второго КП хватило оставшимся там, чтобы нагнать нас.<br />
<br />
В этот момент я оставил все надежды пройти за 9 часов. Остается только идти со всеми ,т.к. не ясно, как поведет себя спина. Итак, нас уже не трое, а 8 человек. Среди нас был один найнер, а значит можно не рассчитывать на возвращение на среднюю 30 км/ч на последнем участке. Вот интересно, я еще не доехал до третьего КП, а уже думал про последние 50 километров. Зачем-то забегал вперед.<br />
<br />
По пути к третьему КП как раз мужик на найнере неудачно словил край дороги и очень неудачно слег, выломав при этом ручку заднего тормоза. Крейсерская к этому моменту была неприлично малой - 24-27 км/ч. И, если для найнера 24-27 - это отлично, то на шоссере это не то.<br />
<br />
15:20 Третье КП 152 километр. К моему сожалению, у большей части нашего импровизированного пелотона не было цели успеть в какое-то определенное время, поэтому еще за 15 километров до КП начались разговоры про кафе с кофе. В село Мамонтовка нас ждали двое парней, которые шли впереди, и сюрприз - село было без электричества, т.к. порывы ветра где-то оборвали ЛЭП. Здесь мы простояли около 40 минут, т.к. народ заказал кофе в турке, и ждал пока его приготовят. Видимо хорошо, что электрификация не пошла пока что далеко, и все еще есть газ на кухнях.<br />
<br />
Следующий участок был немного скучный, т.к. обзавелись отстающим хвостом, плюс в Ногинске хвост потерялся на повороте, а в самой группе случился завал с небольшим повреждением пистолета. Тем временем солнце клонилось к закату, и было прямо перед нами, в результате чего ехать становилось сложно - мало у кого были солнцезащитные очки, что и стало причиной завала. Более серьезной проблемой стало то, что по расчетам мы не успевали к заходу солнца на финиш, т.е. мы в лучшем случае вкладываемся в 11 часов..<br />
<br />
Это немного портило мне настроение, в очередной раз руша мою картинку. Но с этим я смирился. На Щелковском шоссе нас ждала пробка, которую мы начали пытаться объезжать справа, по разбитой обочине, но потом меня достало, и я решил применить новый скилл - езда по встречке, благо наличие переднего света давало мне преимущество перед остальными. Немного потупив на правильном повороте к финишу мы потеряли еще минут 10.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz74xc02zZhLo2QkPfF0uKAZsqCFR2mJzVp00y0H0ECAJA-8QWjFRphIL4kTT5QfBIzqk4pF2NE-A8sAPb8omR7JS8cnTcjM66aVcb-J0OHMr2tJfojfPdGSoWKNAYKvk4VU0lPpc7ct6W/s1600/208383_600.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="229" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiz74xc02zZhLo2QkPfF0uKAZsqCFR2mJzVp00y0H0ECAJA-8QWjFRphIL4kTT5QfBIzqk4pF2NE-A8sAPb8omR7JS8cnTcjM66aVcb-J0OHMr2tJfojfPdGSoWKNAYKvk4VU0lPpc7ct6W/s320/208383_600.jpg" width="320" /></a></div>
<br /><br />
И вот на часах 19 часов вечера, Балашиха, шоссе Энтузиастов, Макдак, Финиш! Можно посидеть в тепле, дать просохнуть спине и плечам, выпить кружечку горячего напитка, поделиться впечатлениями. После чего меня ждала дорога назад. Еще 30 километров. Кто-то отправлялся на ж/д, кто-то брал такси. Но я для себя все решил. За одно со мной поехал парень на циклокроссе, который по стечению обстоятельств остался сегодня без света, а т.к. было уже совсем темно, то надеяться только на желтую жилетку было бы глупо. С ним мы долетели до съезда на Измайловское шоссе, где мы расстались и я поехал один.<br />
<br />
Было глупо отправляться с полупустой флягой на 30 километров. Вообще, после нескольких неприятных случаев, связанных с окончаниям запаса воды раньше точки следующего пополнения, я превратился в жертву кораблекрушения, которая запасает сухари. Я редко езжу с меньше чем половиной флягой больше чем на 10 километров. Но в этот раз, видимо из-за усталости, я упустил этот факт из вида. Если до Преображенской я ехал довольно бодро, откуда-то появились силы, и я шел 25-35 километров в час, то потом общая усталость стала давать о себе знать, я перешел на первую звезду спереди, держался 20-25 километров в час. До Последние капли из фляги я выпил, проезжая по Галушкина, и жажда начинала меня мучить, поэтому я решил, что некуда уже торопиться, можно поискать по пути источник жидкости, коим оказался ларек возле метро Ботанический сад. Удивительно, какой вкусной может быть теплая кока-кола, для замершего и уставшего человека. Выпив с ходу половину маленькой бутылочки, влил остаток во флягу, я поехал домой.<br />
<br />
Цифра 274 километра грела душу, я возвращался пусть и не с той победой, на которую рассчитывал, но все равно удовлетворенный проведенными 15 с половиной часами. Это был удивительный день, подаривший столько новых ощущений и эмоций. Показавший, что есть такое шоссейный велосипед в его исконном значении. Теперь я знаю, какие ошибки совершил, посмотрел кто на чем и как проезжает бреветы, сделал выводы, и буду готовиться к следующему сезону, в котором меня ждут новые 200-ки и 300-ки.<br />
<br />
Первым делом к весне следует продумать правильную разгрузку спины. Видимо надо поставить крепления для еще двух фляг, чтобы запаса воды было достаточно на 70-100 километров, так же подобрать правильных размеров сумку под раму, в которой при необходимости можно разместить сменную джерси, перекус. И конечно надо отрабатывать навык планирования поездки, особое внимание уделить правильному питанию на дистанции. Думаю, что пульсометр так же поможет впредь не тратить зря силы и держаться в более экономных режимах на сложных участках, приберегая энергию для последней трети пути.<br />
<br />
<br />
<br /></div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0tag:blogger.com,1999:blog-2020567755118600946.post-68549795633054235092015-09-06T21:04:00.000+03:002015-09-06T21:04:12.960+03:00Восстановление работоспособности Acid 29 после отпуска<div dir="ltr" style="text-align: left;" trbidi="on">
Сегодня с утра решил, что пора заняться велосипедом, тем более, что накануне пришла посылка с CCR. Первым делом заменил передний ротор на 180 мм. Знаю, многие говорят, что 180 мм - много. Но за время отпуска много раз были случаи, когда при езде с горки я не чувствовал тормоза, поэтому решил усилить их. Один из минусов этой затеи - теперь следующие километров 30-50 надо будет посветить притирке ротора, т.к. он при вращении издает жуткие звуки.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_19D0-R8hVaL9S7WhbqCrZ1MLPRBZ9zILL8Jpykqz843G6eOPuWM3sdozERweL_y9ZmxMHpCXPhdlxQ7fDQ5Nl04kp3npkwWRoEQ8bzHOfT9tijf4L7puGBcDZh52iLzDLd8L0KnXlROu/s1600/IMG_5863.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_19D0-R8hVaL9S7WhbqCrZ1MLPRBZ9zILL8Jpykqz843G6eOPuWM3sdozERweL_y9ZmxMHpCXPhdlxQ7fDQ5Nl04kp3npkwWRoEQ8bzHOfT9tijf4L7puGBcDZh52iLzDLd8L0KnXlROu/s640/IMG_5863.JPG" width="640" /></a></div>
<br />
<a name='more'></a>Оказывается, что при наличии дома набор инструментов X-Tool больше ничего не требуется - все необходимые съемники, переходники есть, в очередной раз убеждаюсь, что не зря купил его в начале сезона.<br />
<br />
После завершения работ над передним колесом, перешел к заднему: замена тормозных колодок, кассеты и подстройка переключателя. На удивление тормоза у меня совсем сдулись. Колодки были еле живые, и свежие стали вплотную. Пришлось раздвигать суппорт отверткой, но и после этого дело не шло - ручка тормоза опускалась вплотную к грипсе, а колодки лишь слегка двигались. Но это все исправилось прокачкой свежего минерального масла. Сегодня у меня впервые удалось заменить его "на чистую". Все же BR395 в разы лучше своих предшественников: больше нет необходимости отлавливать уровень жидкости с открытой камерой - достаточно через специальную насадку вкрутить шприц и "отсасывать" старую жидкость.<br />
<br />
Следом под замену пошла кассета. Я, почему-то, представлял себе, что это сложное занятие, как замена каретки без должного размера рычага, но на деле оказалось все очень просто. Когда снял старую кассету - ужаснулся. Я впервые снял кассету и увидел, сколько же грязи на ней.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZYsMXmq4_aV7MAcyje85GL1pOwATHKN8bZysA8p6c0nDFlk9IQbd-U7bZZEmo1PchorUUuWx84NePHwuYxVobN90vY7fV3r2EVrQbh5UOSgi9PspULNtXtjA15NpxvgQaJIyDpdQ5mD8t/s1600/IMG_5865.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZYsMXmq4_aV7MAcyje85GL1pOwATHKN8bZysA8p6c0nDFlk9IQbd-U7bZZEmo1PchorUUuWx84NePHwuYxVobN90vY7fV3r2EVrQbh5UOSgi9PspULNtXtjA15NpxvgQaJIyDpdQ5mD8t/s640/IMG_5865.JPG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdmh6J3MnTjuEqqFDk_kwsd2ZsYzwX1DvcaRt6UK-OHtmfG3DjqWTYYKcAOA_DPMNmoz0p5o23bpC31hAa2kAoNmqZkrCgn-p76dyh35ZXLMYhvKrjCkw572t1lHnWjkE6b06banCRkQcr/s1600/IMG_5866.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdmh6J3MnTjuEqqFDk_kwsd2ZsYzwX1DvcaRt6UK-OHtmfG3DjqWTYYKcAOA_DPMNmoz0p5o23bpC31hAa2kAoNmqZkrCgn-p76dyh35ZXLMYhvKrjCkw572t1lHnWjkE6b06banCRkQcr/s640/IMG_5866.JPG" width="640" /></a></div>
<br />
Что же, можно делать выводы - следующую кассеты я буду снимать и мыть не реже, чем каждую тысячу км. А следующая у меня - Shimano XT M771. Внешне очень вызывающая. Вообще, я бы такие произведения инженерного мастерства не на велосипед ставил, а украшал ими дом!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3F9bp_KtccOpwTWTINb840eqoaiZeQ8SrH1z6H4VXFgrOy-fXMF7RZ7WUbcUwUfAV0UCSAmF9KdiZWEVFiQUpyALe1h_GzPBMeVIaCLYvJ4GqHSU0HtnZW9AeopdFwd5Wfpg_DnRxJTdY/s1600/eh4WWVRlBgY.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3F9bp_KtccOpwTWTINb840eqoaiZeQ8SrH1z6H4VXFgrOy-fXMF7RZ7WUbcUwUfAV0UCSAmF9KdiZWEVFiQUpyALe1h_GzPBMeVIaCLYvJ4GqHSU0HtnZW9AeopdFwd5Wfpg_DnRxJTdY/s640/eh4WWVRlBgY.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPtS4wE_gpFk0JE406yNxARMxBwmNMA_ib7iIdmia_XB1usuvM4HxMMIFyujGOZ31PiW0UQNcLy5cz7X-vmXJf_JfQa0tW3xDn-dEPui9zBfYHcSEjY0w61lepJkssIguJtozAKgscYbIq/s1600/IMG_5847.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="480" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgPtS4wE_gpFk0JE406yNxARMxBwmNMA_ib7iIdmia_XB1usuvM4HxMMIFyujGOZ31PiW0UQNcLy5cz7X-vmXJf_JfQa0tW3xDn-dEPui9zBfYHcSEjY0w61lepJkssIguJtozAKgscYbIq/s640/IMG_5847.JPG" width="640" /></a></div>
<br />
Потом еще немного поколдовал с цепью, проверил качество соединений и вуаля - скорости переключаются как часы, все работает как надо, видимо, Найнер простил измену с шоссером, которую я искупил новыми комплектующими.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjZZIUvTtdESQx-JJ710oJYUL5MzFCGQuLhS7T68xe7t89Wk8gCqAl7BDEPnEfk_EAqbJZzJbVVZ_fyKCNpzoDtd06nN9L0afXIKWDgxSca1akN_6t30-Cl447rsCqVZKtHO0T5Fq8hvA3/s1600/20120910083508.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="426" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjZZIUvTtdESQx-JJ710oJYUL5MzFCGQuLhS7T68xe7t89Wk8gCqAl7BDEPnEfk_EAqbJZzJbVVZ_fyKCNpzoDtd06nN9L0afXIKWDgxSca1akN_6t30-Cl447rsCqVZKtHO0T5Fq8hvA3/s640/20120910083508.jpg" width="640" /></a></div>
<br />
<br />
Итого за два захода, с перерывом на катушку, велосипед вернулся в строй. Осталось поставить новенькие педали M780 и крылья. Думаю, что этим займусь в октябре, а пока что буду докатывать сезон шоссера, после чего достану турбо-трейнер, на котором шоссер проведет всю зиму.</div>
Anonymoushttp://www.blogger.com/profile/08542870868844391620noreply@blogger.com0