Pull to refresh
3
0
Егор @Ommonick

SDET teamlead

Send message

Переезд с TeamCity на GitLab CI + K8s

Level of difficultyMedium
Reading time14 min
Views2.6K

Привет, Хабр! Меня зовут Даниил Мильков, я старший C# разработчик. Сразу хочу предупредить читателей, что про взаимодействие с k8s здесь сказано достаточно мало, разве что в разделе Kubernetes и PVC. На эту тему будет отдельная статья.

Начнём. Однажды наша команда решила перейти с TeamCity на GitLab CI…

Читать далее

System Design Interview. Шаблон прохождения собеседования этого этапа

Level of difficultyEasy
Reading time3 min
Views2.1K

Недавно я собеседовался в Амазон и Майкрософт в офисы в Испании (так как я тут живу). Пока готовился много что понял, сейчас поделюсь.

Собеседование на проектирование систем.

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

Читать далее

Bloom-фильтры в Postgres: скрытый инструмент для оптимизации запросов

Level of difficultyEasy
Reading time7 min
Views1.9K

В мире разработки и работы с базами данных Bloom-фильтры – это мощный, но малоизвестный инструмент, который может значительно ускорить выполнение запросов и снизить нагрузку на систему. Однако, несмотря на их потенциал, многие разработчики даже не знают, что Postgres поддерживает Bloom-фильтры "из коробки" (функциональность Bloom-фильтров доступна сразу после установки Postgres, при включении соответствующего расширения) через расширение bloom.

Bloom-фильтры особенно полезны в ситуациях, когда нужно быстро проверить, принадлежит ли элемент к множеству, или когда требуется оптимизировать запросы с несколькими условиями. Например, они могут ускорить JOIN-запросы, поиск по нескольким столбцам или агрегатные функции.

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

Читать далее

Переключение контекста — главный убийца продуктивности разработчика

Level of difficultyEasy
Reading time11 min
Views19K

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

Читать далее

Синхронизация файлов при запуске экземпляра PostgreSQL

Level of difficultyMedium
Reading time8 min
Views1.9K

Если экземпляр PostgreSQL был некорректно остановлен, то перед восстановлением файлов выполняется синхронизаций всех файлов кластера. Способ синхронизации определяется параметром конфигурации recovery_init_sync_method. В статье рассматривается, как ускорить запуск экземпляра и резервирование, если в директории PGDATA много файлов.

Читать далее

Мой 16-месячный эксперимент с теанином

Level of difficultyMedium
Reading time10 min
Views7.7K

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

Многие люди пробуют теанин и сообщают, что он вау, отлично помогает при СДВГ, излечил мою (социальную) тревожность или меняет мою жизнь. И это не только сообщество энтузиастов эффекта плацебо. Эта ветка на Hacker News полна положительных отзывов, а Гверн Брэнвен регулярно его использует.

Далее

Как создать свою криптовалюту, токен или мемкоин

Level of difficultyMedium
Reading time10 min
Views22K

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

В ноябре 2024 года 13-летний подросток под ником Quant Kid создал криптовалюту на основе мемов под названием Gen Z Quant. С первоначальными инвестициями всего в 350 долларов он приобрел 51 миллион токенов и во время прямой трансляции продал их все примерно за 30 000 долларов. Криптосообщество быстро отреагировало, увеличив рыночную капитализацию токена до 85 миллионов долларов.

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

Мемкоины типа Dogecoin тоже начинались как приколы, но быстро приобрели огромные сообщества и реальную ценность. Неужели создать свою криптовалюту так просто? На самом деле действительно просто, при соблюдении определенных правил. Хотите ли вы создать вирусный токен или просто поэкспериментировать с блокчейном, это руководство для новичков поможет вам начать. Погнали!
Читать дальше →

Самые отбитые проекты Github

Level of difficultyMedium
Reading time11 min
Views55K

За долгое время, проведенное «в раскопках» на Github, собралась коллекция удивительных проектов, самое лаконичное описание для которых — лютая дичь. Небольшую часть этой коллекции автор заботливо собрал, запустил и затем описал в этой статье.

Так что заваривайте чаю с ромашкой и запасайтесь успокоительными — с такой подборки поплохеет многим.

Читать далее

Архитектура национального видеохостинга: путь RUTUBE к 10 Тбит/с с использованием своей CDN

Level of difficultyMedium
Reading time7 min
Views13K

За полгода с июля 2024 года большинство аудиторных и технических показателей RUTUBE выросло в разы: количество ежедневных пользователей выросло почти в 4 раза; количество видео, ежедневно загружаемых на видеохостинг — в 3 раза, с 330 тыс. до 1 млн единиц контента; CDN-трафик — в 4 раза и в пиковые часы превышает 7 Тбит/с. Как архитектура сервиса показала себя в условиях продолжительного «нагрузочного тестирования» и как команда переживала такой рост нагрузки, читайте в этой статье.

Читать далее

Кобо Абэ: Бездонный источник вдохновения геймдизайнера Хидэо Кодзимы

Level of difficultyEasy
Reading time9 min
Views4K

В 2024 году исполнилось 100 лет со дня рождения японского писателя-авангардиста Кобо Абэ (яп. 安部公房). Событие было отмечено рядом памятных мероприятий по всему миру, переизданием романов и сборников и долгожданной премьерой экранизации романа «Человек-ящик» (яп. 箱男, англ. The Box Man).

В ежемесячном японском журнале «Нами» (monthly magazine 波) о своей любви к великому автору рассказали известные в Японии деятели культуры. Среди них был и геймдизайнер Хидео Кодзима (яп. 小島秀夫), известный в мире серией видеоигр «Metal Gear» и знаковой игрой «Death Stranding».

