Добавил в Argus распознавание рукописного текста, а так же других сложных картинок (надо в подписи к картинке отправлять символ "+" для перехода в этот режим)
Для этого поэкспериментировал с 18 бесплатными
В комментариях люди поделились интересными ссылками для облегчения жизни
https://github.com/marketplace/models/azure-openai/gpt-4o-mini/playground - бесплатный
https://www.comss.ru/page.php?id=7315 - обход региональных блокировок и не только
#argus #ocr #tgbot
Для этого поэкспериментировал с 18 бесплатными
LLM моделями для выбора лучшей, тут отчетВ комментариях люди поделились интересными ссылками для облегчения жизни
AI энтузиастов:https://github.com/marketplace/models/azure-openai/gpt-4o-mini/playground - бесплатный
gpt-4o прям на GitHubhttps://www.comss.ru/page.php?id=7315 - обход региональных блокировок и не только
#argus #ocr #tgbot
🔥5
Глубокое клонирование реактивных объектов в Vue 3
3 рабочих способа
1. Комбинация
2. Ручное глубокое копирование
3. Библиотечные решения
#tip #reactivity
Vue 3 использует Proxy для реактивности, что создает проблемы при попытке клонировать объекты. Стандартные методы работают не так, как ожидается:const state = reactive({ user: { name: "Al" } });
// Проблемы:
const badCopy1 = { ...state }; // сохраняет Proxy-ссылки
const badCopy2 = JSON.parse(JSON.stringify(state)); // теряет методы и Proxy3 рабочих способа
1. Комбинация
toRaw + structuredCloneimport { toRaw } from 'vue';
const original = reactive({ data: 123 });
const copy = structuredClone(toRaw(original));2. Ручное глубокое копирование
function deepClone(obj) {
if (obj === null || typeof obj !== 'object') return obj;
const clone = Array.isArray(obj) ? [] : {};
for (const key in obj) {
clone[key] = deepClone(obj[key]);
}
return clone;
}
const copy = reactive(deepClone(toRaw(original)));3. Библиотечные решения
import { cloneDeep } from 'lodash-es';
const copy = reactive(cloneDeep(toRaw(obj)));#tip #reactivity
👍11
This media is not supported in your browser
VIEW IN TELEGRAM
Пятничная клубничка
Стартап Argil предлагает загрузить видео себя (или не себя) и создать такого вот клоникадля OnlyFans
#ai
Стартап Argil предлагает загрузить видео себя (или не себя) и создать такого вот клоника
#ai
🤯6
Хорошая библиотека
Долго мучился с расположением при динамично меняющемся таргет элементе - все как-то через одно место криво работало. Решил поставить
Немного радует, что довольно часто обновляется и фиксят баги.
P.S. Ререндеринг через `:key` - плохая практика. Последний вариант.
#lib #arkui
Ark-ui, но с особенностями. Особенно у "выпадашки" HoverCard (для меню которая)Долго мучился с расположением при динамично меняющемся таргет элементе - все как-то через одно место криво работало. Решил поставить
:key на HoverCard и инкрементить его при апдейтах - и всё сразу заработало как надо. Ну, ё-моё...Немного радует, что довольно часто обновляется и фиксят баги.
P.S. Ререндеринг через `:key` - плохая практика. Последний вариант.
#lib #arkui
👍2
Статья о современном минимальном наборе фавиконок для сайта
#webdev
<link rel="icon" href="/favicon.ico" sizes="any"><!-- 32×32 -->
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png"><!-- 180×180 -->
<link rel="manifest" href="/manifest.webmanifest">
// manifest.webmanifest
{
"icons": [
{ "src": "/icon-192.png", "type": "image/png", "sizes": "192x192" },
{ "src": "/icon-512.png", "type": "image/png", "sizes": "512x512" }
]
}
#webdev
Хабр
Как создавать иконки сайтов в 2022 году — всё о favicon
Эта статья перевод англоязычной статьи Андрея Ситника из блога Злых марсиан . Пришло время переосмыслить то, как мы создаем набор иконок для современных браузеров, и остановить безумные генераторы....
👍9
Почему неконтролируемого использования
1. Нарушение реактивного потока
2. Плохая читаемость
Цепочки
Плохо для рефакторинга - логика, разбросанная по
3. Производительность
Неотписанные
#reactivity #watch
watch лучше избегать?1. Нарушение реактивного потока
watch часто скрывает логику реактивности. Например, отслеживание изменения переменной для вызова побочного эффекта (fetch) делает поток данных менее предсказуемым, особенно если эффекты затрагивают несколько компонентов.Vue поощряет однонаправленную реактивность (данные -> шаблон). watch часто используется для обратной связи (данные -> данные), что усложняет отладку.2. Плохая читаемость
Цепочки
watch внутри компонента превращаются в плохо понимаемый в спагетти-код.Плохо для рефакторинга - логика, разбросанная по
watch, сложно переносится в composables.3. Производительность
watch с deep: true может создать нагрузку при отслеживании больших объектов или массивов.watch часто дублирует логику, которую можно выразить через computed. Вычисляемые свойства кешируются и эффективнее.Неотписанные
watch в динамических компонентах (например, внутри v-if) могут накапливаться и вызывать утечки памяти.watch — это аварийный выход для случаев, когда декларативных подходов недостаточно. Если возможно, нужно старайться решить задачу через computed, props или события.#reactivity #watch
👍12❤8
Представитель
Задавайте вопросы и запросы, какие темы осветить. Любые.
#interview #hh #job
hh.ru согласился дать интервью каналуЗадавайте вопросы и запросы, какие темы осветить. Любые.
#interview #hh #job
👍8
Все, кто имет отношение, приглашаются пройти исследование русскоязычных продакт-менеджеров — 2025
Команда
– что входит в зону ответственности продакта в компаниях разного размера,
– какие навыки востребованы и чего не хватает,
– как и где продакты учатся и растут,
– какие инструменты и подходы реально работают,
– сколько получают и сколько хотят получать специалисты на разных грейдах.
https://survey.alchemer.eu/s3/90815016/dvcrowd-product-2025
Подробней на канале Тиграна Басеяна о продакт менеджменте и стартапах
#offtop
Команда
DevCrowd в четвёртый раз запускает исследование, чтобы понять, как живётся продактам:– что входит в зону ответственности продакта в компаниях разного размера,
– какие навыки востребованы и чего не хватает,
– как и где продакты учатся и растут,
– какие инструменты и подходы реально работают,
– сколько получают и сколько хотят получать специалисты на разных грейдах.
https://survey.alchemer.eu/s3/90815016/dvcrowd-product-2025
Подробней на канале Тиграна Басеяна о продакт менеджменте и стартапах
#offtop
Обычно для группировки массива по какому-то ключу используют
Однако уже доступны
#js
reduceОднако уже доступны
Object.groupBy и Map.groupBy, которые позволяют упростить эту процедуруconst users = [
{ id: 1, name: "Alex", role: "admin" },
{ id: 2, name: "Anna", role: "user" },
];
const grouped = Object.groupBy(users, ({ role }) => role);
// Результат:
// { admin: [{...}], user: [{...}] }
#js
👍27❤1
Кто снёс канал Душного Вуя?
Anonymous Poll
25%
Дуров Павел Никодимович
27%
Приглашённые гастарбайтеры
48%
Озон
Ради интереса выставил своего Аргуса на конкурс проектов на Product Radar
Кому бот понравился - поддержите голосом (надо залогиниться на сайт).
Хейтеры могут поддержать соперников. Можно сразу всех вместе.
#argus #productradar #contest
Кому бот понравился - поддержите голосом (надо залогиниться на сайт).
Хейтеры могут поддержать соперников. Можно сразу всех вместе.
#argus #productradar #contest
🔥9👍1👎1