יום חמישי, 1 באפריל 2021

405 Bumpers 72

שלום וברוכים הבאים לפרק מספר 405 של רברס עם פלטרפורמה - באמפרס מספר 72 - והתאריך היום הוא ה-1 באפריל 2021.
היום יש לנו אורח מיוחד - תגידו שלום למיסטר טרנס אקשן (Terence Action)!
(רן) שלום מר טרנס
(טרנס) אהלן, בוקר טוב, מה קורה?
(רן) בוקר טוב, אנחנו שמחים שאתה איתנו - ואיתנו גם אלון ודותן, הי חברים.


אז - מר טרנס, קודם כל תודה שאתה זורם איתנו עם העברית… יש לך רקע עשיר ומגוון בכל מה שקשור בביזור של Databases, וגם אחרים . . . בוא, ספר לנו קצת על הרקע שלך, מאיפה אתה מגיע?
  • (טרנס) תראה, הכל התחיל בשנות ה-60, כשהתחלתי את המאסטר שלי, ואני וקנות’ ישבנו ודיברנו על מחשבים
    • קנות’ אמר . . .
    • (רן) אתה מתכוון ל - Donald Knuth, נכון?
    • (טרנס) כן, אתה יודע . . . מצטער שאני עושה Name-dropping אבל ככה . . .  חבר יקר.
    • יום אחד הוא קם ופתח עיניים גדולות, כמו צלחות, ואמר “יום אחד מחשבים יעבדו, כאילו - הרבה ביחד, הרבה הרבה הרבה ביחד” . . . 
      • אמרתי לו “וואו!”, והלכתי ולקחתי את זה איתי הביתה, וישבתי בבית וחשבתי לי, קצת עשיתי אסיד, ואמרתי לעצמי “וואו - אם הם עובדים הרבה ביחד, אז לפעמים חלק ייפלו!”
      • ואז ידעתי מה יהיה המאסטר שלי, ה-Citation . . . 
      • וכתבתי על מערכות מבוזרות.
(רן) אתה רוצה להגיד לי שאתה קודם כתבת את ה-Master, ורק אחר כך את ה-Slaves, באוניברסיטה?
  • (טרנס) וואו, אתה מנסה להפיל אותי פה עם כל העברית החדשה הזו, הא? אני כתבתי את ה-Leading version, ואחר כך את ה-Clone, כן . . 

(רן) היית Leader, כן . . . אז באילו Databases יצא לך לעסוק בחיים המקצועיים שלך?
  • (טרנס) אז תראה - כמו כולם, התחלתי ב-Sybase, ואחר זה הכנסתי את SQLite לעבודה ב-!Yahoo . . .
    • כל המייל של !Yahoo ישב על SQLite, לא רבים יודעים את זה . . . 
    • המנגנון Anti-spam היה בעצם Select למילים, כמו “ציצים” וכאלה, בהתחלה - ואחרי שמנו שם כל מיני בינה מאלכותית.
    • ואז, כשהיינו כבר בקבצים של ה-SQLite, אמרתי “מה יקרה אם נשבור אותם לפי משהו? לפי נושאים, אות ראשונה של המייל? לפי משהו” . . . 
      • ואז, ככה, המצאתי בעצם את ה-Sharding . . .  זה היה  . . .
(אלון) ה-Sharding הראשון שלך היה בעצם על Distributed Access DB, נכון?
  • (טרנס) כן - זה היה חתיכת סיפור, כי Access DB הוא בפורמט בינארי, ואני לא יודע אם אתה מכיר פורמטים בינאריים, אבל הם טיפה’לה יותר מסובכים מפורמטים לא-בינאריים, טקסטואליים . . . 
  • ואז הייתה בעיה מאוד קשה ב-Access - אי אפשר היה לעשות בשאילתה אחת גם Min, גם Max  וגם אגרגציה (Aggregation) - אז ישבתי ושברתי את זה לשלושה Access DBs, 
    • בשלושה Access DB האלה - על אחד עשיתי Max, על אחד עשיתי Min ועל השלישי עשיתי אגרגציה.
    • ואז המצאתי משהו חדש, שכאילו מאחד את כל התוצאות ביחד - כאילו אתה לא הרגשת את זה.
(דותן) אבל למה לך לעשות Max ו-Min? זה לא ש-Min זה הפוך של Max ו-Max זה הפוך של Min? לא עושים 1- . . .?
  • (טרנס) אז לא קראו לזה Product, אז קראו לו Stephen . . . סטפן אמר שצריך Max ו-Min
    • ניסיתי להתווכח אבל אתה  יודע - Product היו קשוחים, אז אם הוא רוצה Max ו-Min אז ניתן לו Max ו-Min, מה אני אעשה? . . .
(רן) אבל יש את ה . . . זה לא כמו ב-CAP Theorem, שיש לך Max, Min ו-Average - תבחר שנייים? אתה באמת יכול לעשות את שלושתם יחד באותה השאילתה?
  • (טרנס) תשמע, אני לא יודע קורה עם ה-CAP Theorem הזה, בעיני זה הכל פיקציה . . .
  • אני המצאתי את ה-Glasses Theory - זה כמו CAP, אבל כאילו שקוף - וכשהכל שקוף אז הכל גם עובד ביחד
    • אין לך שום בעיה לעשות Through and Through Consistency ו-High Availability - וגם  אם ה-Network Partition קורה, אז לא קרה כלום.

(רן) אגב שקיפות - במאמרים האחרונים שלך, שאתה מפרסם, לקחת את כל הנסיון שלך ב-Databases ועשית לו Apply לקורונה, As-is . . . בוא, ספר לנו קצת על הניסיון שלך בעבודה עם צוותים מבוזרים בתקופות הקורונה.
  • (טרנס) תשמע, קודם כל, כשהתחיל משבר הקורונה, נזכרתי במשפט שאמר לי פעם Andreessen  . .  שהוא אמר “במקום שבו אתה רואה משבר, אני רואה הזדמנות”.
  • אז אמרתי מה בעצם הבעיה פה? אז אנשים מתים . . . עכשיו - אנשים מתים זה עצוב וכזה, אל תבין אותי לא נכון, אני ברגישות - אבל מה קורה אם מת לך מפתח באמצע ה-Release ,כאילו? יום לפני ה-Alpha או משהו, מה קורה?
  • אז אמרתי - וואי, מה יקרה אם נעשה Highly-redundant מפתח, אוקיי?
  • בעצם, כשאתה לוקח מפתחים מאצלי, אז הם באים תמיד בזוגות, אבל מרחוק, ב-Remote - ואם במקרה אחד מהם מת מקורונה, אני עושה Hot-swap ומביא במקומו אחד אחר.
  • עכשיו - מפתחים זה סתם Resources, מה הבעיה? לכתוב X זה קשה? אז הוא ישר נכנס וממשיך מאיפה שהקודם נעצר.

(רן) ואם אחד מהם עושה לך NFT על הקוד? מה אתה עושה עם זה אז? לכל אחד יש את המפתחות?
  • (טרנס) מה זאת אומרת אם”? מה זאת אומרת . . .
  • (רן) הם עושים את זה כבר?
  • (טרנס) אתה קראת את האתר שלנו, הא חמוד? . . .  אתה בסדר אתה.
  • תראה - חברות ששמות אנשים בחברות, יש להן תמיד בעיה, יש בעיה במודל . . . לא יודע אם עבדת פעם עם חברת Outsourcing, אבל יש בעיה במודל - 
    • אם ה-Outsourcer הוא מצויין, אז אתה רוצה שהוא יעבור אליך, אתה לוקח אותו להיות עובד
      • ואז הוא עוזב את החברת Outsourcing ונגמר הכסף מה-Outsourcer הזה
    • ואם הוא בלאי, אז אתה תעיף את החברת Outsourcing קומפלט, לא תיקח אותם יותר, נכון? כשאתם עושים עם הראש לא שומעים את זה . . . [גם קשה לקרוא את זה . . . ]
    • (רן, אלון, דותן) נכון!
    • (טרנס) אז אני אמרתי “קחו את העובדים בחינם - עלי - אבל הקוד שהם כותבים סגור ב-NFT” . . . אתם מכירים NFT? צריך להסביר?
    • (דותן) לא, תסביר . . .
    • (טרנס) אז NFT זה Crypto-Cyber-Distributed, שסוגר לך בעצם Assets דיגיטליים בצורה שבה בכל שימוש חוזר, היוצר המקורי מקבל חתיכה מהכסף.
    • אז נגיד עכשיו, בחברה שעבדנו, נתתי להם את כל הקוד חינם, חוץ מלולאות If מ-1 עד 10 . . . הלולאות If מ-1 עד 10 סגורות ב-NFT שלי.
      • ברגע שאתה עושה Code reuse ללולאות If מ-1 עד 10, אני מקבל ככה כמה סנטים על כל שימוש.
    • (דותן) זה אומרת שאם יש לי מערכים קטנים אז אני בסדר, זה חינם . . .
    • (טרנס) למי אין מערכים קטנים, תגיד לי? בחייאת . . .זה במיוחד שימושי ל-Columnar Databases . . . 
    • (דותן) אבל מה תעשה אם אנשים לוקחים מערך של 100 ומחלקים אותו למאה מערכים של 1? . . . 
    • (טרנס) תראה, הפתרון הוא לא מושלם, אבל בדיוק עכשיו המהנדסים שלי עובדים על לתפוס את ה-Until ואת ה-While - וברגע שתפסתי את ה-Until ואת ה-While, אחי - כל ה-Python של העולם יושב לי בכיס הקטן.
      • זהו - אני סגור, אני יוצא לפנסיה, דבר איתי ב-Puerto Vallarta על מרגריטה  . . .
  • (אלון) שמע, זה אחלה מודל עסקי - הוא מחלק קוד חינם, וגוזר קופון על השימוש בלולאה . . .
  • (דותן) נכון . . .
  • (אלון) איך לא חשבו על זה קודם . . . 
  • (טרנס)לא רק בלולאות,  לא רק בלולאות! אתה משתמש ב-Slack
  • (אלון) כן, אבל רק כל יום . . . 
  • (טרנס) בסדר, מעולה - אתה השתמשת פעם באייקון הזה של האיש עם השפם והמשקפיים והאף הגדול? של ה”היי, אני Nerd אבל אני מצחיקי”?
  • (אלון) כן, ברור
  • (טרנס) בכל פעם שאתה משתמש בו, Slack נותנים לי רבע-סנט . . . 
  • (אלון) מה אתה אומר? . . .
  • (טרנס) סגרתי Assets מימין ומשאל, אתה לא מבין מה זה . . .

(דותן) אפשר לשאול אותך, אם זה בסדר, על המקומות שבהם עבדת? שכולנו מכירים, שהם מפורסמים . . .
  • (טרנס) עכשיו אתה מביך אותי קצת . . .  אני לא רוצה להתהדר, אבל כל ה Data Consistency של Mongo? זה אני
  • (רן) מה אתה אומר? . . . כל ה-Data Consistency של של Mongo זה אתה? פשש . . .  איזו עבודה . . .
  • (טרנס) כן, באמת, אני . . . באלפות (Alpha) הראשונות הייתי כותב במחברת, אבל אחר כך פיתחנו די הרבה קוד סביב זה.
    • שם זה לא NFT לצערי, כי הרבה משתמשים.
(אלון) וכל נושא ה-Data Loss, ב-Mongo - זה נכנס ב-Design? אחרי זה? מתי הכנסתם את הפיצ’רים?
  • (טרנס) הכל מבוסס של AI
    • הבטחנו שזה Eventually Consistent, אבל לא אמרנו מתי זה Eventually . . . 
  • עכשיו, בזמן שאתה כותב קוד, כותב Data ל-Mongo - אנחנו מג’נרטים (Generate) ספרות בפאי (𝛑)  . . .
  • אם אתה זוכר את ה[לימודי] מדעי המחשב שלך, אז אתה מכיר את הבעיה של הקוף שמקליד על המקלדת, ובסוף הוא יכתוב את כל [המחזות של] שייקספיר? . . . אז גם ה-𝛑 שאני מג’נרט בסוף יכיל את ה-Data שלך . . .
  • אל תדאג - Eventually Consistent! יגיע בסוף, למה אתה אומר Data Loss?
(דותן) זה חלק מהתזה שלך, בשנות ה-60 או ה-70 אמרת?
  • (טרנס) וואלה, אני לא זוכר, הייתי מפוצץ באסיד . . .  אני לא יודע מה כתבתי שם . . .
  • אתה יודע מה אומרים על שנות ה-60 - מי שזוכר לא היה, מי שהיה לא זוכר, הא?
  • (דותן) לא יודע, לא זוכר . . . 

(רן) בזמן האחרון ראינו פיצ’ר חדש מ-MongoDB שנקרא MongoDB Stories . . . כן.
ראיתי בבלוג שלך שאתה מעורב בסיפור הזה - ספר לנו קצת על חוויית הפיתוח של זה.
  • (טרנס) תראה, הבעיה הכי גדולה הייתה כשאיבדתי Data לפעמים . . . גיליתי שיש Data-loss כי השתמשתי ב-Mongo, אז היה קצת קשה.
  • אבל בגדול אמרתי משהו כזה - Snapchat עושים Stories ו-LinkedIn עושים Stories ו-Twitter עושים Stories ואפילו ל-VS Code יש Stories כמו שאתם יודעים כולכם - אז למה ל-Mongo לא?
  • אז אמרתי “במה החבר’ה הצעירים משתמשים?” - אני לא יודע אם אתם מכירים, אבל החבר’ה הצעירים משתמשים ב-Mongoose - באיזו שפה שקוראים לה “Node.js” . . . 
  • ואמרתי “אם ב-Mongoose עכשיו, אם זה כבר JavaScript אז זה כמו ב-Browser - כל פעם שהם, כאילו, עושים משהו - אני אקח את ה-Instagram האחרון שלהם ואעלה אותו ל-Database גם כן . . .
    • ואז אם אתה נכנס ב-Viewer, אתה יכול לראות למעלה כאלה עיגולים של ה-Stories של המפתחים האחרונים שעבדת איתם.
  • עכשיו, מה יותר מגניב מלראות את האלבום “תאילנד” של דויד מהתמיכה? מה יותר כיף מזה? מה יותר בונה צוות מזה?
    • אתv יודע איך זה בונה צוות? איבדתי חברות לחברת מפתחים שלי, לחברת Outsourcing שלי, בגלל שהצוות נבנה כל כך חזק שאנשים לא עזבו . . .
    • בגלל ז המצאתי את ה-NFT.
  • (דותן) בעצם, אתה מאבד Data - אבל בונה צוות . . . זה Trade-off . . .
  • (טרנס) אני לא מאבד Data! זה !Eventually Consistent.
  • (דותן) הבנתי . . . אתה “כאילו” מאבד Data, אבל בונה צוות - זה ה-Tradeoff של ה-Database, נכון?
  • (טרנס) תראה, בסוף -  מה המשאב הכי חשוב של חברה, אתה יודע?
  • (אלון) אנשים!
  • (טרנס) לקוחות! . . . אנשים זה Redundant, סיפרתי לך את זה בהתחלה - מה, אתה לא מקשיב לי, אני לא מבין?
    • עכשיו, אם הלקוחות מקבלים Stories של דויד מהתמיכה, שהרים לך עכשיו איזה Funjoya משהו - כשאתה עובר בפייסבוק ורואה מישהו שאתה מכיר, צעיר, ב-Funjoya, אתה לא תעבור על האלבום?
    • (אלון) נעבור, נעבור . . .
    • (טרנס) ברור שתעבור, מה - אולי עשה שם איזו פאדיחה או משהו . . .
  • אז ככה הלקוחות באים והם מבסוטים מזה שב-Database יש גם כל מיני מידע שהם לא תמיד חייבים, כמו ה-Stories.
    • ואם הם נכנסים ל-Database אז הם רואים את ה-Stories וזה מגניב.

(רן) אז אתה בעצם . . . יש פה איזשהו קונספט חדש - אתה מוכר Database עם Data, כן? ה-Data הוא כבר בפנים, כולל ה-Stories שלו . . .
  • (טרנס) תראה, אתה כבר מאוד ותיק בהיי-טק, אני מכיר . . . ויש המון חברות שפעם אתה היית כותב את המוצר, והיום אתה קונה אותו, אתה לא מתבייש, נכון?
    • נגיד - Auth0 וכל העניינים האלה, שפעם הייתי כותב והיום אתה עושה Cognito או Auth0 או משהו כאילו - שלא צריך לכתוב את האותנטיקציה לאפליקציה [להקה חדשה?] (Authentication, Application), נכון? 
    • (רן) כן . . .
    • (טרנס) פעם היית כותב דברים, ענן וזה - היום אתה Kubernetes או K16s או משהו, נכון? אתה משתמש במשהו שמנהל לך את ה-Cluster כבר, אתה לא מנהל את Clusters כבר.
  • (רן) אולי יהיה לנו זמן לגעת בסיפור שלך עם Kubernetes, ובתרומה המשמעותית שעשית שם, אבל כן - בוא נמשיך.
  • (טרנס) אז אני אומר - אותו הדבר גם עם Data!
    • כאילו - רוב ה-Data שאתה רוצה להכניס ל-Database, שלך כבר מישהו הכניס במקום אחר, מישהו כבר פתר את הבעיה.
    • עכשיו - אני מוכר לך Database עם ה-Data, אז גמרנו - אתה עכשיו כבר מסודר!
  • (רן) בעצם זה כמו לעשות Intern ל-String ב-Java או בשפות אחרות, נכון? ה-String כבר נמצא איפשהו בזכרון, אז למה לכתוב אותו שוב? אז אותו הדבר עם Data - ה-Data כבר נכתב איפשהו, למה לכתוב אותו שוב?
  • (טרנס) בדיוק! זה כמו Smart Pointers ב-C - אבל בגרסא של Microsoft, שאתה לא יודע איזה מרחב זכרון תקבל . . 
  • (רן) כן, וירטואלי כמובן
  • (טרנס) הכל וירטואלי . . . אני גם עכשיו מכניס גם Blockchain פנימה, כי ה-NFT מאפשר לי לשים על התמונות של ה-Stories מן כזה Security קטן - כל פעם שתסתכל ב-Story אני אקבל 2-3 סנט, מה קרה?

(רן) אז ב-Mongo, למעשה, אתה כבר הצלחת להכניס את היכולת לעשות Min, Max ו-Average באותה שאילתה?
  • (טרנס) אה . . . אני אגיד לך את האמת . . .
  • (רן) אנחנו זוכרים מ-Access שהיה שם איזה סיפור עם ביזור וחלוקה לתת-Databases . . . איך זה עובד עם Mongo?
  • (טרנס) ב-Mongo העניין עם ה Min, Max ו-Average זה שהם עובדים מהר-טיל - אבל הם Eventually-Consistent . . .
    • יענו: אתה מקבל Max . . שמת הרבה מספרים ואתה מקבל Max = 7? יכול להיות שאחרי שעתיים אתה תקבל Event שה-Max הוא 200 . . .  
    • (רן) אה, כמו ב-Machine Learning . . .
    • (טרנס)   . . . זה Eventually-Consistent, מה לעשות . . . Machine Learning? לא שמעתי על זה, זה חדש?
    • (רן) לא, זה מתכנס - בסופו של דבר זה יתכנס לAverage האמיתי - אתה מתחיל באיזשהו מקום, אתה מפעיל את השיטה של ניוטון, ולאט לאט זה מתכנס.
    • (טרנס) כן - ובדרך אתה לוקח 50 אלף ש”ח בחודש על השטות הזאת ואומר שרק הסטטיסטיקאים מבינים את זה.

(דותן) טרנס - תגיד, מה לגבי פורטים (Ports)? אנחנו יודעים שאתה מאוד ווקאלי לגבי Databases שפותחים פורטים וכל העניין הזה . . . יש דרכים אחרות לתקשר שאנחנו עוד לא מכירים?
גם כתוב באחד הבלוגים שלך שאתה אומר שאם אתה לוקח Database אחד, אז שווה שהוא ישתלט על כמה שיותר פורטים במחשב  . . . אתה יכול לספר לנו טיפה יותר על זה?
  • (טרנס) המערכות הפעלה - מתי כתבו אותן? מזמן . . . אז היה ספינות והיו פורטים והיה כל החרא הזה . . .
  • היום, במקום פורטים, אני הרמתי משהו חדש - קוראים לזה Docking . . .
  • עכשיו, Docking זה כמו Port, אבל Light-weight, אז על Port אחד אתה יכול להריץ 9-10 שירותים ככה בקלות, ולבטל את המגבלה שלך ל-65,000 פורטים (Ports).
  • עכשיו, Once שאתה עושה את זה - אתה יכול להתחיל לפזר את ה-Dock-ים האלה על פני כל הרשת שלך, ככה.
  • ואז - Database שקודם היית . . . הרי מה הבעיה העיקרית של Mongo? הבעיה העיקרית של Mongo זה שאתה יודע לאיזה Port לדבר
    • אתה מדבר ל-Port, כאילו - 13-אלף-משהו אם אני זוכר נכון - מדבר אל ה-Port, והמידע - אתה מצפה שהוא יגיע.
  • עכשיו, תחשוב שאתה מדבר ל-Port שלא מחובר לשם - אז אתה אפילו לא מצפה, אז נפתרה הבעיה.
    • אז אין שום בעיה, והכל עובד, ובעצם אני אומר, ככה, אתה יודע - נכון יש פורטים, ואז יש Completion Ports, שהם כאילו עובדים יותר מהר, והם כמעט ב-Kernel או לגמרי ב-Kernel או משהו כזה?
    • אז אני אומר: בוא נחסוך את ה-Kernel! מה קרה? למה צריכים Kernel?
    • אני אומר - תתקין בכל מכונת ענן שלך את הכרטיס רשת Docking שלי, אוקיי - ואז במקום לעבור ב-Kernel, אתה שולח ישר פקודות לבטריה שמחוברת, בחוט, לכרטיס רשת - ואתה מעביר את החומר פי-2 יותר מהר, כיף?
(דותן) אז בעצם ה-Database, אני קורא באתר שלך - ה-Database הוא חינם, הכל חינם - אבל הכרטיס רשת . . . אתה בעצם מוכר כרטיסי רשת, מה שפעם ככה נהגנו לקנות ואנחנו לא קונים יותר - אתה מוכר את זה ב-$400 לחתיכה . . . זה נכון?
  • (טרנס) כן - זה מודל, כמו שב-I/O פעם . . איך קוראים אותם - Google? הוציאו בהתחלה TensorFlow, ואחרי הוציאו TPU - שזה כאילו GPU של Tensor-ים - ואז כולם עפו על זה ומחאו כפיים? אז אני עושה אותו הדבר.
  • אני עכשיו הוצאתי את ה-NFT, מוציא דברים ב-NFT - אז אני מוציא פורטוקול רשת שמתאים ל-NFT, ו . . 
  • סקופ! בקרב תצא גם סדרת מעבדים, במבחר צבעים, שתומכים ב-NFT באופן ייחודי - הם יתמכו גם ב-Proof of Work וגם ב-Proof of Data.
(דותן) וכל הצבעים זה אותו מחיר?
  • (טרנס) אני עושה כמו אמאזון - יש לי בינה מלאכותית שבודקת מה אנשים אוהבים - בינתיים יש טרנד על מנומר, אני לא יודע איך זה ימשך - אבל בינתיים כל הצבעים $400
  • נראה, לא יודע - אם יתפוס משהו איזו זוית כמובן שנעלה . . .אם נראה שלא רץ נגיד שחור, אז נוריד . . .
(דותן) אצל אפל, ידוע שצבע זהב הוא מאוד, נקרא לזה “נחשק” - והוא עולה יותר . . .
  • (טרנס) מה, ה-iPhone זהב?
(דותן) צבע זהב, כן . . .
  • (טרנס) אז אני, תראה . . . סטיב - הוא היה חבר, והיו לו הרבה ביצים, הרבה-הרבה ביצים, באמת . . . 
  • הוא השתמש בכל מיני דברים שדיברנו עליהם, ככה על האלפא הוא כבר הוציא אותם ומכר אותם וזה…
  • אני מאמין שהמודל הזה יגיע גם אצלנו, אבל אתם יודעים - Customer research . . . אולי זה לא יתפוס, אני לא יודע . . . אולי לא יאהבו מעבד זהב - אתה היית רוצה מעבד זהב?
  • (דותן) כן . . . 
  • (טרנס) אלון - אתה היית רוצה מעבד זהב?
  • (אלון) אני מעדיף את המעבדים מהזהב החדש . . .  הצבע ביטקוין - הם תופסים יותר טוב עכשיו.
  • (טרנס) אוקיי . . .  רן, ואתה?
  • (רן) זהב-אמרלד (Emerald) . . . 
  • (טרנס) זהב אמרלד? 
    • דויד! תרשום בדרישה “זהב-אמרלד”, לפי סקר לקוחות שעבר עכשיו  - כולם רוצים.

(רן) רציתי קצת להתעכב על הנושא הטכני שקצת נגענו בו קודם - אתה לקחת את הפורטים, עשית להם “קונטיינריזציה” (Containerization), ארזת אותם בתוך Container - קצת כמו ש-Docker עשו ל-Virtual Machines, נכון?
בעצם לקחת כל פורט, שמת אותו בתוך פורט וירטואלי, הפכת אותו ל-Container ולזה אתה עושה Ship בתוך הענן . . . מאיפה באה לך ההברקה הזו בעצם?
  • טרנס) תראה - אני יום אחד שיחקתי עם הנכד שלי 7-בום!
    • בגלל שאני רוצה שהוא ישאר בעסק המשפחתי, אז שיחקנו את זה על מספרים של פורטים - אבל פתאום הגענו ל-65,000, והוא פתאום אמר את האחרון, 65 אלף ומשהו, לא זוכר עכשיו בע”פ - והפסדתי.
    • עכשיו - אני באמת אוהב את הילד, אבל אני תחרותי, מה אני יכול לעשות? אני לא איזה . . . 
    • אז אמרתי “בוא נגדיל!” - אז כמו שבאבן, נייר ומספריים יוצא לך נייר אז אתה אומר “אקדח!” כאילו או משהו כדי לנצח, ממציא איזה מהלך? אז אמרתי לו “לא! אנחנו בפורטים של Docking, זה לא . . . יש פה עד 1,000,753 . . .”
    • (רן) וסיימתם כבר את המשחק?
    • (טרנס) סיימנו את המשחק - רצתי מהר למחשב, הוצאתי מיד Paper על זה - 1573 Citations מאז . . .
      • כתבתי Trademark באותו Go, רשמתי פטנט בלילה - וכבר ביום אחרי זה התחלנו פיתוח.
      • הבאנו השקעה מקרנות מובילות - דרך אגב, אם מישהו מכיר, אתם נחמדים ומחפשים עבודה - דברו איתי, יש לנו השקעה טובה, מבטיחה, באיזור ה-$250,000 מובטח כבר מאיינג’לים.
      • דברו איתי - אנחנו יכולים להריץ פה משהו מטורף.

