Подсветке синтаксиса добавил HTTP API. Теперь, например, можно будет написать плагин к WordPress.
13.12.11 00:04
Подсветке синтаксиса добавил HTTP API. Теперь, например, можно будет написать плагин к WordPress.
28.11.11 02:06
Уже как неделю работаю в островке разработчиком интерфейсов.
Там Git, релизы каждый день, четкое намерение собирать отличную команду разработчиков, гибкий график, бесплатная еда, холодильник с напитками, занятия спортом с тренерами и еще много всего.
Летом, когда много работал дома, экспериментировал с методикой miumau: 45 минут работаешь, 15 отдыхаешь. И успешно перенес ее в офис. Конечно бывает, что полдня невозможно соблюдать темп из-за взаимодействия с коллегами. Но все равно, когда я знаю, что впереди есть немного спокойного времени, очень легко вхожу в поток.
20.11.11 21:54
Сделал онлайн подсветку синтаксиса языков программирования как в TextMate. Для вставки на сайт или блог.
Стили подсветки у TextMate отличаются своей красотой и открытым кодом. Например, редактор Sublime Text 2 тоже взял за основу ее расцветку и логику.
Ближе всего, к моей реализации проект на руби Ultraviolet. По началу думал использовать его в качестве бэкэнда, но он работал очень долго. Где-то 5-7 секунд на простом коде.
Тогда, я с помощью трех фрилансеров, сделал на хостинге инфраструктуру для подсветки синтаксиса. Один скрипт забирает файлы оформления. Другой синтаксис языков. Третий все это оптимизирует для веба. И четвертый C++ скрипт раскрашивает код, который ему пришлют.
В итоге получился быстрый и красивый сервис для подсветки кода.
В комментах можно писать о найденых багах :)
11.11.11 19:14
Сделал слайдер для использования разработчиками на своих сайтах.
Предыстория примерно такая: каждый раз, когда надо было сделать слайдер, я писал 50 строк кода, и все работало. А в процессе появлялись три недоделки, которые требовали больше времени и не имели готового решения:
Летом время появилось, и я решил реализовать такой слайдер. И еще мелочи. Весит 3КБ (minified и gzipped). Исходный код на GitHub.
Сейчас есть ряд хороших реализаций, которые решают первые две проблемы. Список альтернатив которые не тормозят в iOS и поддерживают управление пальцами:
20.05.11 14:03
Сегодня мой последний рабочий день в СУПе.

За прошедшие три с половиной года я сделал на яваскрипте много всего. Из важных для меня это jotsky, чат для жж на базе live messenger (закрыт), LJTimes, список желаний и на той неделе friendstimes. Это было невероятной удачей перепробовать множество подходов к архитектуре и взаимодействию разных технологий.
На работе я познакомился с каким-то огромным количеством человек. Только в мессенджере у меня 85 людей работавших вместе со мной. Например, попиарю репортажного фотографа
Егора Савинцева и сервис фотоблогов Игоря Аскарова.
На фоне работы у меня накопился заряд энергии, который я хочу пусть на реализацию своих идей. Как показала практика, я становлюсь все большим адептом компании в которой работаю, и это меня истощило. Сейчас мне нужно передохнуть, и попробовать что-нибудь новое. Это не означает что я забрасываю интернет технологии, я даже планирую больше времени им посвящать. Но в то же время я хочу передохнуть. Может поездить по России, или переехать на этот сезон на море.
А для техническим специалистов есть шанс влиться в команду Живого Журнала, в которой я работал: вакансии для верстальщиков, яваскрипт программистов и перловиков.
11.04.11 19:11
Приехал немецкий метроном из штатов.
Хотя вся затея ради возможности посмотреть на реакцию таких кошечек вживую
05.04.11 11:33
Сделали сайт с видео на пару с
antarakanov (и команда). На нем выкладываются интервью и видео зарисовки с блогерами.
Сегодня, в 12 дня они должны быть в офисе СУПа, а я вчера как назло разболелся. Коллеги, вы там встретьте их по радушнее пожалуйста :)
31.03.11 23:41
19.03.11 23:57
Ради чего я освобождаю время? Откуда черпать энергию? Кого искать?
Нашел нужные слова в отрывке из книги «Все, что мне нужно знать, я узнал в детском саду»:
Сбалансируйте свою жизнь — немного поучитесь, немного подумайте, немного порисуйте, немного попойте и потанцуйте, немного поиграйте и немного поработайте каждый день.
17.12.10 19:49
|
|
Поляризационный светофильтрПочитать: http://tema.livejournal.com/406335.html |
Сделали для ЖЖ список желаний. Хорошо получилось.
Моя карма разработки LJ Messenger → Share This → LJTimes закончилась ;)
В комментах можно устроивать баг-коллектор.
28.09.10 01:01
Переменные постоянно рвутся к глобальной области видимости. Особенно жуткими бывают всякие i и j, которые не понятно как искать.
Для периодического отстрела, написал функцию window_diff. Она запоминает состояние объекта window: до и после вызова функции, и выдает разницу.
<script type="text/javascript"> function window_diff() { var ary = arguments.callee.ary, i, new_ary = []; if (ary) { for (i in window) { if (!~ary.indexOf(i)) { new_ary.push(i); } } console.log('window_diff', new_ary); arguments.callee.ary = null; return ary; } ary = []; for (i in window) { ary.push(i); } return arguments.callee.ary = ary; } window_diff(); </script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js" type="text/javascript"></script> <script type="text/javascript"> window_diff(); </script>
Интересно, а можно переписать этот код сеттерами? Тогда можно следить, кто мусорит во время жизни страницы.
Не стоит забывать, что JSLint умеет подсказывать, какие глобальные переменные мы наобъявляли. Иногда проще скормить код ему.
А может это умеют делать еще какие-то инструменты?
08.02.10 15:57
Тихо мирно ввел поддержку Python. Не анонсировали, видимо, для внутреннего тестирования. Узнал благодаря твиту.
Я на радостях даже сделал страничку, где можно посмотреть всё ПО которое стоит на сервере. Их вика не успевает за обновлениями, заставляя идти в консоль и проверять версию.
Текущие значания:
Раньше мне казалось, что обилие языков нужно для покрытия клиентов, а самому программисту хватает одного языка. А вот недавно мне понадобился серверный C++ и перловый XSD конвертер аналог которого есть только на java. И мой монополярный php мир, рухнул. Кстати, если кто знает конвертер который понимает старые dtd'шки аля правила валидатора html 3.2, скажите.
UPD: добавил mysql.
20.01.10 16:17
Изменил только главную страницу.
Для svg анимации используется Raphaël, у которой та еще магия. Люди с аккаунтом на гитхабе могут поддержать меня проголосовав за баг :)
В Опере 10.50 pre-alpha сайт у меня не заработал, видимо потому что это альфа. В последней 10.10 все хорошо.
04.11.09 00:20
Сейчас в Опере на update.bml, как и в демо CKeditor'а, можно видеть баг: вводишь твердый знак и срабатывает кнопка выделения жирным.
На работе, ругнувшись на Оперу, я удалил эту команду для оперы. По крайней мере, так делают на drupal.ru.
Дома мне стало интересно, где там у Оперы косяк, что команда не работает. Оказалось, что косяка нет, а есть нормальная поддержка русского event.keyCode. То есть, по нажатию на твердый знак, все браузеры выдают keyCode равным нулю, а опера правильный юникодный номер — 1066.
А FCKeditor делает хэш для сочетания клавиш Ctrl+B, с ключом 1066, где 1000 это контрол, а 66 кнопка B.
Переопределить константу CTRL с 1000 на 8000 в fckonfig.js. Думаю даже, сделать для надежности все три константы CTRL, SHIFT и ALT с шестью нулями.
31.10.09 15:59
В ЖЖ в формах частенько используются две кнопки submit. Обычно они идут в нужной последовательности. Например «Сохранить», а потом «Удалить».
Последовательность нужна для отправки формы по нажатию Enter. А тут случилось так, что та кнопка, которая логичнее для сабмита, ушла в конец верстки.
Первое решение которое пришло в голову, сделать нелогичную кнопку type="button", а при клике менять на type="submit":
<input type="button" name="delete_btn" onclick="this.type='submit'"/>
Это решение не будет работать в IE6. Не позволяет он динамически менять тип.
Зато он позволяет менять имя:
<input type="button" name="delete_btn" onclick="this.form.save_btn.name='delete_btn';this.form.save_btn.click()"/>
01.10.09 21:40
Сегодня на собеседовании узнал способ определить IE:
'\v' == 'v'
Вот как составить поисковой запрос, что бы найти первоисточник?
В нашу команду, нужны js'ники. Немного фоток из СУПа. А у Наташи описание вакансии. Спойлерю: 70т.р. Если что, в письмо вкладывайте ваш код.
06.06.09 13:52
У моего бывшего коллеги Пети Леонова есть несколько необычных способностей. И не так давно он завел себе уютненький, чтобы периодически делиться священным.
Исследует работу в JavaScript с датами и className у элементов 1, 2. Бенчмарками округления i & -1. Экспрешен или header убирает imagetoolbar в IE6. Пишет расширение для Firefox highlight.js. Портрирует JavaScript в nginx.
С днем рождения, Петя.
28.05.09 10:51
Было:
node[/*@cc_on !@*/0 ? 'attachEvent' : 'addEventListener'](/*@cc_on 'on'+@*/'click', myfunction, false)
Стало:
node[/*@cc_on'attachEvent'||@*/'addEventListener'](/*@cc_on'on'+@*/'click', myfunction, false) node[/*@cc_on'detachEvent'||@*/'removeEventListener'](/*@cc_on'on'+@*/'click', myfunction, false)
Пробелы по краям условной компиляции оказались не нужными.
13.04.09 13:05
Чтобы табом по кнопкам скакать:
EN: System Prefs — Keyboard & Mouse — Keyboard Shortcuts — выбрать All Controls в «Full keyboard access» (внизу)
RU: Системные настройки — Клавиатура и мышь — Сочетания клавиш — выбрать Всеми объектами управления в «Полный клавиатурный доступ» (внизу)
И тогда нужно учитывать, что пробел нажимает кнопку, которая обведена синим, ввод — кнопку, которая синим закрашена, ну а эскейп отменяет диалог.
Как же мне это не хватало в iTunes:
08.04.09 17:48
Как-то с
pepelsbey на Клиентсайде мы говорили о том, что было бы круто, если написать программу, которая массово оптимизирует картинки. Без консоли, без лишних настроек. Сама бы выбирала оптимальный алгоритм.
Если учесть количество доступных консольный программ таких как PNGOUT и Jpegtran, сделать это было вполне логичным.
И в сентября 2008 года незаметно вышла опенсорсная программа ImageOptim которая имеет внешний интерфейс для тех самых консольных программ: AdvPNG, OptiPNG, PngCrush, JpegOptim, Jpegtran, PNGOUT. Их алгоритмы пережимают изображения и удаляют копирайты с комментариями, не изменяя само изображение.
Работает простым киданием файлов/папок в программу.
Для примера я взял файлы с головной страницы www.livejournal.com. Вес до – 164 КБ, после – 144 КБ.
После недели тестирования, на пяти сайтах ни одна картинка у меня не сломалась.
Выбросил Ping за ненадобностью.
|