2012-12-30

Хроники кровавого ынтырпрайза

Началось всё с того, что я не умею говорить нет. Хроника восстановлена по переписке, и, надеюсь, это больше никогда не повторится, хотя кто-то этим живет. Главные действующие лица: Я (исполнитель), И. (представитель заказчика), Р. (разработчики iiko), Н. (начальство И.). Все общение растянулось на 64 письма, неизвестное количество телефонных звонков и 9 месяцев, начиная с апреля 2012 года.

Dependency injection

Назрела необходимость управлять зависимостями Ъ путем. Выбор был между Spring и Guice. Если первый, очевидно, монструозный, то последний позиционировался как легковесный инструмент без лишних зависимостей. Началось все с видео в котором докладчики показали типичную эволюцию кода от прямого прямого создания зависимостей (в нашем случае все заканчивалось фабриками) к инъекции и своё решение.

2012-12-26

Программирование в допущениях

Самые серьезные падения систем происходят из-за нарушения допущений и неявных контрактов: что ответ от системы всегда будет приходить мгновенно, что ответ вообще когда нибудь придет, куча пространственно-временных допущений, календарных и именных.  Сюда же можно отнести YIW, OMMIW, "я исправил одну строку, зачем тестировать", и другие связанные с тестированием.

2012-12-23

Снова о прозрении

Новые знания усваиваются постепенно и ответы на появившиеся вопросы ищутся в рабочем режиме. Но иногда появляется совершенно новая область, либо накапливается критическая масса знаний и количество готовится перейти в качество. Настоящий когнитивный кризис: вопросы растут лавинообразно, а ответы всё никак не находятся.

Интересы причины таких качественных скачков. Самыми яркими этапами у меня были понимание как работает сервлет-контейнер, отличия rich и anemic, тестирование, мавен. Сейчас меня распирает от DI. Сервлет-контейнер не был похож ни на десктопные приложения, которые я писал и понимал как отлаживать, ни на php скрипты. Maven потребовал серьезнейшего мозгового усилия и чтения двух книг, потому что он был абсолютно непохож на известный мне ant. Подходы к доменной модели были понятны, но не было практики, чтобы выяснить границы применимости.

2012-12-18

Вселенная наследия

Чисто случайно выяснил, что у Шеффилда вышло продолжение тетралогии Вселенная наследия. Это была одна из любимейших книг в детстве и все сюжетные линии былы завершены с исчезновением артефактов Строителей.

Данная же книга, по всей видимости должна была открывать новый цикл и поэтому сюжет выглядит оборванным. К сожалению автор скончался до публикации.

Книга не самоценна и может быть интересна только фанатам цикла, хотя чтение стоит того, чтобы потратить один вечер.

2012-12-16

We the People

В связи с эпик фейлом решил выкурить сразу три конституции: американскую, российскую (семь лет живу, пора уже ознакомиться) и повторить казахстанскую. В общем много интересного, российская довольно похожа на казахстанскую, со скидкой на различия в унитарности/федеративности, хотя встречаются ньюансы. После прочтения всех трех, идея о праве голоса на основании не только дееспособности, но и уплате налогов, и экзамене по конституции из Облачной демократии не кажется мне такой уж дикой.

Что российская, что казахстанская конституции явно оговаривают запрет на разжигание межнациональной розни. У американцев в этом отношении своя атмосфера.

Интересными пунктами в казахстанской конституции являются ст. 8 про отказ от применения первой вооруженной силы. Ст 10. п. 2 о том, что гражданин ни при каких условиях не может быть лишен гражданства - сразу вспоминается двухлетний срок на постановку на консульский учет, иначе гражданство признается недействительным.

Статья 32 (аналог 31 российской) приведена с поправкой Пользование этим правом может ограничиваться законом в интересах государственной безопасности,  общественного порядка, охраны здоровья, защиты прав и свобод других лиц. Что потенциально снижает потоки ненависти.

Статья 52 п.2 гласит Депутаты  Парламента  обязаны  принимать участие в его работе. Голосование в Парламенте осуществляется депутатом  только  лично.  Отсутствие депутата без уважительных причин на заседаниях палат и их органов более трех раз,  как и передача права голоса,  влечет  за  собой применение к депутату установленных законом мер взыскания. Сразу вспоминается видео с бегающими тетками по пустым рядам Думы.

2012-12-15

Облачная демократия

Давно хотел прочитать эту книжку, поскольку, было много разговоров, что последние гражданские инициативы вдохновляются именно этой книгой. Пока собирался, вышла вторая редакция.

Книжка полная фигня: идет много ненужных букв, где с десяти сторон объясняется одна и та же нехитрая мысль: политика должна требовать прозрачности, граждане должны управлять своими голосами или делегировать их в реальном времени - всё.

В процессе чтения у меня было стойкое дежавю с книгой Шок будущего, где, по прошествии десятков лет, предсказания автора кажутся наивными до крайности. Авторы стали жертвой баззворда Cloud, который они расшифровывают как "открытые и распыленные по миллионам и миллиардам пользовательских компьютеров и серверов, существующих везде и нигде", такое определение подходит скорее P2P.

Тем не менее было несколько интересных моментов.

2012-12-09

Человеческий фактор. Продолжение

Первая часть

Создание продуктивных команд

Самыми ценными воспоминаниями о работе является опыт командного взаимодействия. Характер работы полностью меняется, когда группа становится одним целым. Вызов - инструмент такого объединения. Группы, получающие наибольшее удовлетворение, работающие на пределе своих возможностей не мыслимы без командного взаимодействия, благодаря которому люде терпят всё, выкладываются на полную катушку и преодолевают чудовищные трудности.

Как только начинается кристаллизация команды, вероятность успеха очень возрастает. Такой команде не нужно управление в традиционном смысле и уж тем более не нужны дополнительные стимулы - команда обладает собственным импульсом. Команды по природе своей склонны формироваться вокруг общих целей. Даже если участники имели собственные цели, то в процессе кристаллизации каждый поверил в общую цель.

Человеческий фактор. Успешные проекты и команды


Ненавижу такие книги, как "Человеческий фактор" - они настолько великолепны, что закладки приходится ставить почти на каждой странице, и в итоге читалка начинает жутко тормозить, а интерес все возрастает. А после прочтения приходится несколько часов обрабатывать закладки.

Книга Peopleware - нестареющая классика. За тридцать лет в индустрии несколько сменилось несколько технологических поколений, а вот люди не поменялись ничуть. И, проблемы которые рассматривают авторы, все так же актуальны и сейчас.

Демарко и Листер рассматривают решающую роль команд в успешных проектах. Но, поскольку они не знают секрета построения идеальной команды, им приходится идти от противного: рассматриваются стопроцентные способы загубить Команду в зародыше. Рассматриваются признаки успешных команд и возможные катализаторы. Отдельно достается Методологиям (с заглавной буквы), которые обещают решить все проблемы и их адептам.

Дальше идут цитаты из закладок, разбитые по главам. Очень много букв.

2012-12-06

О музыке

