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

Технотекст

Отправить статью

Самодельный стратостат

.NET *Разработка на Raspberry Pi *DIY или Сделай сам
✏️ Технотекст 2021

result_lowres


Допустим, вы интересуетесь космосом, но космос для вас недоступен. Выше 10км не подняться, а посмотреть "что там?" очень хочется. По классификации NASA — нижняя граница космоса начинается на 100км от поверхности Земли. Эта статья будет не совсем про космос, но про возможность создания своего стратосферного зонда с нуля. Я много видел примеров успешного запуска и несколько статей на Хабре, но почти все они — это отчеты. Я же хочу оставить статью, которая сможет претендовать на "complete guide" для юных покорителей. Запаситесь терпением и безлимитным интернетом — будет много текста, картинок и даже пару видео. Это был долгий путь для нас, но я намерен сделать его не таким изнурительным для всех желающих. Поехали?

Читать дальше →
Всего голосов 51: ↑51 и ↓0 +51
Просмотры 14K
Комментарии 39

Моделирование и визуализация при анализе и проектировании ИТ систем. И не только

Блог компании Accenture Анализ и проектирование систем *Управление проектами *Карьера в IT-индустрии
✏️ Технотекст 2021

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

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 7.6K
Комментарии 6

Цифровая логистика: решение транспортной задачи спроса и предложения с помощью библиотеки DOcplex от IBM

Блог компании Accenture Алгоритмы *Транспорт IT-компании
✏️ Технотекст 2021

Всем привет, меня зовут Дмитрий Кузин (Application Development Senior Analyst в Accenture), и в своей статье я делюсь историей о том, как запрос на решение задачи в корпоративной рассылке привел к освоению Python библиотеки DOcplex от IBM, предназначенной для решения оптимизационных задач.

Я бы хотел поделиться личным опытом решения транспортной задачи с применением Python-библиотеки DOcplex от IBM. Если вкратце, то это задача про то, как с наименьшими затратами доставить продукцию или товары от производителей к покупателям, учитывая предложение первых и спрос вторых. В статье я дам основные определения транспортной задачи, покажу, как правильно сформулировать её условие, а также приведу пример решения на Python.
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 2.9K
Комментарии 4

SQL миграции в Postgres. Часть 1

Блог компании Miro PostgreSQL *Администрирование баз данных *
✏️ Технотекст 2021

Как обновить значение атрибута для всех записей таблицы? Как добавить первичный или уникальный ключ в таблицу? Как разбить таблицу на две? Как ... 

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

На эти и другие вопросы, возникающие при проведении миграций схемы и данных в PostgreSQL, постараемся дать ответы в виде практических советов.
Читать дальше →
Всего голосов 32: ↑32 и ↓0 +32
Просмотры 17K
Комментарии 17

Можно ли подружить Stream API и JPA?

Java *
✏️ Технотекст 2021

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

Если интересно посмотреть, что может библиотека, то прошу под кат.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 4.8K
Комментарии 6

Читаем EXPLAIN на максималках

Блог компании Ситимобил MySQL *Серверная оптимизация *Администрирование баз данных *
✏️ Технотекст 2021

Многим, кто работает с MySQL, известно, что команда EXPLAIN используется для оптимизации запросов, получения информации об использованных и возможных индексах. Большинство разработчиков и администраторов СУБД этой информацией и ограничивается. Я же предлагаю изучить команду EXPLAIN максимально подробно.

Читать далее
Всего голосов 21: ↑19 и ↓2 +17
Просмотры 20K
Комментарии 14

Написание компилятора на Haskell + LLVM

Haskell *Компиляторы *Функциональное программирование *DIY или Сделай сам
✏️ Технотекст 2021
Tutorial

На работе я пишу почти исключительно на Python, с университетской скамьи остались некоторые знания C/C++, в одном pet-project использовал Haskell. С таким багажом знаний я взялся за написание компилятора на основе LLVM - зачем и что получилось я уже рассказывал в предыдущей статье.

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

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

Читать далее
Всего голосов 35: ↑35 и ↓0 +35
Просмотры 5.5K
Комментарии 2

Логическая репликация в PostgreSQL. Репликационные идентификаторы и популярные ошибки

Блог компании Postgres Professional PostgreSQL *Администрирование баз данных *Data Engineering *
✏️ Технотекст 2021
Tutorial
image

Начиная с 10 версии, перенести данные с одной базы PostgreSQL на другую несложно, с обновлением, без обновления — неважно. Об этом немало сказано и сказанное сводится к следующему: на мастере, 10 версии и выше, устанавливаем параметр конфигурации wal_level="logical". В pg_hba.conf добавляем такую строку:

host    db_name    postgres    192.168.1.3/32     trust

Затем рестартуем на мастере postgres и выполняем на реплике из-под пользователя postgres:

pg_dumpall --database=postgres --host=192.168.1.2 --no-password --globals-only --no-privileges | psql
pg_dump --dbname db_name --host=192.168.1.2 --no-password --create --schema-only | psql

Теперь подключаемся на мастере пользователем postgres к базе db_name и создаём публикацию:

CREATE PUBLICATION db_pub FOR ALL TABLES;

а на реплике создаём подписку:

CREATE SUBSCRIPTION db_sub CONNECTION 'host=192.168.1.2 dbname=db_name' PUBLICATION db_pub;

По завершении репликации переключаем приложение или балансировщик на новую базу.

Теперь вы знаете постгрес (и с какой стороны доить слонеску) и можете идти устраиваться ДБА.
Для любознательных есть пара небольших деталей под катом.
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 12K
Комментарии 5

Мы Опубликовали Качественный, Простой, Доступный и Быстрый Синтез Речи

Машинное обучение *Звук Natural Language Processing *
✏️ Технотекст 2021

fiona


Вторая частьhttps://habr.com/ru/post/563484/


Вокруг темы синтеза речи сейчас много движения: на рынке есть огромное число тулкитов для синтеза, большое число закрытых коммерческих решений за АПИ (как на современных технологиях, так и на более старых, т.е. "говорилки") от условных GAFA компаний, большое количество американских стартапов, пытающихся сделать очередные аудио дипфейки (voice transfer).


Но мы не видели открытых решений, которые бы удовлетворяли одновременно следующим критериям:


  • Приемлемый уровень естественности речи;
  • Большая библиотека готовых голосов на разных языках;
  • Поддержка синтеза как в 16kHz так и в 8kHz из коробки;
  • Наличие своих собственных голосов у авторов решения, не нарушающих чужие права и лицензии;
  • Высокая скорость работы на "слабом" железе. Достаточная скорость работы на 1 потоке / ядре процессора;
  • Не требует GPU, команды ML инженеров или какой-либо дополнительной тренировки или для использования;
  • Минимализм и отсутствие зависимостей / использование в 1 строчку / не надо ничего собирать или чинить;
  • Позиционируется именно как готовое решение, а не очередной фреймворк / компиляция чужих скриптов / тулкитов для сбора плюсиков;
  • Решение никак не связано и не аффилировано с закрытыми экосистемами и продуктами Гугла / Сбера / Яндекса / вставить нужное;

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

Всего голосов 205: ↑205 и ↓0 +205
Просмотры 41K
Комментарии 226

Выбор библиотеки ассертов для проекта на Kotlin

Тестирование IT-систем *Java *Kotlin *
✏️ Технотекст 2021

В одном из старых проектов в кучу были навалены ассерты из JUnit, kotlin.test и AssertJ. Это было не единственной его проблемой: его вообще писали как письмо Дяди Федора, а времени остановиться и привести к единому виду не было. И вот это время пришло.


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


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


Читать дальше →
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 3.3K
Комментарии 7

Обеспечение доступности веб-контента: стандарты, критерии, пример реализации

Блог компании iSpring Usability *Accessibility *Тестирование веб-сервисов *
✏️ Технотекст 2021
image

Привет, меня зовут Павел. Я занимаюсь изучением и тестированием доступности.

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

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

В данной статье мы погрузимся в вопрос доступности контента, разберемся, почему важна доступность в интернете, чем она регламентируется и как реализуется. В завершение, я расскажу на реальном примере, как мы с командой работали над повышением доступности нашего продукта — конструктора онлайн-курсов iSpring Suite.
Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 3.4K
Комментарии 5

Модульный PHP монолит: рецепт приготовления

Блог компании iSpring PHP *Программирование *Анализ и проектирование систем *
✏️ Технотекст 2021

Статья написана по мотивам моего доклада на митапе. В нем я рассказываю историю того, как мы взяли и не распилили монолит на микросервисы, и что сделали вместо этого.

На тот момент наша команда работала над приложением, начало которому было положено еще в 2009 году не искушенными в архитектуре студентами. К 2018 это уже был типичный big ball of mud (большой ком грязи), или, этакий «монолит-копролит», как выразился один наш коллега. Думаю, многим знакомо.

Читать далее
Всего голосов 27: ↑26 и ↓1 +25
Просмотры 9.7K
Комментарии 12

Строим систему доменных событий в модульном монолите

Блог компании iSpring PHP *Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *
✏️ Технотекст 2021

Всем привет! В этой статье хочу поделиться опытом построения системы доменных событий (domain events) в нашем модульном монолите и микросервисах, рассказать о том, как мы гарантируем их доставку, следим за консистентностью в рамках транзакций, используя transactional outbox, чем доменные события отличаются от интеграционных и всё это в рамках multi tenant приложения. Подробнее под катом.

Читать далее
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 7.5K
Комментарии 35

Обзор операторов PostgreSQL для Kubernetes. Часть 1: наш выбор и опыт

Блог компании Флант PostgreSQL *Администрирование баз данных *DevOps *Kubernetes *
✏️ Технотекст 2021


Всё чаще от клиентов поступают такие запросы: «Хотим как Amazon RDS, но дешевле»; «Хотим как RDS, но везде, в любой инфраструктуре». Чтобы реализовать подобное managed-решение на Kubernetes, мы посмотрели на текущее состояние наиболее популярных операторов для PostgreSQL (Stolon, операторы от Crunchy Data и Zalando) и сделали свой выбор.

Эта статья — полученный нами опыт и с теоретической точки зрения (обзор решений), и с практической стороны (что было выбрано и что из этого получилось). Но для начала давайте определимся, какие вообще требования предъявляются к потенциальной замене RDS…
Читать дальше →
Всего голосов 54: ↑53 и ↓1 +52
Просмотры 16K
Комментарии 18

Аварии как опыт #1. Как сломать два кластера ClickHouse, не уточнив один нюанс

Блог компании Флант Системное администрирование *Администрирование баз данных *DevOps *
✏️ Технотекст 2021

Про некоторые свои failure stories мы уже писали и раньше, но теперь мне выпала честь формально открыть специальный цикл из таких статей. Ведь аварии, их причины и последствия — это тоже часть нашей жизни, и исследовать эту «тёмную сторону» не менее интересно, чем всё остальное. Тем более, что они всё больше влияют даже на повседневный быт, так что из любой аварии можно и нужно извлекать уроки. Да и читатели не раз просили нас рассказывать о таком почаще — давайте попробуем!

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

Перейдем к технической стороне…

Читать далее
Всего голосов 46: ↑46 и ↓0 +46
Просмотры 8.3K
Комментарии 5

Использование GitHub в обучении студентов

Git *GitHub Учебный процесс в IT
✏️ Технотекст 2021

В своей преподавательской практике использую GitHub...

Но для начала давайте представлюсь. Зовут меня Старинин Андрей. И я преподаю программирование, хотя по первому образованию я биолог.

Читать
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 6.2K
Комментарии 26

html2json

Разработка веб-сайтов *Разработка мобильных приложений *HTML *
Из песочницы
✏️ Технотекст 2021

Как обычно мы храним в базе данных что-то, что нужно показать пользователю и обладает некоторыми свойствами разметки? Кто хотя бы раз делал свой блог, хабр или похожее сразу скажет — html. А что, если я скажу, что можно сделать иначе? JSON.


Я бы хотел рассмотреть преимущества и недостатки подобного хранения, ну или попытаться, по крайней мере.


Мем

Читать дальше →
Всего голосов 9: ↑6 и ↓3 +3
Просмотры 4.2K
Комментарии 32

Возвращение Бурана

Разработка игр *Разработка под Android *Дизайн игр *Космонавтика
✏️ Технотекст 2021


Каждую осень в различных частях земного шара с 4 по 10 октября отмечается всемирная неделя космоса. Так совпало, что именно в канун праздника было опубликовано мое первое тематическое игровое Android приложение. В рамках ежегодного космического недельного торжества я хотел бы рассказать историю о первом опыте выпуска Android игры “Возвращение Бурана”.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 6.8K
Комментарии 8

Лучшие практики для деплоя высокодоступных приложений в Kubernetes. Часть 1

Блог компании Флант Системное администрирование *DevOps *Kubernetes *
✏️ Технотекст 2021

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

Функциональность, которая не доступна в Kubernetes «из коробки», здесь почти не будет затрагиваться. Также мы не будем привязываться к конкретным CD-решениям и опустим вопросы шаблонизации/генерации Kubernetes-манифестов. Рассмотрены только общие правила, касающиеся того, как Kubernetes-манифесты могут выглядеть в конечном итоге при деплое в кластер.

Читать далее
Всего голосов 68: ↑67 и ↓1 +66
Просмотры 19K
Комментарии 19