Category: it

Category was added automatically. Read all entries about "it".

pk

Итоги 2015

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

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

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

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

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

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

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

pk

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

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

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

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

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

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

pk

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

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

http://markup.su/highlighter/

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

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

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

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

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

pk

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

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

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

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

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

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

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

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

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

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

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

pk

Обновил lusever.ru (http://lusever.ru/)

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

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

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

pk

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

Сейчас в Опере на update.bml, как и в демо CKeditor'а, можно видеть баг: вводишь твердый знак и срабатывает кнопка выделения жирным.

На работе, ругнувшись на Оперу, я удалил эту команду для оперы. По крайней мере, так делают на drupal.ru.

Дома мне стало интересно, где там у Оперы косяк, что команда не работает. Оказалось, что косяка нет, а есть нормальная поддержка русского event.keyCode. То есть, по нажатию на твердый знак, все браузеры выдают keyCode равным нулю, а опера правильный юникодный номер — 1066.

А FCKeditor делает хэш для сочетания клавиш Ctrl+B, с ключом 1066, где 1000 это контрол, а 66 кнопка B.

Решение

Переопределить константу CTRL с 1000 на 8000 в fckonfig.js. Думаю даже, сделать для надежности все три константы CTRL, SHIFT и ALT с шестью нулями.

pk

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

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

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

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

pk

5 советов верстальщику

Эстафета от Юры.

  1. Упрощать. Один div вместо двух, конечно круто, только возвращаться к нему потом не охота;
  2. Проверенные решения. Если что-то оригинальное приходит в голову, не нужно бежать применять. Лучше в начале обсудить у себя в блоге, либо в коммьюнити;
  3. Учи JavaScript;
  4. Использовать UTF-8, и забить на entity;
  5. http://www.webdevout.net/ – удобная табличка браузерной совместимости.

Огонь: Роме, nely_snork и shabunc.

pk

Тонкий CSS для Internet Explorer (expression)

Выкладываю версию доклада из ClientSide. Полная версия, с файлами и презентацией. Спустя месяц я разродился, прошу за это у всех прощения. Спасибо, что не проявляли терпение и активно меня мучали, без этого его бы совсем не было в электронном виде.

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

Collapse )