Я в интернете

РСС    Джейсон-фид

Есть автоматические трансляции в Тумблер и Же-же. Если не работает, напишите мне: ilyabirman@ilyabirman.ru.

Блог

Позднее Ctrl + ↑

Яблометр

Это рекламная заметка

Йоу, читатель с Айфоном или Айподтачем! Теперь ты можешь не только мериться крутостью, но и разные штуки мерить прямо телефоном вдоль и поперёк. Купи Яблометр!

Appl-o-meter

Настоящий усатый чувак прямо на твоих глазах пройдёт из пункта А в пункт Б и измерит расстояние в америкосовских дюймах, русских сантиметрах или яблоках (спелая антоновка!). Кино:

Не, ну серьёзно, вот так телефон поворачиваешь, и оно мерит. Можно открутить назад, если лишнего намерил.

Выкинь офицерскую линейку в мусор! Закопай штангенциркуль в землю! Удави рулеткой попугая вместе с крылышками! Купи яблометр в Апсторе, насладись непередаваемым ощущением яблоизмерения!

appl-o-meter.com и cтраница в Апсторе

applometer@gmail.com

Бонус: измеряй длину и ширину Ленина, умножай друг на друга — получишь площадь Ленина!

Реклама на сайте выходит по средам и попадает на экраны 2-3 тысяч человек. Пишите: ilyabirman@ilyabirman.ru

Новые работы бюро

Кто в последнюю неделю не заходил на сайт бюро, там появилась целая куча новых работ: новый Топфотоп, вторая Веборама с Рабовемой, интранет для Ренессанса, презентация для Бизнес-рилейшенса, Регуляр, ещё кое-что для МГИМО и Самсунга. Смотрите, какое всё клёвое!

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

Шаблон Сафари для рисования эскизов

Скриншот сайта просто на белом фоне трудно воспринимать как сайт, поэтому в почти в любом портфолио веб-дизайнера сайты показывают в браузере. Многие дизайнеры предпочитают и эскизы рисовать «как бы в браузере».

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

Дело в том, что на Маке у окон обычно нет «рамки»: сверху заголовок (возможно, с тулбаром), а под ним идёт от первого до последнего пикселя по горизонтали — внутренности окна. Если у окна нет строки состояния, то «контентная область» и снизу продолжается до конца.

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

Окно на Маке

В общем, если в Фотошопе сверху влепить «шапку» от Сафари, забив на полупиксельный рамку (фотошоп всё равно рисует рамку вокруг канвы), то а) координата X любого элемента продолжит отсчитываться с нуля, а не с трёх, допустим, пикселей; б) можно будет легко изменять canvas size по вертикали, если страницу нужно сделать длинее, без необходимости сдвигать или перерисовывать какие-то нижние элементы.

Но смысл рисования сайта внутри браузера не только в повышении реалистичности. Главное (собственно, то, ради чего я перешёл на такой формат) — это доступность строки заголовка и адресной строки. Теперь на эскизах страниц я пишу их тайтлы, вставляю фавыконку и придумываю им нормальные урлы, что позволяет заметно упростить взаимодействие с верстальщиками и технологами. И не забудешь, что это тоже надо делать. Опять же, если я имею в виду, что на какой-то странице должен быть РСС, я могу дополнительно намекнуть на это, прицепив иконку РССа в конец адресной строки.

Короче, дарю всем желающим ПСД-шаблон (68 КБ), в котором все значимые элементы браузера сделаны отдельными слоями, в т. ч. заголовок окна (с правильной рельефностью) и урл в виде текста. Ширина картинки — 1000 пикселей. В названиях слоёв используется нехитрая нотация: точкой заканчиваются слои, которые по любому должны быть, а вопросиком — те, которые можно включать/выключать по вкусу. Ещё можно вместо обычного заголовка выбрать 5 табов, чтобы реально оценивать влезабельность своего тайтла.

Добавлено в 14:32: Сергей Чикуёнок оставил полезнейший комментарий.

Аргаяшский креатив

На железнодорожном переезде ведётся виде наблюдение:

Аргаяшский креатив

Добавлено в 11:32: Читатели подсказывают, что это всероссийский госкреатив.

Римейки старых игрушек

Это рекламная заметка

