Обновить

Моя лента

Тип публикации
Порог рейтинга
Уровень сложности
Предупреждение
Войдите или зарегистрируйтесь, чтобы настроить фильтры
Новость

Представлен открытый проект Emscripten 6.0 — компилятор из C/C++ в WebAssembly

Время на прочтение2 мин
Охват и читатели8.3K

Состоялся выпуск открытого проекта Emscripten 6.0. Это решение позволяет компилировать код на C/C++ и других языках, для которых имеются фронтенды на базе LLVM, в универсальный низкоуровневый промежуточный код WebAssembly. Исходный код проекта опубликован на GitHub под лицензией MIT.

Читать далее
Статья

Anti-corruption Layer на C#: три шва на проекте миграции с Rails

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели11K

Anti-corruption layer в учебниках выглядит как одна аккуратная коробка между чужой системой и вашей: всё чужое остаётся снаружи, внутрь проходит только то, что уже переведено на язык вашего домена. Граница ровная, как по линейке. Почти за год, что мы вытесняли 10-летний Rails-монолит на .NET, такой ровной границы я не увидел ни разу – ни у себя, ни, кажется, у кого-то ещё на живом проекте.

Понятно это стало в первую же неделю. Мы открыли таблицу exercises и нашли в одной JSONB-колонке 14 разных форм одного типа задания, слепленных за 10 лет. Смаппить это в новые DTO как есть – и новая модель отрастит ровно ту же форму, что у Rails. “Нужен ACL”, подумали мы. Только, как выяснилось на практике, не один.

Читать далее
Статья

Иллюзия легких денег: почему американский API не быстрее активов, торгуемых на Московской бирже

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели13K

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

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

В качестве поводыря я хотел использовать внешний рынок и API американского поставщика данных для того чтобы получать информацию о:

📍 XAU/USD — Gold Spot / US Dollar
📍 EUR/USD — EUR/USD
📍 BTC/USD — Bitcoin to US Dollar (котировки выбранной поставщиком биржи)

А саму торговлю осуществлять на фьючерсах Мосбиржи:

📍 GDM6 — фьючерсный контракт на золото
📍 GNM6 — фьючерсный контракт на золото (мини)
📍 EDM6 — фьючерсный контракт на курс евро‑доллар США
📍 IBM6 — фьючерсный контракт на акции IBIT iShares Bitcoin Trust ETF
📍 BTM6 — фьючерсный контракт на Индекс МосБиржи Биткоина

Сразу уточню что я не пытался строить высокочастотную торговую систему или конкурировать с маркет‑мейкером. Я частное лицо, НЕ представитель фонда или брокера, а работаю через обычный брокерский API, задержка до меня в город Пермь — несколько секунд (иногда больше).

В моей идее очень сильно интересовала практическая сторона — существует ли на Мосбирже задержка в секунду или больше, которые можно использовать для алгоритмической торговли через инфраструктуру российского брокера?

Синхронизированы ли цены разных площадок?
Новость

Инженеры Дьюкского университета представили робота Argus с 20 телескопическими конечностями

Время на прочтение1 мин
Охват и читатели12K

Инженеры Дьюкского университета представили Argus — робота без передней и задней частей с 20 модульными телескопическими конечностями, расходящимися от ядра в центре. Робототехники утверждают, что на самом деле важно не то, как выглядит робот, а то, насколько хорошо он может функционировать в пространстве.

Читать далее
Пост

Ваш худший кошмар, или простой regex, который удивит даже опытных программистов.

re.match(r"^abc$", "abc\n") # python
/^abc$/.test("abc\n") // Javascript
preg_match("/^abc$/", "abc\n"); // PHP

Не читайте дальше, попробуйте угадать какой вывод будет у каждого из вариантов?

False?

True ?

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

False
True
False

Живите с этим :)

Всё дело в том, что в PCRE $ означает не "конец строки", а "конец строки, или позиция перед \n в конце строки". А в ECMAScript это не так.

