הבלוג של ארתיום
בלוג על לינוקס, תוכנה חופשית, מוזיקה, סלסה, ומה לא!
מאמרים בנושא C++.
הבלוג שודרג לגרסה חדשה
שלום לכולם,
הבלוג שודרג לגרסה חדשה שעובדת עם הגרסה האחרונה של CppCMS.
למעשה מערכת הבלוג שוכתבה מחדש, כיוון הבלוג הזה הוא היישום הראשון שמימשתי בעזרת CppCMS הוא סחב אחרי הרבה קוד מיושן וגרוע. שכתבתי את המערכת מחדש כך שהוא הפך הרבה יותר מאובטח ונקי מבחינת הקוד.
אחרי שהוא ירוץ זמן מה ברשת, אני אשחרר גרסה רשמית שלו.
אנא שימו לב לבעיות.
רוצים לנסות בבית?
כרגע אם מישהו רוצה לנסות אותו יצטרך:
- CMake 2.6 או יותר
- CppCMS 0.99.7 או גרסה חדשה יותר
- CppDB
- ספריית Discount Markdown
- ספריית ImageMagick++ או GraphicsMagick++.
את הקוד ניתן לקחת מ־svn בכתובת:
https://cppcms.svn.sourceforge.net/svnroot/cppcms/blog/trunk
אחרי שהתקנתם את כל התלויות ומשכתם גרסת svn של הבלוג:
mkdir build
cd build
cmake ..
make
לאחר מכן, צרו, בסיס נתונים של MySQL, PostgreSQL או של Sqlite3 בעזרת התסריטים הנמצאים בתת תיקיה sql. ערכו את קובץ config.js כדי להגדיר את בסיס הנתונים בו אתם הולכים להשתמש ואז הריצו:
./blog -c ../config.js
הגישה הראשונה אתם תתבקשו להזין את ההגדרות הבסיסיות של הבלוג, שם משתמש וססמה אתה תעבדו.
בלוג בא בשתי שפות - אנגלית ועברית ומכיל שתי תבניות OrangeSky ו־Contendend לבחירתכם.
שימו לב: מדובר בגרסת בטא ראשונה, כך שאם היא תהרוס לכם את השרת או תאכל לכם את החתול... ראו הוזהרתם.
גם Tatoeba תשתמש ב־CppCMS
טטואבה, פרויקט בינלאומי המהווה מעין מילון האוסף מספר רב של משפטים, מפתח גרסה חדשה ב־C++ שמבוססת על CppCMS.
למעשה ידעתי על התכנון הזה כבר מזמן, אבל לא ממש עקבתי אחרי הפרויקט. בעקבות החדשות שכתבתי עליהם בפוסט הקודם, החלטתי להסתכל שוב על הפרויקט הזה וגיליתי שהם התקדמו יפה מאוד.
גרסת האלפה (עדיין מאוד בסיסית) כבר עלתה לרשת וזמינה בכתובת: http://tato.sysko.fr. הגרסה הזו מחליפה את מנוע החיפוש הנוכחי העובד עם MySQL בבסיס נתונים ייחודי שהם פיתחו ותשתית הרשת שכתובה בעזרת CakePHP מתחלפת באחרת המבוססת על CppCMS.
בהודעה הזו הם מסבירים את ההחלטה שלהם לבחור ב־CppCMS. להחלטה הזו היה מספר לא מבוטל של סיבות.
בקיצור... תתחילו לקחת את CppCMS בצורה רצינית :-)
ה־Review של Boost.Locale מתחיל עכשיו
בהמשך לפוסט הקודם ה־Formal Review של Boost.Locale מתחיל היום.
אני מקווה ש־Boost.Locale תעבור אותו בהצלחה ותשולב ב־Boost.
עכשיו זה רשמי: Boost.Locale תיבחן לשילוב ב־Boost
עכשיו זה רשמי, תהליך הבחינה הפורמלית (Formal Review) של Boost.Locale לשילוב ב־Boost תיערך בין 7 ל־16 באפריל.
קצת רקע
Boost היא אוסף של ספריות C++ חופשיות המשפיע ביותר על הפיתוח המודרני של השפה. הוא מכיל עשרות רכיבים חשובים, שחלקם כבר שולבו בתקן הבא של C++ הידוע כ־C++0x בספריה הסטנדרטית. רבים מהם כבר ניתן למצוא בגרסאות האחרונות של קומפיילרים של GNU, Intel ושל Microsoft.
זהו פרויקט קהילתי שמפתח ספריות C++ שימושיות חוצות פלטפורמה. כל ספריה, כדי שהיא תשולב ב־Boost צריכה לעבור תהליך בחינה רשמית (formal review) שבמהלכו מפתחים שונים סוקרים את הספרייה בוחנים אותה: תיעוד, קוד, תכנון, מימוש ועוד ובסופו של דבר מצביעים האם כדאי לשלב את הספרייה בתוך Boost או לא.
התהליך מפוקח ע"י מנהל הבחינה (Review Manager) שבסופו של דבר מכריע על סמך קולות והערות המשתתפים אם לשלב את הספרייה ב־Boost או לא.
Chad Nelson, מפתח ספריית Xint התנדב להיות מנהל הבחינה, התאריך נקבע ועכשיו זה רשמי - Boost.Locale תעבור את תהליך הבחינה באפריל.
על הספרייה עצמה
Boost.Locale זאת ספריית לוקליזציה ותמיכה ביוניקוד שמקלה על בנאום ולוקליזציה. היא פותחה על בסיס ספריית ICU שמהווה היום את state-of-the-art בתחום היוניקוד וגם מאפשרת עבודה עם תמיכה מובנית בלוקליזציה שמערכות הפעלה מודרניות מספקות היום.
רכיבים:
- תרגום מחרוזות (על בסיס gettext)
- תמיכה במיון של טקסט
- פרמוט של תאריכים, מספרים, מטבע וכד' בהתאם ללוקל.
- תמיכה בלוחות שנה שונים (לא גרגוריאני) כמו לוח שנה עברי
- תמיכה טיפול מחרוזות כמו נורמליזציה
- תמיכה בחלוקת הטקס ליחידות כמו תווים, מילים, משפטים ועוד.
- תמיכה בהמרת קידוד הטקסט
ועוד
חשוב לציין שהיא עושה את זה בצורה חוצת פלטפורמה וגם מאפשר לבצע חלק נכבד מהמשימות האלה גם ללא תלות ב־ICU כך שהפרויקטים שלא דורשים תכונות מסובכות מידי יכולים לעבוד עם ספרייה מאוד קלילה ללא תלויות רבות.
שיהיה לי ולספריית Boost.Locale בהצלחה!
נ.ב.: ראוי לציין שהספרייה פותחה במקור עבור פרויקט CppCMS ואחרי שראיתי את התועלת שהיא יכול להביא לתחום הלוקליזציה החלטתי לעבוד בצורה הרבה יותר מאומצת ולהכין אותה ל־Boost.
נ.נ.ב.: לכל המעוניינים, בקרוב תשוחרר גרסה תיעוד הספרייה קצת יותר מועדכנים.
רישיון CppDB השתנה ל־BSL/MIT
החלטתי לשנות את רישיון CppDB - ספריית קישוריות ל־SQL לרישיון יותר מתירני רישיון כפול: רישיון Boost או רישיון MIT לבחירתכם.
בגדול, אני הייתי שמח להישאר עם רישיון יחיד - רישיון Boost, אבל ספריית MySQL לא מכילה חריגה עבורו, אז הוספתי רישיון MIT כחלופה. כך שאם אתם משתמשים ב־CppDB וב־MySQL אתם צריכים לנהוג לפי דרישות רישיון MIT.
לשינוי הרישיון היו מספר סיבות:
- אני רוצה לנסות להכניס את הספריה בשלב מסויים ל־Boost, כך ששינוי הרישיון היה מתוכנן בכל מקרה.
- אני מקווה שזה ירחיב את כמות המשתמשים והתורמים לפרויקט ויתן פרסום ודחיפה נוספים ל־CppCMS.
כדי למנוע אי הבנות: CppCMS עדיין משוחרר תחת LGPLv3 וזה לא עומד להשתנות.