• Группировка серийных постов, близких по времени

      Добрый день, Хабр!

      В проекте столкнулся со следующей задачей: есть новостная лента фотографий, постить в которую пользователи могут только по одной фотографии, а отображать их нужно вместе в виде галереи. Иными словами, все строки выборки нужно логически объединить в несколько «временных окон» по каждому автору и использовать это при отображении.

      Напрашивается группировать следующие один за одним посты, однако это не подходит: если два пользователя параллельно и неспешно аплоадят сотню фотографий — в ленту они добавляются поочерёдно, и при просмотре посты будут неприятно чередоваться.

      За решением на MySQL
      добро пожаловать под кат
      • +17
      • 1,5k
      • 2
    • PulseAudio, часть 1: управление из командной строки


        Одним из новшеств Ubuntu 10.10 стал переход с «голой» ALSA на PulseAudio. Ранее постилось много советов прибить и удалить его для решения проблем, однако теперь PulseAudio стабилен, с ним не шипят колонки ;), и он способен на такое, что не снилось Alsa :)

        В статье я с самого начала расскажу что это такое и как оно работает, а так же:
        • Как переключить весь звук на USB-колонку на закрывая приложений (usb hotplug);
        • Как выбрать порт звуковой карты для вывода звука (колонки ноутбука/наушника, LineOut/Наушники);
        • Как выбрать профайл звуковой карты (маппинг физических портов: 5.1 или стерео+lineIn?);
        • Как управлять громкостью и усиливать тихий сигнал (!);
        • Как сделать Skype громче музыки?

        И представлю своё решение, призванное упростить управление PulseAudio ;)
        Любопытно!
      • Изменение UID&GID пользователя и его файлов

          reuid.png - image uploaded to Picamatic
          Встала тут передо мной задача изменить UID и GID пользователя и правильно изменить владельца всех файлов.
          Дело в том, что я работаю за двумя компьютерами попеременно, и файлы mysql лежат у меня на флешке. Получилось так, что id пользователя mysql на обоих компах отличается и мускл не может получить доступ к своим файлам. Присваивать права 0666 скучно, и по этому поводу я решил научиться грамотно изменять uid пользователя :)

          Казалось бы, всё просто, но есть два нюанса которые необходимо учесть:
          1. UID и GID не всегда одинаковы для пользователя и его группы
          2. Не все файлы принадлежат одновременно юзеру mysql и группе mysql: файлы для chown нужно искать отдельно
          Статья написана для тех, кто ещё не делал ничего подобного а также кто хочет научиться продвинутому использованию команды find и узнать что такое xargs.

          Читать дальше →
        • Автоматическая сортировка строк с вспомогательным порядковым столбцом — средствами MySQL

            sort
            Недавно пришлось выполнить махинацию с БД которая, как кажется на первый взгляд, совершенно невыполнима средствами MySQL. Перед глазами у меня была таблица товаров, сортировка которых осуществляется вспомогательным столбцом `order_num` ('порядковый номер'): она позволяет задавать ручную сортировку товаров.
            Но вот потребовалось автоматически заполнить этот столбец так, чтобы товары оказались отсортированы по названию: то есть, с рядом ограничений, изменить столбец `order_num` во всей таблице. Очень хотелось обойтись средствами MySQL без привлечения каких-либо дополнительных инструментов, и задача была решена :)

            Сложность задачи также в том, что MySQL не умеет делать UPDATE таблицы и одновременно читать из неё: в MyISAM таблица эксклюзивно блокируется при записи и нет возможности произвести чтение в подзапросе.

            Читать дальше →
          • Ввод произвольных символов при помощи Compose Key: настройка

              Многие знают, что в Linux есть специальная кнопка: Compose. Её действие аналогично виндовым сочетаниям Alt+NumPad (Например, нажатие Alt+0169 даёт символ ©), но не требует хранить перед глазами таблицу кодов символов :) Если настроить правый Alt как Compose Key, то нажав RAlt+O+C получаем тот же значок копирайта: ©.

              В статье я опишу способ назначения произвольных сочетаний клавиш для символов. Это будет удобно в первую очередь математикам: не нужно будет лазить в таблицу символов чтобы ввести «∀ε>0 ∃δ(ε)≕δ>0: ∀x∈O(x₀) |f(x)<A|» в любом приложении, поддерживающем юникод. Кроме математических символов, будут доступны всевозможные стрелочки (→⇖⇔⟲⟽), галочки (✘), буллеты (•‣★), кавычки («»), длинное тире (—), дроби(⅓, ⅞), диа⃫кр͎е̃ти⃰ческие зн⃫аки и всё что душе угодно в необъятном юникоде! :)
              Хочу так же
            • GrooveShark – бесплатная альтернатива Last.fm!

                GrooveShark logo Странно, что до сих пор этот сервис остался незамеченным на Хабре: ведь многие здесь слушали (или продолжают слушать) Last.fm. А ведь GrooveShark – отличный веб-сервис, ничуть ему не уступающий! Кроме того, достаточно иметь лишь браузер с flash'ем – и можно слушать музыку любимую музыку, загружать свои треки, делиться плейлистами и многое другое!

                Читать дальше →
              • Как собрать бинарный deb пакет: подробное HowTo

                  Сегодня я расскажу на абстрактном примере как правильно создать *.deb пакет для Ubuntu/Debian. Пакет мы будем делать бинарный. Пакеты, компилирующие бинарники из исходников здесь не рассматриваются: осилив изложенные ниже знания, в дальнейшем по готовым примерам можно понять суть и действовать по аналогии :)

                  В статье не будет никакой лишней возни «вручную»: формат пакета эволюционировал в достаточно простую, а главное — логичную структуру, и всё делается буквально на коленке, с применением пары специализированных утилит.

                  В качестве бонуса в конце статьи будет пример быстрого создания собственного локального репозитория: установка пакетов из репозитория позволяет автоматически отслеживать зависимости, и конечно же! — устанавливать всё одной консольной командой на нескольких машинах :)

                  Для тех, кто не хочет вдаваться в мощную систему установки софта в Linux, рекомендую посетить сайт проги CheckInstall: она автоматически создаёт deb-пакет из команды «make install» ;) А мы вместе с любопытными —
                  поехали дальше!
                • jQuery в Eclipse PDT, WTP/ Zend Studio for Eclipse

                    Захотелось мне тут для JavaScript perspective в любимом Eclipse заиметь автодополнение функций для jQuery с наличием полной документации. Порыскав в сети, нашёл только jQueryWTP, который даже ставить не хотелось из-за негативных отзывов, и устаревшей версии.
                    Потому пришлось сделать самостоятельно, и вот результат:

                    Требования: Eclipse, Web Tools Platform / Zend Studio for Eclipse / Любой редактор с поддержкой JSDoc

                    P.S. Конечно, есть и другие методы подключения jQuery, например использование NetBeans или плагина Aptana. Так уж получилось, что был выбран именно этот метод :)

                    хочу!