Началось это давно: классе в восьмом подарили мне китайский плеер за то что с треском повалился в школьной олимпиаде по физике будучи на год младше. Через пару лет, братан из германии привез CD-плеер. С тех пор появилась стойкая привычка слушать музыку, что-то делая, особенно головой.

2012-12-05

Freeswitch book

Итак, спустя почти 15 месяцев работы с FreeSWITCH у меня, наконец, дошли руки прочитать матчасть, чему я несказанно рад. Эта книга висела тяжким бременем на моей совести.

Первые пол года мы умудрились писать графический интерфейс для абстрактной доменной области IP-телефонии. Следующие пол года мы пытались впихнуть написанное в узкие рамки реальности. И после всего этого ничего нового из книги извлечь не удалось, кроме истории появления этого продукта.

Не смотря на это, по ощущениям, книга написана вполне добротно. Разбирается демо-конфигурация, в качестве примеров пишется куча конфигов на все случаи жизни. Сам же FreeSWITCH состоит из небольшого количества очень простых модулей, комбинируя функционал которых можно на коленке поднять разухабистую IP-PBX.

2012-11-25

Сёгуны и самураи

В ЖЖ у Тинькова разгорелся срач айтишников, и в одной из веток была брошена интересная фраза про стартапщиков: ... Вас никто не воспримет всерьез, даже если ваша идея ДЕЙСТВИТЕЛЬНО стоящая. За Вами обязательно должно быть что-то еще: крутая команда, опыт создания похожих проектов с нуля, работающий прототип, какая-то позитивная известность в ID-индустрии... Хоть какая-то зацепка, понимаете? Мало получить деньги на создание проекта, нужно еще что-бы за Вами люди пошли. Причем не планктон а лучшие из лучших, "IT-самураи", готовые биться за своего "сёгуна", иначе это заведомо фейл! Без этого, без какой-то явно осязаемой интриги - Вы просто один из толпы...
Про ит-самураев, я уже не впервые встречаю фразу. Про них обмолвился Ковязин в своей книге, хотя и удалил этот эпизод в заключительной версии: Я следую пути корпоративного бусидо. Самураи говорили, что боец дерется в полную силу и не боится смерти тогда, когда готов умереть и принял этот выбор. Вот так и я: работаю честно и не боюсь увольнения, потому что уже принял его неизбежность.
Во всех проектах, что я работал был только один сёгун, способный зажечь своими идями окружающих. Причем реализация этих идей давала мгновенный фидбек от людей, у которых просто загорались глаза. А пилить годами в темном углу Yet Another Something, которое будет на целых пять процентов круче аналогов от конкурентов, когда это наконец увидит свет, и даже не известно в итоге бедет нужно ли это хоть кому-то просто уныло.

P.S. Помимо сёгунов ещё бывают пираты и крестные отцы.

О бизнесе, программистах и тестировании

Отличный доклад про взаимоотношение разработчиков и бизнеса. С самого начала автор цитирует Билла Гейтса: "Автоматизация эффективного процесса умножает эффективность системы, автоматизация неэффективного процесса умножает неэффективность". Разбирается много вариантов отсутствия здравого смысла и 4 мифа.

Весь доклад, про попытки автоматизировать тестирование при помощи различных инструментов и мифы с этим связанные, примеры успеха и недоумения от результатов. Для именования мифов выбраны игры слов:
Instoolation - вера, что инструмент может решить процессуальные проблемы
Businessting - вера, что бизнес должен писать приемочные тесты
Acceptegration - вера, что тесты бывают либо модульными, либо приемочно-интеграционными
Rolation - вера, что "определенная роль" должны писать тесты в изоляции от коллег, например тестировщики

Все работают с легаси системами, поэтому нужно выделять хорошо спроектированное decoupled ядро, в котором концентрировать основную бизнес-логику и риски. Соответственно для их снижения покрывать тестами. Все остальные узлы гораздо менее критичны.

Отдельно автор остановился на тестировщиках. Никому не нравится писать тесты и тестировать ПО, поэтому задача спихивается на самого низкооплачиваемого юниора. Что самое печальное, человек вынужден тестировать софт без знания доменной модели.

В заключении автор останавливается на необходимости поддерживать живую документацию, доступную как для разработчика, так и для бизнеса.

2012-11-24

Natural Language Processing with Python

Появилась необходимость в предельно сжатые сроки выкурить книжку по обработке естественного языка. Сама по себе книга представляет учебник для лигвистов не знакомых  с программированием. Начинается с простеньких подсчетов частоты слов в тексте, введения в программирование на питоне (основной инструмент - nltk написан на питоне), обзора различных алгоритмов и инструментов для анализа текста. К середине книги питон заканчивается, как освоенный, и начинается хардкор и матан: выделение синтаксической иерархии предложений, построение парсеров, извлечение смысла из предложений, использование матлогики для построения доменной модели из извлеченного смысла, применение модели для поиска ответа на вопросы по тексту. Заканчивается всё экскурсом в философию.

Книга оказалась весьма интересна как введение в методы анализа естественного текста, не смотря на то, что большинство примеров были даны на предельно упрощенном уровне - естественный язык несравнимо богаче. Однажды приходилось использовать LL Top-Down транслятор, в книге же был дан обзор по основным алгоритмам парсинга текста. На защите один из одногруппников начинал работу над анализом текстов, и закончилось всё простым подсчетом статистики слов (глава 0 в книге) - интересно, смог бы он адаптировать инструменты для русского языка и подготовить парочку корпусов? Уровень полезности результата вырос бы многократно.

Linguists are sometimes asked how many languages they speak, and have to explain that this field actually concerns the study of abstract structures that are shared by languages, a study which is more profound and elusive than learning to speak as many languages as possible. Similarly, computer scientists are sometimes asked how many programming languages they know, and have to explain that computer science actually concerns the study of data structures and algorithms that can be implemented in any programming language, a study which is more profound and elusive than striving for fluency in as many programming languages as possible.

2012-11-16

Всё по Протопопову

"Трактат о любви, как её понимает жуткий зануда" - весьма интересное чтиво, срыв покровов с человеческой этиологии. Эту книгу активно цитировал Никонов в своём "Конце феминизма".

Большая часть фактов была известна, хотя открыл для себя несколько новых. Например выполнение домашней работы, джентельмизм, да и вообще самопожертвование резко снижает социальный ранг в глазах противополжного пола, а вот отсутствие этого - повышает, хотя и не осознанно.

Автор интересно сказал о подсознательной мотивации: имея свободный и прямой доступ к мотивационным центрам мозга, инстинкты способны вызвать ОЩУЩЕНИЕ своей правоты в чём угодно. Это воздействие можно даже уподобить наркотическому. Наркотические иллюзии также нередко воспринимаются, как какая-то высшая мудрость.

Интересный взгляд на выбор пары со стороны родителей - оказывается, руководствуясь больше разумом в выборе пары, эта практика является самоселекцией Homo Sapiens в направлении роста культуры и цивилизованности.

Неприязнь низкокультурных людей к "интеллигентикам" вытекает из-за того, что сбоят инстинкты определяющие социальный ранг.

С точки зрения автора легко объясняются некоторые, странные на первый взгляд, аспекты поведения многих знакомых, в том числе и мои: почему меня одни вещи жутко бесят, а на другие наплевать.

