Обновить
4

Пользователь

1,4
Рейтинг
1
Подписчики
Отправить сообщение

Это прогресс, который в том, что меньшими усилиями я теперь получаю "больший" результат. Просто для многих это само собой разумеется, но я в программировании больше четверти века и могу окинуть взглядом весь путь, местами может он и заруливает не туда, но в целом я доволен как аппаратным развитием процессоров, они фантастические, так и программных средств. Я ещё помню, как я писал медианный фильтр на MMX в конце девяностых и потом вкорячивал это в четвёртый Дельфи. Я и теперь умею на ассемблере, но только на AVX512. А желающие могут всегда взять старую железку и ПО и попробовать.

Впрочем эксперимент ваш меня заинтересовал, я решил повторить на Visual Studio Professional 2026 апрельское обновление v.18.5.2.

Вот код:

#include <iostream>

int main()
{
    std::cout << "Hello World!\n";
}

При компиляции в релиз со всеми настройками по умолчанию (я вообще ничего не трогал, только в релиз переключился) получаем исполняемый файл 64-бит размером 11264 байт, или же 10752 байт в 32-бит, то есть двух мегабайт и близко нет, это в общем претензии к линковщику. Листингом утомлять не буду, там 73 функции. Но всё же это заметно меньше того, что Раст выдавал, давайте позволим ему реабилитироваться и сделаем без std, вот код, тут чуть длиннее, так как println!() без std мы теряем, нам надо задействовать три функции:

#![no_std]
#![no_main]

use core::panic::PanicInfo;

#[link(name = "kernel32")]
unsafe extern "system" {
    fn GetStdHandle(nStdHandle: i32) -> *mut u8;
    fn WriteConsoleA(
        hConsoleOutput: *mut u8, lpBuffer: *const u8,
        nNumberOfCharsToWrite: u32,
        lpNumberOfCharsWritten: *mut u32,
        lpReserved: *mut core::ffi::c_void,
    ) -> i32;
    fn ExitProcess(exit_code: u32) -> !;
}

const STD_OUTPUT_HANDLE: i32 = -11;

#[unsafe(no_mangle)] // Точка входа:
pub extern "C" fn _start() -> ! {
    let msg = b"Hello, World!\r\n";

    unsafe {
        let handle = GetStdHandle(STD_OUTPUT_HANDLE);
        WriteConsoleA(handle, msg.as_ptr(), msg.len() as u32,
            core::ptr::null_mut(), core::ptr::null_mut(),
        );
        ExitProcess(0);
    }
}

#[panic_handler]
fn panic(_info: &PanicInfo) -> ! {
    unsafe { ExitProcess(1) }
}

.cargo\Config.toml, тут надо пробросить опции в линковщик и указать точку входа:

[target.x86_64-pc-windows-msvc]
rustflags = [
    "-C", "link-args=/ENTRY:_start /SUBSYSTEM:CONSOLE"
]

Cargo.toml:

[package]
name = "r-hello-nostd"
version = "0.1.0"
edition = "2024"

[dependencies]

[profile.release]
panic = "abort"
lto = true
opt-level = "z"
codegen-units = 1
strip = true

И вот — 3072 байт всего исполняемый файл (одинаковый размер для 32 и 64 бит).

Если дизассемблировать исполняемый файл, там вообще красиво всё:

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

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

В конце девяностых я прослушал целый доклад на конференции, стараясь понять разницу между документом OLE, объектом COM и управлением ActiveX. Я весь час смотрел на выступающего с недоумением, будто у него изо рта торчал крысиный хвост.

Смотрим оригинал.

I sat through a conference session in the late nineties trying to understand the difference between an OLE document, a COM object, and an ActiveX control.

Артикль “an” перед “ActiveX control” говорит нам, что это не может быть «управление». Это именно контрол, то есть, говоря литературным языком, «элемент управления».

А разница очень простая.

Объект COM — это бинарный (то есть, не требующий виртуальном машины из Java, .Net или браузера) объект, написанный на одном языке, а используемый на другом. Для этого были придуманы роли (интерфейсы) и строгие правила, по которым объекты играют эти роли (как они расположены в памяти, кто чистит стек после вызова и т.п.). Если ты соблюдаешь эти правила и на языке C++, и на языке Паскаль, то объекты (например, хранилище данных или парсер текста или что угодно ещё) можно написать на C++, а использовать в Delphi.

