פלטפורמת Web: החלק החסר

לפני מספר ימים קיבלתי כ”טובה” מחשב עבודה (Workstation) מאוד עוצמתי למספר ימים. המחשב כלל 2 מעבדים של AMD (סה”כ 32 ליבות), 32 ג’יגה זכרון, 5 דיסקים של 2 טרה ב-RAID חומרה. הסיבה שהמחשב הגיע אליי? לבדוק תאימות שלו מול גירסת פדורה. (לצערי אני צריך להיפרד מהמחשב הזה מחר).

מכיוון שהמחשב היה כבר ליידי, החלטתי לבדוק איך זה יהיה בתור עמדת עבודה לכל הדברים שלי, כולל כל מיני וירטואליזציות שאני צריך (CentOS, Windows-7 וכו’). הרמתי את כל מה שהיה צריך להקים, שיניתי עשרות הגדרות ובסופו של דבר הכל עבד לתפארת..

כמעט.

אחד הדברים המוזרים ששמתי לב היה עניין חשוד שמדי פעם המחשב פתאום נהיה איטי ולאחר מכן חזר לפעול לאט לאט למהירות הרגילה. מכיוון שביטלתי את כל עניין שינוי מהירות שעון, תמהתי מה זה ובזבזתי כמה שעות טובות כדי למצוא מה הבעיה. מה היתה הבעיה בסוף? דף של YNET ודף של וואלה (ללא חוסמי פרסומות) שמטעינים טונות של פרסומות ועושים לעצמם Refresh – מפעילים כמה קבצי Flash כל אחד, ו-Flash יודע להאיט גם מכונה מפלצת כזו. ביטלתי את הפלאש והפלא ופלא – המכונה טסה!

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

וכאן נפתח “חור” שיצרני הדפדפנים חלוקים לגביו.

כיום מקובל בד”כ כשמפתחים אתר, שאת העבודה שמצריכה משאבים יבצעו השרתים של בעלי האתר, והדפדפן יקבל את הפלט, ויבצע עבודות קטנות פה ושם עם Javascript. יש כל מיני אתרים שדווקא משתמשים המון ב-JS כדי לעשות דברים שונים, כמו לדוגמא כל האפליקציות שנותנות אפשרות לעשות מניפולציה בסיסית לתמונות, אפליקציות כמו מפות, IM ועוד ועוד.

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

עם פלאש כיום אפשר לכתוב אפליקציות שלמות שמשתמשות בציוד של המחשב שלך (מצלמה, מיקרופון), להשתמש בהאצה הגרפית של הצ’יפ הגרפי, לכתוב אפליקציות שפותחות פורטים שונים (TCP, UDP) ועוד דברים רבים שאין להם כרגע פתרון ברמת ה-JS או HTML-5. כך לדוגמא, אפליקציה שאני מאוד אוהב לערוך איתה תמונות כמו Pixlr תהיה בעייתית ומסובכת מאוד לכתיבה ב-JS. קחו, תטעינו תמונה ל-Pixlr (התמונה בין כה לא עולה לשרתים שלהם) ותשחקו עם הפונקציונאליות. האפליקציה הזו שוקלת בערך כ-300K ותראו איזה דברים מטריפים אפשר לעשות איתה. כל ה”מתחרים” שלה שנכתבו ב-JS וב-HTML-5 לא נותנים אפילו עשירית ממה ש-Pixlr נותנת.

גוגל מבינה את הדברים האלו. היא מבינה שאנשים מעוניינים בפתרון שאפשר להשתמש במלוא הכח של המעבד והצ’יפ הגרפי, הסאונד וכו’ והם פיתחו את Native Client (או Nacl כפי שהוא נקרא). עם Nacl אפשר להשתמש ביכולות של המחשב שלך תוך הגבלות שונות (כמו Sandbox) לשם האבטחה, והביצועים יהיו מאוד גבוהים. קחו לדוגמא את NaclBox, זה אתר שלקח את האמולטור DOS Box והמיר אותו לעבוד עם Native Client. התוצאה? עשרות משחקים שנכתבו ל-DOS רצים במהירות מלאה עם תמיכה של מסך מלא, צליל וכו’. לא צריך להתקין תוספים כדי להשתמש בזה בכרום, פשוט מפעילים Flag שמאפשר את Native Client ומשתמשים באפליקציה.

