25 בדצמ׳ 2008

על הקשר שבין אסתטיקה לפונקציונליות

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

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

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

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





private static int sendAnEmail(
String from,
List recepients,
String subject,
String body,
List attachements,
boolean actuallySend) throws Throwable {
List parts = new ArrayList();
// ''Build a sub-part for each attachment''
for (Iterator i = attachements.iterator(); i.hasNext();) {
MimeBodyPart currPart = new MimeBodyPart();
FileDataSource fds = new FileDataSource(i.next());
currPart.setDataHandler(new DataHandler(fds));
currPart.setFileName(fds.getName());
parts.add(currPart);
}
// ''Build the message. add sub-parts if exist''
Session ses = Session.getInstance(new Properties());
Message msg = new MimeMessage(ses);
if (parts.size() == 0)
msg.setText(body); // ''A single part message''
else {
// ''A Multi part message''
MimeBodyPart textPart = new MimeBodyPart();
textPart.setText(body);
Multipart mp = new MimeMultipart();
mp.addBodyPart(textPart);
for (Iterator i = parts.iterator(); i.hasNext();)
mp.addBodyPart(i.next());
msg.setContent(mp);
}
msg.setFrom(new InternetAddress(from));
msg.setSubject(subject);
msg.setSentDate(new Date());
Transport transp = ses.getTransport("smtp");
transp.connect(smtpServer, port, userName, password);
List toAddresses = new ArrayList();
for (Iterator i = recepients.iterator(); i.hasNext();) {
String curr = i.next();
InternetAddress[] temp = InternetAddress.parse(curr, false);
toAddresses.addAll(Arrays.asList(temp))
}
InternetAddress[] arr = new InternetAddress[toAddresses.size()];
int j = 0;
for (Iterator i = toAddresses.iterator(); i.hasNext(); ++j) {
InternetAddress curr = i.next();
arr[j] = curr;
}
msg.addRecipients(Message.RecipientType.TO, arr);
if (actuallySend)
transp.sendMessage(msg, arr);
transp.close();
return arr.length;
}

להלן אותה פונקציה אחרי שהיא עברה פישוט ניכר ולמעשה חלוקה לתת-פונקציות נוספות:





private static void sendEmail(
final String from,
final List to,
final String subject,
final String body,
final List attachments) throws Throwable {
final Session s = Session.getInstance(new Properties());
final Message m = new MimeMessage(s);
setHeaders(m, from, to, subject);
setContent(m, body, attachments);
sendMessage(m, s);
}

private static void setHeaders(
final Message m,
final String from,
final List to,
final String subject) {
m.setSentDate(new Date());
m.setFrom(new InternetAddress(from));
for (final String t : to)
m.addRecipients(Message.RecipientType.TO, InternetAddress.parse(t, false));
m.setSubject(subject);
}

private static void setContent(
final Message m,
final String body,
final List attachments) throws MessagingException {
if (attachments.size() == 0) { // ''No attachments to send''
m.setText(body);
return;
}
// ''Generate a multi-part message''
final MimeBodyPart textPart = new MimeBodyPart();
textPart.setText(body);
final Multipart mp = new MimeMultipart();
mp.addBodyPart(textPart);
for (final File f : attachments)
mp.addBodyPart(makeBodyPart(f));
m.setContent(mp);
}

private static MimeBodyPart makeBodyPart(final File f) throws MessagingException {
final MimeBodyPart $ = new MimeBodyPart();
final FileDataSource fds = new FileDataSource(f);
$.setDataHandler(new DataHandler(fds));
$.setFileName(fds.getName());
return $;
}

private static void sendMessage(final Message m, final Session s) {
final Transport t = s.getTransport("smtp");
t.connect(smtpServer, port, userName, password);
t.sendMessage(m, m.getAllRecipients());
t.close();
}




ואני שואל: היא לא פשוט יפה? אתם לא פשוט רוצים להתחתן איתה?!
אז מה היה לנו פה? לפנינו פישוט בסגנון ספרטני. זהו סגנון תכנות מינימליסטי הדוגל בצמצום מספר הפרמטרים לפונקציה, צמצום ה scope של כל משתנה, צמצום אורך שמות משתנים ופונקציות, צמצום מספר ה control-structures כדוגמת if ו for ועוד צמצומים מצמצומים שונים. המטרה היא בסופו של דבר ליצור קוד שהוא יותר קריא ובכך גם יותר קל להבנה ולתחזוקה. ניתן לקרוא עוד על תכנות ספרטני כאן.

בגוגל עושים ביג-דיל מהקריאות של הקוד. כל מהנדס חדש חייב לעבור מבחן קריאות (readability) בשפה שבה הוא כותב ואם לא יעשה כך לא יוכל להגיש קוד בעצמו. לכל שפה יש מדריך סגנון (style-guide) שמגדיר בדיוק איך צריכה להראות פונקציה, איך בוחרים שמות, איך כותבים תיעוד, איך קוראים למשתנים איזה רווח לשים אחרי ה if ואיזה אחרי הפונקציה ועוד. כל מהנדס חדש עובר את הזובור הזה של קריאות שלאחריו הוא מאשפז את עצמו מרצון במוסד הקרוב.
בהתחלה חשבתי שקריאות היא דרך מקורית (וגיקית) של הוותיקים לתפוס תחת על הצעירים, להשפיל אותם וללמד אותם את מקומם. היום אני חושב שזו דרך לתפוס תחת אבל יש בזה בכל זאת קצת תועלת. היום אני עושה בממוצע שני code-review ביום, כלומר קורא קוד של אחרים, נותן הערות ובסופו של דבר מאשר או מבקש תיקונים ואני בטוח שבזכות זה שכולם עברו את הזובור הזה של קריאות הרבה יותר קל לי לקרוא קוד של אחרים. אני לא צריך להתרגל לסגנון אחר ולפעמים רק תוך כדי רפרוף קל וראשוני על הקוד אני יכול למצוא שגיאות.
מסקנת ביניים: יש ערך לקוד קריא ויפה ולו בכך שלאחרים יהיה קל יותר לקרוא את הקוד ולשפצו.

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

איך יודעים שהקוד יפה? הרי יופי זה עניין של טעם, לא? והלא אנחנו אנשי המדע והכל צריך להיות כמותי ומדוייק.
בתכנות הספרטני המתואר למעלה יש מספר מטריקות המעידות על "כיעור" של הקוד והמטרה היא לצמצם אותן. יש גם כלים שמתריעים בפני שגיאות סגנון כגון lint. כיום להרבה מאוד שפות יש כלי lint משלהם. ל HTML יש את ה W3C Validator שבודק נכונות של קוד HTML. ב HTML יש קשר הדוק בין נכונות לאסתטיקה.
ואנקדוטה נוספת לפני סיום: אחד המרצים שלי בטכניון אמר שהבשורה הגדולה של שפות תכנות, הסיבה שאנחנו כבר לא מתכנתים בבינרי, היא ששפת תכנות היא הפשרה בין מכונה לאדם. כלומר התכנית צריכה להיות מובנת לא רק ע"י המכונה אלא גם ע"י האדם שכותב ובמיוחד זה שקורא אותה. לדוגמא, חבר לעבודה אמר לי ש perl היא שפת write only.
ואולי עוד אנקדוטה אחת ודי, לא מזמן חבר שלח לי את הפוסט המצויין הזה שאומר שאילו שפות תכנות היו דתות אז C היתה יהדות כיוון שהיא עתיקה ומאוד מוגבלת, ++C היה איסלם כיוון שהיא מעמיסה עוד חוקים ומגבלות על גבי C ו perl הייתה voodoo.

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

15 בדצמ׳ 2008

