Технические детали проекта выше
Для графика (
Используются разные
Кнопка справа внизу (
Её задача - сделать удобный
#lissa #pet #arkui
ark-ui
в некоторых местах глючит, но как UI
библиотека понравилась, буду использовать.Для графика (
chart
) модели из TS
переделал на классы (без реактивности внутри), стало намного удобнейAI
очень помогает делать перевод сайта сразу на нескольких языках одновременно с кодингомИспользуются разные
LLM
для парсинга файлов и аналитических отчетов (подешевле и подороже)Кнопка справа внизу (
FAB
) идет как волшебная палочка - в ней разные действия в зависимости от страницы и контекста.Её задача - сделать удобный
UX
, чтобы пользователь не бегал по всему экрану пальцемPWA
, variable fonts
, JSON-RPC
, JSON5
#lissa #pet #arkui
Если вы используете
Можно сделать следующий финт:
меняете на
Ушедшие в первые 3 секунды посетители считаться не будут, но они, обычно, и не нужны.
#google #seo
Google Analytics
то Google Pagespeed
часто ругается сам на себя - gtag.js
размером в 100Кб+ снижает показатели сайта. Можно сделать следующий финт:
<script async src="https://www.googletagmanager.com/gtag/js?id=G-0SGZMMY7Y4"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-0SGZMMY7Y4');
</script>
меняете на
<script>
window.addEventListener('load', function() {
setTimeout(() => {
var script = document.createElement('script');
script.src = 'https://www.googletagmanager.com/gtag/js?id=G-0SGZMMY7Y4';
script.async = true;
document.head.appendChild(script);
window.dataLayer = window.dataLayer || [];
function gtag(){ dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'G-0SGZMMY7Y4');
}, 3000);
});
</script>
});
Ушедшие в первые 3 секунды посетители считаться не будут, но они, обычно, и не нужны.
#google #seo
Media is too big
VIEW IN TELEGRAM
Пятничный оффтоп
Новые власти США рассекречивают документы вивесектария предыдущих правителей
Байденовская администрация в рамках DEI потратила $10 миллионов на создание и изучение трансгендерных мышей, крыс и обезьянок
В частности, $2.5 миллиона ушли на попытки забеременить трансгендерных мышей (отрезав им предварительно гениталии, что-то пересадив и накачав гормонами)
Содом и Гоморра. Помянем бедных испытуемых...
#offtop #pets
Новые власти США рассекречивают документы вивесектария предыдущих правителей
Байденовская администрация в рамках DEI потратила $10 миллионов на создание и изучение трансгендерных мышей, крыс и обезьянок
В частности, $2.5 миллиона ушли на попытки забеременить трансгендерных мышей (отрезав им предварительно гениталии, что-то пересадив и накачав гормонами)
Содом и Гоморра. Помянем бедных испытуемых...
#offtop #pets
Если делаете два близких приложения (например, клиентский фронтенд и админку) , и хотите расшарить какие-то компоненты и ресурсы, то есть несколько вариантов
1. Монорепозиторий. Оба проекта идут как пакеты и общие пакеты тоже отдельно. На любителя.
2. Выделить общее в отдельный
3. Делать в одном проекте, настроить на две точки входа. Собирать
4. Два отдельных
4.
#tip
1. Монорепозиторий. Оба проекта идут как пакеты и общие пакеты тоже отдельно. На любителя.
2. Выделить общее в отдельный
NPM
пакет и подключать его. Неудобно возиться с версиями и апдейтом.3. Делать в одном проекте, настроить на две точки входа. Собирать
Vite
будет в одну кучу с двумя html
файлами входа. Подразумевается, что так удобно работать на одном сайте с двумя мини-приложениями4. Два отдельных
vite.config.ts
файла, два html, два App.vue и роутера. В package.json
в скриптах прописываете свой Vite
конфиг и копирование своего html в index.html
. Запускается и собирается каждый как отдельный проект, в коде всё общее.4.
Git submodules
. Отдельный проект подключается как поддиректория в твой (общие компоненты).#tip
Написал статью про Model Context Protocol
Грубо говоря, это попытка выработать стандартный
На двух последних проектах окунулся в работу с
#ai #article
Грубо говоря, это попытка выработать стандартный
API
для соединения LLM
и инструментов - любых приложений, делающих что-то специфичное.На двух последних проектах окунулся в работу с
AI
и эта штука (MCP
) очень сильно может помочь в разработке приложений, использующих LLM
. Чтобы не выклянчивать у чатбота что-то в диалоге, а использовать его для управления специализированными инструментами и получать на порядок более качественный результат.#ai #article
Хабр
Model Context Protocol (MCP): Стандартизация взаимодействия AI-приложений
Где-то летом 2024 года в некоторых OpenAI сервисах появилась возможность использовать "инструменты". Инструмент — это функция, которая выполняется на сервере и возвращает некий результат. Например, в...
Эван тут запустил опрос. Задумал, поди, бэкенд фреймворк написать от скуки.
Хочется сказать: Ю, ты, конечно, красавчек. Но, во-первых,
P.S. Год назад на бэке отошел от любых фреймворков, абсолютно счастлив и жалею, что не сделал этого раньше
#backend #evanyou #laravel
Хочется сказать: Ю, ты, конечно, красавчек. Но, во-первых,
js
на бэке - это говно. Во-вторых, брать лучшие практики из Ларавеля, это как брать уроки танцев у стриптизерши из припортового бара. И, в-третьих, - дай нам Rolldown
, Vapor
и пофикси, наконец, этот гребаный Volar
, а потом делай что хочешь.P.S. Год назад на бэке отошел от любых фреймворков, абсолютно счастлив и жалею, что не сделал этого раньше
#backend #evanyou #laravel
В экспериментальных версиях браузеров уже появляется реализация
Уже доступен полифилл - @js-temporal/polyfill
#js #date
Temporal
- официальной замены Date
в JavaScript
const dateTime = Temporal.Now.plainDateTimeISO();
console.log(dateTime); // e.g.: 2025-01-22T11:46:36.144
// 1851222399924 is our timestamp
const launch = Temporal.Instant.fromEpochMilliseconds(1851222399924);
const now = Temporal.Now.instant();
const duration = now.until(launch, { smallestUnit: "hour" });
console.log(`It will be ${duration.toLocaleString("en-US")} until the launch`);
// "It will be 31,600 hr until the launch" <- @js-temporal/polyfill
// "It will be PT31600H until the launch" <- Firefox Nightly
Уже доступен полифилл - @js-temporal/polyfill
#js #date
Подписчик спросил, как используется
В последнем
1. Преобразование полученного из PDF утилитой pdf2text текста в структурированный JSON
2. Пользователь может вводить вручную данные в формы - например, пройденное лечение, а может просто надиктовать рецепт.
3. Генерация аналитических отчетов на основе разных данных (анализы, лечение, записи журнала)
В 1 и 2
В 3 результат зависит сильно от человека (составленного им промпта)
В проекте до этого была задача в ходе диалога получить от пользователя некую информацию. Использовал конечные автоматы на бэке для управления диалогом.
Вещи типа 1 и 2 встречаются во многих приложениях, и
Ну и в последние недели в
#ai
AI
в моих проектахВ последнем
LLM
используется в трех местах:1. Преобразование полученного из PDF утилитой pdf2text текста в структурированный JSON
2. Пользователь может вводить вручную данные в формы - например, пройденное лечение, а может просто надиктовать рецепт.
AI
преобразует снова в данные определенного формата3. Генерация аналитических отчетов на основе разных данных (анализы, лечение, записи журнала)
В 1 и 2
AI
преобразует неструктурированную информацию в структурированную - это она очень хорошо умеет.В 3 результат зависит сильно от человека (составленного им промпта)
В проекте до этого была задача в ходе диалога получить от пользователя некую информацию. Использовал конечные автоматы на бэке для управления диалогом.
Вещи типа 1 и 2 встречаются во многих приложениях, и
AI
тут может сильно улучшить UX
Ну и в последние недели в
Cursor
-е появились MCP сервера, я писал о них (но не пробовал), которые делают еще один качественный шажок в использовании AI
#ai