יום שני, 18 בינואר 2021

400 Bumpers 71

פרק מספר 400(!!!) של רברס עם פלטפורמה - וזהו באמפרס מספר 71:  רן, דותן ואלון מקליטים מעל גלי האתר (?) - שלום, מה שלומכם?
בוקר טוב לכולם, והתאריך היום (מועד ההקלטה) הוא ה-6 בינואר 2021 - הנה, עברנו שנה, מזל לטוב לנו שסיימנו את 2020 - הקורונה עדיין פה אבל את השנה סיימנו . . .
ואנחנו בבאמפרס - סדרה של קצרצרים שבה אנחנו מספרים על דברים מעניינים שקראנו, עשינו או ראינו בחודש האחרון - ואני (רן) מיד מתחיל:


רן -
  • נתקלתי ב-GitHub Repo שנקרא xg2xg - זה בעצם ex-Googlers to ex-Googlers: איזשהו מיפוי של טכנולוגיות וכלים שהיו קיימות (או שעדיין קיימות) בתוך Google - והמקבילות שלהן מבחוץ 
    • למשל - אם מדובר על Borg הפנימי - אז המקבילה החיצונית שלו היא לא אחרת מאשר Kubernetes
    • או GSLB שזה Cloud Load Balancing ו-Protocol Buffer שזה Protobuf ו-Stubby שזה gRPC וכו’
    • אז למי שעבד בגוגל תקופה מסויימת, ועכשיו יצא החוצה - יכול להשתמש בטבלת התרגום הזאת כדי למצוא את המקבילות שנמצאות שם בחוץ
      • בין אם זה פשוט כדי לשפשף את הז’רגון שלו או שבאמת מחפשים כדי כלי לעשות משהו, וזה יכול לעזור
    • כמובן שלא הכל נמצא שם - לא כל הטכנולוגיות הפנימיות נמצאות בחוץ
      • וכמובן שגם הפוך - יש הרבה טכנולוגיות שלא קיימות בגוגל וכן נמצאות בחוץ, אבל המיפוי הזה יכול לעזור
    • ויש משהו דומה, ממש על אותו הקונספט, ליוצאי פייסבוק - זה נקרא xfb2xfb, וגם פה יש מיפוי של טכנולוגיות עם השמות הפנימיים שלהן בתוך פייסבוק לשמות החיצוניים.
    • (אלון) יש כאן דברים נחמדים, כמו “Money”, שזה מתורגם ל-”User” ודברים כאלה . . .
    • (רן) שמור את זה למצחיקולים בסוף . . .
    • אז כן, אני חושב שגם למי שלא עבד באותן החברות זה יכול להיות מעניין, כדי לדעת פחות או יותר איך נראה הנוף מבפנים, להבין אילו כלים קיימים בפנים ומה הם הם עושים - זה יכול להוות השראה.
      • אם מדי פעם הייתם שואלים את עצמכם “מה גוגל הייתה עושה?” או “מה פייסבוק הייתה עושה?” (ההערה של אלון …), אז זה לפחות נותן תשובה חלקית על השאלה הזאת, ואני חושב שזה מעניין.
    • (אלון) יש כאן דברים מוזרים קצת . . . נגיד על Hive רשום שזה BigQuery - אבל Hive זה Hive . . . כאילו, זה לא משהו פנימי.
    • (רן) נכון . . . Hive פותח בפייסבוק, ויש לו גרסא חיצונית - אבל אני חושב שהגרסא החיצונית היא מאוד שונה מהגרסא הפנימית, וככל הנראה אולי “כוונת המשורר” הייתה שהגרסא של BigQuery כנראה הרבה יותר דומה ל-Hive הפנימי שיש בפייסבוק, אבל זה רק ניחוש, אני לא אומר את זה מתוך ידיעה.
    • אבל כן - זה נכון ש-Hive פותח בפייסבוק.
    • (דותן) הגישה היא מאוד שונה, לפחות ממה שאני מכיר - גוגל “מפתחים במחשכים”, כזה פנימי, ופייסבוק מאוד מאוד פומבי . . . 
      • לפחות השמות הם לא שונים - כמעט כל מה שיש פה הוא די מוכר לי מפייסבוק . . .
    • (רן) כן, אני חושב שזה גם נכון להגיד - אתה צודק שהגישה שונה, אני חושב שגוגל מפתחים יותר במחשכים, לא לגמרי במחשכים - וכשהם משחררים, הם בדר”כ, לפחות הסטורית, הם לא היו משחררים את ה-Source Code אלא משחררים איזשהו white paper או בלוגים או דברים כאלה
      • זאת אומרת שהם כן היו מספרים על מה שהם עושים, אבל לא משחררים את הקוד.
      • היום זה כבר פחות נכון, היום משחררים הרבה יותר קוד
      • אבל פייסבוק, היסטורית, תמיד שחררו יותר קוד, זאת אומרת - פייסבוק, היסטורית, תמיד שחררו יותר כלים, אז בקטע הזה אני חושב שזה לגמרי נכון.
  • הנושא הבא שעליו רציתי לדבר הוא בלוג-פוסט חדש של OpenAI, שמדבר על מחקר שלהם שנקרא DALL·E
    • אז למי שלא מכיר - OpenAI זו חברת Research מאוד מתקדמת בתחום של AI
    • השם “Open” אולי כבר פחות רלוונטי, כי הם כבר עושים דברים שהם הרבה יותר סגורים, אבל בכל אופן זו חברת Research מאוד מתקדמת
      • הם ידועים בעיקר במודלים שלהם - מודלי ה-GPT שלהם, מודלי שפה
      • האחרון שבהם - GPT3 - עורר הרבה מאוד הדים, אני מניח שהרבה מהמאזינים שמעו עליו (נגיד בבאמפרס 397…).
    • אז הבלוג-פוסט הזה מדבר על מודל חדש שנקרא DALL·E, שהוא למעשה עושה סינתזה בין שפה לבין Vision . . .
      • למעשה, התוצר הסופי שלו הוא שאתה בעצם אומר משפט, מתאר איזשהו ציור - והמודל מצייר לך אותו . . . 
      • אתה אומר לו “צייר לי כורסא בצורת אבוקדו” (כבשה! צייר לי כבשה!) - והמודל מצייר לך כורסא בצורת אבוקדו (או כבשה) - וזה עובד די יפה, אני חייב להגיד.
    • יש פה הרבה מאוד דוגמאות - למשל, “צייר לי חתול” - והוא מצייר חתול; “צייר לי חתול עם פרווה שחורה” - והוא מוסיף לו פרווה שחורה; “צייר לי שתי קוביות, אחת על השנייה, אחת אדומה ואחת ירוקה” - והוא עושה את זה.
      • זאת אומרת - התוצאות הן מאוד מרשימות, מאוד נחמד - גם דברים ריאליסטיים כמו . . . גם החתול שדיברנו עליו הוא חתול ריאליסטי - הוא יכול לעשות גם סקיצה של חתולים אבל גם חתולים ריאליסטיים.
      • הוא אפילו מכיר מקומות בעולם, נגיד - “צייר לי איזושהי שכונה בסאן-פרנסיסקו” - והוא מצייר אותה, או שהוא מייצר צילום שלה.
      • או “צייר לי אוכל סיני טיפוסי” - והוא מראה אוכל . . . כופתאות כאלה, עם בצק, סיניות . . .
    • (דותן) שמע, זה ישר מעורר לי כזה . . . זה מדהים לסיפורי ילדים - אתה מספר איזה סיפור מטורף כזה, ואז בום, יש לך את כל האילוסטרציות ואתה פשוט כותב ספר (ויזואלי) לילדים ככה.
    • (רן) כן, זה מדהים.
    • עכשיו - זה מחקר מאוד יפה, זאת אומרת - המחקר עצמו לא פורסם, אבל התוצאות מאוד מרשימות.
    • הם כן אומרים שיש פה ושם Caveats, זה לא עובד באופן מושלם - אם אתם פה ושם משנים את ה-Titles או את ה-Description אז התמונה או הציור יכולים לצאת שונים, אבל בכל אופן היכולות מאוד מרשימות
      • היכולת לקבל כ-Input משפט ולהוציא כ-Output תמונה - והדוגמאות שהם מראים פה הן בהחלט מאוד יפות - אני חושב שזו יכולת שהיא מאוד מאוד מרשימה.
      • וגם אם אתם מסתכלים על ה. . . זאת אומרת - הבלוג-פוסט הזה הוא מאוד אינטראקטיבי, אתם יכולים ללחוץ על הדוגמאות ולראות את תהליך הייצור של התמונה, וזה נחמד.
    • בקיצור, אני חושב שזו עבודה מאוד מעניינת.
    • עוד נושא שהוא קצת מעניין בתחום הזה, מעבר לתוצאות המרשימות, זה שהרשת הזו היא “רזה” הרבה יותר מ-GPT3
      • ה-GPT3 היייתה ידועה בזה שזו רשת ענקית עם 175 מיליארד פרמטרים, ולוקח משהו כמו . . .אני לא יודע כמה זמן, אבל סדר גודל שהם פרסמו זה משהו כמו 12 מיליון דולר כדי לאמן את הרשת . . .
      • אז הרשת הזו, החדשה - DALL·E - יש בה הרבה פחות פרמטרים, לא 175 מיליארד, אני חושב שהם פרסמו משהו כמו 12 מיליארד פרמטרים.
      • זה עדיין לא קטן, זה לא פצפון, עדיין 12 מיליארד - וזה עדיין בסדר גודל יותר נמוך מה-175 מיליארד של GPT3 
      • ובכל אופן התוצאות הן מאוד מאוד יפות.
    • זהו - אני מאוד מליץ, גם למי שלא נמצא בתחום, לבוא ולראות מה ה-State of the Art שם.
  • (אלון) זה מאוד מרשים . . . זה באמת מגניב, השאלה רק מה יקחו מזה הלאה? כי השאלה היא מה אפשר לעשות עם זה, שהוא באמת שימושי ופרקטי חוץ ממשחק מגניב . . .
  • (רן) אני דווקא יכול לחשוב על הרבה דברים פרקטיים - למשל אם אתה עשים Mock-ים, ואתה אומר “אוקיי, פה אני רוצה שיהיה משתמש שמח, או איש שיושב ליד לפטופ ושמח” או מה שדותן הציע קודם על סיפורי ילדים
    • אני חושב על הרבה דוגמאות שכן הייתי רוצה . . . זה כאילו שילוב של Google Image Search יחד עם היכולת לייצר, אם לא מצאת תמונה שאתה אוהב - היכולת לייצר סינתזה בין תמונות או  לייצר תמונה שאתה כן אוהב.
    • איזשהו צייר, איזשהו Designer שיכול להקשיב לך ועושה את מה שאתה רוצה.
    • זה נחמד, נחמד מאוד. אני רק מחכה שישחררו את זה לשימוש של כולם ויהיה אפשר להתחיל להרביץ שם תיאורים ולקבל תמונות בחזרה..
  • נושא אחר, פחות או יותר באותו איזור - המלצה שקיבלנו ממאזין, והאמת שמאזין מאוד פעיל - עפר, שעושה את כל התקצירים לפודקאסט, עפר פורר (זה מאוד מוזר לכתוב רפרנס לעצמך, רק מציין) עשה קורס ב-Coursera והמליץ עליו - לפחות אחד מהמודולים שם - זה קורס שבא ללמד אנשי מוצר מה זה Data Science ומהם הכלים שמשתמשים בהם
    • אז יש פה קישור לקורס - זה נקרא (הקורס כולו) Agile Analytics (זה החלק הספציפי בקורס, זו כל הסדרה) ועפר מאוד ממליץ
      • אני אקח את ההמלצה שלך, עפר, למי שככה רוצה טעימה מאיך נראה היום-יום של Data Scientist
    • לא משהו כבד, משהו יחסית קליל ויכול להנגיש את הנושא.
    • תודה רבה עפר על ההמלצה (לכבוד הוא לי).
    • (אלון) עפר יקבל תקליט, אני מקווה . . . כל הפודקאסטים, האוסף הראשון, העונה הראשונה בתקליט . . .

