понедельник, 17 ноября 2014 г.

Горизонтальный, вертикальный

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



Яккана сказала: "Может сравним методы наших храмов, чтобы увидеть, чему мы можем научиться друг у друга?"

Суку ответила: "Давай".


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

Суку ответила: "Мы делаем так же".


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

Суку ответила: "Мы думаем так же".


Яккана сказала: "Наше средство достижения цели является очевидным: каждому монаху назначается один компонент, который кодирует свои уровни так, как считает нужным".

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


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

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


Яккана сказала: "Ваш путь обрекает нас на застой - много нужно обсуждать, прежде чем начать писать код".

Суку ответила: "А ваш путь обрекает нас на хаос - много нужно кодировать, прежде чем начать обсуждать".


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

Суку ответила: "А я не буду и просить об этом. Ваш храм - не наш храм. Ваши потребности - не наши потребности. Поэтому давайте договоримся расстаться полюбовно".


Так они дружно обнялись и пожелали друг другу приятных снов.



Но когда Яккана удалилась и Суку осталась одна, она прошептала гаснущему костру:

"Когда ваш храм был построен, разве не каменщики обработали камни фундамента?, или не плотники нарубили бревна?, или не водопроводчики провели трубы?, или не кровельщики покрыли крышу черепицей? Или же сто посредственных работников выбрали по одной келье и каждый построил свою целиком от земли до неба?"

Original: Horizonal, Vertical

воскресенье, 16 ноября 2014 г.

Колонизаторы

Сегодня опять всей семьёй играли. Я с Лёшкой, Юля с Катей против Мишки, которому сегодня везло на разбойника.
С самого начала игры он меня заблокировал, не дав развиться, а потом постоянно нас с Юлей грабил, лишая честно нажитого. Но Юля всё-таки смогла его переиграть. А мне надо бы пересмотреть стратегию, а то я ещё ни разу не выиграл...

суббота, 15 ноября 2014 г.

Невская пробка

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

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

Распродажа

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

Прибыл стол

Заказанный ранее стол сделали за неделю и сегодня я его забрал. Выдали его в сборе и я всего лишь подвинул вперёд диван. Кубик 750x750x750 мм влез в багажник без проблем.

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

Вот ведь

Некоторое время назад я попал в неприятную ситуацию, в которой успел затормозить нажав на педали тормоза и газа одновременно. Ноги у меня длинные, поэтому полностью переставить ногу не успел. Scenic встал, как вкопанный, и только дико ревел мотором. В похожей ситуации, но в более безопасном месте (в гаражах) Stavic тянул изо всех сил. Видимо, его автоматическая коробка не готова к таким внештатным ситуациям.

пятница, 14 ноября 2014 г.

Загранпаспорт

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

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

Раменское

Одноклубник съездил в Раменское и привёз фотографии тамошних памятников. У них там что, бронзовое литьё на халяву?

WebGL: вода

На сайте чувака, сделавшую прикольную игрушку, обнаружил не менее интересную демку WebGL.

четверг, 13 ноября 2014 г.

FlyStation

Что-то так и не нашёл времени снова полетать в трубе, а вот Гоблин её рекламирует. Вон у него как щёки на ветру развеваются:

Хорошо, что у нас тогда были шлемы с полным забралом.

Apple Aluminium Keyboard

Вот что у Apple хорошо получилось, так это клавиатура. Это которая отдельная, а не на ноутбуке (там тот ещё отстой).

Но взял я её для того, что встречаются оригиналы, подключающие эту клавиатуру к PC. Более того, Linux позволяет эмулировать клавиатурные события, как будто раскладка как на Mac:

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

Я, конечно, попробую что-то с этим сделать, но многого не ждите.

среда, 12 ноября 2014 г.

Рабочее место

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

А на Mac вообще всё совершенно другое и неожиданное для Swing. Я уже писал, мне Mac не нравится, но поработав на MacBook Pro я нашёл пару дизайнерских ляпов. Во-первых, его не открыть одной рукой: то ли крышка магнитится слишком сильно, то ли ещё чего. А во-вторых, край у него острый и когда пишешь код, то постоянно царапаешь запястья. Не до крови, конечно, но руки быстро устают от этого.

Sennheiser PC 363D

Прикупил себе гарнитуру, на которой можно слушать ещё и музыку. На голове сидит отлично, нигде не давит и уши не устают в Skype сидеть. Маленькая штучка внизу справа - это не просто переходник со штекеров на USB, а звуковая плата, добавляющая трёхмерный звук. Нужна, в основном, для игр и на работе бесполезна, но на специальных демках я оценил. Уже неделю тестирую и наслаждаюсь!

Розетта

А вы тоже следите за посадкой на комету?

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

Обратно к началу

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

Отчаявшийся Банзен раздобыл у учителя Бавана бутылку жёлтого вина, сразу же ополовинил её и позвал своего ученика Джишина.





Неделю спустя Джишин сообщил о своих достижениях:

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

"И каким будет решение?" - спросил Банзен, откупоривая бутылку.

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

"Похоже на методы свойств", - заметил Банзен.

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

"Похоже на подклассы", - заметил Банзен.

"Точно!" - снова сказал Джишин.

"Прекрасно!" - сказал Банзен, осушая стакан. - "Итак, за семь дней, с помощью простых констант и функций, используемых в стандартной хэш-таблице Java, мы изобрели... класс Object".

Original: Back to Basics

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

Каркассон

Сегодня поиграли с детьми в ещё одну настольную игру, которую нам Пашка подарил. Игра, на мой взгляд, менее интересная, чем Колонизаторы, зато партии длятся не так долго, да и Лёшка может играть самостоятельно.

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

Снова вместе

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

Заезжал со двора. Теперь за въезд берут 150 рублей, а дорога всё такая же разбитая. Зато теперь и с этой стороны ограничили вход на вокзал, заменив шлагбаум на ворота и пуская людей через будку с металлоискателем.

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

Представительство K&K

Для моей машины мало какие диски подходят. В основном, это диски K&K, представительство которой находится в Питере и недалеко от моего дома. Заехал к ним сегодня...

Нужного вылета да Винчи нет на складе, зато есть Барракуда. Может взять, пока есть? А то к весне закончатся...

Компьютерный стол

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

Вот сейчас специально оглядел столы коллег и практически у всех клавиатура (или ноутбук) лежит далеко от края стола, чтобы руки не держать на весу, а то они устают.

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

пятница, 7 ноября 2014 г.

На моём конце

Нашёл на bash:
Оказывается, есть такая идиома on my end, которая значит «для меня»/«по-моему». Пока я об этом не знал, то всегда переводил буквально. Sounds good on my end — писали мне и я смущался...