?

Log in

Итоги 2015

31.12.15 23:04

В этом году в Рамблере я запустил систему комментариев. Почувствовал на себе хайлоад. При запуске на Газете начал терять коннекты в первый час. Все проблемы решались в конфиге nginx, а у node.js надо было на первое время только отключить вебсокеты. Потом запустились на рамблер новостях и я сменил работу.

Женился. Самый лучший день в году.

Пробую на легкий вариант низкоуглеводной диеты (lchf). До этого я ел очень много сладкого. Сластил всё: чай, кофе, творог, ряженку. Теперь от этого отказался. Через неделю привыкаешь, еще через неделю вся старая еда, которую ел с сахаром, опять вкусная.

Съездил в Австралию на месяц. Нашел в Мельбурне диетический магазин-кофейню и поел безуглеводного пончика. Вспоминаю и слюни текут. У нас про lchf пока толком не знают, но через пару лет заговорят. Сейчас уже вижу как жиры реабилитируют.

Пишу по мере сил на react и react-native. Следующим из экосистемы надо GraphQL прикрутить к чему-то работающему.

Открыл ИП. Вчера съездил на Сходненскую, чтобы его закрыть. Не пригодился. Пол дня потратил на дорогу. Нет бы построить ФНС в который ездят все ИП где-нибудь в центре.

В квартире за полгода таджики сделали ремонт. Теперь осталось доделать.

Оставьте свой комментарий

АфРаСуп

01.04.14 14:00

С ноября работаю в объединенной компании.

Меня позвали делать штуку, которую я бы и так хотел делать, но не хватало на нее времени. Теперь буду заниматься ей фултайм.

Оставьте свой комментарий

GroupInputs — jQuery плагин для групп инпутов

26.11.12 11:47

В островке я написал плагин GroupInputs который улучшает поведение у всяких инпутов с телефонами и номерами карт. Демо.

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

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

Из того, что я там планирую, это пережать код Google Closure в Advanced режиме. Это даст выигрыш в 10% по сравнению с UglifyJS.

И хотелось бы написать поддержку textarea, но пока не могу придумать зачем она может быть нужна.

Оставьте свой комментарий

Подсветка синтаксиса — HTTP API

13.12.11 00:04

Подсветке синтаксиса добавил HTTP API. Теперь, например, можно будет написать плагин к WordPress.

Оставьте свой комментарий

Островок.ру

28.11.11 02:06

Уже как неделю работаю в островке разработчиком интерфейсов.

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

Летом, когда много работал дома, экспериментировал с методикой miumau: 45 минут работаешь, 15 отдыхаешь. И успешно перенес ее в офис. Конечно бывает, что полдня невозможно соблюдать темп из-за взаимодействия с коллегами. Но все равно, когда я знаю, что впереди есть немного спокойного времени, очень легко вхожу в поток.

Оставьте свой комментарий

Подсветка синтаксиса

20.11.11 21:54

ЯЛ 276, GR 82, PR 3, тИЦ 30

Сделал онлайн подсветку синтаксиса языков программирования как в TextMate. Для вставки на сайт или блог.

http://markup.su/highlighter/

Стили подсветки у TextMate отличаются своей красотой и открытым кодом. Например, редактор Sublime Text 2 тоже взял за основу ее расцветку и логику.

Ближе всего, к моей реализации проект на руби Ultraviolet. По началу думал использовать его в качестве бэкэнда, но он работал очень долго. Где-то 5-7 секунд на простом коде.

Тогда, я с помощью трех фрилансеров, сделал на хостинге инфраструктуру для подсветки синтаксиса. Один скрипт забирает файлы оформления. Другой синтаксис языков. Третий все это оптимизирует для веба. И четвертый C++ скрипт раскрашивает код, который ему пришлют.

В итоге получился быстрый и красивый сервис для подсветки кода.

В комментах можно писать о найденых багах :)

Оставьте свой комментарий

TouchSlider — javascript библиотека для галерей

11.11.11 19:14

Сделал слайдер для использования разработчиками на своих сайтах.

Сайт библиотеки.

Предыстория примерно такая: каждый раз, когда надо было сделать слайдер, я писал 50 строк кода, и все работало. А в процессе появлялись три недоделки, которые требовали больше времени и не имели готового решения:

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

Летом время появилось, и я решил реализовать такой слайдер. И еще мелочи. Весит 3КБ (minified и gzipped). Исходный код на GitHub.

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

  • Фоторама фото слайдер
  • Roto фото скроллер
  • Galleria анимации во время жестов нет, но сами жесты поддерживаются. Есть фуллскрин и лайтбокс
  • iScroll 4 библиотека для скроллинга. Часто этого достаточно. Используется с модификациями на сайте Apple
  • http://codecanyon.net/category/javascript/sliders много платных красивых скриптов. Везде много мелких недочетов, но красиво и готово к использованию.
Оставьте свой комментарий

</SUP>

20.05.11 14:03

Сегодня мой последний рабочий день в СУПе.

За прошедшие три с половиной года я сделал на яваскрипте много всего. Из важных для меня это jotsky, чат для жж на базе live messenger (закрыт), LJTimes, список желаний и на той неделе friendstimes. Это было невероятной удачей перепробовать множество подходов к архитектуре и взаимодействию разных технологий.

