четверг, 22 мая 2014 г.

Стареем

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

Ищу замену

У нас в отделе открыто две вакансии:
    IRC2535612: JavaBeans/Swing position
    IRC2527554: AWT/Swing position
Ищите указанный номер на сайте вакансий.

среда, 21 мая 2014 г.

LinkedIn

Сегодня заглянул в LinkedIn, где я отключил всякие надоедливые напоминания, и обнаружил, что тот сотрудник отдела кадров JetBrains, с которым я последние пару месяцев общался по рекомендации бывшего (и будущего) коллеги, ещё в январе прошлого года пытался связаться со мной через LinkedIn, чтобы предложить работу в этой компании.

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

Что можно улучшить

На собеседовании меня спросили, что можно улучшить в IDEA. Сразу я затруднился ответить, но потом предложил один финт ушами. Коллеги по Oracle, хорошо знающие API, оценили.

Очень часто в нашей работе появляется необходимость перейти к определённому методу определённого класса:
1. Ctrl+N - ищем класс, а потом
2. Ctrl+F12 - ищем в нём метод.
CamelCase спасает, но... это 2 действия!

Я предложил сделать поддержку точки в окне поиска класса. Например, нажимаем Ctrl+N и вводим LiBo.pa, чтобы открылся класс LineBorder и сразу выбрался метод paintBorder.

Navigate/Symbol (Ctrl+Alt+Shift+N) работает очень долго, но ничего не находит, а если задать paBo он предлагает метод paintBorder кучи классов, кроме нужного. Search Everywhere (Double Shift) работает тоже не быстро и результат выдаёт совсем левый.

Константин мне ответил, что он делал что-то подобное, но в текущей версии IntelliJ IDEA этого нет. Мы с коллегами считаем, что это полезная функциональность, особенно для такого развесистого API как у Java. А вы что думаете по этому поводу?

Мнемоника

Как только Джишин покинул Храм Чугунного Неба, чтобы вернуться домой, ему на плечо упала рука. "Брат", - сказал монах в белых одеждах, - "По твоему прикиду я определил, что ты из храма Утреннего Медного Гонга".

"Отрицать это - значит говорить неправду", - сказал Джишин.

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

"Отрицать это - значит говорить неправду", - сказал Джишин, - "но и подтверждать это - тоже лгать".

"Я не понимаю", - сказал монах.

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

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

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

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

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

    "В языке Perl подчёркивание является понятным!
     В языке Perl подчёркивание является понятным!"

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

"Какую цель преследует такое насилие?" - спросила монахиня Джишина.

"Я хотел, чтобы монах выучил мнемонику $_ языка Perl и никогда не забывал её", - сказал Джишин.

"Но мы здесь не используем Perl", - сказал монахиня.

"Именно поэтому я и выбрал его", - сказал Джишин. - "С этого момента, когда монах будет рассказывать о сумасшедшем посетителе, который ответил на его вопрос веткой дерева, он процитирует странные слова, что я приговаривал. И когда он поймёт, почему он их всё ещё знает, он поймёт алгоритм писца из храма Утреннего Медного Гонга".

Original: Mnemonic

вторник, 20 мая 2014 г.

Решение принято

Перед майскими праздниками я доделал тестовое задание и уехал в отпуск. Там его проверили и написали:
Впечатляет кол-во того, что можно менять. Есть ряд недостатков, которые хочется исправить:
1. Когда выделяем компонент в дереве, хочется понимать где он находится. Как вариант, можно заливать выбранный компонент каким-нибудь полупрозрачным цветом на glasspane.
2. Было бы здорово сделать Инспектор Darcula-aware. По сути, почти везде где вы используете java.awt.Color нужно использовать JBColor.
3. Color-editor прикольный :-) Но его сложно использовать. Можно использовать платформенный.
Со вторым и третьим пунктами проблем не возникло. Но, как оказалось, GlassPane окна IDEA не заменить, поэтому я попытался разобраться в их API, подсунув Painter в IdeGlassPane. Всю субботу на это убил, но ничего не получилось. В воскресенье я уже написал письмо, что подсветка будет работать только с обычнами окнами, но не успел отправить, как мне в голову пришла идея.
Я попробовал заменить одно слово и всё заработало.
Пришлось письмо переписывать...

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

понедельник, 19 мая 2014 г.

Бомж

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

Ворота

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

Реклама SkyNet

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

воскресенье, 18 мая 2014 г.

Сезон шашлыков открыт

За последние несколько дней резко наступило лето. Мы решили выйти на набережную и поесть шашлыки. И не мы одни...

суббота, 17 мая 2014 г.

Estranged: Act I

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

В игре есть и знакомый профессор, и подъёмный кран, которым мы машину когда-то тягали. Даже на электровозе приходится кататься.

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

Вместимость

Когда у нас был Scenic, то мы таким образом возили детский велосипед с 12" колёсами. У велосипеда в Stavic уже 18".

пятница, 16 мая 2014 г.

Монолит

Молодой монах Джишин подошёл к учителю Кайму и сказал: "Расскажите мне о Храме Чугунного Неба, где вы были первым учеником".

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

Джишин решил, что надо увидеть, как такое может быть правдой. Так он туда и отправился.

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

"Что это за место, приятель?" - спросил он монаха в белых одеждах, сидящего на ступенях.

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

"И в сердце, и на деле", - ответил Джишин.

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



В роще туман сгустился, став тёплым и горьким на вкус; откуда-то спереди шёл звук пузырящейся воды. Деревья расступились, и Джишин оказался на поляне, где сидели четыре монахини в белых одеждах, созерцая монолит из блестящего чёрного базальта. На нём были надписи, каких монах никогда раньше не видел:
    (>>=) :: m a -> (a -> m b) -> m b
        (>>) :: m a -> m b -> m b
            return :: a -> m a
"Что это за камень, уважаемые дамы?" - спросил Джишин.

"Мы называем его Монада", - сказала первая монахиня.

"Почему вы так почитаете его?" - спросил Джишин.

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

"Не могли бы вы... объяснить это объяснение?" - спросил Джишин.

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

"А эта надпись... Это код?" - спросил Джишин, восхищаясь монолитом.

Монахини переглянулись: "Когда-нибудь все будут знать его так же как и 20 GOTO 10 и так же легко читать. Но ответьте нам на вопрос: Вы инженер-программист?"

"Я больше не уверен", - ответил Джишин, окончательно запутавшись.

И в тот момент молодой монах просветился.

Комментарий Ци

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

Стихотворение Ци

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

Original: Monolith

четверг, 15 мая 2014 г.

Райффайзен

Вчера расплатился в аптеке по карте и пришло SMS, где остаток на счету отличался от предыдущего на 1000 рублей. Я даже зашёл в банк, чтобы разобраться, но они мне сказали, что раз я расплачивался в евро, то это разница в курсах евро дня оплаты и дня списания денег. Я сказал, что даже если курс отличался на 1 рубль, я всё-равно не потратил 1000€. Но мне выдали распечатку и сказали разбираться самому. Я нашёл эти деньги, потратив час...

Конечно, разница в рублях есть, но она незначительна. Оказалось, что мне не пришло несколько SMS. В основном, это происходило в тех случаях, когда сделав покупку я возвращался и делал ещё одну на меньшу сумму. Типа в магазине забыли воду купить или в музее докупили сувениры. Так и продолбался пяток SMS.

среда, 14 мая 2014 г.

Отключаем GPS

Рогозин объявил, что скоро отключат наземные станции GPS. Похоже, что санкции становятся двусторонними.

воскресенье, 11 мая 2014 г.

На том и стоим

Союзмультфильм в Ленте

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

суббота, 10 мая 2014 г.

Круиз-контроль

Круиз-контроль - это круто! Особенно за границей. У нас же дороги сильно перегружены автомобилями и приходится постоянно отключать круиз-контроль. А в Таллине мы даже по городу ездили с ним на 50-ти км/ч. Не везде, конечно, но всё же!

Очередь домой

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

Наши пограничники снова нас обыскивали и заставляли открывать сумки. Что ищут - непонятно...

Eckerö Line

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

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

Я сначала переживал, что придётся доплачивать, так как у нас машина длиннее пяти метров, но всё обошлось.

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