Search
Write a publication
Pull to refresh
347
0
Олег Бунин @olegbunin

User

Send message

Часть 2. Векторизация и SIMD в Go: ускорение поиска и сравнения в массивах

Reading time10 min
Views2.4K

Ускорить простые задачи, вроде поиска в массиве и сравнения слайсов, поможет мощь SIMD. Эти векторные инструкции, которые обрабатывают десятки байт данных за один такт процессора, отличная замена традиционным циклам. Во второй части статьи мы погружаемся глубже в практическое применение SIMD в Go-ассемблере, реализуем функцию SliceContainsV1 и изучим, как с помощью VADD, VDUP и других инструкций можно добиться 10–14-кратного ускорения простых задач.

Из этой статьи вы узнаете:

Как устроено сравнение массивов с помощью SIMD-инструкций;

Почему векторизация быстрее бинарного поиска;

Как правильно работать с регистрами, фреймами и указателями в Go-ассемблере;

Что нужно учесть при переносимости и поддержке низкоуровневого кода;

Когда ассемблер оправдан и безопасен в реальных проектах на Go.

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

В первой части статьи мы разобрали саму идею ускорения кода на Go с помощью ассемблера. А в этой разберём её практическое применение.

Читать далее

Почему соискателям не стоит постить нюдсы, что такое culture fit и чем IT-индустрия напоминает подростка

Level of difficultyEasy
Reading time13 min
Views12K

— Мне рассказывали, что некоторые девушки идут на конференции, чтобы познакомиться с IT-шниками. 

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

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

Читать далее

Как компилировать json или история оптимизации python сервиса

Level of difficultyMedium
Reading time10 min
Views9.3K

В прошлой статье мы начали историю создания одного из компонентов платформы экспериментов в компании Okko — сервис сплитования трафика.

Там были описаны небольшие, но эффективные оптимизации Python-кода, которые могут быть полезны в практически любом сервисе на этом языке.

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

Читать далее

Чем живёт айтишник в атомной отрасли

Reading time5 min
Views11K

Когда-то я работал системным инженером в одном из крупнейших российских системных интеграторов. Там внедрял и сопровождал системы электронного документооборота. В 2010 году «Гринатом» искал специалиста с моим опытом, чтобы сопровождать свою отраслевую систему документооборота. Мне понравились условия и возможность развивать новые продукты фактически с нуля, и я согласился. С тех пор работаю там, и за 14 лет работы развитие не останавливается. Растёт мое подразделение, и внедряемые технологии, и компетенции. Мы постоянно привносим новые решения, и это не останавливающееся движение очень мотивирует.

Читать далее

Saint HighLoad++ 2024. Заметки путешественника

Level of difficultyEasy
Reading time7 min
Views3.1K

"Работает? Не трогай!" Но только не в HighLoad! Расти нужно постоянно. Всё менять и переделывать. Но как? И с помощью каких практик? А может и так сойдёт? Поехал искать ответ на Saint HighLoad++.

Читать далее

IT в промышленности: сходство и отличия

Reading time6 min
Views3.7K

У нас производство с небольшой город, и целая куча направлений: одно подразделение собирает роботов, другое занимается видеоаналитикой, кто-то делает лайтовый анализ данных, а кто-то шаманит с хардкорными дата-сетами. Работы всегда больше, чем рук. С точки зрения IT у нас большая ERP-система. Там крутятся закупки, планы производства, CRM, заказы, поставки и тому подобное. ERP отправляет запрос в MES, систему управления производством, которая формирует задания для смен. MES соединена с АСУТП, которая автоматизирует всё, вплоть до правильного раскроя металла. Далее контроллеры, исполнительные механизмы и датчики. Вокруг этого автоматизация кадров, электронные журналы и прогнозы спроса. Поэтому куда сейчас без IT? IT везде. Никто уже на бумажках работать не хочет и не может. И металл без IT не плавится. Чем сложнее установка, тем больше IT внутри.

Читать далее

Магия перестала быть магией и превратилась в технологию

Reading time6 min
Views2K

Всё, что сложно или невозможно объяснить, называют магией. Ещё в 1997 году суперкомпьютер Deep Blue обыграл чемпиона мира по шахматам. Шок, недоверие и теории заговора. В 2016 году другой суперкомпьютер AlphaGo обыграл топового игрока в самую сложную в мире игру Го. Восстание машин и разнообразные фобии. Сейчас нейросети уже снимают кино, пишут песни и сценарии, делают научные открытия и ловят мошенников. И уже мало кому кажется шуткой то, что скоро они заменят программистов. Но, несмотря на все достижения и перспективы — эти технологии всё ещё кажутся магией. А люди, которые в этом понимают — магами. Но магам, как и всем остальным, нужно делиться заклинаниями, новыми свитками и рецептами зелий. Поэтому в этом году откроется первая школа волшебства Прикладная техническая конференция по Data Science AiConf 2024.

Общение незаменимо даже в кругу магов. Кто, если ни другой маг, лучше всего расскажет про новых жучков-древоточцев, которые пожирают даже самые новые свитки. Или про то, каким маслом смазывать волшебный котёл перед тем, как варить зелье. Про CV, NLP, Automotive, AutoML, Predictive analytics, Reinforcement Learning, Artificial General Intelligence и другие заклинания. Это ли не лучший повод передать свой бесценный магический потенциал и опыт?

Готовьте мётлы и телепорты! Встречаемся 26 и 27 сентября 2024 года в Москве на Красном Октябре.

Читать далее

Picodata: простое масштабирование Tarantool

Level of difficultyMedium
Reading time16 min
Views12K

Привет! Сегодня я хочу познакомить вас с ПО, которое мы разрабатываем в нашей компанией — кластерной СУБД и сервером приложений на языке Rust. Мы профессионально занимаемся созданием и эксплуатацией решений на основе Tarantool и с некоторых пор начали разработку своего ПО, о котором и пойдёт речь.

Picodata — это дальнейшее развитие истории Tarantool, в которой учтен опыт эксплуатации этой СУБД и предложены решения как архитектурных, так и функциональных недостатков открытой версии Tarantool. Также, наше ПО проще запускать, настраивать и поддерживать в рабочем состоянии благодаря единой точке входа и интеграции всего инструментария в одном исполняемом файле. Мы создавали Picodata как изначально кластерную СУБД, которой удобно пользоваться. Если не верите, что российская СУБД может быть удобной, попробуйте — в конце этой статьи есть раздел Практикум, где можно сразу же попробовать собрать кластер самому на паре-тройке виртуальных машин или на вашем локальном компьютере. Сейчас же будет немного теории о том, как вообще работает распределенный кластер, что именно не так в “ванильном” Tarantool и что нам пришлось сделать чтобы это исправить.

Погрузиться в детали

История онлайн-видео

Reading time15 min
Views3K

В основной массе онлайн-видео — это индустрия развлечений. И сегодня она переходит от централизации к децентрализации. Это общий тренд, который существует в мире: вся индустрия от старых Гостелерадио переходит к Ютубу.

Подробнее об этом расскажет Максим Лапшин из ООО «Эрливидео». Он уже 13 лет занимается видео и поделится историей его онлайн-развития. Это важно понимать, тем, кто так или иначе пересекается с видео, работает с ним. Какие есть тенденции, куда оно ушло, что умрёт, а что будет развиваться.

Читать далее

Зачем тимлиду актерское мастерство?

Reading time12 min
Views6.4K

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

На прошлогоднем TeamLead Conf Анастасия Абрашитова, руководитель службы экосистемы репозитория Яндекса и автор канала Записки из горящего дома, показала этюд про уточку в конце выступления. Просто для иллюстрации, как актерское мастерство может изменить вас: вы преодолеете стеснительность, слегка раскрепоститесь и прокачаете новые навыки коммуникации. Давайте посмотрим, в чем секрет влияния актерского мастерства для тимлидов.

Читать далее

Распределенные Workflow на PHP. Часть 2

Reading time11 min
Views16K

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

Меня зовут Антон Титов. Я более 15 лет занимаюсь коммерческой разработкой. Являюсь соавтором Spiral Framework, RoadRunner и Cycle ORM. Основной стек: PHP и Golang.

Читать далее

DevOps и Value of User: новая культура взаимодействия бизнеса и инженеров

Reading time13 min
Views3.3K

Это экспериментальная статья про Research&Development, технологии для создания новой ценности для клиента — потому не будет ни слова про техническую часть. Будет немного про историю и культуру DevOps , а также про процессы, культурные особенности, взаимодействие внутри инженерных команд и, конечно, особенности появления R&D внутри них.

Сразу скажу, что это немного идеалистичная картина для нашего российского IT. У нас еще мало компаний, которые дейсвительно используют R&D в качестве основного зарабатывающего бизнес-юнита. В основном лишь частично внедряются практики, взаимодействие и культуру DevOps. Но это не значит, что туда не надо идти. Если у вас это вызовет отторжение: «Такого не бывает, это не работает», то предлагаю превратить это в вопрос: «Такого не бывает? Это не работает?» 

Меня зовут Александр Титов, первые DevOps-практики я начал использовать еще до того, как появилось само слово DevOps. Сейчас я управляющий партнер в компании Экспресс 42, которая помогает ставить DevOps в компаниях.

Читать далее

С 2 лет до 6 месяцев: как мы ускорили «доставку» почтового ПО в 4 раза

Reading time8 min
Views5.4K

Всем привет! Меня зовут Антон, я системный архитектор отдела разработки курьерских сервисов в Почтатехе. Мы разрабатываем сложные цифровые продукты Почты России. Помогаем ей стать удобнее, быстрее, качественнее и технологичнее для вас. 

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

Прежде, чем стать системным архитектором, я успел побывать разработчиком и тимлидом. И моя работа всегда была неразрывно связана с людьми, технологиями и процессами. В этой статье я хочу рассказать, как благодаря оптимизации процессов мы ускорили time-to-market для IT-систем нашего отдела.

Читать далее

Можно ли автоматизировать автоматизацию тестирования?

Reading time7 min
Views5.1K

В своем докладе на конференции TestDriven Conf 2022 Станислав Васенков предлагает за минуту создать из ручного теста проект с автотестами в боевой инфраструктуре. О том, как разрабатывался генератор, можно узнать из интервью.

Кроме того, мы обсудили актуальные проблемы современного тестирования и поговорили о том, почему искать тестировщиков для компании должен не HR, а инженер, говорящий с кандидатом на его языке. 

Читать далее

Запускаем и отлаживаем внутренние митапы

Reading time12 min
Views3K

Однажды мне повезло попасть на запредельно крутой митап. Сотрудники одной компании объединились вокруг своего интереса и с завидным постоянством встречались для его обсуждения. У них было всё серьёзно, для каждой встречи собирали статистику, сколько человек к ним присоединилось, а сколько — пришло, но по какой-то причине ушло и не вернулось. На несколько месяцев вперед у них были расписаны темы, о чем поговорить. В общем, они были великолепны!

И знаете, что было их интересом, что они обсуждали раз за разом? Настольные игры! Их коллеги из соседних команд и компаний сталкивались с кучей сложностей в развитии внутренних сообществ, боролись с нерегулярностью встреч, падением интереса участников. А у этих было всё прекрасно — явка, контент, вовлечение!

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

Читать далее

Tarantool: ускорение разработки с Rust

Reading time17 min
Views13K

Tarantool, как известно, поддерживает любой язык, который совместим с C и компилируется в машинный код. В том числе есть возможность реализации хранимых функций и модулей на Lua и C. Тем не менее, уже в двух своих проектах мы использовали Rust (в одном полностью перенесли Lua-код на Rust) и получили 5-кратное увеличение производительности по сравнению с Lua и сопоставимый результат, который дает по производительности C.

Читать далее

Как приручить DDD. Часть 1. Стратегическая

Reading time13 min
Views28K

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

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

Читать далее

Сканируй это: как мы геймифицировали коммуникацию на IT-конференции с помощью телеграм-бота

Reading time6 min
Views4.5K

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

Мы не сможем показать техническую часть, как это реализовано, но расскажем всё остальное:

- как мы привлекали участников,

- функционал чат-бота,

- как выглядела геймификация,

- какие получили результаты.

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

Читать далее

Как мы создавали Data Management Platform: архитектура, проблемы, выводы

Reading time11 min
Views6.9K

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

Первоначально сегменты создавались вручную: поступал запрос от заказчика, после чего проводилась аналитическая работа по сбору требований. Количество заявок на создание сегментов со временем только увеличивалось. Чтобы автоматизировать процесс создания сегментов мы решили сделать конструктор сегментов для DMP — Data Management Platform. Это относительно молодой проект, ему чуть больше двух лет, но он полностью себя оправдал. Сегодня расскажу вам о нашем опыте. Меня зовут Евгений Чмель, и я руковожу командой DMP & CDP.

Читать далее

Team value менеджмент, или Зачем и как тимлиду сотрудничать с вузами

Reading time13 min
Views2K

Когда тренер Ливерпуля Юрген Клопп, который сделал команду чемпионом Англии и победителем Лиги Чемпионов, только появился в команде, то в первую очередь он встретился с начальником академии Ливерпуля. Почему?  Потому что Клопп, как тимлид, знает, кто будет играть у него в команде и какие требования к ним он предъявляет. Самым важным для него было рассказать об этом начальнику академии, чтобы тот знал, как воспитывать игроков для Клоппа.

А как, думаете, с этим обстоит дело в мире SW development? Мы с завидным постоянством пытаемся отдать работу с молодыми специалистами — ребятами, которые учатся в университетах —  на откуп рекрутерам. И считаем, что только они должны заниматься сотрудничеством с вузами.

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

Читать далее
1
23 ...

Information

Rating
203-rd
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity