Monday, October 11, 2010

יום כיף לעובדים ולמשפחות אאוטבריין

ביום שישי, 8 באוקטובר 2010, התקיים ארוע לעובדים ב-Outbrain ולמשפחותיהם. הארוע התקיים בחוות הרוכבים בבית אורן.

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
































הנה מתוך המידע על הארוע:

בליבו הירוק והמהמם של הכרמל (מוגנים מה"סערה"....)

כולם מגיעים – יהיה כייף!!!!

להלן התוכנית-

9:30 בבוקר הגעה ל "חווית הרוכבים" בצומת בית אורן

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

את היום נפתח עם קבלת פנים הכוללת שתייה קלה , שתייה חמה, פיתות מהטאבון במגוון טעמים

ומאפה מתוק

במהלך היום כיבוד נוסף..

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

** שיחת פתיחה , התארגנות ויציאה לפעילויות....

לאוהבי האקסטרים –

טום קאר

נהיגה עצמית בכלי שטח חזק עביר בטיחותי

ומסעיר, ידידותי למשתמש ונוח בכל מצבי הנהיגה ( חובה רישיון נהיגה )

יציאה בליווי מדריך לנסיעה מלהיבה ומלאת ריגושים, מסלולי שטח

אתגרים עם נוף מרהיב.

מסלול הנהיגה בהובלת מדריך בנפתולי הכרמל ,

דרכים בטיחותיות אך מאתגרות

* בכל רכב 4 מקומות

* עלייה על הטום קאר מגיל שנתיים


רכיבה על סוסים-

יציאה בליווי מדריכים מקצועיים לרכיבה מהנה

ובטוחה בחורש הטבעי אל רמת - לוביה , ממנה תצפיות מרהיבות

וייחודיות אל "שוויצריה הקטנה", היערות וחורש הכרמל .

למתפנקים -

טיפול מגע התכנסות בפינת זולה הכוללת מחצלות

,מזרונים נרגילות , שש בש, עיתונים , מגזינים .

4 מעסים מקצועיים יעניקו טיפול מגע מפנק ומרגיע של

שיאצו , טווינה ,עיסוי תאילנדי וקלאסי .

.

לילדודס ....

מתחם ג'מבורי

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

ומגוונים:

ספוגים, מנהרות, נחום תקום, מזרונים, נדנדות חיות, קוביות ומשולשים

ובריכת כדורים.


פינת גן לקטנטנים

פינת יצירה לקטנטנים הכוללת דפי ציור, טושים, צבעים מדבקות ועוד.

טרמפולינה-מתנפח גדול

ובנוסף...

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

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

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

סוכריות על מקל מתוקות אשר מחכות לילדים שיקטפו אותם !!

בנוסף פעילות משותפת לכולם יחד

המסלול קל ונוח - למשפחות עם פעוטות ניתן לבצע את הטיול עם עגלות תינוק

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

ונינוחה , תוביל את הקבוצה לחניון האגם.

במהלך הטיול יסביר המדריך על צמחיית הכרמל, בעלי החיים, ההיסטוריה המרתקת ,

אנקדוטות מקומיות וההקשר התנ"כי של האזור המופלא.

אוכל -

לאחר כ 5 וחצי שעות מרגע ההגעה ,

מעבר לחלק הקולינרי של היום

ארוחת בשרים עשירה במסעדת הבשרים הייחודית "קאת בלו"

מוסיקת קאנטרי עליזה ברקע

מלצרים חייכנים לבושים כבוקרים יגישו ארוחה עשירה כיד המלך


*
** סיום משוער 15:00~



Thursday, October 7, 2010

slf4j vs. log4j







Idioms for loggers in Java code:






An often used idiom for logger configuration in Java code uses log4j. Following is a code snippet that demonstrates the usage:






Import statement:


import org.apache.log4j.Logger;



Declaration and generation example within a class:





public class Foo {



private static final Logger logger = Logger.getLogger(Foo.class);



Usage example within that class:


if(logger.isDebugEnabled()) {



logger.debug("this will be logged with the following parameters x="+x+" y="+y+" z="+z);



}





This implementation causes evaluation and string concatenation of the argument to the various log levels of the Logger class instance (logger.debug in this case) regardless whether or not that logger is indeed configured for that log-level. Imagine a situation where the log level for this class' logger is set to an ERROR log level while the logger is reporting messages in a DEBUG log level. Obviously, the logging will not be manifested in the appender that is bound to that logger for this class (as DEBUG has a lower log level than ERROR log level) but nonetheless the String concatenation for the arguments to build up the string for logging will be executed and will yield a cost regardless of the actual logging. In order to avoid that, the code tests the log level for DEBUG and only if it is enabled then the invocation of the logger.debug method is being interpreted and executed. The cost is due to the concatenation operations and due to repetitive (possibly implicit) calls to toString().



A newer implementation provides an idiom that internally tests for the effective log level and thus builds up the string (with the required concatenations) only if the log message will actually eventually be streamed to the appender. As a result, the format of the method for logging changes to something that actually evaluates strings only if the suitable log level is used. For example, when logging is disabled at the DEBUG level, the logging framework does not need to evaluate the string representation of the values.



Import statement:



import org.slf4j.Logger;



import org.slf4j.LoggerFactory;





Declaration and generation example within a class:



public
class Foo {



private static final Logger logger = LoggerFactory.getLogger(Foo.class);



Usage example within that class:


logger.debug("this will be logged with the following parameters x={} y={} z={}",new Object[] {x,y,z});





So, the slow and inefficient idiom



logger.debug("this will be logged with the following parameters x="+x+" y="+y+" z="+z);



which also took additional awkwardness with the attempt to reduce its performance costs by using this idiom




if(logger.isDebugEnabled()) {



logger.debug("this will be logged with the following parameters x="+x+" y="+y+" z="+z);



}




should now be replaced with the fast and more efficient


logger.debug("this will be logged with the following parameters x={} y={} z={}",new Object {x,y,z});







It is recommended to refactor log4j idioms to slf4j idioms when working on classes that use the inefficient idioms.






It is required to use te slf4j idiom in new implementations.




Some related links:







תמונות מראש השנה


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









Wednesday, October 6, 2010

התחלתי לעבוד באאוטבריין


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

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

נו... יש לי מה ללמוד ומה לשפר.

לעבודה.





Sunday, August 22, 2010

Programming From The Ground Up by Jonathan Bartlett




Programming From The Ground Up by Jonathan Bartlett.


The book's homepage:http://savannah.nongnu.org/projects/pgubook/

The book can be downloaded free of charge at:
http://download.savannah.gnu.org/releases/pgubook/

פגישת שוחרי פרל בישראל -- אוגוסט 2010




מחר, יום שני, 23 באוגוסט 2010, תתקיים פגישת שוחרי פרל בישראל (Israeli Perl Mongers). את המפגש מארח חברי הטוב, שמואל פומברג, בחברת קואלקום במת"מ בחיפה. [להודעה ברשימת התפוצה -- שם גם נפלה טעות סופר עם טעות בחודש...]

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






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


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


הכול מוזמנים: מורים, תלמידים, מפתחי תוכנה -- זה פתוח לקהל


הנה על הארוע מתוך יומן הרשת של


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



אינני מציג מחר לבדי -- ראשון יעלה להציג אורי ברוק, על RESTful Web Services ב-Catalyst. ואחריו אני עם חידות ומשימות ראיונות העבודה ודיונים ופתרונות (כן -- פתרונות!!! וגם קוד ב-Perl).


הגיעו בהמוניכם.



Uri Bruck:
Developing RESTful Web Services with Catalyst
Shlomo Yona:
Things to learn from job interview questions -- a Perl view

The meeting will take place in 18:30, August 23, in Qualcomm - Haifa,

MATAM. (near MATAM's the south exit)

Saturday, August 14, 2010

הופעות במבצר שוני בבינימינה

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


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




#18 | Make : Canon | Shutter Speed : 1/30 | ISO : 1600 | Aperture : 5.6 | Focal Length : 255.0 mm | #21 | Make : Canon | Shutter Speed : 1/80 | ISO : 1600 | Aperture : 5.6 | Focal Length : 200.0 mm | #15 | Make : Canon | Shutter Speed : 1/80 | ISO : 1600 | Aperture : 5.6 | Focal Length : 400.0 mm | #19 | Make : Canon | Shutter Speed : 1/80 | ISO : 1600 | Aperture : 5.6 | Focal Length : 340.0 mm | #20 | Make : Canon | Shutter Speed : 1/80 | ISO : 1600 | Aperture : 5.6 | Focal Length : 200.0 mm | #32 | Make : Canon | Shutter Speed : 1/250 | ISO : 1600 | Aperture : 2.8 | Focal Length : 50.0 mm | #34 | Make : Canon | Shutter Speed : 1/25 | ISO : 1600 | Aperture : 8.0 | Focal Length : 50.0 mm | #37 | Make : Canon | Shutter Speed : 1/100 | ISO : 1600 | Aperture : 1.8 | Focal Length : 50.0 mm | #53 | Make : Canon | Shutter Speed : 1/30 | ISO : 1600 | Aperture : 5.6 | Focal Length : 400.0 mm | #54 | Make : Canon | Shutter Speed : 1/13 | ISO : 1600 | Aperture : 5.6 | Focal Length : 400.0 mm | #58 | Make : Canon | Shutter Speed : 1/30 | ISO : 1600 | Aperture : 5.6 | Focal Length : 320.0 mm | #59 | Make : Canon | Shutter Speed : 1/20 | ISO : 1600 | Aperture : 5.6 | Focal Length : 235.0 mm | #61 | Make : Canon | Shutter Speed : 1/40 | ISO : 1600 | Aperture : 5.6 | Focal Length : 235.0 mm | #62 | Make : Canon | Shutter Speed : 1/60 | ISO : 1600 | Aperture : 5.6 | Focal Length : 235.0 mm | #63 | Make : Canon | Shutter Speed : 1/60 | ISO : 1600 | Aperture : 5.6 | Focal Length : 235.0 mm | #64 | Make : Canon | Shutter Speed : 1/50 | ISO : 1600 | Aperture : 5.6 | Focal Length : 235.0 mm | #70 | Make : Canon | Shutter Speed : 1/125 | ISO : 1600 | Aperture : 5.6 | Focal Length : 400.0 mm | #76 | Make : Canon | Shutter Speed : 1/125 | ISO : 1600 | Aperture : 5.6 | Focal Length : 400.0 mm | #73 | Make : Canon | Shutter Speed : 1/15 | ISO : 1600 | Aperture : 5.6 | Focal Length : 400.0 mm | #80 | Make : Canon | Shutter Speed : 1/100 | ISO : 1600 | Aperture : 5.6 | Focal Length : 400.0 mm |