נסה את Awesome Algorithms (10,000 כוכבים בGithub) ואולי גם את DataStructures-Algorithms, תתבונן היטב ברשימה היא עשויה להכיל את מה שאתה מחפש.
אגב הסבר נחמד על Big O Notation.
![רפאל רפאל](/assets/uploads/profile/uid-654/654-profileavatar-1635071242517.png)
רפאל
-
מחפש ספר/קורס/מדריך ל-מבני נתונים ואלגוריתמים -
תוסף VSCODE לחיבור SSH@davidnead להלן מדריך מפורט עבור השימוש בתוסף Remote - SSH של Microsoft.
-
עזרה דחופה ב ANGULAR -
חיבור למסד נתונים בדוקר 2העובדה שיש לך אפליקציה נוספת שמשתמשת בNetwork של הHost הינה חסרת חשיבות, השאלה שלך היא כיצד ניתן לגשת לקונטיינר (bridge network mode) מבחוץ (הHost המארח).
המשמעות של Expose היא תיעודית בלבד, בשביל לאפשר גישה לקונטיינר מבחוץ אתה צריך לבקש זאת באופן מפורש (Publish), מעבר לעובדה שאתה לא רוצה שזה יתבצע כברירת מחדל (בשל שיקולי אבטחה), אתה גם מעוניין לקבוע באיזה פורט התהליך (שמאזין בקונטיינר) יהיה זמין בHost.
התהליך מתבצע באמצעות מיפוי פורט X בקונטיינר לפורט Y בHost.
להלן מספר דוגמאות מתוך הדוקומנטציה:
פקודה תיאור docker run -p 8080:80 מפה את פורט 80 בקונטיינר לפורט 8080 בHost docker run -p 192.168.1.100:8080:80 מפה את פורט 80 TCP בקונטיינר לפורט 8080 בHost עבור חיבורים לHost באמצעות האייפיי 192.168.1.100 docker run -p 8080:80/tcp -p 8080:80/udp מפה את פורט TCP-80 בקונטיינר לפורט TCP-8080 בHost ואת פורט UDP-80 בקונטיינר לפורט 8080-UDP בHost אם המיפוי של המסד נתונים יתבצע באופן דלהלן
"3306:3306"
, המסד יהיה זמין בפורט 3306 של הlocalhost
.services: db: image: mariadb:10.5 environment: MYSQL_ROOT_PASSWORD: 54fghjghjk44RkjJHkhgv3798 ports: - "3306:3306"
-
מגבלות מאגר ב-github - גודל מאגר מירבי, וגודל מירבי לכל קובץ בודד במאגר@צדיק-תמים אמר במגבלות מאגר ב-github - גודל מאגר מירבי, וגודל מירבי לכל קובץ בודד במאגר:
וגם פוש לפי מה שהבנתי
מוגבל ל50/100 מגהמדוייק
GitHub blocks pushes that exceed 100 MB.
הפתרון הוא שימוש ב Git Large File Storage (או בקיצור Git LFS)
Git LFS מיועד עבור קבצים מעל 100MB, הקבצים אינם מאוחסנים בRepository, במקום זאת Git LFS יוצר Pointer file שמשמש כReference עבור אותם קבצים.
בחשבון החינמי של Github\Gitlab אתה מוגבל עד 2GB לקובץ. -
sql - תכנון יצירת טבלאות@mekev לא ברור מהו סוג המידע שהטבלה מייצגת.
אם הטבלה מייצגת משלוחים (כל רקורד מייצג משלוח בודד) סביר להניח שכמות שסופקה מייצג נתון שקשור באופן אינטרגרלי למשלוח.
ספקים - טבלה נפרדת.
מוצרים - טבלה נפרדת.אם הטבלה מייצגת משלוח של סוג מוצר מסויים (משלוח מכיל מספר מרובה של סוגי מוצרים) סביר למקם את כמות שסופקה באותה טבלה.
משלוחים - טבלה נפרדת.
-
הפעלת פונקציה אסינכרונית ללא await@ארכיטקט מדובר בנושא שיש הרבה מקום להרחיב בו, בל"נ אנסה לקצר, אם יש לך השגות או שאלות אשמח להרחיב.
הדרך המומלצת להריץ משימות רקע בASP.NET בפרט ובNET. בכלל, היא שימוש בHosted Service מדובר בService הרשום כSingleton החי בפני עצמו תחת אותו Host המריץ את האפליקציה.Host
התהליך המארח - מופקד על ההרצה וניהול חיי האפליקציות המתארחות, בנוסף תפקידו לטפל בכל הפרוצדורות הגנריות כדוגמת Logging וDI (מה שמאפשר שיתוף Services בין האפליקציות המתארחות עקב יצירתו של Root ServiceProvider בודד), והוא מוגדר ברובו באופן זהה ללא קשר לסוג האפליקציה המתארחת.צורת המימוש - Producer–Consumer:
האפליקציה והHosted Service יחלקו (באמצעות Serivce משותף) תור של משימות המחזירות Task\ValueTask (לדוגמה<<Channel<Func<CancellationToken, ValueTask
) לחלופין ניתן ליצור מחלקה ייחודית אשר תייצג משימת-רקע בודדת, המחלקה תכיל את המשימה עצמה כשדה, ובנוסף תכיל גם GUID כך שיהיה ניתן להחזירו ללקוח להמשך מעקב ולצורך מתן אפשרות לביטול (באמצעות CancellationToken ייחודי שיהווה שדה נוסף במחלקה ההיפותטית הנ"ל)לסיכום:
- האפליקציה תשחק את תפקיד הProducer - תפקידה יהיה להוסיף את המשימות לתור באופן סינכרוני לחלוטין
- הHosted Service את תפקיד הConsumer - תפקידו יהיה להריץ את המשימות הנכנסות לתור (אחת אחרי השניה במקרה של Channel או במקביל עם שימוש בActionBlock) וטיפול בשגיאות
-
שאלה. איך לכתוב ביטוי רג'קס? ואיך למחוק ברג'קס מילים שלמות?@צדיק-תמים המטא-תו
S\
הפותח יתאים לנקודה המופיעה לפני המספר\ים, והמטא תו הסוגר יתאים לנקודה המופיעה לאחר המספר\ים.@צדיק-תמים אמר בהסרת מילים שלמות בגאווה סקריפט עם רג'קס:
אגב בצורה הזאת, במשפט ש @ענן הביא לדוגמה יווצר רווח כפול מיותר:
ניתן לבחור את הרווח המופיע בסיום המילה:
str.replace(/\S*\d+\S*\s?/g, '')
-
עיצוב "קופה רושמת" באמצעות CSS ב VUE -
שליחת טקסט בעברית לserialport בc#@נ-נח השתמשתי בCom0Com בשביל לדמות זוג פורטים וירטואלים.
הרמתי Instance של הקוד דלהלן עבור כל אחד מהפורטים:
static void Main() { var names = SerialPort.GetPortNames(); Console.WriteLine("Serial ports, Select one:"); foreach (string name in names) Console.WriteLine(name); SerialPort p = new SerialPort(Console.ReadLine()) { Encoding = System.Text.Encoding.UTF8 }; p.DataReceived += (object sender, SerialDataReceivedEventArgs e) => { Console.WriteLine($"Data Received: {(sender as SerialPort).ReadExisting()}"); }; p.Open(); Console.WriteLine("Send data:"); for (string line; (line = Console.ReadLine()) != "quit";) p.WriteLine(line); p.Close(); }
-
הגדרת משתנה כקבוע (const) גם כאשר לא מתוכנן להשתמש בו לאורך זמן - יש עניין? (JS)@צדיק-תמים מומלץ תמיד להצהיר על משתנה קבוע היכן שאפשר, כך שתהיה אינדיקציה ברורה במקרים שהדבר אינו מתאפשר.
-
חשיבת מפתחים לטווח רחוק..@nigun אמר בחשיבת מפתחים לטווח רחוק..:
בכל אופן לא נראה שזה נובע מכך שלא חשבו קדימה, אלא פשוט מתכנת שלא ידע מה המגבלות של signed Int
המגבלות הקדימו את גילוי הבעיה, לא יצרו אותה, כך שגם אם האיש היה משתמש עם Unsigned Int, הייתי שולח אותו לדרכו.
אם כי בהתחשב בקצב הפיתוח ותחלופת המוצרים של Microsoft, יתכן שלמתכנתים שם באמת אין סיבה לתכנן יותר מדי... -
התקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים -
getTime אינו פונקציה@yyy נסה לבצע את המשימה כך
Date.now() - new Date(BirthDate).getTime
-
יצירת תווים/צלילים בC#הספרייה DryWetMIDI לדוגמא חושפת Fluent Api עם יכולות מדהימות:
var pattern = new PatternBuilder() .Note(MusicTheory.Octave.Get(3).ASharp, length: MusicalTimeSpan.Quarter) .Note(MusicTheory.Octave.Get(3).C, length: MusicalTimeSpan.Eighth) .Build(); using (var outputDevice = OutputDevice.GetByName("Microsoft GS Wavetable Synth")) { pattern.Play(TempoMap.Default, (FourBitNumber)10, outputDevice); }
עוד על הספרייה DryWetMIDI: Working with MIDI Devices
-
קוד חמוד/רע/איום ליצירת רשימת מספרים ב-JSמי נתן לך רשות להכניס לפה typescript?
אני מתנצל, לא העלתי בדעתי שהפורום הוא TypeFree.
אני מניח שאתה מתכוון ל-polling ולא ל-pulling
צודק תיקנתי, (בראש שלי זה תמיד Pulling, מלשון משיכה, ולא סקר).
אבל אני לא מבין למה אתה אומר שזה משמעותית לאין ערוך
אכן מימוש של רעיון זהה, אולם תבדוק מתי מימשת Iterator או לחלופין יצרת Generator שאינו אסינכרוני לאחרונה.
Enumrable/Enumerator אכן שימושיים ב#C, בשילוב עם מתודות הLINQ, אולם אינם שימושיים כלל כשלעצמם, לכן לדעתי כל עוד שהIterator Helpers אינם קיימים בJS, אין הרבה מה לעשות עם הIterators/Generators הללו.
-
קוד חמוד/רע/איום ליצירת רשימת מספרים ב-JSעד כמה שIterators/Generators שימושיים, סבורני שהגירסה האסינכרונית (AsyncIterator) משמעותית לעין ערוך.
להלן מימוש של Polling באמצעות Async Generator:class StockPricePoller { private readonly _url = "https://www.random.org/integers/?num=1&min=1&max=6&col=1&base=10&format=plain&rnd=new"; public async waitFor(thresholdPrice: number): Promise<number> { for await (const currentPrice of this.stockPrice()) if (currentPrice >= thresholdPrice) return currentPrice; } private async *stockPrice(): AsyncGenerator<number> { while (true) yield await fetch(this._url).then(x => +x.text()) } }
שימוש:
const price = await new StockPricePoller().waitFor(5);
הדוגמא לא מושלמת, והיה רצוי להמתין בין הבקשות (Throttling).
אגב הרעיון קיים גם ב#C ומכונה AsyncEnumerable
בקוטלין הוא מכונה Asynchronous Flow (דגם היברידי של תכנות אסינכרוני ותכנות ריאקטיבי). -
ASP.NET vs ...@nigun מה שניסיתי להסביר זה שASP זה Stack הכולל שרת HTTP, גישה למסדי נתונים, קריאה וכתיבה לקבצים וכו`, היתרון של ASP היא השימוש השיטתי של כלל המרכיבים בתכנות אסינכרוני, מה שאומר שבשימוש נכון לא קיימת המתנה עבור פעולות מסוג IO כלל.
-
פתיחת מסד נתונים ללא סיסמה ב C#עבור פתיחת חיבור לMSSQL באמצעות SQL Server Authentication נדרשים שם משתמש וסיסמא.
יש לך שני אופציות:
- להשתמש עם האימות של ווינדוס ע"י החלפת
Password
וUser ID
עםIntegrated Security=true
(האפשרות המומלצת בשל אימות משופר) . - לאפס את הסיסמא.
אני ממליץ לך להציץ על זה.
- להשתמש עם האימות של ווינדוס ע"י החלפת
-
מגבלות מאגר ב-github - גודל מאגר מירבי, וגודל מירבי לכל קובץ בודד במאגר@yossiz אני רואה שאכן הנפח הכולל מוגבל ל1GB בחשבון החינמי, הדבר עומד בסתירה לנפח שצויין בתיעוד (עבור קובץ בודד).
ניתן ליישב את העניין שגם אם נרכוש נפח נוסף, ההגבלה של 2GB עבור קובץ בודד תעמוד בעיניה.