Cododel.dev | Александр
#ШизаНочная №1 | MeteorJS ——— 😴 Не спится. 💻 Подбирал oss helpdesk систему для клиентского проекта. 📞 Натыкнулся на Rocket.chat 🤩 Понравилось. 🤨 Увидел MeteorJS. 🤩 Понравилось. ——— Сделаю проект на Svelte5 + MeteorJS с MongoDB c дальнейшей миграцией на…
Официально Meteor 3 еще не поддерживает Svelte 5
Не хочу возиться с монорепозиториями и бандлерами.
Я хотел получить удобный старт проекта, а не копаться в решении очередных проблем...
Попробую Supabase + SvelteKit, там SDK был и генерация типов
В бета версии даже вроде есть апи для запуска миграций, плюс можно и руками менеджить SQL + bash скриптом, если работать в Docker на self-hosted.
Смущают только минимлаьные требования...
Не хочу возиться с монорепозиториями и бандлерами.
Я хотел получить удобный старт проекта, а не копаться в решении очередных проблем...
Попробую Supabase + SvelteKit, там SDK был и генерация типов
В бета версии даже вроде есть апи для запуска миграций, плюс можно и руками менеджить SQL + bash скриптом, если работать в Docker на self-hosted.
Смущают только минимлаьные требования...
UPD - весит оч много, разбираться тоже лень...
Что-то даже хз какой стек взять в работу для новых проектов, гляну что обновили в AppWrite 😒
Это конечная.. 😂
Я за неделю не нашел ни одного решения собрать типобезопасный проект на directus без ручного описания схем 🥸
Даже graphql codegen может выдавать optional типы из-за того что сам директус делает все модели Partial для поддержки выбора полей в рантайме. Даже с таким решением не будет типизации...
Пойду писать zod схемы руками - это единственное рабочее решение, а для упрощения думаю вообще не генерировать типы никуда никакие, и запросы писать с unknown/any на выходе, прогоняя через zod схему и на неё полагаться, тк генераторы типов тоже не всегда удобно, а zod схемы можно шерить через общий пакет в монорепо без каких либо вообще проблем.
Итого адекватное решение - это коллоцированные схемы + shared схемы.
В идеале даже полностью ручная синхронизация с текущей схемой базы, и по месту использования уже извлекать из полной схемы нужные части думаю
Я за неделю не нашел ни одного решения собрать типобезопасный проект на directus без ручного описания схем 🥸
Даже graphql codegen может выдавать optional типы из-за того что сам директус делает все модели Partial для поддержки выбора полей в рантайме. Даже с таким решением не будет типизации...
Пойду писать zod схемы руками - это единственное рабочее решение, а для упрощения думаю вообще не генерировать типы никуда никакие, и запросы писать с unknown/any на выходе, прогоняя через zod схему и на неё полагаться, тк генераторы типов тоже не всегда удобно, а zod схемы можно шерить через общий пакет в монорепо без каких либо вообще проблем.
Итого адекватное решение - это коллоцированные схемы + shared схемы.
В идеале даже полностью ручная синхронизация с текущей схемой базы, и по месту использования уже извлекать из полной схемы нужные части думаю
Cododel.dev | Александр
Это конечная.. 😂 Я за неделю не нашел ни одного решения собрать типобезопасный проект на directus без ручного описания схем 🥸 Даже graphql codegen может выдавать optional типы из-за того что сам директус делает все модели Partial для поддержки выбора полей…
Кажется придумал typesafe для directus...
Убираем полностью генерацию типов специфичную для Directus тк пользы от неё мало.
Делаем schema пакет в монорепо
В нем ставим drizzle-orm + drizzle-kit + drizzle-zod + dotenv + nunjucks + tsx
Делаем команду для npm generate: drizzle-kit introspect + кастомный скрипт на nunjucks исполняемый через tsx который будет после introspect все экспортируемые модели в шаблоны рендерить с zod схемами и отдельно с z.infer типами
Вроде норм, пока выглядит рабочим, главное чтобы tree-shaking справлялся, а чтобы не палить схему всей базы данных - в скрипте генерации сделал разбивку по файлам, каждая таблица экспортирует схемы из своего файла, чтобы tree shaking отрезал неиспользуемые таблицы
Вопрос открыт ещё по полям, которые возможно нужно оставить приватными, на такой случай надо подумать над поддержкой tree-shaking самих схем
Убираем полностью генерацию типов специфичную для Directus тк пользы от неё мало.
Делаем schema пакет в монорепо
В нем ставим drizzle-orm + drizzle-kit + drizzle-zod + dotenv + nunjucks + tsx
Делаем команду для npm generate: drizzle-kit introspect + кастомный скрипт на nunjucks исполняемый через tsx который будет после introspect все экспортируемые модели в шаблоны рендерить с zod схемами и отдельно с z.infer типами
Вроде норм, пока выглядит рабочим, главное чтобы tree-shaking справлялся, а чтобы не палить схему всей базы данных - в скрипте генерации сделал разбивку по файлам, каждая таблица экспортирует схемы из своего файла, чтобы tree shaking отрезал неиспользуемые таблицы
Вопрос открыт ещё по полям, которые возможно нужно оставить приватными, на такой случай надо подумать над поддержкой tree-shaking самих схем
Cododel.dev | Александр
Кажется придумал typesafe для directus... Убираем полностью генерацию типов специфичную для Directus тк пользы от неё мало. Делаем schema пакет в монорепо В нем ставим drizzle-orm + drizzle-kit + drizzle-zod + dotenv + nunjucks + tsx Делаем команду для npm…
Оно работает!
И вполне неплохо
Полное соответствие типам из базы выходит, а потом можно сделать type guard фильтры и трасформации
Получилось даже сделать трансформации snake_case -> cameCase на уровне генератора схем.
В обратную сторону тоже должно работать, пока не проверял.
И вполне неплохо
Полное соответствие типам из базы выходит, а потом можно сделать type guard фильтры и трасформации
Получилось даже сделать трансформации snake_case -> cameCase на уровне генератора схем.
В обратную сторону тоже должно работать, пока не проверял.
Forwarded from (НЕ)Экономист! | Cododel Crypto | Alexander
Приколы - такие приколы)
Надо теперь как-то успеть забрать со взломанного кошнлька, пока это не сделал машонник
Надо теперь как-то успеть забрать со взломанного кошнлька, пока это не сделал машонник
Forwarded from (НЕ)Экономист! | Cododel Crypto | Alexander
0x07d1b4dae56980ff68f13dc9c66bbacb2fc918e70dc96a5856cf38058955dff9
Принимаем пополнение, фиксируем профит😎 💶
Принимаем пополнение, фиксируем профит
Please open Telegram to view this post
VIEW IN TELEGRAM
Майнерское оборудование на HiveOS — не подходит для инференса ML
Полезная информация на будущее
Там целый набор нюансов.
---
Под разработку брал сервер с ней на неплохих условиях
И в прошлый раз когда сервер нам отрубали тоже были схожие проблемы
И только на сервере под разработку обнаружил такой нюанс, что с драйверами были беды, не смотря на то, что я уже полгода итеративно скриптами закрываю нюансы настройки сервера
Использовал и Ansible, который оказался очень медленным для настройки единственного сервера, хотя на тот момент довольно частой настройки из-за переездов между серверами.
И свои скрипты с куче доработок и тестами окружения.
В итоге промежуточный вывод делаю, что сейчас у меня достаточно знаний и наработок чтобы очень быстро подготовить сервер под проект с ML, но если там стоит HiveOS — ждать беды и геморроя. А они встречаются на народных хостингах.
Лучше сразу менять и подбирать полноценную OS.
Полезная информация на будущее
Там целый набор нюансов.
---
Под разработку брал сервер с ней на неплохих условиях
И в прошлый раз когда сервер нам отрубали тоже были схожие проблемы
И только на сервере под разработку обнаружил такой нюанс, что с драйверами были беды, не смотря на то, что я уже полгода итеративно скриптами закрываю нюансы настройки сервера
Использовал и Ansible, который оказался очень медленным для настройки единственного сервера, хотя на тот момент довольно частой настройки из-за переездов между серверами.
И свои скрипты с куче доработок и тестами окружения.
В итоге промежуточный вывод делаю, что сейчас у меня достаточно знаний и наработок чтобы очень быстро подготовить сервер под проект с ML, но если там стоит HiveOS — ждать беды и геморроя. А они встречаются на народных хостингах.
Лучше сразу менять и подбирать полноценную OS.
Обновился до 26 iOS и MacOS
Новые обои мне нравятся, и новый дизайн Safari
Особенно на телефоне, когда при скролее нижний тулбар аккуратно уменьшается
В остальном вау эффекта не произвело, всё остальное все видели в рекламах с этим Liquid Glass
Из интересного, вот вам очень крутой шоукейс с жидким стеклом в Web
https://frontendmasters.com/blog/liquid-glass-on-the-web/
Жаль работает пока только в хроме, но думаю что скоро веб еще сильнее притеснит декстопную разработку, если решат проблему с производительностью интерфейсов(и криворукость React разработчиков 🤫 )
Новые обои мне нравятся, и новый дизайн Safari
Особенно на телефоне, когда при скролее нижний тулбар аккуратно уменьшается
В остальном вау эффекта не произвело, всё остальное все видели в рекламах с этим Liquid Glass
Из интересного, вот вам очень крутой шоукейс с жидким стеклом в Web
https://frontendmasters.com/blog/liquid-glass-on-the-web/
Жаль работает пока только в хроме, но думаю что скоро веб еще сильнее притеснит декстопную разработку, если решат проблему с производительностью интерфейсов
Please open Telegram to view this post
VIEW IN TELEGRAM
Cododel.dev | Александр
Обновился до 26 iOS и MacOS Новые обои мне нравятся, и новый дизайн Safari Особенно на телефоне, когда при скролее нижний тулбар аккуратно уменьшается В остальном вау эффекта не произвело, всё остальное все видели в рекламах с этим Liquid Glass Из интересного…
Media is too big
VIEW IN TELEGRAM
А, ну и в MacOS наконец-то убрали полноэкранное меню приложений, сделали более приятное решение через Spotlight
+ При записи экрана добавили HDR на прошках, где-то анимации дбавили итд итп
+ При записи экрана добавили HDR на прошках, где-то анимации дбавили итд итп
У грока вывалилось. Будто он кастомные теги как-то рендерит при ответе, как у гемини форматирование съехало
Но у гемини markdown обычный в рантайме рендерится, а тут какие-то shdow-dom элементы будто какие-то
Но у гемини markdown обычный в рантайме рендерится, а тут какие-то shdow-dom элементы будто какие-то
<grok-card data-id="3ebbee" data-type="citation_card"></grok-card><grok-card data-id="c9e6f5" data-type="citation_card"></grok-card>
- Здесь `ItemsService` инициализируется внутри метода, с передачей `schema` и `accountability` из контекста. Это avoids проблемы с экспортами типов.
- Для generics: Используй пакеты вроде `directus-extension-models` или `directus-typescript-gen` для генерации типов из схемы Directus (например, `OrderType` на основе полей коллекции 'orders').<grok-card data-id="5e3122" data-type="citation_card"></grok-card><grok-card data-id="c664b2" data-type="citation_card"></grok-card> Или `indirectus` для typed ItemsService.<grok-card data-id="647f57" data-type="citation_card"></grok-card>
- В hooks аналогично: register-функция получает context, и ты его передаёшь в свой сервис.<grok-card data-id="e2de1b" data-type="citation_card"></grok-card>
Если нужно больше деталей по типам, посмотри исходники Directus<a href="https://github.com/directus/directus/tree/main/packages/types" target="_blank" rel="noopener noreferrer nofollow"></a> или discussion #20670 на GitHub — там предлагают augment Express.Request для добавления типов вроде accountability.<grok-card data-id="4cc466" data-type="citation_card"></grok-card> Если у тебя конкретная версия Directus, уточни — типы могли измениться.Media is too big
VIEW IN TELEGRAM
AppWrite
#AppWrite
настроил наконец по чуть-чуть, небольшими шагами
Вроде полностью всё работает
Даже сертификаты для сайтов заработали, но надо CNAME добавлять в домен, ждать какое-то время чтоб сертификат выпустился
На showcases уже подхватило
Там и локальное хранилище S3 like, и база данных с реалтаймом, с ролями, своим сервисом авторизации с кучей интеграций oauth, серверлесс функции
И чо интересно - еще и хостит сайты с автодеплоем
Запускается одним правильным заполнением кнфига и командой в терминале
Буду на нем хостить свои проекты, на своем сервере вместо Vercel, который сегодня кстати не работает))
#AppWrite
настроил наконец по чуть-чуть, небольшими шагами
Вроде полностью всё работает
Даже сертификаты для сайтов заработали, но надо CNAME добавлять в домен, ждать какое-то время чтоб сертификат выпустился
На showcases уже подхватило
Там и локальное хранилище S3 like, и база данных с реалтаймом, с ролями, своим сервисом авторизации с кучей интеграций oauth, серверлесс функции
И чо интересно - еще и хостит сайты с автодеплоем
Запускается одним правильным заполнением кнфига и командой в терминале
Буду на нем хостить свои проекты, на своем сервере вместо Vercel, который сегодня кстати не работает))
This media is not supported in your browser
VIEW IN TELEGRAM
Любят в Apple с фотками что-то мудрить
Сначала HDR в 5S из трех фото склеивали, потом Live Photo, сейчас вот Spatial Scene добавили
Сначала HDR в 5S из трех фото склеивали, потом Live Photo, сейчас вот Spatial Scene добавили
Как сравнить цвета?
Раньше я это делал вручную на калькуляторе, а сейчас даже не обязательно в закладки инструмент сохранять, тк всегда можно попросить сгенерировать новый.
Но нейросети реально меняют рабочий процесс.
Я лично считаю что точное сходство с макетом вообще не критично, при использовании tailwind без настроек, если по всему проекту копипастой прописаны цвета шрифтов и тп инлайном в класса.
В таком случае можно относительно быстро коротким перебором вычислить самый подходящий цвет из темы библиотеки
В таком случае оч удобно оказалось попросить сделать "Калькулятор расстояния цветов" у claude sonnet 4 и через 15 секунд есть персонифицированное решение под задачу (В моем случае достаточно именно hex ввода)
Раньше я это делал вручную на калькуляторе, а сейчас даже не обязательно в закладки инструмент сохранять, тк всегда можно попросить сгенерировать новый.
Но нейросети реально меняют рабочий процесс.
Я лично считаю что точное сходство с макетом вообще не критично, при использовании tailwind без настроек, если по всему проекту копипастой прописаны цвета шрифтов и тп инлайном в класса.
В таком случае можно относительно быстро коротким перебором вычислить самый подходящий цвет из темы библиотеки
В таком случае оч удобно оказалось попросить сделать "Калькулятор расстояния цветов" у claude sonnet 4 и через 15 секунд есть персонифицированное решение под задачу (В моем случае достаточно именно hex ввода)
Please open Telegram to view this post
VIEW IN TELEGRAM