https://github.com/nodejs/node/pull/55217
В следующем миноре node@22 ожидаем require(esm) без флага. Оно уже смержено в мастер.
Смерть cjs всё ближе и ближе.
В следующем миноре node@22 ожидаем require(esm) без флага. Оно уже смержено в мастер.
Смерть cjs всё ближе и ближе.
GitHub
[v22.x] backport unflagging of --experimental-require-module and related fixes/refactorings by joyeecheung · Pull Request #55217…
This backports the following PRs that are related to the unflagging of --experimental-require-module:
module: remove bogus assertion in CJS entrypoint handling with --import #54592
module: refator...
module: remove bogus assertion in CJS entrypoint handling with --import #54592
module: refator...
🔥5🤡2🗿2💩1
Старые апи.
Каждый раз, когда я сталкиваюсь с чем-то кривым и плохо спланированным в браузерах, то понимаю что это что-то из эпохи IE11 или раньше.
Сейчас я работаю над аналитикой на сайте и удивляюсь насколько плохо спроектирован sendBeacon. Если вкратце что это такое: этот метод когда-нибудь отправит данные по урлу, который мы передаём туда. Всё, максимально примитивно.
И эта примитивность плоха. В идеале, я хотел бы чтобы sendBeacon батчил и отправлять данные на сервер, когда пользователь не взаимодействует со страницей. Но этого нет - дока на mdn рекомендует делать это самостоятельно:
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon#sending_analytics_at_the_end_of_a_session
И самое неприятное то, что я не могу сделать всё это руками в юзерспейсе: requestIdleCallback попросту отсутсвует в Safari. В итоге, для примитивной аналитики нам нужно костылить кучу кода.
Каждый раз, когда я сталкиваюсь с чем-то кривым и плохо спланированным в браузерах, то понимаю что это что-то из эпохи IE11 или раньше.
Сейчас я работаю над аналитикой на сайте и удивляюсь насколько плохо спроектирован sendBeacon. Если вкратце что это такое: этот метод когда-нибудь отправит данные по урлу, который мы передаём туда. Всё, максимально примитивно.
И эта примитивность плоха. В идеале, я хотел бы чтобы sendBeacon батчил и отправлять данные на сервер, когда пользователь не взаимодействует со страницей. Но этого нет - дока на mdn рекомендует делать это самостоятельно:
https://developer.mozilla.org/en-US/docs/Web/API/Navigator/sendBeacon#sending_analytics_at_the_end_of_a_session
И самое неприятное то, что я не могу сделать всё это руками в юзерспейсе: requestIdleCallback попросту отсутсвует в Safari. В итоге, для примитивной аналитики нам нужно костылить кучу кода.
MDN Web Docs
Navigator: sendBeacon() method - Web APIs | MDN
The navigator.sendBeacon()
method asynchronously sends an HTTP POST request containing a small amount of data to a web server.
method asynchronously sends an HTTP POST request containing a small amount of data to a web server.
👍6💩1🤡1
Где-то год назад я поражался насколько людей легко пробить, используя утечки Яндекс.Еды или других крупных компаний. Но меня успокаивало то что я чуток доверяю Яндексу и понимаю, что они закроют эту дырень. Но то, что данными людей торгуют просто в открытую и это легально - это прямо удивительно для меня:
https://habr.com/ru/companies/timeweb/articles/861510/
Причём, кмк, это касается не только РФ, но и как минимум Казахстана. https://b2b.kcell.kz/ru/product/direct-marketing
Всё больше убеждаюсь и убеждаюсь, что
а) сервисам жизненно необходимо иметь поддержку, которая осуществляется не только по номеру телефона. Хотя бы почту. Просто чтобы не дарить своего клиента конкурентам или разводилам;
б) Жизненно необходимо сидеть через kill-switch VPN, чтобы тебя не мог таргетить твой провайдер.
Не стесняйтесь использовать https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https и прочие технологии, которые мешают вас трекать
https://habr.com/ru/companies/timeweb/articles/861510/
Причём, кмк, это касается не только РФ, но и как минимум Казахстана. https://b2b.kcell.kz/ru/product/direct-marketing
Всё больше убеждаюсь и убеждаюсь, что
а) сервисам жизненно необходимо иметь поддержку, которая осуществляется не только по номеру телефона. Хотя бы почту. Просто чтобы не дарить своего клиента конкурентам или разводилам;
б) Жизненно необходимо сидеть через kill-switch VPN, чтобы тебя не мог таргетить твой провайдер.
Не стесняйтесь использовать https://developers.cloudflare.com/1.1.1.1/encryption/dns-over-https и прочие технологии, которые мешают вас трекать
👍9🤡2🤯1💩1
Зависимости
package.json - это место, где мне всегда нужно лезть в доку, так как я критически не могу угадать по названию что делает тот или иной ключ.
А так как я пишу бандлер для либ, то это бесит просто донельзя.
Из последнего: мне нужно описать список пакетов, с которыми может работать моя либа. Т.е. эти пакеты могут существовать, а могут и не существовать. Я справедливо предположил, что нужно использовать "optionalDependencies". Но после релиза ко мне начали приходить пользователи со словами: "а почему у меня устанавливается бабель и тс, хотя я их не ставлю?".
Оказалось, что optDeps - это как deps(т.е. нужно ставить), но установка зависимостей не падает, если поставить зависимость не удаётся. Да, об этом написано в документации. Но кто её читает перед использованием?
И да, это весьма удобно в некоторых редких ситуациях. К примеру, таким макаром Vite ставит нативные зависимости: перечисляются зависимости для всех платформ, и поставятся только те, которые подходят для текущей машины. Остальное просто упадёт и проигнорируется.
В моём же случае понадобилось описать мои зависимости в peerDeps и проставить флаги в peerDepsMeta.
Хорошо, конечно что есть такая возможность, но то что это делается не так очевидно и требует в 2 раза больше строк - бесит. Хотя этот кейс на порядки более частый чем optDeps.
package.json - это место, где мне всегда нужно лезть в доку, так как я критически не могу угадать по названию что делает тот или иной ключ.
А так как я пишу бандлер для либ, то это бесит просто донельзя.
Из последнего: мне нужно описать список пакетов, с которыми может работать моя либа. Т.е. эти пакеты могут существовать, а могут и не существовать. Я справедливо предположил, что нужно использовать "optionalDependencies". Но после релиза ко мне начали приходить пользователи со словами: "а почему у меня устанавливается бабель и тс, хотя я их не ставлю?".
Оказалось, что optDeps - это как deps(т.е. нужно ставить), но установка зависимостей не падает, если поставить зависимость не удаётся. Да, об этом написано в документации. Но кто её читает перед использованием?
И да, это весьма удобно в некоторых редких ситуациях. К примеру, таким макаром Vite ставит нативные зависимости: перечисляются зависимости для всех платформ, и поставятся только те, которые подходят для текущей машины. Остальное просто упадёт и проигнорируется.
В моём же случае понадобилось описать мои зависимости в peerDeps и проставить флаги в peerDepsMeta.
{
"peerDependencies": {
"react": "^17.0.0",
},
"peerDependenciesMeta": {
"react": {
"optional": true
},
}
}
Хорошо, конечно что есть такая возможность, но то что это делается не так очевидно и требует в 2 раза больше строк - бесит. Хотя этот кейс на порядки более частый чем optDeps.
👍18🤡4💩3
https://github.com/copilot
Тут MS добавил copilot для гитхаба, который умеет искать по гитхабу.
Правда он тупой и особо не помогает в сложных сценариях, но хотя бы ищет по документации.
P.S.Россияне, есть ли у вас возможность его использовать без VPN? В РФ и прочих запрещённых странах не доступно. Плюс, видимо, требуется покупка github copilot
Тут MS добавил copilot для гитхаба, который умеет искать по гитхабу.
Правда он тупой и особо не помогает в сложных сценариях, но хотя бы ищет по документации.
P.S.
👍4💩3🤡3🤬2
Воскресный юморок
https://x.com/UnseenJapanSite/status/1865557220857151961
Тут аспирантура в Японии в одном из университетов похоже что устала от засилия китайцев, поэтому зафорсила бан своей страницы в материковом Китае.
Так что если вы не хотите платить за геоip и хочется отключить доступ к сайту в Китае, то просто напишите "Площадь Тяньаньмэнь" в keywords, и Китай вас сам забанит
P.S. если живёте в Китае, то не удивляётесь что мой канал там забанен
https://x.com/UnseenJapanSite/status/1865557220857151961
Тут аспирантура в Японии в одном из университетов похоже что устала от засилия китайцев, поэтому зафорсила бан своей страницы в материковом Китае.
Так что если вы не хотите платить за геоip и хочется отключить доступ к сайту в Китае, то просто напишите "Площадь Тяньаньмэнь" в keywords, и Китай вас сам забанит
P.S. если живёте в Китае, то не удивляётесь что мой канал там забанен
🙉13🤡6❤2👍2😁1💩1
Forwarded from <divelopers>
CSS Wrapped 2024
Команда Chrome DevRel запустила CSS Wrapped 2024. Это лендинг с обзором новых возможностей CSS, выпущенных в Chrome (и не только) в этом году. Можно считать это итогами года для CSS.
В CSS появилось 17 новых возможностей:
-
- Анимация
- Exclusive Accordion
-
- Anchor Positioning
-
- View transitions
- Scroll-driven animations
- Scroll snap events
- Наследование свойств в
-
- @property
- Popover API
- @starting-style
-
-
-
Глядя на этот список и отслеживая новинки для публикации в этот канал, я впечатлён развитием CSS в этом году. Не помню такого количества фич раньше. Осталось дождаться хорошей поддержки всего этого. Тут я тоже настроен позитивно, о чём я уже упоминал. А пока предлагаю перейти на сайт CSS Wrapped 2024 и ознакомиться с демками всех новых возможностей. Особенно через последнюю версию Chrome, в которой все они поддерживается.
На самом сайте при этом во всю используются новые возможности CSS, поэтому можно поизучать исходники.
Команда Chrome DevRel запустила CSS Wrapped 2024. Это лендинг с обзором новых возможностей CSS, выпущенных в Chrome (и не только) в этом году. Можно считать это итогами года для CSS.
В CSS появилось 17 новых возможностей:
-
field-sizing- Анимация
height: auto, calc-size() и interpolate-size- Exclusive Accordion
-
::details-content- Anchor Positioning
-
scrollbar-color и scrollbar-width- View transitions
- Scroll-driven animations
- Scroll snap events
- Наследование свойств в
::backdrop-
light-dark()- @property
- Popover API
- @starting-style
-
ruby-align-
paint-order-
CSSNestedDeclarationsГлядя на этот список и отслеживая новинки для публикации в этот канал, я впечатлён развитием CSS в этом году. Не помню такого количества фич раньше. Осталось дождаться хорошей поддержки всего этого. Тут я тоже настроен позитивно, о чём я уже упоминал. А пока предлагаю перейти на сайт CSS Wrapped 2024 и ознакомиться с демками всех новых возможностей. Особенно через последнюю версию Chrome, в которой все они поддерживается.
На самом сайте при этом во всю используются новые возможности CSS, поэтому можно поизучать исходники.
CSS Wrapped 2024
Join the Chrome DevRel team and a skateboarding Chrome Dino on a journey through the latest CSS launched for Chrome and the web platform in 2024.
👍14🔥6❤1💩1🤡1👀1
Forwarded from БлоGнот
GitHub запустил бесплатную версию Copilot — теперь все 150 млн разработчиков на платформе получат доступ к 2000 автодополнений кода и 50 чат-сообщений в месяц при использовании VS Code. Достаточно просто авторизоваться через личный GitHub-аккаунт.
Бесплатная версия предлагает выбор между моделями Claude 3.5 Sonnet от Anthropic и GPT-4o от OpenAI. Можно задавать вопросы по коду, получать объяснения существующего кода, искать баги и вносить правки в несколько файлов одновременно. Также доступны сторонние агенты Copilot и возможность создавать собственные расширения.
Copilot Chat теперь доступен прямо из панели управления GitHub и работает с бесплатной версией. А для студентов, преподавателей и мейнтейнеров опенсорс-проектов сохраняется неограниченный бесплатный доступ к Copilot Pro.
Хороший подарок на праздники, хотя и с ограничениями. И сильный ход в конкуренции с форками VS Code с платными подписками — как Cursor или недавно запустившийся Windsurf от Codeium.
https://github.blog/news-insights/product-news/github-copilot-in-vscode-free/
Бесплатная версия предлагает выбор между моделями Claude 3.5 Sonnet от Anthropic и GPT-4o от OpenAI. Можно задавать вопросы по коду, получать объяснения существующего кода, искать баги и вносить правки в несколько файлов одновременно. Также доступны сторонние агенты Copilot и возможность создавать собственные расширения.
Copilot Chat теперь доступен прямо из панели управления GitHub и работает с бесплатной версией. А для студентов, преподавателей и мейнтейнеров опенсорс-проектов сохраняется неограниченный бесплатный доступ к Copilot Pro.
Хороший подарок на праздники, хотя и с ограничениями. И сильный ход в конкуренции с форками VS Code с платными подписками — как Cursor или недавно запустившийся Windsurf от Codeium.
https://github.blog/news-insights/product-news/github-copilot-in-vscode-free/
The GitHub Blog
Announcing 150M developers and a new free tier for GitHub Copilot in VS Code
Come and join 150M developers on GitHub that can now code with Copilot for free in VS Code.
🔥17👍2❤1🤡1
Почему на клавиатуре цифры идут как 1...90, а не 0...9?
Под праздники хочется иногда понаркоманить и посмотреть почему наш мир так нелогично устроен.
Вот почему цифры имеют именно порядок 1234567890?
Для этого нужно чуток заглянуть в историю. Не секрет, что наша клавиатура напрямую была перенесена с пишущих машинок, поэтому пора посмотреть что происходило у них. А у них, так как это сложное аналоговое устройство, очень сильно экономились клавиши.
И у первых машинок цифровой ряд был ещё проще нашего: 23456789. Как набирать 1 и 0 спросите вы? Очень просто: I(заглавная i) и O(заглавная o). Замена этих цифр на буквы для тогдашнего времени было оправданным. Каждая клавиша усложняла конструкцию и увеличивала стоимость машинки.
Но мир развивается и требования растут. Плюс бухгалтеры начинают использовать букву О и ноль вперемежку, из-за чего возникает необходимость отдельной клавише для нуля. И начинают появляться пишущие машинки с номерным рядом 234567890, так как 023456789 выглядит странно. А вместо единицы можно использовать строчную L. И никаких разночтений не будет.
И уже с прогрессом добавили единицу. А ноль, из-за того что привычки, переносить в начало не стали.
А теперь вопрос на засыпку. Символы, которые вводятся через shift+цифра на пишущих машинках были такими же как и у нас сейчас на кливиатуре. Внимание, вопрос: как вводить восклицательный знак(shift+1)?
Ответ:конечно же точка-бекспейс-апостроф. Бекспейс во времена пишущих машинок перещал каретку на символ влево, а не удалял его. Как вы себе представляете удаление символов в аналоговом мире?)
Картинки как выглядели клавиатуры, кстати, в комментариях
Под праздники хочется иногда понаркоманить и посмотреть почему наш мир так нелогично устроен.
Вот почему цифры имеют именно порядок 1234567890?
Для этого нужно чуток заглянуть в историю. Не секрет, что наша клавиатура напрямую была перенесена с пишущих машинок, поэтому пора посмотреть что происходило у них. А у них, так как это сложное аналоговое устройство, очень сильно экономились клавиши.
И у первых машинок цифровой ряд был ещё проще нашего: 23456789. Как набирать 1 и 0 спросите вы? Очень просто: I(заглавная i) и O(заглавная o). Замена этих цифр на буквы для тогдашнего времени было оправданным. Каждая клавиша усложняла конструкцию и увеличивала стоимость машинки.
Но мир развивается и требования растут. Плюс бухгалтеры начинают использовать букву О и ноль вперемежку, из-за чего возникает необходимость отдельной клавише для нуля. И начинают появляться пишущие машинки с номерным рядом 234567890, так как 023456789 выглядит странно. А вместо единицы можно использовать строчную L. И никаких разночтений не будет.
И уже с прогрессом добавили единицу. А ноль, из-за того что привычки, переносить в начало не стали.
А теперь вопрос на засыпку. Символы, которые вводятся через shift+цифра на пишущих машинках были такими же как и у нас сейчас на кливиатуре. Внимание, вопрос: как вводить восклицательный знак(shift+1)?
Ответ:
Картинки как выглядели клавиатуры, кстати, в комментариях
👍20💩1🤡1
UX или как Яндекс заскамил меня на 3к рублей.
Для меня новогодним открытием стало что в Яндекс.Еде кнопочка "оставить у двери" является синонимом "подарить посылку курьеру", потому что поддержка просто моментально встала на сторону курьера и послала меня лесом. Без разбирательств, без всего.
- Нет посылку у соседей?
- Нет
- Ну, извините, не может отследить, так что до свидания.
И даже пофигу на деньги. Меня поражает, что в компании на 10к-15к программистов не нашло ни одного человека который попал в ту же самую историю. Потому что "догфудинг" - это основа разработки. Ты должен потреблять то что разрабатываешь.
Тут же не только своим не пользуются, но и конкурентов совсем не трогают. Давайте опишу как это выглядит в uber.eats: Тебе после выполнения заказа приходит уведомление с фото, которое сделал курьер и телефон курьера. И в случае если фото не совпадает с твоей дверью, то ты отправляешь фото реальной двери в поддержку и тебе возращают деньги.
У Яндекса же вообще 0 информации. Вот вообще нет ничего.
Для меня новогодним открытием стало что в Яндекс.Еде кнопочка "оставить у двери" является синонимом "подарить посылку курьеру", потому что поддержка просто моментально встала на сторону курьера и послала меня лесом. Без разбирательств, без всего.
- Нет посылку у соседей?
- Нет
- Ну, извините, не может отследить, так что до свидания.
И даже пофигу на деньги. Меня поражает, что в компании на 10к-15к программистов не нашло ни одного человека который попал в ту же самую историю. Потому что "догфудинг" - это основа разработки. Ты должен потреблять то что разрабатываешь.
Тут же не только своим не пользуются, но и конкурентов совсем не трогают. Давайте опишу как это выглядит в uber.eats: Тебе после выполнения заказа приходит уведомление с фото, которое сделал курьер и телефон курьера. И в случае если фото не совпадает с твоей дверью, то ты отправляешь фото реальной двери в поддержку и тебе возращают деньги.
У Яндекса же вообще 0 информации. Вот вообще нет ничего.
🤡15😢8💩4👍2🤮2
И эта ситуация, к сожалению, не уникальна. И напрямую относится к нашему фронтендерскому миру. Да, я говорю переписывании на раст всего и вся.
https://x.com/XaveScor/status/1874870416445173824
И это прямо 1 в 1 ложится на мою текущую ситуацию. Насколько поддержка Яндекса головой ударилась, прося писать им исключительно в ФБ/ВК/инсту, которых у меня нет. Но зато есть телега и твиттер, где есть личные сообщения, но кому это важно?
Настолько и у меня кривое отношение к раст тулам для фронта: если в них идёт что-то не так, то ты и зарепортить ничего нормально не можешь. От слова "совсем". Тебе выпадает какая-то внутреняя ошибка раста, а ты потом как слепой котёнок пытаешься создать минимальный репродьюсь, чтобы написать issue на гитхаб.
Что с этим делать? Да фиг его знает. Но чем больше моих тулов уходит на раст, тем больше гемора в ситуациях, когда что-то идёт не так.
https://x.com/XaveScor/status/1874870416445173824
И это прямо 1 в 1 ложится на мою текущую ситуацию. Насколько поддержка Яндекса головой ударилась, прося писать им исключительно в ФБ/ВК/инсту, которых у меня нет. Но зато есть телега и твиттер, где есть личные сообщения, но кому это важно?
Настолько и у меня кривое отношение к раст тулам для фронта: если в них идёт что-то не так, то ты и зарепортить ничего нормально не можешь. От слова "совсем". Тебе выпадает какая-то внутреняя ошибка раста, а ты потом как слепой котёнок пытаешься создать минимальный репродьюсь, чтобы написать issue на гитхаб.
Что с этим делать? Да фиг его знает. Но чем больше моих тулов уходит на раст, тем больше гемора в ситуациях, когда что-то идёт не так.
🤡9👍3💩3😢2🤮1
Когда-то лет 10 назад, роуминг был пренеприятнейшей штукой. Была постоплата по конским ценам, из-за чего смысла им пользоваться наверное было никакого.
Сейчас же я нахожусь в роуминге, причём у меня оплачен трафик, за пределы которого я не смогу укатиться никаким образом.
Плюс я обнаружил, что ip у меня остаётся казахстанским.
И вопрос: как этого смогли добиться?
Оказывается, что в какой-то момент все(или почти все) мобильные провайдеры договорились что при роуминге весь трафик будет заворачиваться в тунель до домашнего провайдера.
У этого есть свои минусы: пинг растёт очень сильно, так как пакеты летят через полмира к вам домой прежде чем попасть куда-то ещё.
Но и есть плюсы: если вы едете в страну с каким-нибудь анальным регулированием типа ОАЭ или Китая, то можете просто сидеть в роуминге и всё будет работать.
Так что непренебрегайте роумингом. В нём есть свои плюсы.
Сейчас же я нахожусь в роуминге, причём у меня оплачен трафик, за пределы которого я не смогу укатиться никаким образом.
Плюс я обнаружил, что ip у меня остаётся казахстанским.
И вопрос: как этого смогли добиться?
Оказывается, что в какой-то момент все(или почти все) мобильные провайдеры договорились что при роуминге весь трафик будет заворачиваться в тунель до домашнего провайдера.
У этого есть свои минусы: пинг растёт очень сильно, так как пакеты летят через полмира к вам домой прежде чем попасть куда-то ещё.
Но и есть плюсы: если вы едете в страну с каким-нибудь анальным регулированием типа ОАЭ или Китая, то можете просто сидеть в роуминге и всё будет работать.
Так что непренебрегайте роумингом. В нём есть свои плюсы.
👍15🤡3💩1
Андруша пишет код
UX или как Яндекс заскамил меня на 3к рублей. Для меня новогодним открытием стало что в Яндекс.Еде кнопочка "оставить у двери" является синонимом "подарить посылку курьеру", потому что поддержка просто моментально встала на сторону курьера и послала меня…
Впервые за год я сумел получить выгоду от своего микроканала, хоть и в таком извращенном виде.
Спасибо Яндексу, отреагировали почти моментально после опубликования поста.
Плюс походу на меня подписаны как минимум 17 яндексоидов, судя по количеству расшариваний поста.
Из забавного: Андрей не может не быть Андреем и не попадать на все корнеркейсы, на которые возможно попасть.
P.S. не нужно репостить это никуда. Это просто забавно и никак не задевает
Спасибо Яндексу, отреагировали почти моментально после опубликования поста.
Плюс походу на меня подписаны как минимум 17 яндексоидов, судя по количеству расшариваний поста.
Из забавного: Андрей не может не быть Андреем и не попадать на все корнеркейсы, на которые возможно попасть.
P.S. не нужно репостить это никуда. Это просто забавно и никак не задевает
👍12😁6🤡6💩3
Около 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. Подписывайтесь, делегируйте смартбандлу сборку ваших библиотек и занимайтесь кодом, а не инфрой.
Причём каждый раз изобретая свои способы решения одних и тех же проблем, что приводит к тому, что 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. Подписывайтесь, делегируйте смартбандлу сборку ваших библиотек и занимайтесь кодом, а не инфрой.
3👍26🔥14💩5🤡4❤2
Forwarded from Radio Timur
Если вы искали простое приложение, которое может запуститься на iOS и локально гонять для вас LLM (текстовую нейросеть), то тут на днях вышло очень красивое минималистичное приложение Full Moon, которое на данный момент позволяет запускать Llama 3.2 в версии на 1 млрд параметров и на 3 млрд параметров.
Приложение доступно и на iOS, и на iPad OS, и на macOS.
На iPhone 14 Pro 3-миллиардная моделька работает более менее шустро – ответ про Севилью она мне сгенерировала секунд за 10-15.
На M1 Max раз в восемь быстрее :)
Хорошая отправная точка для тех, кто не очень умеет пользоваться LM Studio, веб-интерфейсными решениями и прочими кастомами. Но самое главное – она гоняется локально, а потому будет работать даже тогда, когда у вас нет интернета.
PS. Можно задавать свои систем-промты и есть разбивка по чатам.
PPS. Не реклама!
https://fullmoon.app
Приложение доступно и на iOS, и на iPad OS, и на macOS.
На iPhone 14 Pro 3-миллиардная моделька работает более менее шустро – ответ про Севилью она мне сгенерировала секунд за 10-15.
На M1 Max раз в восемь быстрее :)
Хорошая отправная точка для тех, кто не очень умеет пользоваться LM Studio, веб-интерфейсными решениями и прочими кастомами. Но самое главное – она гоняется локально, а потому будет работать даже тогда, когда у вас нет интернета.
PS. Можно задавать свои систем-промты и есть разбивка по чатам.
PPS. Не реклама!
https://fullmoon.app
👍12❤8🤡2💩1
Если у вас так же максимально испоганился гитхаб, то возможно вы такой же неудачник как и я, и попали в сетку кривых экспериментов. Но благо есть возможность отключить это всё через Feature Preview. С отключенными фичами гитхаб работает хотя бы не так отвратительно.
Прямо сейчас у меня невозможно делать PR'ы, так как эти гении решили на странице создания вывести диффы всех файлов, из-за чего просто переименование 100 файлов наглухо вешает страницу на моём M1 Max в Сафари.
Плюс навигация между табами превратилась в SPA, из-за чего горизонтальное меню начало жить своей жизнью и никак не зависеть от контента, который отображается.
Если вы знаете где есть возможность пожаловаться на эту дичь, чтобы отзыв был замечен - буду очень благодарен ссылке.
Прямо сейчас у меня невозможно делать PR'ы, так как эти гении решили на странице создания вывести диффы всех файлов, из-за чего просто переименование 100 файлов наглухо вешает страницу на моём M1 Max в Сафари.
Плюс навигация между табами превратилась в SPA, из-за чего горизонтальное меню начало жить своей жизнью и никак не зависеть от контента, который отображается.
Если вы знаете где есть возможность пожаловаться на эту дичь, чтобы отзыв был замечен - буду очень благодарен ссылке.
👍12😢4🤡3😁2💩2❤1
Если вы пользуетесь ЛЛМками для дебага, то жизнь стала чуть проще.
Не знаю когда эту фичу завезли в консоль, но теперь ошибку можно нормально копировать.
Я пробовал пользовать understand this error, но копирование ошибки в chatgpt приносит куда больше пользы, чем встроенная фича в хром.
P.S. это сейчас есть как минимум в последней канарейке. Возможно, уже доехало до стабильной версии, но это не точно
Не знаю когда эту фичу завезли в консоль, но теперь ошибку можно нормально копировать.
Я пробовал пользовать understand this error, но копирование ошибки в chatgpt приносит куда больше пользы, чем встроенная фича в хром.
P.S. это сейчас есть как минимум в последней канарейке. Возможно, уже доехало до стабильной версии, но это не точно
👍11🤡3💩1
Нейронки, нейронки, нейронки
Весь январь мир бомбил всех новостями о нейронках: дипсик, падение акций, выпуск o3-mini от OpenAI и всё такое. Не проходило и пары суток, чтобы кто-то не что-то не рассказал о чём-то нейроночном.
Я решил посветить весь январь своему "повышению квалификации" и уделить всё своё свободное время, чтобы стать хотя бы 2х программистом.
И у меня бомбит. Такое чувство, что все вокруг хайпуют и обладают каким-то секретным знанием, которым никто делиться не хочет. И все хайпуют, что новые технологии прямо ускоряют их жизнь. Но когда просишь поделиться, то получаешь что-то типа: "ну загрузи всё туды, пук-пук и магически решилось. А если не решилось, то не повезло. Пили ручками".
Если спойлерить результаты: то я правда стал более производительным программистом, но не из-за "магии фигак-фигак и готово", а из-за того, что я начал понимать, как работают мои инструменты.
В этой заметке я хотел бы поделиться великой четвёркой: windsurf.ai, cursor.com, Cline и aider.chat. Это так называемые "агентские IDE" или что-то типа того. Если говорить простыми словами: эта штука гоняет нейронку по вашим хотелкам и редактирует код.
Мне хочется начать с проприетарных штук: windsurf и cursor. Их слоган: напиши что-нибудь, а потом нажми кнопку "сделать красиво". И всё. Никаких гайдов. Их сайты - это огромная рекламная площадка по тому, что нажать кнопку "сделать красиво" - это зашибись. И оно иногда работает. Но часто и не работает. Причём это всё непредсказуемо. В итоге для меня программисты на Cursor или Windsurf выглядят как танцоры с бубном, которые надеются, что эта штука заработает.
Мой вердикт: эти штуки очень хороши, чтобы словить вау-эффект и сделать какую-нибудь одноразовую фигню. Но не более.
Cline и Aider. Это инструменты уже другого полёта. Я архирекомендую почитать их сайты и блог. Они там дают описание, как работает клиент к нейронке, и благодаря этому ты можешь предсказуемо работать с кодом. Простой пример: http://aider.chat/docs/repomap.html. Если вы знаете о такой штуке, то вы не будете как дебил добавлять в контекст все файлы, которые вы считаете нужными для работы нейронки и всё такое. Основной плюс опенсорса в данной части: они рассказывают, как они решают проблемы. И это делает инструменты предсказуемыми.
Другое преимущество опенсорсных клиентов: они просто впереди по фичам. К примеру, архитект мод появился в Aider ещё 4 месяца назад. И это прекрасная штуковина: на практике ребята выяснили, что reasoning-модели хорошо решают, что надо делать, но фигово пишут код. А Sonnet фигово думает, но код пишет просто шикарно. В итоге работа выглядит так:
ты общаешься с o3-mini о том, в чём заключается фича, строишь километровый промпт, а потом он скармливается Sonnet, который уже пишет прекрасный код. Ни в одной платной "агентной IDE" подобного тупо нет. Я не знаю, с чем это связано, но опенсорс сейчас впереди всех этих платных продуктов.
Но не нужно думать, что опенсорс - это бесплатно. На практике выходит, что опенсорс даже дороже, чем платные продукты. Как минимум потому, что вы в нейронки ходите по API, а не платите ежемесячно подписку.
И тут только вам выбирать: магия и дёшево или предсказуемо, лучше и дорого. Я выбрал второй вариант.
Второй минус: вы превращаетесь в менеджера. А значит, нужно смириться, что результат работы не будет 1 в 1, как вы хотите. Тут всё как с человеком: вы делегировали задачу, и её сделали чуток криво. Но зато очень быстро. Как по мне - нормальный компромисс.
Плюс по итогам этого месяца я понимаю, что нейронки - это даже не будущее. Это настоящее. И если вы не освоите и не интегрируете их к себе в работу, то вы будете очень позади ваших коллег.
Будущее уже пришло, увы, пора меняться.
Продолжение тут: https://news.1rj.ru/str/xavescor_code/252
Весь январь мир бомбил всех новостями о нейронках: дипсик, падение акций, выпуск o3-mini от OpenAI и всё такое. Не проходило и пары суток, чтобы кто-то не что-то не рассказал о чём-то нейроночном.
Я решил посветить весь январь своему "повышению квалификации" и уделить всё своё свободное время, чтобы стать хотя бы 2х программистом.
И у меня бомбит. Такое чувство, что все вокруг хайпуют и обладают каким-то секретным знанием, которым никто делиться не хочет. И все хайпуют, что новые технологии прямо ускоряют их жизнь. Но когда просишь поделиться, то получаешь что-то типа: "ну загрузи всё туды, пук-пук и магически решилось. А если не решилось, то не повезло. Пили ручками".
Если спойлерить результаты: то я правда стал более производительным программистом, но не из-за "магии фигак-фигак и готово", а из-за того, что я начал понимать, как работают мои инструменты.
В этой заметке я хотел бы поделиться великой четвёркой: windsurf.ai, cursor.com, Cline и aider.chat. Это так называемые "агентские IDE" или что-то типа того. Если говорить простыми словами: эта штука гоняет нейронку по вашим хотелкам и редактирует код.
Мне хочется начать с проприетарных штук: windsurf и cursor. Их слоган: напиши что-нибудь, а потом нажми кнопку "сделать красиво". И всё. Никаких гайдов. Их сайты - это огромная рекламная площадка по тому, что нажать кнопку "сделать красиво" - это зашибись. И оно иногда работает. Но часто и не работает. Причём это всё непредсказуемо. В итоге для меня программисты на Cursor или Windsurf выглядят как танцоры с бубном, которые надеются, что эта штука заработает.
Мой вердикт: эти штуки очень хороши, чтобы словить вау-эффект и сделать какую-нибудь одноразовую фигню. Но не более.
Cline и Aider. Это инструменты уже другого полёта. Я архирекомендую почитать их сайты и блог. Они там дают описание, как работает клиент к нейронке, и благодаря этому ты можешь предсказуемо работать с кодом. Простой пример: http://aider.chat/docs/repomap.html. Если вы знаете о такой штуке, то вы не будете как дебил добавлять в контекст все файлы, которые вы считаете нужными для работы нейронки и всё такое. Основной плюс опенсорса в данной части: они рассказывают, как они решают проблемы. И это делает инструменты предсказуемыми.
Другое преимущество опенсорсных клиентов: они просто впереди по фичам. К примеру, архитект мод появился в Aider ещё 4 месяца назад. И это прекрасная штуковина: на практике ребята выяснили, что reasoning-модели хорошо решают, что надо делать, но фигово пишут код. А Sonnet фигово думает, но код пишет просто шикарно. В итоге работа выглядит так:
ты общаешься с o3-mini о том, в чём заключается фича, строишь километровый промпт, а потом он скармливается Sonnet, который уже пишет прекрасный код. Ни в одной платной "агентной IDE" подобного тупо нет. Я не знаю, с чем это связано, но опенсорс сейчас впереди всех этих платных продуктов.
Но не нужно думать, что опенсорс - это бесплатно. На практике выходит, что опенсорс даже дороже, чем платные продукты. Как минимум потому, что вы в нейронки ходите по API, а не платите ежемесячно подписку.
И тут только вам выбирать: магия и дёшево или предсказуемо, лучше и дорого. Я выбрал второй вариант.
Второй минус: вы превращаетесь в менеджера. А значит, нужно смириться, что результат работы не будет 1 в 1, как вы хотите. Тут всё как с человеком: вы делегировали задачу, и её сделали чуток криво. Но зато очень быстро. Как по мне - нормальный компромисс.
Плюс по итогам этого месяца я понимаю, что нейронки - это даже не будущее. Это настоящее. И если вы не освоите и не интегрируете их к себе в работу, то вы будете очень позади ваших коллег.
Будущее уже пришло, увы, пора меняться.
Продолжение тут: https://news.1rj.ru/str/xavescor_code/252
aider
Repository map
Aider uses a map of your git repository to provide code context to LLMs.
👍20🤡4💩3❤1