בונזו'ר

אני שומע את סדרת הספרים The uplift saga של דיוויד ברין.
היום סיימתי לשמוע את הספר השלישי (מתוך שישה), והחלטתי לעדכן את הפודקסטים שלי; הפעלתי את הiTunes המאוס, ולא הופתעתי לראות עדכון לiTunes 8.
מה שכן הפתיע אותי זה שאפל בחרו לדחוף לי משהו בשם בונזו'ר לחלונות, כדי .. לשפר את האבטחה של בונזו'ר לחלונות.
לא ידעתי שיש לי את בונז'ור הזה.
סירבתי להזמנה הנדיבה בתקיפות.

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

שינאה.

Legacy of Omlet

אז בואו נראה מה נשאר השאיר לנו הצדיק אולמרט:

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

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

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

פיספסתי משהו?

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

אולמרט, תתפטר!
אה, התפטרת כבר?

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

תאריך? מי צריך את זה בארץ?

אתר הארץ מפרסם כתבות, אבל לא טורח לצרף תאריך פרסום.
אפילו, ואולי במיוחד – בכתבות כלכליות כמו זו.
פניתי אליהם בשאלת התם:

שלום.
נראה לי שמישהו אצלכם שותה יותר מדי.
אין תאריך פרסום בכתבות, למשל:
http://www.haaretz.co.il/hasite/pages/ShArtPE.jhtml?itemNo=975758&contrassID=2&subContrassID=17&sbSubContrassID=0

וקיבלתי את התשובה המשעשעת אם כי לא מועילה הזו:

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

תגובתי היתה:

תודה לירון.
ובנימה יותר רצינית:
אתה לא חושב שזה גורע מהמידע בידיעות?

ולזה כבר לא קיבלתי תשובה.

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

EV Certificate

כשנכנסים לאתרים כמו אתרי בנקים, או אתרי מסחר, רואים את אותו מנעול בדפדפן, שמציין שהתקשורת מוצפנת.
המנעול הזה אומר שהתקשורת עם השרת מתבצעת בפרוטוקול HTTPS.
חוץ מהצפנה, HTTPS גם מאפשר זיהוי של הישות המשפטית שמריצה את השרת, זה עובד כך:
בנק X פונה לחברה – ווריסיין למשל – שמנפיקה אישורי זהות (Certificate), ומשלם להם סכום יפה, 400$ לשנה למשל.
ווריסיין מוודא שבנק X הוא אכן בנק X, ולא האקר Z או קראקר K, למשל על ידי אימות טלפוני.
ברגע שווריסיין החליטה שהיא יודעת מי זה בנק X, ושהוא אכן ביקש ממנה את אישור הזהות, היא מנפיקה לו כזה, וחותמת עליו.
עכשיו בנק X יכול להשתמש באישור הזהות שלו כדי לתקשר בפרוטוקול HTTPS, ודפדפנים שמתקשרים איתו יוכלו להציג למשתמש את אותו מנעול, ובא לציון גואל.
המנעול מבטיח כמה דברים:
1. שגורם צד שלישי לא יוכל לצותת לתעבורה ולגנוב את הקוד הכניסה שלך לבנק.
2. שגרם צד שלישי לא יוכל להתחזות לבנק, ולגנוב את קוד הכניסה שלך לבנק.
3. שאם הבנק יגרום לכם נזק (למשל על ידי הפצת סוסון טרויאני ללקוחותיו הנאמנים), הוא לא יוכל להסתתר מאחורי השרת שלו, אתם יודעים מי הוא – בניגוד למצב הרגיל של גלישה שבו בדרך כלל אין לכם מושג באתר שלי מי אתם נמצאים. מעבר לזה, ווריסיין חתומים על זה שהוא אכן מי שהוא טוען שהוא. במקרה ומסתבר שבנק X הוא בעצם ז'וז'ו הקראקר, תוכלו לתבוע את ווריסיין על שהם הפרו את חובתם לוודא את הזהות של מי שמקבל מהם אישור זהות.

עם הזמן, נוצרה בעיה:
כל דיכפין החליט שהוא יכול להיות CA – Certificate authority כמו ווריסיין, ולהנפיק אישורי זהות.
יצרני הדפדפנים מצידם מיהרו לכלול את המפתח הציבורי של כל יצרן שהכתיר את עצמו מאוד בקלות, כדי להמנע מנחיתות מול דפדפנים מתחרים.
גודדי למשל, מוכרים בפחות מ30$ לשנה אישור זהות שמאשר בסך הכל שאתם בעלי האתר. כמובן שהם לא ממש מוודאים מי אתם (האימות הוא אוטומטי), וכל ספאמר/סקאמר יכול לקנות מהם מנעולים לאתר הטרויאנים שלו ממש בזול.
נוצר מצב שבו אותו מנעול שעד עכשיו יצר תחושת ביטחון אצל המשתמש, הפך למשהו שולי שאפשר לקנות בזיל הזול ובלי שום אימות אמיתי.
ממש זילות המנעול.

אז מה עושים?
כמובן, אישור זהות חדש – Extended validity certificate, שמחייב את המנפיקים לוודא בצורה יסודית למי הם מנפיקים אותו (CA שיפיק אישור זהות מורחב בלי לוודא באמת למי הוא נותן אותו, מסתכן בשלילת הזכות שלו להפיק אישורי זהות).
אותם אישורים יוצגו בצורה ידידותית למשתמש:
VA cert
רואים את הירוק הידידותי בשורת הכתובת? אז זה זה.
האישור החדש המורחב והמחוזק עולה כ1500$ לשנה אצל ווריסיין – פי שלוש וחצי.
אז בעצם ווריסיין מצאו דרך לחייב את הלקוחות שלהם הרבה ממה שהם חייבו אותם קודם, כדי לקבל את השרות שהם היו אמורים לתת גם ככה: לוודא את הזהות של הלקוח.
נחמד.
אני בטוח שהם יתחילו לזלזל באישורי הזהות הרגילים שלהם, ואולי אפילו לפגוע בתהליך הזיהוי, אחרי הכל – למי איכפת? מי שזה חשוב לו שישלם על EV.

אותי זה מעצבן.

ווירג'ין: נדפוק את המשתמשים שלנו. קורי דוקטורו: לא אותי.

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

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

הSDK של IPod touch וIPhone

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

בין ההגבלות:
* אסור לישומים להתשמש בבמשקים לא מתועדים, או להשתמש בממשקים שלא איך שאפל הגדירה.
* מותר לישומים לכתוב נתונים רק באיזורים המיועדים.
* אסור לישומים לרוץ ברקע (ברגע שהמשתמש סוגר את האפליקציה היא חייבת לצאת).
* לאפליקציה אסור להפעיל אפליקציות אחרות, כולל ולא מוגבל לשימוש בארכיטקטורת פלאגינים, קריאה לFrameworkים אחרים, או שימוש בממשקי תכנות (API) אחרים. אסור להוריד ולהריץ קוד מפוענח (Interpreted) למעט קוד שמשתמש במפענחים הפנימיים של אפל.
* אם הישום שלך כולל קוד פתוח (FOSS) אתה מסכים לתנאי הרשיון של הקוד. אתה גם מסכים לא להשתמש בקוד בצורה שתגרום לחלקים שאינם תחת רשיון FOSS להפוך לכאלו.

נראה שעורכי הדין של אפל עובדים שעות נוספות כדי לחסום את המשתמשים מלעשות דברים שימושיים.
הפסקה האחרונה מרמזת שאו שעורכי הדין של אפל הם חבורת מפגרים שלא מבינים רשיונות קוד פתוח (שום דבר שמישהו יכול לעשות עם רשיון קוד פתוח לא יכול להדביק את הקוד של אפל!) או שהם מנסים להפיץ FUD לגבי קוד פתוח.
תנאי הרשיון מונעים המרה של דפדפנים (פיירפוקס למשל) לIPhone, מונעים שימוש בשפות נוספות כמו Java, PHP, Python וכו', מונעים כתיבה של תוכנות מסרים מיידיים (כי הם צריכים לרוץ ברקע) ועוד.
זה די מרתיח שבאפל יושבים כאלו חולי שליטה.

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

Shareaza.com, המחטף

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

Make it so the real shareaza program queries their site [shareaza.com] every couple of seconds. As an individual user this won’t take much personal bandwidth. But all shareaza users worldwide put together should be enough to kill their server and they won’t really be able to do much since it will be coming from so many different IPs.

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

This law firm represents Discordia, Ltd., the operator of the website Shareaza.com and owner of the rights in the Shareaza branded software distributed from that domain. Please be advised, that your forum contains a string of posts under the title: “suggestion to kill Shareaza.com.” Under the string, the poster, RedSquirrel offers directions for users of Shareaza software to implement a DoS that would have the effect of destroying or seriously impairing our client’s application and network. The poster OldDeath also offers a manner to illegally attack our client’s business.

Despite whatever complaints your forum’s users may have with our client’s proper and legal business activities, the type of activity promoted on your forum is illegal. Therefore, we request that you immediately remove this string of posts and any future strings of this nature. My client respects your users’ rights to express their points of view. However, the line is crossed when users begin to promote the destruction of a legitimate business (evidently based on out some misguided belief that artists and others who create music should not be fairly compensated for their efforts) via illegal or other predatory means.

If the above cited illegal activity on your site does not immediately cease and desist, our client will take all necessary action to vigorously and relentlessly protect its rights. To be clear, if this action is not immediately taken and, as result, our client’s business is harmed, we will not only pursue, locate and hold fully responsible each and every one of those who have implemented this, or any similar DoS, but also those responsible for maintaining your site and the forums.

Please confirm that the requested action is being taken immediately.

Jeffrey A. Kimmel

Meister Seelig & Fein, LLP
140 E. 45th St., 19th Fl.
New York, NY 10017
(212) 655-3578

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

הסיפור המלא כאן.

עוד תקלת רשת מוזרה

בהמשך לפוסט האחרון על בעיות רשת מוזרות, הנה עוד אחת.
אפליקציית ג'אווה שכתבנו עובדת טוב לרוב האנשים, אבל משום מה "נתקעת" בהתחברות לחלק מהאנשים.
בבדיקה, נראה שהאפליקציה מתחברת לשרת, מקבלת תשובה ממנו, אבל לא קוראת את התוכן של התשובה.
בבדיקה מעמיקה יותר, רואים שהאפליקציה ניגשת לשדה הContent-Length של התשובה, ומקבלת משם 1-, מה שמרמז על זה שאין בתגובת הHTTP שדה של Content-Length.
בדיקה קטנה עם WireShark (לשעבר Ethereal) מראה את זה:

[code]
HTTP/1.1 200 OK
Date: Thu, 31 Jan 2008 13:21:24 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Set-Cookie: ASP.NET_SessionId=j2hx2qvprzec3u55htsykh45; path=/; HttpOnly
Cache-Control: private
Content-Type: text/html
Content-Length: 20877
[/code]

(המשך התגובה נחתך מחוסר עניין).

אז נראה שהכל בסדר, יש Content-Length בתגובה.
ובכל זאת, אפליקציית הJava מקבלת 1-, ובדיבוג מעמיק אין רמז לContent-Length באובייקט שמייצג את תגובת הHTTP.
אז מה קורה פה?

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

[code]
HTTP/1.1 200 OK
Transfer-Encoding: chunked
Date: Thu, 31 Jan 2008 13:21:24 GMT
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
Set-Cookie: ASP.NET_SessionId=j2hx2qvprzec3u55htsykh45; path=/; HttpOnly
Cache-Control: private
Content-Type: text/html
————–: —–
[/code]

