• Как работает Git

    • Перевод
    В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

    Эссе концентрируется на структуре графа, на которой основан Git, и на том, как свойства этого графа определяют поведение Git. Изучая основы, вы строите своё представление на достоверной информации, а не на гипотезах, полученных из экспериментов с API. Правильная модель позволит вам лучше понять, что сделал Git, что он делает и что он собирается сделать.

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

    После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
    Читать дальше →
  • SaltStack: использование salt-ssh

    salt-sshВ этом посте я хотел бы поделиться своим опытом использования системы управления конфигурациями SaltStack, и, в частности, её применением в Masterless режиме при помощи salt-ssh компонента.


    По сути, salt-ssh является аналогом системы Ansible.


    salt-ssh '*-ec2.mydomain.com' test.ping

    Будут затронуты следующие темы:


    • Почему SaltStack, ключевые особенности
    • Базовые понятия SaltStack
    • Salt-ssh установка и использование
    Читать дальше →
  • Consul: Service Discovery это просто, или прощаемся с конфиг-файлами

    • Tutorial
    Что здесь интересного:

    image

    Обзорная статья о Consul (http://consul.io) — системе для поддержания обнаружения сервисов и распределенного хранилища ключ-значение. Кроме самого Consul, рассмотрим Consul-Template — средство для управления конфигурациями сервисов автоматически отражающее изменения в топологии. Статья будет интересна DevOps инженерам, системным архитекторам, тим-лидам проектов и прочим интересующимся микросервисными архитектурами.
    Читать дальше →
  • Пулы потоков: ускоряем NGINX в 9 и более раз

    • Перевод
    Как известно, для обработки соединений NGINX использует асинхронный событийный подход. Вместо того, чтобы выделять на каждый запрос отдельный поток или процесс (как это делают серверы с традиционной архитектурой), NGINX мультиплексирует обработку множества соединений и запросов в одном рабочем процессе. Для этого применяются сокеты в неблокирующем режиме и такие эффективные методы работы с событиями, как epoll и kqueue.

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

    Каждый процесс расходует память и каждое переключение между ними требует дополнительных циклов процессора, а также приводит к вымыванию L-кэшей

    У медали есть и обратная сторона. Главной проблемой асинхронного подхода, а лучше даже сказать «врагом» — являются блокирующие операции. И, к сожалению, многие авторы сторонних модулей, не понимая принципов функционирования NGINX, пытаются выполнять блокирующие операции в своих модулях. Такие операции способны полностью убить производительность NGINX и их следует избегать любой ценой.

    Но даже в текущей реализации NGINX не всегда возможно избежать блокировок. И для решения данной проблемы в NGINX версии 1.7.11 был представлен новый механизм «пулов потоков». Что это такое и как его применять разберем далее, а для начала познакомимся с нашим врагом в лицо.
    Читать дальше →
  • Энерджи-менеджмент (управление энергией)

    • Перевод
    От переводчика. Предлагаю вашему вниманию статью Скотта Янга с одноименного блога. Я решил оставить термин «энерджи-менеджмент» без перевода, поскольку существенной мыслью автора является противопоставление его тайм-менеджменту.
    Приятного чтения!


    Моё первое знакомство с коллегой-блоггером по имени Phil Gerbyshak состоялось, когда я опубликовал весьма подробный комментарий о том, что воспринимаю энерджи-менеджмент (управление энергией) и тайм-менеджмент (управление временем) как независимые друг от друга вещи, обе из которых следует использовать полноценно. Я также дал понять, что склонен считать подход тайм-менеджмента превосходящим энерджи-менеджмент по части пиковой производительности.

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

    К несчастью, в реальности это работает не совсем так. Хоть тщательная организация приоритетов и планирование времени производило ощутимый эффект, меня все еще грызло чувство, что мой реальный день никогда вполне не оправдывает те надежды, которые я возлагал на него предыдущей ночью. Казалось, какое-то особое влияние, какая-то сила, не поддающаяся осознанию, воздействует на мой предстоящий день. Сейчас я разобрался, что это была за сила. Это была энергия.
    Читать дальше →
  • Структуры данных: 2-3 куча (2-3 heap)

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

    В компьютерных науках для эффективной реализации очереди с приоритетом используются структуры в виде кучи.
    Читать дальше →
    • +34
    • 37,9k
    • 5
  • Федеральный закон № 243, или Тихая пенсионная реформа

      счастливая старость

      Началось все с того, что мне пришло письмо от знакомого. Я усомнился и пошел проверять. Уж больно неправдоподобным показалось написанное в нем.

      Однако факт остается фактом: «… с 1 января 2014 г. будет осуществлен т. н. страховой маневр — сокращены с 6 до 2% отчисления на формирование накопительной части пенсии. Высвободившиеся 4% пойдут на финансирование страховой части.»

      UPDATE! Весьма вероятно, что скоро сокращение будет не до двух процентов, а до нуля — смотрите обновление №3 в конце поста.

      Ну, кто там спрашивал, от чего отвлекают наше внимание?! Здесь был горький смайлик с кривой ухмылкой.

      Кому интересно / небезразлично, добро пожаловать под кат!
      Читать дальше →
    • Знаменитый футуролог Реймонд Курцвейл будет руководить разработками Google. Каждому — тело из наноботов к 2020 году?

        image

        Неделю назад (как упоминали на хабре), Google нанял на работу нового директора по инженерным разработкам, и им стал знаменитый футуролог Рэй Курцвейл (Ray Kurzweil).

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

        В своей новостной рассылке Курцвейл сказал:

        «В 1999 году я сказал, что через десять лет появятся такие технологии, как машины без водителя, и мобильные телефоны, которые смогут отвечать на ваши вопросы, но люди отвергали эти предсказания как нереалистичные. Через 10 лет Google продемонстрировал такие машины, а люди на самом деле задают вопросы своим телефонам на базе Android.

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

        Я безумно рад объединить усилия с Google в работе над некоторыми из самых сложных проблем информатики (computer science), чтобы предсказания на следующее десятилетие стали реальностью.»
        Читать дальше →
      • Устраиваемся программистом за рубежом

        Как часто вас посещала мысль о трудоустройстве за границей, будь то просто временная работа или переезд на постоянное место жительство? Какую страну выбрать? Возможно ли пройти собеседования за тысячи километров по телефону и получить джоб-офер? Как будет выглядеть переезд и жизнь в другой стране? В данной статье я бы хотел поделиться личным опытом и опытом многих моих друзей работающих за рубежом.
        Читать дальше →
      • How-to install gitosis (мануал с учётом проблем возникающих при установке) + интеграция в redmine

          gitosis — программное обеспечение для хостинга Git репозиториев


          image

          Установка:


          Появился скрипт авто установки пока тестируется
          sudo apt-get install python-setuptools git-core -y
          mkdir ~/src
          cd ~/src
          git clone git://github.com/sc0rp1us/gitosis-tools.git
          cd gitosis-tools/gitautoinstall
          sudo bash main

          Дальше следуем инструкциям скрипта


          Но вернёмся к статье
          Для начала установим необходимые компоненты для запуска gitosis:
          • Для debian & ubuntu выполните следующие команды от пользователя root

          apt-get update
          apt-get upgrade
          apt-get install python-setuptools git-core -y
          cd ~/src
          git clone git://eagain.net/gitosis.git
          cd gitosis
          python setup.py install



          Далее зайдём в учётную запись через которую будем управлять gitosis'om (назовём её gitadmin), выгрузим дистрибутив и установим его

          Настройка:


          Теперь нам нужно будет создать пользователя который будет владеть хранилищем(имя может быть любым, но я предпочитаю использовать просто git), к тому же на одном сервере может быть несколько аккаунтов владеющих хранилищами, такому аккаунту не нужен пароль, но необходим действующий shell иначе SSH откажется с ним работать:
          P.S. вы конечно можете использовать уже существующую учётную запись, но по соображениям безопасности, крайне не рекомендуется этого делать
          Читать дальше →