פלאנט תוכנה חופשית בישראל (Planet FOSS-IL)

20 נובמבר, 2014

Ram on Agmon

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

הטקסט המלא

20 נובמבר, 2014 01:28 PM

Lior Kaplan

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

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

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

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

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

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

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


תויק תחת:Free Software in Israel, gov.il

20 נובמבר, 2014 06:31 AM

18 נובמבר, 2014

sml

OpenSUSE 13.2: טיפים וטריקים

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

התקלה הנפוצה הייתה (ככל שהדבר ישמע מוזר) השלמה חלקית בלבד של יצירת הקרנל ו\או ה initrd החדשים. נשמע מופרך? לא בהכרח.

הטקסט המלא

18 נובמבר, 2014 07:27 PM

Artyom Beilis

שעון קיץ בישראל ומחשבים

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

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

בזיון. מרבית הפצות לינוקס לא הספיקו לעדכן את tzdata, למשל לא Debian ולא Ubuntu יציבות קיבלו איזורי זמן נכונים (גם בעדכונים אחרונים), העדכון האחרון של Red Hat גם הוא יצא ממש לא מזמן. כמובן גם Windows לא הספיקו להוציא עדכונים - כך שגם אשתי שלא משתמשת בלינוקס התעוררה עם שעון לא תקין במחשב שלה - והוא תמיד מעודכן אצלה עד לדקה האחרונה.

אני כמובן כבר לא מדבר על יישומים שמנהלים את IANA Time Zone Database בעצמם, יישומים זניחים כמו Java או ICU וכד.

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

עדכון החוק האחרון היה ביולי 2013 - אז האם אפשר להאשים את מאות (אם לא אלפי) האנשים והארגונים האחראים על עדכונים שוטפים שלא הספיקו להפיץ את עדכוני איזור הזמן האחרונים? האם אפשר להאשים מיליוני משתמשים בישראל בכך שלא התקינו את העדכונים האחרונים (אם הם היו בכלל)?

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

הטקסט המלא

18 נובמבר, 2014 06:02 PM

לשרת את כל אתרי החדשות בארץ בעזרת... CppCMS

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

הפרויקט נקרא ליניקום.

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

מספר מילים על "ליניקום":

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

להלן כמה עובדות מעניינות:

  • ליניקום מבוססת על טכנולוגית CppCMS
  • המערכת משרתת כ־10,000,000 פניות המותאמות למשתמש ביום - קרי כ־115 פניות בשניה.
  • בשעות העמוסות הקצב מגיע לכ־160 פניות בשניה.
  • השרת מייצר תעבורה יוצאת ממוצעת של כ־11 מגאביט בשניה.
  • צריכת זיכרון הכוללת של המערכת (שרת וואב, בסיס נתונים, יישום, מערכת ההפעלה) הוא בסביבות 360MB
  • העומס הממוצע על המעבדים הוא כ-5%
  • השרת רץ על c1.medium instance בודד ב־Amazon EC2

המערכת רצה מאחורי lighttpd ומשתמשת ב־PosgreSQL לשמירה וניהול הנתונים בצורה אינטנסיבית, עם זאת, מרבית הנתונים הנדרשים בזמן אמת שמורים ומנוהלים בזיכרון.

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

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

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

הטקסט המלא

18 נובמבר, 2014 06:02 PM

Oz Nahum

Installing Oracle's JAVA on Debian

There are many solutions floating around to install Oracle's JAVA on Debian based systems. Most of them involve too many manual steps. Here is one that does not, and it simply works! ... continue reading...

18 נובמבר, 2014 06:00 PM

Revive and old Smartphone with Cyanogenmod!

I recently installed Cyanogenmod on an old Samsung Galaxy II and I just wanted to share my thoughts. ... continue reading...

18 נובמבר, 2014 06:00 PM

Quick Tip - Tiling Windows manager in Mate-Desktop

Here is how you can achieve Tiling windows management without leaving a full blown Desktop Environment such as Mate-Desktop using x-tile ... continue reading...

18 נובמבר, 2014 06:00 PM

Dell is not serious about Linux

How serious Dell is about Linux? I think it is not that serious, and it is using Ubuntu fans as free advertising platform ... continue reading...

18 נובמבר, 2014 06:00 PM

Git tip - git describe

Earlier I posted a tip how to count commits between tags, this post suggests a better way to do it ... continue reading...

18 נובמבר, 2014 06:00 PM

Git tip - Count commits between tags

Once every N commits I would like to release a new version of pwman3, so here is how to keep a track of this number between releases ... ... continue reading...

18 נובמבר, 2014 06:00 PM

Localizing applications with gettext

I was always interested in how I can add translations to pwman3 or to my little PyGTK tutorial, these are summerizing of my gettext experiences ... continue reading...

18 נובמבר, 2014 06:00 PM

PyGTK CD Ripper Tutorial - Part 7

Part 6 of this tutorial completed the Preferences dialog and introduced gtk.Frames and gtk.Expanders. This part of the tutorial will add some more polish to th UI, introducing icons and completing the About Dialog ... continue reading...

18 נובמבר, 2014 06:00 PM

salt quick tip - changing passwords on multiple clusters

Using salt stack to manage your own private cloud on clusters can ease your life. Here is how you can allow users to update their passwords on multiple Linux hosts. ... continue reading...

18 נובמבר, 2014 06:00 PM

PyGTK CD Ripper Tutorial - Part 6

Part 5 of this tutorial added a gtk.Notebook and other widgets to the Preferences dialog. This part of the tutorial introduces the gtk.Frame and gtk.Expander widgets and completes the Preferences dialog. ... continue reading...

18 נובמבר, 2014 06:00 PM

ik

יחידות בדיקה, כן, לא, אולי

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

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

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

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

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

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

עכשיו מה קורה במצב הזה ? האם הקוד שלך יודע להתמודד עם משתמש שמנסה דברים שלא בהכרח הוא צריך ? האם אתה יודע להתמודד עם משתמש שלא מבין מה הולך סביבו ?

יחידות בדיקה (מיד יצעקו הבודקים), לא נועדו לכך, ואני אומר להם כי הם טועים !

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

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

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

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

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

האם בדקת באמצעות ‎ /dev/full האם המערכת שלך יודעת להתמודד עם מצב בו אין מקום יותר לשמור מידע ?
רק השבוע סידרתי את MySQL שהרס טבלה כי מערכת הקבצים הגיעה ל 100% ולא היה מקום לרשום את הרשומה, אז הטבלה נהרסה.

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

יותר מזה, אתה בודק את הקוד שלך על 10,000 רשומות, הלקוח קצה שלך אבל משתמש ב10,500 רשומות, ואז יש איטיות (ב10,499 עדיין אין), איך לא ידעת להוסיף עוד רק 500 רשומות לבדיקה ? זה מה שמנהל מסוים יצעק עליך, לא ?

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

האם בכלל יש פתרון למקרי קצה כאלו ?

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

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

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

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

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

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

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

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

מוגש כחומר למחשבה.


תויק תחת:אירגונים וחברות, טכנולוגיה, פיתוח, קוד פתוח, תוכנה, תכנות Tagged: agile development, programming, software development, unit tests

18 נובמבר, 2014 10:30 AM

15 נובמבר, 2014

sml

שדרוג אופן-סוזה לגרסה 13.2

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

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

הטקסט המלא

15 נובמבר, 2014 11:31 PM

14 נובמבר, 2014

Shlomi Noach

Joining Booking.com

I'm excited to be joining Booking.com at the Netherlands in a couple weeks :)

I'm looking forward to be working with a great team and friendly people! I hope to contribute from my experience and of course be challenged by difficult problems.

Booking.com is a supporter of open source in multiple aspects, and I am looking forward to continue working with open source solutions as well as releasing open source code.

I am leaving my work at Outbrain feeling grateful for the opportunity of working at this wonderful company! I am awed and humbled by the amazing teams I've worked with, whose level of knowledge and insights I can only aspire to match. Thank you in particular to the Infrastructure team, of which I was proud to be part of.

Outbrain allowed me and others (and in fact encouraged and supported) to develop as much open source as we saw fit. This is not a minor thing: when you orient your code towards open source, you need to make generalizations which are not always providing direct benefit to the company, and which consume precious time. I hold Outbrain in the highest respect for their support for open source.

 

 

 

14 נובמבר, 2014 12:04 PM

13 נובמבר, 2014

Boris Shtrasman

GNOME מגייסת כוחות בשביל להלחם

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


אנשים מבקשים לא להתנהג כמו חבורת %#@ או איך שאהרון אמר חבורת תרנגולות חסרי ראש ולבצע פעולות שגנום לא מבקשת.

עריכה: יש טענה כי התאגיד החליט לחוס על GNOME
"Update: Thank you for all the support that you have given us. Groupon has confirmed with the GNOME Foundation that they are going to abandon all of their 28 pending trademark applications and will proceed with a name change for their product. We could not have done this without your help!" -- http://www.gnome.org/groupon/

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

לדעתי  כל הסיפור הזה הזוי -

איך תאגיד כזה גדול לא שם לב שהם משתמשים ברכוש של אחר ?

איך  הרשם בכלל קיבל את הבקשה לרשום את השם ?



13 נובמבר, 2014 05:14 PM