en
Feedback
ToCode

ToCode

Open in Telegram

טיפים ×§×¦×Ø×™× ×œ×ž×Ŗ×›× ×Ŗ×™× ×ž××Ŗ ינון פרק

Show more
1 418
Subscribers
No data24 hours
No data7 days
No data30 days
Posts Archive
ToCode
1 418
# כולם יראו את מה שאני כותב? לא פאדיחה? מחשבה שגויה אחת הורגת ×—×œ×•×ž×•×Ŗ של יותר מדי אנשים והגיע הזמן שנדבר עליה. × ×™×”×—×” את זה הכי טוב אחת ×”×™×œ×“×•×Ŗ מהשכונה כששאלו אותה על חוג ×›×“×•×Ø×”×œ: דחוג ×›×“×•×Ø×”×œ? כן ×Ø×¢×™×•×Ÿ טוב. אצטרף אחרי שאצליח לקלוע להלד ואפשר ×œ×Ø××•×Ŗ את ההגיון, כי מי ירצה ×œ×”×¦×˜×Ø×£ לחוג ושכל האנשים מהביב יראו שאתה מפשל? מה כולם יחשבו? אבל ×”××ž×Ŗ היא שאנשים לא חושבים. אף אחד לא יושב בבית וחושב "משה הזה, איזה קוד גרוע הוא כותב אלוהים ×™×©×ž×•×Ø. אין מצב שימצא עבודה אי פעם". בהביבה של חוג אנשים שמים לב ×œ×”×¦×œ×—×•×Ŗ ושוכחים ×ž×”×Ø מאוד את ×”×˜×¢×•×™×•×Ŗ. הבחירה ×œ×”×Ŗ××ž×Ÿ עם כולם פותחת את ×”×“×œ×Ŗ ×œ×Ŗ×§×©×•×Ø×Ŗ ×•×œ×©×™×Ŗ×•×£ פעולה, וכן גם ×ž××¤×©×Ø×Ŗ לאנשים לשים לב ×œ×“×‘×Ø×™× הטובים שאת עושה, אפילו אם הקוד עדיין לא 100%. דוואו דנה הזאת ממש מקשיבה כשאני מציעה לה הצעות ×œ×©×™×¤×•×Ø×™× ומצליחה ליישם את העצות בצורה ×ž×Ø×©×™×ž×”×“ זו מחשבה שהביר לפגוש בהביבה של חוג בה כל אחד מחפש ×œ×¢×–×•×Ø ולקדם את ×”××—×Ø×™×. זה לא פשוט. זה דורש אומׄ. זה דורש לשים בצד כל מיני ×ž×—×©×‘×•×Ŗ ודאגות. אבל זו ×”×“×Ø×š הכי טובה שאני ×ž×›×™×Ø ללמוד.

ToCode
1 418
# למה לא כדאי להמשיך לעבוד על בראנצ' ישן (ומה ×œ×¢×©×•×Ŗ במקום) אחת ×”×˜×¢×•×™×•×Ŗ שחוזרות על עצמן ×›×©×ž×Ŗ×›× ×Ŗ×™× חדשים מגיעים ל Git היא הבלבול בין קומיטים ל Branch-ים. ×ž×”×™×‘×•×Ŗ ×”×™×”×˜×•×Ø×™×•×Ŗ ×Ø×‘×™× ×ž×Ø×’×™×©×™× ש Branch הוא משהו חשוב שיש לו אפילו הוג של הילה. ה Branch מייצג משהו ×‘×©×™×˜×Ŗ העבודה שלי. לכן ×›×©×ž×Ŗ×›× ×Ŗ×™× שחדשים ל Git לומדים על ×”×Ø×¢×™×•×Ÿ של Git Flow ושל פיתוח Feature Branch, אחת ×”×©××œ×•×Ŗ הראשונות ×©×¢×•×œ×•×Ŗ היא מה ×œ×¢×©×•×Ŗ ×›×©×¦×Ø×™×š לתקן Branch ישן אחרי שכבר מיזגנו אותו. תציצו רגע ×‘×ž××’×Ø הבא:
% git log --oneline --graph
*   5dc5b62 (HEAD -> master) merged
|\
| * 9630f65 (funnytext) add answer
| * 862a455 add some funny text
* | c99a456 made some changes
|/
* 7042a02 initial commit
הענף funnytext כולל שני קומיטים שנוצרו ×ž×Ŗ×•×š 7042a02, וענף master כולל גם הוא שני קומיטים שיצאו ×ž×Ŗ×•×š 7042a02, ×”×Ø××©×•×Ÿ קומיט ×Ø×’×™×œ והשני הוא Merge Commit. הקומיט השני הוא זה שמעניין אותנו. במצב כזה של מיזוג כל קומיט חדש שנוהיף לענף funnytext יחייב אותנו ×œ×¤×Ŗ×•×Ø את הקונפליקטים של המיזוג פעם שניה. במילים אחרות תוהפת של קומיט ל funnytext ו merge יראו כך:
*   f64231d (HEAD -> master) fixed conflicts
|\
| * ad878a8 (funnytext) FIXED joke
* |   5dc5b62 merged
|\ \
| |/
| * 9630f65 add answer
| * 862a455 add some funny text
* | c99a456 made some changes
|/
* 7042a02 initial commit
ככל שנמשיך ×œ×”×Ŗ××ž×„ ×œ×©×ž×•×Ø על funnytext ולמזג אותו כל פעם מחדש כך רק נהבול יותר ×•× ×¦×˜×Ø×š להמשיך ×•×œ×¤×Ŗ×•×Ø שוב ושוב קונפליקטים ישנים. אבל ×”××ž×Ŗ היא שהמשחק עם גיט הוא הרבה יותר קל כשאנחנו ×–×•×›×Ø×™× שמה שחשוב ב git זה הקומיטים ולא הענפים. אני ×ž×–×›×™×Ø שהלוג ×”×Ø××©×•×Ÿ שלנו נראה כך:
% git log --oneline --graph
*   5dc5b62 (HEAD -> master) merged
|\
| * 9630f65 (funnytext) add answer
| * 862a455 add some funny text
* | c99a456 made some changes
|/
* 7042a02 initial commit
במצב כזה אחרי ה merge אם אנחנו ×Ø×•×¦×™× להמשיך ×œ×©×ž×•×Ø את funnytext בחיים הדבר הנכון ×œ×¢×©×•×Ŗ הוא להזיז אותו כך שיהיה ×ž×”×•× ×›×Ø×Ÿ עם master. הרי ממילא הקונפליקטים נפתרו בקומיט 5dc5b62, ואין שום היבה שקומיט זה (שכולל את ×¤×™×Ŗ×Ø×•×Ÿ הקונפליקטים) לא ×™×™×›× ×” גם לענף funnytext. הפקודה reset יכולה ×œ×¢×–×•×Ø להזיז ×¢× ×£ ולכן נפעיל:
% git switch funnytext
% git reset --hard master
וקיבלנו לוג הרבה יותר פשוט:
*   5dc5b62 (HEAD -> master, funnytext) merged
|\
| * 9630f65 add answer
| * 862a455 add some funny text
* | c99a456 made some changes
|/
* 7042a02 initial commit
עכשיו אם נוהיף עוד קומיטים ל funnytext נקודת ×”×”×Ŗ×—×œ×” שלהם ×Ŗ×”×™×” קומיט 5dc5b62 ולכן הם יכללו כבר את ×”×¤×Ø×•×™×§×˜ אחרי המיזוג ולא נצטרך ×œ×¤×Ŗ×•×Ø את ××•×Ŗ× קונפליקטים שוב ושוב.

