בוקר של גשם

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

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

הגיע הזמן לחפש חופשה לפסח, ואלי אפילו לדצמבר-ינואר.

יום טוב!

למה לכתוב בכלל?

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

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

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

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

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

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

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

לכתוב כל יום? לכתוב.

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

כבר, הרווחתי מהבלוג הזה. הרבה פעמים דברים ״יושבים״ לנו על הראש והם נעלמים ברגע שיש פעולה. התחושה הגדולה שיש לי מה לכתוב וחבל שלא מזדמן לי נעלמה ברגע שיש לי איפה לכתוב – האם זה לא נפלא? 🙂

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

אז לכתוב כל יום? לא יודע אם אפשר, אבל ברגע שפתחתי את הפוסט הזה נכתבו להן שלוש פסקאות, והשעה רק 10:30 בבוקר 🙂

יום הולדת, יצירה, מתנה

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

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

הטיפול לא אידיאלי – הכל ידני, חסר חומר, חלק מהתמונות לא שם והקישורים לא כולם עובדים, קישורים פנימיים הלכו לגמרי ואני לא יכול לתקן אלפי קישורים ידנית.. אבל הרוב, העיקר – עדיין נמצא. החלטתי להחזיר שלושה אתרים: שני הבלוגים שלי (הבלוג הזה, על החיים והמחשבות, ומריץ את החיים, בלוג הספורט שלי) את אתר מרחקים האהוב. עניין אותי גם מה אמצא שם. את הדומיינים שרציתי כבר קניתי מזמן (מרחקים היה שלי, את הבלוג הפרטי שלי שיניתי מlior.sion.co.il לliorsion.com כי אני בין לאומי, ואת מריץ את החיים העברתי מsion.co.il/life לrunninglife.co.il) – אין ספק שהשנים שינו את הגישה שלי בהשקעה הכלכלית בדומיינים 🙂

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

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

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

אפליקצית מציאת המקלטים

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

היו עוד מספר דרישות בסיס:

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

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

הדברים מסתבכים

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

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

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

כמה דברים

את מה שניסיתי לעשות – הצלחתי ודי מהר. השירות עבד, הוא היה באויר תוך שעתיים, הוא לא דרש הרבה משאבים והוא לימד אותי כמה דברים חדשים. בצהריים כשאיתן התקשר אלי ואמר שאולי ידברו על הפיתרון שלי במסיבת עיתונאים (בסוף לא יצא אל הפועל) – ופחדתי לא לעמוד בעומס, פשוט עשיתי הוסטינג על… dropbox (!!) – שוב כלי חינמי ופשוט שמאפשר לעשות דברים בלתי צפויים. עידן גזית היה הראשון ששם לב, דרך אגב, איפה השירות מאוחסן.. ומיד צייץ: "Dude, your shelter map is hosted on dropbox? How ghetto. :)" :)

מאז כמובן שהעברתי את השירות לאמאזון.

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

משטרת ישראל – יש גבול למה שצריך לעשות במדיה חברתית (או צריך להיות אחד כזה)

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

היום, לעומת זאת, המשטרה לדעתי טעתה ועברה את הגבול:

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

אבל זה ממשיך בתגובות: "יענו עכשיו בכלא ישימו אותו עם עציר ערבי שיושב כמעט 5 שנים בלי סקס ויפיל לו כל חצי שעה ת'נקע 7 במקלחת " אתה רוצה לראות בולבול של בדואי …?! " – נכון לזמן זה, לפני 52 דקות (!) ואף אחד לא העיף את זה מהקיר..

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

רק דעתי.

מתכנת מעל גיל 45? הסתבכת

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

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

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

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

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

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

היום האחרון בjunction 32

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

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

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

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

חשיבות הכיסוי (coverage) בבדיקות התוכנה – ואיך עושים את זה בד'נגו

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

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

מהן בדיקות כיסוי (coverage)

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

חשוב לציין כמה נקודות קטנות בקשר לבדיקות האלה:

  • קשה מאוד להגיע ל100% בדיקות, ומעט מאוד אנשים חושבים שזה היעד. יש תלות מסויימת בקוד הספציפי שלכם, אבל קטנה מאוד – אני ממליץ לנסות להגיע לפחות ל70% כיסוי, ולא לנסות להלחם יותר מדי על ה10% האחרונים.
  • בדיקות קוד צד לקוח בעתיות יותר ואני לא הולך להתיחס אליהן בפוסט הזה (במיוחד כי הדגש כרגע הוא על django)
  • התירוץ החוזר הוא ש"הקוד שלנו שונה כי xyz, ולכן קשה בהרבה להגיע לכיסוי טוב". החליפו את xyz בדברים כמו "הוא מערב הרבה מודולים שונים", "אי אפשר להגיע לבדיקה של כל פינה", "יש לנו הרבה יותר נקודות קצה", והחביב עלי: "הקוד שלנו מאוד שונה כי הוא פועל על שילוב מחלקות שונות וקריאות מסובכות, תלויות חצוניות ודברים דומים". יש עוד הרבה כאלה. אל תקשיבו – עוד לא פגשתי קוד שבלתי אפשרי להגיע לאחוזים גבוהים של כיסוי – אם כי פגשתי קוד שהיה צריך לכתוב כמה mockups, נקודות קצה וירוטאליות ועוד משחקים שונים ומשונים.

