Как стать автором
Обновить
4
0

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

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

Переход со Spring Boot 2 на Spring Boot 3 в контексте Hibernate, или как не сойти с ума при миграции entity в монолите

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.7K

Миграция на новые версии фреймворков всегда сопровождается сложностями, особенно если в них произошли значительные изменения. В этой статье мы рассмотрим, с какими проблемами я столкнулся при переходе со Spring Boot 2.x.x на Spring Boot 3.3.1 и Hibernate 6.4+, а также предложим решения, которые могут помочь другим разработчикам избежать аналогичных трудностей при обновлении своих приложений.

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

С выходом Spring Boot 3.3.1 разработчики столкнулись с необходимостью перехода на более новые версии Hibernate (6.2+). Это обновление связано с изменениями в Hibernate, обеспечивающими совместимость с новыми версиями Spring Boot и использование новых возможностей фреймворка.

Читать далее
Всего голосов 5: ↑4 и ↓1+5
Комментарии4

Введение в CoreMIDI

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

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

Читать далее
Всего голосов 5: ↑4 и ↓1+4
Комментарии0

Что внутри APK. App Bundle. Google Play Dynamic Feature

Время на прочтение9 мин
Количество просмотров7.7K

Разбор содержимого APK и какие способы доставки используются в Google Play, чтобы уменьшить объем передаваемых данных и ускорить получение обновлений конечным пользователем.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии1

Разбираемся что MySQL пишет на диск и зачем [часть 1]

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров19K

Разработчики предъявляют высокие требования к базам данных: максимальная надежность (ничего из того, что было записано не должно быть утеряно ни при каких обстоятельствах), и, одновременно, максимальная производительность при различных видах нагрузки (Запись/Чтение или OLTP/OLAP). Достичь этих требований может быть не просто. Давайте попробуем разобраться, как это делает MySQL.

Размышляя о базе данных, легко представить таблицу базы данных как HashMap/BinaryTree, отображающие первичный ключ (primary key) в структурированные записи с данными. Такое хранилище может работать in memory. Но, как только мы захотим записать данные на диск, придется использовать какие-то алгоритмы во внешней памяти. Просто положить наш HashMap на диск не получится, потому что память и диски слишком разные: чтение/запись диска производится блоками, latency диска больше чем у RAM, а еще нельзя будет воспользоваться обычными указателями и аллокаторами памяти - все это придется заменить самостоятельно.

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии8

Всё, что вы НЕ хотели бы знать о сервисах онлайн знакомств… [много букОв и иллюстраций + регулярно дополняется]

Уровень сложностиПростой
Время на прочтение60 мин
Количество просмотров309K
Компьютерные сети изменили мир и подарили нам возможность не выбирать «меньшее из зол» из ограниченного числа сложившихся по жизни контактов, а найти по-настоящему любимого человека, даже если он прячется от нас на другом материке. Разумеется, мы можем отказаться от этой возможности и пойти по воспетому российской эстрадой садистско-мазохистскому сценарию «слепила из того, что было, а потом, что было, то и полюбила». И все будут только рады, если у нас всё получится. Но, если мы подведем статистику известных нам счастливых пар, сложившихся по этому сценарию, и трезво оценим вероятность успешного исхода, то, вероятно, путь поиска своего счастья в мировой паутине покажется нам более перспективным. И в этой статье я хочу рассказать вам о тех проблемах с которыми на этом пути можно столкнуться.
Читать дальше →
Всего голосов 232: ↑221 и ↓11+271
Комментарии775

8 книг по PostgreSQL: от баз данных с «нуля» для самоучек до руководства про БД в облаках

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров63K

В целом, эта объектно-реляционная СУБД в дополнительном представлении не нуждается. Разработанная более 20 лет назад, она предназначена для создания и поддержки баз данных серверных приложений, в том числе ресурсоемких аналитических БД. Одна из особенностей PostgreSQL — открытый исходный код. Мы любим ее за развитое комьюнити и возможность развернуть «постгрю» самостоятельно и бесплатно.

Подготовили подборку полезных книг для тех, кто только начал или собирается работать с PostgreSQL. В нее вошли актуальные руководства на русском и английском языках. Если знаете еще одну-две отличных книги, смело рекомендуйте в комментариях.
Читать дальше →
Всего голосов 52: ↑50 и ↓2+62
Комментарии17

Простейшая нейросеть: еще раз и подробнее

Время на прочтение10 мин
Количество просмотров58K