Если среди играемых ролей есть набор «то, что умеет любой элемент управления по стандарту ActiveX», такой объект COM становится элементом управления ActiveX (например, кнопкой, графиком или полем ввода).

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

Однако, несмотря на придирки, в целом автор прав: с уходом Гейтса в МС развели самый настоящий бардак. А переводчик, в целом, переводит хорошо, и берёт интересные статьи, за что ему спасибо.

Почему каждый раз читаю новости про технологические решения на хабре, это не разбор что конкретно было сделано?

Для начала стоило объяснить, что за архитектура OpenMythos и чем отличается. Архитектура состоит из трех ключевых этапов:

1. Prelude (Прелюдия)

Это входной блок стандартных слоев трансформера, которые выполняются ровно один раз. Его задача cформировать первичное латентное представление входного токена. Результат этого блока сохраняется и добавляется в каждый последующий цикл рекурсии, чтобы предотвратить "дрейф" или потерю контекста при глубоких вычислениях.

2. Recurrent Block (Рекурсивный блок)

Это основа OpenMythos. В нем данные входят в цикл (до 16 итераций). Используются одни и те же веса для каждой итерации. Это делает модель компактной, но «глубокой» с точки зрения вычислений. На каждом шаге t скрытое состояние h(t) обновляется с учетом исходного эмбеддинга из Prelude:

h(t+1) = TransformerBlock(h(t), e)

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

3. Coda (Кода)

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

Как и в SSM, здесь главное рекуррентность. В классических трансформерах информация идет только вперед (feed-forward). В OpenMythos, как и в Mamba, текущее состояние зависит от предыдущего шага обработки.

Разница лишь в том, что в Mamba заменяет механизм внимания (Attention) на селективное сканирование (локальное внимание). OpenMythos оставляет Self-Attention внутри рекурсивного блока. То есть на каждом из 16 циклов модель заново смотрит на все остальные токены в контексте. Это дает точность и глобальное внимание трансформера, которых иногда не хватает рекуррентным сетям.

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

https://t.me/greenruff/2306

Это попытка сделать аналогию с мозгом. Хотя и очень ограниченная. В нем данные после таламуса поступают в область мозга аналогичную Recurrent Block. Затем поступают в MPFC (тут аналогии нет). Мы тут опускаем ACC и другие части. Главное что затем сигнал попадает в гиппокамп. При этом у рекуррентного блока слои 6 отдают сигнал ошибки так же таламус в ассоциативные ядра. Что я имею ввиду под аналогией?

  1. Сигнал ошибки из слоя 6 попавший в ассоциативные ядра затем смешивается с сигналом от сенсорных ядер.

  2. Сигнал из гиппокампа потом поступает в Recurrent Block и смешивается с сигналом от таламуса (который так же может быть смешан сенсорным и ассоциативным ядром). Механизм таламуса сложнее, но если грубо то так. Смысл в частичной аналогии, как в модели OpenMythos, входной сигнал смешивается со старым. По сути с памятью прежнего “размышления” и с ошибками, а так же с новой информацией. В OpenMythos это сделано более урезано, но само направление частично перекликается, но в более простой и ограниченной форме. Это можно было бы сравнить с чтением книги. Сенсорный сигнал - это информация прочтения абзаца. Затем обработанный сигнал через таламо-кортикальными петли снова идет на вход, где снова повторяется сигнал с прочитанного абзаца, словно пользователь прочитал и думает об этом не переходя дальше. Сравнение очень грубое и неточное, но сама идея частично перекликается.

Рекуррентный блок как раз в цикле ближе к гиппокамп (хотя без явного запоминания важных деталей - урезанная реализация). А вот аналога слоя 6 как ошибки, которая потом добавляется в начальные сенсорные данные, чтобы перестроить размышления (на альтернативные рассуждения) нет. Я вижу работы ассоциативные ядер от слоя 6 при смешивании с сенсорным сигналом, как усиление альтернативных направлений (если ошибка большая, то альтернативный маршрут может быть усилен). А в случае OpenMythos есть только смешивания сигнала с аналогом CoT, что ближе к гиппокампу, который снова идет на вход и смешивается с сигналом таламуса.

Рекуррентный блок в OpenMythos работает на удержание и уточнение контекста. Данные циркулируют, смешиваясь с «сенсорным» входом (Prelude), что функционально напоминает работу гиппокампа по поддержанию временных связей и формированию эпизодического кадра. Это похоже на внутренний монолог (Implicit CoT), где мы просто прокручиваем одну и ту же информацию. Но это пассивный процесс, он не меняет стратегию мышления на ходу.

