tag:blogger.com,1999:blog-25191014470239672672024-03-19T12:47:34.040+03:00Профессия ITИнформационные технологии: карьера, трудоустройство, организация процесса производства программного обеспечения.Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comBlogger131125tag:blogger.com,1999:blog-2519101447023967267.post-55659275669199833622015-11-02T12:11:00.001+03:002015-11-02T12:11:57.454+03:00Программа для записи действий пользователя: psr.exe<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghgonSiAa3NS8EU0NDPKErzxqCiO4LrMdcypre1mTApVNcMARn-EbNNAY0NEsJnNUYN60qYNcN3t5f7MBt880tsNmzrWOqDP1hexxBx-i5lStBs0kjgWb_PEbfUzFvreHQGgblgwIqcmk/s1600/psr.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img alt="Программа psr.exe" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghgonSiAa3NS8EU0NDPKErzxqCiO4LrMdcypre1mTApVNcMARn-EbNNAY0NEsJnNUYN60qYNcN3t5f7MBt880tsNmzrWOqDP1hexxBx-i5lStBs0kjgWb_PEbfUzFvreHQGgblgwIqcmk/s1600/psr.png" title="Программа psr.exe" /></a></div>
У меня давно на примете эта маленькая, но очень полезная программа. Вот ссылка на оригинальный сайт:
<a href="http://windows.microsoft.com/ru-ru/windows7/how-do-i-use-problem-steps-recorder">http://windows.microsoft.com/ru-ru/windows7/how-do-i-use-problem-steps-recorder</a><br />
С её помощью пользователь может по шагам записать и автоматически сделать скриншоты всех своих действий. Затем выслать получившийся архив программистам, чтобы они своими глазками посмотрели в чём проблема. Как говорится, "лучше один раз увидеть…". В Интернете полно описаний её, например:<br />
<ul style="text-align: left;">
<li><a href="http://chaynikam.net/view_lesson.php?id=96">http://chaynikam.net/view_lesson.php?id=96</a></li>
<li><a href="http://pauk-info.ru/programma-psr-zapis-dejjstvijj-polzovatelya/">http://pauk-info.ru/programma-psr-zapis-dejjstvijj-polzovatelya/</a></li>
</ul>
Я бы хотел описать несколько сценариев её использования.<br />
По-первых, можно с её помощью подробно запротоколировать возникшее затруднение в работе программы. Обращаясь в центр помощи Microsoft, я обычно сразу так и делаю. Обычно у тех.помощи после этого доп.вопросов не возникает- всё видно сразу, и они могут в ответе уже сразу прислать готовые рекомендации.<br />
Во-вторых, с помощью этой программы можно писать краткие файлы помощи по работе программы. Благодаря тому, что все скриншоты с описаниями помещаются в html-файл, на выходе получается удобный пошаговый мануал. Его можно хоть в интернете выложить, хоть как хелп-файл использовать. Конечно, это не полновесный хелп, но для небольших программулек очень даже сойдет.<br />
В третьих. Некоторые заботливые программисты размещают в своих программах кнопку и форму для отправки описания проблем в работе с программой. Так вот, данную программу можно автоматически запускать, чтобы пользователь сразу же мог наглядно пошагово воспроизвести возникшее у него затруднение или ошибку.<br />
В четвёртых, можно самому себе записывать краткие напоминалки по работе с той или иной программой.<br />
Вот такая вот замечательная программа- пользуйтесь на здоровье.</div>
Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-60487354030846058802015-04-27T17:43:00.000+03:002018-09-13T20:13:56.496+03:00Удобный способ изучения английского языка<div dir="ltr" style="text-align: left;" trbidi="on">
Многим ИТшникам по работе надо читать англоязычную литературу. Да и не ИТшники порой просто желают самостоятельно изучить английский. Для самостоятельного изучения есть сайты типа <a href="http://lingualeo.com/ru/r/979oe7" target="_blank">LinguaLeo</a>, популярная программа <a href="http://ankisrs.net/" target="_blank">Anki</a>, помогающая пополнить словарный запас с помощью заучивания карточек и много, много других программ и сайтов. Даже в электронные книги встроены переводчики слов.<br />
Всё это замечательно ровно до того момента, как пользователь начнет всем этим пользоваться:<br />
<ul>
<li>Сайты неудобны, т.к. требуют онлайн-обучения. Поэтому в дороге, на даче, в отпуске они чаще всего недоступны. Вроде бы и время есть вплотную заняться иностранным языком, а сайта "под рукой" нет.</li>
<li>Anki. Просто учить слова- это очень скучно и забывается быстро. Практически бесполезная штука.</li>
<li>Встроенные переводчики в "читалки" хороши, когда почти всё понимаешь и надо уточнить перевод 1-2 слова на предложение. А если в одном предложении 3-4 неизвестных слова, то пока их все переведешь по одному, забудешь с чего начал.</li>
</ul>
Очень хороший, удобный способ изучения- это метод <a href="https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D1%87%D1%82%D0%B5%D0%BD%D0%B8%D1%8F_%D0%98%D0%BB%D1%8C%D0%B8_%D0%A4%D1%80%D0%B0%D0%BD%D0%BA%D0%B0" target="_blank">Ильи Франка</a>. Предложение на английском языке, потом- предложение на русском языке. Можно модифицировать этот метод, вставляя в текст перевод не предложений целиком, а отдельных слов. А, если незнакомых слов мало, то можно их выписать отдельным словариком. Все эти способы позволяют постоянно держать перевод незнакомых слов перед глазами. Так читать гораздо комфортнее. А теперь попробуйте в Интернете найдите программу, которая позволяет это сделать!<br />
Я искал- ничего хорошего нет. Поэтому написал свою программу <a href="https://kvl.bitbucket.io/" target="_blank">alvoTranslator</a>. Т.к. я программист, а не коммерсант, то я изначально не пытаюсь ее продавать- не умею этого делать. <a href="https://kvl.bitbucket.io/" target="_blank">Просто берите и пользуйтесь бесплатно</a>. Программу испытывал на себе:<br />
<ul>
<li>Делает вставку незнакомых слов прямо в текст.</li>
<li>Составляет отдельный словарь неизвестных слов.</li>
<li>Запоминает уже выученные слова.</li>
</ul>
С ее помощью с удовольствием читаю: <a href="http://americanliterature.com/" target="_blank">American Literature</a>, <a href="http://www.loyalbooks.com/" target="_blank">Loyal Books</a>. Чего и вам желаю!</div>
Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-45210525774206145312015-02-21T00:12:00.000+03:002015-02-21T00:14:25.335+03:00Домашняя информационная сеть: электропроводка против витой пары<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: left;">
Витая пара</h3>
Довольно распространённое решение на сегодняшний день: провайдер заводит в дом провод "витая пара", а далее на базе маршрутизатора организуется домашняя информационная сеть. Если делать "по-хорошему", то надо:<br />
<ul style="text-align: left;">
<li>Маршрутизатор ставить где-то в уголочке, и от него разводить сеть.</li>
<li>Провод тянуть в коробах или под плинтусом, чтобы он под ногами не лежал, или собака его грызла, или ребенок не трепал.</li>
<li>Выводить провод в Ethernet-розетку.</li>
<li>И патч-кордом подключать компьютер к Ethernet-розетке.</li>
</ul>
Оценим это решение в деньгах:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuOL0PIwtEMmCdjT9ixmfw1HOreg75J5ekV7YNdBsTnwfRwjQCFuGbughbctN_FdTF6uRMCUUtYZLOxj7wyAtNVm7rY2ZRvGgeqkwJXoh0SGGQy_ZffiOQk-GYuybjvX1l_jmz4lk-zZU/s1600/TRENDnet+TW100-BRF114.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjuOL0PIwtEMmCdjT9ixmfw1HOreg75J5ekV7YNdBsTnwfRwjQCFuGbughbctN_FdTF6uRMCUUtYZLOxj7wyAtNVm7rY2ZRvGgeqkwJXoh0SGGQy_ZffiOQk-GYuybjvX1l_jmz4lk-zZU/s1600/TRENDnet+TW100-BRF114.jpg" height="100" width="200" /></a></div>
<ul>
<li>Дешевый 4-х портовый маршрутизатор стоит примерно 1000 р. Это 250 р. на один порт.</li>
<li>Кабель, возьмем 20 м- 400 р.</li>
<li>Розетка- 300 р.</li>
<li>Патч-корд- 30 р.</li>
</ul>
Итого около 1000 рублей + возня с прокладкой. В цену не заложена стоимость коробов.<br />
<h3 style="text-align: left;">
Электропроводка</h3>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcvMcok5EraPz83ya6e7F4DuGVvmeRM6DzX7eLb-kqeko4kgUZeocVlwK_xpuzOGILl7gbXgHBObzj-ep4cgYPR41EWFCWRzjd-oLH_SxdONQsJ7EmgwJybD9KS8lMwhCXWjT3Rwdk3LI/s1600/TL-PA2010KIT.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhcvMcok5EraPz83ya6e7F4DuGVvmeRM6DzX7eLb-kqeko4kgUZeocVlwK_xpuzOGILl7gbXgHBObzj-ep4cgYPR41EWFCWRzjd-oLH_SxdONQsJ7EmgwJybD9KS8lMwhCXWjT3Rwdk3LI/s1600/TL-PA2010KIT.png" height="120" width="200" /></a>Другой вариант: использование электропроводки для передачи сигнала. Для этого нужны адаптеры наподобие этих: <span class="productModel"><a href="http://www.tp-linkru.com/products/details/?categoryid=1657&model=TL-PA2010KIT" target="_blank">TL-PA2010KIT</a>.</span><br />
<span class="productModel">И всё- патч-корд входит в комплектацию.</span><br />
<span class="productModel">Провод от провайдера втыкается в один адаптер, а он вставляется в электророзетку. А у компьютера в электророзетку вставляется другой адаптер и через прилагаемый патч-корд соединяется с компьютером. И никакой возни с прокладкой проводов вообще.</span><br />
<span class="productModel">Стоимость такого комплекта- 2000 рублей. Т.е. как бы дороже витой пары в два раза. Только это цена для первого подключения. Второму подключению нужен будет один адаптер- 1000 рублей. Т.е. для сети из нескольких компьютеров цена такого решения будет соизмерима со стоимостью витой пары. И никакой возни с прокладкой проводов!</span><br />
<h3 style="text-align: left;">
Итог</h3>
<span class="productModel">В эксплуатации адаптеры передачи данных по электропроводке работают устойчиво, без зависаний, по принципу "включил и забыл". Стоимость сравнимая, подключение- несравненно более простое, чем у витой пары. Так что идею я подбросил- пользуйтесь, делайте ваши домашние сети просто, легко и красиво!</span></div>
Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-54508321341574314112015-01-16T11:01:00.001+03:002015-01-16T11:01:22.191+03:00Удаленное управление BitTorrent'ом<div dir="ltr" style="text-align: left;" trbidi="on">
Допустим вы смогли настроить ваш домашний компьютер, чтобы он выполнял роль маршрутизатора, обеспечивая выход в интернет всем домашним устройствам:<br />
<ul>
<li><a href="http://itspeciality.blogspot.ru/2014/11/wifi.html">Как раздавать WiFi с компьютера или ноутбука.</a></li>
<li><a href="http://itspeciality.blogspot.ru/2015/01/blog-post.html">Как автоматически устанавливать соединение с Интернетом при запуске компьютера.</a></li>
</ul>
Однако, есть некоторое неудобство:<br />
<ol style="text-align: left;">
<li>Wifi не будет работать так быстро, чтобы максимально эффективно использовать его для торрентов.</li>
<li>Хочется, чтобы скачанное можно было выложить куда-нибудь в общедоступное место, чтобы можно было этим пользоваться с разных устройств.</li>
</ol>
<a href="http://www.bittorrent.com/">Стандартная "качалка для торрентов"</a> позволяет удаленно, через браузер, управлять процессом скачивания. Для этого:<br />
<ol style="text-align: left;">
<li>Подготавливаем общую папку, видимую с разных устройств по сети. В свойствах выбранной вами папки на вкладке "Доступ" нажимаем кнопку "Общий доступ". В появившемся окне "говорим", кто может получить доступ к папке по сети. Доступ "всем" не ставьте в целях безопасности, а выбирайте конкретных пользователей.</li>
<li>Скачиваем и устанавливаем на ваш домашний компьютер- маршрутизатор BitTorrent-клиент.</li>
<li>В программе BitTorrent заходим в Настройки\Общие и выставляем галочку "Запускать BitTorrent вместе с Windows".</li>
<li>Переходим в Настройки\Удаленный доступ и включаем удаленный доступ, задаем уникальное имя и пароль.</li>
<li>Переходим в Настройки\Папки и указываем папку для скачивания, подготовленную нами в первом пункте.</li>
<li>Выходим из настроек, нажав ОК. </li>
</ol>
Теперь по адресу <a href="https://remote.bittorrent.com/">https://remote.bittorrent.com/</a> вводите имя вашего BitTorrent'a, пароль и получаете доступ в нему из прямо из браузера- увидите интерфейс программы, сможете ставить новые закачки и наблюдать прогресс по существующим закачкам.<br />
Скачанные файлы будут доступны по сети всем вашим домашним устройствам, имеющим доступ к "заветной" папочке из пункта №1.<br />
<h4 style="text-align: left;">
Пара рекомендаций</h4>
<ol style="text-align: left;">
<li>Ссылочку <a href="https://remote.bittorrent.com/">https://remote.bittorrent.com/</a> сохраните с закладках браузера, чтобы всегда была под рукой.</li>
<li>Другой способ удаленного управления- использование программы <a href="http://www.teamviewer.com/">Team Viewer</a>. Замечательная программа, которую вы наверняка захотите поставить на ваш импровизированный сервер, чтобы удаленно им управлять.</li>
</ol>
</div>
Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-61260889276574470222015-01-12T12:35:00.001+03:002015-01-12T12:38:08.399+03:00Как автоматически устанавливать соединение с Интернетом при запуске компьютера<div dir="ltr" style="text-align: left;" trbidi="on">
Если дома надо раздать с компьютера Интернет на смартфоны, планшеты, то, как показано в <span id="goog_751375827"></span><a href="http://itspeciality.blogspot.ru/2014/11/wifi.html">предыдущей статье<span id="goog_751375828"></span></a>, покупать для этого роутер, WiFi-точку доступа не надо- всё делается за 5 минут исключительно средствами ОС компьютера. Однако, при этом надо вручную устанавливать соединение с Интернетом, чтобы остальные устройства получили доступ в Интернет. Как сделать так, чтобы соединение с Интернетом устанавливалось автоматически, при запуске компьютера?<br />
Воспользуемся для этого программой <a href="https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/rasdial.mspx?mfr=true" target="_blank">RASDial.exe</a>, имеющейся в Windows XP/Vista/7:<br />
<blockquote class="tr_bq">
rasdial <имя_соединения_с_Интернетом> <логин> <пароль></blockquote>
<br />
<br />
Эту команду надо поместить в планировщик заданий:<br />
<ol>
<li>В панели управления, администрирование, найдите и запустите "Расписание выполнения задач".</li>
<li>Добавьте новую задачу с параметрами:</li>
<ol>
<li>Выполнить с наивысшими правами.</li>
<li>Триггер: "При входе в систему".</li>
<li>Действия. В строке "Программа" указать rasdial.exe, в строке "Аргументы" задать "<имя_соединения_с_Интернетом> <логин> <пароль>".</li>
</ol>
<li>Нажать ОК, завершив создание задачи.</li>
</ol>
Теперь, при каждом запуске компьютера, по триггеру будет исполняться программа rasdial, которая будет устанавливать соединение с Интернетом. Таким образом, получается, что ваш домашний компьютер будет без всякого вашего участия устанавливать соединение с Интернетом и даже (если вы читали мою <a href="http://itspeciality.blogspot.ru/2014/11/wifi.html" target="">предыдущую статью</a>) раздавать его по WiFi всем семейным планшетам, смартфонам, ноутбукам. Вам надо только его включить.<br />
</div>
Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-49643513448436156072014-11-17T13:10:00.002+03:002015-01-12T11:41:37.885+03:00Как раздавать WiFi с компьютера или ноутбука<div dir="ltr" style="text-align: left;" trbidi="on">
Необязательно ставить точку доступа WiFi для раздачи интернета для смартфонов, планшетов, компьютеров. Любой компьютер на Windows 7 умеет это делать сам. Для этого достаточно сначала создать "виртуальную точку доступа". Для это запустите командную строку с правами администратора и введите команду:<br />
<strong></strong><br />
<strong>netsh wlan set hostednetwork mode=allow ssid="<любое_имя_вашей_сети>" key="<пароль>" keyUsage=persistent</strong><br />
<br />
После этого можно запустить WiFi:<br />
<strong></strong><br />
<strong>netsh wlan start hostednetwork</strong><br />
<br />
Запускать WiFi надо будет при каждом перезапуске компьютера. Поэтому удобней будет сделать файл-скрипт и добавить его в планировщик Windows c параметрами:<br />
<ul>
<li>выполнить с наивысшими правами;</li>
<li>запускать при входе в систему.</li>
</ul>
Последний шаг. Идем в "Центр управления сетями и общим доступом", "Изменение параметров адаптера". Выбираем VPN-соединение, через которое организуется выход в интернет. Правой кнопки мыши вызываем локальное меню и выбирает "Свойства". В "Свойствах"- закладку "Доступ". Ставим все галочки, и в выпадающем списке "Подключение домашней сети" выбираем созданный нами в первой команде адаптер виртуальной WiFi сети.<br />
Все, жмем ОК. Теперь после запуска компьютера планировщик заданий будет запускать WiFi, и все данные приходящие на WiFi будут пересылаться компьютером на VPN-адаптер.<br />
<br />
Таким образом, без лишних затрат, не сходя с места, можно быстро подключить по WiFi к интернету все домашние устройства.</div>
Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-81136998675146188452014-11-13T18:03:00.000+03:002015-01-12T11:43:22.956+03:00Как уменьшить размер "флэшки"<div dir="ltr" style="text-align: left;" trbidi="on">
Понадобилось тут уменьшить размер флэшки. Под Windows. В интернете советов- море, но все они требуют установки программ, "ломания" их или покупки. Я сделал проще, без всяких скачиваний, и решил написать тут про это- "на память". Может еще пригодится.<br />
<h4 style="text-align: left;">
Важные оговорки</h4>
<ol style="text-align: left;">
<li> Это точно работает в Windows 7 и выше. Другое не проверял.</li>
<li>Данные надо предварительно куда-то скопировать, т.к. флэшка будет отформатирована.</li>
<li>Делать все внимательно- неправильно выберете номер тома и программа diskpart без лишних предупреждений удалит ошибочно выбранный вами том.</li>
</ol>
<h4 style="text-align: left;">
Поехали</h4>
<ol style="text-align: left;">
<li>Нажать клавиши Win-R.</li>
<li>В появившемся окне вписать diskpart и нажать enter. Будут запрошены права администратора- согласиться.</li>
<li>Запуститься программа diskpart, в ее окошке набрать команду list volume.</li>
<li>Отобразиться таблица томов. Найти под каким номером находится том, расположенный на флэшке.</li>
<li>Ввести select volume <номер тома>, чтобы выбрать том флэшки текущим.</li>
<li>Проверить выбор: list volume. Теперь напротив вашего тома будет стоять звездочка.</li>
<li>Командой delete удалить его.</li>
<li>Нажать Win и в появившейся строке набрать "Управление дисками"- надо найти и запустить панель управления дисками.</li>
<li>В панели управления дисками найдите вашу совершенно пустую, с нераспределенным пространством, флэшку.</li>
<li>В локальном меню флэшки выберите "Создать том".</li>
<li>В появившемся мастере создания томов будет пункт с заданием размера тома- введите, нужный вам размер. Остальное можете не трогать.</li>
<li>После отработки мастера создания тома вы получите флэшку уменьшенного размера.</li>
</ol>
Все, и никаких "головоморочений" со скачиваниями программ не надо.</div>
Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-75614097060155333682014-10-02T13:36:00.001+04:002014-11-17T13:12:24.182+03:00Некоторые соображения о Windows 10<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHU49csgcaG7W9cCelUf7OhEivCjoWSAdZKwFj8Y8E0fgLxS6GVQ5VOFrCtQ8xtr3T9Uf8z0ttiF7pVbvs5yfz30PZVu-gbrwzdMSDkX5vjXMI9LbWIK4ZG9WH-ZWWkGt1ejm__4eVCDU/s1600/Windows-10.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHU49csgcaG7W9cCelUf7OhEivCjoWSAdZKwFj8Y8E0fgLxS6GVQ5VOFrCtQ8xtr3T9Uf8z0ttiF7pVbvs5yfz30PZVu-gbrwzdMSDkX5vjXMI9LbWIK4ZG9WH-ZWWkGt1ejm__4eVCDU/s1600/Windows-10.jpg" height="180" width="320" /></a>Подробности можно прочитать тут: <a href="http://www.cnews.ru/top/2014/09/30/microsoft_predstavila_novuyu_windows_10_foto_587427" target="_blank">CNews</a>, <a href="http://www.pcweek.ru/pc/news-company/detail.php?ID=167293" target="_blank">PCWeek</a>. Хочу обсудить самые интересные новые функции:<br />
<h3 style="text-align: left;">
Меню "Пуск"</h3>
<div style="text-align: left;">
Рабочий стол и меню пуск пользователь обычно открывает только для того, чтобы запустить нужную ему программу. Т.е. на рабочем столе и в "Пуске" пользователь проводит минимальное количество времени. А значит мельтешить плитками совершенно бесполезно: никто не будет сидеть и любоваться как они красиво переворачиваются. </div>
<div style="text-align: left;">
На иконке приложения имеет смысл показать количество новых писем или какой-нибудь галочкой отметить наличие каких-либо изменений, но это статика. Динамике явно нет места. В крайнем случае, если необходимо срочно привлечь внимание пользователя, то можно использовать область уведомлений (трей). Если пойти по такому пути, то плиточный интерфейс вырождается в старые добрые иконки + виджеты. Таким образом, новые изменения в интерфейсе по-прежнему нелогичны и неудобны.</div>
<div style="text-align: left;">
Для планшета плиточный интерфейс удобен- там его и можно оставить, а для традиционного рабочего стола лучше его не использовать совсем. Можно предложить более смелый шаг- единое ядро и два совершенно разных, не пересекающихся внешне интерфейсов для планшетов и компьютеров.</div>
<div style="text-align: left;">
С другой стороны очень заманчива идея объединения рабочего стола и меню "Пуск". Ведь по факту- это дублирующиеся сущности и от этого избавиться было бы правильно.</div>
<div style="text-align: left;">
Как это сделать- трудная задача и на сегодняшний день ответа на нее не найдено. Плитки в Windows 10 по-прежнему бесполезны и раздражают на десктопах.</div>
<h3 style="text-align: left;">
Виртуальные рабочие столы</h3>
<div style="text-align: left;">
Похоже, эту функцию официально добавили и заявили только ради того, чтобы пользователю можно было показать что-то новенькое, ради чего стоит обновляться. Я и до этого уже пользовался с помощью сторонних утилит виртуальными рабочими столами и отказался от них. Нет каких-то особых потребностей в дополнительных рабочих столах совершенно. Уверен, что 99% пользователей не будут пользоваться этой функцией.</div>
<h3 style="text-align: left;">
Окна универсальных приложений (modern UI)</h3>
<div style="text-align: left;">
Очень здорово, что они себя стали вести себя как обычные окна: изменяться в размерах, перемещаться, сворачиваться, разворачиваться.</div>
<div style="text-align: left;">
Только вот интереснейший геморрой себе этим нажила компания. Теперь ей надо поддерживать и развивать еще один API. Сделал новую функцию- добавь ее в WinAPI и в Modern API (или как он там называется), протестирую, задокументирую, учти мельчайшие различия в обоих API. Ничего хорошего в этом нет.</div>
<h3 style="text-align: left;">
Функция SnapView</h3>
<div style="text-align: left;">
Замечательная вещь- прикрутили к десктопу возможность "придочивания" окон. Так гораздо удобнее их располагать на экране, изменять размер. Оцените: раньше вам надо было сузить одно окно, потом расширить другое (2 действия), а теперь это делается одним действием- перемещением полоски разделителя между окнами (1 действие).</div>
<h3 style="text-align: left;">
Функция TaskView</h3>
<div style="text-align: left;">
Еще одна замечательная функция. И добавить нечего-<em> за-ме-ча-тель-но</em>.</div>
<h3 style="text-align: left;">
Вывод</h3>
<div style="text-align: left;">
Большая работа была проделана "под капотом", в невидимой пользователю части ОС. А то, что видно- вполне достойно того, чтобы обновится до "десятки": и плитки слегка "усмирили", и SnapView с TaskView добавили, и "радость гика"- виртуальные рабочие столы теперь официально поддерживать будут.</div>
<div style="text-align: left;">
При обновлении с "семерки" глаз будет резать "новшества" в меню "Пуск", но это совершенно терпимо. Зато остальные "плюшки"- ваши.</div>
</div>
</div>
Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-69296388442910198942014-10-01T11:50:00.001+04:002014-10-01T11:58:33.372+04:00Некоторые соображения о модульных смартфонах<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMfVbYDav1cbzq2SJnUQMJUijJitQ5EHJDKIHg4iY1xpdLOYriZ8XV23pZQJdhqdFjN5onHH8SuOre4Tll9kmITd4JVwVvgsWNPEh9ejoaRpQZ2xj73qEkoKzAspk1CVg_4lkHI2K0ESg/s1600/ara.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMfVbYDav1cbzq2SJnUQMJUijJitQ5EHJDKIHg4iY1xpdLOYriZ8XV23pZQJdhqdFjN5onHH8SuOre4Tll9kmITd4JVwVvgsWNPEh9ejoaRpQZ2xj73qEkoKzAspk1CVg_4lkHI2K0ESg/s1600/ara.png" title="Проект "Ara"" /></a>Я хочу поговорить о проекте "Ara" от компании "Google":<br />
<a href="http://www.projectara.com/">http://www.projectara.com/</a><br />
<a href="https://phonebloks.com/en">https://phonebloks.com/en</a><br />
<a href="http://www.cnews.ru/top/2014/09/30/google_raskryl_podrobnosti_o_svoih_revolyucionnyh_modulnyh_smartfonah_587383" target="_blank">Google раскрыл подробности о своих революционных модульных смартфонах</a><br />
Идея сама по себе заманчива: покупаете базу и на нее навешиваете доп. оборудование. Т.е. можно собрать смартфон под себя: по деньгам и по потребностям. Но за красотой идеи видны некоторые существенные проблемы:<br />
<ol>
<li>Снижение прочности корпуса. Если уронить телефон, то из-за обилия подвижных частей что-то отсоединится и перестанет работать (это непременно произойдет согласно закону Мерфи). А то и просто телефон разлетится на мелкие модули по всем углам.</li>
<li>Каждый модуль будет иметь свой корпус. Как результат- увеличение размера смартфона из-за толщин корпусов модулей.</li>
<li>Не совсем понятно, как можно будет обеспечить привлекательный внешний вид, чтобы наружу не торчали стыки модулей. Если использовать чехлы/крышечки, то у них должны быть отверстия для кнопок. Т.к. телефон модульный, то кнопки пользователь может расположить в любом месте, где ему удобно. Выход: разве что делать на внутренней стороне крышечки перфорацию, чтобы пользователь сам выламывал отверстия в ней в нужном месте.</li>
<li>Наверное и цена возрастет, ведь в данном случае невозможно будет удешевить конструкцию за счет интеграции всего функционала в одном чипе.</li>
</ol>
В общем, будем следить за развитием проекта- уж больно точно он попадает в поговорку "и хочется, и колется".</div>
Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-18741166683319801452013-08-26T23:17:00.000+04:002013-08-26T23:23:16.511+04:00Планирование разработки<p>Типичный сценарий из жизни программиста: свои пожелания пользователь излагает последовательно, по мере осваивания нового функционала. В стиле “…А еще бы хотелось…” и далее новый список “хотелок”. Это широко распространенная практика, когда требовать с пользователя техническое задание бесполезно.</p> <p>В чем здесь проблема для программиста? Если каждый раз решать задачу строго в рамках пожеланий пользователя, последовательно, то очень быстро возможности текущей архитектуры программы исчерпаются. Ведь программист не знал, что заранее пользователь придумает, и не рассчитывал на это. Далее программист оказывается на развилке:</p> <ul> <li>“Латать” текущую архитектуру “заплатками”, да “подпирать костылями”, чтобы как можно быстрее выполнить задание. Это понравится пользователю, но код превратиться в “лапшу” и с ним станет невозможно работать. </li> <li>Переделать архитектуру, чтобы она соответствовала возросшим требованиям пользователя. Это хорошо для развития программы, но пользователь будет недоволен медленными темпами работ. </li> </ul> <p>Другой вариант: заранее продумывать возможные направления развития программы и  закладывать в архитектуру максимальные возможности. И тут тоже программист сталкивается с неприятностями:</p> <ul> <li>Если изначально делать “по уму”, то это долго и пользователь будет недоволен. </li> <li>Более того, окажется, что 90% возможностей, заложенных в новую архитектуру, останутся невостребованными. </li> </ul> <p>Спасение есть! И оно под боком. Наверняка читатель слышал такое высказывание: “Думай глобально, действуй локально”. Соблюдение этого принципа помогает избежать описанных сложностей. Как это выглядит на практике?</p> <ol> <li>Надо описать задачу “максимум” и сделать набросок соответствующей идеальной архитектуры программы. Это то, к чему надо будет стремиться постоянно. </li> <li>При написании каждого класса, функции представлять себе какое место она займет в той “воображаемой” архитектуре программы. </li> </ol> <p>Т.е., программируя для пользователя текущую небольшую задачу, надо структуру кода выстраивать так, чтобы он бесшовно лег на скелет вашей идеальной архитектуры. Одна функция за другой и вот у вас уже на скелет “наросло мясо кода”. Если все функции выполнены были “с прицелом” на будущую архитектуру, то заставить работать их вместе не составит труда.</p> <p>В результате:</p> <ol> <li>Пользователь получает новый функционал быстро и остается доволен. </li> <li>Архитектура программы не рассыпается. </li> <li>Возникает синергетический эффект при стыковке различного функционала, изначально разрозненно разработанного. Т.е. открываются новые возможности использования программы. </li> <li>В любой момент времени программа остается работающей, т.к. в ней не требуется проводить глобальных переделок. Вы всегда можете быстро выдать пользователю новый функционал, а не оправдываться в том, что вы затеяли большие переделки. </li> </ol> <p>Вот и получается: “Думай глобально, а действуй локально.”</p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-48890315234394039532013-08-03T01:04:00.000+04:002013-08-03T01:10:35.381+04:00Об аналитиках<h4>Android</h4> <p>Давным-давно, на заре 2000-х годов я прочитал статью какого-то зарубежного аналитика. Как раз MS запустила Live search, и вступила на поле деятельности Google. Аналитик говорил, что конкуренция между ними неизбежна и Google должна будет проникнуть на десктопы. В те времена было тотальное засилье ОС семейства Windows, и о таком даже глупо было думать. По крайней мере, мне так казалось.</p> <p>Аналитик, понимая эту ситуацию, предложил Google выпустить ОС для КПК. Закрепиться, и уже с КПК проникать на десктопы. Не знаю, почему я запомнил именно этот прогноз. Прошло примерно 10 лет с тех пор, и что же мы видим?</p> <p>В статье <a href="http://hi-tech.mail.ru/news/misc/android-beats-xp.html">“В России Android стал популярнее Windows XP”</a> по графику четко видно, что Android не просто догнал Windows XP, а еще у него динамика роста существенно выше, чем у Windows 7. В конце еще приписочка: “…осенний релиз Android 5.0… будет ориентирован именно на завоевание сегмента ноутбуков.” Т.е. ситуация развивается так, как предсказал тот аналитик.</p> <p>Действительно, ведь уже и десктопами на Android не удивишь- много выпущено моделей. Похоже, для ОС Windows это уже реальная проблема. А кто бы мог подумать об этом 10 лет назад?</p> <h3>Skype</h3> <p>В те же далекие времена вышла первая версия Skype. Я помню, какой фурор был вокруг этой программы. И я, сидя на постоянно рвущейся модемной линии, удивлялся всем этим восторгам. Skype даже на распрекрасном модеме в 56Кб еле работал- какие там у него могут быть перспективы? Мучение же одно! Прошло 10 лет и Skype, действительно, стал очень популярным.</p> <h3>Заключение</h3> <p>С тех пор прогнозы и то, что вышло в результате у меня вызывает пристальный интерес. В этом блоге публиковались неоднократно прогнозы. Например: <a href="http://itspeciality.blogspot.ru/2012/05/blog-post_27.html">Будь в тренде!</a>- это прогноз от IBM. И, кстати, он уже начинает сбываться. Читали <a href="http://www.pcweek.ru/idea/blog/idea/5262.php">Hadoop as a Service</a>? То-то же.</p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-47774087668613771192013-04-17T23:33:00.000+04:002013-04-17T23:37:28.834+04:00Дистанционное обучение<p>В последнее время наблюдается весьма ощутимый всплеск интереса к дистанционному обучению через Интернет. Небольшой список таких курсов можно изучить на страничке <a href="http://itspeciality.blogspot.ru/p/blog-page.html">“Полезные ссылки”</a> этого блога. В серьезных аналитических документах на S-образной кривой развития “умные дядьки” наглядно показывают, что обучение ждёт невиданный взлёт в связи с внедрением в процесс обучения информатизации. Однако, как всегда, “дьявол кроется в мелочах” и всё не столь радужно, как кажется на первый взгляд.</p> <p>Ключевой проблемой в этом тренде является то, что online-обучение с помощью ИТ- технологий слепо копирует offline’новые технологии обучения. Потенциал ИТ при таком подходе, фактически, не задействован. Проблема усугубляется тем, что учителя не знают о возможностях ИТ, а ИТшники не знают как разрабатывать новые методики преподавания. Типичный сценарий “разговора слепого с глухим”. Что в результате получается?</p> <p>Слушать/смотреть лекции через Интернет неудобно- с книгой куда сподручней получается. Проблема тут именно в мелочах. Например, если не понял мысль, то “отмотать” видео для повтора чуть-чуть назад проблема- никогда не попадешь на нужный момент. С книгой такой проблемы нет. Или другая, как бы мелкая, проблема. В книге можно заложить закладки к ключевым мыслям, чтобы потом, “переваривая” урок, быстро возвращаться к пройденному. Видеоуроки такого не позволяют сделать. И таких мелочей, на самом деле, очень много- попробуйте сами поучиться дистанционно, чтобы прочувствовать все “прелести” такого вида обучения. В конечном итоге, оказывается, удобней всего учиться по-старинке: с книгой и тетрадью.</p> <p>И нигде: ни у нас, ни за границей чего-то нового, прорывного в области обучения не видно. Лучше книги с тетрадью не придумано еще ничего. Поэтому, пусть “умные дядьки” умничают и дальше, а тому, кто хочет заняться самообучением настоятельно рекомендую учиться традиционными способами: книга, тетрадь. Если надо, то: репетитор, заочное обучение, курсы.</p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-48452159530338200092012-10-31T16:13:00.000+04:002012-10-31T16:14:58.832+04:00Самые востребованные языки программирования<p>Очень интересная статистика от компании “HeadHunter”: <a title="http://habrahabr.ru/company/hh/blog/156803/" href="http://habrahabr.ru/company/hh/blog/156803/">http://habrahabr.ru/company/hh/blog/156803/</a> Анализируя её, могу вот еще что отметить.</p> <p>Если посчитать соотношение запросов (по Москве) соискателей к запросам работодателей, то получается примерно такое:</p> <div align="center"> <table border="0" cellspacing="0" cellpadding="2" width="215" align="center"><tbody> <tr> <td valign="top" width="126"> <p align="center">Язык программирования</p> </td> <td valign="top" width="87"> <p align="center">Соотношение запросов</p> </td> </tr> <tr> <td valign="top" width="126"> <p align="left">php</p> </td> <td valign="top" width="87"> <p align="right">2,2</p> </td> </tr> <tr> <td valign="top" width="126"> <p align="left">java</p> </td> <td valign="top" width="87"> <p align="right">3</p> </td> </tr> <tr> <td valign="top" width="126"> <p align="left">c++</p> </td> <td valign="top" width="87"> <p align="right">6</p> </td> </tr> <tr> <td valign="top" width="126"> <p align="left">c#/.net </p> </td> <td valign="top" width="87"> <p align="right">6,4</p> </td> </tr> <tr> <td valign="top" width="126"> <p align="left">delphi</p> </td> <td valign="top" width="87"> <p align="right">8,7</p> </td> </tr> </tbody></table> </div> <p>Просто феерический успех у php. Но и “классика жанра“- Java- очень хорошо смотрится. Посмотрите мою статью <a href="http://itspeciality.blogspot.ru/2007/04/blog-post_24.html">“Специализация”</a> пятилетней давности- там я выделял Java, как наиболее подходящий для карьеры, зарабатывания денег язык. И, судя по статистике, это остается верным и на сегодняшний день.</p> <p>Заметьте также, что остальные языки оказываются в 2 раза менее востребованными, чем лидеры: Java- коэф.= 3, а уже следующий C++ – коэф.= 6. Более того, если вы посмотрите вакансии по другим странам, то увидите, что и там Java наиболее востребован.</p> <p>В общем, учите Java, и живите счастливо! <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Улыбка" src="http://lh4.ggpht.com/-XUFqJEHvdQY/UJEWP2E7F8I/AAAAAAAADho/5YSRC-_U03M/wlEmoticon-smile%25255B2%25255D.png?imgmax=800" /></p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-69159901100832988562012-10-12T16:33:00.001+04:002012-10-12T16:33:45.682+04:00Полный P&P<p>Пятого октября прошла конференция Microsoft Patterns and Practices Summit Russia 2012 для архитекторов программных систем и руководителей. Докладчики были из Редмонда, из группы “Patterns and Practices”, и из российского офиса компании.</p> <p>Я сначала распланировал посещение секций так, чтобы по Windows 8 больше информации получить, но потом понял, что наши “евангелисты” от MS больше, чем я уже знаю, не скажут. Быстро переориентировался- и, вуаля- выудил кое-что полезное из выступлений.</p> <p>Первое. Запомнилось (даже записал и хочу поиграться с этим) организация вложенных вызовов в линейную цепочку: start(a).then(b).then(c).done;. Вместо </p> <p>if (a(b(c))) { done; },</p> <p>где a, b, c- могут быть анонимные функции.</p> <p>Это часто встречается в цепочках вычислений, где от успешности выполнения одной функции зависит выполнение последующих. Такая запись устраняет многоуровневую вложенность вызовов функций. А представьте, если это анонимные функции- это же кошмарный код получается! А предложенная запись улучшает читаемость кода.</p> <p>Второе. В Window 8 в ресурсы приложения одну и ту же картинку можно будет записать с разным разрешением и размером. ОС сама будет вытаскивать и отображать ту из картинок, которая наиболее подходит для данного монитора (с учетом его размеров и разрешения).</p> <p>Третье. Какую они удобную локализацию сделали- закачаешься! Может это и раньше было, я про это на конференции узнал. Просто создаете папочки вида “en-en”, “ru-ru” и т.д. и кладете туда файлы с ресурсами в которых пишите что-то вроде:</p> <p>button1.name = …</p> <p>button.width = …</p> <p>button.font.style = …</p> <p>Еще к этому верификацию прикрутить, чтобы проверять к каким текстам, заголовкам сделаны переводы, а к каким- нет, то вообще “бомба”.</p> <p>Четвертое. Мысль вроде простая, но я нигде (Word, Visio, AutoCAD и т.д.) пока не видел реализации. Зачем на мелком масштабе пытаться отрисовывать маленькие элементы? Там же ничего уже не разглядеть. Куда эффективней заменять изображение более крупными информационными блоками с большими подписями. Ткнул в блок мышкой- масштаб увеличился, блок “раскрылся”.</p> <p>И еще. Явно об этом нигде не говорится- народ только по форумам судачит. Но я лично на конференции почувствовал, что предпочтение отдается JavaScript. C# вроде как не задвигают, то существенно меньше о нем говорят. Неужто опять будет эпопея с очередной сменой мейнстримового языка? Так что я предупредил- а вы держите “ушки востро”. <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-winkingsmile" alt="Подмигивающая рожица" src="http://lh3.ggpht.com/-IJ5iGaLwIqg/UHgOJ-uXNQI/AAAAAAAADhI/cQsYnmqC7M0/wlEmoticon-winkingsmile%25255B2%25255D.png?imgmax=800" /></p> <p>Потом, конечно, Вы сами сможете посмотреть выступления на <a href="http://www.techdays.ru">www.techdays.ru</a>, но я вам скажу, что через экран монитора вы упустите “ауру” тусовки- на уровне эмоций, жестов очень многое передается. А это редко в кадр попадает, а если и попадает, то как-то “не ловится” мозгом. Ну, и приятно иногда взять докладчика “за пуговичку” и из “первых уст” получить информацию.</p> <p>По организации конференции:</p> <ol> <li>Очень понравилось. Хорошо все продумано, четко сработано- ну, просто мастера.</li> <li>Для уровня архитекторов программных систем откровенно слабовато. Хотя, судя по уровню вопросов из зала, может это я слишком многого хочу.</li> </ol> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-704727895499394632012-08-03T22:57:00.000+04:002012-08-03T23:05:22.037+04:00Развернутый комментарий к статье “Где мы?”<p>Статья: <a title="http://trv-science.ru/2012/07/17/gde-my/" href="http://trv-science.ru/2012/07/17/gde-my/">http://trv-science.ru/2012/07/17/gde-my/</a></p> <p>Несколько лет назад я о том же <a href="http://itspeciality.blogspot.com/2007/07/blog-post.html">писал</a>. В начале этого года Фурсенко, будучи еще министром, взглянув на подобные показатели сказал, что надо посмотреть из чего они складываются, и повлиять на их улучшение. Фактически, он предложил просто подогнать решение под известный заранее ответ. Оптимизация, подгонка результата. Бесполезное занятие.</p> <p>В мою бытность преподавателем в ВУЗе, где я работал, уже такой эксперимент был проведен. Ввели рейтинг, где публикациям отдали повышенный коэффициент. Думаете, публикаций стало больше? Да. Их стало больше. В цифрах на бумаге, а не реальных статьей. Все очень просто. Преподаватели стали договариваться друг с другом о соавторстве: я включу тебя в соавторы моей статьи, а ты меня включи в соавторы твоей статьи. В результате, нам обоим в зачет пойдёт по две публикации. Все в выигрыше. Норматив выполнен “на ровном месте”.</p> <p>Поэтому, если чиновники и далее будут подходить к науке формально, со стороны выполнения количественных показателей, то лучше не станет. Люди будут просто заниматься оптимизацией, подгонкой своей деятельности под заданные показатели при том же качестве работ.</p> <p>В исходной статье самая главная мысль, которую я также не раз озвучивал в разных <a href="http://rnd.cnews.ru/tech/reviews/index_science.shtml?2010/06/16/396103">публикациях</a>: “какая страна- такая наука”. И выше головы тут не прыгнуть. Надо принять этот факт, и не пытаться совершить чего-то прорывного. Оторваться от реалий жизни страны не получится.</p> <p>Поэтому, “выдыхай, бобер”, и спокойно “зри в корень”: надо отказаться от любых количественных показателей научной деятельности и уделить внимание качеству подготовки ученых, обеспечению им комфортной жизни и работы. Уверен, количественные показатели при этом сами окажутся где надо без каких-либо подгонок и усилий.</p> <p>Да и с первоочередными мерами совершенно фантазировать не надо. Практически все статьи по данной проблеме говорят об одном и том же: достойная, высокая зарплата. Буквально, очень высокая. Ну, допустим, 50-70 тысяч долларов в год чистыми на руки всему преподавательскому составу для любого провинциального ВУЗа. Это первый шаг. Про остальные шаги и говорить не хочу, т.к. и этот первый шаг десятилетиями не делается.</p> <p>На словах высокие чиновники говорят об увеличении финансирования, а на самом деле ВУЗы ходят сокращать. Без всякой конкурентной борьбы между ВУЗами, административными мерами объединить и/или закрыть. Чтобы уменьшить расходы на содержание. И все. Вот такая вам наука.</p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-88210568627442206792012-08-03T14:02:00.000+04:002012-08-03T14:05:00.175+04:00Полет мысли в золотой клетке компании<p>По мотивам статьи “<a title="Today is Goof Off at Work Day" href="http://www.codinghorror.com/blog/2012/08/today-is-goof-off-at-work-day.html">Today is Goof Off at Work Day</a>” у меня родилось несколько комментариев.</p> <p>Сама статья об известной “фишке” ряда компаний, когда сотрудникам официально выделяется рабочее время для занятий чем угодно. В Google, например, это 20% рабочего времени (соответствует одному рабочему дню в неделю). В Facebook- это “Hack Day”. Из таких “занятий чему угодно” родились известные нам GMail, Google News, Google Talk, AdSense.</p> <p>Идея выглядит симпатично:</p> <ol> <li>Компании такие “day off” могут записать себе в бенефиты, привлекательные для сотрудников.</li> <li>Для компаний это не прямые расходы, вполне себе могут позволить.</li> <li>Если идея хорошая, то у компании есть полные права на ее реализацию и раскрутку. Даже если идея не по профилю компании- тоже сгодится: бизнес диверсифицировать или красиво упаковать и продать реализацию идеи.</li> <li>Работнику хорошо, что мозги можно переключить с одной деятельности на другую. Эдакий активный отдых.</li> <li>Если идея сработает, то работник, наверняка, получит какие-либо бонусы (деньги, должность, репутация).</li> <li>Такие дни “вольного творчества” сродни стартапу. Только в стартапе риски выше. А тут вы ничем не рискуете- за ту же зарплату “стартапите”. Можно возразить, что компания заберет у вас идею, а вам премию в качестве подачки выпишут и все. Но это уже вопрос “синицы или журавля”.</li> </ol> <p>Интересно, если эту идею сделать повсеместной, внедрить на большинстве предприятий, что получится: “вселенский” бардак или мир станет разнообразнее и интереснее?</p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-12802457094437067932012-07-27T15:42:00.001+04:002012-07-27T15:42:15.148+04:00Что почитать<p>Решил поделиться мнением о  том, что прочел в последнее время.</p> <ol> <li><a href="http://www.ozon.ru/context/detail/id/5508646/">“Совершенный код”, С. Макконелл</a>. Книга хороша для программистов с опытом работы 1-2 года. Совсем уж начинающим программистам голову этим забивать не стоит- им надо научиться базовым вещам, а уж потом Макконелл. Опытным программистам книга по большей части будет бесполезна- перечисленные в ней приёмы программирования тривиальны и быстро осваиваются в первые годы программирования. Так что, если вы 1-2 года уже программируете- берите, читайте- много нового и интересного узнаете. </li> <li><a href="http://www.ozon.ru/context/detail/id/4710758/">“Психбольница в руках пациентов”, Алан Купер</a>. Плохая книга. Может, проектировщикам она понятна и нравится, но программистам эта книга точно не нужна. Раздражительно много “воды”, набор тривиальных мыслей и ни одной методики решения перечисленных в книге проблем. </li> <li><a href="http://msdn.microsoft.com/ru-ru/magazine/default.aspx">Журнал MSDN Magazine</a>. Да, в нем большинство статей о технологиях Microsoft. Но, кроме того, в каждом номере есть статьи, посвященные алгоритмам, тенденциям. Материал подается очень четко, без “воды”, профессионально, с хорошим переводом. Например, оцените такие статьи: </li> <ol> <li><a href="http://msdn.microsoft.com/ru-ru/magazine/jj133819.aspx">Использование Windows Azure Service Bus для… вещей!</a> Вместо Azure используйте любое другое облако. Оцените саму идею- подключение приборов в “облако”. </li> <li><a href="http://msdn.microsoft.com/ru-ru/magazine/hh882453(en-us).aspx">Bacterial Foraging Optimization</a>. Забавнейшая штука. И для кругозора полезно. </li> <li><a href="http://msdn.microsoft.com/ru-ru/magazine/hh781027(en-us).aspx">Ant Colony Optimization</a>. Муравьиный алгоритм.</li> </ol> </ol> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-15348488478414129122012-05-30T12:31:00.000+04:002012-05-30T12:42:14.117+04:00Про китайский backdoor, JTAG и военные секреты<p>Исходная новость, наделавшая немало шума: <a href="http://www.cl.cam.ac.uk/~sps32/sec_news.html" target="_blank">“Latest news on my Hardware Security Research.”</a></p> <p>Её перевод на xakep.ru: <a href="http://www.xakep.ru/post/58757/" target="_blank">“В военной микросхеме США китайского производства обнаружен бэкдор.”</a></p> <p>Заметки эксперта в области безопасности об этой новости: <a href="http://erratasec.blogspot.com/2012/05/bogus-story-no-chinese-backdoor-in.html">“Bogus story: no Chinese backdoor in military chip.”</a></p> <p>Перевод заметок эксперта на xakep.ru: <a href="http://www.xakep.ru/post/58765/" target="_blank">“Подробности о китайском бэкдоре в чипе FPGA.”</a></p> <p>Если перевод исходной новости сделан корректно, то перевод заметок изрядно запутан. Не буду пересказывать тут все “перлы” перевода, а просто перескажу своими словами, что имел ввиду эксперт. А вы уже сами сравните мои пояснения с “хакерским” переводом. Думаю, это заставит вас улыбнуться. <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Улыбка" src="http://lh3.ggpht.com/-M-EycKVdi1I/T8XdYkNnUOI/AAAAAAAADgo/L2RfdhFx7XM/wlEmoticon-smile%25255B2%25255D.png?imgmax=800" /></p> <p>Лет 7 назад я активно программировал однокристальные ЭВМ. Общий стаж в области схемотехники у меня примерно 10 лет. Последние годы я переключился исключительно на программирование, и стал уже забывать про все эти JTAG’и. Интересная исходная новость вызвала интерес у меня к теме. Я решил “тряхнуть стариной”. Итак.</p> <ol> <li>Микросхемы (м/с) могут делаться на заводе с тестировочными блоками. Однако, никого это волнует. После тестирования м/с эти контактные площадки никуда наружу не выводятся- 99,99% разработчиков, использующих эти м/с в своих разработках, об этом ничего и не знают. Чтобы добраться до них надо разрушить м/с.</li> <li>После тестирования, заключения м/с в корпус, ее продают разработчикам всяких телевизоров, плейеров, телефонов.</li> <li>Разработчик программирует м/с. Знаете, страшно неудобно, когда приходится постоянно доставать м/с с печатной платы, перепрошивать, потом снова вставлять, включать, убеждаться, что не работает, искать ошибку в программе, и по-новой перепрошивать. Так жили до JTAG’a. Интерфейс JTAG- это выводы на м/с, через которые можно подключиться напрямую к м/с и, не вытаскивая ее из печатной платы, перепрошивать. Более того, отлаживать код в м/с по шагам, смотреть значение ячеек памяти, регистров. Обалденная штука.</li> <li>После того, как программа для м/с написана, устройство (плейер, телевизор) доработано, его запускают в производство.</li> <li>Если код в м/с не представляет особой ценности, то контактные площадки, выведенные под интерфейс JTAG, можно так и оставить разведенным на печатной плате. Достаточно самого разъема для подключения не припаивать на плате к этим контактным площадкам.</li> <li>Т.е. хакерам достаточно припаять разъем и подключиться к м/с через JTAG- и вот перед нами все коды м/с! Можем отлаживать, перепрошивать- делать что хотим. Про этот способ взлома устройств и писал эксперт, когда говорил: “About 20% of home routers have a backdoor in them, and 50% of industrial control computers have a backdoor.”</li> <li>Но от этого можно защититься. После прошивки м/с по JTAG’у можно выставить биты защиты (залочить м/с). Биты защиты задают разные уровни доступа к м/с: полный доступ, только чтение, запрет на чтение, запрет на перепрошивку и т.д. Разработчики устройств часто пренебрегают установкой этих битов, что и дает шансы хакерам. </li> <li>Приведенная в качестве примера м/с <a href="http://www.actel.com/documents/PA3_DS.pdf">ProASIC3</a>- это флэш-память с функцией шифрования данных. Через JTAG вы можете в нее прошить AES-ключ, и она вам будет выдавать данные, зашифрованные этим ключём. Это используется для защиты данных при передаче их по каналам связи.</li> <li>Эксперт говорит, что проникая через “незакрытую дверцу” JTAG’a (когда не выставлены биты защиты), хакеры могут прочитать AES-ключ. Ну, и далее использовать сворованный AES-ключ для шифрования своих данных, и выдачи их, как за подлинные.</li> <li>А теперь улыбнитесь переводу с “хакера”: “С точки зрения производителя один из способов защититься от такого, не меняя дизайн микросхемы — это добавить криптографический ключ (обычно AES 128 бит), который отключает самые опасные из команд JTAG.” <br />Никакой AES-ключ JTAG-команды не отключает!</li> <li>Далее, эксперт говорит про недокументированные функции JTAG, с помощью которых можно получить доступ к содержимому м/с, в том числе и при выставленных битах защиты. Признаюсь, что эта область для меня малознакома. Я могу только несколько замечаний сделать по этой теме.</li> <ul> <li>Чтобы такие функции были, надо, чтобы производитель м/с умышленно разработал м/с с таким функционалом. Это время, деньги- просто так никакому производителю и даром не надо этой возни. JTAG- для программистов м/с, не для производителя. Какой смысл делать функционал, чтобы потом не сказать о нем программистам, а самим, втихаря, что-то делать через JTAG?</li> <li>Занимаясь схемотехникой, я на форумах много раз читал обсуждения попыток взлома м/с с выставленными битами защиты. Обсуждений, ложных заявлений о взломе я начитался столь много, что теперь мало верю подобным слухам.</li> <li>Даже если у JTAG есть недокументированный доступ, то, чтобы его получить, надо подключиться непосредственно к м/с. Т.е. удаленно ничего не взломать, не вывести устройство из строя, что и пишет эксперт: "The Chinese might subvert FPGAs so that they could later steal intellectual-property written to the chips, but the idea they went through all this to attack the US military is pretty fanciful.”</li> </ul> </ol> <p>И главное, вот что сам <a href="http://www.cl.cam.ac.uk/~sps32/qvl_proj.html">Скоробогатов сказал о своей работе:</a>  “There was a lot of rumour on the Internet and in various blogs claiming that we found that <a href="http://erratasec.blogspot.co.uk/2012/05/bogus-story-no-chinese-backdoor-in.html?m=1">'Chinese manufacturers putting backdoors in American chips'</a>. This is not true as anyone can see drafts of our papers which we had to release yesterday to clear the issue with being accused of making false claims. It is the US manufacturer Actel who inserted the backdoor at the gates level of JTAG controller in ProASIC3, Igloo, Fusion and SmartFusion devices. Moreover, the traces of the backdoor can be found in the development software Libero through simple Windows XP Search for particular bits in standard STAPL file. With the backdoor key you can extract the IP (FROM, ARRAY/bitstream, NVM/NFMB) or even reprogram the factory backdoor key and make your own key. <br />We never said the Chinese have put a backdoor inside Actel's chips and it does not say so in our papers. It is as though people have put 2+2 together and made 4 or 5 or 6 depending on what their agenda is. We believe that other chips will have backdoors and since a US chip has them and you can do lots of things that give you a vast amount of control over the devices then is there any reason to suggest other manufacturers have not done the same. The US military have been looking at the issues of hardware assurance and part authenticity for a good number of years. <br />Also that fact that since it is possible now to scan for backdoors in a way that was not possible before, people will start to take a look at this area whether to use it to remove IP or to use it for other purposes.”</p> <p>В общем:</p> <ol> <li>Целью ученого была разработка метода- никого он ни в чём не обвинял.</li> <li>Эксперт сказал, что и без хитроумных закладок и “бэкдоров” большая часть техники взламывается “на раз”, т.к. программисты микроконтроллеров не выставляют, как минимум, биты защиты.</li> <li>А “хакер” в своем переводе все здорово перемешал, и я бы не сказал, что наврал- скорее всего в теме не разобрался или пал жертвой “желтой” прессы.</li> </ol> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-59790974897033467882012-05-27T02:28:00.001+04:002012-05-27T02:28:48.769+04:00Будь в тренде!<p>Очень интересный документ от IBM недавно я нашел и изучил: “<a href="http://www-05.ibm.com/ch/ibm_sap_portfolio/pdf/Global_Technology_Outlook_2011.pdf" target="_blank">Global Technology Outlook 2011</a>”. Известный факт: IBMовские прогнозы не раз сбывались. Этот прогноз меня заинтересовал тем, что он во многом пересекается с моими ощущениями по отрасли.</p> <h2>Социальные сети + Бизнес (Enterprise)</h2> <p>Агрегация, обработка, упорядочивание неструктурированной информации из разных источников. Сюда еще добавляется такой источник информации, как социальные сети. Это позволит улучшить взаимодействие с потребителями, делать “тонкую” подстройку под их потребности.</p> <p>В этом свете очень интересна экспериментальная <a href="http://www.so.cl/" target="_blank">социальная сеть от Microsoft</a>. Ее принцип действия: делается поиск нужной информации, и тут же можно найденное опубликовать у себя в ленте и дать к ссылке комментарий. Похоже, MS изучает возможность влияния соц. сети на результаты поиска.</p> <p>До этого Google пыталась запустить новый поисковый алгоритм, рассчитывающий релевантность ссылки по ее популярности в соц.сетях.</p> <p>Идея, на самом деле, мощная. Представьте себе, например, сейчас, чтобы оценить продукт, проводятся исследования на фокус-группах, анкетирование, акции. Но все это дискретно. Использование соц.сетей позволит подобные исследования проводить в непрерывном режиме. Одно это многого стоит.</p> <h2>Увеличение объемов обрабатываемой информации</h2> <p>С одной стороны- в этом нет ничего удивительного, но с другой- посмотрите, какие цифры они приводят.</p> <p>В этой связи ожидается большой спрос на DaaS (Data-as-a-Service), AaaS (Analytics-as-a-Service). Подозреваю, что на этом рынке могут “играть” только крупные игроки. Тем не менее, у небольших стартапов есть шанс разработать/оптимизировать процесс обработки данных и продать разработку “крупняку”.</p> <h2>Использование ИТ для улучшения процессов разведки полезных ископаемых, добычи и переработки</h2> <p>Логика приводится “железная”. Но я в этой области не “спец”, чтобы комментировать. Почитайте и подумайте сами.</p> <h2>Интернет вещей</h2> <p>Про интернет в каждом электрочайнике и кофемолке, я думаю, каждый слышал? Об этом много и давно говорится. Я еще в 2000 году сделал свою разработку на эту тему, выступал на студенческих конференциях с этой темой. Совсем недавно от Microsoft просочились новости об ОС, предназначенной для управления домашней бытовой техникой.</p> <p>Возможностей, конечно, тут открывается немало. Но тема настолько вялая, что, я не верю, что в ближайшее десятилетие она “выстрелит”. Хотя, конечно, всей душой за более быстрое развитие этой темы.</p> <h2>Обучающиеся системы</h2> <p>Ну, кто бы сомневался! Это очевидный, сильный тренд, довольно таки “старый” уже. Если тему “обучающиеся системы” скрестить с темой “Социальные сети + Бизнес (Enterprise)” (работа с неупорядоченными данными), то получим взрывное (для мозга) направление работы.</p> <p>Пункт очень сложный, наукоемкий, но, несомненно, содержит в себе высокий потенциал для развития. К тому же, тут высокий уровень уникальных, плохо поддающихся дублированию (копированию) технологий.</p> <h2>Итоги</h2> <p>Вырваться в авангард технического процесса написанием нового драйвера принтера, новой соц.сети, IP-телефонии уже не получится. Нужны смелые, можно даже сказать, необычные идеи.</p> <p>В IBMовском прогнозе отражается, в первую очередь, взгляд IBM на ИТ. Если обобщить, то это суперкомпьютеры, огромные объемы данных- в общем, что-то мощное и большое- чисто по-IBM’овски.</p> <p>Если вы не IBM’еры, то можно порекомендовать заниматься:</p> <ol> <li>Отдельными элементами систем, предназначенных для обработки разнородной информации (структурированной, не структурированной, видео, аудио, фото). </li> <li>Узкоспециализированными алгоритмами для обучающихся систем. </li> </ol> <p>Это могут быть алгоритмы сортировки, распараллеливания вычислений, извлечения ключевых слов, понимание контекста, распознавание образов и т.п. Очень хорошие, интересные, перспективные темы. Дерзайте!</p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-17497352847057552982012-05-16T11:49:00.000+04:002012-05-16T11:50:02.372+04:00Предчувствие<p><i><a href="http://blogs.msdn.com/b/vyunev/archive/2012/05/15/10305439.aspx" target="_blank">«Ростелеком», Microsoft и «1С» представили первую услугу, доступную на национальной облачной платформе, – «O7.Бизнес»</a></i><i> </i></p> <p>За формальным заголовком скрывается важная тенденция. В область автоматизации бизнес-процессов все больше "крупняка" втягивается. Появились и устойчиво развиваются последние 5 лет новые компании в этой области. Предлагаются все более мощные решения. Есть ощущение, что тут будут "далеко идущие" последствия. Как будто бы в этой области подошли к некоей критической точке, после которой будет прорыв в этом направлении.</p> <p>Усилия многих компаний, как пружина, сжались в одной точке, идет активное наращивание “мышечной массы” (функционал, гибкость, масштабируемость). Пробуются разные варианты: “облака”, “локальные облака”, традиционные клиент-серверные решения, мобильные решения. Активно “пинают” государство в вопросе автоматизации различной отчетности перед государством.</p> <p>В ближайшие несколько лет что-то тут будет прорывное- это моё предчувствие. Обратите внимание! Активное шевеление- это факт. А выводы вы можете сделать свои.</p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-87073057051172629852012-05-04T13:01:00.001+04:002012-05-04T13:01:28.593+04:00Длинный нос инноваций<p>Представляю вашему внимаю весьма вольный перевод кратких заметок, сделанных в ходе дискуссии о новых технологиях и изобретательстве. На них я случайно наткнулся в интернете. Оригинальные заметки на английском языке опубликованы в статье “<a href="http://www.lukew.com/ff/entry.asp?1538" target="_blank">Длинный нос инноваций</a>”. Они мне показались интересными, и я решил их не просто перевести, а перевести, внося в них свои интерпретации.</p> <p>1. Если у вас раз в год проскользнула идея, то это еще не означает, что вы - профессиональный изобретатель. Профи не нужна муза. Он генерирует идеи равномерно, на постоянной основе. Чтобы работать плодотворно, изобретатель использует специальные техники и методики.</p> <p>2. Изобретательство – это не нечто аморфное, воздушное; гениальные изобретатели – это миф. В действительности, за их плечами стоят студии, в которых трудятся архитекторы, разработчики и исполнители.</p> <p>3. Изобретение, кажущееся моментальным озарением, на самом деле построено на плечах других изобретений.</p> <p>4. Если проследить за тем, как технология развивалась, то можно увидеть влияние на нее других проектов и идей.</p> <p>5. Если вы используете какую-либо модель для объяснения того, что вы пытаетесь объяснить, то используйте более простую модель.</p> <h3>Длинный нос</h3> <p>1. Проходит около 20 лет прежде, чем новая технология сможет принести миллиард долларов. Большую часть времени эта технология не находится в центре внимания большинства людей.</p> <p>2. В любом случае, чтобы снять с рынка миллиард долларов в течение 5 лет необходимо около 15 лет «холить и лелеять» технологию. Это означает, что мы можем предсказать, когда технология начнет широко использоваться.</p> <p>3. В технологию никто не будет верить, до тех пор, пока она «вдруг» получит широкое признание.</p> <p>4. Первые мультитач-экраны появились в 1984 году, но получили распространение только в 2007. Все это время они развивались вне поля зрения массового потребителя.</p> <p>5. Например, первую мышку с колесиком Xerox запатентовала в 1973 году. Но до этого ее уже изобрел и продавал 1968 году Райнер Малебрайн. Он не запатентовал ее, т.к. считал это изобретение тривиальным, чем-то, что мог придумать любой.</p> <p>6. Другой пример. Первые iPod’ы (с колесиком) во многом позаимствовали форму/дизайн от радиоприемника T3, выпущенного Рамсом в 1958 году. В то же время, Рамс был вдохновлен идеями, заложенными в радиоприемник TR-1, который изобрели трое изобретателей в 1954 году.</p> <p>7. Еще один пример. Серийный карманный фотоаппарат Кодак продавал в 1926 году. Предлагалось несколько цветовых вариантов корпуса. Apple повторила тот же трюк со своим белым iPod’ом.</p> <h3>Больше, чем просто идея</h3> <p>1. Патенты в области идей работают плохо.</p> <p>2. При разработке идеи четко должны работать и маркетинг, и бизнес, чтобы тщательно проработать все детали изобретения. Вокруг идеи складывается, фактически, экосистема.</p> <p>3. Творчество - это процесс придания очевидности неочевидным вещам.</p> <p>4. Представьте своего кумира и подумайте, а как бы сделал он. Любой изобретатель подтвердит вам, что он вдохновляется таким способом.</p> <p>5. Лучшие изобретатели занимаются тем, что вытаскивают на «свет божий» старые идеи и «причесывают» их в соответствии с современными тенденциями. Своему успеху они обязаны своим предшественникам.</p> <p>6. Обычно мы думаем об изобретательстве, как о некоей алхимии «делания золота из ничего». Однако, это больше похоже на разведку месторождения золота. Многие предпочитают исследовать местность в поисках золота. Кроме этого, вам потребуются навыки его выкапывания и переплавки. Просто найти месторождение золота недостаточно.</p> <p>7. На сегодняшний день недостаточно сделать что-то, что просто работает, как это было раньше.</p> <p>8. Мы должны как-то «подать» эту вещь потребителю. Продолжая аналогию с золотом, золото приобретает дополнительную ценность, если сделать из него ювелирное украшение.</p> <p>9. Изобретение – это выбор. Нужно решить, так или иначе, выбрать то, или другое. Эскизы используют именно для этого.</p> <p>10. Ремесло требует практики.</p> <p>11. Процесс синтеза - это часть эскизного наброска. Другая составляющая – это отбор. Эти процессы параллельны.</p> <p>12. Чем лучше вы знаете историю, тем больше вы готовы к завтрашнему дню.</p> <p>13. Много лет назад Casio продал наручные часы за 90 доллара. Они были с тачскрином, и ими можно было пользоваться как калькулятором. Насколько хороша была эта технология в 1984 году? Насколько продвинулся прогресс?</p> <p>14. Если вы меняете часть любого продукта, то, не забудьте, пересмотреть и адаптировать остальные его части. Например, ПДУ ТВ заставил ТВ станции синхронизировать рекламу.</p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-72082118933858309862012-03-16T11:44:00.000+04:002012-03-16T11:45:03.456+04:00Советы программистам-новичкам. Настройка на работу<p>Как я уже ранее <a title="Творчество и рутина" href="http://itspeciality.blogspot.com/2012/03/blog-post_12.html" target="_blank">говорил</a>, в работе программиста есть творческая часть. Это приводит к некоторой проблеме. Например, слесарь может точить детали хоть трезвый, хоть “с бодуна”- руки-то “помнят” и “на автомате” будут строгать детали. С творчеством так не бывает- муза капризна и когда “накроет” не угадаешь. А работать-то надо. <strong>Одна из черт профи- стабильная работоспособность.</strong></p> <p>Поэтому, надо учиться управлять своим состоянием. Отличный материал на эту тему в статье <a title="Огонь и движение" href="http://russian.joelonsoftware.com/Articles/FireAndMotion.html" target="_blank">Джоэля Спольски</a>. Для себя я выработал такой подход. Всю мелочевку я сразу не исправляю- оставляю “на потом”. Если у меня получилось по-джоэлевски попасть в состояние потока, то я берусь делать что-то большое и сложное. Когда состояние потока проходит, то берусь делать как раз те мелочевки, которые специально откладываю для таких периодов работы, когда творческий запал угасает. Это позволяет мне равномерно “размазать” работу, заполняя рутиной пустоты между творческими пиками.</p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-70069644046085640622012-03-15T13:32:00.000+04:002012-03-15T13:36:15.892+04:00Советы программистам-новичкам. Не твое- не трогай!<p>Есть такой старый армейский принцип: “Не твое- не трогай.” Этот принцип верен и в отношении программирования в команде. Делай свой кусок работы, и не меняй что-либо в чужом коде. В чем смысл данного правила?</p> <p>Например, вы поменяли, буквально, чуточку в чужом коде, т.к. заметили в нём ошибку (на ваш взгляд ошибку). Проверили тут же- работает. Выложили код. И тут оказывается, что старик Мерфи прав. Ту части кода, которую вы “осознали” и подумали, что это ошибка, вы-то исправили. А вот оказывается, что ваше исправление поломало функционал в куче других мест, о которых вы и не подозревали.</p> <p>Как же быть тогда? Надо узнавать ответственного за этот код. Лучше всего, конечно, лично подойти и решить вопрос. Если это невозможно, то “кинуть” ему в трекер багу. Если изменения надо внести срочно, то можно и самим это сделать, но обязательно надо в трекер на соответствующего ответственного разработчика кинуть описание этого бага с описанием тех изменений, которые внесли вы. Попросить при этом разработчика проверить, допустимо ли так делать. При выкладке кода в репозиторий надо в комментариях указать номер вашей заявки в трекере.</p> <p>Таким образом, если вы ошиблись, и ваши изменения неправильны, то ответственный разработчик быстро разберется что к чему и поправит. Даже если по времени это произойдет не скоро, то, все равно, ваша “задница” прикрыта- вы сделали все, зависящее от вас.</p> <p>Из  этого правила есть следствие: не меняй ничего в чужих строчках кода. Даже если это всего лишь вопрос форматирования кода. Даже лишний “пробельчик”. Ничего. Если будут выяснять, после какого коммита поломался код, то будет видно, что эта строчка кода записана за вами. Вот потом и будете вспоминать и доказывать: “А я там всего лишь “пробельчик” для красоты поставил.” Зачем вам это? Еще раз:</p> <p align="center"><strong>“Не твое- не трогай!”</strong></p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-45963592075200138842012-03-14T12:59:00.001+04:002012-03-14T17:27:33.329+04:00Советы программистам-новичкам. Не умничай<p>Это распространено не только в среде программистов- от любого мастера (парикмахера, сантехника, строителя) можно услышать фразу: “Да кто же так делает! Это все неправильно…” В отношении программистов эта фраза дополняется восклицанием: “Это все надо переписать! Я сейчас это сделаю.”</p> <p>Если хочется так воскликнуть, советую- сдержитесь. Пойдите, попейте чайку, подумайте. Ничего не бывает просто так. С высокой долей вероятности можно сказать, что до вас этот код программировали не дураки. Скорее всего, такие же среднестатистические программисты, как и вы.</p> <p>Если на ваш ПЕРВЫЙ взгляд вам кажется, что можно было сделать проще/лучше, то помните:</p> <ol> <li>Код был написан, скорее всего, несколько лет назад. Для программирования- это не малый срок: <ul> <li>Может быть, в те времена было так принято писать. </li> <li>Не было такого API, которым можно было бы сделать все проще. </li> <li>Не было такого синтаксиса, позволяющего выразить мысль компактнее. </li> </ul> </li> <li>Вы не знаете обстоятельств, которые сопутствовали его написанию: <ul> <li>Просили сделать очень быстро- лишь бы работало. </li> <li>Хотели посмотреть “на попробовать” как будет и нужен был набросок. А потом возникли другие обстоятельства и про код забыли. </li> <li>Изначально было сделано хорошо, а потом код многократно изменялся разными программистами, проповедующими различные подходы к написанию кода, которые еще своего там намешали. </li> </ul> </li> <li>Личные обстоятельства: <ul> <li>Программист увольнялся- ему было “пофигу”. </li> <li>Не дали премию, мало заплатили. </li> </ul> </li> </ol> <p>Ну и, конечно, остаются варианты, относящиеся напрямую к исходной фразе: “Да кто же так делает!”:</p> <ol> <li>Мало предлагали денег по вакансии и на работу наняли слабого программиста. </li> <li>Наняли по блату. </li> <li>Наняли умного парня, но большого любителя поэкспериментировать. </li> </ol> <p>Поэтому, не умничайте, а лучше вдумайтесь, почему сделано именно так, а не иначе. Скорее всего, потом Вы заметите, что все не так уж плохо, и код лучше не трогать.</p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.comtag:blogger.com,1999:blog-2519101447023967267.post-9246525611999576012012-03-13T13:26:00.001+04:002012-03-13T13:26:52.831+04:00Советы программистам-новичкам. Инструменты<p>Очень простой совет: используйте лучшие инструменты. Хорошего мастера всегда можно определить по его инструментам. Как у классного плотника будет хорошая фирменная пила, у опытного монтажника- перфоратор “мохита”, так и у хорошего программиста должен быть отличный инструментарий.</p> <p>Не буду спорить с приверженцами аскетизма, что для программирования достаточно текстового редактора и компилятора. Я свой выбор сделал однозначно в пользу развитых IDE, не выходя из которых программу можно написать, скомпилировать и отладить хоть по шагам, хоть по точкам останова.</p> <p>Распространите этот принцип на все ваше рабочее место:</p> <ol> <li>Хороший компьютер, монитор (а лучше два), удобная мышь и клавиатура.</li> <li>Настройте автоматическое резервирование (потерять время на переустановку системы из-за полетевшего диска- это дорогое удовольствие, дешевле стоит внешний диск для резервирования).</li> <li>Удобный трекер, быстрый репозиторий, хорошую “мержалку” бранчей.</li> <li>При программировании используйте хорошие библиотеки, системы сборки.</li> </ol> <p>Это на первый взгляд кажется очевидно, а на практике постоянно приходится сталкиваться с тотальным использованием отстойного инструментария. И это сказывается на результатах.</p> <p>Не берите тот инструмент, который проще всего достать, который под рукой- ищите лучший. Простой пример: MS XML есть в каждой ОС, и, поэтому, его очень просто начать использовать. А если померять скорость работы этой библиотеки, то обнаружите, что она примерно в два раза медленней работает большинства других библиотек. Может для простых “конфигов” это и не важно, но если надо читать файлы в несколько мегабайт, то здорово с MS XML намучаетесь.</p> Владимир К.http://www.blogger.com/profile/04911483549490820947noreply@blogger.com