(sostituzioni). Nei codici sostitutivi, le lettere vengono cambiate in altre lettere dello stesso alfabeto; durante la codifica, le lettere vengono cambiate in qualcosa di completamente diverso: immagini, simboli di altri alfabeti, sequenze di caratteri diversi, ecc. Viene compilata una tabella di corrispondenza univoca tra l'alfabeto del testo di origine e i simboli del codice e, in conformità con questa tabella, si verifica la codifica uno a uno. Per decodificare, è necessario conoscere la tabella dei codici.
Ci sono un gran numero di codici utilizzati in diverse aree della vita umana. I codici ben noti vengono utilizzati principalmente per la comodità di trasferire informazioni in un modo o nell'altro. Se la tabella dei codici è nota solo al trasmettitore e al ricevitore, si ottiene un cifrario piuttosto primitivo, che è facilmente suscettibile di analisi di frequenza. Ma se una persona è lontana dalla teoria della codifica e non ha familiarità con l'analisi della frequenza del testo, allora è piuttosto problematico per lui indovinare tali cifre.
A1Z26
Il cifrario più semplice. Si chiama A1Z26 o nella versione russa A1Я33. Le lettere dell'alfabeto vengono sostituite con i loro numeri ordinali.
"NoZDR" può essere crittografato come 14-15-26-4-18 o 1415260418.
codice Morse
Lettere, numeri e alcuni segni sono associati a un insieme di punti e trattini, che possono essere trasmessi via radio, suono, bussare, telegrafo leggero e bandiere di segnalazione. Poiché i marinai hanno una bandiera corrispondente associata a ciascuna lettera, è possibile trasmettere un messaggio con bandiere.
Braille
Il Braille è un sistema di lettura tattile per non vedenti, composto da caratteri a sei punti chiamati celle. La cella è alta tre punti e larga due.
Diversi caratteri braille si formano posizionando punti in posizioni diverse all'interno di una cella.
Per comodità, i punti sono descritti durante la lettura come segue: 1, 2, 3 da sinistra dall'alto verso il basso e 4, 5, 6 da destra dall'alto verso il basso.
Durante la compilazione del testo, vengono rispettate le seguenti regole:
una cella viene saltata tra le parole (spazio);
nessuna cella viene saltata dopo la virgola e il punto e virgola;
un trattino è scritto insieme alla parola precedente;
il numero è preceduto da un segno digitale.
Pagine codice
Nelle missioni e negli indovinelli del computer, puoi codificare le lettere in base ai loro codici in varie pagine di codici - tabelle utilizzate sui computer. Per i testi in cirillico, è meglio utilizzare le codifiche più comuni: Windows-1251, KOI8, CP866, MacCyrillic. Sebbene per la crittografia complessa, puoi scegliere qualcosa di più esotico.
Puoi codificare con numeri esadecimali o convertirli in decimali. Ad esempio, la lettera E in KOI8-R ha il codice B3 (179), in CP866 è F0 (240) e in Windows-1251 è A8 (168). E puoi cercare le lettere nelle tabelle giuste per una corrispondenza in quelle a sinistra, quindi il testo risulterà essere digitato in "krakozyabrami" come èαᬫº∩íαδ (866 → 437) o Êðàêîçÿáðû (1251 → latino-1).
E puoi cambiare la metà superiore dei caratteri in quella inferiore all'interno di una tabella. Quindi per Windows-1251 invece di "krakozyabra" ottieni "jp" jng ap ("invece di" HELICOPTER "-" BEPRNK (R ". Tale spostamento nella tabella codici è una classica perdita del bit più significativo in caso di errori sui server di posta possono essere codificati con uno spostamento inverso verso il basso di 128 caratteri e questa codifica sarà una variante del codice - ROT128, solo non per il solito alfabeto, ma per la tabella codici selezionata.
L'ora esatta dell'origine del cifrario è sconosciuta, ma alcuni dei documenti trovati di questo sistema risalgono al XVIII secolo. Variazioni di questo cifrario furono usate dall'Ordine Rosacrociano e dai Massoni. Questi ultimi lo usavano abbastanza spesso nei loro documenti e corrispondenza segreti, quindi il cifrario iniziò a essere chiamato il codice dei massoni. Anche sulle lapidi dei massoni, puoi vedere le iscrizioni che usano questo codice. Un sistema di crittografia simile è stato utilizzato durante la guerra civile americana dall'esercito di George Washington, nonché dai prigionieri nelle carceri federali delle confederazioni statunitensi.
Di seguito sono riportate due opzioni (blu e rossa) per riempire la griglia di tali cifre. Le lettere sono disposte a coppie, la seconda lettera della coppia è disegnata con un simbolo punteggiato:
Cifrari del diritto d'autore
Cifrari, dove un carattere dell'alfabeto (lettera, numero, segno di punteggiatura) corrisponde a un carattere grafico (raramente di più), ne sono stati inventati moltissimi. La maggior parte di essi è progettata per essere utilizzata in film di fantascienza, cartoni animati e giochi per computer. Ecco alcuni di loro:
Uomini che ballano
Uno dei più famosi codici di sostituzione del copyright è "". È stato inventato e descritto dallo scrittore inglese Arthur Conan Doyle in una delle sue opere su Sherlock Holmes. Le lettere dell'alfabeto vengono sostituite con caratteri che sembrano uomini in varie pose. Nel libro, gli ometti non sono stati inventati per tutte le lettere dell'alfabeto, quindi i fan hanno modificato e rielaborato creativamente i simboli, ottenendo il seguente codice:
L'alfabeto di Thomas More
Ma un tale alfabeto fu descritto nel suo trattato "Utopia" di Thomas More nel 1516:
Cifrari della serie animata "Gravity Falls"
Bill Shifra
Stanford Pines (scrittore di diari)
Alfabeto Jedi di Star Wars
Alfabeto alieno da "Futurama"
L'alfabeto krypton di Superman
Alfabeti bionici
Semantica(fr. sémantique dal greco antico. σημαντικός - denotando) - la scienza della comprensione di determinati segni, sequenze di simboli e altre convenzioni. Questa scienza è utilizzata in molti campi: linguistica, prossemica, pragmatica, etimologia, ecc. Non so cosa significhino queste parole e cosa facciano tutte queste scienze. E non importa, mi interessa la questione dell'applicazione della semantica nel layout dei siti.
La nota
Non toccherò qui il termine Web semantico. A prima vista, potrebbe sembrare che i temi Semantic Web e Semantic HTML Code siano quasi la stessa cosa. Ma in realtà il Semantic Web è un concetto piuttosto filosofico e non ha molto in comune con la realtà attuale.
Layout semantico: che cos'è?
Nella lingua, ogni parola ha un significato, uno scopo specifico. Quando dici "salsiccia", intendi un prodotto alimentare che è carne macinata (di solito carne) in un involucro oblungo. Insomma, intendi salsiccia, non latte o piselli.
Anche l'HTML è un linguaggio, le sue "parole", chiamate tag, hanno anche un certo significato e scopo logico. Pertanto, prima di tutto il codice HTML semantico è un layout con l'uso corretto dei tag HTML, utilizzandoli per lo scopo previsto, così come sono stati concepiti dagli sviluppatori del linguaggio HTML e degli standard web.
microformats.org è una comunità che lavora per dare vita alle idee idealistiche del Web semantico avvicinando il markup della pagina a quegli ideali semantici.
Perché e chi ha bisogno del layout semantico?
Se sul mio sito web le informazioni vengono visualizzate allo stesso modo del design, perché dovresti ancora romperti il cervello e pensare a un po' di semantica?! Questo è un lavoro extra! Chi ne ha bisogno?! Chi lo apprezzerà oltre a un altro progettista di layout?
Ho sentito spesso queste domande. Scopriamolo.
HTML semantico per sviluppatori web
Codice semantico per gli utenti
Aumenta la disponibilità di informazioni sul sito. Questo è importante principalmente per agenti alternativi come:
- il codice semantico influisce direttamente sulla quantità di codice HTML. Meno codice -> pagine più facili -> caricamento più veloce, meno RAM richiesta dal lato utente, meno traffico, meno dimensioni del database. Il sito diventa più veloce e meno costoso.
- browser vocali per cui i tag e i loro attributi sono importanti per pronunciare il contenuto correttamente e con l'intonazione necessaria, o viceversa, per non pronunciare troppo.
- dispositivi mobili che non supportano completamente i CSS e quindi si affidano principalmente al codice HTML, visualizzandolo a schermo in base ai tag utilizzati.
- dispositivi di stampa anche senza CSS aggiuntivi, le informazioni verranno stampate meglio (più vicino al design) e la creazione della versione perfetta per la stampa si trasformerà in poche semplici manipolazioni CSS.
- inoltre, ci sono dispositivi e plug-in che ti consentono di navigare rapidamente nel documento, ad esempio per titoli in Opera.
HTML semantico per macchine
I motori di ricerca migliorano costantemente i loro metodi di ricerca in modo che i risultati includano le informazioni che davvero cercando utente. L'HTML semantico facilita questo perché si presta a un'analisi molto migliore: il codice è più pulito, il codice è logico (puoi vedere chiaramente dove sono le intestazioni, dove si trova la navigazione, dove si trova il contenuto).
Un buon contenuto e un layout semantico di alta qualità sono già un'applicazione seria per buone posizioni nei risultati dei motori di ricerca.
La semantica del codice HTML è sempre una questione scottante. Alcuni sviluppatori cercano di scrivere sempre codice semantico. Altri criticano gli aderenti dogmatici. E alcuni non hanno nemmeno idea di cosa sia e perché sia necessario. La semantica è definita in HTML in tag, classi, ID e attributi che descrivono lo scopo, ma non specificano esattamente il contenuto in essi contenuto. Cioè, stiamo parlando della separazione del contenuto e del suo formato.
Cominciamo con un esempio ovvio.
Semantica del codice errato
Buona semantica del codice
Il testo dell'articolo, che è stato scritto da qualcuno. Inco Gnito- il suo autore.Titolo dell'articolo
Che tu pensi che HTML5 sia pronto per l'uso o meno, molto probabilmente usando il tag Ma non tutto è rappresentato così chiaramente con i tag HTML5. Diamo un'occhiata a un insieme di nomi di classi e vediamo se soddisfano i requisiti semantici. Non codice semantico. Questo è un classico esempio. Ogni ambiente CSS per la griglia modulare utilizza questo tipo di nomi di classe per definire gli elementi della griglia. Che si tratti di "yui-b", "grid-4" o "spanHalf", questi nomi sono più vicini alla descrizione del markup che alla descrizione del contenuto. Tuttavia, il loro utilizzo nella maggior parte dei casi è inevitabile quando si lavora con modelli di griglie modulari. Codice semantico. Il piè di pagina ha assunto un significato duraturo nel web design. Questo è il piè di pagina della pagina che contiene elementi come la navigazione ripetuta, i diritti di utilizzo, le informazioni sull'autore e così via. Questa classe definisce un gruppo per tutti questi elementi senza la loro descrizione. Se sei passato all'utilizzo di HTML5, è meglio utilizzare l'elemento Non codice semantico. Definisce il contenuto con precisione. Ma perché il testo dovrebbe essere grande? Per distinguersi da altri testi più piccoli? "standOut" (selezione) è più appropriato in questo caso. Puoi decidere di cambiare lo stile per il testo evidenziato, ma non fare nulla con le sue dimensioni, nel qual caso il nome della classe potrebbe confonderti. Codice semantico. In questo caso, si tratta di determinare il livello di importanza di un elemento nell'interfaccia dell'applicazione (ad esempio, un paragrafo o un pulsante). Un articolo di livello superiore può avere colori vivaci e dimensioni maggiori, mentre articoli di livello inferiore possono contenere più contenuti. Ma in questo caso non esiste una definizione esatta degli stili, quindi il codice è semantico. Questa situazione è molto simile all'utilizzo dei tag Codice semantico. Se solo ogni nome di classe potesse essere definito così chiaramente! In questo caso, abbiamo una descrizione di una sezione che ha contenuti facili da descrivere, proprio come "tweet", "paginazione" o "admin-nav". Non codice semantico. In questo caso, si tratta di impostare lo stile per il primo paragrafo della pagina. Questa tecnica viene utilizzata per attirare l'attenzione dei lettori sul materiale. Meglio usare il nome "intro", che non menziona l'elemento. Meglio ancora, usa un selettore per tali paragrafi, come l'articolo p: primo di tipo o h1 + p. Non codice semantico. Questo è un nome di classe molto generico che viene utilizzato per organizzare la formattazione degli elementi. Ma non c'è niente in esso per descrivere il contenuto. Vari teorici della semantica raccomandano di usare un nome di classe come "gruppo" in questi casi. È probabile che abbiano ragione. Poiché questo elemento serve indubbiamente a raggruppare diversi altri elementi, e il nome consigliato descriverebbe meglio il suo scopo senza entrare nei dettagli. Non codice semantico. Descrizione troppo dettagliata del formato del contenuto. È meglio scegliere un nome diverso che descriva il contenuto, piuttosto che il suo formato. Codice semantico. La classe descrive molto bene lo stato del contenuto. Ad esempio, il messaggio di successo potrebbe avere uno stile completamente diverso dal messaggio di errore. Non codice semantico. Questo esempio sta cercando di definire il formato del contenuto, non il suo scopo. "plain-jane" è molto simile a "normale" o "normale". Idealmente, i CSS dovrebbero essere scritti in modo che non siano necessari nomi di classe come "normale" per descrivere il formato del contenuto. Non codice semantico. Questi tipi di classi sono comunemente usati per definire elementi del sito che non dovrebbero essere inclusi in una catena di collegamenti. In questo caso, è meglio usare qualcosa come rel = nofollow per i link, ma non una classe per tutti i contenuti. Non codice semantico. Questo è un tentativo di descrivere il formato del contenuto, non il suo scopo. Supponiamo che tu abbia due articoli sul tuo sito. E vuoi dare loro stili diversi. Le recensioni dei film avranno uno sfondo blu e Hot News avrà uno sfondo rosso e un carattere più grande. Uno dei modi per risolvere il problema è questo: Un altro modo è questo: Sicuramente, se chiedi a diversi sviluppatori quale codice è più coerente con i requisiti della semantica, la maggior parte punterà alla prima opzione. Si adatta perfettamente al materiale di questo tutorial: una descrizione dello scopo senza riferimenti di formattazione. E la seconda opzione indica il formato ("blueBg" è un nome di classe formato da due parole inglesi che significano "sfondo blu"). Se all'improvviso viene presa la decisione di modificare il design delle recensioni dei film, ad esempio per creare uno sfondo verde, il nome della classe "blueBg" si trasformerà nell'incubo di uno sviluppatore. E il nome "movie-review" ti permetterà di cambiare completamente gli stili visivi mantenendo un eccellente livello di supporto del codice. Ma nessuno sostiene che il primo esempio sia migliore in tutti i casi senza eccezioni. Diciamo che una particolare tonalità di blu viene utilizzata in molti punti del sito. Ad esempio, è lo sfondo per alcuni piè di pagina e aree nella barra laterale. Puoi utilizzare il seguente selettore: Recensione film, piè di pagina> div: nth-of-type (2), a parte> div: nth-of-type (4) (sfondo: # c2fbff;) Una soluzione efficace, poiché il colore è determinato in un solo punto. Ma tale codice diventa difficile da mantenere, poiché ha un selettore lungo e difficile da visualizzare. Avrai anche bisogno di altri selettori per definire stili univoci, che porteranno a codice ripetitivo. Oppure puoi adottare un approccio diverso e lasciarli separati: Recensione del film (sfondo: # c2fbff; / * Definizione colore * /) footer> div: nth-of-type (2) (sfondo: # c2fbff; / * E un'altra cosa * /) a parte> div: nth-of - digita (4) (sfondo: # c2fbff; / * E un'altra cosa * /) Questo stile aiuta a mantenere il file CSS più organizzato (diverse aree sono definite in diverse sezioni). Ma la ripetizione delle definizioni ha un prezzo. Per siti di grandi dimensioni, la definizione dello stesso colore può arrivare fino a diverse migliaia di volte. Terribile! Una soluzione sarebbe utilizzare una classe come "blueBg" per definire il colore una volta e inserirlo nel codice HTML quando si desidera utilizzare il design specificato. Ovviamente, è meglio chiamarlo "mainBrandColor" o "secondaryFont" per eliminare la descrizione di formattazione. Puoi sacrificare la semantica del tuo codice a favore della conservazione delle risorse. ,
,
e così via, ma ad altri elementi dell'interfaccia.
Ma...