Машинное обучение это незаменимый инструмент для решения задач, которые легко решаются людьми, но не классическими программами. Ребенок легко поймет, что перед ним буква А, а не Д, однако программы без помощи машинного обучения справляются с этим весьма средне. И едва ли вообще справляются при минимальных помехах. Нейросети же уже сейчас решают многие задачи (включая эту) намного лучше людей. Их способность обучаться на примерах и выдавать верный результат поистине очаровывает, однако за ней лежит простая математика. Рассмотрим это на примере простого перцептрона.
Данная статья представляет собой пересказ-конспект первой части книги Тарика Рашида "Создай свою нейросеть" для тех, кто начал изучать тему, не понял отдельные детали или с трудом охватывает общую картину.

Читать далее
Всего голосов 84: ↑83 и ↓1+95
Комментарии27

Опыт подготовки к переезду за рубеж: сисадминский взгляд на персональную инфраструктуру

Время на прочтение9 мин
Количество просмотров11K

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

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

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

Читать далее
Всего голосов 17: ↑12 и ↓5+11
Комментарии22

SQL HowTo: генерируем лабиринты (алгоритм Прима и геометрические типы)

Время на прочтение7 мин
Количество просмотров6.8K

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

Причем работа с графами - это не просто разминка для ума, а вполне себе прикладная задача. Например, в прошлой статье мы сделали "из мухи - слона" волновым алгоритмом Ли, аналогичным используемому у нас в СБИС при расчете себестоимости в многокомпонентных актах выпуска.

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

Читать далее
Всего голосов 33: ↑33 и ↓0+33
Комментарии2

Популярная лингвистика. Книги про языки, которые мне нравятся

Время на прочтение20 мин
Количество просмотров35K

cover


Наш телеграм канал


14.11.2021 — Upd 7. В японский язык добавил Путь бесхвостой птички Адиля Талышханова (Shinrin), в английский — The Mother Tongue — English And How It Got That Way Билла Брайсона (alexey-m-ukolov) и Приключения английского языка Мелвина Брэгга, Введение в прикладную лингвистику Анатолия Баранова к серьезной лингвистике (darkTux)


Upd 6. Добавил Атомы языка Марка Бейкера (9_pm) и The Language Instinct (Язык как инстинкт) Стивена Пинкера (alex518 и snvtr). Проставил у рекомендаций значок ?


Upd 5. Добавил раздел 'Лингвистические задачи'. Лингвистические задачи Зализняка, "Три склянки пополудни" Бердичевского и Пиперски (книга только вышла!) (middle), и еще одни "Лингвистические задачи" от коллектива авторов, включая Алпатова и Зализняка (AlexKarpan и DinaPy). Спасибо всем, кто рекомендует!


Upd 4. Добавил раздел 'Полевая лингвистика'. Не спи — кругом змеи! Дэниела Эверетта (9_pm), добавил "Слово о словах" Льва Успенского (Temmokan и saboteur_kiev)


Upd 3. Добавил раздел 'Серьезно о лингвистике'. Человек говорящий. Эволюция и язык Хомского и Бервика (alex518) и Значение и структура языка Чейфа Л. Уоллеса (darkTux)


Upd 2. Добавил "The Unfolding of Language" Гая Дойчера и "Our Magnificent Bastard Tongue" Джона Макуортера (etoropov)


Upd 1. Добавил раздел 'Грамотность и стиль'. "Слово живое и мертвое" Норы Галь (darkTux) и "The Sense of Style" Стивена Пинкера (9_pm)


Количество атомов в наблюдаемой Вселенной — где-то 10^80, число Дэвидов на картинке к статье — 2. Количество книг в этой подборке находится между этими ориентирами и будет пополняться (всегда рад рекомендациям). Что же это за книги?

Читать дальше →
Всего голосов 35: ↑34 и ↓1+51
Комментарии72

Перевод: Как MS SQL Server выполняет запросы. Часть 2

Время на прочтение11 мин
Количество просмотров16K

Продолжаю публиковать перевод статьи Remus Rusanu (CC-BY), о том,  как MS SQL Server выполняет запросы. В этой части разберём, как данные хранятся внутри БД, а также как именно происходит их считывание в рамках запроса.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Книга «Принципы юнит-тестирования»

Время на прочтение7 мин
Количество просмотров12K
image Привет, Хаброжители! Юнит-тестирование — это процесс проверки отдельных модулей программы на корректность работы. Правильный подход к тестированию позволит максимизировать качество и скорость разработки проекта. Некачественные тесты, наоборот, могут нанести вред: нарушить работоспособность кода, увеличить количество ошибок, растянуть сроки и затраты. Грамотное внедрение юнит-тестирования — хорошее решение для развития проекта.

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

В этой книге: — Универсальные рекомендации по оценке тестов. — Тестирование для выявления и исключения антипаттернов. — Рефакторинг тестов вместе с рабочим кодом. — Использование интеграционных тестов для проверки всей системы.
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии5

15 тривиальных фактов о правильной работе с протоколом HTTP

Время на прочтение7 мин
Количество просмотров236K
Внимание! Реклама! Пост оплачен Капитаном Очевидность!

Ниже под катом вы найдёте 15 пунктов, описывающих правильную организацию ресурсов, доступных по протоколу HTTP — веб-сайтов, «ручек» бэкенда, API и прочая. «Правильный» здесь означает «соответствующий рекомендациям и спецификациям». Большая часть ниженаписанного почти дословно переведена из официальных стандартов, рекомендаций и best practices от IETF и W3C.



Вы не найдёте здесь абсолютно ничего неочевидного. Нет, серьёзно, каждый веб-разработчик теоретически эти 15 пунктов должен освоить где-то в районе junior developer-а и/или второго-третьего курса университета.

Однако на практике оказывается, что великое множество веб-разработчиков эти азы таки не усвоило. Читаешь документацию к иным API и рыдаешь. Уверен, что каждый читатель таки найдёт в этом списке что-то новое для себя.
Читать дальше →
Всего голосов 191: ↑186 и ↓5+181
Комментарии120

«Я — первый слепой разработчик в своей компании». Часть 1

Время на прочтение4 мин
Количество просмотров27K
То, что я не вижу, стало ясно в первые месяцы после рождения. Сколько родители ни пытались, зрение восстановить не удалось. С четырёх лет я учился читать и писать по Брайлю.

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



Вот уже полгода я работаю настоящим software engineer. В самой обычной команде. До сих пор не верится)

Как я начал программировать

Всего голосов 76: ↑74 и ↓2+104
Комментарии94

Мениски в коленном суставе — что это, зачем это, как это лечится если повредилось?

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



Цель данной статьи – информированность людей.

Кому интересно – заходим под кат.
Всего голосов 33: ↑30 и ↓3+41
Комментарии108

«Мобильный контент» бесплатно, без смс и регистраций. Подробности мошенничества от Мегафона

Время на прочтение12 мин
Количество просмотров159K
UPD 07: Телеграм чат для обсуждения операторов сотовой связи t.me/opsosru

После того как я опубликовал статью «Как Мегафон спалился на мобильных подписках», я попытался получить комментарий от Мегафона.


Ответа до сих пор нет.

Но вместо этого я получил зависающий интернет. То есть в какой-то момент трафик перестаёт идти и ютубчик перестаёт играть. Так же с мобильного Мегафона совсем перестал открываться moy-m-portal.ru. На Теле2, МТС и Билайне всё стабильно. То есть Мегафон решил просто мне отомстить…

Это подогрело мой интерес, чтобы раскрутить этот клубок «мобильных подписок» и поделиться с Вами своими исследованиями.

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


Читать дальше →
Всего голосов 496: ↑488 и ↓8+480
Комментарии483

Подружить CI, unit-тесты и базу данных

Время на прочтение11 мин
Количество просмотров5.1K
image

Статья про тестирование взаимодействия с БД в CI. Я видел несколько решений использующих docker и testcontainers, но у меня есть своё и им я хочу поделиться.
Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии10

Обзор задач по алгоритмам для собеседований — генерация множеств

Время на прочтение7 мин
Количество просмотров64K

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


Этим постом начинается разбор задачек по алгоритмам, которые крупные IT-компании (Mail.Ru Group, Google и т.п.) так любят давать кандидатам на собеседованиях (если плохо пройти собеседование по алгоритмам, то шансы устроиться на работу в компанию мечты, увы, стремятся к нулю). В первую очередь этот пост полезен для тех, кто не имеет опыта олимпиадного программирования или тяжеловесных курсов по типу ШАДа или ЛКШ, в которых тематика алгоритмов разобрана достаточно серьезно, или же для тех, кто хочет освежить свои знания в какой-то определенной области.


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



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

Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии15

Android и звук: как делать правильно

Время на прочтение17 мин
Количество просмотров70K

В статье рассматривается архитектура и API для создания приложений, воспроизводящих музыку. Мы напишем простое приложение, которое будет проигрывать небольшой заранее заданный плейлист, но «по-взрослому» — с использованием официально рекомендуемых практик. Мы применим MediaSession и MediaController для организации единой точки доступа к медиаплееру, и MediaBrowserService для поддержки Android Auto. А также оговорим ряд шагов, которые обязательны, если мы не хотим вызвать ненависти пользователя.

Читать дальше →
Всего голосов 15: ↑15 и ↓0+15
Комментарии6

Spring: ваш следующий Java микрофреймворк

Время на прочтение6 мин
Количество просмотров56K

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

Читать дальше →
Всего голосов 28: ↑27 и ↓1+26
Комментарии42
1

Информация

В рейтинге
4 469-й
Зарегистрирован
Активность