Email or username:

Password:

Forgot your password?
681 posts total
Андрей Ситник

Не только Барселона против массового туризма.

Майми выпустило видео против туристов и новые ограничения.
youtube.com/watch?v=nz3T20EXDd

Есть целые ютуб-каналы про то, как изменить туризм, чтобы он не приводил к толпам, которые уничтожают всю радость от места.
youtube.com/@rethinkingtourism

Андрей Ситник

want to know when **all the transitions** on an element have **finished**? regardless of their individual durations?

I gotchu.

```js
function onTransitionsEnded(node) {
return Promise.allSettled(
node.getAnimations().map(animation => animation.finished))
}
```

Adam Argyle

@bramus has noted that this function should `.filter()` out animation instances if your element has both keyframe animations and transitions running 👍🏻

Андрей Ситник

Барселонские, не планируете ничего на 4 июня.

Пойдём вечером в бар праздновать моё День рождение и развиртуализироваться.

Андрей Ситник

Как я изолирую свои опенсорс-проекты, чтобы вредоносный скрипт из node_modules не украл куки из браузера.

Система строится на Dev Container, так как изолировать надо и текстовый редактор (многие плагины типа Prettier используют ненадёжный код из node_modules).

У меня есть Dockerfile рабочей машины. Node.js и pnpm стоят только внутри этого контейнера, на ноутбуке инструментов разработки нет.

В Докере я запускаю ту же Fedora 40, что и на ноутбуке.

github.com/ai/environment/blob

Как я изолирую свои опенсорс-проекты, чтобы вредоносный скрипт из node_modules не украл куки из браузера.

Система строится на Dev Container, так как изолировать надо и текстовый редактор (многие плагины типа Prettier используют ненадёжный код из node_modules).

У меня есть Dockerfile рабочей машины. Node.js и pnpm стоят только внутри этого контейнера, на ноутбуке инструментов разработки нет.

Андрей Ситник

В контейнере я на всякий случай выключаю post-install скрипты в pnpm. Это не абсолютная защиты (ещё есть импорты, плагины для ESLint и т. п.), но лучше явно запускать скрипты зависимостей, добавив инструкцию в README.md.

github.com/ai/environment/blob

У меня есть скрипт для сборки Dockerfile в образ с тегом localhost/ai-opensource.
github.com/ai/environment/blob

В каждый проект я помещаю этот конфиг, он говорит редактору запустить папку внутри образа localhost/ai-opensource.
github.com/ai/environment/blob

В контейнере я на всякий случай выключаю post-install скрипты в pnpm. Это не абсолютная защиты (ещё есть импорты, плагины для ESLint и т. п.), но лучше явно запускать скрипты зависимостей, добавив инструкцию в README.md.

github.com/ai/environment/blob

У меня есть скрипт для сборки Dockerfile в образ с тегом localhost/ai-opensource.
github.com/ai/environment/blob

Андрей Ситник

#правамужчин Видео BBC, где несколько мужчин обсуждают своё отношение к своему телу.

Как общество, например, травило их за то, что они были недостаточно мускулистыми.

youtube.com/watch?v=1Q2uXAp8OR

Андрей Ситник

Ты сильный, ты справишься, ты же мужчина. Вот и вся старая этика, которой почему-то потакают и те, кто по идее должен выступать против неё.

И да, жизнь снова подтверждает мой глас вопиющего в пустыне. То, о чём я пытаюсь говорить в Рунете с середины 2010-х: мужская жизнь вовсе не сахар по умолчанию. Но меня не слышали ни тогда, ни сейчас тем паче (война идёт), когда мужская расходность в нашей стране стала ещё более обыденной.

Никому нет дела до пресловутых 95% мужчин. Гуманитарная катастрофа.

Андрей Ситник

Заготовил стикеров к наступающей эпохе господства AI

Show previous comments
Dan Palmer

@vas3k amazing! Where did you get them, or do you have the artwork for anyone who might want to print their own?

Vladimir Garvardt

@vas3k можно у тебя пару этих стикеров подрезать за пиво/соки/воды/шоколад?

Андрей Ситник

А что все сидят на alpine, когда есть ubi9-micro.

UBI micro весит 6 МБ против 3 МБ у alpine, но UBI использует glibc, а не нестандартный musl. Например, из-за того, что alpine использует musl вместо glibc, туда нельзя скачать бинарники Node.js.

UBI micro — «distroless» и не имеет пакетного менеджера — меньше, что можно взломать. В UBI micro с другой стороны нужно копировать все бинарники и поэтому нужен builder-шаг в Dockerfile.

github.com/hplush/slowreader/c

А что все сидят на alpine, когда есть ubi9-micro.

UBI micro весит 6 МБ против 3 МБ у alpine, но UBI использует glibc, а не нестандартный musl. Например, из-за того, что alpine использует musl вместо glibc, туда нельзя скачать бинарники Node.js.

UBI micro — «distroless» и не имеет пакетного менеджера — меньше, что можно взломать. В UBI micro с другой стороны нужно копировать все бинарники и поэтому нужен builder-шаг в Dockerfile.

[DATA EXPUNGED]
Андрей Ситник

Из-за того, что в UBI я сам копирую только бинарник Node.js (и не ставлю man-файлы, npm, corepack и т. п.), то образ Node.js-сервера у меня упал с 150 МБ (с Alpine) до 37 МБ (с UBI micro)

Андрей Ситник

Плюсы Local-First приложений — всё работает гораздо быстрее, так как все данные лежат локально.

Вот тут есть доклад автора, о том, как приложение устроено внутри.

Это React на Tauri (аналог Electron, но использует браузер ОС). Данные берутся из sqlite.

youtube.com/watch?v=BmgL1SRfUy

mas.to/@schickling/11244449554

alexanderniki

@sitnik_ru Не знал про Tauri, спасибо за наводку. Выглядит как хорошая штуковина.

Vladimir

@sitnik_ru вот тут еще кажется подробная текстовая версия того что внутри

riffle.systems/essays/prelude/

Андрей Ситник

Just recorded this little performance demo of @overtone while working on my talk for @localfirstconf.

Near-zero query latency enables a magical UX.

Johannes Schickling

@overtone @localfirstconf Note this hover interaction is only enabled in a demo-mode and is usually a click interaction.

Андрей Ситник

Если у вас куча CI workflow, то не обязательно в каждом дублировать версию Node.js и pnpm.

actions/setup-node может взять версию из файла .node-version.

pnpm/action-setup — из package.json→packageManager

github.com/hplush/slowreader/b

Nikita Galaiko

@sitnik_ru а еще лучше вынести общие шаги в отдельный локальный экшн. например вот так:

вот использование:
github.com/gitbutlerapp/gitbut

вот сам экшн:
github.com/gitbutlerapp/gitbut

Андрей Ситник

@AlexNight
@sitnik_ru бустит эротику, в том числе мужскую. У него вроде свой тег какой-то есть, поэтому рекомендую обратить на это внимание для охвата.

Андрей Ситник

Добавил в репозиторий своей читалки Dev Container.

Это открытый стандарт, чтобы IDE запускал ваш рабочий проект в Docker-контейнере (VS Code и JetBrains поддерживают).

github.com/hplush/slowreader/p

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

Андрей Ситник

Главный плюс перед просто Dockerfile в какой-то папке — интеграция с редактором:

1. Плагины редактора запускаются тоже в контейнере. Вас не взломают, через вирус в eslint-плагине, который запускается в IDE.
2. В редакторе UI предлагает запустить контейнер, сам его пересоберёт.

ርዐነጠዐነቿረቻ

@sitnik_ru Попробовал запустить проект с этим Dev Container, но тупо повис. Так они и не допили эти контейнеры, к сожалению, как были странной прослойкой так, видимо, и остались. Продолжаю чистый докер использовать так надёжней. А с консолью надо что-то придумать, но это единственный косяк у этого подхода.

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

Go Up