יום ראשון, 19 בדצמבר 2010

086 Software Axioms

בפרק זה אירחנו את איתי ממן (טוויטר) - דוקטורנט למדעי המחשב, איתו הקלטנו את פרק 68 פאנל בטכניון (מצחיק כי זה פרק 86 והקודם היה 68...)

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

יום רביעי, 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 בפעולה וזה מאוד מומלץ.
אירועים שיהיו:

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

יום חמישי, 2 בדצמבר 2010

087 מחלקה סגורה

מחלקה סגורה
בפרק זה הקלטנו את פגישה הבכורה של המחלקה סגורה שלנו: רן, אוֹרי, איתי ממן, אוּרי לביא, ישי סמית, יונתן ממן, גילי נחום, וערן הראל (אורי וערן נעדרו הפעם עקב בעיות סקייפ).
  • מחלקה סגורה? שו הדא? - המחלקה שלנו יורשת (רוחנית) מהפודקסט הוותיק The Java posse. נתכנס כל ירח מלא לשוחח על: ג'אווה,דוט נט, פייטון ומכל הבא ליד חדשות מעולם התוכנה והטכנולוגיה, רכילות תאגידית, ובקיצור על מה שיעניין אותנו ואותכם.
  • ישי פתח בסקירה של ה- JVM EcoSystem ההולך ומתפתח. בעוד שפיתוחה של השפה ג'אווה הולך ומאט, הולך ומואץ קצב פיתוחן של מספר שפות חדשות הנסמכות על ה- JVM הוותיק והמפותח. שפות כגון: JRoby, Scala, Jython, Grovy, Clojure. חלקן שפות דינמיות, חלקן פונקציונליות ומקצתן שניהם.
  • ה- JVM של Java הוא מעולה במיוחד בשל האופטימזציות הנרחבות שנוספו לו במהלך השנים. למשל: GC מתוחכם ופרללי, ו- JIT שממטב את הבייטקוד בזמן ריצה עבור דגם המכונה המסוימת.
  • ע"פ איתי, ה- JVM יאריך שנים יותר מהשפה ג'אווה עצמה. ומיטוב JIT מצטיין לא רק בגלל ההתאמה למכונה המסוימת שעליה הקוד רץ, אלא גם בגלל שהאופטימזציה מתרחשת בזמן ריצה ולא באופן סטטי כמו אופטימזציה זמן הידור מסורתית. איתי המליץ לקרוא את מה שלסטיב יגי היה לומר בנושא.
  • עוד צוין שכל שפה חדשה שבוחרים לפתח על ה- JVM, נהנית מיד ובחינם מכל מה ה- JVM מציע: מיטוב, אי תלות בחומרה, עושר של ספריות זמינות, מודל זכרון מסודר ומקביליות בטוחה, אספן זבל חרוץ. כל אלה ממצבים את ה- JVM כאסמבלי החדש בשכונה. אם פעם הייתם צריכים לכתוב מהדר שהתוצאה שלו אסמבלי ספציפי לכל מעבד אז היום אתם יכולים להוציא בייטקוד שמאוד עשיר בפקודות ועושה בעצמו אופטימיזציות לכל מעבד.
  • אורי העיר שבעוד שבעולם הג'אווה, הפוקוס עובר מהשפה ל- JVM, בעוד ה-Net. שפת ה- C# מקבלת תוספות חדשות (דינאמיות, תכנות פנקציונאלי, וכ"ו).
  • בנושא אחר, ישי סיפר שלעדכון הג'אווה האחרון שאפל הוציאה למקינטוש, התווספה הודעה על כך שזהו העדכון האחרון שישוחרר (deprecated). קמה סערה. ולאחר מספר שבועות הודיעו אפל ואורקל שהקוד יצא כקוד פתוח שאורקל תתחזק אותו (במקום אפל עד כה).
  • HTML5 –אורי סיפר שמייקרוסופט מתכננת לאמץ בהתלהבות את תקן HTML5 בדפדפן החדש של החברה IE9. עלו חששות שהתלהבות הגוברת, תעמיד בסימן שאלה את מחויבותה של החברה לטכנו' ה- SilverLight שלה עצמה.
  • גילי עמד על כך שתקן ה- HTML5 הוא בעצם סט שלם של טכנולוגיות לצרכים שונים (וידיאו, משחקים אינטראקטיביים), ושאל באילו תחומים צפוי ה- HTML5 לדחוק את רגליהן של חלופות קיימות (למשל, קל הרבה יותר להחליף מימוש של נגן וידיאו, מאשר מוצר מבוסס סקריפט למשחקים מבוססי גרפיקה).
  • רן השיב ואמר שהסטנדרט נמצא כבר מספר שנים בהתהוות ומכיל: וידיאו, גרפיקה וקטורית,  CCS3, JS, ואחסון מקומי (למרות שלמעשה CSS3 איננו חלק מHTML5 בשל התזמון הדומה רבים כוללים אותם באותה נשימה). HTML5 יאפשר אפליקציות מקומיות ולא רק דפי אינטרנט. רן גורס שאף טכנו' אחת לא לגמרי תידחוק את האחרות; html5 יכבוש סוגי יישומים מסוימים, בעוד שיישומים מסוגים אחרים, בקצוות, ימשיכו להשתמש ב- flash, silver light וכ"ו (יתכן שמשחקים או אפליקציות אחרות שדורשות כל פיתוח גרפיים מתקדמים).
  • יונתן הדגיש ש- HTML5  הוא האסטרטגיה של מייקרוסופט לצורך cross platform, בעוד ש- silverlight הוא ההימור שלהם בתחום הסלולר.
  • אורי הוסיף שמהלך אימוץ ה- HTML5 נועד לסייע לפופולריות של הדפדפן החדש IE9 בשולחן העבודה של המשתמשים.
  • כלעומת זאת, הדגיש ישי, שמנוע הצמיחה העתידי יגיע ממכשירי המובייל ולא מהדסקטופים. במיוחד במדינות ה- BRIC. ומייקרוסופט לא שם.
  • רן העלה את ההשערה שבהתנגדות לתמוך בפלאש, כיוון סטיב ג'ובס כנגד MS (כלומר לא לפלאש אבל גם לא silverlight) ולאו דווקא במיוחד כנגד אדובי.
  • סקרנו את אירוע החודש שהיו ויהיו:
  • אורי סיפר על המפגש חמישי המשמש ובא של software craftsmanship ב- 15 בדצמבר (כולם מוזמנים).
  • ישי ואיתי סיפרו על כנס qcon שנערך בסאן פרנסיסקו. בניגוד לכנסים אחר, QCON הוא כנס טכני ולא שיווקי.
  • ישי נתן שם הרצה על continues deployment.
  • איתי גם הוא נכח וממליץ על הרצאה של מרטין פאולר בנושא- continues delivery.
  • עוד דובר כנס בנושאים: nosql, JVM ecosystem, parallel programming.
  • בקרוב ההרצאות יהיו זמינות באתר המעולה infoQ.
  • רן סיפר על פגישה של קבוצת קסנדרה בישראל, שהייתה מוצלחת במיוחד (25 משתתפים) וכללה מספר מצגות, ונחתמה בשולחן עגול של שו"ת מצד המשתתפים. המפגש הבא יהיה בעוד כמה חודשים.

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