Pull to refresh
103
0.5
Антон @Areso

Айтишник. Люблю игры и жизнь. Наношу добро. ♥DBaaS

Send message

Переписывая историю: от инструментов версионирования БД к практике

Level of difficultyEasy
Reading time23 min
Views1.5K

Пожалуй, почти каждый Spring разработчик сталкивается в своей практике с версионированием баз данных. На эту тему есть отличный доклад на Joker 2023 от Александра Шустанова, в котором спикер сравнивает 2 самых популярных инструмента для миграций БД: Flyway и Liquibase. Редакция Spring АйО приводит транскрипт доклада, для тех, у кого нет 45 минут для просмотра видео.

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

Читать далее
Total votes 7: ↑6 and ↓1+7
Comments9

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

Level of difficultyMedium
Reading time53 min
Views14K

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

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

Читать далее
Total votes 21: ↑19 and ↓2+21
Comments6

Да будет свет: обзор светодиодной ленты и умной розетки с Matter от «Яндекса»

Level of difficultyEasy
Reading time6 min
Views4.6K

Весной 2024 года «Яндекс» пополнил линейку устройств для умного дома. В ассортименте появилась светодиодная лента и розетка. Оба устройства поддерживают протокол Matter и должны отлично работать в экосистеме умного дома от «Яндекс». Я уже пару месяце пользуюсь гаджетами, сформировал своё мнение и нашёл все минусы. Обо всём этом в статье.

Читать далее
Total votes 8: ↑7 and ↓1+13
Comments10

Дешево и сердито: геймдев на Godot 4.2 для тех, кто знает Python

Level of difficultyMedium
Reading time9 min
Views17K

Привет, Хабр! Меня зовут Матвей, я уже несколько лет хочу научиться создавать игры. Скажу честно: все никак не хватало времени и, возможно, целеустремленности, чтобы изучить Unreal Engine, Cry Engine и им подобные движки.

Но я знаю Python. Оказывается, для любителей парселтанга есть относительно простой способ вкатиться в геймдев — игровой движок Godot, который поддерживает программирование на синтаксически похожем языке GDScript. Я его изучил и даже создал небольшую игру. В этой статье хочу рассказать об этом решении подробнее.
Читать дальше →
Total votes 38: ↑34 and ↓4+40
Comments21

Фотографируем небесные явления и астропейзажи в городе

Level of difficultyEasy
Reading time6 min
Views7.9K
Я хочу вдохновить вас наблюдать и фотографировать атмосферные явления и астропейзажи. Ведь для этого совсем не обязательно добираться в районы с низкой засветкой или жить в каких-то особых местах. Нужно всего лишь почаще смотреть на небо и быть подготовленным, чтобы увидеть необычное.



Все снимки из статьи были сняты в условиях города и на доступную недорогую фототехнику.
Смотреть фотографии
Total votes 79: ↑78 and ↓1+103
Comments23

Кто реально угрожает C++ (нет, Rust, не ты)

Reading time14 min
Views75K

Привет! Меня зовут Александр Каленюк, и я крепко подсел на C++. Пишу на C++ 18 лет кряду, и все эти годы отчаянно пытаюсь избавиться от этой разрушительной зависимости.

Всё началось в конце 2005 года, когда мне довелось писать движок для симуляции 3D-пространства. В этом движке было буквально всё, чем язык C++ мог похвастаться в 2005 году. Трёхзвёздочные указатели, восьмиуровневые зависимости, C-подобные макросы повсюду. Кое-где – вкрапления ассемблера. Итераторы в стиле Степанова и мета-код в стиле Александреску. В общем, всё. Кроме ответа на самый важный вопрос: зачем?

Читать далее
Total votes 220: ↑208 and ↓12+244
Comments361

Простой способ создания самодельных витражей с помощью ЧПУ-станка

Level of difficultyMedium
Reading time13 min
Views11K
Картинка Vecstock, Freepik

Сегодня поговорим о такой интересной технике оформления стёкол, как витраж, а также попробуем прикинуть, как нам создать его минимальными усилиями!
Читать дальше →
Total votes 51: ↑50 and ↓1+73
Comments65

Сложнейшая проблема компьютерных наук: центрирование

Level of difficultyMedium
Reading time7 min
Views33K

Заявляю: «Мы, как цивилизация, разучились использовать центрирование». Ну то есть мы, конечно, знаем, как это делать — очень просто:

display: flex;
justify-content: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Не спрашивайте, почему вам нужно запомнить четыре слова вместо просто горизонтальное/вертикальное; всё равно лучше, чем было до этого.

Ещё можно использовать сетку:

display: grid;
justify-items: center; /* Горизонтальное центрирование */
align-items: center; /* Вертикальное центрирование */

Также не спрашивайте, почему выражение justify-content стало justify-items.
Читать дальше →
Total votes 194: ↑189 and ↓5+227
Comments56

Без холивара «переписать все на Go»: проблема переносимости в Python и ее решение

Level of difficultyMedium
Reading time19 min
Views16K

На скриптовых языках удобно разрабатывать… И на этом удобство заканчивается. Вне машины разработчика начинаются проблемы. Особенно если вы пишете какой-то прикладной тулинг — cli-утилиты, вспомогательные приложения в вашем SDK и прочее. Вы даже не можете рассчитывать на то, что у пользователя будет pip, чтобы он смог поставить все ваши зависимости, вам все нужно организовать самостоятельно.

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

Если вам покажется, что в чем-то я ошибаюсь, добро пожаловать в комментарии. Буду рад услышать любые альтернативные точки зрения. Кроме, как я уже отметил в заголовке, рекомендации переписать все на Go/Rust/You name it :) Этот холивар мы уже проходили.

Читать далее
Total votes 70: ↑70 and ↓0+78
Comments34

Пет-проект: путь от «простого получения опыта» до «продукта, способного приносить пользу IT сообществу»

Level of difficultyEasy
Reading time3 min
Views2.9K

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

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

А также расскажу о своем пет-проекте, который может стать таковым.

Читать далее
Total votes 8: ↑7 and ↓1+8
Comments2

Почта без хлопот: автоматизация отправки писем с помощью Python

Level of difficultyEasy
Reading time3 min
Views9.4K

Привет-привет! С вами снова Оля — программист Учебного центра компании «Тензор». Ранее я писала здесь о разработке ботов в Telegram, но в моем отделе не скупятся на творческие задачи — так что и эта статья вряд ли будет последней.

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

Читать далее
Total votes 19: ↑16 and ↓3+15
Comments22

Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз

Level of difficultyMedium
Reading time4 min
Views42K

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

Читать далее
Total votes 95: ↑84 and ↓11+93
Comments57

Выжимаем максимум из PostgreSQL

Level of difficultyMedium
Reading time14 min
Views17K

Привет, Хабр! Меня зовут Максим, я работаю тестировщиком оборудования в Selectel Lab. В лаборатории мы занимаемся тестированием нового оборудования для дата-центров. О том, как мы измеряли производительность PostgreSQL на разных конфигурациях — под катом!
Читать дальше →
Total votes 49: ↑47 and ↓2+66
Comments22

В погоне за заменой Redis

Reading time11 min
Views21K

21 марта Redis Ltd. объявила, что, начиная с Redis 7.4, ее «in-memory data store» будет выпускаться под несвободными лицензиями с доступным (source-available) исходным кодом. Новость малоприятная, но вполне ожидаемая. Необычно в этой ситуации обилие альтернатив для тех, кто хочет остаться со свободным ПО: есть как минимум четыре варианта замены, включая уже существующий форк под названием KeyDB и недавно анонсированный проект Valkey от Linux Foundation. Вопрос теперь в том, что предпочтут пользователи, провайдеры и создатели дистрибутивов Linux.

Читать далее
Total votes 34: ↑34 and ↓0+35
Comments15

Как я уронил прод на полтора часа (и при чем тут soft delete и partial index)

Reading time7 min
Views40K

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

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

Читать далее
Total votes 146: ↑142 and ↓4+165
Comments174

Превратите свой пет-проект из хобби в карьеру

Level of difficultyMedium
Reading time12 min
Views23K

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

Меня зовут Данил Картушов, в этом посте я расскажу, почему и как именно pet-project'ы могут стать ключом к вашей карьере.

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

Начнем!
Total votes 39: ↑32 and ↓7+30
Comments24

Proxmox 8. Настраиваем проброс видеокарты (GPU Passthrough). Выбор материнской платы на AM5 сокете

Level of difficultyEasy
Reading time23 min
Views16K


Уже прошел год как вышел Debian 12 Bookworm и, основанный на нем, Proxmox 8. Несмотря на тот факт, что мои предыдущие статьи по пробросу дискретной Видеокарты в виртуальную машину, в кол-ве 4-х на Хабре, частично все еще актуальны для последней версии Proxmox, в тематических чатах регулярно поступали обращения обновить статью, а так же выяснилось что, у тех кто пользуется такими инструкциями, есть определенное непонимание в нюансах, из-за чего приходится проходить вместе с ними всю цепочку действий заново.
Читать дальше →
Total votes 23: ↑22 and ↓1+25
Comments17

Облачный апокалипсис. Файлохранилище на своём сервере

Level of difficultyMedium
Reading time7 min
Views13K


Компания Microsoft сегодня (или с 1 апреля) блокирует доступ к облачным сервисам для корпоративных клиентов из России. С этого дня хранилище OneDrive станет недоступно, как и 50 других сервисов Microsoft. Аналогичная ситуация может сложиться с сервисами Amazon и Google. Это вызовет некоторые проблемы у компаний, хранящих файлы в облаке.

Если у пользователей нет резервных копий, им придётся в экстренном порядке переносить их на другой сервер, спасая с «тонущего корабля». К счастью, на этот случай есть удобные инструменты вроде Rclone, который одной командой копирует файлы с популярных облачных хостингов на свой сервер.
Читать дальше →
Total votes 29: ↑24 and ↓5+32
Comments50

Блеск и нищета паттерна «Спецификация» в С#. Оцениваем планы запросов

Level of difficultyHard
Reading time23 min
Views13K

О паттерне «Спецификация», который позволяет улучшить структуру приложения, и, следовательно, увеличить гибкость, уменьшив при этом объем кода, а значит — сократить количество ошибок, но это не точно. Почему? - читаем ниже. 

Читать далее
Total votes 37: ↑36 and ↓1+43
Comments50

Пиррова победа Domain-Driven Design

Level of difficultyHard
Reading time7 min
Views11K

TL;DR: DDD неизбежно ведёт к избыточному (на порядки больше минимально необходимого) количеству саг в проекте, которые, в свою очередь, неизбежно ведут к нарушению целостности данных в БД.

DDD вполне успешно решает поставленную задачу: дать разработчикам инструменты, которые позволят им справиться (корректно реализовать и поддерживать) со сложной предметной областью. Но эта победа оказалась пирровой: инструменты, обеспечивающие корректность данных в памяти, оказались неспособны гарантировать корректность данных в БД. А что толку от изначально корректных данных в памяти, если со временем (после их сохранения в БД и последующего чтения) они перестают быть корректными? По сути, у DDD есть фатальный недостаток: DDD неизбежно приводит к нарушению целостности данных (инварианта бизнес-логики) в БД.

Читать далее
Total votes 31: ↑28 and ↓3+31
Comments98
1
23 ...

Information

Rating
1,695-th
Registered
Activity