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

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

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

רפאל

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

פוסטים

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

  • מה חדש בNET 6 LINQ.
    רפאלר רפאל

    @odeddvir תודה רבה על הפרגון


  • מה חדש בNET 6 LINQ.
    רפאלר רפאל

    הגירסה החדשה של NET. תוכרז במהלך החודש הבא באירוע NET Conf 2021 היוקרתי של מיקרוסופט, היא תכלול שיפורים רבים במגוון מחלקות, אחת מהיותר מעניינות שבינהן היא Enumerable, מספר מתודות Linq חדשות התווספו למחלקה, לצד הוספת Overloads חדשים עבור מתודות קיימות.

    ברשותכם הייתי רוצה לסקור כאן כמה מהחידושים שמצאו חן בעיני.

    1. Chunking
      אם יצא לכם לעבוד עם מבני נתונים גדולים, ודאי נתקלתם בצורך לחלק אוסף גדול למספר אוספים קטנים, בדיוק בשביל זה נולדה המתודה Chunk, המתודה מקבלת כפרמטר את הגודל הרצוי ומחזירה IEnumrable של תתי מערכים:
    public static IEnumerable<TSource[]> Chunk<TSource>(this IEnumerable<TSource> source, int size);
    
    
    private record Person(int Age) 
    
    int chunkSize = 10; 
    
    IEnumerable<Person> largeCollecton = Enumerable.Range(0, 1_000).Select(age => new Person(age));
    
    IEnumerable<Person[]> chunks = largeCollecton.Chunk(chunkSize);
    
    foreach (var chunk in chunks) 
    {
        foreach (var person in chunk)
        {
            Console.WriteLine(person);
        }
    }
    
    1. MaxBy\MinBy
      המתודה מאפשרת לקבוע את האובייקט הגדול\הקטן באוסף ע"פ המאפיינים של האוביקטים, בשונה מMax\Min הוותיקים שמבצעים את ההשוואה מול האוביקטים עצמם.
      לדוגמא: אם נרצה לקבוע מיהו האדם המבוגר באוסף של מופעים מסוג Person, נבצע את המשימה כך: people.MaxBy(x => x.Age) , עד כמה שהדבר מוזר, האפשרות טרם הייתה קיימת עד כה, הדרך המקובלת הייתה השילוב הלא חביב דלהלן:
      ()people.OrderByDescending(x => x.Age).First.
      כמו כן נוספו: DistinctBy ,ExceptBy ,IntersectBy וUnionBy בעלי עיקרון דומה.

    2. תמיכה בRange
      מכירים את Range מC# 8? עד היום התמיכה הייתה בלעדית למערכים, מעתה התמיכה מתרחבת לLinq, לדוגמא: people.Take(6..10) יחזיר ארבעה אובייקטים, מהאובייקט במיקום השישי עד האובייקט במיקום העשירי (מקביל לpeople.Skip(6).Take(4)).

    3. ערך דיפולטיבי עבור SingleOrDefault ,LastOrDefault ,FirstOrDefault
      המתודות הנ"ל יקבלו Overload חדש התומך בערך ברירת מחדל.
      בדוגמא דלהלן אנו ננסה למצוא באוסף מסוג Person, אדם שגילו הוא חמישים, ונחזיר מופע חדש (המצייג אדם שגילו הוא 50) במידה וניכשל:

    people.FirstOrDefault(m => m.Age == 50, new(){ Age = 50 })
    
    1. Zip עבור שלושה Enumrables
      כיום התמיכה מוגבלת עבור שניים בלבד.

    2. TryGetNonEnumeratedCount
      המתודה תנסה לקבוע את מספר האוביקטים בEnumrable מבלי לבצע איטרציה (פעולה העשויה להיות יקרה), כחלק מהתהליך המתודה תבדוק האם הEnumerable מממש את ICollection (המכיל מאפיין בשם Count), או לחילופין האם הוא מערך (המכיל מאפיין בשם Length).

    מקווה שנהנתם מהפוסט ושמצאתם אותו כשימושי, בהצלחה.


  • איך אני מקבל ערך מספרי בלי עשריות, בלי עיגול.
    רפאלר רפאל

    @אבי-203 שים לב שמכיוון שTrunc מעגל לכיוון האפס, ההתנהגות עבור מספרים שליליים תהיה זהה לזו של Ceil, כלומר העיגול יתבצע כלפי מעלה.

    לסיכום:

    מתודה תוצאה
    Floor עיגול כלפי מטה לכיוון האינסופי השלילי (Negative infinity או ∞-)
    Ceil עיגול כלפי מעלה לכיוון האינסופי החיובי (Positive infinity או ∞)
    Trunc עיגול כלפי מטה\מעלה לכיוון האפס

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

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


  • Caddy Web-Server
    רפאלר רפאל

    Caddy נחשב איטי בצורה משמעותית מNginx.

    ואם בReverse proxy servers עסקינן, לאחרונה התוודעתי דרך הבלוג של מיקרוסופט לפרויקט חדש של מיקרוסופט בשם Yarp, (ר"ת של Yet Another Reverse Proxy) למרות השם המטעה מדובר בספרייה שמספקת כלים לבניית שרתי פרוקסי מהירים עבור ישומים של Net., היא מבוססת על העקרונות של ASP.NET ומותאמת לpipeline של ASP.NET, מה שמבדיל אותה משרתי פרוקסי אחרים, זה הצורה בו היא משתלבת בסביבה של ASP.NET מה שמאפשר יכולות שלא היו קיימות עד עתה עבור מפתחי Asp.

    לדוגמא: באמצעות MIddleware ניתן ליצור לוגים, להגדיר האם בקשות יועברו הלאה לשרת נוסף או לא, ואם כן לאיזה שרת, ולהוסיף לוגיקה מותאמת אישית לפיצרים כמו טיפול בשגיאות ונסיונות חוזרים.

    למעוניינים להלן הGet started שלהם.


  • תוכנה לסימון חזרות
    רפאלר רפאל

    @פלורידה מרשים מאוד!


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

    @איש-נחמד יתכן מאוד שבמסכים קטנים השדה מוסתר ע"י אלמנט בעל z-index גבוה משלו


  • פתיחת מסד נתונים ללא סיסמה ב C#
    רפאלר רפאל

    @clickone ניתן להוסיף חשבון בActive Directory לMSSQL, כמו כן אתה יכול ליצור Logins עם הרשאות מותאמות אישית עבור קבוצה, דבר שיאפשר את הכניסה של כל החברים בה.

    העובדה שאנחנו לא משתמשים בטכנולוגיה מסויימת לא בהכרח שוללת את הלגיטימיות שלה.


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

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


  • פתיחת מסד נתונים ללא סיסמה ב C#
    רפאלר רפאל

    @clickone אין שום מניעה להתחבר מרחוק באמצעות Windows Authentication, אדרבא זאת הדרך המומלצת לחיבור מרוחק משום שהיא הרבה יותר בטוחה לעומת אימות עם שם משתמש וסיסמא.
    להלן מספר דוגמאות של אימות באמצעות WA.


  • פתיחת מסד נתונים ללא סיסמה ב C#
    רפאלר רפאל

    @אוריי

    עבור פתיחת חיבור לMSSQL באמצעות SQL Server Authentication נדרשים שם משתמש וסיסמא.

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

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

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


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

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

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

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

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


  • איך לחבר לינקפד לשרת SQL
    רפאלר רפאל

    @אוריי השאלה אם אתה רוצה להשתמש עם Entity framework, או עם LinqToSql (הישן), אם מדובר בMSSQL ואין לך היכרות מוקדמת עם EF, אני ממליץ על האחרון.


  • חיבור למסד נתונים בדוקר 2
    רפאלר רפאל

    @שואף נכון, בעבר Expose היה מאפשר גישה בין קונטיינרים, ובהעדרו, היה ניתן לגשת לתהליך רק מתוך הקונטיינר עצמו.


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

  • תוכנה לסימון חזרות
    רפאלר רפאל

    @odeddvir הניסוח אינו מדויק.
    UTF32, UTF16 ,UTF8 כולם Unicode, העניין הוא שChar מכיל רק 16 ביטים, רוב האפליקציות בחרו להתעלם מהעובדה הזו בעיקר משום שרוב התווים שבשימוש תדיר משתתפים בBasic Multilingual Plane (או בקיצור BMP) שדורש 16 ביטים בלבד.
    BMP מכסה את כל השפות המודרניות ומכיל יותר מ30,000 אלף תווים בסינית.


  • אתחול אובייקט ב-TS.
    רפאלר רפאל

    @yyy כדאי להימנע מיצירת מופעים עבור מחלקות בצורה ליטרלית משום שהPrototype שלהם יהיה זהה לזה של Object.

    ההשלכות המצערות:

    • האובייקט לא יכיל את המתודות והProperties של המחלקה.
    • ההצבות (בתוך הבנאי ומחוצה לו) לא יתבצעו (התגלית שהערך של השדה Y במופע שיצרת יהיה זהה לundefined לא אמורה להיות מפתיעה במיוחד כעת).
    • השימוש בisPrototypeOf ו instanceof לא יניב את התוצאה הרצויה (וכן כל המתודות שבPrototype).

    מסקנה:

    • היכן שהשימוש בObject literal נחוץ (ומתאפשר) השתמש בInterface לציון הType (עקב הצורך בערך דיפולטיבי עבור Y האפשרות לא רלוונטית עבורך)
    • צור מופעים עבור מחלקות באמצעות הבנאי:
    class ZeroYCoordinate {
      public readonly y: number = 0;
      constructor(public x: number) { }
    }
    
    const points = [new ZeroYCoordinate(4)]
    

    ** שינוי Prototype אפשרי באמצעות השימוש בsetPrototypeOf, אם כי הדבר אינו מהווה פתרון מקיף לכל הבעיות שציינתי.


  • חיבור SSH לטרמינל ישירות מוינדוס
    רפאלר רפאל

    @yossiz בהחלט.

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

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

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