(דותן) דרך אגב, השמועה אומרת שהתחלתם את הפיתוח - ובאותו יום סיימתם פיתוח . . . זאת אומרת, בגלל שאתם Eventually Consistent, להוכיח שזה עובד זה בעצם איפשהו בעתיד . . .
  • (טרנס) כן, תשמע . . . אנחנו, בפייר - אנחנו כתבו הכל ב”חצקל”, ובחצקל כבר כמעט הכל יש לך
    • זה כמו Clojure, אבל הוא טיפה יותר מסובך . . . כמו Rust - אבל מתקמפל (Compile), כמו Go, אבל שאפשר לקרוא את זה . . .
  • (דותן) “חצקל” זה . . .?
  • (טרנס) יחזקאל!
  • (דותן) יחזקאל?
  • (רן) “חזי” . . .
  • (דותן) . . . זו שפה שהיא Pure-Functional, ישראלית, שאתה המצאת?
  • (טרנס) אה . . . אם זה לא Pure-Functional אני לא עובד, באמת.
    • מה קרה לך? מה אנחנו - ב-2014?
  • (דותן) זה אולי קשור לעובדה שגם עזרת לחבר’ה של Riak? הם כתבו ב-Erlang וזה היה Pure-Functional?
    • (טרנס) וואי, איזה צחוקים זה היה עם ה-Erlang הזה, אתה לא מבין . . . 
    • כאילו, הם באו ו . . . אתה יודע, הם פינים, משהו עם פינים . . .
    • [אלה מ-Riot? זה מסביר המון]
  • (דותן) כן . . .
    • (טרנס) אז הם באו, והביאו בקבוק של Aqua vista, לא מבין מה זה, שעפות לך העיניים ממנו . . . 
    • וישבנו ולימדתי אותם כל מיני משחקים של יזמים אמיתיים, אתם יודעים - “רולטת Equity”, “חמש דקות עם משקיע בגן עדן”, “1-2-3 דג מלוח” - זה הם לימדו אותי, כי הם פינים, הדג מלוח שלהם יותר טוב וזה . . .
    • ואז הסברתי להם - אתה יודע, אצלנו בכל החברות שעבדתי, בגלל שהיינו כמה 15-16 פאונדרים (Founders) כאלה, תמיד חבר’ה טובים, אז היה לנו מנגנון מאוד טוב לפתרון בעיות - היינו קוראים לזה “קוביית הבעיות”.
      • אתה בונה קובייה, כותב על כל צד שלה מה האופציה, מה אפשרות - ומגלגל.
      • מה שיוצא זה מה שהקוביה החליטה.
      • אז הם אמרו - באיזו שפה נכתוב את ה-Database? אז אמרנו  . . .
      • (רן) מאיפה השגתם קובייה עם 16 פאות?
      • (טרנס) לא תמיד יש 16 דעות, ואין בעיה - לקחנו מה-D&D, מה זאת אומרת? מה - אתה לא משחק D&D? מה אתה חננה? . . . 
      • (רן) כן . . .
      • (טרנס) יש גם קוביות של 20 ב-D&D . . . יש אפילו של 100 אם יש לך מתכון זהב . . .
      • הקיצר - לקחנו קובייה של 6 פאות במקרה הזה, כי הם היו ארבעה ואני אחד, וזה הכי קרוב שהיה
      • ורשמנו בהתחלה את כל השפות הסטנדרטיות, אתם יודעים - רשמנו C ו-++C ו-Rust ו-Go וכל מיני שפות שכאילו כולם מכירים, פחות או יותר - ונשארה לנו פאה אחת שעוד לא רשמנו עליה שפה.
      • רצינו שזה יהיה נכון סטטיסטית . . . שלא יווצר מצב שאנחנו מכניסים ל-AI . . . 
      • (רן) שלא תיהיה הטייה, שלא יהיה Biased . . .
      • (טרנס) בדיוק, זה.
      • ואז ישבנו, ואמרנו “מה, איזו שפה נכניס? - אולי JavaScript? אולי TypeScript?”  . . .
      • (רן) ואז מישהו זרק Erlang”?
      • (טרנס) בדיוק! ואז יוהאנסן צעק Erlang! וכולנו נקרענו מצחוק ואמרנו “וואי, אתם אוכלים סרט עכשיו שאתם לא מבינים, כאילו . . .”
      • ואז, כאילו . . . האמת ידועה, אתם מכירים - יצא Erlang . . . 
      • למזלנו הם פינים, ואת Erlang כתבו ב-Ericsson אז הם הצליחו למצוא מהנדס בן 85, שהוא אחד מהכותבים של Erlang הנכון, האמיתי, ועד היום  . . .
      • אתם יודעים - Erlang זו בכלל שפה שבאה מעולם הטלפוניה במקור, אז עד היום חצי מה-Error-messaging ב-Riak זה ”אי אפשר לנהל את השיחה הזאת” והמספר שחייגת אליו אינו מחובר זמנית” . . .
    • (דותן) יש שמועה שבעצם על כל Error קיבלת טלפון . . .
    • (טרנס) מ-Ericsson, אבל . . . מה תעשה עם Ericsson עכשיו, בחיאת? זה 3G . . . אתה יודע כמה אריקסונים זרוקים להם שם במפעל? אתה לא מבין . . . אם היינו שמים על זה NFT, היינו עושים מיליונים . . . הם בונים מזה בתים שם.

(אלון) מה שכן - אני זוכר שעשינו Benchmark-ים בזמנו על Riak, אז ה-Min, Max ו-Average שלו היה ממש מהיר . . . כאילו, שאילתה שמכילה את שלושתם, זו בעיה מאוד קשה, הרי . . .
  • (טרנס) אתה שאלת אותי קודם אם אני מכיר מישהו פנוי, אז הבנתי שאתה מראיין . . .
  • אז אתה בטח מכיר את השאלה ששואלים מרואיינים, על איך מודדים Min, Max ו-Average על String במקום קבוע? אתה מכיר בטח את השאלה?
  • (אלון) ברור
  • (טרנס) למ שלא מכיר - יש ב-LeetCode פתרון 
  • אז אנחנו פשוט יודעים שכולם אוהבים Min, Max ו-Average, אז על כל Input שאתה מכניס אנחנו מחשבים ישר, על ה-String, את ה-Min, Max ו-Average . . .
    • אבל תבקש, למשל - Median? אני מת במקום, אני לא יודע מה לעשות . . .
  • (דותן) בגדול, זה גם מאוד  . . . מצפים ממנו לעבוד ככה - הוא התחיל ב-Excel-ים ואחרי זה עבר ל-Mongo, ואני מניח שאת הפעם השלישית זה בעצם Riak . . .  זה נכון? תולדות המאסטר שלך?
  • (טרנס) כן . . . Riak היה חווייה נעימה.
  • לצערי, Basho קצת התפרקו . . . לשמחתי הם הוציאו את הכל  ב-Open Source
    • דרך אגב - בלי NFT, כי הם לא הקשיבו לי
  • אבל בדיוק הארבעה אנשים שיודעים Erlang הם עכשיו בחוג מקרמה, הם לא יכולים לטפל בקוד הזה ולהוציא את זה למוצר Open Source חזק.

(דותן) ואתה, בעצם, אחד ממובילי התנועה של “מ-Open Source ל-Out Source” - אתה אומר ש-Out עדיף מ-Open?
(רן) Out-Open Source, בשמה המלא . . .
  • (טרנס) אני, תשמע - לא יתפוס ה-Open Source הזה . . . איזה מוצר משמעותי היה ב-Open Source? 
(דותן) כמו שאתה כותב בבלוג שלך - כל המוצרים המשמעותיים פותחו ב-Out Source . . .
  • (טרנס) בטח! מה נראה לך - Linus לא החזיק איזה 5-6 או 7 אוקראינים שיכתבו לו את ה-Kernel? נראה לך שהוא מבין מה קורה שם? באמא . . . אתה יודע איזה בלגן זה ה-Kernel של  Linux? אתה לא מבין, כאילו . . . 
  • הלך, עשה את המאסטר שלו על Mimic ל-Unix, היה מבסוט, נכנס ל . . איך קוראים לזה? Half works? כתב “דרושים Low-level . . .” וישר ענו לו איזה 5-6 אוקראינים ואחד בלארוסי וכתבו לו את ה-Kernel של Linux, מ אתה חושב? . . . 

(רן) אתה בעצם לקחת הרבה מהידע והניסיון שלך, שצברת ב-Riak וב- Mongo וב-Access וב-SQLite - בועצם יישמת הרבה מהלמידה שלך על Kubernetes . . . 
לאחרונה, שמענו שיש חברות שאפילו שולחות Kubernetes לחלל על פני לוויינים . . . ספר לנו קצת על המעורבות שלך בסיפור הזה.
  • (טרנס) תראה - האמת שאני הייתי מעורב ב-Storage Model של Kubernetes
    • זאת אומרת - באחד מהם . . . זאת אומרת - זה עוד לא יצא לגמרי 100% . . . 
  • ובאו אלי מ-NASA, אמרו לי “תשמע, אנחנו רוצים לבנות רשת של חישובים של לוויינים קטנים, זה בזול, נרים הרבה קטנים  . . .”.
  • אז אמרתי להם “כמה CPU יש לכם?" - אז הם אמרו “לא יודע, 400Mhz Clock לכל לוויין, משהו כזה.”
  • אמרתי להם “צ’יק צ’אק, מה הסיפור?” - נרים להם Kubernetes, נגיע לניצול מהיר.
  • עכשיו, לא נעים להגיד, גם קצת אסור לי בגלל העו”ד שלי, אבל אני אספר לכם בכל זאת - 
  • מה לא לקחתי בחשבון? Kubernetes בעצמו לוקח הוא לוקח איזה 2-3 ג’יגה לעצמו בשביל לרוץ . . .
(רן) אה, לא נרמלת לו את האחוזים ב-CPU ובזכרון, שהוא צריך להתנהל . . .
  • (טרנס) כן . . . בדיוק.
  • אז עכשיו יש עלי איזה תביעה מאיזה . . .
(רן) אז כמה לוויינים “זומבי” מסתובבים עכשיו בחלל, שמריצים את Kubernetes ואין להם מספיק זכרון?
  • (טרנס) אז תראה - הם לא זומבי, כי הפעולות שהם באו לבצע הן ב-Queue . . .
    • דבר אחד שעשיתי נכון זה שבדר”כ ללוויינים יש Queue של ככה 10-15 Operations, כי ה-CPU חלשים . . .
    • אני אני שמתי כזה Queue ב-SQLite כי זה ב-NFT, אז למה לא?
    • אז הפעולות יקרו בסוף . . . זאת אומרת - מתישהו באמת יצלמו את האתר שיגור של הטילים האטומיים ברוסיה . . . אז זה יקח זמן, אבל זה Eventually Satellite בסוף.
  • (רן) זאת אומרת שיכול להיות שזה כבר צולם, רק שזה עוד לא נשלח?
    • (טרנס) כנראה שזה עוד לא צולם, כי רק שלשום קיבלתי את ה-Ack שזה התחבר, וצילום זה רק כמה אופרציות אחרי, אבל יכול להיות.
    • יכול להיות שנקבל את הצילום כשהטיל כבר באוויר, אבל מה לעשות - Eventually Satellite . . . זה גם כן פורמט חדש שאנחנו ממציאים, משהו חזק.
    • נגיד, לא יודע מה - אצלך ביישוב, אם אין קליטה של טלויזיה? אז אני מרים לך Eventual Satellite כזה מעל הבית, בגודל של קרטון חלב בערך - ומאותו רגע אתה באמת מתישהו תראה טלוויזיה.
  • (אלון) רעיון גאוני . . .
(דותן) תגיד - למה באמת מודדים גודל של לוויינים בקרטוני חלב? אולי תוכל לספר לנו טיפה?
  • (טרנס) תראה, זה סיפור קצת מביך, אבל . . . אתה יודע מה? רק בינינו, כן?
  • מה שקרה זה שהחבר’ה ב-NASA, כמו שאתה יכול לנחש, הם, איך לומר  . . . גיקים.
  • יום אחד . . . כל הלוויינים, הם באים בקרטונים, כמו הכל - ואנחנו באמת ספרנו את זה בקרטונאז’, קראנו לזה קרטונאז’, כי הקרטון היה אותו הדבר וזה.
  • ואז יום אחד באה כתבת אחת, די אטרקטיבית, לראיין אותנו על הקרטונאז’ הזה - והיא באה, וזו פעם ראשונה שהרבה מהם ראו אישה מקרוב
  • ואחד מהם נכנס לאטרף כזה, מאוד סקסיסטי, מאוד מגעיל - דרך אגב, הוא מאז לא עובד איתנו יותר בשום פרויקט, הוא פוטר, הפעולה תוקנה ותופעלה הוא עבר טיפול מאז וזה . . .
  • אבל בשנייה שהוא ראה אותה הוא חשב שהוא באיזה סרט שובניסטי משנות השישים, והתחיל לצעוק, ואיכשהו זה נכנס לכתבה
  • היא לא הבינה בדיוק מה הוא רוצה כי פינינו אותו מהר, אבל ברגע שמשהו תופס טרנד, אלוהים לא יוציא אותו משם.
  • (רן) מעניין, סיפורים ממש מגוונים ומעניינים . . .

עוד כמה דקות לפני הסוף - דותן, אלון, תרצו לשאול משהו את טרנס?
(אלון) כן - אני רציתי לשאול על המאמר שכתבת על ה-Database החדש, שאמרת שKey-Value Store כבר מת, וש-Key-Key-Value-Value זה הרבה יותר טוב . . . אתה יכול להסביר טיפה קצת?
  • (טרנס) כן, תראה - בתכל’ס Knuth כתב כבר הכל, ובתכל’ס אין שום דבר חדש מאז שהוא כתב, כולם חוזרים על הדברים.
  • אז הסתכלתי על ה-Key-Value Store, וזה נראה שוק די יציב - וזו בעיה אתה יודע . . . שוק יציב זו בעיה, אין מה למכור, אין למי למכור, מה תעשה? איך תמכור?
  • ואז פתאום נפלה לי הארה - וואלה, פעם היו כותבים תוכנה, אחרי זה קראנו לזה Free-Tier, אחרי זה Key-Value Store, אחרי זה קראו לזה MVVN, אחרי זה קראו לזה VVVMVV . . .כל מיני שמות וזה . . וואלה - בוא נעשה את זה ב-Database-ים!
  • כאילו, מה יקרה? הרי Key אחד אף פעם לא . . . כל מי שהשתמש ב-Mongo, יודע שבסוף אתה קורא ל-Keys שלך, את ה-Key שג’ונרט (Generate) ואז underscore איך-שאתה-צריך-לקרוא-לו-באמת_ וגרסא_ . . . 
  • ואז, בטח השאלה הבאה שלך, כי אתה נראה לי כאילו נודניק רציני, תיהיה אם זה לא בדיוק Relational Database באינדקסים . . . 
    • אז זה לא!
    • זה שונה לגמרי, כי על זה אני מקבל כסף . . . ועל ה-Relational Database ואינדקסים לא.
  • (אלון) הגיוני בסך הכל . . . נשמע הגיוני.
  • (טרנס) תראה - הרבה Keys זה טוב, כי בסך הכל ככה המידע שלך נעול . . .

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


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


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

אין תגובות:

הוסף רשומת תגובה