FatBoySize – utility for displaying the size of folders and files

FatBoySize is a utility for displaying the size of folders and files in the terminal.
Works on any system that supports Python 3.

Run: python3 fbs.py
Output mode 1: python3 fbs.py -v
Output mode 2: python3 fbs.py --version

Only works for the current open path in the terminal.

Example of the result:
python3 ~/Sources/my/fatboysize/fbs.py
.local -> 145.GB
Downloads -> 103.GB
.cache -> 37.0 GB
.android -> 11.6 GB
Sources -> 8.63 GB

As you can see, the Downloads folder is quite big

Links

https://gitlab.com/demensdeum/fatboysize/

KleyMoment – utility for gluing script files

I present to your attention a utility for gluing script files – KleyMoment, as well as a reverse utility for ungluing files back. The utility can be used to glue JavaScript files into one.
The tool is implemented in Python 3 and has a simple command line interface of the form:

python3 KleyMoment.py extensionFiles directoryContainingFiles outputFile

For example, recursive merging of js files from the scripts directory into the output.js file

python3 KleyMoment.py js scripts output.js

Also a utility for unsticking files back AntiKleyMoment, it takes a glued file as input, for example:

python3 AntiKleyMoment.py output.js

Repository:
https://gitlab.com/demensdeum/kleymoment/

Slowride Block Devices Benchmark

Slowride is a utility for testing the read speed of block devices for POSIX compliant operating systems with root access to /dev/sd*. You can test the read performance of block devices using a time threshold to diagnose read performance.
Command to read 100mb blocks on the entire device with output of blocks above the threshold of 2 seconds:

sudo ./slowride /dev/sda 100 2000

Source code

https://gitlab.com/demensdeum/slowride

Swift 4.2.3 – Ubuntu 18.10

Build Swift with the necessary libraries to run on Ubuntu 18.10. The latest version available on the Apple website – for Ubuntu 18.04. Based on the build from the official website with the addition of libraries from Ubuntu 18.04. Also added a sample script to add PATH and LD_LIBRARY_PATH for the bash terminal:
http://www.mediafire.com/file/lrs74mvoj3fti03/swift4.2.3.ubuntu.18.10.x86_64.tar.gz/file

Declarative language Zakaz

I present to your attention a pure declarative programming language – Zakaz. The main idea of ​​the new language is that an application contains commands for execution, written in any form, which must be executed by “executors”. If no “executor” can execute a command, then the program execution stops. Applications are called technical tasks (tez) and must have the extension .tez. The syntax of Zakaz requires two rules to be followed:

  • Each command starts on a new line
  • Each command must be written in formal language that is understandable to humans

Example Hello World.tez:

Show "Hello World" text on screenShow "Zakaz 'tez' example" text on screen

An example of a technical specification that displays a description of the operating principle and opens the site http://demensdeum.com in the Firefox browser

Show "Show website demo" text on screenShow "You need Firefox installed on your system to run this 'tez', and it should be callable through \"system\" C function" text on screenShow "Also there should be \"FirefoxPerformer\" assigned to Zakaz Runtime, please check manual for more information" text on screenShow website with address "http://demensdeum.com" in Firefox

The example above must be run together with the FirefoxPerformer executor, which is capable of handling the last command to output the site via Firefox

./ZakazRuntime openDemensdeumSite.tez FirefoxPerformer

To implement your own performer, you need to implement it as a dynamic library using the abstract class ZakazRuntime::Performer, and return it together with a smart pointer from the global function method createPerformer(). As an example, you can use the implementation of FirefoxPerformer.

Source code

https://gitlab.com/demensdeum/zakaz

Hangar18 source code indexing utility

Hangar18 is a C++ source code indexing utility written in Rust. This utility will implement the “go to definition” functionality in the Saber-Plus IDE.
The utility receives the absolute path to the source code directory and the declaration line that needs to be found as input. The output is grep-like output.

Source code:
https://gitlab.com/demensdeum/hangar18