Рубрика «Программирование» - 413

История про хранилище изображений. Или как велосипед спас от костыля - 1

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

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

В первой статье я рассказал о цели, сделал небольшое описание проекта. В данной публикации я расскажу о текущем положении дел и развитии проекта.

Bobaos — KNX TP-UART, Raspberry Pi и Unix Domain Socket - 1

История не повторяется, история улучшается.

Цитата с пачки табака. Далее я показажу, что улучшилось за четыре месяца работы над проектом.

Читать полностью »

Любой измерительный прибор, будь то аналоговый или цифровой, показывает результат с определенной погрешностью и шумом. Погрешность GPS сенсора определяется погрешностью самого датчика и такими факторами как: ландшафт, скорость движения, количество и положение спутников.

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

Map matching и обработка сырых данных GPS в промышленных масштабах - 1

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

Читать полностью »

Создание главного меню игры - 1

Здравствуйте, меня зовут Дмитрий. Я занимаюсь созданием компьютерных игр на Unreal Engine в качестве хобби. Разрабатывая игры каждый из нас сталкивается с необходимостью создания меню игры, в котором можно осуществлять настройки, а также выбирать режимы игры. В этой статье я покажу каким образом эту проблему решил я. Как обычно все исходники будут представлены в конце статьи.
Читать полностью »

Как мы можем прочесть в первой главе книги Effective C++, язык С++ является по сути своей объединением 4 разных частей:

  • Процедурная часть, доставшаяся в наследство от языка С
  • Объектно-ориентировання часть
  • STL, пытающийся следовать функциональной парадигме
  • Шаблоны

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

image
Читать полностью »

Как статы и мониторинг WebRTC изменили мониторинг VoIP - 1

Сегодня мы публикуем перевод об очередном тренде WebRTC, спасибо за это консультанту Цахи. Какие изменения несет в мир VoIP технология WebRTC и что как меняется подход к статистике: об этом под катом. Кстати, возможно вы помните, что Цахи Левент-Леви приезжал на нашу конференцию Intercom 2017 – тогда он читал доклад про историю и влияние WebRTC на современные коммуникации; однако на нашей ближайшей конфе его, увы, не будет. Но зато блог bloggeek.me всегда доступен, а мы стараемся сделать его еще доступнее своими переводами :) Итак, речь про сбор статистики с видеозвонков через клиентов, прошу под кат.
Читать полностью »

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

Меня зовут Александр Подлевских, я ведущий разработчик в компании Туту.ру, тимлид в команде «Электричек», и в этой статье я расскажу, как мы прогнозируем отклонения электричек от графика — опоздания и опережения. А ещё о том, что такое ГВЦ РЖД, как технически устроена система пригородного ж/д-транспорта, и как мы рассказываем об опозданиях пассажирам.

Как научиться предсказывать опоздания электричек - 1
Читать полностью »

Сначала о главном, а потом обо всем по порядку. Через 7 дней, то есть 30 апреля закрывается приём докладов на Highload++ Siberia.
Осталось 7 дней, чтобы повлиять на программу Highload++ Siberia - 1

Стоп, что это вообще

Мы посчитали, что одного HighLoad++ в год недостаточно. Пораскинули мозгами и решили заодно расширять географию. Новосибирск — это крупный IT-хаб в России, там базируется целый ряд крупных IT-компаний и развивается сибирская Долина — Академпарк. Поэтому, все едем в Новосибирск 25 и 26 июня.

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

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

Задача: есть обычный китайский бесколлекторник, нужно его подключить к контроллеру Copley Controls 503. В отличие от копеечных коптерных контроллеров, 503й хочет сигнал с датчиков холла, которых на движке нет. Давайте разбираться, для чего нужны датчики и как их ставить.

Ликбез: принцип работы бесколлекторного двигателя

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

Датчики Холла для бесколлекторного двигателя: возвращение квадратурных энкодеров - 1
Читать полностью »

image

В последнее время Kubernetes пользуется большой популярностью, и разработчики ищут дополнительные способы и методы для развёртывания приложений в кластере этой системы. Даже командная строка kubectl стала восприниматься как инструмент низкого уровня, при этом пользователи продолжают искать ещё более простые способы взаимодействия с кластером. Draft, Gitkube, Helm, Ksonnet, Metaparticle и Skaffold — вот лишь некоторые инструменты, помогающие разработчикам создавать и разворачивать приложения в Kubernetes.

Draft, Gitkube и Skaffold упрощают разработку приложений, позволяя разработчикам как можно быстрее запускать их в кластере Kubernetes. Helm и Ksonnet помогают в процессе развёртывания, т.к. могут определять готовность приложения к отправке, а также управлять выпуском новых версий, обработки различных кластеров и т. д. Metaparticle — необычный инструмент, который позволяет вам в рамках собственного кода работать с любыми форматами (YAML, dockerfile).

Итак, что же использовать в конкретной ситуации?

Давайте посмотрим.Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js