פונקציות מוזרות בחלונות ושימושיות של תוכנה קניינית

הפוסט הזה הוא הֶלְחֵם של שני פוסטים. הפוסט הראשון הוא בקטגורית “דברים שלומדים כשעובדים על Wine”, וקרה לי לפני כמה ימים. השני הוא לגבי שימושיות תוכנה, והרעיון לו בא היום. הנושאים, באופן מפתיע, מדברים על אותו הדבר, ועל כן אוחדו.

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

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

הודעות שגיאה בעברית

כחלק מההתאמה של המייבא מישראבלוג ל-PHP 4, הצלחתי להתקל בהודעת השגיאה הבאה מ-PHP:

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /home/sun/sources/wordpress/test.php on line 7

למי שלא רוצה לשבור את השיניים על הביטוי המוזר באותיות גדולות, מה שכתוב שם זה “T_פעמיים_נקודותיים”, בהמרת אותיות פשוטה לאנגלית.

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

נתחיל מזה שניתוח טקסט שמיועד להיות שפת מחשב מתבצע, בד”כ, בשני שלבים. הראשון נקרא lexical analysis, בד”כ מתבצע ע”י תוכנה בשם lex על גרסותיה, והוא מבוסס על שפות רגולריות. בשלב הזה עוברים על הקוד ומקצים ייעוד לכל קבוצת אותיות. זה מספר, זה מזהה של משתנה, זה סימן “ועוד” וכו’. בשלב השני שנקרא “parsing”, מייצרים עץ שמראה את היחסים בין המזהים שמצאנו בשלב הראשון.

אם נקרא עוד פעם את השגיאה, עכשיו אפשר להבין אותה יותר טוב. בזמן ה-parsing מצאנו מזהה מהשלב הראשון במקום שלא ציפינו למצוא אותו. שם המזהה שמצאנו הוא “T_PAAMAYIM_NEKUDOTAYIM”.

למי שלא יודע, PHP מפותח בעיקר בחברה בשם Zend, שהיא חברה ישראלית. כנראה שמה שקרה הוא שהמפתח שהיה אחראי על כתיבת הקוד ל-lex לא ידע איך להגיד “פעמיים נקודותיים” באנגלית (double colon, למי שתהה). מתוך הנחה שאף אחד ממילא לא יראה את הקוד הזה אף פעם, הוא החליט פשוט לתת שם בעברית.
אלא שההנחה שאף אחד לא יראה את הקוד היתה שגויה. חיפוש בגוגל מראה שלא מעט אנשים נתקלו בהודעות שגיאה שמכילות את שם המזהה הזה, ורובם חושבים שמדובר בשפה מזרח אסיאתית כלשהי. היה אפילו מקרה אחד שהציעו לשואל לבדוק אם יש לו וירוסים, מה שמספר לנו משהו על וירוסים, ומספר לנו אפילו יותר על בני אדם.

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

שחר

הצדדים השליליים של VPN

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

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

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

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

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

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

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

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

שולח מנכ”ל החברה מייל:
“הבנתי הכל חוץ מדבר אחד. יאסר ערפאת?????”

ועל זה נאמר: “On the internet, no one knows you do metal mockups of Yasser Arrafat”

שחר

Bear