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

Программист

Отправить сообщение

GPS трекер BOXY

Время на прочтение9 мин
Количество просмотров42K
Привет, Хабр!

GPS трекером уже никого не удивишь — это факт. Написать этот краткий обзор решил, когда первый раз взял в руки эту «фитюльку». Ну, по порядку: появилась задача – оснастить трекером домашнего питомца. Не то чтобы он убегал постоянно, но для общего спокойствия что-то надо закрепить на его ошейник. «Тех задание» выглядело так:

  • максимально компактный GPS трекер с возможностью отслеживать положение онлайн;
  • аккумулятора должно хватить на день или больше.



В итоге, поиск компактного трекера привёл к написанию данного обзора.
Читать дальше →
Всего голосов 64: ↑61 и ↓3+58
Комментарии92

9 лучших опенсорс находок за август 2019

Время на прочтение2 мин
Количество просмотров51K

Доброй осени, дамы и господа. Подготовил для вас подборку самых интересных находок из опенсорса за август 2019.


За полным списком новых полезных инструментов, статей и докладов можно обратиться в мой телеграм канал @OpensourceFindings (по ссылке зеркало, если не открывается оригинал).


В сегодняшнем выпуске.
Технологии внутри: Python, Rust, JavaScript, Go.
Тематика: веб разработка, администрирование, инструменты разработчика.

Читать дальше →
Всего голосов 76: ↑74 и ↓2+72
Комментарии44

DIY кнопка вызова. Raspberry Pi, MajorDoMo, Freeswitch и Linphonec

Время на прочтение11 мин
Количество просмотров13K
Какое-то время назад у меня была потребность в осуществлении связи с человеком после болезни, который не мог физически пользоваться телефоном. Нужно было простое вызывное устройство, по нажатию кнопки происходил голосовой вызов. Потребность исчезла, однако, побывав сам в больничке, посмотрев на пациентов, подумалось, что такое решение может кому и пригодиться.
Сейчас я вижу личное применение этого устройства в качестве SIP дверного звонка.

Возможно с небольшими переделками, совмещение VoIP телефонии с системой домашней автоматизации. Как варианты использования – SIP дверной звонок, интерком, система голосовой связи (клиент-персонал, директор-секретарь) и т.д.



Всё решение делается на бесплатном и открытом программном обеспечении: операционная система – Raspbian Stretch (Debian 9), Система домашней автоматизации – MajorDoMo, VoIP сервер – Freeswitch, программный клиент IP-телефонии с возможностью работы в терминальном режиме Linphonec.

В этой части, под катом, в основном и пойдет речь про установку консольного SIP клиента Linphonec.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии9

Интерфейсы в реальном мире (ещё примеры)

Время на прочтение10 мин
Количество просмотров140K
Обычный кран с горячей и холодной водой очень жесток к пользователю. В идеале его интерфейс решает три основные задачи:
  • Позволяет выбрать напор воды.
  • Позволяет выбрать температуру воды.
  • И защищает систему от гидравлического удара.

Вот тут вы можете узнать пару своих знакомых кранов:



А это — очень страшный автомобильный диод, по нему только вперёд:



Итак, если вам интересно продолжение про интерфейсы в реальном мире – заходите в пост. Осторожно, трафик.
Читать дальше →
Всего голосов 110: ↑105 и ↓5+100
Комментарии227

Альтернативы Raspberry Pi

Время на прочтение11 мин
Количество просмотров130K
29 февраля 2012 наш мир немного изменился к лучшему. Raspberry Pi Foundation анонсировал начало продаж маленьких одноплатных компьютеров под маркой Raspberry Pi. В начале продаж купить устройство было непросто, но понемногу рынок насытился и с июля 2012 вы наконец могли просто пойти в магазин и купить или заказать через интернет первую «Малинку», Raspberry Pi Model B — одноплатный Linux-компьютер с 700 МГц процессором, 0.5 Гбайт ОЗУ, USB, Ethernet и 26 выводами GPIO, позволяющими подключать внешние платы, устройства ввода-вывода и исполнительные устройства. Устройство, построенное на базе относительно недорогой четырехслойной платы, с низкой себестоимостью, с ценой для конечного потребителя $35, сделанное настолько хорошо, что альфа-версия Raspberry Pi Model B стала победителем номинации «Hardware Design» на ARM TechCon 2011.


Читать дальше →
Всего голосов 59: ↑53 и ↓6+47
Комментарии158

Настройка PHP-FPM: используем pm static для максимальной производительности

Время на прочтение5 мин
Количество просмотров26K


Неотредактированная версия статьи была изначально опубликована на haydenjames.io и публикуется здесь с разрешения ее автора.


Я в двух словах расскажу, как лучше всего настроить PHP-FPM, чтобы увеличить пропускную способность, снизить задержку и более стабильно использовать процессорные ресурсы и память. По умолчанию строка PM (process manager, менеджер процессов) в PHP-FPM имеет значение dynamic, а если у вас не хватает памяти, то лучше установить ondemand. Давайте сравним 2 варианта управления на основе документации php.net и посмотрим, чем от них отличается мой любимый static pm для большого объема трафика:


pm = dynamic — количество дочерних процессов настраивается динамически на основе следующих директив: pm.max_children, pm.start_servers,pm.min_spare_servers, pm.max_spare_servers.
pm = ondemand — процессы создаются по требованию (в отличие от динамического создания, когда pm.start_servers запускаются при запуске сервиса).
pm = static — количество дочерних процессов фиксировано и указывается параметром pm.max_children.

Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии1

Балансировка записи и чтения в базе данных

Время на прочтение14 мин
Количество просмотров8K
image

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

В этой статье я покажу, каким образом такая концепция позволяет быстро и удобно балансировать запись и чтение в базу данных без какого-либо изменения логики работы. Похожий функционал попытались реализовать в современных коммерческих СУБД (в частности, Oracle и Microsoft SQL Server). В конце статьи я покажу, что получилось у них, мягко говоря, не очень.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии96

Датчик температуры и влажности на ардуино с отправкой и отрисовкой графика (Часть1)

Время на прочтение5 мин
Количество просмотров13K
Основной задачей проекта является мониторинг температуры в теплице удаленной от дома на 11-15 метров. Без возможности организации прокладки UTP и питания до нее.
Читать дальше →
Всего голосов 20: ↑15 и ↓5+10
Комментарии26

«Killer apps» для ПК из 80-х: VisiCalc и WordStar

Время на прочтение5 мин
Количество просмотров6.6K
Как в 80-х предки Microsoft Office и Google Docs обеспечили популярность ПК, привели к массовым сокращениям штата бухгалтеров и на долгие годы завоевали сердца некоторых писателей.

Всего голосов 19: ↑18 и ↓1+17
Комментарии6

Солнечная электростанция на дом 200 м2 своими руками

Время на прочтение15 мин
Количество просмотров166K
Частенько в сети проскакивают сообщения о борьбе за экологию, развитие альтернативных источников энергии. Иногда даже проводят репортажи о том, как в заброшенной деревне сделали солнечную электростанцию, чтобы местные жители могли пользоваться благами цивилизации не 2-3 часа в сутки, пока работает генератор, а постоянно. Но это всё как-то далеко от нашей жизни, поэтому я решил на своем примере показать и рассказать, как устроена и как работает солнечная электростанция для частного дома. Расскажу обо всех этапах: от идеи до включения всех приборов, а также поделюсь опытом эксплуатации. Статья получится немаленькая, поэтому кто не любит много букв могут посмотреть ролик. Там я постарался рассказать то же самое, но будет видно, как я все это сам собираю.


Всего голосов 90: ↑90 и ↓0+90
Комментарии525

Дешёвые и дорогие батарейки ААА

