ארכיון חודשי: נובמבר 2010

FPC 2.4.2

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

class var

FPC מיישם כל מיני תוספות לשפה אשר Embarcadero הוסיפו לדלפי כמה מהתוספות מכניסות את שפת פסקל מונחת העצמים להיות קרובה יותר לשפת ג'אווה ואפילו תוספות שאני מכיר רק ברובי (אולי יש בעוד שפות) מאשר השפה שהתרגלנו אליה.

למשל אפשר בתוך מחלקה (class) ליצור קבועים (const), שימוש בהגדרות טיפוס (type) ובכלל זה גם הגדרות של טיפוס מסוג רשומה ואפילו מחלקות בנים. בנוסף אפשר ליצור גם class var, שזה בעצם משתנה במחלקה אשר הערך שלו נשאר אצל כל ה instance והבנים, ואם אחד מהם משנה אותו, אז הוא משתנה אצל כולם באותה מידה. אני מכיר את זה רק בשפת רובי, אבל לא אתפלא אם עוד שפות תומכות בזה.

בניגוד למשל לשפת ג'אווה ואפילו ++C, בפסקל אני יוצר איזור (section) אשר משפיע על השאר, כלומר כאשר אני מגדיר const או type או אפילו class var, עד שאני לא יוצר איזור חדש של משהו אחר (private, public, published, const, הגדרת מתודות וכו') או סוגר לגמרי את המחלקה (עם end), תמיד הקוד שיהיה בתוך האיזור יהיה שייך לאיזור הזה. בגלל זה גם נוסף הגדרה של var בשביל ליצור שדות שיצאו מחוץ לאיזור קיים. וגם var עצמו יוצר איזור משל עצמו.

כמו כן, כבר הרבה מאוד זמן יש תמיכה במילה השמורה deprecated אשר המטרה שלה הוא להגיד שהגדרת קוד/בלוק מסויים הוא כמובן deprecated מה שיוביל לאזהרה מהמדר.

כלומר מחלקות בפסקל מונחה עצמים יכולים להראות ככה:

type
 generic TAClass<T> = class
   constructor Create(const AParam : T);
 end;

  TTest = class
  private
    type
      TIntegerAClass = specialize TAClass<Integer> deprecated;
    var
     FAClassInt : TIntegerAClass;
  public
    property AClassInt : TIntegerAClass read FAClassInt; // read only property ...
  end;

אל תגידו שלא הזהרתי אותכם מראש 🙂

פיסת ענן

לקוח חדש לקח אירוח VPS אצל אחת הספקיות אירוח בארץ (לצערי לא איפה שהצעתי לו), והוא קיבל במחיר "זנות" שרת VPS. עכשיו הוא לא באמת קיבל VPS אלא ענן. טוב הוא כן קיבל VPS אבל הספק קורא לזה ענן.

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

אני חושב שחץ הסביר את הנושא מצויין.

כאב הראש לאחר בעיות מתח בשרת

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

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

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

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

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