Pull to refresh
2
0.1
kalbas @kalbas

User

Send message

Слезаем с облачной иглы Aqara и подключаем устройства к контроллеру Wiren Board

Reading time9 min
Views53K

В первой статье «Облачный умный дом: что нужно знать, чтобы избежать проблем» я рассмотрел преимущества и недостатки облачных решений, а также проблемы, с которыми за последние месяцы пришлось столкнуться пользователям разных облаков. Но довольно теории, переходим к практике.

Я купил несколько устройств Aqara, которые помогут мне сделать несколько типичных сценариев умного дома. Сперва я подключу устройства к родному облаку Aqara: проверю удобство, создание сценариев и работу без интернета.

Затем я откажусь от облака Aqara и перейду на локальное решение Wiren Board 7 с модулем расширенияSprut.stick ZigBee WBE2R-R-ZIGBEE-SH, оболочкой Sprut.hub и Алисой. Сравню результат и процесс с родным облаком.

Читать далее
Total votes 18: ↑17 and ↓1+20
Comments34

Как получить все сообщения через логическую репликацию Postgres

Reading time7 min
Views3.4K

В одной из предыдущих статей я описал Push-based Outbox Pattern (шаблон исходящих сообщений на основе push с логической репликацией Postgres). Идея заключается в том, чтобы сохранить исходящее сообщение (например, событие) в той же транзакции базы данных вместе с изменением состояния. Благодаря этому мы гарантируем, что сообщение не будет потеряно, а наш бизнес-процесс будет продолжаться и станет согласованным.

Postgres может помочь и проинформировать нас, когда добавляется новое сообщение. Мы можем использовать встроенный механизм журнала упреждающей записи (WAL, Write-Ahead Log) вместе с логической репликацией.

Читать далее
Total votes 5: ↑5 and ↓0+5
Comments0

Личный опыт подтягивания английского к собеседованиям

Reading time5 min
Views25K

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

Читать далее
Total votes 27: ↑24 and ↓3+23
Comments18

Насколько круто иметь свой сервер в комнате

Reading time6 min
Views117K

Некоторые олды часто вспоминают эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.

Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.
Читать дальше →
Total votes 117: ↑116 and ↓1+146
Comments317

Важнейшие критерии при выборе Extract – Load решения для интеграции данных в DWH

Reading time7 min
Views2.9K

Привет! На связи как всегда Артемий Козырь, Analytics Engineer в Wheely.

Если вопросы о том, зачем нужна интеграция данных, в чем различия ETL и ELT, как правило уже не требуют пояснений и ответов, и очевидны почти всем, то вопросы о том, какой именно Extract - Load сервис использовать, в чем различия между разными решениями, и как не прогадать в долгосрочной перспективе я слышу гораздо более часто.

В этой публикации попробую резюмировать свои знания:

— Каталог поддерживаемых источников и приемников данных

— Метод чтения данных из источников (Extract)

— Способы репликации в целевое Хранилище (Load)

— Работа с изменениями структуры данных (Schema Evolution)

— Трансформации перед загрузкой данных (EtLT)

— Тип развертывания решения (Deployment)

Буду объянять и показывать примеры на сервисах, которые использовал сам: Hevo Data, Fivetran, Airbyte. Однако критерии униварсальны и применимы для любых других систем подбного класса.

Читать далее
Total votes 4: ↑3 and ↓1+2
Comments2

Замена облакам в нашем кружке «oч.умелые ручки»

Reading time6 min
Views20K

Последнее время доверие к облакам как-то резко упало, и пока кончалась годовая подписка на Google One на 2Т было время подумать, что делать дальше. В итоге родилась старая концепция - 'храним данные дома'. И вот что их этого получилось.

Читать далее
Total votes 25: ↑25 and ↓0+25
Comments38

Пробую российский софт для умного дома. Он правда работает?

Reading time8 min
Views23K

Всем привет! С вами снова Дмитрий, не программист. В прошлый раз я установил на Wiren Board 7 визуальную среду Node-RED, не умерев в консоли. И даже проверил четыре популярных сценария: ноду Debug, мастер-выключателя, включения вытяжки при превышении концентрации CO₂, приборной панели (dashboard). Позднее я рассмотрел еще три сценария: темной комнаты, дневного/ночного освещения, термостата для теплого пола и батарей.

Но умный дом можно собрать не только на визуальной среде Node-RED. Российские разработчики давно предлагают программный пакет Sprut.hub для домашней автоматизации. Сценарии можно задавать как через фирменную визуальную среду, так и скриптами js. В Sprut.hub поддерживается большое число различных устройств, а некоторые пользователи считают его даже удобнее и проще Node-RED. Значит, настало время его попробовать! Более подробную информацию о Sprut.hub можно почерпнуть здесь.

Читать далее
Total votes 13: ↑12 and ↓1+16
Comments10

Где собрать удалёнщиков в выходные. Пять небанальных локаций

Reading time6 min
Views2.7K

Побыть Львом Толстым, выпить сидра прямо из бочки и провести лошадиную психотерапию.

Читать далее
Total votes 13: ↑9 and ↓4+7
Comments6

Строим бюджетный умный домашний кинозал с управлением в HomeKit

Reading time17 min
Views14K


Предисловие.

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

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

Смотреть далее
Total votes 17: ↑17 and ↓0+17
Comments19

Игры для обучения программированию

Reading time6 min
Views28K

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

Профессионалов мало. Но их можно обучать с нуля. Теоретически, при неограниченном времени любого человека можно обучить чему угодно, если у него бесконечное желание и любопытство. Кажется, любопытство даже важнее, чем способности.

Соответствующие способности можно развить, а интеллект — повысить в рамках генетически заданного широкого коридора. Это возможно в любом возрасте. Лучше всего с детства, хотя и взрослым ничто не мешает… Проще всего начинать с игр.
Читать дальше →
Total votes 51: ↑51 and ↓0+51
Comments24

Миграция данных из различных RDBMS в HADOOP

Reading time11 min
Views5.6K

В статье будет рассмотрен процесс экспорта данных в Hadoop из различных РСУБД посредством фреймворка Spark. Для взаимодействия с фреймворком Spark будет использован язык программирования Python с применением api pySpark.

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

Сможете ли вы решить задачки со вступительных экзаменов в Оксфордский университет?

Reading time5 min
Views76K


Есть ли у вас необходимый запас знаний для изучения философии в Оксфорде? Предлагаем вашему вниманию загадки на эпистемическую логику – то есть, связанные с рассуждениями о самом знании. Но я знаю, что вы знаете, что я знаю, что вы это знаете.

Все три задачки в последние годы задавались во время собеседований при поступлении в Оксфордский университет на философский факультет. В каждой из задач есть первоначальный вопрос, и почти все кандидаты правильно ответили на него. Далее в тексте идут дополнительные вопросы, с которыми справились только лучшие из лучших.
Читать дальше →
Total votes 66: ↑63 and ↓3+80
Comments93

Создаем аналитическое хранилище данных командой из 2-3 спецов

Reading time9 min
Views21K
Всем привет!
Сделать хорошее аналитическое хранилище (DWH), когда в команде десяток-другой крутых специалистов и пара лет времени — не сложно. Проекты по созданию DWH, Data Lake и BI обычно очень ресурсоёмки и под силу только большим компаниям.
Мне интересно искать и применять практики, которые позволяют компаниям быстро создавать аналитические решения маленькой командой. Этими наработками хочу поделиться в данной статье.
Статья нацелена на:
  • Небольшие команды в начале пути.
  • Создание решений с быстрым возвратом инвестиций.

Коротко о моём DWH опыте (чтобы понимать ограничения моего мышления):
  • Реализовывал три похожих не очень больших проекта по созданию DWH: 5-15 терабайт, 100+ сущностей, в команде 2-4 специалиста, в качестве источника — одна основная база продукта (сервиса) и несколько дополнительных.
  • Участвовал в супер большом проекте DWH: 1+ Петабайт (прирост 1 терабайт в день), 2000+ сущностей, в команде 100+ специалистов. В этой компании жадно изучал Data Vault 2, исходники DWH движка, бизнес-процессы, которые масштабируются на сотни специалистов, правила описания DWH в вики и методы постановки задач.
  • В продакшн работал только с batch процессами, со stream знаком только по обучающим курсам и книгам.

Ценность для бизнеса


Цепочка создания ценности в процессе работы с данными (источник):


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

Как сделать стрим в Postgres?

Reading time4 min
Views10K

На одной конференции мне задали вопрос (спасибо Александру!): как сделать стрим в PostgreSQL? Представьте, что имеется bytea и вы к нему хотите что-то дописать. Люди столкнулись с тем, что на это в PostgreSQL  тратится гигантское время  и растет WAL-трафик. 

Расскажу, что с этим возможно сделать — это будет еще один пример оптимизации TOAST (о чем я недавно писал), на на этот раз — для быстрой записи потока бинарных данных. На самом деле мой коллега, Никита Глухов, за несколько часов сделал расширение, которое «вылечило» проблему, и мы даже успели рассказать про это на сессии блиц-докладов на PGConf.Online 2021.

Читать далее
Total votes 33: ↑33 and ↓0+33
Comments2

Как работать с Minikube: рекомендации и полезные советы

Reading time5 min
Views24K

Kube Earth by Anarki3000

Minikube — популярное решение для запуска локального кластера Kubernetes на macOS, Linux и Windows. Несмотря на большой набор функций и кроссплатформенную поддержку, Minikube всё же отличается от полнофункционального кластера Kubernetes.

Часто это сбивает с толку разработчиков и новых пользователей Kubernetes, которым нужно протестировать приложение в локальной среде. Команда Kubernetes aaS VK Cloud Solutions перевела статью о том, как наладить беспроблемную работу с Minikube.
Читать дальше →
Total votes 20: ↑19 and ↓1+31
Comments2

Паттерны асинхронных обменов на платформе Авито

Reading time11 min
Views9.9K

Привет! Меня зовут Павел Агалецкий, я старший инженер в команде архитектуры. Одна из областей ответственности нашей команды — синхронное (RPC) и асинхронное взаимодействие между сервисами. 

В этой статье я расскажу о том, как можно связать сервисы друг с другом и как это делаем мы в платформе Авито. 

Читать далее
Total votes 13: ↑13 and ↓0+13
Comments9

Как мы ускорили выполнение запросов PostgreSQL в 100 раз

Reading time10 min
Views39K

Существует великое множество статей об оптимизации PostgreSQL — эта «кроличья нора» весьма глубока. Когда несколько лет назад я начал разрабатывать бэкэнд аналитического сервиса, у меня уже был опыт работы с другими СУБД, такими как MySQL и SQL Server. Тем не менее, раньше мне не приходилось так фокусироваться на производительности. В прошлых проектах, над которыми я работал, либо не было жестких требований к времени обработки (DS/ML), либо не требовалось обрабатывать много строк одновременно (обыкновенные веб-приложения). Однако в этот раз мои запросы:

состояли из 3-10 JOIN-ов по коррелирующим запросам;

уielded от 10 до 1,000,000 строк;

должны были выполняться в течение времени, определенного UX-ом;

не могли быть hinted — пока Cloud SQL, управляемый PostgreSQL в Google Cloud, не стал поддерживать pg_hint_plan в конце 2021 года;

запрещали прямой доступ к серверному процессу, чтобы, например, хакнуть некоторые perf — потому что PostgreSQL был managed.

Получение целого миллиона строк в одном API endpoint сигнализирует о проблеме в алгоритме или архитектуре. Конечно, все можно переписать и перепроектировать, но за это нужно платить.

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

Читать далее
Total votes 27: ↑24 and ↓3+24
Comments2

Распутывание микросервисов или балансировка сложности в распределенных системах

Reading time13 min
Views13K

Эта статья является переводом материала «Untangling Microservices, or Balancing Complexity in Distributed Systems».

Расцвет микросервисов закончился. Uber преобразовывает тысячи микросервисов в более управляемое решение [1]; Келси Хайтауэр предсказывает, что будущее за монолитами [2]; и даже Сэм Ньюман заявляет, что микросервисы никогда не должны быть выбором по умолчанию, а скорее крайним средством [3].

Что происходит? Почему так много проектов стало невозможно поддерживать, несмотря на обещание микросервисов простоты и гибкости? Или все-таки монолиты лучше?

В этом посте я хочу ответить на эти вопросы. Вы узнаете об общих проблемах проектирования, которые превращают микросервисы в распределенные большие комки грязи (distributed big balls of mud), и, конечно же, о том, как их избежать.

Читать далее
Total votes 18: ↑16 and ↓2+18
Comments8

Python и чистая архитектура в 2021 году

Reading time11 min
Views25K

Прошло уже почти 3 года с тех пор, как я впервые воспользовался чистой архитектурой на практике. С тех пор я побывал на многочисленных конференциях, где выступал с докладами на эту тему (вот, например, доклад Clean Architecture in Python с конференции PyGotham 2018). Кроме того, я написал статью о чистой архитектуре на Python, которая попала в рассылку RealPython.com … но сейчас заканчивается 2021 год, и мы ушли далеко вперед. Давайте рассмотрим, как развился Python, изучим разные крутые библиотеки, благодаря которым реализовывать чистую архитектуру на Python сегодня стало гораздо проще.

Сначала вспомним о том, зачем она нужна.

Читать далее
Total votes 9: ↑8 and ↓1+8
Comments1

Как мы создаем микросервисные проекты с нуля

Reading time7 min
Views11K

Считается, что запуск микросервисов изначально затратнее по времени, чем монолит, и наш опыт это подтверждает. Однако, если следовать проверенным процессам, эти затраты можно минимизировать. Делюсь лучшими практиками и составляю чек-лист запуска.

Читать далее
Total votes 8: ↑8 and ↓0+8
Comments24

Information

Rating
3,376-th
Location
Белгород, Белгородская обл., Россия
Registered
Activity