אלון - 
  • יש איזה ספר מפורסם של The Effective Manager באמאזון, וכנראה לא רק באמאזון, של Mark Horstman
    • בקיצור, מישהו עשה על זה TL;DR (הפנייה מעגלית עם ה”בקיצור”, לא?) של 30 שניות בערך
    • פשוט - ארבעה דברים שאתה צריך לעשות כדי לתת פידבק - 
      1. לשאול - “האם אני יכול לתת פידבק?”
      2. מה - (“…State the behavior (“When  you X
      3. ההשפעה - (“…State the impact (“…the result is Y
      4. מה הלאה - Encourage effective future behavior (“Keep it up!” for positive feedback or “Can  you change that?” for negative feedback)
    • וזהו . . . לא יודע אם מישהו קרא את הספר, אבל זה ממש . . חסכתי לכם שעות של האזנה ל-Audible . . .
    • אני יכול לעשות את הקטע הזה ולתרגם אותו בעוד שפות נוספות, אם יהיה ביקוש.
    • זה היה פשוט נחמד, האמת שהייתה סביב זה די הרבה התהלבות על זה שהצליחו לתמצת ספר בארבעה משפטים, אבל אלו טיפים לא רעים.
  • הדבר הבא - AWS הולכים ראש בראש עם מיקרוסופט והם עשו Microsoft SQL Server ל - Aurora
    • זה Convertor
    • הם אומרים בעצם שכל מי שיש לו Microsoft SQL “ותקוע איתו” - “הנה, עשינו לכם כלי נחמד ובואו תעברו ל-Aurora, ואז תוכלו לעבור ל-Cloud המגניב שלנו”.
    • מעניין אותי איך מיקרוסופט יגיבו לזה, כי אני חושב שאחת הבעיות בלצאת ממיקרוסופט זה שאתה די “שבוי” אליהם, ל-Cloud שלהם באופן כללי - וזה יהיה מעניין.
    • (דותן) ה-Babelfish זה ה-Translator בעצם? 
    • (אלון) כן . . . הוא פשוט בונה לך את זה, מתרגם את ה-Queries, למיטב זכרוני.
    • לאותם Queries, כן? כי יש דברים שהם Syntax-specific, אז הוא קולט את ה-Syntax ועושה אותו על PostgreSQL
    • (דותן) גישה מעניינת, האמת . . . אני חושב שזו הפעם הראשונה שאני נתקל בדבר כזה - Database שאומר - חוץ מ-DocumentDB, או שזה לא אותו הדבר? - אבל זה סוג של Translator של Queries ועולם חישובי לתוך Database אחר - ואז אתה יכול לעבוד עם כל Database, ובכלל לא צריך לדבר על ORM ולא צריך לדבר על כל  . . . לא יודע, סתם זורק פה.
    • (אלון) תראה, יכול להיות שתיהיה לזה איזושהי בעיה של Performance, אבל זה מה שהם אומרים - “translation layer for SQL Server’s proprietary SQL dialect (T-SQL) and communications protocol so that businesses can switch to AWS’ Aurora”
      • בתיאוריה, אתה אומר “יש לי Query כזה ועכשיו להתחיל סדר . . .”, או אומר “SQL זה SQL, אבל פה ב-Query יש לי משהו…” ובפועל זה לא ממש יכול לעבור כי ב-Databases גדולים בכל Query אתה כבר צריך לעבור ולתקן משהו ולבדוק.
      • אז אם הם פתרו את זה אז זה מגניב.
    • כמובן שיש בעיות של Performance, אולי - אני לא יודע, כי הרבה פעמים אתה כותב את ה-Query בצורה מאוד מסויימת בשביל שתיהיה איזושהי אופטימיזציה עם ה-Database, ובעצם יכול להיות שזה ילך לך לאיבוד, לא יודע.
    • (דותן) מעניין, כל ה-Stored Procedures . . . עולים לי כל מיני זכרונות מהעבר . . . אז זה מתרגם את הכל? לא זוכר אם אתה יכול להריץ Net. בתוך SQL Server, אבל  . . . לא יודע.
    • (אלון) נכון, יש Custom Filters . . . וואו, לא יודע - אני לא יודע עד כמה רחוק זה יכול ללכת, אבל זה קונספט מאוד מעניין, כי בעצם אומרים “הכל עובד - אתה לא צריך לשנות כלום”.
      • מעניין - אם זה טוב, זו גישה מאוד מאוד מעניינת.
    • אם מישהו מכיר את זה ועבד עם זה - האמת שמאוד מעניין אותי לשמוע האם זה שווה משהו או האם זה עובד בכלל, כל הדבר הזה.
  • הדבר הבא - A Complete Guide to LLVM ליוצרי שפות תוכנות , for Programming Language Creators . . .
    • אז LLVM זה מה שבעצם כל השפות ה- Low-level מיתרגמות איתו - אליו - והוא בעצם מתורגם למעבד, x86 או ARM וכו’.
    • ואז הם אומרים שאם אתה רוצה אתה יכול לראות איך זה עובד, ובתיאוריה אתה גם יכול לכתוב שפה משלך שמתורגמת לזה, ואז לעשות שם את האופטימיזציות שמתאימות לך.
    • למי שמעניין אותו קצת LLVM-Under-the-Hood ואיך שהדברים האלה עובדים ואוהב להיכנס לדברים האלה - יש פה משהו מאוד ציורי ומאוד User-friendly, בעיקר עם המון דוגמאות
      • המון-המון-המון דוגמאות
      • למי שאוהב את העולם הזה - זה אחלה חומר קריאה.
    • (דותן) אני חייב להוסיף שאם אתה עובד עם LLVM אז אתה ברמה של לבנות “שפה אמיתית” ולא “שפה צעצוע”, כי זה מנוע מאוד חזק - אז למי שאוהב את זה שווה להשקיע ולהבין איך LLVM עובד, ואז לכתוב שפה שהיא ברמה מאוד גבוהה ולא Translator כזה או משהו שהוא “צעצוע”.
    • (אלון) כן, אתה יכול לעשות . . . ככה כותבים שפות טובות.
    • (דותן) בדיוק . . .
    • (אלון) . . . משהו to-last. אפשר, בעיקרון, אם למישהו יש משהו מאוד מאוד ספציפי שהוא צריך אופטימיזציה אליו, אז יש מקרים מאוד נדירים ששווה לך אולי לכתוב את זה עם משהו מעל LLVM כדי שיעשה את האופטימיזציות שאתה צריך, ולא יעבור דרך Rust או C, שהם עושים את האופטימיזציות שטובות להם ל80/20 או 90/10, אבל לא בהכרח בדיוק מה שאתה צריך לפעמים ל-High performance או משהו כזה - מעניין מאוד.
    • באופן כללי זה חומר קריאה מאוד מעניין כי הוא מאוד נגיש, ממש נגיש.
  • אז לדותן . . .
  • (רן) רגע, חווה! . . .
  • (אלון) אה! סליחה, דילגתי עליה - ויש הסבר, כי זה בעברית, וזה זז לי יימינה אז לא ראיתי אותה (עפר מזדהה) - יש את חווה סקריפט
    • זה אתר שיושב תחת github.io בשם חווה סקריפט  -” שמי חווה, וזו שפת התכנות שלי, חווה סקריפט, שפת תסריט בעברית בלבד, אשר מומרת בזמן אמת ל-JavaScript על ידי תרגום מילות המפתח ושמות המשתנים מעברית ללועזית” . . . וכן הלאה.
    • אפשר לכתוב פה את התוכנית ולהריץ אותה תוך כדי.
    • אז יש פה 
      • יכולת לברך(מבורך) {
      •     בקרה.תעד(״היוש, ״ + מבורך);
      • }
      • לברך(״עולם״);
    • נורא קשה לנסות לתרגם את זה בלי לראות, אבל מה שזה עושה זה JavaScript Function שמקבל משהו ועושה Const וכו’
    • ממש נחמד, בכנות - זה נשמע לי סיוט, אבל לא יודע, אולי יש ילדים בעולם שזה יהיה להם נוח, אני לא יודע . . . יודע שזה חצי בדיחה אבל זה קונספט מעניין.
    • (דותן) כן
    • (רן) כן, זה נראה לי בדיחה, אבל מצד שני זה נחמד, גם בדיחות זה נחמד . . . דרך אגב, הסתכלתי על ה-Contributors והייתי בטוח שה-Contributor הראשית זו אישה בשם חווה, אבל מסתבר שלא וזה קצת מאכזב, אבל לא נורא.
      • בכל אופן נשמע (נראה) שכולם ישראלים - יש לנו כאן את אביב ודורי ועידו, יותם, עידן ועוד מישהו שלא ברור איך קוראים לו בגלל ה-username שלו ב-GitHub, אבל בכל אופן - כן, נשמע כאילו כולם ישראלים.
      • צריך עכשיו רק לגייס חווה מאיפשהו - אז בבקשה, חבר’ה.
    • (אלון) “דרושה חווה לפרויקט”, כן . . . זה משעשע, וחבר’ה - גם אם יש לכם ביקורת SOX וכאלה - אז לא יבינו אם אתם עושים שטויות בקוד, מומלץ בחום
      • נא לא לראות את זה כייעוץ משפטי, אבל  . . . סתם.
    • ועכשיו באמת לדותן.

דותן - 
  • מעולה - אז נחבר את זה רק עם ה-LLVM - ה-חווה סקריפט זה Transpiler, זאת אומרת - הוא לוקח קוד ועושה תרגום, בסופו של דבר, ל-JavaScript - שזה גם תחום מעניין: אם רוצים ליצור שפה ממש ממש מהר ובקלות זה מאוד מומלץ.
    • ראיתי ככה קצת ממה שהם השתמשו בו וזה כן בחירות נכונות, אז אם מישהו אי פעם חלם לבנות שפה, אפשר לקחת את חווה סקריפט ולבנות שפה שעושה משהו אחר, אולי בשפה אחרת, אולי ביידיש - הרמתי פה להנחתה?
    • (רן) “יאדה-סקריפט”.
  • (דותן) אז נתחיל - סתם רקע לכל האייטמים האלה, שכולם באים מאותו קו, כמעט כולם כתובים Rust: הייתי צריך לייעץ לכמה אנשים איך ללמוד Rust ואיפה להתחיל וכו’, ואחד הדברים שאני תמיד אומר זה “להתחיל בלבנות כלי מגניב” - 
    • איזשהו כלי Command Line - לא ללכת דווקא לבנות עכשיו איזשהו Service מטורף עם כל מה ש-Rust יודע לעשות,
    • צריך לבנות לעצמך איזשהו “סולם מאמצים” יותר נכון, כדי לא להתייאש
    • כל הכלים האלה, באופן מקרי, הם מאוד שימושיים ליום-יום
    • אחד מהם (מהכלים) ראינו באחד הפרקים הקודמים, כלי שאני משתמש בו גם ביום-יום, שעושה delta ב-Command line של Git - כתוב ב-Rust, והוא צובע יפה את כל ה-Diff-ים, וזה מאוד נחמד לי ועובד פגז.
  • אז הכלי הראשון נקרא hors - אני מניח שזה קיצור של סוס, Horse, רק מאויית לא נכון - וזה פשוט Port או כתיבה מחדש ב-Rust לכלי שנקרא howdoi, שהיה, ועדיין, כלי שב-Terminal אתה כותב howdoi עושה משהו?”
    •  והוא הולך ל-Stack overflow, מושך כמה דוגמאות קוד וזורק לך אותן ב-Terminal - כשחלק מהדברים שקורים כאן זה גם לצבוע לך אותו וכל מיני דברים כאלה.
    • אז זה מעניין, למי שרוצה עכשיו להבין איך אני בונה איזשהו כלי שיוצא לרשת ולוקח ועושה דבר שהוא יותר מטריויאלי, עושה Syntax highlighting ודברים כאלה.
    • וזה גם כלי שימושי למי שרוצה לפקס את כל העבודה שלו מסביב ה-Terminal, ועובד עם Stack overflow ורוצה לדעת בשנייה איך עושים משהו, ורוצה לקבל את הכל ב-Terminal, ולא רוצה לצאת ל-Browser.
    • אז זה דבר אחד.
  • הדבר השני הוא כלי שנקרא mdcat - כלומר Cat ל-Markdown - כמו Cat רגיל, רק ברגע שאתה עושה Cat ל-Markdown, או Variant של Cat ל-Markdown, אתה מקבל את זה צבוע
    • בעצם כמו ש Markdown אמור להיות, ולא השפת-מקור של Markdown.
      • כותרת נראית כמו כותרת, Bold נראה כמו Bold, ושוב - הכל ב-Terminal.
      • זה הכל מניפולציות מוזרות של ANSI וצבעים מעבר ל-16 צבעים שמותר וכל מיני דברים כאלה מגניבים.
      • וכשיש תמונה, ויש Terminals שתומכים זה, אז אתה רואה פשוט תמונה . . . 
    • שימושי למי שממש, אבל ממש, אוהב לעבוד מה-Terminal, לעשות Cat ככה וקבל איזשהו קובץ Markdown ולשחק עם זה ככה.
    • עוד פעם - מבחינת ללמוד Rust ולבנות כלי זה אחלה - אין שם יותר מכמה קבצים בודדים
      • זה קורא קובץ, עושה משהו, מוציא איזשהו תחכום ל-Terminal - וזה אחלה בסיס להתחיל.
  • האייטם הבא נקרא amp.rs - זה Editor  שהוא דמוי VIM (לא אלה), וחופף ל-VIM - כתוב כולו ב-Rust
    • סופר-סופר מהיר, מן הסתם.
    • עובד מדהים, ניסיתי אותו קצת - לא יודע אם אני אחליף את ה-VIM שלי בכזאת קלות אבל הוא מדהים.
    • זה לאנשים שאוהבים טיפה יותר אלגוריתמיקה - ב-Editors יש המון אלגוריתמיקה - ואם אתם אוהבים אלגוריתמיקה ורוצים לעשות Manipulations, לראות איך עושים את זה ב-Rust, לראות איך זה קורה, איך זה “מריח”, איך זה שונה מלעשות עיבוד שפה בשפה אחרת.
      • סתם לדוגמא - היום אני בונה קוד שמעבד שפה, ואיך שעושים את זה ב-Rust זה יוצא הרבה יותר קומפקטי מ-Python, וגם יותר Safe - זה אומר שאני עובד עם Float 32 או 64, אז חייב לנקוב ב-Types שלי - והקוד שיוצא הוא פשוט יותר Safe ויש בו פחות טעויות שמגלים הרבה אחר כך, אחרי שמאמנים מודל.
  • האייטם הבא נקרא zola - זה בעצם תחליף-HUGO
    • (אלון) תחליף זול . . .
    • (דותן) תחליף זול ל- HUGO . . . האמת שאני לא יודע, מנסה לראות אם יש פה מישהו שיודע עברית . . . לא נראה לי, לא נראה שזה זול - “זולה” . . . (אולי לזה).
    • אבל יש פה תחליף ל-HUGO, כשאנחנו יודעים ש-HUGO זה תחליף ל-Jekyll - ו-Jekyll זה המקור לכל ה . . . בעצם הסבא-רבא של כל הדבר הזה.
    • מה שמעניין פה זה שזה לא סתם צעצוע ולא סתם פרויקט שאפשר ללמד ממנו - כשמסתכלים על מה שיש לו ומה שלאחרים אין - יש פה טבלה מאוד פשוטה - כמעט הכל כאן מסומן ב-V עם הרבה יכולות, כשיש דברים שאין ל-HUGO ויש לו - מאוד מעניין.
    • וכמובן, בגלל שזה Rust אז זה כנראה הכי מהיר והכי יעיל מבחינת Performance שאתה יכול לקבל.
    • זהו - מעניין.
  • (אלון) “הפרק בחסות Rust!” . .. 
  • האייטם הבא נקרא syntect_server - זה Server שעושה Syntax highlighting
    • יושב תחת Sourcegraph
    • זה קשור לדברים שאני עושה ביום-יום - להתעסק עם קוד, לפרסר (Parsing) קוד, לנתח אותו - וזה אחלה פרויקט לקחת שנייה וללמוד איך אני יכול לבנות עכשיו איזשהו server מאוד מאוד קליל ופשוט כדי להגיש סוג של תוכן, או “לבנות סוג של Microservice שעושה משהו אחד”.
    • (רן) לא נעים להגיד, אבל אני חושב ש-Sourcegraph זו חברה שהייתה מאוד ממוקדת ב-Go, מבחינה טכנולוגית, אז אני לא יודע כמה מה-Services שלהם הם העבירו ל-Rust
      • אני רואה שיש להם כרגע, אם אני מסתכל על ה GitHub שלהם, יש להם עדיין הרבה מאוד דברים ב-Go, וגם ב-TypeScript וגם ב-Python, אפילו גם קצת ב-Ruby
      • אני לא רואה הרבה דברים ב-Rust, בינתיים.
    • (דותן) אני חושב שהפרויקט הזה מסמל קצת את מה שהם עושים - הם לקחו חבילה שנקראית syntect, שזה syntax highlighter שכתוב ב-Rust, באמת אחד הטובים שיש - בכלל, בכל שפה שהיא.
    • למה זה טוב? זה אומר שהוא מכבד את חבילות ה-Syntax של Text Mate, לימים Sublime Text, והמנוע הזה ש-Text Mate ייצר ו- Sublime Text אימץ הוא אחד המנועים הטובים לעשות Syntax highlighting.
    • ואז כתבו את syntect, שהוא מנוע שמציית לחוקים, זאת אומרת - לקחו tmbundle, שזה ה-Resource שבאמצעותו אתה מתאר את השפה, מפרסר (Parsing) אותו ועושה highlighting של Source code במהירות מסחררת.
    • נראה לי שמה שהם רוצים לעשות זה להתשמש באותה חבילה, לעטוף אותה ב-service - כי אין להם יכולת לכתוב משהו מ-Rust או להמיר ל-Rust - ואז פשוט כדי לעשות את ה-Syntax highlighting הם פונים לתוך Service שמדבר איתם ב-API מאוד ברור.
    • (רן) כן, זה בעצם הפרויקט היחיד שיש להם ב-Rust, חיפשתי . . .
    • (דותן) כן, נראה הגיוני.
  • יש פה עוד פרויקט, שלא קשור בהכרח ל-Rust, לא בדקתי - זה נקרא Depix . . . סוג של מפחיד
    • (אלון) אני חייב לציין שאני הרבה זמן אמרתי שבטוח יש משהו כזה, כי זה פשוט גיאוני מדי  . . .
    • (דותן) אז אני אסביר רגע, כי יש פה משהו ויזואלי:
    • השורה הראשונה היא טקסט שהוא Pixelized, זה אומרת שמישהו רצה להחביא טקסט - סודי, Classified, מה שזה לא יהיה - והפיקסליזציה היא . . 
    • (רן) רק אני אגיד רגע לפני זה - הרבה פעמים נהוג שאם אתם לוקחים איזשהו Screenshot, ואתם רוצים להחביא פרטים אישיים, אז בהרבה כלים יש יכולת לעשות פיקסליזציה.
    • (דותן) לא הכרתי את זה . . . משהו שמזהה טקסט ואז עושה מזה פיקסלים אוטומטית?
    • (רן) אני לא יודע אם יש אוטומטי, אבל יש כלי שאתה יכול לבוא ידנית ולסמן איזורים שזה יהפוך אותם ל-Pixels, כדי שלא יזהו - 
      • זה שימושי, נגיד, אם אתה רוצה להוציא איזשהו Screenshot  . . .
    • (אלון) ל-URL-ים לפעמים עושים את זה, כשאתה רוצה להראות עמוד, נגיד אם נכסנתי לאיזה בנק, אז אני עושה לחלק למעלה פיקסליזציה של ה-URL או כאלה, יש מלא
    • (רן) כן . . . אז מה הכלי הזה עושה?
    • (דותן) אז אילו שני דברים שתמיד הייתי פרנואיד לגביהם - תמיד הייתי שם בלוק שחור, ותמיד הייתי מוודא שזה לא איזה SVG או איזה PDF, ששמר לי את הבלוק השחור אבל אז מתחת יש את הטקסט . . .
    • אז בכל אופן - הדבר הזה מקבל תמונה, עם פיקסליזציה של טקסט, ומנחש מהו הטקסט שמאחוריה . . . 
      • זאת אומרת כמו בסרטים, כשהוא אומר “תחדד את זה! תעשה פי שתיים! תחדד” - אז כזה.
    • ורואים פה שזה די מצליח.
    • כשאני רואה פה מול העיניים, כנראה שלאותיות מסויימות יש כזה  . . נגיד L זו אות שחוצה קו  . . .
    • (רן) אני מניח שמה שיכול לעזור לו זה להסתכל על הפונט בשאר הדף, ואז הוא יודע באיזה פונט זה היה לפני זה, או פשוט, מן הסתם הוא מסתכל על המשבצות ורואה מהי דרגת הכהות או הבהירות ויכול לנחש.
      • הוא גם יכול להכיר את האלגוריתם שבו נוצרה הפיקסליזציה, נגיד לקחת את הממוצע של חמשת הפיקסלים הקרובים ולהפוך את זה לצבע אחד או משהו כזה.
      • ועם כל הדברים האלה - נשמע סביר לגמרי שתוכל לעשות Reverse Engineering . . .
    • (דותן) כן, אז אתם מוזמנים לקחת ולהתחיל לגלות את מה שמחביאים מכם, לכל מי שאוהב תיאוריות קונספירציה.
    • אז זה היה Depix.
    • (רן) מעניין, דרך אגב - עכשיו, כשאני מגדיל את התמונה, אני רואה שגם בטקסט המקורי יש לא מעט Anti-aliasing
      • זאת אומרת שאם תעשה Zoom-in, אתה תראה ששזה לא רק שחור אלא  שחור עם גבול של אדום ותכלת
      • ואני תוהה האם ה-Anti-aliasing הזה גם משפיע על כל הסיפור הזה, או שזה סתם איזשהו משהו בתצוגה פה, של . . .
    • (דותן) מחשבה חכמה, אני חושב שיש לך ראש של פושע . . .
  • האייטם הבא נקרא ImHex - וזה Hex Editor, בכותרת כתוב שזה ל-Reverse Engineers, אבל אני אוהב Hex Editors באופן כללי, אז לאו דווקא עבור Reverse Engineers.
    • מתי אתה אוהב את זה? כשיש טקסט מוזר והכל נראה לך נורמאלי אבל משהו לא מתקמפל (Compile), ואז אתה מגלה שיש איזה Unicode או איזושהי אות בסינית שהבאת מאיפשהו או Emoji . . .
      • (רן) הגרשיים . . . תמיד כשאתה עושה Copy-Paste מתארים, הגרשיים מתחרבנות
        • (מזדהה גם כאן”)
    • (דותן) בדיוק, ואז, אם אתה רוצה להתחיל לסבול, אתה יכול לנחש, אבל אתה גם יכול לפתוח  Hex Editor ולראות איך דברים נראים מאחורה.
    • ופה יש Hex Editor שהוא מאוד מאוד מרשים - מזכיר לי את ה-Editor-ים הישנים והטובים של לפני 20 שנה, עם כל מיני זיהויים של מילים ו-Patterns
      • יש כאן אפילו כזה Distribution משוגע.
    • דבר אחרון - למה זה נקרא ImHex? בגלל שהוא משתמש בספרייה שהזכרנו פה בעבר (?), שבונה GUI - שנקראית ImGUI, כתובה ב-C
      • משתמשים בה לרוב במשחקים - כשיש לך משחק ואתה רוצה תפריט בתוך או משחק, או איזשהו Developers Console בתוך המשחק
      • הספרייה הזו לגמרי מצויירת ידנית, לא עובדת עם מערכת ההפעלה, כל ה-Widgets כולם ממש מצויירים מאפס, ולכן אין לה שום תלות במערכת ההפעלה.
      • גם לא מפתיע אותי שהדבר הזה הוא Cross-platform, מה שנקרא “בהליכה”.
    • זהו, זה Open-source וחינם, אז שווה לתרום ולהוריד, או רק להוריד - מה שבא לכם.
  • בשביל הבאזז של ה-Crypto, שמתי פה פרויקט שנקרא freqtrade
    • זה קריפטו-בוט שעושה Trading - מה שנקרא: “מסיר אחריות”
    • (דותן) כן, אז היום שוב פעם הביטקוין חצה רף (היסטורי כלשהו), ומה שמעניין זה שכאילו זה שובר שיאים, אבל אנחנו לא רואים את הפטריות שאחרי הגשם, וכל האלגוריתמי-קסם שפותרים את ה-CAP Theorem
      • זה הפסיק לקרות, לא ראיתי אנשים שאומרים שפתרו את ה-CAP Theorem.
    • (אלון) כן, אבל מה שכן מעניין בקשר לזה, זה שדווקא אתמול Goldman Sachs הוציאו הערכה שהביטקוין יגיע ל- $145,000, כי הוא ניהיה כמו זהב, וכדי שהוא יהיה כמו זהב . . . לא משנה, יש שם איזשהו הסבר מפורט למה, אבל הוא בכלל לא כסף, הוא סתם סחורה . . .
    • (דותן) אז לכל אלה שפתרו את ה-CAP Theorem ב-Cycle הקודם, אפשר לראות האם הם יחזרו שוב פעם ויגידו שפתרו את ה-CAP Theorem עוד פעם . . .
    • (אלון) לא, הם לא צריכים - הם יושבים על איזה אי מלא ב-Bitcoin-ים . . . לא יפתרו את זה כבר, זהו, נהיו עצלנים . . .
    • (רן) אני רואה, דרך אגב, שיש לו ממשק ל-Telegram שנראה נחמד, ל-Bot הזה - אתה יכול להתחבר אליו ולשלוח פקודות ולקבל סטטוסים.
    • (דותן) אז זהו - תגידו לי, כשאתם פותחים את ה-Bot אז איפה הוא נמצא ב-Telegram, ואני אדבר איתו . . .
  • הפרויקט הבא נקרא photoprism - לאנשים שלא אוהבים את כל ה . . . נקרא לזה Hosted Photo Services, או Hosted-כל-דבר, אנשים שאוהבים פרטיות
    • אז זה כמו Google Photos, רק ב-Hosted, כתוב ב-Go, עובד עם TensorFlow, ועוד כל מיני Buzzwords כאלה ואחרים.
    • אני אישית בסדר עם זה שכולם גונבים לי את כל הדאטה ועושים מזה כסף, אז . . .
    • (רן) ואתה גם משלם להם על זה, רק נזכיר . . . עכשיו Google כבר מתחילים לקחת כסף אם אתה עובר את המכסה, מה שקודם הם לא היו עושים.
    • (דותן) אז זהו, אני בסדר עם זה, כי ה-Overhead של לנהל את זה לבד בבית - אני כבר לא . . . אני זקן מדי בשביל זה.
  • פרויקט נוסף שנקרא TabFS - מאוד נוגע לי בנקודה כואבת אבל אישית לא ממש הצלחתי לעבוד עם זה, אולי אחרים יצליחו - 
    • זה בעצם לוקח את כל ה-Tab-ים ב-Chrome והופך אותם ל-File System, ועכשיו אפשר להתייחס ל-Tabs כמו אל File System.
      • זהו, מן דבר משוגע כזה. אני ממש צריך משהו כזה, אבל לא יודע, לא הצלחתי לעבוד עם זה כל כך.
    • (אלון) אני אגיד לך גם למה לא, אני נתקלתי בזה בעבר . . . בוא אני אסביר לך, בוא תקשיב
    • (דותן) יאללה
    • (אלון) ה-File System של ה-Mac זה אחד הדברים עם ה-UX הכי פחות נוחים בעולם הזה . . . קח משהו עם UX סבבה, או בינוני, לא משנה - ולקחת אותו, שינמכת לו את ה-UI ל-Usability כמעט בלתי אפשרית, אז איך זה יהיה נוח?
    • (רן) אבל הוא דווקא מראה פה על שליטה מה-Command Line, אולי בשביל יכולת לעשות Copy מתוך הדפים, או משהו כזה.
      • למרות שאני עדיין לא ממש רואה את ה-Use case פה, אבל לא יודע - אולי Search  . . .
    • (אלון) פרויקט סוף שנה של סטודנט . . .
    • (דותן) לא חפרתי פה מספיק . . .לא חפרתי בזה כל כך לעומק, אבל אתה חייב משהו כדי לנהל את כל ה-Tab-ים, ואני לא יודע איך Chrome לא עושים משהו עם זה
    • (רן) אולי אוטומציה? אני רואה פה יכולת לעשות כאילו קצת כמו . . . איך זה נקרא? זה ששולט ב . . . הכלי בדיקה הזה?
    • (רן) כן, קצת כמו Selenium, שאתה רק צריך לפתוח את ה-Tab מחדש, ומאותו הרגע הוא מנוהל לך באופן אוטומטי, אז אולי זה גם Use case.
    • (דותן) הייתי שמח לאיזה כפתור ב-Chrome שאני לוחץ עליו ואז הוא אוסף את כל הטאבים של Github ושם לי אותם ברשימה אחת ב-Note - וזהו.
      • אני לא באמת צריך אותם פתוחים . . . זה נחמד שזה שמור בטאבים
      • אני כמו כולם עם המחלה הזו של לפחד לסגור טאב
      • בקיצור - הנה רעיון למי שמקשיב . . .
    • (רן) אתם משתמשים ב-Tab Groups ב-Chrome, אגב? נושא אחר . . . יש ב-Chrome פיצ’ר כזה שנקרא Tab Groups והוא מאוד נחמד
      • (דותן) מתי זה נולד, הפיצ’ר הזה?
      • (רן) לא יודע . . .
      • (מאי 2020?)
    • (אלון) האמת - אני השתמשתי בו, נורא התלהבתי - ושכחתי ממנו אחרי איזה יום וזהו . . . ועכשיו הזכרת לי.
      • זה מסוג הדברים שאתה עושה “וואו! איך זה משנה את חיי!” ואז . . .
    • (רן) אני דווקא חייב להגיד שאני משתמש בזה הרבה, וגם הילדות שלי מתות על זה - כל פעם שאני מגיע ורואה את ה-Chrome שלהם, אז הכל זה בצבעים ועם שמות
      • הן מאוד מתלהבות ונהנות לסדר את הטאבים שלהן
      • אפילו עם זה טאב אחד בקבוצה, עדיין יש לזה צבע ושם.
    • (דותן) כן, זה פותר לי משהו! נחמד, רן!
    • (רן) יאללה, בכיף.
    • (אלון) אפשר לסיים את הפרק, חברים, זהו! הגענו לשיא, תודה רבה.
    • (דותן) כן . . . 
  • (טוב, אז אייטם אחרון באמת - יש פה פרויקט שנקרא redoc
    • למי שעובד עם Swagger ורוצה להרוויח ככה משהו בחינם - זה פרויקט שלוקח את -Swagger-ים שלכם ומייצר Documentation “כמו של הגדולים”, מה שנקרא.
    • וזהו, בעצם.

רן, אוקיי - אז כמעט לפני סיום, יש לנו עוד את הקטע האחרון שלך המצחיקולים - 
      • מכונית הפוכה על הגב, ושקע הטעינה תקוע לה מלמטה . . .
    • אז כל מי שהיה לו אי פעם עכבר של Apple כנראה יבין את המצוקה הזו, ובכל אופן אתם מוזמנים לבוא לבלוג שלנו (אתם כבר כאן אם אתם קוראים את זה…) וגם לראות את התמונה הזו.
  • והאייטם הבא - זה בעצם עמוד פייסבוק חדש, שהכינוי שלו הוא  @mad.programm3r (עם 3 במקום e בסוף)
    • ויש שם כמה Video-ים של מפתח עצבני, שבא ורוטן על מספר תופעות שאני בטוח שכולן יהיו מוכרות לכם
    • החל מ-Build ב-Jenkins שנכשל ועד קונפיגורציה שלא הותקנה 
    • והוא עושה את זה בצורה מקסימה וחיננית - לכו ותראו, כל וידאו הוא קצרצר ומצחיק.
  • (אלון) אני אמשיך - למי שעקב בפרקים הקודמים (ספציפית הקודם, 399), היה מישהו משעשע שהוציא וידאו של Stories בתוך VSCode
    • אז הבחור הזה הקשיב לנו, כנראה, לאחד הפרקים של 1 באפריל - הוא הוציא VSCode Tinder . . . שזה בעצם נותן לך לחפש מפתחים לפי כל מיני כישורי Skills שלהם, וזה מעיין Tinder למפתחים . . .
    • אתה שם דוגמאות של הקוד, ואז אתה רואה אם אתה אוהב את ה-Sample Code הזה - ואם אתה רוצה לדבר עם המפתח וכן הלאה . . .
    • אז שוב - הוא עשה וידאו היתולי ומשעשע, אתם מוזמנים לראות.
    • (רן) וכמובן שאנחנו מודים לאותו מאזין, שאומנם לא דובר עברית אבל ברור הוא הקשיב לאחד מפרקי ה-1 באפריל שלנו, ומשם הוא גנב את הרעיון המהמם הזה.
    • ואיך שלא יהיה - גם אם הרעיון נשמע לכם פחות סביר - לכו תראו את הוידאו. זה נחמד, יש שם הרבה בדיחות גיקיות, שווה צפייה.
    • (אלון) כן, זה ממש חמוד והומוריסטי ומגניב - שווה ממש.
  • דבר אחרון - מישהו עשה וידאו קצר ומהיר על איך שהוא עושה את השחקן The Rock - ב-CSS בלבד . . .
    • זה די פסיכי . . .
    • אבל זה מגניב ממש - הוא מצליח בסוף להציג אותו ממש יפה.
    • זה חמוד לכולם, גם למי שלא אוהב CSS
    • (רן) זה בעצם סשן של קידוד, שהוא מריץ אותו במהירות, נגיד x10 או משהו כזה, אבל מה הוא יוצר בסוף, מה זה The Rock?
    • (אלון) זה השחקן קולנוע המופרסם (Dwayne Johnson), המתאבק . . . בסוף הוא יוצא, אם תראה עד הסוף אתה תזהה.
    • (רן) הדמות ממשחקי הכס?
    • (אלון) לא! The Rock, בחור קירח כזה, 1.90מ’, שיחק ב-Jumanji
    • (רן) אהה . . .
    • (אלון) אוי איזה עולם יש לי פה . . . גרמת לי פה לחשוף  . . .
    • (רן) מההתחלה ידעתי, רק רציתי שתגיד . . .
    • (אלון) כן, עכשיו רק צריך להוריד את זה בעריכה, לעשות “ביפ!”
      • (לעולם לא)
    • (רן) מעולה, תודה, לא סיימתי לראות את הוידאו אבל אני כבר מתחיל להבין את הדמות, יפה.

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

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