דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
רפאלר

רפאל

@רפאל
אודות
פוסטים
186
נושאים
3
קבוצות
0
עוקבים
3
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • מחפש ספר/קורס/מדריך ל-מבני נתונים ואלגוריתמים
    רפאלר רפאל

    נסה את Awesome Algorithms (10,000 כוכבים בGithub) ואולי גם את DataStructures-Algorithms, תתבונן היטב ברשימה היא עשויה להכיל את מה שאתה מחפש.
    אגב הסבר נחמד על Big O Notation.


  • תוסף VSCODE לחיבור SSH
    רפאלר רפאל

    @davidnead להלן מדריך מפורט עבור השימוש בתוסף Remote - SSH של Microsoft.


  • עזרה דחופה ב ANGULAR
    רפאלר רפאל

    @ayali להלן Issue שעוסק בנושא.

    יש לנסות את הצעדים הבאים:

    1. להסיר את התיקייה node_modules (הממוקמת בשורש הפרוייקט)
    2. להתקין את הספריות באמצעות הפקודה npm install.

    אם הצעדים הנ"ל לא הועילו יש לנסות להתקין חבילות נוספות באמצעות npm install --save @angular/material @angular/cdk


  • חיבור למסד נתונים בדוקר 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
    רפאלר רפאל

    @חוקר קרא על Flex ועל Grid, נסה להבין היטב את המעלות והמגבלות של כל אחד מהם.


  • שליחת טקסט בעברית ל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 בכלל - דברים ששינו לי את החיים
    רפאלר רפאל

    @ארכיטקט יש את הMX (עכבר הדגל של Logitech), מאוד נהנה ממנו.

    כיתוב בבעיות טעינה

    קיים כבר מודל 3, אולם לא התנסתי בו


  • getTime אינו פונקציה
    רפאלר רפאל

    @yyy נסה לבצע את המשימה כך

    Date.now() - new Date(BirthDate).getTime
    

  • יצירת תווים/צלילים בC#
    רפאלר רפאל

    @נ-נח

    • DryWetMIDI
    • NAudio
    • MIDI Toolkiti

    הספרייה 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
    רפאלר רפאל

    @yossiz

    מי נתן לך רשות להכניס לפה 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 נדרשים שם משתמש וסיסמא.

    יש לך שני אופציות:

    1. להשתמש עם האימות של ווינדוס ע"י החלפת Password וUser ID עם Integrated Security=true (האפשרות המומלצת בשל אימות משופר) .
    2. לאפס את הסיסמא.

    אני ממליץ לך להציץ על זה.


  • מגבלות מאגר ב-github - גודל מאגר מירבי, וגודל מירבי לכל קובץ בודד במאגר
    רפאלר רפאל

    @yossiz אני רואה שאכן הנפח הכולל מוגבל ל1GB בחשבון החינמי, הדבר עומד בסתירה לנפח שצויין בתיעוד (עבור קובץ בודד).
    ניתן ליישב את העניין שגם אם נרכוש נפח נוסף, ההגבלה של 2GB עבור קובץ בודד תעמוד בעיניה.

  • 1 / 1
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום