קטגוריה: תקנים

אריקסון ו webrtc

כבר כתבתי בעבר על webrtc, אך זה עולם שכל הזמן משתנה ולא רק טכנולוגית.

אחד הדברים שמאוד נחמדים בעולם ה webrtc, זה היענות של מרבית החברות הגדולות בשוק בשביל לאמץ אותו.

גוגל היא החברה הכי מפורסמת שמנסה לקדם את webrtc, ויש לה אתר שהיא פתחה בנושא, והיא משחררת מימוש (בראש ובראשונה נועד עבור כרום) ברישיון MIT.

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

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

החברה פתחה אתר בנושא, ושמה את הקוד שלה ב github, וגם הוא ברישיון פתוח – BSD.
הכלים שהיא משתמשת גם הם פתוחים, כדוגמת Gstreamer .
הם גם משתמשים במימוש של סיסקו – מימוש קוד פתוח עבור H.264, למעשה זה משהו שהם מספקים שגוגל בכלל לא.

הם גם משחררים דפדפן עבור iOS בשם bowser אשר מאפשר בעצם לקבל תמיכה ב webrtc, ובכך הם הופכים להיות הדפדפן הראשון במערכת הפעלה זו שתומך בזה.
הדפדפן נועד לקדם דווקא את H.264, אבל בנתיים גם מאפשר להשתמש ב webrtc.

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

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

כרגע יש קרב גדול על בחירת קודקים לוידאו, כאשר הקרב הוא בין H.264 לבין VP8 ובעתיד גם VP9.

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

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

webrtc ORTC

הקדמה

במידה ולא הכרתם, יש בעולם הHTML5 (באזז וורד בפני עצמו) טכנולוגיה מדהימה לזרימת מדיה בשם webrtc (אשר אפילו אני מספק עבורה פתרונות).

הרעיון הוא לקחת SDP ו RTP (שכמובן מכיל RTCP) ולאפשר להזרים אודיו ווידאו בצורה טבעית בדפדפן ללא שימוש בתוספים.
הטכנולוגיה גם מגיעה עם תמיכה ב STUN, ICE ו TURN.

היא תומכת ב OPUS, ו G711, ומחייבת אותנו לעבוד בצורה מאובטחת תחת DTLS,

עכשיו כל מה שנשאר זה לממש מערכת סיגנלים כדוגמת SIP או כל פתרון אחר – פשוט יותר עם web sockets,שגם הוא כיום (לפי התקן של webrtc) חייב כבר להיות מאובטח תחת TLS, ויש לנו פיתרון סטרימינג מלא.

אבל יש בעיה: SDP הוא אחד הפרוטוקולים הכי לא קריאים שיש, ובנוסף ישנו תיאור של מידע יחסית ארוך.

SDP הם ראשי תיבות של Session Description Protocol. התפקיד של הפרוטוקול הוא לספק מידע אודות המדיה, כדוגמת אילו קודקים נתמכים, מה כתובת התעבורה למדיה, ואפילו מה החלק של המדיה שנשלח, כלומר איפה הוא מבחינת התחלת "לוחות זמנים", האם אני מקבל את ההחלה, או משהו אחר.

הדגמה קלה (מה RFC):

v=0
o=alice 2890844526 2890844526 IN IP4 host.atlanta.example.com
s=.
c=IN IP4 host.atlanta.example.com
t=0 0
m=audio 49170 RTP/AVP 0 8 97
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:97 iLBC/8000
m=video 51372 RTP/AVP 31 32
a=rtpmap:31 H261/90000
a=rtpmap:32 MPV/90000

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

הנה הסבר על מה שאתם רואים מול העיניים שלכם:
האות v, מייצגת version – גרסת הפרוטוקול, שלפחות כרגע היא תמיד 0.
האות o, מייצגת origin של הבקשה, ומכילה (לפי הסדר) – שם משתמש, session id, בנוסף session-version, סוג רשת (אינטרנט), סוג הכתובת, כתובת הרשת.
האות s מייצגת את session, כלומר השם שלו.
האות c מייצגת מידע על connection. זה אומר סוג הרשת, סוג כתובת הרשת, כתובת הרשת.
הכוונה היא לאן רוצים להתחבר בשביל המדיה.
האות t מייצגת זמנים.
האות m מייצגת מדיה, עם סוג מדיה, פורט דינאמי, פרוטוקול משלוח של המדיה, ומידע הקשור לפרוטוקול.
האות a מייצגת attribute, שזה תכונות שונות, למשל כאן, זה מייצג איזה קוקדים של אודיו ישלחו, כולל הקוד שלהם שמוגדר ב RFC עבור כל סוג קודק.

