דרכון קנדי ב20 דקות, או : VPN לכל שרת

אחד המשחקים המצופים של השנה – Dragon age: Origins – יצא לפני אתמול, ואחרי שראיתי את הציונים והביקורות שהוא קיבל החלטתי לקנות אותו.

חיש מהר קניתי אותו בSteam, חנות המשחקים שלValve.
בזמן שקניתי אותו היה נראה כאילו אני מבצע הזמנה לפני שהמשחק יצא (Pre order), אבל מה שקורה בדרך כלל זה שאפשר להוריד את המשחק מראש, וברגע שהוא משתחרר (מה שהיה אמור להיות אתמול) קבצי המשחק המוצפנים עוברים תהליך של פענוח ואז אפשר לשחק.
אבל מה? מסתבר שבארצנו הקטנטונת – וגם באירופה, המשחק ישוחרר רק ביום שישי או שבת.
סתם כדי להתעצבן, בדקתי באתר הטורנטים הקרוב לביתי, ואכן – המשחק כבר שם.
שלחתי אימייל לתמיכה של Valve, בו מחיתי על כך שהם מסרו מידע שגוי שגרם לי ולאחרים לקנות את המשחק ולהצטער.
אז המשחק כבר אצלי, מוצפן – ושילמתי עליו, אבל מסיבות עלומות ומציקות אני לא מורשה לשחק בו למרות ששחקנים אחרים בעולם כן.
מעצבן מספיק כדי לפעול.
משתמשים בפורום של Steam כתבו שהם הצליחו לשחק אחרי שהתחברו לSteam תוך שימוש בVPN שמחובר לארצות הברית.
חיפשתי קצת, ולא מצאתי משהו שלא ביקש ממני כרטיס אשראי בשביל לנסות, אז חשבתי לעצמי:
השרת שמריץ את הבלוג נמצא בקנדה, רוב הסיכויים שהמשחק שוחרר בקנדה באותו תאריך כמו בארצות הברית.
החלטתי להרים שרת VPN על השרת בעזרת ההוראות פה.
ההוראות פשוטות למדי, אבל במקום לאתחל את השרת כמו שהם הציעו אחרי ההגדרות הפעלתי מחדש את pptpd:
[code]
/etc/init.d/pptpd restart
[/code]

כדי להפעיל את קידום הפקטות בקרנל בלי לאתחל, הרצתי את:
[code]
echo 1 > /proc/sys/net/ipv4/ip_forward
[/code]

פתחתי חור TCP בפיירוואל בשרת בפורט 1723, שהוא הפורט הסטנדרטי של העניין הזה, וכמובן בחרתי סיסמא חזקה עם gpw שמייצר סיסמאות שאפשר להגות (Generate pronounceable passwords), ניסיתי להתחבר דרך מכונת המשחקים שלי שמריצה חלונות 7 (מערכת מומלצת), והעסק התחבר בלי בעיה.
בדקתי את כתובת הIP שלי בwhatismyip.com ולשמחתי ראיתי שהיא הכתובת של השרת.
הפעלתי מחדש את Steam, נכנסתי מקנדה – והפלא ופלא, בתור קנדי הצלחתי להפעיל את המשחק.

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

Facebook Comments

כלכלת שוק שבוי

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

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

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

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

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

Facebook Comments

Java singleton – the next generation

סינגלטון הוא אחד התבניות הנפוצות בתוכנה.
בגדול, סינגלטון הוא אובייקט יחיד מסוג מסויים במערכת, שכולל פונקציה סטטית שמאפשרת גישה נוחה לאובייקט מכל מקום במערכת.
למשל, אם יש אובייקט שמטפל בשליחת אימיילים, סביר שהוא יהיה סינגלטון כי אין ברוב התוכנות משמעות לכמה אובייקטים שיטפלו בשליחת אימיילים.
בדרך כלל כותבים סינגלטון ככה:
[code lang="java"]
public class EmailSender
{
private static EmailSender s_instance;

private EmailSender(){} // private constructor

public static synchronized EmailSender getInstance()
{
if (s_instance == null)
s_instance = new EmailSender();
return s_instance;
}

public void sendEmail(String recepient, String subject, String text)
{
// …
}
}
[/code]
כדי להשתמש בסינגלטון ככה:
[code lang="java"]
EmailSender.getInstance().sendEmail(…);
[/code]
כמה דברים לשים אליהם לב:
* יש בנאי פרטי, כדי למנוע מכל מני גורמים "לא מוסמכים" לאתחל עותק משל עצמם של הסינגלטון.
* הפונקציה getInstance צריכה להיות מסונכרנת כדי למנוע מצב שבו שני ת'רדים שונים ניגשים במקביל לפונקציה וגורמים לאיתחול של שני אובייקטים במקום אחד.

