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

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

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

dovid

@dovid
ניהול
אודות
פוסטים
10.2k
נושאים
184
שיתופים
0
קבוצות
2
עוקבים
32
עוקב אחרי
0

פוסטים

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

  • הטמעת תמונה במייל כך שלא תישלח לבדיקה מחדש בנטפרי
    dovidD dovid

    @צדיק-תמים
    מה שהבאת זה לא נקרא מוטמע באמת, זה נקרא "מוטמע" רק בניגוד לקובץ מצורף.
    (באנגלית המינוח הוא inline כלומר כחלק מגוף ההודעה).
    המשמעות לזה שזה לא מוטמע, היא שכתובת התמונה נשארת חיצונית, למשל למי שיש מייל בלבד זה לא יעבוד לו גם אם היה נשאר הכתובת של JDN.
    במקרה שהבאת מדובר בג'מייל. ג'מייל למען בטחון משתמשיה ממירה את הכתובות לכתובת שלה (פרוקסי), וככה השרת שבה התמונה נמצאת לא מקבל את פרטי הפונה (אייפי ועוד).
    העבודה שמבחינת נטפרי התמונה שוב ושוב לא בדוקה היא מעניינת, כי נטפרי בודקים תמונות לפי תוכן ןלכאורה התוכן כבר נבדק. ייתכן שגוגל משנה את התמונה? מעניין, אפשר לשאול אותם בפורום שלהם.

    כעת לשאלתך, האם ניתן להטמיע תמונה במייל שבכלל לא תפנה למקור חיצוני? כן.
    אם מדובר בתמונה קטנה, תוכל להשתמש עם תחביר base64, עליך להמיר את התמונה לbase64 ואז לשים בsrc את התוצאה עם הקידומת של data:image/jpg;base64,...

    אם מדובר בתמונה גדולה, מצרפים אותה למייל ומשתמשים במזהה שלה (cid) להצגה בגוף ההודעה, אינני יודע אם איזה כלי אתה שולח את ההודעה, ראה פה את העקרונות:
    https://stackoverflow.com/a/30424938/1271037

    תכנות

  • מהירות הרצת קוד ב-JS [כרום], או "למה המהירות לא קבועה?"
    dovidD dovid

    @צדיק-תמים ראה פה דרכים למדידה
    https://michaelscodingspot.com/measure-execution-time-in-javascript/

    יש המון אתרים אונליין להשוואת קוד JS, חפש בגוגל
    js online test benchmark

    תכנות

  • שאלה פילוסופית עד איזו רמה של מיקרו אופטימיזציה האדם מצווה לדקדק
    dovidD dovid

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

    תכנות

  • דיון על "לכל מנעול יש מפתח"
    dovidD dovid

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

    תכנות

  • ביצוע פעולה על מערך ששמו מגיע מהארגומנט (של הפונקציה)
    dovidD dovid

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

    תכנות

  • שאלת תם - מה כל כך נורא בPHP?
    dovidD dovid

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

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

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

    תכנות

  • תיעוד קוד בJavaScript
    dovidD dovid

    @WWW החסכנות שלך בהסברים משונה.
    הבאת תוצאה ראשונה בגוגל למונח JSDOC שלא היה ידוע לשואל.

    @צדיק-תמים זה מוסכמה, הכלי הוא לייצא את התיעוד אם אני לא טועה.
    תראה את הקוד הבא בVSCODE
    ce9b20de-01a4-4772-9c71-1eb7993d82fe-image.png

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

    תכנות

  • מישהו מכיר את היוצר של ----? (נערך)
    dovidD dovid

    @mgm-ivr יש לי בשורה טובה ומפתיעה,
    לאחר בדיקה שערכתי מצאתי שלאתר המבוקש יש "צור קשר" עם כתובת מייל.
    זה נמצא בתחתית הדף. בהצלחה!

    תכנות

  • שינוי שפת תוכנה
    dovidD dovid

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

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

    תכנות

  • תמחור תחזוקה ללקוח
    dovidD dovid

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

    תכנות

  • תבניות אתרים על NODEJS
    dovidD dovid

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

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

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

    תכנות

  • תכנות | איך להתחיל?
    dovidD dovid

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

    תכנות

  • איך יוצרים שכבות בדף אינטרנט
    dovidD dovid

    @שרה-רחל נתחיל עם זה שיש שתי גישות:
    א. ריענון מלא, אבל שמירת מראה עקבי.
    זה מה שקורה בכל האתרים כמו אמזון ואיביי, או זאפ הישראלי. את לוחצת על מאפיין בצד, כל הדף עובר ריענון ונראה בדיוק זהה חוץ מהשינויים המתבקשים. הכתובת למעלה משתנית כמובן בעת הלחיצה.
    ב. ריענון AJAX - הדף נשאר אותו דבר ורק חלקים ממנו משתנים ע"י רכיב קוד.
    דפים שעובדים ככה לגמרי נקראים SPA.
    באופן הזה הכתובת לא בהכרח משתנית, ברוב המקרים רצוי שהיא תשתנה הן בשביל הלחצנים הקודם/הבא והן בשביל שהמשתמש יוכל לשמור או לשלוח כתובת שמייצגת את המצב המדוייק של האפליקציה.

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

    תכנות

  • API לקבלת שערי מט"ח
    dovidD dovid

    אוקי בא אספר לך בינתיים איך התקדמתי בבעיה.
    לקחתי את הקוד שלך ופתחתי את הקונסול של הדפדפן והדבקתי (בתוספת שורה שמפעילה את הפונקציה).
    קיבלתי שגיאה ארוכה של Mixed Content שאומרת שאני מנסה לגשת לhttp מתוך דף מאובטח של https.
    אז התקדמתי, ושיניתי בקוד שלך לhttps והרצתי שוב, וקיבלתי שגיאה ארוכה לא פחות של CORS policy, כלומר אתר תחומים לא מורשה לגשת לבנק ישראל.
    אז הלכתי לאתר בנק ישראל ומשמה פתחתי את הקונסול והרצתי, ושמה קיבלתי שגיאה שקשורה לJSON - התוכן מתחיל בתו לא צפוי שהוא <.
    הסתכלתי בNetwork לראות איך נראית התשובה, והנה היא XML! בטח הרי זה כתוב מפורש בכתובת currency.xml רק שלא שמתי לב.
    טוב אז אני יודע לענות לך בפורום שהבעיה היא שזה לא JSON.

    תכנות

  • התקנה ושימוש עם bootstrap-vue
    dovidD dovid

    בשולי הדברים, למרות שנעלבתי ש@חוקר לא שעה לעצתי והלך אחריך @yossiz התיישבתי בדעתי והחלטתי שהצדק איתך ונכון להיום vue טובה יותר.
    אני לא כותב אפליקציות צד לקוח ענקיות אלא סה"כ דף עם פונקציונליות של צד לקוח ולכן כל הwebpack הוא מיותר להחריד עבורי, לעיתים אני אפילו לא מפצל את הסקריפט מהhtml. ייתכן ש@חוקר נמצא באותו מקום.

    תכנות

  • שאיבת נתונים מד"ב mysql ישירות לעומת מזכרון בתהליך nodejs רץ
    dovidD dovid

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

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

    תכנות

  • C# או NODE.JS
    dovidD dovid

    @שואף אמר בC# או NODE.JS:

    @dovid אמר בC# או NODE.JS:
    אני בהחלט נהנה לתכנת, אבל לא משוגע על זה ויש לי הרבה ערכים אחרים בחיים שקודמים לזה. מה שלא מקדם אותי למטרה שהיא להרוויח את הממון שהמשפחה שלי צריכה, לא אשקיע עליו הרבה מאמץ וזמן. כנראה שלא כולם חושבים ככה. זכותם. אבל כפורום של בני תורה אני חושב שזו ההשקפה של חלק גדול מהחברים. אולי אני טועה.

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

    תכנות

  • js throw false
    dovidD dovid

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

    תכנות

  • js throw false
    dovidD dovid

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

    app.get('/xyz', function(req, res){
        var data = {};
    
        if(!read(req, res, data, 'f-הקלט את שמך', 'name', VOICE)) return;
        if(!read(req, res, data, 't-בחר את הסטטוס האישי, לבחור הקש אחד לאברך הקש שתיים לתתלמיד חיידר הקש שלוש', 'status', MENU + '12')) return;
    
        if (data[status] === '1'){
            if(!read(req, res, data, 't-הקלט את שם הישיבה ולסיום הקש סולמית', 'yeshiva', VOICE)) return;
            database.insertSQL({'name' : name,'yeshiva' : yeshiva}, 'bachurim').then(id => {
                say('t-נרשמת בהצלחה המספר האישי שלך הינו.n-' + id);
            })
        }
        ...
    }
    
    function read(req, res, data ...){
         if(data[name] = req.query[name])
               return true;
          else 
               ...
    }
    

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

    הנה דוגמה למשהו גנרי:

    app.get('/xyz', function (req, res) {
        var flow = {
            name: { next: () => ["status"], askUser: `t-בחר את הסטטוס האישי, לבחור הקש אחד לאברך הקש שתיים לתתלמיד חיידר הקש שלוש` /* , ...*/ },
            status: {
                askUser: `t-הקלט את שם הישיבה ולסיום הקש סולמית`, /* , ... ,*/ next: function (val) {
                    if (val == "1") return "yeshiva";
                    if (val == "2") return "isuk";
                    if (val == "3") return "...";
                }
            },
            yeshiva: { next: null, askUser: `t-הקלט את שם הישיבה ולסיום הקש סולמית` },
            isuk: { next: (val) => ({ 1: "kolel", 2: "work" }[val]), askUser: `t-אברך כולל הקש אחד, נהנה מיגיע כפיו הקש שתיים` },
            kolel: { next: null, askUser: `t-הקלט את שם הכולל ולסיום סולמית` },
            work: { next: null, askUser: `t-הקלט את שם מקום העבודה` },
        };
        var data = req.query || {};
    
        if (!proccessStep("name")) //all data ready?
            return false;
    
        //...
        //work with data
        if(data[status] == "1"){
            database.insertSQL({ 'name': name, 'yeshiva': yeshiva }, 'bachurim').then(id => {
                say('t-נרשמת בהצלחה המספר האישי שלך הינו.n-' + id);
            })
        }
        //...
        //...
    
        function proccessStep(key) {
            if (!data[key]) {
                //res.end() ...
                return false;
            }
            var next = flow[key].next(data[key]);
            if (next)
                return proccessStep(next)
            else return true;
        }
    });
    

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

    האם הקוד הזה טוב? לא.
    יש בו המון מה לשפר, הflow לא חד בתכליתו כי הוא כאילו רק לאסוף מידע אבל בתכלס כל הפעולה זה איסוף מידע אז שגם ישמור בnext האחרון בdb. יש פה עוד הרבה מה להשחיז. אבל תרחמו על עצמכם, תחשבו.

    תכנות

  • מחפש המלצה למלחם.
    dovidD dovid

    המלצה מחבר מומחה:
    https://www.ebay.com/itm/-/253424274051
    או אם להשקיע בקיט:
    https://www.ebay.com/itm/-/302327541666

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

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

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