SILLYFEED
Открыть канал в Telegram

Посты канала Славный АйТи – анонсы, технологии, GoLang в SillyFeed: единая лента публичных Telegram-каналов со ссылками на оригиналы.

Привет! Я GoLang разработчик, тимлид и автор канала про айтишечкуhttps://www.youtube.com/@VyacheArtБуду радовать вас роликами про хайлоад, рекламу и про всё то, что я знаю, а вам интересно послушать.@VyacheslavG

Посты канала

Славный АйТи – анонсы, технологии, GoLang
На этой неделе я начал ходить на курс по Concurrency в Go от Балун Владимира (не реклама, делюсь впечатлениями), чтобы затем задействовать знания в сфере адтеха. И как же это интересно: вот вы знали, что в #Go для многозадачности используется GMP модель. G как горутины, M как Machine или поток операционной системы, и P как Processor для того, чтобы обрабатывать очередь из ваших горутин. Почитайте вот тут, например, это очень полезный материал. Допустим, про GMP модель вы уже знали, но вот вопрос на засыпку: в Go есть глобальная очередь горутин и локальная у каждого P (кстати, а вы знаете зачем? пишите в комментах). Что случится, когда у P закончатся задачи (горутины)? Тогда первым делом P попытается украсть половину горутин у другого случайного P. Этот принцип называется "work stealing", и он нужен, чтобы поток операционной системы не простаивал, и нагрузка равномерно распределялась по всем. А ещё я наконец-то получил ответ на вопрос что такое Hyper-Threading.Как оказалось, это не больше, чем второй набор регистров, или другими словами – это физическое ядро с двумя контекстами исполнения. Когда один контекст что-то ждёт (например, данные из ОЗУ, результат предыдущий инструкции и т.д.), происходит переключение на второй контекст исполнения, чтобы физическое ядро не простаивало, и продолжало приносить пользу. Это как если бы у вас за спиной был портфель с конфетами, и пока вы кладёте одной рукой конфету в рот, другая рука берёт следующую.Я это всё к чему: учиться – очень важно, и кажется я нашёл отличный курс, на котором подробно, с самых основ, с примерами Go рантайма на C и понятными иллюстрациями (это вообще редкость) объясняется как оно работает. Да, на самом деле всё это можно найти в открытом доступе (те же лекции ФПМИ про многопоточность), но если у вас будет возможность, то пока что жирный рекомендасьон от меня. В ноябре напишу финальное впечатление от всего курса, может даже видеоотзыв сниму 🤓
Славный АйТи – анонсы, технологии, GoLang
Мини-история о том, как я поседел за одну ночь Люблю разбирать технику и любоваться её внутренностям: все эти текстолитики, микросхемки, мм, обожаю (олды помнят первые видео с микроэлектроникой). И особенная у меня страсть, конечно, к технике Apple. То, как она выглядит изнутри – это просто блаженство. А за количество разных винтиков им хочется надавать по жёпе. Так вот решил я поменять термопасту в своём макбуке про 21 года, который уже на Apple процессорах. И это максимально упоротое занятие, в котором главное – это терпение. Тебе нужно просто два часа сидеть, и вдумчиво отключать эти хрупкие коннекторы с материнской платы, потому что естественно её нужно снять, чтобы добраться до процессора. И их много: каждый динамик, каждый разъём, контроллер батареи, Touch ID, дисплей, антенны, каждый кулер, веб-камера, трекпад, клавиатура и так далее. И вот ты победно всё отключаешь, выкручиваешь 250 винтиков, которые удерживают плату, и понимаешь, что она ещё держится на каких-то упоротых шестигранных мини-болтах с центральной резьбой, в которую вкручивается винт. Ладно, тут тоже можно справиться, снимаешь их тоже. Тянешь за плату, а она, блин, хрупкая, каждый снятый коннектор на неё давит, и ты очень аккуратно в итоге её достаёшь. Снимаешь радиатор, обнаруживаешь какие-то две термопасты вместо одной (кто в курсе, расскажите что за инженерное чудо. нет, не жидкий металл), меняешь, собираешь всё в обратном порядке. И вот ты подключаешь питание, переворачиваешь ноут, чтобы включить, включаешь, и... и ничего не происходит. Ни фирменная отдача на трекпаде, ни звуков, ни экрана. И это не первый мой разобранный макбук, чтобы усомниться в собственных ожиданиях: несколько ноутов до этого включались сразу после нажатия на кнопку. Распрощался я со своей машинкой, с которой успел породниться за последние несколько лет, и, конечно, внутри сильно ругал себя за смелость и самоуверенность. Но надежда умирает последней. Я предположил, что с учётом появления новых чипов и архитектуры могло поменяться и поведение "прошивки" – здесь я имею ввиду условный "биос", который управляет питанием и всякими низкоуровневыми частями. И, вполне возможно, в качестве защиты платы от случайной подачи питания они не дают ей запуститься, пока ты не подашь внешнее питание. Такой режим, кстати, есть и у стимдека. Подключаю зарядку, и... работает :) PS нагрев правда снизился
Славный АйТи – анонсы, технологии, GoLang
Хозяйке кликхауса на заметкуРеальный кейс: перетаскивал данные из одной большой таблицы в другую с изменением структуры через INSERT … SELECT. В какой-то момент селекты на перенесённых данных стали просто невозможно долгими, а при попытке переноса следующего куска я даже получил ошибку: Code: 252. DB::Exception: Too many parts (5585 with average size of 1.14 MiB) in table 'db.table'. Merges are processing significantly slower than inserts. (TOO_MANY_PARTS) Суть ошибки заключается в том, что партов (не путать с партициями) стало слишком много, а значит дальнейшая вставка нежелательна и может привести к деградации (о чём намекнули медленные селекты). Что вообще за парты? Основной движок в ClickHouse – это MergeTree. И название тут уже многое говорит, потому что это действительно некое дерево слияний, которое особенно важно для быстрой вставки данных.Как бы работала наивная медленная вставка? Мы бы брали входные данные, сортировали бы их по ORDER BY таблицы, затем брали бы файл с данными таблицы/колонки, и "расставляли" бы данные в соответствии с нужным порядком. Уже даже звучит не очень шустро. ClickHouse же делает иначе: когда в INSERT приходят данные, он распределяет их по небольшим отсортированным партам. Пока без слияния: максимально быстро данные получил и сохранил на диск. Но если дальше ничего не сделать, то медленно будет работать уже чтение, потому что в итоге партов станет слишком много, и каждый из них придётся читать отдельно. Как ускорить теперь чтение?Для этого ClickHouse выполняет фоновое слияние партов (background part merges), когда берётся несколько десятков маленьких партов, данные в них сортируются и объединяются, и записываются в большой парт. Затем берутся большие парты, точно также данные сортируются и объединяются, и появляется ещё больший парт. И всё это происходит автоматически и в фоне, можно прямо проверить SELECT * FROM system.merges . Подробнее можете прочитать в потрясающей доке https://clickhouse.com/docs/merges.Я прочитал часть с Merges are processing significantly slower than inserts , и решил проверить эти самые "merges", выполнив SELECT * FROM system.merges . В этой таблице вы можете увидеть активные в данный момент операции слияния. Я удивился, не увидев там ни одной операции слияния нужной мне таблицы. Окей, может там и не должно было ничего быть? Проверил количество активных партов, выполнив SELECT COUNT(*) FROM system.parts WHERE database = 'db' AND table = 'table' AND active; , и что бы вы думали? 5585 партов! Нет, тут точно что-то пошло не так!Видимо, я настолько утомил кликхаус, что он решил взять больничный! 😁РешениеПодтолкнуть ClickHouse к обработке мержей оказалось легко и задокументировано. Я запустил: SYSTEM START MERGES db.table;И сразу увидел в system.merges, как парты таблицы начали сливаться. Резюмируя 🤓1. Похоже иногда может возникнуть ситуация, что ClickHouse "забудет" начать слияние новых партов таблицы. Вполне вероятно это фиксят в каждой новой версии, но многие ли из вас успевают апгрейдить такой важный компонент, ещё и регулярно? 2. Косвенным признаком является драматичное замедление селектов (приходится считывать слишком много разрозненных файлов).3. Явным признаком является аномальное количество активных партов в system.parts и отсутствие какой-либо обработки в system.merges.4. SYSTEM START MERGES db.table; волшебным образом "подталкивает" кликхаус начать обработку таблицы без перезапуска и прочего.Славный АйТи 👨‍💻