עד כאן, טרויאלי לכל מי שכתב תוכנה בג'אווה.
הפוסט הזה הוא על דרך אלטרנטיבית לכתיבת סינגלטון, והרי היא:
[code lang="java"]
public enum EmailSender
{
instance;

public void sendEmail(String recepient, String subject, String text)
{
// …
}
}
[/code]
אפשר להשתמש בenum עם קבוע בודד, ולמרבה ההפתעה אפשר להכניס פונקציות ומשתנים בהגדרה של הenum.
מותר גם (אבל לא חייבים) להגדיר בנאי פרטי.
השפה מונעת את בעיית הגישה מכמה ת'רדים, וכן אין בכלל קונספט של איתחול יזום של enum.
כדי להשתמש בסינגלטון ככה:
[code lang="java"]
EmailSender.instance.sendEmail(…);
[/code]
אלגנטי, לא?

Facebook Comments

פרסום כוזב במסמכי בלוג

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

יש אתר ישראלי לחברה האלה
www.dealextreme.co.il
אתר פצצה מחירים זולים במיוחד והכי חשוב זה דרך ויזה רגילה
ותמיכה בעיברית

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

Facebook Comments

זה לא גשם

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

Facebook Comments

מצלמות נגד הפשע

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

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

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

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

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

כתבה יותר עדכנית מהטלגרף מדברת על זה שאחד מ1000 פשעים נפתר באמצעות CCTV.

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

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

המספרים שמצאתי נעים לבין 500 מליון פאונד ברחבי המדינה, לבין מילארדי פאונד. (1 פאונד ~= 6 שקלים)
בסכומים האלו אפשר היה להוסיף כמות משמעותית ביותר של שוטרים שיפטרלו באיזורים המועדים לפשע, ובאמת יעלו את תחושת הביטחון של האזרחים.

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

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

A new database of images which is expected to use technology developed by the sports advertising industry to track and identify offenders.
Facebook Comments

המאגר הביומטרי : בור מלא זאבים

יש שתי בעיות עם טביעות אצבעות, false negative וfalse positive.

  • false negative (שלילי שגוי) : כאשר בהנתן דוגמא של טביעת אצבע, אנחנו לא מוצאים התאמה במאגר למרות שהמאגר מכיל התאמה.
  • false positive (חיובי שגוי) : כאשר בהינתן דוגמא של טביעת אצבע, אנחנו מתאימים אותה לטביעת אצבע לא מתאימה במאגר.

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

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

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

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

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

מומלץ לקרוא את כל הכתבה בYNET.

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

איך נמנע זיוף זהות?

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

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

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

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

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

ועל זה נאמר:
זאב! זאב!

אז, לא – לדעתי זה לא מספיק.

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

Facebook Comments

projects.firefang.net

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

אגב, הלוגו החביב בחסות creatr.

כרגע יש בו שני פרוייקטים:
1. Zync : משלב בין rsync וzfs, כדי לגבות שרתים מרוחקים.
2. MySQL Monk : מנטר את מצב הרפליקציה של שרתי MySQL ושולח אימייל אם הם מתחילים לזייף (הסלייב נשרך יותר מדי מאחורי המאסטר, או שאחד השרתים למטה).

שני הפרוייקטים הנ"ל מתבססים על Swush כשפת הקונפיגורציה שלהם.
הAPI של Swush כבר מספיק עשיר ויציב, וממש כיף לי להשתמש בו.

Facebook Comments

והזוכה בתחרות הספאם האידיוטי…

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

I just wanted to drop in and mention hello to everyone. I desired to
acquaint myself, my name is Ashley. Hello all, my name is Andrew.howdy to
all, I am new here and my name is Chris.

I decided to post now because I think forum as a whole is very structural
and social. I love reading all of the themes and topics here and
considering that I am not much of a poster, I came to the conclusion to
make my very first topic.

To return back to the community, I have determined I wanted to post a
recent positive experience that I have had with another site I had help
me. This website was up front and extremely professional.

That company is *****************com and they give remote assistance
http://www.*****************.com – pc repair

Facebook Comments