11:34 

I'm not dead... yet.
Меня немного раздражает, когда незнакомые люди добавляют меня в друзья, а через некоторое время удаляют. Я все время пишу примерно одинаковые посты. И примерно с одинаковой частотой. И примерно на одинаковые темы. Как это понять? Сначала мой блог был интересным, а потом внезапно перестал?
Помню, в начальных классах какая-то училка меня все время то хвалила, то ругала. Наверное она думала, что когда ругает меня, то мне обидно. На самом деле я никогда не уважал людей, которые меняют свое мнение каждые 5 минут. Мне было не только наплевать на ее мнение, но даже как-то было стыдно за нее, что она несет такую чушь.

@музыка: Korn

12:01 

I'm not dead... yet.
На работе поставили задачу организовать отправку XML-файлов на федеральный портал N.
Файлы должны быть подписаны по стандарту XMLDSIG, но ГОСТовскими алгоритмами. Поэтому большинство готовых решений из гугла отпадают.
Такие файлы можно создать средствами КриптоПро, но лицензия на десятки тысяч клиентов обойдется недешево.

Я стал пытаться написать свою реализацию, но на все файлы приходил ответ: "ЭЦП не валидна".
Тут нужно сделать лирическое отступление. ЭЦП по сути представляет собой что-то вроде хеш-функции. На вход мы подаем данные (любой набор байтов) и указываем закрытый ключ, с помощью которого хотим создать подпись. На выходе получаем строку из 64 байт. Эта строка и называется ЭЦП. Для одних и тех же данных ЭЦП каждый раз генерируется разная, но свойства у нее одни и те же:
Имея ЭЦП, исходные данные и открытый ключ отправителя, можно точно установить, является ли этот отправитель создателем ЭЦП, и соответствует ли эта ЭЦП исходным данным. Если в процессе передачи данных кто-то внесет изменения хотя бы в один бит, ЭЦП уже перестанет соответствовать этим данным. То есть можно будет установить фальсификацию данных.
Если кто-то изменит данные и захочет сгенерировать новую ЭЦП - это будет невозможно сделать без закрытого ключа, который хранится только у отправителя данных. Можно использовать другой закрытый ключ, но тогда ЭЦП будет невоможно сопоставить с открытым ключом исходного отправителя, т.е. мы опять же узнаем, что данные были сфальсифицированы.
А также, ЭЦП это просто набор байт, по которому никак нельзя определить исходные данные, которые были ей подписаны. Что-то типа контрольной суммы.

Стандарт XMLDSIG предполагает, что мы подписываем не весь XML файл, а только интересующие нас элементы. Существуют особые правила преобразования XML-дерева в байты. При этом вырезаются комментарии, символы переноса строки и т.д. Этот процесс называется каноникализацией.
Отправитель файла берет элемент, который нужно подписать, проводит каноникализацию и подписывает его, после чего добавляет подпись в тот же файл. Получатель файла точно так же берет элемент, проводит каноникализацию и сверяет указанную ЭЦП с полученными данными.
Понятное дело, что если на стороне отправителя и получателя алгоритмы каноникализации реализованы с расхождениями, то они будут получать разные данные и ЭЦП никогда не сойдется.
Я предположил, что именно такой вариант и имеет место (и как оказалось, был прав).
После недели экспериментов я уже был в отчаянии и хотел сдаться, но тут мне кинули ссылку на программу, которая делает то же самое, что нужно сделать мне. Она не использовала сторонние компоненты и, судя по всему, в ней была собственная реализация алгоритмов, написанная на C++.

Я скачал OllyDbg (дизассемблер-отладчик), и хотя никогда раньше этим не занимался, за 3 дня сумел найти в экзешнике место, в котором вызывается функция Windows Crypto API по созданию ЭЦП, и вытащил из стека параметры, которые в нее передаются. Потом я сравнил эти параметры со своей реализацией, нашел расхождение и дело было в шляпе.

Теперь горжусь собой и чувствую себя хакером.

11:11 

I'm not dead... yet.
Заказал ардуино, датчики температуры-влажности и пару реле. Попробую сделать мозги для инкубатора. Я уже 10 лет программирую под ПК, но с микроконтроллерами еще ни разу не работал. Да, я знаю что ардуино это не православно, но не хочу заморачиваться, травить платы, паять кондеры с резюками... хочу тупо воткнуть шнур, написать код и чтобы все заработало, и без всяких программаторов. По крайней мере на первоначальном этапе.
Алгоритм работы будет довольно простой: при охлаждении включаем ТЭНы или тупо лампочки, при перегреве, наоборот, вентиляторы. Раз в час включаем мотор, который двигает решетку, переворачивающую яйца. При критическом отклонении параметров включаем какой-нибудь зуммер.
Еще в идеале нужно поддерживать правильный уровень влажности.

