Montare su linux directory linux samba (WINDOWS)

Il comando da digitare su shell è:

sudo mount -t cifs “//192.168.30.205/caf” -o guest,noperm,rw “/mnt/caf”

Il comando di cui sopra è per l’utente guest con permessi di lettura e scrittura.

 

Per montare una cartella windows acronis sul pc 192.168.30.110 e con la specificazione della user e password

sudo mount -t cifs -o username=utente,password=password  //192.168.30.110/acronis /mnt/directory

usare kalibrate-rtl

In linux sulla shell:

git clone https://github.com/steve-m/kalibrate-rtl

cd kalibrate-rtl

sudo kal -s GSM900

Otterrete l’elenco dei canali. Prendete il canale con la frequenza piu’ alta. Poi il comando con l’opzione -c canale nel mio caso il canale 34

sudo kal -c 34

Otterrete average absolute error: 12.642 ppm

Metterete al bisogno il valore ppm o 12 o 13

per fare lo scanning delle frequenze grgsm_scanner -p 13

Hubic, scaricare file o fare l’upload

Scarica file:

hubic_sito

#!/bin/bash
URL=”https://api.hubic.com”
CLIENTID=”api_hubic_”
CLIENTSECRET=””
USEREMAIL=”com”
USERPWD=””
CREDENTIALS=$( printf “$CLIENTID:$CLIENTSECRET” | base64 -w 0 )

urlen() {
# Thanks https://gist.github.com/cdown/1163649
local length=”${#1}”
for (( i = 0; i < length; i++ )); do
local c=”${1:i:1}”
case $c in
[a-zA-Z0-9.~_-]) printf “$c” ;;
*) printf ‘%s’ “$c” | xxd -p -c1 |
while read c; do printf ‘%%%s’ “$c”; done ;;
esac
done
}

