• Особенности работы в интернациональной команде. Япония



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

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


        Недавно у нас на GeekBrains стартовал свежий курс "Профессия: разработчик C++". Программа позволит всего за 9 месяцев освоить этот непростой язык и стать специалистом уровня junior. А это непростая задача. К примеру, в школах и ВУЗах на изучение С++ уходит минимум 2 года, чаще 4-5. Чтобы показать из чего состоит этот нелегкий путь, мы схематично описали для вас основные этапы.
        Читать дальше →
      • Основы Kubernetes

        В этой публикации я хотел рассказать об интересной, но незаслуженно мало описанной на Хабре, системе управления контейнерами Kubernetes.

        image

        Что такое Kubernetes?


        Kubernetes является проектом с открытым исходным кодом, предназначенным для управления кластером контейнеров Linux как единой системой. Kubernetes управляет и запускает контейнеры Docker на большом количестве хостов, а так же обеспечивает совместное размещение и репликацию большого количества контейнеров. Проект был начат Google и теперь поддерживается многими компаниями, среди которых Microsoft, RedHat, IBM и Docker.
        Читать дальше →
      • Отчёт с митапа «Go в продакшене»: видео, фото, презентации



          Всем привет! 23 сентября мы отлично провели время в московском офисе Mail.Ru Group на митапе сообщества Go в продакшене. Собрали для вас фото, видео и презентации.
          Читать дальше →
        • Человеческая цена Черной пятницы

          • Перевод


          В Америке сейчас самый разгар Черной пятницы, и по этому поводу Vox взяла интервью у бывшего менеджера Amazon – о том, что происходит в самом большом интернет-магазине во время праздничной горячки ноября-декабря. Что испытывают рабочие, отправляющие по 300 000 заказов со склада за день, и почему у них потом на всю жизнь меняется отношение к Рождеству.

          Читать дальше →
        • Использование ClickHouse в VK, или Зачем мы написали KittenHouse

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

            На тот момент у нас было 2 способа хранения и обработки логов — наш собственный logs engine и rsyslog, которые мы использовали параллельно. Стали рассматривать другие варианты и поняли, что нам вполне подходит ClickHouse от Яндекса — решили его внедрять.

            В этой статье я расскажу о том, как мы начали использовать ClickHouse ВКонтакте, на какие грабли при этом наступили, и что такое KittenHouse и LightHouse. Оба продукта выложены в open-source, ссылки в конце статьи.
            Читать дальше →
          • Микросервисы на Go с помощью Go kit: Введение

            • Перевод

            В этой статье я опишу использование Go kit, набора инструментов и библиотек для создания микросервисов на Go. Эта статья — введение в Go kit. Первая часть в моем блоге, исходный код примеров доступен здесь.

            Читать дальше →
            • +18
            • 8,4k
            • 7
          • 10 неочевидных преимуществ использования Rust

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



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


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

              Читать дальше →
            • Триумф и трагедия «Бурана»



                Ровно 30 лет назад с космодрома Байконур на ракете-носителе «Энергия» в свой единственный полёт отправился корабль «Буран». В полностью автоматическом режиме он совершил 2 витка вокруг Земли и успешно приземлился спустя 205 минут. Это стало несомненным триумфом советской космонавтики, впервые в мире сумевшей посадить многоразовый космоплан в автоматическом режиме на землю.

                Но спустя всего год работы по проекту были приостановлены, а в 1993 году — и вовсе прекращены. В 2002 году единственный летавший в космос «Буран» был навсегда погребён под обломками цеха в котором хранился. Об предпосылках к появлению проекта «Энергия-Буран», его ходе и печальном завершении, пойдёт сегодня речь.
                Читать дальше →
              • Последний из могикан. Самый старый СЕО в Fortune 500 ставит всё на падение смартфонов



                  Человек старой закалки, глава Victoria's Secret, верит в одну довольно радикальную идею. Покупки со смартфонов упадут. И он настолько уверен, что это неизбежно, что ставит на это весь свой бизнес ценой $10 млрд.

                  Читать дальше →
                • Программистом к ирландским букмекерам

                  Привет, Хабр!


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


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


                  image


                  Я работаю разработчиком программного обеспечения в международной букмекерской компании со штаб-квартирой в Дублине. Если чуть точнее, пишу на Scala/Akka, хотя планирую не ограничивать себя только этим. Разрабатываем кластерные отказоустойчивые высоконагруженные приложения.


                  Подробности ниже.

                  Читать дальше →
                • Снова про собеседования, но в заморских странах


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

                    И что же?
                  • Как мы перевели 10 миллионов строк кода C++ на стандарт C++14 (а потом и на C++17)

                      Некоторое время назад (осенью 2016), при разработке очередной версии технологической платформы 1С:Предприятие внутри команды разработки встал вопрос о поддержке нового стандарта C++14 в нашем коде. Переход на новый стандарт, как мы предполагали, позволил бы нам писать многие вещи элегантней, проще и надежней, упрощал поддержку и сопровождение кода. И в переводе вроде бы нет ничего экстраординарного, если бы не масштабы кодовой базы и специфические особенности нашего кода.

                      Для тех кто не знает, 1С:Предприятие – это среда для быстрой разработки кросс-платформенных бизнес-приложений и runtime для их выполнения в разных ОС и СУБД. В общих чертах в состав продукта входят:


                      Мы стараемся по максимуму писать один код для разных ОС — кодовая база сервера общая на 99%, клиента — примерно на 95%. Технологическая платформа 1С:Предприятие преимущественно написана на C++ и ниже приведены приблизительные характеристики кода:

                      • 10 миллионов строк С++ кода,
                      • 14 тысяч файлов,
                      • 60 тысяч классов,
                      • полмиллиона методов.

                      И все это хозяйство надо было перевести на C++14. О том, как мы это делали и с чем столкнулись в процессе, мы сегодня и расскажем.

                      image
                      Читать дальше →
                    • IT-эволюция - шутка парадоксальная. Например, сначала на компьютерах моделировали нагрузку на АТС, затем программно управляли вызовами, а теперь телефония - это облачное решение, которое разворачивается за несколько минут и объединяет все корпоративные коммуникации. Кажется, между этими изменениями мало общего. На самом деле они стали возможными благодаря принципам программирования, заложенным полвека назад. И чтобы лучше увидеть эту связь, мы решили вспомнить историю С++ - одного из самых “взрослых” языков программирования. Он может быть и удобным инструментом разработки, и ночным кошмаром, и частью корпоративной истории. std::begin( )
                      Подробности — под катом
                    • Загрузка ядра Linux. Часть 1

                      • Перевод
                      От загрузчика к ядру

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

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

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

                        image

                        Введение


                        Прошло долгих четыре месяца с момента публикации статьи о моей попытке низкоуровневой реализации префиксного дерева. Несмотря на все мои старания потолок на который оказалась способна моя прошлая реализация префиксного дерева был ~80 тыс. слов в секунду. Я потратил тогда кучу сил и времени, но полученный результат сгодился бы только как лабораторная работа по информатике.

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

                        Префиксное дерево я кажется понял, и вот чего удалось добиться.
                        Читать дальше →
                      • CPU Design: Эзотерический язык LMCode

                        • Tutorial

                        Часть I
                        Часть II
                        Часть III
                        Часть IV
                        Часть V

                        Четвёртая часть цикла посвящена созданию интерпретатора некого эзотерического языка LMCode, в основе которого лежит архитектура Little Man Computer, о котором можно прочитать в предыдущих статьях.

                        • Пусть команде INP соответствует ,
                        • команде OUT соответствует .
                        • команде ADD соответствует +
                        • команде SUB соответствует
                        • команде STA соответствует ~
                        • команде LDA соответствует ^

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

                        На ассемблере LMC эта программа будет выглядеть так (начальной ячейкой пусть будет 20)

                         INP
                         STA 20
                         ADD 20 
                         OUT
                        

                        Читать дальше →
                        • +14
                        • 3,9k
                        • 4
                      • 10 полезных блогов для программистов на английском

                          Материалов о программировании в сети тонны, а вот сколько среди всей этой информации по-настоящему хорошего контента? Для тех, кто устал обновлять TechCrunch и выискивать интересные треды на Quora, мы составили список из 10 полезных блогов о разработке на английском языке. В них — важные новости, крутые лайфхаки, подробные разборы и практический опыт авторов-экспертов.

                          image
                          Читать дальше →
                          • +11
                          • 12,2k
                          • 6
                        • Методы проб и установки Arch Linux

                          Сейчас речь пойдет об установке в различных вариантах такого небезызвестного дистрибутива линукса — Arch Linux. На момент написания статьи он занимает на distrowatch почётное 12-е место по количеству поисковых запросов за 6 месяцев с почётной средней оценкой самого дистрибутива 9.3/10. Многие считают его настоящим линуксом, для настоящих программистов, но знаменит он в первую очередь не этим, а своим нетривиальным процессом установки. Запуская загрузочный носитель пользователь в первую очередь видит отнюдь не привычный интерфейс в стиле «нажмите сюда, чтобы установить X», а большое черное окно в мир линукса.

                          Читать дальше →
                        • Lamoda изнутри: зачем интернет-магазину 300 инженеров

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



                            Может показаться, что Lamoda – один из пионеров российского интернета, но нам всего семь лет. С момента основания в 2011 году по сегодняшний день наша компания выросла с 11 сотрудников до более чем пяти тысяч. Каждый месяц к нам на сайт заходит >10 млн человек. Фактически мы были стартапом-новичком в устоявшемся российском IT, а в итоге за такой короткий срок смогли догнать и превзойти многих заслуженных ребят.

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