שמתי לב שיש תשובה יותר פשוטה ממש שכתבתי, ה-regex הבא:
()
אמור לבצע אותו דבר.
שמתי לב שיש תשובה יותר פשוטה ממש שכתבתי, ה-regex הבא:
()
אמור לבצע אותו דבר.
@yossiz
אני לא רוצה להתאים "תו", אני רוצה להתאים את מה שביניהם (בעיקרון זה כלום, אבל יש רג'קס לכלום הזה), ואני מפצל באמצעות הכלום הזה, מה שמשאיר לי את כל התווים מפוצלים

אם אני מפצל באמצעות ., אז כל מה שנשאר לי הוא הכלום שבין התווים
(לכן יש 10 מחרוזות ריקות, הכלום הזה נמצא גם לפני התו הראשון וגם אחרי האחרון)
@hp079
אני לא בקיא בנבכי הגוגל שיטס, אבל הרג'קס \B|\b עובד לי בjavascript:
'a5bc12H34'.split(/\B|\b/)
הסבר, \B יתאים את התווים בין התווים שהם לא בין מילה (כלומר לא תווים, הוא תואם את המקום שביניהם), ואילו \b יתאים בין התווים שבתחילת וסוף מילה (בין התווים!), אז זה בעצם רג'קס שמתאים "בין התווים" ולא את התווים עצמם
בגלל שאין לי מושג אם הצלחתי להסביר את עצמי, אז אני אשאיר את הקישור הזה שאולי ימחיש את זה יותר טוב
https://regex101.com/r/H0mSzI/1
רק להוסיף קצת תוכן מעניין:
ראש הצוות של הקוד של אפולו 11, והמתכנת הראשי היתה אישה, יש תמונה מפורסמת שלה עומדת ליד הקוד של אפולו 11 מודפס על דפים, והערימה של הדפים עוברת את הגובה שלה.
ופה נכנס שוב הנושא של פמיניזם, אם אלו היו התוצאות כשאישה היתה ראש הצוות, תחשבו מה היה קורה אם זה היה איש, כבר מזמן היינו נוחתים על פלוטו.
לא ניסיתי בעצמי, אבל אתה יכול ליצור אסימון התחברות במחשב הלוקלי שלך, ולשמור אותו בשרת
https://devcenter.heroku.com/articles/authentication
יכול להיות שאם כל מה שחסר לך הוא הגיט, אז יש גם פיתרון באמצעות יצירת מפתח SSH
https://devcenter.heroku.com/articles/authentication#:~:text=The SSH key is used for git push authentication when using SSH Git transport
https://devcenter.heroku.com/articles/keys#generate-an-ssh-key
@גמליאל אמר בפיתוח אפליקציה - התממשקות ל API:
עם זאת, ישנן ספריות (קורדובה למשל, יש גם את ionic) שאיתן אתה לוקח אתר web ומשכפל אותו למובייל (ברעיון של אלקטרון על ווינדוס). זה לא "נייטיב", כלומר אין לך את כל הפונקציונליות שיש באפלקיציות נייטיב
א. ionic זה פריימוורק שמשתמש בקורדובה או קפסיטור, תלוי בגירסה.
ב. כל הרעיון של קורדובה וקפסיטור זה שהם מייצרים לך התממשקות עם הפונקציונליות של המכשיר כמו באפליקציית נייטיב, הבנתי שהחיסרון הוא בעיקר במהירות תגובה, אבל אין לי ניסיון בזה כדי להעיד.
@צדיק-תמים לא שאלת מה הפיתרון האלגנטי, שאלת איך עושים את זה 
לפעמים אין פיתרון אלגנטי מובנה בשפה, ואז משתמשים בfor
@צדיק-תמים
בצורה מקוצרת:
var a = [1,2,3], b = [false, true, false];
a.filter((_,i) => b[i])
@לעזור-לכולם
בעיקרון אין הבדל בהאזנה לאירוע על אלמנט אחד או כמה אלמנטים, האירוע יוזנק בכולם (אלא אם עשית בכוונה שלא עם stopPropagation)
אבל אני מאמין שאם עברו 10 שעות מאז ששאלת את השאלה, כבר פשוט בדקת את זה.
אתה מחפש פיתרון בחינם?
כי גם לבנות שרת מיילים עולה כסף.
הדרך הכי "לפי הספר" לעשות את זה, היא להירשם לעדכונים מגוגל ישירות
https://developers.google.com/gmail/api/guides/push
עריכה:
וגם אעתיק מה שהם בעצמם כותבים
Typically all notifications should be delivered reliably within a few seconds; however in some extreme situations notifications may be delayed or dropped. Make sure to handle this possibility gracefully, so that the application still syncs even if no push messages are received. For example, fall back to periodically calling history.list() after a period with no notifications for a user.
@dovid אמר בביל גייטס - תודה!:
טוב, אני משתמש בwindows ובעצם אני צריך לכתוב את זה בbat או ps
הרצתי את זה בmingw שמגיע עם git, זה גם עובד
(וככל הנראה גם ב-wsl)
וגם הנחתי שVSCODE יקרא אוטומטית את הsource map ולא צריך משהו מיוחד בשביל לדבג typescript, אני אנסה לבדוק את זה
עריכה:
אכן זה עובד ללא שום הגדרות מיוחדות

רק צריך להגדיר בtsconfig שייצר source map
@dovid
סליחה, חשבתי שהנקודה היא להתחיל לכתוב פרויקט, זה באמת לא פיתרון לסביבת עבודה מלאה.
אני השתמשתי במשהו שהתאים ספציפית לפרוייקט שלי, אבל הוא אולי גם יתאים לצורך שלך.
השתמשתי בשרת seq שזה שרת לוגים, והעברתי לו את כל הrequestים ואת הresponseים של האפליקציה כולל, זה כלל גם HTTP וגם פניות למסד נתונים (והתוצאות).
השרת נותן לך תשתית נוחה לחפש ולפלטר את הלוגים, והוא גם יוצר בשבילך חוקים בשביל להפריד בין לוגים לפי ראות דעתו הממוחשבת.
עריכה:
גם התקנתי עם אימג' מוכן של דוקר תוך דקות מספר.
GetExtension מקבל נתיב כולל הסיומת לקובץ ומחזיר את הסיומת שלו.
בעיקרון מה שתעשה זה Directory.EnumerateFiles כדי למצוא את הקובץ שלך.
Directory.EnumerateFiles(Path.GetDirectoryName(הנתיב_ללא_הסיומת)).Where(f => f.StartsWith(הנתיב_ללא_הסיומת)).FirstOrDefault()
במקרה ויש לך כמה קבצים עם אותו שם וסיומת שונה, הוא יחזיר את הראשון, במידה ואין בכלל קובץ כזה, הוא יחזיר null.
@avramk
זה נכון לכל שירות, שגם אם יש בו פרצה, אתה יכול לתת לתוכנות הגנה שונות למנוע אותה.
וכמו ש@dovid כתב, זאת לא באמת "פרצת אבטחה", זה שמישהו לא יודע להגדיר נכון את המסד נתונים שלו, ההבדל הוא שבמקום לשים הגדרה "האם לא להצפין את התעבורה", הם שמו הגדרה "האם כן להצפין את התעבורה", ובהנחה ולא הגדירו במיוחד שהתעבורה תהיה מוצפנת, זה מאוד קל לעשות כל העולה על רוחך (כמו שהייתי עד למישהו שהקים משתמש ע"י החלפה של השאילתא ששלח הקליינט לשרת)
עריכה:
בנוסף זה היה יכול להימנע אם היו נותנים לקליינט הרשאות רק למה שהוא צריך (מאחר והוא לא צריך להיות בעל הרשאה ליצור משתמשים), אבל שוב זה עניין של הגדרות.
@avramk
אז לא נראה לי שיש מה להשוות בין הפרצה של SQL SERVER לפרצה של RDP,
SQL SERVER נותן לך MITM שזאת פרצה במידה ואתה כבר יושב באותה רשת עם הSQL SERVER, אבל זאת פרצה מאוד פשוטה למימוש ומאוד מסוכנת.
RDP הוא יותר מצוי, אבל פחות פריץ, אז באופן כללי מי שיש לו RDP פתוח לרשת החיצונית חשוף יותר לסכנות, אבל כמו שכתבת, צריך בשביל זה לנסות הרבה סיסמאות, והפרוטוקול עצמו כן מונע במידת מה את הפריצות האלה ע"י השהיה בין ניסיון לניסיון, ובשביל לעקוף את זה צריך פרצת אבטחה שכרגע אין.
SQL SERVER זה הדבר הכי פריץ שיש בברירת מחדל
הנה דוגמה
מניסיון, מישהו שאני מכיר השתמש בזה בשביל ליצור לעצמו משתמש בהרשאות גבוהות למסד נתונים של מתחרים, והם עדיין לא יודעים מזה, והוא יכול לעשות במסד נתונים מה שבא לו (וכמובן. זה מאוד לא חוקי)
עם המעלה שאתה מנסה להשיג היא מהירות טעינה של הדף
אז ממחקר שעשיתי פעם, הבנתי שאם יש לך אפשרות להעלות את כל הספריות לקובץ אחד ולטעון אותו מהשרת שלך, זה יהיה יותר מהיר מלטעון הרבה CDN, אבל בהנחה ואי אפשר, אז CDN הוא יותר מהיר.
היום יש את HTTP 3, אז יכול להיות שבכל מקרה CDN יותר מהיר, לא בדקתי את זה.
בנטפרי אין HTTP 3 עד כמה שידוע לי.
@צדיק-תמים
שלחתי לך הודעה בצ'אט של מתמחים.טופ (אני מקווה שזה באמת אתה)
@mekev
אתה יכול גם ליצור טריגר מהשרת שלך (איך אתה מתכנן לבצע עדכון מרחוק בלי זה?)
בצורה הכי פשוטה שלא מצריכה הבנה ברשתות -
אתה מעלה קובץ טקסט עם הגירסא של השרת לאיזה אתר פומבי כלשהו (אפשרי github),
התוכנה בודקת כל כמה זמן (תבחר אתה כמה) באמצעות WebClient.DownloadString() את הגירסא המעודכנת (הURL צריך להיות לקובץ טקסט שהעלת), אם זה לא תואם לגירסא שקיימת ללקוח (זה יכול להיות בקובץ קונפיגורציה app.config, וזה גם יכול להיות משתנה גלובלי) אז התוכנה תבצע סגירה לכל הHandlerים הפתוחים, תעדכן את עצמה, ותבצע פתיחה מחדש של עצמה.
ברגע שאתה רוצה לעדכן גירסא אתה פשוט משנה בקובץ טקסט שנמצא בגיטהאב את המספר גירסא.