Zero Dereference – Telegram
Zero Dereference
127 subscribers
3 photos
3 files
372 links
Interesting links related to systems programming, hacking, and science.

Contact: @richiefreedom
Download Telegram
I'm seriously worried about bloated software and websites. Programs become larger and slower, one webpage can be bigger than the whole DOOM distribution. Text editor can be slower than a 3D computer game computing shadows in realtime. I'm happy to see that others notice the problem too.

https://pxlnv.com/blog/bullshit-web/

https://www.wired.com/2016/04/average-webpage-now-size-original-doom/
Have you heard about tilde communities? Standalone Unix computers connected to the Internet which people share together for publishing websites, communication, learning programming and so on.

Tilde.Town is a most famous tilde community. Get a login and join this oldschool funny social network available from the Unix terminal via SSH.

http://tilde.town/
Lemon is a LALR parser generator written by Richard Hipp specially for the SQLite project. Lemon source code is short and well-commented. In opposite to other YACC-style parser generators it doesn't require global variables and can work in a multithreaded environment.

http://www.hwaci.com/sw/lemon/
A blog dedicated to programming for retro platforms.

http://www.retroprogramming.com/
An interesting article developing the idea of packrat parsers towards fast incremental parsing for IDEs and other applications where full re-parsing of the source text can take too much time.

The article contains a full example of a library for incremental and traditional packrat parsing in EcmaScript 6.

https://ohmlang.github.io/pubs/sle2017/incremental-packrat-parsing.pdf
One more paper on packrat parsers. In this turn the authors created a set of macros for ANSI C that form a kind of DSL for construction of recursive-descent parsers. Semantic actions are written in plain C inside the blocks emerged from macro substitution. What is interesting, the resulting parser doesn't use any dynamic memory allocation, all the caches for memification widely used in packrat approach are statically preallocated for each non-terminal.

https://www.jstage.jst.go.jp/article/ipsjjip/26/0/26_335/_pdf/-char/en
A fast and tiny non-conservative garbage collector for C.

http://piumarta.com/software/gsgc/index.shtml
An amazing book written by Hanspeter Mössenböck on object-oriented programming in general. All the examples in the book are coded in Oberon 2 but it doesn't matter because Mr. Mössenböck explains generic concepts, design patterns and approaches which don't depend on any language feature. All the described things can be applied to any modern high and middle level language. It is about ways to think — not tools!

One strong side of this book is its practice part. The main case study here is development of a rich-text editor which supports fonts and active graphics objects (UI elements, vector graphics, formulas, etc). Moreover, the author doesn't use any system toolkits or UI primitives, all the code deals with raw mouse/keyboard input and simple framebuffer output. This simple example resembles the more complex Oberon System made by Niklaus Emil Wirth and Jürg Gutknecht.

http://ssw.jku.at/Research/Books/Oberon2.pdf
Наконец в руки попала бумажная копия книги "Гарри Поттер и методы рационального мышления". Всем советую этот фанфик Элиезера Юдковского. Он не только полезный, но и дико захватывающий!

http://hpmor.ru/
Linear ML is a version of ML-like functional programming language based on the idea of linear types. This means that a reference to any heap-allocated object have to be used only one time. Such model allows implicit memory management without garbage collection and reference counting. It also provides a way to code safe multithreaded applications with zero-cost message passing.

The core ideas behind Linear ML can be found also in the more popular programming language — Rust.

https://github.com/pikatchu/LinearML
An introduction to uniqueness type system implemented in the Morrow functional programming language.

http://www.edsko.net/pubs/ifl07-paper.pdf
An old paper about META II written by D.V. Schorre .

http://www.hcs64.com/files/pd1-3-schorre.pdf
A paper on support of direct and indirect left-recursive grammars by packrat parsers.

http://www.vpri.org/pdf/tr2007002_packrat.pdf
An original post of Andrew Kensler about a compact raytracer printed on his business card.

http://eastfarthing.com/blog/2016-01-12-card/

Note: his business card was updated recently with even more interesting code deciphered by Fabien Sanglard.

http://fabiensanglard.net/postcard_pathtracer/index.html
A perfect lecture of Bret Victor for engineers about the powerful way to create things according to own principles.

https://m.youtube.com/watch?v=PUv66718DII
A video from CppCon about some features in modern C++ compilers that can make use of this language simpler. The most interesting part for me is about an objects lifetime checker. Such thing together with smart pointers shift C++ closer to Rust in the sense of memory safety.

https://youtu.be/80BZxujhY38
Sometimes people ask me to recommend some actual book on C programming language. Yes, I like K&R as most of C programmers, but, to be honest, there are more suitable books today.

One of such free books is Modern C.

http://icube-icps.unistra.fr/img_auth.php/d/db/ModernC.pdf

One more free book on ideomatic, modular C programming is C Interfaces and Implementations.

http://www.r-5.org/files/books/computers/languages/c/mod/David_R_Hanson-C_Interfaces_and_Implementations-EN.pdf

I also recommend reading of CERT C Secure Coding Standard.

https://resources.sei.cmu.edu/downloads/secure-coding/assets/sei-cert-c-coding-standard-2016-v01.pdf
Slides accompanying the course on compiler construction in the Carnegie Mellon University. Lots of interesting materials in compact form.

http://www.cs.cmu.edu/afs/cs/academic/class/15745-s13/public/lectures/