דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. תוכנות
  3. תוכנות גרפיקה עימוד ועיצוב
  4. עזרה הדדית - תוכנות גרפיקה ועיצוב
  5. הצעת ייעול | קונספט חדש לפרוייקט השו״ת

הצעת ייעול | קונספט חדש לפרוייקט השו״ת

מתוזמן נעוץ נעול הועבר עזרה הדדית - תוכנות גרפיקה ועיצוב
178 פוסטים 34 כותבים 16.9k צפיות 36 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • sivan22S sivan22

    @אפי-זינגר ל2 מיליון רשומות? נראה לי שכן. pandas כתובה בכלל בc++

    א מנותק
    א מנותק
    אפי זינגר
    כתב ב נערך לאחרונה על ידי
    #157

    @sivan22 כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

    @אפי-זינגר ל2 מיליון רשומות? נראה לי שכן. pandas כתובה בכלל בc++

    V8 מחשב בעפרון על האוזן?
    גם C++

    sivan22S צדיק תמיםצ 2 תגובות תגובה אחרונה
    0
    • א אפי זינגר

      @sivan22 כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

      @אפי-זינגר ל2 מיליון רשומות? נראה לי שכן. pandas כתובה בכלל בc++

      V8 מחשב בעפרון על האוזן?
      גם C++

      sivan22S מנותק
      sivan22S מנותק
      sivan22
      כתב ב נערך לאחרונה על ידי sivan22
      #158

      @אפי-זינגר הדרך היחידה להכריע היא לבדוק בפועל. האמת שמאד קשה להשוות בין טכנולוגיות כל כך שונות. pandas פועלת על הרשומות במקביל באלגוריתמים מעולם המטריצות וnumPy, ולכן יש לה יעילות מעוררת השתאות במסדי נתונים גדולים. בנוד יש אינספור I\O שרצים באופן א-סינכרוני. אז קשה מאד לדעת מה עדיף. אולי זה גם תלוי מה המטלה.

      תגובה 1 תגובה אחרונה
      0
      • sivan22S sivan22

        @meir-lamdan כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

        @sivan22 כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

        מה שחסר במיוחד כרגע, זה כל השמות בעברית. יש אותם כמובן במסד נתונים, אבל צריך לחלץ אותם מעומק העץ של MongoDB.

        schema?.titles.find(t => t.lang === 'he' && t.primary).text
        

        תודה רבה, יפה מאד! אני לא השתמשתי בשרת node אלא בפייתון עם pymongo וישר לpandas, אז הקוד שלי בסוף נראה כך:

        def get_he_title(obj)->object:
            if 'titles' in obj:
                for title in obj['titles']:
                    if title['lang'] == 'he' and 'primary' in title:
                        return title['text']
            return None
        books['he_title']=books['schema'].apply(get_he_title)
        

        אין ספק שהקוד בJS יותר אלגנטי (במקרה הזה), אבל הביצועים של pandas הם הרבה יותר מהירים, גם בגלל הספרייה החזקה, וגם בגלל שהכל בראם בלי שרת.

        צדיק תמיםצ מנותק
        צדיק תמיםצ מנותק
        צדיק תמים
        מדריכים
        כתב ב נערך לאחרונה על ידי צדיק תמים
        #159

        @sivan22 כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

        אני לא השתמשתי בשרת Django

        Django זה פריימוורק פייתון, נראה שהתבלבלת במילה

        @sivan22 כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

        אין ספק שהקוד בJS יותר אלגנטי (במקרה הזה), אבל הביצועים של pandas הם הרבה יותר מהירים, גם בגלל הספרייה החזקה, וגם בגלל שהכל בראם בלי שרת.

        מה זה "שרת"? לפייתון יש "שרת" בדיוק כמו שלnode יש, ואם אתה טוען את המידע לזכרון אז הוא בראם גם בנוד וגם בפייתון, רק שאתה משתמש בספריה כדי לעבד את המידע אח"כ
        אני אגב מעריך שמה שיהיה הכי יעיל זה שאילתה מתאימה ישירות למונגו ולא לטעון הכל לזיכרון ואז לולאות או ספריות
        תכלס ברגע שמדובר על חילוץ מידע חד פעמי זה לא משנה כל כך הביצועים

        sivan22S תגובה 1 תגובה אחרונה
        1
        • א אפי זינגר

          @sivan22 כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

          @אפי-זינגר ל2 מיליון רשומות? נראה לי שכן. pandas כתובה בכלל בc++

          V8 מחשב בעפרון על האוזן?
          גם C++

          צדיק תמיםצ מנותק
          צדיק תמיםצ מנותק
          צדיק תמים
          מדריכים
          כתב ב נערך לאחרונה על ידי צדיק תמים
          #160
          פוסט זה נמחק!
          תגובה 1 תגובה אחרונה
          0
          • צדיק תמיםצ צדיק תמים

            @sivan22 כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

            אני לא השתמשתי בשרת Django

            Django זה פריימוורק פייתון, נראה שהתבלבלת במילה

            @sivan22 כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

            אין ספק שהקוד בJS יותר אלגנטי (במקרה הזה), אבל הביצועים של pandas הם הרבה יותר מהירים, גם בגלל הספרייה החזקה, וגם בגלל שהכל בראם בלי שרת.

            מה זה "שרת"? לפייתון יש "שרת" בדיוק כמו שלnode יש, ואם אתה טוען את המידע לזכרון אז הוא בראם גם בנוד וגם בפייתון, רק שאתה משתמש בספריה כדי לעבד את המידע אח"כ
            אני אגב מעריך שמה שיהיה הכי יעיל זה שאילתה מתאימה ישירות למונגו ולא לטעון הכל לזיכרון ואז לולאות או ספריות
            תכלס ברגע שמדובר על חילוץ מידע חד פעמי זה לא משנה כל כך הביצועים

            sivan22S מנותק
            sivan22S מנותק
            sivan22
            כתב ב נערך לאחרונה על ידי sivan22
            #161

            @צדיק-תמים כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת

            אני אגב מעריך שמה שיהיה הכי יעיל זה שאילתה מתאימה ישירות למונגו ולא לטעון הכל לזיכרון ואז לולאות או ספריות

            דווקא לא, כי שרת mongo הוא מאד איטי, בוודאי ביחס לpandas או node. וכאן הטענה שלי ודאי תקפה.

            תכלס ברגע שמדובר על חילוץ מידע חד פעמי זה לא משנה כל כך הביצועים

            יש הרבה ניסוי וטעייה והרצתי את הקוד כמה וכמה פעמים, ומדובר על 3.5m רשומות.
            החילוץ הוא בהתחלה להעביר הכל לpandad או לdjango.

            אכן טעיתי כשקראתי לקוד בnode בשם הלא קשור בכלל Django. כוונתי היתה לשרת node. ונדמה לי שהמימוש של mongo בnode הוא באמת לא טוען את הכל לראם אלא רק מתווך את שרת המונגו, מה שמאשש את הטענה שמדובר בהרבה מאד I/o

            צדיק תמיםצ תגובה 1 תגובה אחרונה
            0
            • sivan22S sivan22

              @צדיק-תמים כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת

              אני אגב מעריך שמה שיהיה הכי יעיל זה שאילתה מתאימה ישירות למונגו ולא לטעון הכל לזיכרון ואז לולאות או ספריות

              דווקא לא, כי שרת mongo הוא מאד איטי, בוודאי ביחס לpandas או node. וכאן הטענה שלי ודאי תקפה.

              תכלס ברגע שמדובר על חילוץ מידע חד פעמי זה לא משנה כל כך הביצועים

              יש הרבה ניסוי וטעייה והרצתי את הקוד כמה וכמה פעמים, ומדובר על 3.5m רשומות.
              החילוץ הוא בהתחלה להעביר הכל לpandad או לdjango.

              אכן טעיתי כשקראתי לקוד בnode בשם הלא קשור בכלל Django. כוונתי היתה לשרת node. ונדמה לי שהמימוש של mongo בnode הוא באמת לא טוען את הכל לראם אלא רק מתווך את שרת המונגו, מה שמאשש את הטענה שמדובר בהרבה מאד I/o

              צדיק תמיםצ מנותק
              צדיק תמיםצ מנותק
              צדיק תמים
              מדריכים
              כתב ב נערך לאחרונה על ידי צדיק תמים
              #162

              @sivan22 כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

              @צדיק-תמים כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת

              אני אגב מעריך שמה שיהיה הכי יעיל זה שאילתה מתאימה ישירות למונגו ולא לטעון הכל לזיכרון ואז לולאות או ספריות

              דווקא לא, כי שרת mongo הוא מאד איטי, בוודאי ביחס לpandas או node

              בשליפה נתונים עם שאילתה מדויקת שזה מהות תפקידו של מסד נתונים ועל אחת כמה וכמה מסד מונגו (NoSql שכל הרעיון שהוא נולד זה עלויות אחסון - ומהירות), ברור לי שאתה טועה ביחס לנוד, את pandas אני לא מכיר

              sivan22S תגובה 1 תגובה אחרונה
              0
              • צדיק תמיםצ צדיק תמים

                @sivan22 כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                @צדיק-תמים כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת

                אני אגב מעריך שמה שיהיה הכי יעיל זה שאילתה מתאימה ישירות למונגו ולא לטעון הכל לזיכרון ואז לולאות או ספריות

                דווקא לא, כי שרת mongo הוא מאד איטי, בוודאי ביחס לpandas או node

                בשליפה נתונים עם שאילתה מדויקת שזה מהות תפקידו של מסד נתונים ועל אחת כמה וכמה מסד מונגו (NoSql שכל הרעיון שהוא נולד זה עלויות אחסון - ומהירות), ברור לי שאתה טועה ביחס לנוד, את pandas אני לא מכיר

                sivan22S מנותק
                sivan22S מנותק
                sivan22
                כתב ב נערך לאחרונה על ידי sivan22
                #163

                @צדיק-תמים נראה לי שדיברתי הרבה שטויות והראיתי את הבורות שלי.

                לסיכום, בשביל להעביר נתונים מmongoDB לsqlite, הקושי המרכזי הוא לא במימוש אלא בתכנון, זאת אומרת להעביר מעץ עמוק מאד, למספר טבלאות דו מימדית, זה דורש הכרעות לגבי הייצוג שהוא בהכרח יהיה שונה.

                אופן המימוש יכול להיות באמצעות שאילתה של מונגו:

                [
                    {
                        '$set': {
                            'he_title': {
                                '$filter': {
                                    'input': '$schema.titles', 
                                    'as': 'he_titles', 
                                    'cond': {
                                        '$eq': [
                                            '$$he_titles.primary', True
                                        ]
                                    }, 
                                    'limit': 2
                                }
                            }
                        }
                    }, {
                        '$set': {
                            'he_title': {
                                '$filter': {
                                    'input': '$he_title', 
                                    'as': 'he_titles', 
                                    'cond': {
                                        '$eq': [
                                            '$$he_titles.lang', 'he'
                                        ]
                                    }, 
                                    'limit': 2
                                }
                            }
                        }
                    }, {
                        '$set': {
                            'he_title': {
                                '$arrayElemAt': [
                                    '$he_title.text', 0
                                ]
                            }
                        }
                    }
                ]
                

                או באמצעות קליטת הנתונים בנוד, ואז שימוש ביכולות ההתמודדות הטובות של JS עם dictionaries.:

                myColl.find(); 
                schema?.titles.find(t => t.lang === 'he' && t.primary).text
                

                או בפייתון, לשבור את השיניים עם חוסר תמיכה נוח בdictionaries:

                def get_he_title(obj)->object:
                    if 'titles' in obj:
                        for title in obj['titles']:
                            if title['lang'] == 'he' and 'primary' in title:
                                return title['text']
                    return None
                books['he_title']=books['schema'].apply(get_he_title)
                

                ואפשר בכלל להשתמש בJAVA עם קובץ JSON שיצא כפלט מהמסד נתונים:

                protected static int addText(Connection c, JSONObject enJSON, JSONObject heJSON, JSONObject schemaFile) throws JSONException{
                		if(enJSON == null && heJSON == null){
                			System.err.print("Both JSONs are null in Node.addText()");
                			return -1;
                		}
                		int enLang =0,heLang=0;
                		String title ="";
                		JSONObject node = null;
                		if(enJSON != null){
                			enLang = returnLangNums(enJSON.getString("language"));
                			title = enJSON.getString("title");
                			node = (JSONObject) enJSON.get("schema");
                		}		
                		if(heJSON != null){
                			heLang = returnLangNums(heJSON.getString("language"));
                			title = heJSON.getString("title");
                			node = (JSONObject) heJSON.get("schema");
                		}
                		int lang = enLang + heLang;
                		/**
                		 * check for errors
                		 */
                		if((enLang != SQLite.LANG_EN  && enLang != 0)|| (heLang != SQLite.LANG_HE  && heLang != 0)){
                			System.err.println("Error in Node.addText(): not right lang numbers. enLang:" + enLang  + " heLang:" + heLang);
                			return -1;
                		}
                		if(title.equals("")){
                			System.err.println("no Title");
                			return -1;
                		}
                		if(enJSON != null && heJSON != null){
                			if(!heJSON.get("schema").toString().equals(enJSON.get("schema").toString())){
                				System.err.println("en and he JSONs schemas don't match\n");	
                				System.out.println(heJSON.get("schema"));
                				System.out.println(enJSON.get("schema"));
                				return -1;
                			}
                			if(!enJSON.getString("title").equals(heJSON.getString("title"))){
                				System.err.println("en and he JSONs title don't match" + enJSON.getString("title") + " - " + heJSON.getString("title"));
                				return -1;
                			}
                
                		}
                		if(!booksInDB.containsKey(title)){
                			System.err.println("Don't have book in DB and trying to add text");
                			return -1;
                		}
                		int bid = booksInDBbid.get(title); 
                		JSONObject enText = null, heText = null;
                		if(enJSON != null){
                			enText = (JSONObject) enJSON.get("text");
                		}
                		if(heJSON != null){
                			heText = (JSONObject) heJSON.get("text");
                		}
                		JSONObject schema = null;
                		try{
                			schema = schemaFile.getJSONObject("schema");
                		}catch(JSONException e){
                			e.printStackTrace();
                		}
                		insertNode(c, schema, enText,heText, 0,0,bid,0,lang);
                		return 1; //it worked
                	}
                
                
                צדיק תמיםצ תגובה 1 תגובה אחרונה
                2
                • האדם החושבה מנותק
                  האדם החושבה מנותק
                  האדם החושב
                  מדריכים
                  כתב ב נערך לאחרונה על ידי
                  #164

                  כמה הערות:
                  א' בכל ספר יש את גירסת ה"mergd" וגירסאות אחרות, הקובץ הרצוי לכאו' הוא קובץ הmergd ,הוא מכיל טקסט ממוזג מכמה גירסאות [גם במקרה שיש רק גירסא אחת יש קובץ mergd שזהה לקובץ השני]
                  שאר הקבצים לדעתי מיותרים וסתם יתפסו מקום במחשב
                  ב' יהיה שימושי מאוד לדעתי לעשות גם את שאר הפיצ'רים של ספריא [פרשנים, קישורים לספרים אחרים וכו'] וכמובן לאפשר ניווט לפי כותרות
                  ג' אולי גם להוסיף אפשרות לחיפוש ספרים מהיברו בוקס ואוצר החכמה ולאפשר פתיחה באתר [וגם בתוכנה, לאוצר החכמה] יש לי כאן קובץ לאוצר החכמה שכולל לינקים לאתר ולתוכנה, וכאן יש לי קובץ להיברו בוקס שמאפשר הורדה, צפייה בדפדפן והדף הראשי של הספר
                  ד' שכל הספרים שיסננו יהיו ברשימה שחורה, כך שיהיה אפשר לעדכן את התוכנה מעת לעת [אולי אפי' לאפשר עדכון מתוך התוכנה בעצמה]
                  ה' להוסיף תמיכה גם בקבצי טקסט בקידוד ansi ולאפשר טעינת קבצים מתיקיות נוספות ועל ידי כך ניתן יהיה לגשת לכל הספרים של תורת אמת מתוך התוכנה ולייתר מעבר בין תוכנות [אני מאמין שיש ל @pcinfogmach קובץ שכולל בתוכו את כל שמות הספרים מתורת אמת בעברית]
                  יש"כ עצום על היוזמה הנפלאה.

                  sivan22S P 2 תגובות תגובה אחרונה
                  2
                  • האדם החושבה האדם החושב

                    כמה הערות:
                    א' בכל ספר יש את גירסת ה"mergd" וגירסאות אחרות, הקובץ הרצוי לכאו' הוא קובץ הmergd ,הוא מכיל טקסט ממוזג מכמה גירסאות [גם במקרה שיש רק גירסא אחת יש קובץ mergd שזהה לקובץ השני]
                    שאר הקבצים לדעתי מיותרים וסתם יתפסו מקום במחשב
                    ב' יהיה שימושי מאוד לדעתי לעשות גם את שאר הפיצ'רים של ספריא [פרשנים, קישורים לספרים אחרים וכו'] וכמובן לאפשר ניווט לפי כותרות
                    ג' אולי גם להוסיף אפשרות לחיפוש ספרים מהיברו בוקס ואוצר החכמה ולאפשר פתיחה באתר [וגם בתוכנה, לאוצר החכמה] יש לי כאן קובץ לאוצר החכמה שכולל לינקים לאתר ולתוכנה, וכאן יש לי קובץ להיברו בוקס שמאפשר הורדה, צפייה בדפדפן והדף הראשי של הספר
                    ד' שכל הספרים שיסננו יהיו ברשימה שחורה, כך שיהיה אפשר לעדכן את התוכנה מעת לעת [אולי אפי' לאפשר עדכון מתוך התוכנה בעצמה]
                    ה' להוסיף תמיכה גם בקבצי טקסט בקידוד ansi ולאפשר טעינת קבצים מתיקיות נוספות ועל ידי כך ניתן יהיה לגשת לכל הספרים של תורת אמת מתוך התוכנה ולייתר מעבר בין תוכנות [אני מאמין שיש ל @pcinfogmach קובץ שכולל בתוכו את כל שמות הספרים מתורת אמת בעברית]
                    יש"כ עצום על היוזמה הנפלאה.

                    sivan22S מנותק
                    sivan22S מנותק
                    sivan22
                    כתב ב נערך לאחרונה על ידי
                    #165

                    @האדם-החושב אני חושב שהשלב הבא הוא לעשות fork לזה, ולהריץ סקריפט שמשאיר רק את הספרים בעברית, ומסיר את הספרים הבעייתיים גם בעברית.

                    תגובה 1 תגובה אחרונה
                    0
                    • האדם החושבה האדם החושב

                      כמה הערות:
                      א' בכל ספר יש את גירסת ה"mergd" וגירסאות אחרות, הקובץ הרצוי לכאו' הוא קובץ הmergd ,הוא מכיל טקסט ממוזג מכמה גירסאות [גם במקרה שיש רק גירסא אחת יש קובץ mergd שזהה לקובץ השני]
                      שאר הקבצים לדעתי מיותרים וסתם יתפסו מקום במחשב
                      ב' יהיה שימושי מאוד לדעתי לעשות גם את שאר הפיצ'רים של ספריא [פרשנים, קישורים לספרים אחרים וכו'] וכמובן לאפשר ניווט לפי כותרות
                      ג' אולי גם להוסיף אפשרות לחיפוש ספרים מהיברו בוקס ואוצר החכמה ולאפשר פתיחה באתר [וגם בתוכנה, לאוצר החכמה] יש לי כאן קובץ לאוצר החכמה שכולל לינקים לאתר ולתוכנה, וכאן יש לי קובץ להיברו בוקס שמאפשר הורדה, צפייה בדפדפן והדף הראשי של הספר
                      ד' שכל הספרים שיסננו יהיו ברשימה שחורה, כך שיהיה אפשר לעדכן את התוכנה מעת לעת [אולי אפי' לאפשר עדכון מתוך התוכנה בעצמה]
                      ה' להוסיף תמיכה גם בקבצי טקסט בקידוד ansi ולאפשר טעינת קבצים מתיקיות נוספות ועל ידי כך ניתן יהיה לגשת לכל הספרים של תורת אמת מתוך התוכנה ולייתר מעבר בין תוכנות [אני מאמין שיש ל @pcinfogmach קובץ שכולל בתוכו את כל שמות הספרים מתורת אמת בעברית]
                      יש"כ עצום על היוזמה הנפלאה.

                      P מנותק
                      P מנותק
                      pcinfogmach
                      מדריכים
                      כתב ב נערך לאחרונה על ידי pcinfogmach
                      #166

                      @האדם-החושב כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                      הקובץ הרצוי לכאו' הוא קובץ הmergd ,הוא מכיל טקסט ממוזג מכמה גירסאות [גם במקרה שיש רק גירסא אחת יש קובץ mergd שזהה לקובץ השני]

                      יש קבצים שלא הספיקו לעשות להם merged עיין מאירי על הש"ס (חלק מהם) לדוגמא.

                      @האדם-החושב כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                      לכל הספרים של תורת אמת מתוך התוכנה ולייתר מעבר בין תוכנות

                      אני בעד

                      @האדם-החושב כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                      [אני מאמין שיש ל @pcinfogmach קובץ שכולל בתוכו את כל שמות הספרים מתורת אמת בעברית]

                      כן
                      למרות שהנושא בספרים הללו הוא לא רק הקידוד אלא גם כל הקודים האישיים שהמחבר הכניס. אני באמצע לחבר תוכנה שתעזור עם ההמרה אבל מישהו יצטרך להרים את הכפפה ולעשות את העבודת כפיים.

                      גמ"ח עזרה וייעוץ בנושאי מחשבים

                      האדם החושבה תגובה 1 תגובה אחרונה
                      1
                      • sivan22S sivan22

                        @צדיק-תמים נראה לי שדיברתי הרבה שטויות והראיתי את הבורות שלי.

                        לסיכום, בשביל להעביר נתונים מmongoDB לsqlite, הקושי המרכזי הוא לא במימוש אלא בתכנון, זאת אומרת להעביר מעץ עמוק מאד, למספר טבלאות דו מימדית, זה דורש הכרעות לגבי הייצוג שהוא בהכרח יהיה שונה.

                        אופן המימוש יכול להיות באמצעות שאילתה של מונגו:

                        [
                            {
                                '$set': {
                                    'he_title': {
                                        '$filter': {
                                            'input': '$schema.titles', 
                                            'as': 'he_titles', 
                                            'cond': {
                                                '$eq': [
                                                    '$$he_titles.primary', True
                                                ]
                                            }, 
                                            'limit': 2
                                        }
                                    }
                                }
                            }, {
                                '$set': {
                                    'he_title': {
                                        '$filter': {
                                            'input': '$he_title', 
                                            'as': 'he_titles', 
                                            'cond': {
                                                '$eq': [
                                                    '$$he_titles.lang', 'he'
                                                ]
                                            }, 
                                            'limit': 2
                                        }
                                    }
                                }
                            }, {
                                '$set': {
                                    'he_title': {
                                        '$arrayElemAt': [
                                            '$he_title.text', 0
                                        ]
                                    }
                                }
                            }
                        ]
                        

                        או באמצעות קליטת הנתונים בנוד, ואז שימוש ביכולות ההתמודדות הטובות של JS עם dictionaries.:

                        myColl.find(); 
                        schema?.titles.find(t => t.lang === 'he' && t.primary).text
                        

                        או בפייתון, לשבור את השיניים עם חוסר תמיכה נוח בdictionaries:

                        def get_he_title(obj)->object:
                            if 'titles' in obj:
                                for title in obj['titles']:
                                    if title['lang'] == 'he' and 'primary' in title:
                                        return title['text']
                            return None
                        books['he_title']=books['schema'].apply(get_he_title)
                        

                        ואפשר בכלל להשתמש בJAVA עם קובץ JSON שיצא כפלט מהמסד נתונים:

                        protected static int addText(Connection c, JSONObject enJSON, JSONObject heJSON, JSONObject schemaFile) throws JSONException{
                        		if(enJSON == null && heJSON == null){
                        			System.err.print("Both JSONs are null in Node.addText()");
                        			return -1;
                        		}
                        		int enLang =0,heLang=0;
                        		String title ="";
                        		JSONObject node = null;
                        		if(enJSON != null){
                        			enLang = returnLangNums(enJSON.getString("language"));
                        			title = enJSON.getString("title");
                        			node = (JSONObject) enJSON.get("schema");
                        		}		
                        		if(heJSON != null){
                        			heLang = returnLangNums(heJSON.getString("language"));
                        			title = heJSON.getString("title");
                        			node = (JSONObject) heJSON.get("schema");
                        		}
                        		int lang = enLang + heLang;
                        		/**
                        		 * check for errors
                        		 */
                        		if((enLang != SQLite.LANG_EN  && enLang != 0)|| (heLang != SQLite.LANG_HE  && heLang != 0)){
                        			System.err.println("Error in Node.addText(): not right lang numbers. enLang:" + enLang  + " heLang:" + heLang);
                        			return -1;
                        		}
                        		if(title.equals("")){
                        			System.err.println("no Title");
                        			return -1;
                        		}
                        		if(enJSON != null && heJSON != null){
                        			if(!heJSON.get("schema").toString().equals(enJSON.get("schema").toString())){
                        				System.err.println("en and he JSONs schemas don't match\n");	
                        				System.out.println(heJSON.get("schema"));
                        				System.out.println(enJSON.get("schema"));
                        				return -1;
                        			}
                        			if(!enJSON.getString("title").equals(heJSON.getString("title"))){
                        				System.err.println("en and he JSONs title don't match" + enJSON.getString("title") + " - " + heJSON.getString("title"));
                        				return -1;
                        			}
                        
                        		}
                        		if(!booksInDB.containsKey(title)){
                        			System.err.println("Don't have book in DB and trying to add text");
                        			return -1;
                        		}
                        		int bid = booksInDBbid.get(title); 
                        		JSONObject enText = null, heText = null;
                        		if(enJSON != null){
                        			enText = (JSONObject) enJSON.get("text");
                        		}
                        		if(heJSON != null){
                        			heText = (JSONObject) heJSON.get("text");
                        		}
                        		JSONObject schema = null;
                        		try{
                        			schema = schemaFile.getJSONObject("schema");
                        		}catch(JSONException e){
                        			e.printStackTrace();
                        		}
                        		insertNode(c, schema, enText,heText, 0,0,bid,0,lang);
                        		return 1; //it worked
                        	}
                        
                        
                        צדיק תמיםצ מנותק
                        צדיק תמיםצ מנותק
                        צדיק תמים
                        מדריכים
                        כתב ב נערך לאחרונה על ידי צדיק תמים
                        #167

                        @sivan22 השאילתה שהבאת היא אפילו לא pseudo code 🙂

                        sivan22S תגובה 1 תגובה אחרונה
                        0
                        • צדיק תמיםצ צדיק תמים

                          @sivan22 השאילתה שהבאת היא אפילו לא pseudo code 🙂

                          sivan22S מנותק
                          sivan22S מנותק
                          sivan22
                          כתב ב נערך לאחרונה על ידי
                          #168

                          @צדיק-תמים כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                          @sivan22 השאילתה שהבאת היא אפילו לא pseudo code 🙂

                          למה אתה אומר ככה, השתמשתי בה בפועל, רק חסר שתי שורות בהתחלה.

                          from pymongo import MongoClient
                          # Requires the PyMongo package.
                          # https://api.mongodb.com/python/current
                          client = MongoClient('mongodb://localhost:27017/')
                          result = client['sefaria']['links'].aggregate([
                              {
                                  '$set': {
                                      'refs_0': {
                                          '$arrayElemAt': [
                                              '$refs', 0
                                          ]
                                      }, 
                                      'refs_1': {
                                          '$arrayElemAt': [
                                              '$refs', 1
                                          ]
                                      }
                                  }
                              }, {
                                  '$unset': [
                                      '_id', 'expandedRefs0', 'expandedRefs1', 'availableLangs', 'refs'
                                  ]
                              }
                          ])
                          
                          צדיק תמיםצ תגובה 1 תגובה אחרונה
                          0
                          • ה מנותק
                            ה מנותק
                            הפצת אנקי
                            כתב ב נערך לאחרונה על ידי
                            #169

                            דבר ראשון כל הכבוד לכל התורמים מזמנם למען הרחבת נוחות ואיכות הלימוד של לומדי התורה שליט"א!
                            יה"ר שתשרה הברכה במעשה ידיכם!
                            כמה הערות:
                            א. להיברו בוקס יש כל מיני תוכניות לעתיד. נכון ללפני כמה חודשים לא משהו מוגדר. מהסיבה הזאת הוא לא מתיר כרגע ליצור מהמאגר שלו משהו אחר. אפשר להתכתב איתם במייל. יש עם מי לדבר. (כמובן שאני אומר ממה ששמעתי ואני לא קשור אליהם בצורה כלשהיא)
                            ב. יש גמח של מאה גיגה+ ספרים תורניים בPDF. יתכן שהוא יושיט יד כדי לקדם את זה. שלחתי את הכתובת מייל שלו לsivan22.
                            ג. לדעתי מאוד חשוב להקפיד על עניין המהירות והנגישות של הפונקציות של התוכנה. מי שמשתמש בזה הוא הרי מישהו שבאמצע ללמוד וחבל על כל שניה...
                            הרבה הצלחה בכל!

                            תגובה 1 תגובה אחרונה
                            5
                            • sivan22S sivan22

                              @צדיק-תמים כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                              @sivan22 השאילתה שהבאת היא אפילו לא pseudo code 🙂

                              למה אתה אומר ככה, השתמשתי בה בפועל, רק חסר שתי שורות בהתחלה.

                              from pymongo import MongoClient
                              # Requires the PyMongo package.
                              # https://api.mongodb.com/python/current
                              client = MongoClient('mongodb://localhost:27017/')
                              result = client['sefaria']['links'].aggregate([
                                  {
                                      '$set': {
                                          'refs_0': {
                                              '$arrayElemAt': [
                                                  '$refs', 0
                                              ]
                                          }, 
                                          'refs_1': {
                                              '$arrayElemAt': [
                                                  '$refs', 1
                                              ]
                                          }
                                      }
                                  }, {
                                      '$unset': [
                                          '_id', 'expandedRefs0', 'expandedRefs1', 'availableLangs', 'refs'
                                      ]
                                  }
                              ])
                              
                              צדיק תמיםצ מנותק
                              צדיק תמיםצ מנותק
                              צדיק תמים
                              מדריכים
                              כתב ב נערך לאחרונה על ידי צדיק תמים
                              #170

                              @sivan22 לא הבנתי, איפה הבדיקה שמדובר בעברית? ושזה הprimary?

                              sivan22S תגובה 1 תגובה אחרונה
                              0
                              • צדיק תמיםצ צדיק תמים

                                @sivan22 לא הבנתי, איפה הבדיקה שמדובר בעברית? ושזה הprimary?

                                sivan22S מנותק
                                sivan22S מנותק
                                sivan22
                                כתב ב נערך לאחרונה על ידי
                                #171

                                @צדיק-תמים נכון זה היה דוגמא מערך אחר. אבל עכשיו באמת החלפתי שם לעיל את הקוד לשאילתה שבודקת מה ששני הקודים האחרים בדקו.

                                תגובה 1 תגובה אחרונה
                                0
                                • ה מנותק
                                  ה מנותק
                                  הפצת אנקי
                                  כתב ב נערך לאחרונה על ידי
                                  #172

                                  עוד נושא שנזכרתי בו שיכול להקל עליכם.
                                  תוכנת אנקי מבוססת על sql. יש בה אפשרויות חיפוש מגוונות כולל תמיכה ברג'קס כפי שניתן לראות כאן.
                                  יש אפשרות להפעיל את התוכנה עם קונסול שמדפיס בזמן אמת את כל השאילתות שהתוכנה משתמשת בהן.
                                  זאת דוגמא לשאילתא שמחפשת את כל הפעמים שמופיעות צמד המילים מאגר תורני עם כל תו נוסף לפני כן:

                                   select c.id from cards c, notes n where c.nid=n.id and ((n.sfld like '%%מאגר תורני%' escape '\' or n.flds like '%%מאגר תורני%' escape '\'))
                                  

                                  וכך כל מילה לחוד:

                                   select c.id from cards c, notes n where c.nid=n.id and ((n.sfld like '%מאגר%' escape '\' or n.flds like '%מאגר%' escape '\') and (n.sfld like '%תורני%' escape '\' or n.flds like '%תורני%' escape '\')) 
                                  

                                  כדי להפעיל כך את אנקי צריך ליצור קובץ bat בתיקייה שבה הותקנה התוכנה שהתוכן שלו יהיה:

                                  @echo off
                                  set TRACESQL=1
                                  "%~dp0"\anki %*
                                  pause
                                  

                                  ולהפעיל דרכו את התוכנה.

                                  תגובה 1 תגובה אחרונה
                                  1
                                  • P pcinfogmach

                                    @האדם-החושב כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                                    הקובץ הרצוי לכאו' הוא קובץ הmergd ,הוא מכיל טקסט ממוזג מכמה גירסאות [גם במקרה שיש רק גירסא אחת יש קובץ mergd שזהה לקובץ השני]

                                    יש קבצים שלא הספיקו לעשות להם merged עיין מאירי על הש"ס (חלק מהם) לדוגמא.

                                    @האדם-החושב כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                                    לכל הספרים של תורת אמת מתוך התוכנה ולייתר מעבר בין תוכנות

                                    אני בעד

                                    @האדם-החושב כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                                    [אני מאמין שיש ל @pcinfogmach קובץ שכולל בתוכו את כל שמות הספרים מתורת אמת בעברית]

                                    כן
                                    למרות שהנושא בספרים הללו הוא לא רק הקידוד אלא גם כל הקודים האישיים שהמחבר הכניס. אני באמצע לחבר תוכנה שתעזור עם ההמרה אבל מישהו יצטרך להרים את הכפפה ולעשות את העבודת כפיים.

                                    האדם החושבה מנותק
                                    האדם החושבה מנותק
                                    האדם החושב
                                    מדריכים
                                    כתב ב נערך לאחרונה על ידי
                                    #173

                                    @pcinfogmach כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                                    יש קבצים שלא הספיקו לעשות להם merged עיין מאירי על הש"ס (חלק מהם) לדוגמא.

                                    בדף של ספריא export כתוב שכך זה בנוי, לא זכור לי שנתקלתי בספר שאין לו קובץ merged, נראה לי ש @דאנציג ידע יותר טוב ממני, בכל מקרה ניתן להוסיף לסקריפט תנאי שאם אין קובץ mergde שישאיר את המקורי

                                    @הפצת-אנקי כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                                    ב. יש גמח של מאה גיגה+ ספרים תורניים בPDF. יתכן שהוא יושיט יד כדי לקדם את זה. שלחתי את הכתובת מייל שלו לsivan22.

                                    זה רק למי שאין לו אינטרנט, מסופקני אם הם יסכימו

                                    ח תגובה 1 תגובה אחרונה
                                    0
                                    • האדם החושבה האדם החושב

                                      @pcinfogmach כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                                      יש קבצים שלא הספיקו לעשות להם merged עיין מאירי על הש"ס (חלק מהם) לדוגמא.

                                      בדף של ספריא export כתוב שכך זה בנוי, לא זכור לי שנתקלתי בספר שאין לו קובץ merged, נראה לי ש @דאנציג ידע יותר טוב ממני, בכל מקרה ניתן להוסיף לסקריפט תנאי שאם אין קובץ mergde שישאיר את המקורי

                                      @הפצת-אנקי כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                                      ב. יש גמח של מאה גיגה+ ספרים תורניים בPDF. יתכן שהוא יושיט יד כדי לקדם את זה. שלחתי את הכתובת מייל שלו לsivan22.

                                      זה רק למי שאין לו אינטרנט, מסופקני אם הם יסכימו

                                      ח מנותק
                                      ח מנותק
                                      חכם וזקן
                                      כתב ב נערך לאחרונה על ידי
                                      #174

                                      @האדם-החושב לי יש מאגר של יותר 150 GB של ספרים בPDF
                                      אך לחלקם יש זכוית יוצרים
                                      אין לי בעיה להעביר למי שורצה

                                      ששמעוןש פ 2 תגובות תגובה אחרונה
                                      0
                                      • ח חכם וזקן

                                        @האדם-החושב לי יש מאגר של יותר 150 GB של ספרים בPDF
                                        אך לחלקם יש זכוית יוצרים
                                        אין לי בעיה להעביר למי שורצה

                                        ששמעוןש מנותק
                                        ששמעוןש מנותק
                                        ששמעון
                                        כתב ב נערך לאחרונה על ידי ששמעון
                                        #175

                                        @חכם-וזקן האם זה בדרייב - ענן כלשהו, או שצריך להגיע פיזית?

                                        תגובה 1 תגובה אחרונה
                                        2
                                        • ח חכם וזקן

                                          @האדם-החושב לי יש מאגר של יותר 150 GB של ספרים בPDF
                                          אך לחלקם יש זכוית יוצרים
                                          אין לי בעיה להעביר למי שורצה

                                          פ מנותק
                                          פ מנותק
                                          פראירי
                                          כתב ב נערך לאחרונה על ידי
                                          #176

                                          @חכם-וזקן כתב בהצעת ייעול | קונספט חדש לפרוייקט השו״ת:

                                          @האדם-החושב לי יש מאגר של יותר 150 GB של ספרים בPDF
                                          אך לחלקם יש זכוית יוצרים
                                          אין לי בעיה להעביר למי שורצה

                                          אשמח לקבלם

                                          ח תגובה 1 תגובה אחרונה
                                          0

                                          • התחברות

                                          • אין לך חשבון עדיין? הרשמה

                                          • התחברו או הירשמו כדי לחפש.
                                          • פוסט ראשון
                                            פוסט אחרון
                                          0
                                          • חוקי הפורום
                                          • פופולרי
                                          • לא נפתר
                                          • משתמשים
                                          • חיפוש גוגל בפורום
                                          • צור קשר