Тоненькая брошюрка, почти конспект с основными идеями в конце каждой главы. В итоге может оказаться пищей для размышлений, для тех, кто отчаялся понять логику противополжного пола.

2012-11-15

Юнглинги

Несостоявшаяся аспирантура

После учебы, уладив все дела с армией, пришел к заведующему кафедрой Захарову Ю.Н. посоветоваться насчет аспирантуры. Он очень удивился, поинтересовался, не хочу ли я закосить и сказал, мол слишком поздно и все места давно заняты. Я сам сомневался и поэтому и пришел поговорить. Тем не менее Захаров пообщался с новосибирским коллегой и дал мне телефон. К сожалению или к счастью, в этот момент наконец-то началась активная работа на работе и я совсем забыл про телефон. Вспомнил спустя месяцы, но так и не перезвонил - на работе было достаточно веселья.

2012-11-10

Облачный Атлас

Секстет Облачный Атлас, шесть историй связанных между собой причинно-следственной связью, сказка - попурри о любви, карме и роли личности в истории. На время просмотра отказался от оценочного суждения, но потом не смог удержаться.

2012-11-07

Черная книга менеджера

Дошли руки посмотреть квартирник Голодного про образование. Там Слава Панкратов упомянул про "Черную книгу менеджера". Книга действительно черная, и причиняет боль глазам всеми своими восемнадцатью страницами концентрированного послания воображаемого директора читателю-менеджеру. Все прямо и доступно: бабло, никаких отмазок, все косяки только твои, не выпендривайся - одни прописные истины в духе КО, тем не менее для многих не очевидные. По ссылке доступно больше отзывов, делать выдержку из концентрата нет смысла. В любом случае это чтиво - достойная трата часа драгоценного времени.

Кстати есть еще белая книжная полка.

2012-11-05

Fahrenheit 451

Фаренгейт 451 антиутопия без начала и без конца. Книга о том, почему нужно читать книги. Картинка из общества, которое захотело употреблять только "универсальнаую жвачку", ради того, чтобы не быть несчастными. Мимо промелькнули люди только для того, чтобы сгореть в конце не оставив после себя ничего. Вся книга - бессмысленная погоня за преступником, потому что спустя какое-то время всё превратится в пепел.


Pro Git

На хабре выложили русский перевод сабжа. Ну и раз появилась такая возможность захотелось выяснить, наконец, кто круче: git или mercurial.

2012-10-25

Цифровое бессмертие

Если человек собирается где-то обосноваться надолго, то он начинает изменять окружение под себя, оставляя следы. В цифромом же мире и артефакты тоже цифровые, а физических следов после сбора немногих необходимых вещей типа кружки, зарядки для телефона почти не остается, да и не нужны они. После очистки ~ остаются только строки кода в репозитории. Отпечаток идей, поиска, решенных или нет проблем, послания быть может и не всегда понятные. Именно про такой отпечаток говорили древние греки, в отличие извращенных идей христианского бессмертия, которое достигенет только тот, кто добродетелен суть - не делал ничего. Неглубокий вклад смоет как песочный домик с первым же рефакторингом, фундаментальный же станет основой для роста и развития. Но и он может со временем рассыпаться, если попадет не в те руки: иногда это происходит так или вот так.

Show must go on

Пока есть потребность, программа будет существовать. Не видел ни разу чтобы шоу останавливалось, даже если уходили главные вдохновители. Незаменимых нет, и, пока есть хоть один студент, который может написать hello world, код будет жить, даже в виде зомби.

2012-10-22

О консистентности идеалов

У каждого есть в голове образ идеальной пары, разной степени формализованности. Именно сравнение с этим образом выдает оценку от "то, что надо" до "не-не, проходите мимо". Но редко кто задумывается не является ли набор качеств приписываемый этому самому идеалу непротиворечивым.

Друг встречалься исключительно с активными девушками, но главным требованием было не спорить, при этом его бесило, что все они не отличались интеллектом. Противоречие: активного человека с головой сложно заставить пассивно подчиняться, в крайнем случае можно просто уйти. Общительные будут уделять время друзьям, за привлекательными будут бегать поклонники, тусовщики не будут поддерживать семейный очаг, самодостаточные вряд ли будут кого-то добиваться и прочие противоречия, вне зависимости от пола. Если все время встречаются не те - значит требования противоречивы, и придется выбирать, приводя ожидания к реальности.

Кручу-верчу

Люди не меняются. Тем не менее под действием непреодолимых обстоятельств или просто усилием воли человек может изменить какую-то свою характеристику или качество, но это изменение повлияет и на остальные аспекты, чтобы система осталась непротиворечивой. В голове засела аналогия с кубиком рубика: перемещая один квадрат, перемещаются и остальные одиннадцать. Да и просто поменять местами два произвольных квадрата нельзя - кубик станет противоречивым и не соберется, так и у человека нельзя произвольно изменить только что-то одно, даже если это сильно раздражает.

2012-10-21

Студенты в IT

Читканул книжку Голодного. Она очень сильно кореллирует с тем что я советовал народу: зарегистрировать почту на гугле, поставить дропбокс, читать хабр через ридер, чтобы быть в курсе новостей. И вообще никак не кореллирует с тем что я видел, будучи абитуриентом или младшекурсником. Местами был не согласен: с формулой успеха (таланта не существует), когда автор начал толкать свои политические идеи в духе Гоблина - тоже напрягло.

Книга в духе потока сознания и половину объема занимает материал, который вряд ли будет интересен неработающему студенту, и скорее подошел бы выпускнику: мотивация, работа, начальство и прочие подобные темы.

В любом случае, студентам можно смело рекомендовать для ознакомления.

2012-10-18

Не мешайте мне работать

Или Motivate me right хулиганская книга от Стаса Давыдова, посоветовал прочитать коллега. Коллекция различных историй в духе ithappens, сгруппированная  по 16 аспектам. Очень удивило противоречивое отношение автора к JetBrains. Все истории жизненны, со многими ситуациями приходилось сталкиваться, часть историй очень спорны и не мешало бы выслушать альтернативную версию событий (иногда альтернативная точка зрения приводится в виде писем от друзей). В примечании интересный инструмент для оценки мотивации и большая подборка книг на тему мотивации.

2012-10-17

Who is John Galt?

Атлант расправил плечи. К этой книге у меня был долгий путь: сначала она годами валялась на компе неизвестно как попав, затем вольный пересказ от Никонова, затем фильм по первой книге (с предельно низкими оценками) и вот, наконец, индекс цитирования превзошел все мыслимые пределы и обуздав страх перед огромным размером я за неё взялся. Позже, после прочтения подобных книг, всегда вопрошаешься себя: почему ты не прочитал её раньше, хотя, может, до них нужно дорасти?

 

2012-10-13

Культурные слои в коде


В команду пришел новый разработчик и, пока вникал, задавал вопросы на тему как все устроено в программе. Отдельный интерес вызывали, конечно, куски, которые выбивались из общего стиля: а это мы пол года назад так делали, потом поняли, что все неправильно и выкинули, местами осталось; а это приходил новый разработчик и привнес новые идеи; а вот это оказалось удачной идеей и мы почти везде переписали с использованием нового подхода.

2012-10-09

Этика хакера

Обучаясь в университете прочитал книгу Стивена Леви "Хакеры: Герои компьютерной революции". Тогда мне крепко запомнилась глава про этику хакеров. Основные постулаты не относящиеся к технике гласили: практический императив, свобода информации, децентрализация, отрицание полномочий, и самое главное - людей должно судить по их делам, а не по надуманным критериям, таким как, звания, возраст, цвет кожи и положение в обществе. Этика - система моральных принципов, позволяющая отличить человеку правильное от неправильного.


2012-10-03

Массовый многопользовательский оффлайн

Каждый очередной WoW смотрю на ролик, а руки сами тянутся скачать игру и погрузиться в этот проработанный игровой мир - безусловный признак таланта близзардовских разработчиков, художников и писателей.

2012-10-02

Делу – время, а потехе – час

Как-то пошли небольшой компанией на каток. После того как все более-менее раскатались, было предложено поиграть, вместо того, чтобы монотонно кататься по кругу (пришлось пожертвовать перчатку). Спустя час вдруг понял, что совершенно не думал о процессе, игра вытеснила катание из сознания. Благодаря этому удалось выполнить пару вещей, которые все никак не получались.
Раньше никогда не задумывался о роли игры в обучении. Игра позволяет отвлечься от постоянного самоконтроля правильности выполнения упражнений, избавиться от боязни ошибиться.
Но есть и зазеркалье, где все с точностью до наоборот. Когда большие и серьезные люди делают свои большие и серьезные дела (со своей точки зрения), иногда у них нет или недостаточно опыта, а мастер, что может подзатыльником наставить на путь истинный, отсутствует рядом. В результате – повторение без тени иронии одного стандартного алгоритма из книжки без истинного понимания сути. Плевые вещи выглядят так, будто в космос запускается шаттл, а сложные вещи неизбежно буксуют. Созерцание этой антиигры просто не может не вызывать улыбки. Самое печальное, что в этом случае отсутствует психологическое право на ошибку (постой, что за херню мы делаем), по причине карт бланша или просто большой ответственности. А если нет ошибок, нет и обратной связи суть совершенствования.

2012-09-28

Экстремальное программирование

За отпуск таки осилил прочитать целую одну книгу, рекомендованную шефом к прочтению: Кент Бек, Экстремальное программирование.
Книга уже весьма старая (бумажные карточки историй и задач), и многое из того, о чем говорит автор, является само собой разумеющимся: разработка через тестирование, рефакторинг, непрерывная интеграция, стандарты кодирования – все это стало обычными рабочими инструментами. Хотя автор и не приписывает себе изобретение методик, уже в то время они были известны, а от некоторых отказались в пользу более сложных, в заслугу ставится именно объединение их в рамках одной методологии.

Дальце, традиционно, конспект.

Суррогатное общение

Какая у вас погода?

Каждый раз прощаясь с родственниками, друзьями, знакомыми договариваемся регулярно выходить на связь. Но спустя неделю выясняется, что рассказывать, в общем-то, не о чем, и общение сходит на нет. Когда, про здоровье спросили, остается узнать про погоду и попрощаться. Вопросы про погоду особенно раздражают, меня мало интересует погода за окном (достаточно каменного барометра), а уж за тысячи километров тем более. По-возможности избегайте вопросов про погоду.

Бойцы невидимого фронта

Не думаю, что это моя жизнь такая унылая: дом - работа, работа - дом, с редкими вылазками на различные мероприятия. Мы как бойцы невидимого фронта, каждый в своей специальности: успехи, не выраженные в рублях, не смогут оценить ни знакомые, ни родня, не потому что их нет, а потому что для неспециалистов это - белый шум. Что-то значительное, о чем можно рассказать всем, происходит очень редко и либо после значительных перемен, типа переезда и смены работы, либо после долгой и упорной работы. Справедливо и обратное: да, я напишу, что рад за успехи, но в большинстве случаев я не смогу оценить масштаб достижения.

Эффективно поддерживать регулярное общение получается только с коллегами по специальности, между делом общаясь за жизнь. Есть немного паттернов: ежемесячные, чтобы события успели накопиться; еженедельные звонки, чтобы узнать как здоровье; либо ежедневные, когда разговор идет про совсем бытовые мелочи. Чем дольше период - тем больше информации.

Кризис пространства-времени

Мир стал настолько мал, что между любыми двумя точками (утрируя) расстояние вытянутой руки: дотянуться до телефона и набрать номер. Раньше письма шли неделями и можно было неспешно сесть, подумать и написать. Международная связь была по-вызову и приурочивалась к значительным событиям, а за три минуты можно было много наговорить. Скайп с безлимитным интернетом все это девальвировал в ноль.

Твиттеры с фейсбуками стали достойным ответом на вызов времени: можно следить за тем, кто интересен, а те, кому интересен ты, не будут переспрашивать, что нового у тебя - все в ленте. Ненавязчивость одностороннего общения очень привлекательна: надоело - отписался, и ты никому ничего не должен.

2012-09-27

О тяге к знаниям

У меня очень плохая память на имена, но, тем не менее, есть несколько человек, имена которых я помню: первая учительница, учителя математики в среднем и старшем звене, учитель информатики и директор. Почти каждый приезд домой кого-нибудь навещал. Многие жалуются на отсутствие мотивации к учебе.

Платное обучение

Что будет, если обучение сделать сильно платным, при этом оставить старую плановую систему 10 к 1-му, и ликвидировать реальные приемо-сдаточные испытания выпускников? Начнется отрицательный отбор. При этом ситуация одинаковая: что в университете, что в частной школе. Родителями платятся деньги на обучение детей, учителя вынуждены ставить минимальный допустимый балл, чтобы обучающийся не вылетел, потому, что за десятком двоечников отправится сам строгий преподаватель.

Обеспеченные студенты изначально лишены мотивации к учебе: мы заплатили вам деньги - учите меня, при этом мне пофиг, я знаю, что вы меня не выгоните. Малообеспеченная половина студентов при этом вынуждена работать, чтобы как-то восполнить дефицит в семейном бюджете и продолжить учебу, что тоже не способствует результатам. Уже стало почти как на западе, когда далеко не все могут позволить себе обучение в университете и вынуждены идти в колледжы, хорошо хоть, еще на колледж копить не надо.

Истории успеха

Западные университеты могут беречь свой имидж и не содержать бездельников потому, что не зависят от планового финансирования. Другой вариант, когда преподаватели имеют другой источник дохода, никак не связаны с университетом и могут позволить себе ставить двойки бездельникам. У нас еще очень немного образовательных центров, открытых крупными компаниями и финансируемых из их бюджета. На ум, кстати, приходит только Школа анализа данных от Яндекса.

2012-09-25

Антипаттерны общения

Псто боли, путанных мыслей и взаимоисключающих параграфов

У меня складывается ощущение, что люди разучились общаться, находить общий язык, искать компромиссы. Попытка договориться воспринимается чуть ли не как оскорбление. А признание собственных ошибок - как капитуляция. Про простые навыки эффективного общения пишутся толстенные талмуды, которые в жизни стараются применять лишь единицы.

Распространенный паттерн: "вместо того, чтобы сделать самому гораздо легче дать указание, либо руководящим тоном вопросить, почему еще не сделано" - у меня вызывает лишь огорчение, даже если я не являюсь субъектом высказывания. Зеркальным случаем является указание на ошибку, в ответ на который обычно следует "молча возьми и сделай", - да, черт возьми, я сделаю это, но меня это очень раздражает и в десятый раз подряд сложно не сделать замечание.

А сколько простых житейских мелочей приводят к ссоре на пустом месте? Если мне сделали замечание, то посторяюсь себя контроллировать. Если мне, что то не нравится и при этом это что-то достаточно незначительно, то, просто забив, можно сберечь много нервных клеток. Если действительно напрягает, можно попытаться донести до человека (хотя эффекта может не быть, см. первый абзац).

Если какой-то человек раз за разом повторяет действие, глупое или бессмысленное с моей точки зрения, которое, при этом, меня никак не затрагивает, легко просто проигнорировать. Но если этот ритуал требуется выполнять мне, как объяснить человеку, что он ошибается? Как это сделать так, чтобы не оскорбить? Вопрос обсудить это действие с точки зрения здравого смысла обычно даже не стоит. Хорошо, если наглядным экспериментом можно продемонстрировать ошибку, но все бывает не настолько очевидно.

Как известно, из двух непримиримых спорщиков, первым пойдет на уступки тот, кому дороги отношения, либо необходим результат. Вместо того, чтобы объяснять почему это не реализуемо - попытаться найти альтернативы. Бывает, что делать очень не хочется, но приходится брать себя в руки и делать.

Раз за разом ловлю себя на мысли и одергиваю, что не стоит отвечать на грубость, хотя очень хочется. Когда вижу очередной бессмысленный спор, отмечаю про себя сценарий и стараюсь никогда его не повторять. Вокруг нас очень много как положительныйх, так и отрицательных примеров. Когда встречаешь внутреннее эмоциональное сопротивление, очень легко дать волю примитивным эмоциям, но нужно держать себя в руках. Все это очень сложно, поскольку требует эмоциональной энергии, которую хочется съэкономить для действительно близких людей.

2012-09-24

Темные века

Конец света

Если меня спросят, верю ли я в конец света, то без раздумий отвечу: "да". Нет, это будет не метеорит или Нибиру, конец медленно и неравномерно наступает. Очень хорошо подходит определение Пелевина: Сейчас слова Будды доступны всем, а спасение находит не многих. Это, без сомнения, связано с новой культурной ситуацией, которую древние тексты всех религий называли грядущим "темным веком".

Быть может это это на меня подействовала смена окружающей обстановки (другая страна), и все на самом деле не так плохо, как кажется. Но критическая масса удивления уже накопилась.

Темные люди

Осторожно, дальше буллшит.
Меня не перестают удивлять некоторые люди: вроде бы взрослый человек, почти адекватный в житейских вопросах. При этом голова забита предсказаниями Ванги вперемешку с Нострадамусом, Нибиру, великим парадом планет (когда планеты во всей галактике выстроятся в одну линию и сорвут нашу бедную Землю с орбиты), сменой магнитных полюсов, отсутствием воды и тотальным затоплением всего одновременно. Дальше идут рассуждения про усиление магнитного излучения от спутника в полнолуние, которое особенно влияет на лунные знаки родившиеся в год ядовитого дикобраза. А на десерт религиозность и посещение церкви, чтобы подготовиться к концу света и отойти с чистой душой.

Все это произносится одновременно и на полном серьезе, с демонстрацией роликов в ютубе. При этом хочется убиться об стену, только чтобы не слушать этот бред. Любая попытка аппеляции заканчивается: как ты не веришь, вот же говорят ученые, не будут же просто так выкладывать ролики. Мышление взаимоисключающими параграфами в естественной среде обитания.

Как же так, где хваленое советское образование? Ведь все, по крайней мере, должны были закончить девять классов. А это, на минутку, фундаментальные знания в таких областях как: физика (привет магнитные наклейки от телефонного излучения), астрономия (Нибиру, астрология, великие парады планет), биология (БАДы от всех болезней, давно не видились), химия (чудодейственная гомеопатия и уникальные чистящие средства), математика (просто умение давать оценку числам и сравнивать их). Куда все это подевалось, почему атрофировалась область мозга отвечающая за критическое восприятие.

Грамотеи
Самое печальное то, что невежество имеет тенденцию воспроизводить невежество. Какое поколение при этом вырастет, с детства выслушивая сказки в ответ на воспросы о естественных феноменах? В этот момент уже не кажется дикостью высказывание, что учительница может стать авторитетнее родителей.

2012-09-21

Юные мошенники

В то время, когда я учился в школе (младшее и среднее звено), далеко не у всех был городской телефон, не говоря уже про сотовые и интернет. Учителям и кураторам приходилось вызывать родителей в школу через учеников - Ха-Ха-Ха, в особо запущенных случаях куратор даже приходила домой к ученикам.

Дневники большинство парней перестало вести в пятом классе, оценки по всем предметам выставлялись в бегунки. Еженедельно нужно было нести бегунок на подпись родителям. Если на длительное время припрятать бегунок, то выдадут новый - самое время нести на подпись опаздывающий на пару недель. Благодаря временному лагу, всегда можно было сказать что двойки давно исправлены, а куратор все прослоупочила.

А сколько еще способов: спрятать тетрадку с неудачной контрольной, подправить лезвием и ручкой единицу на четверку. Завести новую тетрадь. Вырвать страницу из дневника у меня получилось только один раз, он же последний - подпись у бати была не воспроизводимая. У остальных к середине учебного года дневник истончался до обычной тетрадки и заканчивалось свободное место. Постоянно приходилось выдумывать.

Новое поколение

Современное поколение выросло с сотовыми телефонами, почти везде внедрен электронный журнал с расписанием, заданиями, оценками, подробным планом уроков. Между куратором и родителями десять цифр на сотовом телефоне. Тотальный контроль. А где же простор для фантазии с колоссальной мотивацией пойти гулять перед контрольной, а не сидеть и зубрить. Выбор между наказанием и игрой на компьютере даже не стоял.

Как это сказывается на психологии и характере, когда вокруг все прозрачно и отсутствует пространство для маневра? Не скажется ли это отрицательно на самоконтроле и ответственности за свои поступки?

2012-09-20

Как я потерял десять лет

Персональный цифровой ассистент

На втором курсе университета, в 2006 году, купил КПК, БУшный, с рук, за девять стипендий. Для меня он стал именно тем, чем задумывался создателями - ассистентом. Чтение книг и просмотр документов, прослушивание музыки, просмотр видео, а главное, ведение каких-то заметок.

Живая память

Тем же летом я приехал домой. Гуляя по городу и проходя мимо какого-то места, у меня из памяти всплыли необычайно яркие воспоминания. Воспоминания были крайне положительны и, дабы их не потерять, решил записать в КПК, благо он был со мной.

