software – arkenidar.com /wordpress conscious Planet Sat, 20 Nov 2021 14:56:27 +0000 it-IT hourly 1 https://wordpress.org/?v=6.0 186265917 TypeScript ed esperimenti /wordpress/2020/12/19/typescript-ed-esperimenti/ /wordpress/2020/12/19/typescript-ed-esperimenti/#respond Sat, 19 Dec 2020 20:44:19 +0000 /wordpress/?p=58 Vorrei comunicare cioè mettere in comune alcune cose fonte di apprendimento, comprensione, varianti di vedute, design e implementazione di un software che capisce ed esegue delle istruzioni che classicamente è chiamato sistema di scripting ma dalle caratteristiche inusuali ad esempio una struttura gerarchica che contiene un programma divenuto quindi eseguibile.

In altre parole è un interprete di scripts imperativi, il cui parsing è la notazione polacca adattata agli algoritmi, la cui intermediate representation è una lista di liste, la cui esecuzione è particolarmente semplice in modo anche che un programmatore possa agevolmente comprenderla e ragionarci, che sia bello da scrivere e riscrivere, capirlo e riscoprirlo, e che il computer possa operarci su agevolmente (sia sul codice sorgente che quello che ne segue come dicevo).

Ci sono quindi 3 fasi: scrittura in notazione polacca ovvero prefissa, derivazione di un albero ovvero una gerarchia di istruzioni praticamente imperative e strutturate (vedasi la teoria sulla programmazione strutturata), ed infine il funzionamento basato sull’esecuzione della gerarchia di istruzioni.

Può sembrare scarno ma ha obiettivi didattici (anche per me), vuole essere (come ho altrove detto spesso) un giocattolo ma con una sua logica e una sua eleganza di design.

Ho studiato molti linguaggi di programmazione, da quelli di moda a quelli senza tempo, a quelli esoterici e sperimentali, a quelli con ferventi sostenitori a quelli con dietro un supporto di corporations e fondazioni no-profit (o viceversa).

Domani vi parlerò meglio di questo esperimento per i più avanzati e patiti di TypeScript o anche JavaScript, quelli che hanno studiato “linguaggi interpretati e compilati” all’università, a quelli che ci hanno lavorato tanto coi linguaggi da avere una illuminazione sull’essenza sincretica delle varie religiosità delle rispettive communities che altro che illuminate a volte vedono competizione e conflitto.

A domani, a presto, ai prossimi articoli di questo weblog.

]]>
/wordpress/2020/12/19/typescript-ed-esperimenti/feed/ 0 58
LangForge /wordpress/2020/12/12/langforge/ /wordpress/2020/12/12/langforge/#respond Sat, 12 Dec 2020 14:14:28 +0000 /wordpress/?p=50 La forgia dei linguaggi, dice il titolo. Parlo dei linguaggi per programmatori e programmi.

Ne ho studiati vari e mi sono fatto delle idee sul come cambiare qualcosa di essi, per ottenerne di nuovi, magari quindi ibridizzando.

Questo design, ovvero questa progettazione per la costruzione di linguaggi mi ha portato a produrre vari files tra cui i progetti:

  • pang in Lua … non versionato su Git/Github ma pubblicato in modo informale su arkenidar.com
  • js-pang in JS su github di arkenidar (arkenidar=io utente che scrivo)
  • structure-js in JS anch’esso nel mio GH, si differenzia in varie scelte di design tra cui la creazione di nodi gerarchici in cui strutturare le parole del linguaggio computazionale.
  • ah, e anche alcuni progettini che precedono tra cui livefunc e exec_lang.es e altri ancora come OISC

Sugli OISC ovvero i One Instruction Set Computer sono da citare a mio avviso la Macchina di Turing storica e una sua mia rivisitazione quasi involontaria ma frutto di riflessioni sul come unificare le istruzioni, il progetto RawExecutionStepMachine: /wordpress/2020/12/20/il-mio-acronimo-resm/

]]>
/wordpress/2020/12/12/langforge/feed/ 0 50
Rails (Ruby) /wordpress/2020/12/09/rails-ruby/ /wordpress/2020/12/09/rails-ruby/#respond Wed, 09 Dec 2020 15:02:05 +0000 /wordpress/?p=44

rails generate controller Welcome index

Welcome#index

Find me in app/views/welcome/index.html.erb

erb value: <%= 3*2 %>

erb value: <%= @welcome_variable %>

erb value: <%= params[:name] %>


class WelcomeController < ApplicationController
def index
@welcome_variable=123
@param=params[:name]
end
end

<h1>Welcome#index</h1>
<p>Find me in app/views/welcome/index.html.erb</p>

erb value: <%= 3*2 %> <br>

