Обновить
1
Serge@chigirinread⁠-⁠only

Пользователь

Отправить сообщение

Повышаем эффективность хранения данных до 300 раз с помощью таблиц SCD-2

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели2.5K

Всем привет, меня зовут Василий. С 2021 года работаю в роли инженера данных в Х5 Tech, успел за это время познакомиться с несколькими интересными проектами и подходами в области обработки данных, об одном из которых пойдет речь далее.

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

Разберем, что из себя представляют Slowly Changing Dimensions-2 (далее SCD-2) таблицы и самостоятельно реализуем на PySpark алгоритм сохранения данных в них. Попутно поговорим о том, как находить изменения в любой таблице, даже если отсутствуют поля для выбора изменившихся записей, и научимся получать из созданной SCD-2 таблицы срезы на требуемую дату в прошлом.

Читать далее

История Flash-игр. Часть 1: Энтузиасты

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели1.3K

Тема инди-игр уже давно набирает популярность. Новости о том, как разработчик одиночка или маленькая студия вырвались в топы Стима, появляются регулярно. Но что если я скажу, что инди-игры были и задолго до Стима? Что была целая индустрия, объединявшая тысячи разработчиков по всему миру? Маленькая, неприбыльная и забытая сейчас, но очень популярная 20 лет назад. Это был Flash. На хабре уже есть несколько статей о нём, но я расскажу как эта индустря работала изнутри.

Если кто не застал, флеш игры - это такие бесплатные игры в браузере, которые заполонили интернет в нулевых. К ним не относились серьёзно, но встречались и годные, даже шедевральные проекты, которые помнят до сих пор. Я посвятил разработке таких игр больше 10 лет и хочу рассказать, насколько эта была необычная, интересная и где-то безумная индустрия.

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

Читать далее

История Flash-игр. Часть 2: Монетизация

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели1.1K

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

Читать далее

Человек-клей: как я нашел самого неэффективного сотрудника, чуть не уволил, а оказалось, что на нем все держится

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели171K

Эпиграф:
Приходит чувак к музыкантам, в группу просится. Те у него и спрашивают: 
- А ты на гитаре играть умеешь? 
- Нет. 
- А на барабанах? 
- Тоже не умею. 
- Может ты поешь? 
- Не пою. 
- Зачем ты нам тогда нужен? 
- Знаете, я просто офигенный друг!

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

Читать далее

Настройка географических ограничений на веб-ресурсе с учетом новых регионов Российской Федерации

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели34K

Актуальной задачей для веб-ресурса в нынешних реалиях является установка ограничений доступа по регионам, либо географическая привязка выдаваемой информации с учетом региона. Одним из решений, которые можно использовать для этих целей, является база данных и американский сервис MaxMind GeoIP2. Сервис привлекает огромным объемом и детальностью информации, но имеет свои особенности. Так, Крым, ДНР, ЛНР, Запорожская и Херсонская области а также Севастополь указаны в базе как регионы Украины. Соответственно, если, скажем, разрешить доступ к ресурсу только с территории РФ, то эти регионы останутся не у дел.

Так я, первоначально настроив свой ресурс только на доступ с территории РФ, обнаружил, что мои друзья из Крыма и ДНР не могут получить доступ (получают специальную версию страницы, с ограниченным объемом информации). Проблема эта легко решается, и в этой статье я покажу, как именно можно простым спососбом ее решить, а также покажу действующий пример конфигурации сервера.

Читать далее

Процессор на коленке ч.2

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели5.8K

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

DNSSec: Что такое и зачем

Время на прочтение6 мин
Охват и читатели121K

Предисловие


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

Читать дальше →

От идеи до деплоя: как поднять приложение на Cloudflare Workers

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели2K

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

Итоговый результат можно увидеть тут (только через VPN).

Читать далее

Сlite — «zero-dependency» фреймворк для создания CLI

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели1.7K

Привет, Хабр! Это моя первая статья и я пишу ее в рамках конкурса «Сезон Open Source на Хабре». Сегодня я хочу рассказать о своем pet-проекте, Clite - это легковесный, фреймворк на Python для создания CLI.

Читать далее

Добавляем платежную систему FreeKassa в проект на Go

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели2.2K

Привет! Хочу поделиться гайдом по интеграции FreeKassa в проект на Golang.
В данной статье будут рассмотрены:
- Создание инвойса.
- Обработка оповещения об успешной оплате.

Читать далее

Как работает электронная почта. База

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели2.1K

Исходим из того, что все умные, но многие не знают, как ходит почта и вопросы эти на 99% исходят из базы.

База:

Для работы почты почтовый сервер должен быть доступ из Internet

Почта приходит, потому что указаны MX-записи

Почта уходит, потому что настроена в соответствии с безопасностью SPF, DKIM, DMARC

Разберёмся по порядку, что должно быть настроено, чтобы работала почта.

Читать далее