Так и повелось: любое мало-мальски заметное воспоминание вносилось в записки. Спустя пару месяцев, у меня набралась обширная коллекция ключевых слов-якорей, которые вызывали у меня воспонимания из прошлого, начиная с поступления в школу.

Помимо воспоминаний, активно записывал мысли и рассуждения на темы, которые меня волновали в то время. Я даже хранил и в криптоконтернере, который предоставляла оболочка spb, хотя все это не несло бы никакой информации для тех, кто бы это ни прочитал.

Потеря

В то время я еще не держал бекапов для критически важной информации, да и не было у меня ни дропбокса, ни эвернота в то время. Закон Мерфи был неумолим: однажды неудачно извлек CF-карту и обнаружил её девственно чистой. Восстановление вернуло какие-то фрагменты, но то, что было восстановлено из рукописных заметок было нечитаемо.

Ошущения были непередаваемы: утрата воспоминаний больше чем за десять лет жизни. Хотя ощущение утраты довольно быстро прошло. Это научило делать бекапы и филосовски относиться к прошлому. Самое смешное, что я даже ни разу не прочитал то, что писал - это была своеобразная сублимация.

Принятие

Спустя еще пять лет я понимаю, что это все эти воспоминания были из позапрошлой жизни, которая давно ушла вместе с важными событиями, друзьями и переживаниями. Спустя годы все кажется потускневшим и малозначительным. Быть может, даже не утонув в цифровом шуме, эти записи так и не были бы никогда прочитаны, как и фотографии, сохраненные письма и прочие реликты прошлых жизней, которые не открываются владельцем, а остальным тем более не интересны.

Единственное что важно - это ты, твои навыки, твои близкие и знакомые. Жизнь - это процесс, эволюция, а не набор артефактов, застывших в прошлом времени.

2012-09-18

Люди-хабы

Есть особая, редкая категория людей: люди-хабы (лет пять назад услышанный термин). Один-два человека на сотню, за последние 7 лет, встретил таких не больше пяти. Это люди с поразительной способностью к общению и заведению новых знакомств. Один из типичных признаков - аська с полусотней открытых вкладок, в которых ведется параллельное общение. Любой, наверняка, среди своих знакомых сможет назвать парочку имен.

Благодаря этим людям может идти общение между различными группами. Их главный актив - знакомства. Они всегда готовы пообщаться на любую тему, решить проблему или хотя бы дать контакт своего знакомого, или знакомого знакомого, который сможет помочь.

Каковы бы ни были предпосылки для такой социальной роли, она рано или поздно заканчивается. С такими людьми сложно поддерживать близкие взаимоотношения - все время есть кто-то, кому нужно внимание. Видимо, они и сами понимают, что эмоциональный ресурс более чем конечен, и с появлением семьи, большинство социальных связей обрубается - хабы  превращаются в обычных людей.

2012-09-17

Энергетический банк

Android, 3G и батарейка
Прочитал в блоге у Диденко про внешнюю батарейку для девайсов и, наконец, спустя полгода таки заказал сей девайс. Потребность в нём была, особенно в различных покатушках (ни разу не хватало заряда записать весь трек) и железнодорожных переездах (интернеты быстро опустошают аккумулятор).

Амазон все еще отказывается слать в Россию, поэтому пошел искать на ибее. Такого же девайса не было, зато нашел кучу аналогов от китайского ноунейма.

Почта России, как обычно, прослоупочила всё, что только можно. За день до отъезда я решил таки поинтересоваться, какого, собственно, хрена. Со второй попытки (первая закончилась хамским "у меня очередь") я дозвонился и выяснил, что международная посылка ждет меня уже третью неделю в местном отделении. Забрал, написал вторую жалобу на почту и первый положительный отзыв китайцу, не смотря на то, что он начал заваливать меня спамом.

Пришел домой и поставил на зарядку, чтобы сразу испытать в боевом режиме поездки. В индикаторы китацы воткнули самые мощные диоды, какие вполне достойны фонарика. Пришлось засунуть в чехох из-под жесткого диска, чтобы не слепило. Изначально горело два индикатора из 4, спустя пять часов зарядки загорелись все 4.

Амперчасы

Ампер-час хитрая внесистемная единица, которая в двух аккумуляторах с одним запасенным зарадом может содержать разное количество запасенной энергии. Правильная характеристика Вт-ч, коих оказалось на 10А-ч ровно 23 Вт-ч. Аккумулятор телефона на 1400 мА-ч запасал 4.83 Вт-ч. Таким образом, телефон можно зарядить примерно пять раз.

Это первое устройство, которое потенциально может разряжаться в два раза быстрее, чем заряжается: ток зарядки 1А, а разрядки 2.1А, при одинаковом напряжении.

Полевые испытания

Испытания завершились успено. С поставленной задачей: обеспечивать телефон энергией за время поездки до дома - девайс успешно справился. За время поездки зарядил телефон два с половиной раза и дважды заряжал беспроводную гарнитуру. После чего последний диод начинал отчаянно моргать. Кстати, после недолгого выключения он опять показал половину заряда.

В данный момент девайс заряжается уже 12 часов и все еще показывает три индикатора. Из минусов - miniUSB зарядка, хотя все устройства у меня microUSB.

2012-09-16

Очередной обитель зла

Ходил вчера на этот, так называемый, сиквел. Это провал, причем такой глубины, что его не спасает даже Милка.

Сюжет, умещающийся в одной фразе "побег с базы", набор одноразовых героев, которые без сожаления идут в расход в очередном тупом мочилове. При этом эпизоды скачут безо всякой логической связи один с другим. А роялей в кустах столько, что хватит отапливать целый город.

Нас пытаются пугать трехмерными зомби "неожиданно" выскакивающими из-за угла, кидают ножами и другими предметами в зрителей. Ну раз, ну два, ну хватит уже!

Заявка на пафос который очередной раз пытается изобразить главная героиня вызывает только желание разбить лицо фейспалмом.

Посмешил набор штампов из других фильмов: затопление города было почти как в послезавтра, последняя картина подозрительно напомнила старкрафт, рентгеновский заставки как в МК, еще несколько узнаваемых.

Первая обитель была просто эталоном хоррора, к пятой серии скатившись в полнейший отстой. Больше в кино на эту серию не пойду.

2012-09-10

Perfect ORM

Посмотрел два интересных видео. Первое про дотнет и про то как там у разработчиков волосы гладкие и шелковистые, а второе про хибернейт и как там все ужасно. Давно хотел сформулировать свое отношение и вот созрело, хоть и немного сумбурно.

2012-09-07

На берегу информационного потока

Тотальный перегруз информации. Ощущение, что сижу на берегу реки, а мимо проплывают книги, идеи, статьи, инструменты, технологии. Пробовать все нет ни времени, ни желания. Только сожаление, что опять пропустил что-то интересное.

Растет evernote, в дропбоксе все место ушло на вебинары и подкасты, на пыльный киндл заливается все больше интересных книг.

Способность воспринимать информацию после рабочего дня снижается до нуля (хорошо, что еще работа работается). Самые интересные статьи требующие вдумчивого прочтения помечаются как непрочитанные, чтобы через месяц тихо утонуть, так ни разу и не открытые.

