Про недонапряжение — знал, что плохо, но про пожар из-за холодильника как-то не слышал. Вполне допускаю, тем не менее. Кстати, в СНТ часто бывает полный швах с напряжением — просаживается эдак до 180 (у меня тут такой проблемы нет, но, например, на даче у тёщи — вполне бывает). Холодильники есть у всех. По идее должно бы часто наблюдаться… А так, насколько я слышал, обычно в качестве причин пожара на даче называют — плохая/старая проводка, пьяный хозяин уснул с сигаретой и т.д.
Про две фазы — на самом деле у меня так и сделано, но не уверен, что это полностью решает проблему.
Рубильник — реверсивный, т.е. это переключатель на самом деле. Т.е. чтобы подключен был ИЛИ генератор, ИЛИ внешняя сеть, и ни при каких обстоятельствах одновременно и то, и другое. Автомат тут скорее для перестраховки, он номиналом поменьше, чем на трубостойке. Про УЗМ-3-63 подумаю, спасибо — уже думал что-нибудь от перенапряжения добавить. Варочная панель — точно не помню, по-моему даже поболее 16А, если все конфорки включить на полную (вероятно, придётся так не делать). С этой точки зрения не очень удачный вариант, но просто уж так получилось, что она уже есть.
Schneider Electric «Этюд» KA10-001K без фиксации (кнопка). Тут была проблема косметического характера — розетки и короба (открытая проводка, т.к. дом деревянный) текстурированные под цвет дерева, довольно хорошо смотрится, а накладные выключатели без фиксации почему-то можно найти разве что вот кремовые. Решить можно, вставив пружину в обычный выключатель (по-моему, с накладными Schneider Electric фокус должен пройти) или, что дороже, на механизм кнопки напялить текстурированные корпуса. Но я что-то решил не заморачиваться и взять кремовые.
Вообще слегка планирую переделать и правый щиток. Я в комментарии выше, наверное, не очень чётко выразился — опломбированный счётчик на трубостойке, Милур — не опломбирован. Там была интересная история — сначала электрик установил Меркурий 230, для которого я незадолго до того написал драйвер. Я надеялся, что мне разрешат подключить WB к счётчику, но на деле всё вышло печально — МОЭСКовцы счётчик просто не приняли с формулировкой «отсутствует устройство контроля максимальной мощности» (вводной диф. автомат, типа, недостаточен). В итоге пришлось ставить другой Меркурий (навязанный можайским МОЭСКом) без нормального цифрового порта. Он, я так понимаю, «ограничивает» также, как и 230 (т.е. фиксирует превышение и т.д.), так что проблема чисто бюрократическая. Я поискал по интернетам — оказалось, требование незаконно, и были выигранные суды против энергокомпаний, требовавших наличие «устройства ограничения максимальной мощности» на стороне клиента, но мне, увы, был срочно нужен свет, а времени на суды не было, так что я поступил безответственно и пошёл на поводу у бюрократов. В итоге купил в довесок Милур и подключил WB к нему.
УЗО — помимо вводного диф. автомата (на трубостойке) у меня пока по рекомендации электрика стоят дифавтоматы 30мА для стиралки и посудомойки. Пока в раздумьях, достаточно ли этого.
N и Gnd раздельные есть, у дома устроено заземление. Перекос фаз возможен, но пока нет чёткого понимания, как его полностью искоренить (есть однофазная варачная панель, например). Рубильник — да, для генератора, я заядлый удалёнщик и без этого дела швах. Правда, прежде, чем его использовать в этих целях, видимо, надо купить дополнительный полюс и сделать отключение от внешней N при переходе на генератор — мало ли что по проводу придёт по милости электриков во время ремонта трансформатора (или от меня электрикам).
Пока не закончено и не особо красиво, глубоко в процессе (провода буду переделывать, поставлю проходные клеммы, 1-wire термодатчики пока развешены абы как, выключатели не подключены) + я программист, а не электрик (правый щиток собран электриком).
Пишу софт для WB — движок правил, ряд MQTT-драйверов и прочее, заодно строю умную избу.
Оборудование:
Установлены — Wiren Board 5, WBIO-DO-R3A-8 (управление «сервоприводами» радиаторов), WB-MR11 (свет, ТЭНы котла).
Справа — счётчик Милур 305 (неопломбированный, «настоящий» — на трубостойке), с него по RS-485
считываются данные о расходе электроэнергии, напряжении, мощности и т.д. Проводку клал электрик,
чтобы особо не мудрствовать, я попросил его кинуть UTP до выключателей — на
выключатели (без фиксации — кнопки) снизу наклею 1-wire термодатчики, плюс можно
будет ставить дополнительные кнопки по необходимости, например, чтобы с кровати
можно было выключить свет во всём доме.
Функции:
— управление освещением (для кого-то блажь, а по мне — удобно)
— управление ТЭНами котла (твердотельный — Теплодар с блоком ТЭНов)
— управление термоэлектрическими сервоприводами Oventrop на радиаторах
— набор 1-wire термодатчиков (котёл, температура в комнатах)
— замер тепловых потерь дома
Алгоритмы управления отоплением пока тривиальные (позиционное регулирование),
но думаю сделать нормальный ПИД-регулятор.
WB подключается к моему VPN, и перед приездом на дачу я могу выставить подходящую
температуру.
Из идей развития:
— голосовое управление (сначала Tasker+AutoVoice, потом что-нибудь ещё придумаю, чтобы без телефона + что-нибудь вроде «алё, изба» вместо «ок, Google»)
— автопрокачка скважины
— сигнализация на магнитоконтактных датчиках движения, датчиках открытия дверей etc.
— автополив и прочее огородное (в перспективе)
— …
В общем, имейте в виду, что при разработке софта WB определённый элемент dogfooding'а
присутствует :)
Надо было уж не мелочиться и приложить ещё для сравнения ссылку вот на это видео уникальных строительных технологий. Смотрите, 3D-печать надёжнее! Хотя да, конечно, лично мне было бы интереснее увидеть, как делаются окна-двери, перекрытия, etc.
А что касается цветных индикаторов на головке принтера — так известное дело, айтишники часто страдают гиподинамией, надо же как-то с этим бороться — вот пусть побегают.
Если варить кашу из топора, она будет, скорее всего, вовсе не вкуснее каши без топора, и, быть может, будет иметь какой-то привкус — особенно в случае, если топор был грязный. В этой связи считаю топор инструментом бесполезным и даже немного вредным.
Искренне прошу прощения, не удержался. По делу: представьте себе, что вы делаете биндинги для сторонней библиотеки, написанной, например, на C. И в этой библиотеке какие-то объекты должны создаваться функциями create_XXX() (внутри вызывают malloc()) и освобождаться функциями free_XXX(). И вот, честно избегая SetFinalizer, мы пишем в документации, что, хотя Go — язык с GC, конкретно вот эти вот объекты, вследствие особенностей их внутренней реализации, надо обязательно освобождать через какой-нибудь Free(), при том, что эта функция/метод по своей сути не будет делать ничего, кроме освобождения памяти. Звучит логично? По-моему, нет. Как раз для оборачивания подобной логики управления памятью SetFinalizer подходит идеально.
Да зачем так? Надо просто вспомнить старину. Сделают, как в телеграммах — плата за каждое слово, ну, скажем, после границы в 140 символов. Жаль только название «telegram» уже занято.
Я, как емаксер, всегда в качестве Ctrl использую CapsLock. В этой связи прошлый вариант X1 Carbon я покупать не стал (Home+End вместо CapsLock) и взял вместо него X240 — в основном ок, хотя тоже не без недостатков, ghosting на экране и вайфай под убунтой весьма так себе работает (подозреваю, что на карбоне та же проблема может быть, во всяком случае, на самом первом варианте X1 Carbon вполне наблюдалось; надо смотреть чипсет, Intel 7260 — проблемный). Ещё у прошлого карбона F-кнопки были сенсорными — вообще об стенку убиться, как мне кажется. У свежего же вернули вменяемую клавиатуру, это хорошо.
Недавно был на очном собеседовании в Дублинском Google, не знаю пока, возьмут или нет. Знакомый в Google написал мне рекомендацию, но это было уже после prescreen, изначально же на меня вышли, судя по всему, благодаря повышенной активности на гитхабе.
Я когда-то, лет 15 назад, имел несчастье делать кроссплатформенный GUI layer для одной софтины, в случае винды работавший с чистым Win32 (долго объяснять, почему так получилось… но вот получилось). Из этого экспириенса мне больше всего запомнились разрушение памяти ядра в Win9x на BitBlt(), и, конечно, INITCOMMONCONTROLSEX. Последнее, мне кажется, хорошо отражает некоторые особенности работы с многими из Windows API.
По моему опыту, чтение на английском улучшает словарный запас, но не улучшает восприятие на слух и может ухудшать произношение — читаешь про себя, как пишется, потом хрен кто поймёт, когда говорить станешь. Грамматика тоже как-то в голове не очень откладывается. Читал на английском много, сейчас большинство современных художественных произведений без обилия архаизмов и т.д. обычно безо всяких словарей читаю довольно легко, того же Мартина без труда осилил. Англоязычные фильмы до недавнего времени старался смотреть с английской озвучкой и английскими субтитрами.
Я сейчас готовлюсь (или пытаюсь готовиться) к on-site interview (SRE) в Дублинском Google. Во время телефонных/hangouts интервью понял, что с engineers на технические темы общаюсь довольно свободно, а вот когда приходилось говорить с рекрутерами на более житейские темы, было несколько труднее. Сотрудница Google, которая на меня изначально вышла, судя по фамилии — ирландка; в разговоре по hangouts мы более-менее друг друга поняли, но некоторые усилия для восприятия на слух мне всё-таки приложить пришлось.
В этой связи решил послушать аудиокниги на английском. Рецепт такой — берётся книга, которую уже читал, но достаточное время назад. В моём случае это оказалась The Dark Tower by Stephen King (самое то, оголтелая технофобия — перед гуглом-то). Акцент не тот, да и ещё содержит примесь искусственных диалектов, но, думаю, сойдёт — в конце концов, насколько я понимаю, в данном офисе технари, в основном, с разных концов света. После прослушивания 50+ часов заметил, что стало гораздо проще воспринимать на слух нетехнические англоязычные ролики на youtube (с техническими больших проблем и так не было) — причём и американские, и английские, и ирландские. Смог ещё пару серий с позволения сказать The Walking Dead посмотреть без субтитров.
В то же время замечу, что без практики эффект, похоже, временный. Много лет назад слушал сначала (вспомнив детство) про Шерлока Холмса на английском, затем The Chronicles of Amber и The Hitchhiker's Guide to the Galaxy. Потом был длительный перерыв и восприятие на слух/произношение снова вернулось где-то к исходной точке. Ещё момент — если особо не стараться, грамматика от подобных экзерсисов тоже не очень улучшается.
В Яндексе не работаю, да и не монстр, но в моём случае расклад такой: 1979 г.р., с 1990 кодил «для души», так что по меркам Яндекса можно считать, что 25 лет. Какое-то время назад на меня вышли рекрутеры Google. К своему удивлению (thinking under pressure — это не моё, олимпиады никогда не любил, например) я прошёл их телефонные/hangouts interview (SRE) и они решили свозить меня в Дублин on-site interview ближе к маю (на головокружительный успех не рассчитываю по вышеназванным причинам, но может хоть Гиннеса там попью :) В процессе общения с recruiting manager мне заметили, что в резюме я указал многовато опыта — 18 лет. Я ответил, что начал отсчёт с момента, когда начал писать используемый в production софт на благо ядерных физиков МГУ — на это мне возразили, что опыт надо считать с момента окончания института. Всё равно мол порядочно выходит, но тем не менее. Так что, видимо, каждый считает, как кому нравится.
По поводу s-expressions (Lisp) скажу — они, на мой взгляд,
бывают (не всегда!) удобнее HTML, XML, JSON и прочего, когда в документе
сравнительно мало текста. Т.е. для, скажем, представления
AST какого-либо языка или для задания layout'а (вёрстки, на которую
ложится CSS, без наполнения) HTML-страницы — очень хорошо.
Скобки — проблема надуманная, при активном
использовании обычно становятся незаметными
недели через две, если, конечно, редактор имеет правильный
autoindent и умеет подсвечивать парные скобки, а при использовании
средств типа paredit скобки неплохо помогают в редактировании.
Проблемы с s-expressions для представления данных / документов
следующие:
если документ преимущественно текстовый — получается некрасиво;
по сравнению с XML, не хватает namespaces. В случае CL есть
packages, но их трудно назвать достаточнго гибкой заменой
пространств имён для файлов данных;
tooling — XPath/XQuery/Relax NG/etc. В случае использования s-exprs
для данных обходимся без этих полезняшек или строим велосипеды.
JSON по сравнению с s-exprs поддерживает унифицированное представление
dicts (objects), вместо которых в символьных выражениях используются
property lists, association lists либо какой-то кастомный синтаксис, специфичный
для языка (например, Clojure) или приложения (reader macros в CL).
По-моему, это не очень большая проблема, т.к. выразить ассоциативный
массив в виде s-exprs таки не сложно.
С другой стороны, JSON нет стандартных широко поддерживаемых
комментариев и это [очень плохо]. _comment-поля, на мой взгляд — извращение.
Про две фазы — на самом деле у меня так и сделано, но не уверен, что это полностью решает проблему.
УЗО — помимо вводного диф. автомата (на трубостойке) у меня пока по рекомендации электрика стоят дифавтоматы 30мА для стиралки и посудомойки. Пока в раздумьях, достаточно ли этого.
N и Gnd раздельные есть, у дома устроено заземление. Перекос фаз возможен, но пока нет чёткого понимания, как его полностью искоренить (есть однофазная варачная панель, например). Рубильник — да, для генератора, я заядлый удалёнщик и без этого дела швах. Правда, прежде, чем его использовать в этих целях, видимо, надо купить дополнительный полюс и сделать отключение от внешней N при переходе на генератор — мало ли что по проводу придёт по милости электриков во время ремонта трансформатора (или от меня электрикам).
Пока не закончено и не особо красиво, глубоко в процессе (провода буду переделывать, поставлю проходные клеммы, 1-wire термодатчики пока развешены абы как, выключатели не подключены) + я программист, а не электрик (правый щиток собран электриком).
Пишу софт для WB — движок правил, ряд MQTT-драйверов и прочее, заодно строю умную избу.
Оборудование:
Установлены — Wiren Board 5, WBIO-DO-R3A-8 (управление «сервоприводами» радиаторов), WB-MR11 (свет, ТЭНы котла).
Справа — счётчик Милур 305 (неопломбированный, «настоящий» — на трубостойке), с него по RS-485
считываются данные о расходе электроэнергии, напряжении, мощности и т.д. Проводку клал электрик,
чтобы особо не мудрствовать, я попросил его кинуть UTP до выключателей — на
выключатели (без фиксации — кнопки) снизу наклею 1-wire термодатчики, плюс можно
будет ставить дополнительные кнопки по необходимости, например, чтобы с кровати
можно было выключить свет во всём доме.
Функции:
— управление освещением (для кого-то блажь, а по мне — удобно)
— управление ТЭНами котла (твердотельный — Теплодар с блоком ТЭНов)
— управление термоэлектрическими сервоприводами Oventrop на радиаторах
— набор 1-wire термодатчиков (котёл, температура в комнатах)
— замер тепловых потерь дома
Алгоритмы управления отоплением пока тривиальные (позиционное регулирование),
но думаю сделать нормальный ПИД-регулятор.
WB подключается к моему VPN, и перед приездом на дачу я могу выставить подходящую
температуру.
Из идей развития:
— голосовое управление (сначала Tasker+AutoVoice, потом что-нибудь ещё придумаю, чтобы без телефона + что-нибудь вроде «алё, изба» вместо «ок, Google»)
— автопрокачка скважины
— сигнализация на магнитоконтактных датчиках движения, датчиках открытия дверей etc.
— автополив и прочее огородное (в перспективе)
— …
В общем, имейте в виду, что при разработке софта WB определённый элемент dogfooding'а
присутствует :)
А что касается цветных индикаторов на головке принтера — так известное дело, айтишники часто страдают гиподинамией, надо же как-то с этим бороться — вот пусть побегают.
Искренне прошу прощения, не удержался. По делу: представьте себе, что вы делаете биндинги для сторонней библиотеки, написанной, например, на C. И в этой библиотеке какие-то объекты должны создаваться функциями create_XXX() (внутри вызывают malloc()) и освобождаться функциями free_XXX(). И вот, честно избегая SetFinalizer, мы пишем в документации, что, хотя Go — язык с GC, конкретно вот эти вот объекты, вследствие особенностей их внутренней реализации, надо обязательно освобождать через какой-нибудь Free(), при том, что эта функция/метод по своей сути не будет делать ничего, кроме освобождения памяти. Звучит логично? По-моему, нет. Как раз для оборачивания подобной логики управления памятью SetFinalizer подходит идеально.
Я сейчас готовлюсь (или пытаюсь готовиться) к on-site interview (SRE) в Дублинском Google. Во время телефонных/hangouts интервью понял, что с engineers на технические темы общаюсь довольно свободно, а вот когда приходилось говорить с рекрутерами на более житейские темы, было несколько труднее. Сотрудница Google, которая на меня изначально вышла, судя по фамилии — ирландка; в разговоре по hangouts мы более-менее друг друга поняли, но некоторые усилия для восприятия на слух мне всё-таки приложить пришлось.
В этой связи решил послушать аудиокниги на английском. Рецепт такой — берётся книга, которую уже читал, но достаточное время назад. В моём случае это оказалась The Dark Tower by Stephen King (самое то, оголтелая технофобия — перед гуглом-то). Акцент не тот, да и ещё содержит примесь искусственных диалектов, но, думаю, сойдёт — в конце концов, насколько я понимаю, в данном офисе технари, в основном, с разных концов света. После прослушивания 50+ часов заметил, что стало гораздо проще воспринимать на слух нетехнические англоязычные ролики на youtube (с техническими больших проблем и так не было) — причём и американские, и английские, и ирландские. Смог ещё пару серий с позволения сказать The Walking Dead посмотреть без субтитров.
В то же время замечу, что без практики эффект, похоже, временный. Много лет назад слушал сначала (вспомнив детство) про Шерлока Холмса на английском, затем The Chronicles of Amber и The Hitchhiker's Guide to the Galaxy. Потом был длительный перерыв и восприятие на слух/произношение снова вернулось где-то к исходной точке. Ещё момент — если особо не стараться, грамматика от подобных экзерсисов тоже не очень улучшается.
plists (property lists):
(users (:name "Alice" :age 20))
бывают (не всегда!) удобнее HTML, XML, JSON и прочего, когда в документе
сравнительно мало текста. Т.е. для, скажем, представления
AST какого-либо языка или для задания layout'а (вёрстки, на которую
ложится CSS, без наполнения) HTML-страницы — очень хорошо.
Скобки — проблема надуманная, при активном
использовании обычно становятся незаметными
недели через две, если, конечно, редактор имеет правильный
autoindent и умеет подсвечивать парные скобки, а при использовании
средств типа paredit скобки неплохо помогают в редактировании.
Проблемы с s-expressions для представления данных / документов
следующие:
packages, но их трудно назвать достаточнго гибкой заменой
пространств имён для файлов данных;
для данных обходимся без этих полезняшек или строим велосипеды.
JSON по сравнению с s-exprs поддерживает унифицированное представление
dicts (objects), вместо которых в символьных выражениях используются
property lists, association lists либо какой-то кастомный синтаксис, специфичный
для языка (например, Clojure) или приложения (reader macros в CL).
По-моему, это не очень большая проблема, т.к. выразить ассоциативный
массив в виде s-exprs таки не сложно.
С другой стороны, JSON нет стандартных широко поддерживаемых
комментариев и это [очень плохо]. _comment-поля, на мой взгляд — извращение.