• Как мы внедряли cache на БД Tarantool

    Доброго времени суток!

    Хочу поделиться с Вами историей о внедрении cache на БД Tarantool и своих особенностях работы.
    Я работаю Java разработчиком в телекоммуникационной компании. Основная задача: реализация бизнес логики для платформы, которую компания купила у вендора. Из первых особенностей это работа по soap и практически полное отсутствие кэширования, кроме как в памяти JVM. Все это конечно хорошо до тех пор, пока количество экземпляров приложения не переваливает за два десятка…

    В ходе работы и появления понимания особенностей работы платформы была предпринята попытка сделать кэширование. На тот момент была уже запущена MongoDB и как следствие особых положительных результатов как в тесте мы не получили.

    При дальнейшем поиске альтернатив и совета моего хорошего друга mr_elzor было принято решение попробовать БД Tarantool.
    Читать дальше →
  • Рейтинг ИТ-работодателей Санкт-Петербурга и Москвы 2018: результаты опроса разработчиков

      image

      В конце 2017 года мы разбирались, кто является лучшим работодателем в Москве и Санкт-Петербурге по мнению ИТ специалистов. Выяснили что, наиболее популярные компании Москвы — это Яндекс и Mail.ru, а в Петербурге — JetBrains и Яндекс. О других лидерах рейтинга можно прочитать в нашем прошлом исследовании.

      В конце 2018 года, мы решили повторить исследование и узнать у ИТ специалистов — пользователей «Хабра» и «Моего круга» — что они думают о крупнейших компаниях, представленных в Москве и Санкт-Петербурге.
      Читать дальше →
    • История кириллического ЖЖ: как русский менеджмент задавил подъём русскоязычного блоггерства

        Зима, видимо, точно пришла: в 2019 году Джордж Р.Р. Мартин покинул ЖЖ, кому-то напомнив, а кого-то шокировав, тем что Джордж Р.Р. Мартин был в ЖЖ до сих — и ЖЖ жив до сих пор. А нет, показалось. Нынешнее состояние ЖЖ живым называть нельзя, но завершения процесса энтропии можно ждать ещё долго — а в интернете ждать никто не любит. Вот и американцы воспользовались случаем для публикации эпитафии «как LiveJournal стал первооткрывателем блогов, а потом потерял их».

        image

        Чтение которой вызывает забавные ощущения — даже когда я пользовался ЖЖ, то крайне редко вспоминал о существовании англоязычного сегмента — мы были разделены настолько сильно, что могли, с равным успехом, обитать на разных сайтах. За 13 лет я забредал на американскую половину считанные разы, с каждым следующим разом всё сильнее удивляясь, что там кто-то ещё есть живой.

        И при всей изолированности коммьюнити друг от друга, ЖЖ, в итоге, умудрилось потерять оба (одно разбил, другое потерял). Но без истории русскоязычного сегмента это будет половина печальной повесть о двух городах. Расскажу её так, какой я её увидел.
        Читать дальше →
      • Линус Торвальдс не верит, что серверы на ARM-архитектуре заменят x86. «Продавать 64-битную модель — идиотизм»



          На прошлой неделе компания ARM Holdings объявила, что разрабатывает новую микро-архитектуру для серверных процессоров. Вычислительное ядро, которое будет в ней использоваться, носит кодовое имя Ares, и по обещаниям должно дать 60% прирост по сравнению с текущей платформой. С каждым следующим поколением производительность должна расти еще на 30%.

          Серверный рынок — пока не самый большой для ARM. Сейчас процессоры на ее архитектуре используются в мобильных и встраиваемых устройствах. Скачок производительности, который компания обещает производителям серверов, будет выше чем Intel и IBM проделали за последние несколько лет.

          Тем не менее, создатель Linux Линус Торвальдс скептично прокомментировал анонс. Он считает, что будущее новой архитектуры не так радужно.
          Читать дальше →
        • Вся история Linux. Часть I: с чего все началось

            В этом году ядру Linux исполняется 27 лет. ОС на его базе используют многие корпорации, государственные, исследовательские учреждения и дата-центры по всему миру.

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

            Начнем с разработок, которые предшествовали Linux, и истории появления первой версии ядра.

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

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

              Вступление


              В конце марта 2018 я начала работать, как мне казалось, в надежной и симпатичной шведской компании с большим IT-отделом в 200 человек. Я мечтала участвовать много в разработке новых приложений на Java, лучше узнать фреймворки семейства Spring, учиться новым технологиям (до этого случайно угодила в компанию, где всё ещё пользовались SVN), участвовать в интересных дискуссиях, получать и оставлять адекватные комментарии в Code Review (а не заморачиваться только на пробелах и отступах) — одним словом, быть частью профессионального коммьюнити и иметь возможность развиваться как специалист. Небезызвестная шведская корпоративная культура и пестрый международный коллектив подбадривали меня и укрепляли в моих надеждах на наше с компанией плодотворное сотрудничество.

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

              Но моё счастье длилось недолго…
              Читать дальше →
            • Apache Kafka – мой конспект

                Это мой конспект, в котором коротко и по сути затрону такие понятия Kafka как:

                — Тема (Topic)
                — Подписчики (consumer)
                — Издатель (producer)
                — Группа (group), раздел (partition)
                — Потоки (streams)

                Kafka — основное


                При изучении Kafka возникали вопросы, ответы на которые мне приходилось эксперементально получать на примерах, вот это и изложено в этом конспекте. Как стартовать и с чего начать я дам одну из ссылок ниже в материалах.

                Apache Kafka – диспетчер сообщений на Java платформе. В Kafka есть тема сообщения в которую издатели пишут сообщения и есть подписчики в темах, которые читают эти сообщения, все сообщения в процессе диспетчеризации пишутся на диск и не зависит от потребителей.
                Читать дальше →
              • Apache Kafka: обзор

                • Перевод
                Привет, Хабр!

                Сегодня мы предлагаем вам сравнительно краткую, но при этом толковую и информативную статью об устройстве и вариантах применения Apache Kafka. Рассчитываем перевести и выпустить книгу Нии Нархид (Neha Narkhede) et. al до конца лета.


                Приятного чтения!
                Читать дальше →
              • Быстрый старт: Go + Apache Kafka + Redis

                • Tutorial
                В последнее время я, в силу необходимости, просмотрел все объявления о вакансиях Go-разработчиков, и в половине из них (как минимум) упоминается платформа для обработки потоков сообщений Apache Kafka и NoSQL база данных Redis. Ну и все, конечно, хотят, чтобы кандидат знал Docker и иже с ним. Все эти требования нам, повидавшим виды системным инженерам, кажутся какими-то мелочными что ли. Ну в самом деле, чем одна очередь отличается от другой? С NoSQL базами данных ситуация, конечно, более разнообразная, но всё равно они кажутся проще чем какой-нибудь MS SQL Server. Всё это, безусловно, мой личный, многократно на Хабре упоминавшийся, Эффект Даннинга — Крюгера.
                Так что, раз все работодатели требуют, то нужно эти технологии изучить. Но начинать с прочтения всей документации от начала и до конца не очень интересно. На мой взгляд, продуктивнее прочитать введение, сделать рабочий прототип, поправить ошибки, столкнуться с проблемами, решить их. И вот после всего этого уже с пониманием читать документацию, или даже отдельную книжку.



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

                • Перевод
                Давайте не будем приукрашивать действительность: болезни, голод и наша неизбежная смерть создавали напряжение в наших взаимоотношениях с природой. Нам нужно было немного дистанции.

                image

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

                image

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

                image
                Читать дальше →
              • Реализация свободного перемещения частиц на ReactJS

                Приветствую! Хочу вам показать один из способов, как реализовать свободное перемещение частиц в указанном диапазоне. Для выполнения этой задачи я буду использовать ReactJS. Но сам алгоритм все равно будет общим, и вы можете его использовать где угодно.

                image
                Читать далее
                • +18
                • 4,5k
                • 6
              • Я провел сто собеседований, отказал сотне людей — и только потом научился собеседовать

                  image

                  Не желал бы я вам попасть ко мне на собеседование года два назад. Я провел их около сотни, и за все время взял может человек четырех. Не знаю почему, но эйчары считали, что это круто. Слава строгого интервьюера шла впереди меня. Знакомые звали меня собеседовать для чужих команд, и даже для чужих компаний, о которых вы слышите каждый день. И везде — не проходил никто.
                  Читать дальше →
                • Git и командная разработка (для чайников)

                  Соавтор статьи: RicardoMilos

                  Введение


                  Привет! Если ты сюда зашел, значит тебя заинтересовал вопрос, как программисты работают в команде. Если до этого ты работал только в соло, то тебе, наверно, кажется, что в команде работать проще, ведь больше рук и значит можно гораздо быстрее справиться с работой. Но не все так просто. Сейчас мы с тобой ознакомимся, с помощью каких инструментов ведется разработка и что происходит внутри команды.
                  Читать дальше →
                • Откуда растут ноги у Java Memory Model

                  Современное железо и компиляторы готовы перевернуть с ног на голову наш код, лишь бы он работал быстрее. А их производители тщательно скрывают свою внутреннюю кухню. И все прекрасно, пока код выполняется в одном потоке.

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

                  Но все уже осознали, ведь жить с этим как-то надо. А Java программисты даже неплохо живут. Потому что в Java есть модель памяти — Java Memory Model (JMM), которая предоставляет достаточно простые правила для написания корректного многопоточного кода.

                  И правил этих достаточно для большинства программ. Если вы их не знаете, но пишите или хотите писать многопоточные программы на Java, то лучше как можно скорее ознакомиться с ними. А если знаете, но вам не хватает контекста или интересно узнать откуда растут ноги у JMM, тогда статья может вам помочь.
                  Читать дальше →
                • История участия (и победы) в Russian AI Cup 2018 — CodeBall

                  Была среда, шло обычное скучное заседание на работе. Дизайнер чесал за ухом, а тестировщик уткнулся в телефон. За окном завелся автомобиль, и мне пришло письмо на телефон — стартовал Russian AI Cup 2018. Вокруг никто ни о чем не подозревал, а я в этот момент уже точно знал, чем буду заниматься в следующие полтора месяца.

                  Привет всем, меня зовут Андрей Токарев и я хотел бы поделится опытом участия в Russian AI Cup 2018.



                  Что это?


                  Russian AI Cup — ежегодное соревнование по искусственному интеллекту, проводимое с 2012 года. Здесь нужно написать алгоритм который управляет кем-то или чем-то, и эти кто-то или что-то соревнуются между собой. В этом году нужно было управлять роботами играющими в футбол.

                  У меня уже был некоторый опыт выступления в подобных соревнованиях. В частности я участвовал в Russian AI Cup 2016 (без призового места) и Mini AI Cup 2018 (2-е место).
                  Читать дальше →
                • Устройство компилятора Swift. Часть 4


                    Это последняя часть моего обзора компилятора Swift. Я покажу, как можно осуществить генерацию LLVM IR из AST и что выдаёт настоящий фронтенд. Если вы не читали предыдущие части, то переходите по ссылкам:


                    Читать дальше →
                    • +29
                    • 2,3k
                    • 1
                  • Репликация в Tarantool: конфигурирование и использование



                      Я вхожу в Tarantool Core Team и участвую в разработке движка базы данных, внутренних коммуникаций компонентов сервера и репликации. И сегодня расскажу, как устроена репликация.
                      Читать дальше →
                    • Высоконагруженная распределенная система управления современной АЭС

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

                        Поэтому давайте разбираться, что там есть, как оно все устроено, где основные архитектурные сложности и где в АЭС можно применить модные технологии ML и VR.


                        Читать дальше →
                      • Как стать Java разработчиком за 1,5 года

                          Меня зовут Сергей, мне 40 лет и сейчас я работаю Java разработчиком в немецкой компании. Мы занимаемся разработкой программного обеспечения для пивоварен оценки финансовых и кредитных рисков. Это моя первая работа в качестве разработчика. До этого я работал в сфере IT-поддержки и системной интеграции. Первого февраля 2019 г. закончился мой шестимесячный испытательный срок, и у меня на руках бессрочный контракт. Я хочу поделиться своим опытом, как можно самостоятельно выучить Java так, чтобы получить работу.



                          Это мой рабочий стол. Пить пиво в рабочее время у нас разрешено, мы же в Германии.


                          Моя первая статья: «IT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже там»

                          Читать дальше →
                        • Как мы распределяем заказы между водителями в Яндекс.Такси

                            image

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

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