Как стать автором
Обновить
18
Карма
0.4
Рейтинг

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

  • Подписчики 7
  • Подписки 1
  • Публикации
  • Комментарии

Почему мы перешли с Oracle на PostgreSQL, и как это сделать

Блог компании РостелекомOracle*PostgreSQL*SQL*


Всем привет!


Сегодня расскажем о сравнительно новой для нас теме — про перевод приложения с Oracle на Postgres Pro (далее в тексте везде сокращу до PG). В общем смысле тема не столь уж нова — многие компании этим также занимаются или даже уже прошли этот путь. Так, например, на ежегодной конференции pgConf всегда есть несколько интересных докладов по этой теме (https://pgconf.ru/). Если говорить о формальностях, то мы реализуем инициативу согласно (Приказ Министерства связи «Об утверждении плана по импортозамещению программного обеспечения» от 01.02.2015 № 96). По факту — ещё и денег экономим, слезая с "лицензионной иглы". На эту тему можно отдельную статью написать, а в этой речь пойдёт о программной стороне вопроса. Кому интересно, добро пожаловать под кат.

Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Просмотры12K
Комментарии 54

Фильтр Калмана: разбор навигационной системы БПЛА + исходный код

C++*Алгоритмы*Математика*Unity*Робототехника
Из песочницы

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

Читать далее
Всего голосов 33: ↑31 и ↓2+29
Просмотры9.9K
Комментарии 12

Я живу, а они — умирают: бактерии в моем теле

Научно-популярноеЗдоровье
Из песочницы

Одна из самых значимых книг по проблеме долголетия людей «Этюды оптимизма» была написана великим русским  естествоиспытателем, лауреатом Нобелевской премии И. И. Мечниковым. В своей работе он впервые предположил, что причиной страданий человека могут быть микробы кишечника, которые при неправильном их соотношении образуют яды, отравляя организм. Книга была написана еще в начале прошлого века. За 120+ лет наука ушла далеко вперед, теперь мы знаем, какие микробы ответственны за гнилостные процессы и можем контролировать их количество. Но мы всё ещё в начале большого пути по исследованию того микромира, который существует в нас и определяет не только наше физическое, но и психическое, и духовное здоровье.

Когда я говорю «мы», я имею в виду учёных в целом и учёных-биологов из Новосибирского Академгородка в частности, одним из которых я и являюсь. Мы рассматриваем микробиоту, то есть совокупность всех микроорганизмов, населяющих человека, как целостный метаболически активный орган. Этот орган подвижен в своем составе и зависим от множества факторов — состояния здоровья человека, его диеты, качества продуктов, климата, образа жизни и даже социального окружения. Лично я живу с идеей «причинения пользы» людям через эту научную область — я вижу, как культура заботы о микробиоме улучшает качество жизни здоровых людей и облегчает состояние больных. Научно-прикладной фундамент этой темы мы с коллегами прорабатываем с 1992 года, работая над живыми пробиотиками серии «Биовестин». Здесь я хочу рассказать подробнее о том, как и зачем восстанавливать и поддерживать этот орган под названием микробиом — и, возможно, посеять в вас живой интерес к моей теме.

Читать дальше
Всего голосов 27: ↑22 и ↓5+17
Просмотры14K
Комментарии 107

Open Source распознавание речи SOVA

Блог компании НаносемантикаПрограммирование*Машинное обучение*Искусственный интеллектГолосовые интерфейсы
Мы в Наносемантике занимаемся виртуальными ассистентами (чат-ботами и голосовыми помощниками) для компаний с большими колл-центрами. Раньше мы использовали распознавание и синтез речи других компаний, а 1.5 года назад решили, что хотим быть самодостаточным вендором.



Если интересно, зачем нам это, что у нас получилось, а также для чего нам выкладывать ASR & TTS в Open Source – добро пожаловать под кат.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Просмотры13K
Комментарии 32

Как написать и опубликовать идеальный пакет для Flutter

Open source*Разработка мобильных приложений*Dart*Flutter*
Tutorial

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

Перейти к делу
Всего голосов 13: ↑13 и ↓0+13
Просмотры2.6K
Комментарии 7

Куда идти за иммунитетом?

Научно-популярноеЗдоровье

Начну с того, что я не антипрививочник ни разу, скорее наоборот. Но вакцина вакцине рознь, особенно сейчас и от известного вируса. Итак, что же мы имеем на сегодня? 

Гамалеевский Спутник V. Нашумевшая и очень современная вакцина, впереди только генная терапия в чистом виде. Неудивительно, что именно сюда вложили столько сил, времени и средствОна же пока еще единственно возможная в нашей стране. Ее очевидные плюсы: максимальный иммунный ответ (помимо антител имеем клеточный иммунитет) при минимальных побочных эффектах. Но есть нюанс, про который почему-то если и говорят, то очень-очень мало и конечно же не в СМИ, а в специализированных медицинских пабликах. Сейчас объясню, о чем речь.

Данная вакцина представляет собой генетически модифицированный аденовирус, вернее два обезвреженных аденовируса (5-го и 26-го серотипов), которые вводятся в организм с промежутком в 3 недели. В геном каждого встроен ген спайк-белка ("шипа") коронавируса. По сути, это «машины», задачами которых является доставка важного «пассажира» по назначению. А дальше все идёт так, как заложено природой: аденовирус доставляет ген коронавируса в клетки, распаковывается там и начинает производить белки как «пассажира», так и свои. Кусочки этих белков выставляет заражённая клетка, обучая тем самым т-лимфоциты. После разрушения «клетки-фабрики», вирусные белки (именно белки, а не готовые заражать новые клетки вирионы, как при болезни) попадают в кровь, тем самым стимулируя производство антител. Заболеть невозможно, иммунитет формируется, и вроде бы все здорово. Но побочным эффектом этой вакцины является развитие иммунного ответа на сами аденовирусные компоненты вектора. В результате повторного введения, «машина с пассажиром» просто не успеет доехать до клетки, а будет сразу уничтожена антителами, которые образуются в результате предыдущего «знакомства». Получается, что Спутник V можно использовать только один раз. И это чревато даже не столько тем, что вакциной больше нельзя будет воспользоваться по назначению - напряженность иммунитета к коронавирусу все равно никому не известна, а случаи повторных заражений вроде бы есть, но малоПугает пожизненное ограничение на любую потенциально возможную аденовекторную генную терапию, в том числе и на лечение онкологии, которая может понадобиться в будущем. Все это сейчас активно развивается, а после такого «масштабного тестирования», дело пойдёт ещё быстрее. Но опять же, терапия эта может пригодиться, а может быть и нет, а иммунитет к вирусу нужен уже сегодня. Поэтому, здесь каждый выбирает для себя, что ему важнее. Вакцина получилась вполне нормальная, для пожилых - самое то. А вот на месте молодых (у них ведь есть все шансы в будущем  воспользоваться генной терапией), я бы призадумалась.

Слышала про разработку версии «Спутник-Лайт», для тех, кто бережёт (фигуру) иммунитет. Это будет однокомпонентная вакцина, сделаная на основании только одного серотипа. Этот вариант приятнее, но его выпуск планируется не раньше декабря 2021 года. 

Читать далее
Всего голосов 197: ↑168 и ↓29+139
Просмотры174K
Комментарии 337

Варианты аппаратной реализации USB Type-C, или Когда не требуется Power Delivery

Блог компании SberDevicesПериферияЭлектроника для начинающих


Когда мы в SberDevices делаем новое устройство, работаем над его аппаратной частью, перед нами встаёт вопрос выбора интерфейсов. Важным моментом при выборе является их доступность и совместимость с другими устройствами.

В своих устройствах мы не могли пройти мимо интерфейса USB-C. Помимо того, что он очень популярен в современных девайсах, он серьёзно расширил функциональность USB по сравнению со своими предшественниками. Давайте расскажу о нём поподробнее.
Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Просмотры11K
Комментарии 19

Полное руководство по сезонной депрессии (SAD). 7 видов светотерапии

Научно-популярноеМедгаджетыМозгЗдоровьеБудущее здесь


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

Почему эта статья важна:

  1. Лучшая книга по сезонной депрессии (Winter Blues) за все 27 лет её существования не была переведена на русский язык, а англоязычную версию не найти в открытом доступе. Я купил и прочитал книгу через Kindle, а также внедрил 70% описанных в ней методик в жизнь. Моя статья будет, по сути, пересказом книги и её адаптации под российские реалии
  2. Полное непонимание сезонной депрессии как обывателями, так и некоторыми профессиональными врачами в России, хотя эта страна находится в группе риска
  3. Низкое качество статей рунета в целом и статей по здоровью в частности. А статьи на Хабре, имеющие отношение к SAD, можно пересчитать по пальцам, и они не дают общей картины
  4. Производители ламп яркого света используют хитрые манипуляции, маркируя слабенькие лампы как дающие 10 000 люкс, но достигая этой яркости на расстоянии около 10 сантиметров от лампы до хрусталика глаза
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Просмотры21K
Комментарии 93

Как работает Object Tracking на YOLO и DeepSort

Математика*Машинное обучение*Искусственный интеллект
Object Tracking — очень интересное направление, которое изучается и эволюционирует не первый десяток лет. Сейчас многие разработки в этой области построены на глубоком обучении, которое имеет преимущество над стандартными алгоритмами, так как нейронные сети могут аппроксимировать функции зачастую лучше.

Но как именно работает Object Tracking? Есть множество Deep Learning решений для этой задачи, и сегодня я хочу рассказать о распространенном решении и о математике, которая стоит за ним.

Итак, в этой статье я попробую простыми словами и формулами рассказать про:

  • YOLO — отличный object detector
  • Фильтры Калмана
  • Расстояние Махаланобиса
  • Deep SORT
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Просмотры14K
Комментарии 3

Экономим копеечку на больших объемах в PostgreSQL

Блог компании ТензорВысокая производительность*PostgreSQL*Анализ и проектирование систем*Администрирование баз данных*
Продолжая тему записи больших потоков данных, поднятую предыдущей статьей про секционирование, в этой рассмотрим способы, которыми можно уменьшить «физический» размер хранимого в PostgreSQL, и их влияние на производительность сервера.

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


Однако, наш опыт оказался весьма продуктивным в этом плане, поскольку хранилище почти любого мониторинга по своей природе является большей частью append-only с точки зрения записываемых данных. И если вам интересно, как можно научить базу писать на диск вместо 200MB/s вдвое меньше — прошу под кат.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Просмотры4.1K
Комментарии 1

Object Detection. Распознавай и властвуй. Часть 1

Блог компании Инфосистемы ДжетАлгоритмы*Машинное обучение*


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

Времена, когда обнаружение объектов решалось исключительно путем классического машинного обучения (каскады, SVM...) уже прошли – сейчас в этой сфере царят подходы, основанные на Deep Learning. В 2014 году был предложен подход, существенно повлиявший на последующие исследования и разработки в этой области – R-CNN модель. Последующие его улучшения (в виде Fast R-CNN и Faster R-CNN) сделали его одним из самых точных, что и стало причиной его использования по сей день.

Помимо R-CNN есть еще много подходов реализующих поиск объектов: семейство Yolo, SSD, RetinaNet, CenterNet… Кто-то из них предлагает альтернативный подход, а кто-то развивает текущий в сторону увеличения показателя производительности. Обсуждение почти каждого из них можно вынести в отдельную статью, по причине обилия фишек и ухищрений :)

К изучению предлагаю набор статей с разбором двухступенчатых Object Detection моделей. Умение разбираться в их устройстве приносит понимание базовых идей, применяемых и в других реализациях. В этом посте рассмотрим самую базовую и, соответственно, первую из них – R-CNN.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Просмотры12K
Комментарии 2

Немного размышлений и советов по оптимизации кода на С++

Блог компании Mail.ru GroupПрограммирование*Совершенный код*C++*


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

Как правило, язык C++ используют там, где требуется высокая скорость работы. Но на C++ без особых усилий можно получить код, работающий медленнее какого-нибудь Python/Ruby. Именно подобным кодом оперируют многочисленные сравнения Any-Lang vs C++.

Вообще, оптимизация бывает трех типов:

  1. Оптимизация уже готового, проверенного и работающего кода.
  2. Изначально написание оптимального кода.
  3. Просто использование оптимальных конструкций.

Специально заниматься оптимизацией готового кода следует только после того, как проект закончен и используется. Как правило, оптимизация потребуется только в небольшой части проекта. Поэтому сначала нужно найти места в коде, которые съедают большую часть процессорного времени. Ведь какой смысл ускорять код, пусть даже на 500%, если он отнимает только 1% машинного времени? И следует помнить, что, как правило, гораздо больший выигрыш в скорости дает оптимизация самих алгоритмов, а не кода. Именно про данный ее вид говорят: «преждевременная оптимизация — зло» (с).

