Андруша пишет код @xavescor_code Channel on Telegram

Андруша пишет код

@xavescor_code


Андруша пишет код (Russian)

Представляем вам канал под названием "Андруша пишет код", который создан для всех любителей программирования и разработки. За каналом стоит пользователь с ником @xavescor_code, который делится своими знаниями и опытом в создании кода.

Канал "Андруша пишет код" предлагает свежие и интересные материалы о программировании, новых технологиях и трендах в IT-сфере. Здесь вы найдете полезные советы, примеры кода, а также обзоры на популярные языки программирования и инструменты разработки.

Если вы хотите улучшить свои навыки программирования, следить за последними тенденциями в отрасли или просто узнать что-то новое, то канал "Андруша пишет код" - отличное место для вас. Присоединяйтесь к сообществу и расширяйте свои знания вместе с нами!

Андруша пишет код

23 Jan, 10:20


Если вы пользуетесь ЛЛМками для дебага, то жизнь стала чуть проще.
Не знаю когда эту фичу завезли в консоль, но теперь ошибку можно нормально копировать.

Я пробовал пользовать understand this error, но копирование ошибки в chatgpt приносит куда больше пользы, чем встроенная фича в хром.

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

Андруша пишет код

19 Jan, 09:06


Если у вас так же максимально испоганился гитхаб, то возможно вы такой же неудачник как и я, и попали в сетку кривых экспериментов. Но благо есть возможность отключить это всё через Feature Preview. С отключенными фичами гитхаб работает хотя бы не так отвратительно.

Прямо сейчас у меня невозможно делать PR'ы, так как эти гении решили на странице создания вывести диффы всех файлов, из-за чего просто переименование 100 файлов наглухо вешает страницу на моём M1 Max в Сафари.
Плюс навигация между табами превратилась в SPA, из-за чего горизонтальное меню начало жить своей жизнью и никак не зависеть от контента, который отображается.

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

Андруша пишет код

14 Jan, 22:44


Если вы искали простое приложение, которое может запуститься на 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

Андруша пишет код

13 Jan, 06:12


Около 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. Подписывайтесь, делегируйте смартбандлу сборку ваших библиотек и занимайтесь кодом, а не инфрой.

Андруша пишет код

06 Jan, 00:29


Впервые за год я сумел получить выгоду от своего микроканала, хоть и в таком извращенном виде.

Спасибо Яндексу, отреагировали почти моментально после опубликования поста.
Плюс походу на меня подписаны как минимум 17 яндексоидов, судя по количеству расшариваний поста.

Из забавного: Андрей не может не быть Андреем и не попадать на все корнеркейсы, на которые возможно попасть.

P.S. не нужно репостить это никуда. Это просто забавно и никак не задевает

Андруша пишет код

05 Jan, 13:08


Когда-то лет 10 назад, роуминг был пренеприятнейшей штукой. Была постоплата по конским ценам, из-за чего смысла им пользоваться наверное было никакого.

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

Оказывается, что в какой-то момент все(или почти все) мобильные провайдеры договорились что при роуминге весь трафик будет заворачиваться в тунель до домашнего провайдера.
У этого есть свои минусы: пинг растёт очень сильно, так как пакеты летят через полмира к вам домой прежде чем попасть куда-то ещё.
Но и есть плюсы: если вы едете в страну с каким-нибудь анальным регулированием типа ОАЭ или Китая, то можете просто сидеть в роуминге и всё будет работать.

Так что непренебрегайте роумингом. В нём есть свои плюсы.

Андруша пишет код

03 Jan, 10:53


И эта ситуация, к сожалению, не уникальна. И напрямую относится к нашему фронтендерскому миру. Да, я говорю переписывании на раст всего и вся.

https://x.com/XaveScor/status/1874870416445173824
И это прямо 1 в 1 ложится на мою текущую ситуацию. Насколько поддержка Яндекса головой ударилась, прося писать им исключительно в ФБ/ВК/инсту, которых у меня нет. Но зато есть телега и твиттер, где есть личные сообщения, но кому это важно?
Настолько и у меня кривое отношение к раст тулам для фронта: если в них идёт что-то не так, то ты и зарепортить ничего нормально не можешь. От слова "совсем". Тебе выпадает какая-то внутреняя ошибка раста, а ты потом как слепой котёнок пытаешься создать минимальный репродьюсь, чтобы написать issue на гитхаб.

Что с этим делать? Да фиг его знает. Но чем больше моих тулов уходит на раст, тем больше гемора в ситуациях, когда что-то идёт не так.

Андруша пишет код

03 Jan, 10:53


UX или как Яндекс заскамил меня на 3к рублей.

Для меня новогодним открытием стало что в Яндекс.Еде кнопочка "оставить у двери" является синонимом "подарить посылку курьеру", потому что поддержка просто моментально встала на сторону курьера и послала меня лесом. Без разбирательств, без всего.
- Нет посылку у соседей?
- Нет
- Ну, извините, не может отследить, так что до свидания.

И даже пофигу на деньги. Меня поражает, что в компании на 10к-15к программистов не нашло ни одного человека который попал в ту же самую историю. Потому что "догфудинг" - это основа разработки. Ты должен потреблять то что разрабатываешь.
Тут же не только своим не пользуются, но и конкурентов совсем не трогают. Давайте опишу как это выглядит в uber.eats: Тебе после выполнения заказа приходит уведомление с фото, которое сделал курьер и телефон курьера. И в случае если фото не совпадает с твоей дверью, то ты отправляешь фото реальной двери в поддержку и тебе возращают деньги.
У Яндекса же вообще 0 информации. Вот вообще нет ничего.

Андруша пишет код

27 Dec, 04:44


Почему на клавиатуре цифры идут как 1...90, а не 0...9?

Под праздники хочется иногда понаркоманить и посмотреть почему наш мир так нелогично устроен.
Вот почему цифры имеют именно порядок 1234567890?