У меня никогда не было Спектрума. И Денди тоже не было. Но в «Лоуд-раннера» доводилось играть на технике друзей — было весело. Вот «Зи-икс-геймс» делают римейки всяких старых игрушек. Кроме «Лоуд-раннера» есть «Болдер-деш» и «Пазник», а со временем появятся и другие.

Фотографический снимок

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

Но вернёмся к «Лоуд-раннеру». Михаил Жилкин пишет:

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

Первые несколько уровней в каждой игре доступны бесплатно!

zxgames.com

mail@zxgames.com

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

Лоуд-раннер

Это компьютерная графика!

Реклама на сайте выходит по средам и попадает на экраны 2-3 тысяч человек. Пишите: ilyabirman@ilyabirman.ru.

Нотация для названий функций

В Какао мне очень нравится, как используется возможность «Объектного Си» вставлять параметры прямо в название методов («селекторов»):
[someObject doStuffWithThing:x andThing:y usingParameter:z];

Получаются нормальные предложения. В большинстве языков так делать нельзя, однако формулировать названия функций так, чтобы параметры продолжали предложение, никто не запрещает. Если параметр всего один, или параметры образуют очевидную последовательность, то это добавит удобочитаемости. Я принял нотацию, согласно которой название функции завершается подчёркиванием, если оно составлено по такому принципу. В этом случае открывающая скобка не отбивается пробелом (вообще, я всегда отбиваю; меня страшно бесит, что в ЦССе так делать нельзя).

Пример перевода:
e2_note_by_id ($id) → e2_note_with_id_($id).

А так могли бы выглядеть некоторые функции с несколькими параметрами:
do_stuff_at_($x, $y),
do_stuff_with_date_($year, $month, $day).

Если параметры не образуют очевидной последовательности или нормально переформулировать смысл функции не удаётся, то функция пишется «по старинке», без подчёркивания в конце:
e2_store_cache ($path, $data, $secure).

А какие вы используете хитрости для повышения удобочитаемости кода?

Красный курсор для русского языка

Когда-то Артём изобрёл отличный способ индикации текущей раскладки: красить текстовый курсор в тот или иной цвет.

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

С тех пор, как я переехал на Мак, я не без удовольствия ковыряюсь в местных средствах разработки. Постепенно я научился: отслеживать момент смены раскладки клавиатуры; изменять цвет курсора в текстовом поле моей программы, определять текущее «ключевое» (т. е. отвечающее за обработку клавиатурных событий) окно приложения, определять текущую раскладку клавиатуры.

Оставалось только научиться встраиваться в чужие приложения и находить там текущий активный контрол. Я начитался документации и понял, что моей программе нужно стать инпутменеджером, то есть приложением, посредством которого производится текстовый ввод (это АПИ, видимо, сделано для организации всяких альтернативных способов ввода). Поскольку инпутменеджер — это, по сути, совершенно любой твой код, который выполняется от имени любого другого приложения (и, соответственно, с его правами), то это как бы опасная штука. Вроде как в Тигре даже был какой-то вирус, использовавший этот механизм, поэтому в Леопарде к инпутменеджерам стали предъявляться сверхстрогие требования.

С помощью интернета и Славы Карпенко я разобрался с тем, как сделать и установить инпутменеджером собственный бандл (connecting the dots!) и сделал пруф-оф-концептовый инпутменеджер, реализующий идею Артёма. Он далёк от совершенства:

  1. Работает только в Какао-приложениях (Мейл, Адрес-бук; Адиум, Скайп; системное меню Спотлайта...), но не работает в Карбон-приложениях (Айтюнс, Файндер, весь Адоби). С одной стороны, в Снежном барсе все родные приложения должны будут перейти на Какао. С другой, нельзя исключать, что поддержку инпутменеджеров прибьют.
  2. Работает только в стандартных текстовых полях. Например, в поле комментариев в браузере работать не станет. В поле написания письма в мейле тоже не заработает, так как там тоже используется какой-то контрол на базе WebView (потому что там можно писать ХТМЛ-письма и вставлять туда атачи).
  3. Использует таймер, чтобы не пропустить момент, когда человек переходит из одного текстового поля в другое (ловить activeConversationChanged:toNewConversation: у меня пока не получается).
  4. Не исключено, что он где-нибудь «течёт» (берёт память и не освобождает потом) — я не очень силён в таком хардкорном программировании, поэтому мог упустить что-то. Учитывая, что он выполняется в чужих приложениях, а не сам по себе, масштаб бедствия (если оно есть) существенно увеличивается. Ну, а если он течёт в том коде, который выполняется по таймеру, то всё вообще очень плохо.
  5. Он тупо красит курсор в красный цвет, если среди поддерживаемых текущей раскладкой языков не встречается английский, то есть никакой настройки раскладок/цветов нет.

