دوه کیسې چې څنګه ANKI کولی شي تاسو سره د بهرنۍ ژبې زده کولو او مرکو لپاره چمتو کولو کې مرسته وکړي

زه تل په دې باور وم چې یو سست پروګرامر یو ښه پروګرامر دی. ولې؟ ځکه چې له سخت کار څخه وغواړئ چې یو څه وکړي، هغه به لاړ شي او هغه به وکړي. او یو سست پروګرامر به 2-3 ځله ډیر وخت مصرف کړي، مګر یو سکریپټ به لیکي چې دا به یې وکړي. دا ممکن د لومړي ځل لپاره په غیر معقول ډول اوږد وخت ونیسي، مګر د تکرار کارونو سره دا طریقه به په چټکۍ سره تادیه کړي. زه خپل ځان یو سست پروګرامر ګڼم. همدا تمثیل و، اوس راځو سوداګرۍ ته.

یوه کیسه

څو کاله دمخه ما فکر کاوه چې څنګه کولی شم خپله انګلیسي ښه کړم. د ادب له لوستلو پرته بل څه ښه ذهن ته نه راځي. ما یو بریښنایی لوستونکی واخیست، کتابونه مې ډاونلوډ کړل او ما لوستل پیل کړل. د لوستلو په وخت کې، ما د ناپېژندل شویو کلمو سره مخ شو. ما سمدلاسه د لوستونکي لپاره د جوړ شوي لغتونو په کارولو سره دوی وژباړل، مګر ما یوه ځانګړتیا ولیدله: ټکي نه غوښتل چې یاد شي. کله چې زه یو څو مخونه وروسته بیا دا کلمه ومومم، د 90٪ احتمال سره ما بیا ژباړې ته اړتیا درلوده، او دا هر ځل پیښ شوي. پایله دا وه چې د لوستلو پرمهال یوازې د نا معلومو کلمو ژباړلو لپاره کافي ندي ، تاسو اړتیا لرئ یو بل کار وکړئ. غوره اختیار به دا وي چې دا په ورځني ژوند کې معرفي کړئ او کارول یې پیل کړئ، مګر زه په انګلیسي ژبو هیواد کې ژوند نه کوم او دا امکان نلري. بیا مې یاد کړل چې ما یو ځل په اړه لوستلی و فاصله تکرار.

دا څه شی دی او د څه شی سره خوړل کیږي؟ په لنډه توګه، دا شتون لري منحنی هیرولد ويکيپېډيا څخه نور اقتباس:

لا دمخه په لومړي ساعت کې، تر 60٪ پورې ټول ترلاسه شوي معلومات هیر شوي؛ د یادولو 10 ساعته وروسته، 35٪ هغه څه چې زده شوي په حافظه کې پاتې کیږي. بیا د هیرولو پروسه ورو پرمخ ځي، او د 6 ورځو وروسته شاوخوا 20٪ د لومړنیو زده شویو نښو ټول شمیر په حافظه کې پاتې کیږي، او هماغه اندازه یوه میاشت وروسته په حافظه کې پاتې کیږي.

او له دې ځایه پایله

هغه پایلې چې د دې منحني پراساس اخیستل کیدی شي دا دي چې د مؤثره حافظې لپاره دا اړینه ده چې یاد شوي توکي تکرار شي.

نو موږ د یوې مفکورې سره راغلل فاصله تکرار.

انکی یو بشپړ وړیا او خلاصې سرچینې برنامه ده چې د ځای تکرار کولو مفکوره پلي کوي. په ساده ډول ووایاست، کمپیوټر شوي فلش کارتونه له یوې خوا پوښتنې لري او بل ته ځواب. ځکه چې تاسو کولی شئ په منظم ډول پوښتنې / ځوابونه وکړئ html/css/javascript، بیا موږ کولی شو ووایو چې دا واقعیا لامحدود امکانات لري. برسېره پردې، دا د ځانګړي سره د پراخیدو وړ دی پلگ ان، او یو له دوی څخه به په راتلونکي کې زموږ لپاره خورا ګټور وي.

په لاسي ډول د کارتونو رامینځته کول اوږد ، ستړي او د لوړ احتمال سره دي ، یو څه وروسته به تاسو د دې کار په اړه هیر کړئ ، او له همدې امله په یو وخت کې ما له ځانه پوښتنه وکړه ، ایا دا امکان لري چې دا کار اتومات شي؟ ځواب هو دی، تاسو کولی شئ. او ما دا وکړل. زه به سمدلاسه ووایم، دا ډیر دی POC (د مفهوم ثبوت)، مګر کوم چې کارول کیدی شي. که چیرې د کاروونکو لیوالتیا وي او نور پراختیا کونکي پکې ښکیل وي، نو دا یو بشپړ شوي محصول ته راوړل کیدی شي چې حتی تخنیکي پلوه نالوستي کارونکي یې کارولی شي. اوس، زما د کارونې کارول د پروګرام کولو ځینې پوهې ته اړتیا لري.

زه د پروګرام په کارولو سره کتابونه لولم هوایی. دا د بهرني لغتونو سره د نښلولو وړتیا لري، او کله چې تاسو یوه کلمه وژباړئ، دا هغه کلمه خوندي کوي چې تاسو یې د ژباړې لپاره غوښتل شوي متن فایل ته. ټول هغه څه چې پاتې دي د دې کلمو ژباړل او د ANKI کارتونه جوړول دي.

په لومړي سر کې ما هڅه وکړه چې د ژباړې لپاره وکاروم ګوګل ژباړونکی, Lingvo API etc مګر شیان د وړیا خدماتو سره کار نه کوي. ما د پراختیایي پروسې په جریان کې وړیا حد ختم کړ، سربیره پردې، د جواز د شرایطو سره سم، زه د کلمو د ذخیره کولو حق نلرم. په یو وخت کې زه پوهیدم چې زه اړتیا لرم چې دا کلمې پخپله ژباړم. په پایله کې، یو ماډل لیکل شوی و dsl2html کوم چې تاسو کولی شئ اړیکه ونیسئ د DSL لغتونه او څوک پوهیږي چې څنګه یې بدل کړي د HTML بڼه.

دا هغه څه دي چې د لغت داخله په * کې ښکاري.html، زما اختیار د اختیار په پرتله GoldenDict

دوه کیسې چې څنګه ANKI کولی شي تاسو سره د بهرنۍ ژبې زده کولو او مرکو لپاره چمتو کولو کې مرسته وکړي

مخکې له دې چې په مربوط لغتونو کې د یوې کلمې لټون وکړم، زه یې راوړم د لغت بڼه (lemma) د کتابتون کارول سټینفورډ کورین ایل پی. په حقیقت کې، د دې کتابتون له امله، ما په جاوا کې لیکل پیل کړل او اصلي پلان دا و چې هرڅه په جاوا کې ولیکم، مګر په بهیر کې ما کتابتون وموند. نوډ-جاوا د کوم سره چې تاسو کولی شئ په نسبتا اسانۍ سره د نوډجز څخه جاوا کوډ اجرا کړئ او ځینې کوډ په جاواسکریپټ کې لیکل شوی. که ما دا کتابتون مخکې موندلی وای، په جاوا کې به یوه کرښه هم نه وه لیکل شوې. د بل اړخ پروژه چې په پروسه کې زیږیدلې ده، جوړول دي د DSL اسنادو سره ذخیره کوم چې په شبکه کې په بڼه وموندل شو *.chm، بدل شوی او په الهی شکل کې راوړل شوی. که د اصلي فایل لیکوال د مستعار نوم لخوا یو کارن وي یوزیک کله چې هغه دا مقاله وګوري، زه د هغه کار لپاره ډیره مننه کوم چې هغه ترسره کړی؛ د هغه د اسنادو پرته، زه به ډیر احتمال بریالی نه وای.

نو، زه په انګلیسي کې یوه کلمه لرم، د لغت په بڼه کې داخل شو *.html، ټول هغه څه چې پاتې دي دا دي چې هرڅه یوځای کړئ ، د کلمو له لیست څخه د ANKI مقالې رامینځته کړئ او د ANKI ډیټابیس ته یې دننه کړئ. د دې هدف لپاره لاندې پروژه جوړه شوه data2anki. دا کولی شي د کلمو لیست لکه داخل کړي، ژباړه وکړي، ANKI جوړ کړي *.html مقالې او د ANKI ډیټابیس کې یې ثبت کړئ. د مقالې په پای کې د دې کارولو څرنګوالي په اړه لارښوونې شتون لري. په ورته وخت کې، دویمه کیسه ده چیرې چې د ځای تکرار کول ګټور وي.

دویمه کیسه.

ټول هغه خلک چې د ډیر / لږ وړ وړ ځانګړتیا په لټه کې دي، د پروګرام کونکو په ګډون، د مرکې لپاره چمتو کولو اړتیا سره مخ دي. ډیری مفکورې چې په مرکو کې پوښتل شوي تاسو په ورځني عمل کې نه کاروئ او هیر شوي. کله چې د مرکې لپاره چمتو کول، د نوټونو، یو کتاب، د حوالې کتاب له لارې تیریدل، زه د دې حقیقت سره مخ شوم چې دا ډیر وخت او پام ته اړتیا لري ترڅو هغه معلومات راټول کړي چې تاسو دمخه پوهیږئ ځکه چې دا تل ښکاره نه وي او تاسو باید دا په دقت سره ولولئ ترڅو پوه شئ چې دا څه دي. کله چې تاسو یوې موضوع ته راشئ چې واقعیا تکرار ته اړتیا لري ، ډیری وختونه داسې پیښیږي چې تاسو دمخه ستړي یاست او ستاسو د چمتووالي کیفیت زیانمن کیږي. په یو وخت کې ما فکر وکړ، ولې د دې لپاره د ANKI کارتونه نه کاروئ؟ د بېلګې په توګه، کله چې د یوې موضوع په اړه نوټ واخلئ، سمدستي د پوښتنې او ځواب په بڼه یو نوټ جوړ کړئ او بیا چې تکرار کړئ، سمدلاسه به پوه شئ چې ایا تاسو د دې پوښتنې په ځواب پوهیږئ که نه.

یوازینۍ ستونزه چې راپورته شوه دا وه چې د پوښتنو ټایپ کول خورا اوږد او ستړي و. د پروسې د اسانه کولو لپاره، data2anki پروژه ما د بدلولو فعالیت اضافه کړ نښه کول متن په ANKI کارتونو کې. ټول هغه څه چې تاسو ورته اړتیا لرئ د یوې لوی فایل لیکلو ته اړتیا لرئ په کوم کې چې پوښتنې او ځوابونه به د حروفونو له مخکې ټاکل شوي ترتیب سره په نښه شي، د دې په واسطه پارسر به پوه شي چې پوښتنه چیرته ده او ځواب چیرته دی.

یوځل چې دا فایل رامینځته شي ، تاسو data2anki چلوئ او دا د ANKI کارتونه رامینځته کوي. اصلي فایل د ایډیټ کولو او شریکولو لپاره اسانه دی، تاسو اړتیا لرئ چې اړونده کارتونه پاک کړئ او پروګرام بیا پیل کړئ، او نوې نسخه به جوړه شي.

نصب او کارول

  1. د ANKI + AnkiConnect نصب کول

    1. له دې ځایه ANKI ډاونلوډ کړئ: https://apps.ankiweb.net/
    2. د AnkiConnect پلگ ان نصب کړئ: https://ankiweb.net/shared/info/2055492159

  2. د جوړولو data2anki

    1. ډاونلوډ کړئ data2anki د ګیتوب ذخیره څخه
      git clone https://github.com/anatoly314/data2anki
    2. انحصارونه نصب کړئ
      cd data2anki && npm install
    3. د جاوا انحصار ډاونلوډ کړئ https://github.com/anatoly314/data2anki/releases/download/0.1.0/jar-dependencies.zip
    4. خلاصول jar-dependencies.zip او د هغې مینځپانګې په کې ځای په ځای کړئ data2anki/java/jars

  3. د کلمو د ژباړلو لپاره وکاروئ:

    1. په دوتنه کې data2anki/config.json:

      • په کلید کې اکر ارزښت داخل کړئ dsl2anki

      • په کلید کې modules.dsl.anki.deckName и modules.dsl.anki.modelName مطابق ولیکئ د ډیک نوم и د نمونوي نوم (باید د کارتونو جوړولو دمخه دمخه رامینځته شي). اوس مهال یوازې د ماډل ډول ملاتړ کیږي د اساسي:

        د مخ او شا ساحې لري، او یو کارت به جوړ کړي. هغه متن چې تاسو یې په مخ کې دننه کوئ د کارت په مخ کې به ښکاره شي، او هغه متن چې تاسو یې په شا کې داخل کړئ د کارت په شا کې به ښکاره شي.

        اصلي کلمه چیرته ده؟ مخکینۍ ساحه، او ژباړه به په کې وي شاته میدان.

        د ملاتړ اضافه کولو کې کومه ستونزه نشته بنسټیز (او بدل شوی کارت)، چیرې چې د کلمې او ژباړې لپاره به یو ریورس کارت رامینځته شي ، چیرې چې د ژباړې پراساس تاسو اړتیا لرئ اصلي کلمه په یاد ولرئ. ټول هغه څه چې تاسو ورته اړتیا لرئ وخت او غوښتنې دي.

      • په کلید کې modules.dsl.dictionariesPath د نښلول شوي * سره یو صف ثبت کړئ.dsl لغتونه هر وصل شوی قاموس یو لارښود دی په کوم کې چې د قاموس فایلونه د فارمیټ سره سم موقعیت لري: د DSL لغت جوړښت

      • په کلید کې modules.dsl.wordToTranslatePath د هغه کلمو لیست ته لاره دننه کړئ چې تاسو یې ژباړئ.

    2. د ANKI غوښتنلیک چلولو سره پیل کړئ
      node data2ankiindex.js
    3. ګټه!!!

  4. د مارک ډاون څخه د کارتونو جوړولو لپاره کارول کیږي

    1. په دوتنه کې data2anki/config.json:

      • په کلید کې اکر ارزښت داخل کړئ markdown2anki
      • په کلید کې modules.markdown.anki.deckName и modules.dsl.anki.modelName مطابق ولیکئ د ډیک نوم и د نمونوي نوم (باید د کارتونو جوړولو دمخه دمخه رامینځته شي). لپاره markdown2anki موډ یوازې د ماډل ډول ملاتړ شوی د اساسي.
      • په کلید کې modules.markdown.selectors.startQuestionSelectors и modules.markdown.selectors.startAnswerSelectors تاسو انتخاب کونکي لیکئ چې تاسو یې په ترتیب سره د پوښتنې او ځواب پیل نښه کوئ. پخپله د انتخاب کونکي سره کرښه به تجزیه نشي او په کارت کې به پای ته ونه رسیږي؛ پارسر به د بلې کرښې څخه کار پیل کړي.

        د مثال په توګه، دا پوښتنه/جواب کارت:

        دوه کیسې چې څنګه ANKI کولی شي تاسو سره د بهرنۍ ژبې زده کولو او مرکو لپاره چمتو کولو کې مرسته وکړي

        دا به په نښه کولو کې داسې ښکاري:
        #پوښتنه# ## پوښتنه 5. یو mul فنکشن ولیکئ کوم چې د لاندې نحو سره سم کار کوي. ```javascript console.log(mul(2)(3)(4)); // محصول : 24 console.log(mul(4)(3)(4)); // output : 48 ``` # ځواب# لاندې کوډ دی چې د دې تشریح کولو سره تعقیب شوی چې دا څنګه کار کوي: ```جاواسکریپټ فنکشن mul (x) { بیرته ستنیدنه (y) { // نامعلوم فعالیت بیرته ستنیدنه (z) { // نامناسب فنکشن بیرته راګرځي x * y * z؛ }; }; } ``` دلته د `mul` فنکشن لومړی دلیل مني او نامعلوم فنکشن بیرته راګرځوي کوم چې دوهم پیرامیټر اخلي او نامعلوم فنکشن بیرته راګرځوي کوم چې دریم پیرامیټر اخلي او د دلیلونو ضرب بیرته راګرځوي کوم چې په پرله پسې توګه تیریږي په جاواسکریپټ فنکشن کې تعریف شوی. دننه د خارجي فعالیت متغیر ته لاسرسی لري او فنکشن د لومړي ټولګي څیز دی نو دا د فنکشن لخوا هم بیرته راستنیدل کیدی شي او په بل فنکشن کې د دلیل په توګه تیریږي. - فنکشن د آبجیکٹ ډول یوه بیلګه ده - یو فنکشن کولی شي ملکیتونه ولري او د خپل جوړونکي میتود سره یو لینک ولري - یو فنکشن د متغیر په توګه زیرمه کیدی شي - یو فنکشن بل فنکشن ته د پیرامیټر په توګه لیږدول کیدی شي - یو فنکشن کیدی شي د بل فنکشن څخه بیرته راستانه شوی
        

        له دې ځایه اخیستل شوې بېلګه: 123-جاواسکریپټ-مرکه-پوښتنې

        د پروژې فولډر کې د مثالونو سره یو فایل هم شتون لري examples/markdown2anki-example.md

      • په کلید کې modules.markdown.pathToFile
        فایل ته لاره ولیکئ چیرې چې *.md د پوښتنې / ځواب فایل

    2. د ANKI غوښتنلیک چلولو سره پیل کړئ
      node data2ankiindex.js
    3. ګټه!!!

دا هغه څه دي چې په ګرځنده تلیفون کې ښکاري:

نتيجه

د ANKI ډیسټاپ نسخه کې ترلاسه شوي کارتونه د ANKI کلاوډ سره ستونزې پرته همغږي شوي (تر 100mb پورې وړیا) ، او بیا تاسو کولی شئ دا هرچیرې وکاروئ. د Android او iPhone لپاره پیرودونکي شتون لري، او تاسو کولی شئ دا په براوزر کې هم وکاروئ. د پایلې په توګه ، که تاسو وخت لرئ چې تاسو د مصرف کولو لپاره هیڅ نلرئ ، نو د دې پرځای چې په انسټاګرام کې د فېسبوک یا پیشوګانو له لارې بې هدفه سکرول وکړئ ، تاسو کولی شئ یو څه نوي زده کړئ.

اییلیلوم

لکه څنګه چې ما یادونه وکړه، دا د کار کولو POC ډیر دی چې تاسو کولی شئ د بشپړ شوي محصول څخه کار واخلئ. د DSL پارسر معیار شاوخوا 30٪ نه پلي کیږي، او له همدې امله، د بېلګې په توګه، د لغتونو ټولې داخلې چې په لغتونو کې دي موندل کیدی نشي، د دې د بیا لیکلو لپاره یو نظر هم شتون لري د جاواسکرېپټ، ځکه چې زه "متوافقت" غواړم، او سربیره پردې، اوس دا خورا ښه نه لیکل کیږي. اوس پارسر یوه ونه جوړوي، مګر زما په اند دا غیر ضروري دی او د کوډ پیچلو ته اړتیا نلري. IN markdown2anki حالت، انځورونه نه تجزیه شوي. زه به هڅه وکړم چې لږ څه کم کړم، مګر دا چې زه د خپل ځان لپاره لیکم، زه به لومړی د ټولو ستونزو حل کړم چې زه به پخپله ګام پورته کړم، مګر که څوک مرسته کول غواړي نو تاسو ته ښه راغلاست. که تاسو د پروګرام په اړه پوښتنې لرئ، زه به خوشحاله یم چې په اړونده پروژو کې د خلاص مسلو له لارې مرسته وکړم. نورې نیوکې او وړاندیزونه دلته ولیکئ. زه امید لرم چې دا پروژه به د یو چا لپاره ګټور وي.

PS که تاسو کومه تېروتنه وګورئ (او له بده مرغه ځینې شتون لري)، ما ته په شخصي پیغام کې ولیکئ، زه به هرڅه سم کړم.

سرچینه: www.habr.com

Add a comment