Для этого нужно чуток заглянуть в историю. Не секрет, что наша клавиатура напрямую была перенесена с пишущих машинок, поэтому пора посмотреть что происходило у них. А у них, так как это сложное аналоговое устройство, очень сильно экономились клавиши.
И у первых машинок цифровой ряд был ещё проще нашего: 23456789. Как набирать 1 и 0 спросите вы? Очень просто: I(заглавная i) и O(заглавная o). Замена этих цифр на буквы для тогдашнего времени было оправданным. Каждая клавиша усложняла конструкцию и увеличивала стоимость машинки.

Но мир развивается и требования растут. Плюс бухгалтеры начинают использовать букву О и ноль вперемежку, из-за чего возникает необходимость отдельной клавише для нуля. И начинают появляться пишущие машинки с номерным рядом 234567890, так как 023456789 выглядит странно. А вместо единицы можно использовать строчную L. И никаких разночтений не будет.

И уже с прогрессом добавили единицу. А ноль, из-за того что привычки, переносить в начало не стали.

А теперь вопрос на засыпку. Символы, которые вводятся через shift+цифра на пишущих машинках были такими же как и у нас сейчас на кливиатуре. Внимание, вопрос: как вводить восклицательный знак(shift+1)?
Ответ: конечно же точка-бекспейс-апостроф. Бекспейс во времена пишущих машинок перещал каретку на символ влево, а не удалял его. Как вы себе представляете удаление символов в аналоговом мире?)

Картинки как выглядели клавиатуры, кстати, в комментариях

Андруша пишет код

18 Dec, 19:09


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/

Андруша пишет код

09 Dec, 11:31


CSS Wrapped 2024

Команда 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, поэтому можно поизучать исходники.

Андруша пишет код

08 Dec, 08:00


Воскресный юморок
https://x.com/UnseenJapanSite/status/1865557220857151961

Тут аспирантура в Японии в одном из университетов похоже что устала от засилия китайцев, поэтому зафорсила бан своей страницы в материковом Китае.

Так что если вы не хотите платить за геоip и хочется отключить доступ к сайту в Китае, то просто напишите "Площадь Тяньаньмэнь" в keywords, и Китай вас сам забанит

P.S. если живёте в Китае, то не удивляётесь что мой канал там забанен

Андруша пишет код

05 Dec, 18:38


https://github.com/copilot

Тут MS добавил copilot для гитхаба, который умеет искать по гитхабу.

Правда он тупой и особо не помогает в сложных сценариях, но хотя бы ищет по документации.

P.S. Россияне, есть ли у вас возможность его использовать без VPN? В РФ и прочих запрещённых странах не доступно. Плюс, видимо, требуется покупка github copilot

Андруша пишет код

05 Dec, 11:00


Зависимости

package.json - это место, где мне всегда нужно лезть в доку, так как я критически не могу угадать по названию что делает тот или иной ключ.

А так как я пишу бандлер для либ, то это бесит просто донельзя.
Из последнего: мне нужно описать список пакетов, с которыми может работать моя либа. Т.е. эти пакеты могут существовать, а могут и не существовать. Я справедливо предположил, что нужно использовать "optionalDependencies". Но после релиза ко мне начали приходить пользователи со словами: "а почему у меня устанавливается бабель и тс, хотя я их не ставлю?".

Оказалось, что optDeps - это как deps(т.е. нужно ставить), но установка зависимостей не падает, если поставить зависимость не удаётся. Да, об этом написано в документации. Но кто её читает перед использованием?

И да, это весьма удобно в некоторых редких ситуациях. К примеру, таким макаром Vite ставит нативные зависимости: перечисляются зависимости для всех платформ, и поставятся только те, которые подходят для текущей машины. Остальное просто упадёт и проигнорируется.

В моём же случае понадобилось описать мои зависимости в peerDeps и проставить флаги в peerDepsMeta.

{
"peerDependencies": {
"react": "^17.0.0",
},
"peerDependenciesMeta": {
"react": {
"optional": true
},
}
}

Хорошо, конечно что есть такая возможность, но то что это делается не так очевидно и требует в 2 раза больше строк - бесит. Хотя этот кейс на порядки более частый чем optDeps.

Андруша пишет код

03 Dec, 11:00


Где-то год назад я поражался насколько людей легко пробить, используя утечки Яндекс.Еды или других крупных компаний. Но меня успокаивало то что я чуток доверяю Яндексу и понимаю, что они закроют эту дырень. Но то, что данными людей торгуют просто в открытую и это легально - это прямо удивительно для меня:
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 и прочие технологии, которые мешают вас трекать

Андруша пишет код

29 Nov, 11:33


Старые апи.

Каждый раз, когда я сталкиваюсь с чем-то кривым и плохо спланированным в браузерах, то понимаю что это что-то из эпохи 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. В итоге, для примитивной аналитики нам нужно костылить кучу кода.

Андруша пишет код

28 Nov, 03:19


https://github.com/nodejs/node/pull/55217

В следующем миноре node@22 ожидаем require(esm) без флага. Оно уже смержено в мастер.
Смерть cjs всё ближе и ближе.

Андруша пишет код

27 Nov, 08:20


https://vc.ru/ai/1675484-polzovateli-claude-poluchili-vozmozhnost-nastraivat-stil-otvetov-chat-bota

Тут пролетела мимо меня интересная новость, которая напомнила мне крутую штуку, которая есть у чатгпт.

Так сложилось, что я не очень дружелюбен со всякими иноземными мовами, в список которых входит и английский в том числе. По этой причине я почти везде перешел на английский. Но есть засада: современные инструменты слишком хорошо понимают кривой язык. Гораздо лучше людей.
И у чатгпт есть прямо киллер фича для такой ситуации: можно описать как тебе нужно именно отвечать. Причём это доступно и для бесплатного тарифа.