יש פה כמה דברים שצריך לשים אליהם לב:
1. פתאום יש לנו בתשובה Transfer-Encoding: chunked.
2. מה זה איפה שקודם היה לנו Content-Length? ————–: —– ?? איזה וודו שחור פועל פה?

יש לציין שבזמן שאני מקבל את הנתונים האלו בתוכנית, אני מקבל נתונים זהים למה שראיתי קודם WireShark, כלומר – המחשב מקבל את הנתונים בצורה תקינה, אבל התוכנית מקבלת אותם אחרי טיפול.

כדי לנטרל אפשרות שJava התחלקה על השכל, ניסיתי (בעזרתו של חבר מהעבודה) להריץ תוכנית שעושה את אותו דבר בדיוק, רק שכתובה בC#.
לא במפתיע, התוצאה זהה: אין Content-Length, במקום זה יש שורת מינוסים.
מסקנה, Java לא אשמה הפעם.

אז מה נשאר?
מי משחק בתעבורת הרשת במחשב? אולי זה ווירוס, ואולי זה אנטי וירוס; בכל מקרה מדובר בתוכנה נאלחת.
לא במפתיע, האשם הוא הSymantec Client Firewall, שסורק בזמן אמת את תעבודת הHTTP, מחרבש אותה קלות, ומעביר את הזבל לתוכניות התמימות.
ברגע שנטרלתי את הסריקה שלו את פורט 80, הכל הסתדר.

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

אם הייתי כותב ווירוסים, הייתי משתמש במידע הזה בכיף כדי לזהות שהמחשב מריץ את הFirewall של סימנטק, שמשאיר עקבות כמו חזיר בחנות בורקסים.

אבל יש גשם, וחושך!

אתמול קרוב ל1:00 בלילה נשמע פיצוץ עז ברחוב המאבק, ואחריו הרחוב – וכמה רחובות שכנים הוחשכו.
כששמעתי את הרעש, לרגע חשבתי שנפל איזה טיל, עד כדי כך זה היה חזק.
ניצלתי את החוסר בחשמל כדי לבדוק קצת לפטופ שהבאתי מהעבודה לקראת נסיעה לחו"ל בעוד שבוע, ובסוף החלטתי ללכת לישון, בחושך.
כשקמתי, עדיין לא חזר החשמל, והתקליט במענה של חברת החשמל טען שהצפי הוא 11:00.
ניצלתי את הזמן כדי להתקדם קצת בחומר הלימודים בקורס הנוכחי. השעה 11:00 הגיעה, וכמובן שהחשמל לא חזר.
הפעם התקליט אמר פתאום שאין צפי לחזרת החשמל.
יצאתי לסיבוב קצר עם האוטו באיזור, בחיפוש אחרי מוקד הבעיה (במילים אחרות, חיפשתי את עובדי חברת החשמל העמלים כדי לתקן את התקלה), לא מצאתי.
החלטתי לקחת את לפטופי ולהמשיך לבדוק אותו במקום עם אינטרנט וחשמל, וכשיצאתי ראיתי ניידת של חברת חשמל חונה ליד הבית.
מסתבר שהפיצוץ היה בעמוד מתח גבוה שנמצא 20 מטר מהחלון שלי, ועובד חברת החשמל לקח מקל כתום וארוך, ודחף ומשך איתו איזה שנאי בעמוד חשמל.
אחרי עשר דקות, החשמל חזר.

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

למה אני שונא סלולארים של מוטורולה

