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

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

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

ארכיטקט

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

פוסטים

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

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

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

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

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


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

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

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

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

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

    אבל אולי הציבור כן יכול. בשביל זה אתם צריכים לשתף ולשתף, ללחוץ וללחוץ, ולא להרפות. זה יכול להיות אחרת. תוך חודש זה יכול להיות אחרת. וזה בידיכם.

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

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

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

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

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

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

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

    משרת החיזויים המידע מועבר לשרתי השאילתות (אליהם פונים איפובוס, מוביט וכל השאר, וגם מערכות השלטים), הידוע בתור שרת הSIRI. המידע מועבר בהזרמה ומבוסס דלתות (הפרשים). רוחב הסרט של המידע הזה הוא, בשעות האלה, כ150K בייט לשנייה.

    אל שרתי השאילתות (יש חמישה כאלה עם מאזן עומסים) פונים המתשאלים כאמור. נפח ממוצע של התשובות לשאילתות בשעות האלה הוא כ6M בייט לשנייה על כל שרת, בסך הכל כ30M על חמישה שרתים. בסך הכל מתבצעות כ20,000 שאילתות בדקה.

    ההבדל הזה, בין 150K ל30M הוא חצי סיפור. החצי השני הוא שה150K מייצגים מידע בהזרמה שמגיע תוך חלקיק שנייה ליעדו והוא מעודכן לכל התחנות ולכל הנסיעות בארץ. לעומת זה ה30M מייצגים שאילות שנשאלות מידי כמה שניות, וכדי להגיע לנפח סביר שלא יפיל את המערכת, המתשאלים נאלצים להגביל את השאילתות שלהם. הם לא יכולים לשאול על כל התחנות ועל כל הנסיעות בכל שאילתה, כי זה יהפוך את ה30M ל30G.

    וכך הופכת חצי שנייה לשתי דקות...

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

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

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

    כל מה שכתבתי למעלה נכון לעכשיו. אבל בעיני משרד התחבורה זה לא מספיק גרוע, והם הגו רעיון גאוני שיחמיר את המצב פי עשרה. לדעתם המצב שבו המידע מגיע מרכבים למערכת החיזויים ומחושב תוך חצי שניה זאת תקלה חמורה מאוד. הרי צריך סטנדרטים, וסטנדרטים זה רק שאילתות. אז הם הוציאו מכרז למערכת נוספת, שתשב בין החיזויים לשרת הSIRI. המערכת הזאת תתשאל את כל מפעילי האוטובוסים פעם ב20 שניות ותקבל DUMP מלא של כל הקווים, כל הנסיעות וכל התחנות בארץ בכל שאילתה את זה היא תעביר לשרת הSIRI. כך יהפכו ה150K שעוברים היום בין המערכות ל150G. במשימה הזאת, של הפיכת 150K בייטס ל150G בייטס, זכתה חברת אינטגרציה מהגדולות במשק, היא עובדת על הדבר המסובך הזה, ממש מדע טילים, כבר שנתיים, ועדיין לא סיימה. צפי הסיום הוא לשנת 2020. להערכתי זה מכרז של עשרות מיליוני שקלים, שקל על כל הכפלה של נפח המידע.


  • log מוזר בשרת
    א ארכיטקט

    @צדיק-תמים אמר בlog מוזר בשרת:

    @nigun רק אני לא מצליח להבין מה המטרה/רווח של הבוט הזה? 🤔

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


  • שאלה פילוסופית עד איזו רמה של מיקרו אופטימיזציה האדם מצווה לדקדק
    א ארכיטקט

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


  • בשורה מרעישה לכל מי שסובל מבעיות UX הנובעות מבלבול בין לחיצות כפולות לבודדות
    א ארכיטקט

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

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


  • בשורה מרעישה לכל מי שסובל מבעיות UX הנובעות מבלבול בין לחיצות כפולות לבודדות
    א ארכיטקט

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

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

    import { Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
    
    @Directive({
      selector: '[mtrSingleClick]'
    })
    export class SingleClickDirective {
    
      private singleClickWasClickedRecently = false;
      private isdblClick = false;
    
      @Input() public debounceTime = 500;
      @Input() public ignoreSingleClickWhenDblClick = true;
      @Input('mtrSingleClickStopPropagation') public stopPropagation = false;
    
      @Output() singleClick = new EventEmitter<any>();
    
      @Output() singleOrDblclick = new EventEmitter<any>();
    
      @HostListener('click', ['$event'])
      onClick($event): void {
        if (this.stopPropagation) {
          $event.stopPropagation();
        }
    
        if (this.singleClickWasClickedRecently) {
          return;
        }
    
        this.singleClickWasClickedRecently = true;
        if (this.ignoreSingleClickWhenDblClick) {
          // check if not dblclick
          const mainTimer = setTimeout(() => {
            if (this.isdblClick) {
              this.singleClickWasClickedRecently = false;
              clearTimeout(mainTimer);
              return;
            }
            // if is not dblclick
            this.emitSingleClick($event);
            clearTimeout(mainTimer);
          }, this.debounceTime);
        } else {
          this.emitSingleClick($event);
        }
      }
    
      emitSingleClick($event): void {
        this.singleClick.emit($event);
        this.singleOrDblclick.emit($event);
    
        const timer = setTimeout(() => {
          this.singleClickWasClickedRecently = false;
          clearTimeout(timer);
        }, this.debounceTime);
    
      }
    
      @HostListener('dblclick', ['$event'])
      onDblclick($event): void {
        if (this.stopPropagation) {
          $event.stopPropagation();
        }
        this.isdblClick = true;
        const timer = setTimeout(() => {
          this.isdblClick = false;
          clearTimeout(timer);
        }, this.debounceTime);
        this.singleOrDblclick.emit($event);
      }
    
      constructor() { }
    
    }
    
    

    למימוש:

    <div mtrSingleClick (singleOrDblclick)="openForm()"
                [mtrSingleClickStopPropagation]="true" >
    </div>
    

  • שטיבליסט: הסטרטאפ שנכנס לשוק של מאה מיליארד דולר בשנה
    א ארכיטקט

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


  • לוח שנה עברי טבלאי
    א ארכיטקט

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

    פורסם במקור בפורום CODE613 ב30/07/2014 23:42 (+03:00)


  • מחולל דוחו"ת מבוסס HTML ו JS
    א ארכיטקט

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


  • עזרה באפיון ודרך בניה
    א ארכיטקט

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


  • קוד פתוח לניהול מסד נתונים
    א ארכיטקט

    לי אני הקטן יש כלי צנוע ופשוט של CRUD (שעובר את כל מה שאי פעם המציאו ואת זה אני אומר בצניעות יתירה) אבל מכיוון שהביטחון העצמי שלי נפל פלאים (-98.96% ברבעון האחרון) מאז שמרן ראש הפורום הפסיק לענות לי לטלפונים (@dovid עוד מעט בחירות) אין לי אפילו האומץ לשתף את הכלי הזה.
    כמו"כ הכלי הזה עובד טוב עם MSSQL ופחות ניסיתי אותו על מסדי נתונים אחרים.
    עדכון: הוא ענה לי לטלפון היום תוך כדי כתיבת השורות.


  • MYSQL איחוד תוצאות וחיפוש בתוך התוצאות המאוחדות
    א ארכיטקט
    SELECT items.*, GROUP_CONCAT(items_tags.name, ',') as tags 
    FROM items 
    LEFT JOIN items_tags ON items_tags.item_id = items.id 
    WHERE items.id IN (select t.item_id from items_tags as t where t.name='computer')
    GROUP BY items.id
    

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

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


  • שאלה פילוסופית עד איזו רמה של מיקרו אופטימיזציה האדם מצווה לדקדק
    א ארכיטקט

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


  • שילוב ספריות חיצוניות בפרויקט - יש עניין להפחית ככל הניתן? ועד כמה?
    א ארכיטקט

    אני מחמיר יותר מ @yossiz בנושא הזה, כנראה שזה עניין של חווייה אישית, ספריות "נשברות" ומאבדות תאימות לעיתים קרובות, בדרך כלל אני בודק את המוניטין של הספרייה ומיהו המפתח, ומה עוד הוא עשה בחיים, ומשתדל שלא להתקין ספריות שאינן נתמכות על ידי ארגונים גדולים.
    כמו"כ ההצדקה לצרוך ספריה צריכה להיות משהו מסדר גודל עצום כגון עיבוד PDF או דחיסה ל ZIP (אני כמובן מקצין, אבל כוונתי לסבר את האוזן), אם יש לך בעיה פיצקית שבשבילה אתה מתקין ספרייה שלמה, זה חטא גדול מאוד. עדיף להעתיק את הקוד הספציפי שפותר את הבעיה שלך ולעטוף אותו בפונקציה שתוכל לשפר אותה לאחר מכן.
    הנה דוגמא נפוצה לספרייה עם 66 מיליון הורדות שבועיות
    https://www.npmjs.com/package/isarray
    ואם תהית מהו הקוד הנורא שהיא מסתירה אז הנה הוא:
    https://github.com/juliangruber/isarray/blob/master/index.js
    ויש עוד דוגמאות כהנה וכהנה
    לגבי מדדים "טכניים" של איכות ספרייה, יש אתר שמנסה לעשות זאת באמצעות אלגוריתם כלשהו:
    https://npms.io/


  • קוד SQL טהור לחיפוש חופשי בעמודה
    א ארכיטקט

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

    DECLARE @UserInput NVARCHAR(100) = 'אלי רחמים';
    DECLARE @UserInput_Word_1 NVARCHAR(100) = 'אלי';
    DECLARE @UserInput_Word_2 NVARCHAR(100) = 'רחמים';
    
    SELECT 'רחמים אליהו וזאנה' AS Name INTO #table;
    
    SELECT * 
    FROM #table
    WHERE 
    Name LIKE CONCAT('%',@UserInput_Word_1,'%')
    AND Name LIKE CONCAT('%',@UserInput_Word_2,'%');
    DROP TABLE #table;
    
    

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

    DECLARE @UserInput NVARCHAR(100) = 'אלי רחמים';
    
    SELECT 'רחמים אליהו וזאנה' AS Name INTO #table;
    
    SELECT * 
    FROM #table
    WHERE 1 = ALL ( SELECT CASE WHEN Name LIKE CONCAT('%',value,'%') THEN 1 ELSE 0 END FROM STRING_SPLIT(@UserInput,' ') )
    DROP TABLE #table;
    
    

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

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


  • שדרוג nginx שהסתבך
    א ארכיטקט

    @nigun אמר בשדרוג nginx שהסתבך:

    ובאמת צריך לנהוג כך גם במערכות מורכבות

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


  • אתגר: להגדיר מנטליות של שפת תכנות בקטע קוד מינימלי
    א ארכיטקט

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

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

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

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

    פורסם במקור בפורום CODE613 ב03/11/2017 13:06 (+02:00)


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

    @CHAGOLD

    ואם כבר מדברים...

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

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

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

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

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

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

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