среда, 1 августа 2012 г.

Сокращение, переиспользование, утилизация

Послушник спросил великого учителя: "Что такое Путь?"

Учитель ответил: "Написание кода - Путь".

Затем послушник спросил: "Что такое не Путь?"

Учитель ответил: "Написание кода - не Путь".

Послушник сказал: "Тогда написание кода это всё".

Учитель ответил: "И не написание кода тоже".

Послушник спросил: "А сейчас мы пишем код или нет?"

Учитель ответил: "Мы есть код".

Original: Reduce, Reuse, Recycle

Знаете ли вы Питер?

Какой полузаброшенный дворец охраняют пара львов? Вот тут я их не нашёл.

все вопросы

USB-зарядка

Народ так уже привык заряжать телефоны и другие устройства через USB, что консорциум разработал новую спецификацию для передачи энергии. Интересно, а если подключить питание ноутбука к его разъёму USB, то получится вечный двигатель?

Но больше всего мне понравились стишки из комментариев к соответствующей новостной статье на habrahabr.ru.

    Маленький хакер в подстанцию влез,
    Перенаправил поток он с АЭС.
    Клевая мощность - два мегаватта,
    Быстро горит материнская плата!

    Маленький мальчик компьютер чинил,
    Какую-то пимпочку там открутил...
    Долго ругались в РАО «ЕЭС»:
    На компьютер работал весь «ДнепроГЭС».

Враг хорошего

Монахи клана Смеющейся Обезьяны подошли к учителю Java со списком жалоб.

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

Учитель обдумал это и произнёс: "Очевидно, что мы могли бы отказаться от тестирования, если бы мы знали, что наш код совершенен. А как мы можем достичь совершенства?"

"Практикуясь", - сказал один монах.

"Усердно обучаясь", - сказал другой.

"Ублажая надлежащих богов", - сказал третий.

Старый седобородый монах, тихо сидевший в углу, поднял голову:

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

Старый монах надолго замолчал. В конце концов зазвонил обеденный колокол.

"Сколько времени это займет?" - спросил один из послушников.

"Не более сотни лет", - ответил старый монах.

Original: The Enemy of the Good

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

вторник, 31 июля 2012 г.

Blogger

С сегодняшнего дня Blogger стал навязчивым: после публикации каждого поста он предлагает зашарить его на Google+. Как оказалось, это нарочно. Как отключить я пока не нашёл...

Typical Java-developer

На детской площадке в Часцах, где большинство знают друг друга с детства, к Юле подошла знакомая и спросила:
- А твой муж, случайно, не программист?
- Да, а как ты догадалась?
- Мой муж сказал, что он выглядит как типичный программист. А что он программирует?
Моя жена более-менее представляет, чем я занимаюсь, но понимает, что многие не поймут. Поэтому она ответила просто:
- Он разрабатывает саму джаву...
Даже такой простой ответ вогнал спросившую в глубокий ступор.

Если нельзя, но хочется

Буквально одновременно с моим коллегой мы наткнулись на проблему с использованием классов из JDK, расположенных на четвёртом уровне вложенности пакетов. В частности, мой тест для класса com.sun.beans.TypeResolver работает уже давно, а с новым тестом для com.sun.beans.finder.ClassFinder началась мистика.

С локальной сборкой тест работал как ожидалось, поэтому был отправлен в пространство на сервер. Через некоторое время на меня выставили баг, что тест не работает, так как класс ClassFinder не найден. Я скачал последние сырцы, скомпилировал и у меня заработало. В результате долгой с тестерами выяснилось, что тест не работает только с построенным для публикации bundle.

Оказалось, что при компиляции Java использует символьный файл lib\ct.sym, который создаётся автоматически. Как его обновлять никто не знает. В моём случае это не актуально, но неожиднно для публичных классов, которые использовал мой коллега.

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

java -XDignore.symbol.file ClassName.java

PS. Век живи - век учись. Вроде уже столько лет разрабатываю саму Java и, всё-равно, нашёл что-то новенькое, про что большинство и не знает.

Олимпиада

Олимпиаду я не смотрю, но за новостями пытаюсь следить. И самое неприятное, когда по телевизору говорят, что Россия в десятке лучших. Даже не в тройке!

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

Надеюсь, что лет через десять результат будет лучше.

понедельник, 30 июля 2012 г.

Пусто

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

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

"Приведите ко мне монаха, написавшего этот метод", - сказал он стражам храма, - "а также монаха, который его использовал."

Первый монах, старший из двух, сразу же обвинил второго: "Спецификация метода в высшей степени однозначна. Не моя вина, что он не проверил результат на null". Второй монах опустил голову от стыда и промолчал.

Настоятель хлопнул в ладоши и на пол перед каждым монахом были поставлены две высокие нефритовые урны. "Ваши наказания написаны на свитках, находящихся внутри. Каждый день вы должны доставать первый попавшийся свиток и исполнять указанное. И так до тех пор, пока ваша урна не станет пустой".

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

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