מפתחי ג'אווה שמפתחים למכשירים סלולאריים הם עם די מסכן, יש בעיות שונות ומשונות במכשירים מסויימים, ואם אתם רוצים שהישום שלכם יעבוד בכל המכשירים צפויה לכם דרך קשה ומייגעת.
ללא ספק, החברה שמייצרת את המכשירים השנואים ביותר עלי אישית היא מוטורולה.
למרות שהמכשירים החדשים של מוטורולה (RAZR2-V9 שמריץ לינוקס, V6 ואפילו V3) הם מכשירים חזקים, עתירי זכרון ועם תקשורת נתונים מהירה מאוד, הם עדיין שנואים במיוחד.
איך זה?
הבעיה עם מוטורולה, היא שלמרות שהם מייצרים מכשירים עם חומרה מצויינת, התוכנה שלהם היא לא פחות מפיגוע רב נפגעים.
הבעיות מתחילות בממשק מעצבן ולא אינטואיטיבי (נסו לקבוע דף בית לדפדפן, או להעלות אפליקציית ג'אווה דרך הכבל USB), וממשיכות במגוון באגים במכשירים.

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

כתיבה של קבצים בRAZR2
RAZR2 הוא המכשיר החדש ביותר של מוטורולה, והוא מריץ לינוקס. לכאורה, הזדמנות פז למוטורולה להוציא תוכנה פחות מסריחה.
איכשהו, מוטורולה הצליחו ליצור באג בכתיבה של קבצים בשימוש בFileConnection.
הבאג ממש ביזארי, וגרם לכך שלפעמים קבצים שתכתבו לא יכתבו כמו שצריך למערכת הקבצים.
הבאג מופיע בעיקר כשוכתבים "הרבה" נתונים במכה, למשל:
[code lang="java"]
byte buf[] = new byte[20000]; // create buffer
for (int i = 0; i < buf.length; i++) buf[i] = (byte) i; // populate with some crap FileConnection conn = (FileConnection) Connector.open("file:///..."); // open file connection OutputStream out = conn.openOutputStream(); // open output stream out.write(buf); // write buffer to file // cleanup out.close(); conn.close(); conn = (FileConnection) Connector.open("file:///..."); // open file connection again InputStream in = conn.openInputStream(); // read, you are in for a surprise [/code] פתרון שעובד לבעיה המוזרה הזו הוא לכתוב את הקובץ בכמה חתיכות יותר קטנות, למשל: [code lang="java"] private void writeChunked(byte[] buffer, OutputStream out) throws IOException { final int MAX = 4096; int offset = 0; while (offset < buffer.length) { int chunkSize = (buffer.length - offset > MAX ? MAX : buffer.length – offset);
out.write(buffer, offset, chunkSize);
offset += chunkSize;
out.flush();
}
}
[/code]

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

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

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

חוסר יציבות
זה אולי ישמע כמו התבכיינות, במיוחד למפתחי סלולארי שרגילים לקריסות (BREW, Symbian), אבל קל מאוד לגרום למכשירי מוטורולה לקרוס.
מספיק לפתוח ולא לסגור יותר מדי קבצים. במקום לקבל איזו שגיאה סבירה, המכשיר זורק במקרה הטוב "IOException : native error" ובמקרה הפחות טוב פשוט נתקע לחלוטין.

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

התממשקות למחשב
מוטורולה עדיין לא הבינו שחיבור בממשק של מודם (פקודות AT) פס מהעולם, וישום הניהול שלהם – MIDWay (המשוקץ) מתחבר למכשיר ממש כאילו הוא מודם. מי שזוכר את המחלות של מודמים (מה הערוץ הCOM? מה הBaud rate? שיט, העכבר לא זז, שיט הCOM נתקע וצריך לאתחל את המחשב) ירגיש כמו בבית.
ההתקנה של ישומי ג'אווה היא ממש מציקה:
כדי להתקין, צריך לחפור בתפריטי המכשיר למצוא אפשרות נסתרת שמעבירה את המכשיר למצב טעינת ג'אווה, להפעיל אותה, ורק אז לחבר את הכבר נתונים (אם הוא היה מחובר כבר, צריך לנתק אותו! Serenity now!).
דבר מעצבן נוסף הוא שברגע שמחברים את המכשיר למחשב עם הכבל, ישום הג'אווה הפעיל – אם יש כזה, מושהה מיד ואי אפשר להריץ אותו.
למה? כי מוטורולה עושים כל מה שהם יכולים כדי לעלות למפתח הנואש על העצבים.

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

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

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