В позапрошлом году мы купили инкубатор. В первый год он показал хорошие результаты, но потом начал жить своей жизнью, температура в нем скакала от 35 градусов до 40. Естественно цыплята перестали выводиться. А на рынке они стоят недешево.
В среднем курица в год сносит 200 яиц, значит десяток кур уже может обеспечить тебе экологически чистую яичницу каждый день. Также яйца можно продавать людям, помешанным на здоровой еде. А еще можно разводить и продавать породистых кур за неплохие деньги. Я, правда, не понимаю, зачем их покупают, если по яйценоскости и мясным характеристикам они не сильно отличаются от обычных. Для красоты разве что...
Единственная проблема - сделать так, чтобы выводок не сдох. Врагов у них много: кошки, крысы, вороны, дождь, собственная тупость... даже взрослая курица может легко утонуть в миске с водой. Не случайно придумали поговорку: "цыплят по осени считают". Держать их в железном ящике тоже не вариант, без солнца и свежего воздуха они плохо растут. Короче, надо еще будет это обдумать.

00:22 

I'm not dead... yet.
Вот я в новом году уже успел заработать лучевой ожог и вкрутить в палец саморез. А чем можете похвастаться вы?

14:24 

I'm not dead... yet.
Молол кукурузу электрической мельницей. Зерно вылетело в щель, попало в ногу и отрикошетило от ноги в глаз. Это больнее, чем в пейнтболе синяки получать... Теперь буду пользоваться этой адской машиной в сварочной маске)

10:47 

I'm not dead... yet.
Вчера в очередной раз сбежала Шейла. Она единственная, кто живет не в вольере и постоянно пытается прорваться в дверь мимо хозяев и устроить набег на близлежащие помойки. После массовой истерии на КП40 по поводу "агрессивных неуправляемых алабаев", выпускать ее просто опасно. Она уже как-то прибегала домой с пробитой головой, видимо некие добрые люди решили проявить Активную Гражданскую Позицию, и старая полуглухая собака с больными суставами показалась им подходящей целью. Бегает она с трудом, поэтому я вчера смог ее догнать и привести обратно домой.
И, да, я решил на зиму отрастить бороду, так теплее ^^


17:19 

I'm not dead... yet.
"Сегодня около 6:15 утра от дома № *** по улице ******* ШЕСТЬ собак напугали и гнали в сторону водонапорной колонки жительницу дома № *** по улице ********, выгуливающую свою собаку на поводке в НАМОРДНИКЕ, породы ЙОРКШИРСКИЙ ТЕРЬЕР! В результате чего йоркширский терьер сорвался с поводка и убежал в неизвестном направлении. Прошу привлечь к ответственности хозяев СТАИ, особенно байкера, оторый таким образм шутит!"

Вот такую телегу на меня накатала соседка, пожелавшая остаться неизвестной. В Гейропах все друг на друга стучат, а в Рашке духовность, говорили они...
Самое смешное, что я в 6:15 утра досматривал последний сон и собаки точно сегодня не убегали (выходил греть машину в 7:50, все были на месте). Но участковый все равно пришел пугать штрафом и отстрелом, да.
Йорка жалко, надеюсь найдется.

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

@музыка: Jane Air

17:05 

I'm not dead... yet.
Сижу в машине возле магазина, жду жену. Подходит очень сильно поддатый мужик и садится на капот. Внутренне уже приготовился что придется бить его (не люблю это), но мужик оказался не агрессивный. Взял его под руки и увел к магазину и там оставил. Алкаши эти щас никому не нужны. Вытрезвители отменили, менты и скорая их тоже очень неохотно забирают. Один раз уже связывался с этим.
Короче, мне тоже пофиг, я благотворительностью не собираюсь заниматься. Сам напился, сам виноват.

11:47 

I'm not dead... yet.
Разгрузил газель с сеном. В принципе не особо тяжело. Но это только полторы тонны, а нужно еще раз пять по столько же.

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

А еще нам скоро среднеазиатского волкодава на передержку отдают, вот это классная собака...

@музыка: Metallica - Devil's dance

13:12 

I'm not dead... yet.
Это были не выходные, а какой-то нескончаемый Сайлент Хилл. Туман и дождь, на трассе видимость хуже чем ночью. Если б не крайняя необходимость, ни за что бы не сел за руль.
Под Обнинском уже в темноте выезжал из одного поселка и повернул не туда. В итоге попал на крутой спуск, дорога глинистая и вся размокла от дождя. Пытался развернуться на середине спуска - не получается, машина не выходит из колеи. Естественно, дорожная почти лысая резина нифига не гребет в глине, даже на полном приводе. В итоге задним ходом кое-как выбрался на ровный участок. Надо на всякий случай цепи прикупить.

