понедельник, 31 марта 2014 г.
Нет стабильности
Сегодня только утром Юле говорил, что хоть и солнечно, но холодно. А перед обедом вообще снег пошёл. Хотя к вечеру он растает, так как уже опять солнце выглядывает.
воскресенье, 30 марта 2014 г.
Одуванчики
Ещё одна задачка, сложная для второклассников на мой взгляд:
Одуванчик живёт по следующему расписанию: утром он распускается, три дня цветёт жёлтым, а на четвёртый день утром становится белым. Вечером пятого дня одуванчик облетает.
В пятницу днём на поляне было 17 жёлтых и 12 белых одуванчиков, а в воскресенье - 13 жёлтых и 9 белых. Сколько белых одуванчиков будет на поляне в среду следующей недели?
Проехали три сотни
Отвезли друзей на север по КАДу. Очень удобно встать в левую полосу, включить круиз-контроль и полететь. Но напрягает, что всё-таки встречаются у нас гонщики, которые сначала фарами мигают, а потом ещё и подрезать норовят. Один даже решил нас проучить, встал перед нами и километров пять ехал со скоростью 60 км/ч. Нам-то пофиг, а ему каждый обгоняющий сигналил.
Обратил внимание, что при одной и той же скорости на тахометре разные числа. Если я один, то где-то 2100 оборотов на 110 км/ч, а если в машине 7 человек, то - 2500.
Расход не измерить, так как бортового компьютера нет, а жаль. Есть подозрение, что круиз-контроль помогает экономить.
Обратил внимание, что при одной и той же скорости на тахометре разные числа. Если я один, то где-то 2100 оборотов на 110 км/ч, а если в машине 7 человек, то - 2500.
Расход не измерить, так как бортового компьютера нет, а жаль. Есть подозрение, что круиз-контроль помогает экономить.
На танки
Сегодня к нам приехали гости и мы всемером на нашей машине скатались к Ладожскому мосту. Там мы погуляли и поели блинов.
Я обнаружил, что Лёшка боится высоты. Он и в детстве не очень любил ездить у меня на шее, а тут залезет на броню танка и боится пошевелиться.
Но он пытается бороться со страхом и всё равно просит помочь ему залезть.
Я обнаружил, что Лёшка боится высоты. Он и в детстве не очень любил ездить у меня на шее, а тут залезет на броню танка и боится пошевелиться.
Но он пытается бороться со страхом и всё равно просит помочь ему залезть.
пятница, 28 марта 2014 г.
Мёртвый язык
Учитель Суку путешествовала с тремя послушниками по заснеженным горам, направляясь к далёкому храму. Тропа головокружительно поднималась на огромную скалу, и, как только стало смеркаться, они осознали, что наступает долгая ночь, и начали искать место, которое дало бы им укрытие от ветра.
В конце концов группа наткнулась на глубокую расселину в скале, достаточно широкую, чтобы каждый из них мог протиснуться. Он вела в узкую пещеру, но, когда Суку зажгла фонарь, путешественники обнаружили, что они тут не одни. Древний труп, хорошо сохранившийся в бесконечном холоде, находился в дальнем конце. Одна мумифицированная рука держала камень, а наклонная стена напротив была равномерно покрыта глубокими царапинами, незнакомого вида.
"Что вы видите?" - спросила Суку остальных.
"Пометки", - сказал первый послушник, - "сделанные камнем".
"Слова", - сказал второй, - "вырезанные мертвецом".
"Сообщение", - сказал третий, - "не предполагающее ответа".
Суку покачала головой, роясь в карманах своего пальто: "Это последняя просьба, предназначенная нам".
"Можете ли вы понять буквы?" - спросил первый послушник.
"Нет", - сказала Суку, достав свой сотовый телефон и направив его камеру на царапины. - "Но я распаковывала исходники из многих дальних стран. И хотя форма в каждом месте разная, я ещё могу понять, когда что-то кричит ПРОЧТИ МЕНЯ".
В конце концов группа наткнулась на глубокую расселину в скале, достаточно широкую, чтобы каждый из них мог протиснуться. Он вела в узкую пещеру, но, когда Суку зажгла фонарь, путешественники обнаружили, что они тут не одни. Древний труп, хорошо сохранившийся в бесконечном холоде, находился в дальнем конце. Одна мумифицированная рука держала камень, а наклонная стена напротив была равномерно покрыта глубокими царапинами, незнакомого вида.
"Что вы видите?" - спросила Суку остальных.
"Слова", - сказал второй, - "вырезанные мертвецом".
"Сообщение", - сказал третий, - "не предполагающее ответа".
Суку покачала головой, роясь в карманах своего пальто: "Это последняя просьба, предназначенная нам".
"Можете ли вы понять буквы?" - спросил первый послушник.
"Нет", - сказала Суку, достав свой сотовый телефон и направив его камеру на царапины. - "Но я распаковывала исходники из многих дальних стран. И хотя форма в каждом месте разная, я ещё могу понять, когда что-то кричит ПРОЧТИ МЕНЯ".
Original: Dead Language
Велосипед изобрели
Судя по всему, для компиляции выражений в блоках лямбд используется самописный компилятор, в котором забыли про некоторые новые возможности языка Java. Например, свеженький баг показывает проблему с обработкой исключений, когда для одного
А вчерашний баг в лямбдах показывает, что проблема в реализации autoboxing/unboxing. Давайте напишем две лямбды на стандартных интерфесах из пакета
try используются одновременно catch и multi-catch.А вчерашний баг в лямбдах показывает, что проблема в реализации autoboxing/unboxing. Давайте напишем две лямбды на стандартных интерфесах из пакета
java.util.function: ((IntConsumer) value -> {
while (value > 0) {
System.out.println(value--);
}
}).accept(10);
((Consumer<Integer>) value -> {
while (value > 0) {
System.out.println(value--);
}
}).accept(10);В первом случае будет напечатаны числа от 10 до 1, как и ожидается, а во втором - от 9 до 0.
четверг, 27 марта 2014 г.
Ошибочка тут у нас
Неожиданное продолжение поста про лямбды.
Допустим, что есть интерфейс:
IDEA подсветила выражение, предложив использовать лямбды. После чего, рефакторинг в одно нажатие изменил код так:
А теперь допустим, что в одном и том же методе существуют обе эти реализации. Как вы думаете, какие числа напечатаются?
Welcome to λ-hell!
Допустим, что есть интерфейс:
interface I<T> {
public T m(T value);
}и есть реализация этого интерфейса:Io = new I<Integer>() { @Override public Integer m(Integer value) { return value++; } };
IDEA подсветила выражение, предложив использовать лямбды. После чего, рефакторинг в одно нажатие изменил код так:
I<Integer> l = value -> value++;
А теперь допустим, что в одном и том же методе существуют обе эти реализации. Как вы думаете, какие числа напечатаются?
System.out.println(o.m(1));
System.out.println(l.m(1));Welcome to λ-hell!
Интерпретатор
Совместное нахождение под снегом долгие зимние месяцы - серьёзное испытание даже для самых близких друзей; Йывень и Хвайда не стали исключением из этого правила.
Хвайда была уже достаточно раздражена тем, что её долговязая соседка молча танцевала по каморке, размахивая руками и ногами перед самым носом Хвайды. Но её терпение закончилось в тот день, когда Йывень поставила электрический гучжэн* в центре комнаты и начала на нём играть. Точнее, начала неумело дёргать за струны, получая серию неблагозвучных, немелодичных, неритмичных звуков. Интерлюдия длилась минуту, после чего Йывень села и стала что-то записывать. Но потом она встала и повторила своё выступление.

