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

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

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

יוסף בן שמעון

@יוסף בן שמעון
אודות
פוסטים
965
נושאים
99
שיתופים
0
קבוצות
0
עוקבים
5
עוקב אחרי
0

פוסטים

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

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

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

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

    תכנות

  • FTP באחסון אתרים הוסטינגר
    י יוסף בן שמעון

    בדקת את זה?
    https://wiki.netfree.link/wiki/תקלות_ופתרונן#.D7.AA.D7.95.D7.9B.D7.A0.D7.AA_FileZilla_.D7.9C.D7.90_.D7.9E.D7.A6.D7.9C.D7.99.D7.97.D7.94_.D7.9C.D7.94.D7.AA.D7.97.D7.91.D7.A8_.D7.9C-FTP

    אינטרנט

  • הדברים החשובים לריבוי שורות ב mySql | והאם seqelize אכן מתאים?
    י יוסף בן שמעון

    Sequlize זה סה"כ ממשק שממיר קוד לשאילתת SQL, הוא לא מחזיק שום דבר בזיכרון

    תכנות

  • שימוש יעיל ב AI
    י יוסף בן שמעון

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

    1. אני משתמש בדרך כלל ב chat GPT במודל 4o של openAI, וכשנגמר לי הטוקנים אני עובר ל claude 3.7 sonnet, אלו המודלים החינמיים שיש לי ניסיון חיובי איתם, הם בדרך כלל עונים לענין.
      אם יש מודלים אחרים טובים אשמח לשמוע.

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

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

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

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

    תכנות

  • האם Blazor הוא תקוות העתיד
    י יוסף בן שמעון

    @dovid כתב בהאם Blazor הוא תקוות העתיד:

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

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

    תכנות

  • האם Blazor הוא תקוות העתיד
    י יוסף בן שמעון

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

    תכנות

  • לתכנת דף PHP שיתחבר לקורא כרטיסים
    י יוסף בן שמעון

    יש איזו תכונה ניסיונית שיכולה לעזור
    https://developer.mozilla.org/en-US/docs/Web/API/USB/requestDevice

    אינטרנט

  • Rclone - לא לכלול שם תיקיה בכל מקום בעץ
    י יוסף בן שמעון

    נראה שזה הפיתרון

    rclone ls "D:\projects"  ^
        --filter="- /**/node_modules/"  ^
        --filter "+ *.yml" --filter "+ *.conf"  --filter "+ *.sh" --filter "+ *.yaml"   --filter "+ *Dockerfile"  --filter "- *" 
    
    תכנות

  • Rclone - לא לכלול שם תיקיה בכל מקום בעץ
    י יוסף בן שמעון
    projects\
    │
    ├── project1\
    │   ├── src\
    │   │   ├── index.js
    │   │   └── config.yml
    │   ├── node_modules\
    │   │   ├── module1\
    │   │   │   ├── index.js
    │   │   │   └── package.json
    │   │   └── module2\
    │   │       ├── lib\
    │   │       │   └── helper.js
    │   │       └── package.json
    │   └── package.json
    │
    ├── project2\
    │   ├── app\
    │   │   ├── main.js
    │   │   └── config.yml
    │   ├── node_modules\
    │   │   ├── module3\
    │   │   │   ├── index.js
    │   │   │   └── package.json
    │   │   └── module4\
    │   │       ├── src\
    │   │       │   └── util.js
    │   │       └── package.json
    │   └── docker-compose.yml
    

    אני רוצה לגבות את כל קבצי js yml
    בתנאי שהם לא בתוך node_modules

    ניסיתי משהו כזה

    rclone ls "D:\projects"  --include "*.{js,yml}" --exclude "**/node_modules/**"
    

    אבל זה עדיין מדפיס קבצים מתוך התתי תיקיות של node_modules

    מה הפיתרון?

    תכנות

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

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

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

    צ"ע... 9095fa0c-639c-45d4-81c7-7d2a9672f1a9-image.png

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

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

    כדאי ללמוד איך להעזר בה, היא עוזרת בהמון תחומים.

    לדוגמא, לשאלת @THMV , אם הייתי צריך להגיע לפיתרון בלי לדעת לכתוב קוד, הייתי שואל כך:

    אין לי ידע בתכנות, אני רוצה קוד פשוט שיקרא לי הזנות RSS ויביא לי רק מה שלא קראתי, אבל שיהיה לי פשוט להריץ את הקוד בדפדפן או משהו דומה

    וזה מה שהיא עונה:

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

    איך זה עובד:

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

    דוגמת קוד JavaScript:

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

    <!DOCTYPE html>
    <html lang="he">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>RSS Reader</title>
        <script>
            async function fetchRSS() {
                const rssUrl = 'https://rss.example.com/feed'; // הכנס כאן את ה-URL של ה-RSS שלך
                try {
                    const response = await fetch(rssUrl);
                    const text = await response.text();
                    const parser = new DOMParser();
                    const xmlDoc = parser.parseFromString(text, "application/xml");
                    
                    const items = xmlDoc.querySelectorAll("item");
                    const unreadItems = [];
    
                    items.forEach(item => {
                        const title = item.querySelector("title").textContent;
                        const link = item.querySelector("link").textContent;
    
                        // בודק אם קראת את הפריט הזה (ניתן לשפר זאת על ידי שמירה בלוקלסטורג' או בעוגיות)
                        const readItems = JSON.parse(localStorage.getItem('readItems') || '[]');
                        if (!readItems.includes(link)) {
                            unreadItems.push({ title, link });
                        }
                    });
    
                    // הצגת הפריטים שלא קראת
                    displayUnreadItems(unreadItems);
                } catch (error) {
                    console.error('Error fetching RSS feed:', error);
                }
            }
    
            function displayUnreadItems(items) {
                const list = document.getElementById("unreadItems");
                list.innerHTML = ''; // לנקות את התצוגה הישנה
                items.forEach(item => {
                    const listItem = document.createElement("li");
                    listItem.innerHTML = `<a href="${item.link}" target="_blank">${item.title}</a>`;
                    list.appendChild(listItem);
                });
            }
    
            // פונקציה לסימון פריט כנקרא
            function markAsRead(link) {
                const readItems = JSON.parse(localStorage.getItem('readItems') || '[]');
                if (!readItems.includes(link)) {
                    readItems.push(link);
                    localStorage.setItem('readItems', JSON.stringify(readItems));
                }
            }
    
            window.onload = fetchRSS;
        </script>
    </head>
    <body>
        <h1>RSS Reader - פריטים שלא קראת</h1>
        <ul id="unreadItems">
            <!-- כאן יופיעו הפריטים שלא קראת -->
        </ul>
    </body>
    </html>
    

    הסבר על הקוד:

    1. fetchRSS() - פונקציה זו טוענת את הזנת ה-RSS מהכתובת שציינת, מפענחת את ה-XML, ומסננת את הפריטים שלא קראת.
    2. displayUnreadItems() - מציגה את רשימת הפריטים שלא קראת בדף.
    3. markAsRead() - אם תלחץ על אחד מהקישורים, תוכל לסמן אותו כנקרא (באמצעות אחסון בלוקלסטורג').
    4. localStorage - הקוד משתמש ב-localStorage כדי לשמור את רשימת הפריטים שקראת, כך שהדפדפן יזכור את המידע גם אחרי טעינה מחדש של הדף.

    איך להריץ את הקוד:

    1. פתח את דפדפן האינטרנט שלך.
    2. פתח כלי מפתחים על ידי לחיצה על F12 או קליק ימני על הדף ובחירת "Inspect".
    3. בחר בלשונית "Console".
    4. הדבק את הקוד בתיבת הקונסול ולחץ Enter.
    5. הקוד יטעין את הזנת ה-RSS ויציג את הפריטים שלא קראת.

    הערות:

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

    אם יש לך שאלות נוספות או אם אתה רוצה להוסיף פונקציות נוספות, אני כאן לעזור!

    אינטרנט

  • דרייבר של קורא כרטיסים קרס אחרי עדכון וינדוס
    י יוסף בן שמעון

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

    הלינק מוביל לכאן

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

    c157f9be-b074-4106-af36-7bccdfef80af-image.png

    חומרה

  • ממשק גרירה תומר עברית (rtl)
    י יוסף בן שמעון

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

        onDragStart(event: any, data: any) {
            event.dataTransfer.setData('id', data.id);
        }
        onDragLeave(event: any) {
            event.path[0].id = ""
        }
        onDragEnter(event: any) {
            event.path[0].id = "on-drag"
        }
        allowDrop(event: any) {
            event.preventDefault();
        }
        onDrop(event: any, target: any) {
            event.path[0].id = ""
            let movedId = event.dataTransfer.getData('id');
            event.preventDefault();
            let oldIndex = this.plstService.activeList?.items?.findIndex(item => item.id == movedId);
            let newIndex = this.plstService.activeList?.items?.findIndex(item => item.id == target.id);
            // console.log("newIndex", newIndex, "oldIndex", oldIndex)
            if (oldIndex! > newIndex!) ++newIndex!;
            console.log("newIndex", newIndex, "oldIndex", oldIndex)
            if (oldIndex == newIndex) return;
            this.arrayMove(this.plstService.activeList?.items, oldIndex, newIndex)
            this.plstService.storeLists()
        }
        arrayMove(arr: any, oldIndex: any, newIndex: any) {
            arr.splice(newIndex, 0, arr.splice(oldIndex, 1)[0]);
        };
    
    
    
    .drag{
        cursor: move;
        /* height: 20px;
        background: #5f5f5f;
        width: 97%; */
    }
    .drop{
        position: absolute;
        left: 0;
        top: 0;
        z-index: 8;
        height: 78%;
        width: 10px;
    }
    .drop#on-drag{
        background-color: #ffffff;
        box-shadow: 0 0 10px 3px #fff;
    }
    
            <div class="item-container">
                <div class="item" *ngFor="let item of plstService.activeList.items">
                    <div class="drag" draggable="true" (dragstart)="onDragStart($event, item)">
                        <i class="fas fa-arrows-alt"></i>
                    </div>
                    <a>{{item.title}}</a>
                    <div class="drop" (drop)="onDrop($event, item)" (dragover)="allowDrop($event)" (dragenter)="onDragEnter($event)" (dragleave)="onDragLeave($event)">
                    </div>
    
                </div>
            </div>
    
    
    תכנות

  • ממשק ניהול חינמי לשרת לינוקס
    י יוסף בן שמעון

    @zvinissim כתב בממשק ניהול חינמי לשרת לינוקס:

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

    נראה שהפונקציונליות שלה לא מגיע לרבע מ aapanel
    האם יש בה מעלות שאין ב aapanel?

    תכנות

  • ממשק ניהול חינמי לשרת לינוקס
    י יוסף בן שמעון

    @חגי זה בערך כמו שתאמר לא לעלות על מטוס הרקולס...
    זו לא עבודה זרה, זו מיתולוגיה עתיקה שאבד עליה הכלח

    תכנות

  • ממשק ניהול חינמי לשרת לינוקס
    י יוסף בן שמעון

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

    תכנות

  • אסטריסק מתקשר עם שרת AGI
    י יוסף בן שמעון

    מכונת דוקר 1 - מרכזיה של אסטריסק שמקבלת שיחות, ומעבירה את הניהול של השיחות לשרת AGI שיושב במכונת דוקר 2.
    השרת AGI זו בעצם אפליקצית ווב גדולה, עם שרת API של נוד, ובנוסף הוא מחזיק גם שרת AGI לנהל את השיחות, לקבל את ההקשות של המשתמש, לתשאל את המסד, ולעדכן על בחירות של המתקשר ועל שעת סיום שיחה, כל הנתונים נשלפים ונשמרים מול המסד המרכזי של האפליקציה.
    מטבע הדברים השרת דורש עדכונים מפעם לפעם, וזה דורש הפעלה מחדש של האפליקצית נוד.
    דא עקא, שהפעלה מחדש מפילה את ה AGI, והשיחות הפעילות נופלות.
    עד עכשיו לפני שהייתי עושה עדכון הייתי נכנס לאסטריסק, ומבקש core show channels ורק כשאני רואה שהרשימה ריקה ואין שיחות פעילות אני מרסטרט את השרת
    אבל זו דרך מסורבלת מידי, אני מאמין שיש דרך לעשות איזה סקריפט חיצוני שיבדוק אם יש שיחות פעילות, ואם לא שיתן הוראה לשרת להפעיל את עצמו מחדש
    האם אכן יש דרך כזו?

    תכנות

  • אובנטו 22.04 לא מצליח להתקין GMP
    י יוסף בן שמעון

    נהוג להוציא עלוני סיכומה של שנה, אז חשבתי לכתוב איזו ברכה מליצית ל @yossiz על העובדה שהוא אף פעם לא מרפה, וגם אחרי שהוא עונה בפורום הוא ממשיך להיות זמין בפרטי ולהמשיך את שרשרת התקלות עד לסיום המוצלח
    אבל מעיינות המליצות יבשו כנחל אכזב וכנהר אשר יכזבו מימיו
    פניתי למכונה האדישה, וגם היא איכזבה כמובן...
    https://chatgpt.com/share/66f9af49-a850-800d-a6ce-e74f6f607a79

    אמרתי אין הדבר תלוי אלא בי, הנחתי ראשי בין ברכי ובירכתי את @yossiz בברכת הדיוט שיזכה לשנה טובה ומבורכת, שיתמלאו כל משאלות ליבו לטובה וימשיך להועיל לקהילה מהידע העצום שלו והלב הענק שלו!

    תכנות

  • אובנטו 22.04 לא מצליח להתקין GMP
    י יוסף בן שמעון

    PHP 7.4
    אני צריך GMP בשביל הודעות פוש.

    php --ini פולט שגיאה

    PHP Warning:  PHP Startup: Unable to load dynamic library 'php_gmp.so' (tried: /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/php_gmp.so (/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/php_gmp.so: cannot open shared object file: No such file or directory), /www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/php_gmp.so.so (/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/php_gmp.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
    
    

    הרצתי apt-get install libgmp3-dev apt install libgmp-dev
    ועבר בהצלחה
    אבל apt-get install php7.4-gmp מחזיר שגיאה

    E: Unable to locate package php7.4-gmp
    E: Couldn't find any package by glob 'php7.4-gmp'
    E: Couldn't find any package by regex 'php7.4-gmp'
    

    phpinfo מראה כך
    7797a454-824c-454d-b716-31faa1292728-image.png

    ובפועל אין תמיכה ב GMP
    מה ניתן לעשות?

    תכנות

  • למה האפריקאים שחורים
    י יוסף בן שמעון

    @צבי-ש כתב בלמה האפריקאים שחורים:

    ראה עוד
    https://en.wikipedia.org/wiki/Sodium/potassium/calcium_exchanger_5

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

    גומלין - כללי

  • למה האפריקאים שחורים
    י יוסף בן שמעון

    @סקרן-0 כתב בלמה האפריקאים שחורים:

    כי תכונות נרכשות הופכות במהלך הזמן גם למטען גנטי

    אם זה כמו שאתה אומר אז תשובתך ברורה ונכוחה, אבל כיום אוחזים שתכונות נרכשות לא משפיעות על רצף ה DNA, ולכן אני שואל איך באמת הפיגמנטציה עוברת בירושה

    גומלין - כללי
  • 1 / 1
  • התחברות

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

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