ביקור בסן ברונו YouTube

את הפוסט הזה אני כותב משדה התעופה הצפוף של סן פרנסיסקו בהמתנה למטוס שמאחר כבר שעה. השבוע הייתי בסן ברונו, עיירה קטנה ליד סן פרנסיסקו ומקום מושבה של YouTube עבורה אני משקיע את מיטב מרצי וכשרוני בזמן האחרון.
כמו תמיד זה טוב לחזור ולבקר במפקדת האם, להפגש עם מכרים ועמיתים ותיקים ובעיקר לעבוד ביחד ולהנות מג'ט-לג משובח. שבוע זה בערך הזמן שלוקח לי להתרגל לאזור זמן חדש ולחזור הביתה מוכן ומזומן לספוג את הג'ט-לג ההפוך.
אתמול הייתי ב TGIF של YouTube ולא יכלתי להמנע מההשוואה המתבקשת בין TGIF בחיפה ל TGIF שם. כזכור, אני אלוף ה TGIFים בחיפה ובמיוחד בגלל זה עניין אותי לראות איך זה עובד במשרדים אחרים. איך זה עובד בגוגל שב Mountain View אני כבר יודע, הייתי כבר מספר פעמים אבל עוד לא יצא לי לראות במשרדים אחרים. ב Mountain View קיים אולם ענק עם מקום לכמה מאות ואולי אלפים והדוברים מוקרנים במסכי וידאו ענקיים לטובת הנוכחים הרחוקים יותר. יש כמובן שתייה, כיבוד ויש הפקה רצינית. יש אחראי ארוע ואנשים עצבניים שמסתובבים מאחורי הקלעים עם מיקרופון ואוזניה של השב"כ ואחראים לתיזמון מהמדוייק של הדוברים.
בסן ברונו כמובן שהכל יותר קטן. שמחתי לגלות שבדומה לחיפה גם ב YouTube עוברים אנשים ברחבי המשרד וקוראים למאחרים לבוא ל TGIF. זו כנראה מחלה חברתית להגיע באיחור ל TGIFים וחיפה וסן ברונו לא שונות. התוכן עצמו לא היה מרגש במיוחד, היו כמה הודעות, כמה הכרזות על פיצ'רים חדשים שעומדים לצאת וכמובן בירה, כיבוד קל והרבה שמוזינג. בכלל, נראה ששמוזינג זה מה שכולם עושים בעמק. לכל מקום שאתה הולך כולם כל הזמן שמוזיג אראונד. לצערי אני לא חזק בזה במיוחד. תנו לי spec ואני אממש אותו, תנו לי בעייה הנדסית, אני אפתור אותה אבל שמוזינג זה לא בשבילי. בכל אופן לגבי ה TGIF מה שנחמד זה שזה מסורת של כל החברה ובכל המשרדים כך שלא חשוב לאן נוסעים תמיד יהיה שם TGIF וזה מין תזכורת קטנה לבית, למשהו מוכר. במובן שכמו שגברים במקלחות משווים (אני לא, אבל אמרו לי) גם אנחנו משווים, מדברים על מה כל משרד עושה ב TGIF שלו ואני שמחתי לבשר על המסורת היפה שעובדת אצלנו.
טוף, המטוס הגיע ואני בדרך הביתה ולפני איזה עשרים שעות של טיסות.
הביקור ב YouTube היה קצר ואינטנסיבי, הספקתי הרבה, לא הספקתי עוד יותר דברים, אבל ככה זה כשיש רק שבוע. טיסה נעימה.

1 בדצמ׳ 2008

וידאו ומצגות מיום המפתחים של גוגל

למי שלא הגיע ליום המפתחים של גוגל מוזמן לצפות בוידאו, במצגות ובתמונות.

כמה נפלא שבן זוגך הוא בלוגר - יומנה של פולניה


פוסט זה נכתב ע"י אפרת, בת זוגו של רן ובהשראת 10 סימנים שאת נשואה לבלוגר

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



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

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

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

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

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

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

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

30 בנוב׳ 2008

האלוף של ימי שישי

פוסט זה מפורסם בו זמנית בבלוג של שליו ושל רן ונכתב ע"י רן.

בעבר סיפרתי על מסורת ה"תודה לאל שיום חמישי/שישי" (להלן תלשי"ח) החיפאית והגוגלית עולמית שבה מתאספים כל עובדי המשרד בכל יום שישי (חמישי בישראל) ומדסקסים את שקרה בחברה במהלך השבוע האחרון או סתם מעלים נושאים שונים לדיון. במקרים מסויימים המסורת היא יותר קלילה וכוללת רק שתיה ומפגש חברתי קליל.

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

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

בתלשי"ח החברתי גם כן יש לנו מסורת חביבה. הפעם זו לא היתה המצאה שלי אבל אימצתי את הפורמט בשמחה. כל שבוע יש לנו סשן של "Hooglers around the world" שזה סקירת טיול של מישהו שהיה לאחרונה במקום מעניין בעולם. כיאה לאנשי הייטק וכדי להצדיק את המעמד חייב כל עובד פעם בשנה לסוע לחופשה במקום אקזוטי ולחזור עם הוכחות בצורת תמונות. ואכן, עובדי גוגל חיפה מתגלים כעובדים ממושמעים למדי וכל אחד מהעובדים עושה תפקידו נאמנה. היו לנו כבר מספר סשנים שבהם הציגו טיולים מתאילנד, אירלנד ובשבוע הבא ניו-זילנד. (רק עכשיו שמתי לב שכולם מסתיימים ב-נד. מעניין...) והקטע הנחמד הוא שבנוסף להצגת התמונות אנו מוסיפים גם משהו באווירה שתואם את המדינה המדוברת אז בשבוע שעבר כשהיה אירלנד שמנו מוזיקה אירית ברקע וכמובן שתינו בירה גינס.

מעניין אותי לשמוע איזה מסורת יש אצל הקוראים השונים במקומות העבודה אז מוזמנים להשאיר תגובות.

22 בנוב׳ 2008

דברים שרואים מהנדסים לא רואים משם

בהיותי נציג גוגל עלי אדמות בעיני רבים מבני משפחתי יוצא לי לשרת שאילתות שלהם בנושאי גוגל השונים כמעט על בסיס יומי. הרבה מהשאלות לא דורשות ידע פנימי והבנה אלגוריתמית כלשהי, ברובן הן שאלות שכל מי שיש לו קצת נסיון בתכנה או הפעלת מחשב יוכל לענות עליהן גם מבלי לעבוד בגוגל או להיות מומחה למנועי חיפוש, שאלות כגון איך מראים שכבה ב Google Earth או איך מתקינים את ה Toolbar וכו'.
מידי פעם אני מקבל שאלות מומחה כגון אבטחת מידע ב Gmail או האינטראקציה בין Gmail לאנטיווירוס או אלגוריתם ה caching של YouTube. במקרים כאלה אני מעמיד את השרותיות שלי לפני הכול ועושה כמיטב יכולתי לענות איפה שלא חלים חוקי הסודיות.

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

20 בנוב׳ 2008

דרוש: הפודקאסט העברי הראשון

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

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

16 בנוב׳ 2008

Protocol buffers and library data-structors

חבר התקשר אלי ושאל איך עושים serialization למבנה נתונים ב ג'אווה ע"י Protocol Buffers.
לא שאני כתבתי את PB ואני לא המומחה לתחום, אבל את התשובה לזה במקרה ידעתי. לא עושים. כלומר, אם יש לך מבנה נתונים כלשהו בג'אווה (או כל שפה אחרת לצורך העניין) למשל ה Person הקלאסי:





class Person {
private String name;
private int id;
private String email;

public void setName(String n) {
name = n;
}

public String getName() {
return name;
}
}



את Person אתה לא יכול לכתוב סתם כך בתוך PB.
מה שעושים הוא הפוך: במקום להגדיר את מבני הנתונים ב ג'אווה ואז לחשוב איך מכניסים אותם ל PB, מגדירים את מבנה הנתונים ב PB ואז משתמשים בו בג'אווה.




message Person {
required int32 id = 1;
required string name = 2;
optional string email = 3;
}


אז איפה ההגיון פה?
צריך לזכור ש PB עובד בהרבה שפות, לא רק ג'אווה. PB עובד גם ב C++ ,Python ועוד. לֹכן מבנה נתונים שאתה כותב בג'אווה אין לו את אותה סמנטיקה או אפילו אין לו תרגום חד ערכי לשפה אחרת. למשל למחלקות ה Set בג'אווה יש מימוש וסמנטיקה שונים ממחלקות ה Set ב ++C.
לכן החליטו (ניחוש שלי, אני לא הייתי שם כשזה קרה) של PB יהיו טיפוסים בסיסיים כגון string ו int32 ואפשר יהיה להגדיר collections ע"י שימוש ב repeated אבל לא תהיה תמיכה במבני נתונים של שפה מסויימת.

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

13 בנוב׳ 2008

רשתב"ים בעננים

אחד הדברים המאפיינים ארגונים גדולים הוא שיש להם שפה משלהם, זר לא יבין. אני זוכר את ימי הראשונים בגוגל, כמו גם ימי הראשונים במיקרוסופט, לפני שנים רבות, התנצלות, הרגשתי כזר בארץ לא לי. הם פשוט השתמשו בשפה שלא הבנתי. שפה ארגונית משהו, מלאה בראשי תיבות, קיצורים, כינויים, סלנג, ז'רגון ארגוני שלעובד חדש זה, איך נאמר, מעט מפחיד. עובד חדש שצריך להוכיח את עצמו ומרגיש שכבר במבחן הראשון, מבחן השפה, ולא שפת תכנות, הוא נכשל. ארוחות צהריים רבות עברו עלי בשתיקה וכלימה מפחד להכניס את המושג הלא נכון במקום הלא נכון. זה קורה לכל אחד, ולא משנה כמה ותיק אתה בביזנס, הגעת לחברה חדשה, תלמד את השפה. אולי זה טריק של הוותיקים לתפוס תחת על הצעירים.
על הז'רגון הארגוני ובעיקר על רשתבי"ם דיברו ג'ואל וג'ף בפודקאסט מספר 28 של stackoverflow  

מימי במיקרוסופט אני זוכר ביטוי אחד, שלפחות בעברית נשמע קצת מצחיק והוא ZBB
משמעותו היא  Zero Bounced Bugs, כלומר פרק הזמן שבו מצליחים לתקן באגים מבלי ליצור חדשים (yeah, right) אבל בעברית זה פשוט נשמע כמו זיבי.
יש כמובן את ה RTFM הקלאסי והטיותיו השונות: אל תרתפם אותי, לך תתרתפם וכו'.

בגוגל למשל נפגשתי בקומבינציות הקומבינטוריות להלן

  • PM (Product Manager)
  • APM (Associate Product Manager)
  • PMM (Product Marketing Manager)
  • APMM (Associate Product Marketing Manager)

אלו ראשי תיבות אקזוטיים אתם מכירים? אתם מוזמנים להשאיר הערות.

2 בנוב׳ 2008

סיכום יום מפתחים

יום המפתחים עבר בשלום ונראה שבהצלחה מרובה, לפחות אם שופטים לפי התורים לקפה. אני נהניתי, בכל אופן. פגשתי חברים מהלימודים, מעבודות קודמות, עמיתים לעט, החכמתי במעט ושתיתי הרבה קפה, למרות התור.
מה שהתחיל בהשכמה לא אנושית, המשיך בנסיעה ברכבת צפופה שלא תבייש אף עיר גדולה בהודו (ישבתי בערך על הברכיים של הנהג) והסתיים בשני פקקים ברצף על כביש 6 טמן בחובו תענוג לא קטן. יום המפתחים היה מאורגן למופת ובטוב טעם. שיחות מעניינות, דוברים לעניין, מינגלינג במידה (הי, קיבלתי 2 כרטיסי ביקור - מי היה מאמין שעוד עושים את זה?) ותקשורת ווירלס שאיכזבה פחות מהצפוי.
רשמתי 124 טוויטים (באנגלית) ואני מקווה שהם יהיו לעזר למי שלא יכל להגיע. כאן הם מסודרים בסדר כרונולוגי וזה הטוויטר שלי אם רוצים לראות הפוך ;-)
אני מקווה שבקרוב יהיה וידאו ואפרסם כאן ברגע שאדע.

30 באוק׳ 2008

יום מפתחים ביום ראשון הקרוב

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

22 באוק׳ 2008

מי לא מבין את המשתמשים?

קרה לכם פעם שנדדתם לאתר (ישראלי) והדפדפן שלכם לא נתמך/לא מציג נכון את הדף? לפעמים נתקלים בהודעה לקונית כגון "אתר זה תומך רק בדפדפן X" ולפעמים פשוט כל הדף מחורבש, בלי הודעה מראש.
מי שמשתמש בדפדפן שאינו אקספלורר בוודאי נתקל בתופעה יותר מפעם אחת. אולי זה רק נדמה לי, אבל לי נראה שהתופעה נפוצה במיוחד באתרים ישראלים. אלי זה בגלל הקושי הקטן הנוסף לתמוך בעברית, אולי זה בגלל החפיפניקיות הישראלית ואולי זה פשוט חוסר הבנה שכללי המשחק משתנים. לא עוד 99% מהמבקרים משתמשים באקספלורר. יותר ויותר משתמשים מעדיפים דפדפנים אחרים, אם זה בגלל סנוביות גיקית, טאבים צבעוניים או שיש להם Mac.
ושלא לומר שמדובר באתרים של מתבגרות בנות 12, אני מדבר על האתר של הבנק שלי, אתרים של עיתונים פופולריים מאוד, אתרי מסחר בניירות ערך ועוד ועוד אתרים "מקצועיים" שבתמימותי חשבתי שחלק מהמקצועיות שלהם זה להכיר את הלקוחות ולגרום להם לרצות לחזור לאתר. אז אני נאלץ להחזיק מחשב ווינדווס ישן בבית רק כדי שאוכל לבדוק מידי פעם כמה כסף אין לי בבנק. פעם הבאה שאעבור בנק אזכור לבדוק איזה דפדפנים נתמכים על ידי האתר שלו.
כל פעם שאני נכנס לאתר כזה אני נמלא זעם מקצועי ומחרחר מתחת לשפמי "מי הפראייר ששילם לחובבנים האלה שיבנו לו את האתר? איך הם לא מתביישים להראות דבר כזה?"
עכשיו הייתי באתר כזה וכיוון שזוגתי, שתחייה, כרגע במצב מאוזן אני פורק תיסכולי על בלוגי. הושיעוני!


18 באוק׳ 2008

מה חדש ב iGoogle ו Google Reader

קוראים ותיקים של הבלוג בוודאי זוכרים ששמורה לי פינה חמה בלב לשני המוצרים iGoogle ו Google Reader.
Reader היה פרוייקט 20% הראשון שלי בגוגל, שבו מימשתי תמיכה בעברית וב BiDi באופן כללי. זה היה כבר לפני איזה שנה וחצי אבל חתיכות קוד שלי עדיין מתרוצצות בין שרתים לדפדפנים וטלפונים. מעבר לתרומתי הצנועה אני גם משתמש נאמן של Reader. בזמן האחרון אני משתמש בעיקר ב iPod Touch החביב שלי כדי לקרוא רססים. אני חושב שהתמיכה של Reader בכל כך הרבה פלטפורמות זה דבר נפלא.
וזו היתה הרמה עצמית להנחתה כיוון שזה עתה קראתי על שילוב של Reader בפלטפורמה נוספת: iGoogle
iGoogle הוא תחביב צדדי שלי, אפשר לומר עוד 20%. בעבר לימדתי קורס בטכניון בנושא (ואולי גם בעתיד) שהיה מאוד מוצלח, ובנוסף טסתי לאפריקה ולימדתי סמינר בנושא במספר אוניברסיטאות, מה שמאוחר יותר התפתח להיות תחרות כתיבת חפיצים.
iGoogle יצא זה עתה עם גירסא חדשה ובה, בין השאר קיימת תמיכה אינטגרטיבית ב Reader. כלומר - שני חברים שלי התחתנו! מזלטוב, איזה כיף!



4 באוק׳ 2008

גוגל בשפת שודדי הים

לאחרונה הושקה גירסה של עמוד הבית של גוגל בשפה נוספת: שפת שודדי הים.
אז כל מי ששותה רום במקום מים וקרס לו במקום יד מוזמן להנות מעמוד זה.

30 בספט׳ 2008

יום מפתחים בנובמבר

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

אז לא לשכוח להרשם כי נראה שהולך להיות מגניב!


מזלטוב לנו

אנחנו בני 10. מזלטוב לנו.



11 בספט׳ 2008

יום מפתחים של AppEngine ו Django

ביום שני התאספה חבורה נחמדה של חובבי python ו Django במשרדי גוגל בתל-אביב לערב מפתחים בנושא Google App Engine ו Django. חלק מהמשתתפים היו אנשי גוגל וחלקם אורחים. מבין המציגים היו גם כן חלק שהם אנשי גוגל וחלק לא.
היה מאוד נחמד, אווירה מצויינת וחומר טוב (ואוכל). תודה רבה למארגנים ולמי שעזרו בצילום. טרחתי והכנתי סרטונים מההרצאות שניתנו להנאת כולם. בבקשה...




1 בספט׳ 2008

יום הבלוגים הבינלאומי

לכבוד יום הבלוגים הבינלאומי (כיסוי ב ynet) החלטתי לחלוק את רשימת הבלוגים שאני קורא באופן אישי (רשימה חלקית) ללא חשיבות לסדר

CenterNetworks
בלוג טכנולוגי מהחוף המזרחי

Dilbert Daily Strip
דילברט - אתנחתא יומית...

Go2web2
הבלוג של אורלי. יופי של המלצות למאמצים מוקדמים.

Joel on Software
הוגה דעות, סופר, מתכנת וחייל בנח"ל לשעבר. כותב מעולה על תכנה

Mashable!
חדשות סוציאליות

MYBLOG by Ouriel
בלוגר ישראלי (שכותב באנגלית)

ProgrammableWeb
כל מה שרציתם לדעת על mashups וחברים

Raw Thought (from Aaron Swartz)
איש תכנה ופילוסוף.

TechCrunch
מי לא מכיר? ה-בלוג של הסטארטאפים

The Official Google Blog
הבלוג של גוגל

Web X.0
בלוג של ירון. מכר וכותב מוכשר. באנגלית

YouTube :: Blog
הבלוג של יוטיוב

חורים ברשת
הבלוב של גל מור. כותב מחוננן על עניינים טכנולוגיים



31 באוג׳ 2008

איך נראה יוטיוב ב 1985

וידיאו משעשע על איך נראה יוטיוב בשנת 1985. אותי זה הצחיק


איך משיקים תכנה


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

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

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

על השיטה ההוליוודית ניתן לקרוא כאן ועל הביקורת עליה ועל שיטת Gmail ניתן לקרוא כאן. את הפודקאסט בנושא ניתן למצוא כאן.

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

(*) לאחרונה גיליתי את הפוד-קסט. כלומר, אני יודע שהם כבר שנים פה ואני זוכר שהקשבתי לכמה פודקאסטים בעבר הרחוק אבל מאז שקיבלתי את ה iPod Touch היפה שלי אני שומע כאלה כמעט כל יום, בדרך לעבודה, על הקרוס בחדר כושר ואיפה לא. אז בנושא זה היה פודקאסט מספר 19 של StackOverflow עם יואל. השידור עצמו הוא בערך של שעה ולא כולו מעניין, אבל הדיון בנושא זה מתחיל בדקה ה 21.

14 באוג׳ 2008

חבקו ת'עולם בבקשה

עכשיו גם יש אנוטציות לוידאו (לא מצאתי מילה בעברית) גם לבלוגים וכיו"ב כמו בדוגמה של הסרט המקסים הזה



יופי לנו

6 באוג׳ 2008

כתבה ב ynet על insight for search

הצוות התל אביב האחראי למוצר insight for search (בעבר ידוע בשם Google trends) השיק גירסה חדשה יפה מאוד וזכה לסיקור ב ynet.
אחלה מוצר, עבודה יפה!

29 ביולי 2008

Protocol Buffers

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

הפתרון של גוגל נקרא Protocol Buffers. זה אחד הנושאים הראשונים שכל גוגלר לומד בשבוע הראשון של הטירונות שלו ואחת מאבני היסוד הבסיסיות המשמשות לתקשורת בין תהליכית (ויש הרבה כאלה, זה בטוח... זה לא סוד שמנוע חיפוש צריך יותר ממחשב אחד כדי לעבוד...)
השימוש ב Protocol Buffers מאפשר לעשות זאת בצורה יעילה ונוחה. לא צריך לדאוג לסריאליזציה של המידע, כל מה שצריך זה להגדיר איך נראה המידע, בצורה דומה להגדרה של Struct ב C או מחלקה ב ג'אווה או ++C
Protocol Buffers שוחררו עכשיו ככלי קוד פתוח לקהיליית המפתחים. לבריאות.

רוצים לקרוא עוד? יש כאן וכאן.

25 ביולי 2008

אני מתורגם לצרפתית?

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

22 ביולי 2008

פרסום בידיעות אחרונות



זכינו בתמונת שער וכתבה אוהדת במוסף ממון של ידיעות אחרונות ביום ב' האחרון.

13 ביוני 2008

עוד על וידאו אינטראקטיבי

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


8 ביוני 2008

על מה רן עובד עכשיו? או בדרך כלל

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

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

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

אני גאה מאוד להיות חלק מצוות הפיתוח של המוצר הכייפי הזה ומצפה לראות את הדרכים שבו הוא יהיה בשימוש.

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

יאללה, חג שמח ואני הולך לעבוד על הפיצ'ר הבא.

31 במאי 2008

טוויטר חי או מת - פרשנות מהעורף

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

29 במאי 2008

vi


בעבר כתבתי פוסט על מלחמת העורכים. לא מדובר פה על המלחמה של עורך ידיעות אחרונות בעורך מעריב, גם לא עורך בריטניקה ועורך האנציקלופדיה העברית. לא ולא, מדובר בעורכי טקסט של יוניקס או לינוקס.
אז היו לנו כבר מלחמות דפדפנים (אספלורר נגד נטסקייפ 0:1) מלחמות של מערכות הפעלה (לינוס ווינדווס) ובשקט בשקט, בחשאי ובשושו מתנהלת בקרב קהילת מפתחי ה*קס מלחמה קדומה הרבה יותר, היא מלחמת vi ב emacs. זו מלחמת האצבעות הארוכות והגמישות בסדרת המקשים הממוריאלית.
אז אני החלטתי בסופו של דבר לקחת צד במלחמה זו ואתמול בלילה מצאתי את עצמי נכנס למיטה עם אהובתי ועם ספר חדש שזה עתה רכשתי באמזון Learning the vi Editor שיש לו, אגב, ציור של חיה לגמרי לא ברורה (מי שיודע מה זה מוזמן להגיב)



22 במאי 2008

משרות בגוגל - רק תזכורת

לגוגל יש כנראה דרך קצת שושואיסטית לפרסום משרות.
המשרות מפורסמות כאן http://www.google.co.il/jobs, אבל הסתבר לי שאפילו אנשים בישראל שהם עובדי החברה, לא מודעים לסל המשרות הרחב המוצע שם. עכשיו אתם יודעים.
מוגש כשירות לציבור מטעמי ;-)

20 במאי 2008

סרגיי בארץ הקודש

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



12 במאי 2008

גוגל ראשונה, צ'קפוינט - 18, ובמקום החמישי? חברת החשמל

סקר שנערך ע"י Jobinfo קובע שגוגל ישראל היא מקום העבודה המבוקש ביותר (שנה שניה ברציפות).
פרטים נוספים כאן.

4 במאי 2008

פרוייקט משותף ליד ושם וגוגל

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

פעולה זו זכתה ללא-מעט כיסוי תקשורתי: TheMarkerIT, ואללה, ynet, וגם בבלוג הרשמי של גוגל.

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

2 במאי 2008

איך מחשבים את הסרטים הקשורים ביוטיוב

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

במאמר המפורסם כאן, תחת הכותרת של מאמרים שנכתבו ע"י גוגלרים, מציעים תשובה לבעיה זו, ולהלן תקצירה.
הרעיון בגדול הוא לתת המלצות של סרטים קשורים ע"פ אינפורמציה שיש על "צופים דומים", כלומר משהו בסגנון של "אנשים שאהבו וידאו זה אהבו גם את הרשימה הבאה".
זה אולי קצת מזכיר את מערכת ההמלצות המפורסמת של אמזון, אבל יש הבדלים רבים בין השיטות.
קודם כל, איך ניתן לדעת שמי שצפה בוידאו באמת אהב אותו?
בנוסף, הקהל שצופה ביוטיוב הוא אינו בהכרח "נאמן" במובן שיש הרבה צופים מקריים שמגיעים פעם או פעמיים, לפעמים ממחשבים שונים בבית ובעבודה ולכן קשה יותר לעקוב אחריהם. (באמזון אם מישהו רוכש משהו הוא חייב לעשות לוג-אין).
ויש עוד מספר הבדלים, כגון המספר הגדול של הצופים ושל הסרטים, טרנדים יומיים, סרטים שהם מאוד פופולריים באופן גלובלי וצפייה בהם לא בהכרח מעידה על טעם אישי ועוד.
ע"מ לפתור את הבעייה של האם הצופה אהב את הסרט משתמשים בהנחה של אם הצופה צפה בסרט לפחות עד 30% מהזמן, ככל הנראה הוא אהב אותו.
ֿהשיטה המתוארת במאמר נקראת באופן כללי "אלגוריתם ספיגה". אלגוריתם זה משתמש בגרף המורכב מסרטי וידאו שלכל אחד מהם תגיות המעידות על טעמם של הצופים בסרטים. האלגוריתם באופן איטרטיבי "מחלחל" את את התגיות של סרט כלשהו לסרטים השכנים. ואיך מגדירים מה הם "סרטים שכנים", כלומר סרטים שיש בינייהם קשת? הגדרה זו משתמשת במונח צפיה-משותפת (co-view), כלומר סרטים שצופה צפה בהם אחד אחרי השני (והפרטים המלאים במאמר).

בסה"כ מאמר מעניין, שככל הנראה הוא רק תחילתו של מחקר בתחום חדש זה.

29 באפר׳ 2008

תחרות ציורי דודלים

דודל זה שם חיבה לציור שהוא אימפרוביזציה על הלוגו של גוגל, כמו כאלה של חגים וארועים מיוחדים.



בימים האחרונים נפתחה תחרות של ציורים כאלה בישראל. הפרסום הרשמי בעברית נמצא כאן.
הנה ציטוט מהלינק הקודם:

רגל חגיגות 60 למדינת ישראל, הנושא המרכזי של הציורים הוא: ישראל שלי. הציור הזוכה יופיע בדף הבית של Google ישראל למשך יום שלם!

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

התחרות שלנו, מזמינה אתכם להתנסות בכיף הגדול הזה ולהציע ציור משלכם לסמל של Google ברוח 60 שנה למדינה.

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

כדי להשתתף עליכם להרשם תחילה לתחרות באתר זה עד ה-28 במאי, ואז לשלוח אלינו את הציורים עד ה-29 במאי. צוות השופטים שלנו יבחר 40 ציורים מכל הארץ שיעלו לשלב חצי הגמר. 40 הציורים הנבחרים יוצגו באתר התחרות והגולשים יעזרו לנו לבחור את ארבעת העולים לגמר. צוות השופטים ובראשם המאייר הרשמי של Google, יבחר לבסוף מתוך הארבעה את הציור האהוב ביותר, שיופיע בדף הבית שלנו ביום האחרון ללימודים, 30 ביוני, 2008.


21 באפר׳ 2008

משרות באתר

לא כולם יודעים שיש רשימה של משרות פתוחות כאן: www.google.co.il/jobs
אז עכשיו לפחות אתם יודעים.

מצגות מיום המפתחים

להלן לינקים אל שלושת המצגות שהיו בשימוש ביום המפתחים שנערך בחיפה:


20 באפר׳ 2008

גוגלרים על לבן

שלג...
המוני גוגלרים מאירופה מצאו את עצמם גולשים באתר הסקי סולדן שבאוסטריה.
הפקת ענק זו, אשר אורגנה ע"י צוותי גוגל באירופה אף משכה מספר לא מבוטל של גוגלרים אמריקאים אשר העדיפו סקי על פני ביקור בדיסני-לנד.
זוהי מסורת רבת שנים, על פיה בכל שנה יוצאים כל הגוגלרים לחופשת סקי, אשר במקרה זה גם קדם לה כנס מקצועי, גם הוא באוסטריה ובו נפגשו גוגלרים פרום אול אוור יורופ ודיסקסו בעניינים שיפה להם השתיקה פה. היה מאוד מעניין. זה מאוד מעשיר להפגש עם מהנדסים מרחבי העולם, לשמוע על מה הם עובדים, ולפתח רעיונות חדשים.
בסיום הכנס המקצועי נסענו ליום של סקי במדרונותיה המדהימים של סולדן. האוסטרים האלה יודעים מה זה סקי טוב... העיירה עצמה ממוקמת ב 1377 מ' מעל פני הים ואתר הסקי מתחיל ב2500, מה שמבטיח קרירות נעימה ועונת סקי ארוכה במיוחד ולכן גם באפריל יש אחלה שלג. וזה לא רק בתיאוריה - השנה היה יופי של שלג באיזור זה ויומיים לפני שהגענו ירד שלג ברציפות, כך שתותחי השלג האימתניים שהוצבו לאורך כל המסלולים נותרו חסרי שימוש.

עכשיו אני הולך לטפל בשלפוחיות ובשרירי הסקי התפוסים שלי...

8 באפר׳ 2008

יום מפתחים בגוגל חיפה - סיכום

