• Регулярные выражения для самых маленьких

      Привет, Хабр.

      Под катом я расскажу основы работы с регулярными выражениями. На эту тему написано много теоретических статей. В этой статье я решил сделать упор на количество примеров. Мне кажется, что это лучший способ показать возможности этого инструмента.

      Некоторые из них для наглядности будут показаны на примере языков программирования PHP или JavaScript, но в целом они работают независимо от ЯП.

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

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

      Поехали!


      Читать дальше →
    • Всё, что вы хотели узнать о RAID-контроллерах, но лень было искать



        Дисковый массив с нотками ретро.

        На плечах RAID-контроллеров лежит ответственная задача — управление дисковой подсистемой, то есть всей информацией, хранимой на сервере. Именно они отвечают за работу дисковых массивов, позволяя повысить производительность сервера или надёжность хранения данных. Поэтому давайте поговорим о RAID-контроллерах, установленных в серверы вендоров «большой тройки», об их возможностях и особенностях.
        Читать дальше →
      • Оптимизация передачи multicast-трафика в локальной сети с помощью IGMP snooping



          Всем привет! Сегодня хотел бы затронуть тему передачи multicast-трафика в локальной корпоративной сети, а именно работу технологии IGMP snooping на коммутаторах. Так получилось, что за последнюю неделю ко мне обратилось несколько человек с вопросами по этой технологии. И я решил подготовить небольшую статью с описанием данной технологии. Но в процессе подготовки, выяснилось, что краткостью здесь не отделаешься, так как есть о чём написать. Кому интересен вопрос работы IGMP snooping, добро пожаловать под кат.
          Читать дальше →
        • Как не быть обманутым злыми буратинами


            Уж сколько раз твердили миру,
            Что лесть гнусна, вредна; но только все не впрок,
            И в сердце льстец всегда отыщет уголок.
            «Ворона и Лисица» (1807) И. А. Крылов
            1807 год, вдумайтесь! 1807, 200 лет назад!

            Небольшие инструкции по материальным взаимоотношениям.


            Для всех обиженных опсосами, банками, сервис центрами и прочими злыми буратинами.
            Читать дальше →
          • Как веб-дизайн катится прямо в Ад

              Забавный и весьма жизненный комикс Мэтью Иннмана «How a web design goes straight to Hell» уже несколько раз упоминался на Хабрахабре в разных топиках, и наверное многие хабралюди уже с ним знакомы. Мы с моей коллегой, Юлей Лисевич (у нее пока нет акаунта на Хабре) решили сделать его перевод на русский язык. Зачем? Те, кому ежедневно приходится сталкиваться с ситуациями, подобными описанным в комиксе, смогут показать его заказчикам. Возможно это поможет им найти общий язык. :) Итак…

              Как веб-дизайн катится прямо в Ад
              Читать дальше →
            • Лучшие бесплатные Photoshop плагины для веб-дизайнеров

                Divine Elemente


                image
                Один из самых потрясающих проектов, которые я встречал за последнее время. Плагин Divine Elemente дает возможность дизайнерам создавать WordPress темы без каких либо навыков фронт/бэк-енда. К сожалению у меня не было возможности поработать с ним. Он доступен только для Windows. Для того что бы все работало необходимо создавать макет в соответствии со встроенным blueprint — это некий Bootstrap, Boilerplate или даже набор инструкций по наименовании слоев и групп. Разработчики обещают множество всего хорошего, в том числе: SEO friendly, валидную и семантичную верстку, читаемый код. Впечатляет!

                Читать дальше →
                • +58
                • 140k
                • 9
              • Несколько интересностей и полезностей для веб-разработчика (выпуск 3)

                  Доброго времени суток, уважаемые хабравчане. С прошедшим вас днем программиста. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

                  Cloudconvert




                  Великолепный онлайн конвертер файлов, который поддерживает в общей сложности 140 форматов следующих типов: archive, audio, cad, document, ebook, image, presentation, spreadsheet, video. Синхронизируется с Dropbox и Google Drive, благодаря чему возможно использование на всех смартфонах. А самое приятное это то, что для данного сервиса существует функциональное и простое API.

                  Читать дальше →
                  • +123
                  • 59,2k
                  • 29
                • Оперативная реакция на DDoS-атаки

                  Один из ресурсов, за которым я присматриваю, вдруг стал неожиданно популярным как у хороших пользователей, так и у плохих. Мощное, в общем-то, железо перестало справляться с нагрузкой. Софт на сервере самый обычный — Linux,Nginx,PHP-FPM(+APC),MySQL, версии — самые последние. На сайтах крутится Drupal и phpBB. Оптимизация на уровне софта (memcached, индексы в базе, где их не хватало) чуть помогла, но кардинально проблему не решила. А проблема — большое количество запросов, к статике, динамике и особенно базе. Поставил следующие лимиты в Nginx:

                  на соединения
                  limit_conn_zone $binary_remote_addr zone=perip:10m;
                  limit_conn perip 100;
                  

                  и скорость запросов на динамику (fastcgi_pass на php-fpm)
                  limit_req_zone $binary_remote_addr zone=dynamic:10m rate=2r/s;
                  limit_req zone=dynamic burst=10 nodelay;
                  

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

                  Но плохиши продолжали долбить, и захотелось их отбрасывать раньше — на уровне фаервола, и надолго.

                  Сначала сам парсил логи, и особо настырных добавлял через iptables в баню. Потом парсил уже по крону каждые 5 минут. Пробовал fail2ban. Когда понял, что плохишей стало очень много, перенёс их в ipset ip hash.

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

                  Нужно было придумать как быстро добавлять нарушителей в черный список. Сначала была идея написать/дописать модуль к Nginx + демон, который будет ipset-ы обновлять. Можно и без демона, но тогда придётся запускать Nginx от рута, что не есть красиво. Написать это реально, но понял, что нет столько времени. Ничего похожего не нашёл (может плохо искал?), и придумал вот такой алгоритм.

                  При привышении лимита, Nginx выбрасывает 503-юю ошибку Service Temporarily Unavailable. Вот я решил на неё и прицепиться!

                  Для каждого location создаём свою страничку с ошибкой
                  error_page 503 =429 @blacklist;
                  

                  И соответствующий именованный location
                  location @blacklist {
                      fastcgi_pass    localhost:1234;
                      fastcgi_param   SCRIPT_FILENAME    /data/web/cgi/blacklist.sh;
                      include         fastcgi_params;
                  }
                  

                  Дальше интересней.
                  Нам нужна поддержка CGI-скриптов. Ставим, настраиваем, запускаем spawn-fcgi и fcgiwrap. У меня уже было готовое для collectd.

                  Сам CGI-скрипт
                  Читать дальше →
                • Установка приложений с .EXE-инсталляторами средствами GPO

                  • Tutorial
                  Ни для кого не является секретом то, что в организациях установка приложений на клиентские компьютеры должна быть (или, если честно, то рекомендуется, чтобы была) автоматизированной. Естественно, комплексные продукты, например, такие как Microsoft System Center Configuration Manager, могут превосходно справляться с такой задачей, однако ведь всегда были, есть и будут организации, которые по той или иной причине не приобрели себе такой продукт. Поэтому приходится устанавливать программные продукты с помощью тех же штатных средств операционных систем Windows, и для выполнения такой задачи предпочтительными становятся функциональные возможности групповой политики.
                  Также все прекрасно знают и о том, что при помощи расширения клиентской стороны Group Policy Software Installation GPSI, приложения можно развертывать на клиентские машины двумя методами: либо путем публикации только для пользователей, либо при помощи назначения для пользователей или компьютеров.
                  Читать дальше →
                  • +20
                  • 71,3k
                  • 6
                • Как начать работать на Elance.com. Краткие рекомендации системному администратору и не только

                    В общем-то на Хабре достаточно постов о фрилансе вообще, и о Elance.com в частности — пост ниже является попыткой поделиться опытом.
                    Информации много не бывает — посему позвольте начать.

                    Если вы впервые слышите про Elance — настоятельно рекомендую прочитать два поста ниже, serjio очень хорошие советы даёт по поводу регистрации, наполнения портфолио, бидов и прочего, что необходимо знать:

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