pk

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

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

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

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

pk

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

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

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

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 закончилась ;)

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

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

Петерхост и Python

Тихо мирно ввел поддержку 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
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

Две кнопки submit

В ЖЖ в формах частенько используются две кнопки 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()"/>
  • Current Mood
    ЯЛ 229, GR 81, PR 4, тИЦ 70
  • Tags
pk

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

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

'\v' == 'v'

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

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

  • Current Mood
    ЯЛ 202, GR 69, PR 4, тИЦ 70
  • Tags
    ,
pk

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

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

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

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