היכונו לתחיית המתים

באמת אין לי הסבר אחר לתופעה.

כותרת המשנה של הקטע היא “שוחררה גרסה 1.0.0.20 של PgOleDb“.

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

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

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

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

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

שחר

גרסה 1.0 של sshpass

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

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

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

שחר

עוד דוגמא להצלחה של שיחרור תוכנה חופשית

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

מיקרוסופט לפעמים מציינת שהיחס בין כמות המתכנתים ב-Source Forge לבין כמות הפרוייקטים הוא 10:1. “כמה טוב אפשר לעשות פרוייקט אם יש רק עשרה אנשים שעובדים עליו?” הם שואלים.

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

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

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

שחר

גרסה חדשה ל-rsyncrypto

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

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

בעודי עובד על שיחרור הגרסה, מישהו פתח באג במנגנון הבאגים של sourceforge! כן, יש משתמשים! מרגע שהבאג דווח ועד שהיתה גרסה בחוץ שפתרה אותו – 24 שעות. אני חושב שזה לא רע.

שחר