ארכיון חודשי: אוגוסט 2008

שורת פקודה, מתקפת הכלים

מזה הרבה שנים יש לי רעיון למנהל קבצים גרפי שמאפשר גם לעבוד עם שורת הפקודה. עכשיו כאשר אני מדבר על שורת הפקודה, אני לא מדבר על Bash או איזה shell, אלא שהפקודות לביצוע דברים במנהל עצמו.

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

10 דברים שמאוד מעצבנים מפתחים

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

ברשימה ניתן למצוא דברים כמו שינוי Feature מסויים אחרי התחלת עבודה, לכתוב תיעוד, לא לקבל תיעוד (זה לא אירוני משהו ?!) ועוד נושאים שונים.

את הפוסט ניתן למצוא בכתובת:

http://www.kevinwilliampang.com/post/Top-10-Things-That-Annoy-Programmers.aspx

תוכנות קוד פתוח לווינדוז

קיבלתי אתמול טלפון "עידו תגיד, אתה יכול להתקין לי אופיס על מחשב חדש שקניתי"

עניתי לאותו אדם: "יש לך את הדיסק ?"

אותו אדם: "אה דיסק…"

אני: "אני יכול להתקין לך OpenOffice אם אתה רוצה"

הוא: "כן אופיס…"

הלכתי היום אל אותו אדם והתקנתי לו OpenOffice, Pidgin, Firefox וכמובן Thunderbird.

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

הטיפוס בעל מגוון הפרצופים

אי שם בשנות ה90 נכנסה לשפת פסקל תמיכה ביכולת לעבוד עם טיפוס אחד שיכול להיות או מספר שלם, או מחרוזת, או ממשק של COM/CORBA ואחרים. בעצם כמעט כל דבר שנרצה.

הטיפוס הזה נקרא variant. אלו שמתכנתים או תכנתו בעבר בVisual Basic בטח מכירים אותו (הוא מוגדר כאשר אתם לא מגדירים שום טיפוס למשתנה איתו אתם עובדים).

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

השימוש ב variant מתבצע בצורה הבאה:

program test_variants;
uses variants;
var
my_var : variant;
counter : integer;
begin
counter := 10;
my_var := 'Hello World';
writeln(my_var);
my_var := counter;
writeln(my_var);
counter := my_var - 3;
my_var := counter + 0.5;
writeln(my_var);
end.

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

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

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

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

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

בעייה ב Wordpres חלק 2

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

מי מפחד מהקוד הפתוח ?

רובכם יודעים שאני מנסה להיות עצמאי וליצור פתרונות מעל Asterisk.

למי שלא יודע, Asterisk היא מרכזיית טלפוניה הכתובה בשפת C ומשוחררת ב GPL. החברה שמפתחת (בעיקר) את Asterisk היא חברה בשם Digium.

עד כאן סביר להניח שאני לא מחדש שום דבר כמעט לאף אחד.

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

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

הרי לקחת את ה CDR של השיחה, להוסיף לו שדות פרטיים וכו', זה דבר שכל מי שמכיר Asterisk ברמת תכנות יכול לעשות. ליצור ממשק לזה ? תנו לי רבע יום עבודה ותקבלו לוג מוכן ומעוצב בתור דף HTML.

תמיכה לכך שהמרכזייה תדבר בעברית תקנית ? למה לתרום שכולם יהנו, אם אפשר לגבות על זה מחיר מופקע ?!

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

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

גניבת זהויות באינטרנט

לרובנו יש בלוג באינטרנט, חלקנו מככבים גם בבלוגים של אחרים, ובכלל אנחנו מאוד פעילים ב facebook, myspace ושאר הרשתות החברתיות.

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

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

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

למה לעבוד עם פסקל

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

אנשים אשר ראו את ההתחלה של המאמר החליטו להרים את הככפה ולכתוב משהו יותר טוב ממה שהתחלתי לעשות. המאמר שהם כתבו הוא פחות לוחמני ויותר ענייני.

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

בעייה ב WordPress

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

ביום חמישי בערב מישהו/משהו השתנה/שינה בעיצוב של הבלוג כאשר אני נמצא בממשק העברי שלו. מעניין אם תצליחו לראות מה השתנה בתמונה שאני מצרף.

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

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

מזרים NX

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

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

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

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

לחפש את הפתרון המושלם

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

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

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

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

