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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
dovidD

dovid

@dovid
ניהול
אודות
פוסטים
10.2k
נושאים
184
שיתופים
0
קבוצות
2
עוקבים
32
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • cloudflare חבילות של post ללא content-length
    dovidD dovid

    לאחרונה קיבלתי דיווחים על באגים ואיטיות במערכת שעשיתי ועובדת כבר שנים (עם שינויים פה ושם).
    השגיאה בקונסול הייתה 411 של כותרת content-length חסרה, וזה קרה אקראית בממוצע פעם בארבעה בקשות, שלכאורה הצד השווה של כולם שהם היו post ללא תוכן (empty body).
    מי שמפיק אותה, התברר, הוא הדרייבר http.sys שמסנן את הבקשה עוד לפני שהיא מגיעה לIIS, הסינון הזה מתועד בקבצי לוג בשם httperrXYZ.log.
    @yossiz מייד העיר לי לבדוק אם זה רק דרך cloudflare. ואכן בגישה ישירה הבעיה לא חזרה על עצמה.
    אז פניתי לדשבורד של cloudflare בניסיון לשנות איזה הגדרה, בפרט את http2 to origin (יוסי אמר לי שבפרוטוקול http2 הכותרת של האורך לא נדרשת)
    לא עזר לי שום דבר.
    בלית ברירה פניתי לקוד וניסיתי לשתול בכל בקשת post ריקה תוכן כל שהוא,
    באמת זה עזר ב90 אחוז, אבל היו כמה מקומות שהמשיכו לתת שגיאה למרות השינוי (כלומר post לא ריקים).
    בלתי ברירה הוצרכתי לוותר על שירותי cloudflare.
    פה היה לי עוד תת סיפור קטן: השרת עליו הIIS הוא שרת פיזי במקום העבודה, וממילא העובדים של מקום העבודה בעצם אמורים לפנות אליו בLAN ולא צריכים לפנות החוצה.
    בפועל בגלל cloudflare הכל עבר דרך שרתים חיצוניים, אבל כשהפניתי את הדומיין ישירות לאייפי של השרת, הייתה בעיה שזה עבד לכל העולם מלבד אלו שבמשרד.
    הכרתי כבר את הבעיה הזו, ניסיתי לפתור אותה באמצעות הDNS של הראוטר (להפנות את הדומיין לכתובת הלוקלית), אבל התברר שהמחשבים מופנים לDNS של הDC ושם פתרתי את הבעיה.
    מGPT הבנתי שיש עוד דרך Hairpin NAT שזה אומר שהראוטר לוכד חבילות עם היעד ומסובב אותם לכתובת פנימית, אבל לא עשיתי את הפתרון הזה.

    מספר את זה פה למקרה שזה קורה למישהו בגלובוס (אולי בתיווכם האדיב של עכבישי הAI...).

    תכנות

  • יצירת פורום עם קטגוריות להרבה קבוצות שונות
    dovidD dovid

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

    תכנות

  • תבנית אקסס מוכנה - חדר מיון
    dovidD dovid

    @צעיר כתב בתבנית אקסס מוכנה - חדר מיון:

    כמו כן אשמח לעצות מהמומחים.

    משמע שזו שאלה משנית, מה השאלה הראשית?
    והאם למדת מדריך כל שהוא?
    יש פה בפורום מדריך שמהללים אותו רבים:
    https://tchumim.com/topic/10491
    ראה גם עוד מקורות פה: https://tchumim.com/topic/9390/

    תכנות

  • איך להסיר ניקוד וטעמים מטקסט בc#
    dovidD dovid

    קשה להבין את השאלה שלך, למה יש לך צד שהשימוש בספריה עדיף?
    במיוחד שהשימוש בספריה לא חוסך קוד אלא מוסיף.
    להשתמש בספריה יש בזה מחירים: תלות, תחזוקה (אם קיימת) בשליטה חיצונית, אבטחה. לא משלמים את המחירים האלו בלי תמורה (עריכה: הספריה מהירה יותר מRegex בשליש בערך, ראה להלן).

    בשביל הספורט בדקתי ביצועים של האפשרויות שעלו לי בראש, להלן הקוד:

    class Test
    {
        string text;
        public Test()
        {
            System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
            text = File.ReadAllText(@"D:\Tora\020_MISHNA\101_SEDER_MOED\13_MAS_ERUVIN\MZ2_ERUVIN_L2.txt", Encoding.GetEncoding(1255));
        }
    
    
        string byRegex()                => Regex.Replace(text, @"\p{M}", "");
        string byRegexDedicated()       => Regex.Replace(text, @"[\u0591-\u05CF]", "");
        string byDiacritis()            => text.RemoveHebrewDiacritics();
        string byLinqReverseCondition() => new string(text.Where(x => x < 1425 || x > 1487).ToArray());
        string byLinq()                 => new string(text.Where(x => x > 1487 || x < 1425).ToArray());
    
        string byStringBuilder()
        {
            var sb = new StringBuilder(text.Length);
            foreach (var c in text)
                if (c > 1487 || c < 1425)
                    sb.Append(c);
    
            return sb.ToString();
        }
    }
    
    }
    

    תוצאות:

    הסבר:
    הטסט הוא על קובץ של ברטנורא מנוקד על עירובין מתוך תורת אמת.
    יש פה חמישה דרכים, הראשונה (byRegex) היא Regex גנרי שמתאים לכל סימני הניקוד בעולם (כולל למשל גרמנית), השניה מטפלת בניקוד עברי בלבד שזה לעצמו חיסכון אבל הוא זניח כי עיקר הזמן הוא ההחלפה בפועל שלא יעילה יותר.
    הדרך השלישית שזה הספריה שהוצעה, אכן מביאה שיפור בביצועים לעומת רגקס. היא כנראה כתובה הכי טוב שאפשר אבל היא גנרית מידי וכנראה לכן היא מפסידה לשיטות האחרות.
    הדרך הרביעית והחמישית (byLinq) זהות מצד השיטה, הם בודקים אם האות בטווח התווים של הניקוד העברי, ההבדל ביניהם הוא רק בסדר התנאי, בהנחה שרוב האויות שייבדקו הם אותיות עבריות דוקא שערכם גדול מ1488 (האות א) אז יעיל קודם לבדוק אם האות גדולה מהערך הזה ולהימנע מבדיקה נוספת, אני לא מבין למה הדרך שנראאית לי פחות יעילה מהירה יותר עקבית אבל בהפרש זניח.
    הדרך האחרונה זה עבודה שחורה, זה נראה הכי מהר.

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

    תכנות

  • js - בעיה בקידוד CSV שיתמוך בעברית באקסל
    dovidD dovid

    UTF-8 זה מעולה, תשאיר את זה.
    כל מה שצריך לעשות כדי שאקסל יפתח את זה כמו שצריך זה להוסיף בהתחלה BOM,
    תכניס לcsvContent בתחילתו את הטקסט הזה: "\uFEFF", זה קוד בתים של BOM שמיידע שהקובץ הוא utf-8.

    תכנות

  • הסרת הכרטסת של נטפרי ו/או הרצת פונקציה כראשונה בדף
    dovidD dovid

    Content-Security-Policy (CSP) ימנע מסקריפטים ממקורות אחרים לרוץ.
    ו@איש-ימיני צודק, אפשר לבקש מהם והם עושים את זה עם הגדרה פר אתר אם צריך.

    תכנות

  • ניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר
    dovidD dovid

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

    תכנות

  • ניהול כ 20 שרתים עם צוות של 6 מתכנתים - תובנות וכלים שיכול לעוזר
    dovidD dovid

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

    תכנות

  • ביצוע פרקטי לאינדוקס מאגר טקסט עברי
    dovidD dovid

    תגובה: שאלה: מה הסוד מאחורי מנוע החיפוש של בר אילן? (מבחינת תיכנות)

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

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

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

    תכנות

  • מה הדרך הנכונה לתקשורת באמצעות GET ב PHP
    dovidD dovid

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

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

    תכנות

  • תכנות מהבית ומהמשרד, איך לשלב ביניהם
    dovidD dovid

    אני אישית גם עובד ככה, ואני מסתדר עם גיט. בכל פעם לפני שעוזבים מכשיר חייבים לזכור לעשות קומיט+פוש, ולפני שמתחילים לעבוד חייבים לעשות פול. לעיתים יש שכחות וקורה בלגנים.
    אני לא עובד עם גוגל דרייב וכל אלו כי אני עובד הרבה עם סביבות עבודה בהם יש הרבה קבצים שאני לא רוצה שיהיה בהם סנכרון (דומיא דnode_module) ואין דרך קלה לסדר את זה באופן גורף בפתרונות אלו. כמו"כ כשיש קונפליקטים שמה זה יותר גרוע כי זה יוצא משליטה).
    בשתי המחשבים מותקנים לי כמה מסדי נתונים (אקסס, מונגו, MSSQL) עם נתוני דמו.

    תכנות

  • ייבוא נתונים ממסד אקסס בC#
    dovidD dovid

    יופי!
    בהזדמנות זו, ברוך הבא לC#, יש פה כמה שמחכים ממש לשאלות בתחום.
    תהיה נודניק, בבקשה!
    בהצלחה רבה!

    תכנות

  • שאלה מתמטית: מספור משבצות טבלה
    dovidD dovid

    יש לי כמה דרכים לעשות זאת ב-JS אבל מבחינתי הם "ידניים". חייבת להיות פונקציה מתמטית פשוטה שתפיק את הפלט הרצוי.

    אם אני מצטמצם לשאלה שלך, בהינתן מספר number מה השורה שלו, הנוסחה הזו עונה:

    (((number - 1) % 3)+1) % 9
    

    הבעיה באתגר הזה שהוא לא מציין מה בדיוק הקלט.
    אני רואה פה כמה פרמטרים:
    א. מספר כולל (27)
    ב. מס' עמודות (3)
    ג. מס' שורות (3)

    הספרות בהתחלה יורדות שורה כל פעם, ורק שנגמר סיבוב של 3, הם עוברות לעמודה הבאה. כשמספר העמודות גם הוא משלים שלוש, הם שוב מתחילות מעמודה אחד.
    כדי להשיג מתמטית את ההתנהגות הזאת, אפשר פשוט לחלק ל3 כדי לברר מספר עמודה (למשל 4 לחלק לשלוש זה 1.3 ובעיגול כלפי מעלה זה עמודה מס' 2), אך כדי שהתוצאה לא תחרוג מ3 (כי אין ארבעה עמודות) "מאפסים" חזרה על ידי שלוקחים את השארית של 3 (12 לחלק ל3 זה 4, שארית 4 לחלק לשלוש זה 1 וככה חזרנו לעמודה 1).

    בשביל מספר שורה, אז יש פה פעמיים מונה:
    בשביל 1-9 די אם נעשה שארית. 1/4/7 לחלק ל3 זה שארית 1 וכן 2/5/8 זה 2, לגבי 3/6/9 זה מרגיז כי זה שארית 0, אז עושים טריק שמורידים 1 לפני חישוב השארית ומחזירים אותו לתוצאה.

    אלא שמ10 ואילך זה תוצאה שגויה כי זה מחזיר שורה 1, ובגלל שהטבלה מתחילה מחדש אז צריך לצאת שורה 4. בשביל זה צריך להוסיף לתוצאה אז פעמים החלוקות ב9.

    הנה קוד:

    function generateTable(cols, rows, total){
        const oneTable = cols * rows;
        for (let index = 0; index < total; index++) {
            const current = index+1;
            
            const col = ((Math.ceil(current / rows) - 1)  % cols) + 1;
            const row = (index % rows) + 1 + Math.floor(index/oneTable) * rows;
            console.log(current, col, row);
        }
    }
    
    תכנות

  • לימודים והשמה בהייטק
    dovidD dovid

    @חגי כתב בלימודים והשמה בהייטק:

    @dovid כתב בלימודים והשמה בהייטק:

    מכללות נותנים תעודה ולימודים ברמה נמוכה, מבזבזים הרבה הרבה זמן, ועוד חסרונות.

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

    וכי הייתי בכל המכללות? הייתי באחת ושמעתי מחברים בערך על עוד ארבע-חמש מקסימום.
    אבל הבנתי כמה דברים שהם בבחינת כלל:
    א. רוב התלמידים לא ממשיכים לעבור בהייטק/נושרים. זה נתון בסיסי מאוד בעמדתי שעומד כהקדמה לכל מה שאכתוב, אם מישהו מכיר מכללה שהתלמידים בה לומדים בחשק ויש אוירת לימוד תחרותית, שיבין שכל מה שאומר לא רלוונטי (או שהוא טועה...).
    ב. הנתון הנ"ל פוטר את המכללה בעצם מרמת הלימודים, כי כל אחד שלא יודע מספיק או לא מוצא השמה בעצם משוייך ל"אלה שלא הלך להם התחום".
    ג. יוצא שהמכללה אמורה לדאוד ללמד תלמיד בלי שיש שום ביקורת פורמלית/רגולטורית/תקשרותית/דעת קהל שיכולה להתעורר על רמת הלימודים, איכותם, הסדר שלהם, הקצב הנכון ועוד הרבה פרמטרים חשובים.
    ד. המכללה מרויחה הרבה כסף, וגם המרצים. אין מישהו שרודה בהם להגיע להישג כל שהוא בגלל הנ"ל.

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

    תכנות

  • בקשה - טיפים לאבטחת שרת
    dovidD dovid

    @צדיק-תמים
    לאפשר ufw (אחרי שהוספת את הallow SSH + allow 'Nginx Full').
    לא להתקין שום חבילה (הן במערכת הפעלה והן באפליקציות נוד וכדומה) בלי לבדוק שהיא פופולרית פעילה ועדכנית או להבין מה היא עושה וכמה היקף פעולה יש בה.
    מומלץ לתת לאפליקציות נוד משתמש ייעודי (אפשר כללי כמו www-data ואפשר ספציפי לכל אפליקציה) עם הרשאות לקבצים הנדרשים בלבד.
    כל זה הקדמה לדבר העיקרי, סדר.
    ככל שתהיה מסודר, יהיה לך קל לוודא שאתה פועל בשכל ושאין פתחים.
    ככל שלא, אתה עשוי לעשות טעויות קשות הן באבטחה והן ביכולת להמשיך לנהל את השרת לבד.
    בשביל הסדר להחזיק קובץ אקסל וכדומה עם כלל ההתקנות והפרטים הנדרשים. אפשר לשמור את היסטוריית הפקודות של בש לעבור על זה ולסנן את הרלוונטי.
    כמו תמיד, אני נאה דורש.

    תכנות

  • איקס עיגול|בדיקה האם יש מנצח|js
    dovidD dovid

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

     if (allData[1].value === allData[0].value && allData[2].value === allData[0].value){
    

    פה אתה בודק את שורה 1, אתה קודם משווה את אלמנט 1 עם 0, ואח"כ את 2 עם 0.
    זה בגלל שיש לך בראש שהשוואה עושים רק 1:1, אולם אתה יכול לקצר ולכתוב ככה:

     if (allData[1].value === allData[1].value == allData[2].value) {
    

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

    function compareLine(array){
           return array[0].value == array[1].value == array[2].value;
    }
    

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

    function checkRuls(array){
         const listWin = [ 
                [0,1,2], [3,4,5], [6,7,8], //rows
                [0,3,6], [1,4,7], [2,5,8], //cols
                [0,4,8], [2,4,6]  //alachsonim 
         ];
         for(arr of listWin)
             if(compareLine(arr)) {
                    console.log(`winner ${arr[0].value} by ${arr}");
                    return true;
             }
    }
    

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

    תכנות

  • הכוונה לטכנולוגיה\פלטפורמה לצורת בניית ממשק web
    dovidD dovid

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

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

    תכנות

  • בקשת get לוקח המון זמן ללא סיבה נראת לעין | python
    dovidD dovid

    @צבי-ש כתב בבקשת get לוקח המון זמן ללא סיבה נראת לעין | python:

    מעל דקה לבקש get פשוטה!!

    לא שיתפת אותנו בפשטותה, תנסה כתובת אחרת שידועה לנו בפשטותה, למשל http://httpbin.org/get.
    אם בכתובת הזו זה כן יהיה מהר, יכול להיות שבמקרה של הכתובת שלך אז השרת עושה איטיות מכוונת בהיעדר כותרת כל שהיא שאופיינית לדפדפן כמו למשל User Agent.

    תכנות

  • MySql JOIN עם אינדקס לוקח המון זמן
    dovidD dovid

    @יוסף-בן-שמעון עצם העובדה שהכללת הname משנה היא צפויה ומובנת לגמרי.
    איך עובד אינדקס לא ראשי? יש טבלה נפרדת, בה מאוחסנים הערכים של האינדקס (productId) לפי סדר, וליד כל אחד יש מצביע למיקום בטבלה המקורית. איתור האינדקס הוא מאוד מהר (נניח חיפוש בינארי) אבל אחרי האיתור יש לנו ביד רק את ערך האינדקס עצמו שזה הproductId, בשביל לדעת את הname אנחנו צריכים לעקוב אחרי היעד בטבלת המקור.
    זה סיבת הבדל הזמן, ולכן נקודה זו לא עומדת במרכז השאלה. מרכז השאלה עובר לכמות הזמן - כמובן שזה לא אמור לקחת 10 שניות!
    עשר שניות לאיתור רשומה שיודעים את מיקומה זה להשערתי נובע מטבלה במצב לא מתוחזק (למשל אחרי מחיקה של הרבה שורות בכל מיני מקומות וכדומה) אולי פקודת OPTIMIZE לטבלה תשנה את המצב דרמטית.
    (בחזרה לנושא האינדקס לא ראשי, במידה והדוגמה היא אכן המציאות וכל מטרת האינדקס הוא תמיד תמיד להביא את השם, אפשר להורות לMYSQL לכלול בטבלת האינדקס ישירות את שדה הname.
    קוראים לזה covering index. במקרה כזה בעצם הMYSQL לא יפתח פיזית בכלל את טבלת המוצרים).

    תכנות

  • מספר עשרוני בVBA
    dovidD dovid

    @ארי כתב במספר עשרוני בVBA:

    @yossiz גאונות!

    אתה טועה, זו לא גאונות.
    זה לא איזה הוקוס פוקוס שהפיכת הלוכסן פותרת באגים,
    זה פשוט שני אופרטורים שונים בVBA:
    / - הלוכסן הרגיל של החילוק ושל נתיבי קבצים בשורת הכתובת באינטרנט,
    הינה חילוק רגיל. 10 / 3 = 3.3333333333333
    \ - זה נקרא לוכסן הפוך, זה הלוכסן המשמש בנתיבי הקבצים בWindows, ובזה השתמש בהתחלה
    הפעולה שהלכוסן הזה עושה היא חילוק שלמים, 10 \ 3 = 3. זה מאוד כיף, וכשעוברים לשפה אחרת שאין את זה אז בהתחלה עושים פרצופים חמוצים.

    בהצלחה.

    תכנות
  • 1 / 1
  • התחברות

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

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