• 20 вещей, которые я должен был знать в 20 лет

    • Translation
    1. Мир пытается оставить тебя тупым. Начиная от банковских платежей и процентов и заканчивая чудо-диетами — из необразованных людей легче вытрясти деньги и ими проще управлять. Занимайтесь самообразованием столько, сколько можете — для того, чтобы быть богатым, независимым и счастливым.
    Читать дальше →
  • TOP'ай сюда

      Обзор практически всех *top утилит под linux (atop, iotop, htop, foobartop и т.д.).

      top

      Все мы знаем top — самую простую и самую распространённую утилиту из этого списка. Показывает примерно то же, что утилита vmstat, плюс рейтинг процессов по потреблению памяти или процессора. Совсем ничего не знает про загрузку сети или дисков. Позволяет минимальный набор операций с процессом: renice, kill (в смысле отправки сигнала, убийство — частный случай). По имени top суффикс "-top" получили и все остальные подобные утилиты в этом обзоре.

      atop


      Atop имеет два режима работы — сбор статистики и наблюдение за системой в реальном времени. В режиме сбора статистики atop запускается как демон и раз в N времени (обычно 10 мин) скидывает состояние в двоичный журнал. Потом по этому журналу atop'ом же (ключ -r и имя лог-файла) можно бегать вперёд-назад кнопками T и t, наблюдая показания atop'а с усреднением за 10 минут в любой интересный момент времени.

      В отличие от top отлично знает про существование блочных устройств и сетевых интерфейса, способен показывать их загрузку в процентах (на 10G, правда, процентов не получается, но хотя бы показывается количество мегабит).

      Незаменимое средство для поиска источников лагов на сервере, так как сохраняет не только статистику загрузки системы, но и показатели каждого процесса — то есть «долистав» до нужного момента времени можно увидеть, кто этот счастливый момент с LA > 30 создал. И что именно было причиной — IO программ, своп (нехватка памяти), процесор или что-то ещё. Помимо большего количества информации ещё способен двумя цветами подсказывать, какие параметры выходят за разумные пределы.
      Читать дальше →
    • QoS в Linux: фильтр U32

      Так повелось, что фильтр U32 в подсистеме управления трафиком ядра Linux считается простым и понятным, а потому в подробном документировании не нуждается. Например, в LARTC (Linux Advanced Routing and Traffic Control) про него лишь несколько абзацев. Но на самом деле U32 устроен гораздо сложнее и интереснее, но и в использовании он не так прост, как может показаться. Под катом статья по этому фильтру с примерами использования и подробными пояснениями.
      Читать дальше →
    • Срезаем пики с RRD графиков на примере Munin

        Любой linux администратор наверняка наблюдал аномальные пики на RRD графиках. Пики появляются вследствие нарушения процесса сбора отслеживаемой величины и портят картину на графике. Это нормальное явление для RRD.

        На графике трафика пики могут появится после перезапуска сетевого интерфейса или после перезагрузки сервера, что по сути одно и тоже. В обоих случаях процесс подсчета будет прерван из-за остановки устройства.

        image

        Читать дальше →
      • Компьютер в машине

          Предыстория



          У меня toyota corolla 2003 года, с завода на официальные машинки ставили только кассетные магнитолы. Конечно, кассеты в магнитолу я не ставил ни разу, обходился радио и фм модулятором.
          Не сказать, что я особо притязателен к музыке, но конечно хотелось чего-то более. Какие были варианты:
          1. Поставить рамку на 1 или 2 дин и поставить обычную магнитолу.
          2. Купить за 70$ родную, на eBay но уже с дисками. Но без мп3 :)
          3. Купить за 600$ крутую, прямо под мою машину, со всем…

          Но не один мне особо не нравился…
          1. обычные магнитолы лишали бортового компьютера.
          2. Шило на мыло :)
          3. Дороговато и не очень нравились…

          Вот и пришло решение поставить компьютер в машину. Вот что было ДО и ПОСЛЕ. Интересно? Добро пожаловать под хабракат =)
          До: image После: image
          Читать дальше →
        • Прием спутниковых тв каналов в linux

            Доброго времени суток.
            Хочу вам рассказать про настройку приема спутниковых не закодированных тв каналов в linux и вещание их в локальную сеть.
            Исходными данными будем считать наличие спутниковой антенны настроенной на определенный градус(например на www.lyngsat.com/amos2.html) и компьютера под управлением linux(не важно какой дистрибутив, в моем случае был Slackware). Задача очень интересная и актуальная в наше время.
            Итак начнем.
          • Стабильное вещание IPTV через VLC

              С IPTV пришлось познакомиться поближе, когда в компании интернет-провайдера где я работал, решили организовать вещание IPTV. Выяснилось, что вещание осуществляется в linux и программой vlc, которая по слухам единственная в своем роде. Была установлена тарелка и DVB-карта SkyStar2, которая предположительно должна была без проблем заработать в linux'e. Так и было со всеми новыми машинами, где была установлена ubuntu server. На Debian заработало только после обновления ядра. Настройка прошла относительно легко, благо на то время уже было несколько статей на эту тему и документация к vlc была тоже очень полезна. После запуска начались некоторые проблемы с пропаданием звука и видео на каналах и другие проблемы, описанные ниже. После их появления были написаны скрипты, устраняющие эти проблемы. Сейчас на них работает 3 сервера с 5 dvb-картами в общей сложности и вещается 23 канала с 3х спутников. Под катом — перечисление проблем, которые могут появиться после запуска вещания IPTV через VLC в Linux и то как с ними бороться. Бороться будем с помощью bash.
              Читать дальше →
            • Защищаемся от HTTP DDoS и прочих Хабраэффектов

                Простой способ защиты от HTTP DDoS — включить syn-cookies и заблокировать подонков. Но что делать если атакует 5к-10к хостов да еще и с динамическими IP? Тут нам на помощь придет frontend-backend архитектура c промежуточным кэшированием! Почему с промежуточным кэшированием? А потому что в моем случае от шквала запросов от frontend'а backend умирал унося за собой систему.
                Читать дальше →
              • Ускоряем запуск браузера FireFox

                  Ещё давно приметил, что мой любимый инструмент, запускается значительно шустрее после установки, чем после многомесячного, активного использования браузера. Заметил, но как распорядится этим знанием мыслей не было. И вот, только что наткнулся на полезную тему, где описано это узкое место, а также дан ещё один совет по ускорению запуска браузера.

                  И так узкое место при запуске это загрузка .sqlite, базы данных вашего профиля. При интенсивной работе с Фоксом, базы разрастаются, в них появляются «пустые места», ну и главный недостаток, файл базы данных становится сильно фрагментированными. Для решения подобной проблемы существует специальная команда «очистки», точнее операция пересоздаёт файл базы, но уже без пустых мест. Для этого нужно проделать следующее:
                  Читать дальше →
                • pv — маленькая, но очень полезная утилита

                    Один мой друг сказал по поводу pv следующее «Я админю семь лет, мне нужна была эта тулза десятки раз, а я даже не знал что она существует». В размышлениях над тем как заполучить инвайт на Харбе, я набрал в поиске pv. И ничего не нашел.
                    Читать дальше →
                  • Техническая организация хостинга

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

                      Есть шесть вещей, на которые опирается любой хостинг-провайдер: Сервер, Панель, Домены, Бухгалтерия, Поддержка, Юридическая организация. Сейчас я расскажу основные варианты выбора.
                      Читать дальше →
                    • Выпущен XNeur и gXNeur версии 0.9.4!

                        X Neural Switcher (XNeur)


                        Данная программа является автоматическим переключателем клавиатуры. Т.е. при наборе текста, если он набирается на неверном языке, xneur автоматически (или по запросу) переключит язык на нужный.

                        Принцип работы у программы аналогичен Punto Switcher.

                        Выпущен XNeur и gXNeur версии 0.9.4!

                        Список изменений:
                        • Транслитерация приведена к стандарту ISO 9 (GOST 7.79-2000).
                        • Добавлена возможность переключения языка при вводе, а не после пробела.
                        • Добавлены новые действия, на которые вешаются звуки и OSD.
                        • Добавлена возможность фиксации раскладки. Если раскладка фиксирована, то на нее автоматического переключения не будет происходить. Соответственно, если в данный момент включена фиксированая раскладка, то с нее переключения происходить не будет.
                        • Исправлена работа с диакритическими знаками (â, ű, ë и подобными). Спасибо польским пользователям за сообщения об ошибках и тестирование.
                        • Добавлены болгарский, чешский, греческий, эстонский, армянский, литовский, латвийский, польский, испанский и узбекский языки. В общей сложности, программа теперь поддерживает восемнадцать (18) языков.
                        • Доработан gxneur, добавлены всякие удобства. Разумеется, gxneur поддерживает все возможности xneur.
                        • Словари, начиная с этой версии, вводятся на языке ввода, а не в английском коде.
                        • Разработаны новые флажки 24х24. Их удобно использовать с gxneur в окружении KDE. Взять можно здесь xneur.ru/browser/icons/bobs. Положить надо в /usr/local/share/gxneur/pixmaps .
                        • Множественные улучшения и исправления глюков.

                        Читать дальше →
                      • Прописываем dpi в PNG с помощью PHP

                          Понадобилось мне тут вдруг для одной прикладной задачи генерировать PNG-шки на PHP, чтобы затем их можно было вставлять в документы и распечатывать. Но вот проблема, никак с помощью GD в PHP при сохранении нельзя задать разрешение в dpi, а ведь это очень важно при печати. С ImageMagick мне связываться не хотелось, поэтому я быстренько нагуглил PNG (Portable Network Graphics) Specification и написал вот такой код:
                          Читать дальше →
                        • Простое сравнение изображений с помощью php

                            Алгоритм возможно не новый, и не является идеалом, но, на удивление, работает. Никаких графов и корелляции.

                            Для начала, стоит отметить, что сравнение очень приблизительно (по крайней мере, на данном этапе), временами две совершенно разные фотографии оказываются похожими процентов на 60%, так же не учитываются жесткие модификации (повороты, инверсия, обрезка) – для этого нужно доводить и доводить. Лично для меня самым главным оказались два параметра: скорость, независимость от разрешения изображения и возможность сравнивать «изображения» прямо в базе данных.
                            Читать дальше →
                          • Ускоряем выборку произвольных записей MySQL

                              Последнее время оживилась публика с вопросом случайной выборки из таблицы. Решений по оптимизации полно, и нового сейчас я вам наверное ничего не покажу, просто напомню про основные методы оптимизации — упрощение запроса и индексацию. Без предисловий про фриленсеров, сразу к делу ;)

                              Читать дальше →
                            • Система разделения прав доступа в веб-приложении

                                В этой статье мы пройдём с вами полный цикл от идеи, проектирования БД, написания PHP-Кода, и завершающей оптимизации. Постараюсь рассказать обо всем, как можно проще. Использовать для примеров буду PHP и Mysql. Заодно потренирую новичков :).

                                В этой статье я коснусь вопросов:
                                  1. Идея ACL
                                  2. Проектирование БД
                                  3. Нормализация БД
                                  4. Рефакторинг кода
                                  5. Оптимизация рабочего кода

                                Статья является ответом на Бинарное распределение прав доступа в CMS. Пока автором пишется практическая часть, я хочу предоставить мой вариант, который я использую довольно давно.
                                То, что я сейчас расскажу, похоже на ACL.

                                Читать дальше →
                              • Атаки на беспроводные сети. Часть 1

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

                                  Читать дальше