אפשר לראות כמה זה לא קריא וידידותי, אבל גם מגביל מאוד.
למשל attribute יכול להגיע רק לחלק מהפרמטרים, ויש פרמטרים שחייבים אותו. הוא תמיד חייב להיות מתחת לאותו פרמטר.

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

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

תוכן

אז למה אני נכנס לכל זה ?
ובכן בעולם ה webrtc, רוצים לרדת מ SDP לגמרי. כאן ציינתי חלק גדול מהסיבות לכך. אפילו מיקרוסופט חיבקה את הרעיון והודיעה שזו הדרך שלה להיכנס לעולם הזה, שכרגע נשלט בעיקר על ידי גוגל (כרום) ומוזילה, מבחינת דפדפנים, אך גם אופרה תומך בזה.

לפני ORTC, תכננו פרוטוקול אחר לגמרי, אשר היה מאוד low level, ומאוד קשה להגנה, וסיפק יותר מידי כוח בצד המשתמש. הפרוטוקול קיבל את השם Open Peer. אז בגלל הסיבות האלו, החליטו לרדת ממנו.

ואז ישבו הרבה אנשים, אשר רובם יצרו את webrtc ואת Open Peer, והחליטו על גרסה 1.1 לwebrtc בכנס מסחרי מסוים, אם כי למרות ההכרזה על 1.1 ההכרזה מרגישה יותר כמו 2.0.
השם לפרוטוקול החדש באותו כנס, קיבל את השם ORTC או Object Real Time Communication, אשר ה draft הראשון (מבחינת יכולת מימוש) שלו שוחרר באוגוסט 2014.
היכולת לעקוב אחרי דברים, נעשת באתר ייעודי לכך בשם ortc.org.

הרעיון הוא לספק סוג של API, שמצד אחד קל לתכנות, ומצד שני קל לאבטח, אשר מאפשר לשלוט בצורה קלה ופשוטה יותר במידע על המדיה, כאשר יש API בצד ה javascript, אך גם עם תאימות לאחור, בשביל לא לשבור פתרונות קיימים.
אבל לא סתם API, אלא הדגש הוא על גישה של Object Oriented, כאשר בעבר דיברו על כך שהיא תכלול את היכולת להחזיק אובייקטים של סוקטים בשם RTCSocket אשר ניתנים לשימוש מחודש במידת הצורך, ובכך בעצם לעשות שימושיות ב RTC ללא צורך באתחול מחודש של הכל. אך אינני מוצא זאת בdraft האחרון (נכון לכתיבת פוסט זה).

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

הבעיה היא שORTC הוא סוג של API שבסוף משתמש ב SDP (אבל רק בהתחלה – תאימות לאחור) ואח"כ כנראה שיפרד מהגישה הזו. אבל הם עוד לא בטוחים בזה. כלומר הרעיון שלהם, הוא שבסופו של דבר לא יהיה SDP, אלא דיבור ישיר בין ה"ענן" (מערכת כלשהי שאתם תבנו בצד השרת) לבין הדפדפן, ואיכשהו יוחלט מה יורץ.

זה רעיון נחמד, אבל איך הוא מתבצע כאשר אין לך SDP ?
התשובה פשוטה – אתה תממש משהו כזה מחדש, ואתה תספק לו שם חדש, למשל השם Media Information Protocol או משהו בסגנון.

ואכן, זה מה שORTC מבצע. הם יצרו אובייקט בשם RTCRtpCapabilities, אשר התפקיד שלו לדבר על "מה אני צריך" עם הצד השני וניתן אפילו לעשות החלפה בזמן ריצה של המידע (ב SIP זה נקרא re-Invite).

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

יש עודף שאלות פתוחות לדעתי בנושא, והוא לא באמת כזה ברור בשלב הנוכחי, והוא צריך עוד להתבשל ולהתפתח יותר.

אבל הגישה הזו של ORTC ובעצם שכתוב של חלק מאוד חשוב ב webrtc גורם לכך כי במקום לסייע לאנשים לאמץ את webrtc, מרבית השוק כרגע מנסה להתעלם ממנו לגמרי, וזה רק מעקב את האימוץ הזה, אך האם המאמץ הזה יהיה שווה ? רק ימים יגידו.

אז מה דעתי בנושא ?
מצד אחד, אני חושב ש SDP זה כאב ראש. מצד שני, אני לא עד הסוף סגור על הרעיון של ORTC, ולכן אני לא ממהר לקפוץ ולהגיד שזה טוב או רע, רק מפריע לי שהוא שונה כל כך מהתקן הקיים היום (שעדין ב draft), היות ולי אישית כבר יש מימושים בנושא.

אל תתנו להם לחוקק חוקים – חוק הנגשת אתרים

"The more corrupt the state, the more numerous the laws." — Tacitus

הקדמה

בסוף שנות ה90 ותחילת אמצע שנות ה2000, דפדפן אחד של מערכת הפעלה אחת שלט בעולם.
הדפדפן הזה קיבל את השם Internet Explorer, אשר כמו מגלה ארצות ה"מכבד" את עצמו, הכריח את כולם לעבוד לפי הלך החשיבה של החברה שיצרה אותו, במקום לעמוד בתקנים ולהכיר בתרבויות השונות שאליהם הוא נקלע.
אנחנו זעקנו בהרבה מאוד קולות שצריך לכתוב אתרים לפי תקן, ולא לפי דפדפן.
בישראל, מרבית העסקים, שלא לדבר על הממשלה, התעלמו לגמרי מהפניות שלנו. אפילו מאמרים שונים בעיתונות לטובת הדרישה שלנו, זכו להתעלמות.

רק כאשר מספר מקומות הבינו כי למרות שדפדפנים כדוגמת Firefox מהווים פחות מ5% מהתעבורה, אבל מהווים 90% מכוח הקנייה, שראינו שינוי מגמה.
פתאום אתרים התחילו להיות מונגשים לFirefox תחילה, היות והוא זה שהכניס כסף. אבל בשביל להיות תואם Firefox, כל מה שצריך זה לפתח לפי תקנים (תודה מוזילה), ולכן למעט באגים של הדפדפן, אם אתה כותב לפי התקן, תיאורטית זה אמור לעבוד עבור כולם.
בנתיים גם השימוש ב data עבור הסלולר גדל, ודפדפן Opera Mini תפס, וגם החברה הזו בחרה לעבוד עם תקנים, וראו איזה פלא, לא צריך לשכתב דברים (למעט התאמה לסוג תצוגה).

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

כיום למעט 2 דפדפנים עיקריים, מרבית הדפדפנים מבוססים על אותו בסיס (אשר משתנה לאט לאט שוב), בשם Webkit, אשר התחיל בכלל את דרכו כ KHTML עבור פרוייקט KDE כדפדפן בשם Konqueror.

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

העיקר להמשיך לקרוא

ניוד צרות

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

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

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

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

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

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

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

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

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

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

What is the feature of Pascal ?

Borland created the name Object Pascal as a marketing way to sell Delphi, and set a boundary between Borland Pascal and Delphi.

Even though that Pascal constantly changing, and started so, not so long after it first released at 1968, only real developers learned the difference, and know what is going on.

Since then we see huge leap foreword with technology and with the language itself. For example the language itself support thread based programming, the object oriented syntax that was added by Apple in 1982 constantly expanding, and even creating support for thing that languages such as Java or C# lack of.

Pascal today is the only programming language that on one hand offer a very low level support for development – Yes! even lower level then with C, but support also very high level development that is closer to dynamic languages – such as mixin, string management, iteration syntax, and much much more…

Pascal today is also the only true multi-platform language, that can provide rich applications to desktop, web and smartphones/tablet platform with the same code base, and run native there. Yes, that includes iOS, Android with JVM/Dalvik.

Things looks good from far away, but closely there are more then few issues with the modern Pascal (and with some of the, I blame Embarcadero):

  • There are way too many dialects (FPC, Delphi, Delphi.NET, Oxygen, GNU Pascal [ISO Pascal] etc …)
  • There is some sort of vendor lock due to the dialect variation (Usually either Delphi or FPC to choose from)
  • Some of the syntax that is added to the language, well it's not longer Pascal, but closer to Java/C#/Ruby/D …
  • There are additions to closures – such as lambda, anonymous functions, generics and more, that not always implemented properly
  • There are support for dependency injection, extended namespace and much more
  • Not a single real standard, and lack of cooperation between Delphi developers and the true FOSS FPC project (due to Embarcadero side)

להמשיך לקרוא

עוד פוסט חסר תועלת בנושא הפריצות

infrastructures

ב21 לנובמבר 2011 פרסמתי פוסט בנושא הבעיות של חנויות ישראליות ברשת האינטרנט.

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

אבל הפוסט זכה בעיקר להתעלמות ברשת הישראלית. ועולם כמנהגו נוהג.

