Сова пишет…
2.99K subscribers
375 photos
38 videos
5 files
444 links
Download Telegram
Всех с наступающим и наступившим!
❤43🎉26🎄8👎5👍3
Раньше, я всем советовал Spark Mail App.

Но сейчас, это приложение из быстрого и приятного превратилось в кладбище хороших идей.

Из каждой дырки торчит кнопка AI, которая открывает модалку с покупкой подписки.
Очень-очень много багов. Даже сайдбар багует так, что иной раз помогает только перезагрузка приложения или даже переустановка.

Мне очень нравилось это приложение большим количеством кастомизации, синхронизацией между девайсами, а также поддержкой кучи провайдеров.

Есть например, SuperHuman, так он только Google и Outlook поддерживает, еще и ТОЛЬКО по подписке, что кринж.

У меня 5 email'ов от разных провайдеров, мне не подходит пользоваться web-приложениями КАЖДОГО провайдера.

Apple Mail не имеет даже малую часть кастомизации Spark.

Эх, это было лучшее приложение, но его убили((
Какие альтернативы?
🤷‍♂5👍3👎3
Сова пишет…
Если вы пользуетесь Godaddy, лучше мигрировать настолько быстро насколько возможно
Вброшу еще немного инфы

Чуваки из godaddy настолько безумны, что банят тупо всех, даже своих старых клиентов
1🙈7❤2😁2🌚2🔥1
Как определить контору пидорасов?

Во первых, выкуп домена в 4 раза дороже продления.

Во вторых, купить с креденшенами из РФ стоит на $24 доллара дешевле, чем из Армении.
👎66😁26💯8😱32
Но в защиту конторы, спустя полгода регулярных написываний в поддержку, мне разблокировали аккаунт на 48 часов.
😁13💅4🗿3👎22
Около 3-4 месяцев назад я начал проект smartbundle, так как заметил странное противоречие: по-моему мнению 99.9% библиотек имеют один и тот же пайплайн сборки, но каждый человек каждый раз зачем-то пилит его с нуля.
Причём каждый раз изобретая свои способы решения одних и тех же проблем, что приводит к тому, что package.json в проектах превращается в священную корову, так как он собирает в себя все костыли совместимости, которые лучше не трогать, так как никто не помнит что там и зачем. И даже больше: люди просто говорят "а мы не можем решить проблему совместимости, сорян" https://blog.isquaredsoftware.com/2023/08/esm-modernization-lessons/

И это чуток мне надоело: я хочу собрать все практики внутри одной тулы, чтобы не приходилось даже знать о всех костылях: пусть бандлер просто соберёт код и не будет меня волновать.

И моя гипотеза о том, что эта штука возможна, походу работает. Как я говорил: имя ему smartbundle https://github.com/XaveScor/smartbundle

И сборка приложения становится как никогда простой: вот пример переноса библиотеки на смартбандл - https://github.com/XaveScor/json-to-ast-es/commit/48d5861529e664c9b2adeb84f5d8e92398f3b997
0 конфигов. 0 доп библиотек. примерно 0 знаний о том во что должен превратиться код. Нужны только минимальные знания о современном package.json и за что отвечает строчка "exports". И всё.
После чего остаётся только перейти в директорию ./dist и опубликовать пакет.

Смартбандл всё ещё на этапе разработки и требует огромного количества фич, а это невозможно добиться без качественной обратной связи. Все обновления и мысли по смартбандлу я веду в @smartbundle. Подписывайтесь, делегируйте смартбандлу сборку ваших библиотек и занимайтесь кодом, а не инфрой.
❤23👍9🔥6🤔1
Вот в ЭКОСИСТЕМЕ APPLE есть такое приложение как iPhone Mirroring

Его суть в том, чтобы я мог лежа на диване с ноутбуком потыкать в нужные мне приложения на айфоне не вставая, особенно полезно, если айфон на зарядке в другой комнате.

Что интересно, эта фича работала несколько недель сразу после релиза, а потом перестала.

Месяцем позже Apple выкатили апдейт для всех устройств и вроде заработало.

Сейчас я решил снова воспользоваться этой фичей: мне пришло уведомление с айфона, тыкнул, открылось iPhone Mirroring.

Но! Apple предлагает мне встать, найти айфон и разблокировать его, чтобы использовать эту фичу!

Но тогда нафига мне эта фича? Как так?
😁33🔥2👍1
Сова пишет…
Вброшу еще немного инфы Чуваки из godaddy настолько безумны, что банят тупо всех, даже своих старых клиентов
Ну и теперь окончательно понятно что это за компания.

Я начал перенос последнего домена, когда мне разблокировали доступ на 48 часов.

Потом выяснилось, что для переноса нужно сменить контактные данные,
а подтверждение занимает 48 часов 🤡.

Спустя 48 часов аккаунт снова был заблокирован,
перенести домен я не смог, а когда написал в поддержку, мне ответили, что теперь аккаунт был закрыт навсегда.
😁39😢12🌚6🤷‍♂5🔥2
Казалось бы, что может быть такого, в патчинге глобальных функций в javascript окружении?

Не так давно, сообществу удалось пропушить отмену манки-патчинга fetch командой next.js.

Но вы знали, что StrictMode патчит console.log?

Попробуйте вот этот код:


import "./styles.css";
import { useEffect, StrictMode } from "react";
import ReactDOM from "react-dom/client";

const rootElement = document.getElementById("root")!;
const root = ReactDOM.createRoot(rootElement);

root.render(
<StrictMode>
<App />
</StrictMode>
);

function App() {
useEffect(() => {
console.info("useEffect fn called!");
}, []);

return <h1>Hello CodeSandbox</h1>;
}


И вы увидите, один лог "useEffect fn called!"
Но если добавить счетчик


let amount = 0;

export default function App() {
useEffect(() => {
console.info("useEffect fn called!", ++amount);
}, []);

return <h1>Hello CodeSandbox</h1>;
}


То, сразу будет заметна проблема:


useEffect fn called! 1
useEffect fn called! 2


И вы можете сказать: ну что такого, удобно же?
Но вам не кажется, что об этом можно было написать в документации?
https://react.dev/reference/react/StrictMode

А еще можно дать флаг, чтобы выключить это поведение (может и есть, но в документации нет ничего!)

Отлаживать работу сложных компонентов, когда React вставляет палки в колеса на каждом шаге, это адовое действо!

Если хочется потыкать:
https://github.com/facebook/react/blob/main/packages/shared/ConsolePatchingDev.js

Может это только у меня так?

Оказывается, да!
В более поздних 17+ версиях react это поведение откатили.
Теперь подсвечивают второй лог более бледным цветом

Да здравствует здравый смысл, раз уж у нас нет нормального фреймворка
🗿16👍8👎7❤2
Очень нравится, когда удается настолько сократить код при этом повысить читаемость
35👍11😁8🌚3🤩1
Forwarded from Effector news (Дима Zerꙫbias)
effector 23.3.0

- Улучшены сообщения об ошибках для skipVoid и store without sid: теперь по стектрейсу видно в каком сторе произошло исключение, что помогает быстрее найти и исправить его поведение
- Добавлена поддержка произвольного количества аргументов в колбэк scopeBind. Автоматически позволяет передать в reflect bind колбэки с числом аргументов больше одного
- Исправлено поведение clearNode в большом ряде ситуаций при работе с withRegion


Мы продолжаем активную работу над моделями и новым мажорным релизом. Данный минорный релиз потребовался чтобы позволить разрабатывать MVP моделей поверх 23 версии не углубляясь в эффективную реализацию. Разработка будет проходить в этом репозитории. Stay tuned!
12👍7🔥2👎1😡1
С сегодняшнего дня мой юзернейм в великой социальной сети — x.com/sergeysova

Теперь у меня есть:
- t.me/sergeysova
- github.com/sergeysova
- x.com/sergeysova

На самом деле юзернейм использую в куче других соц сетей и сервисов, но эти были наиболее интересны.

Удалось связаться с предыдущим владельцем юзернейма, а так как аккаунт не использовался, то пользователь поменял на другой, за что ему отдельное огромное спасибо!
👎120🔥24❤5👍4🌚1
В виду популяризации нейросетей, а также инструментов разработчиков с AI, я добавил в effector.dev несколько подходов, которые облегчат работу.

Стоит начать с коллекции всей документации в виде единого файла. Передаете любую ссылку из списка ниже в ваш ChatGPT/Gemini/Grok и задаете вопросы.
Изначальная задумка отсюда:
https://scalabledeveloper.com/posts/llms-txt-with-astro/

В effector доступно несколько документов:
https://effector.dev/docs/llms.txt
https://effector.dev/docs/llms-full.txt

А также я сделал отдельно локализованные версии:
https://effector.dev/en/llms-full.txt
https://effector.dev/ru/llms-full.txt
https://effector.dev/uz/llms-full.txt
Не вся документация переведена полностью, поэтому недостающие статьи дополняются английским исходником.

Из этих файлов вычищены внутренние ссылки, ID-заголовков, а также вырезан некоторый кастомный markdown синтаксис. Это уменьшает количество токенов.
🔥388👍5👎1
Кроме этого, я уже давненько создал Custom GPT под названием Effector Assistant, вы можете найти его в каталоге ChatGPT GPTs.

Я загрузил в него не только документацию effector, но еще и WithEase, некоторые свои статьи и рекомендации для ChatGPT.

Вот пример ответа:
https://chatgpt.com/share/67b43fa3-bfe0-8002-8b6c-cdc9b43ab351
1❤16👍66🔥2
Раз уж пишу про обновление документации effector, то расскажу, что сейчас сообщество активно пишет новые статьи и улучшает уже написанные!

Effector становится все более привлекательным инструментом для изучения.

Сейчас я не вкладываю много сил в документацию, так как недавно участвовал в программном комитете Podlodka React Crew #2, а также продолжаю дописывать контент для frontend.vision и активно стараюсь не выгореть.

Количество материалов по effector растет с каждым днём, я даже не успеваю вычитывать все новые статьи, поэтому активно использую некоторые AI-технологии для создания контента.

Например, я выкачал всю документацию и статьи, разбил на кусочки и посчитал эмбеддинги, чтобы в дальнейшем крайне быстро и точно искать по содержимому. Это супер сильно помогает при написании статей.

Вообще, это подход так называемого RAG (Retrieval-augmented generation), но вместо использования полноценного инструмента я собрал свой RAG дома на коленке используя NodeJS + SQLite запуская в CLI.

По сути, собираю уникальную пачку чанков из документации последовательным поиском, а дальше либо читаю глазами результат, либо компилирую в единый ответ через LLM.

Если интересно, расскажу как это работает подробнее
🔥249❤5👎3👍2
Я каким-то образом пропустил Rust 1.85

Язык перешел на новую стабильную версию синтаксиса Edition 2024

https://blog.rust-lang.org/2025/02/20/Rust-1.85.0.html
👍8🔥1
Forwarded from Hacknote.js (Никита Балихин)
Системы эффектов

Недавно послушал выпуск Подлодки про "Системы эффектов в языках программирования" и решил поделиться некоторыми рандомными рассуждениями на эту тему.

"Окраска" функций

"Окраской" функций называется некоторая декларация эффектов, содержащихся в функции.

В JavaScript есть 2 варианта "окраски" функций:

- async — обозначает, что функция асинхронная и позволяет использовать внутри неё оператор await
- * — обозначает, что функция является генератором и позволяет использовать внутри неё оператор yield

Fun fact: эти 2 варианта можно скомбинировать, чтобы получить AsyncIterator, который можно перебирать оператором for await...of.

В языке Nim система эффектов позволяет окрашивать функции любыми эффектами, что выглядит весьма любопытно (на самом деле существует ещё множество языков с такой возможностью, но почему-то мне сразу вспомнился именно Nim).

Обработка исключений

В Java есть оператор throws, позволяющий "окрасить" функцию эффектом выброса определённого типа исключения и на этапе сборки удостовериться, что эти исключения обработаны.

JavaScript/TypeScript не позволяет типизировать исключения (разве что задокументировать их с помощью JSDoc или TSDoc), но теоретически эту проблему можно решить знаменитой монадой Either.

Чистота функций

Бандлеры используют аннотацию /*#__PURE__*/, которая обозначает отсутствие побочных эффектов в функции, для более эффективного тришейкинга (упомянал об этом в своём докладе).

В самом JavaScript нет языкового средства для выражения чистоты функции — то есть отсутствия в ней эффектов, хотя было бы классно использовать это знание, например, для исполнения кода во время сборки (как, например, c babel-plugin-macros).
🔥8❤3👍3
В документацию effector.dev подъехал ПР

Теперь в навигации есть красивый переключатель разделов, спасибо @senzujuju

https://github.com/effector/effector/pull/1232
16🔥5❤4👍1🤩1