Промпт со скриншота закинул в комментарий

Андруша пишет код

22 Nov, 09:24


https://www.jetbrains.com/grazie/

Мне время от времени приходится балакать и писать иноземною мовою, в которой я не сказать что силён, то я пользуюсь grammarly, которая мне весьма и хорошо помогала. Правда у граммарли есть одна особенность - она капец дорогая: 144 доллара в год при покупке на год.

Но если вы считали, что у jetbrains с AI очень плохо, то это не правда. У jetbrains есть проблемы только с js/ts и прочим фронтенд кодом. А вот с текстом он работает весьма хорошо. На уровне граммарли. И даже доступен бесплатно. И даже если платить, то получишь и jetbrains AI и их правилку текста. И это за 100 долларов(На 44 доллара дешевле). Так что, возможно, jetbrains всё же получит от меня деньги, правда не за IDE, а за возможность писать буковы другим людям.

Пока в этом году я прихожу к экономии в 300+ долларов на подписках:
- отписка от grammarly(+144 бакса)
- отписка от jetbrains All Products Pack(+175 долларов)
- возможно подпишусь на jetbrains AI(-100 долларов).

А у вас сколько трат на всякие AI тулы?

Андруша пишет код

17 Nov, 05:13


Ну и небольшое воскресное напоминание насколько люди могут использовать ваши штуки по-своему даже в самых мелочах. Они даже название по-своему переиначат.

Андруша пишет код

16 Nov, 14:25


Почти что каждая документация забывает описывать самую главную штуку напротив фич: это причина почему эта фича была добавлена и какие проблемы решаются. И даже не важно к какому продукту документация. Некст, нода, редакс? Везде будет только описание фич.

А у меня в мозгу есть суровый баг. Зачастую я не вижу связи между задачами и возможностями инструмента, даже если я знаю и про возможности, и про то как решаются задачи.
И я даже могу сходу привести пример подобного: зачем нужны inlineSnapshot в jest/vitest? Есть идеи? Вот я знал о наличии подобных штук, но никогда не применял, так как не видел смысла. И даже более, я начал в штыки воспринимать снепшоты, так как куча людей начали их использовать для тестирования интерфейсов.

А в реальности эта штука сверхудобна, когда у вас есть детерменированный output, который вы корректно руками описать не можете. К примеру, проверка ошибок тайпскрипта. Или же проверка на отсутсвие ошибок.
В моём же случае мне нужно было тестировать выхлоп моего сборщика библиотек. И пока мне напрямую не ткнули носом, что в этом кейсе можно было использовать инлайн снепшоты - мне это даже в голову не приходило.

Пишите в документации не только "что умеет", но и "зачем умеет". Это очень сильно упрощает жизнь.

Андруша пишет код

14 Nov, 12:57


За последнюю неделю я пользовался гуглом ровно 1 раз. 1 раз за 7 дней.
Это просто гиганский сдвиг лично для меня. Если раньше про программистов говорили: самый главный навык - это умение гуглить, то сейчас, наверное, это пользоваться нужной LLMкой в нужное время.

Я полностью пересел на:
- https://www.perplexity.ai, когда мне нужно что-то загуглить. Теперь мне не нужно специально писать какие-то специальные запросы, удалять союзы, писать инфинитивы и делать прочие пассы руками, чтобы поисковик меня понимал. Я просто ищу на естественном языке что мне требуется;
- https://claude.ai - это основной мой генератор текста. Любого текста. Нужно написать письмо? Иду туда. Нужно написать код? Тоже туда. Нужна консультация по каким-то фундаментальным вещам - аналогично;
- http://chatgpt.com - но иногда лимиты у клауди заканчиваются. В таком случае я перехожу в чатгпт. Это тоже самое, только с худшим качеством, но безлимитно.

И самое главное: это всё доступно бесплатно! Я потратил ровно 0 центов на то, чтобы пользоваться сервисами выше. Я уверен, что у сервисов выше начнутся проблемы с бизнес моделью, если ими начнут пользоваться все люди мира, как они делают сейчас с гуглом. Но для меня гугл как поиск практически умер.

Вот так и произошла тихая революция. Старые инструменты, которые основаны не на LLM понемногу вымирают. Я даже впервые подумал обновить телефон на последний айфон до того как моя текущая трубка пришла в негодность - ровно из-за добавления apple ai в их продукты. В современном мире слишком много мусорной информации, чтобы обрабатывать её самостоятельно. Уведомления, куча писем в почте и т.п. И LLM являются прекрасным решением для упрощения жизни.

Андруша пишет код

12 Nov, 09:49


В последний месяц я активно занимаюсь вопросами совместимости и всё больше убеждаюсь, что "конфиги — это зло". Причём дело не в том, что людям не нужно подстраивать что-то под себя, а в том, что многие оставляют настройки по умолчанию или копируют из другого проекта, полагаясь на принцип "ну, если работает, зачем менять". Оказалось, что конфиги — это действительно сложно: нужно разбираться и тратить время, чтобы понять, как всё устроено. А зачем париться, если и так работает?

Так вот, к сути. Если вы используете в проекте, который как-либо собирается, typescript и у него в конфиге прописано moduleResolution: Node или же Node10, то попробуйте изменить его на bundler. Я думал со всех сторон и не понял зачем Node/Node10 может быть нужно в современном мире. Очень сильно сомневаюсь, что вы отпрыск ljharb'a, которому нужна нода 0.4.
https://devblogs.microsoft.com/typescript/announcing-typescript-5-0/#--moduleresolution-bundler
https://www.typescriptlang.org/tsconfig/#moduleResolution

На удивление, даже в текущем моём проекте стоит moduleResolution: Node, который мне пару раз стрелял в колено. Но так как мне было лень разбираться как оно работает, я попросту откатывал изменения. Не будьте как я. Старайтесь понимать как у вас работает код.

