• Почему, ну почему, эти #?@! придурки используют vi?

    Предлагаю читателям "Хабрахабра" перевод статьи "Why, oh WHY, do those #?@! nutheads use vi?" за авторством John Beltran de Heredia.


    Да, даже если вы не можете в это поверить, у редактора vi, увидевшего свет более тридцати лет назад (и его более молодого, всего-то пятнадцатилетнего лучшего клона & большого улучшения — vim) очень много фанатов.


    Нет, они не динозавры, которые не хотят идти в ногу со временем — сообщество пользователей vi продолжает увеличиваться: я, который начал только два года назад (после десяти лет работы программистом). Мои друзья переходят на vi сейчас. Черт, большинство пользователей vi даже еще не были рождены, когда он был написан!


    Да, есть конкретные причины, почему модель редактирования vi/vim превосходит любую другую. Вам не надо быть экспертом в Unix, чтобы использовать vi — он доступен бесплатно практически для любой существующей платформы; для большинства IDE существуют плагины, позволяющие использовать его возможности. Давайте же развеем некоторые заблуждения и рассмотрим пару примеров, демонстрирующих его превосходство.

    Читать дальше →
  • Полезные сниппеты для Nginx конфигов



      Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

      Читать дальше →
    • PeerVPN – пиринговый VPN с открытым кодом

        Перевод анонса и небольшой документации проекта PeerVPN, который показался мне интересным.

        PeerVPN


        Это программа, создающая виртуальную локалку из нескольких удалённых компьютеров. Такие сети могут быть полезны для непосредственного общения приложений, например совместного использования файлов или игр. Часто обычными способами наладить такое взаимодействие невозможно из-за фаерволов или NAT.

        Традиционные VPN работают по схеме клиент-сервер, когда много узлов соединяются с одним сервером. У такой звёздной топологии есть недостатки. Центральный сервер должен обладать большой пропускной способностью, чтобы обрабатывать весь трафик сети. Если сервер падает, сеть падает следом.

        PeerVPN работает по распределённой технологии, когда все узлы общаются друг с другом без необходимости в центральном сервере. Если один узел отключается, на сеть это не влияет.
        Читать дальше →
      • Получаем IP-адреса HTTPS-клиентов с HAProxy (frontend) на Nginx (backend) в режимах HTTP и TCP-балансировки

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

          В случае балансировки и терминации HTTP(S)-трафика на HAProxy (Layer 7 [1]) данная задача легко решается добавлением заголовка “X-Real-IP” и его обработкой на Nginx при помощи модуля ngx_http_realip_module [2]. При балансировке TCP-трафика от HTTPS-клиентов и передаче его на веб-сервера напрямую без модификации или терминации (Layer 4 [3]) добавить данный заголовок невозможно, поэтому требуется воспользоваться возможностями, предоставляемыми Proxy Protocol [4, 5, 6].

          Рассмотрим оба варианта (балансировка L7 и L4) на примере выдержек из конфигурационных файлов haproxy 1.5.9 и nginx 1.6.2

          Читать дальше →
        • 50 цитат о программировании всех времён

          • Перевод
          Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

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

          49. Lisp — это не язык, а строительный материал.
          — Alan Kay

          48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
          — Edward V Berard
          Читать дальше →
        • Проекты на WordPress: советы по оптимизации

          • Tutorial
          wordpress

          Сегодня Wordpress является одной из самых популярных CMS. Задуманная изначально как движок для блогов, сегодня она используется для самых разных типов сайтов, в частности, для новостных порталов и интернет-СМИ. На Wordpress работают корпоративные веб-сайты, образовательные и развлекательные порталы.

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

          Подробных инструкций по установке и настройке Wordpress в Интернете опубликовано немало. В этой статье мы бы хотели затронуть вопросы, которым в большинстве публикаций о Wordpress не уделяется достаточно внимания. Мы расскажем о том, как оптимизировать работу сайтов на Wordpress, а также дадим ряд рекомендаций по повышению уровня безопасности и стабильности работы. Во всех примерах используется Ubuntu 12.04.
          Читать дальше →
        • Wi-Fi сети: проникновение и защита. 1) Матчасть



            Синоптики предсказывают, что к 2016 году наступит второй ледниковый период трафик в беспроводных сетях на 10% превзойдёт трафик в проводном Ethernet. При этом от года в год частных точек доступа становится примерно на 20% больше.

            При таком тренде не может не радовать то, что 80% владельцев сетей не меняют пароли доступа по умолчанию. В их число входят и сети компаний.

            Этим циклом статей я хочу собрать воедино описания существующих технологии защит, их проблемы и способы обхода, таким образом, что в конце читатель сам сможет сказать, как сделать свою сеть непробиваемой, и даже наглядно продемонстрировать проблемы на примере незадачливого соседа (do not try this at home, kids). Практическая сторона взлома будет освещена с помощью Kali Linux (бывший Backtrack 5) в следующих частях.

            Статья по мере написания выросла с 5 страниц до 40, поэтому я решил разбить её на части. Этот цикл — не просто инструкция, как нужно и не нужно делать, а подробное объяснение причин для этого. Ну, а кто хочет инструкций — они такие:
            Используйте WPA2-PSK-CCMP с паролем от 12 символов a-z (2000+ лет перебора на ATI-кластере). Измените имя сети по умолчанию на нечто уникальное (защита от rainbow-таблиц). Отключите WPS (достаточно перебрать 10000 комбинаций PIN). Не полагайтесь на MAC-фильтрацию и скрытие SSID.

            Оглавление:
            1) Матчасть
            2) Kali. Скрытие SSID. MAC-фильтрация. WPS
            3) WPA. OpenCL/CUDA. Статистика подбора
            Как работают WEP, WPA и WPS
          • Теплый и ламповый VPN

            • Tutorial

            Ничего не предвещало беды, как вдруг в 2 часа ночи раздался телефонный звонок.

            — Алло, милый! У меня youtube не работает!
            — Прекрасно, иди спать!
            — Нууу! Там новая серия вышла!
            — Завтра всё сделаю!
            — Ну Заяя, нуууу!
            — Ладно! Ладно! Сейчас.


            Из этого поста вы узнаете ответы на следующие вопросы:
            Как спасти свою милую от стресса в 2 часа ночи? Как вернуть доступ к youtube.com, если ваш провайдер его заблокировал? Как быстро поднять VPN и настроить клиентские устройства (Android, Windows, Debian, dd-wrt) для работу с ним? Как безопасно серфить интернет на открытых точках доступа? Как заработать карму в глазах своей возлюбленной? Если вам это интересно, добро пожаловать под кат!
            Читать дальше →
          • Экспорт Избранного на Хабре в PDF

              Доброго времени суток, хабровчане!


              Думаю многих из вас когда-либо посещала мысль «вот бы сохранить статьи с Хабра».
              Такая же мысль посетила и меня два дня назад. Сохранить захотел не просто каждую статью, а только те, что в избранном, да не поштучно, а сразу всё скопом.
              Первая мысль — надо написать скрипт, который всё это вытянет. Python я уже подучил, но вот с генерацией PDF на нем сталкиваться ещё не приходилось.

              Закручинился я было… Но OpenSource и Хабр спасли меня!
              Краткая суть статьи для тех, кому не интересно много читать
              В статье описан доработанный скрипт на Python fav2pdf.
              Изначальный автор скрипта vrtx, за что ему большое спасибо.
              «Usage — лучше тысячи слов!»
              usage: fav2pdf.py [-h] [-d OUTPUT_DIR] [--from-date FROM_DATE]
                                [--to-date TO_DATE] [--all-in-one]
                                [--only-hubs [ONLY_HUBS [ONLY_HUBS ...]]] [--no-comments]
                                [--no-symlinks]
                                user
              
              Tool for save favorite posts from habrahabr.ru in pdf's or html's
              
              positional arguments:
                user                  habrahabr.ru username
              
              optional arguments:
                -h, --help            show this help message and exit
                -d OUTPUT_DIR, --output-dir OUTPUT_DIR
                                      Directory for output
                --from-date FROM_DATE
                                      From date
                --to-date TO_DATE     To date
                --all-in-one          Save all posts in one PDF-file
                --only-hubs [ONLY_HUBS [ONLY_HUBS ...]]
                                      Save only posts from hubs. For multiple: "--only-hubs
                                      Hub1 Hub2 --"
                --no-comments         Dont save comments from posts
                --no-symlinks         Dont create symlinks to posts
                --create-html         Create html's instead of pdf's
                --create-url-list     Just save user.txt with all links
              


              И как же они меня спасли?
            • PHP: фрактал плохого дизайна

              • Перевод

              Предисловие


              Я капризный. Я жалуюсь о многих вещах. Многое в мире технологий мне не нравится и это предсказуемо: программирование — шумная молодая дисциплина, и никто из нас не имеет ни малейшего представления, что он делает. Учитывая закон Старджона, у нас достаточно вещей для постижения на всю жизнь.

              Тут другое дело. PHP не просто неудобен в использовании, плохо мне подходит, субоптимален или не соответствует моим религиозным убеждениям. Я могу рассказать вам много хороших вещей о языках, которых я стараюсь избегать, и много плохих вещей о языках, которые мне нравятся. Вперёд, спрашивайте! Получаются интересные обсуждения.

              PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

              PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
              Читать дальше →