“Правило 72 часов” автоматически ставит крест на любой идее пришедшей с понедельника до четверга. А если в выходные хорошая погода, то и на остальных.

Иногда хочется уйти в отпуск на пол года, все-все-все прочитать и перепробовать все технологии и реализовать все идеи. Что-то похожее наблюдалось в период сессии, когда появлялось море более интересных занятий, чем зубрежка. Может это эхо студенчества, а может прокрастинация хочет мне что-то сказать.

Через неделю отпуск.

З.Ы. Самое обидное, что в отпуске делать что-то сложнее, чем фтыкать в смешные картинки, играть в стрелялки и гулять, так и не получится. Хотя я буду бороться изо всех сил, обязательно, прямо с утра на следующий день и начну.

2012-09-01

Итоги 2012

Пришел к выводу, что новый год на самом деле наступает первого сентября. За исключением позапрошлого года, последние 18 лет в это время начинался новый этап. Поэтому логично подвести итоги.

Скоро год, как работаю в крупной компании. Не смотря на стартапность отдела, мы активно общались с основной частью. Количество знакомств превысило все мыслимые пределы и сравнится только с поступлением в универсистет. Доброй традицией стало хождение на обед. Через две недели отправляем результаты нашей работы на суд большой публики.

Год, также, оказался богат на конференции: целых две штуки. Научились общаться и знакомиться с людьми. После первой конференции были сделаны выводы и устранены недостатки.

Отдельной победой считаю поездку в Омск, не смотря на общий неуспех кампании по получению нового паспорта. Приобрел незабываемый опыт заезда в незнакомый город. Находить отель из другого города, добираться от вокзала, передвигаться по городу оказалось не так страшно. Отдельное спасибо Дубльгису.

2012-08-31

В потоке

Отпуск опасен: появляется куча времени поразмышлять на тем, действительно ли ты хочешь продолжать заниматься тем же. Дважды я менял работу после отпуска. На текущей работе первый отпуск чуть было не стал последним - настолько стало скучно. Но к моменту выхода в команде появился опытный разработчик: рубист и фанат гита, я еще написал тогда про идейного противника. А это предвещало море фана.

Поначалу были терки на почве слишком активных изменений: к моему выходу команда уже переехала с только начинавшегося ant-проекта на maven, а с Eclipse на IDEA, и на горизонте маячил JEE. Наконец, начали внедрять тестирование и реально использовать CI на Jenkins. Много криков было по поводу переезда с единой тестовой базы в mysql на кучку мелких yaml файлов - в итоге это оказалось не так страшно. Да и вообще тесты писать не так сложно, как казалось: стоило только начать. Интересно было делать ревью друг другу: после длительной работы вырисовывается среднее арифметическое в стиле и подходах, а новый человек приносит новый, альтернативный взгляд. К сожалению, продержался он с нами недолго и уехал покорять локальную столицу.

На этот же период пришлась доработка функционала, разбитая на двухнедельные спринты: неделя разработки и неделя тестирования и исправлений. К этому моменту выкристализовался адаптированный git-flow. Мы начали загонять все, что написано на железку и результат многомесячных усилий стало можно пощупать руками и увидеть, что все это действительно работает - это избавляет от страха "не взлетит".

Сейчас жесткие сроки по доработке к середине сентября, когда наш продукт должны пощупать первые пользователи. Желание услышать фидбек от реальных внешних людей мотивирует на работу, а там будет видно.

Стайл гайд написан деньгами

В каждой профессии есть набор прописных истин с разными последствиями при не исполнении. И если искра в забое может стать для шахтера последней, то в программировании все не так очевидно.

Не используй гото и глобальные переменные, комментируй код, не доверяй вводу, PEP 20, java code conventions  и прочее - все эти истины раз за разом повторяются новичкам, до полного усвоения. Если нарушать правила, код будет пахнуть, а с техническими долгами никогда не рассчитаетесь и стоимость изменений вырастет до бесконености.

2012-08-30

Как я мигрировал систему

На десктопе семерка стояла на IDE, причем рядом имелся SATA жесткий диск с достаточным количеством свободного места. Неудавшаяся миграция никак не давала мне покоя, и вооружившись жестким диском для бекапа всего нажитого, я таки решил осуществить этот процесс.

2012-08-25

Шок будущего. Часть 6

Продолжение статьи: Шок будущего. Часть 4.

 

Часть 6. Стратегии выживания


Управление временем


Огромный поток информации отчасти объясняет наш специфический выбор развлечений — чтение, фильмы, телепередачи в часы досуга. Иногда мы стремимся к высокому коэффициенту новизны, богатому потоку информации. В другие моменты мы активно сопротивляемся когнитивному возбуждению и тянемся к «легким» развлечениям.

2012-08-22

Шок будущего. Часть 4-5

Продолжение статьи Шок будущего. Часть 1-3.

Часть 4. Многообразие


Отличительной чертой массовых производств было жесткое единообразие и огромные партии. С развитием технологии и автоматизации эти требования отходят на второй план. Станки с цифровым управлением делают широкое разнообразие изделий малыми партиями экономически оправданным.

2012-08-21

Шок будущего. Часть 1-3

Элвин Тоффлер. Шок будущего. 

Монументальная трансгуманистическа книга, написанная в 1970 году в попытке сделать прогноз на ближайшие десятилетия, на фоне ускоряющихся перемен. С анализом проблем того времени, автор рассматривает возможные варианты их решения. По широте охвата различных сфер жизни, книга соперничает с “Суммой Технологии” Станислава Лема. Но при этом в “Шоке будущего” анализируется ближайшее будущее. Книга читалась фактически с маркером, для выделения наиболее интересных мыслей. Прогнозы, зачастую наивные, не так интересны, как анализ проблем и крисисов того времени: волна изменений с запазданием на десятилетия докатилась и до нас. Многие кризисы из описанных автором за сорок лет так и не были предолены. Из-за объема информации книга читалась очень тяжело и долго, но это того стоило.

Дальше идут закладки сделанные мной, при чтении книги. Курсивом выделены цитаты, квадратными скобками - сноски.

2012-08-18

Пешки 2

Ура, случилось то, чего мы все так долго ждали! Старики вернулись чтобы показать, каким должны быть боевики. Тонны патронов и всего два попадания.

Ходил на премьеру Expendables 2 в "правильном переводе". Фильм отличный, для полной картины боевиков детства не хватало голоса Володарского. Впечатление от просмотра не смогло испортить даже вступительное слово Гоблина с тупыми шутками и гоготом зала. Чака и Шварценеггера встречали аплодисментами. Рядом сидящие девчонки яростно негодовали, когда Билли захватили козлы Ван Дамма. Особо порадовал шутки актеров, над предыдущими ролями. "Ты достал со своим Я вернусь", "Крепкий орешек" и другие.

Надеюсь, будут еще фильмы со старой гвардией.

2012-08-14

Лучше бы не вспоминали

Ходили давече на “Вспомнить все”. На римейк не тянет, лучше бы не трогали классику. Титры в начале, обрывки в конце. Кино - попкорн. Половину фильма сидел в позе Джеки Чана.