Андруша пишет код

11 Nov, 17:34


Как я писал раньше, я пишу маленькую библиотечку, которая собирает библиотеки в npm пакеты.

И это позволило мне очень сильно возненавидеть webstorm и vscode. У сегодня весь день один вопрос: Как? Как вы умудряетесь проигрывать Cursor по DX и качеству подсказок?

WebStorm тут вообще днина. Их inline режим - это насмешка. Через него вообще ничего невозможно делать. Он подсказывает чушь. Из него код фиг скопируешь. Даже вставлять код в chatgpt и копировать ответ обратно более комфортно и продуктивно. Я не знаю в каком мире живут ребята из jetbrains, но это ужас. Маленькие типовые задачи уже спокойно на 95% делаются в Cursor через LLM, а живя(и платя) в WebStorm ты вынужден страдать.

С VSCode же ситуация нифига не лучше. Да, они сделали новый инлайн режим, но это полный пососач. У меня в 60% ситуаций возникает "ой, мы не смогли ответить, пылызы переформулируй запрос". И это после интеграции к ним Claude.

Я прямо очень разочарован. Такое чувство, что Microsoft и JetBrains тупо не хватает человека, который запустит Cursor и их редактор рядом и покажет как он решает одну и ту же задачу. Я не удивлюсь, если через года 3-4 JetBrains вообще обанкротится с таким подходом. И это прямо даже обидно, так как я плачу им и сижу невылозно на их продуктах с 2015 года. И такой тупой конец. Просто не могут осилить скопировать DX курсора. Слов нет

Андруша пишет код

07 Nov, 09:33


https://portal.noc.gov.ru/ru/news/2024/11/07/рекомендуем-отказаться-от-cdn-сервиса-cloudflare/

В блокировках и прочих регуляциях сети есть один неприятный факт: с каждым новым поколением защиты/шифрования/сети/чего_угодно блокировки или перестают работать, или же начинают работать неверно. И в итоге приходится всю работу по настройке системы контроля делать с нуля. А государство этим заниматься не любит. Очень не любит.

И тут вопрос. Кто сильнее? Прогресс или же регуляции? И, мне кажется, что прогресс. Россия уже проиграла войну с сертификатами, из-за чего, к примеру, Сбербанк из-за рубежа открывается на http и тупо не работает.
Так что чебурнет всё ближе и ближе по простой причине: никто снаружи РФ не будет учитывать мнение какого-то РНК. Особенно ребята, которые контролируют около 40-50% мирового рынка CDN. Да, cloudflare сейчас - это половина интернета.

Но, важный нюанс, если вы достаточно крупная рыбёшка, то можете банить спокойно. Китай не обманет: https://www.theregister.com/2020/08/11/china_blocking_tls_1_3_esni/

Андруша пишет код

03 Nov, 03:13


https://github.com/XaveScor/smartbundle
Это наверно третий раз, когда я пишу тут, в канале, о своём проекте.
Предыдущие попытки:
- signal-components - пока на паузе, так как потребитель не нашёлся
- анализатор зависимостей - даже вспоминать смысла нет, так как есть https://e18e.dev

Сейчас же я активно занимаюсь smartbundle, цель которого я хотел бы описать такой фразой:
"Пиши код, а не думай о сборке".
Smartbundle - это zero-config сборщик кода, который концентрируется на сборке библиотек. zero-config же стал возможен по простой причине: люди и так описывают конфигурацию либы в package.json. И моя гипотеза в том, что этой информации должно быть достаточно для esm/cjs/ts сборке библиотек. А сборка - это весьма сложное, как оказалось, занятие. Из простого гемора, который берёт на себя smartbundle:
- корректная генерация esm/cjs
- корректная генерация тайпингов к esm/cjs. А это немного неочевидно, так как нужны разные тайпинги для cjs/esm
- Либа будет работать в react-native. А это чуток гемор, так как там возможен только cjs.
- Либа будет работать с webpack4. Он не умеет в exports из package.json(react-native тоже не работает). А это значит, что надо поприседать, чтобы обеспечить импорт внутренних путей
- у меня есть e2e тесты для различных окружений, чтобы гарантировать, что библиотека будет импортировать корректно везде
- строится на основе vite, а значит с написанием тестов через vitest проблем не будет.
И кучу других мелочей. Я бы назвал smartbundle преттиером из мира сборщиков. Он просто работает(или должен работать).

Из возможных конкурентов я бы назвал tsup и microbundle, но у них есть потенциальный минус: они не умеют генерировать package.json, а заставляют это делать пользователя. Со smartbundle же вам вообще ничего не надо знать о сборке библиотек. К примеру, вы знали что в package.json порядок строчек важен? И это может сломать вашу либу.

Почему в этот раз эта либа не будет заброшена?
Ну, этого нельзя никак исключать, но я уже месяц работаю неотрывно от неё + есть потребители, которые хотят её к себе затащить, но пока не могут из-за отсутствия некоторых фич, так что думаю, что запала мне достаточно для дальнейшей работы.

Этим постом мне хотелось бы сделать не только анонс, но и найти возможных потребителей, так как оочень необходима обратная связь. Каждая библиотека уникальна и каждая из них генерирует собственные баги, которые хотелось бы поймать.
Поэтому пробуйте, пишите, давайте сотрудничать. От меня - снятие вашей головной боли. От вас - фидбек и найденные баги.

Всю инфу о разработке, планах, релизах и всего что связано со смартбандлом буду выкладывать на https://t.me/smartbundle, так как делиться новостями хочется, а спамить ими - нет.

P.S. Если глянете документацию и дадите отзыв по ней - так же буду благодарен.

Андруша пишет код

31 Oct, 10:20


https://info.jetbrains.com/rs/jetbrains/images/email-EN.html

