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

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


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

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.

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

חסרונות ויתרונות

בהרבה ראיונות עבודה נוטים לשאול שאלה כמו “מה החסרון הכי גדול שלך?” ואז, לפי הסטריאוטיפ, נהוג להגיד משהו כמו “אני כזה פרפקציוניסט” או “אני חולה-עבודה” במטרה להציג תכונה שיכולה להישמע רע אבל אמורה להישמע טוב למעסיק פוטנציאלי. על דבר כזה אני הייתי אומר “אז יש לך בעיה לראות את התמונה הגדולה?” או “אז יש לך בעיה עם סדר עדיפויות?” אבל אני באמת אחשוב שמדובר במישהו שמנסה לעבוד עליי. אני בדרך כלל מנצל את ההזדמנות הזאת לסוג של התבוננות פנימית וכנות כדי גם להיות בטוח שיודעים מה לא בסדר איתי לפני שזה נהיה בעיה וגם כדי להציג את השיטה שאני משתמש בה כדי לקזז את החסרון הזה. אז קצת בהרחבה למה שכתבתי כאן, הדבר הראשון שאני אומר בדרך כלל הוא שיש לי בעית זיכרון. אני שכחן ברמה שקצת קשה לתאר… טוב, לא נורא קשה לתאר. פעם אחת רציתי לקחת משהו מהמקרר אז הלכתי למקרר, מרחק של כ-4-5 מטרים, וכשפתחתי את הדלת של המקרר כבר שכחתי מה רציתי. זה לא קורה ככה על כל דבר. אני לא אשכח אירועים מכוננים, את תאריך יום הנישואין שלי וכו’ אבל דברים קטנים שכל הזמן באים והולכים, כל פרט שלא חוזר על עצמו לעיתים קרובות, נוטים להימרח ולפרוח מזכרוני. ולכן, אני חייב שהכל יהיה מסודר. הזמנים, המקומות ומאגרי המידע שלי הם כמו בית של אדם עיוור. לכל דבר יש מקום שאני יודע עליו ואם מזיזים לי אותו… קורות תאונות. בעיקרון, השיטה העיקרית שלי למצוא דברים היא פשוט לדעת איפה אני הייתי שם את זה. ולכן אני מקפיד לשים דברים בצורה אינטואיטיבית לי. כשמזיזים לי אז אני Continue Reading →


Posted in Me, No Category by with comments disabled.

I Love My Nuclear Family


Posted in No Category by with 1 comment.

As Close As I Came to Violence

נכון לזמן כתיבת שורות אלו בדיוק סיימתי לשמוע את הסיפור Red Card. זה הוא סיפור, שנשמע לי כל כך מוכר שאני בטוח שכבר שמעתי אותו איפה שהוא קודם, על עולם בו הממשלה שולחת מספר מוגבל של ‘כרטיסים אדומים’ לאזרחים פשוטים, כרטיסים שמאפשרים לכל אחד לבצע רצח אחד בלי שום השלכות. הסיפור מעניין ודיי מומלץ אבל הסיבה שאני כותב היא מה שאליסטר סטוארט אומר אחרי הסיפור, על מערכת היחסים שלו עם אלימות וכמה הוא התקרב אליה. כמו לכל אחד, גם לי היו התקלויות עם ילדים גדולים ומעצבנים ממני כשהייתי קטן. מקרה אחד, שאני חושב שכבר סיפרתי עליו, היה עם ילד גדול ממני בשנה שבגלל צירוף מקרים, וכנראה שמוח מעט חולה, התחיל רצף נקמות נגדי שכלל, בשלב מסוים, להרביץ לי עם מטאטא. הייתי בכיתה ד’ אז ההיכרות שלי עם הגנה עצמית כללה בעיקר סרטי פעולה של ג’קי צ’אן וז’אן קלוד ואן דם ולכן לא ממש התנגדתי. ובעוד למדתי קצת (ממש קצת) קראטה עוד לפני, זאת כנראה הייתה הנקודה בה החלטתי שאני אקח אומנויות לחימה מעט יותר ברצינות. כשהייתי בכיתה ז’ וח’ היו לי גם התקלויות עם ילדים גדולים ממני. תמיד ניסיתי וגם לרוב הצלחתי לנטרל את הבעיות האלו עם מילים אבל חלק מהפעמים הגיעו לדחיפות אם כי אף פעם באמת הוכיתי. אני חושב שסבלתי מיותר בעיות בריונות מהממוצע אבל אני גם חושב ששרדתי את בית הספר בצורה לא רעה. פעם אחת, לקראת סוף גילאי העשרה תחילת העשרים – לא זוכר במדויק, נסעתי עם ידיד שלי לראות סרט. בדרך חזרה עקבה אחרינו מכונית. הם עקפו אותנו ואז האיטו אז עקפנו אותם וחוזר חלילה. Continue Reading →


