יום שני, 28 בספטמבר 2015

276 Fogcast 20 - queues

הרבה זמן לא הקלטנו פרק של פוגקאסט שבו אנחנו מדברים על נושא אחד באופן חופשי יחד עם ליאור שיאון.
מזכיר את קבוצת הפייסבוק שלנו שבה אפשר לשתף הכל, ואת הטוויטר שלנו, הבלוג או אפילו RSS.
הנושא שלנו הפעם הוא Queuing.
  • Queuing – פעולות אסינכרוניות שנעשות בשירות שלנו. כלומר מחזירים תשובה במהירות למשתמש, אבל הפעולות נעשות ברקע. (1:10)
  • במערכת גדולה מספר ההודעות עולה, ה-Flow הולכים ומסתבכים. אין כמעט כלי אדמיניסטרציה מוכנים לניהול Flow ונדרש מימוש עצמי. (2:08)
  • המוטיבציה הראשונה להכנסת Queue היא הורדת עומס משכבת ה-Frontend או שכבת ה-API. מערכות שנמצאות בשימוש עיקרי הן SNS, Kafka, Resque ואחרות. (3:03)
  • איך לבצע חישוב שיש בו מספר צעדים, ואתה רוצה לדעת היכן יש הודעות תקועות. לפעמים אתה לא יודע מה ה-Flow בכלל. (6:28)
  • חייבים לשמור על הסדר בשביל מעקב, או בשביל לשנות את הלוגיקה של החישוב. כמו לדוגמא בוולידציה של נתונים לפני שמירה. (8:58)
  • מערכת שמבצעת Orchestration, כלומר לכל מידע יהיה מוצמד State מסוים, כזה כלי לא מצאנו במערכות של Queuing בלי לכתוב קוד. למרות שיש מערכות לחישוב שקרובות מאוד למה שנדרש. (9:47)
  • במערכות כאלו ל-Controller יש State Machine של החישוב, כאשר Workers שונים מבצעים את הפעילות לפי הגדרה מראש. (13:33)
  • השאלה אם לא מוותרים על הביזוריות של ה-Queue, ומעבירים את העומס למקום אחר. (16:38)
  • הבחירה ברוב המקרים היא בין פתרון פשוט מבוסס קוד פתוח, או פתרון מורכב של טכנולוגיה קניינית יותר. (19:05)
  • ברור שכאשר מדובר ברכיב שהוא מרכזי עבורך, לא כדאי להיות תלוי בספק חיצוני. (23:35)

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

יום חמישי, 24 בספטמבר 2015

275 Bumpers 24

שלום לכולם, אנחנו עם פרק חדש של Bumpers והגענו כבר לפרק מספר 24. באולפון רן תבורי, אלון נתיב ודותן נחום ואנחנו נעבור בזריזות על חידושים, הפתעות, פרויקטים ב-Github וגם הרבה דברים משעשעים.
כמובן שלא נשכח את קבוצת הפייסבוק שלנו שבה אפשר לשתף הכל, ואת הטוויטר שלנו, הבלוג או אפילו RSS. והפעם יש לנו זוכה בכוס קפה מהודרת של רברסים. הזוכה הוא שלמה יונה והוא מקבל את הכוס בגלל תגובות מועילות בקבוצת הפייסבוק שלנו. כל פעם אנחנו נחלק כוס, אז כדאי להכנס ולהצטרף לדיונים.
ואנחנו מתחילים.

רן (2:00):
  •   Foo.bar – אתר של שאלות או חידות שמפעילה גוגל. אם אתה מחפש מידע על טכניקות תכנות מתקדמות, מופיעה לך פתאום הצעה של לנסות לענות על שאלות בחידון לא פשוט. בסוף מציעים לו לשלוח קורות חיים לגוגל. (דיון בנושא ב-Hacker News, GeekTime).  

אלון (4:40):
  • QueryMongo – ממיר של שאילתות MySQL ל-MongoDB. לא בטוח עד כמה השימושיות בגלל ההבדל במודל של בסיס הנתונים. אבל יכול להיות שימושי וללמוד קצת. מאחורי האתר חברת RJMetrics שמציעה כלים לניתוח מידע ללא כתיבת שאילתות.
  • Look at My Slides – רגע של נפוטיזם: אחי הרים פרויקט של מצגות טיפים לשיפור מצגות. אפשר לעקוב גם אחרי @lookatmyslides.
  • Leonardo – מאפשר להכין מוקאפים ב-Angular. אתר מאוד משעשע.