После десятого подхода Хвайда швырнула сандалию прямо в спину Йывень, заставив девушку взвизгнуть и обернуться.
"Что", - прорычала Хвайда, - "ты делаешь?"
Несколько бумаг Йывень слетели на пол. Хвайда схватила их. Это были распечатки алгоритма быстрой сортировки, реализованного на разных языках: C, Lisp, Perl, и даже Prolog. На каждом из них красными чернилами были начертаны ноты.
"Тысяча извинений за мою грубость", - сказала Йывень. - "Я пыталась закодировать алгоритмы в виде движений в пространстве или записей в воздухе. Если этот результат не радует, то я сменю кодировку и попробую ещё раз".
"Зачем?" - спросила Хвайда.
"Чтобы увидеть, что я обнаружу, делая это", - ответил Йывень. - "Мы часто говорим о красоте или элегантности кода. Возможно, не зная об этом, мы уже составили хореографию танца по информации, и мы находим некоторые вещи приятными, так как они взывают к некоему глубокому эстетическому чувству, общему для других форм человеческого искусства. Если это так, то такое искусство можно добавить. Я ищу эту связь".
Хвайда задумалась.
"Пока музыка быстрой сортировки ускользает от меня", - продолжила Йывень со вздохом. - "Возможно, мой эксперимент так же глуп, как и перевод песни в код с попыткой скомпилировать её. Возможно, музыку быстрой сортировки лучше играть на машинах по их усмотрению, а не нашему. Надо ли мне бросить начатое дело и поберечь твои нервы?"
В ответ Хвайда достала две ватных затычки из своей тумбочки и засунула их в уши. Йывень поклонилась и вернулась к своему инструменту. Таким образом, мир был восстановлен.
* Я полагаю, что гучжэн звучит примерно так.
Хвайда была уже достаточно раздражена тем, что её долговязая соседка молча танцевала по каморке, размахивая руками и ногами перед самым носом Хвайды. Но её терпение закончилось в тот день, когда Йывень поставила электрический гучжэн* в центре комнаты и начала на нём играть. Точнее, начала неумело дёргать за струны, получая серию неблагозвучных, немелодичных, неритмичных звуков. Интерлюдия длилась минуту, после чего Йывень села и стала что-то записывать. Но потом она встала и повторила своё выступление.
После десятого подхода Хвайда швырнула сандалию прямо в спину Йывень, заставив девушку взвизгнуть и обернуться.
"Что", - прорычала Хвайда, - "ты делаешь?"
Несколько бумаг Йывень слетели на пол. Хвайда схватила их. Это были распечатки алгоритма быстрой сортировки, реализованного на разных языках: C, Lisp, Perl, и даже Prolog. На каждом из них красными чернилами были начертаны ноты.
"Тысяча извинений за мою грубость", - сказала Йывень. - "Я пыталась закодировать алгоритмы в виде движений в пространстве или записей в воздухе. Если этот результат не радует, то я сменю кодировку и попробую ещё раз".
"Зачем?" - спросила Хвайда.
"Чтобы увидеть, что я обнаружу, делая это", - ответил Йывень. - "Мы часто говорим о красоте или элегантности кода. Возможно, не зная об этом, мы уже составили хореографию танца по информации, и мы находим некоторые вещи приятными, так как они взывают к некоему глубокому эстетическому чувству, общему для других форм человеческого искусства. Если это так, то такое искусство можно добавить. Я ищу эту связь".
Хвайда задумалась.
"Пока музыка быстрой сортировки ускользает от меня", - продолжила Йывень со вздохом. - "Возможно, мой эксперимент так же глуп, как и перевод песни в код с попыткой скомпилировать её. Возможно, музыку быстрой сортировки лучше играть на машинах по их усмотрению, а не нашему. Надо ли мне бросить начатое дело и поберечь твои нервы?"
В ответ Хвайда достала две ватных затычки из своей тумбочки и засунула их в уши. Йывень поклонилась и вернулась к своему инструменту. Таким образом, мир был восстановлен.
* Я полагаю, что гучжэн звучит примерно так.
Original: Interpreter
Переезд
Даже небольшой переезд с этажа на этаж - это хороший повод прибраться в труднодоступных местах, разобраться в хламе и повыкидывать ненужное. I like to move it, move it...
среда, 26 марта 2014 г.
Круиз-контроль
Покатался ночью по КАДу, потестировал круиз-контроль. Когда нет машин - удобно, но если несколько скапливается, то приходится давить педали. А при нажатии он автоматически отрубается.
вторник, 25 марта 2014 г.
Не думай
Новый монах клана Следа Слона заметил, что все братья, находящиеся под опекой учителя Бавана, отвечают на вопросы быстро, без малейшего промедления. Те же, кто замешкается, получают резкий удар по голове посохом учителя, после чего они должны хранить молчание остаток дня, если, конечно, не потеряют сознание от удара.
Молодой монах спросил одного из братьев: "Почему Баван наказывает тех, кто задерживается с ответом?"
"Потому что он считает, что они думают", - сказал старший монах. Он указал на ряд черепов, установленных над учительской дверью. Одни были старые и пыльные, а другие выглядели так, будто недавно расстались с прежними владельцами, но у каждого на лбу были вырезаны учителем слова НЕ ДУМАЙ.
Старший монах оставил молодого обдумывать алгоритм Бавана.
Через некоторое время эти же два монаха всю ночь работали над обновлением одной из старейших баз данных документов клана. Критические системы были отключены на время перемещения старых документов на новые сервера.
Скрипт перемещения выполнялся несколько часов, пока в самом конце не упал из-за незначительной проблемы. Скрипт был запущен повторно, но, так как рассвет быстро приближался, монахи решили, что необходимо пропускать все документы, которые уже были перемещены во время первого запуска.
Когда во второй раз стала быстро пропускаться та часть базы данных, что уже была обработана в первый раз, Баван заметил нечто любопытное. На экран стали выводиться многие тысячи сообщений, выглядящих примерно так:
Тем не менее, время от времени можно было заметить вариант, выглядящий следующим образом:
"В чём разница?" - спросил Баван.
"Не могу сказать", - быстро ответил старший монах. Баван фыркнул и дал ему пощёчину тыльной стороной ладони. Затем он повернулся к молодому монаху.
"В чём разница?" - повторил он.
В этот момент, пока мысли молодого монаха метались между рукой учителя и его посохом, на него снизошло озарение.
"Часы смещены", - заявил молодой монах. - "Когда мы берём исходный документ со старого сервера, мы сохраняем время его последнего изменения, а затем создаем документ на новом сервере. Однако, если системные часы не согласованы, то скрипт иногда считает, что исходный документ изменился после создания нового".
Учитель на самом деле нашёл небольшое расхождение времени между двумя серверами. Он одобрительно кивнул и ушел, оставив молодого монаха наслаждаться пониманием алгоритма Бавана.
День спустя Баван повелел клану собраться у его офиса. Пока все ожидали появления учителя, старый монах прошептал, что Баван потратил целый день, собирая окончательные доказательства того, что именно из-за разницы в показаниях часов выводились те непонятные сообщения.
"И он их нашёл?" - спросила монахиня.
"Ничего похожего", - сказал старый монах. - "По правде говоря, один сервер был случайно оставлен работающим во время перемещения документов, так что пользователи всё ещё делали правки в старой базе данных. Второй запуск скрипта пропускал эти документы, выдавая то предупреждающее сообщение. Когда запросы стали обращаться к новой базе данных, последующие правки пользователя сделали невозможным восстановление утраченных изменений. Это большой позор для нашего клана".
Дискуссия резко оборвалась, когда из офиса появился Баван с лестницей, по которой он поднялся и установил на дверью новый блестящий череп. Форма черепа напомнила того молодого монаха, которого никто не видел в течение дня. Как и прежде, на лбу были вырезаны слова НЕ ДУМАЙ. А на челюсти, невидимой для любого стоящего под дверью, но вполне заметной, пока учитель нёс череп, было ещё одно слово - ЗНАЙ.
Молодой монах спросил одного из братьев: "Почему Баван наказывает тех, кто задерживается с ответом?"
Старший монах оставил молодого обдумывать алгоритм Бавана.
Через некоторое время эти же два монаха всю ночь работали над обновлением одной из старейших баз данных документов клана. Критические системы были отключены на время перемещения старых документов на новые сервера.
Скрипт перемещения выполнялся несколько часов, пока в самом конце не упал из-за незначительной проблемы. Скрипт был запущен повторно, но, так как рассвет быстро приближался, монахи решили, что необходимо пропускать все документы, которые уже были перемещены во время первого запуска.
Когда во второй раз стала быстро пропускаться та часть базы данных, что уже была обработана в первый раз, Баван заметил нечто любопытное. На экран стали выводиться многие тысячи сообщений, выглядящих примерно так:
document 2677091: skipped (already exists)document 2677092: skipped (already exists)document 2677093: skipped (already exists)Тем не менее, время от времени можно было заметить вариант, выглядящий следующим образом:
document 2677094: skipped (already exists) (** source is newer)"В чём разница?" - спросил Баван.
"Не могу сказать", - быстро ответил старший монах. Баван фыркнул и дал ему пощёчину тыльной стороной ладони. Затем он повернулся к молодому монаху.
"В чём разница?" - повторил он.
В этот момент, пока мысли молодого монаха метались между рукой учителя и его посохом, на него снизошло озарение.
"Часы смещены", - заявил молодой монах. - "Когда мы берём исходный документ со старого сервера, мы сохраняем время его последнего изменения, а затем создаем документ на новом сервере. Однако, если системные часы не согласованы, то скрипт иногда считает, что исходный документ изменился после создания нового".
Учитель на самом деле нашёл небольшое расхождение времени между двумя серверами. Он одобрительно кивнул и ушел, оставив молодого монаха наслаждаться пониманием алгоритма Бавана.
День спустя Баван повелел клану собраться у его офиса. Пока все ожидали появления учителя, старый монах прошептал, что Баван потратил целый день, собирая окончательные доказательства того, что именно из-за разницы в показаниях часов выводились те непонятные сообщения.
"И он их нашёл?" - спросила монахиня.
"Ничего похожего", - сказал старый монах. - "По правде говоря, один сервер был случайно оставлен работающим во время перемещения документов, так что пользователи всё ещё делали правки в старой базе данных. Второй запуск скрипта пропускал эти документы, выдавая то предупреждающее сообщение. Когда запросы стали обращаться к новой базе данных, последующие правки пользователя сделали невозможным восстановление утраченных изменений. Это большой позор для нашего клана".
Дискуссия резко оборвалась, когда из офиса появился Баван с лестницей, по которой он поднялся и установил на дверью новый блестящий череп. Форма черепа напомнила того молодого монаха, которого никто не видел в течение дня. Как и прежде, на лбу были вырезаны слова НЕ ДУМАЙ. А на челюсти, невидимой для любого стоящего под дверью, но вполне заметной, пока учитель нёс череп, было ещё одно слово - ЗНАЙ.
Original: Don't Think
Обкатка
При обкатке автомобиля на нём рекомендуют почаще ездить, чем я и занимаюсь второй день. Вчера доехал до работы минут за 40, а сегодня добирался больше часа. И это не считая дороги до гаража.
При выезде на Благодатную один тип врезался в грузовик с очень длинным прицепом и они перегородили не только выезд с ЗСД, но и половину Митрофаньевского шоссе. И я, уже после оплаты 30-ти рублей, минут 30-40 выбирался из образовавшейся пробки.
При выезде на Благодатную один тип врезался в грузовик с очень длинным прицепом и они перегородили не только выезд с ЗСД, но и половину Митрофаньевского шоссе. И я, уже после оплаты 30-ти рублей, минут 30-40 выбирался из образовавшейся пробки.
воскресенье, 23 марта 2014 г.
Камера заднего вида
В гараже надо затеять перестановку, а то парковаться приходится почти вплотную, а парктроник ни капли не помогает, ибо верещать начинает сильно заранее.
Нужно подумать либо о камере заднего вида, либо о зеркале, которое будет позволять визуально контролировать расстояние до бампера.
Нужно подумать либо о камере заднего вида, либо о зеркале, которое будет позволять визуально контролировать расстояние до бампера.
Регистрация
В салоне нам предложили зарегистрировать автомобиль за 8500 р., но мы сами решили поехать в ближайшее МРЭО. Приехали туда в 14:40, после обеденного перерыва, записались в очередь и стали ждать. Когда уже всё надоело, мы пошли в Континент, чтобы перекусить и провести время, а то внутри МРЭО кондиционера нет, а людей много. Документы удалось подать в окошко только в 17:40.
После этого, регистрация автомобиля, его осмотр и выдача номерных знаков прошли за регламентированный 1 час. Стоимость всех сборов составила 2000 р.
Кстати, в МРЭО телевизор показывал НТВ, который нагнетал. Думаю, что пропагандомер Каца показал бы на нём 146%.
После этого, регистрация автомобиля, его осмотр и выдача номерных знаков прошли за регламентированный 1 час. Стоимость всех сборов составила 2000 р.
Кстати, в МРЭО телевизор показывал НТВ, который нагнетал. Думаю, что пропагандомер Каца показал бы на нём 146%.
Слонов возить
Сегодня забрали нашего корейца из салона:




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




