יום שני, 31 בדצמבר 2018

Summit 2018: Career growth hack: See what other don't, Fix what other fear! / Itiel Shwartz

Just joined a company full of super-senior-10x-developers and you feel lost and scared? You want to boost up your career and become a better developer? Or maybe you just want to have more impact in your current role?
The talk will focus on the state of mind and actions that can help you to maximize your impact, and improve your software skill level :)

It is based on my own experience as a super fresh and inexperienced graduate joining a company where the concept junior developer didn't exist, to a meaningful team member, and later becoming a lead developer.

The lecture will tackle a super important question: How can you give and get the most value from your job? come and find out.


Summit 2018: Shifting Sec to the Left with Conjur Open Source / Inbal Zilberman Kubovsky

The everyday goal of developers and DevOps is high quality software delivery in high velocity. Security is not their focus and we believe it should not be a burden as well. Security should be natively and seamlessly integrated into the tools and platforms developers and DevOps use, so it will become effortless. Conjur Open Source is a security solution built with developers and DevOps in mind. It can free the developers to do what they do best – develop great software – but without compromising their security.

In this session I will introduce Conjur Open Source, walk through how native and easy security can become and how you can get started and contribute – right after this session.


Summit 2018: Micro Frontends Architecture & in practice / Idan Levin

I will tell my story. A story about a dinosaur, Mono in the wild wild front-end. At first look I was naive, I thought I could tackle it with component approach. I realize I got it backwards and my problem was scale so I turned to micro-services.

During my work, I noticed that everybody started taking this road, but the results were different and there was 0 collaboration. Recently a new term was born, "micro-frontends", but still the status stayed the same.

The story continues with: How I dealt with the unique characteristics of my organization. The problems we encountered and how we overcame them. What I think will be the future and how we can understand and collaborate better


יום שבת, 29 בדצמבר 2018

Summit 2018: The magic of distributed systems: when it all breaks and why / Holden Karau

Distributed systems can seem magical, and sometimes all of the magic works and our job succeeds. However, if you've worked with them for a long enough time you've found a few places where the magic starts to break down and the fact that it's actually a collection of several hundred garden gnomes* rather than a single large garden gnome.

This talk will use Apache Spark, Beam, Flink, Kafka, and Map Reduce to explore the world of data parallel distributed systems. We'll start with some happy pieces of magic, like how we can combine different transformations into a single pass over the data, working between different languages, data partitioning, and lambda serialization. After each new piece of magic is introduced we'll look at how it breaks in one (or two) of the systems.

Come to be told it's not your fault everything is broken, or if your distributed software still works an exciting preview of everything that's going to go wrong. Don't work with distributed systems? Come to be reassured you've made good life choices.


Summit 2018: The Hall of shame / Sohar Sacks & Ido Viron


Summit 2018: Your Next Game - Built by React / Eyal Eizenberg

The internet offers an endless amount of simple online games like solitaire, minesweeper and hearts. However, these games are usually done with terrible UI/UX, lame graphics, full of banners and ads, and (dare I say it), built on FLASH.

In this presentation I will talk about how I built a DOOM minesweeper game with React, Redux & Typescript. I will also share my dream to create one open sourced website, which will host many well-created simple games, to serve both as a learning platform for developers and for players to enjoy playing good looking games with a great UI/UX, without a ton of ads, all in one place.


יום שלישי, 25 בדצמבר 2018

Summit 2018: Less is more: how we cut off 30% of our code that did nothing without trying to / Gilad Ben Yossef

Most presentations in the software world describes a positive achievement of sorts: a feature added or a bug removed. This presentation is different. In this presentation we shall describe how we deleted over 4000 lines of code, together comprising 30% of the code base of a complex device driver, without even trying.

Last year my team started working on refactoring the Arm CryptoCell device driver for the purpose of integrating it upstream. While doing so, a pattern emerged - almost each set of changes would reduce the code line count, and yet the functionality stayed exactly the same.

This presentation explains how and why we cut 40% of the code with no functionality loss without trying.
In this talk I will introduce Bit, talk about the challenges and opportunities of building a core piece of your technology with the community, the challenges of having to play hand in hand with the rapidly-changing open source ecosystem (from Git & NPM to Webpack and React) and share some insights for teams who want to open source some of their projects


