New Campaign

I’ve gotten into a new role-playing campaign this Saturday. It was the first session for me but roughly the third in the new incarnation of this game. The gaming system is Fate, a Fudge off-shoot, which is very open and slightly more vague than I would like but with an interesting roll mechanic that I’m still getting the hang of. We are also chronicling and managing the campaign through a Google site which is cool. This is the address if you care to have a look. I intend to have fun with this method of management. I’m playing a cocky, self centered Audiomancer dude partly based on Bill & Ted. Character Sheet here. And since I pretty much have to, I looked up an online dice roller that can do Fudge reliably. I found some cool looking ones but nothing that stated a proper origin for its results. I mean, I’ll take other random generators if they use a good system but couldn’t find anything that did. So I wrote my own roller that uses results gleaned from Random.org to generate Fudge dice and a final modifier. It’s over at my Programming Projects page if anyone cares to look or use. I encourage it. That’s it for now. Updates on the campaign are available from the main site. I try to keep my character’s journal up to date after every session.


Posted in Gaming, No Category, Programming, Role-Playing by with comments disabled.

Project Update – Phase 1 Complete

היום הצלחתי, סוף סוף, מוקדם בבוקר, להביא את הפרויקט לרמה שאפשר להציג. זאת אומרת, סיימתי ליצור חדרים בצורה אקראית ולחבר ביניהם… בצורה מסוימת. והבאתי את זה למנחה שלי והוא ראה את זה ובדק את זה ואמר שזה נראה נחמד רק שיש כמה בעיות (שאני יודע עליהם) ואז… נעבור לנושא אחר לחלוטין. זאת אומרת, כל מה שעשיתי עד עכשיו. זרוק חצי מזה לפח ונעבור למשהו אחר. מה שעשיתי עד עכשיו זה ליצור את האסטרואיד, ליצור חדרים בתוכו ואת המנהרות ביניהם ואז להשתמש במנגנון הקיים של המשחק בשביל ליצור את מבנה האסטרואיד הממשי. מה שהמנגנון הזה עושה הוא לבדוק מה נמצא בתוך האסטרואיד ולא בתוך חדר ואז לשים שם אבן. מה שזה אומר זה ליצור אסטרואיד ואז ליצור חדרים ואז ליצור מנהרות ואז ליצור כל אבן ואבן. וכל פעם שאני אומר ‘ליצור’ אני מתכוון לפקודת Insantiate ב-Unity. וכל פקודת Instantiate עולה הרבה משאבים. אז המטרה היא לחסוך כמה מהם. אז מה שאני אעשה זה לבנות את האסטרואיד כאוסף של פונקציות שבסוף יגידו לי אם צריכה להיות שם אבן או לא. ומה שבאמת מגניב אותי: אני ממש מתרגש מכל זה. זה הולך להיות מגניב.


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

The Price

Got a new thing in my Programming Projects. Please check it out. It’s in an early stage and I would appreciate feedback. Just click that link at the bottom of the screen.


Posted in Gaming, Programming by with comments disabled.

Life and Project

במקרה וזאת הפעם הראשונה שאני מציין את זה (אין לי ממש כוח לבדוק, סלחו לי טוב, זה לא נורא מסובך לבדוק. זאת הפעם הראשונה), אני עובד עכשיו על הפרויקט שלי בטכניון. תכל’ס, מכל הדברים שאני חייב לעשות, נשארו לי רק זה וחישוביות. הצלחתי להסתנן לפרויקט של משחקי מחשב וכרגע הרעיון הוא לבנות מערכת של בנייה פרוצדורלית. אני עדיין לא סגור לגמרי מה יהיה התוצר הסופי אבל התהליך והתוכנית הנוכחיים הם כדלקמן: הורדתי את הקוד של משחק שקיים באינטרנט (שהוא דיי מטורף, כדאי לפחות לנסות), הבנתי איך הוא יוצר את הסביבה שלו ועכשיו אני מנסה לגרום לו ליצור סביבה אקראית בכל פעם שהוא מתניע מחדש. אני יודע, המשחק הקיים דיי קשה וייצור אקראי עלול להפוך אותו להרבה יותר קשה או הרבה יותר קל. אבל זאת המטרה וצריך להיות מעניין. ההתקדמות הנוכחית שלי היא שהצלחתי ליצור אסטרואיד עגול בגודל אקראי (החל מ”אתה קורא לזה אסטרואיד? זה אגוז” ועד “!That’s no asteroid! That’s a Space Station”) וליצור לו חדר כניסה אקראי. עכשיו אני עובד על לבזר יותר את יצירת החדרים בתוך האסטרואיד והכניסות שלו כדי שאוכל לקרוא להם בצורה אקראית. 2/5/2013, עדכון: יצירת כניסות אקראיות – עובד. יצירת חדרים אקראיים – עובד. עכשיו אני צריך לחבר אותם ביחד.


Posted in Gaming, Geekdom, No Category, Programming by with 1 comment.

לילה אחד בדצמבר

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


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

Reading Files in C++, Quick and Easy

It’s a simple thing that can get needlessly complicated, especially if, like me, you return to C++ after a while of not using it. And then you ask yourself: “I need to read from a file but how did I use to do that? And what’s the best way to do this any way? Well, I don’t know about best but this is the quickest and easiest way I could find. std::ifstream t(“file.txt”); std::stringstream buffer; buffer << t.rdbuf(); And now your buffer contains the entire contents of the file and you may do with it as you please, using it like any other stream. Yes, streams allow you to output as strings two. You may even use a wstringstream if you want it to be encoded wide. My problem came when my boss told me to dump the streams. But more on that later. Maybe.


Posted in Programming by with comments disabled.

How to Compile OpenSSL for Visual Studio 2010/2012

We are using OpenSSL for secure communication because… well, anyone with an application communicating over any kind of network should use some kind of secure communication. OpenSSL is free and open source so it’s a good choice for many of the usual reasons. OpenSSL is multiplatform and requires an on-site build. We are working with Visual Studio 2010 (now moving to 2012) and thus we need to compile it specifically for that environment. I couldn’t find any set of instructions this clear and this precise. This has been cobbled up from many sources and modified by me to fit our scenario. But, I believe this should be useful for anyone compiling OpenSSL for Visual Studio from 2003 and beyond. Basically, there are two ways to do this: With the Visual Studio assembler or with the Netwide Assembler. I will explain them in tandem. After some (read: many) iterations on this, I’m not sure if there is a problem with either or which one is better. I ended up using the Netwide Assembler. It, however, requires another install. So my suggestion is using the VS assembler and if you have problems you can’t fix, try the Netwide Assembler. Ingredients: Install the Perl compiler for windows. Put it in an easy to reach place like C:\Perl Download the latest OpenSSL sources. Put them in an easy to reach place like C:\openssl-<version> If you are using the Netwide Assembler (NASM), install that too. Put it in an easy to reach place like C:\NASM Continue Reading →


Posted in Programming by with 4 comments.

תרגיל פשוט בתקשורת אינטרנט

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


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

לפעמים אי אפשר לחלוק

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


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

קצת מביך

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


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