И вот ещё одна новость от ЖидBrains. Теперь не будет награды за лояльность для "new organizational subscriptions".
Походу компании теперь будут платить больше. А для нас это очередное подтверждение, что с персональных лицензий jB особо деньги и не нужны и можно нарушать лицензию, если сильно не наглеть(к примеру, работать всей компанией из 1000 человек на бесплатных версиях WebStorm).

Андруша пишет код

24 Oct, 13:51


https://blog.jetbrains.com/blog/2024/10/24/webstorm-and-rider-are-now-free-for-non-commercial-use/

А рыночек-то работает, спасибо майкрософту и vscode. Теперь каждый может спокойно пользоваться WebStorm и не заморачиваться с хаками.

А рыночек-то работает, спасибо майкрософту и Visual Studio Community Edition. Теперь каждый может спокойно пользоваться Rider и не заморачиваться хаками.
===

А если серьёзно, то WS теперь полноценно бесплатная IDE. Как это работает в .NET мире: или тебе организация покупает взрослую VisualStudio, или же ты просто пользуешься VisualStudio Community Edition и плюешь на лицензию. Теперь так же будет и у jetBrains, так как ходить по мелким компаниям тупо невыгодно.

Андруша пишет код

21 Oct, 02:56


А теперь в контексте вышенаписанного поехали по проектам:
Часть 3. Капитализм. Счастье. ЗаеБудущее.

Bun.
https://www.crunchbase.com/organization/oven
Подняли $7M начальных инвестиций. Планируют(как мне кажется) монетизироваться за счёт собственного облака. Вывод: если вы сильно сядете на bun не удивляйтесь, что в какой-то момент вам придётся воспользоваться их облаком, так как издержки прочих решений для вас будут неподьёмно высоки

Deno
https://deno.com/blog/series-a
$21M. Собираются монетизироваться за счёт их "Deno Deploy"(https://deno.com/deploy). Ждите когда вас начнут загонять к ним.

Vercel(Nextjs/Svelte/etc)
https://www.usnews.com/news/technology/articles/2024-05-16/exclusive-vercel-completes-250-million-series-e-round-at-3-25-billion-valuation
$250M. Vercel заработали около $100M в прошлом году, хотя затраты(даже если прикидывать на глаз) превышают эту сумму.
А теперь про весёлые риски. Версель спонсирует
1) React(https://react.dev/community/team)
2) NextJS
3) Svelte(https://vercel.com/blog/vercel-welcomes-rich-harris-creator-of-svelte)
Плюс множество мелких(с точки зрения сумм спонсорства) проектов типа Astro, Tailwind, Nuxt и так далее.
Но важны именно 3 вышеописанных: на них строят свои бизнесы огромное количество людей и Версель напрямую влияет на разработку в них.
И это уже играет. Например, серверные компоненты реакта появились впервые в нексте. А так же до сих пор не имеют нормальной доки, чтобы интегрировать их куда-либо.
Второй огромный риск - это нападение на их дойную корову в лице opennext(https://opennext.js.org). Причём этот конфликт интересов начинает разгораться, так как Cloudflare решили поддерживать opennext как официальный способ запуска некста в своих лямбдах(https://blog.cloudflare.com/builder-day-2024-announcements/). А вы можете сами сравнить версель и клаудфлер по влиянию на рынок. Осталось ещё, чтобы Azure или AWS вписались, чтобы было веселее. И как решать подобное противоречие будет версель - непонятно.

Gatsby.
Тут чуток лучше, так как Gatsby тоже был стартапом, который преобрела Netlify. Поэтому

Netlify
Тут +- стабильная компания, так как в последний раз они поднимали деньги аж в 2021 году. Однако они зарабатывают $30M в год, а тратят явно больше(250 сотрудников * $100k/год). Так что в какой-то момент ждём или новый раунд инвестиций, или же нагибание пользователей.

VoidZero(Vite, Vitest)
https://voidzero.dev/posts/announcing-voidzero-inc
$4.6M. Монетизироваться собираются с помощью своего облака. Анонс произошёл только недавно, так что ждём и готовим булки

И в конце мне хотелось бы повторить главный вывод, который мне хотелось бы донести:
Регулируйте риски при выборе той или иной технологии. А чтобы их оценивать +- адекватно, старайтесь понимать на какие деньги живут продукты. Потому что никому не хочется оказаться пользователем вордпресса в ситуации "WP vs WP Engine". А конфликт интересов в виде денег только повышает вероятность того что вы в ней окажетесь.

Андруша пишет код

21 Oct, 02:56


Четыре ранее описанных истории имеют 2 пересечения:
1) они произошли из-за конфликта интересов на почве денег
2) конфликтующие компании были самодостаточными. Т.е. их прибыль покрывала их издержки

Однако существуют и компании другого типа: стартапы. И они отличаются от вышеописанных компаний простым фактом: они зарабатывают меньше чем тратят. Жить же им позволяют привлечённые инвестиции, которые они тратят на захват рынка или же развитие продукта.

И это является жирнющим конфликтом интересов. Почему? Давайте предположим, что деньги у компании закончились. И тут есть 3 варианта:
1) мы идём к инвесторам за деньгами в обмен на долю компании. А инвесторы будут готовы вкладываться только если у них будет вера в то, что компания сможет отбить эти деньги. А как это показать? Ростом оборотов, т.е. нагибанием пользователя.
2) инвесторы деньги нам не дают. Но деньги нужны. Поэтому стараемся увеличивать монитезацию сервисов, а поэтому нагибаем пользователя.
3) компания продаётся образному гуглу и он или пытается отбить сумму покупки, нагибая пользователей, или закрывает проект(что тоже нагибает пользователей)

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

И почему всё это рассуждение важно? Потому что любая теория/гипотеза/опыт должна не только объяснять прошлое/настоящее, потому что задним умом можно напридумывать что угодно, но и прогнозировать будущее. В нашем случае - риски того, что придётся прогинаться под компанию или же думать как мигрировать с их решения.

