בועז לביא מגיש פודקסט על קוד, שפות תכנות, באגים היסטוריים ולמידת מכונה. "תוכנה זוללת את העולם", קבע המהנדס והיזם האמריקאי מארק אנדריסן. ואין ספק שזה נכון. זהו פודקאסט למפתחים ולמפתחות, ולכל מי שרוצה לדעת ממה עשוי עולמנו המפוקסל, זה שנבלע בבטן האלגוריתם. עמית בן דור, מייסד הפודקאסט (לצד חן פלדמן) יתארח בפרקים נבחרים
…
continue reading
תוכן מסופק על ידי רברס עם פלטפורמה. כל תוכן הפודקאסטים כולל פרקים, גרפיקה ותיאורי פודקאסטים מועלים ומסופקים ישירות על ידי רברס עם פלטפורמה או שותף פלטפורמת הפודקאסט שלו. אם אתה מאמין שמישהו משתמש ביצירה שלך המוגנת בזכויות יוצרים ללא רשותך, אתה יכול לעקוב אחר התהליך המתואר כאן https://he.player.fm/legal.
Player FM - אפליקציית פודקאסט
התחל במצב לא מקוון עם האפליקציה Player FM !
התחל במצב לא מקוון עם האפליקציה Player FM !
440 Bumpers 79
MP3•בית הפרקים
Manage episode 330843618 series 2497397
תוכן מסופק על ידי רברס עם פלטפורמה. כל תוכן הפודקאסטים כולל פרקים, גרפיקה ותיאורי פודקאסטים מועלים ומסופקים ישירות על ידי רברס עם פלטפורמה או שותף פלטפורמת הפודקאסט שלו. אם אתה מאמין שמישהו משתמש ביצירה שלך המוגנת בזכויות יוצרים ללא רשותך, אתה יכול לעקוב אחר התהליך המתואר כאן https://he.player.fm/legal.
אחרי כמעט חמישה חודשים: רן, אלון ודותן בסדרה של קצרצרים על חדשות טכנולוגיות מעניינות.
רן -
- בזמן האחרון אני נמצא הרבה בעולמות של Data Science ורציתי לספר על כמה דברים מעניינים שקורים שם, ואחד מהם זו ספרייה שנקראית JAX
- ו-JAX זה למעשה מימוש-מחדש לספרייה יחסית-ותיקה שנקראית NumPy, שאני מניח שהרבה מאוד מכירים.
- זה לא רק מימוש של NumPy - זה משהו שהוא קצת יותר גדול, ומכיל גם לא מעט דברים שמעבר.
- למעשה זה מימוש-מחדש להרבה מ-Interface של NumPy - לדעתי זה נכתב ב-Google [אכן - google/jax] - ועושה שימוש בטכנולוגיות הרבה יותר מודרניות
- למי שלא מכיר, אז ב-NumPy - הרבה חלקים ממנו כתובים ב-C, אבל הרבה חלקים ממנו גם כתובים ב-Fortran וכו’
- והוא לא עושה שימוש לא ב-GPU ולא ב-TPU או באקסלרטורים (Accelerators) שונים מסוגים שונים -
- ו-JAX כן עושה את זה, נכון להיום - וגם הרבה מעבר.
- הוא אמור להיות Drop-in replacement ל-NumPy וגם לכלים אחרים.
- ניסיתי אותו - בינתיים הוא עובד סבבה . . . עוד לא עשיתי לו ניסוי כלים משמעותי
- אבל נראה סופר-מעניין, למי שבתחום.
- אז זהו - פשוט לחפש JAX ותמצאו את זה
- לא להתבלבל עם Jax שהיה פעם בעולם ה-Java - זה משהו אחר לגמרי, הם רק לקחו את השם . . .
- (אלון) למה, בעצם . . . . למה? מי רוצה את זה? למה לי?
- (רן) אז אם אתה עובד בעולם של Python ו-NumPy ואתה רוצה לכתוב תוכניות שרצות יותר מהר ממה ש-NumPy נותן לך היום - אז אתה רוצה את זה.
- כי NumPy בעצמו הוא סופר-סופר מהיר, אבל יש לא מעט שיפורים שאפשר לעשות - בעיקר שימוש בחומרות יותר מודרניות.
- אז זהו - זו הסיבה שתרצה לעשות את זה . . .
- אם תרצה - אמרתי . . . אם תרצה.
- (אלון) אם תרצה - אין זו אגדה . . .
- (רן) ובעניין אחר, אבל לא רחוק - יוצא לי לעבוד לא מעט עם Jupyter Notebook ובסביבה של VSCode ויש לא מעט אינטגרציות בין שניהם
- אז אם אתם עובדים באמת עם Notebooks ועם VSCode, אז יש לכם כמה דרכים שבהן אתם יכולים לעשות את זה.
- אחת זה פשוט לפתוח ולערוך Notebook בתוך VSCode - זה בסדר ל-Notebook-ים קטנים
- הניסיון שלי הוא שאם ה-Notebook גדול מדי - פשוט ב-VSCode דולף הזיכרון ובסופו של דבר . . . לא VSCode ספציפית, כנראה שזה ה-Extension -
- אבל בסופו של דבר זה מתחיל, ככה, לג’עג’ע כשיש Notebook-ים גדולים, בעיקר כשיש הרבה תמונות
- אז זה לא סופר-סופר נעים - אבל מה שכן, יש עוד אופציה! - אתם יכולים פשוט, בתוך קובץ Python, לייצר Cell-ים קטנים - Cell-ים של Jupyter - ולהריץ אותם
- אתם עושים את זה על ידי זה שאתם עושים #% - “הערה” - ו-%% - ואוטומטית VSCode הופך את זה ל-Cell ומריץ אותו
- ואז זה נחמד יותר . . . . אתם יכולים להריץ קטעי-קוד קטנים, לראות בצד ימין את ה-Output - וזה חמוד.
- אפשר גם לייצר ממש גרפים והכל . . . . זה נחמד.
- היתרון של לעבוד בתוך VSCode הוא שיש לך את כל ה-IntelliSense ו-Copilot, אם אתם משתמשים
- אז זה יכול לעזור וזה נחמד.
- (אלון) התכוונת ל-Copilot - ו-Copilot משתמש בך . . . . אני הגעתי כבר למצב שהוא משתמש בי מדי פעם: הוא עושה לי “תזיז את העכבר, אתה מסתיר לי” . . . . וזהו.
- (רן) אני מניח שהוא עושה בי שימוש לרעה בהרבה מקרים, אבל לא הרגשתי את זה . . .
- אבל כן - תכל’ס הניסיון שלי עם Copilot הוא סבבה
- זאת אומרת - לפעמים זה מפריע, אבל הרבה מקרים הוא ממש עושה “בול”, ממש מה שהתכוונתי. נחמד.
- בעיקר כשאני כותב טקסטים - קבצי ReadMe ודברים כאלה - ההשלמות שם הן ממש יפות.
- גם בקוד זה סבבה - אבל בטקסטים זה ממש . . . חוסך “טונה של הקלדה”.
- (אלון) כן, טוב - קפצנו אליו . . . אבל כן, הוא מדהים - זה . . . מזמן לא נתקלתי בכלי חדש כזה שמפתחים אשכרה - אם עכשיו יקחו להם אותו, הם יהיו מוכנים לשלם עליו. אין הרבה כאלה . . .
- (רן) כן . . . לא תמיד החווייה מדהימה, אבל יותר “כן מ”לא” - ובסה”כ זה ממש נחמד.
- (רן) האייטם הבא שלי, בתחום של Machine Learning - זה איזשהו דף שמסביר איך עובד Random Forest -
- אז Random Forest זה אחד האלגוריתמים הנקרא-לזה-יחסית-קלאסיים . . . זאת אומרת - זו לא רשת נוירונים אלה זה בעצם אוסף של עצי-החלטה.
- והדף הזה למעשה בה ומסביר בצורה ויזואלית מאוד יפה - עם Scrolling ככה, “כמיטב המסורת”, Scroll-ים חמודים - איך נבנה Random Forest, ככה, בהדרגתיות.
- וזה מגניב למי שבא ורוצה להבין את האלגוריתם הזה בצורה ויזואלית - אז יש פה הרבה דברים אינטראקטיביים
- לא רק ה-Scroll-ים - יש פה גם דברים שאפשר ללחוץ עליהם והוא מסווג אותם
- בקיצור - חמוד . . . סימולציה נחמדה של Random Forest, כתוב יפה, נראה יפה ויזואלית - מגניב לאללה.
- (אלון) איך אני מת על כאלה דברים, שמסבירים לך אלגוריתם ב-View . . . איפה הדברים האלה היו כשלמדנו לתואר? . . . .
- (רן) כן . . . חמוד לאללה. אני זוכר שאפילו הצגנו פה, בטח באחד הפרקים של הסדרה, כל מיני סימולציות של אלגוריתמי-מיון וחיפוש . . .
- [ב-2014?! . . . 219 Bumpers 14, אבל הלינק המקורי כבר מת, נשאר רק זה - AlgoRythmics]
- אני זוכר שראיתי לא מעט דפים כאלה, אז זה ספציפית מדבר על Random Forest - ובנוי מאוד מושקע ויפה.
- והאייטם הבא שרציתי לדבר עליו זו ספרייה, או למעשה כלי, שנקרא Gradio - זה בעצם UI ל-Demo של Machine Learning
- זאת אומרת שאם בניתם איזשהו מודל - נגיד, מסווג של תמונות חתולים - ואתם עכשיו רוצים לתת לאנשים ככה בתוך החברה או ככה לתת לחברים להתנסות
- להעלות תמונות ולתת למסווג להגיד האם זה חתול או לא חתול, או כל סיווג אחר, לצורך העניין
- אז למעשה, Gradio נותן לכם איזושהי פלטפורמה די פשוטה, שבא אתם יכולים לייצר את ה-UI הזה.
- זה לא משהו שמתאים ללקוחות-קצה, בדרך כלל - זה לא סופר-סופר-יפה . . . .
- זה נראה בסדר, אבל אין לזה בדרך כלל איזשהו “touch “מוצרי” מאוד ספציפי
- אבל בתור איזשהו כלי-פנימי זה מאוד נחמד - אתם בעצם יכולים לייצר מודלים, לחשוף אותם החוצה . . .
- הכל כתוב ב-Python - זאת אומרת, הוא מייצר איזשהו Backend ובסופו של דבר הוא מריץ JavaScript בדפדפן, אבל אתם לא צריכים לדאוג לזה.
- אתם בסך הכל משתמשים בכמה בלוקים - נגיד בלוק של Input, בלוק של Demo, בלוק של Output - והוא בסופו של דבר יודע לחבר את הבלוקים האלה ולייצר Demo חמוד.
- אז זהו - נחמד למי שרוצה לעשות איזשהו Demo של מודל שהוא בנה.
- בנוסף . . . . לא אמרתי שבעצם Gradio זו חברה שנקנתה ע”י Hugging Face - אחת החברות הגדולות בתחום של Machine Leaning, בעיקר בתחום של NLP
- למעשה, נכון להיום - אולי בזמן שהפרק הזה יתפרסם - יש מה שנרא מסיבת בלוקים!
- מה זו “מסיבת בלוקים”? זה בעצם איזשהו אירוע שבו מייצרים בלוקים (Blocks) ל-Gradio
- אז Gradio מיוצר מבלוקים שונים - אמרתי שיש בלוקים של Input, בלוקים Output, בלוקים של מודלים
- בעצם, אתם בתור מפתחים יכולים לחבר את הבלוקים האלה, ואז אפשר לחשוב על זה כמו על בלוקים של לגו - סליחה על האלגוריה הטריוייאלית . . . [חכה שתדרוך על אחד]
- וזהו - יש “מסיבת בלוקים” שבה אתם יכולים לפתח ולהצטרף -
- זה משהו שקורה Online - בצורה א-סינכרונית, לא צריך ממש להתחבר לשם . . .
- אז אם אתם רוצים להצטרף למסיבה - שמתי גם את הלינק הזה.
- ובכל מקרה, בלי שום קשר - אתם יכולים להשתמש ב-Gradio כדי להחצין את המודלים שלכם.
- (אלון) אני חייב לציין משהו על ה-Gradio הזה . . . אני שנייה אשלח לכם, כי אני רוצה את דעתכם, שהקהל פה ידע, אז שנייה [חכו רגע עם הקריאה של השורה הבאה לייצר את האפקט . . . ]
- בקיצור - עשיתי פה ציור, כדי לבדוק מה הוא מזהה, והוא החליט שזה ספר . . .
- עכשיו, אני רוצה לשמוע את דעתכם - עד כמה הוא קרוב למילה “ספר” . . . .
- (דותן) ציירת כלב עם שפם, או . . . לא יודע, מה זה? . . .
- (אלון) התחלתי מפרצוף, והוא עשה פרצוף ואז Smiling face אז עשיתי אותו עצוב . . . ואז רציתי לראות האם הוא מזהה שפם אז אמרתי “נהפוך אותו לכלב” - והוא החליט שזה ספר . . .
- (רן) כן . . . חשוב אולי להגיד את ה-Disclaimer ש-Gradio זה לא המנוע Machine Learning עצמו - הוא בסך הכל משתמש באיזשהו מודל ונותן לך אפשרות להחצין את המודל הזה, לשחק איתו . . .
- אם המודל גרוע אז הוא גרוע - זה לא אשמתו של Gradio, לצורך העניין . . . . זו אשמת מי שבנה את המודל.
- אבל אני כן אגיד שראיתי לא מעט ממשקים כאלה לדוגמא - בחלק מהממשקים זה עבד מגניב ובחלק מהמקרים ממש לא
- אבל שוב - זה עניין של הכוח של המודל עצמו - Gradio זו בסך הכל איזושהי ספריית UI שעוזרת לך להחצין את המודל ולתת לאנשים לצייר או לכתוב משפטים או להשלים משפטים או דברים בסגנון הזה.
- (אלון) כן, האמת שזה מגניב . . . יש פה עוד דוגמאות חוץ מהציור הכשרוני שלי שהמודל דפוק, האמת שזה די מגניב . . .
- (רן) זה נחמד כשאתה . . .
- (דותן) זה מעניין ב-Context של ילדים גם - זה די מפשט דברים, לאקספרימנטציה . . .
- (רן) ה-Use case שהם בנו זה שיש Researcher שמייצר איזשהו מודל, ועכשיו הוא רוצה לתת את זה, נגיד, למשתמשים פנימיים כדי לבדוק אותו - והם יכולים לתת לו פידבק.
- אז לפני כן זה היה קצת מסובך - זאת אומרת: “שילחו לי תמונות” או “תנו לי טקסטים ואני אריץ במודל ואגיד לכם מה ה-Output” . . . .
- וככה עכשיו כל אחד יכול לשחק עם זה אינטראקטיבית, דרך האפליקציית Web, וזה נחמד.
- וכן - נראה לי שגם לילדים זה חמוד . . . .יש ספרייה די גדולה, אם תסתכלו על ה-Quickstart או על ה-Guides, אז יש שם לא מעט דוגמאות של דברים שכבר עובדים ואתם יכולים לשחק איתם.
- (דותן) אני מנסה את ה-DALL·E mini - זה יעבוד? [כן! . . .]
- (אלון) וואי! זה מקביל ל-DALL·E הזה? . . . .
- (דותן) בוא נראה כמה זה טוב - זה לוקח מלא זמן בינתיים . . . אה, אוקיי . . .
- (אלון) טוב, אתה עושה ספויילר . . . יש לך את DALL·E, אני מקווה, באייטמים . . . .אם לא אז אתה עושה פה . . .
- (דותן) אין לי . . .
- (אלון) טוב - אז מישהו צריך לשים [כי לא ראינו מספיק Raccoon Astronauts . . .]
- (דותן) אני מנסה ואז אני אגיד לכם . . . .
- (רן) נגיד יש איזשהו Demo שמראה תמונות אולטראסאונד ויכול למצוא איזורים חשודים בתוך תמונות אולטראסאונד . . .
- יש כל מיני כאלה של “לענות על שאלות”, “שאלות ותשובות” ודברים כאלה . . .
- יש פה כמה דמואים נחמדים - וכמו בהרבה דמואים, זה עובד על הדוגמאות שהם נותנים ולא תמיד עובד על על דוגמאות אחרות שאתם מביאים מהבית . . .
- בכל מקרה, כמו שאמרתי - זו בסך הכל ספריית UI, זה לא המודל עצמו - על המודל אתם אחראיים . . .
- זה בסך הכל עוזר לכם לתת את המודל שלכם לבדיקה.
- זהו, עד כאן להיום - אני סיימתי את החלק שלי . . . כמו שאמרתי - קיצצנו הרבה. אז אליך, דותן.
- (דותן) טוב, מעניין - בינתיים ה-DALL·E mini הוא נחמד . . . עשיתי “Computer in the sea” ויצאו דברים נחמדים, אבל לא באיכות כמו של DALL·E האמיתי . . . טוב, אז נתחיל.
דותן -
- האייטם הראשון זה נקרא jaq - זה בעצם jq clone
- למי שלא מכיר את jq - זה כזה Query על JASON
- והפוקוס שלו [של jaq], מעל ה-jq שכולם מכירים, זה “Correctness, Speed, and Simplicity”
- ונראה לי שאת אף אחד מהם לא צריך . . .
- אבל[!] - זה כתוב ב-Rust, שאת זה כן צריך . . .
- רגע - אלון . . . .
- (רן) ה-jq הוא ב-JavaScript, אם אני זוכר נכון . . . .
- (דותן) לא - הוא ב-C . . . הפתעה!
- עכשיו, האמת ששום דבר מזה לא באמת צריך . . . . אולי, לא יודע, “Correctness”? . . .
- אבל הקטע המעניין הוא . . . הוא גם נתן איזשהו בלוק ב-ReadMe, שהוא יצר את jaq כי הוא לא היה מרוצה מה-Startup time של jq - שזה 50ms . . . . זה לא היה מספיק טוב לו.
- זו עוד סיבה לא לעשות . . . .
- אבל הדבר המשוגע פה, שכן מצאתי כמעניין, או Intriguing, זה שזה 30 פעמים מהר יותר מ-jq . . . פי 30
- קשה לי לחשוב . . . אלא אם כן הדבר הזה לא עושה כלום, קשה לי לחשוב על כלי שנכתב ב-C ואז כלי אחר שנכתב ב-Rust וה-Rust עושה לו out-perform של פי 30, זה דווקא ה-Highlight . . . משוגע.
- (אלון) אני מניח שהבנאדם המשוגע הזה, אם מפריע לו ה-50ms של כלי שאתה משתמש בו לא-יודע-פעם-בכמה-זמן-למי-אכפת - כמה זמן הוא שרף מהחיים שלו? שנייה? על שימוש בכלי . . .
- (רן) תרשה לי לנחש שהוא כנראה לא משתמש בצורה אינטראקטיבית . . . הוא מריץ על איזשהו Batch וה-50ms האלה מצטברים . . .
- (אלון) כן, אני יודע. . . בסדר, אני צוחק - אבל אני מניח שההבדל הוא באלגוריתם . . .
- (דותן) איזה Porting של איזה כלי משיג פי-30 Performance? זה לא . . .
- (אלון) אני מאמין שאפילו Python יביא לך את ה-Performance של פי- . . . אולי לא פי-30 - פי-1, אבל . . .
- (דותן) מול C . . .
- (אלון) כן - אבל אני מניח שזה יותר האלגוריתם מאשר השפה.
- (רן) כן - האם לעשות לזה . . . האם לטפל בכל מיני מקרי-קצה ודברים כאלה
- זאת אומרת - JSON זה משהו שיש לו כבר לא מעט Legacy ויכול להיות שה-Parser ה-Rust-י לוקח כנראה . . .
- (דותן) זה בהחלט יכול להיות . . תעלומה.
- האמת - זה פשוט נחת אצלי בתיבה של הדברים המעניינים ויש לי איזושהי תוכנית להבין למה, מתישהו . . .
- אז זה הנחמד ומה שנקרא “אתגר למאזינים” . . .
- (אלון) הימור שלי - אני מוכן להמר על חמישה שקלים, או עשרה שקלים - מה ההימור הקבוע שלנו? שכחתי . . . . -
- (רן) תהמר על חמישים . . . .
- (דותן) כוסות שתייה . . . .
- (אלון) כוסות שתייה, אין בעיה . . . . פרקים בפודקאסט! אני מוכר ב-NFT . . . אני מחלק את הפרק הזה ב-NFT לראשון שמוצא את הפתרון [ההשתתפות אסורה על זהר ובני משפחותיהם]
- אני אומר שאם מישהו משועמם מספיק יקח את הקוד ב-Rust, יבין מה הוא עשה ויכתוב אותו בחזרה ב-C - יהיה in-par ב-Performance . . . . זו דעתי פה.
- (רן) עיזרו נא ילדים לדותן למצוא . . .
- (דותן) תפתח לו Issue ב-Repo ותבקש להמיר בחזרה ל-C ולראות אם זה אותו הדבר . . .
- טוב - האייטם הבא, והאמת שהוא טיפה יותר לימודי ומוחשי מזה: יש בחור שאני מכיר אותו יותר לפי ה-Twitter-name שלו מאשר כל דבר אחר, והשם שלו הוא Christoph Nakazawa - נדמה לי שזה cpojer@ או משהו כזה ב-Twitter
- אני כבר לא כל כך זוכר מאיפה אני מכיר אותו . . . אולי מהצוות של React Native . . . . - והוא כתב שני מאמרים מאוד מאוד מעניינים לדעתי
- אחד מהם זה על איך לבנות JavaScript Testing Framework, בכלל . . .
- איך בונים, מאיפה מתחילים . . .
- מן הסתם זה Walk-through כזה, שמביא אותך עד לקונספט של איך לבנות Testing Framework באופן כללי.
- והשני זה איך לבנות JavaScript Bundler - שזה גם מעניין . . .
- יש הרבה מאוד Bundler-ים ב-JavaScript היום - webpack ו-Vite ואחרים - ואפשר לתהות מה שונה האחד מהאחר . . .
- ואז כדי לענות על זה - צריך להבין איך בונים את זה
- וזה מה שהוא עושה במאמר השני - מאוד מעניין, וקצת נותן מבט לעולם הזה של ה-JavaScript Bundlers השונים.
- האייטם הבא זה אייטם שקצת פוצץ לי את הראש . . . יש אפליקציה שנקראית - אפליקציה או לא יודע כבר איך לקרוא לזה, אבל נגיד אפלקיציה - שחיה על ה-Browser, כמו Figma וכמו הרבה אחרים “שנולדו לתוך Browser” או באו מתוך Browser - זה נקרא spline וזה פשוט 3D-Dsign ב-Browser
- וזה מטורף - זה שזה עכשיו קורא ב-Browser ולא ב-3D Studio או בכל תוכנה אחרת - זה כבר ניהיה “של פעם” . . .
- זה שעיצבו את ה-3D זה אומר שאפשר לעשות כל מיני קולבורציות (Collaborations) . . .
- אפשר לעשות כמו Embed ל-3D Stuff שלך
- דברים משוגעים . . .
- הדבר הזה די תפס את הקהילה של ה-3D בסערה - הרבה כמו מה ש-Figma עשתה ל-Design ול-Photoshop, אפילו ל-Sketch - גם אז זה היה נחשב לפריצת דרך.
- כשנכנסים לאתר שלהם אז כבר באתר עצמו, בגלל שהכל פה ב-Browser, אז זה מדהים . . .
- (אלון) איך זה עובד ככה? מה זה - WebAssembly? כאילו, עם WebGL? איך הם הגיעו לרמה הזאת? . . .
- (דותן) זה . . . האמת שנורא חפרתי ולא הצלחתי לגלות כלום . . .
- חיפשתי איזשהו Blog-Engineering, חיפשתי איזשהו GitHub, אולי איזושהי מודעת דרושים, להבין במה הם משתמשים . . . ולא הצלחתי
- השקעתי בזה איזו רבע-שעה-עשרים-דקות בחיפוש
- אבל זה מדהים - מהדרך שבה זה רץ עד ה-Widget-ים בתוך ה-Browser, שאתה יכול לערוך ולשלוט ו . . . וואו . . . כאילו, זה מטורף.
- (אלון) גם הדוגמאות שלהם . . . כן, זה ממש מדהים איך שזה עובד כל כך מהר, זה . . . ממש מדהים
- המחשב שלי עם ה-200 GPUs שלו סוחב את זה בקלות, אבל זה עדיין מדהים . . .
- (דותן) תראה - Figma זה מקרה מאוד משוגע . . . אם תחשוב על זה אז Sketch עשה Disrupt ל- Photoshop - וכולם חשבו ש-Sketch זה ה-Endgame
- ואז בא ה-Figma ובעצם לקח את כל העולם של העיצוב ומימש את הכל ב-Browser, ב-Component שחי על Wasm וכתוב ב-Rust
- אני מניח שאולי ה-spline Design הזה גם בנוי באותה צורה
- והקולבורציה, לפחות ב-Figma, היא באמת משוגעת - למשל, המנוע-קולבורציה (Collaboration Engine) נשאב ממנועים של Multi-Player, במשחקים . . .
- ואז, כשאתה מעצב עם עוד מישהו בתוך האפליקציה, אז אתה בעצם רואה אותם זזים כמו שחקנים - הכל ב-real-time והכל . . . מדהים.
- (אלון) זה כבר הסטנדארט - לראות את העכבר של כולם, לראות מי קם שנייה . . .
- (דותן) בקיצור - מדהים. לא שאני מעצב ב-3D . . . לפני 20 שנה עשיתי 3D Studio וכאלה, אבל וואו . . . מטורף.
- עוד כלי קטן שמצאתי, שככה “מגרד לי כאב מאוד ספציפי” - זה כלי שנקרא pup -
- והוא בעצם . . . אם מישהו מכיר, אני כותב בלוג-פוסטים ב-Markdown בדרך כלל ואחרי זה מה-Markdown מעלה את זה ל-Medium או לכל מיני מקומות אחרים.
- והקטע המעצבן הוא שכשאתה רוצה לשים Images של תרשימים וכאלה, אז הלינקים נשברים - כי הם מפנים לתוך ה-Repositories שיש לך
- אז בדרך כלל אני מחליף אותם באיזשהו Image-sharing Service כלשהו וזה קצת תהליך ידני
- ועשיתי את זה, בעצם בלי לחשוב אפילו על להחליף את התהליך הזה, פשוט עשיתי את זה שוב ושוב ידנית בלי כל כך לשים לב לזה שאני מבזבז המון זמן.
- אז זה כלי מאוד נחמד שעושה Parsing ל-Markdown, מחלץ החוצה את כל ה-Images, מעלה אותם ל-Service Images, בתשלום או חינמי - “ותופר” את זה בחזרה לתוך ה-Markdown.
- מאוד מאוד נחמד, התחלתי להשתמש בו באופן תדיר ורגיל
- (אלון) מגניב, כתוב ב-Rust . . .
- (דותן) כן, כתוב ב-Rust . . . האמת שאתה תראה שזה טרנד . . . .
- בכלל, באופן כללי - יש מלא כלים משוגעים שכתובים ב-Rust
- ואני חווה, לפחות בחודשים האחרונים, איזשהו “פרץ של כלים” שפשוט נכתבים ב-Rust . . .
- (רן) אתה יודע, קוראים לזה “הטיית האישוש” . . . . אבל זה בסדר.
- (דותן) יכול להיות . . . .
- (רן) . . . והבת שלי הולכת ממש לעוף על ה-Studio הזה . . . ממש חמוד ה-3D Studio, מגניב . . . .
- (דותן) . . . יכול להיות, אבל אני חייב להגיד לך שאני די “במדידת דופק” על הרבה איזורים וגם אם אני נגיד משווה את זה ל-Node ו-Ruby וככה - איך שהתפתחה הקהילה - ואני די מרגיש שעכשיו זה ה . . . יש כיוון כזה, כשאתה פורץ איזשהו קו ואז טכנולוגיה שהייתה Buzz הופכת להיות ממש “גועשת”
- ונראה לי שזו די הנקודה עכשיו, אני מרגיש שדברים תמיד בסביבה, שקורים.
- אז עוד כלי נחמד שנקרא kondo - מלשון Marie Kondo, אותה אחת שפיתחה אני מניח “דרך חיים של סדר וניקיון” . . .
- לא שאני שותף לזה . . . הייתי רוצה . . .
- (רן) שותף פאסיבי . . .
- (דותן) כן . . . אז מישהו כתב כלי שבעצם עושה “סדר וניקיון” בקבצים
- צריך לשים פה איזה 800 Disclaimer-ים, כי הכלי הזה בעצם מוחק דברים . . . .
- הוא מוצא כל מיני קבצים מיותרים - Artifact-ים כאלה שזרוקים, כל מיני Shit כזה ש-Build system זרקו איפשהו - ומנקה את הדברים האלה.
- זה גם כלי שכיום לא ממש צריך . . . כי למה לבזבז? יש לך המון מקום, למה לבזבז זמן ולהסתכן בלמחוק קבצים שאולי אתה צריך? . . .
- אבל אני חייב להגיד שלפעמים יש מערכות בהן באמת מייצרים “הרים של דאטה” כחלק מה-Build שלהם
- או לחליפין - הדברים האלה יכולים להכיל מידע סודי / פרטי / אישי שלא רוצים שבטעות יידחפו לתוך איזה Repo או משהו כזה, אז שווה כן לנקות.
- זהו - כלי נחמד, שתומך ספציפית בטכנולוגיה
- אני ארוץ נראה לי טיפה יותר מהר . . . אז הספרייה הבאה היא Zag, שזה State-Machine Framework
- בזמן האחרון יש איזשהו “רנסנס של State Machines” ויוצאים המון State Machines Contents
- וזה אחד שפותח ע”י הצוות שפיתח את Chakra UI, שהיום אפשר כבר להגיד שזה אחד ה-Framework-ים ל-UI המובילים שיש ב-React.
- אז הם הוציאו גם את זה.
- סטנדרט האיכות שלהם הוא מאוד גבוה וזה מאוד Complete - כמו הרבה מאוד דברים שהם עושים
- אז אני מאוד ממליץ, למי ששוקל לאמץ State Machine ל-Client Side.
- (רן) ב-”State Machine” אתה מתכוון לדברים בסגנון של Redux, מלפני כמה שנים?
- (דותן) לא, לא State Management - פשוט State Machine, כמו שאנחנו מכירים, “בחיים” . . .
- (רן) אוקיי . . . ומתי תשתמש בו? למה זה כל כך . . .
- (דותן) ל-UI יש State, ולפעמים אתה פותר את ה-State הזה בקוד,
- כאילו - “If המשתנה שלי בבטן הוא 8 אז . . . .” וכו’ וכו’ . . .
- (רן) הבנתי . . .
- (דותן) ועוד פעם - זה קצת מצחיק, כי זה מדעי המחשב ל . . .
- (רן) וזה עוזר לך למדל את זה בצורה יותר פורמאלית . . .
- (דותן) כן . . . זה מדעי המחשב, לא יודע אם סמסטר א’ או ב’ . . .
- (אלון) זה אוטומטים לכל דבר . . . . [ד”ש לגדי]
- יצא לי, האמת, בכמה פעמים שהייתי צריך אוטומט, בדרך כלל יש איזושהי ספרייה . . .
- ב-Ruby היו ספריות חמודות ל-State Machine , ב-Frontend אני לא מכיר . . . אבל נשמע אחלה.
- (דותן) אז עולם ה-Frontend גילה שזה אחלה Pattern להשתמש בו - ואפשר.
- ועכשיו, כאילו . . .
- (רן) נגיד - Flow של Onboarding של משתמש חדש, אז כנראה יהיה לך שם ספריית מצבים . . .
- (אלון) . . . ואז אם מישהו חוזר - אז לאן הוא חוזר ומה הוא יכול לעשות וכל זה . . . כאילו, כן . . . אוטומט.
- (דותן) אז ה-Highlight הוא, שוב פעם - שזה התגלה
- ואנחנו מקבלים בזמן באחרון ספריות State-Machine-Dedicated, כאילו - Literally State Machine, אתה בא, מעצב את הצעדים שלך וזה בא איתך - קדימה, אחורה ובכל מיני מקומות.
- עוד אייטם מאוד נחמד - למי שמכיר ngrok, אז זה כמו Binary שאפשר להוריד בחינם, ויש את זה גם בכסף, ברישיון -
- הוא בעצם פותח לך Tunnel לעולם ואתה יכול לתת למישהו Unique URL כזה, שלך
- והוא יכול לגשת ל-Service שרץ ממש על המחשב שלך
- כמובן שה-Tunnel הזה חוצה כל, נקרא לזה “מכשולים של Network”, אפשריים . . .
- וזה העניין - אתה פשוט רוצה לתת למישהו URL לגשת ל-Service המקומי שלך.
- אז bore זה בעצם אותו הדבר - לגמרי Open Source
- כלומר - מי שרוצה ומעוניין יכול לקחת את זה במקום את ngrok ופשוט להנות מכלי שהוא חינמי לגמרי.
- וכמובן אתה יכול גם לקרוא את הקוד שלו ולהבין שהוא לא גונב לך דברים . . .
- לא שאני אומר ש-ngrok עושה את זה, אבל כל אחד והפחדים שלו . . . .
- סופר-סופר נחמד לדעתי.
- הכלי הבא, או הספרייה הבאה - זה נקרא Jest Preview
- חזרה ל-Frontend . . . .
- בעצם, זה נותן לך להריץ טסטים ב-Jest, למי שעובד עם Jest
- הוא פותח אוטומטית Server מקומי שמגיש את כל מה שהטסט עושה פשוט ל-HTML, ל-App
- אתה יכול לפתוח Browser ולראות מה הטסט עושה, ב-Real time
- זה בהנחה שהטסט בודק UI
- אני משתמש בזה וזה חוסך המון זמן, כי תמיד אתה מנסה לנחש איך נראה ה-UI שהטסט כרגע מייצר ובודק . . .
- אתה מנחש את זה או בטלפתיה או בכל מיני דרכים לא יעילות ומוזרות . . .
- (אלון) יש את ה-USB של הטלפתיה, במחשב . . . אם יש לך אז אתה מחבר וזה עובד . . .
- (דותן) אה, זה גם . . .
- (רן) זה לא Port סריאלי (Serial)? זה Port סריאלי . . .
- (דותן) כן - אבל צריך דרייברים . . . .
- (רן) עפנו על עצמנו . . . .
- (דותן) עוד כלי - זה נקרא WTF, לא נגיד את הראשי-תיבות כי אנחנו בעצם תחת Age Restriction בפודקאסט . . . . [גם את הפינה הזו סגרנו בפרק עם זהר, לא?]
- אז זה פשוט Dashobard למפתחים - יש כאלה, נגיד Glances שאני זוכר מ-Python
- זה Dashobaord נחמד שמרכז לך המון דברים ,כתוב ב-Go, כלי . . .
- (אלון) אמרת “Go” בטעות - התכוונת ל-Rust . . .
- (דותן) לא, האמת שזה כתוב ב-Go במקרה . . . “בטעות”, הייתי אומר, אבל בסדר . . .
- ובמעבר חד ל-Database-ים - יש פה מאמר שקראתי, ולדעתי הוא מרתק - כי הוא נותן לך המון פשטות בזה - על איך בונים . . .
- לא יודע אם זה “איך בונים”, אבל זה על מה הקווים לבנייה של Postgres Database שהוא Distributed
- כמו הרבה Database-ים, נקרא לזה “דור חדש++” - CockroachDB וכל מיני כאלה
- הם משתמשים בפרוטוקול של PostgreS, אבל בסוף כמובן שזה לא PostgreS
- אז יש פשוט “יד ביד”, בשפה שאני יכול להעיד שהיא די פשוטה לכל אחד שמכיר קצת Database-ים
- והוא מלמד איך הדבר הזה נבנה - מרתק, ומייצר נקרא-לזה-Inspirition
- אז אפשר, למי שרוצה לעשות איזשהו פרויקט אקדמי או פרויקט-תחביב - לדעתי לגמרי אפשר להתחיל מזה ולבנות איזשהו “צעצוע של Database” כזה . . .
- (אלון) עד כמה זה קרוב למציאות וכמה זה הנחות מאוד נאיביות - יש לך מושג? . . .
- (דותן) תשמע, זה קרוב-עד-כדי ה . . . אני חושב, בגלל שאני זוכר את התקופה הזאת, שזה קרוב עד כדי ההתחלה עם Raft . . .
- למי שזוכר את Raft - אז כשהוא יצא, יצאו כל מיני “התאמות” לכל מיני מערכות
- אני לא זוכר אם ZooKeeper היה גם בסיבוב הזה . . .
- אבל יצאו כל מיני מערכות שעלו כ-Cluster - וזה היה גרוע, בכל מיני צורות
- ואז אני חושב שגם בפודקאסט דיברנו על Jepsen והבדיקות האלה של מלא מערכות שהן Distributed שנכשלו . . .
- [2013 נראית פתאום כל כך רחוק . . . מעניין גם כפרספקטיבה - 187 Final Class 31 - ThoughtWorks Radar 2013]
- תקופה כזאת . . . מה שנקרא “חבלי לידה” של הטרנד הזה
- ואני חושב שהמאמר הזה הוא די מקביל לאז . . .
- כלומר - אם היום אתה תחפש איך בונים דברים עם Raft, שזה פרוטוקול, נקרא לזה קונסולידציה (Consolidation) של Distributed Systems, אז כנראה שאתה תקבל מאמרים דומים
- רק שזה טייק על “בוא נדבר רגע על PostgreS, בוא נראה . . . .”
- מה שאהבתי פה זה שהוא גם נותן לך תחושה - וזה גם קצת מציאותי - שה-Wire Protocol של PostgreS הוא מאוד עוצמתי.
- אז אם אתה רוצה לכתוב Database חדש, אז למה לא להשתמש בזה כאיזשהו Façade מעל ה-Database שלך?
- אין שום סיבה שלא, וזה גם חלק ממה שהוא אומר - זה גם מעניין
- (אלון) מעניין . . .
- (דותן) נגיד, אם Mongo מממשים איזשהו Interface של PostgreS DB - אז זה יכול להיות גם מעניין.
- אני רק שם את זה פה . . .
- ואז אפשר להחליף את המנוע ב-PostgreS, אבל . . . בסדר.
- (אלון) בקיצור - לקחת PostgreS, וכשיש לכם בעיות אז כנראה שניצחתם . . . .לא, סתם.
- (דותן) האייטם הבא - נכון, זה גם Rust, אבל האמת שדרכו גילית משהו שהופתעתי איך לא ראיתי - יכול להיות שאתם מכירים את זה כבר: יש ספר שיצא, מסתבר, יחסית לא מזמן אבל לפני כמה שנים, שנקרא Code the Classics - יצא לכם לראות את הדבר הזה?
- (אלון, רן) לא . . . .
- (דותן) זה ספר נייר - ויש אותו גם בגרסא דיגיטלית בחינם - אבל אני חושב שה-Highlight בו הוא שזה ספר שאתה קונה והוא פיזי . . . .
- אז קודם כל הוא עוסק במשחקים קלאסיים
- והדבר המדהים בו זה שהוא יפה - זה כמו מגזין כזה, חתיכת אומנות
- אז בעצם צילמו משחקים קלאסיים שם וחתכו כל מיני חתיכות של אומנות מתוך המשחקים ופרשו את זה בצורה מאוד יפה
- זה מדהים לכל אחד - ואני חושב שזה מדהים למי ששיחק במשחקים, מי שמספיק זקן כדי להיות כזה ששיחק בהם.
- זה המוצר שאתה קונה - אבל בעצם התוכן הוא איך לתכנת את זה, את כל המשחקים האלה . . .
- וזה מלווה בסיפור מאוד מאוד ויזואלי.
- הספר מלמד איך לתכנת את זה ב-Python, שזה נראה סביר כי זו שפה מאוד Accessible לכולם.
- זה Volume 1 - הבנתי שאמור היה להיות Volume 2 כי חיפשתי ולא מצאתי, אבל יכול להיות שבסוף לא היה . . .
- אני אנחש שזה פשוט מאמץ מטורף לכתוב דבר כזה או לבנות ספר כזה.
- [תזמון מעניין . . . The second volume #demoscene the AGA years is now in stock]
- ואז בעצם בא מישהו ובנה את . . . עשה Porting למשחקים האלה ב-[אלון מרגיש הפרעה בכח]-Rust . . .
- עם בערך שלושה או ארבעה Game Engines שונים ב-Rust - כאן: rust-game-ports
- אז זה מעניין - כי אתה יכול פשוט לכתוב את זה בשפה אחרת וגם לראות איך מנועים שונים מתפקדים בצורה אחרת
- ובכלל - Rust כ-Gaming Language זה דבר מעולה, בכלל - לנסות להתפקס על זה ולכתוב משחקים ב-Rust
- אז זה ממש נחמד . . . אני הורדתי את ה-PDF של הספר הדיגיטלי בחינם - אפשר לקרוא, מדהים.
- זהו . . . פיספסתי פשוט את הדבר הזה. תופעה מדהימה.
- האייטם הבא זה React Hook שאומר לך מה קורה עם הקומפוננטות (Components) שלך . . .
- ככה, “Hook כזה קטנצ’יק” . . . ואתה יכול לדבג עם זה קומפוננטות (Debug components)
- פעם היה why-did-you-render כדי להבין שיש “קומפוננטות מגעילות” כאלה שמרנדרות (Render) סתם כי . . לא יודע, הן מקבלות דאטה שהוא חדש “סתם”, זאת אומרת שונה ברפרנס אבל לא שונה במהות של הדאטה.
- וזה אחלה Hook שאורז בתוכו כמה וכמה כלים - פלוס כמה דברים שאני לא חושב שהיו בספריות אי פעם
- ממש - אין שום סיבה שלא להשתמש בו, ממש מגניב
- ממליץ מאוד לכל מי שעובד עם צוותי Frontend או בכלל עושה Frontend.
- מעבר חד - . . .
- (אלון) יש לו Mode “לכבות אותו”? . . . כי הכי הגיוני לפזר אותו בכל הקוד וכאילו “Tick” . . . מקסימום תדרוס אותו, זה Java, למי אכפת . . . .
- (דותן) האייטם הבא זה אייטם קצת מטורף, כאילו . . . זה אתר שנקרא copy.sh, שמאחוריו יש GitHub Project שמאחורי הטכנולוגיה
152 פרקים
MP3•בית הפרקים
Manage episode 330843618 series 2497397
תוכן מסופק על ידי רברס עם פלטפורמה. כל תוכן הפודקאסטים כולל פרקים, גרפיקה ותיאורי פודקאסטים מועלים ומסופקים ישירות על ידי רברס עם פלטפורמה או שותף פלטפורמת הפודקאסט שלו. אם אתה מאמין שמישהו משתמש ביצירה שלך המוגנת בזכויות יוצרים ללא רשותך, אתה יכול לעקוב אחר התהליך המתואר כאן https://he.player.fm/legal.
אחרי כמעט חמישה חודשים: רן, אלון ודותן בסדרה של קצרצרים על חדשות טכנולוגיות מעניינות.
רן -
- בזמן האחרון אני נמצא הרבה בעולמות של Data Science ורציתי לספר על כמה דברים מעניינים שקורים שם, ואחד מהם זו ספרייה שנקראית JAX
- ו-JAX זה למעשה מימוש-מחדש לספרייה יחסית-ותיקה שנקראית NumPy, שאני מניח שהרבה מאוד מכירים.
- זה לא רק מימוש של NumPy - זה משהו שהוא קצת יותר גדול, ומכיל גם לא מעט דברים שמעבר.
- למעשה זה מימוש-מחדש להרבה מ-Interface של NumPy - לדעתי זה נכתב ב-Google [אכן - google/jax] - ועושה שימוש בטכנולוגיות הרבה יותר מודרניות
- למי שלא מכיר, אז ב-NumPy - הרבה חלקים ממנו כתובים ב-C, אבל הרבה חלקים ממנו גם כתובים ב-Fortran וכו’
- והוא לא עושה שימוש לא ב-GPU ולא ב-TPU או באקסלרטורים (Accelerators) שונים מסוגים שונים -
- ו-JAX כן עושה את זה, נכון להיום - וגם הרבה מעבר.
- הוא אמור להיות Drop-in replacement ל-NumPy וגם לכלים אחרים.
- ניסיתי אותו - בינתיים הוא עובד סבבה . . . עוד לא עשיתי לו ניסוי כלים משמעותי
- אבל נראה סופר-מעניין, למי שבתחום.
- אז זהו - פשוט לחפש JAX ותמצאו את זה
- לא להתבלבל עם Jax שהיה פעם בעולם ה-Java - זה משהו אחר לגמרי, הם רק לקחו את השם . . .
- (אלון) למה, בעצם . . . . למה? מי רוצה את זה? למה לי?
- (רן) אז אם אתה עובד בעולם של Python ו-NumPy ואתה רוצה לכתוב תוכניות שרצות יותר מהר ממה ש-NumPy נותן לך היום - אז אתה רוצה את זה.
- כי NumPy בעצמו הוא סופר-סופר מהיר, אבל יש לא מעט שיפורים שאפשר לעשות - בעיקר שימוש בחומרות יותר מודרניות.
- אז זהו - זו הסיבה שתרצה לעשות את זה . . .
- אם תרצה - אמרתי . . . אם תרצה.
- (אלון) אם תרצה - אין זו אגדה . . .
- (רן) ובעניין אחר, אבל לא רחוק - יוצא לי לעבוד לא מעט עם Jupyter Notebook ובסביבה של VSCode ויש לא מעט אינטגרציות בין שניהם
- אז אם אתם עובדים באמת עם Notebooks ועם VSCode, אז יש לכם כמה דרכים שבהן אתם יכולים לעשות את זה.
- אחת זה פשוט לפתוח ולערוך Notebook בתוך VSCode - זה בסדר ל-Notebook-ים קטנים
- הניסיון שלי הוא שאם ה-Notebook גדול מדי - פשוט ב-VSCode דולף הזיכרון ובסופו של דבר . . . לא VSCode ספציפית, כנראה שזה ה-Extension -
- אבל בסופו של דבר זה מתחיל, ככה, לג’עג’ע כשיש Notebook-ים גדולים, בעיקר כשיש הרבה תמונות
- אז זה לא סופר-סופר נעים - אבל מה שכן, יש עוד אופציה! - אתם יכולים פשוט, בתוך קובץ Python, לייצר Cell-ים קטנים - Cell-ים של Jupyter - ולהריץ אותם
- אתם עושים את זה על ידי זה שאתם עושים #% - “הערה” - ו-%% - ואוטומטית VSCode הופך את זה ל-Cell ומריץ אותו
- ואז זה נחמד יותר . . . . אתם יכולים להריץ קטעי-קוד קטנים, לראות בצד ימין את ה-Output - וזה חמוד.
- אפשר גם לייצר ממש גרפים והכל . . . . זה נחמד.
- היתרון של לעבוד בתוך VSCode הוא שיש לך את כל ה-IntelliSense ו-Copilot, אם אתם משתמשים
- אז זה יכול לעזור וזה נחמד.
- (אלון) התכוונת ל-Copilot - ו-Copilot משתמש בך . . . . אני הגעתי כבר למצב שהוא משתמש בי מדי פעם: הוא עושה לי “תזיז את העכבר, אתה מסתיר לי” . . . . וזהו.
- (רן) אני מניח שהוא עושה בי שימוש לרעה בהרבה מקרים, אבל לא הרגשתי את זה . . .
- אבל כן - תכל’ס הניסיון שלי עם Copilot הוא סבבה
- זאת אומרת - לפעמים זה מפריע, אבל הרבה מקרים הוא ממש עושה “בול”, ממש מה שהתכוונתי. נחמד.
- בעיקר כשאני כותב טקסטים - קבצי ReadMe ודברים כאלה - ההשלמות שם הן ממש יפות.
- גם בקוד זה סבבה - אבל בטקסטים זה ממש . . . חוסך “טונה של הקלדה”.
- (אלון) כן, טוב - קפצנו אליו . . . אבל כן, הוא מדהים - זה . . . מזמן לא נתקלתי בכלי חדש כזה שמפתחים אשכרה - אם עכשיו יקחו להם אותו, הם יהיו מוכנים לשלם עליו. אין הרבה כאלה . . .
- (רן) כן . . . לא תמיד החווייה מדהימה, אבל יותר “כן מ”לא” - ובסה”כ זה ממש נחמד.
- (רן) האייטם הבא שלי, בתחום של Machine Learning - זה איזשהו דף שמסביר איך עובד Random Forest -
- אז Random Forest זה אחד האלגוריתמים הנקרא-לזה-יחסית-קלאסיים . . . זאת אומרת - זו לא רשת נוירונים אלה זה בעצם אוסף של עצי-החלטה.
- והדף הזה למעשה בה ומסביר בצורה ויזואלית מאוד יפה - עם Scrolling ככה, “כמיטב המסורת”, Scroll-ים חמודים - איך נבנה Random Forest, ככה, בהדרגתיות.
- וזה מגניב למי שבא ורוצה להבין את האלגוריתם הזה בצורה ויזואלית - אז יש פה הרבה דברים אינטראקטיביים
- לא רק ה-Scroll-ים - יש פה גם דברים שאפשר ללחוץ עליהם והוא מסווג אותם
- בקיצור - חמוד . . . סימולציה נחמדה של Random Forest, כתוב יפה, נראה יפה ויזואלית - מגניב לאללה.
- (אלון) איך אני מת על כאלה דברים, שמסבירים לך אלגוריתם ב-View . . . איפה הדברים האלה היו כשלמדנו לתואר? . . . .
- (רן) כן . . . חמוד לאללה. אני זוכר שאפילו הצגנו פה, בטח באחד הפרקים של הסדרה, כל מיני סימולציות של אלגוריתמי-מיון וחיפוש . . .
- [ב-2014?! . . . 219 Bumpers 14, אבל הלינק המקורי כבר מת, נשאר רק זה - AlgoRythmics]
- אני זוכר שראיתי לא מעט דפים כאלה, אז זה ספציפית מדבר על Random Forest - ובנוי מאוד מושקע ויפה.
- והאייטם הבא שרציתי לדבר עליו זו ספרייה, או למעשה כלי, שנקרא Gradio - זה בעצם UI ל-Demo של Machine Learning
- זאת אומרת שאם בניתם איזשהו מודל - נגיד, מסווג של תמונות חתולים - ואתם עכשיו רוצים לתת לאנשים ככה בתוך החברה או ככה לתת לחברים להתנסות
- להעלות תמונות ולתת למסווג להגיד האם זה חתול או לא חתול, או כל סיווג אחר, לצורך העניין
- אז למעשה, Gradio נותן לכם איזושהי פלטפורמה די פשוטה, שבא אתם יכולים לייצר את ה-UI הזה.
- זה לא משהו שמתאים ללקוחות-קצה, בדרך כלל - זה לא סופר-סופר-יפה . . . .
- זה נראה בסדר, אבל אין לזה בדרך כלל איזשהו “touch “מוצרי” מאוד ספציפי
- אבל בתור איזשהו כלי-פנימי זה מאוד נחמד - אתם בעצם יכולים לייצר מודלים, לחשוף אותם החוצה . . .
- הכל כתוב ב-Python - זאת אומרת, הוא מייצר איזשהו Backend ובסופו של דבר הוא מריץ JavaScript בדפדפן, אבל אתם לא צריכים לדאוג לזה.
- אתם בסך הכל משתמשים בכמה בלוקים - נגיד בלוק של Input, בלוק של Demo, בלוק של Output - והוא בסופו של דבר יודע לחבר את הבלוקים האלה ולייצר Demo חמוד.
- אז זהו - נחמד למי שרוצה לעשות איזשהו Demo של מודל שהוא בנה.
- בנוסף . . . . לא אמרתי שבעצם Gradio זו חברה שנקנתה ע”י Hugging Face - אחת החברות הגדולות בתחום של Machine Leaning, בעיקר בתחום של NLP
- למעשה, נכון להיום - אולי בזמן שהפרק הזה יתפרסם - יש מה שנרא מסיבת בלוקים!
- מה זו “מסיבת בלוקים”? זה בעצם איזשהו אירוע שבו מייצרים בלוקים (Blocks) ל-Gradio
- אז Gradio מיוצר מבלוקים שונים - אמרתי שיש בלוקים של Input, בלוקים Output, בלוקים של מודלים
- בעצם, אתם בתור מפתחים יכולים לחבר את הבלוקים האלה, ואז אפשר לחשוב על זה כמו על בלוקים של לגו - סליחה על האלגוריה הטריוייאלית . . . [חכה שתדרוך על אחד]
- וזהו - יש “מסיבת בלוקים” שבה אתם יכולים לפתח ולהצטרף -
- זה משהו שקורה Online - בצורה א-סינכרונית, לא צריך ממש להתחבר לשם . . .
- אז אם אתם רוצים להצטרף למסיבה - שמתי גם את הלינק הזה.
- ובכל מקרה, בלי שום קשר - אתם יכולים להשתמש ב-Gradio כדי להחצין את המודלים שלכם.
- (אלון) אני חייב לציין משהו על ה-Gradio הזה . . . אני שנייה אשלח לכם, כי אני רוצה את דעתכם, שהקהל פה ידע, אז שנייה [חכו רגע עם הקריאה של השורה הבאה לייצר את האפקט . . . ]
- בקיצור - עשיתי פה ציור, כדי לבדוק מה הוא מזהה, והוא החליט שזה ספר . . .
- עכשיו, אני רוצה לשמוע את דעתכם - עד כמה הוא קרוב למילה “ספר” . . . .
- (דותן) ציירת כלב עם שפם, או . . . לא יודע, מה זה? . . .
- (אלון) התחלתי מפרצוף, והוא עשה פרצוף ואז Smiling face אז עשיתי אותו עצוב . . . ואז רציתי לראות האם הוא מזהה שפם אז אמרתי “נהפוך אותו לכלב” - והוא החליט שזה ספר . . .
- (רן) כן . . . חשוב אולי להגיד את ה-Disclaimer ש-Gradio זה לא המנוע Machine Learning עצמו - הוא בסך הכל משתמש באיזשהו מודל ונותן לך אפשרות להחצין את המודל הזה, לשחק איתו . . .
- אם המודל גרוע אז הוא גרוע - זה לא אשמתו של Gradio, לצורך העניין . . . . זו אשמת מי שבנה את המודל.
- אבל אני כן אגיד שראיתי לא מעט ממשקים כאלה לדוגמא - בחלק מהממשקים זה עבד מגניב ובחלק מהמקרים ממש לא
- אבל שוב - זה עניין של הכוח של המודל עצמו - Gradio זו בסך הכל איזושהי ספריית UI שעוזרת לך להחצין את המודל ולתת לאנשים לצייר או לכתוב משפטים או להשלים משפטים או דברים בסגנון הזה.
- (אלון) כן, האמת שזה מגניב . . . יש פה עוד דוגמאות חוץ מהציור הכשרוני שלי שהמודל דפוק, האמת שזה די מגניב . . .
- (רן) זה נחמד כשאתה . . .
- (דותן) זה מעניין ב-Context של ילדים גם - זה די מפשט דברים, לאקספרימנטציה . . .
- (רן) ה-Use case שהם בנו זה שיש Researcher שמייצר איזשהו מודל, ועכשיו הוא רוצה לתת את זה, נגיד, למשתמשים פנימיים כדי לבדוק אותו - והם יכולים לתת לו פידבק.
- אז לפני כן זה היה קצת מסובך - זאת אומרת: “שילחו לי תמונות” או “תנו לי טקסטים ואני אריץ במודל ואגיד לכם מה ה-Output” . . . .
- וככה עכשיו כל אחד יכול לשחק עם זה אינטראקטיבית, דרך האפליקציית Web, וזה נחמד.
- וכן - נראה לי שגם לילדים זה חמוד . . . .יש ספרייה די גדולה, אם תסתכלו על ה-Quickstart או על ה-Guides, אז יש שם לא מעט דוגמאות של דברים שכבר עובדים ואתם יכולים לשחק איתם.
- (דותן) אני מנסה את ה-DALL·E mini - זה יעבוד? [כן! . . .]
- (אלון) וואי! זה מקביל ל-DALL·E הזה? . . . .
- (דותן) בוא נראה כמה זה טוב - זה לוקח מלא זמן בינתיים . . . אה, אוקיי . . .
- (אלון) טוב, אתה עושה ספויילר . . . יש לך את DALL·E, אני מקווה, באייטמים . . . .אם לא אז אתה עושה פה . . .
- (דותן) אין לי . . .
- (אלון) טוב - אז מישהו צריך לשים [כי לא ראינו מספיק Raccoon Astronauts . . .]
- (דותן) אני מנסה ואז אני אגיד לכם . . . .
- (רן) נגיד יש איזשהו Demo שמראה תמונות אולטראסאונד ויכול למצוא איזורים חשודים בתוך תמונות אולטראסאונד . . .
- יש כל מיני כאלה של “לענות על שאלות”, “שאלות ותשובות” ודברים כאלה . . .
- יש פה כמה דמואים נחמדים - וכמו בהרבה דמואים, זה עובד על הדוגמאות שהם נותנים ולא תמיד עובד על על דוגמאות אחרות שאתם מביאים מהבית . . .
- בכל מקרה, כמו שאמרתי - זו בסך הכל ספריית UI, זה לא המודל עצמו - על המודל אתם אחראיים . . .
- זה בסך הכל עוזר לכם לתת את המודל שלכם לבדיקה.
- זהו, עד כאן להיום - אני סיימתי את החלק שלי . . . כמו שאמרתי - קיצצנו הרבה. אז אליך, דותן.
- (דותן) טוב, מעניין - בינתיים ה-DALL·E mini הוא נחמד . . . עשיתי “Computer in the sea” ויצאו דברים נחמדים, אבל לא באיכות כמו של DALL·E האמיתי . . . טוב, אז נתחיל.
דותן -
- האייטם הראשון זה נקרא jaq - זה בעצם jq clone
- למי שלא מכיר את jq - זה כזה Query על JASON
- והפוקוס שלו [של jaq], מעל ה-jq שכולם מכירים, זה “Correctness, Speed, and Simplicity”
- ונראה לי שאת אף אחד מהם לא צריך . . .
- אבל[!] - זה כתוב ב-Rust, שאת זה כן צריך . . .
- רגע - אלון . . . .
- (רן) ה-jq הוא ב-JavaScript, אם אני זוכר נכון . . . .
- (דותן) לא - הוא ב-C . . . הפתעה!
- עכשיו, האמת ששום דבר מזה לא באמת צריך . . . . אולי, לא יודע, “Correctness”? . . .
- אבל הקטע המעניין הוא . . . הוא גם נתן איזשהו בלוק ב-ReadMe, שהוא יצר את jaq כי הוא לא היה מרוצה מה-Startup time של jq - שזה 50ms . . . . זה לא היה מספיק טוב לו.
- זו עוד סיבה לא לעשות . . . .
- אבל הדבר המשוגע פה, שכן מצאתי כמעניין, או Intriguing, זה שזה 30 פעמים מהר יותר מ-jq . . . פי 30
- קשה לי לחשוב . . . אלא אם כן הדבר הזה לא עושה כלום, קשה לי לחשוב על כלי שנכתב ב-C ואז כלי אחר שנכתב ב-Rust וה-Rust עושה לו out-perform של פי 30, זה דווקא ה-Highlight . . . משוגע.
- (אלון) אני מניח שהבנאדם המשוגע הזה, אם מפריע לו ה-50ms של כלי שאתה משתמש בו לא-יודע-פעם-בכמה-זמן-למי-אכפת - כמה זמן הוא שרף מהחיים שלו? שנייה? על שימוש בכלי . . .
- (רן) תרשה לי לנחש שהוא כנראה לא משתמש בצורה אינטראקטיבית . . . הוא מריץ על איזשהו Batch וה-50ms האלה מצטברים . . .
- (אלון) כן, אני יודע. . . בסדר, אני צוחק - אבל אני מניח שההבדל הוא באלגוריתם . . .
- (דותן) איזה Porting של איזה כלי משיג פי-30 Performance? זה לא . . .
- (אלון) אני מאמין שאפילו Python יביא לך את ה-Performance של פי- . . . אולי לא פי-30 - פי-1, אבל . . .
- (דותן) מול C . . .
- (אלון) כן - אבל אני מניח שזה יותר האלגוריתם מאשר השפה.
- (רן) כן - האם לעשות לזה . . . האם לטפל בכל מיני מקרי-קצה ודברים כאלה
- זאת אומרת - JSON זה משהו שיש לו כבר לא מעט Legacy ויכול להיות שה-Parser ה-Rust-י לוקח כנראה . . .
- (דותן) זה בהחלט יכול להיות . . תעלומה.
- האמת - זה פשוט נחת אצלי בתיבה של הדברים המעניינים ויש לי איזושהי תוכנית להבין למה, מתישהו . . .
- אז זה הנחמד ומה שנקרא “אתגר למאזינים” . . .
- (אלון) הימור שלי - אני מוכן להמר על חמישה שקלים, או עשרה שקלים - מה ההימור הקבוע שלנו? שכחתי . . . . -
- (רן) תהמר על חמישים . . . .
- (דותן) כוסות שתייה . . . .
- (אלון) כוסות שתייה, אין בעיה . . . . פרקים בפודקאסט! אני מוכר ב-NFT . . . אני מחלק את הפרק הזה ב-NFT לראשון שמוצא את הפתרון [ההשתתפות אסורה על זהר ובני משפחותיהם]
- אני אומר שאם מישהו משועמם מספיק יקח את הקוד ב-Rust, יבין מה הוא עשה ויכתוב אותו בחזרה ב-C - יהיה in-par ב-Performance . . . . זו דעתי פה.
- (רן) עיזרו נא ילדים לדותן למצוא . . .
- (דותן) תפתח לו Issue ב-Repo ותבקש להמיר בחזרה ל-C ולראות אם זה אותו הדבר . . .
- טוב - האייטם הבא, והאמת שהוא טיפה יותר לימודי ומוחשי מזה: יש בחור שאני מכיר אותו יותר לפי ה-Twitter-name שלו מאשר כל דבר אחר, והשם שלו הוא Christoph Nakazawa - נדמה לי שזה cpojer@ או משהו כזה ב-Twitter
- אני כבר לא כל כך זוכר מאיפה אני מכיר אותו . . . אולי מהצוות של React Native . . . . - והוא כתב שני מאמרים מאוד מאוד מעניינים לדעתי
- אחד מהם זה על איך לבנות JavaScript Testing Framework, בכלל . . .
- איך בונים, מאיפה מתחילים . . .
- מן הסתם זה Walk-through כזה, שמביא אותך עד לקונספט של איך לבנות Testing Framework באופן כללי.
- והשני זה איך לבנות JavaScript Bundler - שזה גם מעניין . . .
- יש הרבה מאוד Bundler-ים ב-JavaScript היום - webpack ו-Vite ואחרים - ואפשר לתהות מה שונה האחד מהאחר . . .
- ואז כדי לענות על זה - צריך להבין איך בונים את זה
- וזה מה שהוא עושה במאמר השני - מאוד מעניין, וקצת נותן מבט לעולם הזה של ה-JavaScript Bundlers השונים.
- האייטם הבא זה אייטם שקצת פוצץ לי את הראש . . . יש אפליקציה שנקראית - אפליקציה או לא יודע כבר איך לקרוא לזה, אבל נגיד אפלקיציה - שחיה על ה-Browser, כמו Figma וכמו הרבה אחרים “שנולדו לתוך Browser” או באו מתוך Browser - זה נקרא spline וזה פשוט 3D-Dsign ב-Browser
- וזה מטורף - זה שזה עכשיו קורא ב-Browser ולא ב-3D Studio או בכל תוכנה אחרת - זה כבר ניהיה “של פעם” . . .
- זה שעיצבו את ה-3D זה אומר שאפשר לעשות כל מיני קולבורציות (Collaborations) . . .
- אפשר לעשות כמו Embed ל-3D Stuff שלך
- דברים משוגעים . . .
- הדבר הזה די תפס את הקהילה של ה-3D בסערה - הרבה כמו מה ש-Figma עשתה ל-Design ול-Photoshop, אפילו ל-Sketch - גם אז זה היה נחשב לפריצת דרך.
- כשנכנסים לאתר שלהם אז כבר באתר עצמו, בגלל שהכל פה ב-Browser, אז זה מדהים . . .
- (אלון) איך זה עובד ככה? מה זה - WebAssembly? כאילו, עם WebGL? איך הם הגיעו לרמה הזאת? . . .
- (דותן) זה . . . האמת שנורא חפרתי ולא הצלחתי לגלות כלום . . .
- חיפשתי איזשהו Blog-Engineering, חיפשתי איזשהו GitHub, אולי איזושהי מודעת דרושים, להבין במה הם משתמשים . . . ולא הצלחתי
- השקעתי בזה איזו רבע-שעה-עשרים-דקות בחיפוש
- אבל זה מדהים - מהדרך שבה זה רץ עד ה-Widget-ים בתוך ה-Browser, שאתה יכול לערוך ולשלוט ו . . . וואו . . . כאילו, זה מטורף.
- (אלון) גם הדוגמאות שלהם . . . כן, זה ממש מדהים איך שזה עובד כל כך מהר, זה . . . ממש מדהים
- המחשב שלי עם ה-200 GPUs שלו סוחב את זה בקלות, אבל זה עדיין מדהים . . .
- (דותן) תראה - Figma זה מקרה מאוד משוגע . . . אם תחשוב על זה אז Sketch עשה Disrupt ל- Photoshop - וכולם חשבו ש-Sketch זה ה-Endgame
- ואז בא ה-Figma ובעצם לקח את כל העולם של העיצוב ומימש את הכל ב-Browser, ב-Component שחי על Wasm וכתוב ב-Rust
- אני מניח שאולי ה-spline Design הזה גם בנוי באותה צורה
- והקולבורציה, לפחות ב-Figma, היא באמת משוגעת - למשל, המנוע-קולבורציה (Collaboration Engine) נשאב ממנועים של Multi-Player, במשחקים . . .
- ואז, כשאתה מעצב עם עוד מישהו בתוך האפליקציה, אז אתה בעצם רואה אותם זזים כמו שחקנים - הכל ב-real-time והכל . . . מדהים.
- (אלון) זה כבר הסטנדארט - לראות את העכבר של כולם, לראות מי קם שנייה . . .
- (דותן) בקיצור - מדהים. לא שאני מעצב ב-3D . . . לפני 20 שנה עשיתי 3D Studio וכאלה, אבל וואו . . . מטורף.
- עוד כלי קטן שמצאתי, שככה “מגרד לי כאב מאוד ספציפי” - זה כלי שנקרא pup -
- והוא בעצם . . . אם מישהו מכיר, אני כותב בלוג-פוסטים ב-Markdown בדרך כלל ואחרי זה מה-Markdown מעלה את זה ל-Medium או לכל מיני מקומות אחרים.
- והקטע המעצבן הוא שכשאתה רוצה לשים Images של תרשימים וכאלה, אז הלינקים נשברים - כי הם מפנים לתוך ה-Repositories שיש לך
- אז בדרך כלל אני מחליף אותם באיזשהו Image-sharing Service כלשהו וזה קצת תהליך ידני
- ועשיתי את זה, בעצם בלי לחשוב אפילו על להחליף את התהליך הזה, פשוט עשיתי את זה שוב ושוב ידנית בלי כל כך לשים לב לזה שאני מבזבז המון זמן.
- אז זה כלי מאוד נחמד שעושה Parsing ל-Markdown, מחלץ החוצה את כל ה-Images, מעלה אותם ל-Service Images, בתשלום או חינמי - “ותופר” את זה בחזרה לתוך ה-Markdown.
- מאוד מאוד נחמד, התחלתי להשתמש בו באופן תדיר ורגיל
- (אלון) מגניב, כתוב ב-Rust . . .
- (דותן) כן, כתוב ב-Rust . . . האמת שאתה תראה שזה טרנד . . . .
- בכלל, באופן כללי - יש מלא כלים משוגעים שכתובים ב-Rust
- ואני חווה, לפחות בחודשים האחרונים, איזשהו “פרץ של כלים” שפשוט נכתבים ב-Rust . . .
- (רן) אתה יודע, קוראים לזה “הטיית האישוש” . . . . אבל זה בסדר.
- (דותן) יכול להיות . . . .
- (רן) . . . והבת שלי הולכת ממש לעוף על ה-Studio הזה . . . ממש חמוד ה-3D Studio, מגניב . . . .
- (דותן) . . . יכול להיות, אבל אני חייב להגיד לך שאני די “במדידת דופק” על הרבה איזורים וגם אם אני נגיד משווה את זה ל-Node ו-Ruby וככה - איך שהתפתחה הקהילה - ואני די מרגיש שעכשיו זה ה . . . יש כיוון כזה, כשאתה פורץ איזשהו קו ואז טכנולוגיה שהייתה Buzz הופכת להיות ממש “גועשת”
- ונראה לי שזו די הנקודה עכשיו, אני מרגיש שדברים תמיד בסביבה, שקורים.
- אז עוד כלי נחמד שנקרא kondo - מלשון Marie Kondo, אותה אחת שפיתחה אני מניח “דרך חיים של סדר וניקיון” . . .
- לא שאני שותף לזה . . . הייתי רוצה . . .
- (רן) שותף פאסיבי . . .
- (דותן) כן . . . אז מישהו כתב כלי שבעצם עושה “סדר וניקיון” בקבצים
- צריך לשים פה איזה 800 Disclaimer-ים, כי הכלי הזה בעצם מוחק דברים . . . .
- הוא מוצא כל מיני קבצים מיותרים - Artifact-ים כאלה שזרוקים, כל מיני Shit כזה ש-Build system זרקו איפשהו - ומנקה את הדברים האלה.
- זה גם כלי שכיום לא ממש צריך . . . כי למה לבזבז? יש לך המון מקום, למה לבזבז זמן ולהסתכן בלמחוק קבצים שאולי אתה צריך? . . .
- אבל אני חייב להגיד שלפעמים יש מערכות בהן באמת מייצרים “הרים של דאטה” כחלק מה-Build שלהם
- או לחליפין - הדברים האלה יכולים להכיל מידע סודי / פרטי / אישי שלא רוצים שבטעות יידחפו לתוך איזה Repo או משהו כזה, אז שווה כן לנקות.
- זהו - כלי נחמד, שתומך ספציפית בטכנולוגיה
- אני ארוץ נראה לי טיפה יותר מהר . . . אז הספרייה הבאה היא Zag, שזה State-Machine Framework
- בזמן האחרון יש איזשהו “רנסנס של State Machines” ויוצאים המון State Machines Contents
- וזה אחד שפותח ע”י הצוות שפיתח את Chakra UI, שהיום אפשר כבר להגיד שזה אחד ה-Framework-ים ל-UI המובילים שיש ב-React.
- אז הם הוציאו גם את זה.
- סטנדרט האיכות שלהם הוא מאוד גבוה וזה מאוד Complete - כמו הרבה מאוד דברים שהם עושים
- אז אני מאוד ממליץ, למי ששוקל לאמץ State Machine ל-Client Side.
- (רן) ב-”State Machine” אתה מתכוון לדברים בסגנון של Redux, מלפני כמה שנים?
- (דותן) לא, לא State Management - פשוט State Machine, כמו שאנחנו מכירים, “בחיים” . . .
- (רן) אוקיי . . . ומתי תשתמש בו? למה זה כל כך . . .
- (דותן) ל-UI יש State, ולפעמים אתה פותר את ה-State הזה בקוד,
- כאילו - “If המשתנה שלי בבטן הוא 8 אז . . . .” וכו’ וכו’ . . .
- (רן) הבנתי . . .
- (דותן) ועוד פעם - זה קצת מצחיק, כי זה מדעי המחשב ל . . .
- (רן) וזה עוזר לך למדל את זה בצורה יותר פורמאלית . . .
- (דותן) כן . . . זה מדעי המחשב, לא יודע אם סמסטר א’ או ב’ . . .
- (אלון) זה אוטומטים לכל דבר . . . . [ד”ש לגדי]
- יצא לי, האמת, בכמה פעמים שהייתי צריך אוטומט, בדרך כלל יש איזושהי ספרייה . . .
- ב-Ruby היו ספריות חמודות ל-State Machine , ב-Frontend אני לא מכיר . . . אבל נשמע אחלה.
- (דותן) אז עולם ה-Frontend גילה שזה אחלה Pattern להשתמש בו - ואפשר.
- ועכשיו, כאילו . . .
- (רן) נגיד - Flow של Onboarding של משתמש חדש, אז כנראה יהיה לך שם ספריית מצבים . . .
- (אלון) . . . ואז אם מישהו חוזר - אז לאן הוא חוזר ומה הוא יכול לעשות וכל זה . . . כאילו, כן . . . אוטומט.
- (דותן) אז ה-Highlight הוא, שוב פעם - שזה התגלה
- ואנחנו מקבלים בזמן באחרון ספריות State-Machine-Dedicated, כאילו - Literally State Machine, אתה בא, מעצב את הצעדים שלך וזה בא איתך - קדימה, אחורה ובכל מיני מקומות.
- עוד אייטם מאוד נחמד - למי שמכיר ngrok, אז זה כמו Binary שאפשר להוריד בחינם, ויש את זה גם בכסף, ברישיון -
- הוא בעצם פותח לך Tunnel לעולם ואתה יכול לתת למישהו Unique URL כזה, שלך
- והוא יכול לגשת ל-Service שרץ ממש על המחשב שלך
- כמובן שה-Tunnel הזה חוצה כל, נקרא לזה “מכשולים של Network”, אפשריים . . .
- וזה העניין - אתה פשוט רוצה לתת למישהו URL לגשת ל-Service המקומי שלך.
- אז bore זה בעצם אותו הדבר - לגמרי Open Source
- כלומר - מי שרוצה ומעוניין יכול לקחת את זה במקום את ngrok ופשוט להנות מכלי שהוא חינמי לגמרי.
- וכמובן אתה יכול גם לקרוא את הקוד שלו ולהבין שהוא לא גונב לך דברים . . .
- לא שאני אומר ש-ngrok עושה את זה, אבל כל אחד והפחדים שלו . . . .
- סופר-סופר נחמד לדעתי.
- הכלי הבא, או הספרייה הבאה - זה נקרא Jest Preview
- חזרה ל-Frontend . . . .
- בעצם, זה נותן לך להריץ טסטים ב-Jest, למי שעובד עם Jest
- הוא פותח אוטומטית Server מקומי שמגיש את כל מה שהטסט עושה פשוט ל-HTML, ל-App
- אתה יכול לפתוח Browser ולראות מה הטסט עושה, ב-Real time
- זה בהנחה שהטסט בודק UI
- אני משתמש בזה וזה חוסך המון זמן, כי תמיד אתה מנסה לנחש איך נראה ה-UI שהטסט כרגע מייצר ובודק . . .
- אתה מנחש את זה או בטלפתיה או בכל מיני דרכים לא יעילות ומוזרות . . .
- (אלון) יש את ה-USB של הטלפתיה, במחשב . . . אם יש לך אז אתה מחבר וזה עובד . . .
- (דותן) אה, זה גם . . .
- (רן) זה לא Port סריאלי (Serial)? זה Port סריאלי . . .
- (דותן) כן - אבל צריך דרייברים . . . .
- (רן) עפנו על עצמנו . . . .
- (דותן) עוד כלי - זה נקרא WTF, לא נגיד את הראשי-תיבות כי אנחנו בעצם תחת Age Restriction בפודקאסט . . . . [גם את הפינה הזו סגרנו בפרק עם זהר, לא?]
- אז זה פשוט Dashobard למפתחים - יש כאלה, נגיד Glances שאני זוכר מ-Python
- זה Dashobaord נחמד שמרכז לך המון דברים ,כתוב ב-Go, כלי . . .
- (אלון) אמרת “Go” בטעות - התכוונת ל-Rust . . .
- (דותן) לא, האמת שזה כתוב ב-Go במקרה . . . “בטעות”, הייתי אומר, אבל בסדר . . .
- ובמעבר חד ל-Database-ים - יש פה מאמר שקראתי, ולדעתי הוא מרתק - כי הוא נותן לך המון פשטות בזה - על איך בונים . . .
- לא יודע אם זה “איך בונים”, אבל זה על מה הקווים לבנייה של Postgres Database שהוא Distributed
- כמו הרבה Database-ים, נקרא לזה “דור חדש++” - CockroachDB וכל מיני כאלה
- הם משתמשים בפרוטוקול של PostgreS, אבל בסוף כמובן שזה לא PostgreS
- אז יש פשוט “יד ביד”, בשפה שאני יכול להעיד שהיא די פשוטה לכל אחד שמכיר קצת Database-ים
- והוא מלמד איך הדבר הזה נבנה - מרתק, ומייצר נקרא-לזה-Inspirition
- אז אפשר, למי שרוצה לעשות איזשהו פרויקט אקדמי או פרויקט-תחביב - לדעתי לגמרי אפשר להתחיל מזה ולבנות איזשהו “צעצוע של Database” כזה . . .
- (אלון) עד כמה זה קרוב למציאות וכמה זה הנחות מאוד נאיביות - יש לך מושג? . . .
- (דותן) תשמע, זה קרוב-עד-כדי ה . . . אני חושב, בגלל שאני זוכר את התקופה הזאת, שזה קרוב עד כדי ההתחלה עם Raft . . .
- למי שזוכר את Raft - אז כשהוא יצא, יצאו כל מיני “התאמות” לכל מיני מערכות
- אני לא זוכר אם ZooKeeper היה גם בסיבוב הזה . . .
- אבל יצאו כל מיני מערכות שעלו כ-Cluster - וזה היה גרוע, בכל מיני צורות
- ואז אני חושב שגם בפודקאסט דיברנו על Jepsen והבדיקות האלה של מלא מערכות שהן Distributed שנכשלו . . .
- [2013 נראית פתאום כל כך רחוק . . . מעניין גם כפרספקטיבה - 187 Final Class 31 - ThoughtWorks Radar 2013]
- תקופה כזאת . . . מה שנקרא “חבלי לידה” של הטרנד הזה
- ואני חושב שהמאמר הזה הוא די מקביל לאז . . .
- כלומר - אם היום אתה תחפש איך בונים דברים עם Raft, שזה פרוטוקול, נקרא לזה קונסולידציה (Consolidation) של Distributed Systems, אז כנראה שאתה תקבל מאמרים דומים
- רק שזה טייק על “בוא נדבר רגע על PostgreS, בוא נראה . . . .”
- מה שאהבתי פה זה שהוא גם נותן לך תחושה - וזה גם קצת מציאותי - שה-Wire Protocol של PostgreS הוא מאוד עוצמתי.
- אז אם אתה רוצה לכתוב Database חדש, אז למה לא להשתמש בזה כאיזשהו Façade מעל ה-Database שלך?
- אין שום סיבה שלא, וזה גם חלק ממה שהוא אומר - זה גם מעניין
- (אלון) מעניין . . .
- (דותן) נגיד, אם Mongo מממשים איזשהו Interface של PostgreS DB - אז זה יכול להיות גם מעניין.
- אני רק שם את זה פה . . .
- ואז אפשר להחליף את המנוע ב-PostgreS, אבל . . . בסדר.
- (אלון) בקיצור - לקחת PostgreS, וכשיש לכם בעיות אז כנראה שניצחתם . . . .לא, סתם.
- (דותן) האייטם הבא - נכון, זה גם Rust, אבל האמת שדרכו גילית משהו שהופתעתי איך לא ראיתי - יכול להיות שאתם מכירים את זה כבר: יש ספר שיצא, מסתבר, יחסית לא מזמן אבל לפני כמה שנים, שנקרא Code the Classics - יצא לכם לראות את הדבר הזה?
- (אלון, רן) לא . . . .
- (דותן) זה ספר נייר - ויש אותו גם בגרסא דיגיטלית בחינם - אבל אני חושב שה-Highlight בו הוא שזה ספר שאתה קונה והוא פיזי . . . .
- אז קודם כל הוא עוסק במשחקים קלאסיים
- והדבר המדהים בו זה שהוא יפה - זה כמו מגזין כזה, חתיכת אומנות
- אז בעצם צילמו משחקים קלאסיים שם וחתכו כל מיני חתיכות של אומנות מתוך המשחקים ופרשו את זה בצורה מאוד יפה
- זה מדהים לכל אחד - ואני חושב שזה מדהים למי ששיחק במשחקים, מי שמספיק זקן כדי להיות כזה ששיחק בהם.
- זה המוצר שאתה קונה - אבל בעצם התוכן הוא איך לתכנת את זה, את כל המשחקים האלה . . .
- וזה מלווה בסיפור מאוד מאוד ויזואלי.
- הספר מלמד איך לתכנת את זה ב-Python, שזה נראה סביר כי זו שפה מאוד Accessible לכולם.
- זה Volume 1 - הבנתי שאמור היה להיות Volume 2 כי חיפשתי ולא מצאתי, אבל יכול להיות שבסוף לא היה . . .
- אני אנחש שזה פשוט מאמץ מטורף לכתוב דבר כזה או לבנות ספר כזה.
- [תזמון מעניין . . . The second volume #demoscene the AGA years is now in stock]
- ואז בעצם בא מישהו ובנה את . . . עשה Porting למשחקים האלה ב-[אלון מרגיש הפרעה בכח]-Rust . . .
- עם בערך שלושה או ארבעה Game Engines שונים ב-Rust - כאן: rust-game-ports
- אז זה מעניין - כי אתה יכול פשוט לכתוב את זה בשפה אחרת וגם לראות איך מנועים שונים מתפקדים בצורה אחרת
- ובכלל - Rust כ-Gaming Language זה דבר מעולה, בכלל - לנסות להתפקס על זה ולכתוב משחקים ב-Rust
- אז זה ממש נחמד . . . אני הורדתי את ה-PDF של הספר הדיגיטלי בחינם - אפשר לקרוא, מדהים.
- זהו . . . פיספסתי פשוט את הדבר הזה. תופעה מדהימה.
- האייטם הבא זה React Hook שאומר לך מה קורה עם הקומפוננטות (Components) שלך . . .
- ככה, “Hook כזה קטנצ’יק” . . . ואתה יכול לדבג עם זה קומפוננטות (Debug components)
- פעם היה why-did-you-render כדי להבין שיש “קומפוננטות מגעילות” כאלה שמרנדרות (Render) סתם כי . . לא יודע, הן מקבלות דאטה שהוא חדש “סתם”, זאת אומרת שונה ברפרנס אבל לא שונה במהות של הדאטה.
- וזה אחלה Hook שאורז בתוכו כמה וכמה כלים - פלוס כמה דברים שאני לא חושב שהיו בספריות אי פעם
- ממש - אין שום סיבה שלא להשתמש בו, ממש מגניב
- ממליץ מאוד לכל מי שעובד עם צוותי Frontend או בכלל עושה Frontend.
- מעבר חד - . . .
- (אלון) יש לו Mode “לכבות אותו”? . . . כי הכי הגיוני לפזר אותו בכל הקוד וכאילו “Tick” . . . מקסימום תדרוס אותו, זה Java, למי אכפת . . . .
- (דותן) האייטם הבא זה אייטם קצת מטורף, כאילו . . . זה אתר שנקרא copy.sh, שמאחוריו יש GitHub Project שמאחורי הטכנולוגיה
152 פרקים
כל הפרקים
×ברוכים הבאים אל Player FM!
Player FM סורק את האינטרנט עבור פודקאסטים באיכות גבוהה בשבילכם כדי שתהנו מהם כרגע. זה יישום הפודקאסט הטוב ביותר והוא עובד על אנדרואיד, iPhone ואינטרנט. הירשמו לסנכרון מנויים במכשירים שונים.