Самый большой фейл - это долгое отсутствие темы с диссоциацией сознания, думал и не будет, как негр ближе к концу попытался разыграть эту карту, но был крайне неубедителен за что и получил пулю в лоб. Не получилось создать резкий переход, так чтобы мы думали что главный герой бредит.

Второе, что меня поразило - это большой разрыв между технологическими возможностями и реальным использованием. Почему сразу не начали отслеживать телефон в руке. Почему герой не заподозрил что-то неладное и опять сел в кресло. Зачем была нужна жена, хотя мозги могли промыть и отправить его сразу в логово повстанцев. Зачем главный злодей поперся руководить операцией на месте?

Третий вопрос движение сквозь центр земли: как они бурили, как они ездят и не сгорают внутри, почему невесомость только в центре. Взлетать они должны были сразу по отправлению.

З.Ы. Борн, кстати, тоже ничего не вспомнив, был гораздо более поражен своим суперспособностям.

З.З.Ы.  Не смотря на бластеры, и прикольные хлысты стрелять спецназовцы так и не научились. Как синтетики, обладая компом в мозгах и идеальной моторикой, не могут не попасть в цель для меня так и осталось загадкой.

2012-08-11

Больше тестирования

Суть статей про Юнит-тестирование:

В правильных тестах не должно быть [1]
  • ввода-вывода
  • обращения к ресурсам
  • доступа к базе 
  • доступа к другим приложениям
Печально, что все этим же и заканчивается: если вы не можете протестировать ваш класс, то, скорее всего, он неправильно спроектирован. Для сложных случаев придется использовать магию моков, стабов и фикстур.

2012-08-04

Зрелость тестирования

Подумалось, что зрелость тестирования похожа на CMM и тоже разбивается на несколько стадий.

Начальная стадия


Тестирование, как таковое, отсутствует. Все изменения вносятся сразу на продакшн, либо заливаются на него либо вообще без тестирования, либо с минимальным (скомпилировалось - отлично, выкладываем). Работа программиста выглядит как постоянное подпирание накренившихся модулей и затыкание протечек. Стоит разработчикам отвернуться - все тут же крашится. Новый функционал вносить страшно - можно ненароком задеть соседние модули в самых неожиданных местах. Тестировать страшно (очевидно, будет найдена куча ошибок) и совершенно не ясно с какой стороны к этому подходить.

Повторяемая стадия


Внезапно, разработчики обнаруживают, что если на бумаге описать сценарии тестирования, то тестировать становится гораздо проще, а вносить изменения не так страшно. Единственный продакшн начинает расслаиваться на отладочный, релизный и стабильный. На рабочую версию изменения не заливаются без прохождения всех описанных сценариев.

Установленная стадия


Тестирование автоматизируется. Сложный функционал вносится без опасения сломать систему. Архитектура системы начинает адаптироваться под тесты и, как следствие, понижается связанность между модулями.

Уровень 1.

Пишутся тесты для простейших классов и методов. С одним входом и выходом.

Уровень 2.

Тесты выполняются на единственной большой тестовой базе. Тесты очень хрупкие: важен порядок выполнения, регулярно возникают коллизии между тестами.

Уровень 3.

Тестовые данные разбиваются на фикстуры и каждый тест запускается в изолированной среде.

Уровень 4.

Взаимодействие с внешним миром тестируется при помощи стабов и моков.

Уровень 5.

Тестируется пользовательский интерфейс?
Пишутся интеграционные тесты?

Управляемая стадия


Видел одним глазом. Запрет на внесение нового функционала без покрытия тестами и документирования внесенного кода.

Оптимизированная стадия


1. Magic
2. ???
3. Profit

2012-08-01

Темный рыцарь: возрождение легенды


Сходили вчера на “Темного рыцаря”. Фильм был долгий, и, вцелом, понравился, на часы я не посмотрел ни разу - одна из моих главных метрик.

А дальше будут спойлеры.

2012-07-29

CodeFest Mini

За день до поездки собрались поиграть в Империал 2030. Изначально планировалось лечь не позднее часа, но прокопались и начали только в полночь. Долго разбирались с правилами и закончили игру в пятом часу. А выезд был запланирован на половину пятого.

Когда Константин приехал за нами, я нашел одеяло, чтобы подложить под голову, после чего скрючился на заднем сиденье и вырубился. Пруснулся я от того, что машину болтало по кочкам: мы ехали по грунтовке, сокращая путь до Академгордка. Проехали, правда, не долго и поймали кирпич. На смену колеса ушло минут двадцать, и мы поехали дальше гораздо аккуратнее.

2012-07-25

Монах наоборот

Один монах прослыл странным методом написания кода. Встретившись с проблемой, он сначала писал много автоматических тестов, чтобы убедиться, что еще не написанный код верен. И тесты, естественно, проваливались. Только после написания всех тестов монах начинал работать непосредственно над кодом, усердно продвигаясь вперед, пока все тесты не пройдут.

Его браться высмеивали этот процесс, поскольку монах писал вполовину меньше кода, чем его братья, еще и с большим опозданием. Братья звали его Луохоу — Монах наоборот.

Джава мастер Банзен, услышав об этом, заявил: я разберусь.

После возвращения, мастер постановил: все члены клана, закончившие с недельной работой, могут составить ему компанию в купальном пруду, в качестве награды за эффективность. Монах наоборот — единственный, кто остался.

На вершине прыгательной скалы старший из монахов взглянул вниз и отскочил. Монах закричал: Мастер, кто-то разобрал дамбу; вся вода ушла из пруда; внизу нас ждут только водоросли и острые камни!

Мастер Банзен, подталкивая своим посохом молодежь к пропасти, ответил: Естественно, вы сможете решить проблему, достигнув дна.

The Codeless Code 

2012-07-24

QTception

Понадобилось написать десктопный клиент и рассматривали различные варианты написания оного. Хотелось кроссплатформенности и, поэтому, рассматривалась Swing и QT. В качестве варианта QT рассматривался запуск браузера который будет показывать нашу веб-аппликуху. Главным аргументом был высокий скилл в вебе, главным контр-аргументом - полная неясность как из сервера достучаться до клиента пробив все слои абстракции.
И эти люди запрещают мне ковыряться в носу
А уровней у нас было много: между сервером и браузером находились Vaadin и GWT. И если с первыми тремя элементами было все относительно просто и понятно: по классу на виджет и обертку, то как пронзить песочницу в обе стороны было неизвестно даже возможно ли такое впринципе.

Быстро выяснилось, что можно расширить объектную модель движка плюсовыми классами и вызывать методы внутри JavaScript из приложения. В обратную сторону можно добавить javascript обработчики событий. Обработчики успешно выводили алерты, но вызвать нативный метод из браузера после сигнала с сервера никак не удавалось.

После уютного мира жабы пасть до нативного кода оказалось мучительно больно. На второй день получилось запустить отладчик, который ничем не помог: приложение все так же падало с неизвестной ошибкой, либо вообще ничего не происходило. Единственное что было доступно - логи в консоли и алерты в браузере.

К концу третьего дня, когда отчаяние достигло максимума, созерцая обфусцированный gwt-шный javascript, заметил отсутствие ";".