Pull to refresh
yvm @yvmread⁠-⁠only

User

Send message

Использование цветовых пространств в ATTiny13a для WS2811

Reading time6 min
Views18K
image

И вновь приветствую, Хабр!


Моя новая идея посвящена использованию цветовых пространств в микроконтроллерах.
То что моя новость кому-то таковой не покажется, я нисколько не удивлюсь.
Однако я предлагаю метод и его реализацию, подобных которому я не встречал.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments8

Нативные приложения обречены (часть 1)

Reading time6 min
Views41K
image

Отныне я не буду больше создавать нативные приложения. Все мои приложения в дальнейшем будут прогрессивными веб-приложениями (PWA, Progressive Web Apps). Это такие приложения, которые предназначены для еще более органичной работы на мобильных устройствах, чем нативные приложения.

Что я имею ввиду под «более органичной работой»? Большая часть веб-траффика исходит от мобильных устройств и пользователи устанавливают в среднем от 0 до 3 новых приложений в месяц. Это означает, что люди не тратят много времени на поиск новых приложений в App store, но они проводят много времени в сети, где могут найти и использовать ваше приложение.

Прогрессивные веб-приложения начинают свою работу как любое другое веб-приложение, но когда пользователь возвращается в приложение и показывает (фактом использования), что он заинтересован в более регулярном обращении к приложению, браузеры предложат пользователю установить приложение на свой домашний экран. PWA также могут использовать push-уведомления как и нативные приложения.
Читать дальше →
Total votes 84: ↑53 and ↓31+22
Comments187

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

Reading time5 min
Views9.7K
В начале своего пути наша облачная платформа voximplant позволяла работать только с голосовыми звонками. Но прогресс не стоит на месте, и со временем мы добавили передачу видео, текстовые сообщения, presence и множество других возможностей. А недавно закончили разработку функции записи видео: теперь во время видеозвонка достаточно вызвать функцию record из управляющего звонком javascript, чтобы получить ссылку на записываемый видеофайл.

Для наших клиентов все выглядит и работает очень просто, но для нас эта задача оказалась не такой простой, как мы думали. Несколько месяцев потребовалось нашим далеко не слабым разработчикам чтобы решить ряд технических проблем и создать адекватно работающее решение. Под катом — история нашей борьбы с кодеками, файловыми форматами и webRTC.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments8

Запускаем iOS приложения из консоли на девайсе и симуляторе

Reading time7 min
Views24K
В статье будет кратко описано, как собрать приложение консольными командами и запустить на реальном девайсе и симуляторе без какой-либо надобности открывать xcode для этого.

В общем, стоит начать с того, что в моей компании имеется отдел ios разработки в составе > 10 человек, которые работают над пачкой приложений. Для автоматизации рутинной работы нам пришлось развернуть CI сервер (пока самописный, ввиду особых исторических причин (ну как у всех), планируется миграция на jenkins). К рутинным вещам я отношу — сборку проектов, запуск тестов (если, конечно, вы их пишете), создание ипашек для тестеров и для выкладки в app store. В общем, хотелось чтобы по нажатию кнопочки или по хуку в гите всё это начинало работать. Пока у нас всё работает по нажатию кнопки разработчиком, про гит пока только в планах. В данной статье я только затрону тему компиляции проекта и упаковку его в ipa файла. Функционал запуска проектов на девайсах на стороне CI сервера еще находится в стадии разработки, а вот сам процесс упаковки уже давно в «бою», может кому пригодиться.

Что планируем:

  • соберем приложение и запустим на симуляторе
  • соберем ipa и запустим на реальном девайсе
  • соберем ipa для выкладки на маркет
  • немного подэбажим ошибки сборки
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments2

Лоукост VDS хостинг в России. Возможно ли?

Reading time8 min
Views45K
Айхор

Впечатлившись успехами американского хостера DigitalOcean (чего уж скрывать), мы в 2014 году решили создать недорогой и качественный VDS хостинг в России. На тот момент в нашем распоряжении был небольшой «дата-центр» из 4 стоек, располагавшийся в здании бывшего общежития, а в качестве системы охлаждения использовалось две недорогие сплит-системы. Канал на 100 мегабит, 2 древних маршрутизатора Cisco и сотня относительно новых серверов. Было бы смешно обещать клиентам хорошее качество с таким Starter Kit-ом. Но мы решили постараться достигнуть своей цели. Попробуем дать ответ на заголовок данного поста, и параллельно расскажем о нашем опыте создания лоукост хостинга.
Читать дальше →
Total votes 65: ↑60 and ↓5+55
Comments232

Docker: запуск графических приложений в контейнерах

Reading time15 min
Views84K
Строго говоря, Docker не был создан для подобного рода вещей, а именно запуска графических приложений. Однако, время от времени в темах про Docker звучат вопросы о том, нельзя ли запустить GUI-приложение в контейнере. Причины могут быть разные, но чаще всего, это желание сменить излишне громоздкую виртуальную машину на что-то полегче, не потеряв в удобстве и сохранив при этом достаточный уровень изоляции.

Это небольшой обзор способов запуска графических приложений в контейнерах Docker.
ну-ка, что там
Total votes 36: ↑36 and ↓0+36
Comments14