Лично я думал, что должно быть False, но регулярные выражения продолжают меня удивлять спустя много лет.

Правильный regex для точного совпадения с концом строки:

re.match(r"^abc\Z", "abc\n")
// javascript идеален, нечего исправлять :)
preg_match("/^abc\p/", "abc\n")

== false

Теги:
+8
Комментарии3
Статья

Как устроен ГИГАХРУЩ: клеточный мир, WebGL-рейкастер и A-Life без движка

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели11K

В прошлой статье про ГИГАХРУЩ мы показали игру как живой weird-проект: браузерный survival horror / ARPG без движка, ассетов и спокойной жизни.

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

Разберем, как ГИГАХРУЩ устроен под бетоном: один активный клеточный этаж, typed arrays, плоские сущности, WebGL raycasting, A-Life, самосбор как мутация мира, сохранение, ограничения и MESH PASS как render-only объем поверх клеточной симуляции.

Читать дальше
Новость

По сообщениям, выпуск видеокарт NVIDIA RTX 50 SUPER cнова на верном пути

Время на прочтение2 мин
Охват и читатели11K

1. Потенциальное обновление серии Nvidia Blackwell 50 до версии «Super» уже почти год обсуждается в новостях, последнее существенное упоминание об этом появилось девять месяцев назад благодаря калькулятору блоков питания Seasonic. С тех пор слухи в основном затихли из-за кризиса компонентов, вызванного бумом ИИ, который охватил все производственные линии. Но теперь, похоже, серия RTX 50 Super «снова в строю», и инсайдер MEGAsizeGPU утверждает, что даже разрабатывается новая модель.

RTX 50 Super снова в строю. На этот раз включает 5060 12G (или, возможно, она получит новое название — 5060 Super) 5 июня 2026 г.

Мы уже слышали о RTX 5070 Super, RTX 5070 Ti Super и RTX 5080 Super, но на этот раз в списке также есть RTX 5060 Super. Согласно утечке, эта предполагаемая видеокарта может поставляться с 12 ГБ оперативной памяти GDDR7, возможно, используя 4 модуля по 3 ГБ, распределенных по той же 128-битной шине, что и обычная RTX 5060. Эта карта также может называться просто RTX 5060 12GB, поскольку Nvidia ранее уже называла несколько моделей подобным образом.

В утечке не упоминаются другие видеокарты, но, судя по предыдущим слухам, можно предположить, что RTX 5070 Super может иметь 18 ГБ видеопамяти, в то время как RTX 5070 Ti Super и RTX 5080 Super, как предполагается, будут иметь 24 ГБ памяти — все это благодаря 3 ГБ GDDR7.

Источники: https://www.tomshardware.com/pc-components/gpus/nvidia-is-reportedly-still-planning-fabled-rtx-50-super-series-for-2026-leak-claims-lineup-could-now-include-a-potential-rtx-5060-super-with-12gb-of-vram

2.

IT Home, 8 июня - Тайваньское издание BenchLife.info 5 июня сообщило, основываясь на своей «инсайдерской информации», что версия SUPER видеокарт NVIDIA GeForce RTX 50 серии не будет выпущена раньше начала 2027 года, а самая ранняя дата релиза – CES 2027.

Самое значительное улучшение GeForce RTX 50 SUPER – это увеличение объема видеопамяти с 16 ГБ (2 ГБ) GDDR7 до 24 ГБ (3 ГБ), что приводит к увеличению объема видеопамяти на 50%. Согласно последним новостям, будут выпущены настольные модели SUPER серий 60/70/70 Ti/80; информации о мобильных моделях пока нет.

IT Home отмечает, что игровые видеокарты NVIDIA GeForce обычно выпускаются с интервалом более года между обновлениями в середине жизненного цикла и следующим поколением. Даже учитывая особенности поколения «Blackwell», игровые видеокарты «Rubin», скорее всего, появятся не раньше осени 2027 года, возможно, даже на CES 2028 или GTC 2028.

Источник: https://www.ithome.com/0/961/296.htm

Читать далее
Статья

REDB: индексы, или почему на любую схему — это быстро

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели11K

В предыдущей части цикла разобрали 13 таблиц REDB: как устроены objectsvaluesstructures, как RTTI-хранение значений отличается от старого EAV-паттерна, зачем нужен scheme_metadata_cache. Если не читали — начните с неё, без понимания схемы дальше тяжело.

В этой статье — то, что обычно идёт следующим вопросом: «А индексы где? У вас же значения всех полей лежат в одной таблице. Любой WHERE — это Seq Scan по миллионам строк».

Это статья 1.1, а не 2 — потому что она прямое продолжение разговора про физическое хранение. Глубокое погружение в C# — это статьи 3-5 цикла: Code-first схемы (SyncSchemeAsync<T>), CRUD (SaveAsync/LoadAsync), LINQ-транслятор. Здесь разговор остаётся в плоскости БД и DDL.

Цифры, на которые опираемся, — с реального прода: TSUM, логистическая система, обслуживает движение грузовиков и заказов через РЦ.

Читать далее
Новость

Что нового в iOS 27: улучшенная Siri и работа над ошибками в Liquid Glass

Время на прочтение4 мин
Охват и читатели11K

Apple открыла ежегодную конференцию WWDC презентацией обновлений в своих операционных системах. Мероприятие получилось довольно скучным, если сравнивать его с прошлыми годами. Компания сосредоточилась на улучшениях голосового помощника Siri, который в нынешнем виде сильно отстаёт от конкурентов, и работе над ошибками.

Читать далее
Новость

Из ИИ-агентов выходят хорошие программисты, но плохие биологи. Anthropic объясняет почему

Время на прочтение3 мин
Охват и читатели9.7K

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

Читать далее
Пост

Задачка поиска CMS для статического веб сайта.

Для формирования этого отчета я попросил агента opencode (модель qwen3.6-35b-a3b) сначала поискать на github используя api и погуглить (api tavily) проекты под задачу и составить csv файл, затем другим агентом заставил работать с этим файлом построчно (искать строки без пометки ‘принят’, в соответствующей колонке) и для каждого в цикле запускать отдельного агента на исследование github соответствующего проекта, подходит он или нет.

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

Потом отдельно попросил сформировать этот список.

Проект Stars Forks Last Update

  • decap-cms (decaporg/decap-cms) 19,130 3,119 2026-06-08

  • Grav CMS (getgrav/grav) 15,511 1,411 2026-06-08

  • Front Matter CMS (estruyf/vscode-front-matter) 2,516 104 2026-06-05

  • HTMLy (danpros/htmly) 1,339 301 2026-01-25

  • Automad (marcantondahmen/automad) 901 52 2026-06-07

  • WonderCMS (WonderCMS/wondercms) 727 165 2026-01-01

  • Typemill (typemill/typemill) 597 72 2026-05-27

  • static-cms (StaticJsCMS/static-cms) 593 47 2026-06-05

  • FlatPress (flatpressblog/flatpress) 209 65 2026-06-07

  • Quiqr Desktop (quiqr/quiqr-desktop) 170 11 2026-05-01

  • barnacle (dporkka/barnacle) 1 0 2026-06-04

  • dir2site (EvanRuiz/dir2site) 1 0 2026-05-21

  • beta.vortex.name (0-vortex/beta.vortex.name) 1 0 2025-03-03

  • Editora (MrGKanev/Editora) 1 0 2026-05-26

  • Academic-website (denis-novega/Academic-website) 0 0 2026-05-17

  • primo (irismetric/primo) 0 0 2024-05-01

  • fieldscms (unculturedswine/fieldscms) 0 0 2026-02-16

  • taboola/decap-cms (taboola/decap-cms) 0 0 2024-07-02

Полный отчет

Теги:
+4
Комментарии2
Статья

OBTF + AI -> WTF? (новая\старая система личной продуктивности)

Время на прочтение2 мин
Охват и читатели8.2K

Система продуктивности Один большой текстовый файл OBTF - исследуем какие фишечки можно навесить концепцию в эпоху ИИ.

Читать далее
Новость

The Daily Agentic — June 8, 2026

Время на прочтение2 мин
Охват и читатели7.7K

Клем из Hugging Face говорит, что SaaSpocalypse неверен, потому что агенты предпочитают хорошее программное обеспечение

Hugging Face обнаружил, что Claude Code и Codex работали лучше и использовали значительно меньше токенов при использовании специально созданного hf CLI, чем при восстановлении рабочих процессов из raw API, с более высокой точностью/завершением и меньшим потреблением токенов. Создание собственного программного обеспечения, иначе говоря, выбьет ваш токен-бюджет. А в чём проблема? Агенты работают лучше с хорошим программным обеспечением и SaaS.

Читать далее

Ближайшие события

Пост

Импорт данных

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

В Google Sheets для решения этой задачи есть функция IMPORTRANGE:

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/abc123/edit";"Лист1!A:Z")

Про это не пишут в документации, но первым параметром вместо длинного урла достаточно передать идентификатор документа (часть между /d/ и /edit):

=IMPORTRANGE("abc123";"Лист1!A:Z")

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

=IMPORTRANGE("abc123";"Сотрудники[#ALL]")

Если в исходной таблице поменяется порядок столбцов, ваши формулы сломаются. Надёжнее вместо целой таблицы импортировать конкретный столбец:

=IMPORTRANGE("abc123";"Сотрудники[ФИО]")

На практике удобно в первой строке ввести заголовки необходимых столбцов (например: ID, ФИО, Должность), а во второй протянуть формулу, которая подтянет их содержимое:

=IMPORTRANGE("abc123";"Сотрудники["&A1&"]")

Такой способ:

  1. Импортирует меньше данных и работает быстрее.

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

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

Теги:
+4
Комментарии0
Статья

Конечный автомат инкрементного энкодера

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели12K

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

Это могут быть устройства с регулированием громкости звука, яркости свечения, датчик оборотов одометра или что-н еще.

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

Читать далее
Статья

AI B2B SaaS с нуля: что стоит между MVP и продуктом

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели11K

Привет! Меня зовут Дмитрий. Я делал несколько проектов в разных сферах, но все они заканчивались на стадии MVP, хоть и по разным причинам: идея стала никому не нужна, команда выгорела или не хватило скиллов довести до результата.

Поэтому новый проект я начал с намерением дойти до реального работающего продукта с клиентами.

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

Читать далее
Статья

C++101

Время на прочтение127 мин
Охват и читатели27K

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

Большинство этих примеров родилось в эпоху до C++11, когда у языка ещё не было ни умных указателей в стандарте, ни move-семантики, ни constexpr, ни концептов, и приходилось руками собирать из шаблонов и перегрузок некоторые конструкции, которые в более поздних стандартах язык даёт почти бесплатно. Многие идиомы, примеры и идеи стоит читать в двух смыслах сразу, как исторический артефакт, объясняющий «почему старый код выглядит вот так», и как живой приём, который всё ещё применяется в движках и играх.

Разработка игр тут не случайно, потому что игровой движок это обычно место, где абстракции встречаются с профилировщиком, и проигрывают ему чаще, чем хотелось бы. А легаси паттерны цветут и пахнут из-за чьих-то забытых в углу костылей, но большинство вещей вполне правильны, применяются и спасают от ошибок. Многое из этого спрашивают если не дословно, то хотя в паре слов, хорошие лиды на собесе, перед тем как позвать вас в команду, и просто взяв рандомо 5-6 пунктов можно составить впечатление, сталкивался ли новый человек с определенными проблемами.

Когда я собирал оглавление Game++, раздел про идиомы, идеи, паттерны и механизмы C++ планировался шестым и завершающим, и должен был занять страниц сто, по одной на каждый пункт, но чем дальше я собирал материал, тем яснее становилось, что каждая секция тянет за собой историю, а каждая история требует контекста, а каждый контекст в игрострое никогда не бывает простым. В итоге текст разросся до размеров, при которых он просто сломал бы структуру книги, и мне пришлось выбирать между «урезать до неузнаваемости» и «отпустить жить отдельно». Пришлось выбрать второе.

Перед вами то, что могло бы стать половиной Game++, но стало самостоятельным материалом. Здесь собраны идиомы, идеи, паттерны и механизмы C++, которые сложились в сообществе за несколько десятилетий и продолжают жить в кодовых базах игровых движков, иногда под своими именами, иногда под другими, иногда вообще без имён, потому что их давно перестали объяснять. У большинства имена все же есть, есть и история с ответом почему именно так, а не иначе.

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

Читать далее
Статья

Паттерн экономии токенов в Claude Code на правке файлов

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели9.9K

Как обычно, я сидел и думал, как бы уменьшить расходы токенов в Claude Code.. Рефлексировал содержимое сессий, исследовал вместе с самим Claude Code и наткнулся на интересную штуку.
Сначала я было хотел написать свой писатель файлов из под клода, вместо Write. Но подумал, что это будет слишком напряжно, если делать это в клоде, поддерживать, и так далее.
Но для редактирования файла его надо читать(обязательно! Как минимум в Claude Code) - что логично. Вопрос: а сколько его надо читать? Конкретно сколько строк его надо читать? Теоретически весь? А практически? Для замены, к примеру, одной строки?!
И да, Read читает по-разному, Но всегда больше одной строки(мелкие файлы читаются за один Read)..Ок, а обязательно ли для редактирования читать весь файл(или куски)? И вот вот тут-то нас ожидает сюрприз! Для снятия "защиты" файла от редактирования (в сессии Claude Code) достаточно прочитать ОДНУ строку указанного файла:):)
Если у тебя есть средство поддержки актуальности теста файла(я намекаю на code-index), то снятие гейта в модели будет выглядеть примерно как:

(кусок кода сессии)

Read C:\MCP-Servers\code-index\Cargo.toml (lines 2-2)

Read C:\MCP-Servers\code-index\CHANGELOG.md (lines 2-2)

Read C:\MCP-Servers\code-index\CHANGELOG_EN.md (lines 2-2)

Read C:\MCP-Servers\code-index\README.md (lines 2-2)

Read C:\MCP-Servers\code-index\README_RU.md (lines 2-2)

(это я готовил к выкладке очередной апдейт code-index.
Почему (2-2)? Сам не знаю, в промте указано (1-1), но везде модель ставит 2-2. Тайна сия великая есть:)).

И потом просто в темпе пулемета вызываются команды Edit.

Следовательно, в контекст тебе НЕ сыпятся куски файлов(которые тебе не нужны), и контекст остается максимально чистым.

Читать далее
Статья

Структурированная разработка на основе промптов

Уровень сложностиСредний
Время на прочтение29 мин
Охват и читатели11K

Как сделать изменения, вносимые с помощью LLM, управляемыми, проверяемыми и воспроизводимыми.

Программные ассистенты LLM продемонстрировали значительную ценность, но в основном для отдельных разработчиков. Внутренняя ИТ-организация Thoughtworks использует их для своих команд и разработала метод и рабочий процесс, называемый структурированной разработкой на основе промптов (Structured Prompt-Driven Development, SPDD). В одноименной статье Вэй Чжан и Джесси Цзе Ся, опубликованной на сайте Мартина Фаулера, описывается простой пример этого рабочего процесса с подробностями на GitHub. Этот рабочий процесс рассматривает промпты как артефакт первого класса, хранящийся вместе с кодом в системе контроля версий и используемый для согласования разработки с потребностями бизнеса. Авторы обнаружили, что разработчикам для эффективной работы необходимы три ключевых навыка: согласованность, подход «сначала абстракция» и итеративный анализ.

Читать далее
Статья

Экономическая безопасность и ИИ

Время на прочтение5 мин
Охват и читатели10K

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

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

Читать далее