"Там нету ни рыбы, ни десяти гор", - произнёс настоятель.

И тут старший монах вскрикнул от боли. Урна упала и разбилась. Скорпион торопливо побежал по плиткам.

Настоятель посмотрел на умирающего монаха. "Все пустышки не равны".

Original: Empty

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

Липкая лента

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

воскресенье, 29 июля 2012 г.

Пустота (void)

Холодным осенним днём учитель Java проснулся встревоженным. Он отправился бродить в одиночестве, чтобы очистить свой ​​разум.

Вскоре учитель оказался у ворот Храма Трёх Камней, где всё ещё практикуется искусство ANSI C. Учёный брат стоял на страже.

"Какова природа void?" - спросил учитель.

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

Учитель подумал: "Храму Трёх Камней не нужна охрана. В нём не может быть ничего ценного".

Далее он пришел в Храм Чугунного Неба, место теоретиков, где был разрешён только ML. В высохшем саду монахиня писала в пыли лямбда-выражения.

"Какова природа void?" - спросил учитель.

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

Учитель подумал: "Сестра не сказала ничего ложного, но и ничего правдивого не сказала".

Далее вниз по дороге учитель пришёл в большой усадьбе, где старуха подстригала живую изгородь.

"Какова природа void?" - спросил учитель.

Старуха поклонилась и продолжила стричь кусты.

Учитель подумал: "Это есть чистейшая мудрость, если только не её отсутствие".

В конце концов, учитель пришел на заброшенное кладбище.

"Какова природа void?" - спросил учитель.

И не было ему ответа из пустоты.

Учитель Java обрёл покой.

Original: Void

суббота, 28 июля 2012 г.

Paulaner Dunkel

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

Староста

Вчера вечер провели с Пашкой и Серёгой в Паулайнере, что на Невском. Серёгу видел впервые лет за 15. Почти не изменился, то причёска короткая. Работает на себя. Живёт в Пушкине с женой и ребёнком. Увлекается радиоуправляемыми моделями.

пятница, 27 июля 2012 г.

Ивы

Новый священник клана Паука сетовал на низкое качество кода JavaScript, создаваемого его послушниками.

"Я разберусь", - сказал учитель Java.

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

"Молодое деревце, если за ним ухаживать, может стать большой ивой, но только не травинка", - сказал учитель.

Услышав это, священник приказал выгнать пятого послушника.

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

Original: Willows

Клан Паука
Разработчики пользовательского интерфейса для Web. Да, все смеются, когда вы говорите, что "программируете" на HTML, JSTL, CSS или JavaScript. Но это только до тех пор, пока заказчик не решит, что на главной странице приложения обязательно должны быть танцующие полупрозрачные свиньи, двигающиеся вслед за курсором мыши.

Blogger

Кажется, темы на сайте уже починили, а то криво было.

Букинистика


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

Я на этих книгах сам вырос (над собой)

1971г. М.Гарднер Математические головоломки и развлечения
1972г. М.Гарднер Математические досуги
1974г. М.Гарднер Математические новеллы
1974г. М.Веннинджер Модели многогранников (сайт)

Теперь держитесь

Вчера, впервые за всю историю Java, я удалил deprecated классы. Это, конечно, псевдо-публичные классы, которые не только не используются с версии 1.1, но и не упоминаются уже лет десять.

Вы можете посмотреть изменения к CR №4650871.

четверг, 26 июля 2012 г.

Инкапсуляция

Молодой монах, послушник в храме, объявлял публичными не только все методы, но и все поля класса. Главный настоятель устал упрекать монаха и попросил совета у учителя Java.

На следующий день учитель пригласил монаха на обед в собственный кабинет.

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

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

"Хочу разрезать твой живот", - объяснил учитель, - "чтобы я смог положить рис и налить чай внутрь. Моё расписание достаточно плотное, и я считаю, что это чрезвычайно эффективный способ накормить гостя".

После этого больше не требовалось упрекать монаха.

Original: Encapsulation

Пенсионный Фонд

Получил в справочном номерок №147. Там написано, что принимают по этому номерку в окошках №12 и №13, одно из которых оказалось закрыто. Когда объявили, что к окошку надо подойти с талончиком №114, я подумал, а не пойти ли мне оттуда. Потом прикинул, что нумерация сквозная и в действительности передо мной сидит только человек 10. Но и это не порадовало, зато минут через 5 открылась окошко №12 (правда только на выдачу) и большая часть очереди рассосалась. Всего отстоял минут 40 и подал заявления на оформление СНИЛС для Мишки и Лёшки.

Инфраструктура

За 15 минут дошёл от метро до Пенсионного Фонда Невского района. Давненько я там пешком не ходил. Обнаружил, что лес на улице Джона Рида вырубили и построили огромный центр водных видов спорта. Перед центром сделали небольшой парк с ухоженными газонами, куда точечно повтыкали молодые деревья. Полезная, конечно, вещь, но лес немного жалко.