Pull to refresh
3
0
Егор @Ommonick

SDET teamlead

Send message

Go: жарим общие данные. Атомно, быстро и без мьютексов

Level of difficultyMedium
Reading time8 min
Views11K


Как правило, в Go для безопасного доступа к общим данным используются мьютексы. Да, каналы тоже можно приспособить для изменения общих данных, так как они потокобезопасны, но это усложняет и замедляет логику.

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

Создание полного Fast-API сервиса с фронтендом и деплоем за полчаса

Level of difficultyEasy
Reading time15 min
Views28K

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

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

Читать далее

Как оптимизировать аккумуляторную батарею

Level of difficultyMedium
Reading time11 min
Views11K

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

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

Что вы в этой ситуации сделаете? Как вы оптимизируете батареи? Это же чёрный магический ящик, не так ли? Не так. Используйте симуляцию.
Читать дальше →

Подборка игр с низкоуровневым программированием

Level of difficultyEasy
Reading time5 min
Views39K

TL;DR

Игры от Zachtronics:

TIS-100, EXAPUNKS, SHENZHEN I/O

Про создание процессора от логических элементов и до написания кода на ассемблере: браузерная бесплатная nandgame.com, более продвинутая Turing complete.

Если Вам нравится какая-то игра из перечисленных - наверно, и остальные тоже подойдут. В каждую из них я наиграл по 30+ часов, получил кучу удовольствия и научился чему-то новому.

Подробности

5 книг, которые стоит почитать начинающему ИТ-архитектору

Reading time5 min
Views56K

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

Читать далее

Punk riff generator

Level of difficultyMedium
Reading time38 min
Views2.1K

В данной статье мы будем воспроизводить звук в браузере на примере небольшого проекта под названием Punk riff generator.

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

Читать далее

Он сделал копию криптовалютной биржи на флешке, удалил данные с сервера и исчез

Level of difficultyEasy
Reading time23 min
Views45K

Фарук Фатих Озер стоял перед сотрудником паспортного контроля в аэропорту Стамбула, а за ним выстроилась очередь нетерпеливых путешественников. Он cтянул маску до подбородка, и посмотрел в камеру наблюдения. Несомненно, он нервничал. У 27-летнего парня были буйные чёрные волосы, лицо члена мальчиковой поп-группы и окладистая борода. Обычно он старался выглядеть взрослее, одеваясь в отглаженный костюм-тройку. Но в этот весенний день на нём были чёрные кроссовки и тёмно-синий свитер, наспех натянутый поверх белой рубашки-поло, как будто он одевался впопыхах. Через правое плечо у него был перекинут небольшой рюкзак. Он был похож на человека, который в последнюю минуту отправился в однодневную поездку – или наоборот, планировал никогда не возвращаться. В 17:57 20 апреля 2021 года охранник поставил штамп в его турецком паспорте, и Озер протиснулся сквозь толпу к выходу C. В его вещах была спрятана флешка с криптовалютой на сумму 2 миллиарда долларов.

Читать далее

Сколько денег вы теряете на инцидентах

Reading time6 min
Views4.7K

Привет! Меня зовут Женя, я аналитик данных в онлайн-школе Skyeng. 

Недавно наши спецы на полтора часа уронили прод, и на этом мы потеряли… Кстати, а сколько?

Давайте разберёмся, зачем и как считать потери на инцидентах, можно ли делать это автоматически и как продать ценность расчётов бизнесу.

Читать далее

Создание CLI утилит на Go с библиотекой Cobra

Level of difficultyEasy
Reading time4 min
Views7.6K

Сегодня мы рассмотрим, как с помощью замечательной библиотеки Cobra превратить обычный Go-код в инструмент CLI. Cobra позволяет создавать интерфейсы командной строки.

Начнем с самого начала — установки и настройки проекта.

Читать далее

Базы данных. Основы разработки и работа с индексами в PostgreSQL

Reading time7 min
Views8K

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

Читать далее

Выгорание тестировщиков: почему так бывает и что делать

Reading time17 min
Views17K

Статей про эмоциональное выгорание много, и часть из них очень даже хорошие. Они фокусируются на работе с людьми: как и что говорить, какие ставить задачи, где вести общение, и вот это всё. Я хочу разобрать более узкую тему: специфичное выгорание тестировщиков. И решения буду предлагать не про людей, а про процессы. Как строить такие процессы разработки, чтобы минимизировать эмоциональное выгорание в команде? Какие баги (в коде и в процессе) надо фиксить? На какие штуки обращать внимание? Рассказывать буду с трёх позиций: что с каждой проблемой может сделать биг‑босс (РМ или собственник бизнеса), тест‑менеджер и сам выгоревший тестировщик. Букв в статье получилось много, сорян ))) Зато вроде полезные? Поехали!

Читать далее

Как дела у российского геймдева: 7 достойных игр последних лет

Level of difficultyEasy
Reading time9 min
Views33K

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

Подготовили обзор семи видеоигр — от инди до AAA-игр, которые вышли в последние несколько лет. Рассказываем, как создавались эти проекты и почему они заслуживают внимания.

Читать далее

Как я использую плагины VSCode для обработки Json-файлов в работе системным аналитиком

Level of difficultyEasy
Reading time6 min
Views12K

Всем привет! На Хабре много статей про настройку VSCode, но большинство написали разработчики и для разработчиков. Это достаточно крутой и универсальный инструмент, который можно использовать не только для программирования. В этой статье я на своем примере покажу, как его можно настроить и расширить для работы с данными.

Меня зовут Юлия Васильева, и я системный аналитик в МТС Диджитал. Работаю с B2C-продуктом и анализирую много-много разных Json-файлов. В этой статье я расскажу, как облегчила себе работу с ними благодаря VSCode и почему я в восторге от этого инструмента.

Читать далее

Как компании удерживали, удерживают и будут удерживать сотрудников: блеск и нищета корпоративной культуры

Reading time20 min
Views74K

Если у вас есть время и желание заняться странной деятельностью, я предлагаю вам развлечение под названием «кадровая археология». Суть проста — вы вводите в поиск запрос, вроде «вакансии в России в 1990-х» и по ним пытаетесь понять, как жили древние люди. А точнее, как мыслили HR‑ы и их руководители, а также, какой была ситуация на рынке труда.

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

Ностальгировать, читать, думать

Все о версиях Windows 11 и как включать незадействованные возможности ОС и выключать ненужные, в том числе в Windows 10

Level of difficultyEasy
Reading time5 min
Views32K

Не так давно я написал заметку, где дал исторический очерк жизненного цикла Windows 10, рассказал о том, когда выходили разные версии (а их было как минимум 14) и до какой даты осуществляется обновление. Там же я давал рекомендации тем, кто не собирается переходить на Windows 11, как им получать обновления на свою Windows 10 еще более семи лет, до 13.01.2032.

Сегодня у меня задача понятным языком рассказать вам о Windows 11. Всегда непросто описывать современные системы и их текущие версии, - во-первых они слишком быстро меняются, обновляются, устаревают, а, во-вторых, просто накоплено не так много исторических знаний и опыта, что делает суждения более поверхностными и спорными. Для начала я расскажу о глобальных версиях Windows 11, - их всего 4 (в трех ветвях обслуживания). Потом остановлюсь на том, что такое «Моменты» в терминологии Microsoft, когда эти моменты наступали для Windows 11 и что они приносили. Далее я еще усложню рассказ тем, что раскрою секрет Полишинеля, - Microsoft вводит новый функционал не только в новых версиях ОС, не только некими специальными пакетами «моментами», но и простыми кумулятивными обновлениями. Расскажу о том, какие веховые обновления приносили нововведения в ОС (очевидно, что все последующие включают в себя все предшествующее). Ну и чтобы сделать заметку окончательно нечитаемой для рядового пользователя, но, чтобы энтузиасты как раз таки дочитали ее до конца, расскажу, как задействовать новый функционал в Windows 10 и Windows 11, который Microsoft еще автоматом не сделал общедоступным. И что самое важное, расскажу, как отключить новый функционал, если вы предпочитаете классическую реализацию (если такая бинарно еще сохранилась в ОС). Ну что, поехали?

Читать далее

Unit-тесты в Android для начинающего разработчика

Level of difficultyEasy
Reading time16 min
Views6.3K

Меня зовут Александр Чекунков, я — Android‑разработчик в СБЕРе. Занимаюсь разработкой и поддержкой CSI‑опросов в мобильном приложении «СберБанк Онлайн». Я несу ответственность за функционал, который используют бизнес‑команды для оценки удовлетворённости клиентов.

Часто бывает так, что новый сотрудник, приходя на большой проект, совершенно не знаком с таким понятием как unit‑тестирование. Что это? Как это работает? С чего начать? Такие вопросы часто появляются у начинающих разработчиков.

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

Читать далее

Мем айсберг SQL: погружение в глубины баз данных

Level of difficultyMedium
Reading time53 min
Views23K

Мем айсберг SQL: погружение в глубины изучения баз данных

Мем айсберг SQL — это вирусное интернет-изображение, изображающее айсберг с несколькими слоями. Вершина айсберга содержит общеизвестные концепции и инструменты SQL, такие как операторы SELECT и JOIN. Однако по мере погружения под воду становятся видны более абсурдные и малоизвестные аспекты SQL.

Читать далее

Личный кодинг, мягкость и воля: как развиваться руководителю разработки

Reading time11 min
Views1.9K

Друзья, сегодня поговорим о становлении и развитии лидера и руководителя в разработке ПО. Для начала несколько слов обо мне.

Сейчас я работаю в Wildberries, руковожу несколькими командами разработки. Мы делаем новые для компании финансовые сервисы. И помогаю студентам Практикума становиться лидерами для разработчиков на курсе ​​Управление командой разработки. 

Читать далее

Кадровый голод в IT не то, чем кажется

Level of difficultyEasy
Reading time9 min
Views109K

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

Существует ли в IT-дефицит кадров, откуда он взялся и что означает на самом деле, вместе с нами разберут участники подкаста «Вдруг тут что-то важное» — технический директор KODE Николай Николенко, менеджер проектов VK NFT Сергей Спиренков, автор YouTube-канала «Mobile Developer» Алексей Гладков, а также кандидат технических наук и директор лаборатории  FusionBrain Института искусственного интеллекта AIRI Андрей Кузнецов.

Читать далее

Восстанавливаем старые авто — спасаем машину от гибели, а себя от рутины

Reading time8 min
Views10K

Всем привет!

Рады анонсировать начало нашего большого спецпроекта «SM Lab в лицах» о людях, которые работают в SM Lab. Мы хотим показать их не только как высококлассных профессионалов в IT, но и как творческих, интересных личностей, которые умело совмещают работу с разнообразными увлечениями. Из этого спецпроекта вы узнаете каково восстанавливать ретроавтомобиль,как работает мультиинструменталист, побываете в шкуре фотографа, познакомитесь с каргобайкерством и многое другое)

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

Следите за нашими обновлениями и вдохновляйтесь историями наших work-life balance героев! А начнем мы наш спецпроект с ретроавтомобилей. 

Читать далее

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity

Specialization

Backend Developer, Quality Assurance Analyst
Lead