Pull to refresh
76
0.5
Макс Граков @GrakovNe

Разработчик

Send message

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

Вы же используете DNS от Cloudflare

Нет, у меня сертификат Let's Encrypt. Cloudflare только управляет DNS-зоной

не провайдер прописал 

Что касается настроек WLAN и VLAN, я контролирую сеть. За ее пределами - в любом случае я ничего не могу поделать с инфраструктурой провайдера: она есть какая есть и конфиг мне все равно пришлют так или иначе

Я не хочу параноить и обкладываться DMZ, я хочу чтобы мне было удобно и при этом большую часть времени все работало за минимум усилий

В чем проблема включить в него нормальный роутер и отключить у него вифи

Если вы предлагаете поставить рядом вторую коробку, которая решит проблему недостаточной мощности, то я уже поставил рядом Rasbperry, которая работает как NAS и решает ровно эту проблему

Выбор "еще один роутер" vs "отдельный NAS" - чистейшая вкусовщина, которая порешалась в моем случае тем, что малинка уже была, а другого роутера - не было

физически никакую квартиру греть не будет

Если бойлер работает - в шкафу, где он стоит температура около 32 градусов. И пока я не могу поменять бойлер на тот, у которого нормальный теплоизолят - имеем что имеем

Расписание на включение и выключение 

У кондиционеров в моей квартире нет опции расписания, которое бы настраивалось с пульта

Зависит от роутера

Да, все так. Я не выбираю роутер. Мой провайдер выбирает мне роутер и сдает мне его в аренду. А он не справляется с такой нагрузкой и не имеет даже USB 3.0 для подключения SSD

(нет, растение так и останется не политым - ибо забудете)

Пуши будут приходить вежливо, но настойчиво и рано или поздно я полью цветок

Да, конечно. Я все еще могу подойти и нажать на кнопку выключателя вручную и это сработает. Разумеется, Switch Bot об этом не узнает и не обновит состояния, но "отжать" кнопку обратно без взаимодействия вполне сможет

Давайте отвечу предметно

NAS вообще можно сделать из роутера

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

Кондиционер

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

Кондиционер в спальне должен начинать работать уже тогда, когда я точно сплю, чтобы не мешать засыпать, но при этом компенсировать нагревание от утреннего солнца, поэтому он начинает работать в 6 утра и заканчивает в 13

Бойлер?

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

У вас столько выключателей

Да. И я не хочу вставать с кресла, где я сижу с кофе и книжкой, потому что мне стало темно

Датчики полива для растений

Вовремя получить push на телефон о том что цветок пора полить - это лучше, чем ничего. Это не полноценная автоматизация, но пару раз помогало не дать кипарису засохнуть

цель максимально сэкономить электричество

Нет, но если можно не платить по 30 евроцентов за лишний киловатт - я не буду платить по 30 евроцентов за лишний киловатт. Я не жадничаю и не сижу без освещения, но если никуда не спешу, то запущу стиральную машинку и посудомойку ночью, при помощи, как раз скриптов автоматизации

больше смахивает на гиковство, чем на что-то реально необходимое и полезное

Для жизни мне нужна палатка, чайник, несколько вилок и ножей и три комплекта сменной одежды. Все остальное - это способы сделать жизнь комфортнее. Если это не работает - почему бы не пользоваться

А когда съезжаете

Согласно моему текущему договору аренды, я найму клининг, который отмоет квартиру, и маляров, которые перекрасят стены. После этого следов гарантированно не останется

Обсудить эту и другие статьи блога вы можете в нашем Telegram-канале "Управление потоком задач".

Шли бы вы вон с хабра со своими тг-каналами

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

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

"Это логично, рационально, давайте жить так чтобы было правильно"

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

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

Lossless тоже рационально избыточен и не особо нужен для домашнего потребления. Занимает кучу места, оборудование чтобы его воспроизводить стоит чуть-чуть дороже, чем lossy форматы, можно очень легко найти дешевые ЦАПы декодируют alac куда хуже чем ogg в силу реализации софта и много еще чего. Но какая разница, если ты получаешь больше удовольствия?

Можно это рационализировать, говорить что это форматы которые можно конвертировать туда-сюда без потерь каждый раз, что mp3 проприетарный, а flac - нет, но зачем?

Я пришел к тому, что слушаю музыку так, как мне нравится, потому что для меня - это не только звуковые колебания в барабанные перепонки, но и все вот это иррациональное остальное, которое добавляет удовольствия

А если что-то добавляет удовольствия, зачем избегать то, что нравится?

Пост, кажется, написан так, чтобы собрать все возможное, что может вызывать неприязнь

  • Видеоролик вместо статьи

  • Плохое форматирование

  • Набор лозунгов и кричащих предложений вместо хоть какого-то повествования

  • Ссылка на телеграм-канал в конце, ради которой пост и написан

  • Обещание написать "потом" про единственно-интересное, что есть в "статье"

Поздравляю, получилось: отвращение успешно вызвано

причем этот "пик" никак не отличается от других

На самом деле, отличается. После сканирования кода пользователя либо по диплинке перекинет в приложение банка-по-умолчанию, где он проверит сумму, получателя и выберет счет списания, после чего явно нажмет кнопку "перевести", либо, если апплика нет - в браузер, где произойдет то же самое

То есть платежный QR это не "пик" карточкой, это просто способ дать пользователю ссылку, по которой можно сделать перевод