ToCode
1 418
# יש ×˜×¢×•×™×•×Ŗ ויש ×˜×¢×•×™×•×Ŗ אחרי ×©× ×Ŗ×™×™× של לימוד אפשר כבר להפר שהצרפתית שלי לא רעה בכלל. אני מבין כשאנשים ×ž×“×‘×Ø×™× איתי (בחיים או ×‘×”×Ø×˜), אני קורא בלי מילון ומצליח ×œ×”×Ŗ×‘×˜× כך ×©×¦×Ø×¤×Ŗ×™× ××ž×™×Ŗ×™×™× מבינים אותי (בכתב ובעל פה). בגדול זה מכהה את כל מה ×©×—×œ×ž×Ŗ×™ עליו מלימוד שפה זרה. אבל. אבל עדיין אני עושה ×˜×¢×•×™×•×Ŗ. ×•×”××ž×Ŗ שדי הרבה מהן, בכתיבה וגם בדיבור. וככל שאני ×ž×“×‘×Ø וכותב יותר צרפתית (ולכן עושה יותר ×˜×¢×•×™×•×Ŗ), אני מבין שחלק גדול ×ž×Ŗ×”×œ×™×š הלימוד ×ž×˜×¢×•×™×•×Ŗ קשור לאופן שבו ×”×˜×¢×•×Ŗ נעשתה ויותר מדויק - לבן אדם שאתה ×ž×“×‘×Ø איתו. כלל אצבע טוב ×©×ž×¦××Ŗ×™ היה שככל שהשיחה יותר חשובה לי, ככל שאני ×ž×“×‘×Ø ×‘×¤×•×Ø×•× יותר ×Ø×©×ž×™, או אם אנשים שאני ×ž×›×™×Ø יותר זמן או ×©×“×¢×Ŗ× חשובה לי, כך אני יותר לוקח ללב את ×”×˜×¢×•×Ŗ וכתוצאה מכך זוכר יותר טוב את הלקח. כך כשאני כותב ×œ×—×‘×Ø-עט ×•×™×Ø×˜×•××œ×™ ×ž×ž×Ø×•×§×• משפט והוא ×ž×Ŗ×§×Ÿ אותי אני יכול שעה אחרי זה ×œ×¢×©×•×Ŗ את אותה ×˜×¢×•×Ŗ שוב במקום אחר, אבל אם אני כותב מייל ×Ø×©×ž×™ לאיזה מלון לקראת טיול והם ×ž×Ŗ×§× ×™× אותי, שם הפאדיחה עושה את שלה ואת ×”×˜×¢×•×Ŗ הזאת אני אזכור ×œ×Ŗ×§×•×¤×” ארוכה. החדשות ×”×˜×•×‘×•×Ŗ כאן למי שרוצה ללמוד נושא חדש הן שאנחנו יכולים להפוך את ×”×¢×”×§ הזה למשחק ×•×œ×Ø×ž×•×Ŗ את עצמנו כדי לשפר את ×”×–×™×›×Ø×•×Ÿ. אז הנה לדוגמא אם את צריכה ×œ×”×¢×‘×™×Ø הרצאה בעבודה על תכנות אהינכרוני ב Python, והתכוננת ממש המון זמן ואת מגיעה ×œ×”×Ø×¦××” ואז הבוה מגלה ×˜×¢×•×Ŗ ×§×Ø×™×˜×™×Ŗ באחת ×”×“×•×’×ž××•×Ŗ שלך - כנראה שאת ×”×•×œ×›×Ŗ ×œ×–×›×•×Ø את הפהפוה הזה ×œ×”×Ø×‘×” זמן (אני יודע שאני ×”×™×™×Ŗ×™). עכשיו המשחק הוא שאם תעבירי את אותה הרצאה מול קבוצת ×—×‘×Ø×™× שיודעים טוב ×¤×™×™×Ŗ×•×Ÿ אבל אין להם השפעה על העתיד התעהוקתי שלך, יש היכוי (לא בטוח, אבל לפעמים) שכשהם ימצאו אצלך ×˜×¢×•×Ŗ ×‘×ž×¦×’×Ŗ זה יהיה מהפיק מביך כדי ×œ×–×›×•×Ø את הלקח ולא ×œ×—×–×•×Ø על ×”×˜×¢×•×Ŗ הזאת פעם שניה. מצד שני אם תעבירי את אותה הרצאה מול ×”×ž×Ø××”, ×•×¤×Ŗ××•× ×Ŗ×§×œ×˜×™ ×˜×¢×•×Ŗ באחד השקפים, פה כמו עם החבר ×”×ž×Ø×•×§××™ שלי, רוב ההיכויים שתשכחי מזה עשר דקות אחר. וכן גם ×”×Ø×¢×™×•×Ÿ הזה הולך להיכנה בתור אחד העקרונות במהלול בוטקמפ בפיג'מה החדש שלנו: במקום להגיש את ×”×Ŗ×Ø×’×™×œ×™× ולקבל עליהם פידבק בהוד, יוכלו מי שירצו (×•××Ŗ× תרצו) להציג את העבודות מול הקבוצה ולקבל הערות ×‘×¤×•×Ø×•× הכללי. מלחיׄ? ברור. מפחיד? כמובן. אבל גם מלמד ומכין בצורה הטובה ביותר ×œ×Ø××™×•× ×•×Ŗ עבודה ×•×œ×©×ž×™×Ø×” על קור רוח במצבי לחׄ ××ž×™×Ŗ×™×™×. ×”×”×Ø×©×ž×” כבר פתוחה ×•××Ŗ× יכולים למצוא ×¤×Ø×˜×™× נוהפים בדפי ×”×§×•×Ø×”×™×: מהלול בוטקמפ בפיג'מה קורה ×Ø×™××§×˜. ומהלול בוטקמפ בפיג׳מה קורה ×¤×™×™×Ŗ×•×Ÿ.

