Telefonia

Mi è capitato oggi di dover gestire un ambiente di test interconnesso con la rete telefonica. Riporto qui un po’ di appunti, soprattutto per evidenziare l’abbondanza di acronimi nei quali ci si imbatte. E’ solo una lista di acronimi, non la spiegazione di cosa siano. Sul web trovate un sacco di risorse che vi spiegano i dettagli.

  • PSTN (Public Switched Telephone Network) ora più nota in Italia come
  • RTG (Rete Telefonica Generale) è l’Internet della telefonia, anzi, Internet sfrutta la RTG.

Ma talvolta con PSTN intendiamo la vecchia rete commutata (quella che meccanicamente sostituiva il lavoro delle centraliniste con gli spinotti) ma un  acronimo più adeguato è

  • POTS (Plain Old Telephone Service, ma che qualche tempo fa significava Post Office Telephone System).

La rete telefonica italiana, poi, si struttura in quattro livelli (il primo è il più vicino all’apparecchio telefonico di casa, l’ultimo è il più generale):

  • SL (Stadio di Linea) è la centrale da dove parte il famoso ultimo miglio; ce ne sono circa 10.500 che coprono 8100 Comuni;
  • SGU (Stadio di Gruppo Urbano) a cui si collegano più SL: ce ne sono 628, gli SL sono a loro collegati tramite cavo interrato o ponte radio;
  • SGT (Stadio di Gruppo di Transito, o centrali interurbane) a cui accedono gli SGU (ce ne sono 65). Questi numeri non sono certi, fonti diverse riportano numeri leggermente diversi. Diciamo che ci sono 104 SL, 102 SGU e 101 SGT. Giusto l’ordine di grandezza. Queste SGT sono collegate tramite 3 gateway (che si trovano a Milano, Roma e Palermo) alla
  • OPB (Optical Packet Backbone) la dorsale a fibre ottiche internazionale
  • BBN è la dorsale nazionale (Back Bone Nazionale), che dovrebbe sostituire la rete basata su SL/SGU/SGT, da non confondersi con Bolt, Beranek & Newman, l’azienda che ha partecipato alla nascita di Internet (la BBN è dove lavorava Ray Tomlinson. Sì, proprio quello che ha inventato l’email). Ah! Backbone in Anatomia è la colonna vertebrale.

Ogni punto di accesso (il singolo telefono), poi, può al suo interno articolarsi in una piccola sottorete interconnessa che accede alla rete telefonica tramite un

  • PBX (Private Branch Exchange), volgarmente detto centralino e a volte detto
  • PABX (Private Automatic Branch Exchange), che può svolgere varie funzioni:
  • ACD (Automatic Call Distribution)
  • CTI (Computer Telehony Integration)
  • DISA (Direct Inward Selection Access)
  • IVR (Interactive Voice Response) che esistono in modalità di accesso vocale o tramite
  • DTMF (Dual Tone Multi Frequency), la tastiera a toni.

D’altro canto io necessitavo di far accedere un servizio da un server remoto, che a sua volta è collegato al suo PBX tramite il protocollo

  • SIP (Session Initiation Protocol), protocollo a livello di applicazione basato su
  • IP (Internet Protocol), e impiegato principalmente in applicazioni
  • VoIP (Voice over IP)

ma l’ingegnere mio collega mi ha detto di farlo su una

  • VPN (Virtual Private Network)

L’alternativa di esporre il servizio su internet?

  • MPC (omissis, su Google non lo trovo…)

mi ha risposto.

LaTeX

LaTeX

Di questo sistema di produzione di articoli scientifici mi sono innamorato nella mia tesi di laurea. Lo uso ancora per produrre la documentazione del software che scrivo.

Masochismo? no, solo nostalgia.

Per usare le lettere accentate disponibili nella tastiera evitando cose di tipo “`e” e ammennicoli simili, basta aggiungere una direttiva per l’utilizzo della codifica UTF 8 nel preambolo del file:

documentclass[11pt,a4paper,onecolumn]{report}
usepackage[italian]{babel}
usepackage[utf8]{inputenc}

questo snippet riporta le istruzioni che servono per:

  • caricare le sillabazioni per la lingua italiana;
  • adottare utf8 come input encoding.

Altri dettagli in WikiBooks.

Il primo editor scientifico non si scorda mai…

Extranet

Per Extranet si intende l’infrastruttura di comunicazione tra un soggetto erogatore di un servizio basato su Internet e una o più sottoreti, o anche punti di acceso singoli, ai quali viene dato un accesso riservato per fruire di applicativi prevalentemente basati su web (anche se non solo questi).

In sostanza è un canale riservato attraverso il quale, ad esempio, un’azienda tratta gli ordinativi con i suoi fornitori, canale che sfrutta l’Internet come infrastruttura ma il cui accesso non è pubblico, bensì controllato.

Sto seguendo la progettazione dell’architettura di questo canale di comunicazione per conto dell’Azienda Ospedaliera di Padova / ULSS 16.

Concluso il corso di Realizzazione di siti web

Si è concluso, con la prova scritta di questa settimana, l’insegnamento Realizzazione di siti Web del Corso ITFS organizzato presso l’ITIS Zuccante di Mestre Venezia.

La prova è consistita nella realizzazione di un semplice sito web nel quali erano previste le conoscenze del linguaggio XHTML 1.0 + CSS 2.0 e la progettazione di una semplice form con alcuni elementari controlli Javascript.

Il bilancio del corso, che emerge dagli elaborati, è essenzialmente soddisfacente.

Antimateria

Al CERN di Ginevra, dal nuovo acceleratore LCH stanno uscendo risultati straordinari. Uno è questo, osservato il 17 novembre scorso: sono stati isolati 38 atomi di antiidrogeno (un antiprotone con un orbitale costituito da un positrone) per circa un decimo di secondo. I dettagli nella rassegna stampa del CERN.

Anche Facebook usa PHP/MySQL

Il popolare sito di social networking Facebook usa (per il front end, l’infastruttura con cui interagiscono direttamente gli utenti) il framework LAMP (acronimo per Linux Apache MySQL PHP).

Per aumentare le prestazioni, staticizzando richieste frequenti, Facebook impiega Memcache.

Questo sito spiega un po’ più a fondo la cosa.

Corso IFTS Zuccante – Ultima settimana

Ultima settimana di corso. Facciamo esercitazioni.

Quale versione Javascript è supportata da questo browser?

Per stabilire la versione di Javascript supportata dal browser ho trovato un metodo che ho descritto in questa risorsa.

Sorprendentemente HTML toglie in questo caso le castagne dal fuoco a Javascript. Non esiste una funzione di Javascript che mi dice di che versione esso sia. Il browser può intercettare la versione e tramite un trucco posso determinare la versione del Javascript: se dispongo molti tag di script in serie, il browser caricherà quelli generici dichiarati come language="Javascript" e quelli con language="Javascript1.x" dove x è la versione di Javascript supportata dal browser con cui sto navigando.

Tengo comunque a precisare che è una soluzione dirty: l’attributo language è deprecato fin dalla versione 4.01 di HTML.

Encoding e Collation in MySQL

Mi sono imbattuto in un problema bloccante di un sito web: la non coerente adozione di uno stesso encoding in tutti i “pezzi” dell’applicazione web provoca errori bloccanti.

In sostanza ci sono in MySQL due caratteristiche:

  1. l’encoding (codifica) che è la mappatura tra il simbolo (ad esempio “è”) ed il codice esadecimale che lo rappresenta in un file, in un pacchetto TCP/IP, in un database.
  2. la collation (confronto) che consiste in una serie di regole secondo le quali le stringhe vengono confrontate.

Traggo queste informazioni dal sito della MySQL AB.

Collation binaria

Supponiamo di avere questo alfabeto A={‘a’,’b’,’A’,’B’}.

L’encoding (la codifica) è l’insieme c={0, 1, 2, 3}.

IL charset è la mappa c -> A che si può esprimere nella tabella

Simbolo Codice
a 0
b 1
A 2
B 3

La collation è una regola che ci consente di confrontare le stringhe. Confrontare le stringhe sembra semplice, ma ha le sue difficoltà. A partire da una regola lessocigrafica ‘a’ < ‘b’ (a precede b), possiamo utilizzare i codici (visto che hanno la mappa conserva l’ordinamento) per stabilirlo (0 < 1 quindi ‘a’ < ‘b’). Questa si dice collation binaria. Funziona anche se confrontiamo ‘A’ e ‘B’ (infatti questo lo possiamo dedurre dal momento che 2<3).

Ma, secondo questa regola di confronto, ‘b’ < ‘A’!

Dobbiamo adottare una regola più complessa, ad esempio la collation di tipo case-insensitive.

Secondo questa regola dobbiamo prima calcolare c mod 2 per ogni carattere e poi confrontare i codici risultanti, quindi stabiliamo che ‘A’ < ‘b’ (e non il contrario come suggerirebbe il confronto binario).

La cosa si complica se utilizziamo caratteri ‘è’, ‘à’… anzi… ogni lingua ha le sue regole di precedenza. Quindi se al DB chiediamo di fare confronti di stringhe è necessario impostare l’algoritmo giusto per quella lingua.

First Arpanet Message

Ho trovato a questo indirizzo una commemorazione del primo messaggio ARPANET, risalente al 29 ottobre 1969.

Altri collegamenti interessanti sulla storia di Internet: