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

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

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

רפאל

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

פוסטים

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

  • התקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים
    רפאלר רפאל

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

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

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


  • הרצת callback רק עם התוצאה של הקריאה האחרונה
    רפאלר רפאל

    @yossiz אמר בהרצת callback רק עם התוצאה של הקריאה האחרונה:

    נעלבתי

    גם לי לא לקח יום אחד להבין איך הכל עובד, ואני בטוח שלך יקח פחות.

    @yossiz אמר בהרצת callback רק עם התוצאה של הקריאה האחרונה:

    והוא מחזיר מיד את הפרומיס בצורה סינכרונית

    בהחלט, אבל שים לב להבדלים בין:

    • Map מיועד למיפוי ערך פשוט
    • SwitchMap יבטל את הרישום לObservable הפנימי הקיים וייצור Observable עבור הערך החדש
    • MergeMap ייצר Observable פנימי עבור הערך החדש, בלי לבטל את הObservable הפנימי, כך שאין סוף Observables פנימיים יכולים להיות פעילים במקביל (אפשר להגביל את הכמות).
    • ExhaustMap יתעלם מערכים חדשים כל עוד שהObservable הפנימי פעיל.
    • ConcatMap ימתין שהObservable הפנימי יושלם לפני שיצור Observable פנימי נוסף, הערכים נשמרים בBuffer פנימי.

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

     
     

    תרשים ציר זמן המתאר את ההבדלים בין הMaps השונים:

    • $Source מתאר את הstream המקורי.
      הכחול מייצג את הערך הראשון מהstream החיצוני
      הצהוב את השני
      הירוק את השלישי
    • $Target מייצג את הstream הפנימי (כל איבר מהstream החיצוני ימופה לstream פנימי)

    באיור הבא כל איבר בstream המקורי "משתכפל" כמספר הערכים שהstream הפנימי פלט (בכפוף למדיניות של האופרטורים הנ"ל):
     
    כיתוב בבעיות טעינה


  • הרצת callback רק עם התוצאה של הקריאה האחרונה
    רפאלר רפאל

    @yossiz אמר בהרצת callback רק עם התוצאה של הקריאה האחרונה:

    אני רוצה לקבל את התוצאה של הקריאה האחרונה. לא התוצאה שחזרה אחרונה.

    אני ממליץ לך לקרוא על SwitchMap.


  • התקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים
    רפאלר רפאל

    @ארכיטקט עבור הNamespaces הנפוצים (לפי סוג הפרויקט) מספיק להוסיף <ImplicitUsings>enable</ImplicitUsings> לקובץ הפרויקט (csproj)


  • הרצת callback רק עם התוצאה של הקריאה האחרונה
    רפאלר רפאל

    ביכולתך לממש Debouncing כך:

    function returnOnce(func) {
        let counter = 0;
        return async (...args) => {
            const id = ++counter;
            await new Promise(x => setTimeout(x, 300));
            if (counter > id) return;
            const result = await func(...args);
            if (counter === id) {
                return result
            }
        };
    }
    

    Reactive programming

    אישית הייתי משתמש בRxJs עבור המשימה, הרבה יותר אפשרויות, פחות קוד לתחזוק,

    fromEvent(input, 'keyup')
        .pipe(
            debounceTime(300),
            distinctUntilChanged(),
            switchMap(e => func(e.target.value))
        )
        .subscribe(result => updateUi(result))
    

    בדוגמא למעלה אנו יוצרים Observable שמאזין לאירוע keyup של התבת טקסט,
    לאחר מכן אנחנו מוסיפים אופרטורים (באמצעותם ניתן לקבוע מה יתרחש בשעה שערך יוחזר) באמצעות המתודה Pipe:

    1. DebounceTime
      עבור כל ערך שחוזר, המתן X מילי שניות, במידה ובמהלך הזמן הזה ערך חדש מופיע, התעלם מהערך הנוכחי, וחזור על התהליך שוב, במידה והזמן חלף ללא הופעת ערך חדש, העבר את הערך לאופרטור הבא.

    2. DistinctUntilChanged
      התעלם מהערך הנוכחי במידה והוא זהה לערך הקודם, במידה ולא, העבר את הערך לאופרטור הבא.

    3. SwitchMap
      האופרטור מקבל מתודה שמקבלת את הערך שחזר מהאופרטור הקודם כפרמטר ומחזירה Observable/Promise, המתודה תרוץ עבור כל ערך שחוזר, הObservable/Promise הפנימיים יתבטלו במידה והם עדיין רצים בשעה שערך חדש מופיע (עבור Promise אין לדבר משמעות מלבד התעלמות מהתוצאה).

    Promise vs Observable

    1. Observable אינו מוגבל להחזרת ערך בודד.
    2. Promise רץ ברגע שהוא נוצר, לעומת Observable שירוץ רק במידה ונרשם אליו באמצעות Subscribe (הדבר אינו נכון עבור Hot Observable אולם השימוש בו נדיר יותר ונתעלם ממנו לצורך העניין).

    לסיכום

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


  • דוקר: פורטים לא מגיבים
    רפאלר רפאל

    @שואף כשאתה אומר הכל תקין, מה זה כולל?


  • התקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים
    רפאלר רפאל

    @ארכיטקט אמר בהתקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים:

    לפעמים אתה רוצה קלאס שיהיה זמין בכל המרחב והוא באמת שימושי ושייך לפרוייקט בכללותו, אז אתה מקצץ בעומק הניימספייס שלו מצד שני הוא אכן שייך לקבוצת קבצים וכו'.

    המעלה בהיצמדות למבנה הקבצים היא העקביות והיכולת לאכוף אותה.


  • התקנתי Visual Studio 2022 כאן המקום למי שיודע דברים חשובים על IDE בכלל - דברים ששינו לי את החיים
    רפאלר רפאל

    Sync Namespaces

    קרוב ל"דוגמאות ששינו שישנו לי את החיים" ניצבת הפקודה Sync Namespaces (נוספה בVisual Studio 2022) אשר מעדכנת את הNamespaces בSolution\Project כך שיתאימו למבנה הקבצים.
    ניתן לקבוע בוודאות שללא שימוש תדיר בפקודה, יהיו לכם טעויות בNamespaces בכל אחד מהפרויקטים שלכם.

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

    Subword Navigation

    ניווט בתוך חלקי המילה באמצעות Ctrl-Alt-Left ו Ctrl-Alt-Right

    לדוגמא:
    כיתוב בבעיות טעינה


  • קבלת טקסט של דף אינטרנט
    רפאלר רפאל

    @משה-כהן345 NodeJs הוא יישום שנועד לאפשר סביבה להרצת קבצי JavaScript, היישום משתמש במנוע V8 של Chrome, השימוש העיקרי ביישום הוא עבור אפליקציות Web, אולם אתה יכול להריץ באמצעותו כל קובץ JS שתרצה.

    באפשרותך להוריד את היישום מכאן.


  • קבלת טקסט של דף אינטרנט
    רפאלר רפאל

    @משה-כהן345

    אני אמור להשתמש בתוסף כדי לקבל תשובה מהשרת של גיידסטאר ללא שגיאת CROS

    אני לא בונה דף אינטרנט. אני צריך ליצור לולאה כדי לקבל רשימת מיילים של עמותות. (לשימוש אישי, רק זה לא רלוונטי לאסוף אותם אחד אחד מהדף של כל אחד..)

    אז למה לך להריץ את הקוד בדפדפן, למה שלא תריץ את הקובץ באמצעות NodeJS?


  • קבלת טקסט של דף אינטרנט
    רפאלר רפאל

    @משה-כהן345

    אני חשבתי ש CROS בא להגן על המשתמש הגולש ולא על האתר.

    לחלוטין.

    בכל אופן התוסף שכתבתי עליו אמור לעזור לעקיפת CROS

    לא הבנתי את הסיטואציה, מי אמור להשתמש בתוסף הזה? האם אתה בונה דף אינטרנט לעצמך בלבד?

    האם אתה נמנע מלעזור בזה ממניעים עקרוניים\מצפוניים?

    מאיפה הסקת את זה? מה עשיתי עד עכשיו?


  • קבלת טקסט של דף אינטרנט
    רפאלר רפאל

    @משה-כהן345 אמר בקבלת טקסט של דף אינטרנט:

    כשאני מנסה להשתמש בקוד הזה ככה בקוד ה JS שלי אני מקבל שגיאת CROS מהדפדפן

    וטוב שכך.
    התשובה שלי לא נועדה לספק דרך עוקפת Cors. שורות הקוד בפוסט הנ"ל יניבו את התשובה המבוקשת אך ורק באתר שכתובתו guidestar.org.il, אין דרך עוקפת.

    הוא מנסה את זה בקונסול כנראה, לא בתוך אתר שלו.

    אין הבדל.


  • מחפש דגם קורא ספרים אלקטרוני
    רפאלר רפאל

    @מרדכי-היהודי לא חשבתי להגיב, אולם ראיתי שיש הנחה (Early Black Friday deals) של כמעט 50% עבור Kindle Kids, a Kindle designed for kids, with parental controls - Rainbow Birds Cover, אולי יש דרך אחר כך לחסום את המכשיר, או לחלופין להשתמש בחסימה המובנית.


  • שדרוג nginx שהסתבך
    רפאלר רפאל

    @davidnead שים לב, הבעיה שלך איננה ברורה (ניסית לתאר את הבעיה כפי תפיסתך, אולם כמו שכתבת אתה לא מתמצא בNginx), לכן אני מציע:

    1. תשתדל לתאר במילים פשוטות את הפעולות בהם נקטת (לדוגמא "כי הוא לא מזהה כל מיני דרייקטיביס" לא עונה על ההגדרה הזו).
    2. צטט את השגיאות, כך שנקרא אותם מכלי ראשון.

  • קבלת טקסט של דף אינטרנט
    רפאלר רפאל

    @משה-כהן345 בכיף גדול.


  • קבלת טקסט של דף אינטרנט
    רפאלר רפאל

    @משה-כהן345 מכיוון שפרטי יצירת קשר מופיעים בגיידסטאר (אולם הם לא מופיעים בHTML עצמו) פעלתי להבין היכן המקור של הנתונים.
     

    Request

    המספר 580023356 מייצג את מזהה העמותה.

    POST /apexremote HTTP/1.1
    Host: www.guidestar.org.il
    Content-Type: application/json
    Referer: https://
    Content-Length: 248
    
    {
        "action": "GSTAR_Ctrl",
        "method": "getMalkarDetails",
        "data": [
            "580023356"
        ],
        "type": "rpc",
        "tid": 6,
        "ctx": {
            "csrf": "_",
            "vid": "_",
            "ns": "",
            "ver": 0
        }
    }
    

     

    Response

    הJSON שחוזר מכיל טלפונים וכתובות דואר אלקטרוני ליצירת קשר.

        {
            "statusCode": 200,
            "type": "rpc",
            "tid": 6,
            "ref": false,
            "action": "GSTAR_Ctrl",
            "method": "getMalkarDetails",
            "result": {
                "result": {
                    "addressHouseNum": "20",
                    "addressStreet": "הטורים",
                    "addressZipCode": "9466217",
                    "annualTakinYearsText": " (2021)",
                    "audience": [
                        "בני ישיבות ואברכים"
                    ],
                    "emailMalkar": "b9707575@gmail.com",
                    "employees": 1,
                    "govConnectionSum": 0,
                    "govSupportLastYear": 2020,
                    "govSupportSum": 505585,
                    "greenInfo": {
                        "description": "אחזקת כולל אברכים , תמיכה וסיוע מיוחדים במועדי ישראל",
                        "email": "b9707575@gmail.com",
                        "phoneNumbers": [
                            "029707575"
                        ],
                        "year": 2021
                    },
                    "hasMalkarPeople": true,
                    "hekdeshBelongingsCount": 0,
                    "hekdeshIsAcademic": false,
                    "hekdeshIsForPrivateAlso": false,
                    "hekdeshMoneyList": [],
                    "hekdeshRealEstateCount": 0,
                    "InactiveMenu": {
                        "documents": false,
                        "govsupport": false,
                        "donations": false,
                        "govservices": true,
                        "people": false,
                        "assets": true,
                        "trustees": true,
                        "places": false,
                        "services": false,
                        "finances": false,
                        "connections": false,
                        "estates": true,
                        "contact": false,
                        "volunteering": true
                    },
                    "IsExperiencePlace": false,
                    "isStatusActiveText": "עמותה רשומה",
                    "lastModifiedDate": 1636069135000,
                    "lat": 31.788751700000000,
                    "lng": 35.210483400000000,
                    "machoz": "[\"ירושלים\"]",
                    "malkarCities": [
                        {
                            "lat": 31.768319000000000,
                            "lng": 35.213710000000000
                        },
                        {
                            "cityName": "מקום פעילות אחר",
                            "lat": 31.768319000000000,
                            "lng": 35.213710000000000
                        },
                        {
                            "lat": 31.768319000000000,
                            "lng": 35.213710000000000
                        },
                        {
                            "lat": 31.768319000000000,
                            "lng": 35.213710000000000
                        }
                    ],
                    "mapGeometryLists": {
                        "info": [
                            "malkarCities"
                        ],
                        "volunteering": [
                            "volunteerCities"
                        ],
                        "places": [
                            "malkarCities"
                        ]
                    },
                    "members": 7,
                    "nationalInsuranceSum": 0,
                    "phoneNumbers": [
                        "029707575"
                    ],
                    "submittedPapers": false,
                    "targets": [
                        {
                            "Activity": "מתן מלגות ללומדים",
                            "Target": "אחזקת כולל אברכים"
                        }
                    ],
                    "tchumPeilut1": "ישיבה - כולל",
                    "tchumPeilutRasham": "ישיבה - כולל",
                    "volunteers": 6,
                    "approval46": true,
                    "cities": [
                        "ירושלים"
                    ],
                    "city": "ירושלים",
                    "cityNums": [
                        "3000"
                    ],
                    "greenCities": [
                        "ירושלים"
                    ],
                    "greenCityNums": [
                        "3000"
                    ],
                    "greenMalkarDistricts": [
                        "ירושלים",
                        "ארצי"
                    ],
                    "hasHekdeshEstates": false,
                    "hasProperManagement": true,
                    "hasProperManagement2Years": true,
                    "hasReports": true,
                    "hasSubmittedPapers": false,
                    "hekdeshIsNeedCheck": false,
                    "hekdeshIsReligious": false,
                    "hekdeshIsReligiousNeedCheck": false,
                    "Id": "a002400000ACLiYAAX",
                    "isAmuta": true,
                    "isDeleted": false,
                    "isHekdesh": false,
                    "isHeletz": false,
                    "isOttoman": false,
                    "lastAddDataYear": "2019",
                    "malkarDistricts": [
                        "ירושלים"
                    ],
                    "malkarLocationIsNational": false,
                    "malkarLocationIsNationalGreen": true,
                    "Name": "ישיבת בית הכרם (ע\"ר)",
                    "orgGoal": "להקים להחזיק ולנהל ישיבות",
                    "orgYearFounded": 1982,
                    "regNum": "580023356",
                    "showApproval46": true,
                    "showDonation": false,
                    "showProperManagement": true,
                    "showReports": true,
                    "showSubmittedPapers": false,
                    "sugHitagdut": "עמותה",
                    "sugHitagdutLabel": "עמותה",
                    "tchumPeilutMain": "חינוך, השכלה והכשרה מקצועית",
                    "tchumPeilutMainNum": "21",
                    "tchumPeilutSecondary": [
                        "ישיבה - כולל"
                    ],
                    "turnover": 1836211
                },
                "success": true
            }
        }
    

     

    Request באמצעות Fetch

    fetch("https://www.guidestar.org.il/apexremote", {
      "headers": {
        "content-type": "application/json",
      },
      "referrer": "_",
      "referrerPolicy": "origin-when-cross-origin",
      "body": "{\"action\":\"GSTAR_Ctrl\",\"method\":\"getMalkarDetails\",\"data\":[\"580033249\"],\"type\":\"rpc\",\"tid\":6,\"ctx\":{\"csrf\":\"VmpFPSxNakF5TVMweE1TMHdPRlF3TVRveE1qb3lPQzQ0TkRoYSw4Y2N5TWlWNl8zQ0RZejJ6WEQxNjVXLE9EaG1aV0ky\",\"vid\":\"06624000000VGgM\",\"ns\":\"\",\"ver\":43}}",
      "method": "POST",
    })
    .then(x => x.json())
    .then(console.log)
    

  • קבלת טקסט של דף אינטרנט
    רפאלר רפאל

    @משה-כהן345

    1. כדאי שתתחיל להבין את הסיבה למגבלה הזו.
    2. אלא א"כ אתה אתה בעל השרת אין הרבה מה לעשות (וטוב שכך) חוץ מלהשתמש עם שרת Proxy, או לחלופין להשבית את ההגבלה של CORS בדפדפן אם כי אני מניח שהפתרון השני לא בדיוק יעזור לך.

  • הסתברות ברצף מספרים רנדומלי
    רפאלר רפאל

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 5 / 10
  • התחברות

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

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