@segev_gr באופן כללי הכי חשוב זה מה השגיאה, אבל גם יעזור אם תצרף קוד קצר.
אבל במקרה הזה קל לנסות לבד, והרצתי את זה לבד.
ראשית כל שמתי את זה בדפדפן והסתכלתי מה קורה בכלי המפתחים ברשת (F12), והכל היה נראה טוב. הרצתי את השאילתה בC# ואכן הייתה תשובה של 301 עם מסך קאפצ'ה.
התחלתי להוסיף כותרות של דפדפן קלאסיות, ומה שראיתי שמשנה זה הכותרת Accept-Language, ברגע ששמתי את זה זה עבד.
dovid
-
שימוש בAPI למציאת מיקוד -
אפשר בבקשה קוד של מעבר על עץ *לא* בינארי@ליה מעבר על מאפייני אובייקט נעשה בעזרת Object.keys שנותן את שמות המפתחות, או לולאת for .. in שנותנת גם את שמות המפתחות, או מתודת Object.entries שמחזירה אוסף של זוגות מפתח-ערך, ועוד.
לשםמעבר עמוק, כלומר שבכל מפתח בודקים את הערך ואם הוא אובייקט יורדים גם לרמה שלו, אפשר להשתמש ברקורסיה. הנה דוגמה:function iterateDeep(obj) { if (Object(obj) === obj) for (const [k, v] of Object.entries(obj)) iterateDeep(v); else console.log("item: " + obj); }
הפונקציה הזו בודקת קודם אם הערך הוא אובייקט או משהו אחר, אם זה אובייקט היא עוברת על הערכים של הצאצאים (מאפיינים בנים בלבד) וקוראת עבור כל ערך לפונקציה הזו בעצמה. אם הצאצא הוא אובייקט העבודה תחזור על עצמה.
בכזו פונקציה יש בעיה של אינסופיות, כי לאובייקט יכול להיות חבר למשל שמצביע על על עצמו, או על אביו/אחיו, ואז יהיה מעגל אינסופי. בשביל למנוע את זה אפשר להוסיף דגל בתוך האובייקט במהלך המעבר:if (Object(obj) === obj) { for (const [k, v] of Object.entries(obj)) if(!v.passLoop){ iterateDeep(v, [...keys, k]); v.passLoop = true; } } else console.log("item: " + obj);
אם רוצים לדעת בכל ערך את הנתיב בו הוא נמצא ביחס לאובייקט, אפשר להעביר את המפתח הנוכחי כפרמטר במערך, ואז לשרשר אותם:
function iterateDeep(obj, keys = []) { if (Object(obj) === obj) { for (const [k, v] of Object.entries(obj)) if(!v.passLoop){ iterateDeep(v, [...keys, k]); v.passLoop = true; } } else console.log(`${keys.join('.')}: ${obj}`); }
-
שיתוף: איך לפענח את השם בעברית בקובץ VCard (*.vcf)@clickone הדרך שהבאת ממש אלגנטית! במקום להתחיל לכתוב את הקוד של המרת 64 לטקסט.
החבילה הזו דפוקה שהיא לא עושה את זה, כי זה ממש התפקיד שלה.
הקידוד לא חייב להיות ככה, הוא מוגדר בשורה הזו:N;ENCODING=QUOTED-PRINTABLE;CHARSET=UTF-8:;=
שנמצאת מעל כל איש קשר.
QUOTED-PRINTABLE זה שם הקידוד. -
תרגיל מתמטי של הסתרת מזהה רץאני מאוכזב קשות מהדרך בה נגשו פה העונים לשאלה.
רובם לא ניסו בכלל לענות על השאלה כפי שהיא נוסחה בבהירות (תרגיל חשבוני פשוט להסתיר ולפענח מספר) רק על הצורך שעלה להם ברפרוף מהכותרת ומקצת הטקסט שנאמר בה, זאת למרות שבשאלה ציינתי שיש לי מושג או שניים איך לעשות את זה כמקובל. כל מחאותיי וויכוחיי לא עזרו...אני הולך לכתוב פה בחוסר התלהבות את הפתרון, שכבר כתבתי עליו בהודעה השניה אבל אז לא הבנתי איך הוא עובד.
ב"ה כעת הבנתי ואני הולך להשתמש בו.להלן המ"מ שעזרו לי:
https://stackoverflow.com/a/8555047
https://ericlippert.com/2013/11/14/a-practical-use-of-multiplicative-inverses/
https://jmcphers.github.io/techniques/2015/08/20/id-obfuscation.htmlאז ככה, מגדירים 3 מספרים קבועים חד פעמית:
א. מספר מקסימום שודאי לא נעבור בשום שלב, למשל אם מדובר בביקורים, נחליט על 10 מליארד.
ב. מספר כל שהוא שניתן לבחור אקראית, שהוא קטן מהמקסימום ושהוא גם מספר זר למספר המקסימום (אפשר פשוט לנסות בכלי בסעיף ג', אם יש תוצאה תקינה אז זה מספר זר).
ג. מוצאים את הModular multiplicative inverse של ב', על ידי כלי כמו זה https://www.dcode.fr/modular-inverse (שמים את המספר של ב', ובמודלו שמים את המקסימום מא').אחרי שיש לנו את שלושת המספרים הללו, נקרא להם בשמות MAX, A, B.
בשביל להסתיר את המספר פשוט נביא את השארית של חלוקת הA * המספר, בMAX:mask = number * A % MAX;
בשביל לפענח נעשה משהו דומה:
original = mask * B % MAX;
המחשה של הפעולה:
https://replit.com/@davidlevtov/EnormousJoyousDesign#index.jsהקידוד וגם הפיענוח נעשים ע"י שני פעולות אריתמטיות פשוטות.
ולמי שיש חלום לנוסחה שמתקרבת לקרסולי קרסוליים של המהירות של זה,
הוא מוזמן לבדוק פה את פתרונו
https://jsben.ch/SA0T6
שמתי בתור "תופס מקום" אלגוריתם שלא עושה כלום אבל משרשר טקסט למספר ובהמרה מחזיר למספר.הערה: במספר ב' גדול (או קלט גדול) יכולה להיות גלישת מספר שתעוות את התוצאות, עליכם להבטיח שהמקסימום לא יחרוג על ידי מספרים נמוכים או טיפוסי מספרים גדולים (long או BigInt וכדומה).
-
JavaScript | בדיקה האם X נמצא בתוך רצף ספרות@liy770 הבדיקה שלך לא טובה כ"כ, כי 1 ימצא גם את 10 ואת 21 וכדומה.
תוכל להשתמש ברגקס שבודק שהמספר תחום, ככה:numbers.match(/\b1\b/);
הסבר: הסימנים / משני הצדדים הם סימנים שמורים שהתוכן הוא ביטוי רגלורי (כמו שמרכאות אומרים שהביטוי הוא string). ה\b שמופיע פעמיים משמעותו קצה מילה, כלומר פסיק רווח סוף/תחילת מחרוזת וכדומה. ככה זה מחפש בעצם 1 שלפניו ואחריו יש "סוף מילה".
אם אתה מבצע את הבדיקה הזו יותר מפעם אחת, עדיף שתחלץ קודם את המספרים החוצה. אם זה רשימת מספרים מופרדת בפסיק קל לעשות
const numberAsArray = numbers.spilt(','); const hasOne = numberAsArray.includes('1');
המתודה split הופכת מחרזות למערך (רצף ערכים) על ידי פיצולו לפי התו שמועבר כפרמטר (פסיק במקרה שלנו).
המתודה includes בודקת אם ערך מסויים הוא איבר במערך. -
פילטור שינויים בלבד לתצוגת המשתמש@mekev אמר בפילטור שינויים בלבד לתצוגת המשתמש:
או שבכלל צריך לשמור מראש את השינויים בצורה שונה שתאפשר את השליפה הנ"ל)
אכן. ככה מקובל בכל אופן. יוצרים טבלת "שינויים" שמכילה רק את השינויים.
בעת עדכון אתה עובר בלולאה על השדות ומשווה חדש לישן,
ההבדלים נכנסים לטבלה בסגנון כזה:
זמן, משתמש, [טבלה], שדה, ערך ישן, ערך חדש
העמודה טבלה אופציונלית להתאים לכלל הטבלאות במסד.הדרך הזאת מעבירה את ה"עבודה" משגרת הצפיה בשינויים (שהיא השימוש הרווח) למקרה של שחזור (שזה מקרה שאמור להיות פחות שכיח) בעת שחזור יצטרכו לעבוד יותר מהדרך שנקטת:
א. צריך לולאה כדי לייצר שורה מתאימה למה שהיה קודם
ב. הטיפוסים הם תמיד טקסטואליים (כי הערך ישן וחדש הם בהכרח מסוג טקסט להתאים לכל האפשרויות).אתה יכול לרקוד על כל החתונות עם שני טבלאות, אחת כמו שיש לך כעת לצורך שחזור נקודות זמן מהירים, ואחת טבלת "שינויים" בשביל צפיה נוחה בשינויים.
-
שאלה ב-CSSחסר בשאלה מה אתה רוצה שיהיה. לכאורה זה או שזה חורג או שזה נשבר, יש אפשרות שלישית?
נ.ב. טיפ לכותרת טובה: לכתוב אותה אחרי סיום כתיבת ההודעה. מסתכלים על ההודעה ואוספים מילות מפתח הכי חזקות: CSS מילה ארוכה מאוד חורגת מהאלמנט.
עוד טיפ: תמיד תיצור דוגמת קוד מבעיות כאלה גם בשבילך לחדד איפה הבעיה, וגם בשביל העונים. אתה לא חשוד על עצלות כי עבדת עוד יותר קשה עם התרשימים, כל הכבוד על שאלה כהלכה!צירפתי דוגמת קוד
-
log מוזר בשרת@katz פישינג זה לגרום לך להיכנס לאתר של מישהו ולא כניסה של אחר לשרת שלך.
שום כתובת בעולם שנכנסת לשרת שלך אינה פישינג.
המקרים הגרועים הם ניסיונות ניחוש סיסמה או סריקת פורטים לשירותים שניתנים ללא אימות.
במקרה הזה הכתובת הזו מאוד שקופה, היא מסבירה מה היא עושה ואף מה לעשות אם מתנגדים לקיומה. -
מחפש כלי שממיר שאילתה מ MYSQL ל PostgreSQL@nachman אמר ב[מחפש כלי שממיר שאילתה מ MYSQL ל PostgreSQL]
INSERT IGNORE INTO
זה אותו דבר בשני המסדים. וכן רוב השאילתות הקלאסיות זהים בשניהם.
@nachman אני זוכר לך היסטוריה של שאלות עמומות שמגלות חצי טפח ומכסות עשרה.
אם אתה לא רוצה שאחרים את שאלותיך שקול להשתנות קצת בעניין.
אם זה סודי וזה פחד פחדים שכולם יידעו ששאלת בפורום על אודות XYZ אז שקול סיפור כיסוי עשיר שמצד אחד יהיה אחד לאחד בצרכים ומצד שני יטשטש את המשימה הסופר דיסקרטית.
אם מדובר בעצלות בביטוי ושממילא יש לך כמה חברים שמבינים אותך אלחוטית (אולי @WWW) אז תבקש מהם שיבואו אחריך להבהיר את הרמזים הטמונים בשאלה. -
חיבור מרכזייה לתוכנה מקומית (api <> c# winform)@mekev תודה רבה על הדברים!
להגיב סתם תודה רבה אבדוק, זה אולי מיותר (אבל ממש לא פוגע בשגרת הפורום, כולו מלא מזה).
(אגב, יש אפשרות להודות בצורה מינימליסטית מאוד - מתחת לכל הודעה בצד שמאל יש חץ כלפי מעלה שאומר: הפוסט מועיל/ראוי. זה מחווה קטנה ומאוד "מפדבקת" את העונה).
אבל מה הבעיה לעדכן אחרי חודש? ולמה לא לשתף מה הסיבוך שלך כעת שעליו אתה יוצא למסע בירור, אולי גם בזה הרי יעזרו לך.נ.ב. עדכון של שורה לא בטוח יותר מהר מהוספה, אבל אני מאמין שתרצה היסטוריה של הנוטיפקציות שהתוכנה קיבלה, וככה אתה מרויח את שניהם.
-
הטמעת תמונה במייל כך שלא תישלח לבדיקה מחדש בנטפרי@צדיק-תמים
מה שהבאת זה לא נקרא מוטמע באמת, זה נקרא "מוטמע" רק בניגוד לקובץ מצורף.
(באנגלית המינוח הוא inline כלומר כחלק מגוף ההודעה).
המשמעות לזה שזה לא מוטמע, היא שכתובת התמונה נשארת חיצונית, למשל למי שיש מייל בלבד זה לא יעבוד לו גם אם היה נשאר הכתובת של JDN.
במקרה שהבאת מדובר בג'מייל. ג'מייל למען בטחון משתמשיה ממירה את הכתובות לכתובת שלה (פרוקסי), וככה השרת שבה התמונה נמצאת לא מקבל את פרטי הפונה (אייפי ועוד).
העבודה שמבחינת נטפרי התמונה שוב ושוב לא בדוקה היא מעניינת, כי נטפרי בודקים תמונות לפי תוכן ןלכאורה התוכן כבר נבדק. ייתכן שגוגל משנה את התמונה? מעניין, אפשר לשאול אותם בפורום שלהם.כעת לשאלתך, האם ניתן להטמיע תמונה במייל שבכלל לא תפנה למקור חיצוני? כן.
אם מדובר בתמונה קטנה, תוכל להשתמש עם תחביר base64, עליך להמיר את התמונה לbase64 ואז לשים בsrc את התוצאה עם הקידומת של data:image/jpg;base64,...אם מדובר בתמונה גדולה, מצרפים אותה למייל ומשתמשים במזהה שלה (cid) להצגה בגוף ההודעה, אינני יודע אם איזה כלי אתה שולח את ההודעה, ראה פה את העקרונות:
https://stackoverflow.com/a/30424938/1271037 -
מהירות הרצת קוד ב-JS [כרום], או "למה המהירות לא קבועה?"@צדיק-תמים ראה פה דרכים למדידה
https://michaelscodingspot.com/measure-execution-time-in-javascript/יש המון אתרים אונליין להשוואת קוד JS, חפש בגוגל
js online test benchmark -
שאלה פילוסופית עד איזו רמה של מיקרו אופטימיזציה האדם מצווה לדקדק@ארכיטקט אני חושב שמתחילים צריכים להיות פאנטים (וכל תחום שלא טובים בו עוד נחשבים למתחילים בו),
אבל בתחומים שיש כבר הרגלים טובים צריך לוודא שרוב האנרגיה ממוקד בתכלית שבתכלית ורק מיעוט בביקורת ובמיטוב. ובקטגוריית תכלית אין שום דבר שקשור לתכנות, רק מוצר שעובד. -
דיון על "לכל מנעול יש מפתח"@ivrtikshoret זה קשקוש.
הרבה יותר קל להגן על אתר מפריצה מאשר להגן על כספת של בנק.
כל הפריצות הנפוצות זה העדר ידע או רשלנות, או ניצול פרצות מפורסמות ברכיבים לא מעודכנים. -
ביצוע פעולה על מערך ששמו מגיע מהארגומנט (של הפונקציה)@צדיק-תמים אני מתבייש מאוד, לא קראתי כנראה את הפוסט של יוסי עד הסוף...
אתה צודק לגמרי. -
שאלת תם - מה כל כך נורא בPHP?@צדיק-תמים אכן הרבה אתרים. לא כ"כ נוגע לאיכותה של השפה וכמה חכם להשתמש בה ב2022.
הדוגמה של var שנתת היא שינוי תחבירי, אין מאחורי זה שינוי טכנולוגי. php מפגרת טכנולוגית.
לא אכפת לי למנות דוגמאות:
א. יוצרת טריד פר בקשה
ב. היא ממוקדת לתת שליטה חזקה בHTML, לא כ"כ בתקשורת עצמה (הHTTP)
ג. אין כל דרך לשתף מידע בין בקשות בלי שמירה בדיסק.שוב, זה אכן לא חסרונות נוראים, ויש לה עדיין יתרונות. אבל כיון שהחסרנות הללו מגבילים אותה, ובפורום תכנות רוצים לעזור לאנשים לפרוץ גבולות, טבעי שיש סלידה ממקומות בהם הגבולות הם סופיים מראש.
נ.ב. הדוגמה של וורדפרס לא הכי טובה, כי לטעמי PHP מתביישת ביצירה הזו.
וורדפרס היא במקור הייתה מאוד פופולרית למשתמשים בה כבלוג. היא פשוט הייתה פה, והיא הייתה טובה בתור מוצר בלוג עבור משתמשיה (שלא היה אכפת להם בדיוק איך היא בנויה) אז כולם הלכו עליה.
כל זה גרם למפתחים להוסיף יכולות לסל הכלים שלה ולשפר את יכולת הגמישות (שני הדברים רק מזיקים כשהם בנויים על דבר גרוע).
המעגל הזה הביא את וורדפרס לאיפה שהיא. -
תיעוד קוד בJavaScript@WWW החסכנות שלך בהסברים משונה.
הבאת תוצאה ראשונה בגוגל למונח JSDOC שלא היה ידוע לשואל.@צדיק-תמים זה מוסכמה, הכלי הוא לייצא את התיעוד אם אני לא טועה.
תראה את הקוד הבא בVSCODE
הVSCODE תומך בזה יפה מאוד, אתה קודם כותב את הפונקציה, אח"כ הולך מעליה וכותב סלש ושני כוכביות וטאב, והופה אתה מקבל שלד מוכן.
-
מישהו מכיר את היוצר של ----? (נערך)@mgm-ivr יש לי בשורה טובה ומפתיעה,
לאחר בדיקה שערכתי מצאתי שלאתר המבוקש יש "צור קשר" עם כתובת מייל.
זה נמצא בתחתית הדף. בהצלחה! -
שינוי שפת תוכנה@ארי הכיוון נכון וככה צריך לעשות.
רק שאני מציע א) כן לכתוב בשפה העיקרית הכל (ולא קודים), ככה יותר קל בזמן עיצוב וגם שזה יישאר לכל טקסט שלא נמצא לו תרגום.
ושמנגנון התרגום יחפש בשפה הראשית את הכפתור כקוד בצירוף השם שלו ו/או שם הטופס.
ב) תוכל גם לעשות קוד קצר שמייצר שורות עבור טקסטים קיימים שעדיין לא בטבלת התרגום, וככה חוסך ממך תחזוקה של השורות.כמדומני שהחלק הקשה באקסס הוא התמיכה בדו כיווניות, כי מנגנון הפריסה לא מספיק משוכלל שהכל יתהפך - הכל מתבסס רק על מרחק מקצה עליון שמאל/ימין, וממילא אלמנטים שהטקסט שלהם ארוך יותר בשפה אחת יסתירו את שכיניהם.
-
תמחור תחזוקה ללקוח@davidnead זה מאוד תלוי במוצר, ברוב המקרים עדיף לקבל קוד ולהיפרד כידידים כי תחזוקה בחברה המקורית זה חתונה קתולית (ככל שיש יותר תחזוקים ככה המוצר המקורי נהרס מטלאים חסרי אחריות וסדר) וגם עבודה ללא שום גורם שיכול להעביר ביקורת או לתת חו"ד שונה.