[Перевод] Использование Postgres в качестве очереди сообщений |
Базы данных не являются очередями сообщений — это устоявшееся утверждение, которое обсуждалось во многих статьях в блогах и презентациях на конференциях. Но с развитием реляционных баз данных выдерживает ли это утверждение проверку? Если посмотреть на современные версии Postgres, то ответ часто оказывается отрицательным.
Поэтому в этой статье рассматривается упрощенный механизм уведомлений Postgres и обсуждается, как его можно использовать для реализации простой, но эффективной очереди сообщений на основе push-уведомлений. В ней также рассматривается использование этой очереди для взаимодействия между репликами в развертывании Kubernetes и реализация библиотеки для универсальной обработки задач.
Читать далееhttps://habr.com/ru/post/708134/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708134
Метки: PostgreSQL Программирование Java messaging postgres spring jdbc |
Генерация аудио диффузионной нейросетью. Стоит ли использовать обычную диффузию для генерации мел-спектрограмм? |
https://habr.com/ru/post/708182/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708182
Метки: нейронные сети искусственный интеллект машинное обучение аудио синтез блог компании ruvds.com ruvds_статьи диффузионные сети dalle-2 stable diffusion |
Задача коммивояжера (TSP) точное решение — метод ветвей и границ |
Что делает код хорошим? Большинство программистов ответят: хороший код должен быть структурирован, легко читаем и понятен. Но так ли важно качество кода, если он медленный? В большинстве задач производительность кода не критична, хотя и желательна. Но есть задачи, время выполнения которых столь огромно, что выигрыш в производительности доминирует над всем остальным.
Я говорю про NP-трудные задачи (NP-трудность - недетерминированная полиномиальная трудность по времени) и на одной из данного класса хочу акцентировать ваше внимание. Задаче коммивояжера.
Мы не будем рассматривать эвристические алгоритмы, нам нужно точное решение.
Читать далееhttps://habr.com/ru/post/708072/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708072
Метки: Python Алгоритмы задача коммивояжера tsp метод ветвей и границ точное решение |
Новые батарейки Power Flash: тест и сравнение с другими |
https://habr.com/ru/post/708066/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708066
Метки: Блог компании LampTest Энергия и элементы питания Батарейки Тест |
Устройство 64-битных счётчиков транзакций в Postgres Pro Enterprise |
Эта статья описывает реализацию 64–битных счётчиков транзакций (XID, ксидов) в СУБД Postgres Pro Enterprise, которая создана на основе свободной, опенсорсной объектно–реляционной СУБД Postgres. Она ориентирована на тех, кто имеет практический опыт в работе с СУБД Postgres Pro Enterprise, но будет интересна и тем, кто интересуется развитием СУБД Postgres, так как описывает сравнение этих двух систем. Статья также описывает устройство таблиц на диске и организацию формата хранения данных отношений.
Postrges старается быть максимально гибким в конфигурации, чтобы удовлетворить запросы как можно большего числа своих пользователей. Большинство параметров, например, таких, как: размер страницы BLCKSZ (по умолчанию 8 кБ), размер сегмента SEGSIZE (по умолчанию 1 Гб), могут быть изменены при сборке Postgres.
Хотелось бы сразу обозначить, что мы будем рассматривать 64–битный вариант сборки Postrges, в котором все параметры имеют значение по умолчанию. Также мы не будем углубляться в мультитранзакции. Для целей этой статьи будет достаточным предположения, что они в данном контексте аналогичны "обычным" транзакциям.
Мы выложили наш вариант реализации в сообщество, а также занимаемся активным продвижением его в сообществе разработчиков Postgres. Он не на 100% идентичен коду, используемому в Postgres Pro Enterprise (в частности, там ксиды всё ещё образуют кольцо), но общая идея такая же, как изложена в статье. На текущий момент патч ожидает ревью. Мы верим, что этот патч положительно скажется на удобстве использования и устойчивости Postgres, надеемся, что он будет принят сообществом в ближайшем будущем. Тем не менее по этому вопросу предстоит ещё много работы. Поэтому мы будем благодарны всем желающим и небезразличным за посильное участие в его развитии.
Читать далееhttps://habr.com/ru/post/707968/?utm_source=habrahabr&utm_medium=rss&utm_campaign=707968
Метки: Блог компании Postgres Professional postgresql postgres 64-bit |
Как прошел митап для iOS-разработчиков в Минске |
Всем привет! Я Александр Дюбкин, в Тинькофф занимаюсь iOS-разработкой. Команда, в которой я работаю, отвечает за разработку фич для мобильного банка — того самого желтого приложения Тинькофф — и приложения Тинькофф Бизнеса. В мобильную разработку у нас вовлечено множество команд, которые распределены по разным проектам. На проектах есть особенности и вызовы, о которых хочется рассказывать.
Недавно мы провели в Минске митап по iOS-разработке. Я рассказал, как мы решали проблемы больших мобильных проектов, а Алексей Севко из Яндекса — как одна из команд избавилась от монолита и перешла к многомодульной архитектуре. Подготовили для вас видео докладов, а для тех, кому удобнее читать, — текстовую выжимку. Всех, кому интересна iOS-разработка, приглашаю под кат.
Читать далееhttps://habr.com/ru/post/708062/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708062
Метки: Блог компании TINKOFF Разработка под iOS Разработка мобильных приложений мобильная разработка ios ios-разработка митап монолит |
Товарные знаки и высокие технологии |
Большинство юридических публикаций, затрагивающих тематику интеллектуальной собственности в цифровую эпоху, достаточно однообразны. Фактически суждения среднестатистического автора, представленные в них, сводятся к выводам о том, что (а) цифровая эпоха уже наступила, (б) классическое право не позволяет эффективно регулировать оборот виртуальных объектов и надлежащим образом учитывать специфику новых общественных отношений (см.: Проничева Е.Ю., Азизова Е.А. Виртуальный мир: вызов современному налогообложению // Закон. 2014. N 9), (в) законодателю и судам следует, возможно с учетом опыта иностранных юрисдикций, выработать новые подходы и новое, более адекватное современности регулирование (см.: Невзоров И.В. Проблема региональной разобщенности гражданско-правового регулирования деятельности в сети Интернет // Правовые вопросы связи. 2006. N 2).
Именно цифровая эпоха открывает для специалистов в сфере интеллектуальной собственности, а также для представляемого ими бизнеса совершенно новые возможности с точки зрения ведения конкурентной борьбы. Она наделяет бизнес новым инструментарием для укрепления правовых позиций собственных брендов и снижения доли рынка брендов конкурентов.
Новые возможности связаны в том числе и с появлением технологий цифрового исследования больших массивов информации о товарных знаках и заявках на их регистрацию.
Еще китайские ремесленники ставили на фарфоровую посуду специальные обозначения, которые содержали информацию о правящем императоре и производителе изделия [см.: Серебруев И.В. Уголовно-правовая специфика незаконного использования товарного знака: постановка проблемы // Российский юридический журнал. 2015. N 2. С. 67 — 79].
Читать далееhttps://habr.com/ru/post/708048/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708048
Метки: Блог компании Digital Rights Center it-юрист киберправо товарный знак интеллектуальная собственность цифровизация регистрация торгового знака |
Карьера в ИТ: техники личной продуктивности по итогам 20 лет экспериментов |
Вам знакома ситуация, когда вы погреблены под валом задач? Едва закрываете одну — на её место сваливается еще две. И, главное, все задачи действительно важные и срочные. Гора дел растет, вы впадаете в отчаяние и тихо выгораете. Никто, разумеется, этого не замечает и не ценит. Вот необходимый и достаточной набор практик, которые спасают в таких ситуациях.
Читать далееhttps://habr.com/ru/post/708044/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708044
Метки: Карьера в IT-индустрии Карьера продуктивность |
Flamingo, Go ahead! или Как реализовать DDD в Go? |
Наша компания в первую очередь занимается разработкой системного программного обеспечения, драйверов, созданием программно-аппаратных решений. Однако мы также разрабатываем собственные информационные системы для автоматизации наших внутренних бизнес-процессов и задач наших крупных клиентов.
При проектировании нового программного решения была поставлена задача выбрать язык и фреймворк. По результатам проведенного исследования был выбран язык Go, как обеспечивающий высокую производительность вместе со скоростью разработки, а также фреймворк Flamingo для реализации принципов Domain Driven Design. Всем, кому интересно узнать, что же за птица такая Flamingo, приглашаю под кат.
Концепция предметно-ориентированного проектирования, она же DDD (Domain Driven Design), описанная Эриком Эвансом, активно используется при построении информационных систем для предприятий. Не стоит пересказывать основные принципы DDD, благо, помимо книги самого Эванса, они описаны в большом количестве статей. Нам важно другое. Эти принципы гораздо проще реализовать в своей информационной системе, если они поддерживаются фреймворком.
Для .Net, например, есть ASP.NET Boilerplate (https://aspnetboilerplate.com/), полностью реализующая все компоненты DDD – Entity, Value, Repository, Domain Service, Unit of Work и еще много всего. Но мы для одной из своих внутренних информационных систем используем Go.
Мы решили использовать фреймворк Flamingo, распространяемый под лицензией MIT. Он разработан немецкой компанией AOE GmbH в 2018 году и к настоящему моменту “дорос” до версии 3.4 и до 331 звезды на Github. Flamingo используется в информационных системах аэропортов Окланда, Франкфурта и Хитроу, а также в T-Mobile.
Читать далееhttps://habr.com/ru/post/708030/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708030
Метки: Блог компании «Актив» Программирование go flamingo ddd domain-driven design |
Подводим итоги года в направлении «Программирование» |
Уходящий 2022 год был богат на новинки и события. Мы запустили новые учебные курсы, обновили существующие программы, открыли офлайн-школы в нескольких российских городах, впервые вышли на зарубежный рынок и усилили команду направления программными директорами. В 2022 году наибольший прирост новых пользователей в Skillbox показало направление «Программирование» — его доля от общего числа новых пользователей составила 38%. В пятерку самых популярных вошли профессии «Python-разработчик», «Инженер по тестированию», Data Scientist, «1C-разработчик» и «Java-разработчик». Замыкает группу лидеров направление веб-разработки. Сегодня хотим поделиться основными итогами и хайлайтами уходящего года.
Читать далееhttps://habr.com/ru/post/708034/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708034
Метки: Блог компании Skillbox Исследования и прогнозы в IT Учебный процесс в IT итоги года учеба skillbox |
Компонентный подход. Боремся со сложностью в Android-приложениях |
Представьте, что вы начали разработку нового Android-приложения. Поначалу особых проблем не будет. Вы реализовали лишь самые базовые функции. Экранов немного, и все они простые. Вам легко ориентироваться в коде. Вы бодро добавляете одну фичу за другой. Но со временем разработка усложняется: кода становится много, главный экран обрастает большим количеством UI-элементов и логики, экраны образуют сложные цепочки переходов. Приходится ломать голову, чтобы добавить что-то новое, не сломав ничего из старого. Скорость разработки падает. Знакомая ситуация?
Существует эффективный способ борьбы со сложностью — компонентный подход. Мы в MobileUp применили его в трех крупных Android-приложениях и теперь не представляем, как жили без него раньше.
Меня зовут Артур, я тимлид в компании MobileUp. Я помогу вам освоить компонентный подход. Постараюсь сделать это как можно проще и увлекательнее.
Вас ждет серия статей. Это первая из них — теоретическая. В ней мы рассмотрим, какие сложности встречаются в Android-приложениях, и почему MVVM и Clean Architecture не панацея против них. Я расскажу, что такое компонентный подход и в чем его преимущества. А в конце статьи будут ссылки на материалы для углубленного изучения.
Читать далееhttps://habr.com/ru/post/708040/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708040
Метки: Программирование Совершенный код Разработка мобильных приложений Проектирование и рефакторинг Разработка под Android компонентный подход clean architecture mvvm overengineering |
Менторство в команде Ops: взгляд со стороны менти |
Мы уже рассказывали, как внедрили менторство в команде и делились историей одного из менторов. В последней части серии посмотрим на процесс со стороны менти на примере двух инженеров, один из которых уже завершил свою работу с ментором, а второй находится в самом её разгаре.
Это не хардкорная статья: в ней не будет примеров кода или разбора инструментов. Мы хотим показать, какие задачи даём новичкам в команде, чем менторы помогают с онбордингом и как ребята субъективно оценивают пользу процесса.
Читать далееhttps://habr.com/ru/post/708036/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708036
Метки: Блог компании Quadcode Учебный процесс в IT менторство |
Автоматизируем рутину при создании рекламных digital-размещений |
Привет! В сейлз-хаусе ЭВЕРЕСТ мы создали личный кабинет, который автоматизирует все процессы от расчётов до получения отчётов по рекламным кампаниям.
У многих компаний эти шаги проходят исключительно в почте, итогом чего становится цепочка писем довольно внушительного размера со множественным цитированием. У других — часть в почте, часть по телефону, часть в рабочих чатиках в удобных мессенджерах. Одним словом, или перегруз, или бардак, в котором сложно что-то найти, или перегруженный бардак.
Мы решили исправить ситуацию и создать удобное решение как для себя любимых, так и для рынка в целом, и сделали это на базе личного кабинета рекламодателя.
Читать далееhttps://habr.com/ru/post/708028/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708028
Метки: Блог компании Национальная Медиа Группа Интернет-маркетинг Медийная реклама Повышение конверсии нмг эверест реклама |
Акты, классы и семантический сахар |
В предыдущей статье «Событийная онтология vs объектная» были введены основные положения событийной семантики, описаны ее отличия от объектно-ориентированных подходов к моделированию предметной области. В данном тексте на конкретных примерах демонстрируются особенности событийного описания по сравнению с субстанциональным и релятивным. Вводится новое понятие «семантический сахар» и переосмысливается роль иерархических отношений свойств.
Читать далееhttps://habr.com/ru/post/708026/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708026
Метки: Семантика событийная архитектура иерархия терминов онтология предметная область действие актор классификация |
SSD, CD, HDD, OptiNAND… DNA — выбираем перспективные накопители для резервного копирования |
https://habr.com/ru/post/705586/?utm_source=habrahabr&utm_medium=rss&utm_campaign=705586
Метки: Блог компании CloudMTS резервное копирование Хранение данных Хранилища данных Облачные сервисы бэкап накопители ЦОД дата-центр хранилище данных |
[Перевод] Рельсовая революция |
https://habr.com/ru/post/708014/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708014
Метки: Научно-популярное Энергия и элементы питания Транспорт паровозы локомотивы пар железные дороги британия |
Как мы делаем самый читаемый блог на Хабре: от пресс-релиза к переводам книг и своему пикоспутнику |
https://habr.com/ru/post/707998/?utm_source=habrahabr&utm_medium=rss&utm_campaign=707998
Метки: Блог компании RUVDS.com Управление проектами контент-маркетинг Хабр интервью посты авторы технотекст корпоративный блог ruvds_статьи |
Решительность в IT: решает тот, кто делает |
Вам приходилось ходить на встречи, на которых 10 или более человек никак не могли договориться? Такое может быть и с архитектурными, и дизайн-решениями, и процессами. Нам в Dodo приходилось. Это может быть мучительно больно и выматывающе, поэтому хочу поднять тему решительность или «куража», как это называется в экстремальном программировании.
Почему я? Когда-то давно, когда я ещё не была техлидом, я заметила, что у нас есть проблема с глобальными процессами. От этого страдали все, и я в том числе. В конце концов страдать мне надоело, поэтому я решилась изменить что-то хотя бы в собственной команде. И мне это удалось. Хочу поделиться опытом и рассказать о одном принципе, который помог мне тогда и помогает по сей день.
У меня есть правило: «решает тот, кто делает». В принципе, статью на этом можно было бы заканчивать. Но я расскажу о паре тонкостей этого правила и приведу примеры.
Читать далееhttps://habr.com/ru/post/707870/?utm_source=habrahabr&utm_medium=rss&utm_campaign=707870
Если бы Остер раздавал советы автоматизаторам. Часть 1 |
Привет, Хабр! Меня зовут Мария Снопок, я отвечаю за автоматизацию тестирования на Python в X5 Tech. Я, конечно, не Остер, но могу дать с десяток вредных советов из области автоматизации. В частности, о том, как испортить жизнь себе и окружающим.
В статье я собрала вредные советы по кодингу, коммуникациям, организации процессов, стандартам, визуализации и пр.: что нужно делать, чтобы тебя закидали помидорами. Смело наступаем на грабли – советы подкреплены реальными кейсами.
Читать далееhttps://habr.com/ru/post/708006/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708006
Как внедрить Data Driven подход в систему управления поставками |
В уходящем году для многих компаний остро встал вопрос своевременного пополнения запасов комплектующих и запасных частей. В этой статье хотим рассказать о том, как с помощью современных инструментов по анализу больших данных оптимизировать управление цепью поставок и принимать взвешенные управленческие решения, основанные на реальных данных.
Читать далееhttps://habr.com/ru/post/708004/?utm_source=habrahabr&utm_medium=rss&utm_campaign=708004