пятница, 14 сентября 2012 г.

Неисправленный монах

Два священника клана Слепого Орла С Семью Когтями нашли учителя Java Банзена рыдающим на клавиатуре. Они спросили, что же причинило ему такие страдания.

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

Первый священник посмотрел на код. "Исправление, конечно, требуется. Я предлагаю вам начать с простой порки".

Учитель вздохнул и кивнул, сбросив рясу с плеч.

Original: The Uncorrected Monk

Клан Слепого Орла С Семью Когтями
Руководство: оно может быть уродливым и недальновидным, но оно по-прежнему задаёт тон.

Тест-драйв

Вернулся в Аврору покататься.

Для начала прокатился на Qashqai. Очень понравился вариатор на двухлитровом двигателе - быстрый набор скорости, а переключение передач совсем не чувствуется. Зеркала хороши. 4 камеры кругового обзора для парковки - это здорово. За рулём - удобно. Вот только сзади места маловато будет. Надо подумать...

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

Рядом увидел Zafira Tourer для тест-драйва. Попинал продавца, но он мне порулить не дал. Хорошо, что пустил внутрь. Понравилось решение с панорамной крышей, но и только. Места, конечно, больше чем в машинах выше, но качество очень хромает. Пластик в некоторых местах сломается сразу, как дети залезут за руль. А ещё продавец обрадовал, что если я оставлю залог и закажу машину, то ждать её только к апрелю месяцу.

Зашёл в KIA покататься на Sorento. Продавец попросил подождать, пока он с другими покупателями закончит. Через 20 минут он пришёл, отксерил права и пошёл за ключами. Тут и выяснилось, что машину забрали на ТО и порулить мне не удастся. Эти 20 минут я провёл в Sorento и понял, что она мне не комфортна, так как места там ещё меньше, чем в рамном Pathfinder. Ну и не надо!

Короче, Scenic II пока никто не переплюнул.

четверг, 13 сентября 2012 г.

Компромисс

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

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

Первый монах возразил: "Разве для любой проблемы есть более одного решения, которое превосходит остальные?"

Второй монах был также недоволен: "Разве не правильно действовать последовательно и, таким образом, избежать хаоса, даже если наилучшее решение пока не ясно?"

"Да," - сказал учитель Java. "Разве никто из вас не обратил внимание?"

Original: Compromise

Грачи прилетели


Грач, оказывается, это настоящий летающий танк. Один вот из Чечни вернулся после прямого попадания из ПЗРК.

Подставка

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

Чем бы дитя не тешилось... ;)

среда, 12 сентября 2012 г.

Красный блокнот

В летописи храма Утреннего Медного Гонга это записано в главе "Модульное тестирование":

Учитель Java Кайму иногда мог отвечать на вопросы одним словом null. Когда его спрашивали, что же это значит, он неизменно отвечал тем же непостижимым null.

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

"Ты ещё не постиг разум своего любимого учителя Кайму?" - стали однажды дразнить его братья.

"Null", - сказал монах.

За это другие монахи быстро схватили его стали пинать, пока он не покрылся синяками. Его драгоценную красную книжку они бросили в огонь.

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

Настоятель выполнил это. На большинство вопросов монах дал простой ответ. На несколько он ответил загадочным null. А остальные оставил без ответа.

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

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

"А как быть с братьями, избившими его?" - спросил настоятель.

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

Original: The Red Notebook

λямбда

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

Во-первых, я узнал про effective final. Компилятор теперь сам может узнавать, является ли локальная переменная неизменяемой. Он позволяет использовать такие переменные в лямбда-выражениях и, возможно, будет позволять их использовать в анонимных классах. Теперь можно будет не писать final перед локальной переменной.

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

Помимо обычных лямбда-выражений вида:
    (String s) -> System.out.println(s)
    x -> x + x
    (x, y) -> x + y
будет возможность использовать существующие методы:
unbound static
Comparator cmp = Integer::compare;
используется статический метод класса с двумя параметрами
unbound virtual
Comparator cmp = Integer::compareTo;
используется виртуальный метод класса с одним параметром, где вторым параметром является экземпляр этого класса
bound virtual
Comparator cmp1 = Integer::compare;
Comparator cmp2 = cmp1::compare;
используется виртуальный метод класса с двумя параметрами
Там ещё много чего было, это я пока для затравки написал.


Бабье лето

Что-то на улице непривычно жарко. Видимо недавно прилетевший друг привёз с Лазурного берега немного тёплого воздуха. Ничего, сейчас налетит ветерок с залива и всё будет по прежнему...

вторник, 11 сентября 2012 г.

Форма

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

"Это не правильно", - сказала монахиня и продолжила путь.

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

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

"Уф", - сказала монахиня. "Шершень может ужалить медведя, когда его гнездо под ногами".

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

"Уф", - сказала монахиня.

"Объясните", - сказала настоятельница.

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

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

Передохнув Жинг набрала воды и вылила её в помятый кувшин. Она медленно шагнула назад и встала рядом с настоятельницей.

Там содержалось всё до последней капли воды.

"Удовлетворительно", - сказала монахиня.

Original: Shape

Новый сезон

С нетерпением ждём приключений Шелдона и его друзей:

Первые 3 сезона смотрим в озвучке от Новамедиа. Голоса подобраны настолько хорошо, что смотреть в озвучке от Кураж-Бамбей не можем. Хотя про эти переводы всегда спорят. Сезоны 4 и 5 смотрели в оригинале с субтитрами. Рекомендуем всей семьёй!

Погода

По утрам дико холодно, а днём солнышко нагревает среднесуточную температуру так, что батареи пока не включают. У детей сопли текут, я кашляю, а у Юли колени ноют. Пора в баню!

понедельник, 10 сентября 2012 г.

Безопасность

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

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

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

Монах поклонился и сообщил об этой беседе учителю Java.

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

"Вы за рулём", - сказал учитель.

Они сели в машину священника, после чего тот нахмурился.

"Шкала настройки моего радио, по-видимому, была украдена", - сказал священник.

"Это хорошо", - сказал учитель Java. "Музыка была бы опасным отвлечением внимания на узких дорогах".

"Также пропали кнопки от кондиционера", - сказал священник.

"Превосходно!" - сказал учитель Java. "Прохладный воздух усугубляет ревматизм и вызывает заболевания внутренностей."

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

"Кроме того," - сказал священник, - "капот, кажется, заварен."

"Пусть не закончится никогда ваша удача!" - воскликнул учитель Java. "Теперь очевидно, что никто не сможет повредить двигатель. И если цвет шин когда-нибудь перестанет нас удовлетворять, я думаю, что их можно будет заменить без какого-либо заметного влияния на плавность хода".

Original: Safety

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

воскресенье, 9 сентября 2012 г.

Письмо счастья

Пришёл ещё один штраф за превышение скорости. Нарушали на том же месте, но несколько дней спустя. За 88 км/ч - 300 р.

суббота, 8 сентября 2012 г.

Аврора и др.

Продолжаем наши покатушки: посетили автоцентр Аврора на Софийской, 2 и Восток-Авто на Бухарестской, 1.

Продавцы Nissan взялись за нас всерьёз. Нам очень понравился Pathfinder, но там есть проблемы с педалями: мне до них некомфортно дотягиваться из-за низко опущенной торпеды. Буду ещё тест-драйвить на неделе. Также рассматривали Qashqai+2, но у него на третий ряд можно только детей посадить, да и то - в креслах. Мишке очень понравилась Navara: дети там в кузове резвились. Но эта машина не для города.

Сквозь автосалон Лаура мы прошли как сквозь масло. Продавцы там тупо плюют в потолок и забивают на посетителей.
Cadillac предлагает только Escalade как семейный автомобиль.
В Opel мы хотели более подробно посмотреть на Zafira Tourer, но в салоне этого автомобиля не было.
В Chevrolet мы опять смотрели на Orlando, но не как-то катит.
В SsangYong нам никто не показал Rexton, хотя мы активно проявляли свой интерес к нему, пока дети резвились в кузове Actyon Sports.
В Suzuki мы не пошли после такого отношения к покупателям. Кроме того, я не знаю у них вместительных моделей.

Kia нас порадовала детской площадкой. Наконец-то дети не мешали нам выбирать. Да и продавцы, хоть и не такие активные как у Nissan, но присутствуют. В джипе Mohave очень комфортно за рулём, но на заднем сиденье даже Юля головой упирается, а третий ряд не складывается без манипуляций вторым. В Sorento оказалось места побольше, так как рамы нет, которая всё место съедает. За рулём, конечно, плотно, но потест-драйвить можно.

После поехали смотреть Hyundai. Santa Fe и ix55 выглядели перспективно, но за руль я в них не помещаюсь совсем. H-1 оказался огромным микроавтобусом, но в Россию он поставляется в малокомфортабельной грузо-пассажирской модификации. Сказали, что пассажирские к нам официально не везут, а жаль!

пятница, 7 сентября 2012 г.

Прерывание

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

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

    while (true) {
        /* do nothing */
    }

"Я утверждал, что цикл должен выполняться пока сама правда истинна", - сказал монах. "Но если я нажму кнопку 'Прерывание', то цикл прервётся. Смысл в том, что в этот самый момент правда уже не будет истинной. Как любой из нас смеет тревожить программу? Мы можем привести хаос в мир!"

Учитель Java протянул руку и вытащил вилку из розетки. Экран погас.

"Теперь цикл никогда не будет прерван," - сказал учитель.

Разум монаха успокоился.

Original: Interrupt

Качай - нехочу

Сегодня прочитал, что под Android выпустили μTorrent. Может это и удобно, но батарейку жалко. Да и WiFi у меня отрубается при выключении экрана.

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

Хочу арбуз

Обратили внимание, что сейчас у нас не продают арбузы в клетках. Возвращаясь поздно вечером я спросил у продавцов дынь, винограда и прочих фруктов: "Что за фигня?"

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

Пришлось взять дыню, чтобы утешить...

Ни да, ни нет

Монахиня клана Следа Слона сидела на столе, скрестив ноги, и спокойно созерцала диаграмму Сущность-Связь на доске.

Учитель Java увидел это и подошёл.

Бог Молчания Между Словами уже был в комнате.



Монахиня показала на диаграмму. "Этот столбец с именем завершено объявлен целочисленным. Анализ данных показывает, что он содержит два уникальных значения: ноль и единица. Я полагаю, что ноль означает ложь, а единица - истину".

Учитель сказал: "Только инициализация может сказать, что считается с помощью этих чисел".

Бог Молчания Между Словами сказал: "Наличие единственного нуля подразумевает наличие единицы для его подсчёта, затем двойки для подсчёта их обоих и так далее, до бесконечности. Разве вселенская весна выглядит так из скорлупы яйца змеи?"



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

Учитель сказал: "Вы хотите определить, рассматривается ли истина как наличие единицы или как отсутствие нуля".

Бог Молчания Между Словами сказал: "Отсутствие нуля означает наличие. Наличие нуля означает отсутствие. Когда змея пожирает свой хвост вплоть до кончика своего языка, то что остается?"



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

Учитель сказал: "Это отсутствие значений является либо проницательной паузой, которая предшествует лжи, либо мягким затишьем перед раскрытием истины. Его значение определяется тем, чем станет значение. И только тогда, когда оно перестанет существовать, мы сможем понять, что же это было".

Бог Молчания Между Словами сказал: "Призрак заимствует форму усопших. Но какую форму мы можем присвоить духу ещё нерождённых?"



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

Учитель сказал: "Мы узнали только, что мы ничего не узнали, но это основа мудрости".

Бог Молчания Между Словами сказал: "И мудрец, и дурак ушли в могилу с одинаковой уверенностью: они оба считают, что мудрец был дураком. Где же тогда может быть найдена мудрость?"



Монахиня сложила руки на коленях. "Целочисленный null, хранимый в SQL, становится логическим null в памяти. Два ничто совершенно разной природы. Как могут быть неравны отсутствия?"

Учитель кивнул.

Бог Молчания Между Словами поднял бровь.

Original: Neither Yes Nor No

Клан Следа Слона

Специалисты уровня хранения данных. Где бы мы были без наших баз данных и их API? Без JDBC, SQL или Hibernate? Представьте этот мир: лишенный дисковой памяти, без таблиц и последовательностей, без триггеров и хранимых процедур и бесконечное, бесконечное улучшение производительности...

Извините. Кажется, я попал в лучший мир и потерял ход мысли...

четверг, 6 сентября 2012 г.

ГАЗ-23

Самым интересным моментом в нашем трёпе оказалась информация про ГАЗ-23. Я её раскопал в ответ на высказывание, что автопром у нас был отстойный, а в США был шестилитровый Plymouth. На аргументы оппонента, что при похожем движке американец давал значительно большую мощность, я могу сказать, что наш пепелац был на 10 лет раньше. И это с учётом того, что у нас относительно недавно закончилась война, на которой хорошо нагрелись США, что помогло им побороть Великую депрессию.

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

Ностальгия

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

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

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