Читать далее

Как автоматически отслеживать новости компаний по своему портфелю?

Level of difficultyEasy
Reading time6 min
Views3.5K

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

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

Если бы у меня было всего 3–5 облигаций, я могу просто периодически пробивать названия эмитентов в поисковике и смотреть, что о них пишут. Но когда в портфеле 10 и более бумаг, такой подход превращается в рутину, на которую жалко тратить время. Автоматизация здесь может существенно упростить задачу.

Сам скрипт доступен в open-source и уже готов к использованию. Код - на GitHub!

Заранее изучаем чтобы не вляпаться

Притирка команды: как выжить в новом проекте и не сбежать в лес

Level of difficultyEasy
Reading time6 min
Views5.6K

Если вы запускали продуктовый проект с новой командой, то точно проходили тернистый путь притирки. Это сложный и порой болезненный период, когда команда только начинает работать вместе, друг друга не знает, а процессы очень далеки от идеала.

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

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

Я, Гузель Хамидуллина, системный аналитик департамента управления данными Positive Technologies. Рассказываю, что помогло нашей команде объединиться.

Читать

Универсальный подход к адаптивному веб-дизайну интерфейсов Stretch, Scale, Switch (SSS)

Level of difficultyMedium
Reading time5 min
Views6.6K

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

Читать далее

Измерительный пинцет DIY YCHEV001 на Arduino

Level of difficultyEasy
Reading time4 min
Views9.1K

Сегодня мы с Вами соберём бюджетный вариант Китайского измерительного пинцета FNIRSI LCR-ST1.

В качестве базы я выбрал Arduino, так как целью проекта стало сделать схему, как можно проще, что бы повторяемость измерительного пинцета среди зрителей канала https://www.youtube.com/@chevichelov была на уровне "Контролька на Arduino", по этому я упростил схему насколько это возможно, а в качестве измерительных алгоритмов выбрал самые простые, но в то же время самые надёжные из них. По предложению Хабравчан дал измерительному пинцету название YCHEV001.

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

Читать далее

Как отличаются СДВГ люди от обычных людей? И зумеры — это СДВГшники или просто ленивые инфантилы?

Level of difficultyEasy
Reading time20 min
Views92K

Последнее время происходит какая-то невообразимая атака на сам термин СДВГ, на СДВГ людей, поэтому в статье я постарался описать и (!главное) визуально показать отличие СДВГ людей от обычных (нейротипичных). И попытался проанализировать и также визуально показать, действительно ли много СДВГшников среди поколения зумеров.

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

Читать далее

Установка PostgreSQL в Linux

Level of difficultyEasy
Reading time8 min
Views18K

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

При обучении студентов работе с базами данных мной была выбрана СУБД PostgreSQL --- хотя она и считается несколько сложной для изучения, чем та же MySQL, это достаточно популярный и к тому же бесплатный продукт, с открытым исходным кодом, и самое главное --- у неё есть в том числе и российские корни. С литературой по PostgreSQL ситуация оказалась двоякой: с одной стороны, книг по ней не так уж и много, как хотелось бы (мейнстримом является MySQL, многие примеры оттуда работают и здесь), в результате чего найти хорошее объяснение или примеры по тому или иному вопросу может быть затруднительно. С другой стороны, с 2015 года компания Postgres Professional делает полный перевод документации PostgreSQL на русский язык, за что им огромное спасибо. Но... Всё равно этого не хватает. В общем, если вам нужно установить PostgreSQL и вы уже столкнулись при установке с какими-то трудностями, добро пожаловать под кат!

Читать далее

Cоздание Приватной Сети Блокчейн на Go. Часть 1

Level of difficultyEasy
Reading time14 min
Views3.1K

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

Меня зовут Олег, я работаю разработчиком в одной крупной IT-компании и недавно в разговоре со знакомыми логистами, я узнал, что у них в штате работает блокчейн-специалист. Для меня мир логистики был максимально далек от цепочки блоков, как и цепочка блоков от меня, поэтому я решил погрузиться в эту технологию.

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

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

Читать далее

С чего начать путь уверенного DevOps-бэкэндера: Гайд по Linux-командам для работы с системой

Level of difficultyEasy
Reading time3 min
Views17K

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

Читать далее

Go: тонкости профилирования CPU

Level of difficultyEasy
Reading time16 min
Views3K

Описаны различные способы получения профиля CPU. Объясняется смысл значений в профиле. Приводится пример анализа графа профиля CPU. На конкретных примерах обращается внимание на качественную природу профиля.

Читать далее

Пишем ping на Go: сможем ли составить конкуренцию стандартному ping?

Reading time13 min
Views6.9K

Всем привет! Меня зовут Игорь Горбунов, я разрабатываю платформу базовой станции в YADRO и изучаю Golang почти год. Уже перевалил рубеж «вывести на экран сумму четных элементов среза» и захотел написать что-то более сложное.

Я интересуюсь сетями, и решил посмотреть, как в Go реализуется работа с протоколами ICMP и ICMPv6. Наиболее простая задача, связанная с ними, — реализация программы ping. Она отправляет указанному узлу сети запросы ICMP типа Echo-Request и ожидает ответы типа Echo-Reply.

На первый взгляд — простейшая задача, поэтому усложним ее: построим приложение, похожее на утилиту ping в UNIX-подобных системах. Под катом расскажу, как я решал задачу и с какими подводными камнями столкнулся.

Читать далее

Information

Rating
Does not participate
Works in
Date of birth
Registered
Activity

Specialization

Backend Developer, Quality Assurance Analyst
Lead