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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
yossizY

yossiz

@yossiz
אודות
פוסטים
6.1k
נושאים
126
שיתופים
0
קבוצות
0
עוקבים
26
עוקב אחרי
0

פוסטים

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

  • תכנות | איך להתחיל?
    yossizY yossiz

    @dovid אמר בתכנות | איך להתחיל?:

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

    אה, תודה על המילים האלו!
    זה מזכיר לי נושא חשוב מאוד.

    על כל מתכנת מצויין יש 10 בינונים ו-100 לא טובים. (כמובן שאין אף אחד מהמאה בשיחה זו. איכשהו זה תמיד מישהו אחר ולא אנחנו... 🙂 )
    יש טווח עצום של רמות מהגרועים ביותר עד המצויינים ביותר.

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

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

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

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

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

    תכנות

  • תכנות | איך להתחיל?
    yossizY yossiz

    @שוהם307

    איזה שימושים עושים עם JS

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

    ומה נרוויח שנלמד את זה

    JS היא השפה הכי פופולארית היום מבחינת כמות האנשים שמתכנתים בה ומשרות פנוייות.

    חוץ מזה יש בו כמה יתרונות:

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

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

    תכנות

  • הפקדת צ'קים בנטפרי ע"י אימולטר - אפשרי\נפתר
    yossizY yossiz

    @yossiz אמר בהפקדת צ'קים בנטפרי ע"י אימולטר - אפשרי\נפתר:

    תסביר אולי למתמיהים למה ההסתרה הזו?

    לשם תיקון הרושם שיש לי משהו נגד הרב ה@מנתק:

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

    גומלין - כללי

  • בעיה | מסגרת מוזרה לטקסטים בעברית ב-VSC
    yossizY yossiz

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

    https://code.visualstudio.com/updates/v1_63#_unicode-highlighting

    תוכנה

  • עיגון זכויות תוכנה (מניעת העתקה) מבחינת דין תורה
    yossizY yossiz

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

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

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

    תוכנה

  • חדש | Windows 10 מתעדכן לגרסה 2004
    yossizY yossiz

    @בערל אמר בחדש | Windows 10 מתעדכן לגרסה 2004:

    וגרעין מקורי עבור לינוקס

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

    תוכנה

  • מחשב חזק לסביבת עבודה למתכנת
    yossizY yossiz

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

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

    Dawson’s first law of computing: O(n^2) is the sweet spot of badly scaling algorithms: fast enough to make it into production, but slow enough to make things fall down once it gets there.

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

    ב) חוק חשוב: כאשר יש צאוור בקבוק מסויים, לא עוזר כלל לטפל בדברים אחרים חוץ מצוואר הבקבוק עצמו.
    זה לא הגיוני כלל לדבר על ראם ו-SSD, פעולת תחזוקה כזה או אחר וכו' כאשר יש צוואר בקבוק ב-CPU.
    אגב, שים לב שלמעבד שלך יש 8 או 16 ליבות, ולכן צריך לתרגם את האחוזים שאתה רואה במנהל המשימות בהתאם. אם יש לך 8 ליבות ואתה רואה שימוש של 12.5 אחוז, תתרגם את זה בראש שלך ל"שימוש 100% בליבה אחת". (ובהערת אגב, אם רואים מספר זה במדוייק, בד"כ זה אומר שמדובר בתהליך שלא חילקו לת'רדים מקבילים ואז לא יעזור להוסיף ליבות.)

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

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

    המחשב הזדקן מאוד

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

    @odeddvir אמר במחשב חזק לסביבת עבודה למתכנת:

    האינטואיציה שלי אומרת לי שלא.

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

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

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

    ניקוי הרג'יסטרי על ידי CCleaner.

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

    חומרה

  • צ'אט בין 2 מחשבים באותה רשת
    yossizY yossiz

    @אלישי
    https://lanmessenger.github.io
    https://github.com/hasankhan/Squiggle

    רשתות

  • הסתרת אובייקטים מפורום NodeBB
    yossizY yossiz

    @zvinissim קשה להעלות מדריך על זה כי זה נושא שלם שצריך להקדיש קצת זמן ללמוד את זה מסודר.

    אבל לעצם הבעיה, הפתרון לחלק הזה הוא פשוט להוריד חלק מהקוד שמיותר:

    [component="topic/teaser"] {
       display: none
    }
    

    פטור בלא כלום אי אפשר, אז הקדמה קצרה לנושא של CSS:

    קובץ CSS מורכב מ"כללים" כל כלל מורכב משני חלקים: ה-selector דהיינו החלק שלפני המסולסלים, חלק זה מגדיר על איזה אלמנטים העיצוב יחול, וה-body של הכלל שזה החלק בתוך המסולסלים ששם מכניסים את העיצוב הרצוי

    לצורכך, אתה צריך בעיקר ללמוד על selector-ים, כי להבנתי אתה לא רוצה עיצובים מסובכים אלא בעיקר להסתיר תוכן עם display: none

    סוגי selector-ים

    לגבי selector-ים יש כמה סוגים. כל סוג בוחר אלמנטים לפי פרמטר אחר:

    • לפי סוג אלמנט, למשל לבחור כל האלמנטים שהם מסוג h1 פשוט כותבים h1
    • לפי ה-class של האלמנט, סלקטורים אלו כתובים עם נקודה בהתחלה, לדוגמה להחיל עיצוב על אלמנט עם ה-class של c1 כותבים בסלקטור: ‎.c1
    • לפי id של אלמנט, סלקטורים אלו כותבים עם סולמית בהתחלה, לדוגמה לבחור אלמנט עם ה-id של id1 כותבים: ‎#id1
    • לפי כל מאפיין אחר של האלמנט, (מאפיינים = attributes - הם השדות בצורה של attr="val"‎ שאפשר להוסיף לאלמנט) סלקטור כזו כותבים בתוך סוגריים מרובעות. לדוגמה: [component="category/post"‎] בוחר כל אלמנט שבו המאפיין component יש לו את הערך "category/post"

    חיבור selector-ים

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

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

    • חיבור עם רווח: מצר את הבחירה לאלמנט שיש לו ב"ייחוס" שלו כל הסלקטורים שברשימה לפי הסדר, למשל: h1 .xyz .abc בוחר כל אלמנט שהוא עצמו יש לו קלאס של abc והוא צאצא של אלמנט עם קלאס xyz ושה-xyz הזה הוא צאצא של h1

    • חיבור בלי רווח או פסיק: מחייב שכל התנאים יתקיימו באלמנט אחד. למשל: h1.xyz.abc בוחר רק אלמנט שהוא גם קלאס abc וגם קלאס xyz וגם שהוא מסוג h1

    זה ממש ממש על קצה המזלג...

    רשתות

  • באיזה דפדפן עדיף להשתמש?
    yossizY yossiz

    @zvinissim ה-2 גרושים שלי:

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

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

    • התחרות האמיתי הוא בין כרום (וגרורותיו - brave vivaldi, edge ועוד) לפיירפוקס.
      בגירסאות האחרונות של פיירפוקס (מאז מה שקוראים firefox quantum) יש שיפורים משמעותיים מאוד בביצועים.
      הצדדים העקריים לכאן ולכאן:

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

  • באג בגלילה עם העכבר במספר אתרים
    yossizY yossiz

    גם אצלי

    השבתתי את הדגל הזה: chrome://flags/#smooth-scrolling וזה הסתדר

    אינטרנט

  • מחפש מדריך ללמוד אבטחת אתרים
    yossizY yossiz

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

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

    המלצה פרטית:

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

  • תודה רבה לחברי הפורום
    yossizY yossiz

    @aiib
    נאלתר משהו מהר
    🍰 🎂 🎂 🍮 🍉 🍬 🥐 🍫 🍫 🍩 🍩 🥐 🍸 🍽 🍰 🍽 🍭 🍖 🍬 🍬 🥄 🥄 🍶 🍿 🍸 🥐 ☕ ☕ 🍬

    על הפורום

  • איך לומדים לבנות תוכנה
    yossizY yossiz

    @NH-LOCAL חיכיתי שתשאל 🙂
    אלך לפי סדר דבריך:

    מבחינת ניידות אין נוחה ממנה

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

    והיא פשוטה מאוד לשימוש

    תסביר לי אם ככה למה יותר קל לי לכתוב 500 שורות JS מ-10 שורות CMD? 🙂

    שורת הפקודה בהחלט מתאימה לזה - ניתן ללמוד ממנה היטב איך עובד תכנות

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

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

    כדי לכתוב עם שפת shell (איזה שיהיה, bash, batch, powershell) צריך ללמוד מושגים שלא נצרכים כלל עבור תכנות. למשל: מה זה משתני סביבה, קוד יציאה של פקודה, קלט ופלט ושרשורם ב-pipe, שכל זה לא קשור בשום צורה לתכנות טהור

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

    ניתן ליצור ממנה דברים ממשיים שמטפלים בקבצים (ולא רק מדפיסים "hello world") כבר בשלב ממש ראשוני

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

    תכנות

  • לפני שאתם הולכים ל-AI חכם תשתמשו בכלים קיימים :)
    yossizY yossiz

    תגובה: תכנות + AI

    @chagold כתב בתכנות + AI:

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

    תשובה שלא ממין השאלה, אני ממליץ בחום להשתמש בטייפסקריפט
    במקרה כזו של הוספת שדות, הקומפיילר כבר יצביע על כל מקום שצריך לעדכן בגלל ההוספה
    בפרט ב-vue3 ממש קל להתחיל לכתוב טייפסקריפט, פשוט מוסיפים lang="ts" לקטע ה-script

    זה יכול לעזור לך יותר מכל AI
    אני כבר לא רוצה שוב לתכנת ב-JS
    יש כמה רמות בתוך TS כמה הקומפיילר יחמיר בבדיקות, לפי רמת החומרה כך רמת התועלת

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

    תכנות

  • איקס עיגול בJS, שמירת כל המצבים במשתנה מספרי אחד
    yossizY yossiz

    אגב לשאלתו של @צבי-ש
    https://tchumim.com/topic/14712

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

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

    ℹ גודל מספר ב-JS הוא 64 ביטים, אבל לצורך פעולות שאני הולך לעשות אפשר להשתמש רק ב-32 ביטים הראשונים, לצרכך היה מספיק משתנה בעל 16 ביטים, אבל אין את זה ב-JS, למען ה"שטיק" הייתי יכול להכניס את שני צדדי המשחק במספר אחד, אבל זה סתם מיותר

    מהלך המשחק נראה כך:

    const listWin = [
        7,  56, 448, 73,
      146, 292, 273, 84
    ];
    
    function checkWin (board) {
      return listWin.some(win => (board & win) === win);
    }
    
    let user = 0;
    
    function toggleUser () {
      user ^= 1;
    };
    
    const boards = [0, 0];
    const userNames = ['X', 'O'];
    
    function doTurn (i) {
      boards[user] |= (1 << i);
      if (checkWin(boards[user])) {
        console.log(`${userNames[user]} wins!`);
        // TODO: signal end of game
        return;
      }
      toggleUser();
    }
    

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

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

    תהליך היצירה של listWin נראה ככה:

    function makeWinList () {
      function pack ([x, y, z]) {
        return (1 << x) | (1 << y) | (1 << z);
      }
      
      return [
        [0, 1, 2], [3, 4, 5], [6, 7, 8],
        [0, 3, 6], [1, 4, 7], [2, 5, 8],
        [0, 4, 8], [2, 4, 6]
      ].map(pack);
    }
    

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

    תכנות

  • הצעה לחוק חדש: הבאת פלט של ChatGPT מותרת רק כחלק מתשובה ולא במקום תשובה...
    yossizY yossiz

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

    תכנות

  • שימוש בפקודה curl בשרת חינמי (PHP)
    yossizY yossiz

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

    תכנות

  • שילוב ספריות חיצוניות בפרויקט - יש עניין להפחית ככל הניתן? ועד כמה?
    yossizY yossiz

    @צדיק-תמים

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

    במקרה של lodash שווה מאוד להשתמש בו, זה גורם לקוד יותר קריא. זו ספרייה יסודית ואיכותית.

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

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

    תכנות
  • 1 / 1
  • התחברות

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

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