החוק למניעת עישון

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

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

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

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

סטטיסטיקה: מפלטם של הדמגוגים

"גורם" במשרד הביטחון:

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

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

האינטרנט הוא הרשת החברתית

גוגל יוצאים עם OpenSocial, API חדש שבא לחבר בין רשתות חברתיות שהיו סגורות בעבר לאפשר כתיבת ישומים חברתיים שירוצו על מגוון רשתות חברתיות.
השאלה היא למה בכלל צריך רשתות חברתיות?
כבר היום האינטרנט הוא מעין רשת חברתית, הבעיה המרכזית היא המגוון בצורת השמירה והגישה אל המידע שטמון בו.
ליותר ויותר אנשים יש היום אתר אישי, והמגמה הזו מתגברת מהר מאוד.
לא טבעי מאוד שאתר האישי יכיל גם מידע על מי החברים שלי, יאפשר להשאיר לי הודעות, וכו'?
לכאורה, כבר היום כל הדברים האלו אפשרים, למשל:
* אני מריץ שרת דואר שמאפשר לשלוח לי דוא"ל
* אני מריץ שרת Jabber שמאפשר לצ'וטט איתי
* הגרגרן שלי מספר את מי אני קורא.
העניין הוא שמדובר בשרותים שונים, ואין סטנדרט אחיד שיאפשר למישהו שמכיר רק את האתר שלי לשלוח לי הודעה, או לצ'וטט איתי, או לבדוק מה אני קורא או האם יש לי חברה. (כמובן בהנחה שאני מעוניין לחשוף את המידע).
רשתות חברתיות באות לתת מעין סטנדרט כזה, כל רשת בתוך עצמה:
כשאני נמצא ברשת מסויימת, קל לי לחפש אנשים ברשת, קל לי לשלוח הודעות לאנשים או לצ'וטט איתם, קל לי לראות את פרטי הפרופיל שלהם וכו', אבל ברגע שאני עובר לרשת אחרת הכל משתנה.
הממשק של הרשת החברתית מכתיב לי את צורת העבודה, ובנוסף אנשים מופיעים בכמה רשתות עם פרטים ברמת עדכון שונה ואני צריך לזכור שFooBar ברשת אחת הוא בעצם JohnDoh מרשת שניה.
הנסיון של גוגל לפתור את הבעיה הוא להפוך את צורת הגישה למידע שנשמר ברשתות החברתיות לסטנדרטית, ובכך לאפשר לכל אחד לכתוב ישומים שרצים מעל המידע שנשמר ברשתות החברתיות האלו, אבל הוא בא לפתור בעיה אחרת: איך נכתוב ישומים שירוצו על יותר מרשת חברתית אחת.
מה שאני מציע לעומת זאת זה לפזר את המידע עצמו מחדש: במקום שכולו ישב בשרתי פייסבוק, או בשרתי לינקדאין, הוא ישב במאות אלפי שרתים, ששייכים למאות אלפי אנשים שונים.
אם ניקח דוגמא טריויאלית: אין ספק לאף אחד שנפח ההודעות שעוברות בכל יום בדואר אלקטרוני רגיל הוא משמעותי הרבה הרבה יותר מנפח ההודעות שעובר בכל הרשתות החברתיות יחד. הסיבה לכך היא שמדובר בפרוטוקול וותיק ומקובל, ושעובד למעשה בשיטת P2P, בלי ליצור צוואר בקבוק בצורת אתר אחד שמחזיק את כל הדואר בעולם או שמאפשר לחפש את האימייל של אנשים לפי השם שלהם. במילים אחרות: סך נפח השמוש באימייל לא מוגבל על ידי העומס המקסימלי ששרת מסויים מסוגל לשאת, ובנוסף השימוש באימייל הוא חופשי לגמרי במובן שלא צריך להרשם במקום מרכזי כדי לשלוח ולקבל אימייל. (ולפני שאתם אומרים שצריך לפתוח חשבון אימיל בשרת: זה נכון, אבל אתם יכולים להריץ את השרת בעצמכם, אתם לא צריכים טובות מאף אחד).
נניח שהמידע שהיום אני חושף על עצמי ברשתות חברתיות היה מרוכז רק באתר שלי, בצורה סטנדרטית שתאפשר לתוכנות לתשאל את השרת שלי לגבי:
* כבר לא צריך לתחזק 30 פרופילים שונים ברשתות חברתיות שונות, הכל יהיה במקום
* פתאום ברור איפה נמצא המידע עלי: בשרת שלי (שמייצג אותי ברשת)
* פתאום יש לי שליטה על המידע שלי, אם אני מחליט להפסיק לפרסם משהו, אני לא תלוי בחסדים של ספק מסויים כדי למחוק את המידע.

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

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