רן (8:05):
  • Debugging Stories – ריכוז של סיפורי Debug בתחומים שונים. מאוד מעניין ומאוד מעשיר.
  • Post Mortems – ריכוז של סיפורי Post Mortmes מחולקים לפי סיבות, של חברות גדולות כמו גוגל, אמזון, לגבי נפילה של שירותים וכו'.
  • Traceroute – כלי ויזואלי למעקב אחרי פאקטות של מידע, משרת של MIT עד לאתר שאתם בוחרים.
  • פוסט מעניין שסוקר ניהול מאגר קוד מרכזי בתוך החברה לעומת מאגרים מרובים. המסקנה: אם יש תרבות קידוד חזקה בארגון, היתרונות ב-MonoRepo הם גדולים מאוד. בהקשר זה, שווה להזכיר גם את הפרסום לאחרונה על מאגר הקוד המרכזי של גוגל, Piper.

אלון (14:25):
  • האקינג לכפתור אמזון – פוסט חביב על שינוי של כפתור של אמזון שמיועד להזמנת מוצרים, כדי לעקוב אחרי פעילות תינוק. מי שרוצה את זה בצורה יותר מסודרת אז Particle.io מציעה כפתורים עם קיט מפתחים.

רן (17:20):
  • רשימה של מחרוזות בעייתיות – שימושי במיוחד ל-QA. מחרוזות מסוגים שונים, כמו שפות שונות, מילים מיוחדות כמו Null או undefined שיכולות לגרום לבעיות בתור קלט בשפות תכנות מסוימות.
  • סקר כלי הניטור – סדרה של פוסטים שמרכזת סקר שנעשה לגבי הכלים הטובים ביותר לניטור. באופן לא מפתיע Nagios עדיין מוביל ואחריו AWS Cloud Watch.
  • JAWS – מדובר ב-Web Framework מבוססת Lambda. הפתרון מגדיר פונקציות Lambda קטנות, והוא מעלה אותן ל-AWS Lambda.

דותן (29:20):
  • Substance – המון עצות לקוד נקי ב-C.
  • מיטוב של GO – מסמך שמסכם בצורה תמציתית הרצאת וידאו בכנס של GO. מעבר על כלים שונים בשפה.
  • Mini Grid – גריד של CSS מאוד מינימליסטי, שמציע אלטרנטיבה לגרידים גדולים והכבדים יותר.
  • Relay, GraphQL – פייסבוק השיקה כלים נוספים לתמיכה ב-React. Relay עבור החלק של השרת ב-React. GraphQL היא שפת שאילתות, מאוד דומה לשפה של MongoDB. שווה לקרוא את ההרצאות.
  • GO 1.5 – גרסה חדשה לשפה הפופולרית. חידושים כמו Garbage Collector חדש, תמיכה במובייל עם GO Mobile ועוד.
  • פייתון ורובי ב-GO – פיתוח של מודולים לפייתון ב-GO, ופוסט שכתבתי על פיתוח של GEM של רובי ב-GO.
  • טיפים ל-GO למפתח חדש – פוסט מעניין שמרכז עצות ממספר מפתחים בכנס GO אחרון.
  •  Kotlin – שפה שמזכירה מאוד את Swift ורצה על JVM. את השפה פיתחה JetBrains שמפתחת עורכי קוד פופולריים. וגם Cheat Sheet שימושי לשפה.
  • Leaky bucket – אלגוריתם שימושי לכל מי שעוסק ב-throttling ברשתות תקשורת.
  • Unix Toolbox – המון המון כלים ליוניקס, שימושי כדי להתרענן ולהיזכר.
  • Redux – תשתית Flux מאוד טובה. יעילה מאוד עם React.
  • Blade – מייצר XCode לכל האייקונים, רכיבי תמונות וכו'. כלי שפיתחתי ויודע לבנות Image Catalog מתוך Asset אחד.

אלון (52:11):
  • איחוד בין jQuery ל-Dojo – משהו שכנראה היה  צריך לקרות כבר מזמן, ויאפשר לשלב משאבים לטובת פיתוח טכנולוגי.  
  • מדריך למיטוב אתר – ריכוז של טיפים למתחילים להאצת אתרי אינטרנט, עם הרבה דוגמאות ושימושיות.
  • Google Logo – גוגל החליפה פונט בלוגו, וזה קישור לסרטון של הלוגו החדש.
  • תגנבו את ההרצאה הזאת – הרצאה נחמדה של מעצב לשעבר בפייסבוק ואפל, שמסביר מה זה השראה ומה ההבדל לעומת גניבה.
  • Sublime Tips – כמה קיצורי דרך וטיפים ל-Sublime. פוסט מאוד שימושי.

דותן (55:10):
  • הגביע הקדוש – השלמתי את הפלאגין שמאפשר לי לדמות את ההתנהגות של VIM בעורכים של IntelliJ.

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