Session eight was dedicated to NVM filesystems and database storage backends.
The first speaker from Australia told about KVell - a new key-value storage optimized for modern storage devices (nvme, intel optane, etc.). He said that buffering and delayed disk synchronisation can affect performance of databases negatively. Thus, the design for new fast storage devices need to avoid old solutions made for slow hard disks. As the result, KVell outperforms all modern key-value storages made for non-volatile memory systems.
The report was the only one that interested me a lot.
#SOSP19
The first speaker from Australia told about KVell - a new key-value storage optimized for modern storage devices (nvme, intel optane, etc.). He said that buffering and delayed disk synchronisation can affect performance of databases negatively. Thus, the design for new fast storage devices need to avoid old solutions made for slow hard disks. As the result, KVell outperforms all modern key-value storages made for non-volatile memory systems.
The report was the only one that interested me a lot.
#SOSP19
There was also a session of reports made by students. Two of these presentations were interesting enough and won a prize. The gold prize has been given to the guy that described his work on power consumption profiling software for Linux. The silver prize went to the guy that developed an extension for Visual Studio Code for highlighting scopes of locks inside programs written in Rust.
#SOSP19
#SOSP19
Spleeter is a python library and a command line tool for separating vocals, drums, piano, bass and other instruments in a given music track.
https://github.com/deezer/spleeter
https://github.com/deezer/spleeter
GitHub
GitHub - deezer/spleeter: Deezer source separation library including pretrained models.
Deezer source separation library including pretrained models. - deezer/spleeter
The following guide shows how to create a simple Sqlite clone from scratch in order to understand how databases work.
https://cstack.github.io/db_tutorial/
https://cstack.github.io/db_tutorial/
Let’s Build a Simple Database
How Does a Database Work?
Writing a sqlite clone from scratch in C
During my studentship the demoscene consumed a lot of my spare time. I was just a spectator, not a demoscener, but knew very much in this area.
Now, I discover that many people don't know what the demoscene is. I looked for some good introductory article with a review of this layer of cyberculture, but didn't find anything that could fit my requirements.
Eventually I've found much, much more. The following tutorial not only tells what the demoscene is, it guides the beginner through creation of real artifacts like tracker music, demos, intros and publishing them on well known content hubs for demosceners.
https://github.com/psenough/teach_yourself_demoscene_in_14_days
Now, I discover that many people don't know what the demoscene is. I looked for some good introductory article with a review of this layer of cyberculture, but didn't find anything that could fit my requirements.
Eventually I've found much, much more. The following tutorial not only tells what the demoscene is, it guides the beginner through creation of real artifacts like tracker music, demos, intros and publishing them on well known content hubs for demosceners.
https://github.com/psenough/teach_yourself_demoscene_in_14_days
GitHub
GitHub - psenough/teach_yourself_demoscene_in_14_days: A guide to learn and become active in the demoscene within a couple of weeks
A guide to learn and become active in the demoscene within a couple of weeks - psenough/teach_yourself_demoscene_in_14_days
I already mentioned the software made by Salvatore Sanfilippo including his tiny text editor named kilo. There is a detailed tutorial that shows how such editor can be written in 184 small steps. The author really starts from 3 lines of code and gradually extends the program.
https://viewsourcecode.org/snaptoken/kilo/
https://viewsourcecode.org/snaptoken/kilo/
Small3dlib is a public domain 3D software rasterizer for constrained devices which uses only integer arithmetics.
https://gitlab.com/drummyfish/small3dlib
There is also a raycasting engine made by the same author.
https://gitlab.com/drummyfish/raycastlib
https://gitlab.com/drummyfish/small3dlib
There is also a raycasting engine made by the same author.
https://gitlab.com/drummyfish/raycastlib
GitLab
Miloslav Číž / small3dlib · GitLab
Surely many of us know Autodesk Inc. and its famous AutoCad, but few people know who John Walker is. He is the founder of Autodesk Inc. and a developer of the company's core products. In the next article, he tells how he wrote a neural network that recognized characters in 250 lines of BASIC for Commodore 64. He sent the program to all popular magazines about personal computing, but the program was not accepted for publication, as too esoteric. In 1987 neural networks were not so popular outside the academic community and few people understood why they were needed at all.
http://www.fourmilab.ch/documents/commodore/BrainSim/
http://www.fourmilab.ch/documents/commodore/BrainSim/
Fourmilab.ch
Neural Network on a Commodore 64
by John Walker September 4, 1987
AQaml is a self-hosted compiler for a rich subset of OCaml with pattern matching, variants, mutual recursion, references, GC and etc.
https://github.com/ushitora-anqou/aqaml
https://github.com/ushitora-anqou/aqaml
GitHub
ushitora-anqou/aqaml
Yet another tiny tiny self-hosted OCaml compiler with an also tiny standard library. - ushitora-anqou/aqaml
MAL is a variant of LISP that has 82 different implementations in various programming languages.
https://github.com/kanaka/mal/
https://github.com/kanaka/mal/
GitHub
GitHub - kanaka/mal: mal - Make a Lisp
mal - Make a Lisp. Contribute to kanaka/mal development by creating an account on GitHub.
Si78c is a pixel-accurate clone of the original Space Invaders game, it uses the original game resources and produces identical memory states during execution.
http://blog.loadzero.com/blog/si78c/
http://blog.loadzero.com/blog/si78c/
Loadzero
Space Invaders in C
Unfortunately, Rui Ueyama stopped developing his optimizing C compiler (9cc), preferring the simpler chibicc, which is used as an example in his book (in Japanese). But it seems I found a replacement for 9cc, it is a small optimizing C compiler made by Lars Kirkholt Melhus. Lacc is easy to understand, self-hosting and actively developed.
lacc: https://github.com/larmel/lacc
Book written by Rui Ueyama: https://www.sigbus.info/compilerbook
lacc: https://github.com/larmel/lacc
Book written by Rui Ueyama: https://www.sigbus.info/compilerbook
GitHub
GitHub - larmel/lacc: A simple, self-hosting C compiler
A simple, self-hosting C compiler. Contribute to larmel/lacc development by creating an account on GitHub.
In the following series on Medium Tomáš Bouda tells about 100 interesting algorithms for 100 days.
https://medium.com/100-days-of-algorithms
https://medium.com/100-days-of-algorithms
100 days of algorithms
100 days, 100 algorithms - a challenge consisting of many small pieces
C for all (C∀) is a new programming language based on C and supported by Huawei. C∀ extends C with many useful features like tuples, references, constructors and destructors, type extension, nested procedures, polymorphism, traits, coroutines, threads, and etc.
https://cforall.uwaterloo.ca/
https://cforall.uwaterloo.ca/
George Hilliard, an embedded systems engineer, has designed a business card with a minimal ARM computer inside. And it runs Linux!
https://www.thirtythreeforty.net/posts/2019/12/my-business-card-runs-linux/
https://www.thirtythreeforty.net/posts/2019/12/my-business-card-runs-linux/
www.thirtythreeforty.net
My Business Card Runs Linux
In which I build a Linux computer cheap enough to give away
Lilith is a hobby operating system written in Crystal. It includes a simple Unix-like kernel, a window system and several applications.
https://github.com/ffwff/lilith
https://github.com/ffwff/lilith
GitHub
GitHub - ffwff/lilith: x86-64 os made in crystal
x86-64 os made in crystal. Contribute to ffwff/lilith development by creating an account on GitHub.
A short and clear introduction to a programming language is a rarity. The following article is just such a case. Take a closer look at the Smalltalk language. Possibly you may not be using it in everyday practice, but it can greatly change your way of thinking.
http://web.cecs.pdx.edu/~harry/musings/SmalltalkOverview.html
http://web.cecs.pdx.edu/~harry/musings/SmalltalkOverview.html
SSG is a tiny perl noscript that compiles markdown-like text files to simple postnoscript presentations. Fonts and colors are easily configurable.
https://github.com/jroimartin/ssg
https://github.com/jroimartin/ssg
GitHub
GitHub - jroimartin/ssg: ssg is a slide generation system which provides a markdown-like syntax
ssg is a slide generation system which provides a markdown-like syntax - jroimartin/ssg
Redshirt is a research operating system written in Rust. It executes WASM binaries and can theoretically obtain them from a decentralised network.
Any program in Redshirt can declare that it implements some interface and OS will use the program to handle requests corresponding to the interface. For example such a program can work as a filesystem server or a TCP/IP stack.
Interfaces and programs in Redshirt are uniquely identified by their hashes, it allows to store the programs in an IPFS-like distributed database.
https://github.com/tomaka/redshirt
Any program in Redshirt can declare that it implements some interface and OS will use the program to handle requests corresponding to the interface. For example such a program can work as a filesystem server or a TCP/IP stack.
Interfaces and programs in Redshirt are uniquely identified by their hashes, it allows to store the programs in an IPFS-like distributed database.
https://github.com/tomaka/redshirt
GitHub
GitHub - tomaka/redshirt: 🧑🔬 Operating system
🧑🔬 Operating system. Contribute to tomaka/redshirt development by creating an account on GitHub.