• Google's Shell Style Guide (на русском)

    • Перевод
    • Tutorial

    Предисловие


    Какой Shell использовать


    Bash единственный язык shell скриптов, который разрешается использовать для исполняемых файлов.


    Скрипты должны начинаться с #!/bin/bash с минимальным набором флагов. Используйте set для установки shell опций, что бы вызов вашего скрипта как bash <script_name> не нарушил его функциональности.


    Ограничение всех shell скриптов до bash, дает нам согласованный shell язык, который установлен на всех наших машинах.


    Единственное исключение составляет если вы ограничены условиями того под что вы программируете. Одним из примеров могут стать пакеты Solaris SVR4, для которых требуется использование обычного Bourne shell для любых скриптов.


    Когда использовать Shell


    Shell следует использовать только для небольших утилит или простых скрптов-оберток.


    Хотя shell-скриптинг не является языком разработки, он используется для написания различных утилит во всем Google. Это руководство по стилю является скорее признанием его использования, а не предложением использовать его в широком применении.

    Читать дальше →
    • +29
    • 8,7k
    • 9
  • SSLH: Прячем SSH/HTTPS/OpenVPN/Telegram за единым портом 443

    • Tutorial
    image

    SSH/HTTPS/OpenVPN/Telegram и всё на одном порту?! Что?!
    — Да!
    • Хотите скрыть наличее у вас некоторых сервисов?
    • В публичной wi-fi сети блокируется всё кроме 443 (https) порта?
    • Настроили Telegram Proxy/OpenVPN и не хотите его «светить» ?
    • SSH подключение к своему серверу из стран с цензурой?

    На все эти вопросы ответ один — Мультиплексирование SSL/TLS соединений, или SSLH.

    В посте мы рассмотрим как в 1 команду спрятать кучу сервисов за 1 портом.
    Читать дальше →
  • И еще раз: не пользуйтесь публичным WiFi

      image

      Мысль, изложенная в данном посте кому-то может показаться очевидной и банальной, но, как показал разговор в курилке с коллегами, многие, даже имеющие отношение к IT об этом даже не задумывались, не говоря уже о более далеких от техники людей.
      Читать дальше →
    • Маленький ноутбук для системного администратора



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

      К сожалению, мой рабочий Thinkpad x200 слишком тяжёл и громоздок для постоянного ношения, а ничего кардинально лучшего не нашлось. Вообще, маленькие ноутбуки в последнее время скатились к подражанию МакБук Эйру — нечто тонкое, блестящее, с минимумом портов, с функциональностью, принесенной в жертву стилю. Такой ноутбук годится только на то, чтобы ставить лайки в фейсбуке, но никак не для работы.

      Не найдя ничего достойного, я задумался о том, каким-бы получился ноутбук, если-бы его разрабатывали, думая не о маркетинге, а о потребностях реальных пользователей. Например, системных администраторов. Раздумий набралось на целую статью.
      Читать дальше →
    • Как уже снова не получить телефон (почти) любой красотки в Москве, или интересная особенность MT_FREE

      UPD0 14.03 8:21 — Телефон больше не получить. Остальные интересные данные пока остались.


      UPD1 14.03 10:39 — Дабы не очернять ребят из саппорта MaximaTelecom: Сообщил о ней я окольными путями, но раз пять переспросил и уточнил, дошло ли моё письмо до адресата — короче говоря, убедился, что оно у эфемерного (имена просили молчать) ответственного за вафли лица в метро. Я признаю, что это тупо, но цепочка "проблема в мосметро" → "у меня уже были связи со всяким мос, надо позвонить им" мне показалась весьма и весьма логичной в момент обнаружения уязвимости.


      UPD2 14.03 15:40 — Уязвимость была найдена в uid Antxak — суть в том, что в uid лежит md5 телефона без соли. Снова можно искать телефоны.


      Пример намайненного телефона

      image


      UPD3 14.03 18:55 — Уязвимый хэш в uid был заменен на тот же, что и в телефоне. Пока не раскололи последний.


      UPD4 15.03 20:51 — Значения и ключи почти всех полей были заменены на предположительно обфускованные.

      Читать дальше →
    • Нотной грамоте учат неправильно*

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


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


        Представьте что было бы, если бы обычной грамоте учили так же. Но мы, почему-то, в большинстве своем читать и писать таки научились.


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


        * Дисклеймер

        Прошу прощения, если заголовок статьи показался вам чересчур дерзким и провокационным. Таковым он, в общем-то, и является.


        Я ни в коем случае не умаляю заслуг преподавателей, вкладывающих душу в своих учеников, как не умаляю и важности музыкальной теории и сольфеджио. Я всего лишь пытаюсь по иному взглянуть на самые первые шаги в изучении нотной грамоты с точки зрения музыканта-самоучки.


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


        Эффективность я оценивал исключительно на себе, поскольку сей субъект оказался самым доступным для исследования.

        Читать дальше →
      • Пособие по webpack

        • Перевод
        • Tutorial


        Давайте сначала разберемся, зачем нужен вебпак (webpack), и какие проблемы он пытается решить, а потом научимся работать с ним. Webpack позволяет избавиться от bower и gulp/grunt в приложении, и заменить их одним инструментом. Вместо bower'а для установки и управления клиентскими зависимостями, можно использовать стандартный Node Package Manager (npm) для установки и управления всеми фронтэнд-зависимостями. Вебпак также может выполнять большинство задач grunt/gulp'а.


        Bower это пакетный менеджер для клиентской части. Его можно использовать для поиска, установки, удаления компонентов на JavaScript, HTML и CSS. GruntJS это JavaScript-утилита командной строки, помогающая разработчикам автоматизировать повторяющиеся задачи. Можно считать его JavaScript-альтернативой Make или Ant. Он занимается задачами вроде минификации, компиляции, юнит-тестирования, линтинга и пр.

        Допустим, мы пишем простую страницу профиля пользователя в веб-приложении. Там используется jQuery и библиотеки underscore. Один из способов — включить оба файла в HTML:

        Читать дальше →
      • WhatsApp, что внутри?

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

          В этой статье мы подробно посмотрим как можно изучать протокол работы мессенджера, ответим на вопрос «может ли WhatsApp читать нашу переписку?» и приложу весь необходимый код на языке PHP.
          Читать дальше →
        • Root хуже Михалкова

            Рут – это мифическое существо в экосистеме Linux. Он может всё: зайти в любой каталог, удалить любой файл, завершить любой процесс, открыть любой порт. В общем это суперчеловек, чрезвычайно могущественный и очень полезный. Но задумывались ли вы когда-нибудь, какую цену мы платим руту? Не думали же вы, что он работает за просто так.


            Вы знаете команду df? Она показывает все подключенные сейчас диски и статистику по ним: сколько место занято, сколько свободно. Например:


            $ df -m
            Filesystem     1M-blocks   Used Available Use% Mounted on
            udev                 224      1       224   1% /dev
            tmpfs                 48      1        47   2% /run
            /dev/dm-0           9204   7421      1294  86% /

            Вы когда-нибудь замечали, что для локальных дисков сумма Used и Available чаще всего меньше общего размера диска? Ненамного, но меньше.

            Читать дальше →
          • Атакуем DHCP часть 3. DHCP + Apple = MiTM

              LOGO


              В данной статье я расскажу о том как осуществить MiTM любого устройства компании Apple в WiFi сети. Прежде чем читать эту статью настоятельно рекомендую ознакомиться с первой и второй частью.

              Читать дальше →
              • +21
              • 9,1k
              • 6