Chrome – עוד כמה מילים

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

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

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

דבר מצער אחד שראיתי, היה גוגל גירס. מרגע שגולשים לעמוד כמו רידר קופץ מיד גם פרוסס של 8-8.5 מגה של גוגל גירס, לפני שבכלל ביקשתי שהרידר ישתמש בגירס. גם הבלוג שלי (WP2.61) מקפיץ פרוסס של גירס לפני שאישרתי שאני משתמש בו אפילו מרגע שנכנסתי למסכי הניהול (לא בבלוג עצמו, לא לידוג). לפחות עולה רק גירס אחד לכל הטאבים שתומכים בו (אפילו אם הם לא אושרו עדיין להשתמש בו), וגם הוא יוצא אוטומטית מרגע שכל הטאבים הנ"ל נסגרים. בקיצור יש טוב ויש רע ויש לא נורא, מה שהכריע בינתיים היה לא הטוב אלא ה"מה שאין", שזה גריזמונקי וחברים, אבל אז נתקלתי ב"רע"…

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

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

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

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

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

Chrome

טוב, הארץ גועשת, רגשות חצוים ברשת והקשקשת גולשת.

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

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

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

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

…אבל בשואש.

הזהרה קטנה לגבי Ubiquity

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

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


Ubiquity for Firefox from Aza Raskin on Vimeo.

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

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

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

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

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

עוד על גיבויים

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

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

1. צרו סקריפט שיגבה את כל ספרית הבית שלכם, וכל טבלה דרושה ממסד הנתונים:

#!/bin/bash

# a generic hack to make a backup tarball of a homedir on a server
# and back it up to a home machine.
# This hack is public domain, and may not be useful to YOU if you don't
# customize it to the bone.

# The design is simple - stick everything in a single directory and rsync it out.
# We keep three days of material back, you still need to
# use rsync to take it home.

mkdir -p ~/backup ; cd ~/backup

mkdir -p current back.1 back.2 # add as necessary!

## first, rotate the directories

mv back.1/* back.2
mv current/* back.1

## set up dates for the backup filenames

TODAY=$(date +%Y-%m-%d)
THISMONTH=$(date --date="$TODAY -1 days" +%Y-%m)
ARCHSINCE=$(date --date="$TODAY -1 days" +%Y-%m-1)

## now dump MySQL, you must edit this to reflect YOUR db names!

for db in db1 db2 ${USER}_db ; do
nice mysqldump -e --add-drop-table --add-locks \
--user=USERNAME --password=PASS --single-transaction -q $db | \
nice gzip -c --rsyncable > current/$(hostname)_sql_$db.gz
done

## Did you notice? I always use gzip --rsyncable so the tarballs are, well, rsync-able!

## Latest web logs - only incremental of this month
( tar --newer-mtime ${ARCHSINCE} -cf - ~/weblogs | nice gzip -c --rsyncable \
> current/$(hostname)-weblogs-${THISMONTH}.tgz ) 2> /dev/null

## I run several sites
for site in ~/sites/* ; do
sitename=$(basename ${site})
( tar -C ~/sites/ -cf - ${sitename} | nice gzip -c --rsyncable \
> current/${USER}-${sitename}.tgz ) 2> /dev/null
done

## Backup all the rest of the homedir:
( tar --exclude=weblogs --exclude=sites --exclude=backup -cf - ~/. | nice gzip -c --rsyncable \
> current/$(hostname)-${USER}home.tgz ) 2> /dev/null

## AGAIN: this script makes a lot of assumptions, many not right for your setup.
## go over it, understand what it does and edit it to YOUR needs with
## YOUR directory names.

2. הריצו אותו כל לילה בשעות הכי פנויות בcron

crontab -e
(this opens an editor and you add in a line to run your script)
MAILTO=yourmail@yourdomain.com
30 3 * * * ~/bin/nightly-backup

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

while ! nice rsync -av SERVER:backup/current/ ~/backups/SERVER/ ; do sleep 1 ; done

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

crontab -e
(this opens an editor and you add in a line to run your script)
MAILTO=yourmail@yourdomain.com
30 4 * * * ~/bin/rsync-nightly-backup | tail -2

אני לא דואג לפרט כאן איך למשוך RSYNC משרת רחוק בלי לשבת ליד המקלדת ולהכניס סיסמא כל פעם, אבל אם תהיה מספיק דרישה אני אוסיף עוד howto קטן בנושא. בינתיים רמז: SSH עם מפתח פרטי וציבורי, כאשר אין passphrase או שאתם דואגים לssh-agent רץ וזמין לפעולת הcron.

ושוב כאמור, כתבתי את כל הנ"ל חפיף, נא לתקן אותי אם שכחתי או פישלתי במשהו.