#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!