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

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

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

תחת הקטגוריות קוד פתוח. תגובה אחת »

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

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

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

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

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

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

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

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

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

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

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

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

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

תחת הקטגוריות קוד פתוח. 13 תגובות »

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

אי שם בשנות ה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 תצדיק את עצמה מבחינת ניצול הזיכרון. עוד חיסרון, הוא האיטיות היחסית של הטיפוס, היות והוא דורש המרה בזמן ריצה מערך אחד לשני וכן קביעה של הטיםפוס בזמן ריצה. למרות שיש דרכים לפתור את זה, הוא עדיין איטי יותר מאשר שימוש בטיפוס מוצהר.

תחת הקטגוריות קוד פתוח, תכנות. 3 תגובות »

בעייה ב 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 חווים את הבעיות האלו ?

תחת הקטגוריות קוד פתוח. 5 תגובות »

מזרים NX

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

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

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

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

תחת הקטגוריות קוד פתוח, תכנות. 7 תגובות »

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

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

השבוע כאשר פתחתי את ה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. במידה וקניתם חומרה ממקור לא ידוע, אז יש סיכוי שהם לא יתמכו.

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

תחת הקטגוריות asterisk, קוד פתוח. 6 תגובות »

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

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

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

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

תחת הקטגוריות קוד פתוח, תכנות. 5 תגובות »

עוד פרסומת ללינוקס

אבולוציה היא תהליך בו משהו משתנה למשהו אחר אשר הוא בד"כ יותר טוב.

את הפרסומת ניתן לראות כאן.

תחת הקטגוריות הומור, קוד פתוח. תגובה אחת »

עוד פרסומת ללינוקס

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

תארו לכם עולם בו הכל אפשרי, וכל אחד יכול לעוף….

את הפרסומת ניתן למצוא כאן.

תחת הקטגוריות הומור, קוד פתוח. 3 תגובות »

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

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

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

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

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

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

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

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

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

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

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

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

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

תחת הקטגוריות קוד פתוח. 7 תגובות »

עוד פרסומת ללינוקס

אזהרה, רוב הפורצים נכנסים דרך החלונות.

את הפרסומת המוזרה הזו ניתן למצוא כאן.

תחת הקטגוריות הומור, קוד פתוח. תגובה אחת »