לזהות יש שתי רמות:
1. איך אני מוצא חבר מסויים.
2. איך אני מוודא ומאמת מסרים מהחבר (מניעת התחזות)
אם נגדיר, שכמו באימייל וכמו בJabber, החבר מאופיין על ידי משהו בצורת אימייל (user@domain), אז קל למצוא את החבר.
אם נגדיר גם שבמערכת שלנו לכל חבר חדש אוטומטית זהות דיגיטלית (מפתח פרטי וציבורי), אז קל לאמת ולוודא מסרים.

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

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

מצא את הכתבה

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

the-marker.png

שנתיים

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

ווירוסים בעידן של רשתות חברתיות

ווירוסי המחשבים עברו כמה מוטאציות במהלך השנים האחרונות, כדי להתאים את עצמם בצורה אופטימלית לסביבת המחיה שלהם.
בימי דוס, כשכולם היו מעתיקים דיסקטים אחד מהשני, הווירוסים הנפוצים הדביקו את טבלאת המחיצות (MBR) של הדיסקטים, או את קבצי ההפעלה של המשחקים הפופולריים, וההדבקה התבצעה פשוט על ידי הפעלה של דיסקט נגוע, יציאה מהתוכנית והפעלה של דיסקט נקי.
זכור לרעה הוירוס DIR2 שהסתפק בהפעלה של פקודת DIR בזמן שהוא היה פעיל כדי להדביק כל מה שאפשר בספריה.
עם השיפור באבטחה של מערכות ההפעלה והשיפור האיטי במערכות האנטי וירוס, הווירוסים האלו נכחדו, והוחלפו בעיקר בווירוסים ותולעים שמתפשטים דרך חורי אבטחה בדפדפנים. הווירוסים האלו הרבה יותר טפשים מהווירוסים של דוס, ובדרך כלל קל יותר להתמודד איתם בכלים פשוטים יחסית.
התולעת הראשונה פותחה על ידי סטודנט בMIT, וניצלה חורי אבטחה ידועים במערכת המערכות יוניקס, מאז צברו התול~3
^C^C^C
——-
שלום, זהו וירוס וורדפרס הראשון.
הסיבה להדבקה נובעת מביקורכם באתר הזה
ברגעים אלו ממש המערכת מזהה את הבלוג שלכם ומדביקה אותו.
מאחר והוירוס מסוגל רק להדביק מערכות וורדפרס בטקסט הזה, אנו מבקשים – כחלק מהכבוד שכולכם רוכשים למערכת הקוד הפתוח – למחוק קבצים חשובים במחשב שלכם.
לאחר מכן, אנא הסירו קבצי מערכת קריטיים על מנת שהוירוס יוכל להפוך להיות איום אמיתי.
אנו מודים לכם על התמיכה בוירוס הקוד הפתוח ומתנצלים על אי הנוחות.
——-

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

מפתחי ג'אווה שמפתחים למכשירים סלולאריים הם עם די מסכן, יש בעיות שונות ומשונות במכשירים מסויימים, ואם אתם רוצים שהישום שלכם יעבוד בכל המכשירים צפויה לכם דרך קשה ומייגעת.
ללא ספק, החברה שמייצרת את המכשירים השנואים ביותר עלי אישית היא מוטורולה.
למרות שהמכשירים החדשים של מוטורולה (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, מוטורולה עדיין חוסמים את המשתמשים ואת המפתחים מכל דבר שמזכיר נוחות עבודה מול מכשירים אחרים.

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

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