הבלוג של ארתיום
בלוג על לינוקס, תוכנה חופשית, מוזיקה, סלסה, ומה לא!
מערכת תבניות חדשה עבור CppCMS.
נבנתה מערכת תבניות חדשה שמפשטת ומזרזת את הפיתוח.
מספר מאפיינים חשובים:
- בלתי תלויה ב-Framework עצמו, ניתן להשתמש בה בתור ספריה גם בפרויקטים שלא קשורים לפיתוח ל-Web.
- מאפשרת עבודה עם כל אובייקט אפשרי בתור "ערך" של משתנה.
- פשוטה יותר מבחינת משתמש קצה.
בהרבה ניתן לקרוא כאן.
השוואת דרייברי-SQL אוניברסליים: soci ו-dbi.
לצורך הפרויקט CppCMS הזדקקתי לדרייבר C++/C אוניסרסלי שיאפשר להתממשק לבסיסי נתונים שונים.
כאן אני מביא השוואה בין soci לבין dbi.
עדכון קצת כאן.
להתראות Berkeley DB שלום MySQL.
אחרי תהיות ארוכות החלטתי להחליף את התשתית Berkeley DB לתשתית מבוססת על SQL.
אני בחרתי בספריית soci שמספקת ממשק ++C נוח ואחיד לבסיסי נתונים רבים. בלוג הפיתוח כבר מריץ את הגרסה שעובדת מול MySQL. כמובן, אני לא מגביל את עצמי לבסיס נתונים יחיד.
ניתן לקרוא בהרחבה כאן.
אני ו-dll או defected by design
בשבוע האחרון עבדתי על כתיבת טלאי לפרויקט soci שיאפשר טעינה דינמית של מודולים. הפרויקט הוא בלתי תלוי בפלטפורמה ויודע לעבוד הן על פלטפורמת POSIX והן על Win32. אז הייתי צריך לתמוך ביצירה וטעינה של dllים ושל soים לפי הצורך.
למרות ש-Win32API ו-POSIX API הם שונים לא הייתה שום בעיה לספק את התמיכה בטעינה דינמית של ספריות... בסה"כ להגדיר כמה defineים שכך שבפלטפורמה תואמת POSIX אני קורא ל-dlopen וב-Win32 אני קורא ל-LoadLibrary, באחת אשתמש ב-CriticalSection ובשני ב-PThread Mutex ועוד.
הכל היה טוב יפה עד שהגעתי ליצירה נכונה של הספריה עבור Win32. אז נחשפתי למספר דברים ששפכו הרבה אור על נושא של dllים ב-Windows וכמה "השלכות מוזרות" שבתור מי שמפתח ב-Linux לא נתקלתי בהם.
ובכן נתחיל.
המשך...בחירת DB ל-CppCMS... שוב אותה שאלה
לאחר השוואת ביצועים בין MySQL ו-Berkeley DB על CMS אמיתי, חזרתי שוב לתהיות האם הבחירה היא נכונה: