Openoffice Base

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

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

בניתי מערכת שמנטרת ציוד מסויים (כרגע רק ב- Ping). השתמשתי במרכיבים הבאים:

Python (שפת תכנות)
Mysql בסיס נתונים
Open Office Base  – להכנסת נתונים, חיפושים שונים, הפקת דוחות וביצוע שאילתאות.

בפרוייקט הקטן הזה כמעט ולא כתבתי קוד:

  • יצרתי את הסכמה באמצעות Mysql Administrator
  • מימשקתי את Base לבסיס הנתונים הזה ויצרתי מספר טבלאות (טבלת נתוני ציוד, טבלת תקלות עוד…)
  • קישרתי בין הטבלאות השונות (Relations – שוב באמצעות Base)
  • הכנתי טופס ב- Base שמשמש להכנסת נתונים (שם ציוד, כתובת IP, אנשי קשר ועוד…)
  • הכנתי מספר שאילתאות (Query) שישלפו נתונים שונים (תקלות שארעו בציוד מסויים, שליפת תקלות בחתך זמן מסויים, הסטורית תקלות בציוד מסויים ועוד…)

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

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

הערות:

  • למרות שהפרוייקט נבנה עם מינימום קוד, הוא מספק למשתמש כלים גרפיים שונים שמאפשרים לנהל ציוד בצורה נוחה.
  • אני מתכוון להרחיב את יכולות הניטור (אבל המערכת עדיין אמורה להיות clientless)
  • אני יודע שיש כלים מוכנים שעושים את אותה הפעולה ויותר (כמו nagios), אבל אין כמו הסיפוק של לעשות את הדברים לבד…
  • בסה"כ המטרה היתה ללמוד את OpenOffice Base ועבודה על פרוייקט קטן כזה אפשרה לי ללמוד היטב את המוצר.
  • את כל הפיתוח עשיתי בבית, בזמני החופשי ובהתנדבות (אין זמן בעבודה לעבוד על פרוייקטים איזוטריים כאלה…).
  • בסה"כ התרשמתי מאוד לטובה מ- OpenOffice Base. חבל רק שהתמיכה במנשקים עבריים כ"כ שבורה (ב- OO 3.1 יכנסו הרבה תיקונים שנוגעים לכיווניות ואולי התמיכה ב- Base תשתפר)

להגן על ה- DOK

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

ריימונד כתב בבלוג שלו שהוא קנה לאחרונה תוכנה שתפקידה להגן על ה- DOK. מסתבר שכל מה שהתוכנה עושה זה למלא את ה- DOK עד אפס מקום (ואז הוירוס לא יכול להדביק את התקן הזכרון). לאחר שהוא גילה שזה כל מה שהתוכנה עושה, הוא סקר מספר פתרונות חינמיים (לחלונות) שמבצעים את אותה הפעולה. ניסיתי את DonationCoder Dummy File Creator  (הרצתי באמצעות wine) והוא עובד היטב. מה שכן מצאתי את הפתרונות שהוצגו כלא נוחים לשימוש: תחילה יש לבדוק כמה מקום פנוי יש בהתקן הזכרון, ואז צריך לייצר קובץ מתאים ולהעתיקו להתקן הזכרון.

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

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

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