יום המפתחים (או סמינר, כפי שהיו שהתעקשו לקרוא לו) עבר בשלום, ונראה שגם בהצלחה אם לשפוט ע"פ אחוזי ההתייצבות, וסליחה על השימוש בז'רגון המילואימניקי.
די הרבה אנשים הגיעו, נראה שיותר ממה שציפינו, אז זה סימן טוב.
אני מקווה שהיה מעניין. הספקתי לדבר עם כמה אנשים והמשוב חיובי בינתיים, אבל מי שמעוניין להשאיר תגובות בבלוג מוזמן ביותר. באמת מעניין אותי (אותנו) לדעת מה אתם חושבים.
לצעריֿ, לא הייתי במיטבי היום תודות לצינון קל שתפס אותי, אבל שרדתי גם את החצי שעה שדיברתי (באנגלית) על iGoogle.
היו שלוש שיחות טכניות: MapReduce, iGoogle, OpenSocial והיו גם מספר הדגמות של מוצרים, ונראה שגם הם משכו לא מעט תשומת לב.
פגשתי שם גם כמה מכרים וותיקים, אז גם זה היה נחמד.

לצערי, הודות לפאשלה שלי אין וידאו... לא דאגתי לטעון את הסוללה בזמן... בעסה.

מחכה לשמוע מכם מה אתם חושבים ואני מבטיח לעדכן שוב אם יהיה לי משהו מעניין.



7 באפר׳ 2008

כתבה באתר החברתי האזורי שלנו

כתבת אווירה שהתפרסמה לא מזמן עוסקת בעיקר במה שקרוי Work/Life ballance

כמה ציטוטים נבחרים מהכתבה:

הסיבה היחידה להיעדרויות היא המשפחה, אבל הסיבה הזאת מתקבלת תמיד.


מנסים להפוך את המקום לנוח ולכיפי בשבילנו בשעות העבודה, אבל זה עדיין מקום עבודה, לא כל החיים. בגוגל בארה"ב מעבירים קורסים שלמים בנושא הWork / Life Balance


6 באפר׳ 2008

הכתיבה מעייפת

...כותב גל מור. ולעשות קופי-פייסט או להוסיף לינק זו לא חוכמה ובוודאי שאיננו מהווה כתיבה של ממש.
בעודי מסכים לכל הנאמר לא נותר לי אלא לעשות קופי-פייסט וללנקק.



ההרשמה נסגרה

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


25 במרץ 2008

יום מפתחים בגוגל חיפה

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

We are delighted to invite you to our first Google Haifa Engineering Seminar.

When: Tuesday, April 8, 2008
Time: 15:30–19:00
Where: Google Haifa Engineering Center
MATAM, Advanced Technology Centerת Building 30, 5th floor.
Haifa

The event will give you, engineering professionals, the opportunity to hear about our technologies, experience our products and enrich your network.

Agenda:
15:30–16:00 – Gathering & Registration
16:00–16:15 – Google Engineering Overview by Yoelle Maarek
16:15–17:00 – Introduction to Map Reduce by Ilan Horn
17:00–17:15 – Break with refreshments
17:15–18:15 – Parallel Tutorial Tracks
- 17:15-17:45- Tutorial 1: iGoogle by Ran Tavory – A technical dive into gadget creation and the iGoogle platform
- 17:45- 18:15- Tutorial 2: Open Social by Ari Leichtberg – An inside look at Google's common APIs for social networks
18:15–19:00 – Wrap-up and Cocktail: light refreshments will be served

You are welcome to invite a colleague and/or technical expert that you think would enjoy this event. For both registering yourself and your guest, please visit this link:
http://services.google.com/events/haifa_engconf2008
Places are limited, therefore early registration is advised. Admission is by registration only.

We look forward to meeting you,
Google Haifa

וכאן יש לינק להזמנה קצת יותר משורטטת. נתראה שם

14 במרץ 2008

אפריקה

ייתכן שחלק מהקוראים שואלים את עצמם "איפה היה רן בזמן האחרון ולמה הוא לא כותב?" (לפחות זה מה שהייתי רוצה שתשאלו), אז הנה התשובה, ללא משוא פנים: אפריקה!
כן, אפריקה, ולא לתענוגות, כי אם לעבודה.
שבוע אחד טסתי לקליפורניה, שזה ממש לא בכיוון, לעבוד עם איזה כמה קליפורנים, ומשם בשיגור ישיר היישר ליבשת השחורה.
ומה לדעתכם עושה גוגל באפריקה?
הכל התחיל ביום בהיר אחד שבו דיברנו על הקורס שאני מעביר בטכניון בנושא iGoogle ואחת מעובדות החברה הזכירה שהיא מעוניינת לעשות תחרות גאדג'טים באפריקה. מייד הרמתי שתי ידיים והכרזתי "אפריקה? אני בעניין!"
וכך שינסתי מותני, ביחד עם חברי צוות נוספים והתחלנו לתכנן את התחרות. התחרות מתחילה עכשיו ותמשך כמספר חודשים. משתתפים בה סטודנטים מהמדינות אוגנדה, רואנדה, טנזניה, אתיופיה, קניה ובורונדי, כולן במזרח אפריקה.
שינוס המותניים כלל העלאת אתר העוסק בתחרות, טיסה למדינות השונות באפריקה, מפגש עם הסטודנטים באוניברסיטאות, הרצאה טכנית בנושא, מעבדת תירגול ועוד ועוד פעילויות תומכות בסגנון זה.
בפרוייקט זה (שהוא במסגרת של 20%) יצא לי לעבוד עם גוגלרים נוספים מישראל, אירופה, ארצות הברית ועוד. היה מאוד מעניין.

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

במסענו היו הפתעות טובות (למשל אחוז גבוה של נשים הלומדות מדעי המחשב ~ 50%), והיו גם הפתעות פחות טובות, כגון רוחב הפס. זו למעשה הבעייה הכאובה ביותר במדינות האזור (לפחות מבחינתנו... הם אולי יותר מוטרדים מיבולי העונה...). רק לצורך ההמחשה, לאוניברסיטה ממוצעת יש רוחב פס נמוך יותר ממה שיש לי בבית! והן משלמות עליו אלפי דולרים לחודש! וזה לכל האוניברסיטה ביחד... וגם צריך לזכור שהתל"ג שם הרבה יותר נמוך, כך שאלפי דולרים בשבילם (גם אם הדולר נמוך) משמעותיים הרבה יותר מאלפי דולרים שלנו. בעבר היתה מגמה של רישות בעזרת לווינים, אבל זה הסתבר בסוף כיקר ולא מספיק מהיר, אז כרגע עובדים על חיבור של כבלים אופטיים למרכזיות אינטרנט בינלאומיות. אכן, יש שם עוד אתגרים רבים....

אחד מרגעי השיא של הנסיעה היה מפגש עם יתומים ברואנדה. רואנדה, כזכור, עברה רצח עם בשנת 94 שהותיר את חותמו הקשה על האוכלוסיה עד היום. בשנת 94 במשך כחצי שנה רצחו בעיקר בני שבט ההוטו את בני שבט הטוטסי, בעקבות יריבות אתנית שמקורה בקולוניאליזם הבלגי. במלחמת עם זו נהרגו קרוב למליון תושבים, שהיו כעשרה אחוז מכלל האוכלוסיה. מיותר לציין שמעבר למניין ההרוגים היו גם פליטים אין ספור, פצועים רבים, פגועים נפשית, משפחות שחלקן שרדו, ובקיצור, בערך כל המדינה הלכה פקאקט. עד היום ניתן לראות את תוצאות ארועים אלו מלפני 14 שנה. למשל, אין שכבה פקידותית עם נסיון, אין שכבה שלטונית עם נסיון, אין ביטחון בהשקעות ארוכות טווח, הרבה נזקקי תמיכה וכו'
ניתנה לנו ההזדמנות לפגוש קבוצה קטנה של יתומי רצח העם, סטודנטים למדעי המחשב במימון ORI, ארגון הנתמך בחלקו גם ע"י google.org. במפגש זה יכלנו לדבר עם אותם יתומים לא רק על התחרות שאנו מארגנים כי אם גם על נושאים כמו "מה צריך כדי להצליח בחיים" או "מה גוגל מחפשת בעובדים". מעבר לכך היו לנו גם שיחות מלב אל לב בנושא המצב הביטחוני בישראל (ולחשוב שזה מה שמטריד אותם אחרי מה שהם שעברו), חיי החברה ועוד. היה מרגש ומאוד מרענן להפגש עם קבוצה קטנה ומסוקרנת אחרי סדרת המפגשים ההמוניים באוניברסיטאות.

נאחל לסטודנטים הצלחה בתחרות!


מפגש אופייני עם סטודנטים


פרסומת סמוייה ;-)

6 במרץ 2008

ערב מפתחים בתל אביב

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



בקרוב צפוי יום כזה בחיפה. כשיהיו יותר פרטים אכתוב על זה בבלוג.


20 בפבר׳ 2008

iGoogle בטכניון - המשך

כמה עדכונים קצרים, ה tech-talks או שיעורים בטכניון שהעברתי מצאו בית חדש: http://www.youtube.com/TechTalksHeb

כרגע יש שם שישה שיעורים, שזה החלק הפרונטלי שאני מעביר בקורס, המכילים חומר על JavaScript, XML, RSS, iGoogle

כולי תקווה שבעתיד נמצא עוד חומר מעניין להעלות לשם.

הנה דוגמה מהשיעור האחרון


10 בפבר׳ 2008

BigTable

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



Tech Talks on youtube

ואם כבר בוידאו עסקינן, בערוץ הבא של youtube יש לא מעט (מעל 600) הרצאות מקצועיות (Tech Talks) אשר ניתנו בגוגל ושאינן עוסקות בנושאים עליהם חלה סודיות והועלו לשם לטובת הכלל.
אז אם יש לכם איזו שעה-שעתיים, יום-יומיים, שבוע-שבועיים אתם מוזמנים להתרווח בכורסת ה youtube שלכם ולהנות מהצפיה, החל באיך מזהים תוכן שיכול להיות offensive (פורנו בשפת הקודש), דרך חישוב קוונטי ועד קואצ'ינג לסוגיו.


8 בפבר׳ 2008

שיעור בטכניון חלק א

השיעור הראשון בטכניון עבר בשלום פלוס.
היתה הצפה של סטודנטים אז נאלצנו לעבור לכיתה גדולה יותר, הסטודנטים נראו מעוניינים מאוד והציעו רעיונות יצירתיים לגאדג'טים.
בשבוע הבא יהיה השיעור השני ובו נראה כמה מהסטודנטים אכן רציניים וכמה מהם רק באו לדגום אותנו או שקיבלו רגליים קרות. בכל מקרה, נראה שהולך להיות סמסטר מעניין ומלא בעבודה וכולי תקווה שנראה פירות יפים.
ועכשיו מספיק דיבורים, נעבור לוידאו: http://www.youtube.com/GoogleIsrael

שיהיה לכולם בהצלחה בסמסטר!

31 בינו׳ 2008

אני בטכניון

בהתרגשות גדולה אני שמח לבשר שבקרוב מאוד אני הולך ללמד קורס בטכניון, בשיתוף עם סגל הפקולטה.
הקורס מיועד לסטודנטים לתואר שני או ראשון בשלב מתקדם של הלימודים (שנה 3 או 4) בפקולטה למדעי המחשב והנושא שלו יהיה שפות מעניינות כגון JavaScript (שפה מתורגמת המשתמשת במנגנון ה prototype ו closures) וטכנולוגית הגאדג'טים (חפיצים בעברית, הייתם מאמינים?) של iGoogle.
אני אעביר מספר הרצאות בנושאים אלה, חלקן תאורתיות וחלקן קצת יותר ישומיות ומרצה מהפקולטה יעביר הרצאות תאורטיות נוספות.
אני מאוד מתרגש לקראת הקורס כיוון שבהיותי סטודנט בפקולטה תמיד היתה שמורה לי פינה חמה בלב לאפשרות שיום אחד אחזור לשם בתור מרצה.

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





27 בינו׳ 2008

הרפתקאות מייקל וגוגל ג'ט

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


מה יותר מדבק

היום לא רק וירוסי-קיבה הם ויראלים, גם אתרי אינטרנט אוהבים להכתיר את עצמם בתואר זה. לכן שינסתי מותני ויצאתי לבדוק מה יותר מדבק: הסטטוס שלי במסנג'ר או הבלוג של שליו בן-ארי.
לצורך כך שיניתי את הסטטוס ב Gtalk לכתובת הבלוג: http://gbsheli.com וחיכיתי מספר ימים.
לאחר מספר ימים בדקתי בגוגל אנליטיקס את השינוי. ובכן, השינוי התבטא בעליה של בערך 100%. לא רע, אבל בהתחשב בכך שאף פעם לא עשיתי יחסי ציבור לבלוג, זה גם לא כל כך מרשים.
בשלב הבא כתבתי פוסט אורח בבלוג של שליו בן-ארי, חיכיתי מספר ימים ושוב בחנתי את התוצאות.
כעת השינוי היה של מאות אחוזים הרבה יותר מרשימים.
מסקנה: הבלוג של שליו יותר מדבק (או שלשליו יש יותר קוראים משלי יש חברים...)

הערה טכנית קלה: בבדיקה נספרו רק מבקרים באתר ללא המנויים לרסס של הבלוג, שהם בוודאי מרבית הקוראים הקבועים.

22 בינו׳ 2008

הגביע הוא שלנו

בפעם השניה ברציפות זכתה גוגל בתואר של מקום העבודה הטוב ביותר ע"פ Fortune.
הרשימה המלאה כאן.

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


תודה לאל שיום רביעי?

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



18 בינו׳ 2008

תודה לאל שיום שישי

בכל שבוע מודים גוגלרים בהמוניהם לאל על יום שישי. זהו מנהג הרווח, יש לשער, בחברות מסחריות רבות ובו עובדי החברה מתכנסים ביום שישי אחרי הצהריים ומסכמים את השבוע, פחות או יותר או שסתם מתרועעים אחד עם השני ובעיקר שמחים שסוף השבוע מתחיל.
המונח השגור הוא TGIF, כלומר Thanks God It's Friday ואין שום קשר לרשת המסעדות TGI Fridays.
מפגשי הראשון עם תופעה זו היה בשבוע הראשון לתעסוקתי בחברה (זה היה כל כך מזמן, מי זוכר... פששש איזה פז"ם) ובו גרמו לי לשבת בשורה הראשונה ולחבוש כובע מצחיה מטופש עם פלופלור למעלה למען כולם ידעו, זהו ניוגלר (קרי Newgler, גוגלר חדש). מדי שבוע מציגים לחברה את הניוגלרים ביום שישי - קצת מביך, אבל שורדים.
חוץ מלהציג את העובדים החדשים ב TGIF דנים גם על עניינים פנימיים של החברה, כלומר סטטוס של מוצרים וכו' (ששששש סודי סודי סודי). ובמקרים מסויימים כשאין משהו ממש חשוב להגיד, פשוט נפגשים כולם, שותים בירה ואוכלים בייגלה. לפמים לארי או סרגיי עושים סטנד-אפ קצר ולפעמים עונים על שאלות מהקהל, הכל ברוח ידידותית ואינטימית, עד כמה שחברה גדולה יכולה להיות אינטימית, בקיצור, זה בד"כ משעשע ודי פנאן ומשם כבר גולשים אל סוף השבוע.

בישראל, כידוע, לא עובדים ביום שישי ולכן אנחנו בחיפה ובתל אביב מודים לאל על ימי חמישי במקום. היתה לנו דילמה קטנה איזה שם לתת למאורע זה כאשר ההתלבטות היתה בין TGIT כלומר Thanks God It's Thursday ובין TGIAF כלומר Thanks God It's Almost Friday ובסופו של דבר זכה TGIAF. המתכונת בישראל דומה - נפגשים אחרי הצהריים, לפעמים יש גם כיבוד, אם היה למישהו יום הולדת באותו שבוע שמים אותו על המוקד ומדברים בענייני המשרד.
לאחרונה למסורת ה TGIAFים בחיפה נוספה תוספת חביבה ובה שוכני המשרד שהיו בנסיעה למקום קצת פחות שיגרתי מקליפורניה חולקים את תמונותיהם וחוויותיהם עם השאר. לפני כמה שבועות אני סיפרתי על נסיעתנו לניו זילנד (ובכך למעשה פצחתי במסורת), שבוע לאחר מכן אחד הגוגלרים סיפר על טיול בדרום אפריקה שעשה ואחר על יפן ואני חייב להגיד שזה היה ממש נחמד - אינטימי ומעניין.

מסורת ה TGIFים בוודאי אינה ייחודית לגוגל וידוע לי שבארץ חברות רבות עושות מפגש דומה ומכנות אותו Happy hour. בניגוד למסורת ה happy hour בפאבים, אין בירות בחצי מחיר, אבל יש קלוריות לרוב.

סופשבוע נעים.


14 בינו׳ 2008

עברנו דירה וירטואלית

בימים אלו ממש בלוג זה מתכבד בכתובת חדשה עם דומיין משלו והכל...

http://www.gbsheli.com

מזלטוב לנו


12 בינו׳ 2008

אנרגיה נקיה

ֿֿ
במוסף הכלכלה של ידיעות אחרונות (כן כן, עיתון מנייר אמיתי, כזה שמקבלים בתחנות דלק) היתה כתבה על שי אגסי , יזם תכנה ישראלי ועד לא מזמן אחד מחברי ההנהלה הבכירה של SAP, ובה תיאר אגסי את חזונו ופועלו בנושא של אנרגיה ירוקה ומכונית חשמלית בפרט. אני חשבתי שהכתבה מעניינת.

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



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



3 בינו׳ 2008

Tech Talks

בגוגל העולמית, כמו גם בגוגל חיפה ישנה מסורת של tech-talks, הרצאות של שעה ואולי קצת יותר בכל מיני נושאים, ובעיקר נושאים טכניים.
בארה"ב יש הרצאות כאלה כל יום וגוגלרים בוחרים, ע"פ הנושא המדובר אם מעניין אותם להצטרף או לא.
בחיפה, כמו גם בתל אביבֿ יש הרצאות אחת לשבוע בערך.
נושאי ההרצאות הם שונים ומגוונים. במקרים מסויימים ההרצאות ניתנות ע"י גוגלרים שמבקרים אותנו ממקומות אחרים ומספרים על המוצר שהם עובדים עליו או מחקר שהם עשו באקדמיה, לעיתים ההרצאות ניתנות ע"י גוגלרים מקומיים גם כן על מחקר שעשו או על תחום המומחיות שלהם בגוגל, או כל נושא אחר שבתחום מומחיותם. יש גם הרצאות בנושאים פחות מדעיים כגון אמנות או גאוגרפיה, בגדול הגישה היא כל דבר שיכול להרחיב את הדעת ויש קהל מעוניין הוא נושא טוב להרצאה.
לעיתים מוזמנים למשרד מרצים בעלי שם מחוץ לחברה שבאים לספר לנו על תחום עיסוקם. השבוע התמזל מזלנו ופרופסור דוד הראל ממכון וייצמן, חתן פרס ישראל הרצה בפנינו.
דוד, מרצה מחונן בעל יכולת מעולה לשבות קהל, הציג בפנינו את גישתו לתכנות מערכות מחשב מורכבות.
מערכות מחשב מורכבות, ע"פ דוד, מתאפיינות בתגובתיות, כלומר אלו הן מערכות שמקבלות את הקלט שלהן תוך כדי ריצה, בניגוד למערכות שמקבלות את כל הקלט לפני תחילת הריצה.
דוד הציג בפנינו את תפיסת עולמו, כפי שמוצגת במאמר הרואה אור בימים אלה ממש (או אולי עוד מספר ימים) בשם Can Programming Be Liberated, Period ב IEEE Computer, פרפרזה על המאמר המפורסם Can programming be liberated from the von Neumann style , כיצד מתכנתים מערכות מורכבות. לתפיסתו, ואמנם קטונתי, אבל אני נוטה מאוד להסכים, תכנות של מערכות צריך להיות הרבה יותר high-level ממה שהוא היום. אז זה נכון שבערך כל מדען שלישי וכל מתכנת שני יכול להגיד את זה, אבל דוד גם מציג כלים ותפיסה בהחלט הגיוניים לדעתי, ולכל הפחות, פותחים את המחשבה.
דוד מציג גישה של "לימוד המחשב באמצעות משחק". בפוסט קצר זה לא אתאר את כל המתודה, שעליה עובד דוד כבר מספר שנים, אבל אנסה להציגה על קצה המזלג. באמצעות "משחק" play-in המתכנת מראה למחשב דוגמאות חיוביות או שליליות של פעולות, כגון "אם חייגתי מספר בטלפון הסלולרי ולחצתי send צריכה להתבצע שיחה", או "תוך כדי שליחת הודעת טקסט אסור לטלפון להיכנס לתהליך כיבוי". המשתמש מראה למחשב תסריטים או דוגמאות כאלה, ואז אפשר להורות למחשב לשחק בתגובה ולבצע play-out. ה play-out הוא תהליך הרצה של כלל ההתנהגות שכבר הוכנסה מתוך התסריטים והדוגמאות שניתנו בשלב ה play-in , כולל לקיחה מלאה בחשבון גם של התסריטים השליליים, כלומר אלה שאסור שיקרו. וזה, כמובן החלק הקשה בכל העניין. אמנם דוד לא הציג בפנינו את האלגוריתם המדוייק של שלב ה play-out אבל אלגוריתם זה אכן קיים. כאשר המחשב משחק בחזרה למשתמש, המשתמש בודק אם התוצאות אכן נכונות ונותן משוב למחשב. כך, על קצה המזלג, נראית סביבת הפיתוח העתידית של מערכות מחשב, כלומר לא עוד תכנות אימפרטיבי כמו ב C או Java, ואפילו לא עוד תכנות פונקציונלי כמו ב Lisp או ML, כי אם תכנות לפי אילוצים, כלומר ברמת אבסטרקציה אף גבוהה יותר. אני באופן אישי אוהב את הגישה הזו.
דוגמה טובה שנתן דוד כדי להמחיש את גישתו היא איך הורה "מתכנת" את ילדיו. ההורה נותן לילד דוגמאות של נכון ולא נכון, ובנוסף נותן לילד אילוצים כגון "עד 12 אתה בבית". הילד, עם הזמן לומד מה נכון לעשות בסיטואציה כלשהי אפילו אם זו הפעם הראשונה ממש שהוא נתקל בה. גם הילד, כמו תוכנה, צריך להגיב לקלט אשר לא היה ידוע מראש. לא שאני או דוד באים לטעון שילד == תכנה, אבל בתור דוגמה זה ממחיש את העניין.
אז תודה לדוד על הרצאה מעניינת ותודה גם על עזרה בכתיבת פוסט זה.

ודרך אגב חזרתי מחופש זה עתה והיה מגניב!