Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🎅1🎄1💅1
Добрый субботний вечер, уважаемые подписчики 😊
Сегодня практический пример, как использовать инструменты типа DTrace. Для более широкого адопшена информации среди подписчиков возьмем аналогичный инструмент в Linux, который называется bpftrace. bpftrace работает поверх eBPF и предоставляет DSL, похожий на DTrace, с помощью которого описываются замеры.
Как пример возьмем вопрос: а что делает процесс, когда он не исполняется? Такой вопрос часто возникает, когда по какой-то причине система не может обслуживать больше клиентов, но вычислительные ресурсы позволяют это сделать. В этот момент мы часто слышим: стоит в диск, стоит в сеть и прочее, но при этом вопрос, а во что конкретно стоим, может поставить нас в тупик. Поэтому это выглядит хорошим примером для того, чтобы показать, как сделать такой скрипт на bpftrace.
На первой картинке — короткий код скрипта, на второй — результат исполнения.
Начнем с первой.
Сначала нужно явно сформулировать, что мы хотим увидеть: время, проводимое процессом, когда он вытеснен планировщиком (здесь и далее речь про CPU-планировщик или task scheduler); состояние процесса, когда он был вытеснен; агрегат суммы замеров времени, проведенного в этом состоянии. Процесс вытесняется, когда на исполнение назначается другой процесс вместо текущего. Поэтому нас интересует одно событие: переключение планировщика задач, в ядре Linux это выражено как событие
Поэтому, сутево, нам нужно сделать следующее: ловить моменты постановки/снятия на исполнение, брать стек-трейс в момент снятия и считать время, прошедшее с момента снятия до момента постановки на исполнение. Далее агрегировать это и вывести на консоль.
Коротко про пробы (probe) — это специальные отсечки, расставленные в коде, которые указывают на то, что произошло какое-то событие. Пробы могут быть уровня ядра —
В нашем случае мы регистрируем пробу
В строке 5 — проверка, что произошло переключение, где
В строке 10 — проверка, является ли это событие событием постановки на исполнение
Как результат, на второй картинке мы видим отсортированный по возрастанию список стек-трейсов с суммарным временем, в них проведенным. Интересующий нас процесс висит в epoll, что говорит нам о том, что он просто ждет новых соединений и с ним все в порядке =)
- @tthread
Сегодня практический пример, как использовать инструменты типа DTrace. Для более широкого адопшена информации среди подписчиков возьмем аналогичный инструмент в Linux, который называется bpftrace. bpftrace работает поверх eBPF и предоставляет DSL, похожий на DTrace, с помощью которого описываются замеры.
Как пример возьмем вопрос: а что делает процесс, когда он не исполняется? Такой вопрос часто возникает, когда по какой-то причине система не может обслуживать больше клиентов, но вычислительные ресурсы позволяют это сделать. В этот момент мы часто слышим: стоит в диск, стоит в сеть и прочее, но при этом вопрос, а во что конкретно стоим, может поставить нас в тупик. Поэтому это выглядит хорошим примером для того, чтобы показать, как сделать такой скрипт на bpftrace.
На первой картинке — короткий код скрипта, на второй — результат исполнения.
Начнем с первой.
Сначала нужно явно сформулировать, что мы хотим увидеть: время, проводимое процессом, когда он вытеснен планировщиком (здесь и далее речь про CPU-планировщик или task scheduler); состояние процесса, когда он был вытеснен; агрегат суммы замеров времени, проведенного в этом состоянии. Процесс вытесняется, когда на исполнение назначается другой процесс вместо текущего. Поэтому нас интересует одно событие: переключение планировщика задач, в ядре Linux это выражено как событие
tracepoint::sched::sched_switch. Состояние характеризуется стек-трейсом исполнения.Поэтому, сутево, нам нужно сделать следующее: ловить моменты постановки/снятия на исполнение, брать стек-трейс в момент снятия и считать время, прошедшее с момента снятия до момента постановки на исполнение. Далее агрегировать это и вывести на консоль.
Коротко про пробы (probe) — это специальные отсечки, расставленные в коде, которые указывают на то, что произошло какое-то событие. Пробы могут быть уровня ядра —
kprobes, и уровня пользовательского приложения — uprobe. Регистрируя в скрипте эти пробы и их обработчики, можно задавать программу для обработки каждого события. У каждой пробы есть аргументы, доступные через args->, можно объявить переменные через @name и использовать различные builtin, которые, как в данном примере, используются для взятия текущего времени через nsecs и текущего стека вызова функций ядра через kstack.В нашем случае мы регистрируем пробу
tracepoint::sched::sched_switch, и в момент срабатывания мы вычисляем, когда наблюдаемый процесс вышел из исполнения CPU-шедулера и когда обратно был взят. Это описывается в коде в строках с 5 по 13.
if (args->prev_pid == 1234) {
@start = nsecs;
@kstack = kstack;
}
В строке 5 — проверка, что произошло переключение, где
prev_pid == 1234, это значит, что pid 1234 был снят с исполнения. В строке 6 мы запоминаем в переменную @start таймстемп в наносекундах, а в строке 7 запоминаем текущее состояние стека вызовов функций ядра (то, на чем остановилось исполнение в момент вытеснения с шедулера; дальше оно меняться не будет, поскольку код не исполняется).
if (args->next_pid == 1234 && @start) {
@offcpu[@kstack] = sum(nsecs - @start);
}
В строке 10 — проверка, является ли это событие событием постановки на исполнение
pid 1234. И если это так, то рассчитан ли у нас для него @start, или это первое событие с момента начала наблюдений. В строке 11 мы запоминаем в структуру map переменной @offcpu для этого стектрейса обновленный агрегат суммы всех значений дополненный текущей разницей nsecs - @start (суммируем все замеры для текущего стек-трейса и добавляем новый).Как результат, на второй картинке мы видим отсортированный по возрастанию список стек-трейсов с суммарным временем, в них проведенным. Интересующий нас процесс висит в epoll, что говорит нам о том, что он просто ждет новых соединений и с ним все в порядке =)
- @tthread
👍4☃2🤓2🎅2🎄2❤1
Про герметичность окружения и AI Coding.
Здорово, что сейчас лучшие практики, которые раньше вызывали споры, получают подтверждение реальной пользой. То, что раньше считалось делом вкуса, сейчас — очевидная необходимость.
И что интересно: то, что хорошо для AI-coding-агентов, оказывается удобным и для людей.
Чтобы агент хорошо работал, проверьте, что у вас проект герметичный: содержит все необходимые зависимости, код, документацию и тесты, доступные локально. Это удобно с точки зрения локальной разработки и необходимо для эффективной работы агентов.
Недавно разговаривал с товарищем, и в голову пришёл такой пример: герметичность — это когда программист садится в поезд Москва–Петушки с ноутбуком, на котором установлено нужное окружение, склонена репа, есть необходимая документация, как по стандартной библиотеке, так и специфичная для домена, проверяющие референс-тесты, в общем всё, что ему нужно, кроме внешнего доступа. А на конечной станции у него получается готовый продукт — делать же в поезде больше нечего =)
Также стоит «снаряжать» и агентов, такое структурирование помогает иметь всё под рукой.
Частным случаем герметичности является монорепа — способ организации кода, который на нашей практике зачастую оказывался наиболее эффективным и практичным.
- @tthread
Здорово, что сейчас лучшие практики, которые раньше вызывали споры, получают подтверждение реальной пользой. То, что раньше считалось делом вкуса, сейчас — очевидная необходимость.
И что интересно: то, что хорошо для AI-coding-агентов, оказывается удобным и для людей.
Чтобы агент хорошо работал, проверьте, что у вас проект герметичный: содержит все необходимые зависимости, код, документацию и тесты, доступные локально. Это удобно с точки зрения локальной разработки и необходимо для эффективной работы агентов.
Недавно разговаривал с товарищем, и в голову пришёл такой пример: герметичность — это когда программист садится в поезд Москва–Петушки с ноутбуком, на котором установлено нужное окружение, склонена репа, есть необходимая документация, как по стандартной библиотеке, так и специфичная для домена, проверяющие референс-тесты, в общем всё, что ему нужно, кроме внешнего доступа. А на конечной станции у него получается готовый продукт — делать же в поезде больше нечего =)
Также стоит «снаряжать» и агентов, такое структурирование помогает иметь всё под рукой.
Частным случаем герметичности является монорепа — способ организации кода, который на нашей практике зачастую оказывался наиболее эффективным и практичным.
- @tthread
❤2👍2☃1🎅1🎄1
Шампанское, бенгальские огни, мандарины и ёлка. Новый год совсем близко и поэтому разговор пойдет про шампанское: что может называться шампанским, что – игристым, и что такое традиционный метод производства.
Традиции шампанских вин берут своё начало во французском регионе с одноименным названием – Шампань. Именно там появился метод, при котором из собранного винограда сначала производят базовое вино (ван клер), а затем, с помощью добавления тиражного ликера запускают вторичное брожение в бутылке с последующей выдержкой на осадке. Этот способ называется традиционным методом.
Таким методом производят креманы, кавы, франчакорты и некоторые российские игристые вина, исторически именуемые «российским шампанским». И только вина из региона Шампань имеют право называться шампанскими. Просекко к традиционному методу не относится, как и петнаты, которые производятся иным способом, их было бы правильно называть просто игристыми.
Чтобы блеснуть за новогодним столом: "Шампанскими винами могут называться игристые вина из Франции региона Шампань, изготовленные традиционным методом из восьми разрешенных сортов винограда: шардоне, пино-нуар, менье, пино-блан, пти-мелье, арбан, пино-гри и с недавних пор вольтис".
Сегодня интерес к шампанским винам активно растёт. Виноделы становятся настоящими звездами, а внимание всё чаще привлекают небольшие хозяйства с их уникальным прочтением терруара и сортов. Они способны глубже концентрироваться на деталях и создавать по-настоящему штучный и уникальный продукт.
Маленькие команды, сверхвысокий профессионализм, сфокусированность на идее и преданность своему делу – ничего лишнего, только необходимое для того, чтобы делать лучший в мире продукт.
Желаем вам в новом году интересных вызовов, новых знаний и прекрасного вина в компании близких! Добра, здоровья и прекрасного настроения.
PS: бокалы флюте хоть и могут показаться предназначенными для игристых вин, но они не раскрывают вино, поэтому берите бордосский или бургундский бокалы и получайте удовольствие от полных глотков!
PPS: теперь вы можете назвать себя настоящим винным снобом и смело брюжжать про каву =)
Хорошего нового года, друзья! - @tthread
Please open Telegram to view this post
VIEW IN TELEGRAM
🎄8☃3🎅2❤1
Мы находимся сейчас в интересном моменте времени – с одной стороны, представление о том, что LLM-ки должны фундаментально изменить программирование постепенно становится общим консенсусом; с другой стороны, никто не знает, как именно будет выглядеть это "новое программирование", и тем более как туда прийти.
Приходится самостоятельно, методом проб и ошибок, находить какие-то очертания этого нового мира. И сегодня хочу поделиться одним из них: регенерируемость исходного кода.
Мы привыкли к тому, что код это центральный стабильный артефакт – он медленно пишется и постепенно меняется. Но для кода, который пишут агенты, это плохо подходит: они быстро пишут с нуля большие законченные куски, и они плохо инкрементально работают с кодом (слишком склонны добавлять код, а не менять/удалять его). Отсюда следует то, что на код нужно начинать смотреть как на квази-стабильный регенерируемый артефакт: точно так же, как мы смотрим сейчас на результат работы компилятора.
Сразу возникает много вопросов: что должно быть исходным кодом для исходного кода, как именно нужно его организовывать и по каким правилам с ним работать? Как решать вопрос возникающей инверсии зависимостей – где спецификация следующей версии исходного кода может начать зависеть от текущей версии исходного кода? Насколько all in нужно идти в идею агентов и регенерации, и насколько ее можно совместить с тем, как мы привыкли работать с кодом сейчас?
Есть идеи, как правильно отвечать на эти вопросы – но делать это без серьезного подтверждения моих гипотез будет преждевременно. Поэтому пока просто скажу, что очень рад тому, что AI заставляет больше и глубже думать о программировании :-)
Всех с наступившим Новым Годом и Рождеством!
– @pgregory
Приходится самостоятельно, методом проб и ошибок, находить какие-то очертания этого нового мира. И сегодня хочу поделиться одним из них: регенерируемость исходного кода.
Мы привыкли к тому, что код это центральный стабильный артефакт – он медленно пишется и постепенно меняется. Но для кода, который пишут агенты, это плохо подходит: они быстро пишут с нуля большие законченные куски, и они плохо инкрементально работают с кодом (слишком склонны добавлять код, а не менять/удалять его). Отсюда следует то, что на код нужно начинать смотреть как на квази-стабильный регенерируемый артефакт: точно так же, как мы смотрим сейчас на результат работы компилятора.
Сразу возникает много вопросов: что должно быть исходным кодом для исходного кода, как именно нужно его организовывать и по каким правилам с ним работать? Как решать вопрос возникающей инверсии зависимостей – где спецификация следующей версии исходного кода может начать зависеть от текущей версии исходного кода? Насколько all in нужно идти в идею агентов и регенерации, и насколько ее можно совместить с тем, как мы привыкли работать с кодом сейчас?
Есть идеи, как правильно отвечать на эти вопросы – но делать это без серьезного подтверждения моих гипотез будет преждевременно. Поэтому пока просто скажу, что очень рад тому, что AI заставляет больше и глубже думать о программировании :-)
Всех с наступившим Новым Годом и Рождеством!
– @pgregory
🎅5🎄4☃3
Drawbridge – наш первый open source релиз
У любой компании есть внутренние сервисы – управление проектами, работа с исходным кодом, дашборды и бесконечные админки. Их много, они критичны с точки зрения безопасности, и есть околонулевая уверенность в безопасности каждого из них в любой момент времени.
Как предоставить сотрудникам безопасный доступ к этим сервисам? Стандартный (не-)ответ – VPN. Какой именно протокол выбрать, что установить на сервере, что устанавливать сотрудникам на всем зоопарке их устройств, каким образом заводить и синхронизировать учетные записи, что отвечать поддержке на "у меня отвалился VPN"? Что делать, если хостинг или интернет-провайдер начал блокировать ваш VPN?
Drawbridge – это минималистичный HTTPS реверс-прокси, обеспечивающий безопасный доступ ко внутренним сервисам без VPN. Drawbridge гарантирует транспортную безопасность (TLS), аутентификацию пользователей (WebAuthn) и авторизацию доступа к каждому сервису (user whitelist).
Главное отличие Drawbridge от всех остальных проектов с похожими целями – фокус на безопасности. Минимальный набор фич, минимальная конфигурация – и главное, минимальный объем кода (1 файл в ~1200 строк на текущий момент) с минимумом зависимостей. Цель такого минимализма – возможность полного аудита проекта перед внедрением и отсутствие необходимости обновлять версии (и доверять новому коду и его авторам).
Статус – на текущий момент, альфа, релиз для энтузиастов. Учитывая минимализм, думаю что стабильный релиз не за горами.
https://github.com/CoreInfraAI/drawbridge
– @pgregory
У любой компании есть внутренние сервисы – управление проектами, работа с исходным кодом, дашборды и бесконечные админки. Их много, они критичны с точки зрения безопасности, и есть околонулевая уверенность в безопасности каждого из них в любой момент времени.
Как предоставить сотрудникам безопасный доступ к этим сервисам? Стандартный (не-)ответ – VPN. Какой именно протокол выбрать, что установить на сервере, что устанавливать сотрудникам на всем зоопарке их устройств, каким образом заводить и синхронизировать учетные записи, что отвечать поддержке на "у меня отвалился VPN"? Что делать, если хостинг или интернет-провайдер начал блокировать ваш VPN?
Drawbridge – это минималистичный HTTPS реверс-прокси, обеспечивающий безопасный доступ ко внутренним сервисам без VPN. Drawbridge гарантирует транспортную безопасность (TLS), аутентификацию пользователей (WebAuthn) и авторизацию доступа к каждому сервису (user whitelist).
Главное отличие Drawbridge от всех остальных проектов с похожими целями – фокус на безопасности. Минимальный набор фич, минимальная конфигурация – и главное, минимальный объем кода (1 файл в ~1200 строк на текущий момент) с минимумом зависимостей. Цель такого минимализма – возможность полного аудита проекта перед внедрением и отсутствие необходимости обновлять версии (и доверять новому коду и его авторам).
Статус – на текущий момент, альфа, релиз для энтузиастов. Учитывая минимализм, думаю что стабильный релиз не за горами.
https://github.com/CoreInfraAI/drawbridge
– @pgregory
🔥9🎅3☃2🎄2👍1
Привет! Нас в этом канале уже чуть больше 100 человек.
Самое время представиться и рассказать, кто мы такие, тем, кто оказался здесь помимо наших друзей и знакомых =)
Мы — глубоко техническая R&D и инженерная команда. В прошлом, приходилось решать сложные задачи и делать масштабные запуски ВКонтакте, в Яндексе и Транзасе, на различных ролях — как в разработке, так и в менеджменте.
С 2024 года мы строим свою продуктовую и технологическую компанию в Санкт-Петербурге.
Наш главный фокус — синтез программ и механизмы верификации. Программирование будет меняться, нужен большой скачок вперед, который позволит создавать более качественные и корректные системы меньшими ресурсами, не быть заложниками legacy и быстро менять большие системы. Мы строим Продукт, который объединяет AI и верификацию и предлагает новый способ создания программ.
По пути к большой цели мы релизим продукты и сервисы, которыми сами пользуемся и которыми считаем полезным поделиться.
В канале мы рассказываем свою историю, анонсируем запуски, комментируем интересные статьи, рассуждаем о будущем программирования — и не только.
Авторы этого канала, они же основатели компании:
— мой друг и коллега Григорий Петросян, CTO CoreInfra
— я, Илья Щербак, CEO CoreInfra.
Илья и Гриша.
Самое время представиться и рассказать, кто мы такие, тем, кто оказался здесь помимо наших друзей и знакомых =)
Мы — глубоко техническая R&D и инженерная команда. В прошлом, приходилось решать сложные задачи и делать масштабные запуски ВКонтакте, в Яндексе и Транзасе, на различных ролях — как в разработке, так и в менеджменте.
С 2024 года мы строим свою продуктовую и технологическую компанию в Санкт-Петербурге.
Наш главный фокус — синтез программ и механизмы верификации. Программирование будет меняться, нужен большой скачок вперед, который позволит создавать более качественные и корректные системы меньшими ресурсами, не быть заложниками legacy и быстро менять большие системы. Мы строим Продукт, который объединяет AI и верификацию и предлагает новый способ создания программ.
По пути к большой цели мы релизим продукты и сервисы, которыми сами пользуемся и которыми считаем полезным поделиться.
В канале мы рассказываем свою историю, анонсируем запуски, комментируем интересные статьи, рассуждаем о будущем программирования — и не только.
Авторы этого канала, они же основатели компании:
— мой друг и коллега Григорий Петросян, CTO CoreInfra
— я, Илья Щербак, CEO CoreInfra.
Илья и Гриша.
🔥25☃4🎄3🎅2👍1😈1
Недавно ребята из Anthropic выложили свое старое тестовое задание – «оптимизировать вычислительное ядро под специализированную архитектуру, имея на руках симулятор». Интересный проект сразу с нескольких точек зрения.
Во-первых, это просто классное тестовое задание. Инфровое, к тому же.
Во-вторых, это хороший пример герметичной системы и четко специфицированной цели с измеряемой метрикой – «минимизировать количество аппаратных циклов». Baseline: 147734 цикла.
И, наконец, это демонстрация реальных возможностей агентов сегодня. Квалифицированный программист, потратив время и погрузившись в задачу – 2262 цикла, плюс понимание куда можно копать дальше. Запущенный им агент, за вечер – 1333 цикла. Лучший на сегодня результат, полученный в публичном соревновании – 1001 цикл.
– @pgregory
Во-первых, это просто классное тестовое задание. Инфровое, к тому же.
Во-вторых, это хороший пример герметичной системы и четко специфицированной цели с измеряемой метрикой – «минимизировать количество аппаратных циклов». Baseline: 147734 цикла.
И, наконец, это демонстрация реальных возможностей агентов сегодня. Квалифицированный программист, потратив время и погрузившись в задачу – 2262 цикла, плюс понимание куда можно копать дальше. Запущенный им агент, за вечер – 1333 цикла. Лучший на сегодня результат, полученный в публичном соревновании – 1001 цикл.
– @pgregory
GitHub
GitHub - anthropics/original_performance_takehome: Anthropic's original performance take-home, now open for you to try!
Anthropic's original performance take-home, now open for you to try! - anthropics/original_performance_takehome
🔥9🤔2☃1🤩1🎅1🎄1
Друзья, микро-анонс – в пятницу в 14:30 буду рассказывать про software defined fuzzing на ТБ Форуме. Детали доклада спойлерить не буду – но должно получиться интересно и с упором на практику.
https://www.tbforum.ru/2026/program/rbpo-mk
– @pgregory
https://www.tbforum.ru/2026/program/rbpo-mk
– @pgregory
🔥5👍2☃1🎅1🎄1
Сегодня технический запуск CoreInfra AI Hub.
На круг друзей мы анонсируем наш сервис для доступа к фронтирным моделям и кодинг-агентам.
Механика супер простая:
создание кабинета в один клик, токен доступа уже готов, осталось пополнить баланс и начинать работать.
На текущий момент мы ограничились поддержкой Codex. Claude Code coming soon.
Разобраться супер просто, мы подготовили персонифицированную инструкцию.
Заходите познакомиться с сервисом и оставляйте фидбек.
https://hub.coreinfra.ai
Команда CoreInfra.
На круг друзей мы анонсируем наш сервис для доступа к фронтирным моделям и кодинг-агентам.
Механика супер простая:
создание кабинета в один клик, токен доступа уже готов, осталось пополнить баланс и начинать работать.
На текущий момент мы ограничились поддержкой Codex. Claude Code coming soon.
Разобраться супер просто, мы подготовили персонифицированную инструкцию.
Заходите познакомиться с сервисом и оставляйте фидбек.
https://hub.coreinfra.ai
Команда CoreInfra.
🎉12🔥5☃1🎅1🎄1
Я достаточно давно перестал пользоваться ChatGPT в интерфейсе веб-чата. Нет минусов использовать Codex и Claude Code для всего, а не только для программирования.
С использованием агента флоу получается очень простым: у меня есть директория, где я веду различные ресерчи в отдельных подпапках, делаю markdown документы, туда я могу накидать скриншотов, скинуть PDF-документ со счетом и т.д. В общем, пользуюсь всеми преимуществами локального окружения.
Это позволяет получить лучший результат по сравнению с веб-чатом, но и накладывает необходимость думать над harness. Какие есть инструменты у агента, как он ими может управлять, правильно ли все структурировано. Агенты хорошо справляются при one-shot, а чтобы повысить шанс на это, нужно подготовленное окружение с настроенными тулами и проработанный
Главное, что я получаю, это постепенное заполнение нужным контекстом и накопительный эффект. Я постепенно улучшаю обвязку, мои ресерчи становятся более структурированы, тулы становятся более удобными для агентов, а время на формулирование вопроса и задание рамок снижается.
Когда это длительный проект, то я работаю над ним, как над кодом, включая версионирование в git.
Если задуматься, то любой ресерч очень похож на работу с кодом. Нужно сформулировать проблему, сделать спецификацию на результат, продумать, как валидировать. Ничего не напоминает?
Everything is code, agent is the new computer.
– @tthread
С использованием агента флоу получается очень простым: у меня есть директория, где я веду различные ресерчи в отдельных подпапках, делаю markdown документы, туда я могу накидать скриншотов, скинуть PDF-документ со счетом и т.д. В общем, пользуюсь всеми преимуществами локального окружения.
Это позволяет получить лучший результат по сравнению с веб-чатом, но и накладывает необходимость думать над harness. Какие есть инструменты у агента, как он ими может управлять, правильно ли все структурировано. Агенты хорошо справляются при one-shot, а чтобы повысить шанс на это, нужно подготовленное окружение с настроенными тулами и проработанный
AGENTS.md который задает фрейм.Главное, что я получаю, это постепенное заполнение нужным контекстом и накопительный эффект. Я постепенно улучшаю обвязку, мои ресерчи становятся более структурированы, тулы становятся более удобными для агентов, а время на формулирование вопроса и задание рамок снижается.
Когда это длительный проект, то я работаю над ним, как над кодом, включая версионирование в git.
Если задуматься, то любой ресерч очень похож на работу с кодом. Нужно сформулировать проблему, сделать спецификацию на результат, продумать, как валидировать. Ничего не напоминает?
Everything is code, agent is the new computer.
– @tthread
🔥3🤔3☃1❤1👍1🎅1🎄1
Мега годный тред в X. Пост от Криса Латтнера (создатель LLVM, Clang, Swift) про Claude C Compiler.
И детальный write-up в статье от автора:
https://www.modular.com/blog/the-claude-c-compiler-what-it-reveals-about-the-future-of-software
И детальный write-up в статье от автора:
https://www.modular.com/blog/the-claude-c-compiler-what-it-reveals-about-the-future-of-software
❤2☃1👀1🎅1🎄1
Сегодня рассказываю про небольшую, но важную часть в CoreInfra AI Hub.
Главный инструмент управления ограниченным ресурсом — не делать вредного и не делать лишнего. Поэтому ко всем фичам мы подходим максимально внимательно, с точки зрения того, что мы даем пользователю и что требуем взамен.
Регистрация и авторизация — мы решили не подключать авторизацию Яндекс или Гугл потому что это не нужно, мы не хотим передавать информацию о наших пользователях третьей стороне, не хотим трекать и следить за пользователем, поэтому нет и трекеров, нет и сторонней авторизации.
Регистрация проходит через proof of work и не требует от пользователя никаких данных, нужно только нажать на кнопку. Для того чтобы авторизоваться на другом устройстве и сохранить доступ к профилю — достаточно пройти по ссылке или QR коду в созданном аккаунте.
Keep it simple.
– @tthread
Главный инструмент управления ограниченным ресурсом — не делать вредного и не делать лишнего. Поэтому ко всем фичам мы подходим максимально внимательно, с точки зрения того, что мы даем пользователю и что требуем взамен.
Регистрация и авторизация — мы решили не подключать авторизацию Яндекс или Гугл потому что это не нужно, мы не хотим передавать информацию о наших пользователях третьей стороне, не хотим трекать и следить за пользователем, поэтому нет и трекеров, нет и сторонней авторизации.
Регистрация проходит через proof of work и не требует от пользователя никаких данных, нужно только нажать на кнопку. Для того чтобы авторизоваться на другом устройстве и сохранить доступ к профилю — достаточно пройти по ссылке или QR коду в созданном аккаунте.
Keep it simple.
– @tthread
👍11❤3🎄2☃1🤩1🏆1🦄1
Модель оплаты, поговорим про деньги и как начать пользоваться AI Hub для программирования.
Подписка и pay as you go отличается для сервиса, кто зарабатывает деньги и для пользователя, который этим сервисом пользуется.
Сложно сказать, что однозначно лучше для обоих сторон, у каждого метода оплаты есть свои преимущества, как для одной, так и для другой стороны.
Для бизнеса подписка означает регулярные гарантированные платежи и позволяет более прогнозируемо считать ARR и другие финансовые метрики. Для пользователя — это способ установить порог трат, психологически для него комфортный и позволяет за счет неравномерности использования между пользователями иметь более выгодную цену.
Pay as you go более прозрачный для обоих сторон, поэтому мы решили с него начать. Этот способ максимально понятен, как для компаний так и для частных пользователей: не нужно платить за тех, кто не использует, не нужно платить когда ты не используешь.
Сейчас наша модель очень простая, пользователь пополняет баланс и деньги списываются по мере использования. Закинул и используешь.
Подписка это оптимизация, у нас будут появляться подписочные и комбинированные тарифы, но сейчас начинаем с простого и понятно для всех способа.
Напомню, что создать аккаунт можно в один клик по ссылке https://hub.coreinfra.ai
PS:
Это принцип, которого мы придерживаемся — даем то, что можем гарантировать.
- @tthread
Подписка и pay as you go отличается для сервиса, кто зарабатывает деньги и для пользователя, который этим сервисом пользуется.
Сложно сказать, что однозначно лучше для обоих сторон, у каждого метода оплаты есть свои преимущества, как для одной, так и для другой стороны.
Для бизнеса подписка означает регулярные гарантированные платежи и позволяет более прогнозируемо считать ARR и другие финансовые метрики. Для пользователя — это способ установить порог трат, психологически для него комфортный и позволяет за счет неравномерности использования между пользователями иметь более выгодную цену.
Pay as you go более прозрачный для обоих сторон, поэтому мы решили с него начать. Этот способ максимально понятен, как для компаний так и для частных пользователей: не нужно платить за тех, кто не использует, не нужно платить когда ты не используешь.
Сейчас наша модель очень простая, пользователь пополняет баланс и деньги списываются по мере использования. Закинул и используешь.
Подписка это оптимизация, у нас будут появляться подписочные и комбинированные тарифы, но сейчас начинаем с простого и понятно для всех способа.
Напомню, что создать аккаунт можно в один клик по ссылке https://hub.coreinfra.ai
PS:
Это принцип, которого мы придерживаемся — даем то, что можем гарантировать.
- @tthread
👍4🔥3☃1🎅1🎄1