Posted in Art, Maayan, No Category, School, Stories of My Life by with 3 comments.

Viable

ב-2081, דקסטר לייטן מספרינג היל, פלורידה היה הבן אדם המהיר ביותר על פני כדור הארץ. לא היה אחר שהיה מסוגל להשתוות לו במהירות תנועה, זריזות ידיים או תפיסת זמן. אבל לפעמים גם הוא לא היה מהיר מספיק. את זה הוא גילה בפעם הראשונה בגיל 14 בנסיעה שמבחוץ הייתה יכולה להראות שגרתית לחלוטין אך באמת הייתה כל דבר חוץ מזה. הוא והוריו יצאו מביתם בקצוות העיר ונכנסו למכונית המשפחתית. דקסטר רצה לקחת את השותף הרביעי לנסיעה על ברכיו אבל הוריו הפצירו בו שלא, שעדיף יהיה על המושב, והוא, לבסוף, הסכים. טומי היה חבר שלו מאז ומתמיד. כמעט כל זיכרון ילדות שלו הכיל את טומי. הם שיחקו ביחד, טיילו ביחד, לעתים קרובות גם אכלו ביחד. לא היה אכפת לו שלטומי יש ארבע רגליים וזנב. ולטומי לא היה אכפת שלדקסטר לא היה. בכל פעם שדקסטר יצא אל בית הספר, טומי ליווה אותו עד השער וחיכה לו שם עד שדקסטר חזר. למרות שאיפה שהוא, בירכתי מוחו, ידע שאף אחד לא חי לנצח, מעולם לא חשב שהוא יראה את סופו של טומי. זה לא היה פתאומי, זה לקח חודשים. זה נראה כמו שנים. טומי לאט לאט הדרדר. הוא כבר לא היה מהיר כמו פעם. הוא לא שמע כל כך טוב. ולקראת הסוף הוא גם לא ממש היה יכול לעמוד לאורך זמן וכששכב, נראה כמו… כמו… עוגה שמישהו הפך על ראשה ודרך עליה. ועכשיו טומי שכב לידו בכיסא האחורי של המכונית המשפחתית ודקסטר לא היה יכול להפסיק ללטף אותו. ולא היה יכול להפסיק לבכות. הוא ידע שאם רצה היה יכול לכסות את המרחק לוטרינר בכמה שניות. Continue Reading →


Posted in From the Writing Desk, Humanity, Practice, Thinking Out Loud by with 2 comments.

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.

You Definitely Need a Budget

לא לעתים קרובות אני נשפך ככה על חתיכת תוכנה אבל הפעם אני לא יכול שלא. אז הנה הסיפור במלואו. אם אין לכם כוח, דלגו על הפסקה הראשונה. לפני כמה חודשים ראיתי את You Need a Budget 4 באזור התוכנות בחנות של Steam. קראתי עליה וזה נראה לי מגניב. תוכנה שתעזור לך לנהל את הכספים שלך בצורה קלה ונוחה ותעזור לך לחסוך יותר ולהוציא פחות? למה לא לאהוב. הראיתי את זה למעין והיא אמרה שהיא עוד תסתכל על זה. ואז שכחנו מזה לגמרי. לפני כחודש וקצת, מעין קראה עליה בעצמה דרך אתר אחר והתלהבה מספיק כדי להוריד את גרסת הנסיון. ואז ראינו איך, אם משכורת אחת לא נורא גדולה, אנחנו מסוגלים לחסוך כמה אלפים כל חודש והתוכנה יכולה להחזיר את העלות שלה תוך חודש-חודשיים. אני לא ממש מסוגל להסביר איך זה קרה. כי הדבר היחידי שבאמת השתנה כשהתחלנו להשתמש בתוכנה הזאת היא שחשבנו על כל ההוצאות שלנו מראש. אפילו לא קבענו אותן באבן מראש, פשוט תכננו אותן. וזה מה שיפה בתוכנה ובשיטה של YNAB, ברגע שמתכננים את התקציב מראש, שום דבר לא בורח דרך הסדקים, שום שקל לא נעלם. וכל כך נוח לתכנן לעתיד כך שהוצאות גדולות, במיוחד כאלו שידועות מראש, לא מפתיעות אותנו. עוד מלפני מעין ידעה להתנהל כלכלית טוב ואני בהחלט השתפרתי מאז שהתחלתי אבל התוכנה הזאת מילאה כל כך טוב מקום חסר בחיים שלנו שהתחלנו להשתמש בה בתור פועל על כל הוצאה שאנחנו עושים (“Did you remember to YNAB when you refueled? Good.”) ואני שמח שיש לנו דרך קלה וטובה ומועילה לנהל את הכספים שלנו ומעין נהנית להשתמש Continue Reading →


Posted in Reviews by with 2 comments.