LE Blog

Инженер с поэтической душой

30.10.2010 firtree_right Двулично

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

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

♯♯♯

Года два назад (а то и больше) мы обсуждали с Петровым возможный уэб-два-ноль-проект, которые называется «ненависть-ненависть-ненависть» (очень важно, когда пишешь название проекта каждый раз печатать слово, а не копи-пейстить). Суть проекта в том, что все приходят на сайт и пишут о том, что они ненавидят-ненавидят-ненавидят. Это было воодушевляюще, мы хихикали, а Петров потом, просмеявшись, сказал: «Представляешь, как почернеет душа у человека, который сделает такой проект?»

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

Это, кстати, удивительно, что я очень мало рассказываю в правильных словах о том, как мне что-то не нравится. Выбесить меня очень просто: достаточно просто показать себя чмошником-растяпой, и — хоп! — ненависть-ненависть-ненависть. С этой задачей прекрасно справляется 95% людей. Тогда мне кажется, что если над чмошником-растяпой иронично простебаться или не подать виду, то я такой, типа, уравновешенный. :)

Короче говоря, сюда будут попадать истории о том, как меня что-то, скажем так, расстроило. Начнём с последнего.

Сегодня мне прислали логин и пароль от корпоративной Ёты. Почему я вообще решил делать корпоративную Ёту — тема для отдельной записи. В целом я к ним достаточно лоялен. Даже не расстроился, когда мне по телефону сказали неправильный набор документов для подписания договора, и мне пришлось идти к ним лишний раз. И вот я ввожу эти временные логин и пароль, и меня просят ввести регистрационную информацию. И тут — сюрприз! — пользователь с такими телефоном и электронной почтой уже существует. Это я же и есть, но как физлицо. Звоню в корпоративную поддержку и мне говорят, что обязательно любому человеку, если он имеет личный аккаунт и отвечает за корпоративный нужно иметь два разных адреса электронной почты и два разных контакнтых телефона. Точка. Хоть усрись. Я, конечно же, остался к ним лоялен, но это АБСОЛЮТНО НЕЛЕПО!

24.10.2010 firtree_right Снова

Внезапно прервал виртуальную жизнь на три месяца. :) Даже не знаю, с чем это связано. Не помню, писал ли я уже об этом, но когда я в 2007-ом ушёл с работы, то для меня был довольно актуален вопрос: «чем же я хочу заниматься по жизни?» Нутро на вопросы не отвечало, поэтому я просто сел и выписал на бумагу то, чем я занимался в разные периоды своей жизни, начиная с 3 класса школы. И оказалось, что единственным, что присутствовало во все эти периоды, и сохранило мой интерес, было программирование. Это был забавный опыт, когда беспристрастный анализ на бумаге выявляет совсем не то, что ты привык про себя думать. Какое-то время ушло на то, чтобы сжиться с мыслью о себе-ещё-и-программисте (так, или иначе, около года), и тогда эта ипостась попёрла из меня со страшной силой. Сейчас всё стало заметно спокойнее. По крайней мере, я могу посвящать программированию один блог, а не два :)

Возможно, перерыв связан с тем, что когда интенсивно идут съёмки, то основная работа не в создании и придумывании нового, а в поддержке старого. Это кажется монотонным и недостойным внимания читателей. Или наоборот, придумывание нового было на такой зародышной стадии, что состояло в основном из тупки, а поддержка старого было единственной не-тупкой. Но в любом случае поддержка скучна [или не так весела].

Так или иначе, я написал про то, как определить, запущен ли демон.

♯♯♯

Ира подарила мне на день рождения книжку Гладуэлла, которая состоит из его статей в газету. Удивительно, до какой степени можно интересоваться людьми. Он как бы всё время воспроизводит тот опыт из детства, когда ты впервые узнаёшь, что внутри у другого человека всё устроено по-другому, и что многим не нравится то, что нравится тебе (и наоборот). Возможность посмотреть на мир глазами другого человека появляется уже в том возрасте, из которого есть чёткие воспоминания, да.

Но не суть. В общем, один из героев его статей был Цезарь Миллан  — в нашем переводе его шоу называется «переводчик с собачьего». В общем, мне стало очень любопытно, что он такое делает с собаками. А потом я поехал к родителям и увидел, что по Энимал Плэнет идёт как раз это шоу (я смотрю телевизор только у родителей). Потом приехал домой, и скачал ещё. Я не любитель собак или животных вообще. Но по какой-то причине я смотрел и смотрел это шоу, серия за серией.

Так вот, я вспомнил, что раньше читал (это было буквально одно предложение у Лазарева), что «человек — это животное плюс что-то ещё». И чем больше я смотрел, тем больше мне казалось, что мне понятно, где примерно проходит эта граница. Это, отчасти, игрушка для разума, но человека можно представить (для некоторых целей), как хозяин + собака.

Практические выводы такие:

  1. Для первого, наверное, нужно быть мной, чтобы понять, о чём я. Но нервозность, тревожность и прочие нежелательные состояния собаки происходят от того, что она считает себя главной, а значит ответственной за стаю. И если что-то случается неожиданное (другая собака, звук пылесоса, кто-то пришёл), то ей нужно иметь с этим дело, защищать стаю, контролировать ситуацию, но она не умеет этого делать в случае с пылесосом и микроволновкой, а в случае с гостем или другой собакой может только атаковать или отпугивать. Это как бы про то, что можно иметь с событиями дело тем или не тем местом :)

  2. Простые вещи работают круче интеллекта. Важно, в каком состоянии просыпаюсь, о чём первом думаю, в каком состоянии ложусь спать. Что делаю перед [или за] едой. Что делаю регулярно. Если проснуться и сходить прогуляться в магазин за завтраком до того, как его есть, то это меняет весь день. Нежелательные состояния легче переключать пока они не набрали интенсивность. Если регулярно возвращать себя в определённое состояние, это имеет ошеломляющий эффект. Вообще, заиметь или бросить привычку — это очень масштабное изменение жизни.

Такие дела. А что у вас?

02.08.2010 firtree_right Rien de rien

Если вы, как и я, смотрели «La vie en rose», и вам, как и мне, понравилось, то от просмотра Inception вы получите дополнительные грани удовольствия.

Хотя Афиша-киноблог говорит, что это вышло случайно.

27.07.2010 firtree_right Водичка

Как-то я постепенно перестроился и привык к этой погоде. Главное, что я обнаружил, важно пить побольше воды. Раньше я мог вообще выпить в день три чашки чая (по одной на завтрак, обед и ужин) и больше не пить жидкости вообще. В жару особенно быстро голова наполняется всякими липкими мыслями. У меня есть даже теория, почему. А водичка довольно хорошо её [голову] освобождает.

На освободившееся место приходят мысли более пространные и обобщающие.

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

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

А ещё, что реализовавшееся желание начать писать третье поколение съёмочной программы вылилось в то, что я думаю[туплю] большую часть дня, а непосредственно пишу — меньшую. Думать, всё таки, тяжелее, чем программировать. Спасают мелкие дела.

Или, например, непонятно, почему иное залетевшее в дом насекомое, даже очень маленькое, я скорее выпущу с миром, а тополиную моль — скорее убью.

А какие у вас мысли, когда вы попьёте водички?

08.07.2010 firtree_right Ассорти

В такую жару клёво делать что-нибудь новое и интересное. Пробовать что-нибудь в первый раз и проектировать с нуля. А писать документацию или дорабатывать наследие прошлого в такую жару лениво. Я нашёл программиста на си и очень им доволен. Он аккуратен, оперативен и такой же аут, как и я. Это будет уже третье поколение съёмочной программы. То есть я писал эту штуку два раза с чистого листа и мне всё мало.

Посмотрели сегодня «Девушка с татуировкой дракона». Я люблю скандинавское кино. У него всегда прекрасный, ни на что не похожий ритм. Вроде бы ничего не происходит, но невозможно глаз оторвать. Однако, я бы не смог посмотреть два скандинавских фильма с перерывом меньше чем в неделю. Вот такая любовь.

Нет более приятного собеседника за обедом, чем Маша.

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

А как у вас дела?

23.06.2010 firtree_right Пеар

Вот и вышел в свет ещё один портфолио-блог как у меня с Ирой. :) Сделал я его для наших с Ирой друзей, а именно Маши Красновой-Шабаевой. После того, как Маша и Тимур нарисовали дизайн, я долго тянул кота за хвост, чтобы не верстать, а потом впервые в своей практике применил метод: «Купи вёрстку у Мистера Вудмана и спи спокойно».

Заодно проверим на вшивость отечественных поставщиков хостинга, о которых недавно упоминал.

19.06.2010 firtree_right Деплой

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

В связи с чем попробовал отечественный продукт: хостинг locum.ru. Не знаю, правда, как он под нагрузкой, но первые впечатления от настройки приятные. С тех пор, как я пользуюсь capistrano, залить что-то на хостинг — легко и быстро. Самое трудное, обычно — это первый деплой. Тут как раз всё прошло быстро и не меняя привычек. Недостаток инструкций, конечно, имеется, но не страшный.

Я бы даже написал им инструкцию, как залить свой проект на Ruby on Rails на их хостинг, но я всё время стесняюсь, что не умею пользоваться ssh-agent. Может кто-то научит меня пользоваться ssh-agent, чтобы мне не добавлять дополнительный deploy-ключ в список пользователей репозитория?

18.06.2010 firtree_right Машинка!

Вот, чем я занимаюсь после работы:

12.06.2010 firtree_right Оказалось, не казалось

Пока вы спали (и я тоже спал) мне явился правильный ответ: это float в формате little endian (младшим байтом вперёд). Вот код для андроида.

int tmp = Float.floatToRawIntBits(new Float(number));
byte[] msg = {(byte)tmp, (byte)(tmp >> 8), (byte)(tmp >> 16), (byte)(tmp >> 24)};

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

11.06.2010 firtree_right Профессиональное

Я тут вечерами не могу лечь спать, потому что управляю своим Lego Mindstorms роботом с телефона на Android (моего любимого ненаглядного HTC Desire то бишь) по bluetooth. Я уже написал базовое взаимодействие, и бодро передаю сообщения. Возник лишь один нюанс с передачей целых чисел. Вместо того чтобы совать их в трубу младшим байтом вперёд, как об этом говорят все интернеты, у меня они выглядят не так.

Это был целый детектив. Я слал ему little endian, но он отказывался. Сначала совсем. Потом везде видел нули Тогда я начал его пытать, и заставлял его посылать сообщения из целых чисел.

Если записать это в двоичной форме, то примерно понятно, что он имеет в виду. Но возможно есть матчасть, которую можно почитать, чтобы лучше это понять. Что это за представление, как его просто изобразить, скажем, на Java? Итак, имеем четыре байта:

... симметрично
-4 => 0x00 0x00 0x80 0xC0
-3 => 0x00 0x00 0x40 0xC0
-2 => 0x00 0x00 0x00 0xC0
-1 => 0x00 0x00 0x80 0xBF
0 => 0x00 0x00 0x00 0x00
1 => 0x00 0x00 0x80 0x3F
2 => 0x00 0x00 0x00 0x40
3 => 0x00 0x00 0x40 0x40
4 => 0x00 0x00 0x80 0x40
5 => 0x00 0x00 0xA0 0x40
6 => 0x00 0x00 0xC0 0x40
7 => 0x00 0x00 0xE0 0x40
8 => 0x00 0x00 0x00 0x41
9 => 0x00 0x00 0x10 0x41
10 => 0x00 0x00 0x20 0x41
...
15 => 0x00 0x00 0x70 0x41
16 => 0x00 0x00 0x80 0x41
17 => 0x00 0x00 0x88 0x41
...
555 => 0x00 0xC0 0x0A 0x44
...
2147483648 => 0x00 0x00 0x00 0x4F

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