А если пользователь не проверил что "лайк этим милым котятам" на самом деле "перевод на стотыщ" и даже нажал кнопку "перевести" прямо в своем банковском приложении, кажется, никакого принципиально нового способа скама не произошло - обычное преступное использование чудовищной невнимательности

Когда я вижу очередную порцию "нейроистерики", мне всегда хочется выяснить, а правда ли нейронки - это что-то новое?

Когда появились первые RAD вроде FoxPro (или Delphi, как более современный пример) - было модно хоронить энтерпрайзную разработку и убеждать всех, что айтишники скоро пойдут на поля.

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

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

Когда появились более-менее работоспособные JS-сайты (на том, что тогда называли AJAX), стало модно говорить, что вдумчивой разработке конец, формошлепы захватят мир и будут согласны работать за три копейки.

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

Теперь появились доступные лингвистические модели и надо ли думать, что происходит что-то принципиально новое, чем вписывание новых инструментов в существующие задачи бизнеса, сложность которых все время растет настолько, что этих инструментов едва-едва хватает, чтобы ее покрыть?

Что ООП, что Интернет, что GPT любой версии - не более чем инструменты решения задач, это не магическая волшебная палочка. Никакой "мир" это не перевернет. Точно так же будут нужны художники, которые рисуют конкретные штуки, точно так же востребованность врачей, которые будут лечить пациентов, не ставится под сомнение, и точно так же цех IT-специалистов будет продолжать строить решения для конкретных компаний за большие деньги.

И те и другие и третьи начнут использовать нейронки в качестве инструмента ровно так же, как они начали использовать пергамент, ручку и микроскоп в свое время.

И нет никаких проблем для разработчика, которому сегодня приходится "быстренько осваивать" парочку новых фреймворков на каждом новом проекте в разных предметных областях, о которых он еще вчера вообще не знал, в том, чтобы научиться писать запросы к нейромоделькам. Гугл же мы все как-то освоили.

* Орфография текста отредактирована GPT-3, которую я как разработчик повседневно использую в быту и в работе

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

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

В том коде, что я скинул работает очень наивная реализация: при получении пачки апдейтов апплик начинает процессить каждое входящее сообщение и типа-параллельно (на корутинах) отвечать на них чем-то. Для моего бота с конвертером книжек и другого, который трекает swift-платежики и имеет около 500 пользователей в день, этого хватает с лихвой на самом дешевом железе DigitalOcean.

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

Короче говоря, вариантов много и все это системные подходы, которые порешают именно время обработки сообщений от входа до выхода, а не точечно пофиксят момент парсинга файлов ответа

Но оптимизировать болезни производительности стоит при их наличии) Я стою на позиции "пока есть опция дешево докинуть нод в кластере или железа на каждую - надо это делать и не городить сложный код"

Для своих телеграм-ботов я решил вопрос с локализацией, например, вот так: https://github.com/GrakovNe/kindle-sideload/blob/main/src/main/kotlin/org/grakovne/sideload/kindle/telegram/localization/LocalizationService.kt

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

То есть, чтобы добавить поддержку нового языка, мне нужно взять оригинальный ресурсный файл, например, https://github.com/GrakovNe/kindle-sideload/blob/main/src/main/resources/messages.json и скопировать его с нужным постфиксом, локализовав содержимое, а потом сделать то же самое с текстом кнопок в другом ресурсном файле

Это избавляет от перебора через if-else-if, паттерн-матчинга и любых других механизмов, которые хардкодят набор языков в коде

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

Современное энтерпрайзное корпоративное программирование - это прежде всего работа, кмк

«Полет мысли, творчество и придумывать новое» - это либо про хобби и свои пет-проекты, либо в балансе с прозрачностью и наличием отчетности

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

я не понимаю этой плашки. С тех пор, как она появилась, я видел на ней и 85 и 190 и 230, причем как бы не диапазоне "плюс-минус полгода". Так сильно средняя зарплата ни в какой профессии не может меняться, да и количество наймов/сокращений бы переворачивало рынок так сильно, что заметили бы вообще все

Я бы послушал самих авторов этой плашки, как считаются данные для нее, но до той поры, как-то всерьез ее воспринимать не могу

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

Если так, вам ничего не мешает пройти техническое собеседование в любую компанию, кроме гордыни

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

Почему токарь на заводе просто показывает диплом,

Потому что не просто показывает

В Омске на агрегатном заводе, который делает много чего серьезного и промышленного, после базового изучения анкетки (весьма дурацкой, кстати) и чтения дипломов, кандидата подводят к станку и просят выточить деталь по не очень сложному чертежу. Станок обычно хороший, но ручной, без ЧПУ и автоматики

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

Честно сказать, ни разу такого не видел и слышал только на уровне легенд.

у меня в шестом классе появился одноклассник, которого оставили на второй год, кстати

Проучился с нами до конца девятого: звезд с неба не хватал, но откровенно-глупым не был. Не сдал переводной экзамен из-за каких-то личных проблем в семье, школа предложила опцию. Потом пошел в автотранспортный и, насколько я знаю, нормально живет. Было это в 2009 году

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

Возможно у нас с вами разные вузы, но когда я учился (а это было буквально 5 лет назад) - после первой сессии первого курса поток поредел где-то на половину

К концу бакалавриата от 100 поступивших осталось человек 20 и все уже где-то работали

Information

Rating
2,058-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer