ספטמבר 22nd, 2011פרוייקט סודי.

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

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

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

לאט לאט, אני מתחבר לשפה, ומשלים בקלות עם העובדה שצריך לטפל בדברים הכי בסייסים, צורות הכתיבה השונות של פוינטרים *(struct.ptr) ל ,struct->ptr הטיפול המיוחד במחרוזות, sprintf היא לא כמו בPHP אחרת היא היתה צריכה להקצות זיכרון לכך שצריך לשחרר אח"כ ולכן לא עשו אותה כך. גם sizeof לא ייתן את גודלה וכנראה stlen עושה לולאה עד שנתקל ב\0

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

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

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

ניפגש בהמשך 😀


ספטמבר 1st, 2011פרוייקט הQA הגדול

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

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

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

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



© 2007 הבלוג של נדב ויניק משתמש בתבנית iKon שתרגם A.M.F השכרת מכשירי קשר בלוגטוב