Андруша пишет код

18 Oct, 05:52


Примеры прошлого(как минимум те, которые я дал) показали, что в итоге рыночек побеждает. Что опенсорс всё равно остаётся опенсорсом. Что мы всё равно имеем возможность пользоваться лучшим что есть на рынке.
Однако есть важный нюанс.

Есть на рынке такие лицензии: GPL разных версий. Давайте для конкретики возьмём GPLv2. Она позволяет брать софт, допиливать его под себя и строить на этом софте любые сервисы, ничего не возвращая в опенсорс. Да, пока вы никому не передаёте бинарники - вы не обязаны делиться сорцами. Т.е. вы можете взять отличный продукт начать на нём зарабатывать. И зарабатывать много.

Часть 2/3.
Капитализм. Счастье. ЗаеНастоящее

История четвёртая.
WordPress vs WP Engine
https://techcrunch.com/2024/10/15/wordpress-vs-wp-engine-drama-explained/
На русском языке в трансляция в реальном времени очень хорошо ведётся на @blognot.

Wordpress - это реальный гигант в мире опенсорса, благодаря которому мы имеем веб, который у нас есть. И у него GPLv2. Чисто GPLv2. Не двойная лицензия, где для одних компаний одни условия, а для других GPLv2, а GPLv2 для всех. И этим воспользовалась компания, которая называется WP Engine. Они предоставляют хостинг wordpress. И ничем существенным(оценочное суждение ментейнеров wordpress) не делятся с сообществом.
И тут ментейнер WordPress решил что WP Engine должны платить. Ну а чего? "Почему они такие успешные, а не делятся"?(Мысли автора заметки). И понеслася:
- обвинения, что WP Engine - это не реальный WordPress
- бан всем хостящимся на WP Engine доступа к центральному репозиторию плагинов
- попытка заставить WP Engine сменить название, "так как им не принадлежит трейдмарк WordPress, а значит WP они использовать не в праве"
- требование от пользователей wordpress.org соглашаться с тем, что они никак не связаны с WP Engine, при логине в админку wordpress.org
- форк популярных опенсорс плагинов, которые принадлежат WP Engine, со стороны вордпресса, чтобы их пользователи никак не были связаны с компанией конкурентов
- увольнение 159 собственных сотрудников, которые не согласны с тем что делает wordpress.org
- обмен исками между компаниями на последок, чтобы было повеселее

Да, в итоге "рыночек порешает" и мы будем жить в лучшей реальности. Но приятного жить в моменте подобных событий, особенно когда твой бизнес зависит от WordPress или WP Engine в частности, мало, так как никто не умеет в предсказание будущего и куда оно всё вырулит.

Вывод с моей стороны очень простой: если компании-разработчику внезапно понадобится больше денег не важно по каким причинам, то в моменте огребать будет пользователь продукта. То есть ты. Поздравляю.

Андруша пишет код

17 Oct, 20:10


Опенсорс - это забавная штука, которую можно описать очень странной фразой: "От каждого по возможностям. Каждому по потребностям". Звучит как коммунизм, правда? Вот только у любого коммунизма есть проблема: как только кому-то хочется денег, то всё начинает рушиться. И мне хочется разобрать прошлое и настоящее, чтобы попробовать пованговать о будущем.

Часть 1/3.
Капитализм. Счастье. ЗаеПрошлое

История первая. Cypress vs sorrycypress.
https://www.cypress.io/blog/update-defense-intellectual-property
Cypress - это компания, которая пилит одноименную систему тестирования. Но у опенсорса есть 2 неприятных нюанса: есть возможность заменить ту или иную часть продукта и сообщество очень не любит платить за фичи. И если ваша платная фича легкозаменяемая, то она будет заменена. А компании не любят, когда они вкладывают деньги в продукт, а за этот продукт не платят.
В итоге мы пришли к классическому конфликту интересов: опенсорс предпочитает допиливать платные куски, чтобы не платить за них разработчику основного продукта. Выводы очень просты: продукт стал хуже, так как компания хочет денег

История вторая. Redisgate
https://redis.io/blog/redis-adopts-dual-source-available-licensing/
Редис - это ОЧЕНЬ популярная in-memory key-value база данных, которая до недавнего времени распространялась на принципах почти полной открытости, но, как можете угадать, компании-владельцу захотелось больше денег. В итоге лицензия была изменена. Итог ситуации: появилось огромное количество форков, которые сейчас лучше редиса, как минимум из-за многопоточности. Вывод: у опенсорса есть механизмы защиты - форк. Иногда продукты можно форкнуть, чтобы продолжить жизнь продуктов на принципах опенсорса.

История третья. SugarCRM
https://web.archive.org/web/20160224192704/https://community.sugarcrm.com/thread/18434
SugarCRM - это весьма успешная CRM, которая была в опенсорсе, но в какой-то момент компании решили коммерциализировать свою деятельность. Итог примерно такой же как и выше: форк. В итоге появился https://suitecrm.com, который продолжает быть опенсорсным и вполне успешно конкурирует со своим родителем.

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

Андруша пишет код

01 Oct, 18:24


А теперь к реальным новостям. Тут незаметно появился https://voidzero.dev. И эта штука - это то что я максимально ненавижу в опенсорсе. И это "венчурное финансирование". Да, vite, vitest, и прочие около подняли денег. Что в этом плохого? Ну, деньги надо возвращать. Ждём серверные завязки в vite на облака и прочие аналоги vercel.com от Эвана Ю.
Капитализм - это, конечно, хорошо. Но в опенсорсе он прямо бесит

Андруша пишет код

01 Oct, 18:19


Это прямо круто. В основном только РФный рынок, в мире, в котором царствует редакс и агрессивно отрицаются другие идеи(да, mobx, помню о тебе, но всё же).

