Jag har alltid trott att en lat programmerare Àr en bra programmerare. Varför? För att be en hÄrt arbetande att göra nÄgot, han kommer att gÄ och göra det. Och en lat programmerare kommer att spendera 2-3 gÄnger mer tid, men kommer att skriva ett manus som kommer att göra det Ät honom. Det kan ta orimligt lÄng tid att göra detta första gÄngen, men med upprepade uppgifter kommer detta tillvÀgagÄngssÀtt att löna sig mycket snabbt. Jag betraktar mig sjÀlv som en lat programmerare. Det var ingressen, lÄt oss nu börja.
BerÀttelse ett
För nÄgra Är sedan undrade jag hur jag kunde förbÀttra min engelska. Det fanns inget bÀttre att tÀnka pÄ Àn att lÀsa litteratur. Jag köpte en elektronisk lÀsare, laddade ner böcker och började lÀsa. Under lÀsningen stötte jag hela tiden pÄ okÀnda ord. Jag översatte dem omedelbart med hjÀlp av de inbyggda ordböckerna i lÀsaren, men jag lade mÀrke till en egenskap: orden ville inte bli ihÄgkomna. NÀr jag stötte pÄ det hÀr ordet igen nÄgra sidor senare, med 90 % sannolikhet, behövde jag översÀttning igen, och detta hÀnde varje gÄng. Slutsatsen var att det inte rÀckte med att bara översÀtta okÀnda ord under lÀsningen, man mÄste göra nÄgot annat. Det idealiska alternativet skulle vara att introducera det i vardagen och börja anvÀnda det, men jag bor inte i ett engelsktalande land och det Àr osannolikt. Sedan kom jag ihÄg att jag en gÄng lÀst om .
Vad Àr det och vad Àts det med? Kort sagt, det finns det hÀr , ytterligare citat frÄn Wikipedia:
Redan inom den första timmen glöms upp till 60 % av all mottagen information, 10 timmar efter memorering finns 35 % av det som lÀrts kvar i minnet. Sedan fortsÀtter processen att glömma lÄngsamt, och efter 6 dagar finns cirka 20% av det totala antalet initialt inlÀrda stavelser kvar i minnet, och samma mÀngd finns kvar i minnet efter en mÄnad.
Och slutsatsen hÀrifrÄn
Slutsatserna som kan dras utifrÄn denna kurva Àr att för effektiv memorering Àr det nödvÀndigt att upprepa det memorerade materialet.
SÄ vi kom pÄ en idé .
Àr ett helt gratis och öppen kÀllkodsprogram som implementerar idén med spridd upprepning. Enkelt uttryckt har datoriserade flashkort en frÄga pÄ ena sidan och ett svar pÄ den andra. Eftersom du kan göra frÄgor/svar med vanliga html/css/javascript, dÄ kan vi sÀga att det verkligen har obegrÀnsade möjligheter. Dessutom Àr den utbyggbar med special , och en av dem kommer att vara mycket anvÀndbar för oss i framtiden.
Att skapa kort manuellt Àr lÄngt, trÄkigt och med stor sannolikhet kommer du efter ett tag att glömma den hÀr uppgiften, och sÄ nÄgon gÄng stÀllde jag mig frÄgan om det Àr möjligt att automatisera denna uppgift. Svaret Àr ja, det kan du. Och jag gjorde det. Jag sÀger genast, det Àr mer , men som kan anvÀndas. Om det finns intresse frÄn anvÀndare och andra utvecklare engagerar sig, sÄ kan det föras till en fÀrdig produkt som Àven tekniskt analfabeter kan anvÀnda. Att anvÀnda mitt verktyg krÀver nu viss kunskap om programmering.
Jag lÀser böcker med programmet . Den har förmÄgan att ansluta externa ordböcker, och nÀr du översÀtter ett ord sparar den ordet du anropade för översÀttning till en textfil. Allt som ÄterstÄr Àr att översÀtta dessa ord och skapa ANKI-kort.
Först försökte jag anvÀnda för översÀttning , etc. Men saker och ting fungerade inte med gratistjÀnster. Jag uttömde den fria grÀnsen under utvecklingsprocessen, dessutom, enligt licensvillkoren, hade jag inte rÀtt att cache-ord. Vid nÄgot tillfÀlle insÄg jag att jag behövde översÀtta orden sjÀlv. Som ett resultat skrevs en modul som du kan ansluta till och vem vet hur man omvandlar dem till html formatera.
SÄ hÀr ser en ordbokspost ut i *. Html, mitt alternativ jÀmfört med alternativet

