• Самая сложная программа

    • Перевод
    От переводчика: я нашел на Quora вопрос: Какую программу или код можно назвать самыми сложными из когда-либо написанных? Ответ одного из учасников был настолько хорош, что вполне тянет на статью.

    Пристегни ремни.

    Самая сложная программа в истории была написана командой людей, имена которых нам неизвестны.

    Это программа – компьютерный червь. Червь был написан, судя по всему, между 2005 и 2010 годами. Поскольку этот червь является таким сложным, я могу дать лишь общее описание того, что он делает.
    Читать дальше →
  • Насколько хорошо ты знаешь bash?


      Пользуешься командным интерпретатором каждый день? Готов решить несколько логических задачек и узнать что-то новое? Добро пожаловать под кат.
      Читать дальше →
    • 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,6k
      • 9
    • Настройка ISCSI initiator в linux

        Abstract: как работает open-iscsi (ISCSI initiator в linux), как его настраивать и чуть-чуть про сам протокол ISCSI.

        Лирика: В интернете есть множество статей довольно хорошо объясняющих, как настроить ISCSI target, однако, почему-то, практически нет статей про работу с инициатором. Не смотря на то, что target технически сложнее, административной возни с initiator больше — тут больше запутанных концепций и не очень очевидные принципы работы.

        ISCSI


        Перед тем, как рассказать про ISCSI — несколько слов о разных типах удалённого доступа к информации в современных сетях.

        NAS vs SAN

        Существует два метода доступа к данным, находящимся на другом компьютере: файловый (когда у удалённого компьютера запрашивают файл, а какими файловыми системами это сделано — никого не волнует), характерные представители NFS, CIFS (SMB); и блочный — когда у удалённого компьютера запрашивают блоки с дискового носителя (аналогично тому, как их читают с жёсткого диска). В этом случае запрашивающая сторона сама себе делает на блочном устройстве файловую систему, а сервер, отдающий блочное устройство, знать не знает про файловые системы на нём. Первый метод называют NAS (network attached storage), а второй — SAN (storage area network). Названия вообще указывают на другие признаки (SAN подразумевает выделенную сеть до хранилищ), но так сложилось, что NAS — это файлы, а SAN — это блочные устройства по сети. И хотя все (?) понимают, что это неправильные названия, чем дальше, тем больше они закрепляются.
        Читать дальше →
      • Считаем кур, пока их не заклевали

        • Перевод
        Эта история началась с короткой статьи в New York Times о Люке Робитейле, 13-летнем школьнике из Юлесса, штат Техас, который выиграл Raytheon Mathcounts National Competition, правильно ответив на следующий вопрос:
        В амбаре кружком сидят 100 кур. Каждая из кур случайным образом клюёт свою ближайшую соседку слева или справа. Каково ожидаемое количество кур, которых никто не клюнул?
        Судя по статье Times, Робитейлу потребовалось на ответ меньше секунды.

        На следующий день Джордан Элленберг твитнул такую задачу:

        Text of Ellenberg's tweet: 100 chicks in a circle. Each pecks R or L at random. Pecked chicks don't peck. Iterate until no two unpecked chicks adjacent. How many left?

        «100 кур сидят в круге. Каждая клюёт случайным образом R или L. Клюнутые куры никого не клюют. Итерации проводятся до тех пор, пока не останется двух соседних неклюнутых кур. Сколько кур осталось?»

        Мне не нужно умещать эту историю в 140 символов, поэтому я дополню вопрос Элленберга подробностями так, как я его понял. Исходная задача относилась к одной итерации синхронизированного случайного клевания, а теперь у нас есть несколько итераций. Во время одной итерации каждая курица случайным образом поворачивается влево или вправо и клюёт одну из своих соседок. Однако если курицу уже клюнули, она больше никогда не клюёт, даже её продолжают клевать. Если две соседние курицы клюют друг друга в одной итерации, обе они вылетают из игры на все последующие раунды. Если неклюнутая курица оказывается между двумя клюнутыми, её уже никогда не клюнут и поэтому она может клевать бесконечно. Вопрос заключается в том, какая часть кур выживет и станет «неуязвимыми»?

        Ниже представлены спойлеры, так что сейчас вы можете попробовать ответить на вопрос сами. Пока вы этим занимаетесь, я немного поговорю о курах и о риторике и семиотике математических «текстовых задач».
        Читать дальше →
      • Исландия: остров штормов



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

          Каждый раз как на новую планету.

          Когда мы взлетали из Кефлавика, из-за сильного ветра мимо окна пролетел один из конусов ограждения. Капитан самолёта тоже его заметил и сразу обратился к пассажирам:
          — Сейчас мы начнём взлетать. Будет трясти. Пожалуйста, кричите тише.
          Да, тут всё в духе Firefly.
          Читать дальше →
        • Где больше платят программистам. Сравниваем 22 страны

            Пару месяцев назад я постила сводную таблицу-сравнение под названием «Лучшая страна для программиста». В ней было 9 стран. Статья была горячо воспринята и в силу некоторых ошибок в ней, и в силу желания читателей получить сходные данные по другим странам. Я обещала доделать таблицу. Сказано – сделано.

            В этой статье 22 страны сравниваются по следующим параметрам:

            1. Зарплаты программистов
            2. Налоги
            3. Стоимость жизни (аренда жилья, коммунальные услуги, продукты, транспортные расходы)
            4. Развитость рынка IT
            5. Социальное обеспечение
            Читать дальше →
          • Не пельменем единым жив программист или история о том, как все успеть

            • Tutorial
            image

            По заявкам трудящихся и в связи с переносом — возвращаю пост, который многих порадовал. Надеюсь НЛО будет не против.

            На написание этого поста меня сподвиг замечательный пост «За что конкретно я ненавижу некоторых отдельно взятых маркетологов — или как айтишник по магазинам ходил». Сразу хочу извиниться за возможные опечатки — пишу с планшета, сидя в микроавтобусе и вытягивая сеть телефоном. Hacker's keyboard очень удобен для ssh-доступа, но большие тексты писать им не очень удобно.

            IT- специалисты — народ любопытный. То соберут на базе микроконтроллеров автоматическую систему полива и освещения для любимого фикуса, то пропатчат прошивку мультиварки для раздачи торрентов. Но, по непонятной и загадочной причине, когда дело доходит до еды, пресловутый принцип DIY дает сбой. И наш герой, способный часами переделывать кинескоп старого телевизора в Луч Смерти, идет на кухню утолить голод соевым текстуратом пополам с гидроцеллюлозой и «коллагеновым сырьем».

            В этом посте я хочу разрушить миф о том, что еда может быть либо быстрой и удобной, либо съедобной. Не секрет, что многим из нас приходится работать по 12 часов в сутки, что не способствует кулинарным подвигам с участием 28 приправ и перьев с зада дракона, омытых слезами единорога. Вы получите замечательную возможность посмотреть в глаза своей половинки на 8 марта после того, как она получит не контроллер для дистанционного управления шторой, а свежевыпеченный хлеб ручной работы рано утром. Если вам надоело есть синтетику — добро пожаловать под hubracut.
            Читать дальше →
          • Настройка BGP для обхода блокировок, версия 2, «не думать»

            • Tutorial

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


            Поэтому здесь я приведу сжатую пошаговую инструкцию, как обходить блокировки, если у вас есть:


            • линукс-машина (ubuntu) вне поля блокировок;
            • роутер Mikrotik, на который вы уже подняли VPN-туннель до этой линукс-машины;
            • настроенный NAT на этом туннеле, позволяющий вам работать через него;
            • желание.

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


            Те, кто уже всё сделал по мотивам предыдущего поста, в этом полезной информации не почерпнут.

            Читать дальше →
          • Разбираемся с артиклями: продвинутый уровень

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

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