Какое расстояние между соседними числами в float? Зависит от значения, в некторых случаях между соседними числами может быть разница в 1024 а может и не быть вовсе!
#include <stdio.h>
int main(void) {
float x = 1e10f;
printf("x = %.0f\n", x);
printf("x + 1 = %.0f\n", x + 1.0f);
printf("x + 1000 = %.0f\n", x + 1000.0f);
printf("x + 1024 = %.0f\n", x + 1024.0f);
return 0;
}
x = 10000000000
x + 1 = 10000000000
x + 1000 = 10000001024
x + 1024 = 10000001024
Прям очень неожиданно может получиться если неправильно использовать числа с плавающей запятой с программе если это не учитывать!
Выложил новую версию ztools. Добавил примеры работы с графикой - круговые и пончиковые диаграммы. Примеры почти целиком сгеренировал Codex. Из-за отсутствия прослойки вроде виртуального DOM размер библиотеки получается минимальный - ее можно включить в промт агенту целиком и агент сразу понимает как писать код с ее использованием. Получается AI Friendly Dom-First Reactivity. Прям здорово!
Меня давно волнует вопрос - почему javascript библиотеки такие грамоздкие? Репозиторий React занимает больше гигабайта! А точно, проблема, которую решает реакт может должна решаться набором программ с кодовой базой размером в 10 инсталлятора Windows NT?
Ztools - это небольшая библиотека размером всего в несколько сотен строчек кода на JavaScript, которые добавляют реактивность, конcтруирование dom элементов, веб-компоненты, SSR и многое другое...
Конечно это вайбкодинг, посмотрим что из этого получится...
Сказать, что я под впечатлением это ничего не сказать. Разработчик, который может жить в лаптопе и питается электричеством и токенами. При этом всегда готов помочь, умеет использовать все инструменты которые умеет использовать обычный человек, и создает свои, готов работать 24 часа в сутки за умеренную плату. Да, это не бесплатно - ему нужны токены и электричество, как джин из анекдота, исполняющий желания за деньги.
Просто удивительно, как быстро стало можно сделать прототип для своей идеи!
Одной из проблем кастомных клавиатур является невозможность быстро освоить печать на них. Хочется, чтобы было средство визуализации раскладки.
За пару выходных я сделал приложение, которое визуализирует мою раскладку, позволяя наглядно видеть, где расположены какие клавиши и что ещё можно улучшить или добавить!
MCP-сервера — это супер-хайповая тема последних дней. Что в ней хайпового? Вы даёте LLM возможность взаимодействовать с реальным миром. Идея проста: LLM умеет формулировать запросы в JSON, а значит, она может почти без магии общаться с внешними инструментами по протоколу JSON-RPC!
Самый простой способ вызова MCP — это через локальный процесс через STDIO. Например, один из самых простых MCP-серверов — @modelcontextprotocol/server-filesystem — умеет работать с файловой системой. Говорим системе: вызови npx -y @modelcontextprotocol/server-filesystem /some/folder/name, и наша LLM теперь видит файловую систему и может её менять так, как вы её попросите.
Но в таком виде вызов MCP-сервера не имеет большого смысла: если вы используете IDE, то там агенты уже и так могут работать с файловой системой. Но что, если мы хотим иметь доступ не локально, а удалённо? В этом случае, установив на удалённый сервер тот же самый MCP-сервер, мы можем просто обращаться к нему через SSH, предварительно забросив на удалённый сервер SSH-ключи, чтобы сервер не спрашивал пароль. Обмен будет всё так же происходить через stdin/stdout, но сессия будет поддерживаться через SSH!
Этот способ открывает широкие возможности для создания лёгких универсальных мобильных ассистентов, упрощает администрирование серверов, и ещё можно сделать многое, чему пока не дали названия. Но будьте осторожны — ведь удалить ваши файлы теперь LLM тоже сможет без проблем, поэтому пользуйтесь этой силой с умом!
Денис Ширяев в своем Telegram канале опубликовал интересный скрипт - тетрис который играет сам в себя постоянно улучшая свою игру при помощи генетического алгоритма. Примечательно то, что все это сделано одним промтом при помощи модели Gemini.
У на моем компьютере скрипт работает уже сутки - из 1000 генераций сделал 350, и все еще играет. Думаю при помощи градиентного спуска можно получить не менее эпичный результат!
Попробовал новый инструмент Browser Use. Browser Use - это система автоматизации браузера на базе искуственного интеллекта. Для использования нужно использовать Python но есть и версия с интерфейсом. Говоришь системе, что ты хочешь и браузер автоматически делает то что тебе нужно - ищет в сети товары, делает онлайн заказ, ищет для нас работу, или работников, что угодно.
Я прям под впечатлением. Система использует OpenAI ключи, так что за пользование системой придется платить, один запуск стоит несколько центов, что в принципе вполне терпимо. Для автоматизации используется playwright который, оказывается умеет открывать браузер со всеми расширениями и пользовательскими сессиями, не знаю как он это делает но работает это круто!
Долгое время использую для синхронизации связку Termux + git и доволен как слон. Однако настройка всего этого занимает массу времени и подходит только для технических задротов вроде меня. Подумал, существует ли что-то проще? Поиски в сети не дали каких-либо работающих решений, поэтому мне стало интересно, а можно ли запрограммировать что-то с нуля. Оказалось, что вполне реально. Существует реализация JGit под Java, которая вполне работает, если ее встроить в Android-приложение. Единственную проблему, которую я сейчас пытаюсь решить, это то, что файлы должны быть доступны в общем хранилище андроид-устройства, а напрямую доступа в это хранилище у Android-приложения нет, поэтому приходится дополнительно к операциям с git реализовать операции копирования из внутреннего хранилища устройства во внешнее и наоборот. Как сделать проще, я пока не придумал. Из-за этого мое решение работает значительно медленнее, чем решение на базе Termux. В принципе, не сильно критично, но неприятно - у меня в заметках несколько тысяч файлов, и ждать полторы минуты вместо сорока секунд, когда они синхронизируются, мне не хочется...
Если получится ускорить решение опубликую на Play Market вдруг такая программа не только мне окажется полезной?
Upd: Проблему со скоростью решил, теперь работает даже быстрее чем Termux, потестирую еще некорое время на предмет багов, но кажется получилось что-то полезное...