На работе я познакомился с каким-то огромным количеством человек. Только в мессенджере у меня 85 людей работавших вместе со мной. Например, попиарю репортажного фотографа Егора Савинцева и сервис фотоблогов Игоря Аскарова.

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

А для технических специалистов есть шанс влиться в команду Живого Журнала, в которой я работал: вакансии для верстальщиков, яваскрипт программистов и перловиков.

Оставьте свой комментарий

Метроном

11.04.11 19:11

Приехал немецкий метроном из штатов.

Метроном

Хотя вся затея ради возможности посмотреть на реакцию таких кошечек вживую

Оставьте свой комментарий

wtf-tv.ru

05.04.11 11:33

Сделали сайт с видео на пару с tarakanov (и команда). На нем выкладываются интервью и видео зарисовки с блогерами.

Сегодня, в 12 дня они должны быть в офисе СУПа, а я вчера как назло разболелся. Коллеги, вы там встретьте их по радушнее пожалуйста :)

Оставьте свой комментарий

Как не забыть вещи в бассейн

31.03.11 23:41

Что бы с утра не забыть вещи для бассейна, мне помогает счет до шести (сланцы, плавки, очки, шампунь, чистые трусы и пакет).
Оставьте свой комментарий

Свободное время

19.03.11 23:57

Ради чего я освобождаю время? Откуда черпать энергию? Кого искать?

Нашел нужные слова в отрывке из книги «Все, что мне нужно знать, я узнал в детском саду»:

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

Оставьте свой комментарий

Тест Желаний (Wishlist)

17.12.10 19:49

Поляризационный светофильтр

Поляризационный светофильтр

http://market.yandex.ru/search.xml?hid=994004&glfilter=6390885:6390895&glfilter=6375048:67,67

View full wishlist

Почитать: http://tema.livejournal.com/406335.html

Сделали для ЖЖ список желаний. Хорошо получилось.

Моя карма разработки LJ Messenger → Share This → LJTimes закончилась ;)

В комментах можно устроивать баг-коллектор.

Оставьте свой комментарий

JavaScript функция проверки замусоривания

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 умеет подсказывать, какие глобальные переменные мы наобъявляли. Иногда проще скормить код ему.

А может это умеют делать еще какие-то инструменты?

Оставьте свой комментарий

Петерхост и Python

08.02.10 15:57

ЯЛ 247, GR 84, PR 4, тИЦ 90

Тихо мирно ввел поддержку Python. Не анонсировали, видимо, для внутреннего тестирования. Узнал благодаря твиту.

Я на радостях даже сделал страничку, где можно посмотреть всё ПО которое стоит на сервере. Их вика не успевает за обновлениями, заставляя идти в консоль и проверять версию.

Текущие значания:

  • Apache: 1.3.41
  • PHP 5: 5.2.8
  • PHP 4: 4.4.9
  • MYSQL: 5.0.77
  • Zend: 2.2.0
  • Perl: 5.008008
  • Python: 2.5.2
  • C++: 3.4.6

Раньше мне казалось, что обилие языков нужно для покрытия клиентов, а самому программисту хватает одного языка. А вот недавно мне понадобился серверный C++ и перловый XSD конвертер аналог которого есть только на java. И мой монополярный php мир, рухнул. Кстати, если кто знает конвертер который понимает старые dtd'шки аля правила валидатора html 3.2, скажите.

UPD: добавил mysql.

42b936c07f55ef16ce063092fce4d37b
Оставьте свой комментарий

Обновил lusever.ru

20.01.10 16:17

ЯЛ 224, GR 83, PR 4, тИЦ 80

Изменил только главную страницу.

Для svg анимации используется Raphaël, у которой та еще магия. Люди с аккаунтом на гитхабе могут поддержать меня проголосовав за баг :)

В Опере 10.50 pre-alpha сайт у меня не заработал, видимо потому что это альфа. В последней 10.10 все хорошо.

Оставьте свой комментарий

Баг FCKeditor в Опере с твердым знаком

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 с шестью нулями.

Оставьте свой комментарий

Две кнопки submit

31.10.09 15:59

ЯЛ 229, GR 81, PR 4, тИЦ 70

В ЖЖ в формах частенько используются две кнопки 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()"/>
Оставьте свой комментарий

Определение IE

01.10.09 21:40

ЯЛ 202, GR 69, PR 4, тИЦ 70

Сегодня на собеседовании узнал способ определить IE:

'\v' == 'v'

Вот как составить поисковой запрос, что бы найти первоисточник?

В нашу команду, нужны js'ники. Немного фоток из СУПа. А у Наташи описание вакансии. Спойлерю: 70т.р. Если что, в письмо вкладывайте ваш код.

Оставьте свой комментарий

Блог Пети Леонова

06.06.09 13:52

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

Исследует работу в JavaScript с датами и className у элементов 12. Бенчмарками округления i & -1. Экспрешен или header убирает imagetoolbar в IE6. Пишет расширение для Firefox highlight.js. Портрирует JavaScript в nginx.

С днем рождения, Петя.

Оставьте свой комментарий
navigation
[ viewing | most recent entries ]
[ go | earlier ]