נניח שאתם עסוקים לכם במשהו, ופתאום טלפון.
מוזר, אתם חושבים, אף אחד לא מתקשר למספר הקוי, זה בטח ספאם.
ואכן : "שלום, מדברת יפית..".
מה אתם עושים?
כרום ופרטיות
טוב, אז אם כולם כותבים על כרום, אני אשתוק? 🙂
כרום למי שבדיוק יצא משנת החורף, הוא הדפדפן החדש של גוגל.
אודה ולא אבוש, עוד לא התקנתי אותו כי גוגל עדיין לא שחררו גרסת לינוקס, ואני לא לחוץ לחזות בפלא כדי שאתקין אותו במכונה וירטואלית.
כששמעתי שגוגל מוציאים דפדפן, המחשבה הראשונה שלי היתה:
יופי, עכשיו הם ירגלו אחרי אנשים גם בדפדפן. (למי שלא מכיר: דעתי על גוגל אנליטיקס).
המחשבה השניה היתה:
כן, אבל הם מקבלים כל כך הרבה אש על נושאים שקשורים לפרטיות שאם יש להם איזו שהיא תקווה שהדפדפן הזה לא יהיה פלופ אחד גדול, הם מאוד יזהרו לא לגרום לו להיתפס כדפדפן ריגול.
לא עבר הרבה זמן, וקיבלתי אימייל מ"שטרן אריאלי יחסי ציבור", שכלל מסמכי DOC של:
* הודעה לעיתונות
* דף הסבר על פרטיות
* תכונות בולטות
* דף הסבר על תחרות
כמעט מחקתי את הדואר אינסטינקטיבית, אבל אז חשבתי שזה קצת מחמיא שהגעתי איכשהו לרשימה הזו.. רק קצת.
החלטתי לקרוא את מה שהיה שם.
קודם כל, כתוב יפה ואין טעויות טכניות מביכות כמו של כתב YNET שטען שיש בכרום מנוע ג'אווה מהיר במיוחד.
התמקדתי בדף ההסבר על פרטיות כמובן, כי מבחינתי זה הגורם המרכזי שישפיע על היחס שלי לדפדפן.
התכונה ראשונה שמתוארת שם היא הגנה מפני פישינג, שגוגל כבר הכניסו לפיירפוקס.
המימוש המתואר הוא זה:
הדפדפן מוריד רשימה (דחוסה) של אתרים חשודים, והדפדפן בודק בעצמו, במיקרה והאתר נמצא ברשימה נשלח גיבוב (HASH) של הכתובת לגוגל לווידוא חד משמעי שהאתר עויין.
הטענה של גוגל היא שהמימוש הזה נועד להגן על פרטיות המשתמש מפני זליגה של מידע על האתרים אליהם הוא גולש לגוגל.
זה נכון, אבל לדעתי המימוש הזה נובע קודם משיקולי ביצועים ועומס על השרת. אם גוגל יצטרכו לאמת בשרתים שלהם כל כניסה שמישהו מבצע עם הדפדפן שלהם (או פיירפוקס) לאיזה שהוא אתר, האתרים שלהם לא יעמדו בעומס. בנוסף, מבחינת המשתמש עדיפה בדיקה מקומית מהירה.
לגבי הווידוא המקוון, לא ברור לי למה הוא שם, אבל ניחא.
אם הרשימה מתעדכנת באופן תדיר מספיק, ושמעתי שהיא מתעדכנת כל חצי שעה (שזה מטורף ויכול להוות בעיית פרטיות בפני עצמו) אז לא ברור איזה צורך הבדיקה המכוונת משרת.
מה כבר יכול להיות? אתר שהיה חשוד ישאר חשוד אצל משתמשים למשך חצי שעה נוספת?
בכל אופן, נראה שבדיקת הפישינג לא מהווה בעיית פרטיות.
תכונה נוספת בעל פוטנציאל בעייתי : suggest.
גוגל איחדו את שורת הכתובת עם שורת החיפוש ולמעשה אותה השורה משמשת גם להזנת כתובת וגם לחיפוש.
על הדרך הם גם הפעילו כברירת מחדל את פונקציית הSuggest שיצאה מבטא לאחרונה, מה שאומר שהדפדפן שלכם מספר לגוגל כל פעם שאתם מזינים אותיות בשורת הכתובת.
פה יש לגוגל שני פתרונות:
1. להשתמש במנוע חיפוש אחר (ניתן להגדיר איזה מנוע חיפוש שרוצים לשימוש פה)
2. לכבות את אפשרות הSuggest.
אפשר לטעון שזה שברירת המחדל היא הצעות מופעלות ומול גוגל היא בעייתית, אולי היא אכן בעייתית, אבל במאזן בין שימושיות לבין פרטיות אני חושב שפה ההחלטה לאפשר את זה כברירת מחדל היא החלטה סבירה.
שוב, לא נראה שיש פה בעיית פרטיות.
תכונה נוספת שמתוארת היא גלישה אנונימית שלא משאירה עקבות במחשב במקומי (אך כמובן משאירה עקבות בשרתים שאליהם אתם מתחברים!). זו אפשרות מעניינת וחשובה שהרבה משתמשים יעריכו (בעיקר משתמשים הגולשים לאתרים מפוקפקים באישון ליל).
מבחינת פרטיות מול גוגל, התכונה הזו פחות רלוונטית.
היסטורית חיפוש מורחבת:
כרום שומר את כל הטקסט של אתרים שבהם ביקרתם כדי לאפשר לכם לחפש בהם.
כדי למנוע מהחיפוש להעלות תוצאות מאתרים רגישים, כרום לא ישמור נתונים מאתרים שמוגנים בHTTPS (כמו אתרי בנקים) ולא כאשר אתם גולשים במצב אנונימי.
אני מעריך שהנתונים נשמרים מקומית, אז בכל מקרה זה לא חור פרטיות גדול, ובנוסף הקריטריונים למניעת שמירת הטקסט נראים טובים ומעשיים.
שוב, נראה שאין בעיית פרטיות.
אחרי כל הדברים האלו, כבר הייתי די משוכנע שגוגל באמת החליטו שעדיף להם לא לנסות למתוח את קו עם המשתמשים שלהם, ולא לאסוף מידע דרך הדפדפן.
ואז התחילו השמועות על תנאי השימוש המוזרים של כרום, שמאפשרים לגוגל לעשות במידע שאם מכניסים לכרום כרצונם.
תנאי שימוש מטורפים למדי, שמיד גרמו לחרושת שמועות שנוגדת את המסקנה הקודמת שלי, שכרום הוא לא דפדפן ריגול.
אבל אחרי כל המאמץ שגוגל השקיעו כדי לתת תחושת פרטיות למשתמשי הדפדפן, ככה לקלקל את הכל?
ובשביל מה? גם לא ברור.
כמו שמתחיל להסתמן, גוגל פישלו ופשוט ביצעו העתק-הדבק של רשיון סטנדרטי שהם משתמשים בו בלי לבדוק שהוא בכלל הגיוני.
נכון לכרגע תנאי השימוש עודכנו ופתאום נשמעים הרבה פחות עויינים.
משהו אומר לי שעורכי הדין של גוגל באמת קראו הפעם את תנאי הרשיון כדי למנוע עוד פיאסקו מחר.
כמה מילים על הצד הטכני של כרום:
החידוש הגדול בכרום הוא שהוא בנוי בארכיטרטורה של ריבוי תהליכים. פחות או יותר כל דף מקבל תהליך משלו.
בנוסף יש תהליכים משותפים שכמה טאבים חולקים כמו תהליך FLASH, תהליך Google gears, כנראה תהליף ג'אווה וכו'.
כל הכיוון מושך בחדות לכיוון של דפדפן מודולרי מאוד, ומזכיר נסיונות לפתח מערכת הפעלה בסגנון מיקרו-קרנל, שבה רכיבים קטנים ועצמאיים מתקשרים אחד עם השני בלי לחלוק זכרון משותף.
לא ידוע לי על מיקרו-קרנל שהפך להצלחה, בעיקר כי מבחינת ביצועים קשה מאוד להגיע לביצועים של קרנל מונוליתי כשמפתחים מיקרוקרנל.
לגוגל יהיו בעיות דומות בפיתוח של כרום.
יהיה מעניין לראות איך גוגל יתמודדו עם האתגרים, במיוחד שהקוד של גוגל בפרוייקט כרומיום (פרוייקט קוד פתוח שמהווה את הבסיס הטכנולוגי של כרום) משוחרר תחת רשיון BSD.
(שאר הקוד משוחרר תחת מגוון רשיונות, רובם מתירניים).
אני בטוח שנראה התעניינות מחודשת בגישת המיקרו קרנל אם כרום יהפוך לדפדפן פופולרי.
גרגרן 0.6.0
למרות שGragarius היה בתרדמת, ולא נראה שמשהו זז שם בפרוייקט, יצאה לפני כמה שבועות גרסא יציבה חדשה : 0.6.0.
התיקון העיקרי הוא סגירה של חור אבטחה (SQL injection), אבל בטח נפתרו שם עוד כמה באגים.
כדאי לשדרג.
שדרוג מזורז
פתע פתאום נעלם לי בסיס הנתונים של הבלוג.
לא צחוק, או שהיה פה גיהוק אטומי, או שמישהו הצליח לזמבר את הוורדפרס העתיק שהיה פה.
שחזרתי מגיבוי, וחיש מהר שידרגתי לגרסא האחרונה הרשמית מWordpress.org.
ספרו לי אם אתם נתקלים בתקלות מופלאות, או בתקלות.
חטאי אימפריה סולרית
אחד המשחקים עם השם הכי פיוטיים שנתקלתי בהם לאחרונה הוא Sins of a solar empire.
המשחק הוא משחק אסטרטגית חלל בזמן אמת, דו מימדי בפועל (כל העצמים נמצאים על אותו מישור) אבל תלת מימדי מבחינת תצוגה.
בדומה למשחקי אסטרטגיית חלל כמו Master of orion, בונים אימפרייה חללית, חוקרים טכנולוגיות, בונים חלליות וכו'.
המשחק הוא בזמן אמת והתצוגה דומה לתצוגה של Homeworld (למרות שHomeworld הוא יותר תלת מימדי).
ובכל זאת הוא שונה מHomeworld מאוד. בHomeworld מה שמניע את העסק הוא הקרב עם האוייב בשלב הנוכחי והשלב הוא ממוקד וקטן יחסית.
בחטאים השלבים יכולים להיות גדולים מאוד, ומה שמניע את המשחק הוא הרצון לכבוש כוכבי לכת ואסטרואידים כמה שיותר מהר.
עוד הבדל מהותי מאוד הוא שHomeworld המשחק הוא בעיקר מונחה קמפיין עלילתי, ובחטאים אין קמפיין. בהתחלה חשבתי שזה חיסרון עצום, אבל אחרי ששיחקתי במשחק ראיתי שהוא מספיק טוב וממכר גם ככה.
המפה מחולקת לשמשות, ולכל שמש כוכבי לכת.
ספינות חלל קופצות מכוכב לכת לכוכב לכת, במסלולים מוגדרים מראש (לכל פלנאטה יש 'שכנים').
לכל פלאנטה יש באר כבידה, כדי לקפוץ החוצה צריך לצאת ממנה (אפשר לראות בתמונה את באר הכבידה מסומנת במעגל בהיר)
המעבר בין בין רמות הפירוט מתבצע עם גלגלת העכבר. אפשר לעבור תוך שניה ממצב של זום על ספינה זעירה למצב של תצוגה של מערכת שמש שלמה (ואולי אפילו למצב של כמה מערכות שמש, עדיין לא יצא לי לשחק במפה כל כך גדולה).
במשחקים גדולים צי החלליות שלכם יהיה גדול מאוד, למשל:
החלליות במשחק מתחלקות לכמה מחלקות:
קפיטל:
ספינות ענק, רבות עוצמה. המשחק מאפשר מספק קטן של חלליות כאלו. את הראשונה מקבלים בחינם. כל אחת נוספת עולה המון ודורשת מחקר מיוחד.
יש כמה סוגים, החל מקפיטל בתפקיד תמיכה וכלה במשמיד עולמות. כיף :).
קרוייזר:
ספינות גדולות, די חזקות, אבל לא מתקרבות לעוצמה של קפיטל. אפשר להגיע אליהם אחרי די הרבה מחקר.
פריגטה:
ספינות קטנות, רוב הצי שלכם יהיה פריגטות, לפחות בהתחלה.
קרב/מפציץ:
חלליות זעירות שלא ממש מתקיימות בזכות עצמם, אלא נוחתות על נושאת חלליות (כמו גלקטיקה), או בהאנגר שמגן על כוכב לכת.
הגרפיקה של המשחק טובה, ומה שמרשים זה הקלות של מעבר בין המצבים.
ברגע שיוצאים לרמת זום גדולה מספיק, חלליות מתחילות להעלם ובמקומם מופיע סמל בגודל קבוע, ברגע שיוצאים עוד יותר גם הפרטים של הפלאנטות נעלמות.
כדי לחסוך מעבר מתמיד בין רמות הזום, יש בצד שמאל עץ של כל האימפריה, שמאפשר ביצוע המון פעולות מכל מקום בלי לעשות זום לפלנטה או החללית הספציפית.
סך הכל, חטאי אימפריה סולרית הוא אחלה משחק.
קניתי אותו כדי לתמוך בסטארדוק (שפיתחו בעבר את Galactic civilization הזכור לטובה).
כדי לחסוך לי איתחולים לחלונות משחקים שלי, קניתי מנוי שנתי לCedega ב45$ – מחיר של משחק בודד.
Cedega מאפשר לי להריץ את Sins, ועוד הרבה משחקים ישירות על הלינוקס.
התמיכה לא מושלמת, אבל טובה מספיק כדי שהמשחק יהיה מהנה מאוד.
רוב התצלומי מסך פה נלקחו מSins שרץ על לינוקס :).
אגב,
בראד וורדל, המנכל של Stardock, כתב פוסט נחמד על זכויות הגיימר.
עוד מאמר מעניין שלו הוא על פירטיות במשחקי מחשב.
בגדול, הוא טוען שפיראטים לא יוצרים הכנסות אבודות כי מראש הם לא קונים משחקים, ושהגנה מפני העתקה אף פעם לא עוצרת את הפיראטים ורק מעצבנת את המשתמשים החוקיים.
אני חייב לציין שאת חטאים הורדתי קודם, וכשראיתי שאני אוהב אותו שילמתי לחברה על עותק דיגיטלי (שנתן לי גם סאונד טראק של המשחק – אחלה מוסיקה).
הסיבה שעשיתי את זה היא כי אני רוצה לתמוך בחברה הזו על המשחקים הטובים שהיא משחררת, ובעיקר על זה שהיא לא נלחמת בגיימרים כמו רוב החברות.
IP2C 2.0.0
שחררתי גרסא חדשה של IP2C, מהירה מתמיד וגם תומכת בבסיס הנתונים של Software77.
[code]
All tests done on an Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GH
PHP:
* No cache: 5000 searches/sec (Fast startup, slow query)
* Memory cache: : 5700 searches/sec (Slow startup, fastest query)
Java:
* No cache: 13900 searches/second. (Fast startup, slow query)
* Memory mapped file: 265k searches/second. (Fast startup, fast query)
* Memory cache: 281k searches/second. (Slow startup, fastest query)
[/code]
זבלן הלוגים
לתשומת לב הנוסעים צפונה:
שלשום השרת שלי בסלון נתקע, רסטרטי אותו, וקיבלתי הודעות שגיאה על חוסר מקום.
מחיצת השורש שלו בגודל של 30 ג'יגה בלבד, אבל זה אמור להספיק כי אין לא כותב לשם שום דבר מיוחד.
מחקתי איזה 2 ג'יגה של קוד מספריית הsrc, (שזה קוד של כל מני דברים שהורדתי וקימפלתי בעבר) בתקווה לקנות כמה חודשים של שקט.
היום בבוקר, פוף, עוד פעם אין מקום.
הפעם החלטתי לרדת לעומק העניין..
הניחוש הראשון היה כמובן ספריית הלוגים של המערכת /var/log..
syslog תפס 2.6 ג'יגה, וdaemon.log תפס 6.4 ג'יגה.
נפח עצום, במיוחד למחיצה של 30GB, ובמיוחד לאור זה שהכל מהשבוע האחרון (logrotate כיון את daemon לפני שבוע, והוא היה קטן ונחמד).
בתוך daemon.log ראיתי ערמת הודעות כאלו:
[code]
Aug 29 10:36:46 home famd[3423]: fd 4 message length 1347375956 bytes exceeds max of 4136.
[/code]
נראה שfamd התחרפן קשות..
famd הוא File Alteration Monitor Daemon, פתרון וותיק למעקב אחרי שינויים בקבצים, ולא ממש נדרש בימינו כי inotify החליף אותו.
בכל אופן, אני בטוח לא צריך אותו, אז העפתי את הנבלה ואיפסתי את הלוגים.
ובא שלום וגואל, ומשיח על חמור שחור.
מיקרוסופט מפתחת את גוגל אנטיליטיקס
לפני כמה חודשים העלתי את הרעיון של גוגל אנטיליטיקס, תוסף פיירפוקס שימנע מהדפדפן שלכם לספר לגוגל לאן אתם גולשים.
לא יצא לי לפתח את זה, אבל חשבתי לעצמי שזה יכול לחסום גם אתרי ריגול אחרים.
מסתבר שמייקרוסופט ישלבו משהו דומה, באקספלורר 8:
תכונה שתמנע גישה לאתרי גוף שלישי כאשר אתם גולשים כדי למנוע זליגת מידע לאותם אתרים.
השאלה הגדולה היא אם מייקרוסופט תפעיל את כברירת מחדל, ואם כן – איך גוגל יגיבו.
זה לא שאין פתרונות טכניים שיאפשרו לגוגל לאסוף את המידע בכל זאת, אבל לכו תשכנעו מליוני בעלי אתרים להזיז את הישבן ולממש אותם.
נכון לכרגע, פיירסטטס לא מושפע מהחסימה הזו כי הוא לא עובד בצורה שרגישה לה.
מצד שני, הגרסא הבאה של פיירסטטס תתמוך בהקלטת כניסות על ידי ג'אווה סקריפט, ומי שינסה להשתמש בתכונה הזו כדי להקליט כניסות מכמה דומיינים שברשותו עלול לגלות שגוגל אנטיליטיקס של מייקרוסופט גורם לו לבעיות.
אגב:
סביר מאוד שהתכונה הזו תחסום גם את הפרסומות של גוגל (ושל עוד כמה מפרסמים שעובדים בצורה דומה). הולך להיות חם.
Antenna processor -> MTJ
הPreprocessror שפיתחתי במסגרת העבודה של בVollee, שנכלל בפרוייקט הקוד הפתוח אנטנה (פרוייקט שעוזר בפיתוח ובבניה של ישומי ג'אווה למכשירים סלולריים), אושר על ידי Eclipse Legal, ויכלל בMTJ.
MTJ הוא פרוייקט Eclipse רשמי שמטרתו להוסיף לEclipse תמיכה בפיתוח ישומי ג'אווה למכשירים סלולריים. כבר היום יש את EclipseME, פלאגין שפותח במשך שנים על ידי קרייג סטרה, שעושה את אותה עבודה – למעשה וקרייג עובד עם צוות MTJ, וMTJ מיועד להיות תחליף רשמי של EclipseME.
תהליך הקליטה של הPreprocessor לא היה קל:
הקוד המקורי הסתמך על ANTLR 2.7 (שמייצר אוטומטית קוד לפענוח קוד לפי הגדרה פורמלית – Parser generator) – הבעיה עם ANTLR 2.7 היתה שהרשיון שלו לא תאם את הרשיון של Eclipse (מסתבר שPublic domain זה לא תמיד טוב מספיק). למרבה המזל, ANTLR 3.0 כבר שוחרר ברשיון BSD שתאם את הרשיון של Eclipse, אבל הוא לא תאם את הקוד של הPreprocessor.
החב'רה בMTJ שאלו אם אני מוכן להמיר את הקוד כך שישתמש בANTLR 3.0: בינתיים עזבתי את Vollee ואת כל העולם של הפיתוח לסלולריים (בשעה טובה ומוצלחת) אז סירבתי, אבל אמרתי שאשמח לייעץ להם ולעזור מרחוק.
הם הרימו את הכפפה, וכמעט בלי עזרה מפתח אחד – דייגו סנדין – המיר את העסק לANTLR 3.0 תוך כשבועיים.
הזמן עבר, ולפני חודשיים צוות MTJ קיבל אישור למסור לי את הקוד, כדי שאקלוט אותו לתוך Antenna.
מכיוון שהקוד כלל בדיקות יחידה מקיפות, שדייגו הקפיד להשתמש בהן כדי לבדוק את ההמרה – התוצאה היתה טובה מאוד.
עוז זמן עבר, והיום הקוד קיבל אישור מEclipse Legal ויכנס לענף הראשי של MTJ.
יבוא SQL ישירות מתוך קוד ג'אווה
כשכותבים בדיקת יחידה (Unit test) לקוד שקשור לבסיס נתונים, צריך לאתחל את בסיס הנתונים לאיזה שהוא מצב ידוע ויציב לפני כל בדיקה.
מול MySQL, אפשר להשתמש בmysql עצמו כדי ליבא סקריפט SQL מוכן, אבל זה לא נחמד במיוחד:
צריך לפתוח תהליך חדש, ויש כל מני בעיות מעצבנות עם זה (בג'אווה למשל, חובה לקרוא את הפלט של התהליך, אחרת הוא יתקע בכתיבה לפלט הסטנדרטי כשיתמלא הבאפר).
הרבה יותר נחמד יהיה ליבא את הקובץ ישירות מתוך ג'אווה, בשימוש בJDBC, לא?
הנה קוד שעושה בדיוק את זה, הוא מקבל זרם קלט (InputStream) שיכול להיות כל דבר, וגם Connection JDBC שחיברתם מבעוד מועד, וקולט את הSQL לתוך בסיס הנתונים.
הקוד מתמודד עם הפלט הסטנדרטי של mysqldump.
[code lang="java"]
public static void importSQL(Connection conn, InputStream in) throws SQLException
{
Scanner s = new Scanner(in);
s.useDelimiter("(;(\r)?\n)|(–\n)");
Statement st = null;
try
{
st = conn.createStatement();
while (s.hasNext())
{
String line = s.next();
if (line.startsWith("/*!") && line.endsWith("*/"))
{
int i = line.indexOf(' ');
line = line.substring(i + 1, line.length() – " */".length());
}
if (line.trim().length() > 0)
{
st.execute(line);
}
}
}
finally
{
if (st != null) st.close();
}
}
[/code]