יום רביעי, 15 בדצמבר 2010

088 Final Class 2

בפרק השני של המחלקה סגורה נפגשנו: רן תבורי, יונתן ממן, גילי נחום, ישי סמית ואוּרי לביא. (אורי להב, איתי ממן וערן הראל מבטיחים להשתתף בפעם הבאה).
לדעת כולנו שיפרנו את איכות הקול, מאחר והקלטנו הפעם את הפודקאסט בעזרת conference room שאליו התקשרנו מקו טלפון רגיל... פלאי הטכנולוגיה :)
הנושא הראשון שדיברנו עליו הוא:
עתידה של Java:
  • ישי: לפני כחודש המלחמה התחילה... מאז ש Oracle קנו את Sun הם התחילו לעשות משהו ש Sun עשו בהתחלה והוא למנוע licensing מ Apache. ל Apache מימוש משלהם לספריות Java ו runtime הנקרא Harmony. למרות ש Java היא Open Source אי אפשר להכריז על Java בלי לעבור TCK – Technology Compatibility Kit ומאחר ו Oracle שולטים על ה TCK בידיהם המפתח לאפשר מימושים אחרים של Java. כש Oracle היו Oracle הם דווקא תמכו ב Apache אך המניעים העסקיים שלהם השתנו.ולהחמיר את זה, גם IBM משכו את התמיכה שלהם ב Harmony. לעומת זה Google משתמשת בחלקים של Harmony ב Android.
  • רן ציין שזהו בהחלט היבט כלכלי. Dalvik שזה ה VM של Android משתמש ב Harmony וזה הצד של התביעה שלOracle  התובעת את Google.
  • ישי הוסיף ש Google אף פעם לא הודו בכך שהם מימשו Java. הטענה של Google היא שהם לא מממשים Java אלא מאפשרים לקוד של Java לרוץ.
  • ישי ורן דיברו קצת על J2ME וכמה "קל" היה לעבוד עם זה...
  • גילי/יונתן ציינו ש IBM העבירו את המפתחים לעבוד על OpenJDK שהיא פחות חופשית  וגילי העלה שאלה: למה לחברה כמו IBM לתרום  ל - Harmony? ל Google היה תמריץ כי הם לא שילמו License.
  • ישי הסביר שיש פה מניעים עסקיים. IBM לא תוכל להעביר גרסה של OpenJDK לאף אחד בלי לקשור למוצר כמו למשל WebSphere.
  • רן ציין ש Java ב Mac היה מגיע  By Default וש Apple כמעט וביטלו את התמיכה ב Java.
  • יונתן סיכם שנראה שכולם נגד Google (הערה: חסר רק Facebook בסיפור זה :) )
בזמן תמלול ה podcast התקבלה הודעה נוספת של Apache, על כך שהם בחרו להתפטר מ:
JCP(Java SE/EE Executive Committee)
רן העלה שאלה על העתיד, האם כשנפתח Java נצטרך לחשוש?
אורי סיפר על הסרטון של patternabsorduty.com בו דיון באם תוכנה יכולה להיות מוגנת בפטנט - וכך הגענו לנושא השני:
Patents & Software:
  • רן סיפר שהחשיבות (לפחות הרשמית) של Google לגבי פטנטים - זה לייצר פנטנט ע"מ שלא יתבעו את Google ולא ע"מ ש Google תתבע צד אחר
  • יונתן הוסיף שזה בד"כ עניין של התקפה/הגנה – בעסקאות גם מחליפים פטנטים (IP).
  • בתגובה לכך שרן סיפר שלפעמים הרגיש "טיפשי" לרשום פטנט על "שטות" גילי ציין שבעל המלאכה לא  תמיד מודע לכמה הוא מתקדם (ולכן לא תמיד יכול לדעת כמה הפתרון מיוחד)
  • ישי ציין שפטנט בתוכנה לא כ"כ תופס. כשמביאים מכשיר מבוסס touch אין לו כפתורים ו- 90% מהמהנדסים יגידו שצריך לעשות פינצינג. מי שמגיע ראשון לתחום בד"כ תופס ולא בגלל שזה יצירתי. יתכן ולאלגוריתמים מיוחדים כגון Map-Reduce כן אפשר לעשות פטנט.
  • אורי ציין שתוכנה זה תהליך ותהליך לא כ"כ patentable. והקביל את התהליך למוזיקה
  • רן סיפר שיש לו רעיון ומישהו המליץ לו קודם כל לרשום פנטנט. רן הוסיף שלדעתו פנטנט זה AntiPattern בתוכנה במיוחד כאשר עובדים עם קהיליית Open Source.
Multi-Core:
אורי הציג את נושא ה Multi-Core. ציין את חוק Moor והשפעותיו. ההשפעה המידית היא שעל המפתחים להיות מודעים ולכתוב את הקוד שלהם בצורה כזו שינצל את ריבוי הליבות.
  • רן ציין שהניסיון שלו היא שמקביליות מאוד קשה . והזכיר את פיזיקה 3ח – חום ומוליכי למחצה (אפקט ה-tunneling). איך לעזאזל אתה זוכר את זה?:). כמו כן, ציין שהביזור מתאפיין גם בריבוי שרתים ומסדי נתונים.
  • אורי הציג קצת את ה TPL. סיפר על האבסטרקציה שבנו ב .NET האבסטרקציה מסתירה המון דברים שהספרייה ממשת כגון: חלוקה דינמית של threadים,ניצול יעיל של cpu וה cache שלו וכו' וכו'... לעומת זה על המפתח להכיר רק אבסטרקציה בסיסית מאוד.
  • יונתן הקשה שזה בעצם אחריות של מערכת הפעלה לתת את כל הפתרונות האלה.
  • רן השיב שאבסטרקציה היא חשובה  ואף ציין שיש באבסטרקציות גבוהות כגון map-reduce – אמנם אתה מוותר על שליטה אך לא דואג לכל ה multi-core מתחת. כמו כן ישנו מודל של actors ב Scala ו- Java. רן הזכיר גם את Software Transactional Memory)  STM) שכנראה נכשל.
  • יונתן סיפר על Fork Join ו- Concurrent Arrays ב Java 7.תהליך Fork Join – יודע לרוץ על כמה ליבות ולהמתין לכולם, לסיום העבודה. למעשה actors יושבים על fork join. כמו כן בספרינג יש הפעלה אסינכרונית של בינים וישנו גם MPI ב C.
  • רן הדגיש שהאופנה עכשיו להעביר הודעות כגון: Actors or Fork-Join או אפילו אבסטרקציה יותר גבוהה כגון Map-Reduce
  • גילי ציין ש Fork-Join  מאוד דומה ל Map-Reduce וזה לא תמיד מתאים. AppServer למשל לא מתאים לפרדיגמה הזו. גילי אף הוסיף שהוא מעדיף לעבוד עם class ים שהם thread safe ע"מ לא "להתעסק" עם מקביליות.
  • ישי סיפר SOA תופס מאוד חזק.  ישי הסביר שיש לו למשל כ 20 שרתים ב cluster שקל לבקש ממנו לעשות דברים ואם צריך לעשות עוד, ניתן פשוט "לזרוק עוד מכונה ל cluster". ביזור על פני שרתים שונים פותר המון דברים.

רן ציין שיהיה מאוד מעניין לדבר במפגשים הבאים על  Event driven I\O/ Multi Threaded I\O
WikiLeaks and Amazon:
  • רן סיפר על כך ש Amazon החליטו שהם מפסיקים את השירות של WikiLeaks (שהשם Wiki סתם השתרבב להגדרה). עפ"י טענת Amazon  הייתה כאן הפרה של ה terms בגלל שלא היו לWikiLeaks זכויות יוצרים על החומר שהם אחסנו.
  • גילי סיפר על "מדינה" בשם סילנד הנמצאת על אסדה סמוך לחופי בריטניה שישמחו לארח את WikiLeaks כי הם מתפרנסים מ hosting של שרתים מפוקפקים.
נושא נוסף שדנו בו, הוא:
מודלים של Cloud:
רן הציג את הנושא וסיפר על המודלים של Cloud שקיימים. בין Amazon ל Google כאשר Amazon הוא ענן של חומרה on demand ו Google AppEngine  הוא כמו AppServer עם מסד נתונים ו caching.
  • רן ציין שבין שני מודלים האלה יש הרבה מודלים אחרים כגון ספקי ענן שנותנים שירותים ל Ruby שלא קיים ב Google.
  • גילי שאל אם על Google AppEngine אפשר להריץ Map Reduce?
  • רן ענה שזה יותר Request Response וגם Background Process ואין את החופש לעשות כל מה שתרצה.
  • יונתן הוסיף שאין למשל File Storage רק גישה ל DB.
  • ישי סיפר שיש גם Queues וגם Web Hooks. כמו כן הוסיף שאתה כלל לא מודע למכונה ואתה משלם פר I/O ו CPU.למעשה Google יותר אלסטית מ EC2. ויש יתרונות וחסרונות לשניהם.
  • כשרן ציין שעם Google  מאוד קל להתחיל, ישי הוסיף שגם מאוד זול... רן הדגיש שחישובי batch קשים לביצוע וכל request חייב להסתיים ב 30 שניות.
  • יונתן הוסיף שב Amazon יש מכונות DB  מוכנות.
  • רן הזכיר שירותים נוספים שיש ל Amazon, כגון Simple DB ו Elastic Map-Reduce (למעשה לא רק ענן של חומרה). כמו כן רן סיפר על SalesForce
  • אורי סיפר על כך שבחברה שלו ה Storage הוא S3. אורי סיפר על הניסיון שהיה לו עם EC2 ועל הכישלון הצורם של EC2 בפעולה הספציפית שלו. כמו כן סיפר על הממשק של S3 שהוא RESTful.
  • יונתן העיר ש ה traffic ב Amazon חינם כל עוד אתה בתוך Amazon ואורי ציין שזה חייב בדיקה כי נראה ש Amazon שינו תעריפים לאחרונה.
  • ישי שאל את אורי מה הייתה הסיבה לעזיבת Amazon ואורי ציין שזה היה בגלל בעיות קשות של  I/O בעיקר Network I/O, אבל גם Disk I/O.
  • ישי הוסיף שהם משתמשים ב Amazon בעיקר בשביל backup. כל ה traffic שלהם עובר דרך ngenx, ורן הוסיף שיש גם CloudFront ל Amazon.
  • גילי ציין שבעבר אי אפשר היה לקנפג Linux ולהגביל I/O. אך עכשיו זה אפשרי ויתכן וזה מה שקרה לאורי ב EC2.
אירועים שהיו:
  • אורי סיפר על ה TechEd 2010 שהוא אירוע של Microsoft שהיה בסוף חודש נובמבר.
נראה שמיקרוסופט עושים מאמצים אדירים לנוע אל עבר Azure שזה הענן של Microsoft שדומה מאוד ל Google AppEngine.  כמו כן ראינו את Kinect בפעולה וזה מאוד מומלץ.
אירועים שיהיו:

הקובץ נמצא כאן האזנה נעימה

אין תגובות:

פרסום תגובה