Время на прочтение3 мин
Количество просмотров344K
Реклама добилась своего: большинство покупателей уверены, что батарейки Duracell и Energizer значительно лучше других. Чтобы проверить, так ли это, я протестировал 20 видов щелочных (alkaline) батареек AAA — от самых дешёвых до самых дорогих.


Читать дальше →
Всего голосов 369: ↑363 и ↓6+357
Комментарии388

Спецификации в PHP

Время на прочтение8 мин
Количество просмотров11K
Happyr Doctrine Specification

Кратко о спецификациях:


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

На сегодня существует два (если знаете другие проекты, напишите пожалуйста в комментариях) успешных и популярных проекта на PHP, позволяющих описывать бизнес-правила в спецификациях и фильтровать наборы данных. Это RulerZ и Happyr Doctrine Specification. Оба проекта являются мощными инструментами со своими преимуществами и недостатками. Сравнение этих проектов потянет на целую статью. Здесь же я хочу рассказать, что нам привнес новый релиз в Doctrine Specification.

Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии4

Linux-разработка в Windows с WSL и Visual Studio Code Remote

Время на прочтение2 мин
Количество просмотров30K
Работа с VS Code Remote и Windows Subsystem for Linux (WSL) дает возможность использовать полнофункциональную среду разработки Linux на ноутбуке или десктопе с предустановленной Windows. В этом материале рассмотрим то, как использовать эти инструменты для разработки приложений на Python в Linux.

image
Всего голосов 19: ↑16 и ↓3+13
Комментарии12

Немного о стандартах космической связи

Время на прочтение11 мин
Количество просмотров16K
image
Спутник Метеор М1
Источник: vladtime.ru


Введение


Эксплуатация космической техники невозможна без радиосвязи, и в этой статье я постараюсь объяснить основные идеи, которые легли в фундамент стандартов, разработанных Международным Консультативным Комитетом по космическим системам передачи данных (Consultative Committee for Space Data Systems – CCSDS. Далее будет использоваться эта аббревиатура).

Эта публикация будет посвящена в основном канальному уровню, однако основные понятия для других уровней тоже будут введены. Статься ни коим образом не претендует на доскональное и полное описание стандартов. С ним вы можете ознакомиться на сайте CCSDS. Однако они очень тяжелы для восприятия, и чтобы в них разобраться мы потратили немало времени, поэтому здесь хочу привести базовую информацию, обладая которой разобраться со всем остальным будет гораздо легче. Итак, начнём.
Читать дальше →
Всего голосов 27: ↑25 и ↓2+23
Комментарии19

Главный секрет разработки хороших Electron-приложений

Время на прочтение7 мин
Количество просмотров17K
Кое-кто люто ненавидит Electron-приложения. То, что приложение включает в себя браузер Chromium, кажется, мягко говоря, странным. Это ощущение усиливается в ходе работы с такими приложениями. Они потребляют много памяти, медленно загружаются и не отличаются особенно высокой скоростью реакции на воздействия пользователя. Непросто разработать хорошее приложение для веба. Зачем же веб-технологии притащили в настольную среду? Ведь возникает такое ощущение, что в этой среде они создают кучу проблем?

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


Некоторые из проблем Electron (большие размеры файлов, медленная загрузка) являются наследием технологий, на которых основана эта платформа. Их надо решать на низком уровне. Более серьёзные проблемы (потребление памяти, неповоротливость интерфейсов) могут быть решены на том уровне, на котором разрабатывают Electron-приложения. Однако решать эти проблемы непросто. Что если есть некий секрет, зная который можно, в автоматическом режиме, минимизировать эти недостатки?

Если вы любите читать программный код — можете сразу же заглянуть в этот репозиторий. Тут находится проект, который будет рассмотрен в этом материале.
Читать дальше →
Всего голосов 34: ↑28 и ↓6+22
Комментарии35

