@eido כתב בהקמת IVR בצורה עצמאית:
ימות המשיח קונים את הטראנקים שלהם מחברה שנקראת המרכזיה בע"מ
או יותר נכון הקימו חברה נוספת כדי להפריד משפטית את פעילות המרכזיה...


@eido כתב בהקמת IVR בצורה עצמאית:
ימות המשיח קונים את הטראנקים שלהם מחברה שנקראת המרכזיה בע"מ
או יותר נכון הקימו חברה נוספת כדי להפריד משפטית את פעילות המרכזיה...


רקע לתשובת @yossiz:
reduce לא מקבלת ארגומנט של item1 ו-item2 דהיינו האיבר הנוכחי במערך והאיבר הקודם, אלא accumulator (כלומר ההצטברות עד עכשיו, ראה בהמשך), וcurrentItem כלומר האיבר הנוכחי.initialValue), הערך ההתחלתי (כלומר הaccumulator - ההצטברות, באיטרציה הראשונה) יהיה הערך הראשון של המערך.אתה יכול לראות כאן מבנה של פונקציית reduce תקינה: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#try_it
@ivrtikshoret הנה לינקים למדריכים שעל פיהם פעלתי לפני תקופה כשהתקנתי על אובונטו שרת מיילים postfix לשליחה בלבד והגדרתי אותו למצב שהמיילים מקבלים 10/10 ב mail-tester.com, מקווה שיעזור:
כדי לבדוק האם פורט 25 (SMTP) פתוח בכלל ואפשר לשלוח מיילים - swaks
התקנת Postfix:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-20-04
(התעודת TLS שנוצרת לא תקפה לתמיד, כדאי ליצור cronjob שיריץ
certbot renew)
הגדרת SPF:
https://www.digitalocean.com/community/tutorials/how-to-use-an-spf-record-to-prevent-spoofing-improve-e-mail-reliability
הגדרת DKIM:
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
הגדרת DMARC:
https://dmarcguide.globalcyberalliance.org
אגב Gmail שהוזכר כאן,
יש דרך אחרת יותר פשוטה והיא סקריפט בגוגל סקריפט, משהו כזה:
function doPost(e) {
const email = 'XXXXX@GMAIL.COM'
GmailApp.sendEmail(email, 'הופעלה הפונקציה', e.parameter.text)
return ContentService.createTextOutput(JSON.stringify({ success: true })).setMimeType(ContentService.MimeType.JSON)
}
לאחר מכן בצד שמאל למעלה תלחץ על "פריסה" > פריסה חדשה, ואז תבחר "אפליקציית אינטרנט":