Innan jag letar efter ett ord i anslutna ordböcker tar jag det till anvÀnder biblioteket . PÄ grund av det hÀr biblioteket började jag faktiskt skriva i Java och den ursprungliga planen var att skriva allt pÄ Java, men under processen hittade jag biblioteket med vilken man relativt enkelt kan exekvera Java-kod frÄn nodejs och en del av koden Àr skriven i JavaScript. Om jag hade hittat det hÀr biblioteket tidigare, skulle inte en enda rad ha skrivits i Java. Ett annat sidoprojekt som föddes i processen Àr skapandet som hittades pÄ nÀtverket i formatet *.chm, omvandlade och förde till gudomlig form. Om författaren till den ursprungliga filen Àr en anvÀndare med smeknamn yozhic NÀr han ser den hÀr artikeln tackar jag honom sÄ mycket för det arbete han har gjort, utan hans dokumentation hade jag med största sannolikhet inte lyckats.
SÄ jag har ett ord pÄ engelska, dess ordbokspost i formatet *. Html, allt som ÄterstÄr Àr att sÀtta ihop allt, skapa ANKI-artiklar frÄn listan med ord och lÀgga in dem i ANKI-databasen. För detta ÀndamÄl skapades följande projekt . Det kan ta en lista med ord som input, översÀtt, skapa ANKI *. Html artiklar och registrera dem i ANKI-databasen. I slutet av artikeln finns instruktioner om hur du anvÀnder den. Under tiden Àr den andra berÀttelsen dÀr upprepningar med avstÄnd kan vara anvÀndbara.
Den andra historien.
Alla mÀnniskor som söker en mer/mindre kvalificerad specialitet, inklusive programmerare, stÀlls inför behovet av att förbereda sig för en intervju. MÄnga av de begrepp som stÀlls i intervjuer anvÀnder du inte i vardagen och de glöms bort. NÀr jag förberedde mig för en intervju, blÀddrade i anteckningar, en bok, en uppslagsbok, stÀlldes jag inför det faktum att det tar mycket tid och uppmÀrksamhet att sÄlla fram information som du redan vet eftersom det inte alltid Àr sjÀlvklart och du mÄste lÀs den noggrant för att förstÄ vad den Àr irrelevant. NÀr du kommer till ett Àmne som verkligen behöver upprepas hÀnder det ofta att du redan Àr trött och kvaliteten pÄ dina förberedelser blir lidande. Vid nÄgot tillfÀlle tÀnkte jag, varför inte anvÀnda ANKI-kort för detta ocksÄ? Till exempel, nÀr du gör anteckningar om ett Àmne, skapa omedelbart en anteckning i form av en frÄga och ett svar, och sedan nÀr du upprepar det, kommer du omedelbart att veta om du vet svaret pÄ denna frÄga eller inte.
Det enda problemet som uppstod var att det var vÀldigt lÄngt och trÄkigt att skriva frÄgor. För att göra processen enklare, projekt Jag lade till konverteringsfunktion text i ANKI-kort. Allt du behöver Àr att skriva en stor fil dÀr frÄgor och svar kommer att markeras med en förutbestÀmd sekvens av tecken, genom vilken analysatorn kommer att förstÄ var frÄgan Àr och var svaret finns.
NÀr den hÀr filen har skapats kör du data2anki och den skapar ANKI-kort. Originalfilen Àr lÀtt att redigera och dela, du behöver bara radera motsvarande kort och köra programmet igen, sÄ skapas en ny version.
Installation och anvÀndning
Installera ANKI + AnkiConnect
- Ladda ner ANKI hÀrifrÄn:
- Installera AnkiConnect-plugin:
Installation
- Ladda ner frÄn github repository
git clone https://github.com/anatoly314/data2anki - Installera beroenden
cd data2anki && npm install - Ladda ner java-beroenden
- Uppackning jar-dependencies.zip och placera dess innehÄll i data2anki/java/jars
- Ladda ner frÄn github repository
AnvÀnd för att översÀtta ord:
I fil data2anki/config.json:
i nyckeln lÀge ange vÀrdet dsl2anki
i nyckeln modules.dsl.anki.deckName О modules.dsl.anki.modelName skriv dÀrefter О (mÄste redan skapas innan du skapar kort). För nÀrvarande stöds endast modelltypen GrundlÀggande:
Har fram- och bakfÀlt och skapar ett kort. Text du anger pÄ framsidan visas pÄ framsidan av kortet, och text du anger pÄ baksidan visas pÄ baksidan av kortet.
var Àr det ursprungliga ordet? FrÀmre fÀltet, och översÀttningen kommer att finnas i Bakre fÀlt.
Det Àr inga problem att lÀgga till support GrundlÀggande (och omvÀnt kort), dÀr ett omvÀnt kort skapas för ordet och översÀttningen, dÀr du baserat pÄ översÀttningen mÄste komma ihÄg originalordet. Allt du behöver Àr tid och lust.
i nyckeln modules.dsl.dictionariesPath registrera en array med ansluten *.dsl ordböcker. Varje ansluten ordbok Àr en katalog dÀr ordboksfilerna finns i enlighet med formatet:
i nyckeln modules.dsl.wordToTranslatePath ange sökvÀgen till listan med ord du vill översÀtta.
- Starta med ANKI-applikationen igÄng
node data2ankiindex.js - VINST!!!
AnvÀnds för att skapa kort frÄn markdown
I fil data2anki/config.json:
- i nyckeln lÀge ange vÀrdet markdown2anki
- i nyckeln modules.markdown.anki.deckName О modules.dsl.anki.modelName skriv dÀrefter О (mÄste redan skapas innan du skapar kort). För markdown2anki Endast modelltyp stöds GrundlÀggande.
i nyckeln modules.markdown.selectors.startQuestionSelectors О modules.markdown.selectors.startAnswerSelectors du skriver vÀljare med vilka du markerar början av frÄga respektive svar. Raden med sjÀlva vÀljaren kommer inte att analyseras och kommer inte att hamna pÄ kortet, analysatorn kommer att börja arbeta frÄn nÀsta rad.
Till exempel detta frÄge-/svarkort:

Det kommer att se ut sÄ hÀr i markdown:
#FRà GA# ## FrÄga 5. Skriv en mul-funktion som kommer att fungera korrekt nÀr den anropas med följande syntax. ```javascript console.log(mul(2)(3)(4)); // output : 24 console.log(mul(4)(3)(4)); // output : 48 ``` #ANSWER# Nedan följer koden följt av en förklaring av hur det fungerar: ```javascript function mul (x) { return function (y) { // anonymous function return function (z) { // anonym funktion returnerar x * y * z; }; }; } ``` HÀr accepterar `mul`-funktionen det första argumentet och returnerar den anonyma funktionen som tar den andra parametern och returnerar den anonyma funktionen som tar den tredje parametern och returnerar multiplikationen av argument som skickas i successiv In Javascript-funktion definierad inside har tillgÄng till yttre funktionsvariabel och funktion Àr det första klassobjektet sÄ det kan returneras av funktionen ocksÄ och skickas som ett argument i en annan funktion. - En funktion Àr en instans av objekttypen - En funktion kan ha egenskaper och har en lÀnk tillbaka till sin konstruktormetod - En funktion kan lagras som variabel - En funktion kan skickas som en parameter till en annan funktion - En funktion kan vara ÄtervÀnt frÄn en annan funktionExempel taget hÀrifrÄn:
Det finns Àven en fil med exempel i projektmappen
examples/markdown2anki-example.md- i nyckeln modules.markdown.pathToFile
skriv ner sökvÀgen till filen dÀr *.md frÄga/svar fil
- Starta med ANKI-applikationen igÄng
node data2ankiindex.js - VINST!!!
SÄ hÀr ser det ut pÄ en mobiltelefon:

Resultat
Kort som tas emot pÄ skrivbordsversionen av ANKI synkroniseras sömlöst med ANKI-molnet (gratis upp till 100 MB), och sedan kan du anvÀnda dem var som helst. Det finns klienter för Android О iPhone, kan Àven anvÀndas i en webblÀsare. SÄ om du har tid att fördriva, istÀllet för att planlöst scrolla igenom Facebook eller titta pÄ katter pÄ Instagram, kan du lÀra dig nÄgot nytt.
Epilog
Som jag nÀmnde Àr detta mer en fungerande POC som du kan anvÀnda Àn en fÀrdig produkt. Cirka 30 % av DSL-parserstandarden Àr inte implementerad, och dÀrför , det finns ocksÄ en idé att skriva om den i JavaScript, för jag vill ha "konsistens", och dessutom Àr det nu inte skrivet sÀrskilt optimalt. Nu bygger parsern ett trÀd, men enligt min mening Àr detta onödigt och behöver inte komplicera koden. I markdown2anki lÀge, bilderna analyseras inte. Jag ska försöka klippa lite i taget, men eftersom jag skriver för mig sjÀlv ska jag först och frÀmst lösa de problem som jag sjÀlv kommer att trampa pÄ, men om nÄgon vill hjÀlpa till sÄ Àr du vÀlkommen. Om du har frÄgor om programmet hjÀlper jag gÀrna till genom öppna frÄgor i de aktuella projekten. Skriv annan kritik och förslag hÀr. Jag hoppas att det hÀr projektet kommer att vara anvÀndbart för nÄgon.
PS Om du upptÀcker nÄgra fel (och tyvÀrr finns det nÄgra), skriv till mig i ett personligt meddelande, jag korrigerar allt.
KĂ€lla: will.com

