Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
1191 - Telegram Web
Telegram Web
Кевин Денг (создатель Vapor) получил ежемесячное спонсорство от VoidZero в размере $1024

Еще столько же дают совместно Эван и Vue.js, и еще около $1000 все остальные

Прошлой осенью Кевин жаловался, что ему не на что содержать семью, и поэтому он забросил Vapor

Как и ожидалось, Эван использует полученные VoidZero инвестиции для вознаграждения работающим во Vue и Vite экосистемах людям, но как-то уж очень экономно он это делает.

#vapor #voidzero
👍12💯1
Даже во сне думаешь о UI/UX, реализуешь адаптивность, отзывчивость, тестируешь на всех разрешениях, потом открываешь супер популярный сайт и не можешь до конца меню пролистать, свою станцию выбрать, потому что экран кончился, а меню уходит ниже...

#ux
😁5🙊1
Эван думает так же

#ai
👍7
Мой Argus бот для распознавания текста на фото и изображениях потихоньку раскручивается

Добавил к нему кнопки быстрых действий и увеличил число LLM до четырех - две основные и две на фоллбэк.

Эксперименты показали, что Mistral OCR в среднем по качеству близок к FineReader (где-то лучше, где-то хуже). Но выдают они данные, естественно, в разных форматах.

На неделе добавится распознавание рукописного текста

#tgbot #argus #php #ai
👍5
Книжки

Общеполезное


The Pragmatic Programmer by Andrew Hunt and David Thomas
Code Complete by Steve McConnell

Coding

Clean Code by Robert C. Martin
Refactoring by Martin Fowler

Software Architecture

Designing Data-Intensive Applications by Martin Kleppmann
Object-Oriented Analysis and Design with Applications by Grady Booch

Design Patterns

Design Patterns by Eric Gamma and Others
Domain-Driven Design by Eric Evans

Data Structures and Algorithms

Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein
Cracking the Coding Interview by Gayle Laakmann McDowell

#learning #book
6
This media is not supported in your browser
VIEW IN TELEGRAM
Дожили

В Chrome 135 появилась возможность стилизовать нативный <select>

Теперь сайт Аэроэкспреса пофиксят...

#chrome #css
🤯9👍4💩1
Большой обзор rich text editors для встраивания в свой фронт

#editor #lib
👍7
В конце прошлого года маленькие любители атомарного CSS помогли владельцу Tailwind Адаму Уэтену въехать вот в этот новый домик.

Платные продукты и услуги, связанные c Tailwind , приносят Адаму несколько миллионов долларов в год

#tailwind
👍12😐8
В CSS есть @scope функция, ограничивающая область применения стилей:

<template>
<div class="box">
<button class="button">Click me</button>
</div>
</template>

<style>
@scope (.box) {
.button {
color: red;
}
}
</style>


Однако полной замены Vue scoped она не может дать. Например, потому, что если компонент выше вывести списком, то во Vue у каждого будет свой data атрибут и своя область видимости стилей, а у @scope всё смешается

Но для ванильных случаев это полезное нововведение

#css
👍5
Добавил в Argus распознавание рукописного текста, а так же других сложных картинок (надо в подписи к картинке отправлять символ "+" для перехода в этот режим)

Для этого поэкспериментировал с 18 бесплатными LLM моделями для выбора лучшей, тут отчет

В комментариях люди поделились интересными ссылками для облегчения жизни AI энтузиастов:

https://github.com/marketplace/models/azure-openai/gpt-4o-mini/playground - бесплатный gpt-4o прям на GitHub

https://www.comss.ru/page.php?id=7315 - обход региональных блокировок и не только

#argus #ocr #tgbot
🔥5
🔥9
👍41
Глубокое клонирование реактивных объектов в Vue 3

Vue 3 использует Proxy для реактивности, что создает проблемы при попытке клонировать объекты. Стандартные методы работают не так, как ожидается:

const state = reactive({ user: { name: "Al" } });

// Проблемы:
const badCopy1 = { ...state }; // сохраняет Proxy-ссылки
const badCopy2 = JSON.parse(JSON.stringify(state)); // теряет методы и Proxy


3 рабочих способа

1. Комбинация toRaw + structuredClone

import { 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
🤯6
2025/07/13 19:06:48
Back to Top
HTML Embed Code: