אם בעבר יצא לכם לשמוע שוב את פרק 68 [לא זה . . . זה, לפחות אם האזנתם ולא קראתם], אז זו כנראה הייתה טעות, כי זה היה פרק 62 [72 . . . הסתבכנו עוד יותר]. בכל מקרה, הפעם לא טעינו, ככה אני מקווה [אז זהו, ש…].
אנחנו מקליטים את באמפרס אחרי הרבה הרבה זמן שלא נפגשנו - באולפן נמצאים אלון, אני [רן] ודותן - אהלן חברים! מה נשמע?
האולפן הוא כמובן וירטואלי - אנחנו עובדים מהבתים, ברובנו - והתאריך היום, למען ההיסטוריה, הוא ה-27 באפריל 2021, ואנחנו מתחילים לחזור לנורמל [אז זהו, ש…. לא משנה].
באמפרס, למי שלא יצא לו להקשיב בשבע או שמונה השנים האחרונות, זו בעצם סדרה של קצרצרים, שבה אנחנו סוקרים חדשות טכנולוגיות מעניינות שיצא לנו לפגוש בחודש האחרון - אבל כיוון שהרבה זמן לא נפגשנו, אז זה יוצא, ככה, קצת יותר מחודש - זהו, סדרה של קצרצרים, חווים את דעתינו וממליצים על קריאה או ספריות או דברים מעניינים שמצאנו ברחבי האינטרנט[ים].
אז קדימה - בואו נתחיל.
רן -
- אני דווקא אתחיל הפעם במשהו קצת שולי - בזמן האחרון החלטתי להקדיש את עצמי למדע[!]: יוצא לי הרבה פחות לקרוא בלוגים וכאלה, והחלטתי שאני רוצה להתרכז בלקחת קורסים, אז אני יכול לבוא עם המלצות על קורסים, ודברים שיצא לי ללמוד ומאוד אהבתי . . .
- בעבר גם המלצתי על ספרים [בבאמפרס 68 המקורי . . . מקרי? עוד נחזור לזה], ובזמן האחרון אני עוסק בתחום של Data Science, ורציתי להשלים הרבה דברים, שחלקם הם Basic וחלקם קצת יותר מתקדמים, והחלטתי לבדוק כל מיני קורסים Online, ולראות מה הם שווים והאם אני מתחבר לחווייה הזאת.
- עשיתי לא מעט קורסים ב-Coursera וב-edX וב-Udemy, ורציתי להמליץ על כמה.
- אז קודם כל - יש הרבה שאני לא ממליץ עליהם - והם לא ברשימה . . . לקחתי לא מעט קורסים, שבסופו של דבר אמרתי לעצמי “אוקיי, זה לא היה שווה את זה”
- אבל יש כמה שכן - אם זה מבחינת התוכן עצמו, כשתוכן כמובן זה משהו אינדיבידואלי, זאת אומרת שאם זה רלוונטי לכם תלכו על זה ואם לא אז לא
- אבל גם בעיקר מבחינת אופן ההגשה של הקורס: קורסים שהם פשוט מאוד מושקעים - חלקם צולמו במיוחד לפלטפורמה, זאת אומרת שלא “סתם” שמו מצלמה בכיתה ואחר כך שידרו את זה אלא צולמו ממש לפלטפורמה ואפשר לראות - משתמשים שם באמצעי המחשה שהם הרבה יותר נוחים ונגישים.
- וחלקם לא . . . לא צולמו במיוחד, אבל עדיין הם טובים.
- אז כמה קורסים שרציתי להמליץ עליהם . . .
- אז קודם כל - יש כמה קורסים של ה- Imperial College London, שחלקם הם מאוד Basics, כמו היזכרות באלגברה לינארית או היזכרות באינפי (באנגלית קוראים לזה Multivariate Calculus), ונושאים כמו סטטיסטיקה - Principal Component Analysis (PCA) . . .
- יכול להיות שאת חלק מהדברים יצא לכם ללמוד בתואר הראשון, אם עשיתם
- אני למדתי את חלקם, ובחלקם פשוט רציתי להיזכר [ד”ש לאביב צנזור ולעליזה מלק]
- והם מוגשים בצורה מאוד יפה - בעצם, כל הקורסים שראיתי עד היום מ-Imperial College London מוגשים בצורה מאוד מאוד יפה, גם מבחינת העריכה של התוכן וגם מבחינת הפרזנטציה, והייתי מאוד ממליץ עליהם.
- קורסים אחרים שלקחתי, והייתי רוצה להמליץ - קורס בסיסי בהסתברות וסטטיסטיקה מהרווארד, שנקרא Harvard STAT110x
- בקורס עצמו אין הרבה קטעים מצולמים - הוא ברובו קריאה - אבל לדעתי הוא מוגש בצורה מאוד יפה
- הרבה מאוד דברים מוגשים בצורה… גם מתימטית טובה אבל גם סיפורית טובה, עם לא מעט אנימציות ואמצעי המחשה אחרים שאני מאוד אהבתי, ואני חושב שזה קורס מאוד מושקע.
- ועכשיו אני עושה קורס שגם הייתי רוצה מאוד להמליץ עליו, של מרצה בשם Professor Daphne Koller, שנקרא Probabilistic Graphical Models 1: Representation
- הקורס מכסה דברים כמו רשתות בייסיאניות ומודלים מרקוביים ודברים בסגנון הזה, ויש כמה דברים מעניינים על הקורס הזה -
- (1) הקורס כנראה לא צולם במיוחד ל-Coursera, אבל למעשה Daphne Koller, שכמו שאתם בטח מבינים מהשם שלה היא ישראלית לשעבר שהיום מלמדת בסטנפורד - אז זה קורס שבעצם נלקח מסטנפורד.
- אתם יכולים הרבה פעמים לבחור קורסים מאוניברסיטאות שביום-יום לא הייתה לכם גישה אליהן, וזה נחמד.
- חוץ מזה [2] גם קצת קראתי והבנתי שהיא ה-Co-Founder של Coursera, יחד עם Andrew Ng - פרט טריווייה שלא ידעתי ומעניין להגיד.
- היא בעצם הייתה באיזשהו שלב גם ה-CEO של Coursera, תוך כדי העבודה שלה בסטנפורד.
- [ויש שיחות סופר מעניינות של Lex Fridman עם שניהם - כאן Daphne Koller: Biomedicine and Machine Learning וכאן Andrew Ng: Deep Learning, Education, and Real-World AI]
- זהו, אז אלו ככה כמה קורסים שאספתי וחשבתי שאמליץ עליהם . . .
- (דותן) לכולם יש וידאו? או שרק לסטטיסטיקה אין וידאו, זה מה שאתה אומר?
- (רן) לכל אלה שרשמתי פה, כל החמישה, שכמובן יהיו ב-Show notes [כמובן . . .], יש בהם וידאו
- בזה עם הסטטיסטיקה יש הרבה פחות וידאו, זאת אומרת - רובו בכתב.
- כל השאר הם בעיקר וידאו.
- אבל מה שכן - אחד מהדברים שעוזרים לי ללמוד זה שבסוף כל פרק יש תרגיל, ובהרבה מקרים גם מקבלים את הפידבק - זה תלוי אם אתם משלמים או לא משלמים על המנוי.
- אני בחרתי שלא לשלם, כי אני לא באמת צריך את ה-Certificate - זה סתם ככה לידע כללי:
- אם אתם הולכים לעשות קורס באחת מהפלטפורמות האלה, אפשר ללכת בשני מסלולים - מסלול “משולם” ומסלול “לא משולם”.
- אם אתם משלמים, אז אתם גם מקבלים את כל החבילה - שזה בדרך כלל אומר מבחנים וציונים
- אבל אם אתם לא משלמים אז אתם עדיין מקבלים את כל התוכן - ומה שאתם לא מקבלים זה את אותו Certificate, משהו שאתם יכולים להציג ב-LinkedIn
- בטח יצא לכם לראות, יש אנשים שמציגים את זה.
- אני בחרתי שלא כי אני לא צריך את זה, אני לומד את זה בעיקר בשביל העניין והסקרנות שלי
- ברוב המקרים גם התרגילים זמינים למי שלא משלם.
- בקיצור - בסוף כל פרק יש איזשהו תרגיל, כשחלק מהתרגילים הם בתכנות, זאת אומרת ב-Python, ב-R, ב-Octave . . . יצא לי לכתוב בכל מיני שפות כאלה בזמן האחרון.
- חלק מהתרגילים הם תיאורטיים לגמרי, זאת אומרת - מתימטיקה וכאלה -אבל זה נחמד ועוזר, ככה, לשים אותך בפוקוס ולהבין מה חסר לך, אם אתה צריך קצת לחזור על החומר.
- (דותן) תגיד - כמה זמן אתה משקיע בזה? אתה יכול להעריך כמה זה דורש, בשעות?
- [זה בקורס על effort estimations, לא היה ברשימה . . .]
- (רן) אני בדרך כלל משקיע כמה שעות בשבוע, תלוי בשבוע - לפעמים אני לומד בלילה, לפעמים אני קם מוקדם בבוקר, לפעמים בסופ”ש כשיש זמן . . .
- זה נורא אישי, זאת אומרת - החל משעתיים בשבוע ועוד 10 שעות בשבוע, תלוי בשבוע
- אבל אני חייב להגיד שיש פה המון סיפוק - עצם זה שזה מובנה, ואתה ככה עובר שלבים ויש מבחנים ואתה מצליח בהם וכל זה . . .
- זה כאילו קצת נחמד לחזור להיות סטודנט, ובעיקר לקבל את הפידבק של . . . “סיימת שלב!”
- זה מגניב להחזיק Spreadsheet ולסמן V על הדברים שעברת.
- זהו, אני יכול גם להגיד שהחווייה היא, מה שנקרא “Mixed” - לא כל הקורסים כל כך טובים, יצא לי לעשות קורסים של מרצים עם מבטא שקשה מאוד להבין
- זאת אומרת - לא כל האוניברסיטאות הן אמריקאיות או בריטיות, חלק מהאוניברסיטאות מגיעות ממקומות שונים באירופה או במזרח, אז לא תמיד אתה מצליח ממש להבין מה המרצה אומר.
- וגם מבחינה מבחינה מתודולוגית זה לא תמיד מועבר בצורה הכי מדהימה.
- פה הוספתי את אלו שכן אהבתי . . .
- (אלון) !Back to School . . .
- (דותן) אחד האתגרים זה כל “המבניות" של זה, כי נגיד שמישהו אומר לי “יש לך 6 שעות, וכשאתה מסיים להשקיע אותן אז סיימת רענון של אלגברה לינארית” אז אני מוכן למצוא את הזמן ולהשקיע אותן.
- אבל אם אני מתחיל איזשהו קורס, ואז עובר שעתיים וזה גרוע, אז אני מחפש את הקורס הבא, ואז אני מנסה עוד שעתיים, וזה גם גרוע . . .
- ואז בסוף זה די . . .
- (רן) נכון, אז היו . . . אני חושב שצריך פה חוויות טובות, אז רציתי להמליץ על כמה שהיו לי חוויות טובות איתם.
- אני כן . . . היו לא מעט קורסים שהתחלתי וזה לא שבסופו של דבר החלטתי שהחומר לא מעניין אותי, אלא שהחלטתי שפשוט המרצה לא מעביר את זה טוב או שהקורס לא מעודכן וכאלה, אז חיפשתי אלטרנטיבה.
- בחלק מהמקרים מצאתי אלטרנטיבה ובחלק מהמקרים לא, אבל יש מספיק ידע בעולם, ככה שלא חסר מה ללמוד, ולדעתי זה מאוד מספק.
- זה כיף, זאת אורמת, כשאתה מצליח ללמוד משהו בלי הלחץ הזה של המבחנים ואתה יודע - של סמסטר רגיל והכל
- אתה פשוט עושה את זה בשביל הכיף, ואני מאוד נהנה מזה.
- [1+]
- (אלון) בדיוק חשבתי על זה שהם צריכים להפוך את המודל העסקי - מי שלא משלם אז שיהיו לו מבחנים וכל הלחץ, ומי שמשלם יכול לעשות את זה ב-Easy, בכיף
- [קוראים לזה “לקנות תואר”, זה מודל עסקי ותיק ומוכח . . . ]
- (רן) כן, לגמרי
- אז זהו - ותוך כדי גם התחלתי לפתח אינסטיקטים של איך לזהות מה זה “קורס טוב”, כדי שאם אני ארצה “ליפול מהקורס” [תרגום יפה של Drop . . .] מוקדם אז אני לא אבזבז יותר מדי זמן עליו.
- אז פיתחתי ככה כל מיני אינטואיציות, אבל זה בהחלט משהו ש . . .
- זאת אומרת - יש איזשהו ניקוד ופידבק על הקורסים, אבל אני חייב להגיד שזה לא תמיד כל כך עקבי, אני חושב שיש לא . . . יצא לי לבחור לא מעט קורסים עם ניקוד גבוה, שבסופו של דבר, לפחות לטעמי, התוצאה לא הייתה מדהימה
- אבל מצד שני - זה לא שנרשמת לאוניברסיטה ועכשיו אתה חייב לעשות את המבחן בסוף - מקסימום אתה נושר וזהו, ממשיך לדבר הבא.
- אז ככה שאין לי המון המון אייטמים כאלה פזורים, כמו שבדרך כלל יש לי, כי את רוב הזמן אני משקיע בדברים האלה - אבל כן יצא לי להיתקל במשהו אחר, בנושא אחר שדי, ככה, קצת שעשע אותו וקצת עשה גלים ויכול להיות שגם לכם יצא לקרוא על זה - סוג של “מיני מלחמה” [ביטוי מעניין במועד שחרור הפרק…] בין חברת Signal לבין חברת Cellebrite
- שהיא, דרך אגב, חברה ישראלית שמספקת תוכנה שבעיקר משמשת גופים ממשלתיים ובטחוניים, שבאמצעותה אפשר לקרוא נתונים מתוך הטלפון.
- אם, לצורך העניין, שוטר מקבל צו מבית משפט כדי לקרוא את הנתונים על הטלפון שלך [וכמובן שאך ורק במקרה זה] - אז הם יכולים להשתמש בתוכנה של Cellebrite כדי באמת לקרוא, בלי שיתוף הפעולה שלך.
- לצורך העניין - לפתוח את הנעילות או מה שצריך . . .
- באיזשהו שלב הם באו והכריזו שיש להם עכשיו גם תמיכה ב-Signal - הם בכל פעם מוסיפים תמיכה בעוד ועוד אפליקציות,
- ו-Signal, למי שלא מכיר, זו תוכנה, אפליקציה ל-Instant Messaging, כמו WhatsApp ו-Telegram ואחרים . . .
- (אלון) רק עם באגים . . .
- (רן) קודם כל, זו תוכנה יחסית צעירה - אבל הפוקוס שלהם הוא Privacy ו-Security, אוקיי?
- הם כנראה לא מדהימים בפיצ’רים, לא up to par עם WhatsApp או עם Telegram, אבל הם . . . לפחות ה-Claim-to-fame שלהם, זה Privacy ו-Security.
- אז כש-Cellebrite באו והכריזו שעכשיו יש להם גם תמיכה ב-Signal, כלומר - אם שוטר תפס את הטלפון שלך ויש לך הודעות ב-Signal שלא היית רוצה שהוא יראה, ועכשיו פתאום הוא כן יכול לראות, אז זה כמובן מדאיג את החברה.
- אז מה שעשה מנכ”ל החברה - למעשה, הוא פירט בבלוג-פוסט מאוד משעשע, שכולל גם איזשהו סרטון וידאו, קצת היתולי אני חייב להגיד - הרבה מאוד רגישויות או באגים, שקיימים ב-Cellebrite עצמה, בתוכנה של Cellebrite.
- התוכנה של Cellebrite מתוקנת על Windows, והוא בא וסקר את ה-Vulnerabilities, את הפגיעויות . . . ככה אומרים בעברית? ה-Vulnerabilities השונים של התוכנה, ובגדול - די קטל אותם . . .
- וכאילו בא ואומר - “חבר’ה, אם אתם מתעסקים ב-Security, בואו קודם כל תאבטחו את עצמכם”.
- אני לא יודע עד כמה הדברים שהוא אמר מדוייקים או לא, אבל אני חייב שהגישה הזאת . . . אותי לפחות זה קצת הצחיק, אבל אני חושב שזה . . . זה לא עניין מצחיק לכשלעצמו, אבל הבלוג-פוסט הזה נכתב בצורה די משעשעת לדעתי.
- בכל אופן, אחד הדברים המצחיקים הנוספים שהיו שם זה שהוא בא ואמר “במקרה נפלה ממשאית ערכה של Cellebrite” . . . הוא הראה תצלום של ערכה של Cellebrite והוא אמר ש“במקרה הלכתי ברחוב לתומי ונפלה ממשאית והרמתי” . . . אשכרה ככה, כאילו הוא לא מכיר את הביטוי הזה בעברית.
- וצילם את הערכה הזו של Cellebrite, ערכת חומרה, שבאמצעותה מתחברים לטלפונים מהסוגים השונים.
- זהו, אני חשבתי שכל הסיפור הזה הוא קצת משעשע - כמובן שאני מניח שלא Signal ולא Cellebrite באמת לוקחים את זה בקטע הומוריסטי - מבחינתם זה ביזנס אמיתי - אבל אני חייב להגיד שלי, כקורא מהצד, אני מאוד השתעשעתי לקרוא את כל הסיפור הזה.
- (אלון) מה שמצחיק זה הקטע הזה ש”נפל ממשאית” זה כאילו . . . . כמה הוא שילם למישהו שיפיל את זה מהמשאית, זה הקטע המעניין . . . איך עושים את זה, זה הקטע המעניין, כי לא רגיל שציוד ייפול ממשאית . . .
- (רן) אני שואל את עצמי האם הוא כתב בתמימות שבמקרה זה נפל ממשאית, או שגם פה יש איזושהי אירוניה . . . אני לא יודע, אבל בכל אופו, כן . . .
- אני לא יודע האם הביטוי הזה נכון גם באנגלית, “נפל ממשאית” [כן, זה ביטוי מתורגם לעברית], אבל זה אשכרה מה שהוא כתב.
- (אלון) זה משעשע . . . מה שכן, כדי לשים קצת דברים בפרופורציה, חוץ מזה שזה משעשע וזה, ויש להם חולשות בתוכנה - התוכנה שלהם, למיטב הבנתי, זה רק המכשיר . . . גם אם פרצת, אין נזק אמיתי, אז אין פה כל כך אפקט.
- (רן) לא, הוא כן מסביר . . . אתה מתכוון האם הוא פרץ ל-Cellebrite? לא - מה שהוא אומר זה שאם אתה יכול, לצורך העניין, אתה יכול לשים קובץ בתוך Signal, או בתוך אחת מהאפליקציות האחרות ש-Cellebrite תומכת בהן, והקובץ הזה למעשה יוכל לשנות את הדאטה ש-Cellebrite קוראת
- אתה תוכל, לצורך העניין, להסתיר ככה דברים, או אפילו לשנות דאטה ש-Cellebrite קוראת מטלפונים אחרים, ככה שכן יש פה איזשהו נזק.
- זאת אומרת שזה פוגע באמינות - לטענתו, שוב, אני לא יודע אם זה נכון או לא, אבל הוא טוען, לכאורה כפי שאומרים - הוא טוען שאם אתה יודע מה שאתה עושה, אז אתה יכול למעשה לנטרל את Cellebrite, או לגרום לה לדווח על דברים שהם לא נכונים, למחוק דאטה, לגרום לזה שהיא לא תראה דאטה וכו’.
- (אלון) כן, אבל להבנתי את צריך קודם כל לעשות את זה על Cellebrite, זאת אומרת שאתה לא יכול להיות מנותק . . . אתה לא יכול להגן על הטלפון שלך בלי המכשיר, להבנתי.
- (רן) אתה צריך לשתול קובץ על הטלפון שלך, ואז לתת לשוטר לקרוא את הטלפון שלך - ואז השתלטת לו על התוכנה . . . זה ה-Scenario שהוא מתאר.
- שזה לא . . בוא נגיד שזה אולי לא Attack surface מאוד רחב, זה לא שאתה יכול להתחבר מהאינטרנט ולהתחיל לסרוק והלפגיז את כולם.
- זה דורש גישה פיזית והכל.
- אבל - בכל אופן, אני חושב שזה לא כל כך נעים מבחינת PR ל-Cellebrite.
- אוקיי, נמשיך הלאה . . . אלון?
- (אלון) זהו? היית קצר היום, אבל לקחת את האייטם הכי מגניב . . .אבל בסדר.
- [עוד נחזור להערה הזו . . .]
אלון -
- אז משהו שנתקלתי בו, קצר מאוד האמת - Back to basic - how tail call optimization works
- קודם כל, Tail Call Optimization זה כשה-Complier הופך רקורסיות ללולאות For, מאחורי הקלעים - יכולים לעשות אופטימיזציה אם זה התנאי האחרון, מדעי המחשב 101 כזה . . .
- אבל יש פה ממש, למי שרוצה, את הפירוט אסמבלי (Assembly) - איך זה מתקמפל לזה.
- ממש קצר וממש Back to Basic - למי שאוהב את הדברים האלה אז זה חמוד ונחמד קצת להתרענן.
- (רן) זה ספציפית לשפה מסויימת או . . . ?
- (אלון) זה ספציפי ל . . .לא, נראה לי שפה זה ++C בדוגמא, אבל . . .
- באופן כללי זה אותו הקונספט בהכל, אז זה לא כזה עקרוני, נראה לי, אבל בטח יבוא מישהו ויגיד לי שזה לא בכל השפות ככה . . .
- בטח גם נכון . . . שפות עם Interpreter למשל, אני לא יודע אם הן יודעות לעשות את זה, או לפחות חלקן.
- נושא הבא - Go cheat-sheet . . . אז מה שנחמד זה שיש פה דף, עמוד, עם איזה-300 . . . - 261, למען האמת - דברים ש”איך עושים ב-Go”.
- איך עושים לולאת For? איך עושים Trim? איך בודקים אורך של String? לחשב דברים וכל מיני דברים . . .
- כמעט כל מה שאתה צריך לעשות בשפת תכנות, שהוא מעבר לדברים מתוחכמים.
- ממש - שתי שורות על איך עושים את הפונקציה, או בשורה אחת - ממש Stack overflow בעמוד אחד, כנראה ל-99% מהדברים שאנשים מחפשים.
- ממש נחמד - גם ,ככה, למי שרוצה לחזק את עצמו בשפה או לחזור לשפה אחרי הרבה זמן - פשוט לעבור על זה זה לדעתי לוקח כמה דקות . . .
- (דותן) אבל אני חושב שבכל שפה זה נחמד . . . כאילו, אני יכול להכניס שפה . . . אני תוהה אם הכיסוי של כל ה-Idioms הוא רחב כמו . . .
- (רן) כן - אז הURL הוא Programming-Idioms.org, ואז יש לך מתחת כזה [סרגל] לבחור שפות - כמו את Go שאלון הראה, אבל יש גם שפות אחרות.
- (דותן) יש כאן גם קטע של השוואה שהוא נחמד - אם אני כותב משהו, ואני רואה את כל השפות, ואז . . .
- (אלון) כן - אפשר להשוות, ולראות כמה זה נורא בשפה מסויימת . . .
- בקיצור - זה ממש חמוד, אם אתה “בא שנייה” לשפה או נכנס לאיזשהו קטע קוד בשפה אחרת, אתה יכול שנייה להסתכל.
- ויש פה את Ruby, אהובת ליבי, שמה שנחמד שם ב-Cheat-sheet זה שזה הכל בשורה אחת בערך, אבל. . .
- זהו, אני חושב שבכל השפות יש את כל הדוגמאות - אלו אותן דוגמאות בכל השפות, אז ממש נחמד.
- (דותן) הייתי מוסיף לזה קצת סטטיסטיקה - הייתי כותב, נגיד, “כמה חסכונית השפה”, לפי מה שאמרת, ואז . . .
- (רן) חסכונית במה?
- (דותן) בכתיבה . . . נגיד, כתבתי פה, סתם - Http, file, הגעתי ל-Load . . . נגיד שמישהו ירצה Http Get, וקורא קובץ . . .
- עכשיו, אם אני מדפדף בין השפות, זה הופך להיות נחמד, כי אני יכול להסתכל כמה זה רע . . .
- (רן) אבל פה אני חייב להעיר - זאת אומרת: שפה שהיא over-verbose אז נכון, יש פה טעם לפגם
- מצד שני - שפה שהיא קצרנית מדי יכולה לפגוע לפעמים בקריאות - ע”ע Perl או אחרים.
- המדד שאותי באמת יעניין, שהוא אמנם מדד סובייקטיבי, אבל אותי הוא מעניין - זה מדד הקריאות, ה-Readability, של השפה.
- שוב, זה משהו שהוא סובייקטיבי, אבל אני חושב שזה המדד הנכון, זאת אומרת - מספר ה-Characters, או מספר השורות . . . לדעתי זה קצת פחות חשוב מהיכולת שלך לתקשר את הכוונה שלך למפתח הבא.
- (דותן) כן, זה באמת מביא אותך לאיזור במפה, ואז אתה צריך להחליט עד כמה זה קריא.
- (אלון) תראה, יש על זה הרבה דברים, אתה יודע : קוד קצר, באופן כללי - אנשים זוכרים אותו והוא יותר מובן.
- אם תכתוב קוד בעשר שורות במקום בשורה אחת, אז יש ויכוח על עד כמה השורה הזאת מסובכת, אבל ככלל אצבע, קצר יותר קל לנו לפענח ולהבין בראש, ולא צריך להתחיל לזכור גם מה היה לפני שתי שורות ודברים כאלה.
- אז בגדול - קצר זה טוב [?]
- ואז הגיעו Perl, כמקרה קצה של “בסדר, בואו נוסיף תווים” . . .
- (רן) כן, תראה יש עוד דוגמאות - Perl זו דוגמא אחת ,אבל אתה יכול למצוא את זה ב-Python וב-Clojure ובעוד שפות אחרות.
- שפות נותנות לך לעשות כל מיני דברים מתחכמים - יש לזה לפעמים איזושהי אלגנטיות, אבל לפעמים זה גם יכול לפגוע בקריאות.
- אני חושב שזו איזושהי עקומה, שיש לה מקסימום באמצע - זאת אומרת שאם אתה שם על ציר X את מספר השורות ועל ציר Y את רמת הקריאות, אז המקסימום הוא לא בקצה הימיני ולא בקצה השמאלי - לא בהמון שורות ולא במעט שורות, אלא כנראה איפשהו באמצע.
- יכול להיות שקצת נוטה ימינה, אבל הוא בטח לא בקצה הימיני.
- ובסופו של דבר - כן, זאת אומרת, אני חושב שהאתגר המשמעותי ביותר בכל זה הוא איך למדוד את זה.
- אגב, אחת מהמטרות, כשמישהו תכנן את Go, לאנשים שתכננו את Go, הייתה לייצר שפה קריאה ולא בהכרח קצרה.
- היו כל מיני הצעות לשינויים בשפה, שהיו עושים . . . לצורך העניין For-loops יותר קצרים וקומפקטיים, שזה משהו שבכלל לא קשה לעשות, אבל מתוך בחירה מודעת באו ואמרו “אוקיי, אנחנו רוצים שתיהיה רק דרך אחת לעשות For Loop, אנחנו לא רוצים לייצר עוד דרך, אפילו שהדרך הזאת קצת ארוכה ולא קומפקטית, כי אנחנו חושבים שזה תורם יותר לקריאות של השפה”, ולכן הם נשארו איתה.
- יש כאלו שטוענים ש-Go היא קצת “וורבוזית” (verbose), ואני מסכים - אבל זה מתוך בחירה.
- (אלון) ברור שיש כל מיני דעות, אני חושב ש-Scala זה הקיצון השני של איך אפשר לעשות . . . לתת לשלושה מפתחים לכתוב לולאה ויהיו לך שלושים בערך, אז זה הקיצון השני.
- אבל כן, יש איזשהו מנעד.
- (רן) אוקי . . . יאללה, Next?
- (אלון) כן, אז Reverse Engineering, אבל הפעם התחום של ה-Covid [היה פעם כזה דבר] . . . מישהו כתב מאמר על Reverse Engineering the source code of Pfizer SARS-CoV-2 Vaccine
- בקיצור - מדובר כאן על 4,284 Characters, לכל הקידוד של ה-RNA, וזה מתחיל קצת להיכנס למה שעשו בכל קטע [מקטע], עם קצת נסיון לפענח מה הדברים עושים.
- לא יותר מדי ארוך, וזה ממש חמוד שהכל ניהיה בעצם תוכנה . . . כל דבר.
- (דותן) אני מה-זה-לא-מצליח להבין את זה . . .
- (רן) לא, תקשיבו - יש בלוג-פוסט מדהים בעברית, על אותו נושא בדיוק - בעצם, לקח את הפוסט הזה באנגלית, שהוא סופר-סופר-טכני וגם קצת על ביולוגיה, וכתב אותו בעברית.
- זה לא מה שמקושר פה, יש פה כל מיני תרגומים - זה לא התרגום הזה לעברית אלא בלוג-פוסט אחר, תיכף אני אחפש אותו, של רועי צזנה [מלך!], אם אני לא טועה.
- רועי בא ומסביר בדיוק מה הוא עשה פה, בצורה מאוד מובנת ויפה, אז אני ממלית לקרוא אותו - באמת, קריאה טובה.
- הבלוג-פוסט הזה פה שקישרת, אלון - הוא מעולה אבל הוא סופר-סופר טכני, ודורש גם לא מעט הבנה בביולוגיה.
- אבל אני מסכים איתך גמרי שזה לתכנת את גוף האדם, וזה קטע מגניב לאללה.
- (אלון) תראה, אני שמתי פה משהו טכני, כי באת לי עם קורסים אקדמאיים שעשית בהתחלה, ורציתי לראות אם אתה מדבר ויודע או סתם מדבר . . .
- (רן) קראתי, קראתי, כן . . . קריאה טובה.
- (אלון) זה קשוח, כן
- (רן) מתי המבחן? [רגע, שילמת?]
- (אלון) הקיצר, המאמר הזה קשוח, אני מסכים איתך - אבל הוא מגניב, לא צריך להבין הכל בשביל להבין כמה שהוא מגניב, אבל אם יש אחד יותר פשוט להמונים אז זה יהיה . . .
- (רן) אני ארפרר (Reference) אליו, כן - אני אחפש ואפנה אליו
- [הנה - שפת התכנות של החיים: מה נכלל בחיסון הרנ"א שמיליון ישראלים כבר קיבלו, ואם כבר ז אולי גם זה, על הכותב - עושים היסטוריה מארחת: מדוע עתידנים כושלים בניבוי העתיד? עם ד"ר רועי צזנה]
- (אלון) דבר הבא - יש איזה קטע כזה שלמי שכותב VS Code ב-Go יש בעיה לעשות evaluation ל-Expressions, ומסתבר שיש לזה תמיכה
- פשוט צריך לעשות Call לפני ה-Debug . . .
- חסכתי טיפ של אלופים -שמתי לינק ל-Stack Overflow, סתם . . . נתקלתי בזה והרבה לא הכירו, אז אמרתי “בוא, נשים”.
- מישהו כתב בלוג-פוסט חמוד - How I cut GTA Online loading times by 70%
- יש GTA Online, שרץ ב-Browser, ובקיצור - לקח לזה המון-המון דקות להיטען, והבחור הזה התחיל לנסות להבין מה הולך שם.
- יש לזה את ה-Source Code פתוח
- בקיצור, הכל התחיל ונגמר באיזה Parser, והוא מסביר פה איך הוא מצא הכל, אבל בסוף זה להחליף איזה json Parser באיזו ספריה אחרת - וחסך איזה 7 דקות, אם אני זוכר נכון . . . משהו כזה.
- 6 דקות לדעתי
- בקיצור - חמוד לאללה כל מה שהוא עשה פה, וזה מטורף כמה זמן אפשר לחסוך עם Parser.
- (דותן) GTA Online זה אילו GTA Open Source כזה? או שהוא עשה . . .
- (אלון) זה רץ ב-Browser, והוא Open Source למיטב זכרוני . . . לא זוכר בעצם.
- (דותן) אז כאילו כשהוא החליף את הספריה, אז זה פשוט להחליף ספריה . . .
- (אלון) הם אחרי המאמר הזה לקחו את השינוי שלו ובאמת מימשו את זה גם . . . הם החליפו את זה, וזה חסך לכולם כמה דקות ארוכות של טעינה.
- לא איזה כמה שניות - אני מדבר פה על משבע לדקות לפחות משתי דקות . . . . משהו כזה.
- (דותן) אני אהבתי את כל הפירוק לגורמים - זה מאוד ויזואלי וגם הוא נותן הערות על גבי העורך, שנדע למצוא את הקטע הזה.
- (אלון) ולאייטם הבא - וזה האייטם האחרון שלי בהחלט, כי אחריו אי אפשר לעלות יותר גבוה: אני עושה פהDrop-Mic וזהו - זה הפרק האחרון, לא תראו אותי יותר, זה פרק אחרון - GitHub to VS Code:
1. Go to any repo you are interested in on GitHub.
2. Replace "github" with "github1s" (one + s) in the browser address bar.
3. Enjoy browsing code like you would in VS Code.
For exmaple: https://github1s.com/gofiber/fiber
- זהו, סיימתי, אין מפה יותר לאן לעלות . . .
- (דותן) תחברו קוד פרטי, תערכו . . .
- (אלון) לא נסיתי, לא יודע, כי צריך את האותנטיקציה (Authentication) של ה . . .
- (דותן) יש פה, כן
- (אלון) אז קוד פרטי זה . . . כל אחד והמלצתו.
- (דותן) לקח לי הרבה זמן לראות מי מאחורי זה בכלל . . . אתה יודע מי מאחורי זה? איזו יישות?
- (אלון) בקיצור - זה אחד הדברים הכי מגניבים שיש . . .
- (רן) אני לא רואה פה תמיכה ב-VI . . . איפה פותחים לו Issues?
- (דותן) אין פה . . .
- (אלון) כן, כי זה נורא נוח - יש את ה-Tree בצד וה-Syntax Highlighting וזה כותב ואפשר לעשות עם זה הכל.
- אפשר להוסיף לזה Extensions אפילו, כי זה ממש VS Code, זה VS Code online . . .
- (דותן) מה אתה אומר? גם Extensions? זה משוגע . . . עם Extensions זה משוגע
- (אלון) הם לקחו את כל ה-VS Code online . . . אפילו אפשר להריץ את זה ולדבג (Debug) את זה, תוך כדי . . .
- (דותן) אז נגיד Extensions הוא מתקין איפה? בשטח של Chrome הוא מתקין את ה-Extensions? לא ברור כי בסוף ה-Extension צריך איזשהו Disk Space כלשהו . . .
- (אלון) שמע, זה נראה לי Open source, אז אפשר לפתוח את זה עם . . .
- (רן) כן , התקנתי תמיכה ב-VI . . . סבבה, יש Extensions . . .
- (דותן) באמת?! וואו . . .
- (אלון) טוב, חברים - אני חושב שאפשר לסיים את העונה אחרי האייטם הזה [או לכל הפחות להעביר לאילת . . . ] - תודה רבה לכם, אנחנו נחזור בעונה הבאה עם דותן . . .
- (רן) וזה גם נשמר בין רילואדים (Reload) . . . אם אתה עושה Reload לדף זה נשמר.
- אני באמת לא יודע איפה הוא מתקין את זה, אבל זה מתקין.
- (אלון) יכול להיות שהוא רק מסמן שהוא מתקין לך? ואז הוא מביא לך כאילו גרסא עם זה? יוצרים כאילו ב-Cloud מלא גרסאות ואתה רק מקבל . . . לא יודע.
- בקיצור - זה ממש ממש ממש ממש מגניב, אם לא אמרתי את זה עדיין.
- (דותן) טוב . . . נשמע כמו מתכון טוב לכל דבר, הדבר הזה . . .
- (רן) כן . . . דרך אגב, אות’נטיקציה (Authentication) - יש לך בצד שמאל למטה איזשהו אייקון, שאתה יכול ללחוץ עליו, אז אתה יכול לעשות אות’נטיקציה באמת ל-GitHub
- אם אתה ממש רוצה להשתמש בזה כ-Editor, כ-Frontend ל-GitHub, וגם לשלוח Pull-requests וכו’, אז אתה יכול לעשות את זה.
- אתה צריך לעשות Log-in, ואז אתה יכול ממש להשתמש בזה.
- (אלון) כן, ואתה יכול, כאילו, להפוך את זה ל-One-stop-shop שלך להכל כאילו, זה מטורף . . .
- אני משתמש בזה כדי לראות קוד ב-GitHub, כל פעם שיש איזה Repo, יותר נוח לפתוח אותו ככה.
- עושה את החיים הרבה יותר טובים, כשאתה רוצה ל-Browse קוד, ולא להוריד אותו ולהתחיל לחפור
- (רן) בכל ה . . . נגיד Go-to definitions ו-Find וכל זה - עובד?
- (אלון) כן, הכל עובד - אתה יכול . . . Command B . . . פשוט . . . הקיצר - VS Code, בתוך ה-Browser
- וזה עובד מהר! זה די, כאילו . . .
- (דותן) אני עדיין בין “מטריד” לבין “מדהים” . . . .
- (אלון) למה מטריד? זה רק מדהים . . . למה מטריד?
- (דותן) ?How it works . . . יש כזה מסמך . . .
- (אלון) לא ברור, אבל זה עובד.
- בקיצור - חברים, זה הדבר הכי טוב שנתקלתם בו, באמת, מאז החיסון קורונה . . . . בבקשה.
- (דותן) ממש . . . להתחסן ולהתקין, אתה אומר? אתה ממליץ?
- (אלון) כן, זה עובד יותר טוב מה-5G, יש לזה קישוריות . . .
- (דותן) הסר והתקן . . .
- (אלון) זהו . . דותן! במעבר חד, נעבור אליך . . .
- (דותן) קשה להתעלות על זה . . .
- (אלון) אני אגיד לך - אפשר להחליט שמעכשיו זה פשוט פרק 73 וחצי . . . [כן, כי לא הסתבכנו מספיק עם המספור להפעם . . . ] - ונמשיך, כי אז כאילו תיהיה לך התחלה חלקה.
- (דותן) נכון, טוב . . . בנעימה עלובה זו אני אמשיך באייטמים הפחות מרגשים . . . .
דותן -
- יש פה ספריה שכתובה ב-Rust ועושה UI
- קודם הראית (אלון) משהו שעושה UI ועושה הכל, אז אני לא יודע עד כמה זה משתווה . . .
- בכל אופן - למי שרוצה לשחק ב-UI וגם לקודד ב-Rust, מבלי להתחייב, יכול לעבוד עם ספרייה וה-Framework - זה נקרא iced
- החלק הכייפי פה זה שזה מבוסס על ה-Elm Architecture של בניית UI - שזה אומר שאם עבדת עם Redux פעם, או דומיו - אז זה ירגיש לך מוכר.
- בעצם, ה-Elm זה סבא-רבא של של Redux, וזו גם - באופן שאולי נתון לויכוח - הדרך הנכונה לעשות הכל, כש-Redux הוא “פרשנות” של Elm.
- למי שרוצה לחוות UI בדרך אחרת, ארכיטקטורה של UI בדרך אחרת, וגם לשחק קצת עם שפה ולראות UI כתוצאה מהמשחקים - מוזמן.
- בהמשך ישיר לזה - יש ל-Rust כל מיני אתרי “?Are we ______ yet” . . .
- אז נגיד: לעולם ה-Gaming ב-Rust יש את ?Are We Gaming Yet, לעולם ה-UI יש את ?Are we GUI Yet, ל-Machine Learning אותו הדבר וכו’ . . .
- בעצם, זה מציג באופן ממש נחמד את “המצב הקהילתי” של השפה.
- אז הוספתי פה את ?Are we GUI Yet, למי שרוצה לנסות עוד כל מיני חבילות UI ולבנות אפליקציות.
- אני חושב שרוב, אם לא כל הספריות - רוב הספריות, לא כולן - יתנו לכם לבנות UI שאפשר להריץ אותו בכל מערכת הפעלה בצורה נחמדה.
- אייטם הבא - זה נקרא Starship
- [בוא - זה Starship . . .]
- למי שעובד בטרמינל, אז יש לו כל מיני “קישוטים” על ה-Command Line שלו בטרמינל, כמו האם אתה עובד על Git/Repo ויש לך דברים שלא דחפת, אז . . . אני, למשל, אוהב שמסומן לי כמה דברים, ואם יש משהו ב-Remote אז אני אוהב שמסומן שיש לי משהו ב-Remote.
- מה שהיינו עושים לרוב זה איזשהו Shell-Script, שמריץ איזשהו “Git-Whatever” וכמה שילובים של דברים, ואני חושב שהיינו “מחליפים ידיים” של הסקריפטים האלה . . . כל הזמן החלפת ידיים עם הסקריפטים האלה.
- מה שקורה זה שכשאתה פותח טרמינל, או כשאתה רוצה לעבוד הטרמינל, ואתה, נגיד, לוחץ Enter - אז הדבר הזה מריץ את עצמו שוב פעם - וזה איטי . . .
- אז אני תמיד הייתי במרדף אחרי ה”למצוא את המשהו הזה שעושה את זה מהר”.
- אז הייתה חבילה ב-Node שמישהו כתב, כבר לא זוכר איך זה נקרא
- ואז היה Port של זה ב-Rust, שעד היום עבדתי איתו.
- ועכשיו יש עוד איזושהי חבילה ב-Rust שנקראית Starship, שהיא ה-Holy Grail של זה . . . עברתי לזה וזה מדהים.
- סופר מהיר, כמעט קסם - וזה מאוד מודולרי, אפשר להוסיף לזה דברים כמו סטטוס של Git, גרסאות של דברים שאתם עובדים איתן, נגיד Python-ים למינהם, סביבות למינהן וכו’.
- (רן) אז אתה משתמש, נגיד, ב-Oh-My-Zsh, ואתה פשוט מחבר את Starship? או שאתה . . .
- (דותן) כן, לא חשוב איזה Shell - מה שנחמד פה זה שגם נותנים לכם סוג-של שורת אינטגרציה, אז . . .
- נגיד ב-Z Shell, אז בסך הכל “eval "$(starship init zsh)
- ב-Fish, למי שאוהבים [דייגים?] אז זה starship init fish | source . . .
- לי זה היה Plug & Play, ונקרא לזה “בול פגיעה”, כי בדרך כלל אני מחבר משהו כזה ואז דברים מוזרים קורים לי
- לפעמים זה עובד - פותח טאב חדש - פתאום זה לא עובד . . .
- כנראה שזה האופי של לחבר Shell למלא Script-ים, משהו מודרני יותר - זה כמעט אף פעם לא עובד חלק ביחד.
- (אלון) זה ממש חמוד - אני רק לא מצליח להבין ממה שאמרת עד כמה זה איטי? לא יודע . . . אף פעם לא הרגיש לי שזה איטי . . . מה זה - 100ms? לא יודע . . . Windows ישן?
- (דותן) Windows?! אני לא קורא לזה Windows, אני קורא לזה Win98, לא יודע מה איתך . .
- (אלון) סבבה, הבנתי, אני במילניום . . . הבנתי . . . את האיטיות - אני לא הרגשתי אותה באופן שהפריע לי אף פעם, אולי אני מקליד יותר לאט . . .
- (רן) או חושב יותר . . .
- (אלון) . . . אבל זה מגניב, כי אפשר להוסיף.
- (דותן) לי זה ממש מפריע . . . כאילו - אני אוהב שהטרמינל מרגיש לך ריק, בלי כלום - מהיר, זריז ו . . לא יודע. אני רגיש לזה, זה מעצבן אותי.
- (רן) כל יומיים כשאתה פותח את ה Terminal Z Shell אז הוא רוצה שתעדכן אותו?
- (דותן) אני לוחץ על זה Cancel יותר מהר ממהירות האור . . .
- אבל כן - אני תמיד במרדף אחרי טרמינל שהוא מרגיש לך כזה הכי מהיר . . VIM, למשל, מרגיש לך הכי מהיר, אז עשיתי VIM ו-NeoVIM ובלה-בלה-בלה . .
- עד שבסוף עברתי ל-VS Code בכלל, וקיסטמתי (Custom) אותו להראות כמו VIM, והוא עובד לי הכי מהר שיש, יותר מהיר מה-VIM בטרמינל שלי - וזה בגלל שה Terminal Item עצמו הוא איטי, באופן לא ביזארי
- אם חושבים על זה, זה אפילו הגיוני - האייטם מתעסק בלצייר . . . הוא לוקח מסך, ומתעסק בלצייר מחדש Characters על המסך - יש לך חישובים כאלה ואופטימיזציות
- מה אני רוצה להחליף בתוך סט . . . מסך, כשאתה מרחיב אותו על 27 אינץ’ או Whatever, אז זה מלא Characters, אלפי Characters - ועכשיו הוא צריך לתמרן אותם, ובזה הוא עסוק.
- והדרך לתמרן אותם זו דרך די פרימיטיבית - פשוט תמרון טקסט כמו של טרמינל.
- אם אתה עובד ל - VS Code, זה בכלל UI, אז אתה מקבל UI שמתמרן את עצמו כמו ש-Browser עושה, ואז זה יכולות של מערכת הפעלה, מה שאתה רוצה . . . הכל הופך להיות יותר מהיר. זהו.
- (רן) אתה עדיין משתמש ב-iTerm2? בתור טרמינל?
- (דותן) כן, לגמרי - אני לא עובד עם . . .
- (אלון) לא יוצאת גרסא 3? אני עם iTerm2 כבר עשר שנים לדעתי . . .
- (דותן) אני חושב שזה iTerm2, אבל זה 3, בתכל’ס . . . אם אתב עושה ב-”About” . . .
- (אלון) באמת? . . .
- (דותן) זהו, וקצת שלא שמתי לב, אבל זה ממש Plug-in לאייטם הבא, יצא טוב . . .
- יש את VIM וכל העולם של זה . . .VIM, ה-Editor, אכזב את הקהילה באיזשהו שלב . . . מה זה אכזב? היה בו מלא קוד, וקוד מגעיל, וקוד רקוב, והוא לא היה אינטגרטיבי, ו-Plug-ins - כל אחד היה צריך לעשות שמיניות באוויר בשביל לעשות Plug-ins, והוא גם לא היה a-Synced, אז נגיד שהיה לי עכשיו Code Linting, אז לא היית יכול להריץ אותו הצורה Sync-ית ולהקליד ולקבל את ה-Decorators . . . “הצ’ופצ’יקים” האדומים ו-Whatever, תוך כדי העבודה שלך ... לא יכולת, היית מקבל Freeze, ואז הקוד שלך היה Highlighted, כי הוא לא היה Synced - וכל הקהילה זעמה [!] - והולידו את NeoVIM
- בעצם זה היה VIM, “שכיסחו לו את הצורה”, העיפו מלא קוד “מת”, בהתחלה - ואז התחילו להוסיף לזה מנגנונים מאוד מאוד מתוחכמים, של a-sync
- חיברו בפנים Lua בתור Scripting Engine, שזו בחירה הרבה יותר טובה ממה שהיה, היסטורית
- ו-NeoVIM פשוט פרח, ממש.
- ואז בא Bram, ה-Owner של VIM, ואמר “בסדר, אני אעשה את זה” - הוציא את VIM 8 ודי השווה . . .
- ואנשים, האמת, חזרו ל-VIM - אבל קהילת ה-NeoVIM המשיכה להתפתח לכל מיני כיוונים.
- אחד הכיוונים זה היכולת לקחת את VIM כ-Engine, להדביק עליו UI מכל מיני סוגים משוגעים, טיפה כמו שראינו על VS Code.
- אז יש פה פרויקט שנקרא neovide - כאילו Neo-V-IDE . . .
- זה מישהו שבנה UI, השתמש ב-NeoVIM, וה-UI בנוי ב-Rust - וה-UI משוגע . . .
- הוא דומה מאוד במבנה לטכניקות של Gaming Engine, ויש אנימציות משוגעות
- ה-Curser זז לך באנימציות כמו של משחק, החלונות זזים באנימציה . . . ממש ממש מגניב.
- (רן) מה זה אומר שזה UI? יש מנוע של NeoVIM שרץ ברקע, והוא מחבר אליו, ורק מציג את ה-Frontend?
- (דותן) כן, מתחבר אליו ב-RPC, מתקשר איתו, אומר “שמע - זה הקובץ, הבנאדם הזיז את ה-Character, תגיד לי מה הייצוג החדש של הקובץ”.
- נגיד, אם לחצתי על האות T, כי אני מקליד, אז הוא שולח לו “הבנאדם לחץ על האות T”, ואז NeoVIM עונה “הבנתי, הטקסט החדש הוא . . . “ - ומחזיר לו את הטקסט, זה ה-RPC שקורה, בערך, בין השניים.
- נשמע איטי - אבל זה סופר מהיר, ועובד . . סוג של ארכיטקטורה . . .
- (רן) אבל אם אתה עושה את זה בתוך iTerm, אז עדיין יש את האיטיות של iTerm . . . או שזה רץ עצמאית, בחלון משלו?
- (דותן) לא, הוא רץ עצמאית - זו אפליקצית UI מבוססת Vulcan, שזה מנוע גרפי, נקרא לזה “דור חדש” כזה.
- וכן - כללי המשחק, איך שהבחור הזה פיתח את זה, הם ש”אני הולך להשתמש במנוע שהוא מאוד דומה למנוע של משחקים כדי לבנות IDE”, שזה מגניב . . .
- (רן) יש לך פה כל מיני אנימציות מצחיקות, למשל - אם אתה מזיז את ה-Curser אז הוא מציג לך כזה שובל, כמו שביל כזה, וכל מיני אנימציות אחרות.
- (דותן) קוראים לזה Railgun animation . . .
- (רן) Railgun זה התותח של הנאצים . . .
- (דותן) נאצים?!
- (רן) כן, זה תותח שפיתחו ובסוף לא השתמשו בו, שנע על פסי רכבת, בגלל זה קוראים לזה Rail-Gun . . . זה היה איזשהו תותח-קונספט כזה שפיתחו אבל אני לא יוודע האם הוא ירה אי פעם, כי זה היה איזשהו פרוייקט מאוד מאוד שאפתני.
- הוא היה אמור לירות ל[מרחק של] כמה עשרות או אולי אפילו כמה מאות קילומטרים פגזים . . .
- (דותן) וואלה . . . אני מכיר את הרפרנס מ-Doom, חשבתי . . . אבל בסדר, אני מבין איך זה יכול בסוף למצוא את עצמו בגרמניה הנאצית . . . מבחינת טכנולוגיה, מלא דברים הם המציאו . . .
- אז לאייטמים הבאים - אחד נקרא RustScan - וזה Port Scanner שכתוב ב-Rust
- ו-Port Scanner זה כלי שרץ על כל ה-Port-ים שיש - יש מגבלה, למי שמכיר, של 65K פורטים - והוא רץ על כולם.
- אחד הדברים שתמיד אנשים חיפשו זה Port Scanner שיהיה הרבה יותר מהיר - זה כזה מרדף אינסופי, ופה פיתחו אחד כזה.
- זה ב-Rust והוא סופר-מהיר, ברמות שמסחררות ראשים, הוא הפך להיות מאוד פופולארי בגלל זה.
- אז למי שרוצה לסרוק Port-ים, או סתם להעיר את ה-CISO שלו משינה . . . מוזמן לקחת את זה ולהריץ על הרשת הארגונית, זה דבר אחד . . .
- (רן) לא שמעתם את זה פה . . . דותן מתבדח, כמובן [יש ייעוץ משפטי לתוכנית? טל”ח וכו’.]
- (דותן) מי שרוצה לעשות . . .
- (אלון) זה תלוי בעד כמה שאתה אוהב את ה-CISO שלך, כאילו . . .
- (דותן) נכון, זה מאוד תלוי
- אז זהו . . . הדבר הבא נקרא bettercap
- אם אתם רוצים לקחת כמה שעות [בממ”ד?] מהשינה של אותו CISO שאתם אוהבים - אז פה יש כלי, את האמת ממש מגניב, ממש ממש מגניב אפילו, שנקרא bettercap, והוא אורז כל מיני סורקים למינהם בכלי אחד
- והוא גם כולל UI, שהוא “עני” יחסית
- אתם יכולים לסרוק . . . בוא נגיד מי קהל היעד: זה אנשים שסתם רוצים לשחק, אנשים שהם Red-Teamers, שזה גוף תקיפה בתוך הארגון שהמטרה שלו זה לשים כובע של תוקף והתיאוריה היא שאם אותו צוות יתקוף את הארגון כל הזמן, אז אם יבוא תוקף אמיתי אז הארגון יהיה מוגן . . .
- (אלון) או שארגון יחשוב שהוא יכול לכתוב ב-Slack “טוב, תפסיקו, זה עושה בעיות, תורידו את זה” ולחזור לישון . . .
- (דותן) בדיוק, כן . . .
- אני יכול להגיד שגם מצאתי את עצמי משתמש בכלים כאלה כדי לדבג (Debug) דברים -
- לפעמים הרשת במשרד הייתה לא יציבה, לא טובה, וזה גם כלים טובים כדי לנסות להבין מי נמצא שם בחוץ, מי מנסה להתחבר ומה הוא מנסה לעשות.
- [אבל להטריל את ה-CISO זה יותר מצחיק, בהחלט]
- אז זה כלי אחד, שאורז כל מיני תקנים של WiFi, כל מיני תקנים של Bluetooth, וגם TCP/IP רגיל
- גם Reconnaissance, שזה להבין מה קורה בחוץ, וגם כדי לסמלץ (Simulate) התקפות מכל מיני סוגים.
- אין פה, דרך אגב, בכלים האלה, שוב דבר חדש תחת השמש - זה מיחזור של תקיפות קיימות וידע שכבר קיים, רק שפה ארזו את זה בצורה מאוד נוחה, שכיף להתקין ולהשתמש.
- אייטם הבא - זה נקרא hyperfine, וזה בעצם כלי ל - Command-line benchmarking
- הגעתי אליו דרך Rust, שמשתמשים בו בעצמם כדי לבדוק שהכלי הוא סופר-מהיר.
- זה כלי גנרי - אם יש לכם איזשהו CLI Tool, אתם יכולים להשתמש בו כדי לעשות benchmarking ל-Command-line ולוודא שאתם תמיד “תחרותיים” מול ה-Performance ,מול איך שה-Command-line שלכם עובד.
- (אלון) או, חמוד!
- (רן) זאת אומרת - אתה בודק את הביצועים של ה-CLI שלך . . .נכון, זה CLI Performance?
- (דותן) כן, זה benchmarking שרמת האבסטרצקיה (Abstraction), ה-Contact שלך מול ה-Command-line הוא ה-Command-line . . . . זו לא ספריה שאתה עכשיו צריך להשתמש ל-Unit Testing שלך או כאלה
- (רן) כמו Time ,כמו פקודת Time ב-Linux . . .
- (דותן) האמת שזו אחלה דוגמא - אם היית רוצה להשתמש בפקודת Time בשביל לעשות דבר כזה, מה היית צריך לעשות?
- היית צריך כנראה להריץ Time כמה פעמים, להגיע לאיזשהו מספר הרצות שנותנות לך Significance סטטיסטי [מובהקות], לעבור על כל הנתונים, להריץ כמה כלים של סטטיסטיקה - ממוצע, Mean וכל מיני שטויות כאלה - ולהציג לך איזשהו כזה Progress Bar וכל מיני דברים כאלה.
- וזה בסופו של דבר הכלי . . .
- ואני מניח שמה שהיית רוצה זה שתוציא לי את זה ב-json, כי יש לי CI ואני רוצה להשוות בין Build ל-Build, לעשותכל מיני Diff-ים וכאלה, אני חושב שככה זה עושה את זה יותר מוחשי.
- (אלון) אפשר להריץ את הכלי על זה על עצמו? זה עובד? להריץ אותו על עצמו ולבדוק כמה מהיר הוא על עצמו? . . .
- (דותן) האמת שזו אחלה שאלה . . . אני לא יודע אם הם עושים את זה לעצמם . . . . אני חייב להניח שכן, לא בדקתי.
- (רן) אין סיבה שלא . . .אתה יכול להריץ אותו על עצמו - על עצמו - על עצמו - על עצמו . . . .על הכלי שלך.
- (דותן) נכון . . .
- (רן) נשמע כמו רעיון מאוד שימושי, שימוש מאוד טוב לזמן שלך . . .
- (דותן) פרודוקטיבי, כן . . .
- (רן) בוא, תנסה . . .
- (אלון) חבר’ה, אני בעד התחממות כדור הארץ - פשוט אם כולם יעשו, זה יתחמם יותר מהר.
- (דותן) אפשר גם לשלב - יש את הכלי של ה-Port Scanning:
- אם אתה מריץ אותו פעם אחת - זה מעיר CISO
- אם אתה מריץ אותו בתוך ה-hyperfine, שזה מריץ אותו כנראה אלפי פעמים - אז אולי אתה מעיר את כל הצוות . . . [ואת מערך הסייבר]
- (רן) ואז, ברגע שהגעת ל-Port, אתה מתחבר ל-Bitcoin - וכורה . . . [בעסה שכבר אי אפשר לקנות ככה טסלה]
- (דותן) בדיוק
- (אלון) הפודקאסט עבר נושא, נראה לי . . . [מה אמרנו על טל”ח וייעוץ משפטי?]
- (דותן) אחרי הפרק הזה, כל מיני צוותי Security יתקשרו אלינו ויגידו שהם לא ישנים בלילה
- [סביר מאוד, רק שזה הוקלט לפני הסבב הנוכחי אז הסיבה כנראה תיהיה שונה מהצפוי . . .]
- אז האייטם הבא - זה נקרא terraformer וזה נמצא תחת Google Cloud Platform ב-GitHub
- כלי שעושה “Reverse Terraform”, כלומר - תכוון אותו ל-Infrastructure והוא ייצר קוד.
- (אלון) *עכשיו* אתה בא עם זה? איפה היית עד היום?!
- (דותן) זה לא אני, זה הצוות SRE ב-Waze, מסתבר . . . [Created by: Waze SRE]
- (אלון) איזה מגניב!
- (דותן) ברכות וד”ש . . .
- (רן) לדעתי ל-AWS יש כזה כבר הרבה זמן . . . אני חושב ש . . . [יש את AWS CloudFormation]
- (דותן) זהו, שגם ל-Terraform . . . לא בטוח של-Terraform…
- (רן) לדעתי אפילו Terraform הם אלו שייצרו את זה, אבל אני זוכר שראיתי Plug-in כזה ל-AWS גם . . .
- (דותן) אז פה יש רשימה מטורפת של Providers, אני לא יודע כמה - מן הסתם לא ניסיתי את כל ה-Providers, אז אני לא יודע מה רמת ה . . .
- אבל מבחינת Cloud-ים אז GCP ו-AWS ו-Azure ו-Alibaba ו-IBM ו-DigitalOcean ועוד ועוד ועוד . . .
- קצת משוגע אפילו, הייתי אומר, בקטע טוב
- (רן) מה אתם עושים אצלכם, אלון?אני מבין שאתם משתמשים ב-Terraform, אז איך אתם עושים את זה? מעל GCP, ומה אז?
- (אלון) יש לנו Terraform, לצערינו עדיין לא על הכל
- אבל כתבו, כאילו - מאפס, אתה יודע . . . מה זאת אומרת מה עשינו?
- (רן) כאילו יש לכם, תיאורטית - אתם רוצים להגיע למצב שבו יש לכם את כל סביבת ה-Production, שאפשר להריץ אותה בסקריפט אחד, ומעל זה לפרוש את כל ה-Services והכל - וזה מונע ע”י Terraform, זה הקונספט?
- (אלון) כן, זה הקונספט - ה-Terraform ב-Infrastructure והכלי CI לאפליקציות, CI/CD, איך שלא . . .
- (רן) אוקיי . . .
- (דותן) אני חייב להגיד שיש פה מלא השקעה, מלא . . . בכלי הזה.
- אם תטיילו ב-Providers, תפתחו Provider אחד לדוגמא - קודם כל להתחבר ל-API, וממש להבין את כל האובייקטים בפנים, ולתרגם אותם ל-Terraform
- בקיצור - מגניב
- (אלון) זה אחלה . . . אני אחזור אליך עם כמה זה שימושי - מעניין אם אני אתן לו פרויקט - סביבה - אם הוא יצליח לבנות אותה, כי לא הכל אצלנו ב-Terraform עדיין
- (דותן) זהו, אז נמשיך לאייטם הבא - יש פה שפה שנקראית GoPlus
- אני כבר אגיד שאני לא הייתי משתמש בה . . .
- אבל זו שפה שנכתבה, דומה ל-Go, עבור Data Science.
- למי שרוצה לשחק, להתנסות - זה תמיד כיף, אבל אני לא יודע אם הייתי משתמש בה באמת בפועל
- לא יודע אם זה בכלל . . . אם יש לזה מטרה ואם זה מייצר משהו פרודוקטיבי.
- (רן) אני גם לא, דרך אגב . . .
- (אלון) יש משהו . .. איזה וריאנט על Go, שכבר היה . . . GoPlusPlus אני חושב? . . .
- [צודק, היה כבר אייטם של רן על goplus, שבצירוף מקרים סטייל ה-Hitchhikers’ Guide הוזכרה בבאמפרס 68 - המקורי, לא זה שהתבלבל בספירה עם הבאמפרס הקודם, שהוזכר בתחילת הפרק הזה . . . Glitch במטריקס?]
- (דותן) כן, יש מלא, האמת . . . יש מלא - אחת הבעיות עם כל השפות ב-Go זה שהן איטיות, באופן מפתיע.
- יש כאלה שמהירות יותר, נגיד אם מימשו, לא זוכר איזו שפה זו, אבל הייתה שפה שמימשו ב-Go
- העניין הוא ששפת המטרה הייתה כל כך איטית, שגם אחרי שמימשו את השפה הזו on top of Go, היא הייתה יותר מהירה . . . לא זוכר בדיוק איזו שפה זו.
- בקיצור - תמיד זה איכזב אותי, זה היה דווקא יכול להיות נחמד, כי למשל -
- אם אתה לוקח שפה שהיא באופן טיפוסי באה עם חברים, נגיד Clojure שבאה עם כל ה-JVM, ומה שבא לך זה איזשהו Lisp ככה, Light-weight, כייפי, מגניב, שאתה יכול נגיד לארוז כשפת קונפיגורציה או כל מיני שימושים כאלה מעניינים
- אז אתה יודע שאם זה בנוי ב-Go, אז אתה תקבל Single Binary, ששוקל איזה 9Mb, וסיימת.
- יש מלא אימפלמנטציות (Implementations) Lisp-like Languages, אבל כולן סופר-איטיות וכאלה . . מגושמות, לצערי.
- (רן) כן . . . אני גם, דרך אגב, לא חושב שהייתי משתמש בה
- זאת אומרת - אני אוהב את Go, ואני עושה Data Science - אבל זה לא מתחבר לי, goplus נראית כמו אנקדוטה נחמדה.
- בסדר - אז אתה יכול להריץ סקריפטים, אבל זה לא באמת . . . לפחות בינתיים, זה לא באמת פרקטי
- אין לזה את ה-Ecosystem העשיר שיש ל-Python או ב-R או בשפות אחרות, כך שזה באמת יותר צעצוע, לא ממש משהו שימושי, לדעתי.
- (דותן) כן, זה משהו שטוב להמליץ למתחרים בתור שפה שממש טוב להתעסק איתה . . .
- (אלון) כן - “תבדוק, ספר לי איך היה” . . .
- יש את השפה ל-Data Science - ה-Linda?
- (רן) Julia . . . אחותה . . .
- (אלון) כן, אחותה, זהו . . . היא אמורה להיות מעניינת, אבל זה . . .
- (רן) כן, היא מעניינת - אבל יש לה Ecosystem מאוד קטן, אז השפה היא עם Performance גבוה ובאמת מיועדת לחישובים מדעיים, אבל מבחינת ה-Ecosystem זה לא מתקרב למה שיש ב-Ecosystems האחרים של R ושל Python או MATLAB,
- ככה שרק אם אתה צריך משהו נורא ספציפי שלא מצאתי בשום מקום אחר, ואתה צריך High Performance, אז אתה צריך להחליט האם אתה הולך על Julia או משהו אחר - ++C או Rust או אחרים
- ככה שגם אז - Julia זו לא האופציה היחידה שיש לך שם.
- (אלון) אגב - גם Fortran . . . לא לשכוח. אישית, אצלנו יש קצת Fortran . . .
- (דותן) Fortnite . . .
- (אלון) כן, כמעט . . .
- (דותן) בינתיים שיניתי קצת את הסדר - יש כאן עוד שפה שנקראית Starlark - בטח רן מכיר . . .
- זאת שפת קונפיגורציה, שנמצאית מאחורי Bazel, ואפשר להשתמש בה באופן עצמאי
- איך נראית השפה הזאת? טיפה Python-י, וטיפה, נקרא לזה פרוגרמבילי (Programmable) - אפשר להריץ שם כל מיני לופים (Loops) ושטויות כאלה, אבל ב-end-state של הדבר הזה זה אמור להיות Configuration Language.
- עוד פעם - לא יודע . . . אם מישהו צריך Configuration Language אז . . . האמת, יש מצבים כאלה, שאתה רוצה להיות מאוד Express-י, אתה בונה כלי ואתה רוצה להיות מאוד Express-י בקונפיגורציה שלו.
- נגיד - קונפיגורציה שמרגישה כמו Terraform מבחינת איך שזה מרגיש, או NGINX
- זה לא ממש Yaml וזה לא ממש תכנות - אז אני תמיד מחפש את אלה.
- (רן) אז כן, אני יודע את השפה - קודם כל, כשמסתכלים על זה זה נראה כמו Python, בגדול
- אבל הפרוייקט הזה הוא למעשה ממש ב-Go, אז כנראה Go-interpreter ל-Python, או למשהו שדומה ל-Python.
- עכשיו, זה לא Python Per se - זו כן שפת קונפיגורציה,
- אבל זה קצת מזכיר לי קונספט של שפה אחרת שנקראית Jsonnet, אם אני זוכר נכון, שגם היא מ-Google, שגם שם זה json אבל עם כל מיני Extensions תכנותיים - אתה יכול לכתוב פונקציות, לעשות לולאות וכל זה
- אז כן - לא יצא לי להשתמש אף פעם בגרסא הזו ל-Bazel, אבל בטח יצא לי להשתמש בדברים דומים
- למי שלא מכיר - Bazel זה . . . או Blaze?
- (דותן) Blaze זה בתוך Google . . .
- (רן) כן, אוקיי . . . אז זה בעצם כלי כמו Maven ו-Gradle ואחרים, זה בעצם כלי לקנפג (Configure) את תהליך ה-Build שלך
- זאת אומרת - זה לא ה-Compiler עצמו, הוא למעשה קורא ל-Compilers השונים ובאמצעותו אתה שולט בדברים.
- אפשר לחשוב על אחד המתחרים הגדולים שלו שזה בעצם Gradle, שנותן לך לכתוב סקריפטים שעושים קומפילציה (Compile) וכו’
- וגם שפה - Groovy, שבאמצעותה אתה יכול לעשות דברים שאין להם Templates
- (אלון) תמיד הבעיה בדברים האלה, שזה מרגיש לי שלפעמים כבר יותר נוח לכתוב Compiler . . .
- השפות האלה, עושים אותן כל כך קשות, שאתה אומר “כבר תן לי בינארי וזהו”, אני אשנה את הביטים, יהיה יותר קל . . .
- (דותן) כן זה . . . זהו, נדיר שמצאתי את עצמי משתמש בזה כמו שצריך, אבל נראה לי שזה מאוד תלוי באיזו סיטואציה אתה בחיים
- נגיד, ל-Google יש את Bazel ול-Facebook יש את Buck ול-Twitter יש את Pants, מכנסיים . . .
- והאמת שכולם נראים אותו הדבר, כאילו . . . אותו חזון וה-Mission statement אותו הדבר
- אני לא יודע, זה נראה לי שזה פשוט Gears towards mono-repos ענקיים . . .
- אתה יכול לעשות מעשה ולהגיד “יש לי פה Repo קטן, אני אשתמש בזה ואני אהיה מגניב” - אבל אני לא יודע לכמה מהאוכלוסיה יש כזה mono-repos משוגעים כמו שיש נגיד ל-Facebook ,לא יודע . . .
- ואז הכל Makes sense, ואתה חייב את זה - אין לך דרך אחרת לעשות שום דבר בלי זה.
- בקיצור זהו - זה זה.
- יש פה כלי קטן ונחמד שמפיק locally trusted development certificates
- למי שלמשל רוצה לפתח משהו בסביבה הלוקאלית שלו, ורוצה להשתמש באיזשהו Domain מזוייף כדי פשוט לעבוד ב-Development
- חייב Certificate, חייב להשתמש באיזשהו פרוטוקול שמבוסס HTTPS או TLS וכן הלאה.
- בדרך כלל, מה שאתה צריך לעשות ב-Mac זה ללכת ל Keys → management, לעשות Request Sign In authority ובלה בלה בלה . . . מלא קליקים
- ואז יש לך Certificate, שנזרק לך בתוך ה-Downloads, ואתה הולך ולוקח אותו ובלה-בלה-בלה . . .
- אז הכלי הזה עושה את הכל אוטומטית - וזהו. שזה נחמד.
- אני אשים פה Disclaimer - כשמייצרים אחד כזה ומתקינים אותו, זה יכול להיות מסוכן
- כי בעצם אתה מתקין ב-Root Certificates שלך איזשהו Certificate שאף אחד לא חתם עליו, שהוא סוג-של-מזוייף. אז אסור לך להפיץ אותו לחברים . . .
- כי חברים יעשו לך תרגילים . . . לא לעשות את זה.
- (אלון) איזה חברים יש לך?!
- (דותן) חברים כמו אלון . . . לא לשלוח אליהם.
- (רן) או לחילופין - תפיץ ותגלה מי באמת חבר שלך . . .
- אני חושב שפה אנחנו גם חוזרים לשיחה שלנו על ה-CISO שלנו - הנה עוד סיבה למה לא לישון בלילה.
- (אלון) בקיצור - בלילה, כשכולם ישנים, להחליף בארגון את ה-Certificate של כולם בזה, זה מה שאתה ממליץ?
- (רן) היית חייב להגיד את זה, אלון? היית חייב? . . .
- [אתה יודע כמה העו”ד כבר עולה לנו? עוד לא התאושש מהפרק עם זהר . . . ]
- (דותן) האמת, אלון, שאני יכול להפתיע אותך, אני חושב שיש כאן אייטם שהוא יותר חזק ממה שהבאת קודם . . . אתה עכשיו מסתובב בהפתעה? זה יותר חזק, כי אני לא מצליח . . . It’s beyond me . . .
- זה נקרא wslg, וזה “Enabling the Windows Subsystem for Linux to include support for Wayland and X server”
- עכשיו, למי שמכיר - Wayland ו- X server הם שני המתחרים, איך נקרא לזה? ל-Windows-ing infrastructure ב-Linux.
- ה- X server הוא “סבא’לה” שעובד מדהים ו-Wayland הוא הצעיר שבא להחליף אותו במלחמות פוליטיקה וכאלה . . . מאוד מעניין ואינסופי.
- ואנחנו רואים פה את מיקרוסופט בונים איזושהי אינטגרציה, שבעצם התוצאה שלה, מה-Screenshots פה, זה שיש לך אפליקציות של Linux שרצות על ה-Desktop ה-Windows-י שלך . . .
- ואני הסתתכלתי על זה, האמת, שתי דקות, בהיתי ב-Screenshot של זה, והמוח שלי לא הצליח לעכל את מה שאני רואה . . . .
- (אלון) תראה, מצד אחד זה מגניב בטירוף, אבל מצד שני - אני חושב שפספסו פה את המטרה: המטרה זה להעביר דברים מ-Windows ל-Linux . . . איזו אפליקצית UI יש לך ב-Linux שאין ב-Windows? אחת?! תמצא לי . . .
- (דותן) אז זה בדיוק ה . . . המוח שלי נכנס לקצר, פשוט לא הבנתי.
- ואז אמרתי “טוב,לא חשוב, לא ננסה להבין ופשוט ננסה להבין איך זה עובד”.
- טיילתי קצת בקוד, ראיתי ממש מעט קוד, ואז בכלל נטרפתי - אז עשיתי Scroll-down ל-ReadMe איפשהו למטה, ויש שם Architecture Overview
- מה מסתבר? יש WSL Virtual Machine, שמריץ מלא מלא תשתיות של Linux, וה-Repo הזה הוא בעצם Client של . . . חכה: RDP!
- אז בתוך ה-VM - ויכול להיות שאני אומר פה משהו שכולם גילו כבר - אבל בתוך ה-VM הזה רץ FreeRDP, שזה האימפלמנטציה (Implementation) של RDP, שזה ה . . . איך נקרא לזה? Remote Desktop - האגדי של Windows, הישן והאגדי . . . “אגדי” כל מיני מובנים.
- אז הם מריצים FreeRDP, שזה משהו שיושב שם בפנים, ואז מתוך Windows הם יוצאים משם ומראים לך UI - וכנראה שהם תפרו את החלונות ככה שזה נראה לך Native בתוך Windows . . .
- שזה, על פניו, מדהים - בתור טריק של קוסמים, לגרום לך להרגיש שזה אמיתי.
- אבל אני חוזר לנקודה שלך ואומר - מה? טוב . . . אוקיי . . . לא יודע, מה אני אריץ? LibreOffice במקום Word, ואני לא אקנה Word? מה עשינו בזה?
- (אלון) אני לא יודע . . . תראה, כקונספט, זה פרויקט באמת מגניב, רואים ש . . . בוא, הוא ממש פרוייקט משנה אנושות, עכשיו רק צריך ליצור אפליקציה אחת שאפשר להשתמש בה בצורה הזאת . . .
- (דותן) אתה אומר שצריך למצוא את האנושות ש . . . צריך לשנות.
- (אלון) תראה, בעולם אחר, אם Linux היה שולט ו-Windows היה הזה שבצד, הייתי אומר לך שזה Game-changer . . .
- (דותן) אז זהו, שאני בדקתי די טוב שזה לא של 1 באפריל, ונראה שזה לא . . .
- כי מה שאמרת עכשיו זה בדיוק מה שחשבתי - 1 באפריל, בוא נראה . . .
- עברתי על ה-Commits ועל ההיסטוריה ו . . . וואלה, נראה שזה לא 1 באפריל . . .
- בכל זאת, עכשיו אפריל, מספיק שה-27 היום, מספיק 26 ימים, ואנחנו ב-1 באפריל . . .
- (אלון) כן, אבל עדיין מתחזקים את זה . . לפני 10 ימים עוד תחזקו את זה, אז אם זה 1 באפריל זו כבר ממש בדיחה מטומטמת . . . יותר גרועים מאיתנו . . . .
- [שוב הפרק 1 באפריל חוזר כאן?! 68 או 72?! בוודאות Glitch במטריקס או איזו בעיה במרחב-זמן, או נקמה של Werner . . .]
- (דותן) אני לא יודע, זה התחיל, ואין יותר היסטוריה . . . זה התחיל ב-17 באפריל, זה בגרסא 1.017 . . .
- (אלון) נראה שמישהו הוציא את זה, והתלהב - ואז השני אמר לו “גאוני! בוא תראה לי אפליקציה”
- ואז הוא פתח משהו וההוא אמר “טוב, זה יש לך גם ב-Windows, בוא תראה לי . . . “ אבל הכל יש ב-Windows.
- (רן) אלון, אני חושב שהתשובה נמצאת ב-Screenshot, בפינה הימינית למעלה - אם תשים לב, יש שם את ה xClock המיוחד של Linux - וזו הסיבה . . .
- (דותן) זה ה-Go-to . . . להראות שה-Clock רץ . . .
- (רן) כן, אז יש ה-xClock המהמם, שאף אחד לא יכול כמובן להסתדר בלעדיו, ועכשיו יהיה לך אותו, היישר מ-Linux, מיובא לתוך Windows . . .
- (אלון) טוב, קניתי! אז עכשיו אני צריך שה-Mac שלי ידע להריץ Windows, ואז ב-Windows אני אוכל להריץ Linux . . .
- (רן) ודאי, כן.
- (דותן) בקיצור, בכל פעם שאני מסתכל על המסך הזה, אני נכנס לאיזשהו Loop שאני לא מבין . . .
- (אלון) דותן, בוא אני אגיד לך מה מגניב - אם אתה עושה את אותו הדבר בכיון ההפוך . . .
- (דותן) הוא מריץ PyChram בתוך Linux . . . ומשתמש ב-PyChram
- עכשיו, תסביר לי את זה . . .
- (אלון) אני, כל מה שאני רוצה זה שיעשו גם את הכיוון ההפוך, ואז תעשה ב-Windows שיעשה Linux שיריץ Windows . . .
- (דותן) וגם Blender זה לא . . לא מצליח להבין את זה . . .
- אה, אולי זה כדי להראות יכולת? . . . אבל גם PyChram, זה לא ממש להראות יכולת, כי זה Java
- ו-Blender אני עוד מתחבר . . . להראות שכאילו הכל עובד והתקשורת . . לא יודע, מוזר.
- (אלון) נראה לי שאיבדנו את זה, דותן . . . זה מה-Mindfuck . . .
- אני לא מאמין, זה אייטם מגניב לאללה - אבל אני לא מאמין שניסית להגיד שהוא מתעלה על על האייטם הגאוני שאני הבאתי?! כאילו, אתה עשית פה Buildup כאילו אתה מביא . . .
- (דותן) הוא מתעלה - אבל מהכיוון השני . . . סבבה?
- (אלון) הערך המוחלט שלו גבוה יותר . . .
- (דותן) בדיוק
- טוב - אייטם אחרון - למי שאוהב YouTube Downloader, זה youtube-dl, אז מי שאוהב את זה כדי להוריד כל מיני וידאו מ-YouTube . . .
- (רן) זה לא חוקי, לא שמעתם את זה פה, כמובן . . . [העו”ד . . . ]
- תמשיך . . .
- (דותן) אז רק וידאו שלכם, שאתם הפקתם והעלתם ואתם רוצים לשמור אותם בחזרה . . .
- (אלון) אם איבדתם את ה-Source Code . . . והכפתור - יש Bug ב-YouTube בדיוק באותו זמן וה-Download לא עובד, מה-Admin - אז זה שימוש טוב . . .
- (דותן) אז בדרך כלל youtube-dl זה היה ה-Go-To,ו פה יש פרויקט שנקרא annie, שמימשו ב-Go, שעושה את אותו הדבר.
- זהו, קצת לגוון לכם את חיי ההורדות של הוידאו *שלכם* . . . ה-Assets שלכם מתוך YouTube וכן הלאה.
(רן) דותן, לא ידעתי שיש לך כל כך הרבה אייטמים לפינת המצחיקולים, תודה על זה . . .
(אלון) נכנסו ישר לפינה הרצינית . . .
(רן) כן . . . כאן אנחנו מסיימים, חברים וחברות - תודה רבה, אנחנו נתראה בעוד כחודש, פלוס או מינוס [אחרי המלחמה הבאה]
להתראות
הקובץ נמצא כאן, האזנה נעימה ותודה רבה לעופר פורר על התמלול