В биологическом мозге слой 6 коры посылает проекции обратно в таламус. Если предсказание (Top-down) не совпадает с сенсорным входом (Bottom-up), возникает сигнал ошибки. В мозге высокая ошибка буквально переключает внимание таламуса на другие ассоциативные ядра. Это позволяет мгновенно сменить интерпретацию (например, когда ты понимаешь, что пятно в кустах это не тень, а тигр).

В OpenMythos этого нет. Там нет детектора рассогласования. Рекурсия идет по жестко заданному алгоритму. Если модель изначально начала с неверного рассуждения на первом цикле, она будет продолжать уточнять эту ошибку все 16 циклов, просто смешивая её с исходным сигналом. У неё нет механизма, чтобы определить что "Ошибка велика, забудь этот путь, попробуй альтернативную активацию экспертов (MoE)".

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

Да. Только это означает, что я пользовался инкапсуляцией. Говорить, что у ООП монополия на понятие инкапсуляции — это перебор (а мы до этого дойдём через несколько итераций).

у вас там тоже есть штука "Encoder" которая описывает набор функций, в точности как интерфейс в C++

Только Encoder — это просто алиас для типа. Мне не нужно особое понятие «интерфейс», оно становится частным случаем «любое значение, удовлетворяющее типу». Как обычно.

но в виде общего Encoder в точности как фабричный метод.

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

В точности как полиморфизм в ООП.

Нет, потому что в ООП навешаны какие-то принципы подстановки лисков (которые не работают), виртуальные функции, рантайм-диспатчинг, и так далее, а в ФП я просто передаю функции в функции, и полиморфизма здесь не больше, чем полиморфизма в функции int foo(int n) { return n + 2; }. которая игнорирует конкретное значение n. Как обычно.

Вы точно также добавили бы DumpingEncoder для сливания данных в файл, если он нужен.

Только это была бы просто функция, возвращающая функцию. Никакого наследования, никаких дум «а мне тут наследоваться или агрегировать? или, может, CRTP?» Просто работа как с обычными значениями. Снова и как обычно.

Вы отказались от class/instance потеряв какую-то часть проверок, ведь теперь вы можете в коде в качестве Encoder использовать и условное замыкание для шифрования пикселей, у которого по случайности и недосмотру главный метод также обозвали Encode().

Нет, не могу. Имена и их совпадения важны только для class/instance. Если я от них отказался, то важны только типы.

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

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

И говорить, что «дизайн системы в ФП отражает концепции из ООП» — ну да, а чего вы хотели, если там есть инъекция? Это как говорить, что «чего вы говорите, что вещественные числа полнее целых, если при решении 2x = 4 вы не пользовались вещественными числами?»

Но как это работает, когда у вас есть "интерфейс" Encoder? У вас же mkEncoder имеет конкретный тип - он возвращает Encoder.

Тогда mkEncoder возвращает Encoder и его «метаданные» через Σ-тип (то есть, пару, где тип второго компонента зависит от значения первого), например:

mkEncoder : String
          → IO (Σ md. Encoder md Initialized)
mkEncoder "vp9" = do
  hw ← loadVP9hwEncoder
  sw ← loadVP9swEncoder
  pure $ (_ , mkFallbackEncoder hw sw)

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

_⊓_ : EncoderMetadata
    → EncoderMetadata
    → EncoderMetadata
md1 ⊓ md2 = EncoderMetadata
              (maxNonKeyframes md1 ⊓ maxNonKeyframes md2)
              (minFrameSize md1 ⊔ minFrameSize md2)

mkFallbackEncoder : Encoder md1 Initialized
                  → Encoder md2 Initialized
                  → Encoder (md1 ⊓ md2) Initialized
mkFallbackEncoder = ...

где эти смешные значки ⊓ и ⊔ — это решёточные greatest lower bound и least upper bound, которые для количества кейфреймов сводятся к минимуму двух значений, а для минимального размера фрейма — к максимуму из двух.

И, кстати, если я, например, ошибусь, и случайно напишу, что минимальный размер комбинированного энкодера — минимальный (а не максимальный, как это должно быть) из двух индивидуальных ограничений, то у меня просто не получится написать тело функции mkFallbackEncoder, потому что я не смогу тайпчекеру доказать, что размер фрейма для комбинированного энкодера подходит каждому из размеров фреймов отдельных энкодеров.

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

Если снести div верхнего и правого меню, то нагрузка на cpu спадает с 20% до 1.5% в firefox и с 40% до чуть меньше 5% в chrome. При частичном сносе div - частичный эффект.

Подтверждаю, на одном из московских телеканалов вся запрещенка работает без ограничений. Есть корпоративный firewall, который рубит всякую муть типа Двача, но туда ему в принципе и дорога :)

Да даже местное быдло несоизмеримо приятней вечно улыбающихся лживых насквозь американцев

У меня знакомый прятал диктофон на работе. Вывод для себя сделал такой: соотечественники лживые как америкосы, только хамят и не улыбаются.

Искал готовое решение — не нашёл.

Собрал триальными агентами проект за ночь.

Но именно для обработки бесплатных ИИ нет: Groq нагрузку не вывозит (200k мало), NVIDIA свою же собственную программу тестирования придушила (40rpm впритык), остальные из-за лимитов даже пробовать не стал, поэтому пришлось заплатить $2 и теперь вот думаю, кто же на самом деле кого имеет — я китайцев или китайцы меня 😂

Данные лежат в открытом виде, просто "непричёсанные" и неструктурированные. Сделал так, чтобы на входе был мусор, а на выходе конфетка, но конфетка пока на все 100% не получается, поэтому постоянно поднастраиваю промпт. Зато всё само работает (бегает по сети и собирает мусор), без моего участия. Фантастика.

Если добьюсь нужного результата на уровне, на котором нестыдно показать — покажу. Если нет, то не судьба. Но пару баксов на такие опыты не жалко.

Тогда уж, наверное, так

Скрытый текст
P.S. Нейронкой, которая мучала меня текстом, вставляя не то что я просил :D
P.S. Нейронкой, которая мучала меня текстом, вставляя не то что я просил :D

Я удалился с хабра сто лет назад и сознательно выбрал режим read-only, чтобы не вступать здесь ни в какие "дискуссии", но специально зарегистрировался сейчас нова только для того, чтобы написать этот комментарий, потому что ваша наглость в передергивании фактов просто невероятно возмутительна.

ulisma вам написал:

Например, внедрение оплаты по биометрии в метро Москвы ведется с 2018 года, т. е. уже 8 лет. Результат: только порядка 2% платежей проводится с использованием биометрии.

Вы сделали вид, что он солгал (или не владел данными, а вы его "поправили"):

На основе данных на начало 2026 года, оплата проезда по биометрии («Face Pay») в московском транспорте демонстрирует высокую популярность:

  • Общее число поездок: С момента запуска системы в 2021 году пассажиры воспользовались биометрией более 200 миллионов раз.

  • Активные пользователи: Сервис имеет около 600 тыс. зарегистрированных пользователей, при этом зафиксировано более 170 тыс. проходов каждый рабочий день.

2026 год показывает другую динамику.

Что ж, давайте проверим сотрудника банка. Идем на https://transport.mos.ru/mostrans/for_journs/data и смотрим среднесуточный пассажиропоток на метро м ЦЦК за март 2026 г. Видим цифру в 8.12 млн. человек. Делим приведенную вами цифру в 170 тыс. проходов в день на цифру поездок в 8.12 млн. в день, получаем 170000/8120000=2.094% - т.е. именно заявленную ulisma цифру и заявленную им, а не вами "динамику" использования биометрии в московском метро.

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

Я с пародией, потому что Слава_Рюмин с его «интервью» уже в пёченках:

Как я заработал 120 млн на деревянных крышках для Wi-Fi, но Excel всё равно считает, что я должен денег

Как я заработал 120 млн на деревянных крышках для Wi-Fi, но Excel всё равно считает, что я должен денег

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

Бренд мы назвать не можем. Не потому что секрет, а потому что после третьего ребрендинга он стал звучать как пароль от корпоративного Wi-Fi: Wuddo Home Loftly Box Pro.

Мы производим деревянные крышки для роутеров. Это такие маленькие домики, в которых роутер может спокойно греться, мигать и думать о тщете оптоволокна.

Кто-то скажет: «Вы делаете коробки».

Нет.

Коробки делают на почте.

Мы делаем визуальную тишину для цифрового пространства.

Эта формулировка появилась случайно. Маркетолог хотел написать «коробка для роутера», но у него заело клавиатуру на слове «премиальный». Продажи выросли на 18%.

Как мы нашли нишу, которой не было, но она уже была занята

В 2021 году мы заметили, что у людей дома есть страшная вещь: роутер.

Он стоит на полке, мигает зелёным, торчит антеннами и напоминает, что цивилизация построена не на красоте, а на DHCP.

Сначала мы хотели делать подставки под ноутбуки. Но там рынок оказался забит людьми, которые уже умели пилить ровно. Потом думали про деревянные органайзеры для косметики, но оказалось, что там покупатель умеет отличать дуб от МДФ и задаёт вопросы.

А роутер — другое дело.

Роутер человек стесняется, но не понимает технически. Это идеальный товар: покупателю неприятно смотреть, но страшно трогать.

Мы сделали первую крышку из фанеры. Просто прямоугольник с прорезью под провод. Поставили на маркетплейс.

Первый отзыв:

Муж сказал, что роутер задохнётся. Я сказала, что зато теперь красиво. Пять звёзд.

Так мы поняли: рынок есть.

Почему крышка для роутера не может стоить 400 рублей

Многие думают: деревянная крышка — это кусок фанеры.

Формально да.

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

Наша крышка стоит 2790 рублей. Покупатель часто пишет:

За что такие деньги? Я сам такую сделаю за вечер.

Мы не спорим. Пусть сделает.

Обычно к третьему часу человек понимает, что у него нет лобзика, к четвёртому — что провод выходит не там, к пятому — что жена не хочет «этот гробик» в гостиной, а к шестому он заказывает нашу крышку и пишет в отзыве:

Дорого, но дешевле развода.

Себестоимость одной крышки — 312 рублей, если считать только дерево, краску и упаковку.

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

Excel говорит: минус 47 рублей с изделия.

Вадим говорит: зато оборот.

Тамара Петровна говорит: «Вы мне оба больше не звоните».

Главная инновация: дырки

На старте мы делали крышки без отверстий. Красиво, монолитно, минимализм.

Потом несколько покупателей написали, что роутер начал греться так, будто качает не интернет, а биткоин 2017 года.

Мы добавили два отверстия.

Продажи не выросли.

Тогда мы добавили семь отверстий и написали: активная пассивная вентиляция.

Продажи выросли.

После этого стало понятно: отверстие работает только тогда, когда у него есть должность.

Два отверстия — это дырки.

Семь отверстий — инженерное решение.

Двенадцать отверстий — линейка Pro.

Восемнадцать отверстий — лимитированная серия для геймеров.

Один покупатель спросил, почему в крышке за 3990 нет кулера. Мы ответили, что это нарушит природную акустику дерева. Он купил две.

Производство в Торжке: фанера, люди и человек, который всё время спрашивает «а оно не сгорит?»

У нас 38 сотрудников.

Столяры пилят. Малярный участок красит. Упаковка заворачивает. Склад ищет то, что вчера сам же положил. Отдел карточек меняет слово «коричневый» на «ореховый мокко», потому что так дороже.

Отдельно есть инженер по тревоге. Он ходит по производству и спрашивает:

— А расстояние до вентиляционных отверстий нормальное?

— А блок питания не будет касаться дерева?

— А почему в инструкции написано «поставьте и радуйтесь»?

Мы его ценим. Он портит настроение, но экономит суды.

Самая тяжёлая часть производства — объяснить мастеру, зачем делать ту же самую крышку, но на 4 мм выше.

Мастер говорит:

— Роутер туда и так входит.

Маркетолог говорит:

— Это новая категория.

Мастер:

— Какая?

Маркетолог:

— Для больших роутеров.

Мастер:

— Так напишите «большая крышка».

Маркетолог:

— Нельзя. Надо «расширенный сценарий домашней сети».

Мастер ушёл курить и с тех пор называет маркетолога «расширенным сценарием».

Конкуренты: люди, которые продают воздух, но в коробке

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

Ошибка.

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

У него нет производства. Нет технолога. Нет стружки в носках. Нет Тамары Петровны.

Зато у него 86 карточек товара.

Одна и та же пластиковая коробка у него называется:

«Органайзер для роутера».

«Короб для проводов».

«Домик для Wi-Fi».

«Полка скрытого монтажа».

«Антистресс для интерьера».

«Подарок мужчине, у которого всё есть, кроме нормального кабель-менеджмента».

Мы сначала возмущались.

Потом сделали то же самое, только из дерева и, как сказал ChatGPT, «с совестью».

Совесть, правда, пришлось включать в себестоимость. Excel сразу начал краснеть ячейками.

Почему маркетплейс всегда прав, даже когда он просто списал деньги

