ארכיון חודשי: דצמבר 2013

2013 במבט לאחור

העוזרים הנאמנים של סטטיסטיקות WordPress.com הכינו דוח שנתי לשנת 2013 עבור בלוג זה.

הנה תקציר:

אולם האופרה בסידני יכול להכיל 2,700 איש. בבלוג הזה ביקרו בערך 28,000 פעמים בשנת 2013. אם הבלוג היה אולם האופרה בסידני, הוא היה מוכר את כל הכרטיסים לבערך 10 הצגות כדי שיצפו בו אותה כמות אנשים.

לחץ כאן כדי לראות את הדוח המלא.

שפת תכנות זה לא (רק) תחביר

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

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

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

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

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

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

איך לקרוא חוזה אחיד

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

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

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

בין החוזים שאנחנו בעיקר נתקלים בהם ניתן למצוא למשל את EULA או את הGPL.
ועכשיו נשאלת השאלה, כאשר אנחנו נתקלים בחוזה שכזה, כמה אנחנו – ההדיוטות בעצם מבינים בנושא ?

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

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

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

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

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

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

רשומות DNS עבור SIP

לפני מספר שנים, למדתי הרבה (אך לא הכל 😦 ) על עולם ה DNS ובעיקר עבודה עם Bind, אך מצאתי שבד"כ יש רק מספר מצומצם של רשומות אשר משתמשים בהם: A, CNAME, TXT ו MX.
לאחרונה יצא לי ליעץ למספר חברות שונות אשר רצו לספק יותר משרת אחד לשירות SIP, ומצאתי את עצמי עושה להם קורס מזורז (לרוב דרך דוא"ל ושיחות טלפון) כיצד זה מתבצע, אז החלטתי להעביר את זה לכתב, ולנסות ולסייע יותר לאנשים באופן כללי.

A/AAAA

רשומת A מייצגת בעצם שם מתחם עבור כתובת IP. יש לו אח צעיר יותר בשם AAAA אשר מבצע אותו הדבר, רק עבור כתובות IPv6.

CNAME

רשומת CNAME, יודעת לקחת שם מתחם קיים, ולתת לו alias לשם אחר, כלומר foo.example.com יכול גם להצביע על bar.example.com ובכך שניהם מצביעים לאותו הדבר. הפירוש של CNAME הוא canonical name record והוא מעט "ממזר" באיך שקוראים ומשתמשים ברשומה.

TXT

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

MX

ויש את רשומת MX, אשר היא קיצור של mail exchanger record. התפקיד של הרשומה הוא לספק גישה למספר שרתי דואר תחת שם מתחם בודד, כאשר יש "משקל" לכל כתובת. המשקל אומר על קדימות של שימוש בשרת אחד על גבי השני. ככול שהמספר גבוהה יותר, כך כמות השימוש בו תהיה גבוהה יותר. כך שאם אשים משקל 60 לכתובת אחת ו10 לכתובת שניה, אז על כל 60 פניות לכתובת הראשונה, יהיו עשר פניות לכתובת השניה.

SOA

עוד רשומה מאוד נפוצה (למעשה הנפוצה ביותר) היא SOA שהיא Source of Authority. היא מחליטה בעצם על מי מנהל את ה DNS בפועל, או כמו שחבר כנסת חיפש פעם, הוא פחות או יותר האחראי על האינטרנט, לפחות בנושא של שמות מתחם.

כל זה נחמד למרבית השימוש כיום באינטרנט, אבל יש למעשה כמה עשרות סוגים של רשומות DNS, ועבור SIP אנחנו צריכים להשתמש בדרך כלל ברשומה מסוג SRV אשר משתמשת דרכה בכתובת שהיא A/CNAME . להמשיך לקרוא

תרבות החשיפה

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

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

אפילו לא התאמצתי לגלות את המאמרים האלו, פשוט כתבתי בגוגל ומייד מצאתי.

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

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

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

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

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

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

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

מוקדש כחומר למחשבה

דרך קצרה שהיא ארוכה ודרך ארוכה שהיא קצרה

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

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

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

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