• Маленький ноутбук для системного администратора



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

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

    Не найдя ничего достойного, я задумался о том, каким-бы получился ноутбук, если-бы его разрабатывали, думая не о маркетинге, а о потребностях реальных пользователей. Например, системных администраторов. Раздумий набралось на целую статью.
    Читать дальше →
  • Что общего у собеседования кодера и игры «Змейка»?

    • Перевод

    Если вы родились в 80-х или 90-х, то наверняка слышали о Snake. То есть, скорее всего, вы потратили безумное количество времени на своём Nokia 3310, выращивая огромную змею на мелком экранчике. Что ещё мы помним о телефонах Nokia?

    Их неразряжающийся аккумулятор, правда? Как такой «примитивный» телефон выдерживал долгие часы игры в «Змейку» без разрядки аккумулятора?

    Короткий (и неполный) ответ: всё дело в методе скользящего окна.

    Мы бы с радостью написали целую статью о Snake, но в этом посте мы всё-таки рассмотрим менее зрелищный, но тем не менее очень важный метод, и ответим на вопросы типа:

    • Почему мы и другие программисты считаем его фундаментальным алгоритмом?
    • Почему он так часто используется на технических собеседованиях?
    • Как он использовался в Snake и других «реальных» областях применения?
    • На какие самые популярные вопросы собеседований можно (лучше) ответить с помощью метода скользящего окна?

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

    NB: Если вас волнует только «Змейка» (и мы вас вполне понимаем), то можете перейти к самому концу поста.
    Читать дальше →
  • Полное практическое руководство по Docker: с нуля до кластера на AWS

    • Перевод



    Содержание



    Вопросы и ответы


    Что такое Докер?


    Определение Докера в Википедии звучит так:


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



    Ого! Как много информации.

    Читать дальше →
  • Таких не берут в программисты: «реверс-инжиниринг» личности

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

      На эту тему много рассуждают, дают рецепты. Из-за обилия таких диалогов среди начинающих, или даже опытных специалистов, сложились стереотипы об «избранности» разработчиков, а в некоторых кругах сформировался целый культ. Понятно, что разработчикам выгодно поддерживать такое отношение к себе: не всякий кодер долетит до середины глубокого дебага. Развивая теорию избранности, некоторые разработчики даже пришли к выводу, что «кодеры» не достойны носить гордое звание разработчика, поставив их чуть ли не в один ряд с операторами ЭВМ.

      Из-за этого культа многие специалисты не раскрывают свой потенциал, стремясь стать именно программистами, а не тестировщиками, проект-менеджерами или специалистами поддержки. Из-за подобного максимализма нередко юные специалисты вообще уходят из ИТ-сферы, однажды потерпев крах на позиции разработчика ПО.

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

      • Tutorial
      Рассказы про сыры по 500 гривен, luxury-ланчи и ночные тусовки как составляющие жизни типичного представителя IT-индустрии сильно приукрашены. Скорее стоит говорить о кофе на «МакДрайве», поздних ужинах и непрекращающемся потоке дедлайнов и всевозможных семейно-бытовых забот. Если на перекус время выкроить еще удается, то на спорт остается всего ничего: считанные минуты, 50 % желания и 25 % сил. Как результат – проблемы со здоровьем, которые негативно влияют не только на рабочий процесс, но и на качество жизни в целом.


      Читать дальше →
    • Если бы программисты делали блины (по кошерным методологиям)

        Waterfall


        Заказчик сообщает, что хочет блинов. Компания выделяет проджект менеджера, который говорит: «Говно вопрос! Наша компания специализируется по производству блинов! Мы сделаем вам офигенских блинов за две тысячи человеко-часов!»

        Далее начинается аналитическая фаза. Бизнес-аналитик берет эксперта, и они денно и нощно заседают в офисе заказчика, потребляют халявный кофе и пончики, а также тщательно записывают бизнес-требования вплоть до толщины блинной корочки с точностью до микрона. Документы записываются на фирменных бланках компании, после чего заверяются подписью директора компании-заказчика, директора компании-исполнителя, стороннего консультанта по блинному производству, а также печатью Папы Римского. После окончания аналитической фазы на проект остается 1000 часов.
        Читать дальше →
      • Как работает реляционная БД

        • Перевод
        • Tutorial
        Реляционные базы данных (РБД) используются повсюду. Они бывают самых разных видов, от маленьких и полезных SQLite до мощных Teradata. Но в то же время существует очень немного статей, объясняющих принцип действия и устройство реляционных баз данных. Да и те, что есть — довольно поверхностные, без особых подробностей. Зато по более «модным» направлениям (большие данные, NoSQL или JS) написано гораздо больше статей, причём куда более глубоких. Вероятно, такая ситуация сложилась из-за того, что реляционные БД — вещь «старая» и слишком скучная, чтобы разбирать её вне университетских программ, исследовательских работ и книг.

        На самом деле, мало кто действительно понимает, как работают реляционные БД. А многие разработчики очень не любят, когда они чего-то не понимают. Если реляционные БД используют порядка 40 лет, значит тому есть причина. РБД — штука очень интересная, поскольку в ее основе лежат полезные и широко используемые понятия. Если вы хотели бы разобраться в том, как работают РБД, то эта статья для вас.
        Читать дальше →
      • Gradle: управляя зависимостями

        • Tutorial
        Управление зависимостями – одна из наиболее важных функций в арсенале систем сборки. С приходом Gradle в качестве основной системы сборки Android-проектов в части управления зависимостями произошёл существенный сдвиг, закончилась эпоха ручного копирования JAR-файлов и долгих танцев с бубном вокруг сбоящих конфигураций проекта.



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

        Внимание много текста и изображений
      • Как правильно внести свою лепту в Open Source проект: простые подсказки

          Open Source проекты с каждым днём набирают всё большие обороты, появляются новые, активно развиваются популярные.
          Такие проекты как Bootstrap, Angular.js, Elasticsearch, Symfony Framework, Swift и многие другие привлекают новых разработчиков, их сообщество растёт. Всё это даёт огромный рост проектам, а самим разработчикам интересно поучаствовать в разработке чего-то, чем пользуется весь мир.

          Я, как и многие другие программисты, не устоял и также время от времени участвую в разработке Open Source проектов, в основном на PHP. Но когда я начинал, я столкнулся с проблемой — я не знал, как правильно организовать процесс «контрибьютинга», с чего начать, как сделать так, чтобы мой Pull Request рассмотрели и т.д.

          Всем начинающим «контрибьютерам», которые столкнулись с похожим проблемами, добро пожаловать под кат.


          Читать дальше →
        • Антилуддизм, зачем утюгу ардуина

          Это ответ на пост habrahabr.ru/post/241407 «Система для «Своей Игры»» (в коммент он не влез) — схема включения только одного из нескольких каналов нагрузки с блокирокой остальных при однократном нажатии на соответствующую каналу кнопку.

          Вот моя версия того же самого, но без компьютера с виндой, ардуины, и даже без микроконтроллера. И вообще без микросхем. И даже без транзисторов. Количество каналов неограниченно. 5 простых дешёвых деталей на канал.
          а-а-АП
          (Схему сюда рисовал дольше, чем паял)
          Читать дальше →
        • Способы отладки ПО микроконтроллеров в электроприводе

            image

            Как отлаживают программы микроконтроллеров? Берется JTAG, осциллограф – пара дней/недель и программа отлажена. Таким будет типичный ответ, и в большинстве случаев он будет правильным… Но не всегда. Микроконтроллеры решают очень разные задачи, и в этой статье мы рассмотрим, что делать, если нужно разработать громоздкое ПО низкоуровневого управления каким-либо силовым электрооборудованием, например, преобразователями частоты для электродвигателей, DC/DC преобразователями заряда АКБ для поезда, корректорами мощности, сервоприводами и т.п. Оборудованием, где протекают килоамперы и ШИМят киловольты, где на счету каждая коммутация IGBT ключей инвертора, где время реакции микроконтроллера на нештатную ситуацию измеряется в микросекундах, а само оборудование в герметичных корпусах устанавливается и эксплуатируется где-нибудь на заводах Якутии. Если вы хотите узнать, какие особенности это накладывает на способы отладки – добро пожаловать под кат.
            Читать дальше →
          • Прокачиваем\реанимируем электрическую зубную щетку Braun (Oral-b)

              Еще пару-тройку лет назад попробовав электрическую зубную щетку познал Дзен.
              Как в песне — вкалывают роботы, а не человек (с). Зубного налета в разы меньше, длительность процедуры регулирует — не профилонишь.
              Выбор мой тогда пал на Braun Prof 500, начальная в проф линейке, без наворотов.
              Потом у них случилась любовь с Oral-B и теперь эти щетки идут под их брендом.
              Внутри несъемный Ni-MH элемент, тут производитель явно заложил «запрограммированное старение». Эффект памяти спустя три года привел к ожидаемому — заряда еле хватает на одну чистку.
              Но как выяснилось, для восстановления подойдет обычный АА ni-mh аккумулятор.

              Читать дальше →
            • А то распоясались

                В последнее время поступает много жалоб на скорость в интернете. Причина, к сожалению, проста. Некоторые люди не уважают окружающих и единолично вероломно утилизируют весь канал в личных целях. Необходимо законодательно ограничить скорость интернета сверху 13 Мбит/с. Этого более чем достаточно для абсолютно всех нужд. А если некоторые подозрительные личности будут высказывать опасения, что такое ограничение им мешает, то к ним появятся вопросы.

                Современный гражданин плохо умеет сосредотачиваться на каком-либо деле, причин этому множество. Одной из них является распространение соцсетей, интернет ящиков, мессенджеров. Хорошим решением будет ограничение количества аккаунтов шестью. Дело в том, что редкий человек может держать в голове больше 6 объектов и не испытывать при этом стресса. Учет, то есть регистрацию в различных сервисах, предлагается осуществлять через госуслуги.
                Читать дальше →
              • Система защиты от протечек



                Хочу поделиться опытом создания устройства, которое было не только интересно реализовать, но и может причинить пользу. Возможно кто-то скажет, что можно было поступить как-то попроще, но это не наш путь…
                Читать дальше →
              • Политик попробовал воспользоваться законом о «праве на забвение», который еще не вступил в силу

                  Несмотря на то, что так называемый «закон о праве на забвение» еще не вступил в силу, уже появились люди, которые пытаются использовать положения закона в своих интересах. Так, директор НП «Информационная культура» Иван Бегтин в своем Фейсбуке сообщил о том, что получен запрос на удаление со своего сайта «неактуальной информации» от одного из бывших кандидатов в депутаты, пишет Tjournal. При этом на ресурсе, по словам Бегтина, опубликована только исследовательская база по составу и кандидатам думы 2011 года созыва.

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

                    Книги.
                    Я считаю, что важнейшим инструментом получения скилов системного администрирования являются именно они — книги.
                    Нет специальных факультетов, обучающих «админству» — каждый постигает это самостоятельно. Путем проб, ошибок и боли, потере важных данных различных злоключений.
                    В начале пути сложно определиться, что же нужно прочесть — ведь массив информации столь огромен!
                    В данном посте я хочу собрать наиболее важные и значимые труды для системных администраторов.
                    Уклон будет на *nix админство, но, надеюсь тема окажется небезынтересной и для Windows коллег и в комметариях они заполнят мои пробелы.
                    Пост субьективен и отражает лишь мой собственный опыт — я раскажу о книгах, которые помогли моему становлению.

                    Читать дальше →
                  • 50+ лучших дополнений к Bootstrap



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

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

                      • Tutorial
                      Маленькая зарисовка на тему того, как разработать высокоуровневую архитектуру приложения.

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

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

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

                      Теперь нарисуйте под каждым нарисованным сверху субъектом прямоугольник с названием UI или API — это интерфейсы, к которым будет обращаться пользователь или внешняя управляющая система. Иногда UI тоже может обращаться к API. Объедините все прямоугольники с UI одним контуром и обзовите слоем представления. Объедините все прямоугольники с API и обзовите слоем сервисов.

                      Для систем, нарисованных снизу, укажите компоненты, которые будут отвечать за доступ к этим системам. Объедините все эти компоненты одним контуром и обзовите слоем доступа к данным.

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

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

                      Вы получили логическую архитектуру приложения. Разбросайте слои по серверам — получите физическую архитектуру.

                      Теперь вам остаётся детально проработать каждый маленький квадратик.

                      Маленький практический пример запрячу под кат.
                      Читать дальше →
                    • О медленном программировании

                      • Перевод
                      От переводчика: при разработке Web-payment.ru, сайта с мониторингом обменников и множеством разделов о платежных системах, я на интуитивном уровне использовал принципы, описанные в этой статье. Подсознательно я их знал, но не мог сформулировать. Предлагаю вам ознакомиться с интересным подходом, которым поделился опытный программист, автор многих книг Jeffrey Ventrella.
                      Мой папа часто говорил мне: «Помедленнее, сынок, ты делаешь дело слишком быстро».

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

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

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

                      Паттерны, как основа самообучения


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

                      Принцип действия этой системы самообучения довольно тривиален: все, что случается больше 1 раза — является кандидатом на то, чтобы стать паттерном. Все последующие паттерны, как правило, основываются на базе уже имеющихся паттернов. Так, начинающий горнолыжник будет обучаться езде на лыжах с помощью уже имеющейся у него информации о координации тела в пространстве, которую он мог получить либо научившись до этого кататься на велосипеде, либо же, например, научившись до этого кататься на коньках. Если же не было ни велосипеда, ни коньков, и вообще ничего, то обучение будет проходить на основе имеющейся у человека добытой опытным путем информации о прогулках в парке, или беге по кругу стадиона во время уроков физкультуры. Очевидно, что в таком случае обучение будет проходить значительно медленнее, чем если бы у человека уже был опыт занятий, максимально приближенных к спускам на горных лыжах. Конечно, бывают исключения, когда человек, например, заучил неправильный удар, который он отрабатывал дома годами, а потом попал к тренеру, который хватается за голову и говорит «лучше б ты пришел совсем без навыков (неправильных паттернов), чтоб я с нуля из тебя вылепил бойца». Здесь важно понимать, что такого рода дефективный паттерн, или антипаттерн будет даже мешать скорейшему обучению человека. В данном конкретном случае, модель «чем больше паттернов, тем лучше» — не работает.
                      Но в целом, если у человека есть толика сознательности и он соблюдает диету на правильные паттерны, то количество этих освоенных паттернов в его голове неуклонно будет повышать скорость обучения новым паттернам — человек будет схватывать на лету.
                      Читать дальше →