Програмистите не получават Нобелови награди. Някои обаче ги заслужават. В

...
Програмистите не получават Нобелови награди. Някои обаче ги заслужават. В
Коментари Харесай

Най-добрите програмисти на века: Джъстийн Тъни

Програмистите не получават Нобелови награди. Някои обаче ги заслужават. В този бранш има същински герои с изключителни достижения. Тези хора не построяват кариерата си, прескачайки от една позиция на друга, единствено с цел да си усилят заплатите. Създава се усещането, че те въобще не се интересуват от своята кариера. Благодарение на високия си разсъдък, вроденото любознание и особения си темперамент тези хора не са способни да извършват скучни и елементарни задания. Само забавни или значими такива. И то единствено по лична воля, а не по инструкции от горната страна.

Вече разказахме за Марк Русинович, Джон Кармак и Юрки Алакуйяла. Разбира се, има и други феноменални гении, и то доста. Често тези хора са надалеч от публиката, в никакъв случай не са били интервюирани и са известни единствено със своите прякори. Но те имат едно общо нещо – открояващи се самостоятелни разработки, които разчупват рамките и се издигат доста равнища над всеобщите програмисти. Този път ще се спрем на Джъстийн Тъни (Justine Tunney), хакерка и талант на систематичното програмиране.

Нека да разгледаме някои от плановете на Тъни.

Redbean

Нейната най-известна разработка евентуално е портативният уеб сървър Redbean, който се популяризира като един мултиплатформен файл дружно със наличието на уеб страницата. Гениално свършена работа.

Идеята е, че можете да вземете уеб сървър и да вградите статичните си.html и.lua файлове в двоичния файл, като употребявате командата zip. Резултатът е файлът redbean.com, който нативно работи в средата на шест операционни системи: Linux, Mac, Windows, FreeBSD, OpenBSD и NetBSD. Това значи, че този уеб сървър ще работи на процедура на всеки компютър.

Сървър с вградени Lua, SQLite и MbedTLS сървър демонстрира към 1,1 милиона поръчки в секунда на естествен компютър (2,5 пъти повече от nginx):

# Note: Benchmarked on an Intel® Core™ i9-9900 CPU # Note: Use redbean-demo.com -s $ wrk --latency -t 10000 -c 10000 -H 'Accept-Encoding: gzip' http://127.0.0.1:8080/tool/net/demo/index.html Running 10s test @ http://127.0.0.1:8080/tool/net/demo/index.html 10000 threads and 10000 connections Thread Stats Avg Stdev Max +/- Stdev Latency 10.44ms 46.76ms 1.76s 98.41% Req/Sec 189.08 259.45 39.10k 98.67% Latency Distribution 50% 5.68ms 75% 6.87ms 90% 8.77ms 99% 197.91ms 4327728 requests in 3.72s, 3.37GB read Socket errors: connect 0, read 5, write 0, timeout 2 Requests/sec: 1163062.91 Transfer/sec: 0.90GB

В сървъра е интегрирана опростената подпора Bestline с автоматизирано допълнение на кода и UNIX модул с интерфейс от ниско равнище за систематичните извиквания и директния достъп до интерфейса на библиотеката Cosmopolitan (за нея по-долу).

Джъстин показа Redbean в HN през месец февруари 2021 година – и той незабавно се изкачи на трето място в категорията „ Show HN “ с най-голям рейтинг в историята на любителските планове, отстъпвайки единствено на домашно направената игрова подпора в жанр 80-те години и на подправено гласоподаване, дължащо се на неточност в енджина на HN.

Втората версия на сървъра излезе през месец юни 2022 година През миналата година Redbean 2.0 се снабди с няколко нови потребни вградени функционалности: sandboxing посредством pledge () (разгледано по-долу), IP геолокация и argon2 хеширане на паролите. Бяха осъществени и няколко опростени приложни програмни интерфейси (API) с явен синтаксис, а към сървъра беше прибавен фреймуъркът Fullmoon.

След всички тези солидни разширения размерът на изпълнимия файл redbean-tiny-2.0.16.com набъбна до 1,4 MB, само че Джъстин се старае да държи процеса под надзор.

Благодарение на интегрираната Unix е допустимо стартирането и потреблението на Unix в средата на Windows – работят подсказките след двойното натискане на клавиша Tab – като в bash, поддържат се emacs клавиатурните съчетания.

https://www.kaldata.com/wp-content/uploads/2023/03/redbean-2.0-demo.mp4

Сървърът доста добре се потвърди в практическата работа: на него се хостват всички уеб сайтове на Джъстийн, в това число justine.lol, без да се употребяват ненужни проксита като при nginx – това е цялостна отвесна платформа в един файл.

Кросплатформеният формат APE

Уеб сървърът Redbean стана вероятен с помощта на неповторимия междуплатформен формат αcτµαlly pδrταblε εxεcµταblε (APE), който също е на Джъстийн.

Тя откри, че файловете Windows Portable Executable могат да бъдат кодирани във тип на шел скриптовете UNIX Sixth Edition. Това значи, че могат да бъдат слети в едно нативните двоични формати на Windows, Unix и MacOS и да се започва високопроизводителен Си код за на процедура всички платформи единствено от един единствен файл:

MZqFpD=' BIOS BOOT SECTOR' exec 7 <> $(command -v $0) printf '177ELF...LINKER-ENCODED-FREEBSD-HEADER' > &7 exec " $0 " " [email protected] " exec qemu-x86_64 " $0 " " [email protected] " exit 1 REAL MODE... ELF SEGMENTS... OPENBSD NOTE... NETBSD NOTE... MACHO HEADERS... CODE AND DATA... ZIP DIRECTORY...

Библиотеката Cosmopolitan

Библиотеката Cosmopolitan е основана на формата APE и дава опция за компилиране на универсални, междуплатформени изпълними двоични файлове благодарение на общоприетия GCC компилатор.

По този метод, една стратегия, написана на програмния език Си и компилирана благодарение на Cosmopolitan във файл с уголемение.com, може нативно да се започва в случайна Linux дистрибуция, а също по този начин и в средата на macOS, Windows, FreeBSD, OpenBSD и NetBSD.

# create simple c program on command line printf %s ' main() { printf( " hello worldn " ); } ' > hello.c # run gcc compiler in freestanding mode gcc -g -Os -static -fno-pie -no-pie -nostdlib -nostdinc -fno-omit-frame-pointer -pg -mnop-mcount -mno-tls-direct-seg-refs -o hello.com.dbg hello.c -Wl,--gc-sections -fuse-ld=bfd -Wl,-T,ape.lds -include cosmopolitan.h crt.o ape.o cosmopolitan.a objcopy -S -O binary hello.com.dbg hello.com # NOTE: scp it to windows/mac/etc. *before* you run it! # ~40kb static binary (can be ~16kb w/ MODE=tiny)./hello.com

По принцип такава стратегия ще работи даже на гол хардуер без никаква операционна система – в случай че я заредите непосредствено в паметта благодарение на APE Loader, който също е написан от Джъстийн.

Други нейни планове

Blinkenlights. Дебъгер за команден ред, насочен към визуализиране на метода, по който стратегиите трансформират паметта. Емулира статично свързани i8086 и x86_64-pc-linux-gnu стратегии на платформите Linux, Mac, Windows, FreeBSD, NetBSD и OpenBSD. Apelife. Играта „ Живот “ на Конуей в APE се състои от малко над 1000 реда код. Тя е дребна проява на библиотеката Cosmopolitan и конзолните интерфейси (TUI): https://www.kaldata.com/wp-content/uploads/2023/03/spacefiller.mp4 Memzoom. Преглед/мониторинг на паметта на процесите и файловете непосредствено в конзолата във формат UTF-8. Подобно на командата less, единствено че за двоични данни и с възобновяване на резултатите в действително време. Поддържа мащабиране с колелцето на мишката и няколко порядъка на картографиране на паметта: линеен (от ляво на дясно), крива на Хилбърт и крива на Мортън (Z-образен порядък).

Sectorlisp. 512-байтова реализация на интерпретатора на Lisp, която се побира в буут бранша. Заради своята сбитост Lisp бива именуван софтуерен аналог на уравненията на Максуел, които тук приема най-кратката допустима форма: един бранш.

Printvideo. Помощна стратегия от команден ред за визуализиране на видеоклипове в конзолен текстов режим. https://www.kaldata.com/wp-content/uploads/2023/03/crabrave.mp4 Braille Dump. Директен сурогат на hexdump -C, като употребява единствени шрифт на Брайл от Уникод за обрисуване на шстнадесеричните кодове 0x81…0xff, като по този метод се улеснява четенето на двоичния код. Работи на Linux 2.6.16+, Windows Vista+, MacOS XNU 15.6+, FreeBSD 12+, OpenBSD 6.4+, or NetBSD 9.1+.
Щатски долар curl https://justine.lol/braille/bd.com > bd.com
$ chmod +x bd.com
$ echo ‘hello→world→’ |./bd.com
00000000 68 65 6c 6c 6f e2 86 92 77 6f 72 6c 64 e2 86 92 │hello⢚⢠⢁world⢚⢠⢁│
00000010 0a │◙│
00000011
Nesemu1. Емулатор на конзолата NES в командния ред Gosip. Базирана на Go библиотека, която имплементира цялостния стек от SIP/RTP протоколи на бекенда за гласова връзка през телефонните гейтове като Flowroute. Това е елементарна и комфортна опция на разширенията на Asterix и фреймуърковете като Adhearsion върху него, които прибавят ненужни пластове на абстракция, правейки телефонните приложения тежки и сложни за обслужване. RDE (registry data escrow). Депониране на домейните от горно равнище в тъкмо избран миг от време java-storage-nio. Java-клиент за файловата система Гугъл Cloud Storage, която в документите е разказана като библиотеката Java 7 nio FileSystem. Closure Rules. Абстрактен фреймуърк (набор от правила) за работа с планове в системата Bazel, който взаимно с другите принадлежности на Closure Tools е употребена от корпорацията Гугъл за ръководството на своите складове с петабайтови кодове

Както можем да забележим, някои от плановете се намират в корпоративното вместилище на Гугъл, където Тъни е работила.

Джъстийн много дълго работи в Гугъл, само че се отхвърля от корпоративната работа и се заема със лични планове.

Очевидно е, че момичето е извънредно надарено и е забавно да забележим, дали ще успее и дали ще ѝ провърви в живота.

Източник: kaldata.com

СПОДЕЛИ СТАТИЯТА


Промоции

КОМЕНТАРИ
НАПИШИ КОМЕНТАР