Он называется Lipstick (LIP — это как бы Language Insertion Point, ну, или, Layout, или Locale). Чтобы установить его, нужно:

  1. Скачать архив.
  2. Создать в /Library/InputManagers (именно в корне!) папку Lipstick
  3. Кинуть туда оба файла (инфо и бандл) из архива.
  4. Сказать терминалу (ввести пароль при необходимости):
    sudo chown -R root:admin /Library/InputManagers
    sudo chmod -R 555 /Library/InputManagers

В каждом Какао-приложении он заработает после его перезапуска (перезапускать систему, по крайней мере, Леопард, не нужно). Спотлайт в правом верхнем углу можно перезапустить так:

killall Spotlight

Картинка:

Липстик в почте

Если какое-нибудь приложение начнёт тормозить или падать в неположенном месте, вполне может быть, что это из-за Липстика. Чтобы его выключить, просто уберите Lipstick из папки /Library/InputManagers и перезапустите соответствующее приложение.

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

Работы ограждения

ТСЖ навтыкало под дворники машинам, стоящим вдоль забора, объявлений:

Уважаемые автовладельцы! 7 мая 2009 года с 8.00 до 17.00 будут проводиться сварочные работы металлического ограждения. Просим переставить автомобиль на другое место.

Хочется плакать. Сварочные работы металлического ограждения! Я не понимаю, как люди могут до такой степени не уметь говорить на родном языке. Мозги же должны совсем засохнуть, чтобы стали получаться такие фразы. И я ещё удивляюсь, что никто деепричастными оборотами пользоваться не умеет. Ёлки, да тут взрослые люди простое предложение составить не могут!

А по двору дети гуляют, читают эти бумажки.

Склоняю числительные

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

8. Просклоняйте количественное числительное 1245 (книг).

  1. Тысяча двести сорок пять книг стоят на полке.
  2. Тысячи двухсот сорока пяти книг недосчитался библиотекарь.
  3. И тысяче двумстам сорока пяти книгам не рассказать всех несмешных анекдотов!
  4. Уж тысячу двести сорок пять книг прочёл, а всё бестолку.
  5. Тысячью двумястами сорока пятью книгами можно натопить небольшую баню.
  6. О тысяче двухстах сорока пяти книгах мне надоело придумывать дурацкие предложения.

9. Просклоняйте порядковое числительное 3892 (преподавателя).

Если числительное порядковое, то почему «преподавателя»? Видимо, ошибка в тесте. Пришлось склонять сразу и так, и эдак.

  1. Три тысячи восемьсот девяносто два преподавателя пинают плохого студента три тысячи восемьсот девяносто второй раз.
  2. Трёх тысяч восьмисот девяноста двух преподавателей достаточно, чтобы вкрутить лампочку с три тысячи восемьсот девяносто второго раза.
  3. Трём тысячам восьмистам девяноста двум преподавателям пришлось ещё раз дать по башке три тысячи восемьсот девяносто второму (в рейтинге успеваемости) студенту.
  4. Три тысячи восемьсот девяносто двух преподавателей наказали за избиение три тысячи восемьсот девяносто второго (в рейтинге успеваемости) студента.
  5. Тремя тысячами восьмьюстами девяноста двумя преподавателями (в смысле, таким большим составом) можно доехать на работу три тысячи восемьсот девяносто вторым троллейбусом (ПКиО — Юпитер)
  6. О трёх тысячах восьмистах девяноста двух преподавателях можно составить в три тысячи восемьсот девяносто два раза больше бессмысленных предложений, чем о три тысячи восемьсот девяносто втором кабинете главного корпуса (тем более, что такого нет).
Ранее Ctrl + ↓