Google Text-to Speech

Jeg faldt tilfældigvis ogver gTTS-modulet i løbet af ugen. gTTS står for Google Text-to Speech.

Vha Googles Text to Speech-API bliver teksten i dit python script oversat til tale og lader dig gemme filen som eksempelvis mp3.

Først og fremmest skal gtts installeres gennem pip install gtts

Ovenstående er i en lidt mere avanceret udgave, hvor scriptet henter tekst-filen, men den findes også i en udgave, hvor du skriver teksten i selve python-scriptet.

Simpel udgave

Love Letters for Computers

Er du underviser, forælder til et barn med interesse for computere, og søger materiale om computere rettet mod børn fra 4-5 og op efter, anbefaler jeg Linda Liukas helt nye serie, som udkom i denne uge. Liukas behandler en række meget fundamentale emner inden for teknologien. Hun dækker bl.acomputer science, computational thinking, machine learning(som der hidtil har været en klar mangel på til børn, måske lige bortset fra Machinelearning For Kids), netværk, hardware, algoritmer mm.
Derudover er der materialer i tekst til både undervisere og elever. Siden er bestemt et besøg værd, hvis du søger inspiration på området.

Love Letters for Computers

Rename directory

ER du nogensinde kommet til at skrive et forkert navn til en folder? I bet you have 😉 Så er her en løsning på dine problemer.

Kort og godt flytter du bare dit directory over i et nyt vha mv-kommandoen og skriver giver det nye directory navnet, som du vil ændre det gamle directory til.

Ovenstående screenshot viser, hvordan jeg har et directory, som jeg kalder javascript. Det er lidt langt at skrive, så jeg kunne lave et alias til det, men jeg kunne også bare omdåbe mit directory fra javascript til js. Det gøre så simpelt:

mv old_directory new_directory som i mit tilfælde er mv javascript js. Alt flyttes med over i det nye og det gamle, javascript, fjernes til fordel for js.

Bash scripts – basis

Denne post skal ses som en basis forståelse for bash scripts i Linux. Bash scripts er bestemt ikke at foretrække frem for programmeringssprog, men man kan programmere i den.

Som man kan se har jeg skrevet #!/bin/bash som er nødvendig for at ens bash kan finde scriptet og kører det. Du finder din bash via which bash og det er næsten altid bin/bash

Herefter laver jeg en variabel: message=”Hello World!”

Og så skriver jeg en kommentar # this is a comment

Jeg benytter derefter echo til at få udsagt min variabl med Hello World: echo $message

Herefter laver jeg en lille skjult variabel med mit navn som ikke kommer frem, når jeg kalder på mit script. Variablen kalder jeg MY_NAME=”Atle Winther”

Jeg gemmer mit script som hello.sh

Husk at brug chmod, så du kan eksekvere filen. Dette gør du ved at skrive:

chmod +x hello.sh

Når vi skal hente scriptet inde i bash kan vi gøre det på følgende måde:

./hello.sh

source hello.sh

Læg mærke til at vi kun får variablen message frem. Vi får ikke MY_NAME frem. Det gør vi derimod hvis vi skriver:

echo $MY_NAME

Alias

Alias i Unix / Linux gør det nemt og hurtigt, at få et hurtigere arbejdsflow end man ellers ville. Et eksempel på dette er, hvis jeg fx skal åbne Anaconda. Jeg benytter mange af de forskellige applikationer som eksempelvis Spyder og Jupyter samt VS Code.

Inde i min terminal skal jeg skrive anaconda-navigator hver gang jeg vil åbne programmet. Men ved brug af et alias, kan jeg gøre det hele SÅ meget lettere for mig selv.

Så i stedet for at skrive anaconda-navigator kan jeg nøjes med an som en forkortelse.

Jeg skriver et alias således:

alias an=”anaconda-navigator”

Herefter kan jeg bare skrive:

an

Wireshark

Wireshark er en netværkspakke, der inspiserer dit netværk. Det bruges bl.a. til fejlfinding, protokolsudbredelse og analysering.

Wireshark er skrevet i C/C++ og er Open Soruce, og bliver bl.a. brugt af de fleste efterretningstjenester samt helt almindelige borgere, som ønsker at holde sig opdateret ift deres netværk. Wiresharks GUI er virkelig god og overskuelig. Og så er det tilgængeligt til Windows, Mac og Linux.

Du finder Wireshark inde på wireshark.org

Wireshark viser dig en række informationer, og vi kan bl.a. se hvilke porte der er åbne og bruges til hvad. Vi kan finde uønskede elementer og vi kan eksempelvis lave en kill-kommando for at smadrer dem. Heldigvis er man rimelig forskånet for den slags med Linux og hvis man holder sit system i tip-top. Derudover er der forskellige Linux distributioner, som næsten aldrig har porte åbne eller meget få. Det ser straks værre ud, når vi ikke har med Open Soruce distributioner at gøre, og så bliver Wireshark for alvor et nødvendigt værktøj.

Installering på Ubuntu:

sudo apt update

sudo apt

sudo apt -y install wireshark

sudo usermod -a -G wireshark $USER

sudo wireshark

Porte:

Hvis du finder en interessant kilde, som du vil inspicere, klikker du på denne og går straks i gang med at finde destinationsporten, som den benytter.

Dette gør du ved at skrive

sudo lsof -i:443

I dette tilfælde er port 443 tilhørende mig selv, og jeg kan se at Firefox bruger den. Hvis jeg fandt noget suspekt ville jeg straks skrive kill 2130 altså processen. Denne har jeg været inde på tidligere i min blog, hvor jeg blandt andet beskrev den i kombination med htop.

tar compression

At skulle kompresse flere filer ned i samme mappe kan spare din loadetid for mange ressourcer.

tar gør det nemt for dig. Først og fremmest skal vi finde de filer, vi vil komprimere ned til en enkelt tar-mappe.

På min Desktop har jeg en mappe, som hedder js_examples. Den vil jeg gerne have komprimeret ned til en tar-fil og sende til en kammerat.

Jeg går ind i mappen ved Desktop/js_examples og jeg vil for eksemplets skyld gerne lave en ekstra mappe til min js-fil og skriver

mkdir java (nu har jeg lavet en tom mappe). Nu tror folk det er en fil med JAVA. My bad, da jeg ikke lod mærke til at jeg ikke fik skrevet javascript.

mv main.js java (jeg flytte, mv, filen “main.js” ind i den tomme mappe java)

tree – jeg har ikke været inde på tree kommandoen, hvilken er lidt af en fejl, da den er ret genial. Den viser dine mapper og de filer som ligger i mapperne. Det er altså ikke bare en liste, hvor man må gå ind i hvert enkelt mappe for at se hvad der ligger. Som vi kan se ligger der en index.html i js_examples og main.js i mappen java

Jeg går ind på Dekstop og skriver:

tar -zcvf my_java.tar.gz js_examples og vi har nu komprimeret js_examples til en tar fil.

z = gzip

c = create. Laver tar-filen

v = verbose. Lister filerne i mappen. Husk at hvis du har tonsvis af linjer som skal komprimeres, behøver du ikke bruge v, da det bare sløver hele processen. Det er ikke nødvendigt for komprimeringen, men blot en slags ekstra service.

f = file archive.

Gå gerne på nogle vilde opdagelser med tar her: https://www.linuxtechi.com/17-tar-command-examples-in-linux/

my_java er din tar-folder mens js_exmaples er det directory som det henter fra. I bund og grund behøver du ikke skrive my_java.tar.gz hvor tar.gz er efterfulgt men det er god stil at gøre det, så andre kan se hvilken type fil det er.

Vi har nu en tar-fil i vores Desktop som hedder my_java.tar.gz (rød)

Vi vil nu gerne have den dekomrpimeret. Det gør vi ved, at skrive:

tar -zxf my_java.tar.gz

Men først laver vi lige en mappe til den, og skriver mkdir decompressed og flytter mv my_java.tar.gz java ind i mappen.

Læg mærke til at jeg får en besked om, at directory decompressed allerede findes. Det er fordi jeg har lavet det inden jeg tog dett screenshot. Sorry.

Jeg går ind i folderen decompressed og skriver

tar -zcf my_java.tar.gz da denne dekomprimerer filen. Vi har nu adgang til foldere og filerne i den tidligere komprimerede tar-fil (som også stadig findes i decompressed folderen)

z = gzip

x = extract / get

f = file

Endeligt kan vi se vores filer, når vi har udpakket folderen. Brug gerne din tree kommando.

Cron

Cron er din mulighed for, at benytte dig af schedule process. Dvs at du kan bestemme lige præcis hvad tid og hvornår, du ønsker en opgave udført.

Skriv crontab -e

Cron deles op i minutter [0 – 59]

timer (0-23)

Dage(0-31)

Måneder(0 – 12)

Ønsker du eksempelvis at lave en backup hver anden dag kl 03, hver tredje måned kan du skrive følgende i Cron: 0 3 2 */3 * /root/backup.sh – det er et eksempel, og jeg ville næppe selv lave en sådan backup. Her vil jeg bryde det op:

0 = 0

3 = 3 midnat

2 = dagen på måneden

*/3 = hver tredje måned

*= dag på ugen.

Man vil altså lave en backup kl 03, den anden dag på måneden, hver tredje måned alle dage på ugen.

For at se en liste med dine job, skriver du crontab -l

cmatrix

I anledning af 50 året for UNIX, skrev jeg forleden en artikel på LinkedIn om en sjov lille detalje i Linux (ved godt det ikke er helt UNIX, men det er godt nok så tæt på, som det kan blive).

Kommandoen hedder kort og godt cmatrix. Du kan hente den ved at skrive:

sudo apt-get update

sudo apt-get install cmatrix

cmatrix

Foruden bare at skrive cmatrix kan du lave sjove effekter og ændre på farverne etc. Prøv fx: cmatrix -C cyan

Have fun!