Αυτός ο ιστοχώρος

Pre-rendered ιστοχώρος. Επανασχεδιάστηκε με στόχο να γίνει εύκολα τροποποιήσιμος, από εμένα συγκεκριμένα, και να διατηρήσει απλή δομή. Πέρασε από πολλούς επανασχεδιασμούς. Η πρώτη κύρια έκδοση βασιζόταν σε αφαίρεση, ενώ η δεύτερη σε συντομογραφίες.

<?php
/* License at the bottom */

include_once("common/wraps/typical-layouts.php");
include_once("common/wraps/external-links.php");
include_once("common/wraps/xml.php");

[...]

function get_biography_html(string $language) {

  return get_typical_layout(
    $language,
V1
<?php
    function biography_array_to_en_gr($array) {
        global $EN, $GR; $EN($array->en); $GR($array->gr);
    }
    $b = "biography_array_to_en_gr";
?>
[...]
<?php $h = simplexml_load_file("bio-high-school.xml") ?>
<h2><?php $b($h->title) ?></h2>
<p>
    <?php $b($h->graduated) ?>
    <a href="http://2lyk-amaliad.ilei.sch.gr/wordpress17/"
    ><?php $b($h->high_school) ?></a>
V2

Μπορείτε να βρείτε και την πρώτη και τη δεύτερη έκδοση στο GitHub.

Συνδυασμοί πλήκτρων του ΛΣ

Σύστημα που απεικονίζει επόμενους επιτρεπτούς συνδυασμούς πλήκτρων και πεδία συμπλήρωης για ορισμένους συνδυασμούς, χτισμένο πάνω από το sxhkd, με 4 κύριες εκδόσεις:

Έκδοση 1: alchain

3 προγράμματα, alchain, alpopup και hk-tui.bash, που συνεργάζονται ώστε πατώντας το πλήκτρο Windows εμφανίζεται ένα τερματικό που καταλαμβάνει το κατώτερο τρίτο της οθόνης, προβάλλει επιτρεπτά πλήκτρα και αναμένει είσοδο. Αφότου πατηθεί το Windows και εμφανιστεί το τερματικό, και μέσα στο τερματικό πατηθεί ακόμη ένα πλήκτρο όπως για παράδειγμα W, σε πολλές περιπτώσεις δε συνέβαινε τίποτα και το τερματικό πρόβαλλε τα επιτρεπτά πλήκτρα που ακολουθούν μετά από το πρώτο.

read -n 1 -s -r
next=$( awk "/^$REPLY/ { print \$2 }" hk-states/$state )

if [ -z $next ]
then
    next=ROOT
    bspc node last --focus
fi
απόσπασμα του hk-tui.bash (Πηγαίος κώδηκας)

Το πρόβλημα ήταν ότι τα παράθυρα δε σχεδιάστηκαν για τέτοια χρήση. Δεν υπήρχαν μόνο προβλήματα που θα αποκαλούσε κανείς bugs, αποδείχτηκε ότι τα παράθυρα είναι πιο διακοσμητικά απ' ότι υπέθεσα. Ο περισσότερος απ' τον κώδικα του συστήματος έχει χαθεί σήμερα.

Έκδοση 2: alk

Shell scripts που δέχονται ορίσματα ανάλογα των αντίστοιχων συνδυασμών πλήκτρων, και ενεργούν. Το εκτελέσιμο al προβάλλει τα stdout και stderr σε ένα τερματικό, αν κλήθηκε από περιβάλλον που δε δίνει τιμή στη μεταβλητή INTERACTIVE Οι ορισμοί των shell functions των εκτελέσιμων alk-* μεταγλωττίζονται σε εγχειρίδιο χρήσης, το οποίο αναλαμβάνει και το ρόλο της λίστας συνδυασμού πλήκτρων. Αν και ο κώδικας είναι παράξενος, είναι πού πιο κοντά στο χαρακτήρα του σημερινού μου κώδικα shell scripts. Παρατηρήστε ότι είναι POSIX compliant αντί για Bash.

if [ "$INTERACTIVE" = '' ]
then set_interactive
fi

execute_al() {
    alk-router "$@"
}
execute_al_interactive() {
    execute_al "$@"
}
απόσπασμα του al

Σε σχέση με την πρώτη έκδοση, αυτή απαιτεί πολύ μεγαλύτερα αρχεία ρυθμίσεων. Επίσης δε χρησιμοποιήθηκε σχεδόν ποτέ εντός τερματικού.

Έκδοση 3: alsnip

Σύστημα παραγωγής φράσεων κώδικα, το οποίο μπορεί να δεχτεί είσοδο από το χρήστη για τη συμπλήρωση μιας φράσης, και στο μεταξύ προβάλλει προτάσεις σχετικά με την είσοδο. Οι φράσεις μπορούσαν να είναι shell scripts που θα εκτελούνταν, και η συμπλήρωση μπορούσε να ξεκινήσει με συνδυασμό πλήκτρων. Τα αρχεία ρυθμίσεων ξεκαθάριζαν ποιες φράσεις είναι shell scripts (προς εκτέλεση), και μεταξύ αυτών, ποιες αντιστοιχούνταν σε συνδυασμούς πλήκτρων, και ποιες απαιτούσαν την παρουσία τερματικού για παράδειγμα για εισαγωγή κωδικών. Ήταν έτοιμο για έκδοση, αλλά είχε πολλές εξαρτήσεις από το σύστημά μου, και επίσης το παράτησα πριν αποφασίσω να το εκδόσω.

fn=powff+key+is-e-q+key-term:"$fn"
fn_powff() {
  case "$act" in
    script) printf 'sudo shutdown %s\n' "$1" ;;
    descr) cat <<EOM
systemd command,  poweroff  is an alias to  shutdown now
EOM
    ;;
    arg1) printf "recommend\nnow\n+1\n+5\n+30\n23:59\n02:00\n" ;;
  esac
}
απόσπασμα του example-config/reset.sh

Ποτέ μου δεν είχα χρησιμοποιήσει έτοιμες φράσεις κώδικα, και ούτε κινητοποιήθηκα χάρη σε αυτό το σύστημα να τις χρησιμοποιήσω. Οπότε το σύστημα ανέλαβε μόνο το ρόλο του συνδυασμού πλήκτρων. Επίσης η κατάχρηση της έμπνευσης από τον κύριο Robert C. Martin έκανε το σύστημα περίπλοκο σε κάθε κλίμακα για τον έως τότε κώδικά μου. Φτιάχνοντας αυτό τον ιστοχώρο, το δημοσίευσα στο GitHub.

Έκδοση 4: scmd

Ένα αρχείο.

volume_set_8() { pacmd set-sink-volume 0 48000; } #m8
volume_set_9() { pacmd set-sink-volume 0 54000; } #m9
volume_set_custom() { pacmd set-sink-volume 0 "$(:|dmenu)"; }

wallpaper_set_scale() { bspc_float; feh --bg-scale "$(find ~/l/gwp/ -type f -print0 | xargs -0 sxiv -ot)"; }
wallpaper_set_fill()  { bspc_float; feh --bg-fill  "$(find ~/l/gwp/ -type f -print0 | xargs -0 sxiv -ot)"; }

Κάθε γραμμή είναι είτε κενή, είναι σχόλιο, είτε ορισμός συνάρτησης shell.

scmd_run() { c="$(dmenu < "$(this_file)" | cut -d'(' -f1)"; test "$c" && scmd_with_bar_status "$c"; } #x
  [...]
this_file() { echo ~/.config/scmd.sh; }

Αυτό είναι ένα από τα έργα μου που καμαρώνω περισσότερο, τώρα το Νοέμβριο του 2023. Κανείς δε με καταλαβαίνει και ο πρώην εαυτός μου θα προσπαθούσε να το βελτιώσει καταστρέφοντάς το. Δε με επηρεάζει τίποτα, το καμαρώνω όσο μας αξίζει εμένα και του υπολογιστή μου, επειδή αυτό δεν είναι έργο ενός ανθρώπου και ούτε και θα μπορούσε να είναι για μένα, είναι έργο συνεργασίας ανθρώπου και υπολογιστή που εκφέρει άποψη σχετικά με το τι λογισμικό τού είναι υγιεινό και τι τον βαραίνει.

scmd_ls_keys() { sed -n 's/^\([a-z0-9_]\+\)(.*#\([^}]*\)$/\2 \1/p' "$(this_file)"; }
scmd_sxhkdrc_vim() { in_vim scmd_sxhkdrc; }
scmd_sxhkdrc() { scmd_ls_keys | awk "{ $(scmd_awk1) $(scmd_awk2) }"; }
scmd_awk1() { printf %s 's = $1; gsub(/./, "; super + &", s); sub("; ", "", s); '; }
scmd_awk2() { printf %s 'print(s); printf("\t. %s && scmd_with_bar_status %s\n\n", "'"$(this_file)"'", $2);'; }
scmd.sh.