Interview Question: The Swap
Went to an interview at Verix today. It went rather well, I think. I’m over the interview cliches and I make that known so I also try to be honest because if they don’t want me as me, they would definitely wouldn’t want me pretending to be someone else and failing in a month. So I look for a character (or as my tech interviewer said, interests) compatibility. But, as usual, there is the usual interview tech question. This one, one I’ve seen before, is actually rather earnest and seemed to me to test actual knowledge. This one, tests knowledge of variable passing. The idea is that we want a function that receives two variable references (strings in my case) and we need to swap them around. The problem that is needed to be understood here is that swapping the references, which will happen if you go with your first thought, doesn’t help. temp = var1; var1 = var2; var2 = temp; // doesn’t do anything once you exit the function Because what ever you do, if you do it that way, you will switch around references in your hand and do nothing to the original pointers and data. What needs to be done is to access the underlying data and modify that. for (int i; i < var1.length; i++) { tempPart = var1[0]; var1[0] = var2[0]; var2[0] = tempPart; } // this should get things done but be careful of access violations which are not protected against here. That Continue Reading →
Posted in No Category, Programming, Thinking Out Loud by Eran with 2 comments.
Deimos is Three
I just figured that since I bought Deimos at the Duty Free before we boarded for Cyprus, it is now 3 years old. My trusty machine is a bit dark-ish grey as opposed to bright silver. Its battery isn’t what it used to be, holding a charge for about 20 minutes as opposed to two hours. And it hasn’t gotten any stronger so it won’t be able to run The Witcher 2 or Crysis 3. But other than that, I’m still rather pleased with it. It does the work it was meant to do. It plays HD video at native resolution (almost) without fault. And I can play most games I want on it. Even some of the newer things although I have to run it at less than stellar details. Overall, its doing much better than Luna did, completely dead after two years, god rest her processor. In fact, Maayan and me talk once in a while about the future of our home computing network and there is the subject of what will be and will be the usage of our next computer. My stance on it is that our current setup is good enough for grunt work (internet, reading and writing, even programming) but we would like a better machine for home entertainment (gaming and HD viewing). I am also thinking about maybe a transformer for future work on the Android platform but that is ethereal. So, in a few months, or maybe more, we will buy something Continue Reading →
Posted in Gaming, Geekdom, High-Tech, Maayan, No Category, Thinking Out Loud by Eran with comments disabled.
T אנשים בצורת
במדריך לעובד של Valve יש קטע מאוד מעניין שמדבר על אנשים בצורת T. לפי ההגדרה, אנשים בצורת T הם אנשים שיש להם מרחב גדול של ידע וכישורים אבל הם גם מאוד ממוקדים וחזקים בתחום לחודי. אני מנסה להיות כזה בן אדם. לא רק כי “Valve, יאיי! אני רוצה לעבוד שם!” אלא גם כי אני חושב שזה מתכון טוב לכל אדם מקצועי שמנסה לחצוב לעצמו נתיב בתחום שלו. ואני גם אוהב לחשוב שאני, כמו שצריך להיות כל בוגר טכניון, בן אדם יחסית כללי בתחום שלי. זאת אומרת, במדעי המחשב לומדים הרבה תחומים רחבים ואני מצפה שלכל טכניוניסט שיוצא משם יהיה לפחות את החלק העליון של ה-T כבר בתהליכי בנייה מתקדמים. אני מרגיש שכשאני יוצא מהטכניון אז יש בעברי מספר שפות תכנות שונות (לפחות C, C++ ו-JAVA בצורה חזקה, ותלוי לאן הולכים, גם Python, C#, ML, BASH, JavaScript וכן הלאה), מספר סביבות פיתוח שונות (Visual Studio, Eclipse ו-GCC/++G עם GDB/DDD לפחות ואצלי גם MonoDevelop, Unity, Qt וכן הלאה) והרבה הרבה שיטות עבודה וטכניקות. וזאת התחלה לא רעה. עכשיו אני רק מנסה למצוא ולייסד את החלק התחתון של ה-T שלי. נ.ב. רק לשם הרישום ואולי השוואה לאחר כך, מ-0 עד 10 כאשר 0 זה כלום ו-10 זה מישהו שבגיל שלי עבד רק עם זה לעומק, הנה הערכה שלי: C++ = 6 Java = 6 C = 5 JavaScript = 4 HTML = 4 SQL = 4 C# = 3 WordPress/PHP = 2 Python = 2 ML = 2 Prolog = 2 Pascal = 1 Assembley = 1 Visual Studio = 6 Eclipse = Continue Reading →
Posted in Humanity, IT, Me, No Category, Programming, Thinking Out Loud by Eran with 2 comments.
Check and Point
אתמול הלכתי ליום מבחנים בחברת צ’קפוינט. צ’קפוינט היא חברה גדולה בארץ ובעולם ויש הרבה אנשים שרוצים לעבוד בה. חוץ מהאנשים שבאו לאותם מבחנים כמוני היו עוד כמה שהתראיינו למשרות אחרות. דבר ראשון ששמתי לב שמשעשע במשרד בתל אביב הוא ששמות החדרים בקומת הכניסה הם של להקות רוק (פינק, פלויד, ג’נסיס, אירוסמית’) ובקומה השניה זה ציירים (מונה, אנחנו היינו בואן-גוך). זה מגניב. אז לפי דעתי, זה היה אחד מהראיונות הראשונים הכי טובים שיש. ככה צריך לעשות את זה. זאת אומרת, היו הרבה אנשים ביריד התעסוקה ואני מניח שנעשה קצת סינון לפני שהזמינו למבחנים. בכל מקרה, זה היה יום מבחנים אחד מיני רבים. אז למה זה היה טוב? כי הדבר הראשון שהם עושים אחרי שהם מסתכלים על קורות החיים הוא לבדוק את יכולות התכנות. המבחן הראשון היה בשביל לבדוק שאנשים יודעים לתכנת ברמה סבירה. אז היו לי 4 שעות ליישם כמה יכולות שהם ביקשו. הם הציעו שנסיים את זה תוך 3 שעות. אני סיימתי תוך 2.5. הם רצו זמן ריצה של 2500. אני השגתי 2900. אבל אני חושב שאני בעיקר אאשים את Java שהיא קלה ומהירה לכתיבה אבל לא רצה כל כך מהר וההוראות של המהירות היו בשביל כל שפות התכנות האפשריות. הדבר השני שהם בדקו זה שאנחנו יודעים להשתמש בלינוקס ושזה לא מפחיד אותנו. זה לא היה מרשים במיוחד כי כל ההוראות היו שם ורק היינו צריכים למלא אותן. אבל זה היה משעשע. המבחן השלישי, זה שרוב האנשים לא טרחו לעשות, היה מבחן עיצובי בו ביקשו לעצב מסך אפליקציה ממגוון חלקים שונים. זה לא היה קשור לראיון המקורי אלא רק בשביל Continue Reading →
Posted in High-Tech, No Category, Practice, Programming, Thinking Out Loud by Eran with comments disabled.
פעם ביום כחול
הספר הזה כבר היה בתכנון שלי מאז שקראתי את הראיון איתו ב-New Scientist אבל המלצה שמה אותו בראש הרשימה שלי. מדובר בסוג של אוטוביוגרפיה של אדם אוטיסטי אבל מתפקד. הוא מסביר איך זה לגדול כאוטיסט וכמה קשה בשבילו כל מיני דברים שרוב האנשים לוקחים כמובן מאליו כמו לזהות דו-משמעות במשפט או שלילה כפולה. מאוד אהבתי את הספר ואני ממליץ עליו בחום לכל מי שמעניין אותו ה-Theory of Mind, איך אנשים, במיוחד איך אנשים אחרים, חושבים ותופסים את העולם. אבל משהו שחשבתי עליו במהלך השמיעה, בעיקר לקראת הסוף, הוא כמה אני דומה לו. לא, אני לא אוטיסט, אני לא רואה מספרים או מרגיש את המרקם שלהם אבל כן זיהיתי כמה דברים משותפים. רק שאצלו דברים שהם ב-100%, אצלי הם פחות מ-1%. דברים שגורמים לו לחרדה וקריסה רגשית אצלי הם בעיקר מעצבנים. אבל עדיין. למשל, משפטים שהם רבי משמעות לרוב מעצבנים אותי, במיוחד כשאנשים לא יודעים את המשמעות התחבירית של מה הם אומרים. דברים כמו שלילות כפולות ומשולשות ודברים שאנשים אומרים וחושבים שהם נורא ברורים כשהם, אם נקראים מילולית כמו שאני נוטה לעשות, הם ממש לא. דניאל מתאר גם את הזמן שבו עבר לגור עם שותפו לחיים וחברים היו מגיעים לבקר. הוא אהב שהם מגיעים לבקר אבל זה תמיד היה גורם לו לחרדה כי הוא היה צריך לשנות את כל הלו”ז שהוא תכנן בקפידה. את זה אני מסוגל לזהות גם כי גם אני ממש ממש לא אוהב כשמשנים לי תוכניות שכבר תכננתי בקפידה. ולמי שחושב להגיד שאת כולם זה מעצבן אז אצלי זה לא ברמה של “אוף”, אלא שזה מרגיש כמו סוג של Continue Reading →
Posted in Humanity, Me, No Category, Thinking Out Loud by Eran with comments disabled.
Building a Game: Mechanics, Story and Emotion
אני לא מומחה לנושא, אלו רק מספר מחשבות שלי. Extra Credits, ועוד כמה אחרים, טוענים שצריך להתחיל עם המכניקה, מה אפשר לעשות במשחק ואיך זה עובד. אני חושב שאפשר להתחיל עם מכניקה או עם סיפור או רק עם רגש שרוצים להעביר אבל צריך להבין מראש את ההגבלות והיתרונות של כל אחת מהשיטות האלו. אם מתחילים עם סיפור, עלולים לקבל סיפור אינטראקטיבי לכל היותר ולא בהכרח משחק. לפי דעתי, הקו בין סיפור אינטראקטיבי למשחק עובר במקום בו יש דו-משמעיות (או יותר) לגבי איך להמשיך, איפה שיש אתגר ולא רק בחירה סיפורית של לאן הסיפור צריך להתקדם. לספר או סרט יש כיוון חד-משמעי. לא משנה כמה פעמים תצפו או תקראו אותו, הוא יעקוב אחרי אותו קו עלילתי מההתחלה ועד הסוף והכל יתרחש בדיוק באותה צורה. לסיפורים אינטראקטיבים כמו Home יש חוסר-ודאיות לגבי איך הסיפור יסתיים, ובנקודות לאורך הדרך, לאיזה כיוון הוא צריך להתקדם. אצל Home זה מאוד ברור לפי דף העדויות באתר של המשחק. כמעט כל נקודה מעניינת במהלך הסיפור מציגה חוסר-ודאות לגבי לאן הוא צריך להתקדם אבל אין שום חוסר-ודאות לגבי איך להתקדם, אין ממש אתגר שצריך להתגבר עליו. זאת אומרת, בשום נקודה Home לא מאתגר יותר מהשאלה: “לאן להמשיך עכשיו?”. המשחק של The Walking Dead הוא על הקו כי בהרבה נקודות הוא שואל את השחקן לאיזה כיוון להמשיך אבל מעט מאוד פעמים באמת מאתגר את השחקן באיך להמשיך. ובמקרים האלו, לרוב מדובר במעיכת כפתורים או ללחוץ במקום המתאים מהר מספיק. יש מעט מאוד פאזלים והם קצרים וברורים, במיוחד עם הדלקתם את ההדגשה של דברים שמישים בעולם. אז המשחק הזה נמצא Continue Reading →
Posted in Gaming, Practice, Thinking Out Loud by Eran with 2 comments.
Here I Come to Wreck Your Day
Remembered Mighty Mouse a little while back. Thought of watching it again, for old times’ sake. Found the old series. Found The New Adventures. Watched an episode of each. Remembered my Transformers experience, decided to let this childhood memory stay just a childhood memory and discarded the rest of the episodes. But SWAT Kats is still awesome. And I’ve been told ThunderCats didn’t age well. And now I’m wondering about Samurai Pizza Cats.
Posted in Art, Geekdom, Life Lessons, No Category, Thinking Out Loud by Eran with 2 comments.
FPS Games Enhance Your Brain
האנשים עם הפיות הכי גדולים אוהבים להגיד כי משחקי מחשב, במיוחד משחקים אלימים ובמיוחד שבמיוחד משחקי יריות מגוף ראשון, משחיתים את הנוער ומובילים לאלימות. האנשים שבדקו וחקרו מצאו כי אין שום קשר בין משחקי מחשב (או כל מדיה) לאלימות. האנשים שקרובים לנושא ויודעים על מה הם מדברים אומרים כי הציבור הכללי לא מאמין לשטויות האלו (הראשונות, לא המחקרים). ועכשיו, כמה חוקרים מנידרלאנד (הידועה גם בכינוי החיבה הולנד) פרסמו כי לאנשים המשחקים FPSים לפחות חמש פעמים בשבוע יש זיכרון פעיל (זיכרון לטווח קצר ולחישובים מהירים) גדול יותר והמוח שלהם גמיש יותר ומסוגל לעקוב אחר יותר פריטי מידע יותר מהר מאנשים שלא משחקים בכלל. ואני חושב על זה: עכשיו, זה מסביר הרבה. לפי ההגדרות שלי, אם אני מחלק את הזיכרון לשלבים כמו במחשב (Hard Drive, RAM, Cache) אז הכונן הקשיח שלי דפוק – מערכת חיפוש ושליפה מחורבנת, ה-RAM שלי לא רע בכלל וה-Cache שלי לפעמים גורם לפעמים ללסתות ליפול כי אנשים לא מבינים איך, ולפעמים גם מה, עשיתי. ומערכת עקיבה מצוינת אוטומטית ותת הכרתית יכולה גם להסביר טוב מאוד למה הייתי תותחן כל כך טוב. חומר למחשבה: הילדים רוצים לשחק משחקי מחשב? תנו להם את Portal. אחרי זה את Portal 2. ואחרי זה אולי את Q.U.B.E.
Posted in Gaming, Humanity, Life Lessons, Thinking Out Loud by Eran with comments disabled.
Viable
ב-2081, דקסטר לייטן מספרינג היל, פלורידה היה הבן אדם המהיר ביותר על פני כדור הארץ. לא היה אחר שהיה מסוגל להשתוות לו במהירות תנועה, זריזות ידיים או תפיסת זמן. אבל לפעמים גם הוא לא היה מהיר מספיק. את זה הוא גילה בפעם הראשונה בגיל 14 בנסיעה שמבחוץ הייתה יכולה להראות שגרתית לחלוטין אך באמת הייתה כל דבר חוץ מזה. הוא והוריו יצאו מביתם בקצוות העיר ונכנסו למכונית המשפחתית. דקסטר רצה לקחת את השותף הרביעי לנסיעה על ברכיו אבל הוריו הפצירו בו שלא, שעדיף יהיה על המושב, והוא, לבסוף, הסכים. טומי היה חבר שלו מאז ומתמיד. כמעט כל זיכרון ילדות שלו הכיל את טומי. הם שיחקו ביחד, טיילו ביחד, לעתים קרובות גם אכלו ביחד. לא היה אכפת לו שלטומי יש ארבע רגליים וזנב. ולטומי לא היה אכפת שלדקסטר לא היה. בכל פעם שדקסטר יצא אל בית הספר, טומי ליווה אותו עד השער וחיכה לו שם עד שדקסטר חזר. למרות שאיפה שהוא, בירכתי מוחו, ידע שאף אחד לא חי לנצח, מעולם לא חשב שהוא יראה את סופו של טומי. זה לא היה פתאומי, זה לקח חודשים. זה נראה כמו שנים. טומי לאט לאט הדרדר. הוא כבר לא היה מהיר כמו פעם. הוא לא שמע כל כך טוב. ולקראת הסוף הוא גם לא ממש היה יכול לעמוד לאורך זמן וכששכב, נראה כמו… כמו… עוגה שמישהו הפך על ראשה ודרך עליה. ועכשיו טומי שכב לידו בכיסא האחורי של המכונית המשפחתית ודקסטר לא היה יכול להפסיק ללטף אותו. ולא היה יכול להפסיק לבכות. הוא ידע שאם רצה היה יכול לכסות את המרחק לוטרינר בכמה שניות. Continue Reading →
Posted in From the Writing Desk, Humanity, Practice, Thinking Out Loud by Eran with 2 comments.
VR Do We Go from Here?
זה מה שקורה עכשיו. תנו לזה כמה שנים…
Posted in Gaming, Geekdom, High-Tech, Less Interesting News, Practice, Thinking Out Loud by Eran with comments disabled.