אחרי ההתלהבות המטורפת מה-OLPC ש-גיא הראה לי, ואחרי בערך חודשיים בלי המחשב שלי ולינוקס (מסיבות שונות ומשונות), הגעתי למחשב היום וקול מוזר, שיצא מיצור ירוק רדיאוקטיבי אמר לי בשפה מוזרה(חייזרית): “היי! מיטל! נכון בא לך לנסות לכתוב משהו ל-OLPC? או שזה ממש פשוט ותצליחי תוך שעה ככה לכתוב משהו, או שזה ממש מסובך שתעזבי את זה אחרי שעה מיאוש…אז מה כבר יש לך להפסיד?!”
הקשבתי לקול, והתחלתי לחפש דוקומנטציה. למען העמת, קודם חיפשתי ב-apt-get את sugar, והורדתי את שתי החבילות שהיו קשורות ל-OLPC, אבל לא היה שם את האימולטור. למי שלא יודע, sugar זאת מערכת ההפעלה המבוססת לינוקס שנמצאת על ה-OLPC. (זה בסדר, גם אני גיליתי שקוראים לה ככה רק לפני כמה שעות…האמת שסביר להניח שידעתי את זה ושכחתי - הסניליות של גיל 19… ). קיצר, חיפשתי וחיפשתי (משהו כמו 2 דקות שלמות!) ומצאתי את זה:
$sudo aptitude install sugar sugar-activities sugar-emulator
וכעבור מספר דקות היה לי כבר אימולטור של OLPC רץ בטירוף!
במסך הראשון הוא שאל מה השם שלי… (איזה חמוד! הוא ניסה להתחיל איתי!
)
במסך השני הוא נתן לי לבחור צבעים!!! (עברתי המון שילובי צבעים עד שבחרתי אחד, כשברקע אחי שעבר באיזור התחיל לגעור בי “נו, תבחרי כבר אחד! היה שם ורוד…” )

ואז הגיע המסך הראשי:

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

ואם כבר מדברים על פייתון, אז כדאי לדעת שהסביבה הגרפית המוזרה שם כתובה בפייתון (כי היא פחות כבדה וכאלה מאשר C וכדומה).
המשכתי לחפש עוד קצת, לראות איך כותבים activity ל-OLPC. מסתבר שזאת משימה לא כ”כ פשוטה, אבל גם לא כ”כ מסובכת…מה שצריך בעיקר זה להכיר את המודול pygame בצורה טובה. או לפתח כשרונות עצלניים-אך-יעילים כמו שלי, ובעצם לקחת קוד מכמה מקומות, ולחבר אותו בצורה שהוא יעבוד ויעשה מה שאני רוצה (ולכל המודאגים - השתמשתי בקוד פתוח וזה נשאר קוד פתוח).
הקוד נראה כרגע ככה:
#! /usr/bin/env python
import olpcgames, pygame, logging
import sys
from olpcgames import pausescreen
log = logging.getLogger( ‘vla run’ )
log.setLevel( logging.DEBUG )
def main():
pygame.init()
size = (800,600)
if olpcgames.ACTIVITY:
size = olpcgames.ACTIVITY.game_size
screen = pygame.display.set_mode(size)
pygame.mouse.set_visible(False)
fsize = 36
font = pygame.font.Font(None, fsize)
msg = “hello!”
text = font.render(msg, True, (0, 0, 255))
textRect = text.get_rect()
textRect.left = 0
textRect.top = 0
clock = pygame.time.Clock()
running = True
while True:
screen.fill((250, 250, 250))
screen.blit(text, textRect)
milliseconds = clock.tick(25)
events = pausescreen.get_events()
if events:
for event in events:
log.debug( “Event: %s”, event )
if event.type == pygame.QUIT:
running = False
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_ESCAPE:
running = False
pygame.display.flip()
if __name__ == “__main__”:
logging.basicConfig()
main()
(יש מצב לקצת דברים מיותרים בקוד, אבל לא השקעתי בו יותר מדיי זמן ומאמץ. יש גם בעיות בהזחה כי זה לא העתיק את זה כמו שצריך.)
מה שזה עושה כרגע זה:


(כן, קוראים לזה bla, שם מאוד מקורי… )
אז מה bla עושה בעצם? שאלה מסובכת…הוא היה אמור לעשות משהו עם תרגילי חשבון רנדומאליים, אבל בגלל שבכל זאת יש לי חיים, ויצאתי עם חברות, אז הוא הסתיים נכון להיום בשלב שהוא כותב hello! בכחול בפינה השמאלית העליונה של המסך. האמת שיש קצת בעייה בטיפול ב-eventים שם, ואי אפשר לצאת ממנו בצורה יפה, אבל אין לי כוח לטפל בזה עכשיו…קיצר, המשך יבוא!
עכשיו רק צריך OLPC אמיתי…. :’(