כתיבת GUI יכולה להיות נסבלת

ב־יום שני, 17 בנובמבר 2008, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס, פיתוח, תכנה ומחשבים, C++‎‏; ‏13 תגובות

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

לפני עמדו מספר אפשרויות:

  1. לממש את הכל ב-Matlab.‏
  2. לקחת שפה כמו python עם איזשהם bindings שהם לא תלויים בפלטפורמה.
  3. לכתוב ב־C++‎ ולקחת כלי שהוא בלתי תלוי בפלטפורמה:
    • להשתמש ב־wxWidgets.
    • להשתמש ב־GTKmm.
    • להשתמש ב־Qt4.

לצורך העניין, עד היום, הניסיון היחיד שהיה לי בבניית GUI, היה רק עם MFC.‏

המשך...

ויקי של CppCMS עלה ברשת

ב־יום חמישי, 30 באוקטובר 2008, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, תכנה ומחשבים, CppCMS; ‏7 תגובות

הערה: היה באג בקוד JavaScript שמנע הרשמה לויקי, הוא תוקן ועכשיו ניתן להרשם

הויקי של פrויקט CppCMS עלה ברשת. כל התיעוד השייך ל־CppCMS עתיד להופיע בויקי הזה. כמובן, שהויקי עצמו בנוי בטכנולוגית CppCMS... (למישהו היה ספק?).

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

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

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

חייב לציין: ללא תיעוד מצוין של Django שמהווה מקור השראה שלי וללא עזרה של מאיר קריחלי שעדיין ממשיך לענות על אלף ואחת השאלות שאני מעלה, היה לי הרבה יותר קשה להגיע לנקודה זו.

יצירת dllים בעזרת autotools תחת cygwin.

ב־יום רביעי, 22 באוקטובר 2008, מאת ארתיום; פורסם תחת: תכנה חופשית, לינוקס, פיתוח, תכנה ומחשבים, C++‎‏; ‏0 תגובות

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

הדרך הסטנדרטית, בה רוב חבילות cygwin מתמודדות עם הבעיה: יצירה של ספריות סטטיות בלבד. זה נוח, במקרים מסוימים כי זה מאוד מפשט את העבודה, אבל זה מנפח את קבצי ה־exe בצורה משמעותית. מה שעוד יותר חשוב, מחייב אותך לעשות link עם הספריה והתלויות שלה.

כך למשל, עם ספריה libabc תלויה ב־libxyz1 ו־libcoco2. אז כדי לבנות תכנה שמשתמשת ב־libabc במקום לקמפל:

g++ code.o -o prog -labc 

חייבים לקמפל:

g++ code.o -o prog -labc -lxyz1 -lcoco2 

זה הופך את הקמפול לפעולה מאוד לא טריוויאלית, במיוחד כשיש הרבה תלויות. לחילופין, ניתן להשתמש ב־libtool שיודע לאתר קבצי עזר עם התלויות -- libabc.la. במקרה כזה הבניה הופכת ל:‏

libtool --mode=link g++ code.o -labc -o prog

שזה מנפח את כלי הבניה וגם מחייב אותך להשתמש תמיד ב־libtool.

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

המשך...

מערכת הבלוגים עברה גרסה.

ב־יום שבת, 18 באוקטובר 2008, מאת ארתיום; פורסם תחת: כללי, CppCMS; תגובה אחת

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

תודה.

מה צפוי ב"בטא 2" של CppCMS‏?

ב־יום חמישי, 16 באוקטובר 2008, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, תכנה ומחשבים, CppCMS, C++‎‏; ‏5 תגובות

בקרוב תשוחרר בטא השניה של CppCMS. מה החידושים הצפויים:

  1. מערכת cache מבוזרת מעל TCP/IP שנותנת אפשרות scale up במקרה של עומסים גבוהים במיוחד. המערכת מבצעת ביזור של cache בסגנון memcached ונותנת ניהול load ballancing אוטומטי.
  2. שינוי משמעותי במערכת התבניות, מעכשיו, התבניות יהיו staticly typed. ה"תוכן" ייוצג ע"י מבני C++‎ טבעיים, התבניות עצמן יתוגרמו לקוד C++‎, שמייצר את העמוד מה"תוכן". המעבר מאפשר לממש מספר דברים:
    • ירושה של תבניות בסנגון Django.
    • יכולת לבצע הרחבות בקלות ע"י השתלת קוד C++‎ באופן ישיר.
    • בעתיד יהיה קל יותר לחבר טיפול בטפסים.
    • התבניות יכולות להיות מקומפלות סטטית ישירות ליישום או והיטען כמודולים (so/dll) בנפרד.

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

המשך יבוא...

העמוד הקודם

העמוד הבא

דפים

נושאים