• Определяем порядок столбцов в составном индексе

    • Перевод
    Хочу поделиться простым эмпирическим методом, который я использую для определения того, в каком порядке должны идти столбцы в составном индексе. Этот способ подходит не только для MySQL, он также применим к любым СУБД, в которых используются b-tree индексы.

    Давайте начнем с запроса, который возвращает пустой результат, но при этом делает полный скан таблицы. EXPLAIN покажет на нем, что нет доступных индексов (т.е. possible_keys = NULL)

    SELECT * FROM tbl
    WHERE
      status='waiting' AND
      source='twitter' AND
      no_send_before <= '2009-05-28 03:17:50' AND
      tries <= 20
    ORDER BY date ASC LIMIT 1;
    Читать дальше →
  • Несовершенное эго

      Любителям холиваров и пострадавшим от троллей посвящается

      Сидят однажды учитель и ученик на скамейке, и созерцают. Вдруг подходит к ним человек и говорит:
      — От этих педиков уже пройти негде. Чего вылупился, старый козел, я с тобой разговариваю. Кто из вас кого трахает?
      Ученик говорит:
      — Учитель, этот человек оскорбил Вас. Я могу убить его одним ударом, если Вы позволите.
      — В этом нет необходимости.
      — Разве вас не разозлила его грубость?
      — Ничуть.
      — Как же вы это делаете. Вы используете силу отрешения?
      — Нет, я вообще ничего не делаю, для того чтобы оставаться спокойным. Это происходит само собой и этому даже не надо долго учиться.
      — Но как?
      Читать дальше →
    • Современная отладка JavaScript

      • Перевод
      В связи с достаточно широким выбором неплохих отладчиков, JavaScript-программисты могут получить достаточно много пользы, изучая то как их можно использовать. Их пользовательские интерфейсы становятся все более совершенными, более стандартизированными между собой и более легкими в использовании, что делает их полезными как для экспертов так и новичков в отладке JS. В этой статье мы обсудим передовые методы отладки для диагностики и анализа ошибок, используя типичное веб-приложение.

      В настоящее время средства отладки доступны для всех основных браузеров.
      • Firefox имеет хорошо известное расширение Firebug
      • IE8 выпускается со встроенными Developer Tools
      • Опера 9.5+ поддердивает отладчик Dragonfly
      • У Safari есть JS-отладчик Drosera и DOM-вьювер WebInspector. В более свежих версиях отладчик интегрирован в WebInspector.

      На данный момент Firebug и Dragonfly наиболее стабильны. Утилиты IE8 иногда игнорируют контрольные точки, а во время написания этой статьи WebInspector имеет некоторые проблемы совмстимости с последними билдами Webkit.

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

      Читать дальше →
    • CSS counters


        Одной из редко используемых возможностей CSS2.1 являются счетчики. Описаны они в разделе спецификации, посвященной генерации контента. Что же это такое?

        Приведу пример из спецификации, эмулирующий обычный нумерованый список с помощью счетчика и свойства content:
        OL { counter-reset: item }
        LI { display: block }
        LI:before { content: counter(item) ". "; counter-increment: item }
        

        Первым правилом мы назначаем элементам OL счетчик с именем «item», затем для всех LI меняем значение свойства display на block, вместо значения по умолчанию (list-item), чем отключаем стандартные маркеры-цифры. Наконец, в последнем правиле, мы инкрементируем счетчик для каждого элемента списка, а само его значение показываем перед элементом c помощью функции counter() и свойства content. Всё просто.

        Но это еще далеко не всё
      • Давно проверялись на вирусы/adware/spyware?

          В процессе подсчета вот этой статистики по Хабру обнаружил, что как минимум у 950 хабралюдей (~2.5% от всех читающих Хабр, если считать, что распределение равномерно) в системе живет Adware-вредитель под называнием AdCentriaIM. Он оставляет след в user-agent браузера, что и позволило его обнаружить. Полное описание, и как избавиться написано — здесь. Подавляющая часть болеющих — Windows/Firefox.

          Вот так выглядит типичный user-agent:
          Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.13) Gecko/20080311 AdCentriaIM/1.7 Firefox/2.0.0.13

          Я не знаю правильно ли я поступаю, написав этот топик, но просто так сидеть сложа руки тоже как-то не могу, как еще донести это до людей?

          Читать дальше →
        • Немного статистики

            Поскольку на дворе выходные и есть свободное время, захотелось посчитать хабравчан, ну в смысле что они используют из браузеров и платформ, когда дома ). Поскольку я Хабром не владею и сессии мне недоступны, пришлось считать самодельным скриптом по юзер-агентам, оставленным в логе сервера после просмотра картинок и при переходе по ссылкам. Впрочем для статистики, которая, как говорят, есть дезинформация — этого достаточно. Итак, к цифрам.

            Браузеры



            Читать дальше →
          • Выбор нескольких файлов

              Ни для кого, наверно, не секрет, как в GUI Windows выделить несколько файлов. Еще с незапамятных времен это делалось путем нажатия клавишы CTRL и кликом мышью по нужным файлам. Даже пользователям файловых менеджеров, например Total Commander, в распоряжении которых есть более удобные средства, иногда приходится выделять файлы стандартным способом, например чтобы приаттачить несколько файлов к письму. Это не очень удобно, особенно если приходится выбирать из большого количества файлов. Стоит задуматься, кликнуть не так — и придется создавать набор заново. Может быть не все знают, что в Vista заметно улучшили этот интерфейс, но улучшение почему-то предпочли скрыть от пользователей.
              Читать дальше →
            • Винил возвращается?

              • Перевод

              Меломаны всегда говорили, что у виниловых записей качество звука выше, по сравнению с компакт-дисками или MP3, но их лояльность казалась не более чем ностальгией на фоне 25-летнего доминирования цифровой записи в музыкальной индустрии. Однако, в последние годы, онлайн-продажи LP (сокращение от Long Play records — долгоиграющих пластинок) более чем удвоились, благодаря новым покупателям, желающим больше, чем им дает онлайн-покупка mp3-треков за 99 центов.

              Читать дальше →
            • Залипание/дублирование символов

                Данный топик был опубликован под замком как запрос о помощи. Проблема, описанная в топике довольно специфичная и вероятно редкая, за всю жизнь сталкивался с ней два раза, а на своей машине — один раз, но зато она очень неприятная. Поскольку решение проблемы, после ряда экспериментов, найдено, а решения её в русскоязычном сегменте интернета я не нашел, то решил открыть из-под замка, возможно эта информация кому-то пригодится. Огромное спасибо хабра-товарищам Optik и YasonBy за эффективные попытки разобраться в проблеме и помочь.

                Далее топик идет практически так, как и был написан изначально.

                Некоторые символы не набираются однократным нажатием, а как бы дублируются, например «птичка» (^), «тильда» (~), кавычка (") и апостроф ('). Обычно, чтобы набрать ^ нужно нажать Shift+6, но у меня при нажатии этой комбинации не появляется ничего, зато если не отпуская Shift нажать «6» еще раз, то появляется сразу два символа "^". Если же после Shift+6 нажать какую то символьную кнопку, то появится какая-то вообще не к селу ни к городу буква.
                Под катом некоторые, более подробные примеры поведения и решение проблемы