Отдельная мечта производства — попасть в белый список РКН. Не потому что мы распространяем что-то важное, а потому что деревянная крышка для роутера должна открываться даже тогда, когда сам роутер уже философски сомневается в смысле связи. Мы даже подготовили обоснование: изделие обеспечивает гражданам визуальный доступ к устойчивому интернету, снижает тревожность при мигании индикаторов и поддерживает традиционные ценности кабель-менеджмента. Правда, Тамара Петровна сказала, что если нас внесут в белый список, маркетплейс наверняка введёт комиссию за доступность.

А потом РКН сказал, что нужно встроить детектор «на три буквы», и производство встало. Столяры знали много слов на три буквы, но ни одно не подходило для сертификации. Маркетолог принёс список, инженер сказал, что это уже не ТЗ, а исповедь, а Тамара Петровна попросила не произносить его рядом с Excel — тот и так всё время пытается подключиться куда-то мимо кассы. В итоге мы выпустили модель RouterBox Safe Edition: она ничего не определяет, зато выглядит так, будто полностью согласна с генеральной линией, что бы это ни было.

Маркетплейс — это место, где ты продаёшь товар покупателю через платформу, которая уверена, что товар, покупатель и ты — её расходы.

В личном кабинете всё выглядит бодро:

Оборот: 120 млн.

Заказы: растут.

Выкупы: держатся.

Отзывы: в основном хорошие.

Потом открываешь выплаты.

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

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

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

Мы однажды попытались разобраться.

Через сорок минут Вадим сказал:

— Может, это и есть налог на доступ к реальности?

С тех пор не трогаем.

Excel против бизнеса

Главный враг предпринимателя — не конкурент, не покупатель и не маркетплейс.

Главный враг — таблица, в которую честно внесли все расходы.

До таблицы у тебя бизнес.

После таблицы у тебя кружок по деревообработке с отсроченной ликвидацией.

У нас есть файл unit_final_v8_new_real_THIS_ONE.xlsx.

В нём 19 листов.

На первом листе мы зарабатываем.

На втором почти зарабатываем.

На третьем надо немного подождать.

На четвёртом виновата логистика.

На пятом виноват маркетолог.

На шестом виноват Вадим.

На седьмом Тамара Петровна поставила пароль.

Мы не знаем пароль, но подозреваем, что там правда.

Как мы используем ИИ и почему он ни в чём не виноват

Раз в неделю мы спрашиваем у нейросети, какие товары для дома сейчас растут.

Она отвечает:

— Натуральные материалы.

— Скрытое хранение.

— Минимализм.

— Тёплые оттенки.

— Организация проводов.

То есть каждый раз описывает нашу крышку, но так, будто мы ещё не начали её делать.

Однажды мы спросили: «Как увеличить продажи деревянных крышек для роутеров?»

Она предложила:

  1. улучшить карточки;

  2. добавить фотографии в интерьере;

  3. протестировать новые цвета;

  4. работать с отзывами;

  5. выйти на B2B.

Мы прочитали и поняли, что ИИ — это консультант, который не ошибается, потому что говорит то, что уже написано на стене, но дороже.

Тем не менее пункт про B2B нам понравился. Мы сделали коммерческое предложение для отелей: «Скрытие сетевого оборудования в номерах».

Первый отель ответил:

У нас роутеры за шкафом, и всем нормально.

Мы записали это как отказ рынка от премиального сегмента.

Самая дорогая крышка

Наш хит — модель RouterBox Nordic Air Max.

Это деревянная крышка с вентиляцией, кабельным каналом и маленькой полкой сверху.

Полка нужна для свечи, растения или фигурки кота.

В инструкции написано: «Не ставить свечу».

На фотографии стоит свеча.

Покупатель понимает противоречие и чувствует дизайн.

Себестоимость модели — 486 рублей.

Цена — 4290.

Чистая прибыль по Excel — минус 83 рубля.

Но модель даёт нам премиальный образ, хорошие фотографии и возможность сказать на встрече с банком: «У нас есть флагманская линейка».

Банк спросил:

— А прибыль?

Мы показали фотографии.

Кредит пока не одобрили.

Возвраты: отдельный жанр народного творчества

Люди возвращают крышки по разным причинам.

«Не подошла по цвету к стене».

«Кот испугался».

«Муж сказал, что дорого».

«Роутер оказался в прихожей, а крышка красивая, жалко туда ставить».

«Думала, что это сам роутер».

Последний отзыв мы повесили в офисе.

После него маркетолог предложил выпускать пустую крышку с надписью «Wi-Fi inside», чтобы закрыть потребность людей, которым интернет не нужен, но хочется порядка. Intel сначала хотела подать в суд, потом вспомнила про санкции: чтобы судиться с нами, пришлось бы как‑то взаимодействовать с нами — то есть, вопреки санкциям, перестать делать вид, что нас нет. Публичная компания на такой риск не пошла. Сейчас думаем, можно ли написать на упаковке: «бренд, который Intel не смогла запретить».

Технолог сказал, что это уже не производство, а исповедь.

Склад

На складе лежит 14 тысяч крышек.

По документам это актив.

По ощущениям — деревянный укор.

Особенно много осталось цвета «дымчатая олива». Цвет придумали после отчёта о трендах. В жизни он похож на табуретку, которая узнала плохие новости.

Мы пытались продать его как лимитированную серию.

Потом как экостиль.

Потом как «редкий оттенок».

Потом просто сделали скидку 63%.

Покупатель написал:

Цвет странный, но за эти деньги нормально.

Так у нас родилась новая категория: странно, но нормально.

Сейчас думаем делать под неё отдельный бренд.

Деньги

За год мы сделали оборот 120 млн рублей.

Это звучит прилично, пока не спрашивают, сколько осталось.

Осталось понимание.

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

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

В бухгалтерском её нет.

В душе — по-разному.

Вадим считает, что бизнес успешный, потому что нас ещё не закрыли.

Тамара Петровна считает, что закрытие — это не угроза, а инструмент оздоровления.

Я считаю, что мы нашли перспективную нишу, просто ниша пока не нашла наш расчётный счёт.

Что дальше

Мы запускаем новые продукты:

  • крышка для роутера с местом под ТВ-приставку;

  • крышка для роутера с отсеком под провода;

  • крышка для роутера без отверстий, но с тревожным названием Silent Heat;

  • крышка для роутера «для дачи», где всё чуть кривее, зато душевнее;

  • детская крышка с ушками, хотя роутер детям лучше не трогать;

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

Ещё думаем о подписке.

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

Весна — берёза.

Лето — ясень.

Осень — орех.

Зима — просрочка платежа.

Итого

Мы начали с фанеры, а пришли к сложной системе, где дерево притворяется интерьером, маркетплейс притворяется партнёром, Excel притворяется судом, а мы притворяемся, что всё посчитали правильно.

120 млн оборота — это не деньги.

Это громкий звук, с которым бизнес проезжает мимо прибыли.

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

Раньше роутер просто стоял на полке и мигал.

Теперь он стоит в деревянном саркофаге за 4290 рублей и выглядит так, будто у хозяев всё под контролем.

А это, как показывает рынок, уже почти прибыль.

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

Крупные магазины разумеется присутствуют на МП, потому что это реальный канал сбыта. Я не могу расширить комментарий, даже дать оценку этого канала, ибо пишу под реальной учёткой и это пойдёт "информация опасно рядом с ДСП". Но могу порекомендовать перечитать ту часть статьи, где упомянуты "НДС" и "Карго". Потом либо с гуглом, либо с нейронкой попробуйте оценить разницу между "Средним ИП на схеме карго" и "Крупным магазином на электронном УПД".

Заодно можете поискать тут недавние статьи бывшего сотрудника ФНС, @strannik96, где он явно пишет "мы не проверяем ИП потому что это экономически не выгодно, работаем только прямой проверкой по заявлениям". Всё вместе даст хороший контекст. В процессе погружения Вы вероятно поймёте тот кипешь, который развернулся сейчас в АКОРТ и АКИТ вокруг маркетплейсов.

P.S.

Ну и возвращаясь к логистике. Да, в торговле на МП это самое слабое звено. Даже "принудительные скидки маркетплейсов" наверное не так страшны. Нулевое плечо до склада МП разумеется не даёт 1000Р на SKU, но дальше идут:
- хранение на складе. Fashion - товар ярко сезонный, по сути не более 1 квартала в обороте, дальше просто лежит жрёт деньги за аренду. Джинсы и прочий всесезонный ассортимент - это небольшой объём.
- "покатушки", как их называют продавцы, на примерку в ПВЗ и обратно. Здесь уже продавец платит за провоз не целой коробки/паллета товара, а одного упакованного места. Тарифы можете посмотреть на сайтах перевозчиков, DPD, СДЭК, КСЭ ... далее по списку. Это реально не дёшево

У нас на даче с прошлого первомая осталась практика отключения сотовой связи вечером. Уже более года как, примерно с 21 часа вырубают связь. Полностью. Телефон палочки то рисует, но сделать звонок или принять звонок - нельзя. В прошлом году по этой причине мой знакомый отправился на тот свет. Сначала нельзя было прозвониться в 112, звонок скидывался, не проходил. Потом когда все же связь установилась - не передавались координаты, потом опять сбой связи и так по кругу. 2 часа упущенного времени.

*офигеть, я даже нагуглил журнал

номер 333 2000г и номер 445 2002г

не буду давать ссылки, на нейпойми куда (с основного сайта архив давно дропнули), это легко гуглится

рекомендую прям с 333 номера начать, очень забавно

Хороший вопрос, некоторые учёные считают это связано с постепенным изменением формы гортани у человека

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

Почитайте про Соссюра, он буквально бозон Хиггса открыл в лингвистике: сказал что были звуки которые должны были влиять на соседние звуки( и предопределять законы изменения фонетики слов( Зализняк это довел до точной науки)), но они исчезли из речи. Эти теоретические звуки он назвал Ларингалы, а из существование было доказано лишь после его смерти. Кстати они остались в некоторых семитских языках до сих пор

И да, они гортанные

Автор той статьи (тот же @runaway_llm) честно наврал в заголовке ("OpenAI набрала обязательств на $1.4 трлн"), когда как в оригинале Форбс сказано, что Альтман сказал, что OpenAI "рассматривает траты в размере 1,4 трлн долл. в следующие 8 лет". То есть не заняли, а думают занять, и не уже, а за восемь лет. А наши боевые хабракомментаторы разносят эту чушь.

Изменено: там в комментариях на это таки обратили внимание

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

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

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

Помните, в феврале был чел, который раз в два дня пилил статьи про то, как он ИИ агентов заставил в экономику играть, как он ИИ-деда написал для дурения мошенников + чё-то ещё... Куча лайков у статей было, выглядело правдоподобно, хоть и был нейрозапах в тексте (иногда прям совсем палевный). Народ в комментариях попросил предъявить документы, после чего чел слился со словами "Да, это на самом деле был художественный вымысел, но идея-то реальная!". Статьи поскрывал. Там даже компания потом извинялась.
Потом как минимум один раз видел недавно нейроночную статью низкого технического уровня про ТСПУ и XHTTP (https://habr.com/ru/articles/1009542/), она тоже была в топе (300+ пунктов), и на неё тоже ругались. Там откровенная бредятина. Складывается впечатление, что кому-то лишь бы похайпить на теме.
Потом вот ещё вспоминается из недавнего - https://habr.com/ru/articles/1015380/. Школьник нанейронил галюнов, выложил, собрал 122 пункта за вброс по большей части (разобрано на ntc.party в теме zapret2). Тут начинает прослеживаться корреляция между "статья сильно пахнет нейронкой" и "автор не шарит и/или врёт".

В соседней статье (150 пунктов, что ужасно) у этого коммента под 200 пунктов: https://habr.com/ru/articles/1017158/comments/#comment_29749030
Вы только полюбуйтесь на статью:

Я сетевой инженер, и последние пару лет мне пришлось разобраться в этой теме значительно глубже, чем хотелось бы. Расскажу, какие именно методы использует оператор, чтобы определить VPN-соединение — от простых до тех, что обходятся государствам в миллиарды рублей.

И дальше идёт НЕОБРАБОТАННЫЙ поток слов из какого-то датацентра. Это называется "Мулентий, просветитель крестьянства, выложил чат с нейронкой" на насущную тему и хайпует. Текст пестрит хрестоматийными нейроприёмчиками (см. https://habr.com/ru/articles/1009542/comments/#comment_29657184 для примеров). А значит, нас снова могут обманывать, раз уж текст был залит "как есть". Ну и при вглядывании в текст выясняется, что там полная чушь! То OpenVPN притворяется HTTPS, то про uTLS нейронка забыла, то SOCKS5 в ряд с VLESS поставила. Ну и куча мелких моментов, которые просто максимально криво и/или сомнительно описаны.

И в этой статье я вижу абсолютно ту же структуру текста про VPN, понимаю, что и тут автор просто доверился бредогенератору и выложил нам на съеденье. Вот почему такая ненависть. Надоели! К тем, кто делает нормально, претензий нет и не будет.

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

1
23 ...

Информация

В рейтинге
1 772-й
Зарегистрирован
Активность