Глупые часы

Reading time3 min
Views80K
image

В современном мире все чаще встречается приставка «умный» к, казалось бы, обычным вещам. Все что-то замеряют, передают, принимают, обрабатывают, оповещают и подсказывают. Скоро Bluetooth, Wi-Fi и маленький контроллер, а также камера будет в каждом предмете.

Я же хочу рассказать о том, как я сделал часы, к которым были предъявлены жесткие требования – они должны показывать время и… нет, все, они должны показывать время. Хотя все же еще одно требование, цифры должны быть достаточно большими и легко читаться.
Читать дальше →
Total votes 106: ↑105 and ↓1+104
Comments67

GulpJS — фантастически быстрый сборщик проектов

Reading time4 min
Views297K
Gulp.js это потоковый сборщик проектов на JS. Он использует Stream и действительно является очень быстрым. Для примера у меня есть проект где около тысячи stylus файлов, GruntJS нужно примерно 2.5 секунды на сборку и 2 секунды на обработку autoprefixer'ом. Gulp все это делает за 0.5 секунды выигрывая у GruntJS минимум в 4 раза.



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

В этой статье будет больше практики, мы соберем среду разработки фронтенда используя Jade и Stylus, запустим локальный сервер и подключим Livereload. Проект я выложил на Github, экспериментируйте.

Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments48

Pull request'ы на GitHub или Как мне внести изменения в чужой проект

Reading time6 min
Views494K
По просьбе tulskiy делаю вольный перевод частей официальной документации GitHub'а Fork A Repo и Send pull requests.

Итак, что же такое «запрос на включение (сделанных вами изменений)» (именно так я перевёл pull request)? В официальной документации гитхаба говорится следующее:
Pull request'ы позволяют вам рассказать другим о тех изменениях, которые вы разместили в своём GitHub-репозитории. Как только pull request отправлен, заинтересованные стороны рассматривают ваши изменения, обсуждают возможные правки или даже добавляют дополняющие коммиты, если нужно.

Говоря своим языком: Посылая pull request, вы говорите автору изначального репозитория (и всем заинтересованным лицам): «Смотрите, что я сделал, не хотите ли принять мои изменения и влить их в проект?»
Читать дальше, но теперь уже обо всём по порядку
Total votes 84: ↑80 and ↓4+76
Comments31

Pinba — мониторим php в реальном времени

Reading time4 min
Views56K
Как сказано на официальном сайте
Pinba is a realtime monitoring/statistics server for PHP using MySQL as a read-only interface.

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

Прочитать еще
Total votes 177: ↑176 and ↓1+175
Comments116

SIP телефон из stm32f4-discovery

Reading time9 min
Views28K
Всем привет.
В этой статье я расскажу, как мы делали sip-телефон на базе stm32f4-discovery с помощью своей встраиваемой ОС Embox. Характеристики stm32f4-discovery (144MHz, 192Kb RAM, 1Mb ROM) могут вызывать сомнения о возможности такой реализации. Нам самим было интересно, получится ли? В качестве ответа можно посмотреть видео, а в самой статье — технические подробности.



Читать дальше →
Total votes 42: ↑42 and ↓0+42
Comments8

Пошаговая видео-инструкция для новичков 3д печати, как настроить 3д принтер

Reading time1 min
Views8.8K


Подготовил видео-инструкцию, о том как же настраивать такого дикого зверя, как слайсер для 3д принтера. Когда начинал свой путь в 3д печати, очень не хватало такого видео, исправляем ситуацию.

Приятного просмотра.

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments1

STM32, C++ и FreeRTOS. Разработка с нуля. Часть 1

Reading time14 min
Views123K

Введение


Не так давно мой отдел столкнулся с трудностями поиска новых инженеров программистов для разработки встроенного ПО. Опытным и умным не нравился уровень зарплаты, а молодых просто нет в нашем городе. Поэтому под патронажем нашей доблестной глобальной компании со штаб квартирой где-то в Сент Луисе, мы начали сначала набирать студентов в интернатуру, а потом, решили пойти другим путем и сделать целых два курса по разработке ПО, а уже там самим выбирать самых “толковых” если понадобятся вдруг новые сотрудники. Это намного дешевле и позволяет охватить максимальное количество претендентов.
Немного отступлю от темы, сам я программировал последний раз очень давно, и вообще больше на С#, а последний глобальный проект на микроконтроллере (PIC16 на зыке Си) был сделан в далеком 2007 году.
Поэтому мне предстояло разобраться с современными микроконроллерами, языком С++ и операционной системой реального времени.
Конечно все наши проекты уже сейчас используют ОСРВ и пишутся на С++, но как разработчик я в них не учувствую, а занимаюсь тунеядством управлением проектами разработки такого ПО.

Выбор