function setup () {
# Obtain request code
OAUTH=$( curl -s –get “https://api.hubic.com/oauth/auth/” –data-urlencode “client_id=$CLIENTID” –data-urlencode “redirect_uri=$URL” –data-urlencode “scope=usage.r,account.r,getAllLinks.r,credentials.r,sponsorCode.r,activate.w,sponsored.r,links.drw” –data-urlencode “response_type=code” –data-urlencode “state=RandomString_mpOwM8gSJD” | grep “name=\”oauth\”” | cut -d” ” -f4 | cut -c8-13 )
if [ $? -ne 0 ]; then
echo “Error getting request code, verify credentials”
exit 1
fi

# Accepting the app itself for the request token
REQUESTTOKEN=$( curl -s -i “https://api.hubic.com/oauth/auth/” –data-urlencode “oauth=$OAUTH” –data-urlencode “action=accepted” –data-urlencode “account=r” –data-urlencode “credentials=r” –data-urlencode “getAllLinks=r” –data-urlencode “links=r” –data-urlencode “links=w” –data-urlencode “usage=r” –data-urlencode “login=$USEREMAIL” –data-urlencode “user_pwd=$USERPWD” –data-urlencode “submit=Accept” | grep Location | cut -c11- | grep code | cut -d”=” -f2 | cut -d”&” -f1 )
if [ $? -ne 0 ]; then
echo “Error getting Request Token, try again later”
exit 1
fi

# Obtaining the auth code
AUTHCODE=$( curl -s “https://api.hubic.com/oauth/token/” -H “Authorization: Basic $CREDENTIALS” –data-urlencode “code=$REQUESTTOKEN” –data-urlencode “redirect_uri=$URL” –data-urlencode “grant_type=authorization_code” | cut -d”\”” -f10 )
if [ $? -ne 0 ] || [ -z “$AUTHCODE” ]; then
echo “Error $? getting Auth Code, try again later.”
exit 1
fi

#Obtaining endpoint and token
curl -s -H “Authorization: Bearer $AUTHCODE” https://api.hubic.com/1.0/account/credentials > /tmp/paso1.txt
if [ $? -ne 0 ] || [ $( cat /tmp/paso1.txt | grep invalid ) ] ; then
echo “Error $? getting token, check your AuthCode”
echo “Debug: ”
cat /tmp/paso1.txt
echo “***********************************”
rm /tmp/paso1.txt
exit 1
fi

TOKEN=$( cat /tmp/paso1.txt | cut -d”\”” -f4 )
ENDPOINT=$( cat /tmp/paso1.txt | cut -d”\”” -f8 )

#Deleting temp file
rm /tmp/paso1.txt
}

if [ $# == 0 ]; then
echo “hubiC cli manager – NetoMX v0.1”
echo “Usage: $0 [-l / -d / -u] [FILE]”
exit 1
fi

if [ “$1” == “-d” ] || [ “$1” == “-u” ] && [ $# != 2 ]; then
echo “hubiC cli manager – NetoMX v0.1”
echo “Usage: $0 [-l / -d / -u] [FILE]”
exit 1
fi

case “$1” in
“-d”) echo “Scarico i files da questo elenco: $2”
setup
elencuccio=./$2
while read line || [[ -n “$line” ]]; do
FILENAME=$( urlen “$line” )
echo “downloading del seguente file:” $line
curl -s -g -H “X-Auth-Token: $TOKEN” “$ENDPOINT/default/documenti/$FILENAME” -X GET -o “$line”
if [ $? -ne 0 ]; then
echo “Error $? downloading file: $1”
exit 1
fi
done < “$elencuccio”
exit 0
;;
“-u”) echo “Uploading file: $2”
setup
curl -s -g -H “X-Auth-Token: $TOKEN” “$ENDPOINT/default/” -X PUT -T “$2”
if [ $? -ne 0 ]; then
echo “Error $? subiendo archivo $2”
exit 1
fi
exit 0
;;
“-l”) echo “Listing files:”
setup
#Uncomment this if you want pretty JSON
#curl -s -H “X-Auth-Token: $TOKEN” $ENDPOINT/default?format=json -X GET | python -m json.tool
curl -s -H “X-Auth-Token: $TOKEN” $ENDPOINT/default?format=json -X GET | grep -e “bytes” -e “name”
if [ $? -ne 0 ]; then
echo “Error $? listing files”
exit 1
fi
exit 0
;;
*) echo “Error: argument not recognized.”
echo “Usage: $0 [-l / -d / -u] [FILE]”
exit
;;
esac

Combinazioni tasti/tastiera parentesi graffe e tilde

Per aprire una finestra su Ubuntu

(CTRL+ALT+T)


Per digitare la parentesi graffa tramite pc  con tutti i tipi di tastiera:

Per le parentesi graffe in tutti i Sistemi Operativi, basta dare:

Shift + [ (che si traduce poi in Shift + Alt Gr + è) per la parentesi aperta {

Shift + ] (che si traduce poi in Shift + Alt Gr + +) per la parentesi chiusa }

 

Cliccate sulla tastiera contemporaneamente i tasti “Alt” e “123” per generare la parentesi aperta (“{“) e “Alt” e “125” per la parentesi  chiusa (“}”). Per i numeri è necessario utilizzare la tastiera numerica posta sulla destra della tastiera;


Nei sistemi Unix la tilde (cioè questo caratterino ondulato: ~) è un carattere molto utile perchè se scritto in un path rappresenta la cartella home dell’utente

Infatti per la tilde lo schortcut è:

Alt Gr + ì

 

 

Installazione Hubic con montaggio sotto /mnt

Hubic è un servizio di cloud con 10 tera per solo 5 euro al mese.

Ho avuto la necessità di montare il mio account su linux con hubicmount

Prima di tutto installo le dipendenze

apt-get install build-essential libcurl4-openssl-dev libxml2-dev libssl-dev libfuse-dev libjson0-dev pkg-config libmagic-dev

  1. scarico il fasthubicfuse da https://github.com/dan-cristian/fasthubicfuse con il comando git clone https://github.com/dan-cristian/fasthubicfuse
  2. con questo comando si crea una directory sotto al cartella dell’utente di lavoro pertanto entrate in fasthubicfuse e date
    $ ./configure
      make
      sudo make install
    
  3. per montare si usa il comando
    sudo hubicfuse /mnt/hubic -o noauto_cache,sync_read,allow_other
  4. se si vuole puoi modificare fstab per il montaggio automatico dopo il reboot
    /etc/fstab:
    
            hubicfuse /mnt/hubic fuse user,noauto 0 0
  5.  crea il gruppo e aggiungi l’utente
 $ sudo  addgroup fuse
 $ sudo usermod -a -G fuse [username]
soc@server:~# cat /.hubicfuse
# Here is what your app needs to connect to hubiC:
client_id=api_hubic_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
refresh_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
soc@server:~# chmod 600 ./.hubicfuse
  • Eseguire lo script ./hubic_token
soc@server:~/fasthubicfuse# ./hubic_token
client_id (the apps id): api_hubic_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
client_secret (the apps secret): xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
redirect_uri (declared at apps creation): https://phil.writesthisblog.com/
For the scope what you authorize your app to do, enter characters as suggested
in parenthesis, or just hit return if you dont need the item authorized.
Get account usage (r): r
Get all published links in one call (r): r
Get OpenStack credentials, eg. access to your files (r): r
Send activation email (w): w
Add new/Get/Delete published link (wrd): wrd
user_login (the email you used to subscribe): xxxxxxxxxx@xxxxxxx.xx
user_pwd (your hubiCs main password):
Success!
# Here is what your app needs to connect to hubiC:
client_id=api_hubic_xxxxxxxxxxxxxxxxxxxxxxxxxxxx
client_secret=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
refresh_token=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  •  per testare i collegamenti puoi usare i seguenti comandi
soc@server:~# dd if=/dev/zero of=/mnt/hubic/default/Documents/test bs=512k count=200
200+0 records in
200+0 records out
104857600 bytes (105 MB) copied, 14.408 s, 7.3 MB/s
soc@server:~# dd if=/dev/zero of=/mnt/hubic/default/Documents/test bs=100M count=1
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 8.61703 s, 12.2 MB/s
soc@server:~# dd if=/mnt/hubic/default/Documents/test of=/root/test bs=512k count=200 bs=512k count=200
200+0 records in
200+0 records out
104857600 bytes (105 MB) copied, 4.15439 s, 25.2 MB/s

Pensiero computazionale: appunti 1

Quando affrontiamo un problema o abbiamo un’idea, spesso intuiamo la soluzione ma non siamo in grado di formularla in modo operativo per metterla in pratica. Il pensiero computazionale è proprio questo, la capacità di immaginare e descrivere un procedimento costruttivo che porti alla soluzione. Come imparare a parlare ci aiuta a formulare pensieri complessi, così il pensiero computazionale ci offre strumenti ulteriori a supporto della fantasia e della creatività.

Con il pensiero computazionale si definiscono procedure che vengono poi attuate da un esecutore, che opera nell’ambito di un contesto prefissato, per raggiungere degli obiettivi assegnati.

Per questo il pensiero computazionale è per tutti!

E’ una capacità trasversale che va sviluppata il prima possibile. Non è solo per informatici e programmatori, ma programmare è il modo migliore per acquisirlo. Per questo in Europa e nel mondo si svolgono ogni anno campagne di alfabetizzazione per la diffusione del coding. E’ per questa stessa ragione che noi parleremo di coding e giocheremo con la programmazione senza ripeterci ogni volta che lo facciamo per sviluppare il pensiero computazionale. Quello accadrà da sé senza bisogno di dirlo.

Il pensiero computazionale è un processo mentale per la risoluzione di problemi costituito dalla combinazione di metodi caratteristici e di strumenti intellettuali, entrambi di valore generale.

I metodi caratteristici includono:

  • analizzare e organizzare i dati del problema in base a criteri logici;
  • rappresentare i dati del problema tramite opportune astrazioni;
  • formulare il problema in un formato che ci permette di usare un “sistema di calcolo” (nel senso più ampio del termine, ovvero una macchina, un essere umano, o una rete di umani e macchine) per risolverlo;
  • automatizzare la risoluzione del problema definendo una soluzione algoritmica, consistente in una sequenza accuratamente descritta di passi, ognuno dei quali appartenente ad un catalogo ben definito di operazioni di base;
  • identificare, analizzare, implementare e verificare le possibili soluzioni con un’efficace ed efficiente combinazione di passi e risorse (avendo come obiettivo la ricerca della soluzione migliore secondo tali criteri);
  • generalizzare il processo di risoluzione del problema per poterlo trasferire ad un ampio spettro di altri problemi.

Questi metodi sono importanti per tutti, non solo perché sono direttamente applicati nei calcolatori (computer), nelle reti di comunicazione, nei sistemi e nelle applicazioni software ma perché sono strumenti concettuali per affrontare molti tipi di problemi in diverse discipline.

Gli strumenti intellettuali includono:

  • confidenza nel trattare la complessità (dal momento che i sistemi software raggiungono normalmente un grado di complessità superiore a quello che viene abitualmente trattato in altri campi dell’ingegneria);
  • ostinazione nel lavorare con problemi difficili;
  • tolleranza all’ambiguità (da riconciliare con il necessario rigore che assicuri la correttezza della soluzione);
  • abilità nel trattare con problemi definiti in modo incompleto;
  • abilità nel trattare con aspetti sia umani che tecnologici, in quanto la dimensione umana (definizione dei requisiti, interfacce utente, formazione, …) è essenziale per il successo di qualunque sistema informatico;
  • capacità di comunicare e lavorare con gli altri per il raggiungimento di una meta comune o di una soluzione condivisa.

Anche per questi strumenti i benefici si estendono al di là della disciplina informatica.

ffe, un programma fantastico!

ffe è un programma di manipolazione ed estrazione dati. Potete trovare l’ultima versione su http://ff-extractor.sourceforge.net/ffe.html. Funziona sotto Linux e Windows ed ha uno sviluppatore che per me è un genio. Dovete usare la versione 0.3.6 che ha delle nuove funzioni molto utili e potenti.

Si richiama da linea di comando bash con

ffe -c MAV.rc -pflat mav.csv // il file MAV. rc (qui riportato) contiene le configurazioni di base

 

const zero “000000000”  # è una costante che può essere richiamata per la composizione di un tracciato

filter printf04  “xargs -0 printf \”%05d\”” # comandi filter che possono essere chiamati per singolo record
filter toupper  “tr \”[a-z]\” \”[A-Z]\””

// segue la descrizione della struttura del record chiamata csv
structure csv {
type separated ,
header first
record csv     {
field-count 12
}
}

output flat
{
file_header “”
record_header “G1,”
data “%t”
record_trailer “\n”
justify =
indent “”
file_trailer “”
no-data-print no
separator “,”
}

structure definitiva
{
type separated ,
#    output flat2
record mav
{
id 1 G1
field record 2
field numero 10 * riempi printf04
field codicefiscale 16
field cognome 30 * * toupper
field nome 30 * * toupper
field indirizzo 45 * * toupper
field numerocivico 10 * * toupper
field cap 5
field citta 18 * * toupper
field provincia 2 * * toupper
field importo 6 * riempi printf04
field centesimi 2
field descrizione * * * toupper
record-length minimum
}
}

output default
{
data “%d”
field-list record,numero,codicefiscale,cognome,nome,indirizzo,numerocivico,cap,citta,provincia,importo,centesimi,descrizione
separator ,
justify left

}

output riempi
{
data “%D”
separator ,
}

output riempi2
{
data “%t”
}