We know many examples of extremely simple but still Turing-complete programming languages like brainfuck or subleq. Such esoteric programming languages were made artificially to show the extremum of the Turing tar-pit.
Some computer programs also have a kind of Turing-complete langauges or machines inside. Moreover, some of them emerged accidentally. Authors thought they need a kind of a configuration language but users found that this language can be used to perform arbitrary computing tasks. Developers made a fine puzzle game, but this game consequently allowed to build virtual machines using game objects.
A list of such pleasant accidents can be found at the link below.
https://beza1e1.tuxen.de/articles/accidentally_turing_complete.html
Some computer programs also have a kind of Turing-complete langauges or machines inside. Moreover, some of them emerged accidentally. Authors thought they need a kind of a configuration language but users found that this language can be used to perform arbitrary computing tasks. Developers made a fine puzzle game, but this game consequently allowed to build virtual machines using game objects.
A list of such pleasant accidents can be found at the link below.
https://beza1e1.tuxen.de/articles/accidentally_turing_complete.html
beza1e1.tuxen.de
Accidentally Turing-Complete
A list of things that were not supposed to be Turing-complete, but are.
The list of people whose work inspires me has replenished with several names over the past year.
One of them is rxi. I don't know a real name hidden behind these letters, but he or she did enormous number of good things. I already wrote about lite — a very fast and beautiful text editor made in C and Lua, microui — a small footprint portable UI framework and atlas — a program for packing fonts and icons into one texture.
The next program I would like to show you is aq. This is a framework built on the top of other software made by rxi: microui, atlas and fe.
With aq you can create your own audio experiments and toys using a tiny lisp-like language. These toys can have a rich GUI and perform digital signal processing to achieve your goals.
The author provides a drum machine toy as an example.
https://github.com/rxi/aq
#dsp #c #sound #lisp #language #compilers #dsl
One of them is rxi. I don't know a real name hidden behind these letters, but he or she did enormous number of good things. I already wrote about lite — a very fast and beautiful text editor made in C and Lua, microui — a small footprint portable UI framework and atlas — a program for packing fonts and icons into one texture.
The next program I would like to show you is aq. This is a framework built on the top of other software made by rxi: microui, atlas and fe.
With aq you can create your own audio experiments and toys using a tiny lisp-like language. These toys can have a rich GUI and perform digital signal processing to achieve your goals.
The author provides a drum machine toy as an example.
https://github.com/rxi/aq
#dsp #c #sound #lisp #language #compilers #dsl
A good paper on autonomous NAT traversal without any third-party server.
http://samy.pl/pwnat/pwnat.pdf
#infosec #network
http://samy.pl/pwnat/pwnat.pdf
#infosec #network
An open source project for learning low-level programming and operating system development in C#. Supported by Intel and University of Bristol.
http://www.flingos.co.uk/
#osdev #system #programming #lowlevel #csharp
http://www.flingos.co.uk/
#osdev #system #programming #lowlevel #csharp
www.flingos.co.uk
FlingOS™ - Home
FlingOS™ - The best place to learn OS development.
I appreciate simple programming languages with almost no syntax like Scheme, Forth, Smalltalk or Red. Looks like there is one more language in this family.
http://sprylang.se/
#compilers #programming #language
http://sprylang.se/
#compilers #programming #language
sprylang.se
Spry Language
The Spry Programming language homepage
A distinctive hobby OS inspired by Plan 9 with a tiling window manager and a lisp-like shell.
https://github.com/patrick-lafferty/saturn
#osdev #system #programming #lisp #plan9
https://github.com/patrick-lafferty/saturn
#osdev #system #programming #lisp #plan9
GitHub
GitHub - patrick-lafferty/saturn: A microkernel based operating system developed from scratch. This repository also includes all…
A microkernel based operating system developed from scratch. This repository also includes all Saturn services and applications. - GitHub - patrick-lafferty/saturn: A microkernel based operating sy...
Over the past few years, many complete hobby operating systems have appeared. By "complete" I mean that they look like finished products. They have a modern graphical interface and a set of basic applications. Among them are wonderful ToaruOS, fast-growing SerenityOS, VanadiumOS, GhostOS and some others.
It's time to add skiftOS to this list. During quarantine, the author did a great job. Just look what he managed to achieve!
https://github.com/skiftOS/skift
#osdev #assembly #c #system #programming
It's time to add skiftOS to this list. During quarantine, the author did a great job. Just look what he managed to achieve!
https://github.com/skiftOS/skift
#osdev #assembly #c #system #programming
GitHub
GitHub - skiftOS/skift: 🥑 The delightful operating system.
🥑 The delightful operating system. Contribute to skiftOS/skift development by creating an account on GitHub.
A funny implementation of a game similar to T-Rex in Google Chrome, which fits in a boot sector.
https://github.com/franeklubi/dino
#gamedev #osdev #assembly #boot #lowlevel
https://github.com/franeklubi/dino
#gamedev #osdev #assembly #boot #lowlevel
GitHub
GitHub - franeklubi/dino: Chrome's t-rex based bootsector game (512 bytes) written in 16-bit x86 assembly (now with 8086 support!)
Chrome's t-rex based bootsector game (512 bytes) written in 16-bit x86 assembly (now with 8086 support!) - franeklubi/dino
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
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
berry
Home
Documentation for berry
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
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
janet-lang.org
The Janet Programming Language
Janet is a functional and imperative programming language. It runs on Windows, Linux, macOS, FreeBSD and *nix.
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
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
https://github.com/limnarch
#osdev #system #programming #vm #fantasycomputer
Only two days are left until the end of the free registration for the PLDI conference (Programming Language Design and Implementation), which will be held online at June 15 — 19.
The list of topics looks impressive!
https://pldi20.sigplan.org/program/program-pldi-2020
#conference #pldi
The list of topics looks impressive!
https://pldi20.sigplan.org/program/program-pldi-2020
#conference #pldi
pldi20.sigplan.org
Program - PLDI 2020
Thank you to everyone involved in Virtual PLDI 2020 for making the conference a big success!
Here are some links to conference content and a report on the conference.
A report on the first virtual PLDI conference
Proceedings of PLDI
Proceedings of…
Here are some links to conference content and a report on the conference.
A report on the first virtual PLDI conference
Proceedings of PLDI
Proceedings of…
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
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
www.speedata.de
speedata Publisher home
The speedata publisher is a fully featured database publishing software for catalogs and datasheets, similar to XSL-FO
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
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
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
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
Arcan
About
Arcan is a powerful development framework for creating virtually anything between user interfaces for specialised embedded applications all the way to full-blown standalone desktop environments. Bo…
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
https://danilafe.com/blog/00_compiler_intro/
#tutorial #compilers #translation #fprog #haskell
Danilafe
Compiling a Functional Language Using C++, Part 0 - Intro
In this first post of a larger series, we embark on a journey of developing a compiler for a lazily evaluated functional language.
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
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
https://tildeverse.org/
#subculture #unix #social #tilde