לאחר מכן בשדה "לבצע בתור" תבחר "עצמי", ב"למי יש גישה" תבחר "כולם",
תקבל כתובת URL שאתה פשוט פונה אליה בPOST, וזה שולח לך מייל עם הכותרת שהוגדרה בסקריפט ("הופעלה הפונקציה"). מוגבל ל100 מיילים ביום בחשבון לא עסקי.
תוכל להוסיף query param בשם text עם טקסט לתוכן המייל.
בנטפרי הכתובת שתקבל תהיה חסומה, תוכל לפנות אליהם ויפתחו.
@mekev כתב בsql - תכנון יצירת טבלאות:
במידה ויש נתון 'כפול' שניתן להשיגו באמצעות מפתח זר הקיים בטבלה נוכחית
אבל זה נתון 'רזה' מסוג nvarchar(30)
האם 'שווה' להוסיף את העמודה בכדי לחסוך את הjoin בשאילתותעריכה: דוגמא
למעשה המזהה ספק ושם הספק הינו נתון כפול
כי ניתן לשלוף את שם הספק באמצעות JOIN לטבלת ספקים
מצד שני - שם הספק הינו שדה 'רזה'
אני חושב שמקובל לעשות טבלה נפרדת של ספקים.
שים לב שבצורה הזאת, אם תרצה לשנות שם ספק, תצטרך לעדכן אותו בשני מקומות... זה תופעת לוואי שאומרת שהנתון לא אמור להיות כפול.
@יושב-אוהלים אמר בעזרה בקוד js:
כיוון שההנחיה שכתבת מחזירה לדפדפן את הקלט שהמשתמש מזין כמחרוזת טקסט, וזה בגלל הסימון "" שגורם לדפדפן לחשוב שמדובר במחרוזת טקסט ולא באופרטור
ליתר דיוק בגלל שprompt מחזיר תמיד סטרינג.
אגב לא הכרתי את השימוש בUnary plus להמרת סטרינג למספר, תמיד השתמשתי בparseInt
עריכה: נראה שיש יתרונות לכאן ולכאן - לדוגמה צורת הטיפול במספר עשרוני (יש בקישור הנ"ל טבלה מקיפה) :

כהמשך לכאן, חשבתי שיהיה נחמד אם כל אחד יעלה כאן תוספים שימושיים במיוחד ל-VSC לתועלת כולם.
ואני יתחיל עם כמה שימושיים, אני משער שיש עוד המון...
.envאפשר להשתמש גם בנגנן הזה שבניתי, שמבוסס בעיקר על קול חי מיוזיק: https://madrichim.ovh/live
@מעלה-ומוריד ניתן להגדיר האם תגית מסוימת (וצאצאיה) יתורגמו או לא, ע"י attribute בשם translate:
https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/translate
ממילא ניתן להוסיף את ההגדרה שלא לתרגם לתגית הhtml העליונה וכך כל האלמנטים שלא יוחרגו לא יתורגמו:
document.querySelector("html").translate = false;
ולאחר מכן ניתן להגדיר את האזור הספציפי שכן יתורגם, סתם לדוגמה כדי להגדיר שיתורגם אך ורק התוכן של הטבלת תאימויות דפדפנים באתר MDN:
document.querySelector("#content > article > div.table-scroll").translate = true;
חדש!
הקו שודרג, להלן השינויים:
אפשרות לבחור במהלך ההרשמה כמה דקות לפני הזמן ההלכתי (כלומר כמה זמן לפני השקיעה/סוף זמן ק"ש/נץ וכן הלאה) יקבלו את השיחה. לדוגמה 20 דקות לפני, 25 דקות, שעה, וכו'.
בשלוחה 2 - אפשרות לשמוע לאיזה תזכורות מנויים ולבטל תזכורות מסוימות בלבד לפי בחירה, או הסרה מהירה מכל ההרשמות הקיימות.
שימו לב - הדיוק של התזכורות הופחת בצורה מכוונת (בשל הכרח טכני), כלומר עשוי להיות איחור או הקדמה של עד 30 שניות.
אם לדוגמה שעה לפני השקיעה זה לפי החישוב שלי ב16:00:00, התזכורת תגיע בין 15:59:31 ל16:00:29.
וגם סטטיסטיקות מורחבות בשלוחה 0, למי שזה מעניין אותו 
מספרי הטלפון של המערכת נשארו ללא שינוי.
אם לא קיבלת תזכורת למרות שנרשמת, אשמח שתשאיר הודעה מפורטת בשלוחה 3 (כולל שם העיר והזמן שנרשמתם, וכמה זמן לפני בחרת לקבל את התזכורת), כדי שאוכל לתקן. תודה.
אפשר גם לפנות במייל - zmanim@madrichim.ovh
@בערל אמר בשינוי שם של קבצים מרובים:
שלום לכולם.
יש לי המון קבצים עם שמות ארוכים.
חלק מסתיימים ב$ותווים נוספים אחריו.לדוגמה:
ahfdsgxh jgschsv $55.jpg jhdcjgjs jsyryafv &100.jpg icysgxjs yutsvhx &250.jpgאיך אפשר למחוק את ה"דולר" וכל מה שאחריו מכל הקבצים בתיקייה?
אני מאמין שאפשרי בפקודה בCMD.
אודה לכל רעיון.תודה רבה!!


בוחרים תקייה
בוחרים להשאיר שם וזהו
ובשורה בחלק התחתון כותבים מה שרוצים להסיר
ועושים "שנה שם",
וזהו!
זה עובד מצויןן ומדוייק.
(מנסיון)
@יוסף-בן-שמעון למודלי קוד פתוח יש את כל השימושים של מודל בקוד סגור עם שלל יתרונות נוספים כמו עלויות, לא להיות תלוי בחברה חיצונית, אבטחה, יכולת התאמה לצרכים מיוחדים
@יוסף-בן-שמעון כתב במודלי שפה בקוד פתוח - שימושים בתעשייה:
אבל למודל שפה אין פלט דטרמינסטי, ואפילו עם רג'קס אי אפשר לקרוא את הפלט, כך שלכאורה לא ניתן להשתמש בו לביצוע אוטונומי.
המודלים כבר מספיק חכמים כדי להחזיר פלט במבנה שתבקש
ואגב לLLM יש פלט דטרמיניסטי, הרי בסוף הLLM רק חוזה את הטוקן הבא בכל פעם על סמך כל הטוקנים עד הנקודה הנוכחית, ולכן אותו קלט ואותם פרמטרים (טמפרטורה וכו') ואותו seed (סה"כ מספר) יחזירו תמיד את אותה התשובה בדיוק,
רק שהממשקים מאחורי הקלעים מכניסים מספר seed אקראי כדי שהתוצאה תהיה שונה כל פעם, בAPI של OpenAI לדוגמה יש לך אפשרות לשלוט על הseed
@avi-rz כתב בארכיטקטורת ניהול משתמשים עם רמות גישה שונות:
ועשוי להיות פחות מאובטח מבחינת ניחוש מבנה המערכת
מה המשמעות האבטחתית לזה שמבינים את מבנה הטבלאות במערכת?
כנ"ל כתובת ההתחברות של המנהל. עדיף להתמקד באבטחה ולא באבטחה באמצעות הסתרה
@אביחיל עשיתי את התיקון כבר אתמול בערב, היום רק שיפרתי 
@יוסף-בן-שמעון אני חושב שהאופציה הראשונה וודאי לא נכונה, לא אמור להיות תקייה לכל קובץ ששמה הוא מזהה הקובץ ובתוכה הקובץ, כיוון שאין בזה שום ערך ארגוני וכדומה (בשונה מחלוקה לפי חודשים וכדו')
אתה יכול לשמור ישירות את המזהה של הקובץ:
/uploads/<filekey>.png>
או אם תרצה מזהה + שם לצורך סדר בתקיה וכדו':
/uploads/<filekey>_<filename>.png
ובמסד הנתונים אתה שומר את שם הקובץ ומספק אותו להורדה על פי המזהה, עם שם הקובץ ששמור במסד.
השאלה לדעתי היא רק האם לשמור את הקבצים עם חלוקה לפי תקיות על פי תאריך ו/או תחום, או לשמור הכל במעורבב ולסמוך לגמרי על החלוקה שבמסד
@שאול-נ-י לא הבנתי, מה המטרה של a?
אם אתה משתמש בforof אין צורך במשתנה אינדקס
const str = 'שלום וברכה, נא להשאיר הודעה ונחזור אליכם בהקדם';
const words = str.match(/.{1,10}(\s|$)/g);
for (const word of words.reverse()) {
console.log(word)
}
ממליץ לקרוא על לולאות בספר של רן בר-זיק (בתשלום, משתלם מאוד לדעתי), זה יעשה לך קצת סדר...
נקודה נוספת -
@ענן אמר בעדכון משתנה בתנאי:
if (lnghe.length = en) {
זה לא תנאי תקין, תנאי תקין הוא עם === (קפדני - משווה גם תוכן וגם סוג), או == - לא קפדני, ממיר לדוגמה מספר למחרוזת
דוגמה להשוואה רגילה (לא קפדנית):
if (5 == '5') alert('=')
כאן התנאי יתקיים, כיוון ש5 יומר ממספר לסטרינג, ואז זה שווה,
אבל כזה דבר:
if (5 === '5') alert('=')
לא יתקיים, כיוון שהסוג לא זהה, והשתמשנו בהשוואה קפדנית.
מומלץ להתרגל לשימוש בהשוואה קפדנית כיוון שזה מונע התנהגות לא צפויה של הקוד...
@איש-נחמד אין מקום להשוואה. אנשים שילמו כסף מלא על המודעות שלהם בזמן שהאתר היה למטה, הבעלים של רשתטק לא חייב לך כלום
@Y-Excel-Access כיוון שאני רואה שלא נתנו פה הדרכה יותר טובה או קישור למשהו מוכן, אנסה לכתוב משהו:
א - קריאה/כתיבה לטבלת שיטס מתוך גוגל סקריפט
כל הנ"ל מתייחס לאם רוצים לקבל/לכתוב יותר מאשר תא של 1X1, אחרת ניתן להשתמש במתודת
getValue/setValueבהתאמה, שמקבלת/מחזירה סטרינג.
הקריאה/כתיבה של נתונים אל קובץ השיטס נעשית באמצעות הSpreadsheet Service, כאשר הפעולה נעשית על ידי קבלת "אזור" תאים בטבלה - ragne, וכתיבה אליו של "מערך דו מימדי", או בקריאה - שימוש במתודה getValues על הrange מה שיחזיר מערך דו מימדי.
לדוגמה יש כזו טבלה:

נוסיף סקריפט דרך הטבלה - מה שיאפשר לי להשתמש בgetActiveSheet:

ונכתוב בו את הפונקציה הבאה:
function getSheetValues() {
const sheet = SpreadsheetApp.getActiveSheet()
const range = sheet.getRange('A1:B3')
const values = range.getValues()
Logger.log(JSON.stringify(values))
}
כאן אני מקבל את כל השורות בטבלה אז ניתן באותה מידה להשתמש ב
sheet.getValues(), אבל באופן כללי, כשזה רלוונטי, נעדיף לקבל רק את הטווח הרלוונטי כדי לחסוך ב"שאילתות" מול שירות חיצוני - השיטס, שמאיטות את הריצה של הקוד.
יודפס המערך דו-מימדי הבא שמייצג את הטבלה:
[["שם","תפקיד"],["משה","מנהל"],["יעקב","מזכיר"]]
כאשר התת-מערך הראשון מייצג את השורה הראשונה - שבד"כ מקובל להתייחס אליה ככותרות הטבלה, "שם" ו"תפקיד", והשני מייצג את ערכי השורה השניה - "משה" ו"מנהל", כך שאם לדוגמה ארצה לדעת מה התפקיד של האדם שמיוצג בשורה השניה (משה) אכתוב ככה (כאשר values הוא המערך הדו מימדי הנזכר):
values[1][1] // "מנהל"
ממילא כל ההתעסקות עם הנתונים היא עם מתודות של מערכים בJS - סתם לדוגמה אני אוהב להפריד את השורה הראשונה ע"י מתודת shift.
אם לדוגמה יעקב המזכיר קודם לדרגת מנהל, וגם שינו את שמו עקב מחלה קשה ליעקב-חיים, ואני ארצה לעדכן את השורה שלו,
אבצע את הפעולה הבאה:
sheet.getRange(2, 1, 1, 2).setValues([["יעקב חיים", "מנהל"]]);
כלומר אני מקבל את הrange בצורה הבאה:

דהיינו:
החל משורה: 2 (=שורה 1 לא כולל הכותרות)
החל מעמודה: 1
כמות שורות: 1
כמות עמודות: 2
ולאחר מכן אני כותב לטווח שזה בעצם האזור הזה בטבלה, מערך דו מימדי שכמובן במקרה הזה מכיל רק תת-מערך אחד.
אני מקווה שלא יצא מידי מעורפל, אם יש שאלות אתה מוזמן לשאול.
ב - שליחת בקשות לAPI של ימות
החלק הזה הוא החלק הפשוט, שליחת בקשות נעשית באמצעות UrlFetchApp (בד"כ באמצעות UrlFetchApp.fetch (קישור)), ויש לימות תיעוד ברור של הAPI שלהם:
https://f2.freeivr.co.il/topic/55