erb value: <%= @welcome_variable %> <br>

erb value: <%= params[:name] %> <br>
class WelcomeController < ApplicationController
  def index
      @welcome_variable=123
      @param=params[:name]
  end
end
rails generate controller Welcome index
]]>
/wordpress/2020/12/09/rails-ruby/feed/ 0 44
demons.trations /wordpress/2020/12/08/demons-trations/ /wordpress/2020/12/08/demons-trations/#respond Tue, 08 Dec 2020 15:30:28 +0000 /wordpress/?p=40 Dai tempi della prima arte elettronica sono state prodotte una quantità di produzioni artistiche, ma qui e oggi vi accennerò a un sottogenere multiforme e in evoluzione ma complessivamente chiamato “demoscene” popolarmente.

]]>
/wordpress/2020/12/08/demons-trations/feed/ 0 40
usi di SSH /wordpress/2020/11/28/usi-di-ssh/ /wordpress/2020/11/28/usi-di-ssh/#respond Sat, 28 Nov 2020 18:32:47 +0000 /wordpress/?p=30 SSH è un sistema usato per interfacciarsi verso un altro computer in rete (detto gergalmente computer host).

Permette:

  • accesso mediante shell che può essere di root (SuperUtente) o di un utente esistente creato specificato. es: ssh dario@arkenidar.com
  • permette l’esecuzione di un comando di testo o anche grafico (usante X11 o altro server grafico)
  • ssh -t root@arkenidar.com “python3” # esegue un comando con terminale (-t come terminal) in questo caso la REPL del linguaggio CPython
  • ssh -Yf root@arkenidar.com “PathFinder” #esegue un programma grafico in questo caso un filemanager

]]>
/wordpress/2020/11/28/usi-di-ssh/feed/ 0 30
pacchetti installati senza APT /wordpress/2020/11/28/pacchetti-installati-senza-apt/ /wordpress/2020/11/28/pacchetti-installati-senza-apt/#respond Sat, 28 Nov 2020 17:29:12 +0000 /wordpress/?p=26

Ecco che installando Dropbox (discussa altrove la sua utilizzabilità) ho dovuto fare un:

sudo dpkg -i dropbox_2020.03.04_amd64.deb # .deb installato

come SuperUtente il Debian Package *.deb viene installato (-i come install).

Questo perchè non è nei repository. Più avanti scoprirete anche altri modi usati per distribuire il software, etc. (aggiornarlo etc etc)

Nota: in casi di dipendenze di pacchetti non risolte un “sudo apt install -f” potrebbe Fixare. Annetto anche un “sudo apt autoremove” a volte torna utile nel rimuovere i pacchetti software non più richiesti (nessun pacchetto dipende da essi)

sudo apt install ./zoom_amd64.deb è invece un esempio di come usare apt per installare un file *.deb

]]>
/wordpress/2020/11/28/pacchetti-installati-senza-apt/feed/ 0 26
APT e gestione software /wordpress/2020/11/28/apt-e-gestione-software/ /wordpress/2020/11/28/apt-e-gestione-software/#respond Sat, 28 Nov 2020 12:46:44 +0000 /wordpress/?p=22 APT è un software di gestione del sistema che permette di:

  • installare (anche reinstallare sopra)
  • disinstallare (mantenendo o rimuovendo la configurazione)
  • aggiornare (può conoscere versioni più recenti)
  • cercare (è un database ricercabile)

… pacchetti software di tipo .deb (Debian) che vengono immagazzinati nei repository ad esempio di Ubuntu di Canonical per poi essere distribuiti, scaricati dagli utenti.

APT è un comando presente anche in Debian oltre che Ubuntu, una questione di parentele e derivazioni (considerando Ubuntu figlia di Debian).

Su altri sistemi ci sono software somiglianti negli intenti e funzionalità ma sono specifici. Ad esempio “dnf” in Fedora o persino “pkg” in Termux di Android come lontana somiglianza.

In alcuni casi può persino occuparsi del salto di versione dell’intero sistema operativo ma per questo documentatevi prima adeguatamente.

Quindi gestione del download, delle versioni e anche della composizione armoniosa dei vari pezzi per cui ad esempio se un pacchetto ne necessita un altro lo installa o a volte più liberalmente lo suggerisce soltanto.

Esempio:

sudo apt install apache2 libapache2-mod-php # apache + php

Non installate software sconosciuto ma informatevi:

apt show apache2 # mostra info su apache2, pacchetto APT