А еще у нас месяц назад ощенилась Аляска. От шпица, блин. Внеплановая вязка. У щенков возникли небольшие проблемы со здоровьем. Все дело в том, что раз в полгода мы обрабатываем всех животных от глистов. Но последняя обработка видимо прошла неудачно, может лекарство было бракованное. Короче, щенки были заражены глистами и после того как им дали таблетки, у них началась сильнейшая интоксикация. Мы их естественно лечим, но у одного щенка до сих пор возникают припадки, во время которых он вцепляется зубами во что-нибудь и перебирает лапами, ходит кругами, падает на бок, а потом приходит в себя посреди комнаты и не понимает, как он там оказался. У остальных состояние изначально было намного лучше. Короче, хреновая это экономия - на лекарствах и прививках, будем брать другое средство.
Сегодня забыл закрыть щенков в конуре на ночь и они разбрелись по всему двору, а один вообще попал к соседу, так что пришлось через забор лезть доставать.
Сейчас осталось трое, если кто хочет: www.avito.ru/moskva/sobaki/metisy_sibirskih_has... френдам отдам со скидкой ))
Черный уже поднимает голову вверх и воет, как волк, тоненьким голосом.

12:52 

I'm not dead... yet.
Нет ничего вкуснее, чем животное деревенское, которое паслось на экологически чистом поле. Где его удобнее всего резать и разделывать? Правильно, на детской горке))
Слабонервным и веганам не смотреть))
pp.vk.me/c622216/v622216956/71c8/SJqgOF8J0KE.jp...

14:07 

I'm not dead... yet.
В школе пожаловались, что старший напевает песню группы Ленинград "Любит наш народ всякое говно". И я даже знаю, где он ее услышал))

13:13 

I'm not dead... yet.
Опять попал в аварию. Не пропустили, когда ехал по главной. Отделался легкими травмами, когда мотоциклом придавило ногу.

09:51 

I'm not dead... yet.
Хрустосезон, пожалуй, закрыт. В -3 кататься хоть и возможно, но особого удовольствия не доставляет. Попробую навести порядок в подвале и закатить мотоцикл туда, там относительно тепло, можно будет зимой покрутить гайки...

@музыка: Jungle Rot - Let Them Die

17:41 

новости из разряда "всем пох"

I'm not dead... yet.
Сегодня день рождения одного из моих любимейших музыкантов. Это Стиви Рей Вон. Когда он погиб, мне было всего 4 года. И страшно подумать, сколько музыки он мог бы еще сыграть...
У Мэри был барашек!
www.youtube.com/watch?v=G6lq0sRon0k

17:54 

I'm not dead... yet.
Выхожу утром на улицу. Надо ехать на работу. Счистил лед с сиденья, начинаю откатывать мотоцикл от дома. Эта сволочь начинает падать на правый бок, а я-то стою слева. Законы физики не позволяли ничего сделать из-за трехкратной разницы в весе, но все равно попытался удержать... Попытки тщетны, моц падает, а руль я так и не отпустил.. меня подкидывает куда-то в воздух, потом шваркает об асфальт. Встаю, отряхиваюсь, с трудом поднимаю моц (не потому что тяжелый, а потому что локтем больно ударился). Правого поворотника нету, висит одна лампочка на проводах... ну я все равно их собирался менять поворотники, ок. Вселенная, я понял твой намек.

10:35 

I'm not dead... yet.
Есть такое старое геймерское понятие - рокет-джамп. Это когда стреляешь себе под ноги из ракетницы и взрывом тебя подбрасывает вверх. Когда мы учились в школе (лет наверное 15 назад), придумали еще "принудительный рокет-джамп". Это когда стреляешь под ноги противнику, чтобы его унесло куда-нибудь в лаву или кислоту.

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

14:58 

I'm not dead... yet.
Вчера ездили заниматься всякими бюрократическими действиями по регистрации новорожденного. Весь идиотизм в том, что для этого требуется присутствие обоих родителей, то есть ребенка нужно тоже брать с собой. Пока я гулял с ним вокруг паспортного стола, обратил внимание, какой вонючий и пыльный воздух в городе...
Я всю жизнь прожил в центре областной столицы и меня все устраивало. Но последние несколько лет живу на окраине. Рядом овраг, военная база, поле, пруд и небольшой лесок. Я очень рад, что мой ребенок будет расти в таком месте. В центр не вернусь ни за какие коврижки.

П.С. Витара молодец. Уверенно тянула за собой прицеп почти в тонну весом. При этом мало жрет и нигде не застревает. Когда я загонял его к покупателям, они спросили у жены:
- как он ловко управляется, наверное дальнобойщик?
- вообще-то программист...
- о_О

08:56 

I'm not dead... yet.
Очень мокрый вольф-шпиц.


Вот такой "милый" паучок завелся в сарае...

14:35 

I'm not dead... yet.
Поставил вчера Tomb Raider 2013. Офигенная игра. Не обошлось конечно без консольного кинца с элементами "Нажмите E чтобы отобрать у бандита пистолет", но погружение в сюжет и перестрелки (два элемента которые я больше всего ценю в играх, причем именно в таком порядке) выполнены отлично. Очень хорошо показаны эмоции Лары, чего не хватало в предыдущих играх. Головоломки, конечно, могли бы быть и посложнее...
Внешность героини 10 из 10 (и это умело подчеркивается мокрыми после кораблекрушения майками и сисечными ракурсами). Думаю, не одному йуному геймеру она будет являться во влажных снах. А этот арт я обязательно себе поставлю на рабочий стол.

I'm proud of all my scars

главная