Summit 2018: Building Bit: Lessons Learned In The Trenches / Gilad Shoham

More of today's applications are being built from smaller components and modules. However, the workflow around building with smaller components can also generate a lot of overhead. Bit is an open source project which helps developers discover, use and collaborate on shared components while distributing the development process itself.

In this talk I will introduce Bit, talk about the challenges and opportunities of building a core piece of your technology with the community, the challenges of having to play hand in hand with the rapidly-changing open source ecosystem (from Git & NPM to Webpack and React) and share some insights for teams who want to open source some of their projects


Summit 2018: Feature, we need to talk / Gil Vind

Many times we, as Developers and Product Managers, see features or products that aren't being utilized well, or don't fit in with our product or engineering vision, but we keep them just because they're already there. In this session I will introduce signs to identify when it’s time to let the feature or product go and share best practices on how to "have the talk" with the feature. We will review examples of companies who removed features/products and show how, in many cases, removing features improves your product, your offering and you.


יום ראשון, 23 בדצמבר 2018

357 Bumpers 54

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

רן - 
  • ציטוטים משעשעים על תכנות - Programming Quotes. הרבה אמרות שפר נחמדות בסגנון “Life is too short to run proprietary software”. 
    • הייתה הרצאה של ארז לוטן בנושא בכנס רברסים האחרון - יש וידאו.
  • סדר בעננים - CNCF Landscape - עמוד שממפה את טכנולוגיות הענן (Cloud Native) השונות בצורה ויזואלית יפה ומאורגנת, ומאפשר לראות עד כמה הנושא עשיר בתת-טכנולוגיות וחברות שונות
    • אפשר להציג טבלאית וגם גרפית בחלוקות שונות, לפי פופולאריות וכו’. אם אתם רוצים להכיר את הקטיגוריות השונות זה עושה המון סדר.
  • יוזמה חדשה - CNAB - Cloud Native Application Bundle : ניסיון לייצר פורמט אחיד לכל השירותים שהם Cloud Native, כי כרגיל כל אחד מתכוון למשהו קצת אחר כשהוא אומר Cloud Native.
      • לא משנה על איזו תשתית רצים ( . . .AWS, GDC, k8s), זהו פורמט אחד שמתאר את ה-Serverless שלכם, במטרה לייצר כלים  שיוכלו להרים את השירות לפי הדרישות הספציפיות.
      • זוכרים שתהינו מה עושים החבר’ה של Deis, שנקנתה ע”י מיקרוסופט? אז הלוגו של Deis Labs בתחתית העמוד כנראה מרמז למשהו (לא רק הם - גם Bitnami שם, ו-Docker ועוד)
      • כרגע מאוד Azure-oriented, יכול לתפוס יותר אם עוד ספקיות ענן יכנסו לזה.
  • בנושא דומה - Kubedex - למי שמתעניין ב-Kubernetes, זה אתר שמלא בכל טוב: בלוגים מעניינים וגם חלק של השוואות - 
    • מתלבטים באיזו Container להשתמש? או באיזה Plug-in? יש כאן הרבה השוואות מאירות עיניים, שנראה שמאחוריהן הרבה ניסיון בשטח.
    • בונוס - הרבה הומור וציניות. לא PC, אבל מאוד נחמד.
  • בנושא אחר - אם אי פעם רציתם לשלוח חללית (כמוהם) או לוויין ולנטר אותם מהקרקע, אל דאגה! לנאס”א יש פתרון Open source במיוחד בשבילכם - OpenMCT - Open Mission Control Network
    • מאפשר לכם ליצור את תחנת השליטה מהקרקע עבור האובייקט ששלחתם לחלל, כך שתוכלו לשלוט בצי החלליות שלכם.
    • כמו בכל מרוץ חימוש טוב, גם Amazon הכריזו ב Re:Invent האחרון שיש להם Ground Station (משלוח למאדים בדרך?). לא בדיוק אותו הדבר (Open MCT הוא סוג של Web Interface), אבל אם אתם בעסקי תחנות החלל, שני הפרויקטים יעניינו אתכם (ואת המתחרים).
    • אנקדוטה נחמדה - לעמוד ה-Github של נאס”א עם ה-OpenMCT יש יותר מ7,200 כוכבים - מסתבר שיש הרבה גיקים שאוהבים תחנות חלל, או לפחות חושבים שזה מגניב שיש Open Source מנאס”א.
  • בחזרה לכדור הארץ, וספציפית - פרוטוקול gRPC - לא עובד כל כך טוב ב-Web, יותר טוב במקרים של Service to Service, אולי במובייל.
  • כלי (שנכתב בפייסבוק) בשם Getafix - בלוג די ארוך ונרחב (כן - רן קרא הכל. תנסו גם) שמתאר כלי פנימי של פייסבוק שמתקן באגים באופן אוטומטי.
    • איך? הרעיון הלא מאוד חדש של מציאת דפוסים - יש כאלה לבאגים פשוטים כמו פורמטים כדי ליצור קוד יותר אחיד (gofmt ודומיו משפות אחרות), אבל כאן מדובר על משהו אחר - ML שלומד לתקן באגים.
    •  דגמו הרבה מאוד Commits (טובים) מההיסטוריה של פייסבוק, והמכונה לומדת איך הבאגים תוקנו 
      • כשמזהים דפוס דומה יודעים איך לתקן אותו. לא עובד על הכל, אבל מגוון המקרים גדל.
      • התוצר הוא Merge Request שכרגע מישהו צריך לבחון ולאשר, אבל לטענתם כמעט הכל מתקבל.
      • אין מי שיחליף את המתכנתים? אולי מסתמנת תפנית בעלילה.
  • הקדמה לסדרת הכרזות מה- Re:invent האחרון - Amazon Corretto: תמיכה ארוכת-טווח ל-OpenJDK (מה ש-Oracle אמרו שהם לא מתכוונים לספק).
    • אמאזון (והרבה מהלקוחות שלה) משתמשים הרבה, ואלו חדשות טובות לכל משתמשי ה-Java לסוגיו.
  • תפנית חדה בעלילה - דיברנו על HTTP1 (ולא הזכרנו את HTTP2), ועכשיו כבר מדברים על HTTP3 (כבר יש ועדה שעובדת על זה)
    • אם זה נראה לכם מוכר, אז כן - זה מבוסס על QUIC, שהתחיל ב-Google. הגרסא ההיא כנראה ננטשה, אבל גרסא אחרת מהווה בסיס ל-HTTP3.
    • שני שינויים מעניינים - מבוסס על UDP ולא על TCP, ועם אופטימיזציה על SSL (מה שהיום עולה ב”מס” יחסית גבוה, ועכשיו יתוקן).
  • נושא שהוזכר לא מעט - GraphQL
    • נוצר בתוך פייסבוק ואז עבר לקוד פתוח ואומץ ע”י קהילה רחבה. פייסבוק החליטו שכנראה הגיע הזמן לשחרר את הטכנולוגיה למשהו יותר נייטראלי - GraphQL Foundation
    • עכשיו כבר חלק מה-Linux foundation, שכבר מזמן לא כולל רק Linux.
  • חזרה ל-Re:Invent (כי מה שקרה בווגאס ממש לא נשאר שם) - AWS Firecracker: טכנולוגיה שהיא בין Container למכונה וירטואלית (“A container with the security of a VM”). 
      • מתבסס על KVM אבל לא כל כך כבד כמו VM סטנדרטי
      • כבר בשימוש פנימי לאורך זמן באמאזון (Lamdba, Fargate - כנולוגיה מוכחת)
      • כתוב ב-Rust (סוף-סןף פרויקט מעניין, אמיתי וגדול)
      • חתימת הזכרון היא סביב ה-5Mb, ומריצים סדר גודל של כמה אלפים על מכונה
      • במידה ותופס, יכול להחליף Dockers ו-VM והמון דברים שהיום נראים כמובנים מאליהם
  • אין לי מילים . . I don't know what to say. כשזו הכותרת ב-Github, כדאי תתחילו לדאוג . . .
    • חבילה ב-Node.js בשם EventStream, שהתגלה בה קוד זדוני
      • זו חבילה מאוד פופלארית, וזה היה שם במשך סדר גודל של כשלושה חודשים. לא ברור מה בדיוק זה עושה, אבל לפי החתימה זה לא תמים ולא כשר (כרייה של ביטקוין או משהו בסגנון, או מניפולציה על כתובות של ארנקים. לא טוב).
      • במשך שלושה חודשים אף אחד לא שם לב, ונוצרה סערה שנפרשת בטוויטר ובבלוגים שונים (וגם כאן)
      • בגדול, סדרה של העברות אחריות, שבסופן גורם זדוני כלשהו. של מי האחריות? דיון מעניין
      • קוד פתוח מניח שהרבה עיינים מבטיחות רמת בטחון גבוהה יותר, מה שלא ממש קרה כאן
      • היה סיפור דומה ב-npm מלפני כמה זמן שהתגלה די בטעות (בגלל טעות בקוד).
      • קשה להגדיר מהו חוסר אחריות בסטנדרטים הנוכחיים של קוד פתוח, מעלה שאלות לגבי סטנדרטים עתידיים ומניעת מקרים כאלו בעתיד (חתימה דיגיטלית כלשהי? החולייה החלשה כרגע היא אמון, שבעייתי בסדרי גודל כאלה). מומלץ לקרוא.
  • עוד הכרזה מ-Re:Invent - מוצר בשם AWS Outposts - יכולת להרים Data Center on premise.
    • לא הפעם הראשונה שרואים כזה - יש כמה חברות שזה הולך לאתגר (מאוד) את המודל העסקי שלהן, כמו גם כמה מוצרי קוד פתוח.
    • כרגע מאוד בסיסי - EC2, S3 - אבל גם AWS התחיל ככה וגדל יפה.
  • תמיכה ב-WebSockets ע”י API Gateway - שכבה של Gateway שאמאזון מספקים, שיכולה לעורר פונקציות Lambda.
    • עכשיו אפשר לכתוב פונקציות “שמדברות” עם WebSockets, שדרוג מעניין למי שרץ Serverless, מאפשר Scaling משמעותי.

אלון -
  • עוד מ AWS re:invent - הרבה הכרזות מעניינות: יש Managed Kafka, הכרזה על Time-series Database, ועוד רשימה מרשימה בהחלט
  • טריק נחמד מהמנהלת של React - איך ליצור Console log עם הזחות (Indent) אוטומטיות לפי העומק של הפונקציה. שורה אחת של קוד שמשפרת את כל הלוגים.
  • נטפליקס הוציאו Web Performance Case Study - מאמר מאוד מעמיק על שיפור ביצועים בדפי הנחיתה (Landing Pages) - 
    • ב-Static הם ירדו מ-React ועברו ל Vanilla JS, טוענים לשיפור ביצועים של 50%
    • עוד כל מיני אופטימיזציות (הקטנת גודל חבילות וכו’), ניתוח מאוד מעניין של לפני ואחרי.
  • עוד React Hooks
    • קודם כל אחורה - Undo / Redo בלחיצת כפתור
    • יש אתר בשם useHooks שהמנטרה שלו היא One new React Hook recipe every day”. יש הרבה כאלו לאחרונה, זה נראה פשוט ונחמד.
      • שימו לב, עדיין אלפא - כל מי שרץ לכתוב, שיחשוב רגע.
  • בלוג-פוסט של CloudFlare שיצא על ה-Workers שלהם
    • קצת כמו AWS Lambda שרץ על ה-Edge.
    • כתוב  (ותומך רק) ב- V8, עם Cold start מאוד נמוך - מדברים על סדרי גודל של עשרות ms.
      • כרגע (לפי העדות האובייקטיבית שלהם על עצמם) זה הרבה יותר טוב מכל האחרים.
      • בהמשך לטענתם - זה העתיד: הכל יהיה in-memory, הכל גם עולה הרבה פחות
      • מדברים על 3Mb RAM למכונה, כשה- AWS Firecracker שהוזכר קודם מדבר על 5Mb, על פניו כבר לא הבדל כזה גדול (פורסם לפני ה-re:invent, כנראה לא מודעים לזה)
  • כלי חדש בשם dashbird - מוניטורינג לפונקציות Lambda - זמן ריצה, האם התחיל מ-Cold start וכו’
    • חינמי, לפחות בהתחלה
  • עוד כלי בשם Lambda Tuning - מאפשר הרצה של הפונקציה עם כל מיני הגדרות זיכרון (128, 256, …)
    • למה זה טוב? מסתבר שב-AWS Lambda, מקבלים מכונה יותר חזקה (CPU, Network, I/O) ככל שמגדילים את הזכרון, ואז יכול לקרות (תיאורטית ובפועל) שבהגדלת זכרון התשלום יוכפל (לדוגמא), אבל זמן הריצה יתקצר בפקטור יותר גדול והמחיר הסופי בפועל יקטן.
  • יצא VUE 3.0 - הרבה שינויים משמעותיים
  • עברית שפה קשה, אבל AWS Translate עכשיו תומך. אנחנו על המפה.
  • משהו מעניין ב-React - מישהו כתב שהביצועים ירדו לאחר שדרוג לגרסא 16.5.
    • עדיין לא פתור, לא נראה שאיתרו עדיין את ה-Root cause. אם נדמה לכם שיש ירידה בביצועים, זה כנראה לא אתם. הפעם.
      • כרגע נראה שעדיף לחזור אחורה, או לבדוק - יש מצב שתוקן ב-v8.
  • כלי שיוצר Progress Estimator - מעריך כמה זמן ה-Process צריך לרוץ לפי חישוב של המשימות הקודמות. npm חביב, בתקווה שלא מכיל קוד זדוני הפעם.
  • אתר של Google ל-SEO check
    • מנתח את האתר מבחינת SEO, עדיין בבטא.
  • חזרה ל-React - מאמר על Inside Fiber
  • קצת CSS לגיוון - CSS NES בסטייל של פעם, עם כפתורים גדולים והכל. למי שרוצה לעשות משחקי רטרו זה נראה פשוט יפה.
  • שרשור בטוויטר על מישהי שעברה מ-JS ל-Typescript ותיארה את כל מה שהיה צריך לעשות בשביל לעבור
    • שימושי עבור מי שרוצה לעבוד, יש גם הרבה תגובות מעניינות
  • ומשהו על Google AutoML - זה לא עובד! בערך…
    • אמ;לק - אלון ניסה על מאגר של מאות תמונות וזה לא עבד, גם עם מאות דוגמאות ולא רק ~10 כמו שאמור להספיק
    • כנראה שזה עובד עבור תמונות מסוג שכבר נדגם במערכת. אם הכל חדש, צריך מאגר יותר משמעותי כדי שזה יעבוד (טפסים של משרד ממשלתי ישראלי כנראה לא נדגמו הרבה קודם, למשל).

דותן -
  • טרמינל ב-GO מעל OpenGL - אמור להיות High Performance Terminal. פרויקט נחמד, אבל לא באמת יותר מהיר מ-Hyper2 למשל. 
    • מה שכן, אם אתם מחוברים למטען עם Hyper2, אז הוא משתמש ב-OpenGL ויהיה יותר מהיר. אם לא אז לא ויהיה יותר איטי . . . עניין של הגדרות ברירת מחדל מסתבר.
  • כלי בשם dive עבור docker image exploration - הכל נמצא ב-CL, ואפשר לטייל בין השכבות, לראות מה נוסף וכו’. מומלץ בחום. כתוב ב-GO.
  • פוסט של Rich Hickey על קוד פתוח - Open Source is Not About You
    • גם מצד החברה והמחוייבות לקוד פתוח וגם מצד הקהילה. שווה לקרוא.
  • פודקאסט בשם Data Skeptic (תודה לשלומי ברושי על ההמלצה!) - לא טכני כמו שאולי הייתם מצפים, קצת הסתברות וסטטיסטיקה, נחמד לשמוע.
  • פייסבוק הוציאה Framework בשם Pytext - איך שהם עושים Deep Learning בשביל למידה מעל טקסט (NLP).
    • נראה כמו Productivity suite מעל Pytorch, וכלים לייצוא של מודלים ל-Cafe2 (כנראה שזה מה שהם משתמשים בו ל-Production).
  • למי שעדיין לא נכס לעומק ה-Deep Learning ו-AI באופן כללי - מדריך בשם Practical AI, עם כמה דברים מיוחדים, מחולק לרמות ויחסית קליל. יש הרבה כאלה, זה נחמד.
  • אפליקציית קוד פתוח בשם devhub - נכתבה ב-React native ותומכת ב-Android, IOS ו-Web
    • הצהרה על 99% code re-use, לכל מי שמטיל ספק ברעיון אז זה כנראה לגמרי אפשרי, ואפשר לראות איך (הקוד, כאמור - פתוח).
  • מאמר די ישן (2016…), שמנסה להבחין בין Engineers לבין Data Scientists
    • איך זה היה אצל הכותב בחברה ואיך הוא קירב בין הקהילות, אסור להגיע למצב שיש מהנדסים שבונים ETL עבור Data Scientists . . .
    • די ארוך, שווה לקרוא - נכתב ב-2016, היום זה נראה לא פחות (ואולי יותר) רלוונטי ומועצם.
  • כמה לינקים בנושא Data Locality - 
  • סוג של ניסוי של גוגל בשם quicklink - הטמעה של JS באתר שלכם, שמזהה על מה אתם מסתכלים בדף ועושה מעיין prefetching למידע 
    • יכול להיות קצת בעייתי, יש מצב שמתערבב עם ad-tech וכו’.
    • תחת Google Chrome Labs, לא בהכרח משהו שאתם רוצים ב-Production
  • ועדת tc39 שקובעת לאן JS הולך - ונראה שהכיוון הוא ספרייה סטנדרטית
    • שפה מאוד פופלארית, כיום ללא ספרייה סטנדרטית, כרגע הצעה די ראשונית
    • מסביר קצת את עושר ה-Ecosystem שבא לפצות על היעדר הסטנדרט
  • עוד מגוגל - Lighthouse: תשתית ה-Auditing בכלי הפיתוח של Chrome
    • יכולת להפיק דוחות ולכוון אותם, מאפשר להשתמש בלי Chrome בכל אתר שרוצים
  • אייטם דומה - סקריפט שגונב Cookies . . . מסתבר שבעולם של Headless Chrome לא צריך לעשות הרבה בשביל זה.
  • מאחורי הקלעים - “הצטרפתי לאמאזון (תל אביב) ועזבתי אחרי 5 חודשים. הנה למה”.
  • מכירים את ProcDump (שנות ה-2000 המוקדמות)? אז הנה ProcDump ללינוקס.
    • כלי של מיקרוסופט מעל Windows, ו-18~ שנה לאחר מכן עכשיו יוצא (ממיקרוסופט) ללינוקס. 
    • סגירת מעגל יפה. בטח כתוב ב-C.
  • וקצת ל-Rust - 

  • מצחיקים לסיום - 
    • הדבר הבא - BaaS - Boss-as-a-Services: יש לך משימה? מעולה! שלח לנו ואנחנו נציק לך עם שאלות על מה קורה עם זה? למה אתה לא עומד בזמנים? שלח דו”ח! וכו’.
      • לא, לשלוח את זה לאישתך לא יהיה רעיון טוב.
    • שאלת Java קיומית ב-Stack Overflow - למה 2 * (i * i) מהיר יותר מ - 2 * i * i ?
      • אמ;לק - נכנסו לאסמבלי וגילו שבאמת יש הבדל . . .
    • דיון ב-Quora עם תיאוריה לגבי מפתחים יפנים
      • השפעות תרבותיות של דור שגדל על נינטנדו ורוצה רק לפתח משחקים, נכנס לעבודה לכל החיים, חברות עם מערכת היררכית מאוד חזקה ואתיקת עבודה מטורפת, ומה כל זה אומר
      • לא בטוח שלגמרי מצחיק וכנראה שמלא הכללות וסטריאוטיפים, אבל מעניין

  • טיזר! הפרק הבא של Bumpers עומד להיות מיוחד, לרגל פרק היובל
    • כן, הנוכחי הוא Bumpers מספר 54. אז מה?

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