בדיקות כיסוי בdjango

בדיקות הכיסוי בdjango במוססות על בדיקות כיסוי של נד בצ'לדר (Ned Batchelder) שנמצאות גם כאן או כאן. בחרו את הדרך הנוחה לכם להתקנה:pip install hg+https://bitbucket.org/ned/coveragepy

אוeasy_install coverage

וכדומה. בצורה דומה אפשר לחבר את החבילה לbuildout.

לאחר מכן התקינו את התוסף לdjango:https://bitbucket.org/kmike/django-coverage/src

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

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

python manage.py test_coverage

אני ממליץ ללכת שלב נוסף, כמו שהזכרתי בפוסט הקודם, וליצור בדיקות רק לקוד שלכם:

בתוך management->commands (הפוסט הקודם מסביר את זה):

from django.core.management.base import AppCommand, BaseCommand[python] from django.core.management.base import AppCommand, BaseCommand from django.core.management import call_command from django.conf import settings class Command(BaseCommand): def handle(self, *args, **options): test_app_path = () for app in settings.MY_INSTALLED_APPS: test_app = app.split('.') if len(test_app) > 1: test_app = (test_app[-1],) else: test_app = (app,) test_app_path += test_app call_command("test_coverage",*test_app_path, **options) [/python]

הוסיפו בsettings שלכם את מיקום יצירת הhtml:

COVERAGE_REPORT_HTML_OUTPUT_DIR כדי לבחור את הספריה ליצירת תוצאות הHTML

דנקן סטיוארט מדליוט על תחזיות לשנת 2011

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

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

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

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

  • יותר מחצי מהמחשבים אינם מחשבים כבר. אפילו לא לפטופים. רוב האנשים משתמשים במחשב ל5 דברים: גלישה באינטרנט, אימיילים, משחקים, וידיאו ורשתות חברתיות. בשביל זה לא צריך מחשב, והפתרונות של טלפונים חכמים ובעיקר טבלטים (ipad וכו) – קטנים, לא יקרים, בעלי בטריה חזקה ומסך מצויין – נותנים פתרון שאינו רק משתווה אלא אפילו עדיף.  התחזית אינה ששוק המחשבים ייפול, אלא ששוק הטבלטים יגדל מעליו. כולם זוכים.
  • לא יהיה מנצח בזירת מערכות ההפעלה. כשמיקרוסופט קמה לא היו לה מתחרים אמיתיים, זה אינו המצב עכשיו. מיקרוסופט ונוקיה הם שחקן חזק מאוד בתוכנה וחומרה. אנדרויד כבר חזק מאוד ולאפל יש כוח שלא יעלם במהרה. אפילו בלקברי לא יכול להעלם – היתרונות שלו במקומות מסויימים גדולים מדי. בסופו של דבר אנחנו הולכים לקראת פילוג של מערכות שלכולן חלק גדול מדי מכדי שנוכל להתעלם ממנו. במילים אחרות: היו מוכנים לתמוך בכמה מערכות הפעלה.
  • אם אתם חושבים לפתור את הבעיה הקודמת ע"י פתרונות ווב (אפילקציות ווב מוכנות לטלפונים) – תחשבו שוב. הרמה שלהן לא מתקרבת לאפליקציות אמיתיות המותקנות על המכשירים.
  • מכירת הטבלטים תבלוט במיוחד בתחום באנטרפריז, איפה שעד כה מחשבים קטנים וטלפונים לא באמת הצליחו לחדור. במיוחד כדאי לשים לב לתחומי הרפואה (איפה שקל יותר להסתובב עם טבלט, לחלוק מידע ו… כן.. לנקות את המסך אחרי שכולם נוגעים בו), תחומי הריטייל (חנויות שתספקנה פתרונות קיוסק, הסברים ועוד למי שנכנס לחנות) וככלי עבודה שימושי לאנשי שטח.
  • טלויזיה כאן להשאר – האינטרנט לא הורג אותה אלא משלים אותה. אנשים לא אוהבים מיזוג של מידע לתוך הטלויזיה שלהם אלא מעדיפים אותו זורם בצד, ולכן אנחנו רואים גידול בגלישה תוך כדי צפיה. שאלתי האם תרגום בגוף הסרט לא מוכיח אחרת (דוברי האנגלית תמיד לא מודעים לעולם החיצון..) והוא לא ממש ענה לי על השאלה הזו, אז לא בדיוק ברור לי על מה הוא מתבסס, אבל ככה זה נשאר.
  • וופי (wifi) חודש לרתות ריטייל. אם פעם הם ראו בגלישה בחנות איום (השוואת מחירים וכו) וניסו לחסום את הגלישה, היום הם מבינים שחסימת הגלישה רק גורמת לאנשים לצאת החוצה מהחנות כדי לקבל קליטה, ולקוח שיוצא פיזית מהחנות שלך זה הדבר הרע ביותר שתוכל לעשות. במקום זה הם מגבירים את השימוש בwifi ונותנים פיצ'רים משלימים: מציאת דברים בחנות, השוואת מחירים (ממילא רוב המחירים דומים ואם לא, זה לרוב לא שווה לצאת מהחנות ולחפש במקום אחר) – וכן המלצות, הצעות ומבצעים. בקשר למידע על פריטים דנקן אומר שכנראה הפתרון יהיה nfc כי wifi לא מדויק מספיק.