Сохранёнки программиста
6.84K subscribers
1.1K photos
50 videos
9 files
1.63K links
Заметки и ссылки на будущее, чтобы изучить когда будет время.

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/med
Download Telegram
A Series of Vignettes From My Childhood and Early Career.pdf
191.9 KB
Джейсон Шайрер собрал истории из своей карьеры про «смерть программирования». В 1996 ему объясняли, что ООП всё автоматизирует и бизнес будет собирать софт как LEGO. В 2000 коллега показывал IntelliJ с рефакторингом и говорил «нам конец». Мультимедиа должно было всё изменить. Дотком-бум должен был всё изменить.​

Каждый раз новая технология обещала заменить разработчиков. Каждый раз становилась просто ещё одним инструментом. Автор до сих пор пишет код и получает за это деньги — почти 30 лет спустя.​

Бонусом — две истории про автоматизацию. В одной он написал скрипт, который делал за подрядчика его шестимесячный контракт. В другой — автоматизировал собственную работу и жил в страхе разоблачения, пока задачу просто не передали другому отделу. Работа всегда находилась.​

Статья короткая, читается за 5 минут. Полезно для калибровки на фоне очередного «ИИ заменит программистов». PDF-версию прикрепляю к посту.

@prog_stuff
2👍1
Вышел C3 0.7.8 — в этой версии добавили struct splatting (some_call(...a_struct, 1, 2) — распаковка полей структуры в аргументы) и vector swizzle initialization (int[<3>] x = { .xy = 3, .z = 5 }).​

C3 — это эволюция языка C. Идея: как бы выглядел C, если бы не нужна была обратная совместимость. В отличие от Zig и Odin, которые придумывают новый синтаксис, C3 остаётся максимально похожим на C. Если знаешь C — читать код на C3 можно сразу.​

Что добавили поверх C
🔘Модули вместо header-файлов
🔘Встроенные слайсы и строки
🔘Дженерики и семантические макросы
🔘Обработка ошибок через Result-подобный механизм
🔘defer, контракты (pre/post conditions), compile-time рефлексия
🔘First-class SIMD-векторы​

Главное — полная совместимость с C ABI. Можно вызывать C из C3 и наоборот без обёрток. Не нужно переписывать всё — можно постепенно добавлять C3-код в существующий проект.​

Компилятор использует LLVM-бекенд, есть встроенная билд-система. Сейчас версия 0.7.x, план — выпустить 1.0 когда стабилизируется стандартная библиотека.​

У языка есть свой сайт, и репо на гитхабе.

@prog_stuff
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔2
На dos.zone добавили Norton Commander и Volkov Commander — те самые синие панели с F8 для удаления. Внутри каждого ещё по 10 DOS-игр.​

Работает на js-dos — обёртка над DOSBox, скомпилированным в WebAssembly. Проект опенсорсный, живёт на гитхабе. Поддерживает несколько бекендов: обычный DOSBox и DOSBox-X. Тянет даже Diablo и Dune 2000, есть мультиплеер и облачные сейвы.​

Интеграция элементарная: Dos(element).run("game.jsdos"). Если нужно встроить ретро-игру в свой проект или поэкспериментировать с эмуляцией DOS в вебе — вполне рабочий вариант.

Больше не могу говорить, ушёл играть в GOLDEN AXE 💃

@make_game
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
📎 One Billion Row Challenge — челлендж, который взорвал твиттер в начале года: обработать файл с миллиардом строк температурных измерений и посчитать min/max/avg для каждой станции.

Самое ценное — не сам челлендж, а разборы решений. Статья от QuestDB показывает путь от наивных 71 секунды до 1.7 секунды: SIMD, branchless-парсинг, memory-mapped files, кастомные хеш-таблицы. Есть аналогичные разборы для Go и Python (от 10 минут до 4 секунд через Polars).​

Идеальный материал, чтобы разобраться как реально работает низкоуровневая оптимизация — branch prediction, cache locality, SIMD. Сохраняйте на выходные.

@prog_stuff
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥51
RetroAssembly — опенсорсный веб-кабинет ретро-игр. Открываете страницу, закидываете ROM-ы, играете. Прогресс сохраняется и синхронизируется между устройствами.​

Можно поднять self-hosted через Docker. Эмуляция происходит прямо в браузере, NAS только хранит файлы. Есть тёмная тема, полноэкранный режим, автозагрузка последнего сейва.

Если хотите глубже — под капотом libretro/RetroArch, скомпилированный в WebAssembly. Похожий подход использует PCjs, где можно запустить DOS, Windows 3.1, OS/2 и даже поиграть в оригинальный Spacewar! на эмуляторе PDP-1.

@prog_stuff
👍2
Как создать свой язык программирования — подборка на сохранение:

🔘Видео от Computerphile — 15-минутный разбор как написать интерпретатор с нуля, объясняет Laurie Tratt из King's College​

🔘Плейлист Building a Parser from scratch — полный курс: лексер → парсер → AST → интерпретатор → компилятор в ассемблер​

🔘Nand2Tetris — легендарный курс, где вы строите компьютер от логических вентилей до ОС и компилятора своего языка. Занимает ~6 месяцев, но после него вы понимаете всё​

Для тех, кто давно хотел разобраться как работают языки изнутри, но руки не доходили.

@prog_stuff
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1