Стас помогал осущаствлять приёмку и даже нашёл небольшой косяк с багажником, который нам быстро поправили. Правда потом целый час оформляли ОСАГО - там в салоне очень неспешная тётушка работает. На заправке залили аж 67 литров дизеля.
пятница, 21 марта 2014 г.
среда, 19 марта 2014 г.
Новый поезд
Несколько раз уже прокатился на разрекламированном поезде. Не сильно заметно, что он тише обычного, зато у него откидные сидушки, чтобы в час пик больше народа влезало стоя. Правда, какая бы ни была толпа, всегда найдётся персонаж, который всех растолкает со словами: "Ну дайте же сесть!"
У него один минус, особенно для меня. Поручни не над сиденьями, как обычно, вдоль и поперёк всего вагона. Мне приходится проходить пригибаясь: сначала в дверях, потом сразу поручни, а потом ещё когда к сидушкам надо пройти.
У него один минус, особенно для меня. Поручни не над сиденьями, как обычно, вдоль и поперёк всего вагона. Мне приходится проходить пригибаясь: сначала в дверях, потом сразу поручни, а потом ещё когда к сидушкам надо пройти.
Бухарестская
Посетил новую станцию метро. Теперь и в эту часть города стало легко добраться, а то раньше приходилось ездить на перекладных с Московской или Ломоносовской.
Безнал
Как оказалось, в автосалоне принимают карточки к оплате, но берут за это 2% от суммы, при цене автомобиля выливается в круглую сумму. Я оплатил счёт через интернет-банк, где тоже берут маленький процент, зато сумма ограничена сверху и не превышает тысячи. Всяко спокойнее, чем снимать нал и возить по городу.
Правда сегодня выяснилось, что несмотря на то, что деньги уже перечислены, автосалон не может ими воспользоваться, так как счёт был выписан на мою жену. Можно было бы послать корректировку назначения платежа через банк за полторы тысячи рублей, но я просто поехал в автосалон и написал заявление.
Правда сегодня выяснилось, что несмотря на то, что деньги уже перечислены, автосалон не может ими воспользоваться, так как счёт был выписан на мою жену. Можно было бы послать корректировку назначения платежа через банк за полторы тысячи рублей, но я просто поехал в автосалон и написал заявление.
Подписаться на:
Сообщения (Atom)