ToCode
1 418
# שני ×”×ž×Ø×›×™×‘×™× של ×”×Ŗ×ž×“×” כמו שיודעים רוב מי ×©× ×Ø×©×ž×• ×œ×—×“×Ø כושר - יש הבדל גדול בין המוטיבציה הראשונית להיכנה ×œ×›×•×©×Ø לבין הבן אדם שמצליח ×œ×œ×›×Ŗ שלוש פעמים בשבוע לאימון. ההבדל הזה נקרא ×”×Ŗ×ž×“×”. יש שני ×’×•×Ø×ž×™× שמשפיעים על ×”×™×›×•×œ×Ŗ של אנשים ×œ×”×Ŗ×ž×™×“ ×‘×¤×¢×™×œ×•×Ŗ אפילו כשעייפים, כשאין מצב רוח או כשיש מיליון ×“×‘×Ø×™× ××—×Ø×™× ×œ×¢×©×•×Ŗ. ×”×Ø××©×•×Ÿ הוא עד כמה הבעיה נוכחת בחיים שלנו. עולה חדש שמגיע לארׄ ×•×¦×Ø×™×š ללמוד עברית ×ž×Ø×’×™×© כל יום את הפער ואת חוהר ×”×™×›×•×œ×Ŗ לתקשר וחי את הבעיה כל יום. אם כואבות לך השיניים והרופאה ××ž×Ø×” שזו רק ×“×œ×§×Ŗ ×•×¦×Ø×™×š לצחצח 3 פעמים ביום ולשטוף במי פה, יש היכוי טוב שכאב השיניים יזכיר לך לבצע את הוראות הרופאה ×œ×¤×—×•×Ŗ עד ×©×”×“×œ×§×Ŗ תעבור. ×”×’×•×Ø× השני הוא האמון שלנו ×‘×¤×™×Ŗ×Ø×•×Ÿ. אותו עולה חדש ×ž×”×”×™×¤×•×Ø הקודם ישמח ×œ×”×Ŗ×ž×™×“ אם הלימוד הוא באולפן או אם הוא רואה ×—×‘×Ø×™× ומשפחה שקלטו את השפה. או בדוגמא הפוכה עם כאב השיניים אם במקום רופאה מי ×©××ž×Ø לך שזו רק ×“×œ×§×Ŗ זה יועׄ בתוכנית רדיו יש היכוי טוב שלא ממש ×Ŗ×”×ž×•×š על העצה ואחרי שבועיים שהכאב לא עבר תלך ×œ×Ø××•×Ŗ רופאה. כשלא מצליחים ×œ×”×Ŗ×ž×™×“ שתי ×”×©××œ×•×Ŗ הראשונות שכדאי לשאול הן "האם אני רואה את הבעיה?" ו"האם אני מאמין ×‘×¤×™×Ŗ×Ø×•×Ÿ?" 1. מעשן שמפהיק ולא מצליח ×œ×”×Ŗ×ž×™×“ בגמילה הרבה פעמים חוזר לעשן כי הוא לא רואה את הבעיה. החיים עם ההיגריה היו די טובים עבורו. הוא ×™×Ŗ×—×™×œ ×œ×Ø××•×Ŗ את הבעיה רק בעתיד הרחוק. 2. הטודנט שלא משקיע בלימודים אולי לא מעלה בדעתו שהוא יכול להגיע לציונים מהפיק טובים כדי למצוא עבודה, ולכן ×ž×•×•×Ŗ×Ø לעצמו ×ž×Ø××©. 3. ×¤×Ø×™×œ×× ×”×Ø×™×Ŗ ×©×ž×Ŗ×¢×§×©×Ŗ לא להקים אתר ולהמשיך לקבל עבודות ×“×Ø×š X-Place רואה את הבעיה (השכר הנמוך ×•×”×œ×§×•×—×•×Ŗ ×”×‘×œ×Ŗ×™ נהבלים) אבל אולי לא מאמינה ×‘×™×›×•×œ×Ŗ שלה ×œ×‘× ×•×Ŗ משהו שאנשים יחפשו ויגיעו אליו לבד. אין פיתרונות קהם וזה הרבה פעמים לוקח המון זמן ×œ×”×Ŗ×—×™×œ ×œ×”×”×Ŗ×›×œ טוב יותר על העולם והבעיות ×”××ž×™×Ŗ×™×•×Ŗ שלנו בתוכו, או לשפר את הביטחון ×‘×©×™×˜×•×Ŗ שלנו ולמצוא ×©×™×˜×•×Ŗ שאנחנו מאמינים בהן. אבל ×œ×¤×—×•×Ŗ אני מקווה שלשים מול העיניים את שתי הבעיות יעזור ×œ×§×—×Ŗ את הצעד ×”×Ø××©×•×Ÿ.

ToCode
1 418
# היום ×œ×ž×“×Ŗ×™: הפניות ×•× ×Ŗ×™×‘×™× ב Apache אם ×’×œ×©×Ŗ× באתר ××Ŗ×ž×•×œ באזור אחר ×”×¦×”×Ø×™×™× אולי ×©×ž×Ŗ× לב שבמשך ×ž×”×¤×Ø דקות האתר לא היה זמין והציג שגיאה לגבי תעודות SSL. ההיבה לבעיה ×”×™×Ŗ×” ניהיונות שלי ×œ×Ø×™×‘ עם ה Apache ולשכנע אותו לשלוח הפניה ××•×˜×•×ž×˜×™×Ŗ ×ž×”× ×Ŗ×™×‘×™× בלי ה www לאלה עם. הדבר ×”×Ø××©×•×Ÿ ×©×œ×ž×“×Ŗ×™ ×‘×Ŗ×”×œ×™×š היה שלפני שמשחקים עם הגדרות של Apache כדי ×œ×’×‘×•×Ŗ את קובׄ הקונפיגורציה לצד, רק ×œ×ž×§×Ø×” שתשברו משהו (אני שברתי. בגלל זה האתר היה למטה למשך כמה דקות ×ž×œ×—×™×¦×•×Ŗ). אבל מה שיותר מעניין זה הפיהקה הבאה ×ž×Ŗ×•×š ההגדרות שהפתיעה לטובה:
<VirtualHost *:443>
    ServerName tocode.co.il
    Redirect permanent / http://www.tocode.co.il/
</VirtualHost>
ולמה היא ×ž×¤×Ŗ×™×¢×”? כי ביום ×Ø×’×™×œ ×”×™×™×Ŗ מצפה (טוב אני ×”×™×™×Ŗ×™ מצפה) שהיא תייצר הפניה רק ×ž×”× ×Ŗ×™×‘ הראשי בלי ה www ×œ× ×Ŗ×™×‘ הראשי עם ה www, בלי להשפיע על שאר ×”× ×Ŗ×™×‘×™× באתר. ×©×ž×—×Ŗ×™ ×œ×’×œ×•×Ŗ ש Apache באופן אוטומטי לא נוגע בחלק שאחרי ה / בפקודת הפניה וכך ×§×™×‘×œ×Ŗ×™ הפניה ××•×˜×•×ž×˜×™×Ŗ מכל כתובת באתר ×œ×›×Ŗ×•×‘×Ŗ ×”×ž×Ŗ××™×ž×” לה עם www. אגב רק בשביל השוואה ב nginx אנחנו כן ×¦×Ø×™×›×™× ×œ×”×™×•×Ŗ יותר ×ž×¤×•×Ø×©×™× ×•×œ×”×¤×Ø שאנחנו ×Ø×•×¦×™× את ההפניה מכל ×”× ×Ŗ×™×‘×™× - כך בשביל לקבל את אותה התנהגות ב nginx היינו ×›×•×Ŗ×‘×™×:
server {
    server_name tocode.co.il;
    return 301 $scheme://www.tocode.co.il$request_uri;
}
ורק בינינו - הגישה של nginx נראית לי הרבה יותר ברורה (ולא בפעם הראשונה).

ToCode
1 418
# שני מהלולי בוטקמפ חדשים לא משנה כמה אנחנו אוהבים את האונליין, יש כיף בללמוד יחד עם עוד אנשים: כשיש לך את מי לשתף ×‘×¤×™×Ŗ×Ø×•×Ÿ המדליק שכתבת, כשיש את מי לשאול ×›×©× ×Ŗ×§×¢×™×, כשיש פידבק ×ž×ž×Ø×¦×” וגם ×ž×—×‘×Ø×™× על העבודה שלך - פידבק שעוזר ×œ×”×©×Ŗ×¤×Ø. מי שעוקב פה יודע שאני הרבה זמן מחפש את הנוהחא שתאפשר ללמוד יחד בכיף גם מחוׄ ×œ×›×™×Ŗ×”, ועכשיו עם הקורונה מהביב החיפוש הזה הפך הרבה יותר חשוב. בשביל זה פתחתי היום ×Ø×™×©×•× לשני מהלולי לימוד חדשים שאני חושב שיכולים לעניין גם ××Ŗ×›×. המהלולים מיועדים לאנשים ×©×Ø×•×¦×™× ללמוד עם עוד ×—×‘×Ø×™×, ×Ø×•×¦×™× תוכנית לימודים ×ž×”×•×“×Ø×Ŗ, שמחים להשקיע שעות בכתיבת קוד ובשיחה עליו אבל ×‘×™× ×Ŗ×™×™× לא מצאו את ×”×ž×”×’×Ø×Ŗ ×”×ž×Ŗ××™×ž×”. אנשים שיודעים שההשקעה היא חשובה ×•×©×”×Ŗ×ž×“×” היא ×”×ž×¤×Ŗ×— להצלחה, אבל כל פעם ×©×ž×Ŗ×™×™×©×‘×™× ללמוד או ×œ×Ŗ×Ø×’×œ × ×Ŗ×§×¢×™× ×ž×”×Ø ×•×ž×Ŗ×§×©×™× למצוא את הכוחות להמשיך ×œ×Ø×™×‘ עם ×”×Ŗ×Ø×’×™×œ עד שיעבוד. המהלול ×”×Ø××©×•×Ÿ מיועד ללימוד React עבור ×ž×Ŗ×›× ×Ŗ×™ ווב שיודעים כבר JavaScript. הוא יימשך שלושה שבועות במהלכם אנחנו נעבוד יחד כל יום לפי תוכנית עבודה ×ž×”×•×“×Ø×Ŗ. פעמיים בשבוע נקיים מפגשי אונליין בהם תציגו את העבודות שלכם ×•×Ŗ×•×›×œ×• ×œ×”×¢×œ×•×Ŗ ×©××œ×•×Ŗ, ובשאר השבוע נתקשר ×“×Ø×š קבוצת צ'ט. המהלול מבוהה על ×Ŗ×›× ×™ הוידאו ×•×”×Ŗ×Ø×’×™×œ×™× של קורה React כאן באתר, והוא ×ž×Ŗ××™× גם אם ×Ø××™×Ŗ× כבר את ×”×”×Ø×˜×™× אבל לא ×¤×Ŗ×Ø×Ŗ× עדיין את כל ×”×Ŗ×Ø×’×™×œ×™× ×•×”×¤×Ø×•×™×§×˜×™×. המהלול השני מיועד ללימוד Python והוא יעבוד ×‘×ž×Ŗ×›×•× ×Ŗ דומה. גם הוא יימשך שלושה שבועות ויכלול עבודה ×™×•×ž×™×Ŗ לפי תוכנית ×ž×”×•×“×Ø×Ŗ, לימוד ×“×Ø×š ×”×Ø×˜×™ הוידאו המוקלטים באתר, קבוצת צ'ט ×œ×Ŗ×Ø×’×•×œ ×•×©××œ×•×Ŗ כל השבוע ומפגשי אונליין ×œ×©×™×Ŗ×•×£ ידע והצגת העבודות שלכם כדי ×©×Ŗ×•×›×œ×• לקבל פידבק ×ž×—×‘×Ø×™× וממני. שני המהלולים לא מיועדים למי שרוצה "ללמוד ×Ø×™××§×˜ ×Ŗ×•×š כדי שינה", אלא למי שרוצה ×œ×©×‘×Ŗ ללמוד ×“×Ø×š ×”×Ŗ×ž×•×“×“×•×Ŗ עם בעיות ובליווי מנחה וקבוצת ×—×‘×Ø×™×. אני חושב ששניהם יהיו מהנים מאוד. עכשיו ×œ×¤×Ø×˜×™× הטכניים: מהלול בוטקמפ ללימוד ×Ø×™××§×˜ ייפתח ×‘×Ŗ××Ø×™×š 14.06.2020 למשך שלושה שבועות. מפגשי העבודה ×™×Ŗ×§×™×™×ž×• בימי ×Ø××©×•×Ÿ ורביעי בין השעות 9:00 ל-11:00 בבוקר ×‘×Ŗ××Ø×™×›×™×: 14/06, 17/06, 21/06, 24/06, 28/06, 01/07. ×ž×—×™×Ø הקורה 970 ש"ח וזה כולל חודש מנוי ×œ×Ŗ×§×•×¤×” של הקורה (אם ××Ŗ× כבר מנויים החודש הזה יתווהף לכם ××•×˜×•×ž×˜×™×Ŗ ×œ×Ŗ×§×•×¤×Ŗ המנוי). ×”×¦×˜×Ø×¤×•×Ŗ לבוטקמפ בקישור: https://www.tocode.co.il/quickjoin2?term=15. מהלול בוטקמפ ללימוד ×¤×™×™×Ŗ×•×Ÿ יפתח ×‘×Ŗ××Ø×™×š 14.06.2020 למשך שלושה שבועות. מפגשי העבודה ×™×Ŗ×§×™×™×ž×• בימי ×Ø××©×•×Ÿ ורביעי בין השעות 13:00 ל-15:00 ×‘×¦×”×Ø×™×™× ×‘×Ŗ××Ø×™×›×™×: 14/06, 17/06, 21/06, 24/06, 28/06, 01/07. ×ž×—×™×Ø הקורה 970 ש"ח וזה כולל חודש מנוי ×œ×Ŗ×§×•×¤×” של הקורה (אם ××Ŗ× כבר מנויים החודש ×ž×Ŗ×•×•×”×£ ××•×˜×•×ž×˜×™×Ŗ ×œ×Ŗ×§×•×¤×Ŗ המנוי). ×”×¦×˜×Ø×¤×•×Ŗ לבוטקמפ ×¤×™×™×Ŗ×•×Ÿ בקישור: https://www.tocode.co.il/quickjoin2?term=16. מוזמנים לשלוח מייל או ×œ×”×©××™×Ø הודעה באתר לכל שאלה.

ToCode
1 418
# דרושה: ×”×Ŗ×ž×“×” הבחור הזה ×ž×”×©×•×Ø×” השניה שצועק ×œ×ž×Ø×¦×” "יש שם ×˜×¢×•×Ŗ במינוהים!" כשכולם יושבים בהלם? זאת כבר הפעם ×”×©×œ×™×©×™×Ŗ שהוא בקורה הזה. והבחורה מהאמצע ×©×Ŗ×ž×™×“ ×©×•××œ×Ŗ בדיוק את השאלה הכי טובה של השיעור? בואו רק נגיד שזאת לא הפעם הראשונה שהיא ×©×•××œ×Ŗ את השאלה הזאת בקורה הזה. נכון, היו איתי אנשים חכמים ממש ×‘××•× ×™×‘×Ø×”×™×˜×” שהצטיינו בקורה בפעם הראשונה שהם ראו את ×”×—×•×ž×Ø. אבל הרבה מאוד ×ž×”×Ŗ×œ×ž×™×“×™× הטובים שפגשתי היו כאלה פשוט כי הם ניהו יותר מכל ×”××—×Ø×™×: הם לקחו את ×”×¤×”×™×›×•×ž×˜×Ø×™ שוב ושוב עד שהגיעו לציון שרצו, ואז לקחו את ×”×§×•×Ø×”×™× שוב ושוב עד שהגיעו לממוצע הציונים שהם רצו, וכן - גם בקבלה לעבודה הם המשיכו ×œ×œ×›×Ŗ ×œ×Ø××™×•× ×•×Ŗ עד שהגיעו ×œ×Ŗ×¤×§×™×“ הטוב ביותר שיכלו למצוא. ×•×”××™× ×˜×Ø× ×˜ היום הוא כמו ×ž×’×Ø×© משחקים אינהופי ×œ×ž×Ŗ×ž×™×“×™×: יש יותר ×—×•×ž×Ø×™ לימוד ממה שבן אדם יכול ללמוד בחיים שלמים, יש יותר ×©××œ×•×Ŗ ×œ×”×Ŗ×›×•× ×Ÿ ×œ×Ø××™×•× ×•×Ŗ עבודה ממה ×©××Ŗ× יכולים ×œ×¤×Ŗ×•×Ø וכמובן עם העבודה ×ž×Ø×—×•×§ יש הרבה יותר ×ž×§×•×ž×•×Ŗ ×©××Ŗ× יכולים ×œ×”×Ŗ×Ø××™×™×Ÿ אליהם ולעבוד בהם ממה שאפשר לדמיין. ×Ŗ×ž×™×“ יש משחק חדש ×œ× ×”×•×Ŗ, ×•×Ŗ×ž×™×“ אפשר ×œ×”×©×Ŗ×¤×Ø. בעולם ×”×ž×•×–×Ø הזה לא חייבים ×œ×”×™×•×Ŗ הכי חכמים בשביל להצליח. מהפיק ×œ×§×—×Ŗ את הקורה שוב ושוב, להמשיך ×œ×”×Ŗ×›×•× ×Ÿ, להמשיך ללמוד ולהמשיך ×œ×™×¦×•×Ø. ×”×Ŗ×ž×“×” היא עדיין ×”×“×Ø×š הטובה ביותר למצוא עבודה בתכנות.

ToCode
1 418
# יצירת פונקציות ××•×˜×•×ž×˜×™×Ŗ ב JavaScript ×œ×ž×Ø×•×Ŗ הדימיון השטחי, המנגנון של פיתוח מונחה עצמים ב JavaScript עובד בצורה די שונה מזה של Java או כל שפה אחרת ×©×ž×©×Ŗ×ž×©×Ŗ במילה class כדי ×œ×”×’×“×™×Ø מחלקה. ודווקא כשאנחנו ×–×•×›×Ø×™× את הכאוה ×©×ž×”×Ŗ×Ŗ×Ø ×ž×Ŗ×—×Ŗ לפני השטח ב JavaScript נפתחות ×”×–×“×ž× ×•×™×•×Ŗ ×œ×¤×™×Ŗ×•×— קוד גנרי ומעניין. קחו לדוגמא את הריבוע הזה שמחליף צבעים:
class ColorChanger {
  constructor(root) {
    this.el = document.createElement('div');
    root.appendChild(this.el);
    this.el.style.width = '100px';
    this.el.style.height = '100px';
    this.el.style.border = '2px solid';
  }

  red() {
    this.el.style.backgroundColor = 'red';
  }

  blue() {
    this.el.style.backgroundColor = 'blue';
  }

  yellow() {
    this.el.style.backgroundColor = 'yellow';
  }
}

const c = new ColorChanger(document.body);
אם תוהיפו אותו לקוד שלכם ×Ŗ×•×›×œ×• ×œ×”×©×Ŗ×ž×© ×‘×ž×©×Ŗ× ×” c כדי להחליף את הצבע של הריבוע ×‘××ž×¦×¢×•×Ŗ ×”×¤×¢×œ×Ŗ הפונקציות ×”×ž×Ŗ××™×ž×•×Ŗ. הפקודה:
c.red();
תצבע את הריבוע באדום, קריאה ל c.blue() תצבע אותו בכחול ו c.yellow() בצהוב. אבל ברור שזה לא הקוד שהכי נעים ×œ×”×”×Ŗ×›×œ עליו או ×œ×Ŗ×—×–×§ אותו. כל פעם שנרצה להוהיף צבע נצטרך להוהיף עוד פונקציה שלמה ולשכפל את השורה שצובעת את ×Ŗ×•×›×Ÿ הריבוע. אבל יש ×“×Ø×š קלה לקצר קוד כזה, והיא השימוש ב Prototype. במקום ×œ×”×’×“×™×Ø כל פונקציה בנפרד, נוכל ×œ×”×’×“×™×Ø את כל פונקציות הצבעים בלולאה מחוׄ לקוד המחלקה. זה נראה כך:
class ColorChanger {
  constructor(root) {
    this.el = document.createElement('div');
    root.appendChild(this.el);
    this.el.style.width = '100px';
    this.el.style.height = '100px';
    this.el.style.border = '2px solid';
  }
}

for (let clr of ['red', 'blue', 'yellow']) {
  ColorChanger.prototype[clr] = function() {
    this.el.style.backgroundColor = clr;
  };
}
בצורה כזאת אנחנו יכולים להוהיף כל צבע שנרצה ובאופן אוטומטי הלולאה תייצר את הפונקציה ×”×ž×Ŗ××™×ž×”.

ToCode
1 418
# ××‘×˜×—×Ŗ מידע ×‘××™× ×˜×Ø× ×˜ אני לעולם לא אשכח את המייל ×©×§×™×‘×œ×Ŗ×™ ב 26.2.2013, שנה וקצת אחרי ×©×”×§×ž×Ŗ×™ את אתר הוורדפרה ×”×Ø××©×•×Ÿ שלי. הוא ×”×Ŗ×—×™×œ בכותרת המופלאה "ינון, חשד ×œ×¤×Ø×™×¦×” לאתר". ומשם זה רק נהיה יותר גרוע. הנה ×Ŗ×•×›×Ÿ המייל בשבילכם: > ינון שלום, > כחלק ×ž×ž×¢×Ø×š האבטחה של רייד × ×”×Ø×§×™× מידי יום ×Ŗ×›× ×™× ומידע על פריצות אבטחה ×‘××¤×œ×™×§×¦×™×•×Ŗ כגון, Wordpress, Joomla ועוד, > אתרך כנראה נפרׄ על ידי ×’×•×Ø×ž×™× עויינים ואנטישמים - × ×Ŗ×’×œ×Ŗ×” באתרף פירצה מהוג Defacement, > כתובת הפריצה שנהרקה: qtcollege.co.il האתר אולי נפרׄ על ידי ×’×•×Ø×ž×™× עוינים ואנטישמים, אבל ההיבה ×”××ž×™×Ŗ×™×Ŗ ×œ×”×©×—×Ŗ×” ×”×™×Ŗ×” קטע הקוד הזה שהופיע ב Theme שקניתי והיה פתוח לכל ×”××™× ×˜×Ø× ×˜:
if ($_POST['url']) {
        $uploaddir = $_POST['url'];
}
 
$first_filename = $_FILES['uploadfile']['name'];
$filename = md5($first_filename);
$ext = substr($first_filename, 1 + strrpos($first_filename, '.'));
$file = $uploaddir . basename($filename . '.' . $ext);
 
if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) {
        echo basename($filename . '.' . $ext);
} else {
        echo 'error';
}
×”×Ŗ×•×§×¤×™× פשוט העלו קובׄ shell.php ובגלל שהקוד הפגיע לא מוודא ×”×™×•×ž×Ŗ, הקובׄ × ×©×ž×Ø עם ×”×”×™×•×ž×Ŗ php כך שהשרת שלי שמח ×œ×”×Ø×™×„ את הקוד שבו ×•×œ×Ŗ×Ŗ ×œ×Ŗ×•×§×¤×™× גישת Shell מלאה. אני לא יודע מה ×”×™×Ŗ×” ×”×˜×¢×•×Ŗ בקוד באתר של upress. אני מחזק את ידיהם ומקווה שהם ימצאו אותה ×ž×”×Ø ויתקנו. ×œ×¦×¢×Ø×™ ×ž×™×Ø×•×„ ×”×¢×›×‘×Ø×™× הזה של אבטחה ×‘××™× ×˜×Ø× ×˜ לא קרוב להיום ובניגוד ×œ×§×•×Ø×•× ×”, לא צפוי חיהון נגד קוד גרוע בעתיד הנראה לעין.

ToCode
1 418
# ×ž×›×•× ×Ŗ הזמן המוח האנושי ממש גרוע ×‘×œ×–×”×•×Ŗ שינויים ×œ××•×Ø×š זמן. אם אני רואה קורה בישול ולומד שם טכניקה חדשנית איך לקלף בצל בלי ×œ×‘×›×•×Ŗ, אז החיים שלי השתנו מקצה לקצה ×Ŗ×•×š חמש דקות והכל טוב, המוח שמח. אבל, אם אני לוקח קורה ×Ø×™××§×˜? כאן המצב הרבה יותר מהובך. בצפיה ראשונה בקורה אני לומד איך ×Ø×™××§×˜ עובד ואולי מבין איך ×œ×›×Ŗ×•×‘ ×§×•×ž×¤×•× × ×˜×•×Ŗ ×¤×©×•×˜×•×Ŗ. אחרי זה אני מנהה ×œ×Ŗ×Ø×’×œ ולא מצליח כלום, אז שואל כמה ×©××œ×•×Ŗ וצופה שוב, ואז מבין קצת יותר ומצליח ×œ×¤×Ŗ×•×Ø את ×”×Ŗ×Ø×’×™×œ×™× של הקורה. ואז אני מנהה ×œ×›×Ŗ×•×‘ ×¤×Ø×•×™×§×˜ בעצמי ושוב ולא מצליח כלום, אז חוזר ×œ×¦×¤×•×Ŗ ×‘×©×™×¢×•×Ø×™× פעם ×©×œ×™×©×™×Ŗ (או רביעית), עובר מחדש על ×”×Ŗ×Ø×’×™×œ×™×, ×ž×Ŗ×§×“× קצת עם ×”×¤×Ø×•×™×§×˜ וחוזר ×œ×¦×¤×•×Ŗ בקורה, ואחרי חצי שנה של לימוד אני מצליח ×œ×”×Ø×™× את ×”×¤×Ø×•×™×§×˜ עליו ×—×œ×ž×Ŗ×™. ×‘×Ŗ×•×š החצי שנה הזאת של הלימוד ×œ×ž×“×Ŗ×™ כל כך הרבה ×˜×›× ×™×§×•×Ŗ ×•×˜×Ø×™×§×™× קטנים, אבל כל יום וכל שעה השיפור היה כל כך קטן שקשה ×œ×Ø××•×Ŗ אותו, ובגלל שקשה ×œ×Ø××•×Ŗ את השינוי קשה מאוד ×œ×©×ž×•×Ø על אותה ×Ø×ž×Ŗ מוטיבציה ×•×‘××ž×Ŗ ×œ×©×Ø×•×“ את החצי שנה של לימוד. זאת אני חושב ההיבה ×”×ž×Ø×›×–×™×Ŗ שקשה יותר ×œ×”×Ŗ×ž×™×“ בקורהי אונליין בהשוואה ×œ×§×•×Ø×”×™× בכיתות. ×˜×Ø×™×§ קטן שעוזר לי לפעמים הוא ×œ×‘× ×•×Ŗ ×ž×›×•× ×Ŗ זמן. לא כזאת ×ž×Ŗ×•×—×›×ž×Ŗ שיודעת ×œ×§×—×Ŗ ××•×Ŗ×š ×œ×¢×Ŗ×™×“, אלא ×ž×›×•× ×Ŗ זמן פשוטה שבהך הכל מצליחה ×œ×§×—×Ŗ ××•×Ŗ×š שבוע אחד אחורה בחיים. וזה קל: אחרי שבוע של לימוד לוקחים ×Ŗ×Ø×’×™×œ ששברנו עליו את הראש רק לפני שבוע, ומנהים ×œ×¤×Ŗ×•×Ø אותו שוב. כמעט ×Ŗ×ž×™×“ נגלה שהדבר ההוא שהיה ממש קשה הפך למשהו שאנחנו כבר יודעים ×œ×”×”×Ŗ×“×Ø איתו, ואולי אפילו קצת משעמם. וזה הוג השיעמום שאני הכי אוהב - ×›×©×“×‘×Ø×™× שהיו קשים הופכים למובנים מאליהם.