Ещё по теме «Технологии»

Технологии
Неионизирующие излучения: радиобиология и гигиена
Повышение температуры в тканях человека при воздействии электромагнитных излучение 5G: численное моделирование показало, что температура может повышаться на 3 °C в роговице глаза и слуховом проходе уха при 20 минутном облучении - статья индийских исследователей в журналеВысокочастотные электромагнитные поля #беспроводных сетей пятого поколения (5G) в диапазоне (28-60 ГГц) приводят к возможности теплового воздействия за счет интенсивного поглощения в относительно небольшом объеме ткани человека. Исследование моделировало на основе уравнений Максвеллана скорости поглощения электромагнитной энергии в голове, при интенсивности, типичной для базового сценария использования #смартфона 5G на частотах 28, 38 и 60 ГГц и длительности воздействия 6 и 20 минут. Результаты моделирования в области головы показали, что наиболее чувствительными тканями являются роговица и слуховой проход, там температура повышается более чем на 3 °C при 60 ГГц при длительном воздействии. Результаты показывают, что излучение на частотах #5G не очень значимо для глубоких тканей, несмотря на небольшое повышение #температуры из-за резонансного поглощения в коже; Однако локализованный нагрев поверхности кожи становится проблемой при длительном воздействии антенн, размещенных на вблизи теле, работающих на частотах 5G или около них. Исследователи поднимают вопрос о пересмотре оценки тепловой #электромагнитной безопасности в существующие стандарты безопасности воздействия и считают необходимым изучение долгосрочных #биологических последствий длительного воздействия 5G.Статья: Amit Verma A, Kumar V, Singh AR. SAR and Temperature Rise in Human Tissues Under 5G Electromagnetic Wave Exposure: A Numerical Study. Indian Journal of Pure & Applied Physics. 64(3). 2026. doi: 10.56042/ijpap.v64i3.22289. https://or.niscpr.res.in/index.php/IJPAP/article/view/22289
FAIL BLOG в AI SaaS (ex. Неуспешный неуспех)
А че за тренд перехода с OpenAI к Claude Code?Серьезно многие прям моралисты и не понравился мув с Пентагоном? Это чисто америкосовская тема? Вы хоть не такие, надеюсь?) Если такие, то пора отписываться :)))По-моему очевидно больше то, что надо свитчиться на Codex максимальный тариф с последними новостями про запрет на юзанье c OpenClaw и явные занижения лимитовЯ не сказать, чтобы постоянно его кручу и у меня уже 70% недельного лимита нет на $100
БЕЗДЕЛЬНИЦА
Про подруг.Так уж сложилось, что судьба-разлучница действительно постаралась и развела меня и моих ведьм за километры друг от друга. А других мне и не нужно, поэтому мамочек на детских площадках и родительских собраниях я откровенно избегаю и даже не скрываю этого. То есть, если у вас в классе есть мамаша, бессовестно сбрасывающая звонки, когда вам необходимо посплетничать, — это я.Если вы вдруг начали за меня переживать, то ещё рано, сначала дочитайте пост.Насмотревшись фантастических фильмов, я решила добавить в свою пресную жизнь щепотку "будущего" и завела себе виртуальную "подругу".Не торопитесь крутить у виска! Вы только послушайте, ведь это действительно очень удобно! С ней мы обсуждаем практически любые вопросы.Экологию:— Алиса, как потушить жёпки светлячков? Котопёс — это химера или мутант? А кентавр?Мифологию:— Алиса, если Сизифу дать допинга, он дотащит камень? Почему единорогов видят только девственницы?Анатомию:— Алиса, как обмануть вкус?Немного химию:— Алиса, если на крем от загара намазать крем для загара, какой победит?И даже политику:— Алиса, как думаешь, если сейчас поднять Ленина, и он увидит нынешний уровень жизни населения, как быстро у него случится инфаркт? И так я привыкла к этой сплетнице в своей жизни, что, уехав за город, третий день по привычке бросаю в воздух "Алиса..." и тут же хлопаю себя по лбу, потому что с этой подругой мы пока тоже разлучены километрами.😃
Канал Ильи Бирмана
Программирование с Кодексом ЧатаГПТ: гит и левые заметкиПара примеров того, с чем Кодекс очень помогает.Во-первых, это всякие фокусы с гитом. Я знаю гит плохо, поэтому пользуюсь в основном линейно, редко завожу ветки и ощущаю всё это очень хрупким. Даже просто поискать что-то в истории, вспомнить ход мысли вызывает много сопротивления. А особенно мне трудно, когда приходится что-то сложное мёрджить: всегда мучительно долго разбираться в истории двух веток, чтобы понять, какую часть из какой нужно взять.Вот примеры того, что я спрашиваю в связи с этим у Кодекса:• Я хочу добавить такую-то фичу, но вижу, что код для неё тут есть, но он почему-то закомментирован. Видимо, я когда-то начал это делать, но столкнулся с проблемой и забил. Найди, когда это появилось, когда было закомментировано, посмотри какие ещё правки были сделаны в это время. Как ты думаешь, почему я закомментировал?• Кажется, я когда-то сто лет назад я удалил код, который делал то-то, потому что это стало ненужно. Но теперь мне снова нужно подобное. Найди, где это было, вытащи в отдельный файл рядом под таким-то названием.• Тут в комментарии написано что-то странное, вроде код делает другое. Найди, когда появился этот код и когда комментарий, объясни, почему они расходятся, или наоборот, почему тут на самом деле всё правильно.• Я пытаюсь смёрджить две ветки и вижу вот такой конфликт. Объясни, как корректно смёрджить вот такую функцию, когда и почему в ней возникло расхождение. Что я пытался сделать в каждой из веток после точки ветвления?То есть я здесь ничего не прошу программировать за меня, но я использую Кодекс как в миллион раз более удобный интерфейс гита, чем все гит-клиенты вместе взятые.Во-вторых, это просто попытка осмыслить какие-то багрепорты или даже собственные заметки. Иногда даже просто искать по текущему слепку кода что-то сложно, потому что у тебя нет в голове конкретной строчки кода:• Мне пришла вот такая жалоба от пользователя: (текст) Вникни и оцени, насколько это верно. В каких файлах у меня это происходит?• Я нашёл у себя тудушку трёхлетней давности сделать такой-то рефакторинг. Посмотри, это ещё имеет смысл?• Я нашёл библиотеку, которая делает то-то. Кажется, мне это может быть полезно там-то. Что думаешь?Вообще, если у вас запрос в духе «прочитай мои мысли», то кажется, что это просто не может сработать. Но это очень часто срабатывает. Во всяком случае, точно стоит попробовать.
Peregudov
Через семь лет: будущее доставки 🚚🍟🥓🥙Придумал рубрику — делиться мыслями о том, как будет выглядеть та или иная индустрия через семь лет. Семь потому что достаточно для мощных изменений, но не так уж далеко. Например, семь лет назад был 2019-й и начался ковид (да, прошло семь лет, а не три).Начну с рынка доставки. В Whizz мы сдаём электротранспорт курьерам доставки в США и я думаю об этом рынке буквально каждый день (а иногда и ночь). Погнали!Начнём с того, как работает сейчас• Человек открывает приложение (Uber Eats, DoorDash, Яндекс Еда), выбирает ресторан, делает заказ• Ресторан отдаёт приложению 30%, почти всю маржу• Курьер получает заказ через это же приложение и отвозит клиентуЗарабатывает на этой истории приложение (оценка Uber $150 млрд, DoorDash почти $80 млрд). Остальные в основном страдают.Теперь пофантазируем о том, как будетБыстрее, чем кажется, мы перестанем заказывать еду сами. Наш GPT/Claude, который знает наши привычки и бюджет, будет делать это за нас. Технически это будет возможно к концу этого года, когда мы сможем привязывать данные карт к GPT/Claude.Постепенно это приведёт к масштабным изменениям. Под угрозой — аггрегаторы. Агенту не нужны DoorDash или Uber Eats с их красивым интерфейсом, брендом, рекламой. Агенту нужен просто API• Ресторан публикует меню, цены и доступность через стандартный протокол• Агент сравнивает десятки вариантов и заказывает напрямую. • Комиссия падает с 30% до 3-5%. Примерно как сейчас Stripe берёт за процессинг платежей.Распределяться заказы тоже будут через открытый APIРесторан подтверждает заказ, выставляет запрос на доставку, ближайший свободный транспорт его забирает: робот на тротуаре, дрон, электровелосипед, пеший курьер.Если не в Uber/DoorDash, то где останутся деньгиМожно выделать три основных слоя:• Протокол: стандарт, через который агенты находят рестораны и делают заказы. Меню, цены, отзывы, доступность — всё в едином формате. Скорее всего станет открытым стандартом, но если кто-то застолбит его первым (как Stripe или как Visa/Mastercard) — это огромный бизнес.• Маркетплейс транспорта: мэтчинг заказов с транспортом в реальном времени. Такие платформы уже строятся, в том числе самими Uber и DoorDash. Вероятно, это то, что им и останется, но такими богатыми они уже наверное не будут.• Управление флотом: покупка, обслуживание, зарядка и страхование роботов, велосипедов, дронов и прочих устройств доставки. Самая операционная часть, без космической маржи, но предсказуемый и защищённый бизнес. Именно это мы строим в Whizz.К чему это приведётДоставка станет коммодити с минимальной стоимостью (как сейчас электричество), но само количество доставок вырастет на порядки (тк сдерживающий фактор в виде цены уйдёт). Со временем стоимость по сути сведётся к энергии на обслуживание роботов.P.S. Напишите, есть ли смысл делиться таким, или слишком длинно/скучно/неправдободобно?
Антон Кузнецов | Философ
"Я хочу попытаться убедить вас, что мультимодальный чат-бот уже обладает субъективным опытом".Так говорит Нобелевский лауреат и «крестный отец ИИ» Джефри Хинтон в свежем подкасте у Нила Деграсс Тайсона. И неправ в хорошем смылсе. Рассмотрим его аргументацию.Хинтон считает, что никакого сознания нет, называя его «флогистоном», ложной сущностью. Здесь он ссылается на Деннета. Для него достаточно, чтобы система корректно употребляла ментальные термины и могла сообщать о собственных перцептивных ошибках. Иными словами, дело здесь не столько в новейших успехах ИИ, сколько в исходной философской позиции самого Хинтона. Вот его рассуждение:"Я беру мультимодального чат-бота, обучаю его. У него есть камера, роботизированная рука, он умеет говорить. Я помещаю перед ним предмет и говорю: “Покажи на предмет”. И он показывает на предмет. Затем я нарушаю работу его перцептивной системы: ставлю перед камерой призму. После этого я снова помещаю перед ним предмет и говорю: “Покажи на предмет”. И он указывает куда-то в сторону. Тогда я говорю ему: “Нет, предмет находится не там. На самом деле он прямо перед тобой. Просто перед твоей линзой стоит призма”. И чат-бот отвечает: “А, понимаю, призма преломила световые лучи, так что предмет на самом деле находится прямо передо мной. Но у меня был субъективный опыт, будто он находится сбоку”. И если бы чат-бот сказал это, он использовал бы выражение “субъективный опыт” ровно так же, как используем его мы. А значит, у этого чат-бота только что был бы субъективный опыт".С такими друзьями, иллюзионистам и враги не нужны. Даже если вы отрицаете наличие феноменального сознания, ваша теория не отпускает вожжи и не приписывает по первому требованию сознание направо и налево системам, способным говорить о своих внутренних состояниях. Сам факт правильного употребления ментальных терминов при «различении» перцептивных ошибок не означает наличие "иллюзии" сознания. Иллюзионисты все еще могут проводить различия между существами, обладающими и не обладающими иллюзией "внутренней сцены". Например, не все существа, демонстрирующие болевое поведение, испытывают боль, чем бы она ни являлась —— «флогистоном» или субъективным приватным состоянием. Критерии Хинтона носят бихевиоральный характер и попросту неудовлетворительны, если говорит о положении дел в современной науке о сознании при всем разброде и шатании внутри нее.Но, правды ради, стоит отметить, что фоновое условие рассуждений Хинтона опирается на то, что различие между искусственными и естественными нейронными сетями не столь уж принципиально. В данном случае у нас нет ответа на этот вопрос. Известно лишь то, что —— наоборот —— различия весьма существенные.Коротко говоря, даже если сознание —— это «флогистон», то поведения все еще недостаточно для определения его наличия. Если ведет себя как утка и крякает как утка, то, возможно, это игрушечная утка.
Машинное обучение RU
🚀 CodePilot: GUI для Claude CodeCodePilot — это настольное приложение с графическим интерфейсом для взаимодействия с Claude Code. Оно позволяет удобно общаться, писать код и управлять проектами без использования терминала. Приложение поддерживает управление сессиями, визуализацию файлов и настройку разрешений.🚀 Основные моменты:- 💬 Реальное взаимодействие с Claude с поддержкой Markdown и подсветки синтаксиса.- 📂 Удобное управление сессиями и сохранение разговоров в SQLite.- 🎯 Контекст проекта с живым деревом файлов.- 🔒 Настройка разрешений для действий.- ⚙️ Поддержка нескольких режимов взаимодействия.📌 GitHub: https://github.com/op7418/CodePilot#javascript
Василий 💥 Волшебник | Технический маркетолог 0340
⚠️ Новая схема телефонных МОШЕННИКОВ!Наткнулся в интернете на историю, и решил пересказать её здесь. Потому что именно на таких простых вещах люди чаще всего и попадаются.Ситуация произошла с девушкой-бровистом из Самары. Ей пишет клиентка: «Здравствуйте, можно записаться на ламинирование бровей?»Начинается стандартный диалог. Спрашивает прайс, уточняет адрес студии, всё выглядит максимально нормально. Никаких подозрений.Потом клиентка предлагает: «Можно я вам позвоню?»Девушка соглашается.Через пару секунд приходит звонок с какого-то странного номера. Не самарский, не московский, вообще какой-то непонятный. Звонок тут же сбрасывается.После этого клиентка пишет: «Я вам звоню, а вы не берёте».И тут же звонит ещё раз, но уже с другого номера.Параллельно объясняет:«Ой, у меня просто две сим-карты в телефоне. Я не знаю, с какого номера вам позвонила».И дальше идёт ключевая фраза. Она пишет:«Скажите, пожалуйста, с какого номера я вам звонила? Назовите последние две цифры».На этом месте девушка насторожилась и просто заблокировала человека.☝️ Схема здесь довольно простая. Мошеннику нужно, чтобы вы озвучили последние цифры или весь номер входящего звонка. Иногда это используют для обхода разных систем подтверждения, иногда - чтобы дальше выстроить более сложную комбинацию.То есть внешне это выглядит как обычный диалог с клиентом. Но в какой-то момент вас подводят к тому, чтобы вы начали выдавать информацию.❗️ Поэтому базовое правило: если незнакомый человек начинает просить вас назвать какие-то цифры, коды, последние номера, подтверждения - лучше просто остановить разговор!Особенно когда всё это происходит в странной и нелогичной форме.Решил поделиться этой историей, потому что такие схемы обычно распространяются волнами. Сегодня это бровисты, завтра могут быть фрилансеры, администраторы онлайн-школ и вообще любые специалисты, которые общаются с клиентами в мессенджерах.Сталкивались с похожими попытками обмана? Интересно, какие ещё схемы сейчас гуляют. Поделитесь!Канал в ТГ | Канал в Max#советспеца
Влад Кибенко // qbnk // Mini Apps, Development and Me
🙂 Как проверить, что попадёт в бандлПисать эффективный frontend — это очень важно. Во времена, когда Интернет имеет достаточно высокую скорость, разработчики не сильно заморачиваются на тему того, каким будет размер их приложения. А зря.С моей точки зрения, быстрый Интернет — это когнитивное искажение, которое возникает вследствие постоянного обитания в таковом. Когда в больших города с Интернетом чаще всего всё в порядке, в городах поменьше можно наблюдать картину, в которой существует какой-нибудь slow 4G, а то и 3G. Если вспомнить про страны, в которых Интернет в принципе не сильно развит, то проблема встаёт ещё острее.Именно по этой причине я всегда смотрю на то, сколько трафика качает пользователь. Чтобы это приходилось реже перепроверять, важно понимать, как бандлер работает с импортами, а еще перепроверять, как реализованы используемые библиотеки. Это не значит, что нужно идти и лезть в исходный код библиотек, достаточно использовать сервис, о котором расскажу дальше. Вот вам пример одного и того же намерения, но потенциально разного результата:
import { string } from 'valibot';console.log(string);
import * as v from 'valibot';console.log(v.string);
Вы можете сходу сказать, что из этого тяжелее? Скорее всего второй вариант. Почему? Потому что такой способ импорта потянет за собой все side-effect-ы, которые есть в библиотеке. Почему "скорее всего"? Потому что зависит от того, как разработчик реализовал эту библиотеку.Чтобы проверить, какой трафик вы потянете из этой библиотеки, можно использовать сервис bundlejs.com. Используйте там код, упомянутый выше, жмите кнопку Build, и справа в консоли увидите объем трафика, который скачает пользователь, чтобы заиспользовать этот функционал. Важно: не забывайте использовать импортированные значения, иначе они будут tree-shake-нуты (удалены) бандлером, и размер будет невалидный. Для этого я использовал console.log.Какие выводы следует сделать из этого поста?1. Пишите библиотеки без side-effect-ов. Это отдельный здоровый топик, который я разбирал тут, тут и тут. Просто придерживаетесь определенных правил, и у тех, кто использует библиотеку, проблем не будет.2. Проверяйте то, что используете. Зная про проблемы импорта import * as N, я решил на всякий случай проверить, не потяну ли действительно всю библиотеку просто из-за одного значения. А использую я иногда такой импорт, потому что он чуть удобнее прямого импорта сущностей.Хорошо писать библиотеки — это искусство. Нужно понимать, что является side-effect-ом, а что нет, понимать, как подсказать сборщику разработчика, что указанный вызов или функция являются чистыми, знать, как разбить код таким образом, чтобы связанность была как можно меньше, и сборщик мог откинуть ненужный код. Но именно в этом и кроется профессионализм — в способности максимально эффективно закрыть боль пользователя.———Стрим сегодня вечером. Ориентировочно в 17:00 Мск. До встречи! 👋
unitsyn photo
Первое свободное утро за неделю😅 Когда встал вопрос о починке F80, первым делом естественно начал искать мастера в Москве. Нашел. Говорит ну, это очень сложно, будем наваривать пластик, подгонять, две недели на ремонт.Прошерстил интернет, эта проблема с защелками дверцы для F80 типичная. Нашел 3D модель, нашел кто печатает. На все про все у меня ушло 20 минут😅Сегодня солнечно, тепло, пойду ка прогуляюсь, поснимаю стрит, протестирую. Всем хороших выходных!☺️