Stripe: сервис вашей мечты для автоматизации денежных переводов

Время на прочтение9 мин
Охват и читатели120K

Имевшие дело с сервисом электронных платежей Stripe знают, что он отлично заточен под разработчиков. Его документация написана людьми для людей; есть хороший тестовый режим — полная копия реального, и для перехода на live-режим нужно только заменить ключи, не трогая API и не получая никаких сюрпризов; админка тестового режима — тоже полная копия боевого. В общем, Stripe — это хорошо, и я хочу посвятить эту статью базовым вопросам интеграции сервиса в e-Commerce-проект, объяснив процессы на конкретных и абстрактных примерах. Надеюсь, что мой опыт поможет всем, кто хочет попробовать Stripe на своём проекте.

Читать дальше →

Быстрее света. Зачем компании скупают радиовышки на горе радиолюбителям?

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели4.3K

Почему в 2025 году многие компании возвращаются к технологиям середины прошлого века, выкупая радиовышки по всему миру? И как связаны скорость света, радиоволны и миллиарды долларов в современных финансах?

Читать далее

Создание ноутбуков на JupyterLab: опыт продуктовой команды

Время на прочтение9 мин
Охват и читатели1.1K

Привет, меня зовут Максим Гуляев, я продуктовый менеджер в команде ML Space Notebooks в Cloud.ru. Раньше я был техлидом этой команды, поэтому глубоко понимаю всю внутреннюю кухню.

В статье расскажу, какие ноутбуки мы используем, зачем они нужны и как сделать себе такие же. Упомяну, почему нам потребовалось вносить изменения в привычные ноутбуки на базе JupyterLab. Затем объясню, что нужно, чтобы прийти к крутым образам. И напоследок поделюсь нашей новой архитектурой и методом ее создания.

Читать дальше

Об одном красивом неизвестном решении одной известной задачи

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.1K

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

Дональд Кнут (с)

Как известно, на машине Тьюринга (далее МТ) запрограммировать можно всё, что мы вообще считаем программируемым, но в реальности программы на МТ настолько громоздкие, что МТ редко используется даже в академических примерах. И тем не менее в некоторых отдельных случаях с помощью МТ получается написать небольшую программу, на КДПВ изображена программа из 5 состояний на алфавите из 3 символом. Если вы изучали программирование, то задачу, которую решает эта программа, вы скорее всего встречали. Если я сумел вас заинтересовать, то приглашаю в небольшое приключение по реверс инженирингу МТ.

Материал статьи предоставлен Владимиром Пинаевым

Читать далее

INTELLECT-2: Первая большая (32B) параметрическая модель с распределенным обучением

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели2.6K

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

Встречайте INTELLECT-2 — первую параметрическую модель размером 32B, обученную с помощью асинхронного обучения с подкреплением (RL) на динамическом, однородном рое вычислительных узлов. Доступ к узлам изолирован и не требует дополнительных привилегий — теоретически, это могут быть какие-то компьютеры волонтёров в интернете.

Инфра под это, мягко говоря, нестандартная. Разработчикам пришлось написать несколько компонентов с нуля, и вот что у них получилось...

И что получилось?

Нейминг HTML-тегов

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели3.3K

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

Читать далее

Веб-разработка на ванильном HTML, CSS и JavaScript

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели12K

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

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

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

Add-on pack из 90-х: Microsoft 95 Plus! для Windows

Время на прочтение6 мин
Охват и читатели3.4K

24 августа 1995 года вышла Windows 95 — операционная система, которая должна была стать одним из лидеров в домашнем и SOHO-сегменте. Она предлагала пользователям удобный графический интерфейс, поддержку многозадачности и функцию Plug&Play. Правда, работало это далеко не идеально: в народе технология получила ироничное прозвище Plug&Pray («подключи и молись»). Зато с архитектурной точки зрения это был серьезный шаг вперед — переход от 16-битных к 32-битным приложениям.

Как это часто бывает, к моменту релиза далеко не все запланированные функции были готовы. Разработчики стояли перед выбором: внедрить недоработанные фичи и рисковать стабильностью или отложить их на потом. В итоге дополнительные возможности решили выделить в отдельный коммерческий продукт. Так появилась первая версия Windows 95 Plus! — своеобразное дополнение к основной системе. О нем сегодня и расскажу.

Читать далее

Как быть 3D Артисту (Художнику) в 2020-х. Глава 2. Арт (II часть)

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели1.1K

В первой части главы про Арт мы успели посмотреть базовый набор Арт навыков у художников. Коими господа и дамы 3д'шники и являются.

Сейчас же хочу поговорить одновременно: о более предметном и о более абстрактном.
Предлагаю Вашему вниманию темы на разбор:
- Арт скиллы в 3D.
- Эмоции.
- Знания. Вкус. Насмотренность.

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

Стать ЕЩЕ круче!

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность

Специализация

Веб-разработчик
HTML
Веб-разработка
CSS
SCSS