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

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

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

ארכיטקט

@ארכיטקט
אודות
פוסטים
1.1k
נושאים
252
קבוצות
0
עוקבים
1
עוקב אחרי
0

פוסטים

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

  • סריקת אתר וזיהוי שינויים בנושא מסויים
    א ארכיטקט

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

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

    עלה והצלח.

    פורסם במקור בפורום CODE613 ב20/02/2017 10:02 (+02:00)


  • עוברים את סטאק אוברפלוו
    א ארכיטקט

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

    פורסם במקור בפורום CODE613 ב17/01/2017 10:17 (+02:00)


  • אינדקס קודם בLINQ
    א ארכיטקט

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

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

    ייתכן שהוא לא מושלם, כי אני ממהר ללכת, אם יש באגים אתקן בהמשך.

    /// <summary>
            /// מחזיר רשומות שהרשומות שבאו קודם מקיימות תנאי מסויים
            /// </summary>
            /// <typeparam name="TSource"></typeparam>
            /// <param name="source"></param>
            /// <param name="predicate"></param>
            /// <returns></returns>
            public static IEnumerable<TSource> WhereByPrevious<TSource>(this IEnumerable<TSource> source, Expression<Func<TSource, bool>> expr)
            {
                //מכין פרידיקייטים חיוביים ושליליים
                var predicate = expr.Compile();
                var notPredicate = Expression.Lambda<Func<TSource, bool>>(Expression.Not(expr.Body), expr.Parameters).Compile();
                
                //הנותרים כדי שלא לחזור על דברים שכבר עשינו
                var remaining = source.AsEnumerable();
                
                //קודם כל מדלגים על אלו שלא עונים לתנאי כדי שכשנגיע לתנאי נתפוס את הבא אחריו
                remaining = remaining.SkipWhile(notPredicate) ;
    
                IEnumerable<TSource> result = Enumerable.Empty<TSource>();
    
                do
                {
                    //לקחת את הראשון בתור שנמצא אחרי שהתנאי מתקיים
                    result = result.Concat(remaining.SkipWhile(predicate).Take(1));
                    //כעת יש לדלג על זה שלקחנו וגם על השאר שלא מקיימים את התנאי עד שנמצא את התנאי הבא
                    remaining = remaining.SkipWhile(predicate).Skip(1).SkipWhile(notPredicate);
    
                } while (remaining.Count()>0);
    
                return result;
               
            }
    

    פורסם במקור בפורום CODE613 ב21/12/2016 19:52 (+02:00)


  • node.js חיבור למסד נתונים
    א ארכיטקט

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

    פורסם במקור בפורום CODE613 ב12/12/2016 17:58 (+02:00)


  • סגירת אקסס לaccde
    א ארכיטקט

    @avr416

    אני מרשה לעצמי לענות בשם ארכיטקט

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

    פורסם במקור בפורום CODE613 ב04/08/2016 22:21 (+03:00)


  • סגירת אקסס לaccde
    א ארכיטקט

    @CODE.NET

    אז זהו שיש תוכנה כזאת והרבה יותר טובה! שם התוכנה/חברה: "עסקים". זוהי תוכנה שמשלבת ERP & CRM + קול סנטר.
    הם עשו עבודה מצויינת באפיון ובפיתוח, גם השירות שלהם די בסדר.
    אני יודע גם שיש להם ארבעה מתכנתים במשרה מלאה, שיושבים יומיום לפיתוחים/תיקונים וכו'.
    http://www.asakimerp.co.il/

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

    @מלא

    זה אפסורוד נורא שמוסדות, תתי"ם, ישיבות, עמותות, קופות צדקה, בתי כנסת, וכו' משלמים על תוכנה 15-20 אלף ש"ח ויותר, ובוכים כל היום שזה לא מה שחשבו, ובמקרה הגרוע [אולי הטוב], יורדים מזה אחרי כמה שנות שימוש [אחרי ששילמו 25 אלף ש"ח...] ופונים למתכנת באופן עצמאי...
    בל תשחית ומעילה בכספי הקדש.

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

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

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

    פורסם במקור בפורום CODE613 ב04/08/2016 17:06 (+03:00)


  • סינון רשומות בשאילתא על סמך שאר הרשומות באותה שאילתא
    א ארכיטקט

    @אבגדהוזח

    אני מצרף תמונה בתגובה.

    עדיין מתקיים כאן "כי לא ראיתם כל תמונה" איפה התמונה??

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

    פורסם במקור בפורום CODE613 ב10/07/2016 23:25 (+03:00)


  • סינון רשומות בשאילתא על סמך שאר הרשומות באותה שאילתא
    א ארכיטקט

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

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

    פורסם במקור בפורום CODE613 ב06/07/2016 00:57 (+03:00)


  • מספר ויכוחים פילוסופיים (שלא נגמרים) בעיצוב מסדי נתונים
    א ארכיטקט

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

    חומר למתקדמים:

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

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

    רקע:
    12 הדיברות של עולם הנתונים הרלציוני:

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

    פורסם במקור בפורום CODE613 ב20/05/2016 12:56 (+03:00)


  • לימודי תכנות - שאלה שכזאת...
    א ארכיטקט

    יש כאן פוסט מלפני 3 שנים, העקרונות לא השתנו...

    פורסם במקור בפורום CODE613 ב08/05/2016 18:14 (+03:00)


  • חיפוש איבר במערך JS
    א ארכיטקט

    @avraham

    האם אפשר לחפש במערך אם יש בו איבר מסוים, בלי לעבור בלולאה על המערך?

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

    פורסם במקור בפורום CODE613 ב08/03/2016 08:33 (+02:00)


  • עזרה בתכנון
    א ארכיטקט

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

    בהצלחה!

    פורסם במקור בפורום CODE613 ב21/12/2015 21:38 (+02:00)


  • פריקת קיטור על JS
    א ארכיטקט

    לקינוח ולסיום

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

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

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

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

    ואגב בשביל Mat אני דובר יידיש כמעט מלידה, ומכיר את 2 העולמות, יידיש ועברית, ההשוואה כמעט מושלמת, ל Js לעומת שפות אחרות.

    פורסם במקור בפורום CODE613 ב10/12/2015 22:49 (+02:00)


  • פריקת קיטור על JS
    א ארכיטקט

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

    1. תלות בכוח אדם (גיוס עובדים לדוגמא)
    2. תלות בעקומת למידה (יש לזה הרבה צדדים ודווקא עקומת למידה מהירה היא לפעמים מוקש גדול)
    3. תיעוד וקהילה תומכת (כלומר פופלריות ו"כמה תשובות יש בסטאק אוברפלוו על כל שאלה")
    4. יכולות טכניות של השפה (בשפות מודרניות הפערים בדרך כלל קטנים, כלומר אני לא מאמין שיש איזה פער מבחינת יכולת טכנית בין NodeJs לבין C# שמייקרוסופט לא יסגרו אותו צ'יק צ'ק)
    5. יכולת תיכנון הקוד בהתאם לתחביר ולסמנטיקה של השפה (כגון תיכנות מונחה עצמים וכדומה שנדיר למצוא מישהו שעובד ככה ב Js למשל וכן רמת הנזילות של השפה הזאת יכול לשגע בן אדם שהתרגל לטיפוסים חזקים ולבטחון בסביבת הפיתוח כמו avr שפתח כאן את הפוסט, מצד שני יש פרוייקטים [או: פרוייקטורים...] שדווקא הכי טוב להם מתירנות וחילוניות גמורה המקובלת ב js)
    6. יכולת תחזוקה ארוכת טווח בהתאם להתפתחות הסביבתית, כגון רמות של תלויות וכו' שזה כבר קשור באמת לארכיטקטורה נטו.
    7. כמה משקל אתה נותן לכל אחד מששת הסעיפים הקודמים, ומהי רמת הגמישות שלך במשא ומתן על כל אחד מהסעיפים, מהם הקווים האדומים שלך בנושא וכן הלאה. כאשר זה בהתאם לפרוייקט ולסוג העבודה שאתה רוצה לעשות.

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

    פורסם במקור בפורום CODE613 ב06/12/2015 01:10 (+02:00)


  • טעינת תיקייה לשרת
    א ארכיטקט

    אמור להיות פתרון של Razor לעניין הזה, ולפחות ברמת הליאוט הראשי. תחתור בכיוון הזה.

    פורסם במקור בפורום CODE613 ב15/11/2015 12:44 (+02:00)


  • מחלקת עזר לעיבוד נתונים שבועיים
    א ארכיטקט

    זאת בדיקת היחידה:

    using BillingService.BLL.SequencingWithStudent.WorkingHelpers;
    using System;
    using Microsoft.VisualStudio.TestTools.UnitTesting;
    using BillingService.BLL.SequencingWithStudent;
    using System.Collections.Generic;
    using System.Linq;
    using BillingService.BLL.DateTimeHelpers;
    
    namespace BillingService.BLL.Tests.SequencingWithStudent.WorkingHelpers
    {
        [TestClass]
        public class WeeksListTest
        {
            [TestMethod]
            public void GetWeeksListTest()
            {
                List<Week> Manuallist = new List<Week>();
    
                Manuallist.Add(new Week(new DateTime(2015, 11, 10), 1));
                Manuallist.Add(new Week(new DateTime(2015, 11, 18), 2));
                Manuallist.Add(new Week(new DateTime(2015, 11, 26), 3));
    
                var AutoList = Week.GetWeeksList(new DateTime(2015, 11, 10), new DateTime(2015, 11, 26));
    
                //בדיקה שהשבוע שנוצר מתחיל ביום המצופה
                Assert.AreEqual(Manuallist.Where(w => w.WeekOrder == 1).First().FromDate, new DateTime(2015, 11, 8));
                //בדיקה שהשבוע שנוצר מתחיל ביום ראשון בשבוע
                Assert.AreEqual(Manuallist.Where(w => w.WeekOrder == 1).First().FromDate.DayOfWeek, DayOfWeek.Sunday);
                //בדיקה שהשבוע שנוצר מסתיים בשבת
                Assert.AreEqual(Manuallist.Where(w => w.WeekOrder == 1).First().ToDate.DayOfWeek ,DayOfWeek.Saturday);
                
                //בדיקה שהליסט שנוצר אוטומטית שווה לליסט שיצרנו בכוחות עצמנו
                Assert.AreEqual(Manuallist.First(m=>m.WeekOrder==2).FromDate, AutoList.First(a => a.WeekOrder == 2).FromDate);
    
                //בדיקת פונקציה שקובעת אם שתי תאריכים חלים באותו שבוע
                Assert.IsTrue(Week.IsDatesInOneWeek(new DateTime(2016, 1, 4), new DateTime(2016, 1, 8)));
                Assert.IsFalse(Week.IsDatesInOneWeek(new DateTime(2016, 1, 1), new DateTime(2016, 1, 8)));
    
            }
        }
    }
    

    פורסם במקור בפורום CODE613 ב12/11/2015 23:47 (+02:00)


  • מחלקת עזר לעיבוד נתונים שבועיים
    א ארכיטקט

    טוב אז זאת המחלקה:

    using System;
    using System.Collections.Generic;
    using System.Globalization;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace BillingService.BLL.DateTimeHelpers
    {
        public class Week
        {
            /// <summary>
            /// בנה מופע של שבוע מתוך תאריך כלשהו שבאמצע השבוע
            /// </summary>
            /// <param name="date">הכנס כאן תאריך כלשהו שחל בשבוע שברצונך לבנות</param>
            /// <param name="weekOrder">אם ברצונך לבנות רצף הכנס כאן את המספר הסידורי של הרצף שברצונך לבנות</param>
            public Week(DateTime date, int weekOrder = 0)
            {
                WeekOrder = weekOrder;
                //גורם לכך שבכל מקרה לא יוכל להיכנס ערך שגוי למחלקה ותמיד הערך של מתאריך יהפוך ליום ראשון של אותו שבוע בעל כרחו
                FromDate = FirstDateInWeek(date);
                ToDate = LastDateInWeek(date);
            }
            #region Members
    
            public int WeekOrder { get; private set; }
            public DateTime FromDate { get; private set; }
            public DateTime ToDate { get; private set; }
    
            #endregion
    
            #region WeeksList
            /// <summary>
            /// מחזיר ליסט מסוג אוביקט שבועות בהתבסס על טווח תאריכים נתון
            /// </summary>
            /// <param name="FromDate">מאיזה תאריך נרצה את הליסט</param>
            /// <param name="ToDate">עד איזה תאריך</param>
            /// <returns>מחזיר ליסט של שבועות שלמים בלבד!!! כלומר שבוע המתחיל ביום ראשון ומסתיים בשבת גם אם ניתנו פרמטרים של תאריכים באמצע שבוע</returns>
            public static List<Week> GetWeeksList(DateTime FromDate, DateTime ToDate)
            {
                List<Week> WorkList = new List<Week>();
    
                var cal = CultureInfo.CurrentCulture;
    
                int identityWeekOrder = 0;
                //כל עוד נמצא בטווח התאריכים הנבדקים
                for (var dt = FirstDateInWeek(FromDate); dt <= LastDateInWeek(ToDate); dt = dt.AddDays((7)))
                {
                    WorkList.Add(new Week(dt, ++identityWeekOrder));
                }
    
                return WorkList;
            }
    
            #endregion
    
            #region PublicFunctions
            /// <summary>
            /// מחזיר ערך בוליאני האם תאריך מסויים חל בשבוע הנוכחי
            /// </summary>
            /// <param name="date">הכנס כאן תאריך כלשהו לבדיקה</param>
            /// <returns>מחזיר אמת אם התאריך אכן חל בשבוע של המופע הנוכחי</returns>
            public bool IsDateInThisWeek(DateTime date)
            {
                return (date >= this.FromDate && date <= this.ToDate);
            }
    
            #endregion
    
    
            #region PublicStaticHelpersFunctions
    
            /// <summary>
            /// מחזיר את היום הראשון בשבוע לפי תאריך נתון
            /// </summary>
            /// <param name="date">הכנס כאן תאריך כלשהו על מנת לקבל את היום הראשון בשבוע</param>
            /// <returns></returns>
            public static DateTime FirstDateInWeek(DateTime date)
            {
                return date.AddDays(-((int)date.DayOfWeek));
            }
    
            /// <summary>
            /// מחזיר את היום האחרון בשבוע לפי תאריך נתון
            /// </summary>
            /// <param name="date">הכנס כאן תאריך כלשהו על מנת לקבל את היום האחרון שבאותו שבוע</param>
            /// <returns></returns>
            public static DateTime LastDateInWeek(DateTime date)
            {
                return date.AddDays((7 - ((int)date.DayOfWeek + 1)));
            }
    
            /// <summary>
            /// בודק האם שני תאריכים חלים באותו שבוע
            /// בפרמטרים אפשר להכניס את התאריך הגדול או הקטן מביניהם בראשון או בשני אין זה משנה כלל
            /// </summary>
            /// <param name="date1">תאריך שברצונך לבדוק</param>
            /// <param name="date2">התאריך שמולו ברצונך לבדוק</param>
            /// <returns>מחזיר אמת אם שני התאריכים חלים באותו שבוע ושקר אם לא</returns>
            public static bool IsDatesInOneWeek(DateTime date1, DateTime date2)
            {
                return (date2 >= FirstDateInWeek(date1) && date2 <= LastDateInWeek(date1));
            }
    
    
            /// <summary>
            /// מחזיר כמה ימים באותו חודש יש מאותו יום בשבוע לפי תאריך נתון
            /// כלומר אם נתתי תאריך שיוצא ביום רביעי ובאותו חודש לועזי ישנם 5 ימי רביעי הערך המוחזר יהיה חמש וכן הלאה
            /// </summary>
            /// <param name="date">הכנס כאן ערך של תאריך מדוייק של אותו יום שברצונך לבדוק </param>
            /// <returns></returns>
            public static int CountDayInWeekPerMonth(DateTime date)
            {
                //על מנת לייעל ביצועים מכניסים כאן לדיקשנרי את תוצאות החישוב בשביל הפעם הבאה
                if (!staticCountDayInWeekPerMonthByDate.ContainsKey(date))
                {
                    staticCountDayInWeekPerMonthByDate.Add(date, CountDaysOfWeekBetweenDates(date.DayOfWeek, date.AddDays((-date.Day) + 1), date.AddMonths(1).AddDays(-date.Day)));
                }
                return staticCountDayInWeekPerMonthByDate[date];
    
            }
            #endregion
    
            #region PrivateHelpMembers
            private static Dictionary<DateTime, int> staticCountDayInWeekPerMonthByDate = new Dictionary<DateTime, int>();
            #endregion
    
            #region PrivateFunctions
            private static int CountDaysOfWeekBetweenDates(DayOfWeek day, DateTime start, DateTime end)
            {
    
                TimeSpan ts = end - start;                       // Total duration
                int count = (int)Math.Floor(ts.TotalDays / 7);   // Number of whole weeks
                int remainder = (int)(ts.TotalDays % 7);         // Number of remaining days
                int sinceLastDay = (int)(end.DayOfWeek - day);   // Number of days since last [day]
                if (sinceLastDay < 0) sinceLastDay += 7;         // Adjust for negative days since last [day]
    
                // If the days in excess of an even week are greater than or equal to the number days since the last [day], then count this one, too.
                if (remainder >= sinceLastDay) count++;
    
                return count;
            }
            #endregion
        }
    }
    

    פורסם במקור בפורום CODE613 ב12/11/2015 23:46 (+02:00)


  • מחלקת עזר לעיבוד נתונים שבועיים
    א ארכיטקט

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

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

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

    /// <summary>
            /// בודק האם שני תאריכים חלים באותו שבוע
            /// בפרמטרים אפשר להכניס את התאריך הגדול או הקטן מביניהם בראשון או בשני אין זה משנה כלל
            /// !!!!!לא לשימוש באמצע פיתוח
            /// </summary>
            /// <param name="date1">תאריך שברצונך לבדוק</param>
            /// <param name="date2">התאריך שמולו ברצונך לבדוק</param>
            /// <returns>מחזיר אמת אם שני התאריכים חלים באותו שבוע ושקר אם לא</returns>
            static bool IsDatesInOneWeek(DateTime date1, DateTime date2)
            {
    
    
                return false;
            }
    

    פורסם במקור בפורום CODE613 ב12/11/2015 23:22 (+02:00)


  • levelUP db שאלת בסיסיות
    א ארכיטקט

    @אהרן

    אשמח להסבר מהו הנקודה של חיפוש בינארי

    חיפוש בינארי נקרא גם "אריה במדבר"

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

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

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

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

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

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

    פורסם במקור בפורום CODE613 ב31/08/2015 22:11 (+03:00)


  • "תוכנה לניהול מוסד", וואלה!...
    א ארכיטקט

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

    פורסם במקור בפורום CODE613 ב02/08/2015 17:43 (+03:00)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 23
  • 24
  • 5 / 24
  • התחברות

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

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