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

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

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

קומפיונט

@קומפיונט
אודות
פוסטים
284
נושאים
22
שיתופים
0
קבוצות
0
עוקבים
2
עוקב אחרי
6

פוסטים

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

  • אבטחת חשבונות
    קומפיונטק קומפיונט

    @n123456 כתב באבטחת חשבונות:

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

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

    רשתות

  • סקיצה איך ליישם Theming ב- wpf בצורה קלה ונוחה
    קומפיונטק קומפיונט

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

    אם אתה רוצה לראות סתם גלריית theme שבנויה עם avalonia, תוריד את זה: (צריך להיות מחובר לחשבון GitHub)
    https://github.com/kikipoulet/SukiUI/actions/runs/12388950546/artifacts/2336318341

    תכנות

  • סקיצה איך ליישם Theming ב- wpf בצורה קלה ונוחה
    קומפיונטק קומפיונט

    @pcinfogmach כתב בסקיצה איך ליישם Theming ב- wpf בצורה קלה ונוחה:

    אם כבר אנחנו מדברים על spinoff של wpf מה אתה אומר על uno? לא ניסיתי את זה מעניין לשמוע ממישהו שכן ניסה אם יש?

    לא התנסתי ב- uno, אבל נדמה לי שזה שילוב פלטפורמות קיימות של microsoft לבסיס אחד, זה לא באמת ממשק משתמש שנכתב מאפס, יש גם את maui. אני חושב ש - avalonia מתמקדת יותר בפיתוח desktop חוצה פלטפורמות, ופחות ל - mobile (כיום יש תמיכה רחבה גם ל - mobile אבל בעבר זו לא היה יציב)

    סתם ככה היה לי הרגשה של "כמעט" כשהתעסקתי עם avalonia לא באתי ללכלך אבל מסקרן אותי כמה ההרגשה הזו אישית והאם יש בה ממש.

    אני כיום מפתח עבור desktop רק עם avalonia בלי מחשבה לחזור אי פעם ל wpf.

    תכנות

  • סקיצה איך ליישם Theming ב- wpf בצורה קלה ונוחה
    קומפיונטק קומפיונט

    @pcinfogmach כתב בסקיצה איך ליישם Theming ב- wpf בצורה קלה ונוחה:

    מכיוון שהצורך שלי היה ב-Dark Mode, יצרתי קוד שמזהה באופן אוטומטי אם המערכת מוגדרת ל-Dark Theme.
    בנוסף, הוספתי כפתור שמאפשר מעבר בין Dark Mode ל-Light Mode.

    אגב, על AvaloniaUI שמעת? אם לא, אני ממליץ לך בחום להגר לשם (זה מאוד קל למפתחי wpf), חוץ מזה שזה חוצה פלטפורמות ועוד המון פיצ'רים, יש שם גם dark-mode שמובנה ומזוהה אוטומטית בהתאם להגדרות המחשב.

    תכנות

  • GitHub Copilot עכשיו בחינם
    קומפיונטק קומפיונט

    ואגב, למי שלא אוהב לשתף קטעי קוד שלו עם GitHub, מומלץ לבטל את הסימון באפשרות: 'Allow GitHub to use my code snippets from the code editor for product improvements', בעמוד ההגדרות.

    תכנות

  • GitHub Copilot עכשיו בחינם
    קומפיונטק קומפיונט

    GitHub מכריזה ש - Copilot זמין כעת בחינם עבור כל המשתמשים. זה כנראה מגיע כהמשך לשדרוג Copilot והוספת המודלים החדשים OpenAI o1 ו - Gemini 1.5 Pro. המודלים שזמינים כעת בחינם הם OpenAI GPT o4 ו - Claude 3.5 Sonnet, עם מגבלה של 2000 השלמות קוד ו - 50 הודעות chat בחודש.

    להמשך קריאה:
    https://github.blog/changelog/2024-12-18-announcing-github-copilot-free/

    תכנות

  • Debugging על ViewModel ב-WPF
    קומפיונטק קומפיונט

    @yossiz גם אני נתקל בבעיות האלו, ולפעמים אפילו התוכנה נסגרת מבלי לציין שום exception, קשה לשחזר את זה כי זה קורה רק בפרויקטים גדולים עם קוד אסינכרוני, לדוגמא יש לי Task.Run שבתוכו יש try/catch שהוא נקרא ממתודה אסינכרונית אחרת שגם היא עוטפת אותו ב - try/catch, ואז עם כל הבלגן הזה פתאום נופלת לך שגיאה במקום לא ברור. בפרויקטים קטנים זה פשוט לא קורה.

    לפעמים אפילו vs מציב לי את השגיאה בפונקציה שמריצה את ה thread הראשי באתחול האפליקציה.

    תכנות

  • שימוש נכון ב-await Task.Run ב-C#
    קומפיונטק קומפיונט

    @dovid כתב בשימוש נכון ב-await Task.Run ב-C#:

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

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

    יש שני סיבות למה להשתמש בכלל בTask:
    א. לומר לתוכנה שהיא לא צריכה הרגע לחכות לתוצאה, אלא לכשתגיע נדבר.
    ב. לנצל את ריבוי המעבדים.

    הייתי מגדיר את זה טיפה שונה: המטרה העיקרית של Task ו - async/await היא לא לחסום את ה - thread הראשי. המושג הכללי multi-threading נועד גם בין היתר לנצל את ריבוי המעבדים.

    תכנות

  • שימוש נכון ב-await Task.Run ב-C#
    קומפיונטק קומפיונט

    @dovid כתב בשימוש נכון ב-await Task.Run ב-C#:

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

    לכאורה הוא השתמש בשיטה שלו כדי למנוע את טעינת יתר השורות לזכרון.

    עריכה: אני לא צודק, שימוש ב - ReadLinesAsync לא יטען את שאר השורות.

    תכנות

  • שימוש נכון ב-await Task.Run ב-C#
    קומפיונטק קומפיונט

    @pcinfogmach כתב בשימוש נכון ב-await Task.Run ב-C#:

    כמו"כ קראתי כמה פעמים על משהו שנקרא תנאי תחרות (Race Condition) כשמשתמשים ב-Multithreading - אני חייב לומר שלא בדיוק הבנתי את הנושא.

    קח את הקוד הבא:

    var count = 0;
    
    void Increment()
    {
        for (var i = 0; i < 1_000_000; i++)
        {
            count++;
        }
    }
    
    var task1 = Task.Run(Increment);
    var task2 = Task.Run(Increment);
    
    await Task.WhenAll([task1, task2]);
    
    Console.WriteLine(count);
    

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

    הסיבה לזה טמונה לדרך הפעולות של המעבד. הקוד ++count נראה פשוט אבל מורכב מכמה פעולות:
    א. קריאת הערך של count
    ב. חישוב הערך החדש
    ג. כתיבת הערך החדש ל - count

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

    אם תשנה את שורה 7 לזה:

    Interlocked.Increment(ref count);
    

    או לזה:

    lock(...)
    {
        count++;
    }
    

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

    אני יודע שזה מסובך אבל ניסיתי להסביר כמה שהתאפשר לי.

    תכנות

  • שימוש נכון ב-await Task.Run ב-C#
    קומפיונטק קומפיונט

    @pcinfogmach כתב בשימוש נכון ב-await Task.Run ב-C#:

    מהם ההדרכות לכתיבת קוד אסינכרוני ב-C# וממה יש להיזהר?

    זה נושא מורכב שהרבה מסתבכים איתו ועושים טעויות, אני ממליץ לך לעבור על המסמך AsyncGuidance שהתודעתי אליו בעבר מהפורום.

    תכנות

  • Debugging על ViewModel ב-WPF
    קומפיונטק קומפיונט

    @pcinfogmach כתב בDebugging על ViewModel ב-WPF:

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

    תנסה לעקוב בחלונית ה - call stack אחרי המקום בקוד שלך שבו החריג נזרק.

    תכנות

  • Debugging על ViewModel ב-WPF
    קומפיונטק קומפיונט

    @pcinfogmach כתב בDebugging על ViewModel ב-WPF:

    ובפרט מה בדיוק עושה מה ש@Mordechai-0 אמר Enable Just my code

    האופציה הזאת מאפשרת לדבג קוד חיצוני שאינו חלק מהפרוייקט שלך, לצורך הדוגמא: אם הכנסת break point באיזשהו מקום בקוד ואתה מתקדם שורה שורה עם F10 או F11, אז אם Enable Just my code מופעל F11 לא יכנס לפונציות שהם לא בקוד שלך, אם הוא מבוטל זה יכנס גם לקוד שהוא ממקור חיצוני באמצעות דה-קומפלציה (או source link).

    בקשר ל-default, זכור לי שזה השתנה בין הגרסאות של visual studio.

    תכנות

  • מדריך: איך לייצר לוקליזציה ב-wpf בצורה פשוטה וקלילה
    קומפיונטק קומפיונט

    @pcinfogmach כתב במדריך: איך לייצר לוקליזציה ב-wpf בצורה פשוטה וקלילה:

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

    הפתרון הוא לכתוב ספרייה משותפת שמאגדת את כל הבסיס לפרויקטים שלך, לדוגמא: classים בסיסיים של ViewModel (או reference לספריית MVVM כלשהיא), Localization, Theme, DI וכל מה שאתה משתמש

    בכל פרויקט חדש אתה פשוט מוסיף reference לספרייה המשותפת (ואולי עוד כמה שורות קוד), וככה חסכת הרבה זמן בהקמה של הפרויקט

    תכנות

  • מדריך: איך לייצר לוקליזציה ב-wpf בצורה פשוטה וקלילה
    קומפיונטק קומפיונט

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

    תכנות

  • קוד ללכידת מסך ב-C# WPF
    קומפיונטק קומפיונט

    זה ככל הנראה קשור לקנה מידה של המסך, כדי לאמת את זה אתה יכול לשנות בהגדרות מסך את הקנה מידה ל - 100% ולבדוק האם אחרי זה החיתוך מתבצע טוב.

    תוכנה

  • TypeScript - קימפול מספר קבצים לקובץ אחד
    קומפיונטק קומפיונט

    הצלחתי בסוף להגדיר את rollup, והתוצאה נראית הרבה יותר טוב.
    זה דוגמא לקובץ סופי (שמורכב משני קבצי ts) עם- rollup:

    function showMessage(message) {
      alert(message);
    }
    
    showMessage("hello");
    

    וככה הוא נראה עם - webpack:

    /******/ (function() { // webpackBootstrap
    /******/ 	"use strict";
    /******/ 	var __webpack_modules__ = ({
    
    /***/ 420:
    /***/ (function(__unused_webpack_module, exports) {
    
    
    
    exports.__esModule = true;
    exports.showMessage = showMessage;
    function showMessage(message) {
      alert(message);
    }
    
    /***/ })
    
    /******/ 	});
    /************************************************************************/
    /******/ 	// The module cache
    /******/ 	var __webpack_module_cache__ = {};
    /******/ 	
    /******/ 	// The require function
    /******/ 	function __webpack_require__(moduleId) {
    /******/ 		// Check if module is in cache
    /******/ 		var cachedModule = __webpack_module_cache__[moduleId];
    /******/ 		if (cachedModule !== undefined) {
    /******/ 			return cachedModule.exports;
    /******/ 		}
    /******/ 		// Create a new module (and put it into the cache)
    /******/ 		var module = __webpack_module_cache__[moduleId] = {
    /******/ 			// no module.id needed
    /******/ 			// no module.loaded needed
    /******/ 			exports: {}
    /******/ 		};
    /******/ 	
    /******/ 		// Execute the module function
    /******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
    /******/ 	
    /******/ 		// Return the exports of the module
    /******/ 		return module.exports;
    /******/ 	}
    /******/ 	
    /************************************************************************/
    var __webpack_exports__ = {};
    
    
    var _dialogs = __webpack_require__(420);
    (0, _dialogs.showMessage)("hello");
    /******/ })()
    ;
    

    זה הקונפיגורציה המינימאלית של rollup:

    import typescript from '@rollup/plugin-typescript';
    import babel from '@rollup/plugin-babel';
    
    export default {
        input: 'src/index.ts',
        output: {
            file: 'dist/drop-word-script.js'
        },
        plugins: [
            typescript(),
            babel({
                babelHelpers: 'bundled',
                presets: [
                    ['@babel/preset-env']
                ],
                extensions: ['.js', '.ts']
            })
        ],
    };
    
    תכנות

  • TypeScript - קימפול מספר קבצים לקובץ אחד
    קומפיונטק קומפיונט

    @yossiz כתב בTypeScript - קימפול מספר קבצים לקובץ אחד:

    יש גם דגל של TS שאומר לארוז את כל הקבצים לקובץ אחד
    אולי זה יספיק פה
    https://www.typescriptlang.org/tsconfig/#outFile

    ניסיתי את זה, אבל אני רואה שהמינימום האפשרי ב tsc זה es5, ו - extend script זה es3,
    אז אני מבין שצריך להשתמש ב rollup או esbuild עם פלאגינים שמשלבים babel ו - typescript, אם יש למשהו דוגמת קוד לקונפיגורציה זה יעזור לי.

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

    תכנות

  • TypeScript - קימפול מספר קבצים לקובץ אחד
    קומפיונטק קומפיונט

    לבסוף מצאתי איזה ריפו ישן ב - GitHub שעל פיו הוספתי את הקבצים הבאים:

    // webpack.config.js
    
    const path = require("path");
    
    module.exports = {
        entry: "./src/index",
        mode: "production",
        output: {
            globalObject: "this",
            path: path.resolve(__dirname, "dist"),
            filename: "drop-word-script.js",
        },
        module: {
            rules: [
                {
                    test: /\.(ts|js)$/,
                    loader: "babel-loader",
                    options: {
                        presets: [["@babel/preset-env", { loose: true, modules: "commonjs" }], "@babel/preset-typescript"],
                    },
                },
            ],
        },
        resolve: {
            extensions: ['.ts', '.js'],
        },
        optimization: {
            minimize: false, // minification may produce syntax errors because ExtendScript does not support nested ternary operators without parentheses
        },
        target: "browserslist",
    };
    
    // tsconfig.json
    
    {
      "compilerOptions": {
        "target": "ES6",
        "module": "CommonJS",
        "moduleResolution": "Node",
        "noEmit": true,
        "skipLibCheck": true,
        "types": [
          "types-for-adobe/InDesign/2021"
        ]
      },
    }
    
    // package.json
    
    {
      "name": "drop-word-script",
      "version": "1.0.0",
      "main": "dist/drop-word-script.js",
      "scripts": {
        "build": "npm run check-types && npm run build:bundle",
        "build:bundle": "webpack",
        "build:compile": "npx jsxbin -i dist/drop-word-script.js -o dist/drop-word-script.jsxbin",
        "check-types": "tsc --noEmit"
      },
      "keywords": [],
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "@babel/core": "^7.25.2",
        "@babel/preset-env": "^7.25.4",
        "@babel/preset-typescript": "^7.24.7",
        "babel-loader": "9.1.3",
        "jsxbin": "^2.2.0",
        "types-for-adobe": "^7.2.1",
        "typescript": "^5.6.2",
        "webpack": "^5.94.0",
        "webpack-cli": "^5.1.4"
      }
    }
    
    // .browserslistrc
    
    ie 6
    

    אשמח לשמוע אם יש מקום לשיפור

    תכנות

  • TypeScript - קימפול מספר קבצים לקובץ אחד
    קומפיונטק קומפיונט

    אני כותב סקריפט לאינדזיין בעזרת types-for-adobe ואני מעוניין לפצל את הקוד לכמה קבצי ts. שונים וש - tsc יקמפל את כל הקבצים לקובץ אחד, האם זה אפשרי?
    זה קובץ ה - tsconfig.json

    {
      "compilerOptions": {
        "module": "none",
        "noLib": true
      }
    }
    

    השגיאה שאני מקבל כרגע היא:

    error TS1148: Cannot use imports, exports, or module augmentations when '--module' is 'none'
    
    תכנות
  • 1 / 1
  • התחברות

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

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