DRM ונזקיו לאילו שהוא אמור לעזור

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

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

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

בפרט, חברת Intuit ניסתה להכניס מוצר DRM בשם “C-Dilla” למוצר הדגל שלה. אחרי גרסה אחת הם הוציאו אותו חזרה. מסתבר שהגידול במכירות לא היה כל כך גדול כמו שציפו, במידה רבה בגלל הבעיות שהמוצר עשה ללקוחות שלהם.

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

שחר

רגע חשוב לכותב תוכנה חופשית

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

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

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

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

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

בעיני זה לראות פרוייקט מתחיל להמריא.

שחר

פער התרבות

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

אנשי מחשבים בד”כ ילחצו על “Reply”. אנשי קוד פתוח בד”כ ילחצו על “Reply to all”.

כאשר אתה עובד בקהילה, אתה רגיל לשתף את הקהילה בתכתובת. באופן אישי, אני רואה בקשות תמיכה ל-OLE DB, למשל, שנשלחות לרשימת התפוצה נענות על ידי, ואני משתדל שבצורה מהירה. בקשות תמיכה שנשלחות אלי באופן פרטי, לעומת זאת, נראות בעיני כחוצפה. מדוע מישהו חושב שאני צריך להקדיש מזמני כדי לעזור לו?

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

מצד שני, כשאני מדבר עם אנשים שאינם שוחים בקוד הפתוח, אני ניתקל יותר ויותר בזה שהם לוחצים של “Reply”. ברוב רשימות התפוצה שאני מנוי עליהם, דבר כזה מוציא מהתכתובת את כל מי שהיה בה עד כה, כולל את רשימת התפוצה.

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

שחר

תשמעו בדיחה

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

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

השלישי מסיים להשתין ויוצא מחדר השירותים. למבטי הבוז של שני הקודמים הוא מגיב: “אצלנו בלינוקס מלמדים אותנו לא להשתין על הידיים !!!

צחקתם?

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

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

תעשו לי טובה, ואל תעשו לי טובות כאילו.

שחר

שיחות טלפון בינלאומיות

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

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

Voip, למי שלא יודע, זה “Voice over IP” – העברת קול דרך תשתית אינטרנטית. אין הבדל עקרוני בין מה ש-Skype עושה לבין כרטיס החיוג, למעט זה שבמקרה השני שנינו מדברים אל תוך מכשיר טלפון.

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

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

אולי זה רק אני

שחר

פסיקה ענישתית

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

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

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

אז אם כל כך רע, למה אני תומך בזה?

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

מה שהביא אותי לכתוב על הנושא היום היתה כתבה ב-ynet על עוד נסיון התחכמות של חברת ביטוח. מקרי הסיפור הספציפי הזה לא באמת מעניינים. בקצרה – חברת “הראל” ביטחה משפחה (אמא, אבא ושני בנים בני 4 ו- 7) ביטוח נסיעות, כולל ביטוח הוצאות ביטול נסיעה עקב מחלת קרוב משפחה. בהגדרת “קרוב משפחה” נכללו הורה, חתן או חותנת, ואפילו שותף לעסק. מי שלא נכלל היה סב. אבי אב המשפחה לקה בליבו, והראל טענה שרק חצי מהנוסעים מבוטחים (דהיינו – הילדים לא), ועל כן היא מחזירה רק חלק מהוצאות הביטול. בית המשפט לא קיבל את עמדתה וחייב אותה להחזיר את מלוא הסכום, כולל הוצאות משפט.

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

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

מסתבר שלבדוק את הנקודה הזו זה דבר פשוט מאוד. כל מה שצריך לעשות זה לכפול את הנזק/תועלת בהסתברות שהיא תִקְרֵה. אם אתם חושבים שזה מתוחכם מידי בשביל הראל, אנא זיכרו שהראל היא חברת ביטוח, וכך בדיוק היא מתמחרת את הפוליסות שלה. בואו ננסה לעשות את החישוב:
אופציה א’ – לשלם כמו שברור שמגיע. סביר להניח שבמקרה של משפחת פז אנחנו מדברים על כמה אלפי שקלים. בטח מדובר על בערך 15 אלף שקל.
אופציה ב’ – להתנער מהתשלום.
מקרה א’ – הלקוח מקלל אותך בטלפון ונכנע.
מקרה ב’ – הלקוח תובע אותך בבית משפט לתביעות קטנות ומפסיד
מקרה ג’ – הלקוח תובע אותך בבית משפט לתביעות קטנות, וזוכה בחלק מהסכום
מקרה ד’ – הלקוח תובע אותך בבית משפט לתביעות קטנות וזוכה במלוא הסכום
מקרה ה’ – ” ” ” ” ” ” ” וזוכה במלוא הסכום פלוס הוצאות משפט
מקרה ו’ – הלקוח תובע אותך בבית משפט שלום ומפסיד
וכן הלאה וכן הלאה.
אני חושב שנקל לראות שהמקרים הנ”ל מסודרים בסדר יורד של הסתברות.

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

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

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

במילים אחרות, אם היינו מוסיפים:
מקרה ה’ – הלקוח זוכה במשפט, ומקבל כפיצוי 10% ממניות חברת הראל.
והיינו אומרים שזה ייקרה בהסתברות של 0.1% (אחד פרומיל), כמות הפעמים שחברת ביטוח מבצעת הונאה כזו בלקוחותיה היתה יורדת פלאים. העונש, על אף שלא סביר, הוא מאוד מאוד חמור, והיה עושה את ההונאה הראשונית ללא כדאית.

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

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

שחר

באג בקומפילר של מיקרוסופט

למרות הקטגוריה הנבחרת, פה לא עבדתי על Wine, אלא ישירות על חלונות.

המהדר הוא Visual Studio 6 של מיקרוסופט, עם כל ערכות העדכון האחרונות.

הבעיה:

C:Documents and SettingssunSourcesdbconvertdbconvert.cpp(297) : fatal error C1001: INTERNAL COMPILER ERROR
(compiler file ‘.toil.c’, line 4328)
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information



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

הפתרון – ליצור את השורות הבאות:

// Need to copy result to temporary storage to avoid compiler bug (ARGH!!)
_variant_t primarykey=GET(srcIndexes, PRIMARY_KEY);
if( primarykey ) {



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

גררר

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

שחר

Bear