Embed a resource to a static library (nothing is impossible)

I needed to embed a resource (icon) to a static library so we can deploy just the .lib and .h files with no need to include any graphics or .rc files.

I wanted my static library to be used by any application including such that don’t have any graphic user interface, i.e. Console applications, etc.

I posted a question in Stack Overflow and Code Project and the responses were: That’s not possible…

Here is the question I have posted:

Is there a way to embed resources (such as icons, dialogs) in a c++ (Win32 API) static library? My purpose is to embed an icon in the static library in a way that functions that use LoadIcon will work as if it was a normal .exe so the main application can only link to the static library and include a header file, with no requirement to add other files such as .rc files, or .ico files, etc. Clearly the main application who uses the static library doesn’t have this resource so LoadIcon will fail, however I was wondering if there is a workaround to make it work. A static array with the icon data can work as long as the standard API calls (such as LoadIcon) will work.

To explain further, the person who will be using the static library will only have 2 files: .lib and .h and will not have any .rc file

 

Comments that followed:

“It is not possible, you can stop looking. Consider a DLL project instead.

At Code Project I was pointed to the following Stack Overflow thread:

” I read them but we wish to deploy 2 files: .lib and .h. These solutions require deploying the .rc file and having whoever uses our static library to link / include it as well.”
 
“Then there is no solution from my point of view.
The SO thread covers it all.”

Here is the solution I have found after some research I found a way. Using my method, an icon can be used as an integral part of a static library and such library can be used by any type of application, including a console one (which doesn’t have any resource segment whatsoever).

1. Icon is converted to a static array of BYTE. bin2c can be used for that.

2. Data is converted into a HICON handle. Here is how I have done that:

HICON GetIcon()
{ 
   DWORD dwTmp;
   int offset;
   HANDLE hFile;
   HICON hIcon = NULL;
   offset = LookupIconIdFromDirectoryEx(s_byIconData, TRUE, 0, 0, LR_DEFAULTCOLOR);
   if (offset != 0)
   {
      hIcon = CreateIconFromResourceEx(s_byIconData + offset, 0, TRUE, 0x00030000, 0, 0, LR_DEFAULTCOLOR | LR_DEFAULTSIZE);
   }
   return hIcon;  
}
3. GetIcon is used instead of LoadIcon.
Instead of calling:

I call

m_hIcon = GetIcon()

To test it, I created a Console application and a new static library. I added to the static library the XMessageBox class which allows using a custom icon.
The Console application just calls a function located at the static library and the icon is displayed!

See also:

Institue of Directors

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

 

Emma with Rebecca

We met Rebecca on November 2004 at Starbucks, Dortmund. Emma made a nice drawing of her and have it to her.

שלט בבית קפה בסקופיה, בירת מקדוניה

ארגז החול שלי

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

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

על מנת להירשם ולהתנסות בסביבת הפיתוח של PayPal נכנסים ללינק הבא: https://developer.paypal.com/cgi-bin/devscr?cmd=_signup-run

Register

עכשיו, יש להמתין למייל האישור זאת על מנת להפעיל את החשבון.

לאחר שהחשבון מופעל, מבצעים לוג-אין ומגיעים למסך הבא:

50paypal2.jpg

יש ללחוץ על Create a preconfigured account

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

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

89paypal3.jpg

לוחצים על Create Account והחשבון נוצר.

לחשבון מוקצים כתובת מייל (שהיא שם משתמש) וסיסמה. כתובת המייל אינה צריכה להיות אמיתית, משום שהיא משמשת אך ורק לכניסה לחשבון.

62paypal4.jpg

ופרטי החשבון כולל מספר כרטיס ויזה (משום מה המספר שמופק הוא תמיד ויזה), פיקטיבי לשימוש בSandBox:

97paypal5.jpg

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

לסיכום: ארגז החול של PayPal בשונה מארגז החול הזכור לכולנו מהילדות, משמש הרבה יותר מבניית ארמונות בחול ויכול לחסוך זמן ומשאבים המוקצים לבדיקות ותקופת הרצה למערכות הכוללות מרכיב של billing ו-E-commerce.

עשרות עצורים בפרשת האזנת סתר לסמרטפונים

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

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

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

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

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

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

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

קיבלת לינק לתמונות מדהימות של הזריחה והוא נשלח מהדודה שלך? זכור שניתן לזייף את מקור ההודעה וייתכן ולא הדודה שלך את הלינק.

spyphone.png

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

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

תהליך פיתוח תוכנת טרגט איי

 

 

שלוש שאלות – סיפור קצר מאת מיכאל האפרתי

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

אבל עכשיו, לפנות ערב, ההליכה היא הday off שלו. המסלול אותו מסלול אבל ההתחלה לא מפחידה ועם זאת הסיום אינו מספק. כשיחזור לביתו לא ייפול שדוד. הוא מביט על הרצים האחרים. הוא מכיר אותם והם אותו. הפעם הם רצים והוא הולך. בהליכה ראלף שם לב לפרטים הקטנים, אלה שחומקים מעיניו בשעת הריצה. “כמה נעים ללכת כאן”, הוא חושב, אבל לא בטוח אם התחושה הנעימה היא הדחקה של הויתור על הריצה, כמו נער בבית הספר שהתחמק משיעור התעמלות. חודשים אחרי שהתמיד בריצה, בוקר בוקר, ערב ערב, למרות שחזר ואמר לעצמו: “כמה משעמם לעשות ספורט, אבל כמה מספק להיות בכושר גופני, איזה תחושה נפלאה זה נותן לעשות את ה-4 ק”מ היומיים שלו”, ולכן חייבת להישאל כאן השאלה: למה בעצם החליט ראלף לא לרוץ באותו ערב?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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