@dovid תוסיף את זה
server {
if ($host = tchumim.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
listen [::]:80;
server_name tchumim.com;
return 404; # managed by Certbot
}
@dovid תוסיף את זה
server {
if ($host = tchumim.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 ;
listen [::]:80;
server_name tchumim.com;
return 404; # managed by Certbot
}
@dovid אותו דבר, רק קצת יותר מפורט, זה הכל.
למה לא עשית הפניה אוטומטית ל HTTPS?
@מנצפך תעבוד לפי המדריך הזה
https://www.digitalocean.com/community/tutorials/how-to-set-up-let-s-encrypt-with-nginx-server-blocks-on-ubuntu-16-04
רק תדלג על השלב של החומת אש אם השרת לא בדיגיטל אושן.
אין מה לחשוש, עשיתי את זה כמה פעמים על שרת פעיל, זה מוסיף כמה שורות לקובץ תצורה של השרת שלך ב - NGINX, אם אתה חושש תגבה את הקבצים של NGINX לפני כן
@dovid אמר בNGINX: להאזין לפורט מקומי גם ללא server_name, ובפורט חיצוני עם:
יש לי כמה אתרים על אותו אייפי - 80.
אנג'נאיקס לא אמור בכלל להתערב לך בתעבורה הפנימית, אם אתה ניגש מתוך המכונה לכתובת http://127.0.0.1:5050/ זה לא עובר דרכו.
לא הבנתי לגמרי מה אתה מחפש, אבל תבדוק אם הפקד datalist עוזר לך
setTimeout(()=>{}, 10000);
console.log("I")
זה יודפס לפני ההשהיה למרות שזה לא I/O.
הסיבה היא שהקומפיילר יוצא לחופשה בזמן ההשהיה, כל פעולה שהוא לא אמור להמשיך לעשות חישובים ולקמפל, הוא ממשיך לשורה הבאה.
בדוגמא שלך הוא ממשיך לעבוד על הלולאה לכן הוא לא ממשיך לפקודת ההדפסה.
@dovid אמר באיך עובד זרמים ב-nodejs:
כל הרעיון של סטרים הוא שאיננו שומר כלום בשום מקום, הוא נטו צינור.
אפשר לתאר שרשור סטרימים ע"י סדרה של צינורות קטנים שמחברים אחד לשני, ובידוק לכן קוראים לזה pipe ולכן גם בחרו בלינוקס את תו הצינור בשביל הפעולה הזו.
המודל request מאפשר לקבל את המידע גם בסטרימינג וגם לקבל אותו מלא עם callback, זה אומר שאם אתה בוחר ב callback חוץ מהסטרימינג את גם טוען לזיכרון את כל המידע.
כאן הוא בודק אם העבירו ארגומנט callback אז הוא כן טוען למערך את כל ה chunks
@אהרן אמר באיך עובד זרמים ב-nodejs:
@dovid
אז מדוע בקוד הזה כל הדאטה נשלח בב"א?app.get('/test', (req, res) => { res.write('OK1'); setTimeout(()=>res.write('OK2'),1500); setTimeout(()=>res.end('OK END'),2500); }) setTimeout(()=>{ request({url: url}, function (error, response, body) { console.log(body); }); } ,2.5*1000);
לא ברור לגמרי מה התכוונת בקוד הזה, אבל אם אני מבין נכון בפונקציה request אתה שולח לעצמך בקשה ומדפיס את התשובה לקונסול, אם כך זה ברור למה אתה רואה הכל מודפס בבת אחת, כי השתמשת ב callback במקום ב streaming, אז זה מחכה שכל התשובה תגיע ואחר כך קורא לפונקציה.
אם אתה רוצה לראות מימוש של streaming תכתוב כך
request(url).pipe(obj)
@dovid בדיוק מה שחיפשתי. תודה רבה
זה יכול להיות גם ששכחת לסגור קונקשנים למסד, או שימוש במשתנים גלובליים במקום להשתמש בלוקאלים פר בקשות, זה אולי יותר מהיר אבל זה גורם שהזיכרון לא מתנקה
@chagold כתוב שם שזה מחזיר קוד שגיאה 400, קבל את קוד השגיאה כך:
https://stackoverflow.com/questions/11797680/getting-http-code-in-php-using-curl
ותתכונן בהתאם
@מנצפך אמר בחתימת מסמך PDF:
@upsilon01 הוא כותב לי
Error: Could not find ByteRange placeholder: /ByteRange [0 /********** /********** /**********]
לזכרוני אם לא מוסיפים ארגומנט שמגדיר את הקידוד, הוא קורא את הקובץ בלי שום קידוד וזה יכול להסביר את הודעת השגיאה, נסה כך:
fs.readFileSync(PATH_TO_PDF_FILE, 'utf8')
fs.readFileSync(PATH_TO_P12_CERTIFICATE, 'utf8'),
@dovid כן כדאי לחשוב על שמירת נתונים באיזה מסד, שהגבאי לא יצטרך להתחיל הכל מחדש כל שנה
@dovid כתב בהאם Blazor הוא תקוות העתיד:
יש עוד משהו שעם השנים למדתי לשים לב. יש מיינסטרים, ויש שוליים. רוב הפעמים, גם טכנולוגיות מאוד מצליחות בשוליים, כובלים את המפתח והלקוח ומכבידים מאוד לאורך הזמן. נניח עוד חמש שנים תהיה מהפכה בשרת לקוח, איפה בלייזור יהיה? הוא כמובן יתאים את עצמו, אבל אז הוא יהיה רק "מתאים" וכבר פחות "נדרש". מהשלב הזה מתחיל תהליך מרגיש ומייסר שנגמר לעיתים בזניחת המוצר ולעיתים בהגירה קשה.
תוכל להרחיב יותר? מה החשש אם תהיה מהפכה, ולמה זה נוגע רק לבלייזור?
נראה שזה הפיתרון
rclone ls "D:\projects" ^
--filter="- /**/node_modules/" ^
--filter "+ *.yml" --filter "+ *.conf" --filter "+ *.sh" --filter "+ *.yaml" --filter "+ *Dockerfile" --filter "- *"
@pcinfogmach אתה יכול לאשר שזה קורה רק במחרוזת שמכילה מרכאות?
נניח שיש טבלה של תנך, טבלה של גמרא טבלה של ראשונים וכו'.
האינדקס החזיר שביטוי החיפוש מופיע בתנך בשורה 8947 ובגמרא בשורה 749
האפליקציה ניגשת לטבלאות האלו, שולפת את השורות הרצויות, מסתמא גם שולפת אחת לפני ואחת אחרי בשביל התצוגה, ומוסיפה את זה למערך של תוצאות החיפוש.
אם היא היתה מחפשת את הביטוי הזה בכל הטבלאות של התנך והגמרא והראשונים, בלי להעזר באינדקס, היה לוקח המון זמן לכל חיפוש, האינדקס מקצר את התהליך
גם לבר אילן יש אינדקס מאחורי הקלעים
@yyy כתב בפניה אסינכרונית והמסתעף Angular TS:
זה:
books: Promise<Books[]>;
מחזיר את השגיאה הזו
'books' has no initializer and is not definitely assigned in the constructor.
אתה יכול לכתוב במקום סימן שאלה סימן קריאה, וזה ידלג על הבדיקה
או לאתחל את זה בקונסטקטור בלי האופרטור || ובמתודה getBooks רק להחזיר אותו בלי לעשות השמה
@yyy כתב בפניה אסינכרונית והמסתעף Angular TS:
האמת (אני מניח שזה קשור לזה) שגם כך אשמח להכיר את הסינטקס של ה-return הנ"ל בשני דברים:
א. סימן ה"||" פירושו OR?
ב. מה המשמעות של קטע הקוד הזה
this.books = this.books
?
אכן, זה אופרטור OR.
כשאתה מבצע השמה למשתנה books אתה קודם כל בודק אם הוא כבר מאותחל, במידה והוא כבר אותחל אתה לא משנה בו כלום אלא מצביע עליו בחזרה, אם הוא עוד לא מאותחל והוא מחזיר undefined (שזה ערך false ב JS) אז אתה מאתחל אותו כפרומיס.
כך אתה מרויח שהפניה לשרת תתבצע רק פעם אחת בכל חיי האפליקציה, וכל מי שירצה לקבל את רשימת הספרים יקבל אותה מהפרומיס הזה