‏הצגת רשומות עם תוויות טכנולוגיה. הצג את כל הרשומות
‏הצגת רשומות עם תוויות טכנולוגיה. הצג את כל הרשומות

יום שבת, 18 בספטמבר 2010

תעצרו את העולם...

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

יום שישי, 7 במאי 2010

מה זה היברידי ולא מכונית?

בשבוע שעבר שוב השתתפתי בכנס של ה-IMA. הפעם עסק הכנס באפליקציות היברידיות, או בעברית, יישומי כלאיים (אל דאגה, הרגע המצאתי את הנוסח העברי, אף אחד שם לא השתמש במונח הזה). תודו שזה נשמע לכם מרתק. עכשיו אתם בטח שואלים את עצמכם את השאלה הבאה: "יישום כלאיים אמור להיות הכלאה של שני סוגי יישומים שונים. אילו סוגי יישומים קיימים?"
שיחקתם אותה, זו באמת שאלה מצויינת. ובכן, בעולמם המכשירים הניידים נהוג להבדיל בין שני סוגי יישומים עיקריים. יישומים שרצים על המכשיר (Native), ויישומי רשת (Web). לכל אחד מסוגי היישומים הללו יש יתרנות וחסרונות שנובעים מעצם טבעם. יישומי Native הם בעצם קבצים בינאריים מסוג זה או אחר שמותקנים בזיכרון המכשיר. יישומי רשת נמצאים על השרת ורצים על המכשיר באמצעות דפדפן האינטרנט.
יישומי רשת זולים יחסית לפיתוח. לא צריך לפתח את היישום מחדש עבור כל מערכת הפעלה וכל מכשיר (פעולה הידועה כ-Porting). מספר הדפדפנים הקיימים בשוק מצומצם הרבה יותר ממספר דגמי המכשירים כך שניתן להגיע לנתח שוק רחב בהשקעה נמוכה יחסית. כמו כן, ניתן להריץ את יישומי הרשת על מכשירים הרבה פחות מתקדמים (בעלי מעבד חלש ומעט זיכרון) ולכן גם זולים יותר.
מצד שני, יישומי הרשת מוגבלים ביכולות שלהם. כיוון שהם לא נמצאים על המכשיר, אין להם גישה לתכונות רבות של המכשיר. הם לא מסוגלים לקרוא ולכתוב את רשימת אנשי הקשר של המכשיר, או לגשת לסנסורים של המכשיר (כגון מד תאוצה, או מד שטף מגנטי - תודו שלא ידעתם שיש לכם כאלו במכשירים הניידים). חסרון נוסף של אפליקציות הרשת הוא שהן מופעלות רק דרך הדפדפן - אין אפשרות להשתמש בהן ב-Offline, ללא לגלוש באינטרנט.
יישומי Native נהנים מהימצאותם על המכשיר, ויש להם גישה לכל הממשקים שהמכשיר מספק. הם יכולים במקרים מסויימים להידמות לאפליקציות של מערכת ההפעלה. מצד שני, פיתוח של יישום כזה הוא יקר יחסית. הוא יקר מכמה סיבות. הסיבה הראשונה היא שיישומים אלו הם בד"כ יישומים מורכבים יותר מיישומי הרשת. הסיבה השנייה נקראית פראגמנטציה (צר לי, לא מצאתי את המילה המתאימה בעברית - אולי פיצול). משמעות הפראגמנטציה בשוק המכשירים הניידים היא שכל מערכת הפעלה, ולפעמים גם מכשירים שונים המשתמשים באותה מערכת הפעלה, שונים זה מזה במידה כזו שלא תאפשר ליישום לרוץ באותו אופן על מכשירים שונים. אם אני מפתח יישום למכשירי אנדרואיד, אני לא יכול להפעיל אותו על iPhone, או בעצם על כל מכשיר שהוא לא אנדרואיד. מצב זה גורם לכך שעל מנת לכסות נתח שוק נרחב, עלי לייצר לפחות 3-4 יישומים שונים, שעלות כל אחד מהם עלולה להיות משמעותית. הסיבה השלישית היא קושי ההפצה - על מנת שהיישום ירוץ, אנחנו צריכים לגרום למשתמש להתקין אותו על המכשיר. לכל מערכת הפעלה יש דרך משלה להתמודד עם בעית ההפצה, אבל העסק לא תמיד פשוט. כמו כן, בעת העלאת גירסת תוכנה מתקדמת יותר, יש לחזור על תהליך ההפצה מחדש.
יישומי הכלאיים משלבים בין שני סוגי היישומים המובהקים. מצד אחד, יש להם חלק שנמצא על המכשיר ויכול לגשת לכל הממשקים שהוא מציע. מצד שני, היישום ניגש לרשת על מנת להוריד משם את התוכן. היישום שפיתחנו בכנס הוא דוגמא טובה. פיתחנו יישום שמציג את הדפדפן של המכשיר. היישום מתחבר לסנסורים של המכשיר ומזהה מתי המשתמש מזיז את המכשיר. בתזוזה שמאלה, היישום מציג בדפדפן את אתר עיתון הארץ. בתזוזה ימינה, היישום מציג את האתר של רוטר.
השאלה המעניינת בנושא יישומי הכלאיים היא האם ניצול היתרונות של שני סוגי היישומים יהיה משמעותי יותר מהחשיפה של היישום לחסרונות. יישומי כלאיים יישארו חשופים לפראגמנטציה של המכשירים ולכן כאשר מפתחים יישום כזה, הוא חייב להיות מספיק מתוחכם על מנת שהחלק שמחובר למכשיר יוכל לתמוך, ללא שינוי, בגרסאות עתידיות של של החלק שמחובר לרשת.
המגמה בעולם, נוטה לכיוון של יישומי רשת, אולם תשתית הרשת עדיין לא חזקה מספיק על מנת לדחוק את רגלי יישומי המכשיר מהעולם. יישומי כילאיים אמורים להיות הגשר בדרך לשם, אבל הם נמצאים עדיין בתחילת דרכם. מי שיידע ליצור אותם בדרך שיתרונותיהם יגברו על חסרונותיהם, ייצור לעצמו יתרון גדול בשוק, אבל כמו שאני רואה את הדברים כרגע, יהיה קל מאוד ליפול למלכודת שתיצור יישומים מרובי חסרונות ובעלי יתרונות מוגבלים בלבד.
יהיה דיסקו.

יום חמישי, 4 במרץ 2010

בואו נעשה פעילות

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

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

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

יום שישי, 15 בינואר 2010

מה הכוונה באנדרואיד?

בפעם שעברה סיפרתי לכם על הדילמה של אנדרואיד - מצד אחד, כל אפליקציה רצה ב-Process משלה, ומצד שני ניתן לשתף אפליקציות אחרות ולאפשר להן להשתמש ברכיבים שכתבת. הדרך לעשות את זה היא באמצעות אובייקטים מסוג Intent.
ל-Intent (שאני אקרא לו גם כוונה) יש מספר חלקים, כשהעיקריים הם: פעולה, קטגוריה, מידע (Data), וסוג המידע (Mime-Type). הכוונה היא האובייקט שעובר במערכת ולפיו מערכת ההפעלה של אנדרואיד מחליטה אילו רכיבים להפעיל. ההחלטה הזו מתבצעת לפי ההתאמה של ה-Intent ל-Intent Filter.
Intent Filter הוא הדרך שבה רכיב כלשהו מספר למערכת ההפעלה אילו כוונות אמורות להפעיל אותו. מוגדרות בו הפעולות שהרכיב יכול לבצע, כמו VIEW, עבור רכיבים שמאפשרים לנו לצפות בתוכן מסוג מסוים - סרטים, תמונות, קבצי שמע, או PICK, עבור רכיבים שמפשרים לנו לבחור מתוך התוכן הנ"ל. הפעלה של האפליקציה מתוך תפריט האפליקציות גם היא פעולה מסוג מסוים. פרט לפעולה אנחנו יכולים להגדיר גם את סוג התוכן שעבורו הרכיב פועל ואת ההרשאות שדרושות עבור הפעלת הרכיב.
כאשר משתמשים בכוונה, מערכת ההפעלה בודקת בכל הרכיבים הרשומים אצלה, אלו רכיבים הגדירו Intent Filter שמתאים לכוונה, ומפעיל את הרכיב/ים המתאים. יש מספר דרכים להפעיל רכיבים באנדרואיד: Broadcast, התחלת שירות (Service)  והתחלת פעילות (Activity).
כוונה שמשודרת בשידור רחב (Broadcast) משודרת לכל הרכיבים מסוג Broadcast Receiver (נדון בו בעתיד) שמוגדרים במערכת ושקיים עבורם Intent Filter מתאים.
כוונה שמשודרת כהתחלת שירות, תפנה ל-Service (גם בו נדון בעתיד) שקיים במערכת ושה-Intent Filter שלו מתאים ביותר לכוונה ששודרה.
כוונה שמשודרת כהתחלת פעילות (Activity), תמצא את הפעילות המתאימה ביותר לביצוע הכוונה ותתחיל אותה. במידה ויותר מפעילות אחת מתאימה, מערכת ההפעלה תשאל את המשתמש באיזו פעילות הוא מעוניין להשתמש. ניתן להתחיל פעילות בשתי דרכים: על מנת שהיא תרוץ, וע"מ לקבל ערך החזר ביציאה ממנה.
יש עוד ניואנסים רבים לשימוש בכוונות באנדרואיד, אולם העיקר פרוס פה לפניכם. בפוסט הבא, נתחיל לדון ברכיבים השונים של האפליקציה - Activity, Service, Broadcast Receiver ו-Content Provider.

יום חמישי, 14 בינואר 2010

RSS - שירות לקוראים

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

אלו מכם שגולשים באמצעות האינטרנט אקספלורר של מיקרוסופט, יראו את הצלמית (Icon) הזו:
  סמוך לצלמית של דף הבית. כאשר לדף האינטרנט שבו אתה צופים יש ערוץ עדכונים, הצלמית כתומה. כאשר אין בדף ערוץ עדכונים, הצלמית אפורה.
כאשר אתם לוחצים על החץ השחור הקטן שליד הצלמית, נפתחת רשימה של ערוצי העדכון האפשריים. כעת, עליכם לבחור בערוץ Run For Your Life - RSS. אפשרות אחרת היא פשוט ללחוץ על הצלמית. לאחר הבחירה, תעברו  לדף של ערוץ העדכון של הבלוג. בדף הזה מופיעים קישורים לפוסטים האחרונים בבלוג. מעל הקישורים מופיעה מסגרת צהובה ובתוכה טקסט שמסביר על ערוצי עדכון.
מתחת לטקסט מופיע הקישור הבא: Subscribe to this feed. לחצו על הקישור וייפתח לכם חלון ע"מ להרשם לערוץ העדכון. כל שעליכם לעשות הוא לסמן את האפשרות "Add To Favorite Bar" וללחוץ על כפתור Subscribe.
כעת, נוסף לכם ליד ה-Favorites כפתור שמייצג את הבלוג. הכתובית של הכפתור היא Run For Your Life, וכל פעם שיש תוכן שטרם קראתם בבלוג הכתובית תופיע מעובה.

בהצלחה

יום רביעי, 23 בדצמבר 2009

אנדרואיד - מתחילים

לפני שבועות מספר, כתבתי פה על אנדרואיד, מערכת ההפעלה החדשה לטלפונים סלולריים (ולא רק לטלפונים) מבית גוגל. היום אני מתכוון להסביר, במה פיתוח אפליקציות לאנדרואיד שונה כל-כך בפיתוח אפליקציות למערכות הפעלה אחרות. הפוסט הזה הולך להיות קצת טכני, ולא ידבר למי שאין לו רקע בפיתוח תוכנה - עמכם הסליחה.
אחד היתרונות המרכזיים של אנדרואיד, הוא שהמערכת מאפשרת לי שימוש קל ונכון ברכיבי תוכנה שאינם שייכים לאפליקציה שלי. אחד המאפיינים המרכזים של אנדרואיד, הוא שכל אפליקציה רצה על Virtual Machine משלה ב-Process נפרד, כך שהיא לגמרי לא מודעת לקיומן של אפליקציות אחרות, וודאי שאינה יכולה לחלוק עימן מידע. דומה כי שני המשפטים הקודמים שכתבתי אינם מתיישבים יחדיו היטב, אולם מערכת ההפעלה של אנדרואיד מציעה סט שלם של כלים על מנת לאפשר שיתוף מוגן וקל בין אפליקציות. בפוסט זה ובפוסטים הבאים בנושא, נכיר את הכלים הללו. הבה נתחיל אם כן.
מבנה אפליקציה באנדרואיד, שונה משאר האפליקציות שאולי הכרתם בעבר. בניגוד לרב המוחלט של תוכנות שכתבתם, לאפליקציה באנדרואיד אין פונקצית main. אין נקודת כניסה בודדת לאפליקציה שממנה הכל מתחיל. במקום זאת, יש לנו אוסף של קומפוננטות (מעתה אמור רכיבים) שמערכת ההפעלה יודעת לתקשר איתם. על הרכיבים אנחנו מצהירים בקובץ שנקרא AndroidManifest.
זהו קובץ XML שמכיל את הגדרות האפליקציה, כגון שם, סמליל (אייקון), הרשאות שהאפליקציה דורשת, הרשאות שהיא משתמשת בהם, ועוד. כמו כן, מכיל הקובץ את ההגדרות של כל רכיב שמערכת ההפעלה יכולה להכיר באפליקציה. ישנם 4 רכיבים כאלו: Activity, Service, ContentProvider ו-BroadcastReceiver. עבור כל רכיב, מוגדר כיצד מערכת ההפעלה, או יותר נכון, כיצד רכיבים אחרים באפליקציות אחרות, יכולים להשתמש בשירותיו. הדרך העיקרית להשתמש בשירותי הרכיבים היא באמצעות אובייקט ה-Intent (בתור בוגר בפילוסופיה של השפה, אני חושב שזו בחירת שם מאוד חיננית - אתה מצהיר מה אתה מתכוון לעשות, ורכיבים שמצהירים שהם מממשים את הכוונה שלך, נקראים לעזרתך). על אובייקט זה, נדבר בפוסט הבא בנושא.

יום שבת, 14 בנובמבר 2009

אבל מה זה אנדרואיד?

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

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

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

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

יום שבת, 31 באוקטובר 2009

ר"ר - רשומה ראשונה

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

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

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

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

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

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

אתם מוזמנים,
תהנו