יום רביעי, 20 ביוני 2018

342 Optibus

פרק 342 רן ואורי מארחים את איתן יזם ו CTO ב Optibus


  • 1:05 איתן מספר על עצמו ועל הרקע המקצועי שלו
  • 2:18 איתן מספר על Optibus, מתמקדים בתחום הסעת ההמונים, לוקחים דאטה מעיר שלמה ומוציאים תכנית פעולה לרכבים ונהגים כדי לעמוד בביקוש התחבורה בעיר תחת אילוצים וחוקים רבים למשל טעינת רכב חשמלי או מנוחת נהג
  • 6:20 נקודת ההתחלה למערכת שלהם היא כאשר הנסיעות כבר תוכננו אבל לא יודע איך הולכים לבצע את הנסיעות בהינתן המשאבים הקיימים, שיבוץ רכבים, נהגים ומשאבים נוספים למסימות הקיימות, זוהי בעיה NP קשה, ובצורה נאיבית מחשב לא יצליח לשבץ בזמן סביר
  • 8:05 הפרויקט התחיל כאשר איתן ועמוס השותף שלו היו במהלך תואר במתמטיקה ומדעי המחשב, ונחשפו לעולם הבעיה הזה, ובהתחלה התמקדו בבעיה מצומצמת יותר בה יש רק רכבים ומתעלמים מהנהגים והשתמשו בפתרונות מעולם הגרפים בה כל נסיעה היא קודקוד בגרף, וקשת בין  2 נסיעות מסמנת רכב היכול לבצע נסיעה אחת ואחריה את הנסיעה השניה
  • 9:50 כאשר רוצים לכסות את כל הנסיעות בגרף כזה בעל עשרות אלפי קודקודים ומליוני קשתות, אפשר לתאר את זה על ידי כיסוי הגרף במסילות כאשר מסילה היא רצף קודקודים מחובר ורוצים כמה שפחות מסילות המכסות כמה שיותר קודקודים, זוהי הפשטה של הבעיה בה הם התחילו
  • 11:05 בעולם האמיתי הבעיה מסובכת יותר למשל לא דובר על חניונים ואיפה הרכב חונה, רכבים צריכים להיטען ונכנסים למורכבות של שיטות חיפוש בשילוב המון משתנים
  • 12:55 הכניסה של נהגים הופכת את הבעיה למורכבת בהרבה כי החוקים והאילוצים על נהגים הם רבים בדומה לבעיות של תכנון לינארי רק בסקייל גדול מאוד, נהג יכול לבצע חתיכת עבודה מרכב מסוים לרדת מהרכב להפסקה ולעבור רכב, אז צריך לחלק את המסילות לתתי-מסילות ולייצר סידור עבודה לרכבים, פה נכנסים לתכנון לינארי עם מיליארדי משתנים, החוכמה היא לצמצם את עולם החיפוש בצורה חכמה ולבזר את פתרון הבעיה להרבה מחשבים
  • 14:35 אחד הדברים המייחדים את Optibus היא היכולת לתת תכנית לעיר שלמה בסידרי גודל של שניות עד דקות בשונה מימים בפתרונות אחרים
  • 16:30 איתן ועמוס הקימו את החברה ב2014 ממרתף בנתניה, כאשר די בהתחלה כבר הייתה להם עיסקה עם אגד והתחילו בגיוס כספים, כיום הם מונים מעל 50 איש ויושבים בתל אביב ועובדים בארה״ב אנגליה אוסטרליה וסינגפור
  • 19:45 מעבר לתכנון בהנתן דאטה ידוע, הם מקבלים דאטה מסיגנלים של GPS ומזה מקבלים תובנות על איך התנהלה התכנית בשטח ומה הקורלציה בין התכנית לבין הביצוע בפועל, על המידע הזה מריצים אלגוריתמים של למידת מכונה ומקבלים פרדיקציה על איך התכנית הולכת להתנהג בפועל
  • 24:20 יש דמיון רב לתכנון טיסות, ההבדלים העיקריים הם שתכנון טיסות זה סקייל הרבה יותר קטן, ובאוטובוס נסיעה ריקה למשך כמה תחנות היא יותר נסבלת מלהוציא טיסה ריקה
  • 28:30 רן מסכם שיש פה בעיה אלגוריתמית קשה הדורשת הרבה כח חישוב, חלק מהבעיות הן NP קשות, ושואל איך ניתן לפתור את הבעיות האלה בזמנים של שניות
  • 29:20 יש הרבה דברים בהם השתמשו כדי לבצע את זה, דבר ראשון עובדים בפייתון, וכאשר עשו בנצ׳מארק מול שפות אחרות פייתון יצא איטי בסדר גודל, אבל כאשר השתמשו ב pypy שהוא אינטרפטר לפייתון העושה JIT compilation הגיעו לביצועים בסדר גודל של Node 
  • 31:45 בנוסף כאשר רצו לעשות רדוקציה לבעיה בגרף או למדל בעיה מתמטית כתבו בעצמם ב CPP
  • 32:20 את הדאטה טרום חישוב שומרים בMongoDB, את הדאטה שמייצרים תוך כדי אופטימיזציה מתחלק לחלק בזיכרון וחלק בדיסק כתלות בביזור
  • 33:30 ניצלו את היכול של Linux לעשות fork ל process ולהצביע על אותו מקום בזכרון כאשר לא כותבים אליו וכך חסכו סריאליזציה ודי-סריאליזציה של דאטה , זה מאפשר לנצל הרבה cores במחשב אחד
  • 35:50 כשרצו למקבל על כמה מכונות היה שלב בו השתמשו הרבה ב EFS כי היה נח שמי שמתחיל את העבודה כותב קובץ של כמה מאות מגה ושאר התהליכים קוראים אותו
  • 36:35 כעת חשבו על מיקבול גדול יותר, פה נכנס הקונספט של serverless, מכיוון שאופי העבודה הוא ספורדי ואפשר לקבל מספר אדיר של cores ברגע ולשלם רק על זמן העבודה
  • 37:55 אמזון מגבילים את מספר הקורים והמכונות ועכשיו הם נמצאים בשלב של poc עם בינאריס שנותנים latency נמוך ואפשרות להבנה של הסטייט
  • 39:45 על מנת לחסוך זמן החימום של ה process שיכול להגיע לעשר שניות ובסקייל של Optibus זה סדר גודל של יום בגלל מספר התהליכים, משתמשים ב snapshot של ה process לאחר חימום
  • 42:20 רן שואל האם השימוש ב copy-on-write ישים גם ב lambda, איתן מסביר שה serverless infra לא נותן מספיק cores ל process על מנת לנצל את זה
  • 45:05 איתן מציין שסוג החברות שעודות איתם הם לא רק חברות תחבורה, אלא כל חברה שצריכה הסעות המונים, למשל Facebook שצריכים להסיע את העובדים שלהם, ולדעתו התחום לקראת פריחה רצינית
  • 50:30 יש הטוענים שרכבים אוטונומיים יורידו את מספר המכוניות על הכביש כי נחלוק רכבים, מצד שני יש הטוענים כי מספר הנסיעות יעלה, איתן חושב שרק רכבים קטנים אוטונומיים לא יפתרו את הבעיה לבד אלא שילוב של נסיעות המונים עם רכבים אוטונומיים


הקובץ נמצא כאן, האזנה נעימה ותודה רבה לדניאל שלו על התמלול

יום שישי, 8 ביוני 2018

341 Bumpers 48


במפרס מספר 148 עם רן , דותן ואלון
  • רן - איך זה להיות מפתח ב… - רשימה של נתונים על מספר חברות, הכלים בהם מפתחים, תהליך הפיתוח, הצוותים וכו׳
  • רן - עליית המכונות, פוסט פוליטי חברתי של יאיר לפיד, המתאר את הדעות שלו על העתיד
  • רן - FlatBuffers פרויקט סריאליזציה מגוגל עם כמה הבדלים מ ProtoBuffers, מהיר כי לא חייב לקרוא את כל הדאטה אם לא משתמש בהכל, פייסבוק משתמשים בו באפליקצית אנדרואיד
  • רן - כלי המדגים ויזואלית את דרך הפעולה של רשתות ניורונים
  • רן -   מחברת Jupyter עבור Go
  • דותן - מאמר של Paul Grahm כל לוחות זמנים של מנהלים מול מהנדסים (מייקרים) ואיך הוא ממליץ לנהל את הלו״ז המשותף
  • דותן - רעידת אדמה קטנה ב React, יכולות חדשות מאפשרות Suspense and Async rendering, הכרזה, דיון, דיון נוסף, renderprops / function components
  • דותן - Apolo, גרסא 2.1 לספריית ה GraphQL לJS, סיכום לכל מה שצריך לדעת למי שרוצה לעדכן, יש ספריות lightweight מתחרות, urql, micro-graphql, בנוסף ישנם כלי ניתוח עלויות
  • דותן - TC39, ועידת העתיד של JS, כמה דברים שיצאו לאחרונה: async iteration, התקדמות ב pattern matching, ו pipeline operator
  • דותן - עוד מאמר של עזיבה של Scala, ע״י אחד מה Commiters
  • דותן - Hypothesis, ספריית Python המאפשרת כניסה קלה ל Property testing
  • דותן - pyjest, מאפשר להריץ ספריית test של Python על גבי Jest
  • דותן - deep painting, פרויקט deep learning הלוקח ציור ומשלב בו פריטים חיצוניים וגורם להם להשתלב בסגנון הציור
  • דותן - מאמר על FP ב JS, הנותן נגיעה טובה מאוד לתכנות פונקציונאלי
  • דותן - מצגת על איך לכתוב קוד כמו הצוות של Go
  • דותן - Go proverbs, מסמך העובר על העקרונות של Go בדומה למנטרה של Python
  • דותן - subreddit של סטאפים מטורפים לעמדת מחשב, ויחידת ריהוט באיקאה להגבהת מסכים
  • אלון - Greensock היא animation library ל JS, עובד גם ב React
  • אלון - Oracle ניצחו את Google בתביעה המפורסמת שמנהלת כבר 8 שנים
  • אלון - תוסף לכרום המראה feature queries ב dev tools
  • אלון - פורסם באג ב API של גוגל המשפיע על תוצאות חיפוש
  • אלון - RealWorld, דוגמאות מימושים של clone של Medium.com בעזרת פריימוורקים שונים
  • אלון - Jeff Bezos הסביר את דרך התנהלות הפגישות באמזון, ועל הסיבות בגללן אין מצגות באמזון אלא דפי ממו המקבלים לפני ישיבה

מצחיקים

  • רן - vim-clutch פדאל למעבר בין insert mode ל normal mode
  • אלון - vim ransomware, דיון ב reddit על מישהו שנכנס ל vim, לא הצליח לצאת וחשב שמדובר בתכנת כופר
  • רן - מספר על פרק האחד באפריל
  • תזכורת ל Reversim Summit

הקובץ נמצא כאן, האזנה נעימה ותודה רבה לדניאל שלו על התמלול