{"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\/es\/blog\/news\/dve-istorii-kak-anki-mozhet-vam-pomoch-vyuchit-inostrannyj-yazyk-i-podgotovitsya-k-intervyu","title":{"rendered":"Dos historias sobre c\u00f3mo ANKI puede ayudarte a aprender un idioma extranjero y prepararte para una entrevista","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Siempre he cre\u00eddo que un programador perezoso es un buen programador. \u00bfPor qu\u00e9? Porque si le pides a un programador trabajador que haga algo, simplemente lo har\u00e1. Pero un programador perezoso gastar\u00e1 de 2 a 3 veces m\u00e1s tiempo, pero escribir\u00e1 un script que har\u00e1 esto por \u00e9l. Puede que la primera vez le cueste injustificadamente mucho tiempo, pero en tareas repetitivas este enfoque se amortiza muy r\u00e1pidamente. Me considero un programador perezoso. Esa fue la introducci\u00f3n, ahora pasemos al grano. <noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><\/p>\n<h2 id=\"istoriya-pervaya\">Historia primera<\/h2>\n<p><\/p>\n<p>Hace unos a\u00f1os, me pregunt\u00e9 c\u00f3mo podr\u00eda mejorar mi ingl\u00e9s. No se me ocurri\u00f3 nada mejor que leer literatura. Compr\u00e9 un lector de libros electr\u00f3nicos, descargu\u00e9 libros y comenc\u00e9 a leer. Durante la lectura, constantemente me encontraba con palabras desconocidas. Las traduc\u00eda al instante usando los diccionarios integrados en el lector, pero not\u00e9 una particularidad: las palabras no parec\u00edan quedarme grabadas. Cuando encontraba la misma palabra unas p\u00e1ginas despu\u00e9s, con un 90% de probabilidad necesitaba traducirla de nuevo, y as\u00ed cada vez. La conclusi\u00f3n era clara: no es suficiente con solo traducir palabras desconocidas durante la lectura, hay que hacer algo m\u00e1s. Lo ideal ser\u00eda incorporarlas en el uso diario y comenzar a utilizarlas, pero como no vivo en un pa\u00eds de habla inglesa, eso es poco probable. Entonces record\u00e9 que alguna vez le\u00ed sobre <noindex>Repetici\u00f3n espaciada<\/noindex>.<\/p>\n<p><\/p>\n<p>\u00bfQu\u00e9 es y para qu\u00e9 se usa? En breve, hay 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 del olvido<\/a><\/noindex>, a continuaci\u00f3n una cita de Wikipedia:<\/p>\n<p><\/p>\n<blockquote><p>En la primera hora se olvida hasta un 60% de toda la informaci\u00f3n recibida, a las 10 horas despu\u00e9s de aprender, permanece en la memoria un 35% de lo estudiado. Luego el proceso de olvido progresa lentamente, y despu\u00e9s de 6 d\u00edas queda alrededor del 20% del n\u00famero total de s\u00edlabas originalmente aprendidas, la misma cantidad permanece en la memoria despu\u00e9s de un mes.<\/p><\/blockquote>\n<p>Y la conclusi\u00f3n es clara <\/p>\n<p><\/p>\n<blockquote><p>Las conclusiones que se pueden extraer de esta curva son que para un recuerdo efectivo es necesario repetir el material aprendido.<\/p><\/blockquote>\n<p>As\u00ed que llegamos a la idea de <noindex>repetici\u00f3n espaciada<\/noindex>.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/\">ANHKI<\/a><\/noindex> es un programa completamente gratuito y de c\u00f3digo abierto que implementa la idea de repetici\u00f3n espaciada. En otras palabras, son tarjetas de memoria digitalizadas, con una pregunta en un lado y la respuesta en el otro. Como puedes crear preguntas\/respuestas utilizando el com\u00fan <em>html\/css\/javascript<\/em>, se puede decir que tiene verdaderamente posibilidades ilimitadas. Adem\u00e1s, es extensible con plugins especiales <noindex><a rel=\"nofollow\" href=\"https:\/\/ankiweb.net\/shared\/addons\/\">plugins<\/a><\/noindex>, y uno de ellos ser\u00e1 muy \u00fatil m\u00e1s adelante.<\/p>\n<p><\/p>\n<p>Crear tarjetas manualmente es lento, tedioso y hay una gran probabilidad de que con el tiempo te desanimes y dejes de hacerlo, as\u00ed que en alg\u00fan momento me pregunt\u00e9 si se pod\u00eda automatizar esta tarea. La respuesta es s\u00ed, se puede. Y lo hice. Te dir\u00e9 que esto es m\u00e1s <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Proof_of_concept\">POC (Prueba de concepto)<\/a><\/noindex>, pero que ya se puede usar. Si hay inter\u00e9s por parte de los usuarios y otros desarrolladores se involucran, se puede llevar a un producto terminado que incluso usuarios sin conocimientos t\u00e9cnicos puedan utilizar. Sin embargo, en este momento el uso de mi herramienta supone ciertos conocimientos en programaci\u00f3n.<\/p>\n<p><\/p>\n<p>Leo libros usando el programa <noindex><a rel=\"nofollow\" href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.neverland.alreader&amp;hl=en\">AIReader<\/a><\/noindex>. Tiene la capacidad de conectar diccionarios externos y, adem\u00e1s, al traducir una palabra, guarda la palabra para la cual activaste la traducci\u00f3n en un archivo de texto. Solo queda traducir esas palabras y crear tarjetas ANKI.<\/p>\n<p><\/p>\n<p>Primero intent\u00e9 usar para traducci\u00f3n <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> etc. Pero con los servicios gratuitos no funcion\u00f3. Exced\u00ed el l\u00edmite gratuito a\u00fan durante el desarrollo, adem\u00e1s, por las condiciones de la licencia, no ten\u00eda derecho a almacenar en cach\u00e9 las palabras. En alg\u00fan momento comprend\u00ed que necesitaba traducir las palabras por m\u00ed mismo. Al final, se escribi\u00f3 un m\u00f3dulo <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/dsl2html\">dsl2html<\/a><\/noindex> al que se pueden conectar <noindex><a rel=\"nofollow\" href=\"http:\/\/lingvo.helpmax.net\/en\/troubleshooting\/dsl-compiler\/dsl-dictionary-structure\/\">diccionarios DSL<\/a><\/noindex> que pueden convertirlos a <em>HTML<\/em> formato. <\/p>\n<p><\/p>\n<p>As\u00ed es como se ve un art\u00edculo de diccionario en *<em>.html<\/em>, mi versi\u00f3n en comparaci\u00f3n con la versi\u00f3n de <noindex><a rel=\"nofollow\" href=\"http:\/\/goldendict.org\/\">GoldenDict<\/a><\/noindex><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Dos historias sobre c\u00f3mo ANKI puede ayudarte a aprender un idioma extranjero y prepararte para una entrevista\" src=\"\/wp-content\/uploads\/2019\/06\/98317e694331c5764fe890827d59e3b5.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Antes de buscar una palabra en los diccionarios conectados, la traigo a <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\">su forma de diccionario ( lema )<\/a><\/noindex> usando la biblioteca <noindex><a rel=\"nofollow\" href=\"https:\/\/stanfordnlp.github.io\/CoreNLP\/\">Stanford CoreNLP<\/a><\/noindex>. De hecho, debido a esta biblioteca comenc\u00e9 a programar en Java y el plan inicial era escribir todo en Java, pero en el proceso encontr\u00e9 la biblioteca <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/joeferner\/node-java\">node-java<\/a><\/noindex> con la cual se puede ejecutar c\u00f3digo Java desde nodejs de forma relativamente sencilla y parte del c\u00f3digo est\u00e1 escrito en JavaScript. Si hubiera encontrado esta biblioteca antes, no habr\u00eda escrito ni una l\u00ednea en Java. Otro proyecto secundario que naci\u00f3 en el proceso es la creaci\u00f3n <noindex><a rel=\"nofollow\" href=\"https:\/\/anatoly314.github.io\/dsl-manual\/\">de un repositorio con documentaci\u00f3n DSL<\/a><\/noindex> que se encontr\u00f3 en l\u00ednea en formato *<em>.chm<\/em>, que fue convertida y presentada de manera legible. Si el autor del archivo original, el usuario conocido como <strong>yozhic<\/strong> ve este art\u00edculo, le agradezco mucho por el trabajo realizado; sin su documentaci\u00f3n, probablemente no habr\u00eda logrado nada.<\/p>\n<p><\/p>\n<p>Entonces, tengo una palabra en ingl\u00e9s, su entrada de diccionario en formato *<em>.html<\/em>, solo queda unificar todo, crear art\u00edculos ANKI de la lista de palabras y a\u00f1adirlos a la base de datos ANKI. Para este prop\u00f3sito se cre\u00f3 el siguiente proyecto <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex>. Puede recibir una lista de palabras, traducirlas, crear art\u00edculos ANKI *<em>.html<\/em> y registrarlos en la base de datos ANKI. Al final del art\u00edculo hay una instrucci\u00f3n sobre c\u00f3mo utilizarlos. Hasta ahora, esta es la segunda historia donde las repeticiones espaciadas pueden ser \u00fatiles.<\/p>\n<p><\/p>\n<h2 id=\"istoriya-vtoraya\">La segunda historia.<\/h2>\n<p><\/p>\n<p>Todas las personas en busca de una especialidad m\u00e1s o menos calificada, incluidos los programadores, se enfrentan a la necesidad de prepararse para entrevistas. Muchos conceptos que se preguntan en entrevistas no se utilizan en la pr\u00e1ctica diaria y se olvidan. En la preparaci\u00f3n para una entrevista, al revisar apuntes, libros o manuales, me di cuenta de que se requiere mucho tiempo y atenci\u00f3n para filtrar la informaci\u00f3n que ya conoces, porque no siempre es obvio y a veces hay que leer con atenci\u00f3n para comprender que no es relevante. Cuando llegas al tema que realmente necesitas repasar, a menudo sucede que ya est\u00e1s cansado y la calidad de la preparaci\u00f3n se ve afectada. En un momento pens\u00e9, \u00bfpor qu\u00e9 no utilizar tarjetas ANKI para esto? Por ejemplo, al tomar apuntes sobre un tema, crear de inmediato un resumen en forma de pregunta-respuesta, y luego al repasar, sabr\u00e1s inmediatamente si conoces o no la respuesta a esa pregunta.<\/p>\n<p><\/p>\n<p>El \u00fanico problema surgi\u00f3 en que escribir las preguntas es muy lento y tedioso. Para facilitar el proceso, en <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex> el proyecto a\u00f1ad\u00ed funcionalidad para convertir <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Markdown\">markdown<\/a><\/noindex> Texto en la tarjeta ANKI. Todo lo que necesita hacer es escribir un solo archivo grande en el que las preguntas y respuestas est\u00e9n marcadas con una secuencia de caracteres acordada de antemano, que permitir\u00e1 al parser entender d\u00f3nde est\u00e1 la pregunta y d\u00f3nde la respuesta.<\/p>\n<p><\/p>\n<p>Despu\u00e9s de que se haya creado este archivo, ejecuta data2anki y \u00e9l crear\u00e1 las tarjetas ANKI. El archivo original es f\u00e1cil de modificar y compartir, solo tienes que borrar la tarjeta(s) correspondiente(s) y ejecutar el programa nuevamente, y se generar\u00e1 una nueva versi\u00f3n.<\/p>\n<p><\/p>\n<h2 id=\"ustanovka-i-polzovaniyu\">Instalaci\u00f3n y uso<\/h2>\n<p><\/p>\n<ol>\n<li>\n<p>Instalaci\u00f3n de ANKI + AnkiConnect<\/p>\n<p><\/p>\n<ol>\n<li>Descargas ANKI desde aqu\u00ed: <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/\">https:\/\/apps.ankiweb.net\/<\/a><\/noindex><\/li>\n<li>Instalas el 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>Instalaci\u00f3n <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex><\/p>\n<p><\/p>\n<ol>\n<li>Descargas <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/anatoly314\/data2anki\">data2anki<\/a><\/noindex> del repositorio de github\n<pre><code class=\"plaintext\">git clone https:\/\/github.com\/anatoly314\/data2anki<\/code><\/pre>\n<\/li>\n<li>Instalas las dependencias\n<pre><code class=\"plaintext\">cd data2anki &amp;&amp; npm install<\/code><\/pre>\n<\/li>\n<li>Descargas las dependencias de 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>Descomprimis <strong>jar-dependencies.zip<\/strong> y colocas su contenido en <strong>data2anki\/java\/jars<\/strong><\/li>\n<\/ol>\n<p>\n<\/li>\n<li>\n<p>Uso para la traducci\u00f3n de palabras:<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>En el archivo <strong>data2anki\/config.json<\/strong>:<\/p>\n<p><\/p>\n<ul>\n<li>\n<p>en la clave <strong>modo<\/strong> escribes el valor <strong>dsl2anki<\/strong><\/p>\n<p>\n<\/li>\n<li>\n<p>en la clave <strong>modules.dsl.anki.deckName<\/strong> y <strong>modules.dsl.anki.modelName<\/strong> escribes, respectivamente, <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#decks\">Deck Name<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#note-types\">Model Name<\/a><\/noindex> (deben estar creados antes de crear las tarjetas). Actualmente solo se admite el modelo tipo <strong>Basic<\/strong>:<\/p>\n<p><\/p>\n<blockquote><p>tiene campos Front y Back, y crear\u00e1 una tarjeta. El texto que ingreses en Front aparecer\u00e1 en el frente de la tarjeta, y el texto que ingreses en Back aparecer\u00e1 en la parte posterior de la tarjeta. <\/p><\/blockquote>\n<p>donde la palabra original es <em>Front field<\/em>, y la traducci\u00f3n estar\u00e1 en <em>Back field<\/em>. <\/p>\n<p><\/p>\n<p>No hay ning\u00fan problema en a\u00f1adir soporte para <strong>Basic (y tarjeta invertida)<\/strong>, donde se crear\u00e1 una tarjeta inversa para la palabra y la traducci\u00f3n, en la que deber\u00e1s recordar la palabra original a partir de la traducci\u00f3n. Solo se requiere tener tiempo y ganas.<\/p>\n<p>\n<\/li>\n<li>\n<p>en la clave <strong>modules.dsl.dictionariesPath<\/strong> escribes un array con los diccionarios *<em>.dsl<\/em> conectados. Cada diccionario conectado es un directorio donde se encuentran los archivos del diccionario de acuerdo con el formato: <noindex><a rel=\"nofollow\" href=\"https:\/\/anatoly314.github.io\/dsl-manual\/#dict.html\">Estructura del diccionario DSL<br \/>\n<\/a><\/noindex><\/p>\n<p>\n<\/li>\n<li>\n<p>en la clave <strong>modules.dsl.wordToTranslatePath<\/strong> escribes la ruta a la lista de palabras que deseas traducir.<\/p>\n<p>\n<\/li>\n<\/ul>\n<p>\n<\/li>\n<li>Ejecutas con la aplicaci\u00f3n ANKI funcionando \n<pre><code class=\"plaintext\">node data2ankiindex.js<\/code><\/pre>\n<\/li>\n<li>\u00a1GANANCIA!!!<\/li>\n<\/ol>\n<p>\n<\/li>\n<li>\n<p>Uso para crear tarjetas a partir de markdown<\/p>\n<p><\/p>\n<ol>\n<li>\n<p>En el archivo <strong>data2anki\/config.json<\/strong>:<\/p>\n<p><\/p>\n<ul>\n<li>en la clave <strong>modo<\/strong> escribes el valor <strong>markdown2anki<\/strong><\/li>\n<li>en la clave <strong>modules.markdown.anki.deckName<\/strong> y <strong>modules.dsl.anki.modelName<\/strong> escribes, respectivamente, <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#decks\">Deck Name<\/a><\/noindex> y <noindex><a rel=\"nofollow\" href=\"https:\/\/apps.ankiweb.net\/docs\/manual.html#note-types\">Model Name<\/a><\/noindex> (deben estar creados antes de crear las tarjetas). Para <strong>markdown2anki<\/strong> mode solo se admite el modelo tipo <strong>Basic<\/strong>.<\/li>\n<li>\n<p>en la clave <strong>modules.markdown.selectors.startQuestionSelectors<\/strong> y <strong>modules.markdown.selectors.startAnswerSelectors<\/strong> escribes los selectores que usas para marcar el inicio de las preguntas y respuestas respectivamente. La l\u00ednea con el selector no ser\u00e1 analizada y no aparecer\u00e1 en la tarjeta, el parser comenzar\u00e1 a trabajar a partir de la siguiente l\u00ednea. <\/p>\n<p><\/p>\n<h5 id=\"naprimer-vot-eta-kartochka-voprosotvet\">Por ejemplo, esta tarjeta pregunta\/respuesta:<\/h5>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Dos historias sobre c\u00f3mo ANKI puede ayudarte a aprender un idioma extranjero y prepararte para una entrevista\" 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\">Se ver\u00e1 en markdown de la siguiente manera:<\/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>Ejemplo tomado de aqu\u00ed: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ganqqwerty\/123-Essential-JavaScript-Interview-Questions\">123-Preguntas de entrevista de JavaScript<\/a><\/noindex><\/p><\/blockquote>\n<p>Tambi\u00e9n hay un archivo con ejemplos en la carpeta del proyecto <code>examples\/markdown2anki-example.md<\/code><\/p>\n<p>\n<\/li>\n<li>en la clave <strong>modules.markdown.pathToFile<\/strong><br \/>\nespecifica la ruta al archivo donde se encuentra *<em>.md<\/em> archivo con preguntas\/respuestas<\/li>\n<\/ul>\n<p>\n<\/li>\n<li>Ejecutas con la aplicaci\u00f3n ANKI funcionando\n<pre><code class=\"plaintext\">node data2ankiindex.js<\/code><\/pre>\n<\/li>\n<li>\u00a1GANANCIA!!!<\/li>\n<\/ol>\n<p>\n<\/li>\n<\/ol>\n<p><\/p>\n<h4 id=\"vot-tak-eto-vyglyadit-na-mobilnom-telefone\">As\u00ed es como se ve en un tel\u00e9fono m\u00f3vil:<\/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=\"Reproducir 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\">Resultado<\/h2>\n<p><\/p>\n<p>Las tarjetas de ANKI obtenidas en la versi\u00f3n de escritorio se sincronizan sin problemas con la nube de ANKI (gratis hasta 100mb), y despu\u00e9s puedes usarlas en cualquier lugar. Hay clientes para Android e iPhone, y tambi\u00e9n se puede usar en el navegador. Por lo tanto, si tienes tiempo que no sabes c\u00f3mo aprovechar, en lugar de perderte mirando Facebook o gatos en Instagram, puedes aprender algo nuevo. <\/p>\n<p><\/p>\n<h2 id=\"epilog\">Ep\u00edlogo<\/h2>\n<p><\/p>\n<p>Como mencion\u00e9 antes, esto es m\u00e1s un POC funcional que un producto terminado. Alrededor del 30% del est\u00e1ndar del analizador DSL no est\u00e1 implementado, por lo que <noindex><a rel=\"nofollow\" href=\"https:\/\/anatoly314.github.io\/dsl-manual\/#tag_service.html#alt\">por ejemplo, no se pueden encontrar todos los art\u00edculos l\u00e9xicos que existen en los diccionarios<\/a><\/noindex>, adem\u00e1s hay una idea de reescribirlo en <em>JavaScript<\/em>, ya que se desea &#171;consistency&#187;, adem\u00e1s de que actualmente no est\u00e1 escrito de manera muy \u00f3ptima. Actualmente, el parser construye un \u00e1rbol, lo cual me parece innecesario y complica el c\u00f3digo. <strong>markdown2anki<\/strong> el modo imagen no se analizan. Tratar\u00e9 de trabajar poco a poco, pero, como actualmente escribo para m\u00ed mismo, primero resolver\u00e9 los problemas que yo mismo encuentre, pero si alguien quiere ayudar, ser\u00e1 bienvenido. Si hay preguntas sobre el programa, estar\u00e9 encantado de ayudar a trav\u00e9s de issues abiertos en los proyectos correspondientes. Para cualquier otra cr\u00edtica y sugerencias, escr\u00edbanme aqu\u00ed. Espero que este proyecto sea \u00fatil para alguien.<\/p>\n<p><\/p>\n<p>P.D. Si encuentras errores (que, desafortunadamente, existen), escr\u00edbeme en privado, los corregir\u00e9.<\/p>\n<p>Fuente: <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.2 - 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\/es\/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.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd47Dos historias sobre c\u00f3mo ANKI puede ayudarte a aprender un idioma extranjero y prepararte para una entrevista | ProHoster","description":"Siempre he pensado que un programador perezoso es un buen programador. \u00bfPor qu\u00e9? Porque si le pides a un trabajador que haga algo, ir\u00e1 y lo har\u00e1.","canonical_url":"https:\/\/prohoster.info\/es\/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":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/34845","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=34845"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/34845\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media\/26237"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=34845"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=34845"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=34845"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}