בכל מקרה, האתר נקרא fridayreflections, וניתן למצוא את הקומיקס בכתובת הבאה (שלומי הכתובת הזו טובה יותר ?): http://fridayreflections.typepad.com/weblog/2008/08/practice-makes.html

חופש המידע או מידע ללא פלטפורמה

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

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

כשאין כוח לחנך – מצנזרים

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

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

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

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

אז מי מפחד מחינוך ?

לעבוד ברובי עם Eclipse

בהרצאה שהעברתי על רובי, נשאלתי שאלה לגבי עורכי טקסט/סביבות עבודה בשביל לתכנת ברובי. כמובן שתשובה הרגילה שלי היא vim, אבל יש עוד הרבה כלים אחרים כדוגמת Eclipse, net beens, והרשימה עוד ממשיכה.

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

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

בכל מקרה, רוב האנשים שאני נתקלתי לא מצאו את עצמם באותה בעיה, ולכן אתם מוזמנים לקרוא את המאמר כאן.

כיצד להתקין מרכזיית Asterisk על לינוקס

נתקלתי במאמר הבא שמסביר ומראה כמה פשוט להתקין מרכזיית אסטריסק על גבי לינוקס (במקרה הזה אובונטו).

לפני שתקראו אותו (במידה ותרצו כמובן), כמה נקודות חשובות שמקריאה מהירה של המאמר לא נאמר שם (אבל יכול להיות שסתם פיספסתי כי לא התעמקתי בכתוב):

  1. כאשר מתקינים שרת שהתפקיד שלו לבצע משהו ספציפי, רצוי שכמה שפחות דברים יותקנו עליו בשביל שה"אנרגייה" תלך לכיוון הדברים שכן רוצים שהשרת יעשה, כך שמערכת גרפית בד"כ מיותרת לחלוטין, וכן 3/4 מהדברים שמותקנים בדרך קבע על הפצת Desktop. זו הסיבה שלדעתי צריך להעדיף דביאן על פני אובונטו לשרתים.
  2. חייבים לוודא שהחומרה שלכם נתמכת כמו שצריך ע"י הגרעין של לינוקס,
  3. במידה ותרצו תמיכה ב PRI/FXO יש לוודא שהכרטיסים שלכם נתמכים ע"י zaptel. במידה וקניתם חומרה ממקור לא ידוע, אז יש סיכוי שהם לא יתמכו.

ישנם עוד נקודות, אבל אלו הדברים החשובים באמת שיש לשים לב אליהם. בהצלחה !

Generics בפסקל מונחה עצמים

החל מגרסה 2.0.0 של FPC, נכנסו לעבוד על Generics, אשר ב 2.0.4 גם שוחררה תמיכה ראשונית בטכנולוגיה.

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

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

נקודות ושאלות לגבי אל פסק

בשנה האחרונה חוויתי הרבה בעיות חשמל שונות. החלטתי שאני צריך אל פסק והתחלתי ללמוד את הנושא.

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

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

דבר ראשון ישנם 2 סוגי אל פסק שמתאימים למחשב אישי:

  1. אל פסק interactive מספק גל סינוס (ולא מדמה אותו). העניין הוא שלוקח X מילי שניות מהרגע שהוא עובר מAC לחשמל שמגיע מהסוללה.
  2. אל פסק OnLine – הוא מספק גל סינוס אבל בניגוד ל interactive, הוא מספק תמיד חשמל מהסוללה, ולכן זה שקוף עבורינו כאשר יש בעיות חשמל.

Online כמובן שעולה הרבה יותר (לפעמים הבדלים של אלפי שקלים בינו לבין interactive).

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

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

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

איזה על פסק אתם ממליצים של 1000VA ?

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

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

מדריך עברי לרובי על מסילות

היות ונשאלתי הרבה שאלות על תכנות ברובי על מסילות, ויש מחסור חמור במדריכים טובים (שלא לדבר על מדריכים בעברית),

ולכן חשבתי ליצור בזמן ה"חופשי" שלי (<פולניות> זה לא שאני צריך חיים </פולניות> ) מדריך בעברית לרובי על מסילות.

במידה ואתם מעוניינים במדריך כזה, אז אנא השמיעו את קולכם.

ובמידה ויש לכם נושא התחלתי שהייתם רוצים לראות אותו בצורה מודגשת יותר במדריך כזה, אנא ציינו גם את זה.

את הקריאה הזו גם הוספתי ב whatsup.

מתי תצא לזרוס 0.9.26 ?

אחת השאלות שנשאלות לאחרונה בפרוייקט לזרוס, היא מתי הגרסה 0.9.26 תצא.

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

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

שוחררה גרסה 2.2.2 של FPC

שוחררה היום גרסה 2.2.2 של FPC.

בראש ובראשונה זו הגרסה הראשונה של FPC שמגיעה אחרי עבודה ב clean room, בו מומשו מחדש פונקציות ופרוצדורות לאחר שנמצאו כי הן מספיק חשודות בקירבה שלהן לצורה בה בורלנד/code gear/inprise שיחררו את הקוד שלהם עם דלפי.

בין היתר נכנסו עוד שינויים ותוספות למהדר. את חלקם סקרתי כבר בהכרזות של גרסאות הניסוי השונות (release candidate).

חלק מהשינויים שנראה הם:

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

את המשך רשימת השינויים ניתן למצוא בכתובת הבאה.

ניתן להוריד את הגרסה החדשה כאן.

לאתר המראה הישראלי (מתארח בmirmar) יש ללחוץ כאן.

ניטור פעולות עצמיות ב svn

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

לשם כך נולדה התוכנה הבאה: SVN Local Repository Monitor.

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

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

שימושיות התוכנות בעולם הקוד הפתוח

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

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

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

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

FPC Static's vs GCC Dynamic's פרק אחרון

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

הניסוי שעשיתי התחלק ל2:

  1. מדידת משאבים לפי vmSize/vmRSS
  2. מדידת maps של התוכניות

דבר ראשון יצרתי 5 תוכניות בפסקל ובC שעושות את הדבר הבא: להמשיך לקרוא

חוסר פתיחות מחשבתית

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

מה שמפריע לי בוויכוח הזה הוא שאף אחד לא ניסה לעשות מעבר למה שכתבתי משהו שיוכח את הטענות שלהם שהשיטה לא נכונה (ארתיום להשתמש ב gcc לא יוכיח כשאני מדבר על FPC). להמשיך לקרוא

הגודל (של קבצי ריצה) לא קובע

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

אם ניקח את הדוגמאות הבאות: להמשיך לקרוא

SEVEN LIVES MANY FACES

ב19 לספטמבר אניגמה ישחררו תקליט חדש (2 דיסקים) בשם Enigma 7: Seven Lives Many Faces.

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

כמה מילים על חוק הזיהוי החדש

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

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

להמיר ללינוקס

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

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

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

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

מה אתם אומרים ?

סטיב ג'ובס לפי Calvin and Hobbs

אוקי, אז זה לא בדיוק Calvin and Hobbs, אבל לדעתי הביקורת על סטיב ג'ובס היא במקום!

את התמונה גיליתי באמצעות Digg, וניתן לראות אותה כאן.

אז מישהו רוצה iphone ?

להבהיר את הטכנולוגיה

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

למשל גם דיאגו וגם אילן שביט היו בטוחים שבשביל להפיץ תוכנה שכתובה בFPC, צריך עוד ספריות והתקנות מעבר לספריות הרגילות שמתמשים בהן (GTK, QT, libc וכו'). ובכן פרט לQT שמכילה wrapper הכתוב בC (כי כרגע FPC לא יודע לעבוד עם מחלקות של ++C המהודרות למידע בינארי -> ד"א הבעיה גם הפוכה, ++C לא יודעת לעבוד עם מחלקות שמהודרות בפסקל/FPC), ומשם בעצם אנחנו משתמשים ב QT ומרכיבים את המחלקה מחדש רק בפסקל.
כך שאם אנחנו מהדרים קוד לטרמינל שמשתמש רק ב libc, אין צורך פרט לקובץ ריצה שום דבר אחר להתקין בנוסף מול התלויות הרגילות שלא קשורות לשפת פסקל.

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

כאשר אני מדבר על פסקל מבחינת כלים כמו מסד נתונים, קשה מאוד הלשוואת את זה אל מול הגישה של ++C, היות ופסקל מבית בורלנד (וכן FPC) מכיל API זהה לגישה לכל מסדי הנתונים, אבל מתחת למנוע, מגיעים גישות שונות בהתאם לצורך. כך שתאורטית (עם הסתיגויות) אני יכול לעבוד עם איזה מסד נתונים שאני רוצה, בלי לשנות את הקוד שלי. הבעיה היא שזה לא ORM, כך שכן נדרשת כתיבת SQL, מה שגורם בכל זאת לתלות כזו או אחרת.

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

אוגוסט פנגווין 2008 חלק ב'

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