יש עוד עשרות הדגמות ל-Native Client ואי אפשר לאמר שגוגל מזניחה את ה-JS: כרום הוא הדפדפן עם מימוש JS הכי מהיר  שיש, אבל גוגל מספיק מציאותית להכיר את המגבלות שיש ל-JS.

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

מדוע לדעתי הפתרון של Native Client יכול לעזור? כי ישנם המון אפליקציות ודברים שאפשר וצריך לעשות בצד המשתמש מבלי להעמיס את זה על שרת, והעמסה רק תיצור בחזרה “עומס” בדמות הורדות ארוכות.

אתן דוגמא למשהו שנתקלתי בו היום: Xiph.org הארגון שמפתח את OGG ועוד כמה דברים, מפתח מקודד אודיו חדש בשם CELT. היתרון של CELT על פני מקודדים אחרים הוא בכך שהוא מאוד מתאים למימוש אודיו דו-כיווני (תחשבו על סקייפ), יש לו Latency מאוד נמוך ויש לו איכות אודיו מאוד גבוהה.

אם כיום אני רוצה לכתוב אפליקציה שתנגן קבצים כאלו, אני לא יכול לכתוב אותה עם JS כי אין ב-JS תמיכה ישירה לאיזה “ערוץ אודיו” כמו שיש בפלאש. אני יכול לכתוב את זה כ-Java Applet ואז אצטרך לחייב את המשתמשים להתקין Java במחשב שלהם כך שזהו אינו פתרון טוב. לעומת זאת, אם אכתוב אפליקציה קטנה כ-Native Client, זה י
עבוד מעולה בכרום (כולל כרום החדש לאנדרואיד), אבל בגלל ההתעקשות של מיקרוסופט ומוזילה, זה לא יעבוד בדפדפנים שם.

לסיכום: בגלל ויכוחים אין כיום שום אפשרות ריאלית לכתוב ולהריץ אפליקציות שיתמשו במלוא הכח של המעבד הגרפי והרגיל שיש במחשב, ופתרון כמו JS אינו מתאים לכך עדיין. הפתרון של מיקרוסופט אינו מתאים כמעט לכלום (חוץ מאקספלורר על Windows וגם זה לא נתמך תמיד ב-64 ביט), ולמוזילה אין פתרון כלל וכלל והם לא רוצים להכניס פתרון כמו Nacl לדפדפן. מה יוצא מזה? פרגמנטציה בדפדפנים.

כמה מילים על הכרום בוק

