דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • 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 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • א אפי זינגר

    @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
                                        • פ פראירי

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

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

                                          אשמח לקבלם

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

                                          @פראירי פנה אלי בפרטי

                                          יום חדש מתחילי תגובה 1 תגובה אחרונה
                                          0

                                          • התחברות

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

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