cookie

Мы используем файлы cookie для улучшения сервиса. Нажав кнопку «Принять все», вы соглашаетесь с использованием cookies.

avatar

Loskir's

Front-end @yandex. Пишу про айти, технологии и не только Лайв канал: @LoskirsLive Я: @Loskir

Больше
Рекламные посты
1 945
Подписчики
+124 часа
-17 дней
-930 дней

Загрузка данных...

Прирост подписчиков

Загрузка данных...

🌇 Immich — селфхост хранилище фотографий здорового человека Прошлый раз я углублялся в эту тему больше трёх лет назад, за это время появилось много новых решений. Посмотрев на табличку-сравнение, я решил попробовать Immich. Я был удивлён тем, насколько он хорошо работает. Сервер разворачивается через docker compose в пару команд, подключиться к нему можно через веб-интерфейс или мобильное приложение. Клиенты довольно удобные, иногда даже забываешь, что это FOSS. В приложениях можно настроить автоматическую загрузку новых фото на сервер (хотя я пока не тестировал, насколько хорошо это работает на iOS). Есть поддержка геопозиций, нескольких пользователей, live photos, альбомов, распознавания лиц и даже публичного шаринга. И всё это полностью на своём сервере! Так что всем селфхост энтузиастам советую обратить внимание на этот проект. А сам я, наверное, так и буду разрываться между GPhotos, iCloud и Immich.
Показать все...
❤‍🔥 14👍 5 2
Фото недоступноПоказать в Telegram
Выложил на гитхаб свою тему для Sidebery, вдохновлённую дизайном Arc Потвикал паддинги, добавил побольше скруглений, пофиксил неконсистентности в стилях, добавил отступы по бокам, поменял дизайн цветных вкладок и ещё пара мелочей. Конечно, осталось ещё много нестилизованных мест, но мне кажется уже выглядит гораздо лучше чем из коробки. Использовать очень просто — копируете style.css и вставляете в специальное поле в настройках Sidebery. На самом деле я даже не ожидаю что эти стили подойдут вам из коробки, скорее что их можно использовать как образец или просто скопировать какие-то решения себе. Кроме того, добавил и quality of life твики вроде мультистрочных названий вкладок. Хоть смотрится не очень чисто, но для меня очень полезная фича. За это мне и нравится кастомизация — можно найти свой баланс дизайна и пользы, и никакие дизайнеры со своим видением прекрасного не могут мне помешать 😈 https://github.com/Loskir/sidebery-theme-arc
Показать все...
10🔥 5😁 2👎 1
👨‍🎓 Университетские хроники: Web Basics Одним из предметов в последней четверти этого года были Web Basics. Как можно понять из названия, там нас учили основам веб-разработки, а именно фронтенду (чистый html+js+css) и бэкенду (nodejs+express+sqlite) На пары я почти не ходил. Во-первых, потому что там объясняли такие основы, которые я уже и так знал. Во-вторых, потому что одна из пар была в 8:30, а я в такую рань вставать не хочу. А хотя наверное надо было бы, хотя бы чтобы подискутировать с преподавателем на тему глупых требований, которые почему-то они решили добавить. Как и у многих других предметов, у Web Basics не было никаких промежуточных элементов контроля, только один главный дедлайн, к которому надо написать своё фулстек-приложение (в одиночку, не группой). Проект состоял из трёх основных частей: бэкенд, фронтенд и документация. Бэкенд должен быть написан на nodejs, использовать express и sqlite в качестве БД, иметь минимум 3 сущности с отношениями между ними, REST-compliant апи для взаимодействия с CRUD операциями. ESM обязателен, CJS харам. Typescript нельзя 😨 Фронтенд должен быть написан на html+js+css без js-фреймворков и библиотек, без этапа сборки, с использованием флексов/гридов и медиа выражений (oddly specific but ok). Server-side рендеринг нельзя, для подгрузки данных только fetch. В документации надо было сделать спецификацию апи (с помощью swagger или в goofy ahh docx template который нам предоставили), пару sequence diagram, wireframes (это как макеты, только ещё более на минималках) и обоснования для нестандартных решений (я там похвастался что затащил kysely для работы с БД, valibot для валидации и prettier для форматирования) Предметную область можно было взять любую, я выбрал максимально дефолтную: таск-трекер с тегами и комментариями (не спрашивайте). Проект, на который нам давалось 7 недель, я начал за 2.5 дня до дедлайна. Темп был весьма ударный, как на тех видосах с потным спидраннером. Но, в принципе, успел сделать всё что требовалось. Конечно, некоторые углы пришлось срезать (например, нигде не было написано что все CRUD-операции должны быть доступны с фронта, поэтому редактирование тегов и комментариев я не реализовал). Сложнее всего было писать код без тайпскрипта и реактивного фреймворка. К хорошему быстро привыкаешь, и поэтому написание небезопасного и императивного кода казалось просто пыткой. За проект я получил 9/10. Часть баллов сняли не потому что что-то не успел, а потому что прикопались к коду (например, им не очень понравилось как я разделил бэкенд на слои). Хотя я бы и поспорил с некоторыми фидбеками, в общем и целом я доволен оценкой. Сложность: 1/10 Приятность: 7/10 Польза: 2/10. С нуля скорее всего полезнее, но лично я не узнал чего-то нового. Интересный факт: в начале следующего года у нас будет предмет Web Advanced, где на фронте можно будет использовать реактивщину. Получается, что страдания первогодок с document.createElement оказались напрасны. В комментах выложу мини демку и кусочки документации (выкладывать весь код на github мне стыдно)
Показать все...
❤‍🔥 9😁 4🌚 4👍 1🔥 1
Делать одно и то же дважды Замечаю за собой, что часто вместо того, чтобы фокусироваться на каком-то одном решении проблемы, поддерживаю параллельно два варианта. Например: - У меня на маке сейчас настроен и zsh, и fish. Оба шелла настроены примерно одинаково, но я никак не могу выбрать один вместо другого. Сейчас пользуюсь fish, но за пару месяцев несколько раз переключался туда-обратно. - Хоть в основном я пользуюсь Arc, сейчас пытаюсь настроить Firefox (см. предыдущий пост). У каждого браузера есть свои уникальные фичи, и я никак не могу выбрать один из них. - То же самое с iPhone и Android. У меня на руках iPhone 14 Pro и Nothing Phone (2). Я устраивал тестовую неделю «если бы я перешел на андроид», но в итоге вернулся обратно на айфон. За последние три года я три раза метался между андроидом и яблоком. И тут я задумался: а стоит ли оно того? С одной стороны, я трачу вдвое больше сил вместо того, чтобы отдаться одной стороне и получать удовольствие. А с другой стороны, у этого есть свои преимущества. Во-первых, мне нравится этим заниматься. Если бы мне не нравилось, я бы не занимался 🤷‍♂️. Во-вторых, это понижает степень моей вендорлокнутости. Благодаря тому, что оба решения примерно равны по удобству, я точно знаю, что, если моё текущее решение загнётся, я легко смогу перейти на другое. Ну и в-третьих, что если это ошибка выжившего? Если в этих случаях у меня не получилось занять одну из сторон, не стоит переставать инвестировать в альтернативы. Может быть, в другой раз победитель нарисуется сам по себе, и мой экспириенс только выиграет. Что думаете? Встречались с таким?
Показать все...
👍 6🔥 4😁 4👎 1
Фото недоступноПоказать в Telegram
Полтора года назад я попробовал Arc и влюбился в вертикальные вкладки, спейсы и Mini Arc. Пару месяцев назад я попробовал Firefox+Sidebery и понял, что древовидные вкладки ещё удобнее, чем просто вертикальные. Но одних только древовидных вкладок оказалось недостаточно, чтобы перебраться с Arc на Firefox. Последние несколько дней я усиленно копался во внутренностях лисы, чтобы слепить себе идеальный браузер. Я перебрал все настройки Sidebery, попробовал несколько userChrome кастомов и даже научился кастомить интерфейс самостоятельно. Свои находки я документирую в этой статье, прошу любить и жаловать. Дисклеймер: изложение там довольно хаотичное. Контент будет дополняться в процессе моих дальнейших приключений. Жду ваших комментариев!
Показать все...
👍 13🔥 7👎 3😁 1
Фото недоступноПоказать в Telegram
Меня всё никак не покидает идея сделать свой настоящий блог (может даже переводить какие-то посты на английский?), но руки не доходят уже наверное год как. Вчера я в очередной раз добрался до этой темы и решил попробовать deno_blog — минималистичный движок для блогов от команды Deno. И когда я говорю минималистичный, я имею в виду минималистичный. Из плюсов: запускается в две строчки и из коробки весьма хорошо смотрится и работает. Для простенького блога набросать за 15 минут — самое то. И RSS из коробки есть. Теперь к недостаткам: - Нет SSG, то есть блог не билдится в статику, а требует рантайма. Более того, нет даже этапа сборки. Это значит, что .md файлы компилируются в html на лету (может быть кешируются, не знаю). С одной стороны ожидаемо от команды Deno, которым выгодно продвигать свой serverless сервис Deno Deploy, но совсем не то, что я бы хотел в своем блоге. - Из фич есть только сааамые базовые. Нет поддержки мультиязычности, нет подсветки синтаксиса в коде. Наверняка ещё кучи всего нет, я копал не так глубоко. В общем, поигрался полчасика и понял, что это не моё. Ждите ещё постов.
Показать все...
👍 10😁 6❤‍🔥 2👎 2
00:06
Видео недоступноПоказать в Telegram
Одна полезная шелл-фича, о которой я недавно узнал — поиск по истории при нажатии ctrl+r Очень удобно бывает найти какую-нибудь сложную команду, которую вводил когда-то давно В fish идёт из коробки, в zsh советую плагин zsh-fzf-history-search (на видео)
Показать все...
Запись экрана 2024-06-08 в 13.43.29.mp41.82 MB
🔥 6 4👍 1🌭 1
🔐 1password Спустя три года таки решился сменить парольный менеджер. Раньше я использовал бесплатный не-селфхостед вариант Bitwarden, а теперь перешёл на 1password, который в Github Student Developer Pack доступен на год бесплатно. Вопросы касающиеся бесплатности, опенсорсности, селфхоста и хранения всех яиц в одной корзине — валидные, но за скоупом этого поста. Я хочу поговорить в первую очередь про UX. На iOS и Android на самом деле разница оказалась не очень заметной благодаря тому, что системные апишки заполнения паролей работают нормально с любым парольным менеджером, который адекватно их использует. Отмечу только, что ни iOS, ни Android не позволяют добавить несколько источников паролей: либо заполняется из Bitwarden, либо из 1password (только эпл считерил и позволяет использовать iCloud Keychain параллельно с одним внешним источником). А вот на десктопе (макось в моём случае) браузерное расширение у 1password гораздо удобнее чем у Bitwarden. Во-первых, интеграция с десктопным приложением для разблокировки по Touch ID. Важная и удобная фича, потому что вводить мастер-пароль каждый раз совсем не хочется. В 1password всё реализовано из коробки и ощущается очень нативно: запрос отпечатка появляется сразу же после нажатия на кнопку "Разблокировать". В Bitwarden же это надо включать отдельно, работает долго и неудобно. Во-вторых, интерфейсно: у 1password приятнее задизайнены юзкейсы заполнения пароля, сохранения новой записи в базу, использования пасскеев. Ещё одна фича 1password, которая мне показалась просто гениальной — он умеет сохранять, какой аккаунт использовался для OAuth в конкретном сервисе. И ведь это реальная проблема, порой приходишь на сайт и не помнишь, логинился ты через гугл или гитхаб. Также в 1password есть реально много типов данных: пароли, карточки, заметки, ssh-ключи, контакты, документы (можно даже прикрепить скан), вайфаи и еще куча всего. Конечно, мне кажется, в реальной жизни они не особо-то и нужны. В общем, пока что о переходе не жалею. Ещё год у меня есть на подумать. И даже если потом меня будет душить жаба отдавать 5 баксов в месяц (или даже меньше, если оформить семейную подписку), то это будет повод поресерчить другие способы хранения паролей (например, keepass-совместимые клиенты с синхронизацией через какое-нибудь облако)
Показать все...
3
Фото недоступноПоказать в Telegram
Хочу поделиться утилитой, которая упрощает работу с командной строкой. Пользуюсь ей уже пару месяцев и пока доволен. Это Amazon Q for command line (ex. Amazon CodeWhisperer, ex. fig.io), часть ии-помощника для кодинга от Amazon. Да, с брендингом у них полная каша. Конкретно этот инструмент добавляет попап с автодополнением команд в терминал (и отдельный, и интегрированный в IDE). Работает из коробки и с дефолтным completion, и добавляет свои кастомные, например npm-команды, которые из коробки дополняться не умеют. Доступно, к сожалению, только для macOS. Скачать можно по ссылке (даже лендинга нормального не сделали). При запуске просит залогиниться, но это можно обойти через ПКМ → inspect element → удалить 😅
Показать все...
😁 16 4🔥 3👍 1
00:14
Видео недоступноПоказать в Telegram
В Нидерландах на железнодорожных станциях установлены занятные часы: минутная стрелка на них перескакивает по одному делению раз в минуту. И даже секундная стрелка двигается не равномерно, а приостанавливается напротив каждого деления. Интересно было бы воссоздать такой эффект. Правда, я пока не понял, как стрелка может зависать на пару секунд и не выбиваться из хода
Показать все...
IMG_4289.MOV2.66 MB
👍 13 5🎅 4
Выберите другой тариф

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