@Y-Excel-Access
ניסיתי עכשיו לשאול שאלה שנויה במחלוקת, והוא סיים בכך שצריך לשאול רב מוסמך 
עריכה: שאלתי אותו עוד שאלות עד שלבסוף הוא אמר שלא כולם מדליקים נרות חנוכה בגלל שזה רק מנהג שלא התקבל על כולם. (הוא ערבב "מנהגים" ומצוות דרבנן בלי למצמץ)
@Y-Excel-Access
ניסיתי עכשיו לשאול שאלה שנויה במחלוקת, והוא סיים בכך שצריך לשאול רב מוסמך 
עריכה: שאלתי אותו עוד שאלות עד שלבסוף הוא אמר שלא כולם מדליקים נרות חנוכה בגלל שזה רק מנהג שלא התקבל על כולם. (הוא ערבב "מנהגים" ומצוות דרבנן בלי למצמץ)
למדתי דבר חדש 
https://ipapi.co/json/
תודה 
@nigun
אני לא מכיר את החלופות לעומק (בעצם כל מה שכתבתי מלבד C#), אבל אני מודע אליהן.
ואני מסכים עם הטענה שאסור להתקבע לשפה הראשונה, אבל יש קונספטים שחוזרים על עצמם בהרבה שפות, ואם אתה לוקח שפה שמשמיטה משהו חשוב כמו טיפוסיות חזקה, אז כשתתקל בהם אתה תלך לאיבוד, ותאלץ לשבור את הראש או לחלופין להתייאש.
הסיבה שכתבתי את go ברשימה היא בגלל שהיא מספיק יציבה בשביל להיות השפה היחידה של מתכנת (בשילוב עם wasm)
לגבי V, אני חושב שהיא יכולה גם להיות שפה יחידה, יש בה הכל, הסיבה שלא כתבתי אותה בראש הרשימה הראשונה היא בגלל שהשפה עדיין תחת פיתוח ראשוני, וכל minor version שיוצא שובר את הקוד הקודם, אבל זאת השפה הכי מרשימה על הנייר שקיימת (שוב, לפי קוצר דעתי בלה בלה)
נראה לי שמי שיחשף מעט ל-V לא ירצה לעזוב אותה, עד שהוא יגלה שחלק מהפיצ'רים בתיעוד לא קיימים בגלל שהם בפיתוח.
@שלום-עולם-0 מניסיוני האנגלית בספרים האלה היא ספרותית מאוד, זה אמור רק להקשות על הלימוד, לא כך?
@one1010 כתב בGPT-4 כישוריו בהמצאת תשובות:
למה כ"כ מוסבך? פשוט להגדיר שגם את המידע שהמשתמש נותן לבדוק מול מאגר המידע ולא רק את התשובה לקחת ממאגר המידע.
הוא לא מחזיק את מאגר המידע, הוא מחזיק קובץ שנועד לשמש אותו לתשובות החומר גלם שיצרו ממנו את הקובץ הזה, זה המידע.
@one1010 כתב בGPT-4 כישוריו בהמצאת תשובות:
בבינג החדש אין לו בזמן אמת את המידע?
אבל בלי קשר, זה שלכלב יש 4 רגליים ולא 5 זה כבר נמצא במדע הישן והוא לא צריך להתעדכן דווקא ממידע חדש
זה מגיע לנקודה שאין מידע שזה לא כך, אז המודל שפה מתבלבל.
@one1010
כן, האמת שמתוכן האתר שלהם לא חשבתי שאפשר להתבלבל, אז לא הבאתי קישור.
@A0533057932
כמדומני ששילבתי כמה API של גוגל ביחד, וזה יצר לי את המסלול הכי מומלץ.
לגוגל יש API בדיוק בשביל הדברים האלה. אז זה כבר מפשט את הפיתוח משמעותית.
@ממ
צריך להוסיף לפרויקט קובץ owin startup ולהוסיף אותו לweb.config, אם מייצרים את הקובץ דרך הממשק של VS (לחצן ימני על הפרויקט בסולושן אקספלורר -> add new file או משהו כזה), אז זה אוטומטית נוסף לweb.config
בקובץ שנוצר (Startup1.cs) להוסיף את הניתוב לswagger עם הפונקציות שהוא מייצא. (משהו כמו useSwagger או createSwaggerUI או משהו כזה)
אפשר לעיין עוד בגוגל על הנושא, ולעמוד על אי הדיוקים שלי.
נ.ב.
אולי כדאי לכם ליצור פרויקט asp.net core עכשיו לפני שכבר יהיה קשה לכם להחליף, שם הכל נוח ואוטומטי (חוץ מכמה דברים שלא אפרט)
@צדיק-תמים זה לפי מה שאתה מגדיר לו. בד"כ מפרידים את הקבצים הסטאטיים מהבקאנד (בהגדרות של השרת שלך)
יש גם if בSQL
if exists(...)
@Android
ומה התוכן של command כאשר זה נכשל?
@dovid
אכן, ToList משכפל לך את Enumatable שלך.
אתה בטוח שLast כן מחשב את כל הEnumerable?
עשיתי בדיקה ו-Last לא מחשב הכל, ההיגיון מאחורי זה הוא שאתה לא צריך לחשב את שאר האלמנטים, אתה ישר מדלג (Skip) לסוף 
זאת הבדיקה:
TestEnumerable t = new TestEnumerable();
Console.WriteLine(t.Last().i);
Console.WriteLine(t.Aggregate((i1, i2) => new Test(i1.i + i2.i)).i);
class TestEnumerable : IEnumerable<Test>
{
private List<Test> _l = new List<Test>() { new Test(1), new Test(2),new Test(3),new Test(4),new Test(5) };
public IEnumerator<Test> GetEnumerator()
{
return _l.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return _l.GetEnumerator();
}
}
class Test
{
public Test(int i)
{
_i = i;
}
public int i
{
get
{
Console.WriteLine("got here {0}", _i);
return _i;
}
set { _i = value; }
}
private int _i;
}
וזאת התוצאה:
got here 5
5
got here 1
got here 2
got here 3
got here 3
got here 6
got here 4
got here 10
got here 5
got here 15
15
אני עדיין לא יודע מה אתה מצפה שהקוד יעשה, כי הבאת את כולו.
בכל מקרה הדבר הראשון שקופץ לי זה שאתה מיד מתחיל עם socket.recv גם בקליינט וגם בשרת מיד לאחר יצירת החיבור, זה אומר שהתוכנה תהיה תקועה עד שמישהו ישלח משהו, זה deadlock.
א'. תלמד על הספריה select שנועדה עבור דברים כאלה.
ב'. אל תקרא לrecv סתם, תשתמש בזה כשאתה באמת מצפה לקבל משהו מהצד השני.
@yossiz טעות שלי, בעיקרון () זה רגקס להתאים NULL בתוך המחרוזת, חשבתי מregex101 שזה מתאים בדיוק כמו \b|\B, לא בדקתי את זה בדפדפן

וההסבר שלהם עונה את הכל:
1st Capturing Group () — null, matches any position
צריך עיון איך זה לא מתאים כלום, אבל באמת זה מתאים את הכל.
במקרה הזה "הכל" זה כולל גם מה שמתאים . וגם מה שמתאים \b|\B, והכל ברגקס אחד.
@dovid מהנושא שיוסי פתח, בינתיים נראה שמפתח מאוד גדול עם XOR כן יפתור את הבעיות, ידוע לך על אלגוריתם שיכול לפרוץ את זה?
@צדיק-תמים
הוא רוצה דוקא regex, אז זה מה שהבאתי.
ספציפית לדגאנגו אתה יכול לכתוב סקריפטים בפייתון בתור פקודות CLI לmanage.py
https://docs.djangoproject.com/en/4.0/howto/custom-management-commands/