@effector_ru

Андруша пишет код

27 Sep, 05:33


Мне как то лень агрегировать новости, так как они слишком хороши

https://blog.cloudflare.com/builder-day-2024-announcements/

Cloudflare официально присоединяется к инициативе opennext. Теперь мне стало ооочень интересно как Vercel будет побуждать людей перепрыгивать в свое облако.

И это очень весело, так как монетизация облака - это основной способ отбивать деньги инвесторов. А на них ведется разработка nextjs, react(да, версель разрабатывает реакт) и прочих других мелких библиотек.
Очень жду повторения https://www.cypress.io/blog/update-defense-intellectual-property но с некстом и opennext

Андруша пишет код

27 Sep, 05:20


https://github.com/nodejs/node/pull/55085

Что тут главное?
- require(esm) теперь не под флагом
- Оно будет перенесено в ТЕКУЩИЕ LTS(upd: хотя что такое older LTS все еще не совсем понятно)

Смерть cjs все ближе и ближе

Андруша пишет код

23 Sep, 23:38


Я стараюсь не рекламировать пиратство в паблике, но текущая ситуация - это просто идеальный пример bus factor 1.

https://flibusta.site/node/681117

TLDR. Флибуста походу всё. Единственный ментейнер сейчас в больнице с раком мозга, а хостинг оплачен только на пару недель. А что будет потом - неизвестно. Очередной проект, который определил дух эпохи, лично для меня, скоро канет в лету.

Андруша пишет код

23 Sep, 19:06


И если в какой-то момент у Амазона становится мало работников в офисе – официально – то, тогда по всем бумажкам экономика для города перестает сходиться. Ведь меньше денег от работников приводят к развалу того самого экономического круговорота говна в природе. И тогда город или штат может захотеть отнять налоговые послабления, что Джеффу Безосу совсем не по нраву – ведь один из самых видных американских «налоговых оптимизаторов».

Так что прямые увольнения и вот такие трюки позволяют Безосу сэкономить миллиарды долларов, а еще сотни миллионов – на налогах. При этом мантра Безоса всегда была такой: «твоя маржа – это мой шанс». То есть, если можно кого-то подрезать на марже и сделать товар дешевле конкурентов, то надо обязательно лезть в эту нишу. Так Амазон продает гипердешевые товары аля Алик и Тему у себя, так они перекроили весь рынок серверной инфраструктуры, так же они нагнули книгоиздателей и так далее. Идея Безоса в том, что нужно везде иметь маленькую маржу, но залезть буквально… ВЕЗДЕ. В итоге можно на маленьких выручках с каждого из десятков, сотен, тысяч направлений поднять десятки миллиардов долларов. Но если где-то маржа начинает не сходиться – сразу оптимизировать или под нож.

Проблема в том, что понимание всех этих процессов не поможет людям, которых уволили, а им тяжело найти новую работу, причем когда у тебя на шее семья, ипотека и прочие «радости» взрослой жизни. Но зато теперь многие подумают много раз, прежде чем идти на ремоут позицию в Амазон. Сейчас Безос выиграл. Но что будет через год-два?

Андруша пишет код

23 Sep, 18:48


Наткнулся тут на интересный тред от бывшего сотрудника AWS про return-to-office политики, а потом покопался по интернету и нашел кучу дополнений к его истории. Если кто не знает, что такое Amazon Web Services, то это невероятно успешный и прибыльный облачный инфраструктурный проект Amazon. Причем этот пост я пишу по сути в продолжение предыдущего тоже про RTO, but with a twist, как говорят у нас на деревне.

Сейчас все еще идет легкий финансовый кризис и сдувание пузыря шальных денег по всему миру. Это же происходит и в двух самых крупных экономиках планеты – США и Китае. Все это, как вы уже все давно знаете, приводит к тому, что компании начинают резать косты, пуская под нож уже не только «бесполезных маркетологов» или там всяких менеджеров департамента интеграции персонала департаментов стратегического планирования интеграций менеджмента. Режут нещадно вообще всех. Причем доходит до абсурда – одной рукой гонят 1000 человек, второй параллельно нанимают еще 800. Некоторые компании при этом затевают вообще 4D-шахматы, чтобы избавиться от своих сотрудников. Следите за руками, точнее за AWS.

В 2023 году американский Амазон потребовал от ряда своих сотрудников в обязательном порядке вернуться в офис. Причем они должны были выбрать один из многочисленных офисов компании, раскиданных по всем США. Интересно, что не всех сотрудников обязали вернуться. И выбор часто был совершенно неочевидным. Иногда в одной команде могли только половине людей предписать в обязательном порядке показываться в офисе.

Многие сотрудники на тот момент, осознав после пандемийных времен, что им намного проще работать удаленно, начали отказываться от работы в Амазоне. Но другие решили все-таки согласиться и ездить в офис. Дальше начались подозрительные моменты: многих из этих самых сотрудников, кого обязали ходить в офис, начали буквально «динамить». Например, закидывать всякими глупыми всратыми задачами, не приглашать на живые митинги команды (хотя их буквально для этого официально в офис и вернули), менеджеры начали их постоянно одергивать и спускать в унитаз любые предложения, жалобы, корректировки и тд. Короче, ребят начали сливать.

Дальше многим из них начали ставить ультиматум к началу 2024 года не просто вернуться в офис, а переехать в тот город, где располагается основной костяк твоей команды. Если в Сиэттле, значит, езжай в Сиэттл. И чтобы 5 дней в неделю сидел за столом по часам.

К этому моменту уже стало всем понятно, что тебя буквально вынуждают уволиться самому. Потому что дальше будет только хуже. Естественно, все это подается под соусом якобы «ориентированности на клиента» и «инноваций», которые без таких условий разговора у кулера невозможны. Но все всё понимают.