ואז הגיע 0mar. הוא במקום להגיד שהמלך הוא עירום, פשוט שם לנו תמונה מול העיניים, נתן לנו כמה סטירות לחי, ועדיין ביט כמנהגו נוהג – במקום להבין את הבעיה שיש ולתקן אותה, סמוך על ביז'ו חזר, ופלוני מאשים את אלמוני, שמאשים את John Doe שמאשים את Jane Doe שבכלל עוד לא נולדו באותו היום … (כמובן שאני לא באמת רוצה לפגוע בביז'ו הוא לא באמת אשם)

אז אני רוצה להגיד המון תודה ל0mar. הוא מוכיח לכולם, עד כמה המלך הוא עירום. אבל אני רוצה להגיד למערכת העיתונים בישראל – נכשלתם בתפקידכם. ה"האקר"  צריך לקבל פרס ישראל. החנויות ברשת צריכות לקבל חושך בעיניים, והבעלים שלהם לקבל מאסר בפועל של מספר שנים.

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

אם תהיה אחריות מינימאלית של בעלי אותם אתרים כלפי הלקוחות בצורה כזו שהם יכולים להיפגע – אז אולי יבוא השינוי.

בנתיים צריך להבין כי מחשבים זה לא תחביב, וזה שהבן (או הבת) של השכנים "מבין" משהו, כמו מתי לוחצים על מקש ימני ומתי על שמאלי, ואיך לחצים על next עשרות פעמים, זה לא הופך אותו למבין. העולם הזה של המחשבים – יש בו הרבה מאוד מקצועות של אנשים שמשקיעים המון שנים ללמוד. ה Next והמקש הימני הם רק בצד המשתמש לא בצד של בעלי המקצוע.

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

האם הבראוזר באמת חשוב ?

לאחרונה מיקרוסופט יצאו בהכרזה חדשה בה הם הולכים להוציא את Internet Explorer 9.

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

אחד הוויכוחים העיקרים בעולם פיתוח מערכות מבוססות web הם האם דפדפנים באמת חשובים, או אולי תקנים חשובים יותר. או במילים אחרות: האם לבנות לפי התקן חשוב יותר מלבנות עבור דפדפנים מסויימים. ובכן, באירופה אשר לא מפחדים להכריז על מיקרוסופט כמונופול, והכח שהתקן הוא הקובע (כמעט לגמרי) ולכן יש נטל על מפתחי הדפדפנים לעמוד בתקנים, בעוד שבמדינה שטכנולוגית/משפטית מפגרת הרבה מאחורי אירופה מבחינת הגישה שמיקרוסופט היא מונופול (כלומר מדינת ישראל), מתחילים להבין שהגישה שIE הוא הדפדפן החשוב מתחילה לכאוב להם ברגל בגלל הכדור שנפלט מהרובה. וזה כאשר הם מנסים סוף כל סוף לעמוד בתמיכה גם ב IE8 ששונה חגמרי מ IE6, אלא אם עובדים בדפדפן עם אמולציה ל IE6, ואז נראה שהכל עובד.

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

הבעיה היא שאם אין מכוניות על הכביש, אז אין שימוש לכביש ולכן יש צורך גם להתאים את הכביש למכוניות, רק מאוד קשה כשכל מכונית קובעת לעצמה איך היא מסוגלת לנסוע על הכביש למרות שיש תקן, ועל זה נאמר מפי ג'וזף הלר: מלכוד 22.

0.1+0.2 = ?

חידה קטנה: אם אני עושה בשפת מחשב (כולל מסדי נתונים) את החישוב הבא:

0.1+0.2

מה תהיה התוצאה ?

התשובה היא שזה תלוי.

במה זה תלוי ? ובכן זה תלוי במהדר/מפרש, וזה תלוי בסטנדרט שאותו מפרש/מהדר משתמש בו.

למעשה השפה היחידה עם 2 מהדרים שניסיתי שנתנה את התשובה 0.3 היתה פסקל על FPC (אין לי דלפי לנסות עליו).

מבחינת מסדי נתונים כל מה שניסיתי (שזה Firebird, MySQL, PosgreSQL) כולם נתנו תשובה זהה לFPC.

שאר השפות החליטו שמדובר בתוצאה של 0.30000000000000004

מהם שאר השפות ?

ובכן

C (gcc), Perl, Ruby, Python, Javascrupt (Firefox), PHP

מי צודק בתשובה שלו ? ובכן כולם, או יותר נכון תלוי איך כל אחד מממש את העבודה עם נקודה צפה ומה אתם מצפים שתהיה התשובה…

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

פרשנות שלי לדרישת האיחוד האירופי בקשר להסרת Internet Explorer

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

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

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

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

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

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

דו כיווניות בשימוש SVG

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

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

http://www.w3.org/International/tutorials/svg-tiny-bidi/