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
Berry is a tiny window manager for X built with the best UNIX design principles in mind. Berry doesn't handle any input, instead it uses a separate client (berryc) which can send commands to the window manager itself. Berryc can be called from any daemon which listen for keyboard and mouse input, sxhkd for example.

Berry publishes information about its internal state as X11 atoms, thus various panels and status bars can use such info to augment the window manager: show available workspaces, list of windows, etc.

https://berrywm.org/

#desktop #x11 #wm #suckless
Janet is a small programming language with lisp-like syntax. Like Lua it can be easily embedded in system programs.

There is a good web-framework based on Janet — Joy. A small set of libraries is also available, so even GUI applications can be built with Janet.

Janet:
https://janet-lang.org/

Joy:
https://joyframework.com/

#compilers #fprog #lisp #embedded #janet
Kalyn is a functional programming language with a tiny compiler implemented in Haskell and Kalyn itself. Semantically Kalyn is very close to Haskell but syntactically it looks like a typed Lisp.

You can find an overview of the internals by the link below. The source code of the compiler is available on Github.

https://intuitiveexplanations.com/tech/kalyn

#compilers #fprog #haskell #kalyn
An interesting hobby project: its author made own fantasy computer architecture, a programming language, a virtual machine and an operating system. The author wrote the virtual machine and the toolchain for own programming language in Lua.

https://github.com/limnarch

#osdev #system #programming #vm #fantasycomputer
I have been looking for alternatives to the TeX typesetting system for a long time. I tried various flavors of Troff, but quickly became disappointed. I did not know about any modern alternatives. Today I found a few of them.

The two most interesting of them are speedata Publisher and SILE typesetter.

The first one is a modern typesetting software which gets XML-markup as input and generates a PDF document. Examples of generated pages are amazing! Speedata Publisher is an open source project hosted on GitHub.

The second one is a TeX-like typesetter with a LaTeX-inspired input language. It got the best parts of TeX without all the well-known legacy stuff. Looks like SILE is not so robust as speedata Publisher, but it is small and has a permissive license (MIT).

Both of these typesetting engines are written in Lua.

Speedata Publisher:
https://www.speedata.de/en/

SILE:
https://sile-typesetter.org/

#typesetting #lua #tex #latex #troff #sile #speedata
ZeroNet is an open source peer-to-peer network that uses BitTorrent technologies to deliver content of sites to their visitors. It also uses Bitcoin cryptography to sign published data.

If you visit some ZeroNet resource you become a hoster of this resource, so files are distributed between many nodes in the network.

There are no dedicated servers, no censorship and no hosting costs.

You can create a new ZeroNet site by just one click. Many services are available like mail, blogs, forums and chat rooms.

ZeroNet uses Namecoin as a decentralized domain system.

https://zeronet.io/

#infosec #darknet #cryptography
Pollen is a WEB publishing system written in Racket. It allows building of beautiful modern e-books like Butterick's Practical Typography and Beautiful Racket.

https://docs.racket-lang.org/pollen/

#typesetting #publishing #typography
What would happen if someone decided to embed a display server into a game engine? The result could be very similar to the Arcan multimedia framework.

It is difficult to define what Arcan is. It is a collection of tools and libraries to build secure applications with rich multimedia facilities, window management, VR support, etc.

There are several experimental projects built with Arcan. One of them is Durden, an incredible, revolutionary window compositor with support of own, X11, and Wayland clients. Almost every aspect can be customized in runtime, even shaders associated with any graphical element.

The authors of Arcan made it in C and provided an interface for Lua noscripting.

Arcan applications can run on top of other compositors/window systems or be a first-class citizens and start without any help of other environments.

https://arcan-fe.com/about/

#c #lua #graphics #desktop #composer #ui
A couple of days ago I discovered an interesting tutorial on the development of a functional language compiler using C++, Flex, Bison, and LLVM. The author uses approaches found in the book "Implementing functional languages: a tutorial" by Simon Peyton Jones. Very fascinating reading.

https://danilafe.com/blog/00_compiler_intro/

#tutorial #compilers #translation #fprog #haskell
The following page on NesDev Wiki organizes tons of materials about programming for NES starting from the very basics.

https://wiki.nesdev.com/w/index.php/Programming_guide

#nes #system #programming #mos6502 #lowlevel
I already wrote about tilde communities — small standalone Unix machines with dozens of users who host their web pages or gopher sites, learn to program, and communicate. It looks like such "social networks for hackers" become popular. There is a central hub collecting links to all tilde machines where you can find your community.

https://tildeverse.org/

#subculture #unix #social #tilde
A book about the internals of the NetBSD operating system.

https://www.netbsd.org/docs/internals/en/index.html

#book #osdev #system #programming
I have a plan to write a short book about virtualization, internals of hypervisors and virtual machines. Technically some work is already done. Are you interested in such a book?
Anonymous Poll
28%
I am interested in a newbie guide, because I have no background in system programming.
69%
I am interested in a guide for experienced system programmers. I already know the basics.
3%
Virtualization? Huh! The topic is not interesting to me at all.
Two days ago I read about a new programming language - Vale. This project just did first public steps, but already looked interesting.

In some sense Vale brings to mind Rust: it is based on the idea of single ownership and regions. But obviously it differs a lot and does some things the own way.

Vale uses LLVM and therefore targets many platforms.

I hope eventually the project will bring us a worthy alternative to Rust, Zig and Go.

https://vale.dev/

#compilers #languages #system #programming
Glamorous Toolkit is a sleek modern Smalltalk programming environment built with Pharo.

https://gtoolkit.com

#smalltalk
A friend of mine asked me how to write object-oriented code in non-OOP languages, such as C. There are many articles on this topic, but not all are good. I liked this article by Chris Wellons.

https://nullprogram.com/blog/2014/10/21/

#oop #c
Hey. I need system programmers for the team creating the core of KasperskyOS.

If you know the C language perfectly, understand the architecture of operating systems, have experience of kernel-level development, it would be great to talk at an interview.

We have our microkernel, drivers and system services, a hypervisor, and a security system. There is also a family of DSLs for describing security policies and a compiler for them. In short, a lot of interesting work!

The offices are located in Moscow, near Vodny Stadion and Dynamo metro stations.

Send me a message if interested (@richiefreedom).
The article at the link below shows an interesting way to hide messages in the binary code of programs for x86-compatible processors.

https://blog.yossarian.net/2020/08/16/Hiding-messages-in-x86-binaries-using-semantic-duals

#steganography #osdev #system #programming #infosec #lowlevel