ארכיון חודשי: פברואר 2009

Arora – דפדפן מאיר פנים

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

במקרה הזה, Arora הוא דפדפן מבוסס webkit וQT הבנוי לרוץ במגוון פלטפורמות כדוגמת לינוקס, Windows ו Mac OS X (אבל לא רק). אם השם הזה נשמע לכם מוכר בהקשר של דפדפן, אז לא, אין לו שום קשר לדפדפן התדמית של מוזילה. אולי מוזילה שוב יהיו צריכים לשנות את שם הדפדפן שלהם למשהו שהוא לא תפוס (עוד באותו הקשר הפעם).

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

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

ה User Agent של הדפדפן אצלי הוא: Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.4

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

אתם מוזמנים להתקין ולקחת לסיבוב, אולי זה יהיה הדפדפן הבא שלכם 🙂

תמונות מסך ניתן למצוא כאן.

gmail נפל, אז מה ?

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

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

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

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

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

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

25 תמונות לשולחן העבודה

הבלוג TECH SOURCE FROM BOHOL מפרסם אוסף של 25 תמונות אשר לדעת יוצר הפוסט מדהימות. השימוש בתמונות הוא לשולחן העבודה והמוטיב שלהן הוא firefox.

חותמת "פג תוקף" לדפדפנים

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

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

הכוח של שורת פקודה

החל מגרסאות חדשות של GTK 2, הוסרו כמה פונקציות שהיו בשימוש עד אז. העניין הוא ש FPC 2.2.2 ומטה מגיע עם הסמלים האלו ביחידות שמהודרות מראש, ובשביל לתקן את זה צריך לבנות חבילה חדשה של FPC עם תיקון ידני של 2 שורות קוד או פשוט לעבוד עם RC1 של 2.2.4. אז החלטתי שהגיע הזמן להוריד את 2.2.4RC1. הבעיה היא שאני לא רוצה להשקיע אנרגיה וליצור חבילה מזה היות ועוד יהיו שינויים ותוספות עם RC2 וכו' ואני גם לא רוצה לדרוס את הגרסה היציבה הנוכחית אצלי במערכת, כך שחבל על האנרגיה. אז פשוט אני משתמש בה במקום שעשיתי svn co.

עכשיו צריך להגיד בקובץ הגדרות של FPC איפה הוא צריך לחפש את היחידות השונות. הבעיה היא שפרט ל

rtl/units/<arch-os>/

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

units/<arch-os>

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

יצרתי את הפקודה הבאה בשביל שתעשה עבורי את העבודה (את רובה לפחות):

find /full/path/to/fpc/fpc.2.2.4/packages/ -type d -maxdepth 1 -exec echo "-Fu{}/units/x86_64-linux/" \; > /tmp/dirs

למי שאין כוח לקרוא את התיעוד של find ולא יודע מה עשיתי כאן, הנה הסבר קצר:

אמרתי ל find לחפש בנתיב מלא קבצים שהם בעצם ספרייה (type d-) ואמרתי לו לא לגשת לתתי הספריות, אלא להישאר ברמה הראשונה (maxdepth 1-). אחר כך אמרתי לו שכל פעם שהוא מוצא משהו להפעיל פקודה שאני ביקשתי. הסימנים של הסוגריים המסולסלים מוחלפים במה שנמצא, הנקודה פסיק אומרת ל find שזה כל מה שהוא צריך להריץ ואז כל מה שהודפס על המסך תפסתי לקובץ ששמתי בספריית /tmp/ וזהו.

התוצאה היא שקיבלתי רשימה של קרוב ל100 ספריות. העפתי כמובן את הספרייה הנוכחית ואת הספרייה של svn מהרשימה, וזהו הוספתי את הרשימה תחת ifdef על הגרסה הנוכחית (אני לא רוצה לדרוס את הגרסה היציבה הנוכחית) בקובץ הגדרות של fpc. כל זה לקח לי קרוב ל10 דקות (לקח לי קצת זמן להיזכר איך עובדים עם exec נכון, ולמצוא בדיוק את הפרמטרים שאני צריך עבור find וגם לעשות קצת ניסויים).

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

10 חוקי iptables שיעזרו לכם לאבטח טוב יותר את לינוקס

ג'ק וולן מהאתר Tech Public מפרסם 10 חוקים עבור iptables אשר יסיעו לאבטח טוב יותר לדעתו מכונת לינוקס.

אתם מוזמנים לקרוא עוד מידע בכתובת הזו.

השפה האהובה עלי

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