Опусы про Его Величество Клей. Часть первая — вводная

Время на прочтение12 мин
Количество просмотров66K
Есть такие области знания, которые «аршином общим не измерить...». В принципе, в моей «домашней» области, коллоидной химии, под такое направление можно спокойно помещать любое фундаментальное понятие, будь-то адсорбция (с адсорбентами) или адгезия (с клеями). Честно говоря, мысль написать про клей у меня не возникала. Но когда читатели в каждой теме, связанной с полимерами начинают просить рассказать про клеи — об этом поневоле задумаешся (ну и хочется конечно же отпарировать на «все надо клеить суперклеем»). Адгезия и клеи — очень обширная тема, поэтому я все-таки решил за нее взяться, но разбить повествование на несколько частей. Сегодня первая часть — вводно-информационная. Чтобы узнать за счет чего клей клеит, какие бывают клеи и какой клей лучше подходит для склеивания _____ (вписать нужное), традиционно идем под кат (и кладем в закладки).

Читать дальше →
Всего голосов 166: ↑163 и ↓3+160
Комментарии155

Рецепты Nginx: асинхронные уведомления из PostgreSQL в websocket

Время на прочтение2 мин
Количество просмотров5.2K
Для приготовления асинхронных уведомлений из PostgreSQL в websocket нам понадобится сам nginx и его плагины postgres, push-stream, set-misc. (Я дал ссылки на свои форки, т.к. делал некоторые изменения, которые пока не удалось пропихнуть в оригинальные репозитории. Можно также воспользоваться готовым образом.)
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии4

Выбираем бюджетный карманный осциллограф

Время на прочтение7 мин
Количество просмотров97K
Приветствую!

Добавляю небольшую статью на тему выбора домашнего компактного осциллографа начального уровня для работы и хобби.

Почему речь пойдет про карманные и компактные — потому что это самые бюджетные варианты. Настольные осциллографы – это более громоздкие, функциональные устройства, и, как правило, достаточно дорогие модели ($200-400 и дороже) на 4 канала со множеством функций.
А вот компактные модели на 1 канал для простых измерений и оценки формы сигнала можно приобрести буквально за $20...$40.


Читать дальше →
Всего голосов 39: ↑35 и ↓4+31
Комментарии66

Логирование в распределенном php-приложении

Время на прочтение17 мин
Количество просмотров39K


В статье пойдет речь о том, какую пользу оказывает логирование. Расскажу о логах по PSR. Добавлю немного личных рекомендаций по работе с уровнем, сообщением и контекстом логируемого события. Будет приведен пример, как можно организовать логирование и мониторинг с помощью ELK в приложении, написанном на Laravel и запущенном через Docker на нескольких инстансах. Распишу важное правило системы оповещения. Приведу пример скрипта, который поднимает одной командой весь стек мониторинга.

Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии16

Сократить бэкапы на 99.5% с hashget

Время на прочтение8 мин
Количество просмотров11K

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


Это обзорная статья для описания возможностей. Само использование hashget (довольно простое) описано в README проекта и wiki-документации.


Сравнение


По закону жанра, начну сразу с интриги — сравнения результатов:


Data sample unpacked size .tar.gz hashget .tar.gz
Wordpress-5.1.1 43 Mb 11 Mb ( 26% ) 155 Kb ( 0.3% )
Linux kernel 5.0.4 934 Mb 161 Mb ( 20% ) 4.7 Mb ( 0.5% )
Debian 9 (LAMP) LXC VM 724 Mb 165 Mb ( 23% ) 4.1 Mb ( 0.5% )

Предыстория, каким должен быть идеальный и эффективный бэкап


Каждый раз, когда я делал бэкап свежесозданной виртуалки, мне не давало покоя чувство, что я что-то делаю не так. Почему у меня получается увесистый бэкап от системы, где моего бесценного нетленного творчества — однострочный index.html с текстом "Hello world"?

Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии40
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность