שליחת הודעות עם d-bus

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

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

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

ד"א, לקח לי פחות זמן לממש את הbinding מאשר להבין למה המימוש שלי פשוט לא עובד.

כתיבת תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s