It is done.

And by it, I mean this.


Posted in IT, No Category, Programming, School by with comments disabled.

?אתה באמת רוצה לפתח משחקים

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


Posted in Gaming, No Category, Programming, School by with 11 comments.

Procedural/Rift – Done!

I have officially completed my degree’s personal project. The report has been sent, approved and the code has been released. It was an interesting and fun to work on but now I need to let it go. Firstly, because I have another huge project to work on. And secondly, when I work on my game, I’d rather start with a clean slate and not work on some one else’s code base. I have linked the project publicly. It is now in my Projects base, under Gaming. Everything is there. The code, the documentation, everything. If everyone wants to take a look at it, they can. They can also read about exactly what I did. It’s all there for developers. If you want to play it, I have no plan to compile it myself right now because this is a tech demo more than it is a game and its very awkward to use without the Oculus Rift. But if you have the Rift, or even if you just have a Unity Editor and want to see it, please check it out and leave me a comment.


Posted in Gaming, No Category, Programming, School by with comments disabled.

Interview Question: Reduced String

A reduced string is a string with all repeating letters condensed into one. The exercise was writing a function that compares two strings and returns true if their reduced string is the same. What I did for this was… have a pointer to the start of each string compare the two letters if they’re not the same, return false for each string, advance the pointer until it lands on a different character. repeat steps 2-3 until null terminated. if only one was terminated and the other hasn’t, return false return true And that’s it. Better ideas? Corrections (I might have mistyped, it’s early)?


Posted in No Category, Programming, Thinking Out Loud by with 2 comments.

Looking through the Oculus

Just got my first look at the Oculus Rift… And I’m going to start working on it (for my project) on Sunday. Tee hee. :)


Posted in Gaming, Geekdom, High-Tech, No Category, Programming by with comments disabled.

Interview Question: Shifted Array

Today I went to interview for Koren Tec. I was expecting more of an interview and less of a test but I got what I got. It stressed UML twice which I can’t simply pull out of my head so I decided not to even insult them with a poor attempt but to explain it. I hope I got some points for that. They asked a lot of basic questions like what’s the difference between a Value or a Reference, between a Structure and a Class or what’s a Virtual Table. But one of the more interesting question is this: A Shifted Array is a sorted array whose elements has been shifted forward round-robin style. Write a function that receives an array and its size and determines how much it has been shifted. The code is quite redundant but my idea for it was to scan the array and look for the point where an element is larger than the element after it. This marks the spot where the elements from the end of the array are bumping the elements from the start. The number of elements before this demarcation point is you shift value. This gives you a nice O(n) complexity and should be good enough, in my opinion. If you have a better idea, I would love to hear about it down in the comments.


Posted in No Category, Programming, Thinking Out Loud by with 1 comment.

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 with 2 comments.

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 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 with comments disabled.

מה שמתכנתים עושים

מעין משחקת כל מיני משחקי פזלים שונים ומשונים, מחיפוש חפצים רגיל ועד פזלים קלאסיים של מתגים שמשפיעים אחד על השני. לפעמים היא גם מבקשת עזרה ממני אם הפאזל לוקח יותר מכמה דקות. לפני כמה ימים היא נתקלה בפאזל וביקשה ממני לעזור. אחרי שהסבירה לי את הבעיה, אמרתי “ובכן, זאת בדיוק בעיה של מציאת מסלול המילטוני בגרף מכוון” (מסלול המילטוני הוא מסלול שעובר דרך כל צומת בדיוק פעם אחת). אפשר לפתור את זה בניסוי וטעייה, עם קצת רישום והרבה השקעה אבל אנחנו מתכנתים. אחרי שבנינו את הגרף וניסינו לראות אם יש בו איזה שהוא נתיב ברור ללא הצלחה, הצעתי לכתוב תוכנה שתפתור את זה. כן, למצוא מסלול המילטוני זאת לא בעיה פשוטה. היא NP-Complete. הפתרון הכללי הטוב לוקח (O(n^2*2^n ולא ציפיתי שאפילו נגיע לזה כי כל מה שרציתי זה חיפוש פשוט עם BackTracking. אבל לא נורא, המחשב שלי סבבה ואלו רק 25 צמתים. אז עבדנו על זה ביחד כשעה וחצי-שעתיים והוצאנו תוכנה קטנה שמוצאת את הפתרון. היא עדיין בעייתית אבל הצלחנו לפתור איתה את הפאזל. אני חושב שזה היה שווה את הזמן. :)


Posted in IT, Maayan, No Category, Programming by with 1 comment.