На основе первых доступных бенчей — DeepSeek 4 чуть лучше, чем GLM 5.1 📊. Им я, кстати, вполне доволен. Да, он явно не так умен, как тот же claude-sonnet-4.6 🤖, если работать на проекте с нуля, где нет примеров кода, готовых паттернов и шаблонов.
Например, при работе с Vue зачем-то всё оборачивает в reactive, а потом ещё и в readonly, что, разумеется, вызывает проблемы при записи 🐞. Но в целом, если дать ему примеры, готовый проект и context7, кашу варит он очень хорошо. В целом пойдет, я бы оценил на 7 вайбов из 10 😎.
Будем посмотреть на DeepSeek v4, а также в виш-листе ещё ждет Qwen-3.6-plus 📝.
https://habr.com/ru/news/1027306/
Например, при работе с Vue зачем-то всё оборачивает в reactive, а потом ещё и в readonly, что, разумеется, вызывает проблемы при записи 🐞. Но в целом, если дать ему примеры, готовый проект и context7, кашу варит он очень хорошо. В целом пойдет, я бы оценил на 7 вайбов из 10 😎.
Будем посмотреть на DeepSeek v4, а также в виш-листе ещё ждет Qwen-3.6-plus 📝.
https://habr.com/ru/news/1027306/
Просто открытие этого года номер 1 пока что 🤩.
До прихода на текущее место работы, где я занимаюсь разработкой плагинов под браузеры и IDE, я плотно не касался этой темы, и всегда поиск хороших примеров или документации занимал уйму времени. С ИИ, конечно, процесс идёт бодрее, но всё равно тема скользкая по вышеизложенной причине — банально не так много документации о том, как правильно надо это всё сделать. Зачастую разработчики изобретают велосипеды, чтобы заставить расширение работать 🚲.
Но тут дропнули просто адски мощный фреймворк для разработки плагинов под браузеры. Это буквально гейм-ченджер в мире плагинов! 🚀
https://wxt.dev/guide/introduction.html
До прихода на текущее место работы, где я занимаюсь разработкой плагинов под браузеры и IDE, я плотно не касался этой темы, и всегда поиск хороших примеров или документации занимал уйму времени. С ИИ, конечно, процесс идёт бодрее, но всё равно тема скользкая по вышеизложенной причине — банально не так много документации о том, как правильно надо это всё сделать. Зачастую разработчики изобретают велосипеды, чтобы заставить расширение работать 🚲.
Но тут дропнули просто адски мощный фреймворк для разработки плагинов под браузеры. Это буквально гейм-ченджер в мире плагинов! 🚀
https://wxt.dev/guide/introduction.html
wxt.dev
Next-gen Web Extension Framework – WXT
WXT provides the best developer experience, making it quick, easy, and fun to develop web extensions. With built-in utilities for building, zipping, and publishing your extension, it's easy to get started.
🔥1🤝1
Копаясь в исходниках очередного OSS наткнулся на реализацию функционала не штатными средствами языка, а через библиотеку Effect. Даже, скорее, фреймворк для дизайна сложных приложений.
https://effect.website/docs/getting-started/introduction/
Там очень много функционала и возможностей, но базовый пример выглядит так:
Проблемы такого кода - мы типизируем только возвращаемое значение функции и снаружи не имеем понятия о том, что она может бросить ошибку, и если бросит - то какую. Да, можно обернуть ее в try/catch и это будет уже неплохо, но не добавит ясности в код.
Что предлагает Effect:
Теперь функция не бросает ошибок, она возвращает четко типизированные значения, где ошибка - такое же значение.
Это самый базовый пример и у библиотеки множество применений, с которыми можно ознакомиться в документации. Интересно, такого Scala подобного кода в TS я еще не видел. Или даже Go чем то напоминает где эта вечная проверка на
https://effect.website/docs/getting-started/introduction/
Там очень много функционала и возможностей, но базовый пример выглядит так:
const divide = (a: number, b: number): number => {
if (b === 0) {
throw new Error("Cannot divide by zero")
}
return a / b
}Проблемы такого кода - мы типизируем только возвращаемое значение функции и снаружи не имеем понятия о том, что она может бросить ошибку, и если бросит - то какую. Да, можно обернуть ее в try/catch и это будет уже неплохо, но не добавит ясности в код.
Что предлагает Effect:
import { Effect } from "effect"
const divide = (
a: number,
b: number
): Effect.Effect<number, Error, never> =>
b === 0
? Effect.fail(new Error("Cannot divide by zero"))
: Effect.succeed(a / b)Теперь функция не бросает ошибок, она возвращает четко типизированные значения, где ошибка - такое же значение.
┌─── Produces a value of type number
│ ┌─── Fails with an Error
│ │ ┌─── Requires no dependencies
▼ ▼ ▼
Effect<number, Error, never>
Это самый базовый пример и у библиотеки множество применений, с которыми можно ознакомиться в документации. Интересно, такого Scala подобного кода в TS я еще не видел. Или даже Go чем то напоминает где эта вечная проверка на
nil.Effect Documentation
Introduction
Explore Effect, a TypeScript library for building scalable, maintainable, and type-safe applications with advanced concurrency, error handling, and resource management.
Forwarded from Всратые кошки в окошке
Короче, у меня тут целый Московский стартап: 8 уличных булочек ищут своих людей🌷
Все разные: есть пушистые комочки, есть более "гладкие", есть вообще стильный - чёрный, как маленькая тень💅
Очень хочется, что бы у каждого появился свой заботливый человек🫳
Если вдруг откликнулось - пиши мне, пересылай друзьям или сделай репост, вдруг их хозяева где- то рядом❤️
#котикищетдом
#пристройкотят
Все разные: есть пушистые комочки, есть более "гладкие", есть вообще стильный - чёрный, как маленькая тень
Очень хочется, что бы у каждого появился свой заботливый человек
Если вдруг откликнулось - пиши мне, пересылай друзьям или сделай репост, вдруг их хозяева где- то рядом
#котикищетдом
#пристройкотят
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6
Всратые кошки в окошке
Короче, у меня тут целый Московский стартап: 8 уличных булочек ищут своих людей🌷 Все разные: есть пушистые комочки, есть более "гладкие", есть вообще стильный - чёрный, как маленькая тень💅 Очень хочется, что бы у каждого появился свой заботливый человек🫳 …
Не по теме, но от чего бы не помочь.
Настройка WSL2 занятие не для слабонервных, особенно когда у вас нет адм прав на винде. Не хочет Ubuntu 26.04 в инет выходить никак.
Так сделал
https://github.com/microsoft/WSL/issues/5420#issuecomment-646479747
https://askubuntu.com/questions/1248825/how-can-i-fix-internet-connection-issues-on-wsl2
Сам WSL уже дважды перезапускал и пока ничего. Ну, пока мне слишком лень перезагружать комп, чтобы проверить в этом ли дело.
Так сделал
https://github.com/microsoft/WSL/issues/5420#issuecomment-646479747
https://askubuntu.com/questions/1248825/how-can-i-fix-internet-connection-issues-on-wsl2
Сам WSL уже дважды перезапускал и пока ничего. Ну, пока мне слишком лень перезагружать комп, чтобы проверить в этом ли дело.
GitHub
WSL 2 keeps overwriting resolv.conf · Issue #5420 · microsoft/WSL
Environment Windows build number: Microsoft Windows [Version 10.0.19041.264] Your Distribution version: Ubuntu 18.04 Whether the issue is on WSL 2 and/or WSL 1: WSL 2 Steps to reproduce Previously,...
Forwarded from Душный Вуй
Хабр
Как не надо писать Store в Pinia (Vue). Разбираем на выдуманном примере
Сегодня посмотрим на вымышленный пример, как не надо делать стор. Любые совпадения - случайность. Все истории выдуманы. Представьте: есть у нас герой Алекс. Перекидывают его на проект - «поправить...
Душный Вуй
https://habr.com/ru/articles/1028052/
Прочитал и оказалось что статья для джунов) увидеть
В целом с опытом начинаешь понимать "базовые" вещи без заучивания паттернов и чтения гайдов "как же юзать стор" - все же логично, если подумать.
Я вывел несколько общих правил для себя:
1. Используй стор, когда состояние глобально или покрывает область приложения. Да, для этого можно использовать и просто рефы, но когда у тебя все просто в рефах - пойди потом разбери что здесь глобальный стейт, а что просто реф. Да, их можно "грамотно назвать", но семантически стор будет корректнее.
2. Не делай вотч в сторе, если на это завязан UI. Логика интерфейса - в компоненте или в композабле, которую использует компонент. Но не в сторе!
3. 1 стор - это одна логическая единица, следовательно он должен объединять в себе работу с данными определенного домена. Исключение - глобальный стор аля тема/локаль/другие глобальные данные для всего приложения, которые будут объединены в глобальном сторе приложения.
4. Дроби код на маленькие, простые, тестируемые функции. Вместо голых фетчей - сделай одну функцию реквест с понятным названием, типизированными параметрами и ожидаемым выводом, используй дженерики.
computed на айтем в localStorage - это сильно =) В целом с опытом начинаешь понимать "базовые" вещи без заучивания паттернов и чтения гайдов "как же юзать стор" - все же логично, если подумать.
Я вывел несколько общих правил для себя:
1. Используй стор, когда состояние глобально или покрывает область приложения. Да, для этого можно использовать и просто рефы, но когда у тебя все просто в рефах - пойди потом разбери что здесь глобальный стейт, а что просто реф. Да, их можно "грамотно назвать", но семантически стор будет корректнее.
2. Не делай вотч в сторе, если на это завязан UI. Логика интерфейса - в компоненте или в композабле, которую использует компонент. Но не в сторе!
3. 1 стор - это одна логическая единица, следовательно он должен объединять в себе работу с данными определенного домена. Исключение - глобальный стор аля тема/локаль/другие глобальные данные для всего приложения, которые будут объединены в глобальном сторе приложения.
4. Дроби код на маленькие, простые, тестируемые функции. Вместо голых фетчей - сделай одну функцию реквест с понятным названием, типизированными параметрами и ожидаемым выводом, используй дженерики.
Forwarded from xCode Journal
Она показывает, почему сайт не открывается — из-за проблем сети или из-за блокировок.
«Инструмент определяет, находится ли ваше соединение в зоне блокировки RKN/TSPU — и, что более полезно, какой именно тип блокировки (отравление DNS, сброс TCP, TLS DPI на SNI или страница‑заглушка от провайдера).»
Please open Telegram to view this post
VIEW IN TELEGRAM