• Пакеты и пакетные менеджеры для k8s

      Все мы пользуемся каким-либо видом пакетных менеджеров, включая уборщицу тетю Галю, у которой в кармане прямо сейчас обновляется айфон. Но общего соглашения о функциях пакетных менеджеров нет, и стандартные для ОС rpm и dpkg, и системы сборки называют пакетными менеджерами. Предлагаем поразмышлять на тему их функций — что это такое и для чего они нужны в современном мире. А потом будем копать в сторону Kubernetes и внимательно рассмотрим Helm с точки зрения этих функций.


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

      Помог нам в этом Иван Глушков (gli) своим докладом на РИТ++, видео и текстовая версия этого подробного и обстоятельного выступления ниже.

      Видеозаписи этого и других выступлений по DevOps на РИТ++ опубликованы и открыты для свободного просмотра на нашем youtube-канале — заходите в поисках ответов на свои рабочие вопросы.
      Читать дальше →
      • +22
      • 3.5k
      • 2
    • Каково это — быть разработчиком в России, когда тебе сорок

        Привет всем, я — сорокалетний программист-самоучка, а это моя история.

        Пару недель назад я наткнулся на график распределения людей, интересующихся технологиями, ИТ и программированием. И он заставил меня задуматься о моей карьере.



        Через каких-то 20 лет мне стукнет 60. И вероятность того, что я еще смогу заниматься тем, для чего был создан, составляет очень крошечную величину. Эти размышления привели меня туда, откуда все начиналось.

        Я дебютировал в роли разработчика программного обеспечения в 1990 году, через год после того, как мне на 14-тилетие родители подарили ПЭВМ «Микроша».
        Читать дальше →
      • Как официально принимать валютные платежи из-за рубежа в России (ИП)

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

        Наконец-то решил оформить всё это в пост, чтобы не писать каждый раз одно и то же. Сразу скажу, что ничего сложного тут нет – я сам разобрался в этом и оформил ИП примерно за пару недель, раньше ничего об этом не зная.
        По шагам...
      • История 5-го места на Russian AI Cup 2015

          Игра #418086

          Сначала этот текст был написан в виде комментария к теме победителя данного конкурса. Но в итоге объем текста стал таким большим, что было решено выделить его в отдельную тему. Так что предполагается, что читатель в курсе о конкурсе и прочёл тему победителя. Также можете почитать историю 30-го места.

          Сразу дам ссылку на репозиторий с исходным кодом — помимо непосредственно исходников там же есть вся история коммитов. Например, интересным может показаться время, в которое был совершён коммит с комментарием «спать пора».

          В целом, сложилось такое ощущение, что у большинства лидеров были примерно одинаковые основные идеи для итоговой стратегии:
          • Поиск пути по карте между вейпоинтами
          • Симуляция движения, коллизий и прочей физики
          • Перебор различных действий, которые приводят к разным траекториям из текущей позиции в будущее
          • Выбор лучшего действия или траектории на основе какой-то функции оценки

          Так что в данной теме я расскажу чуть подробнее о том, как эти идеи были реализованы в моём случае.
          Читать дальше →
          • +41
          • 15.6k
          • 1
        • История победы на ежегодном соревновании Russian AI Cup 2015

          Хочу рассказать о своем участии и победе в ежегодном соревновании по программированию ИИ «Russian AI Cup 2015» от Mail.Ru Group. Посмотреть подробные правила соревнования и записи игры желающие могут на сайте соревнования russianaicup.ru.

          image

          В этом году соревнование было организовано на совершенно новом уровне. Изменения произошли как в масштабности игрового мира, в котором действует ИИ, так и на сайте соревнования. Благодаря трехмерной визуализации, игры смотрелись гораздо увлекательнее. По зрелищности, на мой взгляд, соревнование значительно превзошло прошлогодний хоккей, и «солдатиков» 2013 года.

          Участнику предлагалось написать ИИ для управления автомобилем в гонках на выживание. Как и в прошлом году, задача была «с физикой». Но на это раз исходники «физического движка» были открыты. Еще, в отличие от прошлого года, на этот раз все случайные явления в игровом мире были наглядны — случайная карта, случайно расставленные бонусы. Сразу было видно — когда удача на твоей стороне, а когда она от тебя отвернулась. В прошлогоднем хоккее, даже наблюдая за игрой значительно отличающихся по силе противников, было трудно понять произошел выигрыш благодаря случаю или мастерству. Думаю, это положительно сказалось на зрелищности соревнования.

          Краткое описание правил


          Цель — проехать 2 круга по замкнутой трассе быстрее всех. Точнее надо набрать больше всех очков, но приехать первым — это основной способ заработать очки. Еще очки дают за сбор бонусов по дороге и нанесение урона противникам. Трасса, как конструктор, собирается из квадратных «тайлов», это прямолинейные участки трассы, углы (поворот трассы на 90 градусов), или перекрестки (Т образные и обычные). Нужно ехать по ключевым точкам («тайлам») трассы в определенном порядке – иногда приходится делать петли, иногда вообще ехать назад. Еще у машинок есть возможность разливать за собой лужи мазута, стрелять друг в друга специальными снарядами (шины и шайбы), и использовать особый ускоритель «нитро». Заряды для всех этих приспособлений ограничены, и пополняются подбиранием случайно разбросанных по карте бонусов.

          Расскажу, как устроен мой ИИ, и благодаря чему (как я думаю) удалось победить.
          Читать дальше →
        • Тонкий клиент HP в качестве домашнего роутера и файл-сервера

            С момента публикации на Geektimes первой части статьи, кое-что изменилось. Я обновил тонкий клиент на HP t610 Plus и перешел на CentOS 7. Поэтому, публикую эту статью не как продолжение предыдущей, а как новую.

            Читать дальше →
          • MOOC курсы по робототехнике

            В ближайшие годы весь рынок труда изменится неузнаваемо и безвозвратно.

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

            Например, в сельском хозяйстве мобильные роботы смогут дозировано поливать или удобрять конкретное растение, визуально анализируя его состояние, удалить каждый сорняк на поле и работать 24 часа 365 суток в году с перерывами на заправку и техобслуживание.

            Внедрение робототехники повысит производительность труда в этих отраслях в разы, кратно сократив затраты на ведение бизнеса и вызовет существенные сокращения низкоквалифицированного персонала.

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

            Единственная индустрия, которая по результатам окажется «в плюсе», это разработка, производство, программирование и обслуживание роботов.

            Открытые конкурсы DARPA Robotic Challenge, как DARPA Grand Challenge и DARPA Urban Challenge ранее, явно демонстрируют куда и в каком темпе движется современная робототехника.

            В заметке я хотел бы кратко описать доступные сейчас курсы по робототехнике, размещенные на MOOC платформах.

            Итак, в порядке возрастания сложности.
            Читать дальше →
            • +12
            • 17.9k
            • 1
          • Большие потоки трафика и управление прерываниями в Linux

              В этой заметке я опишу методы увеличения производительности линуксового маршрутизатора. Для меня эта тема стала актуальна, когда проходящий сетевой трафик через один линуксовый маршрутизатор стал достаточно высоким (>150 Мбит/с, > 50 Kpps). Маршрутизатор помимо роутинга еще занимается шейпированием и выступает в качестве файрволла.
              Читать дальше →
            • Rust 1.0: текущее состояние и окончательное расписание выхода версий

              • Translation
              Rust logo
              Прошло пять недель с тех пор как вышла альфа версия Rust 1.0! До того как выйдет следующая предварительная версия Rust, мы хотели бы рассказать о текущем состоянии языка и о том, что мы еще намерены сделать по пути к стабильной версии 1.0.

              TL;DR: Rust 1.0 выйдет 15 мая 2015 года
              Читать дальше →
              • +56
              • 18.1k
              • 7
            • Обзор видеорегистратора Каркам Q2

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



                Возможно, моя статья поможет вам определиться с выбором такого устройства, как видеорегистратор — устройство, которое в нашей Раше должно быть в каждом транспортном средстве.

                Читать дальше →
              • Алгоритм + толпа — этого недостаточно

                • Translation
                В последнее десятилетие онлайновым миром управляли две родственные силы: Толпа и Алгоритм. Коллективные «пользователи» интернета (Толпа) создают контент, кликают и голосуют, в то время как математические уравнения привносят масштабируемость и возможность поиска по этому огромному массиву данных (Алгоритм).



                Словно луна над океаном, взаимодействие этих двух сил создаёт волны популярности (и забвения) в интернете. Информация более доступна, полезна и эгалитарна, чем когда бы то ни было.

                Но со временем (по крайней мере, мне) стали видны слабости системы «алгоритм+ краудсорсинг». Следующая революция кажется неотвратимой.
                Читать дальше →
                • +28
                • 1.1k
                • 9
              • Проект Dronecode: свободная платформа для беспилотных аппаратов



                  Организация Linux Foundation взяла под своё крыло проект Dronecode, цель которого — создание свободной и открытой платформы для беспилотных летательных аппаратов (БПЛА).

                  Ключевым участником является компания 3D Robotics, которая предоставила в общественное пользование платформу APM Autopilot Suite для управления БПЛА (платформа раньше была известна как ArduPilot).

                  Кроме того, в Dronecode включили разработки ещё одного проекта PX4, который ведётся в техническом университете Цюриха.
                  Читать дальше →
                • История создания iOS игры о быстрой реакции и стальных нервах

                  В начале апреля я уволился с работы. От переизбытка свободного времени я решил написать игру для iOS. Игра про бедного кубика, которого постоянно преследуют другие геометрические фигуры. Настоящая драма. Кубику нужно продержаться как можно дольше без столкновений. Прототип игры был написан примерно за 8 часов. Всего разработка игры заняла 3,5 месяца. Чем я занимался все это время можно узнать ниже.


                  Читать дальше →
                • 5 игр для развития логики и обучения детей программированию

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

                    На тему «Зачем это надо?» на Хабре была хорошая инфографика. А здесь я приведу краткий обзор приложений, которые счёл достойными внимания.

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

                    Итак, начнём.

                    Kodable




                    Платформа: iPad
                    Русский язык: нет

                    Для малышей от 5 лет. «Колобку» нужно проехать по лабиринту к выходу, собрав монеты.
                    При всей своей простоте, игра обучает ветвлениям, циклам, функциям и отладке.
                    Ещё больше игр
                  • Видео курс практической робототехники на Lego NXT

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

                      Краткое содержание курса можно найти в статьях «Математическая модель двигателя Lego NXT» и «Математическая модель Lego Segway».
                      Курс ознакомит вас с основами механики Лагранжа, матричного представления систем, основными приемами теории автоматического управления. Я постарался не обращаться к сложным математическим приемам, поэтому для прохождения курса должно хватить школьных знаний.
                      Содержание курса
                      • +25
                      • 12.1k
                      • 7
                    • Пишем HTML5-игру за 20 минут, или введение в Phaser framework

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

                      Введение


                      Phaser — это движок для разработки мобильных и десктопных HTML5 игр, базирующийся на библиотеке PIXI.js. Поддерживает рендеринг в Canvas и WebGL, анимированные спрайты, частицы, аудио, разные способы ввода и физику объектов. Исходники доступны как для просмотра, так и для свободной модификации. Он создан Ричардом Дейви (Richard Davey), известному благодаря активному участию в сообществе программистов, использующих Flixel framework. Ричард не скрывает, что вдохновлялся Фликселем, поэтому некоторые вещи в Фазере будут знакомы опытным флешерам. Первая версия нового движка вышла 13 сентября этого года, сейчас ведется не только активное развитие библиотеки, но и написание документации, поэтому в данный момент уроков по ней, мягко говоря, немного. Что, по моему скромному мнению, следует исправлять, и прямо сейчас.
                      Читать дальше →
                    • Анализ статистики во free-to-play играх: инструменты аналитика

                        Ключ к успеху при разработке free-to-play игр — анализ поведения игроков и постоянный тюнинг игрового функционала на основе статистики. Собрать статистику — это пол дела. Но как превратить гору сырых данных в информацию?

                        В моей прошлой статье я перечислила основные показатели, по которым можно отслеживать успешность игры. Во второй части цикла я сделаю обзор основных инструментов, которые помогут превратить данные в руководство к действию.
                        Читать дальше →
                      • Kickstrap — форк Twitter Bootstrap с темами и бонусами

                          image
                          Kickstrap это то, что будет если соединить Twitter Bootstrap, HTML5 Boilerplate, значки от IcoMoon и Font Awesome, добавить проверенные jQuery плагины Chosen и jGrowl, включить поддержку разных цветовых схем и тем оформления Bootswatch, дополнительную CSS сетку и вменяемую поддержку ранних версий IE.
                          Читать дальше →
                        • Упорядочивание аудиотеки. Практические советы

                            Введение


                            Вообще, я во многих вопросах перфекционист. Если есть — нужно, чтобы было безупречно (иногда это сказывается отрицательно, но сейчас не об этом). Свою аудиоколлекцию я тоже привык держать в чистоте. Но со временем, при пополнении стало накапливаться много мелких неприятностей. Вот некоторые из них:
                            • Разные шаблоны для имен файлов: 4 — Звезда | 04 — Звезда | 04. Звезда
                            • Разные имена исполнителей в тегах: Чиж & Co | Чиж и Ко. | Mylene Farmer | Mylène Farmer
                            • Не указаны исполнители альбома (что приводит к полному бардаку в альбомах-компиляциях)
                            • Не совсем корректная информация об альбомах, состоящих из нескольких дисков
                            • Путаница в годах изданий и переизданий (ремастеринг, и т.д.)
                            Ну и прочие мелочи.
                            Часто у пользователей коллекции составляют несколько тысяч, а иногда — несколько десятков тысяч записей. Так что, перелопачивать все вручную — долго и неэффективно.

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

                            Итак, начнем...
                          • Tsung: Нагрузочное тестирование Web-приложений


                              Tsung — это распределенная система нагрузочного тестирования, написанная на Erlang'е. Заявлена поддержка HTTP, WebDAV, SOAP, PostgreSQL, MySQL, LDAP and XMPP/Jabber. В этой статье я опишу как протестировать обычный web сайт на нагрузку.
                              Читать дальше