Arrows - простая игра

May. 29th, 2026 02:46 pm
vak: (Робот 1)
[personal profile] vak
Я как-то показывал игру в стрелочки, что мне Курсор состряпал на скорую руку. Там было несколько глюков в анимации, которые тогдашний ИИ в упор не видел. Мне самому тоже не удавалось найти ошибку. Но вот на днях вышла новая модель Opus 4.8, и о чудо! Она смогла отыскать и шустро исправить все проблемы. Теперь можно играть в своё удовольствие.

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

Исходники: github.com/sergev/goarrows

FlavorDB

May. 29th, 2026 02:18 pm
vak: (Default)
[personal profile] vak
Вы вот хихикаете над списком вкусов, а между тем учоные собрали огромную базу FlavorDB - 25595 молекул вкуса и аромата. Вот группы, чаще всего встречающиеся среди пищевых ароматических молекул:
Категория          | Примеры дескрипторов                    
------------------ | ---------------------------------------  
Фруктовые          | fruity, citrus, berry, apple, pineapple 
Цветочные          | floral, rose, jasmine, violet           
Сладкие            | sweet, vanilla, caramel, honey          
Зелёные            | green, grassy, leafy, herbal            
Пряные             | spicy, clove, cinnamon, pepper          
Древесные          | woody, resinous, cedar                  
Землистые          | earthy, mushroom, musty                 
Ореховые и жареные | nutty, roasted, toasted                 
Мясные / умами     | meaty, savory, brothy                   
Сернистые          | sulfurous, onion, garlic                
Молочные           | creamy, buttery, cheese                 
Кислые / уксусные  | sour, acetic, vinegar                   

О вкусах

May. 28th, 2026 06:44 pm
vak: (Аристипп)
[personal profile] vak
Народ натренировал ИИ на миллионах рецептов всяческой еды. Статья: "Epicure: Navigating the Emergent Geometry of Food Ingredient Embeddings".

Вероятно, вся статья написана неестественным интеллектом. Читать невозможно. Но меня там заинтересовали 27 кулинарных измерений.

Группа 1: вкусо-ароматические признаки.
  • бальзамический
  • цитрусовый
  • землистый
  • жирный
  • цветочный
  • фруктовый
  • зелёный
  • мясной
  • мятный
  • ореховый
  • пряный
  • овощной
  • винный
  • древесный
Группа 2: базовые вкусы.Группа 3: питательные вещества.
  • белок
  • общий жир
  • углеводы
  • энергия (ккал)
  • вода
  • клетчатка
  • натрий
  • сахара
Странно, что солёный вкус отсутствует.

Имперские языки

May. 28th, 2026 06:33 pm
vak: (Аристипп)
[personal profile] vak
Человеческие языки можно разделить на "родные" и "имперские". Родной язык — на котором мы говорим с родными. Обычно они относятся к местным этносам. Имперские языки связаны с крупными государствами. Часто имперский язык становится вторым после родного. Почему Иисус говорил на арамейском? Время такое было. Все говорили на арамейском. 😀

Какие существовали имперские языки в истории человечества?

Keen

May. 28th, 2026 06:21 pm
vak: (Бодхидхарма)
[personal profile] vak
В школе нас учили: суть языка в том, что каждое слово имеет отдельное значение. Обманули однако. К примеру, рассмотрим простое английское слово "keen". Значений столько, что смысл теряется. 😀

denise: Image: Me, facing away from camera, on top of the Castel Sant'Angelo in Rome (Default)
[staff profile] denise posting in [site community profile] dw_maintenance
It's been a while since we've done a full code push rather than just hotfixes for bugs, so we are well overdue! Depending on availability, we're aiming to do one sometime soon; we'll let you know specifics once we've worked out good timing for everyone who needs to be available.

However! The reason it's been so long is we kept trying to get some of the stuff that's pending to "really finished" instead of just "mostly finished", and then we once again looked around and went "oh no, this is a really big code push with a lot of changes". Those make us nervous, because while we do a lot of testing ourselves, y'all are really creative in how you use the site and we inevitably find a bunch of edge cases when we let you loose on new code with your real-world data!

So, if folks have some spare time in the next few days, it would be a huge help if you could spend half an hour or so using the site the same way you normally do but with the "Site-Wide Canary" beta features flag turned on. Canary mode is a sort of "live testing" mode: it's your real data, but running the most up-to-date code.

Canary mode always does have a few glitches -- there may be missing text strings or errors about missing database properties, which is a limitation of how we run it. We don't need to know about those, but anything else weird that you run into, leave a comment with what you were trying to do and the error message you got.

I'll repeat that the "here be dragons" caution that's on the beta features page: some things may be broken, so don't use it for when you're doing something important. But a few more eyeballs on it before the push will help the push go more smoothly for everyone.

For folks who want to concentrate on what's changing, we haven't finished the second code tour of what's going to be in this push, but the ffirst one has a good chunk of what's going to be going live. (We'll get the second half done ASAP!)
vak: (Знайка)
[personal profile] vak
Я подумал: раз уж у нас имеется аутентичный микрокод процессора i386, и даже построенные на нём Верилоговские исходники для FPGA, не соорудить ли из этого богатства качественный симулятор?

Сделал детальный план разработки, разбитый на 14 последовательных шагов. Дал задание двум разным ИИ (Claude Code и Cursor) создать по этому плану симулятор i386. Независимо друг от друга, в разных бранчах. Поглядим, у кого лучше выйдет.
vak: (Аристипп)
[personal profile] vak
Набрёл на фрагмент книги Алистера Кокбурна про разработку софта (1985-naur.pdf).
В книге "Work-Oriented Development of Software Artifacts" (1988) Pelle Ehn описывает серию проектов, исследовавших способы сделать программное обеспечение более соответствующим своему конечному применению, более удобным в использовании и создаваемым совместно программистами и конечными пользователями.

Для меня высшей точкой этой книги является то, как он рассматривает разработку программного обеспечения в контексте четырёх философов: René Descartes, Karl Marx, Martin Heidegger и Ludwig Wittgenstein.

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

Человек, работающий в стиле Маркса, прежде всего спрашивает: «Кому выгодна эта новая система? Как её внедрение изменяет структуру социальной власти?» Это осмысленный вопрос, независимо от того, нравятся вам политические теории Маркса или нет.

Человек, работающий в стиле Хайдеггера, рассматривает систему с точки зрения её эффективности как инструмента. В идеале пользователь вообще не должен «видеть» систему. Он должен видеть сквозь систему саму выполняемую задачу. Например, когда я печатаю документ, я вижу страницу, заполняющуюся текстом; я не «вижу» текстовый процессор. Опытный пианист видит создаваемую музыку, а не фортепиано; хороший плотник видит гвоздь, входящий в дерево, а не молоток. Подход Хайдеггера к оценке помогает нам создавать системы, более пригодные к использованию.

И только стиль Витгенштейна противопоставляется стилю Декарта. Человек, работающий в этом стиле, рассматривает развитие программного дизайна как разворачивание языковой игры, в которой со временем в язык добавляются новые слова.

Это сразу связывает разработку программного обеспечения с кооперативной игрой изобретения и коммуникации. Вероятно, значительной частью своей модели кооперативной игры я обязан работам Эна. За годы до того, как я разработал идею кооперативной игры, я прочитал и забыл следующую статью. Когда я начал писать эту книгу, я снова её перечитал и был поражён тем, насколько многие мои формулировки перекликались с формулировками Эна.

Эна интересует построение общего опыта через совместную практику, использование самой практики как непосредственной основы для выявления потребностей. Иными словами, он работает с неявным знанием. Более того, он подчёркивает роль мастерства в осуществлении практик (интересно читать слова Miyamoto Musashi, указывающие почти на то же самое). Хотя я и упоминал тему мастерства, Эн развивает её гораздо более глубоко и полно.
Там ещё есть от Питера Наура, про программирование как строительство теории. И от Миямото Мусаши, самурая 17-го века, не знавшего поражений.
vak: (бэсм-6)
[personal profile] vak
Есть у нас в коллекции ретрокомпьютерных тулов такая штука как besmc. С её помощью можно программировать на БЭСМ-6 на разных языках программирования (и их смеси). Фактически это фронтэнд ко всем имеющимся компиляторам, ассемблерам, линкеру и симулятору. Для besmc надо также установить симулятор dubna. Подробности читайте в README.

К примеру, компилируем и выполняем программу на Паскале:
$ cat hello.pascal 
program main(output);
_(
writeln('Hello, Pascal!');
_).
$ besmc hello.pascal
$ ./hello.exe
HELLO, PASCAL!
Или пусть главная программа будет на Паскале, а подпрограмма на Фортране:
$ cat caller.pascal 
program main (output);
procedure hello; fortran;
_(
hello;
_).
$ cat callee.ftn
subroutine hello
print 1000
1000 format('Hello Fortran from Pascal!')
end
$ besmc caller.pascal callee.ftn -o example
$ ./example.exe
HELLO FORTRAN FROM PASCAL!
Есть куча примеров на разных языках: смотрите examples/README.md. Список примеров:
  • Pascal — `hello.pascal`
  • Pascal-re — `hello.pas`
  • Algol-ГДP — `hello.algol`
  • Fortran-ГДP — `hello.ftn`
  • Fortran Dubna — `hello.fortran`
  • Forex — `hello.forex`
  • Assembler Madlen — `hello.assem`
  • Assembler Madlen-3.5 — `hello.madlen`
  • Assembler БЕМШ — `hello.bemsh`
  • B language — `hello.b`
  • Object modules — `stdarray.std`
  • Mixed-language: Pascal calling Fortran — `caller.pascal` + `callee.ftn`
Да, а собственно новость в том, что утилита besmc теперь поддерживает язык программирования Би:
$ cat hello.b 
main() {
printf("Hello, B!*n");
}
$ besmc hello.b
$ ./hello.exe
HELLO, B!
Примеры интересных программ на Би можно глянуть здесь: examples/b.

Исторически языка Би на БЭСМ-6 не было. Это уже современная доделка. Хотя уже тогда ничто не мешало. Просто ни в Дубне, ни в ИТМиВТ не знали про язык Би.

vak: (Бодхидхарма)
[personal profile] vak
Пока Дейкстра ругался на оператор goto (1968), Martin Richards изобрёл (в языке BCPL, 1967) механизм нелокальных переходов longjmp. Кен Томпсон и Деннис Ритчи встроили это дело сначала в язык Би, потом в Си. Идея прижилась, позже превратившись в try/catch в Си++.

Нелокальные переходы штука полезная в умелых руках. Иногда без неё не обойтись. Там есть куча подводных камней. Мне когда-то приходилось реализовывать setjmp/longjmp на разных архитектурах. Уже подзабылось маленько. Может кто и описал это дело в книжках, но где ж те книжки отыщешь. Благо имеем ИИ, можно спросить.

Вот статья с хорошим изложением темы от Клода: "Non-Local Jumps in C: Understanding setjmp and longjmp"

Целевая аудитория: программисты на C, знакомые с функциями, указателями и стеком вызовов, но ещё не сталкивавшиеся с нелокальным управлением потоком выполнения.

Цель: сформировать чёткое представление о том, как работают setjmp/longjmp, когда их следует использовать и — что не менее важно — когда их следует избегать.

"Где сейчас хуйло?"

May. 21st, 2026 11:08 pm
vak: (Путиномедвед)
[personal profile] vak
Дай, думаю, спрошу у Грока. Неестественный разум не подкачал.
Вернулся вчера/сегодня из Пекина после визита к Си (19–20 мая). Сейчас работает в столице, по данным Кремля и Пескова.

Обычно он либо в Кремле/Новом Огарёво, либо прячется в бункерах/резиденциях, но по последним новостям — в Москве.
grok.com/share/bGVnYWN5LWNvcHk_3f824a99-07e3-438a-9589-a24731f35751
vak: (Робот 1)
[personal profile] vak
Робот выгружает постиранную одежду из стиральной машины.



+3 )

Подробная статья: bequiet-log.vercel.app/pi-review
vak: (Аристипп)
[personal profile] vak
Редкая вещь: современная клавиатура, но сделанная по технологии оригинальной IBM Model M. Просят $179 плюс доставка. Вес полтора килограмма, как и положено.

vak: (бэсм-6)
[personal profile] vak
Компилируем пустую функцию.
$ cat empty.c
void foo()
{
    // Empty
}

$ ./parse empty.c empty.ast

$ ./lower empty.ast empty.tac

$ backend/genbesm empty.tac empty.mad

$ cat empty.mad
c Module: foo
      foo:   ,name,
             ,its, 13
          13 ,vjm, c/save
             ,uj, c/ret
             ,end,
Исходник на Си превращается в AST, потом в TAC, и окончательно а автокод Мадлен.

Песенка от OpenBSD

May. 19th, 2026 11:56 pm
vak: (Daemon)
[personal profile] vak
По традиции с каждой новой версией OpenBSD выходит новая картинка и иногда стишок. Все их можно посмотреть на странице: openbsd.org/lyrics.htm

А почему бы не спеть это дело, подумалось мне, благо имеется suno.com. Вот что получилось для версии OpenBSD 7.3. Философская притча в стиле кантри.



Once there was a Wizard so old and wise
that he asked Mother Night for a new enterprise
falling asleep his wish was heard
and by Merlin's beard
what a strange world he entered
дальше )
vak: (Укр.музыка)
[personal profile] vak

Эти твои глазки
меня околдовали,
твой сладкий взгляд,
мама!..
меня загипнотизировал.

Эльса, Эльса...
клянусь тебе, что люблю тебя,
что без тебя я бы умер,
если бы мне не хватало твоей любви.. (повтор)

Эльса... ах, Эльса...
ах, Эльса...
снимай туфельку...
я уже больше не могу!..
(Пусть играет кумбия, чтобы танцевать
с Эльсой!)

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

Говоряяят... иди, смотри, иди-иди!
Я уже не могу!!
(Пусть играет кумбия, чтобы танцевать
с Эльсой!)..
vak: (Бодхидхарма)
[personal profile] vak
Народ часто обвиняет язык Си в примитивности. Типа подумаешь: высокоуровневый ассемблер. Пока не столкнётся с правилами приведения типов. Мне пришлось потратить изрядные усилия, чтобы залудить это дело в компиляторе. Вот краткий конспект.

Type_Coercion.md

Что такое HLS

May. 17th, 2026 09:59 pm
vak: (Аристипп)
[personal profile] vak
Это когда пишем код на Си++ и превращаем его в чип. Только не всякий Си++ годится. Вот пример реализации числа с плавающей точкой для Siemens Catapult:

github.com/sergev/floatnum
Page generated May. 30th, 2026 04:39 am
Powered by Dreamwidth Studios