הבלוג של ארתיום
בלוג על לינוקס, תוכנה חופשית, מוזיקה, סלסה, ומה לא!
מאמרים בנושא CppCMS.
שוחררה גרסה יציבה 1.0.0 של CppCMS המופצת תחת רישיון כפול
היום, אחרי מספר שנות פיתוח, שוחררה גרסה יציבה של CppCMS 1.0.0, אחרי תקופה ארוכה של גרסאות בטא. הגרסה הזו מהווה אבן דרך משמעותית בהתפתחות של CppCMS, הן מבחינה טכנולוגיות והן מבחינה עסקית.
החל מגרסה 1.0.0, ספריית CppCMS תהיה זמינה תחת רישיון חופשי LGPLv3 ותחת רישיון מסחרי שיאפשר פיתוח יישומים קנייניים תוך שמירה על שלמות המוצר והגנה על הסודות המסחריים שלו.
למידע נוסף על הרישוי החלופי והמחירים אנא כנסו לאתר שלנו:
http://commercial.cppcms.com
גרסה זו, עברה שכתוב יסודי ושינויים ארכיטקטוניים עמוקים שהזניקו את הפופולריות שלה מיד עם שחרור גרסאות בטא ראשונות. מבין החידושים הטכנולוגיים:
- הכנסה של API ו־ABI יציבים
- תמיכה מובנית ב־Ajax ו־Comet
- שיפורים מהותיים בלוקליזציה
- תמיכה מובנית ב־Windows
- שיפורים משמעותיים באבטחה: מסנני XSS וכלים למניעת CSRF ועוד.
- שרת HTTP מובנה לפיתוח ומערכות משובצות
הענף הישן יציב CppCMS 0.0.x לא נתמך יותר. כל משתמשיי הענף הישן מתבקשים לעבור לגרסה החדשה. יש לציין, לא ידוע לי על משתמש אחד שנשאר עם הגרסה הישנה.
הגיע הזמן לשרת וירטואלי פרטי
אחרי חמש שנים שהחזקתי את הבלוג שלי ואת כל האתרים שלי על המחשב הביתי, הגיע הזמן להעביר את התפקיד לשרת וירטואלי אי־שם בענן.
הסיבה העיקריות למעבר הן:
- Uptime נמוך, בעיקר אודות חברת החשמל וגם מידי פעם תקלות חומרה.
- חיבור לא אמין במיוחד מחו"ל שגרם לי להחזיק אתר המראה סטטי לפרויקט שלי.
אז הגיע הזמן לשדרג. כיוון שהאתרים שלי רצים על טהרת CppCMS זה לא היה דבר טריביאלי,
- מצד אחד, אני צריך שרת וירטואלי עם שליטה מלאה על יכולת התקנת התכנה, כולל התקנה של קובצי הריצה משלי, לכן, שירותי אירוח משותפים לא באו בחשבון, כי רובם לא מותאמים לטכנולוגיות כאלה.
- מצד שני, ממש אין לי צורך בשרת חזק, בעיקר בגלל שהטכנולוגית CppCMS היא חסכונית להפליא.
אחרי הרבה השוואות של מחירים (לא זולים) של שרתי VPS החלטתי ללכת על Amazon EC2, כיוון שאני משלם על מה שאני משתמש... וחוץ מרוחב הפס אני לא ממש הולך להשתמש בהרבה :-)
. לכן, החלטתי ש־Amazon EC2 יהיה אידאלי לטכנולוגיה שאני מציע.
ובכן, רכשתי שם המתחם, סידרתי שרת ב־EC2 ותוך זמן קצר עברתי ל־VPS משלי בענן.
כרגע יש לי שרת שמריץ lighttpd ומאחוריו שלוש יישומי FastCGI: עבור האתרים:
- http://cppcms.com - הויקי של CppCMS
- http://blog.cppcms.com - בלוג הפרויקט
- http://artyom.cppcms.com - הבלוג הזה.
השרת מהיר וקל כנוצה עם ערכי uptime:load average שווים ל־0.
עברתי שרת ושם המתחם
בשעה טובה, עברתי שרת.
אנא עדכנו את ה־rss שלכם לשרת החדש:
העברה אוטומטית מהכתובת הישנה (art-blog.no-ip.info) לחדשה מתבצעת בצורה אוטומטית אבל היא תיעלם בקרוב.
מועמד לשחרור ראשון של הדור הבא של CppCMS זמין להורדה
אחרי פיתוח אינטנסיבי של כשנתיים וחצי, המועמד לשחרור של הדור הבא של CppCMS זמין להורדה.
איפשהו באפריל 2009 היה לי ברור שהארכיטקטורה של הדור הראשון של CppCMS לא הייתה מוצלחת:
- ה־API היה בנוי בצורה שלא אפשר הרחבה קלה
- הארכיטקטורה לא אפשרה פיתוח מונחה אירועים: Comet
- הישענות על ספריות צג ג' כמו CgiCC ו־libfastcgi שהיו להן הבעיות API עמוקות, לא אפשרה לפרויקט להתקדם.
- המערכת הייתה קשורה בצורה מאוד מובהקת ל־POSIX API ולא אפשרה תמיכה טבעית במערכת הפעלה Windows.
אחרי הרבה חשיבה, הבנתי שכדי לעשות קפיצת מדרגה משמעותית, צריך להתחיל לארגן את הקוד מחדש והתחלתי לעבוד.
העבודה הניבה פֵרות וביוני 2010 שחררתי גרסת בטא ראשונה. היא תפסה תאוצה באופן מידי. תוך חודשים ספורים כמות ההורדות קפצה מכ־100 הורדות בחודש לכ־300.
מהר מאוד, גרסת בטא הפכה לפופולרית. רוב משתמשי ה־CppCMS החלו לעבוד אתה או אפילו עם גרסת הפיתוח הזמינות דרך ה־svn. היום, רוב משתמשי CppCMS (אם לא כולם) עובדים עם גרסת פיתוח בטא. כל האתרים הפומביים שידוע לי עליהם, רצים על תשתית CppCMS החדשה.
למרות שבאופן רשמי, הדור הבא של CppCMS נחשב בטא, הוא היה יציב, מתוחזק היטב ובדוק הרבה יותר מהגרסה "היציבה", הסיבה היחידה שהוא היה נקרא "בטא" היא שאפשרתי לעצמי לשנות את ה־API בצורה לא תואמת, אחור, לזרוק API שהיה בנוי בצורה גרועה, לשנות סמנטיקה, לשפר ועוד.
היום, שנתיים וחצי אחרי שנוצר ענף "refactoring" ב־svn ה־API התייצב ומועמד לשחרור הראשון זמין להורדה.
שוחררה גרסת 1.48 של Boost שמכילה Boost.Locale
סוף סוף שוחררה גרסה 1.48 של Boost. אחד הדברים המשמעותיים בה היא שילוב של Boost.Locale - ספריית הלוקליזציה שאני פיתחתי.
קישורים:
- אתר הפרויקט: http://www.boost.org
- הודעת שחרור: http://www.boost.org/users/history/version_1_48_0.html
- תיעוד Boost.Locale: http://www.boost.org/libs/locale/index.html
להזכירכם, Boost.Locale פותחה כחלק מפרויקט CppCMS