Flashing Tuya WT5 dimmer with openbeken
Adventure of flashing Tuya WT5 dimmer with opensource OpenBeken firmware.
Adventure of flashing Tuya WT5 dimmer with opensource OpenBeken firmware.
I’ve made a provider to deploy Nixos hosts with Terraform.
Here is a list of features it support at this moment:
This note is about using Emacs for collaborative editing with help of package called crdt.el.
This is a note about the integration of the Certbot with Let’s encrypt DNS–01 authentication mechanism. Will not use any cloud services (fuck cloud), just self-hosted DNS instances, like good old times. I’ll show how to configure Knot DNS to accept dynamic DNS updates from knsupdate and how to create a rudimentary hook for Certbot which will use knsupdate to set TXT records with _acme-challenge.
Одна из сторон языка Go, за которую его многие любят, это простота. Она же является и его слабостью, выражающейся в увеличении количества кода вместе с повышением уровня абстракции.
Я хочу писать более абстрактный код там где это требуется, снимая ограничения системы типов если это необходимо. Для этого в серии статей буду искать такую реализацию скриптового языка, которую можно подружить с Go рантаймом и я точно знаю что хочу нечто lisp-подобное.
Зачем такой язык нужен:
Раз в год (или около того) мне нужно запустить PostgreSQL с целью поразрабатывать что-нибудь. За то время что я его не использую знания выветриваются, так что на будущее я делаю эту заметку, в основном для себя.
Запускать PostgreSQL можно разными способами, вот два самых распространенных:
Оба способа немного магические. Контейнеры стараются быть удобными и покрывать как можно больше функциональности, что выливается в адские entrypoint’ы на bash с обратным удобству эффектом. Пакеты в распространенных дистрибутивах тоже содержат не мало магии, ведь они обычно (как минимум) инициализируют директорию с данными СУБД и запускают её сервис.
В nixos тоже есть пакет для PostgreSQL, но он не управляет ни запуском, ни процессом инициализации. Так что полезно помнить как работать руками.
Многие сегодня используют docker для доставки своих решений в продакшен. Обычно образы собираются с помощью т.н. Dockerfile, который может иметь следующий вид:
FROM golang:latest as builder WORKDIR /go/src COPY . . RUN go build -o app FROM alpine:latest COPY --from=builder /go/src/app /bin/app CMD /bin/app
Можно ли сказать что образ, полученный в результате сборки с указанным Dockerfile, будет воспроизводимым?
Нет. Эта заметка объясняет:
Dockerfile чтобы приблизиться к воспроизводимостиDockerfile чтобы сделать сборки воспроизводимымиНекоторое время назад я начал переезжать с spacemacs обратно на самописную конфигурацию(мне так стабильнее и кастомайзить проще). Common LISP и scheme работают почти без настройки, а вот с golang пришлось поплясать.
Цель: настроить среду разработки, которая способна:
Это минимум, необходимый мне для работы.
Скажу сразу:
Но жить можно, плюс ко всему - понятно что улучшать.