LE Blog

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

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

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

09.06.2010 firtree_right Солянка

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

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

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

Андроид, кстати, и в использовании, и в разработке оказался вполне приятным.

Такие дела.

28.05.2010 firtree_right Dog's dream

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

♯♯♯

А ещё мне не хотелось поднимать свой почтовый сервер, и я узнал, что существует Яндекс почта для домена. Это гениально!

♯♯♯

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

#!/usr/bin/env ruby
if `git log -1 --format=format:%H`.chars.each_slice(20).map{ |part| part.inject(0){ |sum, ch| sum + ch.hex } }.uniq.count == 1
puts '**************************************'
puts '*   Congratulations! Lucky commit!   *'
puts '**************************************'
end

♯♯♯

Наконец-то добрался и посмотрел последнюю серию:

via kuteev

Обтекаемо закончили :) Не то, что старик Линч.