מאמרים בנושא ‏C++‎‏‏.

רישיון CppDB השתנה ל־BSL/MIT

ב־יום שבת, 8 בינואר 2011, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, תכנה ומחשבים, CppCMS, C++‎‏, Boost‏; ‏0 תגובות

החלטתי לשנות את רישיון CppDB - ספריית קישוריות ל־SQL לרישיון יותר מתירני רישיון כפול: רישיון Boost‏ או רישיון MIT‏ לבחירתכם.

בגדול, אני הייתי שמח להישאר עם רישיון יחיד - רישיון Boost, אבל ספריית MySQL לא מכילה חריגה עבורו, אז הוספתי רישיון MIT כחלופה. כך שאם אתם משתמשים ב־CppDB וב־MySQL אתם צריכים לנהוג לפי דרישות רישיון MIT.

לשינוי הרישיון היו מספר סיבות:

  1. אני רוצה לנסות להכניס את הספריה בשלב מסויים ל־Boost, כך ששינוי הרישיון היה מתוכנן בכל מקרה.
  2. אני מקווה שזה ירחיב את כמות המשתמשים והתורמים לפרויקט ויתן פרסום ודחיפה נוספים ל־CppCMS.

כדי למנוע אי הבנות: CppCMS עדיין משוחרר תחת LGPLv3 וזה לא עומד להשתנות.

שוחררה גרסה 0.99.5 של CppCMS שמכילה כלי חדש למניעת XSS.

ב־יום שבת, 1 בינואר 2011, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, תכנה ומחשבים, CppCMS, C++‎‏; ‏3 תגובות

שוחררה גרסה חדשה של CppCMS.‏

התכונה הבולטת שנכנסה לגרסה זו היא למעשה פילטר מניעת XSS שמבוסס על "רשימה־לבנה" וביצוע בדיקות רבות על HTML שמתקבל מהמשתמש. כלי כזה יאפשר שילוב בטוח של עורכי טקסט עשירים כמו TinyMCE‏‏ אפליקציות מבוססות CppCMS.

כמובן שזה כלי חדש ודורש review ובדיקה של זמן.

כרגע המסנן מופעל במערכת ויקי של CppCMS ואתם מוזמנים לנסות ולהכניס קוד זדוני בארגז החול של הויקי ולעשות Code-Review לפילטר עצמו xss.cpp ו־xss.h‏.

אם אתם מצליחים לעקוף את פילטר ה־XSS המופעל בויקי, אנא דווחו לי באופן מידי

עדכון: בטעות "ארגז החול" היה סגור לאורחים - זה תוקן, כל אחד יכול לערוך אותו ללא הרשמה

קישוריות לבסיסי נתונים מ־C++‎

ב־יום שלישי, 14 בדצמבר 2010, מאת ארתיום; פורסם תחת: תכנה חופשית, פיתוח, תכנה ומחשבים, C++‎‏; ‏24 תגובות

לאחרונה אני הייתי מאוד לא מרוצה מעבודה עם libdbi‏ בתור ספריית הקישוריות לבסיסי נתונים וגם לא הצלחתי להתחבר ל־SOCI‏ ממספר סיבות נוספות.

הספריה הראשונה libdbi לא תומכת בכלל ב־Prepared Statements, יש לה לא מעט בעיות בגישה לטעינה של מודולים, הספריה השניה soci לא מי יודע מה מוצלחת מבחינת הגישה שלה לפיתוח, בפרט, סירוב עקבי שלא לתמוך ב־Last-Insert-Id או עבודה קצת עקומה עם prepared-statements ומחזור שחרור גרסאות מאוד ארוך (שבפועל דורש ממך לעבוד עם גרסת git).

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

  1. לתמוך בצורה שקופה ב־prepared-statements וגם ליצור cache שלהם כך שתהליך ההכנה שלהם יתבצע בפועל פעם אחת בלבד בצורה שקופה.
  2. לתמוך ב־connection pooling בצורה שקופה ונוחה.
  3. אפשרות לטעון מודולים של בסיסי הנתונים בצורה דינאמית וגם לקשר אותם בצורה סטטית לצורך הפצה נוחה.
  4. גמישות מבחינת בחירה של statement רגיל ו־prepared.‏
  5. מהירות
  6. תמיכה מלאה ב־postgresql,‏ mysql וב־sqlite3.‏
  7. תמיכה במספר גבוהה ככל האפשר של בסיסי הנתונים דרך מערכת קישוריות חילופית (odbc).

כך נוצרה ספריית cppdb‏ הזמינה תחת LGPLv3 (קישור חילופי).

כמובן רבים יאשימו אותי בהמצאת גלגל מחדש, אבל למעשה יצרתי משהו מאוד ייחודי שלא קיים במרבית ספריות הקישוריות הקיימות (ולא רק ב־C++‎) - הסיבה העיקרית זאת הנוחות העבודה עם prepared-statements והשמירה האוטומטית שלהם לצורך השימוש החוזר שנותנת תוספת ביצועים של עשרות אחוזים.

בנוסף שחררתי גם עדכון ל־dbixx‏ (המעטפת של libdbi) המביאה מספר תיקונים ושיפורים יחד עם ההחלטה להזניח את הפיתוח שלה תוך כשנה לטובת ה־cppdb.

CppCMS מול Java/JSP,‏ C#/Asp.Net‎‏, PHP

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

פרסמתי השוואת ביצועים עדכנית בין CppCMS ושלוש טכנולוגיות web מובילות: PHP,‏ Asp.Net/Mono ו־Java/JSP.

התוצאות וההסברים פורסמו כאן: http://art-blog.no-ip.info/cppcms/blog/post/67

שוחררה גרסה מקדימה של Boost.Locale 3.

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

שלום,

שוחררה גרסה מקדימה של Boost.Locale

חדש בגרסה:

  • התווספה תמיכה במנגנוני לוקליזציה מרובים:
    • ספריית ICU - ברירת מחדל
    • תמיכה בסיסית של הספריית הסטנדרטית של C++‎ עם שיפורים.
    • POSIX 2008 API (כמו strftime_l)
    • Windows API.

    התמיכה הזו מאפשרת להשתמש בכלי לוקליזציה בסיסיים גם ללא ספריית ICU הכבדה.

  • שיפורים משמעותיים בממשק וניהול לוקלים
  • תיקוני ביצועים עובר ICU
  • שיפורים בעבודה עם UTF-8
  • תיקונים בתמיכה ב־UTF-16

ועוד.

קיימת תמיכה ב:

  • מערכות הפעלה: Linux, ‏FreeBSD,‏ OpenSolaris,‏ Windows,‏ Cygwin, (בקרוב גם Mac OS X).
  • מהדרים (קומפיילרים) gcc (גרסאות 3.4 עד 4.5), ‏Intel 11,‏ MSVC9, ‏SunCC 5.10/stlport

העמוד הבא

העמוד הבא

דפים

נושאים