• Как правильно чистить лук, или Почему разработка ПО выходит из-под контроля

    • Перевод


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

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



    Как так случилось? Может, наняли плохого разработчика? Кто-то ошибся в планировании проекта? А вдруг сама идея проекта была ужасной?

    Возможно. Но часто проект бывает с самого начала обречен на провал из-за недопонимания одного важного момента.

    Мы предполагаем, что продукт определяется набором функций, записанных на листочке бумаги: иногда что-то добавляется, иногда убирается — но масштаб проекта всегда будто бы можно понять с одного взгляда.

    Это предположение — неверно.

    Проект — это не лист бумаги, не двумерный объект — у него есть глубина.

    Каждую функцию на поверхности можно раскрыть — и так слой за слоем. Будь у меня склонность к громким заголовкам, я бы сказал, что всякое приложение — это лук, и нужно уметь правильно его чистить. Не очень понятно? Тогда давайте я поясню, что имеется в виду, и расскажу, почему не получается раскрывать слои приложения без слёз.

    Переведено в Alconost
    Читать дальше →
  • Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу

      Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

      Существует два распространенных типа подключения DPI: пассивный и активный.

      Пассивный DPI

      Пассивный DPI — DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.
      Читать дальше →
    • Взламываем собеседования: по алгоритмам, по архитектуре, поведенческие и прочее

      • Перевод
      image

      Я только что закончил семь собеседований в компаниях Кремниевой долины. В конечном итоге я принял предложение разработки программного обеспечения в Facebook.

      Вот как я готовился к этим собеседованию и чему я научился на этом пути.

      Мой многолетний путь в Кремниевую долину


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

      Мне понравилась идея быть в центре всех инноваций в технической индустрии, а также ее промахов. Эта цель мотивировала меня. Это помогло мне сосредоточиться.

      Я оставил свое место в качестве ведущего инженера iOS в чудесной компании в Мельбурне и я вернулся обратно в мой родной город Перт, чтобы учиться. Тут я буду готовиться к переговорному процессу которое ждет меня в Кремниевой долине. Я знал, что это будет невероятно сложно и тяжело.

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

      Ради этой статьи я не буду вступать в эту дискуссию. Вместо этого я рассмотрю различные типы методов интервью с точки зрения кандидата. Я также сосредоточу внимание на том, что я узнал из этого процесса.
      Читать дальше →
    • 8 учебных проектов

      • Перевод
      «Мастер совершает больше ошибок, чем новичок — попыток»

      Предлагаем 8 вариантов проектов, которые можно сделать «по фану», дабы получить реальный опыт разработки.

      Проект 1. Клон Trello


      image


      Клон Trello от Indrek Lasn .

      Что вы освоите:

      • Организация маршрутов обработки запросов (Routing).
      • Drag and drop.
      • Как создавать новые объекты (доски, списки, карточки).
      • Обработка и проверка входных данных.
      • Со стороны клиента: как использовать локальное хранилище, как сохранять данные в локальном хранилище, как читать данные из локального хранилища.
      • Со стороны сервера: как использовать базы данных, как сохранять данных в базе, как читать данные из базы.

      Тут пример репозитория, сделанного на React+Redux.
      Читать дальше →
    • История переезда системного администратора в Германию. Часть первая: поиск работы и виза

        Всем привет.

        Я решил опубликовать историю своего переезда на работу в Германию, максимально подробно описав все стадии оного — от принятия решения начать поиск работы за рубежом до собственно переезда, поиска жилья и решения многочисленных вопросов на месте. Побудило меня к этому, во-первых, очень малое количество историй успешного поиска работы в Германии именно сисадмином (а в этой области своя специфика, отличная от программирования), а во-вторых — некоторая нестандартность моего случая. Обычно за границу уезжают либо в одиночку, либо с женой-детьми, я же уезжал вместе с сестрой, что добавило очень много нюансов к визовым вопросам.

        Это будет длинная история в двух частях, где я постараюсь максимально осветить все грабли, по которым пришлось пройти.
        Читать дальше →
      • Настройка системы WEB — тестирования на основе headless chromium-browser, chromedriver, nightwatch и node.js на Ubuntu

          image

          Предисловие


          Привет, Хабр! Данная задача возникла у меня с проблемой, которая заключалась в создании робота для авторизации в Instagram, который бы делал за меня лайки. Всю задачу не напишу, напишу только часть реализации в виде настройки необходимого инструментария на удаленном сервере.

          WEB — тестирование — это объемная и неоднозначная сфера, которая может заключаться в решении задач не только в плане тестирования WEB — приложений, но и, к примеру, в плане построения парсеров, роботов IoT и ботов работы с социальными сетями и все это используя только JavaScript!

          Возможно, что вам не нравится словосочетание «тестирование», возможно, отчасти, из-за того, что это словосочетание заключает в себе более интересные вещи, которые, к примеру, позволят нам написать бота, способного авторизироваться в Instagram, Facebook и совершать там ряд действий от нашего лица и в одно и то же время нудно заниматься наблюдением, как выполняется наш фронтенд, но тестирование имеет смысл и уже стандартизировано сообществом W3C и продолжает развиваться.
          Читать дальше →
        • 27 бесплатных сервисов для создания визуального контента без дизайнера

          • Перевод
          Лера Матвиишина, маркетолог хостинговой компании HOSTiQ, специально для блога Нетологии адаптировала статью Andrew Tate c ресурса AdEspresso и выбрала из подборки 27 бесплатных инструментов, которые помогут создавать визуальный контент без помощи дизайнера.

          К 2018 году 84% маркетинговых материалов будут визуальными. Благодаря визуальному контенту любая компания сможет интересно общаться с пользователями и отстроиться от конкурентов.
          Читать дальше →
          • +14
          • 11,7k
          • 6
        • Как искать IT вакансии в ЕС

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

            У меня была такая мысль — “Вот сейчас я сделаю так, как должно быть”. Так появился мой проект. Так появляются тысячи проектов, созданных программистами.

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

            А главная задача — это сделать поиск работы простым и полезным занятием.
            Читать дальше →
          • 35 советов для тех, кто собирается на техническую конференцию

            • Перевод

            Эти советы будут полезны по большей части для тех, кто впервые посещает IT-конференции — но и остальные могут найти здесь ценные подсказки. Как получить максимальную пользу от ивента — читайте в переводе от Alconost.
            Читать дальше →
          • 10 основ брендинга для начинающих предпринимателей

            • Перевод
            image

            Сколько у вас друзей, которые сейчас запускают свой бизнес? Shark Tank — одно из самых популярных шоу на кабельном на данный момент (американская телепередача, в которой участвуют бизнесмены (стартаперы), которым нужны инвестиции в свой бизнес), оно привлекает большое количество людей, заинтересованных в бизнесе, дизайне и фирменной символике. В то время как одни рьяные «бред-приниматели» (“want-repreneurs”) погружаются в идею вокруг основной идеи, остальные мгновенно переключают разговор на то, как их идея будет выглядеть.

            • Как будет выглядеть логотип? Можно ли создать собственный логотип самому или стоит нанять дизайнера?
            Читать дальше →