субота, 11 лютого 2023 р.

Питание устройств через POE

Удобный способ организовать питание тому или иному гаджету (это может что угодно - точка доступа, шлюз, мини ПК, камера) в месте куда проложен Ethernet кабель - при помощи технологии POE - Power Over Ethernet. Она позволяет по одному кабелю передавать и данные и питание. Часто это применяют в IP камерах - которые поддерживают POE и работают через специальные POE коммутаторы или NVR (сетевые видеорегистраторы). Но это можно применять и для других устройств, которые не поддерживают эту технологию. Возьмем например шлюз с Ethernet - tuya или один из вариантов для mihome - Xiaomi hub 2 или Xiaomi Gateway 4.

Для этого, кабель который идет от роутера сначала должен пройти через специальное устройство - POE инжектор. Он обычно выглядит как блок питания в розетку, с двумя Ethernet разъемами. В входящий - подключается кабель от роутера, там просто передача данных, а исходящий идет к потребителю - в нем уже и сеть и питание. Если устройство поддерживает РОЕ - то кабель сразу подключается к нему, если нет - как шлюз, тогда применяется второе устройства - сплиттер. В него подключается один кабель с инжектора с сетью и питанием, а выходит два - отдельно сеть и отдельно питание. Нужно только выбрать вариант в зависимости от мощности и скорости передачи данных от устройства.

Еще один плюс такого решения - организовав бесперебойное питание на уровне POE коммутатора или инжектора - автоматически получаем его для устройств которые к ним подключены.

понеділок, 6 лютого 2023 р.

Шлюзы

Шлюз, он же хаб - что это такое и чем отличается между собой вся та огромная куча устройств, от которых у многих голова идет кругом.

Для удобства я буду использовать один общий термин - шлюз (на мой взгляд он более подходящий).

середа, 4 січня 2023 р.

Знайомство з Flutter для iOS розробників

Команда Flutter додала до документації спеціальний розділ, який допомагає iOS розробникам познайомитися з фреймворком, порівняти його основні концепції та компоненти з аналогічними у SwiftUI або UIKit.

Схожий документ є також і для мови Dart, де його порівнюють з Swift.

вівторок, 3 січня 2023 р.

Повернення активності у блозі

Трохи відпочинку і уперед, їбошить простір україномовного техноблогінгу.


Upd. На жаль зараз у нас одна мета - вижити. *** русня

неділя, 29 листопада 2020 р.

Внедрение зависимостей (dependency injection) в Swift 5.1

Внедрение зависимостей очень горячая тема в любой области разработки, где мы пишем что-то более сложное чем Hello, World. Однако несмотря на казалось бы изученный вдоль и поперек вопрос, вариантов его решения вы можете на просторах интернета найти великое множество. И в каждом месте оно подается как единственно правильное. И как же выбрать? Предлагаю в этой статье немножко рассмотреть подходы, их плюсы и минусы, немножко поиграться со Swift’ом вообще и попробовать его новые фичи в виде @PropertyWrapper’s.

неділя, 16 серпня 2020 р.

CS193p iPhone Application Development Spring 2020

Lecture videos from the Stanford University course CS193p, Developing Applications for iOS using SwiftUI. These lectures were delivered on-line (due to the novel coronavirus outbreak) to Stanford students during Spring quarter (April) of 2020 and are now being made available for all to watch.

Supporting materials (homework write-ups, demo code, etc.) that were distributed to students at the time the course was given have been archived at https://cs193p.stanford.edu.

четвер, 27 лютого 2020 р.

Entity Component System (ECS)

Все мы неоднократно слышали о чудесах объектно-ориентированного программирования (ООП), позволяющих контролировать сложность программ, которые мы разрабатываем. Объект реального мира сопоставляется объекту какого-либо класса в коде. Вспомним, к примеру, хрестоматийный пример с Animal, Dog, Cat и т.д.

Но оказывается, игровая индустрия уже давно ушла от ООП в сторону Data Oriented Design (DOD), дизайна программ основанного на данных. Вот главные причины:

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

Эти и многие другие проблемы ООП в играх рассматривает Кэтрин Вэст (Catherine West) в своем выступлении Using Rust For Game Development на RustConf 2018.

Кэтрин, как апологет языка Rust, показывает, как использование устаревшего антипаттерна SuperObject в этом языке ведет к бесконечной борьбе с borrow-checker'ом. "Сдавшись", Кэтрин постепенно начинает логично модифицировать архитектуру игры так, что в итоге приходит к Entity Component System (ECS), пожалуй, самой знаменитой реализации концепции Data Oriented/Driven Design, в которую Rust вписывается чуть более, чем полностью. В результате получается гибкая и более производительная система сущностей и компонентов, которые могут быть без труда сериализованы на диск или в сеть.

Кстати, есть более длинная, но и более интересная версия доклада в виде поста с кодом в блоге Кэтрин

HyperComments for Blogger

comments powered by HyperComments