#prog #rust #rustlib #abnormalprogramming
analog-literals
Поддерживаются также двухмерные и трёхмерные литералы (см. (а лучше не см.) документацию)
analog-literals
assert_eq!(
analog_literal! { I----I }
+ analog_literal! { I------I },
analog_literal! { I----------I },
);
Поддерживаются также двухмерные и трёхмерные литералы (см. (а лучше не см.) документацию)
docs.rs
analog_literals - Rust
Inspired by the abhorrent incredible Multi-Dimensional Analog Literals library created by Eelis back in 2006, I am proud to present `analog_literal!` - a Rust macro that enables embedding analog literals directly into Rust code.
#prog #game #abnormalprogramming
Verilog to Factorio blueprints compiler
https://github.com/Redcrafter/verilog2factorio
(thanks @GabrielFallen)
Verilog to Factorio blueprints compiler
https://github.com/Redcrafter/verilog2factorio
(thanks @GabrielFallen)
GitHub
GitHub - Redcrafter/verilog2factorio: This project will compile verilog (a hardware description language) into factorio blueprints.
This project will compile verilog (a hardware description language) into factorio blueprints. - Redcrafter/verilog2factorio
#prog #article #abnormalprogramming
McCarthy's Ambiguous Operator
Абьюз продолжений ради этого:
McCarthy's Ambiguous Operator
Абьюз продолжений ради этого:
# amb will (appear to) choose values
# for x and y that prevent future
# trouble.
x = amb 1, 2, 3
y = amb 4, 5, 6
# Ooops! If x*y isn't 8, amb would
# get angry. You wouldn't like
# amb when it's angry.
amb if x*y != 8
# Sure enough, x is 2 and y is 4.
puts x, y
www.randomhacks.net
McCarthy's Ambiguous Operator | Random Hacks
Random code snippets, projects and musings about software from Eric Kidd, a developer and occasional entrepreneur.
Блог*
#prog #rust #amazingopensource Typst is a new markup-based typesetting system that is designed to be as powerful as LaTeX while being much easier to learn and use. Typst has: * Built-in markup for the most common formatting tasks * Flexible functions…
#abnormalprogramming
https://t.me/al_tch/1170
Но из-за ограничений инструмента, понятное дело, тетрис пошаговый, и сид нужно вручную переставлять
https://t.me/al_tch/1170
Но из-за ограничений инструмента, понятное дело, тетрис пошаговый, и сид нужно вручную переставлять
Telegram
AlexTCH
https://typst.app/universe/package/soviet-matrix/
A Tetris implemented inside https://typst.app Can be played online. 😏
A Tetris implemented inside https://typst.app Can be played online. 😏
#game #abnormalprogramming #article
Simulating Rule 110 in Opus Magnum
Ввиду того, что симуляция сколько-нибудь большого пространства в игре затруднена, решение делается для закольцованного поля в 6 клеток. Но даже так это очень впечатляет.
Simulating Rule 110 in Opus Magnum
Ввиду того, что симуляция сколько-нибудь большого пространства в игре затруднена, решение делается для закольцованного поля в 6 клеток. Но даже так это очень впечатляет.
a blog by biggiemac42
Simulating Rule 110 in Opus Magnum - a blog by biggiemac42
As part of the 2022 Opus Magnum tournament, players had to design a machine to simulate the famous Rule 110 cellular automaton.
#prog #python #article #abnormalprogramming
Python's Preprocessor
Python позволяет иметь в первой строке комментарий, который говорит о том, какая кодировка используется для текста файла. Имя кодировщика ищется в специальном месте, и механизм для предоставления этого кодировщика позволяет исполнять произвольный код на Python. Как следствие, это позволяет интерпретировать дальнейший текст как угодно — с синтаксисом, произвольно далёким от Python.
(thanks @itpgchannel)
Python's Preprocessor
Python позволяет иметь в первой строке комментарий, который говорит о том, какая кодировка используется для текста файла. Имя кодировщика ищется в специальном месте, и механизм для предоставления этого кодировщика позволяет исполнять произвольный код на Python. Как следствие, это позволяет интерпретировать дальнейший текст как угодно — с синтаксисом, произвольно далёким от Python.
(thanks @itpgchannel)
Pydong
Python’s Preprocessor
Every now and then you hear outrageous claims such as “Python has no preprocessor”.
#prog #sql #abnormalprogramming
github.com/nuno-faria/tetris-sql
Using SQL's Turing Completeness to Build Tetris
(thanks @nosingularity)
github.com/nuno-faria/tetris-sql
Using SQL's Turing Completeness to Build Tetris
(thanks @nosingularity)
GitHub
GitHub - nuno-faria/tetris-sql: Using SQL's Turing Completeness to Build Tetris
Using SQL's Turing Completeness to Build Tetris. Contribute to nuno-faria/tetris-sql development by creating an account on GitHub.
#prog #abnormalprogramming #article
Vim is Turing-Complete
No, not VIMSCRIPT. Vim KEYSTROKES are Turing-complete.
(thanks @devballet)
Vim is Turing-Complete
No, not VIMSCRIPT. Vim KEYSTROKES are Turing-complete.
(thanks @devballet)
Buttondown
Vim is Turing-Complete
No, not VIMSCRIPT. Vim KEYSTROKES are Turing-complete.
#prog #abnormalprogramming #article
Building a url-shortener with Lambda — JUST Lambda
(и немного Python)
Работает без базы данных, если что
Building a url-shortener with Lambda — JUST Lambda
(и немного Python)
Работает без базы данных, если что
Блог*
#prog #abnormalprogramming #article Building a url-shortener with Lambda — JUST Lambda (и немного Python) Работает без базы данных, если что
И ещё пачка #prog #abnormalprogramming от этого же человека:
Чат, работающий на одном CSS на клиенте
Спеллчекер на тайпчекере Typescript (так что, видимо, #typescript?)
База данных на вкладках браузера
Чат, работающий на одном CSS на клиенте
Спеллчекер на тайпчекере Typescript (так что, видимо, #typescript?)
База данных на вкладках браузера
#prog #rust #article #abnormalprogramming
Take a break: Rust match has fallthrough
One can (ab)use labelled breaks in Rust to support fallthrough-like behaviour in
⬇️
Take a break: Rust match has fallthrough
One can (ab)use labelled breaks in Rust to support fallthrough-like behaviour in
match
. Not at all pretty, not at all advisable, but it works, and sometimes that’s as much as we can hope for.switch(len & 3)
{
case 3: k1 ^= tail[2] << 16;
case 2: k1 ^= tail[1] << 8;
case 1: k1 ^= tail[0];
k1 *= c1; k1 = ROTL32(k1,15); k1 *= c2; h1 ^= k1;
};
⬇️
'outer: {
'case1: {
'case2: {
'case3: {
match len & 3 {
3 => break 'case3,
2 => break 'case2,
1 => break 'case1,
_ => break 'outer,
}
} // 'case3:
k1 ^= (tail[2] as u32) << 16;
} // 'case2:
k1 ^= (tail[1] as u32) << 8;
} // case1:
k1 ^= tail[0] as u32;
k1 *= c1; k1 = k1.rotate_left(15); k1 *= c2; h1 ^= k1;
}
huonw.github.io
Take a break: Rust match has fallthrough
Match + labelled blocks & breaks = fallthrough. It works, but it's not very pretty!