חזרתי מ־FOSDEM‏ (3)

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

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

  • Thread safety – כאשר עובדים בנימים שונים של התוכנה, בדרך כלל לא מובטחת בטיחות של הנים (אם אני מבין נכון, יש סכנה של כתיבה לאותם משתנים על ידי נימים שונים, למשל).
  • נראה שמישהו השתולל קצת עם שימוש בקבצי RDF בכל מני מקומות. יש מקומות שזה בסדר, אבל יש מקומות שזה מיותר, ומסבך את העבודה.
  • בעבר היתה בעיה רצינית של תיעוד, והדרך היחידה למצוא מידע היתה בערוץ המפתחים ב-IRC. עם פתיחת מרכז המפתחים של מוזילה, המצב השתפר בהרבה.

אחריו דיבר דייויד בארון על העבודה שהוא עושה באירגון מחדש (refactoring בלע״ז) של מנגנון ה-reflow. כאשר מנוע התצוגה מפענח את ה-html, הוא יוצר עץ של מחלקות frame התואמות את עץ התגיות של הקובץ. כמעט לכל אלמנט יש מחלקת frame תואמת – טקסט, תמונה, וכו׳. זה תהליך די מורכב, שליבו נמצא בקובץ frameConsturctor.cpp (אם לא החמצתי את תחילת השם) המכיל 14,000 שורות קוד בקירוב. אלגוריתם ה-reflow אחראי על מיקום כל ה-frame-ים האלו על המסך. האלגוריתם מופעל בשלושה מקרים עיקריים: כאשר מגיע עוד חלק של הדף, כאשר תחילתו כבר מוצגת על המסך; כאשר עורכים טקסט בטפסים – אנחנו לא רוצים להרים את כל המנגנון הזה עם כל הקשת מקלדת, למרות שכבר היו באגים שגרמו לכך; ובעת שינוי גודל החלון. לא תמיד אנחנו רוצים לעשות reflow. לפעמים מספיק לבצע שינוי מקומי במיקום המסגרות. כרגע הוא מבצע אופטימיזציות שונות, שיסתיימו בעוד כחודש להערכתו, שישפרו את היעילות של המנגנון הזה.

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

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

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

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

נדונו דרכים למצוא כמה משתמשים יש לנו בכלל. הוצע להשתמש ביומן של ה-bouncer, המאזן ומפזר את ההורדות בין אתרי המראה השונים, או לנהל יומן של גישות למנגנון העדכונים שהוסף בגרסה 1.5.

בנושא איכסון אתרי הקהילה, גם כן הועלו הצעות, כמו לאכסנם על שרתי mozilla.org (למתרגמים האירופים כבר יש דפים על אתר mozilla-europe.org), ב-SourceForge.net (כמונו – אני הצעתי) – היו שטענו שהאתר איטי מדי ולא מתאים לקהילה גדולה. יש מתרגמים שמאוכסנים על mozdev.org. נשאלה גם השאלה מי יחזיק את שמות המתחם של האתרים? האם על המתרגמים לקנות אותם מכספם, או שהקרן תקנה אותם? כאן עולה הבעיה, שבמדינות מסויימות רק אזרחי המדינה יכולים להחזיק בשמות מתחם של אותה מדינה.

הנושא הבא היה כלי התרגום. באופן מפתיע, 4 מתרגמים משתמשים ב-MozillaTranslator, עוד 4 משתמשים בממירים לקבצי po ומשתמשים בכלי תרגום היודעים לעבוד איתם, וכל השאר, הרוב הגדול, עובד עם עורכי טקסט. נראה שיש לנו בעיה רצינית של כלי תרגום טובים. בנקודה זו הציג דְוויין מדרום אפריקה את הכלי בו הם משתמשים. בדרום אפריקה פועלת קרן ללא מטרות רווח הפועלת מתרומות, המתרגמת תוכנה חופשית לשפות האפריקניות והשפות שיובאו על ידי המתיישבים האירופים, כמו אפריקאנס (ניב מקומי של הולנדית), כדי להגדיל את הגישה של האוכלוסיה המקומית למחשבים. הם פיתחו כלי מבוסס web, המאפשר לקבל מספר הצעות תרגום לכל מחרוזת, ומתרגם מורשה בוחר את התרגום הטוב ביותר ומאשר אותו. המערכת, הכתובה בפייתון, יודעת לעבוד עם קבצי po, ולכן יש להמיר את קבצי ה-DTD וה-properties של מוזילה לפורמט זה, ואחר כך להמירם חזרה. בארוחת הערב שאורגנה למתרגמים במסעדה מקומית, דיברנו קצת על בעיות התרגום השונות. מסתבר שרוב שפות אפריקה שמתחת לסהרה, המכונות "שפות בנטו" (ואם למישהו זה מזכיר את אובונטו לינוקס, זה לא במקרה. הן נקראות כך משום בכולן מופיעה המילה אבנטו, בדרך זו או אחרת, במשמעות "אנשים") בנויות קצת כמו עברית: ביטוי כמו I will talk מתורגם כמילה אחת, וזה מקשה על בדיקת האיות באופן אופיס, למשל. הצעתי לו להשתמש ב-Hspell, שתוכנן במיוחד עבור הבעיות האלה.

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

יצא קצת ארוך.

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

עדכון 2: הסורק שלי קצת פקקט, אז התמונות יתעכבו. אולי בסוף השבוע (25/3).

4 תגובות על הפוסט “חזרתי מ־FOSDEM‏ (3)

  1. חבל שלא כתבת יותר על XUL Runner, לדעתי אחד הדברים הכי מסקרנים למי שרוצים להבין מאיפה ולמה צצים כל מיני מימושים מרשימים כמו Songbird ודומיהם.

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

    לגבי AllPeers, הייתה חשיפה נוספת עם קצת יותר תמונות וראיונות עם המפתחים הצ'כ'ים, אגב, ב-TechCrunch לפני מספר שבועות.

    אורי

  2. למרות שאיחרתי ב-20 דקות, עיקר ההרצאה לא נגע ב-XulRunner. גם אני התאכזבתי, כי ציפיתי לראות איך משתמשים בזה. בכל אופן, התכנון הוא שגרסה 2 או 3 של פיירפוקס/ת'אנדרבירד יפעלו עליו.

  3. איך XULRunner אמור לעבוד בגרסאות הבאות של Fx/Tb? המשתמש יצטרך להתקין בנפרד xulrunner ואז את המוצר\ים שהוא רוצה?

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

    צחי

כתיבת תגובה

האימייל לא יוצג באתר. (*) שדות חובה מסומנים

תגי HTML מותרים: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>