{"id":34845,"date":"2019-10-31T22:00:43","date_gmt":"2019-10-31T19:00:43","guid":{"rendered":"https:\/\/prohoster.info\/blog\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu\/"},"modified":"2019-10-31T22:00:43","modified_gmt":"2019-10-31T19:00:43","slug":"dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu","title":{"rendered":"Due storie su come ANKI pu\u00f2 aiutarti a imparare una lingua straniera e prepararti per un colloquio","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ho sempre pensato che un programmatore pigro sia un buon programmatore. Perch\u00e9? Perch\u00e9, se chiedi a un programmatore laborioso di fare qualcosa, andr\u00e0 e lo far\u00e0. Ma un programmatore pigro impiegher\u00e0 2-3 volte pi\u00f9 tempo per scriver\u00e0 uno script che lo far\u00e0 al suo posto. Forse la prima volta richieder\u00e0 un tempo eccessivo, ma con compiti ripetitivi questo approccio si ripaga molto rapidamente. Mi considero un programmatore pigro. Questa era l'introduzione, ora passiamo al punto. <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<h2 id=\"istoriya-pervaya\">Storia prima<\/h2>\n<p><\/p>\n<p>Qualche anno fa ho pensato a come migliorare il mio inglese. Non mi \u00e8 venuta in mente niente di meglio che leggere della letteratura. Ho acquistato un e-reader, ho caricato libri e ho iniziato a leggere. Durante la lettura, incontravo continuamente parole sconosciute. Le traducevo immediatamente usando i dizionari integrati nell'e-reader, ma ho notato una particolarit\u00e0: le parole non volevano rimanere nella mia memoria. Quando, dopo alcune pagine, incontravo di nuovo quella parola, avevo il 90% di probabilit\u00e0 di aver bisogno di una nuova traduzione, e cos\u00ec ogni volta. Si deduceva che non bastava solo tradurre le parole sconosciute durante la lettura, ma bisognava fare qualcos'altro. L'idea perfetta sarebbe stata integrarle nel linguaggio quotidiano e iniziare a usarle, ma non vivo in un paese anglofono e questa \u00e8 una possibilit\u00e0 remota. Qui mi \u00e8 tornato in mente che un tempo avevo letto di <noindex>Ripetizioni intervallate<\/noindex>.<\/p>\n<p><\/p>\n<p>Che cos'\u00e8 e come funziona? In breve, c'\u00e8 una <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9A%D1%80%D0%B8%D0%B2%D0%B0%D1%8F_%D0%B7%D0%B0%D0%B1%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F\">curva di oblio<\/a><\/noindex>, successivamente cita Wikipedia:<\/p>\n<p><\/p>\n<blockquote><p>Gi\u00e0 durante la prima ora si dimentica fino al 60% di tutte le informazioni ricevute, dopo 10 ore dalla memorizzazione rimane in memoria il 35% di quanto studiato. Dopo di che, il processo di oblio continua lentamente, e dopo 6 giorni rimane in memoria circa il 20% del numero totale delle sillabe inizialmente memorizzate, la stessa percentuale rimane in memoria dopo un mese.<\/p><\/blockquote>\n<p>E la conclusione qui <\/p>\n<p><\/p>\n<blockquote><p>Le conclusioni che si possono trarre da questa curva sono che per una memorizzazione efficace \u00e8 necessaria la ripetizione del materiale appreso.<\/p><\/blockquote>\n<p>Ecco che siamo giunti all'idea di <noindex>ripetizione intervallata<\/noindex>.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/\">ANKI<\/a><\/noindex> \u00e8 un programma assolutamente gratuito e open source che realizza l'idea della ripetizione intervallata. In altre parole, \u00e8 un sistema di flashcard computerizzate, con la domanda da un lato e la risposta dall'altro. Poich\u00e9 puoi creare domande\/risposte usando semplici <em>html\/css\/javascript<\/em>, si pu\u00f2 dire che offre possibilit\u00e0 davvero illimitate. Inoltre, \u00e8 estensibile tramite appositi <noindex><a rel=\"nofollow\" href=\"https:\/\/ankiweb.net\/shared\/addons\/\">plugin<\/a><\/noindex>, e uno di essi ci sar\u00e0 molto utile in seguito.<\/p>\n<p><\/p>\n<p>Creare le schede manualmente \u00e8 lungo, noioso, e con una grande probabilit\u00e0 di essere abbandonato nel tempo, quindi a un certo punto mi sono chiesto se fosse possibile automatizzare questo processo. La risposta \u00e8 s\u00ec, \u00e8 possibile. E l'ho fatto. Dico subito che si tratta pi\u00f9 di <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Proof_of_concept\">POC (Proof of concept)<\/a><\/noindex>, ma utilizzabile. Se ci sar\u00e0 interesse da parte degli utenti e altri sviluppatori si uniranno, potr\u00e0 essere portato a prodotto completo, fruibile anche da utenti non esperti in tecnologia. Attualmente, l'uso della mia utility richiede alcune conoscenze di programmazione.<\/p>\n<p><\/p>\n<p>Leggo libri utilizzando il programma <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.neverland.alreader&amp;hl=en\">AIReader<\/a><\/noindex>. Ha la possibilit\u00e0 di collegare dizionari esterni e, durante la traduzione di una parola, salva la parola da cui hai chiamato la traduzione in un file di testo. Resta solo da tradurre queste parole e creare le schede ANKI.<\/p>\n<p><\/p>\n<p>All'inizio ho cercato di utilizzare per la traduzione <noindex><a rel=\"nofollow\" href=\"https:\/\/translate.google.com\/\">Google Translate<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/developers.lingvolive.com\/en-us\">Lingvo API<\/a><\/noindex> ecc. Ma con i servizi gratuiti non ha funzionato. Esaurivo il limite gratuito gi\u00e0 durante lo sviluppo, e in pi\u00f9, secondo i termini di licenza, non avevo il diritto di memorizzare le parole. A un certo punto, ho capito che dovevo tradurre le parole da solo. Alla fine, ho scritto un modulo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/dsl2html\">dsl2html<\/a><\/noindex> al quale \u00e8 possibile collegare <noindex><a rel=\"nofollow\" href=\"http:\/\/lingvo.helpmax.net\/en\/troubleshooting\/dsl-compiler\/dsl-dictionary-structure\/\">dizionari DSL<\/a><\/noindex> e che pu\u00f2 convertirli in <em>HTML<\/em> formato. <\/p>\n<p><\/p>\n<p>Ecco come appare un articolo di dizionario in *<em>.html<\/em>, la mia versione a confronto con quella di <noindex><a rel=\"nofollow\" href=\"http:\/\/goldendict.org\/\">GoldenDict<\/a><\/noindex><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Due storie su come ANKI pu\u00f2 aiutarti a imparare una lingua straniera e prepararti per un colloquio\" src=\"\/wp-content\/uploads\/2019\/06\/98317e694331c5764fe890827d59e3b5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Prima di cercare una parola nei dizionari collegati, la riporto alla <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9B%D0%B5%D0%BC%D0%BC%D0%B0%D1%82%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F\">forma lessicale (lemma)<\/a><\/noindex> con l'aiuto della libreria <noindex><a rel=\"nofollow\" href=\"https:\/\/stanfordnlp.github.io\/CoreNLP\/\">Stanford CoreNLP<\/a><\/noindex>. In realt\u00e0, \u00e8 stata proprio questa libreria a farmi iniziare a programmare in Java, e il piano iniziale era di scrivere tutto in Java, ma durante il processo ho trovato la libreria <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/joeferner\/node-java\">node-java<\/a><\/noindex> con cui \u00e8 possibile eseguire relativamente facilmente codice Java da nodejs e parte del codice \u00e8 scritta in JavaScript. Se avessi trovato questa libreria prima, non avrei scritto nemmeno una riga in Java. Un altro progetto secondario nato nel processo \u00e8 questa creazione <noindex><a rel=\"nofollow\" href=\"https:\/\/anatoly314.github.io\/dsl-manual\/\">di un repository con documentazione DSL<\/a><\/noindex> che \u00e8 stata trovata in rete in formato *<em>.chm<\/em>, convertita e messa in forma accettabile. Se l'autore del file originale, un utente con il soprannome <strong>yozhic<\/strong> vede questo articolo, grazie mille per il lavoro svolto; senza la sua documentazione, probabilmente non sarei riuscito a fare nulla.<\/p>\n<p><\/p>\n<p>Quindi, ho una parola in inglese, il suo articolo del dizionario in formato *<em>.html<\/em>, resta da mettere tutto insieme, creare articoli ANKI da un elenco di parole e importarli nel database ANKI. A questo scopo \u00e8 stato creato il seguente progetto <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex>. \u00c8 in grado di prendere in input un elenco di parole, tradurle, creare articoli ANKI *<em>.html<\/em> e registrarli nel database ANKI. Alla fine dell'articolo c'\u00e8 una spiegazione su come utilizzarlo. Tuttavia, ecco la seconda storia in cui le ripetizioni distribuite possono essere utili.<\/p>\n<p><\/p>\n<h2 id=\"istoriya-vtoraya\">Seconda storia.<\/h2>\n<p><\/p>\n<p>Tutte le persone in cerca di una specializzazione pi\u00f9 o meno qualificata, inclusi i programmatori, si trovano ad affrontare la necessit\u00e0 di prepararsi per i colloqui. Molti concetti che vengono richiesti durante i colloqui non vengono utilizzati nella pratica quotidiana e vengono dimenticati. Durante la preparazione per un colloquio, sfogliando un appunto, un libro, un manuale, mi sono imbattuto nel fatto che richiede molto tempo e attenzione per filtrare le informazioni che gi\u00e0 conosci, poich\u00e9 non \u00e8 sempre evidente e bisogna leggere attentamente per capire che non \u00e8 rilevante. Quando ti avvicini a un argomento che devi davvero ripetere, molto spesso ti accorgi di essere gi\u00e0 stanco e la qualit\u00e0 della preparazione ne risente. A un certo punto ho pensato, perch\u00e9 non utilizzare le schede ANKI anche per questo? Ad esempio, durante la creazione di un appunto su un argomento, creare subito un appunto in forma di domanda - risposta, e poi, durante la ripetizione, saprai immediatamente se conosci o meno la risposta a quella domanda.<\/p>\n<p><\/p>\n<p>Il problema \u00e8 sorto solo nel fatto che digitare domande \u00e8 molto lungo e noioso. Per semplificare il processo, ho <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex> aggiunto la funzionalit\u00e0 di convertire <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Markdown\">markdown<\/a><\/noindex> testo nella scheda ANKI. Tutto ci\u00f2 che devi fare \u00e8 scrivere un grande file in cui le domande e le risposte saranno contrassegnate da una sequenza di caratteri concordata in anticipo, che il parser utilizzer\u00e0 per capire dove sono le domande e dove sono le risposte.<\/p>\n<p><\/p>\n<p>Dopo che questo file sar\u00e0 stato creato, avvii data2anki e questo crea le schede ANKI. Il file originale pu\u00f2 essere facilmente modificato e condiviso, basta eliminare la scheda corrispondente e riavviare il programma, e verr\u00e0 creato un nuovo file.<\/p>\n<p><\/p>\n<h2 id=\"ustanovka-i-polzovaniyu\">Installazione e utilizzo<\/h2>\n<p><\/p>\n<ol>\n<li>\n<p>Installazione di ANKI + AnkiConnect<\/p>\n<p><\/p>\n<ol>\n<li>Scarica ANKI da qui: <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/\">https:\/\/apps.ankiweb.net\/<\/a><\/noindex><\/li>\n<li>Installa il plugin AnkiConnect: <noindex><a rel=\"nofollow\" href=\"https:\/\/ankiweb.net\/shared\/info\/2055492159\">https:\/\/ankiweb.net\/shared\/info\/2055492159<\/a><\/noindex><\/li>\n<\/ol>\n<p>\n<\/li>\n<li>\n<p>Installazione <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex><\/p>\n<p><\/p>\n<ol>\n<li>Scarica <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex> dal repository github\n<pre><code class=\"plaintext\">git clone https:\/\/github.com\/anatoly314\/data2anki<\/code><\/pre>\n<\/li>\n<li>Installa le dipendenze\n<pre><code class=\"plaintext\">cd data2anki &amp;&amp; npm install<\/code><\/pre>\n<\/li>\n<li>Scarica le dipendenze java <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\/releases\/download\/0.1.0\/jar-dependencies.zip\">https:\/\/github.com\/anatoly314\/data2anki\/releases\/download\/0.1.0\/jar-dependencies.zip<\/a><\/noindex><\/li>\n<li>Estrai <strong>jar-dependencies.zip<\/strong> e metti il suo contenuto in <strong>data2anki\/java\/jars<\/strong><\/li>\n<\/ol>\n<p>\n<\/li>\n<li>\n<p>Uso per la traduzione di parole:<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Nel file <strong>data2anki\/config.json<\/strong>:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>nel campo <strong>modalit\u00e0<\/strong> inserisci il valore <strong>dsl2anki<\/strong><\/p>\n<p>\n<\/li>\n<li>\n<p>nel campo <strong>modules.dsl.anki.deckName<\/strong> e <strong>modules.dsl.anki.modelName<\/strong> inserisci, rispettivamente, <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#decks\">Nome Del Mazzo<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#note-types\">Nome Del Modello<\/a><\/noindex> (dovrebbero gi\u00e0 essere stati creati prima di creare le schede). Attualmente supporta solo modelli di tipo <strong>Base<\/strong>:<\/p>\n<p><\/p>\n<blockquote><p>Ha campi Fronte e Retro, e creer\u00e0 una scheda. Il testo che inserisci nel Fronte apparir\u00e0 sul fronte della scheda, e il testo che inserisci nel Retro apparir\u00e0 sul retro della scheda. <\/p><\/blockquote>\n<p>dove la parola originale \u00e8 <em>Campo Fronte<\/em>, mentre la traduzione sar\u00e0 nel <em>Campo Retro<\/em>. <\/p>\n<p><\/p>\n<p>Non c'\u00e8 alcun problema ad aggiungere supporto per <strong>Base (e scheda inversa)<\/strong>, dove per la parola e la traduzione sar\u00e0 creata anche la scheda inversa, in cui dovrai ricordare la parola originale per la traduzione. Serve solo tempo e volont\u00e0.<\/p>\n<p>\n<\/li>\n<li>\n<p>nel campo <strong>modules.dsl.dictionariesPath<\/strong> inserisci un array con i dizionari *<em>.dsl<\/em> collegati. Ogni dizionario collegato \u00e8 una directory in cui si trovano i file del dizionario secondo il formato: <noindex><a rel=\"nofollow\" href=\"https:\/\/anatoly314.github.io\/dsl-manual\/#dict.html\">Struttura del dizionario DSL<br \/>\n<\/a><\/noindex><\/p>\n<p>\n<\/li>\n<li>\n<p>nel campo <strong>modules.dsl.wordToTranslatePath<\/strong> inserisci il percorso per l'elenco delle parole che desideri tradurre.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p>\n<\/li>\n<li>Avvia l'app ANKI in funzione \n<pre><code class=\"plaintext\">node data2ankiindex.js<\/code><\/pre>\n<\/li>\n<li>PROFIT!!!<\/li>\n<\/ol>\n<p>\n<\/li>\n<li>\n<p>Utilizzo per creare schede da markdown<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>Nel file <strong>data2anki\/config.json<\/strong>:<\/p>\n<p><\/p>\n<ul>\n<li>nel campo <strong>modalit\u00e0<\/strong> inserisci il valore <strong>markdown2anki<\/strong><\/li>\n<li>nel campo <strong>modules.markdown.anki.deckName<\/strong> e <strong>modules.dsl.anki.modelName<\/strong> inserisci, rispettivamente, <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#decks\">Nome Del Mazzo<\/a><\/noindex> e <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#note-types\">Nome Del Modello<\/a><\/noindex> (dovrebbero gi\u00e0 essere stati creati prima di creare le schede). Per <strong>markdown2anki<\/strong> modalit\u00e0 \u00e8 supportato solo il modello di tipo <strong>Base<\/strong>.<\/li>\n<li>\n<p>nel campo <strong>modules.markdown.selectors.startQuestionSelectors<\/strong> e <strong>modules.markdown.selectors.startAnswerSelectors<\/strong> inserisci i selettori con cui contrassegni l'inizio della domanda e della risposta, rispettivamente. La riga stessa con il selettore non sar\u00e0 analizzata e non entrer\u00e0 nella scheda, il parser inizier\u00e0 a lavorare dalla riga successiva. <\/p>\n<p><\/p>\n<h5 id=\"naprimer-vot-eta-kartochka-voprosotvet\">Ad esempio, questa scheda domanda\/riposta:<\/h5>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Due storie su come ANKI pu\u00f2 aiutarti a imparare una lingua straniera e prepararti per un colloquio\" src=\"\/wp-content\/uploads\/2019\/06\/1d32d4c8b44e62027350031090405dd2.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h5 id=\"budet-vyglyadet-v-markdown-sleduyuschim-obrazom\">Apparir\u00e0 in markdown nel seguente modo:<\/h5>\n<pre>\n#QUESTION#\n## Question 5. Write a mul function which will work properly when invoked with following syntax.\n\n```javascript\nconsole.log(mul(2)(3)(4)); \/\/ output : 24\nconsole.log(mul(4)(3)(4)); \/\/ output : 48\n```\n#ANSWER#\nBelow is the code followed by the explanation of how it works:\n\n```javascript\nfunction mul (x) {\n  return function (y) { \/\/ anonymous function\n    return function (z) { \/\/ anonymous function\n      return x * y * z;\n    };\n  };\n}\n```\n\nHere the `mul` function accepts the first argument and returns the anonymous function which takes the second parameter and returns the anonymous function which takes the third parameter and returns the multiplication of arguments which is being passed in successive\n\nIn Javascript function defined inside has access to outer function variable and function is the first class object so it can be returned by the function as well and passed as an argument in another function.\n- A function is an instance of the Object type\n- A function can have properties and has a link back to its constructor method\n- A function can be stored as variable\n- A function can be pass as a parameter to another function\n- A function can be returned from another function\n<\/pre>\n<blockquote><p>Esempio tratto da qui: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ganqqwerty\/123-Essential-JavaScript-Interview-Questions\">123-Domande di colloqui su JavaScript<\/a><\/noindex><\/p><\/blockquote>\n<p>C'\u00e8 anche un file di esempi nella cartella del progetto <code>examples\/markdown2anki-example.md<\/code><\/p>\n<p>\n<\/li>\n<li>nel campo <strong>modules.markdown.pathToFile<\/strong><br \/>\nspecifica il percorso del file dove si trova *<em>.md<\/em> file con domande\/risposte<\/li>\n<\/ul>\n<p>\n<\/li>\n<li>Avvia l'app ANKI in funzione\n<pre><code class=\"plaintext\">node data2ankiindex.js<\/code><\/pre>\n<\/li>\n<li>PROFIT!!!<\/li>\n<\/ol>\n<p>\n<\/li>\n<\/ol>\n<p><\/p>\n<h4 id=\"vot-tak-eto-vyglyadit-na-mobilnom-telefone\">Ecco come appare su un telefono cellulare:<\/h4>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"D35VtcTtxrs\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/D35VtcTtxrs\/hqdefault.jpg\" alt=\"Guarda il video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h2 id=\"rezultat\">Risultato<\/h2>\n<p><\/p>\n<p>Le schede ANKI ottenute dalla versione desktop si sincronizzano senza problemi con il cloud ANKI (gratuitamente fino a 100mb), e dopo puoi utilizzarle ovunque. Ci sono client per Android e iPhone, e puoi usarle anche nel browser. Pertanto, se hai del tempo da perdere, invece di scorazzare senza meta su Facebook o guardare gattini su Instagram, puoi imparare qualcosa di nuovo. <\/p>\n<p><\/p>\n<h2 id=\"epilog\">Epilogo<\/h2>\n<p><\/p>\n<p>Come ho gi\u00e0 detto, \u00e8 pi\u00f9 un POC operativo da usare che un prodotto finito. Circa il 30% dello standard del parser DSL non \u00e8 implementato, e quindi, <noindex><a rel=\"nofollow\" href=\"https:\/\/anatoly314.github.io\/dsl-manual\/#tag_service.html#alt\">ad esempio, non tutti gli articoli lessicali presenti nei dizionari possono essere trovati<\/a><\/noindex>, c'\u00e8 anche l'idea di riscriverlo in <em>JavaScript<\/em>, poich\u00e9 si desidera la &#171;consistenza&#187;, e inoltre, attualmente non \u00e8 scritto in modo molto ottimale. Ora il parser costruisce un albero, e a mio avviso \u00e8 superfluo e complica il codice. <strong>markdown2anki<\/strong> modalit\u00e0 immagine non vengono analizzati. Cercher\u00f2 di lavorare lentamente, ma, dato che lo scrivo per me stesso, risolver\u00f2 prima di tutto quegli ostacoli su cui inciampo, ma se qualcuno vuole aiutare, \u00e8 il benvenuto. Se ci sono domande sul programma, sar\u00f2 felice di aiutare tramite issues aperti nei progetti pertinenti. Per altre critiche e suggerimenti, scrivete qui. Spero che questo progetto possa risultare utile a qualcuno.<\/p>\n<p><\/p>\n<p>P.S. Se noti errori (e purtroppo ce ne sono), scrivimi in privato, sistemer\u00f2 tutto.<\/p>\n<p>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/454236\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u042f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u043b, \u0447\u0442\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u041f\u043e\u0447\u0435\u043c\u0443? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438 \u0442\u0440\u0443\u0434\u043e\u043b\u044e\u0431\u0438\u0432\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e, \u043e\u043d \u043f\u043e\u0439\u0434\u0435\u0442 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442. \u0410 \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442 \u0432 2-3 \u0440\u0430\u0437\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u043e \u043d\u0430\u043f\u0438\u0448\u0435\u0442 \u0441\u043a\u0440\u0438\u043f\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u2014 \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0437\u0430 \u043d\u0435\u0433\u043e. \u041c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c, \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u043d\u0430 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043e \u043d\u0435\u043e\u043f\u0440\u0430\u0432\u0434\u0430\u043d\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u043e \u043f\u0440\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26237,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-34845","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u042f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u043b, \u0447\u0442\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u041f\u043e\u0447\u0435\u043c\u0443? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438 \u0442\u0440\u0443\u0434\u043e\u043b\u044e\u0431\u0438\u0432\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e, \u043e\u043d \u043f\u043e\u0439\u0434\u0435\u0442 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0414\u0432\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043a\u0430\u043a ANKI \u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u044b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043a \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u042f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u043b, \u0447\u0442\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u041f\u043e\u0447\u0435\u043c\u0443? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438 \u0442\u0440\u0443\u0434\u043e\u043b\u044e\u0431\u0438\u0432\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e, \u043e\u043d \u043f\u043e\u0439\u0434\u0435\u0442 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:00:43+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:00:43+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Due storie su come ANKI pu\u00f2 aiutarti ad imparare una lingua straniera e prepararti per un colloquio | ProHoster","description":"Ho sempre pensato che un programmatore pigro sia un buon programmatore. Perch\u00e9? Perch\u00e9 se chiedi a un laborioso di fare qualcosa, lui andr\u00e0 e lo far\u00e0.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0414\u0432\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043a\u0430\u043a ANKI \u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u044b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a \u0438 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c\u0441\u044f \u043a \u0438\u043d\u0442\u0435\u0440\u0432\u044c\u044e | ProHoster","og:description":"\u042f \u0432\u0441\u0435\u0433\u0434\u0430 \u0441\u0447\u0438\u0442\u0430\u043b, \u0447\u0442\u043e \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442 \u044d\u0442\u043e \u0445\u043e\u0440\u043e\u0448\u0438\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442. \u041f\u043e\u0447\u0435\u043c\u0443? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u043e\u043f\u0440\u043e\u0441\u0438 \u0442\u0440\u0443\u0434\u043e\u043b\u044e\u0431\u0438\u0432\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0442\u043e-\u0442\u043e, \u043e\u043d \u043f\u043e\u0439\u0434\u0435\u0442 \u0438 \u0441\u0434\u0435\u043b\u0430\u0435\u0442.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:00:43+00:00","article:modified_time":"2019-10-31T19:00:43+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34845","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 20:49:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:14:05","updated":"2026-01-21 20:49:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/34845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=34845"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/34845\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/26237"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=34845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=34845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=34845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}