Второй тип оптимизации — это изначальное проектирование кода с учетом требований к производительности. Такое проектирование не является ранней оптимизацией.

Третий тип даже не совсем оптимизация. Скорее это избегание неоптимальных языковых конструкций. Язык C++ довольно сложный, при его использовании частенько нужно знать, как реализован используемый код. Он достаточно низкоуровневый, чтобы программисту пришлось учитывать особенности работы процессоров и операционных систем.
Читать дальше →
Всего голосов 81: ↑68 и ↓13+55
Просмотры53K
Комментарии 89

Как я, в итоге, написал новую RTOS, протестированную и стабильную

Разработка веб-сайтов*Open source*
Я работаю со встраиваемыми системами в течение нескольких лет: наша компания разрабатывает и производит бортовые компьютеры для автомобилей, зарядные устройства, и т.д.

image


Процессоры, используемые в наших продуктах — это, в основном, 16- и 32-битные микроконтроллеры Microchip, имеющие RAM от 8 до 32 кБ, и ROM от 128 до 512 кБ, без MMU. Иногда, для самых простых устройств, используются еще более скромные 8-битные чипы.

Очевидно, что у нас нет (разумных) шансов использовать ядро Linux. Так что нам нужна какая-нибудь RTOS (Real-Time Operating System). Находятся даже люди, которые не используют никаких ОС в микроконтроллерах, но я не считаю это хорошей практикой: если железо позволяет мне использовать ОС, я ее использую.

Несколько лет назад, когда мы переходили с 8-битников на более мощные 16-битные микроконтроллеры, мои коллеги, которые были гораздо более опытными, чем я, рекомендовали вытесняющюю RTOS TNKernel. Так что это — та ОС, которую я использовал в разных проектах в течение пары лет.

Не то, чтобы я был очень доволен ею: например, в ней нет таймеров. И она не позволяет потоку ждать сообщения сразу из нескольких очередей. И в ней нет программного контроля переполнения стека (это действительно напрягало). Но она работала, так что я продолжал ее использовать.
Читать дальше →
Всего голосов 162: ↑161 и ↓1+160
Просмотры77K
Комментарии 61

Информация

В рейтинге
1,287-й
Зарегистрирован
Активность