#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.
😁12🤯2😐1
#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?)
База данных на вкладках браузера
🤩2🔥1🤯1
Технологический Болт Генона
Ждём, когда запустят DoomPDF в LinuxPDF Разработчик под ником ading2210 представил проект LinuxPDF — Linux в PDF в браузере. Проект открывается только в браузерах на базе Chromium, использующих движок PDFium. Код написан на C и опубликован на GitHub по лицензией…
Ах да, #abnormalprogramming
#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!
🥴14🔥2🤯2👍1