Времени у меня на все про все было дано 1 месяц. С начала июня 2015 до начала июля 2015, потому что потом я собирался в отпуск, а после отпуска обычно полно работы. Надо было делать все быстро и четко.
Немного проконсультировавшись с коллегами, выяснил, что модное направление ARM Cortex различные ядра и из доступных отладочных плат можно заказать Olimex STM32P152 которые стоили 25 долларов. Они пришли очень быстро — 6 плат по цене примерно 2000 рублей. Стоит заметить, что эти платы были закуплены нами для университета, где собственно и будет проходить этот курс.
image
Читать дальше →
Total votes 27: ↑23 and ↓4+19
Comments13

Автоматизация ресторана: 24 интересных инструмента

Reading time8 min
Views191K


Обновлено: 29 июня 2021 года

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

В сегодняшнем материале вашему вниманию 24 инструмента для автоматизации ресторанного бизнеса. При подготовке обзора я также пытался оценить качество работы служб поддержки компаний и скорость отклика на запросы потенциальных клиентов, информация об этом также представлена в статье.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments33

Охватывающий SQL в Postgres

Reading time8 min
Views25K
Одна вещь, которая заставляет меня смотреть со стороны на ORM, как они так стараются скрыть и абстрагировать все силу и выразительность SQL. Прежде чем я напишу дальше, позвольте мне сказать что, Frans Bouma напомнил мне вчера, что есть разница между ORM и людьми, которые их используют. Это всего лишь инструменты (в ORM) и я с этим согласен, так же я согласен, что не плохой фастфуд делает людей полными, а это люди, которые едят его слишком много.

Вместо того чтобы, ругать ORM я хотел бы рассказать вам, почему я не использую ОО абстракцию в основании моей базы данных. Если коротко: потому что SQL может вам сильно помочь выразить значение вашего приложения с точки зрения данных. Единственный способ знать как работает ваше приложение это знать по каким данным оно генерируется.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments9

Виртуальная реальность: видео 360 и бинауральный звук

Reading time7 min
Views27K
Мы написали интересный доклад по технологиям виртуальной реальности для конференции EVA Florence 2015 (Флоренция, Италия). Статья нигде не публиковалась и, поскольку тема интересная и не слишком освещенная на Geektimes, решили разместить её здесь. Приводим адаптированный русский вариант статьи, в случае необходимости, любые дополнения, ссылки, примечания добавим.


Видео 360 + бинауральный звук
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments14

SSH-туннели — пробрасываем порт

Reading time2 min
Views428K
Не всегда есть возможность, да и не всегда надо, строить полноценный туннель с интерфейсной парой адресов. Иногда нам нужно лишь «прокинуть» вполне определённые порты.

Тут важно понимать, что туннель можно организовать как изнутри сети, к ресурсам которой вы хотите получить доступ, на внешний ssh-сервер. Также можно организовать туннель с хоста в Интернете на пограничный ssh-сервер сети, чтобы получить доступ к внутренним ресурсам.
Читать дальше →
Total votes 93: ↑68 and ↓25+43
Comments80

Протокол WS2812B на STM32 без пустых циклов и прерываний. И как сделать правильную радугу

Reading time6 min
Views100K


На Хабре уже есть пара статей о работе с RGB светодиодами WS2112B, но почему-то они все используют довольно архаичный способ формирования битовой последовательности. Способ заключается в формировании точных интервалов времени с помощью пустых программных циклов. Возможно, это издержки использования Arduino, но мы, конечно, уже давно перешли на ARM Cortex-M4 в лице STM32 и можем себе позволить сделать красивее.
Читать дальше →
Total votes 42: ↑41 and ↓1+40
Comments14

Cовременный подход к HTTP с PHPixie и PSR-7

Reading time3 min
Views8.8K
image
Стандартный PHP API для работы с HTTP запросами давно устарел. Программисты научились не использовать глобальные переменные, но стандартные суперглобалы как $_GET, $_SERVER все еще напоминают нам о далеком прошлом. Конечно фреймворки инкапсулируют эту информацию в свои Request\Response классы, но таких реализаций очень много и пока еще не было единственного стандарта. Стандарт PSR-7 от PHP-FIG как раз должен привести репрезентацию HTTP протокола к единственному знаменателю что позволит писать Middleware который будет работать сразу на многих фреймворках. Он пока еще не принят, но досрочное голосование показало практически единоголосную поддержку нового стандарта. PHPixie готовясь к релизу версии 3.0 уже приняла и имплементировала PSR-7, а также предоставляет обертки для упрощенной работы с интерфейсом. Если вы хотите создать свой микрофреймворк то взяв PHPixie HTTP за основу, сможете добиться результатов уже за один вечер.
Читать дальше →
Total votes 17: ↑12 and ↓5+7
Comments7

Не спешите выкидывать старые серверы, из них можно собрать быструю Ethernet-СХД за час

Reading time6 min
Views77K


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

Железо, в целом, неплохое, просто прошлого поколения. Выкидывать, естественно, было жалко. Тогда я и предложил протестировать EMС ScaleIO. Если коротко, работает это так:



ScaleIO — это софт, который ставится на серверы поверх операционной системы. ScaleIO состоит из серверной части, клиентской части и нод управления. Дисковые ресурсы объединяются в одну виртуальную одноуровневую систему.
Читать дальше →
Total votes 44: ↑40 and ↓4+36
Comments98

Information

Rating
Does not participate
Registered
Activity