man apt # pagine di manuale su APT

]]>
/wordpress/2020/11/28/apt-e-gestione-software/feed/ 0 22
“console” e frammenti /wordpress/2020/11/27/console-e-frammenti/ /wordpress/2020/11/27/console-e-frammenti/#respond Fri, 27 Nov 2020 19:24:19 +0000 /wordpress/?p=19 I progettisti dei programmi informatici ma anche altri usano ancora un modo classico di interagire con il computer: la “riga di comando” (in English “command line”).

Questa shell testuale permette di operare mediante l’immissione e l’emissione di testi.

ad esempio:

devo clonare un repo Git:

git clone https://github.com/arkenidar/quiz

devo amministrare il server:

ssh root@arkenidar.com

ad esempio combinandoli:

ssh root@arkenidar.com

e sono nel server

cd /var/www/html

e sono nella root del webserver

git clone https://github.com/arkenidar/quiz

e il quiz PHP è accessibile dal server PHP:

/quiz/new/questions.php?set=1

approfondimenti: uso di SSH, uso di RSYNC, uso di server locale magari di tipo LAMP, uso di linode.com come hosting, uso di Git e di Github magari anche.

]]>
/wordpress/2020/11/27/console-e-frammenti/feed/ 0 19
da Felgo a QT a KDE /wordpress/2020/11/23/da-felgo-a-qt-a-kde/ /wordpress/2020/11/23/da-felgo-a-qt-a-kde/#comments Mon, 23 Nov 2020 12:01:53 +0000 /wordpress/?p=5 kdevelop

Immagine cliccabile per zoomare

Benvenuti nell’esperienza. Premetto che ho una maggiore disinvoltura in alcuni campi per esperienza. Ma vorrei comunicare ciò che potrebbe essere uno stimolo ad una personale esperienza.

Strade ci sono. Ci sono strade possibili perché le opzioni che valuto sono comunicanti ed in alcuni casi cooperanti.

Storia di questa realtà. Nasce Unix, nasce GNU, nasce Linux, nascono le distro, nascono i desktop environment, nasce Qt di Trolltech, nasce KDE infine (un desktop enviroment basato su Qt per i sistemi operativi GNU/Linux e altri Unix).

Mezzi. I mezzi per costruire Qt si basano sul C++, ma con QtQuick viene introdotto un livello di QML e JavaScript a fine di avere interfacce di buon design. Il design rimane importante tanto da meritare un tool apposito per i designer che collaborano però con in programmatori. I programmatori hanno la possibilità di scrivere dei programmi che girano quasi ovunque vogliano seguendo un ideale commerciale di praticità. Ma Qt non è solo Grafica Utente ma è anche interfacciamento mediante sensori, uso di database, di web services, etc.

Parole chiave. KDevelop è un IDE per KDE. Mentre Felgo è una azienda che facilita lo sviluppo mobile, ma con dei costi. Insomma è possibile che vi siano vari attori tra coloro che muovono le scelte su ciò che è comune e su ciò che non lo è invece ed è proprio.

KDE. Come ambiente desktop coesiste con altri, anche se qualche accortezza può essere necessaria affinché non si bisticcino nelle aree comuni. L’ho in prova in questo momento con KDE Plasma ed io ero un fan di Kubuntu già 10 anni fa prima di QtQuick e QML che fecero capolino per il mobile ed embedded, specialmente a schermini touch! (W WindowsCE)

Felgo l’ho conosciuta come azienda che fornisce il reload live: https://felgo.com/qml-hot-reload-for-qt-with-felgo-live

Ma la sua offerta è ampia. Ha un suo modello di business e partecipa con Qt (che è passata da TrollTech a Nokia a Digia, da quel che ricordo).

Ma Qt è un progetto open-source e così è rimasto anche se si è affiancato un aspetto commerciale con un suo modello di business. Abbastanza da repellere i puristi del FOSS magari un po disinformati e fanatici. Lo dico perché lo ero e mi sto informando e conoscendo quello che potrebbe essere un sistema di qualità magari da adottare come propria specializzazione. Segue le news, sperimento, spingo i limiti per conoscerli, ma non soltanto valuto ma qualcosa apprendo e vedo cosa posso concretizzare pian piano che la strada è lunga e richiede uno sforzo di resistenza, non di velocità soltanto. 😉

]]>
/wordpress/2020/11/23/da-felgo-a-qt-a-kde/feed/ 1 5
Ciao Lettori! /wordpress/2020/11/23/ciao-mondo/ /wordpress/2020/11/23/ciao-mondo/#respond Mon, 23 Nov 2020 11:56:34 +0000 /wordpress/?p=1 Benvenuto in questo sito personale strutturato con WordPress. Questo è il mio primo articolo. Parlerò e parlo di software, artistiche tematiche, codifica di sofware, amministrazione di sistema

]]>
/wordpress/2020/11/23/ciao-mondo/feed/ 0 1