@ששא כתב בקבלת תאריך עברי של היום בשפת JS:
תמיד 8.
@ששא כתב בקבלת תאריך עברי של היום בשפת JS:
תמיד 8.
לשאלתך, כדי לקבל את התאריך של מחר (לדוגמא) תוכל להכניס:
getHebDate(new Date(2024,1,7))
החודש הוא 1 כי החודשים מתחילים מ-0 (לא ידוע לי מדוע).
הפונקציה לעיל תוקנה, אחרי ההערות של ועם הקוד שהביא @dovid.
נראה שזה כן מחזיר אדר ב', ובכל מקרה זה יחזיר תמיד אדר ב' ולא אדר סתם.
צריך לתקן\לשפר..
בJS גם אפשר, מאמין שיש דרך יותר מסודרת ונכונה, זה מה שיצא לי כעת:
const hebm = ['תשרי', 'חשון', 'כסליו', 'טבת', 'שבט', 'אדר א', 'אדר ב', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'];
const hebc = 'אבגדהוזחטיכלמנסעפצקרשת'.split('');
const toObj = a => Object.fromEntries(a.map((e, i) => [i + 1, e]));
const [mobj, cobj] = [hebm, hebc].map(toObj);
const toHebCount = n => String(n).split('').toReversed().map((e, i) => cobj[i ? (i * 9) + Number(e) : Number(e)]).toReversed().filter(Boolean).join('"').replace('י"ה', 'ט"ו').replace('י"ו', 'ט"ז').padEnd(2,"'")
const [d, m, y] = Intl.DateTimeFormat('en-u-ca-hebrew', { year: '2-digit', month: 'narrow', day: 'numeric' }).format(new Date()).split(' ');
console.log(d, m, y);
console.log(toHebCount(d), mobj[m], `תש${toHebCount(y)}`);
עריכה: יש באג עם חודש אדר, ראו בהמשך
ואותו דבר כפונקציה שמקבלת תאריך ומחזירה עברי:
עריכה: הפונקציה תוקנה, ונראה שמחזירה תאריך תקין תודה ל @dovid על התיקונים שהוסיף.
const getHebDate = date => {
const [mobj, cobj] = [['תשרי', 'חשון', 'כסליו', 'טבת', 'שבט', 'אדר', 'ניסן', 'אייר', 'סיון', 'תמוז', 'אב', 'אלול'], 'אבגדהוזחטיכלמנסעפצקרשת'.split('')].map(a => Object.fromEntries(a.map((e, i) => [i + 1, e])));
const toHebCount = n => String(n).split('').toReversed().map((e, i) => cobj[i ? (i * 9) + Number(e) : Number(e)]).toReversed().filter(Boolean).join('"').replace('י"ה', 'ט"ו').replace('י"ו', 'ט"ז').padEnd(2, "'");
const [d, m, y] = Intl.DateTimeFormat('en-u-ca-hebrew', { year: '2-digit', month: 'narrow', day: 'numeric' }).format(date || new Date()).split(' ').map(Number);
return `${toHebCount(d)} ${m > 5 ? [0, 3, 6, 8, 11, 14, 17].includes((5700 + y) % 19) && [6, 7].includes(m) ? m === 6 ? "אדר א'" : "אדר ב'" : mobj[m - 1] : mobj[m]} תש${toHebCount(y)}`;
}
console.log(getHebDate(Date.now() + 1000*60*60*24*3));
@ASS ייתכן שיעזור אם תבהיר את השאלה בכמה פרטים.
@חנון-המרבה
אולי אתה פשוט מחפש את זה.
זה עובד, אני לא הצלחתי למצוא דרך שהכתובת תהיה יחסית.
זה גם מציג הודעה בפעם הראשונה (ואז אפשר לסמן שלא יציג בפעם הבאה).
@ivrtikshoret כתב בפתיחת קובץ מקומי דרך JS ב-HTML:
אתה כותב לו הרבה פתרונות כאשר אין לך בכלל מושג מה הוא רוצה לעשות עם הקובץ הוא כתב שהוא רק רוצה לפתוח,
ולכן שאלתי אותו מה המטרה שנוכל לענות לו..
הייתי במקום שלו, לא זוכר מתי ולמה. זה תהליך שעוברים אנשים..
חושב שכככל שידע מהר יותר מה רעיון מעשי ומה לא, יהיה לו יותר קל "להיפרד" מהרעיון "שלו" ולחשוב טוב על הפתרון שהכי טוב לו מבין הפתרונות האפשריים (הרבים) הקיימים.
@חנון-המרבה כתב בפתיחת קובץ מקומי דרך JS ב-HTML:
ולגבי התשובה שלך, אין לי קובץ אקסל פתוח, אני רוצה לפתוח קובץ קיים מחדש.
אם זה צריך לרוץ בעמדה מקומית (כלומר אתה כותב את זה עבור מחשב בודד), תתקין שם שפת שרת כלשהי, למשל nodejs, ותכתוב סרבר קטן שמקבל בקשה מהדף שלך וכותב אותה לקובץ חדש.
תוכל לעשות שהוא יופעל בעליית המחשב, וגם שיהיה ניתן לפתוח אותו בעזרת קישור (שהוא ישרת את הקובץ HTML ולא קובץ מקומי) אם תרצה.
אין. יש פעולות מקלדת בתוך הטאב שבו פועל הדף שלך (מלבד הגדלת סרטון למסך מלא.. שזה גם נחשב בתוך הטאב שלך, זה משפיע רק על התצוגה, ולא על המחשב והקבצים). ואתה גם יכול ליזום אותם, אבל לא תוכל ליזום את אלו שמשפיעות מחוץ לטאב שבו הסריפט שלך רץ.
ליתר דיוק - אין משהו מוכר. אולי לNSO/NSA יש מידע בנושא.
@חנון-המרבה כתב בפתיחת קובץ מקומי דרך JS ב-HTML:
השאלה אם אפשר בצורה אחרת ע"י הדמיית מקשי מחשב, במאקרו יש כזה דבר sendkey שזה מבצע פעולות מקלדת כמו Ctrl+A שזה בוחר הכל וכדו', השאלה אם הJS זה גם קיים או שזה לא קיים.
תודה על התשובות המהירות.
אם תפרט (או תפתח אשכול ייעודי) על הצורך הספציפי, יציעו פתרונות חלופיים.
פתרון אחד אפשרי (כמובן תלוי סוג השימוש המדובר) הוא שבקובץ הHTML יהיה מקום להדביק, ויצטרכו להעתיק מתוך האקסל.
זה קל מאד לביצוע, ועוד מעלה שאפשר לבחור בדיוק מה להעתיק.
כמובן החסרונות רבים וזה מתאים לשימוש יותר אינטראקטיבי ופחות לסקריפט שאמור לעבוד לבד.
https://robomongo.org/
מתמונות ברשת נראה שבתוכנה הזו יש אפשרות להשתמש בssh tunnel מובנה בUI.
tunnel ssh יכול לפתור את הבעיה (הוא פותח פורט במחשב שלך, שמעביר את הנתונים ישירות אל הפורט בשרת, ומבחינת הקוד שלך הDB הוא לוקאלי). יש עוד תוכנות נוספות שמאפשרות את זה.
כדי להבהיר את המונחים הרלוונטיים:
מייל שנשלח, נשלח ממכונה שיש לה IP ספציפי, וזה הדבר היחיד שמזהה אותה חד ערכית. מכיון שהתקשורת בוצעה באמצעות פעילות TCP אל המכונה המקבלת את המייל.
הדומיין של השולח, מופיע בגוף התקשורת, אבל הוא לא הוכיח את זהותו. המטרה של SPF הוא להוכיח שכתובת הIP הזו מורשית לשלוח מיילים בשם הדומיין הזה. לכן SPF יצביע על IP, או על דומיין אחר שבו יהיה הצבעה על IP.
לגבי השאלה, לא ברור למה קראת "שרת דואר" האם שרת שמקבל מיילים או ששולח, או שניהם.
רשומת הspf עצמה תוגדר בהגדרות הדומיין שרשום בתוך המייל שהוא השולח. ובערך של הspf אמור להיות כתוב דומיין כלשהו, ולדומיין זה צריך להיות רשומת spf (אצלו) שאומרת מי הוא הIP שמורשה לשלוח בשמו.
או שהIP ממנו נשלח המייל יהיה רשום ישירות בspf של הדומיין שרשום בתוך המייל שהוא השולח.
@aaron כתב באיך לממש תהליך פיתוח ודילוור גמיש ומהיר בלי להיות מומחה לתשתיות\לעבוד קשה:
docker context use develop
תודה, לא הכרתי את זה.
@dovid כתב באיך לממש תהליך פיתוח ודילוור גמיש ומהיר בלי להיות מומחה לתשתיות\לעבוד קשה:
אשמח שתפרט את הקווים העיקריים של המורכבויות שאתה מתאר בהבדלים בין השרת לקליינט
משום מה להיות תלוי בשירות חיצוני לא נשמע לי יותר בריא. אבל נשמע מכם שאני לגמרי טועה.
למשל אם לא משתמשים ברגיסטרי של דוקר, זה הופך להיות באמת מורכב כל פעם למחוק את הקונטיינר הקודם, את הimage והכל מחדש.
@aaron כתב באיך לממש תהליך פיתוח ודילוור גמיש ומהיר בלי להיות מומחה לתשתיות\לעבוד קשה:
לשמור שינוים בשרת GIT זה פרקטיקה מומלצת בכל מקרה.
כמובן שהפרוייקט נשמר בremote, אבל אין לזה קשר לCD מבחינתי..
בשני ההצעות הראשונות זה הופך להיות תלות מלאה, ואני מכיר את הדרכים האלו, ואכן כל מי שאני מכיר (שזה לא הרבה) משתמש בהם (אם זה הדרך הנכונה אז שיהיה ככה).
לתומי חשבתי שכל מה שאני יכול לעשות דרכם, אני יוכל לעשות גם בלעדיהם.
אני מחפש את הדרך הנכונה או הכי פחות כואבת, לפתח\לתחזק אפליקציית FS שכל כולה באחריותי (נניח לצורך הדוגמה שהיא מבוססת vue - node/express - mongo), ולדלוור את השינויים לשרת (דרך SSH) בלי בלאגן (שיהיה כזה npm run deploy.. ).
לצורך הפשטות נניח שניהול הגרסאות הוא בGIT לוקלי, ואין הבדל בין המערכת שלי לזו שבשרת. כמובן שהמציאות הרבה יותר מורכבת, וגם docker מעורב (אם זה רק עוזר - הכי טוב).
כרגע התהליך שישנו מורכב מהרצה של כמה וכמה פקודות, בסביבת הפיתוח ,וגם בשרת, אשמח להצעות ייעול (לפרוייקטים עתידיים בעיקר).
ישנו לאחרונה בAPI הרשמי טמפלט ייחודי שנועד בדיוק לזה, נקרא OTP.
כדי להשתמש ברשמי צריך להיות ארגון רשום ברשויות וכדו', אבל המפתח לא צריך WA.
הדרך המקובלת לשליחה באמצעות nodejs (דרך שרת שעושה את השליחה בפועל) היא אחת מה-2: SMTP (התחברות לשרת כמו שתוכנת לקוח מייל מתחברת) ו-API.
למעשה אפשר גם לשלוח ישירות עם nodejs (ללא צורך בשרת, או במקום שרת, וללא צורך בהתחברות).
לקבל מיילים באמצעות nodejs (דרך שרת שעושה את הקבלה בפועל) אפשרי טכנית רק באמצעות IMAP (כלומר השרת ישמור את המייל בעצמו, וכשאתה תתחבר עם nodejs אל השרת תוכל לקרוא), או באמצעות API - webhook (האפליקציה שלך מאזינה כמו אתר רגיל, והשרת כשמתקבל מייל מפרסר אותו (או לא) ושולח אליך בקשה עם המייל). לא נראה שתמצא שרת מייל (תוכנה להתקנה) עבור השיטה השניה, והשיטה הראשונה גורמת לכך שתשמור את המיילים פעמיים (אם התכוונת שnodejs יבצע את השמירה ל-DB ולא השרת).
שקול לכתוב שרת שבעצמו יהיה מבוסס nodejs (כלומר יאזין בפורט ויבצע תקשורת מול אלו שרוצים לשלוח אליו. ללא שרת נוסף. זה לא קשה למימוש במיוחד אם תשתמש בnpm package המתאים...).
לגבי השליטה על חשבונות, זה כמובן תלוי שרת (כלומר תלוי איזה שרת תבחר להתקין). אם תשתמש באפשרות השלישית תוכל גם להחליט שכל שם משתמש שיהיה הוא ולידי, או לטפל בזה גם באמצעות הDB שלך.
שרת מיילים ששולח או שמקבל?
לשולח - כמה טיפים שיעזרו:
בדוק שיש לו אפשרות להוציא תקשורת מפורט 25.. (תיקון טעות: אל פורט 25).
אם אין לדומיין שבשמו אתה שולח רשומת ptr, גוגל ידחו שליחה אליהם עוד בשלב המגעים עם השרת שלהם.
כדאי לדאוג להגדיר spf, dkim, dmark כראוי (רשומת TXT עם הגדרות הIP/דומיין שמורשה לשלוח וכדו', מפתח פומבי שמור ברשומתTXT בתוך סאב דומיין ייחודי וחתימה של המייל עם המפתח הפרטי, רשומת TXT עם הגדרות מי מקבל דיווח על הפרה של הרשאות, בהתאמה).
זה הבסיס, יש עוד המון טריקים שיכולים לעזור בהרבה כיוונים.
למקבל נדרשת רשומת MX בלבד, ואם היעד ברשומה הוא גם באחריותך, צריך שרת שיאזין.
מה בדיוק תעשה עם המייל שאתה מקבל?
תשמור אותו? באיזה פורמט? איך תקרא אותו?
סתם רשימת דברים שכדאי לחשב מראש.
עריכה: לשרת מקבל יש גם צורך בתעודת SSL תקינה, אם רוצים לתמוך בהצפנה סטנדרטית (לשרת שולח אין שום צורך בSSL, להבדיל מDKIM שהוא תעודת פומבית אבל אינה צריכה חתימה מגורם חיצוני).