אתחיל בטיפ קטן עבור מתכנתים שרוצים לכתוב משהו ולהרוויח ממנו כמה שקלים: נכון להרגע, ב-Web Store של גוגל אין שום תוכנת VPN Client וובית. הראשון שיכתוב אפליקציה וובית כזו שיודעת להתממשק למספר מימושים של VPN (כמו Open VPN / פורטיגייט / צ'ק-פוינט) יכול להרוויח כסף לא רע ממכירת האפליקציה דרך ה-Web Store, אז אם אתה לא מתכנת אבל מכיר מתכנת שמחפש לפתח משהו ולהרוויח עליו, תודיע לו על כך בבקשה.

נעבור עתה לעניין הכרום בוק (כרומבוק?) שגוגל הכריזה בכנס ה-Google I/O השבוע: סוף סוף אפשר לראות מחשבים ניידים (ואחד נייח) מבית סמסונג ואייסר מבוססי ChromeOS שגוגל קוראת להם ChromeBooks. הגירסה של סמסונג עולה 429$ כגירסת WIFI ו-499$ בגירסה עם WIFI ומודם 3G מובנה. אייסר הציגה מחירים קצת יותר שפוי: 349$ ל-WIFI ועדיין לא ידוע מה יהיה מחיר ה-3G.

מבחינת הברזלים עצמם: הם פחות או יותר כמו כל נטבוק, עם מספר שינויים: אין דיסק קשיח גדול (יש כונן פלאש בחיבור mSATA של 16 ג'יגה), אין BIOS סטנדרטי. המעבד הוא Atom N570 דו ליבתי, מסך 12.1 אינטש (במקרה של סמסונג), מצלמת 1 מגהפיקסל "HD" (אין לי מושג למה הם קוראים לזה כך). מבחינת המערכת, מרגע לחיצת כפתור ה-Power, היא עולה תוך 8 שניות ועם סוגרים את המסך ומפעילים מחדש, הוא פועל תוך 2 שניות.

מאז שגוגל הכריזה על ChromeOS ועד להכרזה על המחשבים הניידים עם שמות, מחירים ומפרטים, השתנו מספר דברים כאשר אחד הבולטים בהם היה תמיכה לקבצים מקומיים: מעתה תוכל לחבר מצלמה או דיסק קשיח ולהשתמש בקבצים מקומית. מבחינת ההדפסה, גוגל עשו שת"פ עם HP וכיום ההדפסה היא מימוש של Cloud Print.

מבחינת תמחור, המחיר הוא גבוה בהשוואה לכל נטבוק ממוצע, אבל זהו מוצר חדש וחברות נוטות לגבות מחירים די גבוהים על מוצר חדש (סמסונג לדעתי הגזימה במחיר), וכאן גוגל הכריזו על משהו חדש: אם אתה סטונדט, תוכל לשכור דרך גוגל כרום-בוק במחיר של 20$ לחודש (למשך 36 חודשים.. הממ, העתיקו מחברות הסלולר הישראליות?) ובמחיר זה תקבל גם תמיכה מלאה לחומרה ולתוכנה כולל שדרוגים. למי שכבר חושב לשלוף כרטיס אשראי ולהיכנס לחוזה כזה, מוטב לו שיחזיר את כרטיס האשראי לארנק: התוכנית לסטונדטים תהיה דרך מוסדות הלימוד האקדמאיים/מכללות וכו'. החבילה, אגב, אינה כוללת את Google Apps for Education, כך שאם המוסד לימודים ירצה בכך, הוא יכול להיות מנוי ולהוסיף את המחיר למנוי החודשי.

גם לעסקים גוגל דאגה ואותה עיסקה שיש לסטונדטים יש לעסקים (מינימום רכישה: 10 ברזלים) במחיר של 28$ ואם רוצים Google Apps for Business יש צורך לשלם עוד 50$ שנתי פר משתמש (או 4 דולר לערך חודשית). גם כאן יש תמיכה דרך גוגל כולל תמיכה, תיקון ושדרוג החומרה וכלים לניהול הכרום-בוקים.

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

אתחיל בגוגל עצמה: גוגל חייבת תשתית רצינית לתמיכה, על מנת שלא לחזור על הפאשלה הקודמת עם מה שקרה לנקסוס-1 שרכשת מכשיר והתמיכה היתה הכי גרועה שאפשר. גוגל צריכים לבנות תשתית רצינית בינלאומית לתמיכה, וזה כולל נציגי תמיכה בטלפון, טיקטים ועוד. מבחינת תחזוקת ברזלים, גוגל תצטרך להגיע להסכמים עם היצרנים השונים בעניין החלפת חומרה, שדרוגים וכו', והעניין צריך להיות סגור אתמול, אחרת עסקים ומוסדות לא כל כך יסכימו ליפול בין הכסאות. אחד הדברים הנוספים שגוגל צריכה לעשות, זה לשכנע יצרני חומרה אחרים ליצור כרום-בוקים עם ChromeOS. עדיין לא הוכרזו כרום-בוקים מלנובו, דל, HP.

שוק הסטודנטים: כאן יש לגוגל סיכוי לא רע בכלל להיכנס, כל עוד גוגל תעמיד לרשות מוסדות הלימוד קו לתמיכה, סיוע, ותיקונים. אם גוגל תעשה כך, ישאר למוסד הלימודים עניין ההחלטה מאיזה יצרן לרכוש כרום-בוק. מבחינת התשתית, אותם מוסדות יצטרכו לעבור בקצב יותר מהיר לארכיטקטורת שרת-לקוח על מנת שסטודנטים יוכלו להשתמש בכרום-בוקים. יש צורך גם בשינויים נוספים כמו מעבר לשימוש ב-Terminal Services אם המוסד ממוקד טכנולוגיה של מיקרוסופט ובכך לאפשר לתלמידים להתחבר דרך RDP ולעשות את מה שהם רוצים. במקרים של שימוש ב-Linux, יהיה צורך בהקמת שרתים וירטואליים עבור תלמידים שיתחברו דרך SSH אל אותם מכונות וירטואליות, הואיל ואי אפשר במצב רגיל להריץ אפליקציות לינוקס על הכרום-בוק.

השוק העסקי: פה צפויה לגוגל משימה לא קלה בכלל. עסקים גדולים לא נוטים להכניס מחשבים של יצרנים אחרים לתוך החברות (כל מנהל IT יכול לספר בהרחבה מדוע הוא מעדיף דגם כזה של מחשב ולא דגם של חברות אחרות), וכמו שכתבתי למעלה, גוגל תצטרך ש-HP, DELL ולנובו ייצרו כרום-בוקים על מנת להכניס רגל כלשהי לאותם עסקים.

הדבר השני שלא קל לעשות זה מיגרציה מתחנות עבודה סטנדרטיות למצב שהכל רץ על השרתים והמשתמשים מתחברים דרך RDP (כולל VPN לעבודה מבחוץ). כאן צפויות מלחמות לא קטנות בין אנשים ומחלקות לגבי ויתור על המחשב הרגיל לטובת כרום-בוק "טיפש". מבחינה כספית, עלות תחזוקת כרום-בוק היא הרבה יותר זולה מתחזוקת מחשב שולחני רגיל: אין טלאים, אין אנטי וירוס, אין עוד הרבה דברים כך שמחלקת התמיכה תצטרך פחות לטפל במשתמשים ויותר לטפל בשרתים (מה שאומר קיצוץ עובדים במקרים מסויימים), מה שיגרום להנהלה לחייך מבחינת חסכון תקציבי.

תחרות: תהיו בטוחים שבמיקרוסופט יש את ChromeOS רץ על כמה מחשבים וכנראה שעם הקשרים שלהם הם כבר השיגו כמה כרום-בוקים לשם "לימוד". גוגל מנסה להיכנס לתחום שבו מיקרוסופט שולטת, ומיקרוסופט לא תעשה חיים קלים לגוגל ומיקרוסופט בהחלט תשלוף שיניים וציפורניים: אני די בטוח שתוך מספר חודשים מיקרוסופט יחד עם שותפיה המסורתיים (כל יצרני המחשבים) תוציא גירסה של נט-בוק עם Windows CE (כן, זה עדיין קיים) ואקספלורר משודרג עם עוד כמה דברים קטנים, וכמובן תמיכה ב-3G ו-WIFI. מיקרוסופט בהחלט בעד שתעבור לארכיטקטורה של Windows 2008 R2 (שרת) וגישה דרך RDP (לקוח, כל עוד תשלם רשיונות CAL פר מכונה כמובן), אך הם "ידחפו" את הפתרון שלהם מול הפתרון של גוגל: במקום ChromeBook תעבור עם ExplorerBook.

אני מאמין שהשינויים המהותיים האלו לא יקרו היום או מחר (הכרום-בוקים יצאו לשוק רק ב-15 ביוני, ומי שהשתתף בגוגל I/O מקבל אחד חינם במתנה) ומה שגוגל עושה הוא בעצם לדחוף את השוק לעבוד דרך הדפדפן אקסלוסיבית. זה לא יהיה קל, יהיו הרבה נגד המעבר, אבל אם זה יצליח לגוגל, היא תרוויח הרבה מהמעבר.

הספינים של מיקרוסופט חוזרים

image אקספלורר 8 עומד לצאת החודש ל-XP, ויסטה ושאר מערכות ההפעלה של מיקרוסופט, ומכונת הספינים (להלן: הגזמות ושקרים) של מיקרוסופט מעלה הילוך.

במסמך ששחררה מיקרוסופט אתמול, הוצגה העובדה החדשה: אקספלורר 8 מעלה אתרים במהירות יותר גבוהה מאשר השועל וכרום, ומיקרוסופט נותנים דוגמאות שהחבר’ה ב-Ars Technica התייחסו אליהם ולדו”ח.

כרגיל אצל מיקרוסופט, מעדיפים להחביא את החלק המהותי ולהשוויץ בתמונה חלקית.

אז אתר עולה בעשירית שניה יותר מהר. נניח. אז מה?

הרי כשאדם רוצה כבר לעשות דברים באותו אתר, אז אקספלורר 8 נותן תוצאות הרבה יותר גרועות מהמתחרים! נכון, הוא הרבה יותר טוב מאקספלורר 7, אבל הוא הרבה פחות טוב מכרום והשועל גירסה 3.0.5, שלא לדבר על הבטא האחרון של השועל.

אתרים רבים היום הם אתרים דינמיים שמשתמשים בהרבה ג’אווהסקריפט (מי שהמציא את השם Javascript – אותו יש לתלות בכיכר העיר, כי אין שום קשר בין זה ל-Java!) ו-AJAX, ושם אקספלורר 8 מפגר בהרבה בהשוואה למתחרים.

בסטנדרטים מיקרוסופט השתפרו ואף עברו את מבחן ה-Acid test 2 אבל גמרו על הפרצוף ב-Acid 3 עם תוצאה מגוכחת של 35 מתוך 100. מה עם ישום של HTML 5 בדפדפן? חלקי ביותר, הרבה הרבה פחות מאשר המתחרים. מה עם העניין ה”פעוט” שאם דף כלשהו נתקע גם האקספלורר נתקע כולו? עדיין לא טופל.

בקיצור, אקספלורר 8 הוא בהחלט התקדמות מבורכת לכיוון הסטנדרטים שהמתחרים כבר מזמן יישמו בדפדפנים ויש לברך על כך, אך כדאי לזכור שבמחלקת הביצועים ויישום הסטנדרטים יש למיקרוסופט הרבה הרבה מה לעבוד לפני שהם מתהדרים בכל מיני כתרים.

עדכון אבטחה הכרחי לאקספלורר (כל הגרסאות)

לפני מס’ ימים פרסמתי פוסט על חור אבטחה קריטי שקיים באקספלורר 7 ושאר גרסאות, על כל מערכות ההפעלה המודרניות של מיקרוסופט.

מיקרוסופט שחררו היום עדכון. משתמשי Windows אשר משתמשים באקספלורר (גם אם זה רק “לפעמים”), צריכים להתקין עדכון זה.

העדכון נמצא כאן, כולל כל הפרטים הטכניים.

“חור” אבטחה רציני באקספלורר

מיקרוסופט הודיעו כי הם חוקרים התקפות המבוצעות על חור אבטחה חדש (שעדיין אין לו טלאי). גירסאות האקספלורר שיכולות להיות מותקפים: 5, 5.5, 6, 7 והאחרון: גירסה 8 בטא 2, על כל מערכות ההפעלה של מיקרוסופט החל מ-XP ומעלה (כולל ויסטה, וכולל גרסאות שרתים).

חור האבטחה מאפשר להריץ קוד מרחוק, להתקין דברים מרחוק. את המידע היותר טכני ניתן לקרוא בלינק הנ”ל.

בשלב זה מיקרוסופט מציעה שורה של צעדים כ-Workaround (יש שם חתיכת רשימה!) כדי למנוע אפשרות להיות מותקף.

הואיל ולמיקרוסופט אין שום פתרון בצורת טלאי כרגע, לעניות דעתי מומלץ לחברות לחשוב מחדש לגבי שימוש באלטרנטיבות כמו השועל, או גוגל כרום.

אין ספק שביום א’ מנהלי רשתות מיקרוסופט העוקבים אחר חורי אבטחה יהיה להם כאב ראש לא קטן.