ג'פטו והלוויתן הלבן

אחד הדברים הנחמדים בלהריץ את האתר של FireStats הוא שאני מקבל לשם כניסות מהרבה בלוגים – לפעמים ממש נחמדים.
הנה בלוג קומיקס חמוד שנתקלתי בו ככה.
whale

הגשת פרוייקט על דיסק Knoppix

במסגרת קורס הפרולוג, נתבקשתי לכתוב פרוייקט.
בחרתי במנוע שחמט, וחיברתי לו ממשק משתמש שכתוב בג'אווה (Jin).
החיבור בין פרולוג לג'אווה מתבצע באמצעות API בשם JPL.
אחרי שסיימתי לפתח, גיליתי שלמרות שכל הרכיבים של הפרוייקט (SWI-Prolog, Java) כוללים גרסאת חלונות – העסק לא עובד בחלונות, עקב בעיה בJPL שגורמת למערכת להתקע בחלונות.
במקום לנסות לפתור את הבעיה החלטתי לעקוף אותה בכך שאני אגיש את הפרוייקט על לינוקס.
מכיוון שההתקנה של הפרוייקט לא טריויאלית – צריך להתקין ג'אווה, את הגרסא המתאימה של SWI-Prolog, ואולי גם לשנות מסלולי קבצים בקובץ ההרצה בהתאם, החלטתי להשתמש בגרסא מותאמת של Live CD, שמכילה התקנה מוכנה של כל העסק.
בדקתי את DSL, אבל הוא היה בסיסי מדי ולא היו בו מספיק כלים כדי שאני ארגיש איתו בנוח.
ניסתי את KNOPPIX, שבהחלט היה עשיר מספיק, ונראה מתאים מאוד.
לKNOPPIX יש הוראות מפורטות להכנה של דיסק מותאם על בסיס הקיים (Remastering).
בגדול, התהליך הוא כזה:
מתאחלים את הCD, מעתיקים את התוכן שלו לכונן הקשיח, עושים את השינויים הדרושים, יוצרים ISO חדש, וצורבים אותו.
כמובן שזה יותר מורכב מזה, אבל ההוראות די טובות.
אפשר לקצר תהליכים על ידי שימוש במכונה וירטואלית (VMware, QEmu, Xen) שחוסכת איתחולים.
נתקלתי בבעיות מוזרות בבמהלך איתחול מהISO בהתחלה, לא ברור לי מה פתר אותן, אבל אלו השינויים שעשיתי:
1. התחלתי את התהליך כולו מחדש, הפעם על מערכת קבצים מסוג EXT3 (בהתחלה השתמשתי בReiserFS).
2. נתתי למכונה הווירטואלית ששימשה ליצירת הISO יותר זכרון.

לא ברור לי למה השינויים האלו פתרו את הבעיה, אבל עם מה שעובד לא מתווכחים.

כשדברים מתחברים

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

now+n, now-n

על Escape pod כתבתי כבר כמה פעמים.
היום שמעתי את אחד הסיפורים הטובים ביותר שם, Now+n,Now-n, של לא אחר מאשר רוברט סילברברג.
מומלץ, מאוד.

תכנות ממוקד משימות – Mylar

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

כששוטטתי בבאגים של Eclipse בזמן שחיפשתי מידע על משהו, נתקלתי בAttachment של קובץ מוזר שסיקרן אותי:
mylar/context/zip.
לא נתקלתי בזה בעבר, ולא ראיתי שום קשר בינו לבין הבאג.
חיפוש קצר בגוגל הביא אותי לדף הזה, שמכיל מאמר על "תכנות מונחה משימות עם מיילר".
חפרתי עוד קצת, ומצאתי גם את המצגת ווידאו הזו, שמתארת איך משתמשים במיילר ומה הוא עושה (40 דקות).
מסתבר שמיילר הוא פרוייקט Eclipse חדש, אחד מני רבים (Eclipse הפכה לחממה של עשרות טכנולוגיות חדשניות), שמתיימר לפתור את הבעיה של עומס מידע בזמן שעובדים עם Eclipse.
mylar screenshot
באופן הבסיסי ביותר, Mylar הוא רשימת משימות, למשימות מקומיות וכן למשימות/באגים ממערכות באגים כמו bugzilla, trac וJira
מה שיפה זה שמיילר מנהל הקשר (Context) לכל משימה בצורה אוטומטית, שמכיל את כל מה שקשור אל המשימה – איזה קבצים פתחת, איזה אלמנטים בתוך הקבצים מעניינים (במקרה של קוד ג'אווה – איזה פונקציות למשל) וכו'.
ברגע שעוברים לעבוד על משימה, מתחילים מיד מההקשר הקודם של המשימה (ריק בהתחלה), ואחרי שעוברים למשימה אחרת, ההקשר נשמר – מוכן להשלף אוטומטית ברגע שחוזרים לעבוד על אותה משימה.
דמיינו את הסיטואציה הבאה:
אתם עובדים על איזה באג/פיצ'ר לתומכם, ופתאום יש מקרה חירום וצריך לתקן באג חדש ולייצר גרסא חדשה של הdemo מאתמול.
לפני מיילר, מה שזה אומר זה שצריך להתחיל להזכר מה צריך כדי ליצר גרסא חדשה, לפתוח קבצים חדשים, כנראה גם לסגור את כל מה שקשור לבאג שעבדתם עליו.
עכשיו, נניח שהבאג הזה בכלל שייך למישהו אחר בצוות, אז צריך להעביר את העסק עליו ואז להזכר מחדש איפה הייתם ומה עשיתם, לסגור את הקבצים שקשורים לבאג בdemo, לפתוח את הקבצים של הבאג שעבדתם עליו ולהמשיך לעבוד.
כל הסחות הדעת האלו יגרמו לכך שגם תבלו איזה עשר דקות בynet בין המשימות, סתם כדי לנקות את הראש.
עם מיילר, אפשר לעבור בקלות בין ההקשרים, בלי לבזבז זמן ותאי זכרון יקרים.
מיילר מייעל גם עבודה בצוותים: את ההקשרים האלו, שכוללים בעצם ריכוז של ידע על אותו באג, אפשר לצרף לבאג עצמו, ככה שהמפתח הבא יוכל פשוט למשוך את ההקשר מהבאג ולהמשיך מאותו מקום שאתם עצרתם. (כל הקבצים פתוחים, כל הפונציות שרלוונטיות לדעתכם כבר יהיו בהקשר, וכו').
Eclipse הוא כבר מזמן לא כלי לפיתוח Java בלבד, כבר היום הוא תומך בC/C++, PHP, Prolog ועוד, מיילר אמור לתת ערך מוסף לתכנות בלי קשר לשפה, כל עוד אתם עובדים בתוך Eclipse – אם כי אני לא בטוח שהוא באמת מוכן לשפות אחרות עדיין.
יתרון נוסף הוא התמיכה האוטומטית בקבוצות שינויים (Changeset) כשעובדים מול מערכת ניהול גרסאות הקוד (CVS/SVN וכו').
מה שזה אומר זה שמיילר ינהל בצורה אוטומטית את הChangeset שקשור לבאג שאתם עובדים עליו, ואפילו יכלול הודעת Commit אוטומטית כשתעשו Commit!

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

יש לינקים עם עוד מידע פה.

פיתוח דרייברים ללינוקס בחינם

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

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

חמש

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

1. במחשב הראשון נתקלתי בגיל 11 אצל חבר, שיחקנו דיגר, דיג-דאג ודברים קופצים (ציפור קופצת, איש קופץ, נינג'ה קופצת). שנתיים אחרי זה כבר היה לי מחשב תותחי למדי, XT עם 1536K זכרון ומסך VGA. גם במחשב שלי בעיקר שיחקתי, אבל גם למדתי להשתמש בדוס, לשנות שמות של קבצים, לפרמט ולהשחית דיסקטים.

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

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

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

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

אני מסנג'ר את הבלוגרים הבאים:
עומר טרן.
גיא מזרחי
שושנה (xslf)
יאנה (Azure ray)
גלמור

האתר שנדם

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

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

mtr