Fuck You, Xamarin

After messing around with tutorials and trying to put something together for about a month and finally running into huge building/libraries/references issues that I couldn’t solve for a few days, I decided to quit Xamarin development. At least, for now.

Even planned as a simple 2D application, I’m willing to accept the splash screen and loading times so I can do this handily in Unity GUI. And I know it will compile very easily to Android and, slightly less easily, to iOS. It will definitely be quicker and easier to build.


Posted in IT, Life, Programming by with no comments yet.

Don’t You Just Love it When a Plan Comes Together

Yesterday was interesting. I was doing my thing, as usual. I knew there were problems with the latest store version we uploaded but I was practicing not shoving my nose in to things I probably shouldn’t. It happens to me quite a lot that I try to help but I really shouldn’t, for various reasons. So, this time, I did that.

I don’t know exactly how much time has passed but I noticed the rest of the team wasn’t getting any progress. So, I joined in, took a look at what they were doing, suggested some things that didn’t quite help, and then decide to investigate it on my own. I pushed some breakpoints in the flow and spent about 15 minutes looking at exactly what was happening. Then I said: “I can tell you exactly what is happening!”

Then everyone crowded around my station while I explained why it happens and what I think we should do to fix it. The response was stunned silence. So, I said “No objections or suggestions? Ok, I’ll do what I said.” Then some stayed to watch. :)

It doesn’t happen all the time. But it’s fun when it does.


Posted in IT, Programming, Work by with comments disabled.

Global Game Jam 2016

7:19 – Soon, we will start. Feeling: Excited.

11:14 – Got there. Heard the keynote. Got the theme (No, not telling). Now Brainstorming.

11:42 – Getting to work.

00:31 – Home now. Was a busy day. The venue itself isn’t that great; the air conditioning is brutal, the separate spaces are nice but it’s tough to even stay properly hydrated. Took out the pup. Going to go to sleep soon.

10:51 – Back in the saddle again. 7 Hours to demo.

12:43 – Finished the basic system. Now starting to write content. The peckishness has begun. They said pizzas are forthcoming.

13:37 – Refueled and ready to go again.

18:14 – Wrapping up. Getting ready for the presentation.

20:34 – Presentations completed. Some really nice games. Mine felt inadequate. Maayan’s looked very nice. They both, one Twine based, one completely console, definitely turned some heads in a room mostly composed of Unity developers.

00:57 – Concluded with a family dinner at Maayan’s parents and a viewing of Gav HaUma. Now, finally, going to sleep. Tomorrow, a full workday awaits.


Posted in Gaming, Life, Programming by with comments disabled.

אתמול היה יום טוב

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

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

היה כיף ממש.


Posted in Life, Programming, Thinking Out Loud by with comments disabled.

להקדים ציפיות

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

אבל זה באמת שעשע אותי אתמול.

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

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

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

אז זה קצת גרם לי להרגיש טוב עם עצמי.


Posted in Gaming, Life, Programming, Work by with comments disabled.

The End

This is an attempt at a new style of storytelling/gaming/roleplaying. This is, at its base, a Twine game-story but I want to build it based on user input. It starts with the first passage. I will add choices and passages based on user input. Please say so in the comments. Tell me which passage and what option would you like. Don’t feel bad but whenever the comments will get too numerous, they will be pruned.

Thank you for participating in my experiment. This is it. This is The End.


Posted in Art, Gaming, Programming, Role-Playing, Stories by with 4 comments.

יש גרסה ראשונה!

גרסה ראשונה של המשחק שלנו זמינה עכשיו בחנות הישראלית! ווהו!

1412460_865028110187375_61939630624342309_o

אם יש לכם iPad3 או יותר טוב או iPad Mini 2 או יותר טוב, ואתם חובבים משחקי אסטרטגיה, אנא נסו ותגידו מה אתם חושבים. (התמיכה הכי טובה היא ל-iOS8 אבל יש גם ל-iOS7).

ויש גם קבוצה ב-Facebook.


Posted in Gaming, Less Interesting News, Life, Programming, Work by with 1 comment.

פיגוע תחת השראה חזותית

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

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

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

בגלל זה אני עושה את זה. לא בגלל חשיבות עצמית או התנשאות. אני עושה את זה כי אני לא מסוגל אחרת.


Posted in IT, Life, Programming by with comments disabled.

אני לא עובד בצורה סטנדרטית

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

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

רוב האנשים מגיעים לעבודה, עובדים עובדים עובדים, לוקחים איזו הפסקה למתוח רגליים/לסיגרייה/לרענן את כוס הקפה, לוקחים חצי שעה עד שעה לצהריים ואז עובדים עובדים עובדים, עם אולי עוד הפסקה קצרה בדרך, עד שהם עוזבים את המשרד ויוצאים הביתה. אני לא עובד ככה. אולי זה משהו פנימי, אולי זה סיבולת שסיגלתי לעצמי אבל אני כמעט ולא לוקח הפסקות. אני הולך לשירותים, אני לוקח תנומה אחת בשביל השינה הפוליפאזית בזמן העבודה (15 דקות, לא יותר), אני מותח את הרגליים לדקה או שתיים מדי פעם – בדרך כלל תוך כדי שאני פותח דיון על איזה נושא טכני כזה או אחר, ולוקח כ-15-20 לארוחת צהריים – בערך כמה זמן שאני צריך בשביל לסיים קערה של אורז. כל שאר הזמן אני עובד. וכשאני אומר כל שאר הזמן אז אני מתכוון לזה שיום העבודה הרגיל שלי הוא מינימום תשע ויכול להגיע עד 11 או 12 שעות. וכולל את הפעמים שאני צריך מנוחה מנטלית אז אני עוצר לקרוא פריט חדשות או שניים, RescueTime טוען שאני רוב הזמן ב-70% ל-80% יעיל.

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

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

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

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

תודה על ההקשבה,

ערן ארבל, מתכנת (Unity C# Prestige Class) דרגה 14


Posted in Gaming, Life, Me, Practice, Programming, Role-Playing, Thinking Out Loud, Work by with comments disabled.

גם למתכנתים יש רגשות

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

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

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

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

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

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


Posted in Life, Programming, Work by with comments disabled.