ובכן, יש לי כמה שפות שאני מאוד נהנה לתכנת בהם, והנה הרשימה:

  1. פסקל מונחת עצמים – שפה מאוד קריאה ונוחה לתחזוקה אם מתרגלים לחשוב בגישה של השפה, אבל עם כל ה"נוקשות" (בניגוד לעודף נכונות ב C) שלה, עדיין אנחנו לא מאבדים את הכוח וניתן לעשות עם השפה כל מה שרוצים. כלומר מלכתוב מערכת הפעלה, מוצרי embedded וכו', ועד PasCPP (אנטי טזה ל CPPCMS של ארתיום). בעוד שב C ושפות כאלו, צריך לנהל כל נקודה פסיק לבד, בפסקל אני יכול, אבל כל עוד אני לא צריך, אתם לא תמצאו אותי עושה את זה, כי השאלה היא למה זה טוב ?!
    כמו כן, הרבה מהגישות ששורפות לנו את הזמן בגלל באגים, לא מגיעות בכלל עם השפה. מה הכוונה ? כמה פעמים כתבתם = אחד במקום == ? כמה פעמים שחכתם לשים * לפני מחלקה ב ++C ופתאום התוכנית שלכם לא מתפקדת כמו שצריך במקרה הרע, או במקרה הטוב מקבלת segmentation fault נחמד במקום המתאים וכך אפשר לזהות את הבעיה ? ובכן בפסקל אלא אם אני חייב לעבוד עם מצביעים (וגם אז יש דרכים להימנע מבעיות כאלו), אתם לא תמצאו אותי מתעסק עם השיכחה הזו. ובגלל שהיא חוסכת לי את הזמן על בעיות "מטופשות" של חוסר תשומת לב כזו (ואחרות, אם כי גם אצלה יש בעיות שיכחה לפעמים), אני יכול להקדיש זמן טוב יותר לפיתוח ודיבוג מה שאני באמת עשיתי.
  2. פרל – שפה מטורפת לגמרי, בה אין אחידות, יש לך משתנים עם סימנים, יש לך regular expression מובנה תחביר ועוד הרבה דברים מוזרים. העניין הוא שאני פשוט נהנה מזה. זה בערך הצורה ההפוכה לפסקל, אני נהנה מהחוסר סדר והטרוף, אבל בשביל להתמודד איתו חייבים לחשוב ולתכנן את הקוד שלך יותר נכון, אחרת במקום לירות לך ברגל, אתה יורה לך בכל הגוף, ואולי שאריות מהרגל זה כל מה שנשאר, ולכן אני מאוד נהנה לתכנת בשפה. כמו כן, בשביל לתחזק אותה, אנחנו לומדים שקריאות זה הדבר הכי חשוב, ולכן מתכנתי פרל מנוסים יכתבו קוד קריא יותר מאשר מתכנתי C מנוסים, ואז פתאום מגלים סדר בבלאגן.
  3. רובי – זו שפה מדהימה לדעתי. היא מאוד גמישה ומאוד נוקשה. היא מספקת תחושה של פרל (בגלל שהיא מבוססת עליו), והיא מספקת תחושה של פסקל. היא מספקת גישה שאני מאוד אוהב, והיא בדיוק הגישה שלא קיימת ובגלל זה כנראה (אני עדיין לא סגור על זה) גורמת לי לא להבין ולהתחבר לפיתון. אני חושב שבניגוד לכל השפות האחרות שאי פעם תכנתתי בה (כולל פסקל), זו השפה היחידה שיש לי איתה אהבה ממבט ראשון. כלומר בפעם הראשונה שראיתי קוד רובי, היה איזה קליק שסיכרן אותי, ומאז הוא לא עזב אותי (בערך מה שמאיר יגיד על פיתון ? :)).
  4. Javascript – זו אולי השפה הכי ברוטלית שאני מכיר. השפה מאפשרת לי לעשות כל מה שאני רוצה ממש כמו שפה דינמית, אבל מאוד פשוט לעשות איתה דברים כאשר מבינים אותה. היא גנבה כמה פיטצ'רים מפרל (כדוגמת תחביר regex מובנה ועוד כמה פיטצ'רים נחמדים), האפשרות לשכתב לגמרי את החוקים של השפה, אבל עדיין לשמור על הציבון שלה, כאשר הבסיס זהה, והרבה קיצורי דרך מופרעים שכל פעם מתגלים מחדש ואי אפשר להבין איך הגענו אליהם, אבל זה מאוד נחמד במבחן התוצאה, היות וזה מספק פתרון לבעיה בד"כ שגישה אחרת היתה דורשת מאיתנו הרבה יותר עבודה.
  5. Bash. אין לי מושג למה, אני תמיד עם נטייה לא לכתוב shell script איתה, ומנסה כל הזמן להימנע מזה, אבל כל פעם שאין לי ברירה, ואני נכנס חזרה לשפה, אני מאוד נהנה מזה. אני לא מסוגל להסביר למה, זה פשוט הרגשה טובה בצורה הכי מוזרה שיש, בה אני תמיד שובר את הראש ל"למה זה לא עובד" ומסוגל להמשיך עם זה יום שלם, עד שאני מגלה שתו טיפשי הרס את הכל, אבל בכל זאת אני נהנה ממנה (בניגוד לשפות האחרות שאיתן אני לא נהנה להגיע למצבים כאלו).

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

אני מעביר את השרביט לכל מי שרוצה גם הוא/היא לכתוב על השפה/שפות התכנות האהובים עליו/ה (בלי להפלות).

מדוע אתה מפתח את זה בחינם?

החלטתי להמשיך להיגרר אחרי כולם, ולענות לפוסט של ארתיום. 😛

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

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

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

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

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

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

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

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

קח סיגר

Pink Floyd יצרו אלבום שלם (Wish you where here) של שירי מחאה נגד חברות התקליטים. "קח סיגר" הוא המקדים של "ברוך הבא למכונה", כלומר ב"קח סיגר" מגייסים אותך, ב"ברוך הבא למכונה" אתה כבר שבוי.

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

אז על מה הניתוח הספרותי הזה ?

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

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

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

אז בפעם הבאה שאתם שומעים את המשפטים של "שפה מתה", תקשיבו ל Have a Cigar.

הומור בחירות לאנשי קוד פתוח

בעקבות דיון משעשע עם מאיר, יצרנו תסריט automake מעניין שמתאר את מצב הנוכחי:

make uninstall
./configure --prefix =/countries/Israel/Jerusalem/Knesset period="2.5y"
make clean_members
make ban_members members="..."
make jail
make election
make primeminister
make goverment
make parlament
make check
make install