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

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

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

yossiz

@yossiz
אודות
פוסטים
6.1k
נושאים
124
קבוצות
0
עוקבים
26
עוקב אחרי
0

פוסטים

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

  • בעקבות השידרוג - כותרת הפוסט
    yossizY yossiz

    למי שמעוניין, יש לי קוד CSS שאני משתמש בו כדי להסתיר רוב הכותרת ולהגדילו ברחיפה על הקצה הגלוי:

    .topic .topic-header {
        box-shadow: 0px 2px 6px rgba(0, 0, 0, 0.5);
        background-color: rgba(250,250,250,0.7);
        backdrop-filter: blur(5px);
        top: 10px;
        transition: top 0.5s ease-in;
    }
    
    .topic .topic-header:hover {
        top: 92px;
    }
    

    recording.gif


  • באג ריטול בבחירת פורם לנושא חדש
    yossizY yossiz

    כרגע קצת קשה לבחור פורום בנושא חדש...
    c4f61e8e-c977-49df-a7fd-883a73cc0a03-image.png
    תיקון:

    html[data-dir="rtl"] .composer .title-container .category-list-container [component=category-selector] .category-dropdown-menu {
        left: auto;
        right: 0;
    }
    

  • כללים לחיפושי גוגל יעילים
    yossizY yossiz

    עוד כללים

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

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

    • להשתמש בגוגל כעזר לשכל הישר ולא כתחליף לשכל הישר... 🙂


  • תוסף או סקריפט שיכולים לומר לי מה כבר ראיתי ומה עדיין לא
    yossizY yossiz

    @THMV כתב בתוסף או סקריפט שיכולים לומר לי מה כבר ראיתי ומה עדיין לא:

    מדובר על האתר הזה

    גם שורה זו "מוציא אותי מהכלים..."

    @THMV תבדוק בהיסטוריית הפוסטים שלי, אני אדם מתון בד"כ

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

    זה לא מקובל כלל לבקש משהו מאנשים בלי להסביר את הפרטים הבסיסיים ביותר
    לא חשבת לרגע שאולי הפרט השולי של איזה אתר מדובר יכול לעזור משהו פה?

    הדבקה של קיר טקסט מהעוזר האישי (בינה מלאכותית) שלך גם הפריע לי
    אם יש לך עוזר אישי כל כך נחמד שמוכן לעזור לך, תבקש ממנו באמת לעזור לך,
    הרי הוא "כאן לעזור!"
    קיבלתי את הרושם שאתה אומר
    "אין לי מושג איך עושים X
    אבל אתם מתים לעזור לי הרי
    אז הנה תשובה של העוזר האחר שלי
    תפענח אותו ותביא לי את זה בחתיכות שאני יכול לבלוע"

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


  • שינוי סיסמה בבנק הדואר - יומן הרפתקאה
    yossizY yossiz

    כמיטב מסורת אתרים אולטרה מודרניים... אני צריך לשנות סיסמה בכל כמה חודשים באתר,
    יש כמה תנאים לסיסמה חדשה,
    כמצו״ב:
    75343080-e5e1-4406-80aa-91d32df4ff67-CleanShot 2022-09-07 at 15.25.30.png
    הבעיה שלי:
    כל סיסמה שמנהל הסיסמאות שלי מחולל לפי התנאים הנ״ל לא מתקבלת בתואנה שזה לא מכיל 2 ספרות...

    דוגמה לסיסמה שניסיתי:

    JfXtqEF9kv7H
    

    והתוצאה:
    c2c6f57e-c644-4c86-812c-177791f77a53-CleanShot 2022-09-07 at 15.31.31.png
    אחרי שאני דופק את ראשי בכותל כמה פעמים, פולט כמה מילים כעוסות, אני מחליט שאין מנוס וצריך לבדוק את קוד המקור של הולידציה

    והנה הוא במלוא הדרו:
    bf16ac87-1ab7-4bba-b93e-b11f9decf495-CleanShot 2022-09-07 at 15.28.57.png

    האם תדעו אתם לענות, מה צריך לעשות לפייס את הקוד שהסיסמה שלי תתקבל?
    (התשובה קלה מאוד, לא צריך הרבה להתעמק)


  • עזרה | ייבוא נתונים מנדרים פלוס לאקסל
    yossizY yossiz

    @יעקב-ישראל הנה הקוד:
    אחרי כמה נסיונות...

    let
        Source = Json.Document(Web.Contents("https://www.matara.pro/nedarimplus/online/Files/Manage.aspx?Action=GetMosad&MosadId=6000949&S=&_=1612475934520", [Headers=[Referer="https://www.matara.pro/nedarimplus/online/?mosad=6000949"]])),
        data = Json.Document(Source[NewGroupe]),
        #"Converted to Table" = Table.FromRecords(data)
    in
        #"Converted to Table"
    

  • סיסמה ארוכה באתר "בנק" הדואר
    yossizY yossiz

    נתקלתי בבעיה משעשעת...
    יש לי חשבון ב"בנק" הדואר,
    באתר שלהם הם מאפשרים להגדיר סיסמה בעלת 20 תווים בלי שום אזהרה, (לא בדקתי מה המקסימום, אבל זה ברירת המחדל במנהל הסיסמאות שלי) אבל כאשר אני ניגש לדף הכניסה הדף שולח רק את 15 התווים הראשונים כך שאי אפשר ליכנס.
    זה קרה לי לפני כמה שבועות וחשבתי שבאמת הסיסמה לא נכונה, אז אחרי פרוצודורה ב"בנק" איפסו לי את הסיסמה, הלכתי הביתה והגדרתי סיסמה חדשה, נכנסתי בהצלחה וכו' וחשבתי שהכל טוב. אבל היום ניסיתי ליכנס שוב והופ! שוב לא מקבל את הסיסמה שלי, הפעם כבר חשדתי במשהו ובדקתי את התעבורה, והנה אני רואה שהם שולחים רק את 15 התווים הראשונים של הסיסמה.
    בינתיים הצלחתי ליכנס על ידי תוכנת MITM Proxy...


  • סקריפט: הכנסת סימוני יוניקוד RLM ו-LRM ועוד שיפורים
    yossizY yossiz

    לפעמים, כדי שטקסט דו-כיווני ייוצג בצורה נכונה, צריך להוסיף תווים סמויים (LRM ו-RLM)
    הסבר מצויין כאן
    כתבתי סקריפט שיקל על הכנסת תווים אלו, הסקריפט מוסיף שני לחצנים לעורך הפוסטים בפורום 96c069b1-617b-4059-a108-2c13833292f1-image.png - הימני עבור הכנסת תו LRM והשמאלי עבור תו RLM.
    בנוסף, הסקריפט מאפשר שימוש בקיצורי מקשים ctrl+b ו-ctrl+i עבור טקסט בולד ונטוי

    קוד הסקריפט:

    // ==UserScript==
    // @name         RLM LRM
    // @namespace    http://tampermonkey.net/
    // @version      0.1
    // @description  Add LRM and RLM and some keyboard shortcuts to nodebb composer
    // @author       yossi zahn
    // @match        https://tchumim.com/*
    // @match        http://forum.netfree.link/*
    // @match        https://xn--9dbazrsfz.com/*
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
        require(['composer/formatting'], function(formatting){
            require(['composer/controls'], function(controls){
                formatting.addButton("fa fa-caret-right", function(textArea){controls.insertIntoTextarea(textArea, "\u200e")}, "LTR Mark");
                formatting.addButton("fa fa-caret-left", function(textArea){controls.insertIntoTextarea(textArea, "\u200f")}, "RTL Mark");
            })
        });
        $(window).on('action:composer.loaded', function(e, data) {
            var composer = $('[data-uuid='+ data.post_uuid +'] .write');
            composer.on("keydown", function (event) {
                if (event.ctrlKey && event.which === 66) {
                    let boldButton = $('[data-uuid='+ data.post_uuid +'] [data-format="bold"]');
                    boldButton.click();
                    return false;
                }
                else if (event.ctrlKey && event.keyCode === 73) {
                    let italicButton = $('[data-uuid='+ data.post_uuid +'] [data-format="italic"]');
                    italicButton.click();
                    return false;
                }
                return true;
            });
        });
    })();
    

    השימוש בסקריפט הוא בצירוף התוסף TamperMonkey.
    למי שלא מכיר את TamperMonkey, ראה דוגמה נוספת לשימוש בתוסף כאן

    עריכה 1: הוספתי ctrl+b ו-ctrl+i
    עריכה 2: שיכתוב מחדש של תיאור הסקריפט...


  • מנהל חדש: @בערל! מזל טוב!
    yossizY yossiz

    @בערל בחופש זמני? מתגעגים אליך...


  • מחפש קוד סקריפט
    yossizY yossiz

    @אוריי לשם התחלה,
    תעבור על כל הגליונות, אתה רואה איך שהסוף של הכתובת בשורת הכתובת משתנה לכל גליון?
    תכתוב רשימה של כל הגליונות שאתה רוצה לדפדף ביניהם ותכתוב קוד כזה (בשורה 7 תשים את רשימת הגליונות כמו שאני שמתי):

    (function slideShow () {
      if (window.myInterval) {
        clearTimeout(window.myInterval);
        delete window.myInterval;
        return;
      }
      let sheetList = ['0', '1964356808', '98409833'];
      let activeSheet = 0;
      window.myInterval = setInterval(() => {
        document.location.hash = document.location.hash.replace(/gid=\d+/, `gid=${sheetList[activeSheet++ % sheetList.length]}`);
      }, 15 * 1000);
    })();
    

    הרצת הקוד בקונסול יתחיל את ה-slideshow והרצה שנייה יפסיק אותו וחוזר חלילה


  • שורה חדשה ב-PHP
    yossizY yossiz

    @google3 אמר בשורה חדשה ב-PHP:

    ‎/n

    לא מכיר PHP אבל לכאורה צ"ל: ‎\n


  • התנהגות מוזרה של מתודת ג'אווהסקריפט reduce
    yossizY yossiz

    @שלום-עולם-0 אתה צריך לעקוב אחרי התוכן של ה-accumulator‏ (=item1)

    במקרה הראשון: באיטרציה הראשונה הוא מערך שערכו: [1, 33], אבל באיטרציה השניה זה המספר: 83 כי זה מה שהחזרת מהאיטרציה הראשונה, עכשיו הערך של item1[1] זה undefined וחיבור שלו עם 90 מניב NaN
    במקרה השני: באיטרציה הראשונה item1 הוא מערך, התוצאה של חיבור מערך עם מספר הוא המרת המערך למחרוזת (welcome to JS...), וההמשך מובן...

    הפתרון הוא להוסיף ערך ראשוני של 0 עבור item1

    myArr.reduce((item1,item2) => item1 + item2[1], 0); 
    

  • Github Copilto לסטודנטים
    yossizY yossiz

    @chagold כתב בGithub Copilto לסטודנטים:

    הישיבה לא נמצאת ברשימת המוסדות שהם מציגים שם.

    זה מופיע עכשיו כאופציה
    49200aa5-90ad-473f-9a73-0cbab4f4f6bd-CleanShot 2023-01-30 at 23.57.11.png


  • הצבת ערך ב-struct (שפת C)
    yossizY yossiz

    בנוסף למה ש@dovid כתב:

    • בכתיבה ב-++/C צריך תמיד להיות מודע לדברים קטנוניים כמו איפה הזכרון מוקצה ב-stack או ב-heap, והאם יש לך מצביע לזכרון או reference לזכרון וכו'
    • ההצהרה char email[20] אומר להקצות אזור של 20 בייטים בתוך ה-struct, כנ"ל ההצהרה מקצה זכרון פנוי עבור 5X40 בייטים על ה-stack.
    • המחרוזת "1234" (אחרי התיקון למרכאות כפולות) מחזיר מצביע לזכרון שמוקצה בצורה סטטית באזור אחר לגמרי של הזכרון (זה מוקצה על ידי מערכת ההפעלה כאשר היא טוענת את הבינארי)
    • כדי להעתיק את התוכן של הזכרון הזה לתוך 20 הבייטים המוקצים ב-stack צריך להעתיק אותם (memcpy או משהו דומה (דוגמה)) ולא מספיק השמה פשוטה, כי משתנה של מחרוזת זה בעצם * char ולכן ההשמה שניסית לעשות הוא השמה של הפויינטר ולא של היעד של הפויינטר
    • אפשרות פשוטה יותר זה להגדיר את שדה ה-email כ-* char במקום []char ואז אפשר לעשות השמה פשוטה (אומנם אתה מקבל אזהרה מהקופיילר, אבל זה מתקמפל ועובד)
    • בשורה 18 הכוכבית בתחילת השורה לא נכונה, stdPtr->email מחזיר משתנה מסוג * char (כי משתנה מסוג מערך הוא תמיד מצביע על האיבר הראשון), ואם תשים * לפני קיבלת את היעד של הפויינטר שזה ה-char הראשון של האימייל
    • סתם נקודה לא חשובה, זה לא שפת C אלא ++C, הקוד לא תקין ב-C (שם צריך לכתוב struct Student בכל מקום במקום רק Student)

    הנה דוגמה שעובדת (אומנם עם אזהרה)
    וזה בלי אזהרה: https://godbolt.org/z/1TGxrPe1P


  • JS מחרוזת טקסט עברית הפוך עבור מדפסת קופה
    yossizY yossiz

    @חוקר סליחה על האיחור... זה היה קצת מסובך גם לי...

    const { getEmbeddingLevels, getReorderSegments, getMirroredCharacter } = require("bidi-js")()
    
    const str = 'ימין hashem (עושה) חיל'
    
    function logical2visual(str) {
        const embeddingLevels = getEmbeddingLevels(str, 'rtl')
        const arr = str.split('').map((c, i) => embeddingLevels.levels[i] & 1 ? getMirroredCharacter(c) || c : c)
        for (const [start, end] of getReorderSegments(str, embeddingLevels)) {
            const tempArr = arr.slice(start, end + 1)
            tempArr.reverse()
            for (let i = start; i <= end; i++) {
                arr[i] = tempArr[i - start]
            }
        }
        return arr.join('')
    }
    
    logical2visual(str) // "ליח (השוע) hashem ןימי"
    

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

    https://runkit.com/yossizahn/bidi-js


  • חילוץ מפתח XOR מתוך מספרים ממויינים
    yossizY yossiz

    תגובה: תרגיל מתמטי של הסתרת מזהה רץ

    בהמשך לנושא הנ"ל,

    @dovid אמר בתרגיל מתמטי של הסתרת מזהה רץ:

    הנה XOR למספרים עוקבים על מספר רנדומלי:
    159866
    159865
    159864
    159871
    159870
    159869
    159868
    159859
    159858
    159857

    @dovid אמר בתרגיל מתמטי של הסתרת מזהה רץ:

    אגב הרשימה של הXOR הינה אתגר הרבה יותר קל והוא לא הדליק פה מישהו ככל הנראה.

    אדרבה, זה הדליק אותי מאוד,
    (אמנם רק ביום שישי התחלתי לחשוב על זה ברצינות)

    אפשר לחלק את האתגר לשנים:

    • חילוץ המפתח מתוך מספרים עוקבים
    • מתוך מספרים ממוינים, אבל לא בהכרח עוקבים

    (עוד שאלה, האם אפשר לזהות אם המספרים עוקבים או לא? ספויילר... כן, בקלות)

    הנה פתרון לחלק הראשון (מספרים עוקבים) ב-JS:

    function makeRand (max) {
      return Math.floor(Math.random() * max)
    }
    
    function makeRange (start, length) {
      const ret = []
      for (i = 0; i < length; i++) {
        ret.push(start + i)
      }
      return ret;
    }
    
    function makeBitmask(width) {
      return width && -1 >>> 32 - width;
    }
    
    const KEY = makeRand(1000)
    
    const nums = makeRange(makeRand(1000), 60)
    
    // console.log('Numbers:', nums)
    
    function extractXORKeySeq (numList) {
      let bestDiff, bestIndex
      bestDiff = bestIndex = -1
       
      for (let i = 1; i < numList.length; i++) {
        const diff = numList[i] ^ numList[i-1]
        if (diff & (diff + 1)) {
          throw new Error('Numbers are not sequential!')
        }
        if (diff > bestDiff) {
          bestDiff = diff
          bestIndex = i
        }
      }
       
      const previous = numList[bestIndex - 1]
      const extractLen = bestDiff.toString(2).length
      const keyBits = bestDiff ^ (previous ^ (1 << (extractLen - 1))) & makeBitmask(extractLen)
    
      return [extractLen, keyBits]
    }
    
    const [len, bits] = extractXORKeySeq(nums.map(i => i ^ KEY))
    
    console.log(`Extracted last ${len} bits of the key: ${bits.toString(2).padStart(len, '0')}`)
    console.log(`Real key is: ${KEY} (${KEY.toString(2)})`)
    // console.log(`numList after decryption: ${nums.map(i => i ^ KEY).map(i => i ^ bits)}`)
    console.assert(KEY.toString(2).padStart(32, '0').endsWith(bits.toString(2).padStart(len, '0')))
    

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

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

    עדכון: הקוד תוקן סופית. זה אמור להיות מושלם עכשיו


  • אם ה' לא ישמור שרת...
    yossizY yossiz

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

    מישהו באמת צריך ליצור מילון של מונחים מפציצים לדברים רגילים לגמרי
    למשל:

    firewall = advanced perimeter defense mechanism

    נו, מישהו מתנדב למשימה?


  • איזה ספרייה/פריימוורק (מה זה בכלל, בעצם?...) מומלץ ללמוד כיום?
    yossizY yossiz

    לגבי השוואה בין הפריימוורקים:

    אני מסכים לדברי @מוטי-אורן ש-VUE זה הכי קל.
    התרשמותי מהאחרים:

    • בריאקט יש יותר מכשולים, ויותר קשה להבין את המודל ולהשתמש בו בצורה נכונה.
    • אנגולר הוא הרבה יותר ממה שתיארתי למעלה. הוא נותן לך הכל, ויש לו דיעה איך לממש את הכל, מקליינט HTTP ועד לטסטים,
    • ב-angularjs לא לגעת למרות מה שדוד יטען.

    @צדיק-תמים אמר באיזה ספרייה/פריימוורק (מה זה בכלל, בעצם?...) מומלץ ללמוד כיום?:

    בכלל אמר לי (בפרטי) ללכת על NPM

    הדברים לא מובנים (אולי הוצאו חוץ מהקשרם). NPM לא מקביל בכלל לריאקט ויו ואנגולר. זה מטפל בנושא אחר לגמרי.

    לגבי תיעוד בעברית, זה באמת בעיה, אני מצטער, אבל אין לי כל כך איך לעזור...


  • nodeBB | בעקבות השדרוג ל v1.19.0 - תקלה בכניסה לצאט.
    yossizY yossiz

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

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


  • החלפת הקלדה לעברית.
    yossizY yossiz

    @רפאל נראה לי שהספרייה הנ"ל לא מעשית בשביל ר' @אבי-203 כי הוא כלוא בארגז החול של WIX (השי"ת יוצאנו מאפילה לאורה במהירה אכי"ר...)

  • 1
  • 2
  • 6
  • 7
  • 8
  • 9
  • 10
  • 254
  • 255
  • 8 / 255
  • התחברות

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

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