yossiz
-
תמונות במייל - ביטול לראות תמיד תמונות ממייל מסוים -
מחפש מדריך ללמוד אבטחת אתרים@מנסה-להבין נסה להתנהג יותר בצורה שהולמת פורום ופחות בצורה שהולמת צ'אט. תעבור על חוקי הפורום.
-
נוהל דיווח על פירצה באתר@אבי אמר בנוהל דיווח על פירצה באתר:
אחרי הטיפול
בהנחה האופטימית שהם יטפלו בזה במהירות...
תהיו בהלם מרמת המחדל
אתר ישראלי? לא תצליח להפתיע אותי...
מה הנוהל הנכון לדווח על זה?
הבעיה היא שאין נוהל...
אפשר לנסות מייל לכתובת security@domain
או למצוא פרטי קשר אחרים.
יש חברות שמשלמים לחוקרי אבטחה על פריצות, אבל במקרים כאלו הם מפרסמים את זה איפשהו.
אפשר לחפש פה: https://www.hackerone.com אם הם נמצאים. רוב הסיכויים שלא...
(עריכה: אני רואה עכשיו שיש להם שירות שאם נתקלת בבעיות בדווח באג הם עוזרים לך לדווח גם אם לחברה אין קשר להם)
יש יוזמה לעשות תקן עבור פרסום דרכי יצירת קשר ועוד בנושאי אבטחה בקובץ security.txt, לדוגמה הנה הפרטים של גוגל: https://www.google.com/.well-known/security.txt, תבדוק אם לחברה זו יש קובץ כזה. -
סיסמה ארוכה באתר "בנק" הדואר@aknvtchtk אם כן תצטרך לעשות תמרונים... אני יכול להסביר בקווים כלליים מה אני עשיתי, אולי אפשר לעשות משהו יותר פשוט, אני לא יודע.
השתמשתי בתוכנת mitmproxy (תוכנה חינמית אפשר להוריד עבור ווינדוס כאן: https://snapshots.mitmproxy.org/5.2/mitmproxy-5.2-windows-installer.exe)
אחרי התקנה מריצים mitmproxy ui מתפריט ההתחלה. זה פותח חלון CMD וממשק גרפי בדפדפן. עכשיו הפרוקסי מאזין על פורט 8080. צריך להגדיר בהגדרות פרוקסי של ווינדוס שיעביר את הכל דרך localhost:8080.
אם אתה בנטפרי צריך ללחוץ בממשק הגרפי בדפדפן על options > edit options, ושם להפעיל את אופציית ssl_insecure.
תוודא שאתה רואה את תעבורת הרשת עוברת דרך mitmproxy. אתה אמור לראות רשימה של כל הבקשות שהולכת ומתמלאת.
תבדוק בכלי הפיתוח של כרום בכרטיסיית network ותמצא את הבקשה ששולחת את הסיסמה. נסה למצוא ב-url של הבקשה איזה מחרוזת ייחודית שניתן לחפש לפיה.
עכשיו בכרטיסיית start בממשק של mitmproxy תכניס את המחרוזת לשדה intercept. זה יגרום ש-mitmproxy תעצור בקשה ל-URL שמכיל את המחרוזת ותתן לך לערוך את הבקשה לפני שהבקשה ממשיכה הלאה,
בקשות שנעצרו מופיעים בכתום ברשימה, ולחיצה על השורה מאפשר לך לבדוק את תוכן הבקשה. לחיצה על סימן ה-
בצד ימין למעלה מאפשר עריכה של הבקשה, עכשיו הלחצן מופיע עם סמליל
ולחיצה עליו שומר את השינויים.עבור לכרטיסייה חדשה בדפדפן ותפתח את האתר הבעייתי, נסה ליכנס, הבקשה שבודקת את הסיסמה אמור להיעצר,
עבור לכרטיסיית mitmproxy וזהה את הבקשה וערוך אותה שתכיל את כל התווים של הסיסמה ואז לחץ על resume בסרגל הכלים.
כאשר התשובה חוזרת מהשרת הבקשה נעצרת שוב, תלחץ על resume שוב כדי לאפשר אותה ליכנס לדפדפן,אם עשית את הכל כשורה אתה אמור להצליח ליכנס לאתר...
כל זה בהנחה שאין בדיקות בצד השרת על אורך הסיסמה, או שהבדיקה בצד השרת משתמשת בערכים נכונים.
בהצלחה!
-
אפשר לעשות קישור למלל מסויים בדף, הידעתם?מה שחסר כרגע הוא תוסף כרום שמייצר לינקים כאלו למילים שאתה מסמן באתר....
-
מינוס במוניטין@שני-התולעת הצבעה נגד פוסט (לחיצה על
) מוריד מוניטין -
העיצוב החדש בפורוםסליחה מכולם... אבל על טעם וריח וכו' מקווה שיהיה מתישהו משהו שמרצה את כולם...
-
ייעוץ לגבי טכנולוגיות לפרויקט@Sara-Rivka כתב בייעוץ לגבי טכנולוגיות לפרויקט:
האם מומלץ להמשיך עם סטאק מוכר כדי להתמקצע בו יותר, או לגוון כדי להרחיב אופקיים?
אני חושב שאין תשובה כללית. זה תלוי בבנאדם. אם כבר נוח לכם עם הסטאק שאתם עובדים איתו ואתם מחפשים להרחיב ויש לכם מספיק רוחב פס להכיל עוד סטאקים, אז בבקשה. ואם לא אז לא כדאי.
אם לגוון – אילו טכנולוגיות לדעתכם כדאי להכיר כיום?
יש בלי סוף תשובות...
לדוגמה:
משהי כתבה לי "נראלי כדאי לך להכיר פלאטר בפיתוח אפליקציות"
אני חושב שכדאי שתלמדו גם פייתון וגו וקוטלין וראסט ו-PHP
ויש עוד מליון וחצי דברים שכדאי להכיר אבל קצר הנייר מלהכילםהאם כדאי באמת?
כן ולא. זו התשובה היחידה הנכונה.

האם יש טכנולוגיות מבוקשות בשוק העבודה שמומלץ להתנסות בהן בפרויקט עצמאי ראשון?
כן. בדיוק מה שאתם כבר מכירים. נוד וריאקט.
נ.ב. אשמח גם לעצות כלליות
לא להקשיב לעצות של אחרים. פשוט ללכת לאן שאתם נמשכים.
ולזכור שמתכנת אף פעם לא גומר ללמוד. -
איך לוודא שסגירת משאבים תתבצע גם בעת עצירת ניפוי באגים ב-Visual Studio?@pcinfogmach עכשיו אני מבין ששאלת שאלה חזקה.
כמה מחשבות שעולות לי:- סתם מחשבה: העניין הזה שהתוכנה נסגרת בלי לנקות אחריו עלול לקרות גם ב-"production". אי אפשר לסמוך על זה שהתוכנה לא תקרוס או מאיזה סיבה אחרת תיסגר בצורה "לא נקיה". אם כן כדאי לתת את הדעת על איך התוכנה תוכל להתמודד עם מצב זה בצורה אוטומטית עד כמה שאפשר.
לידיעה (להבין את תהליך המחשבה שלי בנושא): מה קרה לתוכנה כאשר ה-UI "תקוע"?
הלב הפועם של כל תוכנה גרפית בווינדוס הוא ה-message loop. זה "לולאה קיומית" שכל תוכנה גרפית נמצא בו כל הזמן, הלולאה מקבלת "אירועים" ממערכת ההפעלה (לדוגמה לחיצות מקשים ותזוזות עכבר וכו') ומטפלת בהם. בד"כ הלולאה רצה על הת'רד הראשי. תוכנה שתקועה, הכוונה שהלולאה הראשית הפסיקה לטפל באירועים, בד"כ כי הוא אוחז באמצע פעולה ארוכה או תקועה.
כל אינטראקציה עם תוכנה גרפית שולחת אירוע ללולאה, אם הלולאה תקועה, התוכנה לא תגיב. לכן אי אפשר לסגור אותה עם האיקס האדום כי זה פועל על ידי שליחת אירוע ל-message loop- המחשבה הבאה שלי היתה שאפשר לסגור תוכנה שלא מגיבה על ידי קריאת פונקציה בחלון ה-Immediate Window
לשם בדיקת הצעה זו יצרתי פרוייקט WPF (לפי ההיסטוריה שלך אני מניח שגם התוכנה שלך WPF) והוספתי Sleep ארוך בת'רד הראשי, ואז ניסיתי לסגור את התוכנה באמצעות ה-Immediate Window
הקוד שניסיתי:
Application.Current.Shutdown()התוצאה בתמונה:

בשלב הראשון קיבלתי את ההודעה הראשונה, אחרי חיפושים פתרתי אותה על ידי ההגדרה Tools > Options... > Debugging > General > Suppress JIT optimization on module load
ואז קיבלתי את ההודעה השניה
בשלב הזה התייאשתי מכיוון זה
ייתכן שיש מקרים של תקיעה שבהם זה כן יכול לעבוד- כיוון נוסף שחשבתי:
הצורה שווינדוס מטפלת באירוע ctrl+c בקונסול, שונה מהטיפול באירועיים "גרפיים". בקונסול כאשר לוחצים ctrl+c, ווינדוס יוצרת ת'רד חדש בתהליך ובתוך הת'רד החדש קורא למטפל באירוע.
(מתועד פה: https://learn.microsoft.com/en-us/windows/console/handlerroutine)
אם ככה, גם תהליך שלא מגיב לאירועים גרפיים אמור להגיב ל-ctrl+c בקונסול!
יצרתי פרוייקט נסיון
החלקים הרלוונטיים:
בקובץ ה-csproj הוספתי ככה (כתבתי את זה ידני, לא מצאתי דרך לעשות את זה ב-UI)
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <OutputType>Exe</OutputType> </PropertyGroup>כלומר: במצב דיבוג - תיצור תוכנת קונסול (ההשלכה היחידה שאני מכיר הוא שזה פותח חלון שחור של קונסול במקביל לחלון הרגיל - ועוד הבדל טכני עדין שלא נוגע פה, בקיצור זה לא אמור להזיק לכלום)
בקובץ app.xaml.cs:
public void App_Startup(object sender, StartupEventArgs e) { #if DEBUG Console.CancelKeyPress += (s, e) => { // Do cleanup }; #endif } }ניסיתי את הקוד ונראה שזה פועל כרצוי
אבל שים לב: מכיון שהקוד ב-CancelKeyPress רץ בת'רד נפרד, ייתכנו השלכות לא צפויות! ראה הוזהרת!נ.ב בהתחלה חשבתי שאוכל לכתוב בתוך ה-CancelKeyPress רק את השורה
Application.Current.Shutdownואז להסתמך על אירוע Exit לעשות את הנקיון, אבל מתברר שאירוע Exit מטופל על ידי הת'רד הראשי, ואם הוא תקוע זה לא יתבצענהניתי מחקירת הנושא
אשמח להערות רעיונות ושיפורים
-
בעיה בשימוש עם text to speech בשפת PHP@ששא כתב בבעיה בשימוש עם text to speech בשפת PHP:
עד שתפסתי שהפעלתי בפרוייקט אחר שלא קשור לזה.....
אז למעשה פתרת את הבעיה?
לא כתבתי את נוסח השגיאה
לא הבאת שום פרטים. במקרה הזה היה צריך לפחות להביא את נוסח השגיאה, בד"כ צריך גם להביא את הקוד, (פה במקרה הקוד לא רלוונטי).
עד כמה שידוע לנו אין בפורום בעלי רוח הקודש. תהליך פתירת בעיות דורש עיון בכל פיסת מידע שרלוונטי לבעיה, בלי זה זה רק משחק ניחושים.
האם היית מתקשר לרופא ואומר "רופא רופא, משהו לא בסדר" ומצפה לפתרון בלי למסור שום מידע נוסף מעבר לזה? -
SQL | בדיקה האם ערך מסויים קיים במסד נתוניםSELECT EXISTS(SELECT * FROM Z WHERE Y = X); -
חילוץ מפתח XOR מתוך מספרים ממוייניםהסבר הקוד הנ"ל
השיטה לחלץ את המפתח בנויה על שתי ההערות הבאות:
פעולת XOR:
אפשר להסתכל על פעולת XOR בצורה כזו: בכל מקום שיש ביט 1 במפתח אנחנו מחליפים בקלט 1 ל-0 ו-0 ל-1.
יוצא ששום מידע לא הולך לאיבוד בפלט, רק ששמור בסוד בתוך המפתח באיזה ביט משמעותו של 1 הוא 1 ובאיזה מהם משמעותו 0. וכן לגבי 0 איזה מהם משמעותו 0 ואיזה מהם משמעותו 1.מספרים בינאריים עוקבים:
אפשר ליצור רצף של מספרים עוקבים בינאריים אם נעקוב אחרי שני כללים פשוטים:
- בכל איטרציה נחליף את הערך של הביט הכי ימני
- כל ביט שערכו הופך מ-1 ל-0, גורר שינוי בביט שלשמאלו
למשל, אם נתחיל במספר
0- איטרציה 1: נחליף את הערך של הביט הכי ימני => קיבלנו
1 - איטרציה 2: נחליף את הערך של הביט הכי ימני, יצא 0, עכשיו לפי הכלל השני זה מחייב אותנו לשנות את הביט שלשמאלו מ-0 ל-1 => קיבלנו
10 - איטרציה 3: כלל 1 =>
11 - איטרציה 4: כלל 1 נותן לנו
10כלל 2 מחייב שינוי בביט השני , קיבלנו00שוב כלל 2 מחייב שינוי בביט השלישי => קיבלנו100
וכן הלאה, אם רק נעקוב אחרי שני כללים אלו ניצור תמיד את המספר הבא ברצף
יוצא מזה שאפשר לזהות מספרים שאינם עוקבים אם הם לא מתאימים לתבנית זו. כלומר, או שהשינויים לא מתחילים מימין, או ששינוי של ביט שמאלי יותר לא נגרר משינוי של הביט לימינו מ-1 ל-0
והנה במספרים שמוצפנים בשיטת XOR, כבר אי אפשר לדעת אם ה-1 הוא 1 או 0 אבל עדיין אפשר לדעת שמספרים אינם עוקבים לפי הכלל השני, אם נראה שינוי בביט שמאלי כאשר אין שינוי בביט שלימינו נדע שהמספרים לא עוקבים
ולפי זה נבין גם איך לזהות את הביטים של מפתח ההצפנה, אם נראה שינוי בביט כלשהו שנגרר משינוי של הביט לימינו מ-0 ל-1 במקום מ-1 ל-0 נדע שהביט לימינו משמעותו הפוך שה-1 הוא 0 וה-0 הוא 1 וכך אנו עולים עם ביט 1 במפתח ההצפנה
ומכאן להסבר הקוד:
הקוד מתחיל עם כמה פוקציות עזר, היחיד מביניהם שאולי דורש הסבר זה
makeBitmask
התפקיד של פונקציה זו היא ליצור "מסיכה" של ביטים באורך מסויים. (נראה בהמשך למה זה שימושי). דרך אחת לעשות את זה הוא על ידי פעולת right shift על מספר שמורכב רק מביטים של 1. אז אנו לוקחים את המספר -1 שבשיטת 2's complement (שיטת ייצוג מספרים שלמים במעבדים) הוא מורכב מרצף של 32 (או 64) ביטים של 1., ואז אנו עושים פעולתunsigned right shift עליו כדי לדחוף את המספר הנכון של ביטים של 0 משמאל.
הקוד לקחתי מפה: https://stackoverflow.com/a/43894311function makeRand (max) { return Math.floor(Math.random() * max) } function makeRange (start, length) { const ret = [] for (i = 0; i < length; i++) { ret.push(start + i) } return ret; } function makeBitmask(width) { return width && -1 >>> 32 - width; }פה אנו יוצרים את רשימת המספרים ומפתח אקראי בין 1 - 1000
const KEY = makeRand(1000) const nums = makeRange(makeRand(1000), 60) // console.log('Numbers:', nums)כאן אנו מגיעים לבשר:
שלב ראשון נרצה למצוא את המספר שבו הכי הרבה ביטים משתנים בו לעומת המספר הקודם, כי זה יאפשר לנו לגלות הכי הרבה ביטים של המפתח (יצויין, לא תמיד אפשר לגלות את כל הביטים, הקוד שלי מגלה את המקסימום האפשרי)
זה התפקיד של הלולאה.
תוך כדי כך אנו בודקים גם כן שמדובר במספרים עוקבים
הבדיקה היא על ידי XOR עם המספר הקודם.
זה נותן לנו ביט של 1 בכל מיקום שהקודם היה 0 והנוכחי 1 או הפוך, הוי אומר - כל ביט שהשתנה לעומת המספר הקודם
קיבלנו מפה של ביטים
כדי לוודא שמדובר במספר עוקב אנו צריכים לבדוק שהשינויים זורמים מימין לשמאל, זה נעשה על ידי בדיקה שהמספר מורכב מביטים של 1 בלבד (מספר כזה יש לו רק ביטים של 1 לצד ימין).
יש דרכים לבקוד את זה, אני השתמשתי בדרך קצת טריקית (חכמה
) שמובאת פה: https://www.geeksforgeeks.org/check-bits-number-set ה-method 2function extractXORKeySeq (numList) { let bestDiff, bestIndex bestDiff = bestIndex = -1 for (let i = 1; i < numList.length; i++) { const diff = numList[i] ^ numList[i-1] if (diff & (diff + 1)) { throw new Error('Numbers are not sequential!') } if (diff > bestDiff) { bestDiff = diff bestIndex = i } }מקווה שעד כאן מובן,
ואם כן, הרי קיבלנו את המספר שהכי השתנה בביטים מהמספר הקודם
עכשיו אנו לוקחים את מפת הביטים ו-
א. האורך של מפת הביטים זה האורך המקסימלי של המפתח שנוכל לחלץ (אנו מקבלים את האורך על ידי הפיכה למחרוזת ומדידת האורך, בטח יש דרכים יותר חסכוניות, חכמות, טריקיות לזה...)
ב. נרצה לדעת מתוך זה איזה ביטים השתנו מ-0 ל-1 כי אלה הם הביטים שלא היו אמורים לגרור שינוי בביט שלימינם, ואם הם גררו שינוי - סימן שהם הפוכים (כלומר, ערכם 1 במפתח ה-XOR)
ג. הביט הכי שמאלי, נרצה לבדוק שהוא שינוי מ-0 ל-1 אחרת הוא היה אמור לגרור עוד שינוי בביט שלשמאלו
לשם ב וג הנ"ל אנו עושים XOR של המפה עם המספר הקודם, רק שלפני כן אנו הופכים את הביט שמקביל לביט הכי שמאלי של המפה, דוק ותשכח שזה נותן לנו את המידע
אח"כ אני "מנקים" את שאר המספר (הופכים ל-0) על ידי פעולת AND עם מסיכה שאנו יוצרים עם פונקציית העזר הנ"ל
והנה קיבלנו את התוצאה!const previous = numList[bestIndex - 1] const extractLen = bestDiff.toString(2).length const keyBits = bestDiff ^ (previous ^ (1 << (extractLen - 1))) & makeBitmask(extractLen) return [extractLen, keyBits] }אני מקווה שנהניתם מהאתגר והפתרון, אני מאוד מאוד נהניתי

תודה ל @DOVID! -
כניסה לאתר בלוגין דרך URL מבלי להכניס כל פעם ידניעוד סיבה שזה לא יעבוד שם כי ה-POST במקרה של האתר הזה מחזיר JSON עם טוקן ולא מנתב לדף חדש עם קוקי
-
עדכון משתנה בתנאי@ענן הפתרון הוא להוריד את המילה
letמהעדכון ולהשאיר רק בהצהרה הראשונית
המילהletמיועד להצהיר על משתנה חדש. זו טעות להצהיר פעמיים על משתנה חדש עם שם זהה, בעקרון היית אמור לקבל שגיאה, אבל מכיון שפתחת scope חדש עם המסולסלים, מותר לך להצהיר על משתנה עם שם זהה למשתנה בסקופ חיצוני. זה גורם שבסקופ הפנימי השםofficeמתייחס לגירסה הפנימית של המשתנה. (משתנה שהצהרת עליו - אםletאוconst- בתוך סקופ כשלהו לא קיים כלל מחוץ לסקופ ההוא בכל מקרה, גם אם זה לא זהה לשם של משתנה חיצוני)מקווה שהייתי מובן
אני ממליץ שתלמד את השפה בצורה מסודרת כי יש הרבה פרטים כאלו שקשה לקבל בדרך של נסוי וטעייה
-
תוספים שימושיים לVSCיש לי מעל לשישים תוספים פעילים, ועוד כמה עשרות מושבתים
.
צריך לעשות נקיון לפסחמתוך הרשימה מצאתי רק יחידים שאולי שימושיים לציבור (רוב השאר הם תמיכה בשפות, פורמטים, וכדומה):
- gitlens - שימושי מאוד למי שעובד בטים, מראה ליד כל שורה את ה-git blame שלו. (יש לו המון פיצ'רים, אבל זה הדבר הכי שימושי בשבילי)
- Project Manager - גישה מהירה לפרוייקטים שלך
- Todo Tree - כשמו כן הוא. מראה תצוגה נוחה של הערות TODO
- eslint או standardjs - התממשקות עם ה-linter של JS
- npm dependency - עדכון תלויות בקליק ימני בתוך קובץ ה-package.json
-
מה התועלת משימוש באובייקט?@איש-נחמד תחשוב על קלאס בצורה זו: זה אבסטרקציה לקבוצה של דאטה שקשורים אחד לשני ויש להם התנהגויות תלויות הדדי.
למשל, אתה כבן אדם, לא נתאר אותך כקבוצה של מולקולות שמאוגדים בצורה מסויימת ומשפיעם אחד על השני בצורה מסויימת, אלא נאגד את הכל למושג אחד: אדם. הוא הדין בתכנות, אם יש לך תיאור למושג מופשט שמכיל קבוצה של דאטה והתנהגויות, אפשר לעשות מזה אובייקט ולחשוב על זה בצורה יותר אבסטרקטית, עם כמה יתרונות (למשל אפשרות להסתיר את המימוש משאר הקוד ולחשוף רק ממשק קטן מוגדר, זה מקל על שינויים בקוד).
במקרה שלך, המושג של שליפת מידע חודשי, זו פעולה. אין סיבה להפוך פעולה לקלאס, יש לנו כבר אבסטרקציה מצויינת עבור פעולות: פונקציה.
הקבוצה של (חודש, שנה) יכול להיות בסיס לאבסטרקציה ראויה, כלומר במקום להסתכל על זה כשני פיסות דאטה לא קשורות, אפשר לאגד אותם תחת קלאס בשם "תאריך-חודש" או משהו כזה (טוב, שמות טובות זו אחת מהבעיות הגדולות והמפורסמות במדעי מחשבים...
). אבל זה לא מה שניסית לעשות. וגם אם תעשה את זה, לא הייתי שם את המתודה get_dataעל הקלאס הזה, כי זה לא חלק מתיאור האובייקט, אלא הייתי מצהיר שפונקצייתget_monthly_dataמקבלת אובייקט של "תאריך-חודש" במקום שתי פיסות המידע של חודש ושנה בנפרד.גילוי נאות: אני לא משתמש גדול של OOP, וגם לא מבין גדול בנושא. כתבתי הנלע"ד כעת.
-
לימוד שפה נוספת מעבר לJS - נצרך?@צדיק-תמים אמר בלימוד שפה נוספת מעבר לJS - נצרך?:
גם היו שאמרו לי שJS זה לא שפה מבוקשת כ"כ (למשרות)...
אני חושב שזה לגמרי לא נכון. אני חושב שאין שפה יותר מבוקשת מ-JS.
האם יש עניין ללמוד שפה נוספת? לדוגמה C#? או אולי פייתון?
בעיקרון יש ענין, אבל בהחלט אין שום חובה כלל. אבל לא כעת. קודם תשלוט על JS. יש אנשים שנשארים כל החיים בשפה אחת וטוב להם. יש לך עוד המון מה להתקדם רק ב-JS.
באיזה שלב זה עובר מ"מבלבל ללמוד 2 במקביל", ל"אחרי שיודעים שפה אחת הרבה יותר קל ללמוד שניה"? או במילים אחרות - באיזה שלב ידע כדאי להוסיף שפה נוספת?
אין כללים נוקשים. הכל לפי מה שהוא אדם.
עכשיו אני הולך לסתור את עצמי, ואומר שיש כלל גדול:
אל תתן לאחרים להכתיב את סדר הלימוד שלך!!!
אדם מסוג שלך שמתעניין ומסתכל על דברים בעין ביקורתית יגיע למקום הנכון בלי להקשיב לכל שטות שכל אחד מוכר
-
איזה ספרייה/פריימוורק (מה זה בכלל, בעצם?...) מומלץ ללמוד כיום?@חוקר אני לא מכחיש את העובדה שאני מומחה וצדיק גדול, יכול להיות אפילו יותר ממה שאתה יודע...
אבל אני לא מתחייב לענות על שאלות, וגם לא עבדתי עם VUE כבר הרבה זמן, היתה תקופה לפני כשנה שעבדתי עם VUE. -
כתיבת קוד לתוספים לגמייל@נהראל אתה סוג טיפוס שאוהב ללמוד דברים בצורה יסודית? או אחד שאוהב לקפוץ למים?
אני אישית אחד שאוהב ללמוד בצורה יסודית. לאנשים כאלה סדר הדברים הוא להתחיל בלימוד שפת JS.
אפשר ללמוד מספרו של רן בר זיק.
במקביל צריך ללמוד איך אפליקציות ווביות בנויות. איך עובד האינטרנט. וכל הקשור. לפחות בצורה בסיסית.
אחרי שאתה מרוצה מרמת הידע והמיומנות, תעבור ללמוד את התיעוד של גוגל על ג'ימייל.
מבחינת חשיבות וקושי וכו' המשימה של לימוד מושגים בתכנות הרבה הרבה יותר חשוב מלימוד ה-API-ים הספציפיים של ג'ימייל. עד שזה כמעט מגוחך להכניס אותם לנושא אחד.
אני, כמתכנת, רואה את היכולת לתכנת בצורה טובה ובריאה כיסוד של הידע שלי. על זה אני משקיע רוב מאמצי ומנסה להשתדרג כל הזמן.
הידע הספציפי של איך להתממשק עם ג'ימייל, או כל אפליקציה אחרת, זה משהו שולי שאני משקיע בו לפי הצורך. אם אתה מתכנת טוב, אז היכולת להתממשק עם ג'ימייל הוא משהו שאפשר ללמוד תוך יומיים עם השקעה מועטת.
היסוד של להיות מתכנת טוב זה משהו שאתה לומד שנים על גבי שנים ותמיד משתפר. -
בעקבות האשכול תבניות של API - איזה תחליף יש לnode.js ??@ב-ל נראה לי שתסכולך לא במקום.
מה התחדש לך כאן?
לפני הדיון האחרון חשבת שפרוייקטים חדשים בנוד מסתובבים חופשי לכל מי שרוצה?
ידעת שזה יותר עבודה מאתר וורדפרס מתבנית, וממילא ידעת שזה משהו פחות נפוץ.
אף אחד לא אמר שזה לא קיים, רק שזה לא רוב העבודות בתחום. בסדר. גם מפתחי נוד טובים הם פחות נפוצים.בכל מקרה ההשקעה שלך לא הולכת לשום מקום. מה שקיבלת שווה הרבה. אתה מכיר שפה, פריימוורק, וכלים שלא הולכים לשום מקום מהר.
אם תראה שלא הולך לך למצוא קליינטים, תמיד תוכל ללמוד להקים אתרי וורדפרס.