Но вот вопрос: AWS – одно из самых прибыльных и успешных направлений Амазона. Почему же даже там пытаются так грязно слить команду? Это – эффект домино. Пузырь доткомов говностартапов с безумным финансированием от венчурных капиталистов существенно так подсдулся за последние годы. А что является одним из самых главных расходов современного SaaS-стартапа? Правильно, серверные мощности. Которые как раз поставляет AWS. Именно поэтому за всем пузырем сильно сдулся темп роста выручки AWS. И теперь им тоже приходится резать косты.

Кроме того, у Амазона есть очень тесные связи с различными городами. Это настолько важная часть экономики ряда городов и штатов, что такие договоренности становятся инфоповодом для сериалов, фильмов и мультфильмов – куда Амазон засунет свой следующий распределительный склад, офис или вообще штаб-квартиру. И потому многие города буквально соревнуются за благожелательность Джеффа Безоса.
Могут дать прямо-таки КУЧУ преференций. Например, налоговые вычеты. Зачем это городам? Очевидно – это же куча крутой работы и денег для жителей. Причем часто высокооплачиваемой. И все эти деньги превращаются сначала в налоги с ЗП, потом тратятся внутри города, появляются новые бизнесы, они тоже платят налоги, деньги тратятся на транспорт, на жизнь, на благоустройство – типичный круговорот экономики, только в рамках города или штата.

Андруша пишет код

21 Sep, 03:04


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

https://www.amazon.jobs/en/jobs/2741394/principal-nuclear-engineer-datacenter-engineering-power-generation-solutions
Не зря Амазон людей в офисы возвращает, да?
https://t.me/xavescor_code/199

Андруша пишет код

20 Sep, 07:44


В пятницу напомню вам как важно выбирать правильные инструменты для решения задач.

Знаете почему в vitest есть уже давно возможность замокать esm, а в jest она только в тестовом режиме? Попробуйте ответить без подсказки.

Верно, потому что vitest - это не только тест раннер, в отличии от jest'a. vitest - это ещё и vite, через сборку которым vitest спокойно получает имена всех модулей(а они должны быть, напоминаю, статическими) ДО выполнения тестов. И к моменту самих тестов у vitest уже есть вся нужная информация, а у jest'a - нет.

Правильные инструменты могут спасти вам кучу времени, если их применять с умом.

Андруша пишет код

18 Sep, 20:49


https://novayagazeta.eu/articles/2024/09/18/na-saite-elektronnykh-povestok-rossii-obnaruzhena-sereznaia-uiazvimost-news

Как говорится, ауф. Крутим дальше.

А если серьёзно, то весёлого мало. Это примитивнейшая база, которую знать надо. Разграничение доступов - основа безопасности. Но на неё плюют почти все, так как это НЕУДОБНО. К примеру, подобная петрушка была ранее с Яндексом https://yandex.ru/company/news/01-03-2022.

И если вам кажется, что только в РФной госухе такая жопа, то, увы, нет. Везде, в госухе и не только, работают люди, которым неудобно и которые строят все отношения на доверии.
Пример - мой любимый Казахстан, в котором я живу. Тут на все операции используется единый ключ. Раньше было 2: для авторизации и для выполнения действий, но походу посчитали что это неудобно и сделали один. Привет безопасность.
В итоге, к примеру, бухгалтера спокойно собирают и хранят у себя ЭЦП кучи людей в непонятно каком виде. Люди спокойно доверяют незнакомому человеку право делать всё что угодно от их имени. Потому что "это удобно" и "да не обманет никто". Так и живём.
Мы все в дерьме, но из-за войны петарда в говне первой взорвалась на стороне РФ.

Андруша пишет код

18 Sep, 15:46


Оказывается, JavaScript - это торговая марка Оракла. И это одна из причин почему ECMAScript - это ECMAScript. И это одна из причин почему нет крупных JavaScriptConf

https://javascript.tm

Андруша пишет код

17 Sep, 19:59


https://nypost.com/2024/09/16/business/amazon-orders-employees-to-return-to-the-office-5-days-a-week/

Маятник качается в обратную сторону. Удалёнка - это, конечно, хорошо, но не для работодателя. Да, удалёнка с нами теперь навсегда. Но крупняки будут 100% загонять людей в офисы.

Но в этом есть и плюсы, хоть и не для всех: компании продолжат перевозить к себе работников. Так что кто печалился из-за того, что релокация стала недоступна из-за удалёнки - ваше время ещё придёт.

Андруша пишет код

10 Sep, 09:27


Я чуток подзабросил канал, но мимо такого события пройти не могу https://github.com/expressjs/express/releases/tag/v5.0.0

Оно живо

Андруша пишет код

03 Sep, 07:48


Продолжаю пиарить конференции. В этот раз я уже сам буду в Алматы 21 сентября. Приходите посидеть, пообщаться о разном.

Андруша пишет код

03 Sep, 07:48


📣 Билеты на AlmatyJS #4 уже доступны

Финальное расписание докладов будет доступно на следующей неделе, а сейчас мы с радостью хотим объявить список спикеров на предстоящий AlmatyJS #4:

«Рынок никогда не ошибается?» — Андрей Васильев
«Biz+Dev=❤️» — Сергей Андреев
«Продуктовая аналитика или как понять насколько хорош ваш продукт?» — Уалихан Оразбаев

«Улучшаем UX с помощью streaming» — Павел Гасанов
«Рецепты MobX. Продвинутые практики для больших проектов» — Максим Титов
«Срочно выпускай это в прод» — Максим Горбатюк

«Назад в будущее: автостопом по трендам веб-разработки» — Атай Кебеков
«No-console: юзай devtools по назначению» — Адыл Жоро

Билеты доступны для покупки на Sxodim 🔥
Ждём вас 21 сентября в 12:00 на AlmatyJS #4.

Спасибо нашим партнёрам из MOST IT Hub за помощь в организации митапа.

@almaty_js