رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

تمامی فعالیت ها

این جریان به طور خودکار بروزرسانی می شود     

  1. دیروز
  2. xarion

    کانکشن هاتون مشکل داره راه درستی رو انتخاب نکردین واسه حل مشکل. اگر چیزی داره تغییر می کنه یک بار باید سیگنالش ارسال بشه
  3. هفته گذشته
  4. کامبیز اسدزاده

    پیشنهاد من این هست که شما باید platform tools ها رو هم نصب کنید، هر موردی که برای API 25 هستش رو دریافت و نصب بفرمایید. Android SDK Build Tools 25.0 - 25.0.3 SDK Platform 25.0 Google Apis arm Eabi v7a system image نیازی نیست تیک همه چیز رو بزنید، موارد بالا مهمترینشون هستند تا بتونید از api 25 استفاده کنید. دقت کنید که پایینتر از ۲۱ ارزشی نداره و منسوخ شده به حساب میاد.
  5. mostafajamali

    ببینید من با اس دی کا منیجر اندروید استودیو کلی اس دی کا هارو آپدیت کردم نزدیک چن گیگ همه اررورا رفع شده جز اررور platform sdk installed هرکاری کردم این درست نشد میشه دقیق بگین من چه بخش هایی از اس دی کارو بگیرم اخه تا الان کلی حجم نتم رفته و هنوز موفق به خروجی گیری نشدم
  6. نسخه‌ی نهایی ۴.۹ Qt Creator انتشار یافت. در زیر می‌توانید جزئیات این نسخه را مورد بررسی قرار دهید. Qt Creator version 4.9 contains bug fixes and new features. The most important changes are listed in this document. For a complete list of changes, see the Git log for the Qt Creator sources that you can check out from the public Git repository. For example: git clone git://code.qt.io/qt-creator/qt-creator.git git log --cherry-pick --pretty=oneline origin/4.8..v4.9.0 General * Added high-level introduction to Qt Creator's UI for first-time users (QTCREATORBUG-21585) * Added option to run external tools in build or run environment of active project (QTCREATORBUG-18394, QTCREATORBUG-19892) * Improved selection colors in dark themes (QTCREATORBUG-18888) * Added -temporarycleansettings (alias -tcs) command line option Editing * Language Client * Added support for document outline (QTCREATORBUG-21573) * Added support for `Find References to Symbol Under Cursor` (QTCREATORBUG-21577) * Added support for code actions * Highlighter * Replaced custom highlighting file parser with `KSyntaxHighlighting` (QTCREATORBUG-21029) * Made it possible to filter bookmarks by line and text content in Locator (QTCREATORBUG-21771) * Fixed document sort order after rename (QTCREATORBUG-21565) Help * Improved context help in case of code errors or diagnostics (QTCREATORBUG-15959, QTCREATORBUG-21686) * Improved lookup performance for context help All Projects * Added `Expand All` to context menu (QTCREATORBUG-17243) * Added `Close All Files in Project` action (QTCREATORBUG-15593) * Added closing of all files of a project when project is closed (QTCREATORBUG-15721) * Added display of command line parameters to `Application Output` (QTCREATORBUG-20577) * Fixed that dragging file from `Projects` view to desktop moved the file (QTCREATORBUG-14494) * Fixed regression with `QTC_EXTENSION` environment variable QMake Projects * Fixed that adding files did not respect alphabetic sorting and indentation with tabs (QTCREATORBUG-553, QTCREATORBUG-21807) * Fixed updating of `LD_LIBRARY_PATH` environment variable (QTCREATORBUG-21475) * Fixed updating of project tree in case of wildcards in corresponding QMake variable (QTCREATORBUG-21603) * Fixed issues with project tree when files are directly added to `RESOURCES` (QTCREATORBUG-20103) * Fixed that importing build unnecessarily created temporary kit (QTCREATORBUG-18153) CMake Projects * Fixed that default build directory names contained spaces (QTCREATORBUG-18442) * Fixed that build targets were reset on CMake parse error (QTCREATORBUG-21617) * Fixed scroll behavior when adding configuration item Qbs Projects * Fixed crash when switching kits (QTCREATORBUG-21544) Generic Projects * Added deployment via `QtCreatorDeployment.txt` file (QTCREATORBUG-19202) * Added setting C/C++ flags for the code model via `.cflags` and `.cxxflags` files (QTCREATORBUG-19668) * Fixed `Apply Filter` when editing file list (QTCREATORBUG-16237) Compilation Database Projects * Fixed that project tree was not updated when database changes on disk (QTCREATORBUG-21733) C++ Support * Added code snippet for range-based `for` loops * Added option to synchronize `Include Hierarchy` with current document (QTCREATORBUG-12022) * Clang Code Model * Added buttons for copying and ignoring diagnostics to tooltip * Fixed issue with high memory consumption (QTCREATORBUG-19543) * Fixed inconsistency between `Follow Symbol` and `Ctrl + Click` (QTCREATORBUG-21637) * Fixed that global completion was shown after comma (QTCREATORBUG-21624) * Clang Format * Added option to format code instead of only indenting code * Added `Open Used .clang-format Configuration File` to editor's context menu * Fixed indentation issue after empty line (QTCREATORBUG-22238) QML Support * Updated to parser from Qt 5.12, adding support for ECMAScript 7 (QTCREATORBUG-20341, QTCREATORBUG-21301) * Added Qt 5.13 as option to the wizards * Improved error handling in Qt Quick Application project template (QTBUG-39469) * Fixed crash on `Find Usages` Python * Added project templates for Qt for Python Nim Support * Added code completion based on `NimSuggest` Debugging * Added pretty printing of `QSizePolicy` * Fixed that debugger toolbar could force large minimum window size (QTCREATORBUG-21885) * Fixed restoring of debugger layout (QTCREATORBUG-21083) * Fixed pretty printing of standard maps and sets from `libc++` (QTCREATORBUG-18536) * GDB * Added support for rvalue references in function arguments * Fixed `Break on Abort` with GDB > 8.1 (QTBUG-73993) * LLDB * Fixed `Source Paths Mappings` functionality (QTCREATORBUG-17468) * QML * Fixed loading QML stack (QTCREATORBUG-22209) Clang Analyzer Tools * Made Clazy configuration options more fine grained (QTCREATORBUG-21120) * Improved Fix-its handling in case of selecting multiple diagnostics and after editing files * Added diagnostics from header files (QTCREATORBUG-21452) * Added sorting to result list (QTCREATORBUG-20660) * Fixed that files were analyzed that are not part of current build configuration (QTCREATORBUG-16016) Perf Profiler * Made Perf profiler integration opensource Qt Quick Designer * Made QML Live Preview integration opensource * Added support for `Dialog` (QTCREATORBUG-22120) * Fixed layout icons (QDS-538) * Fixed crash when creating item inside `TabView` tab (QTCREATORBUG-21542) Version Control Systems * Git * Improved messages when submit editor validation fails and when editor is closed * Added `Subversion` > `DCommit` * `Branches` View * Added `Push` action * Added entry for detached `HEAD` (QTCREATORBUG-21311) * Added tracking of external changes to `HEAD` (QTCREATORBUG-21089) * Subversion * Improved handling of commit errors (QTCREATORBUG-15227) * Perforce * Disabled by default * Fixed issue with setting P4 environment variables (QTCREATORBUG-18771) * Mercurial * Added side-by-side diff viewer (QTCREATORBUG-21124) Test Integration * Added `Uncheck All Filters` * Added grouping results by application (QTCREATORBUG-21740) * QTest * Added support for `BXPASS` and `BXFAIL` * Fixed parsing of `BFAIL` and `BPASS` FakeVim * Added option for blinking cursor (QTCREATORBUG-21613) * Added closing completion popups with `Ctrl+[` (QTCREATORBUG-21886) Model Editor * Added display of base class names Serial Terminal * Improved error message on connection failure Platform Specific Windows * Added support for MSVC 2019 * Changed toolchain detection to use `vswhere` by default, which is recommended by Microsoft * Fixed issue with UNC paths in `.pro` files (QTCREATORBUG-21881) * Fixed language version detections with MSVC and precompiled headers (QTCREATORBUG-21860) * Fixed submenu arrow styling (QTCREATORBUG-21376) Linux macOS * Added support for Touch Bar (QTCREATORBUG-21263) Android * Removed separate `QmakeAndroidSupport` plugin and merged functionality into other plugins * Fixed debugging for API level 22 (QTCREATORBUG-22098) Remote Linux * Removed use of Botan, exchanging it by use of separately installed OpenSSH tools (QTCREATORBUG-15744, QTCREATORBUG-15807, QTCREATORBUG-19306, QTCREATORBUG-20210) * Added support for `ssh-askpass` * Added optional deployment of public key for authentication to device setup wizard * Added support for X11 forwarding * Added `rsync` based deployment method * Added support for `Run in Terminal` * Added support for opening a remote terminal from device settings * Fixed incremental deployment when target directory is changed (QTCREATORBUG-21225) * Fixed issue with killing remote process (QTCREATORBUG-19941) Boot to Qt * Removed ADB-based Boot to Qt plugin that provided support for Boot to Qt versions 5.8, and earlier.
  7. سلام، من چند وقت است که می‌خواهم برنامه‌ی خود در C++ را آتوران کنم که هر وقت سیستم روشن شد برنامه‌ی من اجرا شود. چه طور می‌توانم این کار را انجام دهم؟
  8. فانوس

    سلام ممنونم. درست شد. مشکل اینجا بود که زمان خوندن کارت از دستگاه نمیدونم چرا ۵ بار دیتای کارت را برای این صفحه امیت میکرد. بار اول ذخیره می شد اما تا میخواست نشون بده دوباره متدش ران میشد و تو دفعات بعد نمیتونست متد درست کار کنه. اومدم گفتم اگر بار اول کارت را گرفتی و برای این ایدی ذخیره کردی حالا دوباره همین متد برای همین کارت و همین یوزر داره فراخوانی میشه return کن. حالا داره کار میکنه باقی کدها درست بود. ممنونم از وقتی که برام گذاشتید.
  9. سلام . لطفا اگر می شود آموزش درگ اند دراپ را بگذارید.

    ممنون!☺️😁😁

  10. کامبیز اسدزاده

    ببینید شما SDK رو که دانلود می‌کنید بعد از اون باید آنلاین مخازنش رو به‌روز رسانی کنید تا بتونید بدون مشکل برنامه‌ رو کامپایل کنید. این قضیه ربطی به Android Studio یا Qt Creator نداره، کلاً روالش همینه. بلو استک هم یک شبیه‌ساز اندروید هست ربطی به sdk و این مشکلات نداره.
  11. mostafajamali

    خب اگه منظورتون از نضب پکیج همون قسمتی از منوی نصب کیوته ک انتخاب میکنیم مواردو؟ من اندروید کامل نصب کردم اس دی کا و ان دی کاروهم جداگانه دانلود کردمو ادرس دادم دیگه خب چیو باید انلاین نصب کنم؟ چیزدیگه ای هم هست؟ راستش من قبلا بلواستکم نصب کرده بودم ولی حذفش کردم مشکلی ایجاد میکنه؟
  12. کامبیز اسدزاده

    سلام، شما باید بعد از مسیر‌دهی SDK اقدام به نصب پکیج‌ها به صورت آنلاین کنید. همچنین، برای این کار دقت کنید که باید وی‌-‌پی‌-ان وصل باشه. نکته: دقت کنید که نسخه‌ی NDK r18 رو همراه با SDK 26 داشته باشید.
  13. mostafajamali

    سلام من خواستم کیت اندروید نصب کنم اس دی کا و ان دی کا و جاوا 10 هم نصب کردم اما اررور زیرو دارم کسی میدونه مشکلش چیه؟ ممنون از کمکتون عکس اررور
  14. بهنام صباغی

    توی تابع ست کردن متغیر سیگنال تغییرش رو فراخوانی کردید ؟ نحوه ارسالتون به کیو ام ال به چه شکل هست ؟ از طرفی اگر کدتون همینی هست که ارسال کردید خب چرا توی تعریف errpan مستقیم برابر با ui.acptCard قرار ندادید ؟ توی تابع setacptCard(true); چرا به این صورت نیست ؟ setAcptCard(true);در کل اگر درست تعریف کرده باشید و سیگنال تغییر رو هم توی تابع ست کردن فراخوانی کرده باشید نباید مشکلی باشه. شاید لازم باشه توی یک پروژه ساده این کار رو انجام بدید و ببینید کار میکنه یا نه اگر کار نکرد که مشخصه روند رو دارید اشتباه میرید و میتونید کمی بیشتر مطالعه کنید تا مشکل حل بشه اما اگر کار کرد و روند با روند توی کد خودتون یکی بود شاید لازم باشه کد اصلی رو دید.
  15. kambiz behnia

    باسلام تقریبا مدت زیادی است که درگیر Socket programming و Thread هستم. و هر چند وقت یکبار سوالاتی را در مورد چگونگی استفاده از آنها در فروم های مختلف مطرح و تا حدودی پاسخ خود را یافته ام. با توجه به اینکه گذشت زمان سوالات و شرایط تغییر کرده و لذا خواستم سوالاتی از این دست را یکبار دیگر از ابتدا مطرح و جواب کاملی برای هر کدام داشته باشم. اگر چه امکان دارد جواب هرکدام از این سوالات بطور پراکنده و جداگانه در سایتهای مختلف موجود باشد. علاوه بر آن کمتر جایی یدم که این دو موضوع را با هم بررسی کرده باشند یا فقط به مبحث Thread پرداخته اند ویا فقط درباره Socket توضیح داده اند آن هم فقط در مورد بعضی از توابع مرتبط. حتما دوستان با ترتیب اجرای دستورات و نحوه ایجاد و مفهوم سوکتهای سمت سرور و کلاینت آشنا هستند و هفت نحوه استفاده از آنها نیست بلکه هدف این است اگر من بخواهم از این توابع در Thread های مختلف استفاده کنم آیا امکان پذیر است. آیا پاسخ های داده شده برای محیط Windows, Linux, ... هردو درست است علاوه بر کتابخانه های همراه کمپایلرها کتابخانه های دیگری نظیر Boost - Poco - ACE - Qt - ... هم کتابخانه ای برای کار با شبکه دارند وضعیت توابع مشابه در آنها چگونه است. سوالات رو از سمت سرور شروع میکنم. فرض لازم است سمت سرور 3 سوکت سروری داشته باشیم. SOCKET AcceptSock1; SOCKET AcceptSock2; SOCKET AcceptSock3; حال باید دستورات زیر اجرا شود int InitFunction(SOCKET &AcceptSock) { SOCKET AcceptSock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP); if (AcceptSock == INVALID_SOCKET) { printf("Function socket failed with error : %u\n", WSAGetLastError()); return 0; } int iTimeout = 500; BOOL option = TRUE; int iResult = setsockopt(AcceptSock, SOL_SOCKET, SO_RCVTIMEO, (char *)&iTimeout, sizeof(iTimeout)); if (iResult == SOCKET_ERROR) { printf("Function setsockopt failed with error: %u\n", WSAGetLastError()); return 0; } SOCKADDR_IN client_sin; SOCKADDR_IN local_sin; int iAddrSize = sizeof(client_sin); int iPort = 12345; // select the local interface, and bind to it local_sin.sin_addr.s_addr = htonl(INADDR_ANY); local_sin.sin_family = AF_INET; local_sin.sin_port = htons(iPort); if (bind(AcceptSock, (struct sockaddr *)&local_sin, sizeof(local_sin)) == SOCKET_ERROR) { printf("Function bind failed with error: %u\n", WSAGetLastError()); return 0; } if (listen(AcceptSock, 32) == SOCKET_ERROR) { printf("Function listen failed with error: %u\n", WSAGetLastError()); return 0; } } فانکشن بالا باید برای AcceptSock1 و AcceptSock2 و AcceptSock3 اجرا شود. با اجرای سه کد زیر. InitFunction(AcceptSock1); InitFunction(AcceptSock2); InitFunction(AcceptSock3); سوال آیا من میتوانم هرکدام از سه دستور بالا را در Thread های مختلف اجرا کنم ویا باید حتما در Thread main اجرا شود. برای پذیرش کلاینتهایی که درخواست اتصال دارند از تابع زیر استفاده میکنیم int ProcessFunction(SOCKET &AcceptSock) { fd_set fd; timeval tv; SOCKADDR_IN client_sin; int iAddrSize = sizeof(client_sin); while (true) { tv.tv_sec = 3; tv.tv_usec = 0; FD_ZERO(&fd); FD_SET(AcceptSock, &fd); int iResult = select(0, &fd, NULL, NULL, &tv); if (iResult == SOCKET_ERROR) { printf("Function select failed with error: %u\n", WSAGetLastError()); closesocket(AcceptSock); return 0; } if (iResult == 0) { continue; } SOCKET soc = accept(AcceptSock, (struct sockaddr *) &client_sin, &iAddrSize); if (soc == INVALID_SOCKET) { printf("Function accept failed with error: %u\n", WSAGetLastError()); continue; } //... Do } } که باید برای AcceptSock1 و AcceptSock2 و AcceptSock3 اجرا شود. با اجرای سه کد زیر. ProcessFunction(AcceptSock1); ProcessFunction(AcceptSock2); ProcessFunction(AcceptSock3); سوال سوال آیا من میتوانم هرکدام از سه دستور بالا را در Thread های مختلف اجرا کنم کلا لازم نیست هیچ گونه عملیات لاکی صورت گیرد. آیا من میتواند از AcceptSock1 در دو Thread مختلف استفاده کنم (پاسخ خیر است فقط میخواستم جواب در اینجا باشد). اگر استفاده کنم چه اتفاقی پیش میآید. فانکشن ()WSAGetLastError قطعا Threadsafe نیست ولی آیا توابع دیگری که کد خطا را بروز میکنند Threadsafe نیستند. برای خواندن و نوشتن اطلاعات از Socket پذیرش شده از توابع زیر استفاده می کنیم int SendMessageFunction (SOCKET sock, const char * msg, int len) { fd_set fd; timeval tv; tv.tv_sec = 0; tv.tv_usec = 0; FD_ZERO(&fd); FD_SET(sock, &fd); int iResult = select(0, NULL, &fd, NULL, &tv); if (iResult == SOCKET_ERROR) { printf("Function SendMessage failed with error: %u\n", WSAGetLastError()); return -1; } int rc = send(sock, (char *)msg, len, 0); if (rc != len) { return -1; } return 1; } int ReceiveMessageFunction(SOCKET sock, char * msg, int &len) { fd_set fd; timeval tv; tv.tv_sec = 0; tv.tv_usec = 0; FD_ZERO(&fd); FD_SET(sock, &fd); int i = select(0, &fd, NULL, NULL, &tv); if (i == SOCKET_ERROR) { printf("Function ReceiveMessage failed with error: %u\n", WSAGetLastError()); return -1; } else if (i == 0) { // no data on socket return 0; } // //... //len = ... //... int rc = recv(sock, (char *)msg, len, 0); // ... return 1; } آیا من میتوانم تاوابع بالا را در Threadهای مختلف استفاده کنم و یا خیر. آیا امکان خواندن از یک سوکت توسط دو Thread مختلف امکان پذیر است. نوشتن چطور آیا میتوان یک Thread از Socket بخواند و Thread دیگری در آن بنویسد. با توجه به این موضوع که در یکی از صفحات اینترنتی بیان شده بود که Boost برخلاف کتابخانه های دیگر Threadsafe است (اگرچه امروز هرچه گشتم دوباره آنرا پیدا نکردم) پاسخ با توجه به پلتفورم )Windows, Linux, ..) و کتابخانه مورد استفاده (پیشفرض کمپایلر - ACE - Poco - Boost Qt - ...) در نظر گرفته شود. متشکرم
  16. برنامم قرار کارت ار اف ایدی بخونه. و البته هم میخونه هر کارتی که کاربر بزنه. کد کارت را در دیتابیس چک میکنه و به کاربر پذیرش و یا عدم پذیرش کارت را اعلام میکنه مشکلم اینجاست که پروپرتی تعریف کردم که اگر کارت درست بود ستش کنه تورو اگر غلط بود فالس setacptCard(true); تو سمت کیو ام ال نوشتم : UsersCard { id:uc } Item { id: name Connections{ target: uc onAcptCardChanged: { console.log("======+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|"); errpan.visible=true; }} کدم کامل اجرا میشه اما این متد اصلا فایر نمیشه و اجرا نمیکنه: onAcptCardChanged: { console.log("======+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|+|"); errpan.visible=true;
  17. جدیدا
  18. کامبیز اسدزاده

    امروز با نصب Visual Studio 2019 Final Release متوجه شدم با اینکه تایید کرده بودن این مسئله به صورت کامل حل شده، اما باید بگیم هنوز این مشکل پابرجاست و نتیجش اشاره به ۱۹۹۷۱۱ داره، حتی با تنظیمات بر روی استاندارد ۱۷ و ۱۴ هم همین مشکل موجوده! جالب اینجاست با وجود امکان انتخاب آخرین پیش‌نویسه حتی یکی از ویژگی‌های موجود در نسخه‌ی 2a حتی برای آزمایش پشتیبانی نمی‌شه! به هر حال پیشنهاد این هست کامپایلر کلنگ رو بر روی محیط توسعه‌ی خود پیکربندی کنید تا با مشکلات این چنینی مواجه نشوید.
  19. بهنام صباغی

    با سلام از این دست مشکلات زیاد پیش میاد در حدی که بعد مدتی بدون فکر کردن وقتی مشکل براتون پیش میاد خودکار یک سری کار انجام میدید تا حلش کنید. ولی این دست مشکلات در برخی مواقع لایه به لایه هستند مثلا یک کار کوچیک در حد qmake میتونه مشکل اضافه کردن فایل جدید رو حل بکنه اما بعضی وقتها که تغییرات توی پروژه زیاده نیاز هست اول clean کنید پروژه رو اما بعضی وقتا این روش هم جواب نمیده مخصوصا وقتی یک فایل ui که مال مدتها پیش هست رو تغییر میدی مثلا یک ویجت پرموت شده به یک کلاس دیگه بعد این پرموت رو تغییر میدید در برخی مواقع نه با clean کردن حل میشه نه به با کیو میک نه حتی با rebuild باید فایل ui که توسط کیوت برای فرم ساخته شده رو پاک کنید مثلا برای MainWindow یک فایل با اسم ui_MainWindow درست میکنه که باید اون رو پاک کنید. هرکدوم از این موارد مدتها وقت قبلا ازم گرفته تا رفع شدند ولی شما حواستون باشه به همچین مشکلاتی خوردید راه حل‌های اینطوری داره و نیاز هم نیست همه رو انجام بدید مرحله به مرحله انجام بدید تا جایی که مشکلتون حل بشه چون مثلا qmake توی پروژه بزرگ زمان خیلی کمتری نسبت به clean کردن و دوباره بیلد کردن میگیره. موفق باشید.
  20. سید محمد عباسی

    سلام ۱.Build runqmake.۲
  21. کامبیز اسدزاده

    توجه داشته باشید که در چنین مواقعی یک بار qmake رو اجرا کنید، مشکل حل خواهد شد.
  22. با سلام، معمولاً مستنداتی که شرکت مایکروسافت برای زبان‌های برنامه‌نویسی در نظر می‌گیرد بسیار کامل و جامع هستند. در این میان در رابطه با ماکرو‌ها و کامپایلر‌ها سوئیچ‌هایی موجود هستند که اکثراً با آن‌ها سرو کار داشته‌ایم. مایکروسافت اشاره‌ی خوبی به این سوئیچ‌ها دارد که در این بخش به آن اشاره شده است. اما با توجه به کاربرد آن‌ها نوع لیستی که برای معرفی آن‌ها اشاره داشته است شاید برای همگان شفاف نباشد. بنابراین، اخیراً یکی از توسعه‌دهندگان در سایت Code Project اقدام به بازنشر سوئیچ‌های مربوطه همراه با توضیحات به صورت بسیار شفاف در فایل اکسِل آن‌ها را معرفی کرده است که در ادامه آن را می‌توانید دریافت کنید. Predefined_C_and_C++_Macros.XLSX
  23. mohsenzard67

    به نام خدا سلام و وقت بخیر به شما من تازه کار با qt رو شروع کردم یه کدی نوشتم با کتابخانه استاندارد fstream ، مشکل پیدا کرد اون رو در رویداد کلیک دکمه ای نوشتم پاکش کردم ولی باز وقتی برنامه رو اجرا میکنم همون کار قبلی رو انجام میده انگار من اصلا پاکش نکردم! علتش چیه و من چطور میتونم همچنین مشکلاتی رو بفهمم و حلشون کنم؟ متشکرم از شما
  24. کامبیز اسدزاده

    محیط توسعه‌ی Xcode 10.2.0 منتشر شد. این نسخه شامل ویژگی‌های جدیدی از جمله پشتیبانی از استاندارد‌های C++17 می‌باشد. از مهمترین تغییرات که بسیار انتظار می‌رفت هدر‌های <experimental/any> و <experimental/optional> منسوخ و به به نفع حمایت از استاندارد سی‌پلاس‌پلاس ۱۷ در قالب <any> و ارائه شده‌اند، بنابراین شما نباید به وجود نسخه‌های آزمایشی در experimental آن‌ها تکیه کنید. جهت مشاهده‌ی ویژگی‌های جدید و تغییرات و همچنین بهبود‌ها به مستند مربوطه مراجعه کنید.
  25. کامبیز اسدزاده

    مایکروسافت سایه‌زنی با نرخ متغیر را به DirectX 12 می‌آورد

    مایکروسافت قصد دارد با اعمال فناوری گرافیکی سایه‌زنی با نرخ متغیر در DirectX 12 ضمن افزایش نرخ فریم همگام با افزایش کیفیت بصری، از الزامات سخت‌افزاری اجرای بازی‌ها بکاهد. مایکروسافت فناوری سایه‌زنی با نرخ متغیر (Variable Rate Shading) را به DirectX 12 وارد کرده است. بدین ترتیب توسعه‌دهندگان با اتکا بر این نوع سایه‌زنی قادر خواهند بود سطح عملکرد در محیط‌های گرافیکی نظیر بازی‌ها را بهبود ببخشند، کیفیت بصری بازی را افزایش داده و منابع مورد نیاز سیستم برای اجرای بازی را کاهش دهند. مایکروسافت از توسعه‌دهنده‌ی بازی‌های ویدئویی Firaxis خواسته است که این نوع سایه‌زنی را در یکی از بازی‌های خود پیاده‌سازی کند تا نشان دهد که کاربرد روش VRS تا چه اندازه ساده و تأثیر آن برعملکرد عناوین مختلف تا چه اندازه چشمگیر خواهد بود. در قسمت سمت چپ تصویر زیر، تأثیر VRS در عمل دیده می‌شود. گرچه دو سمت تصویر یکسان به نظر می‌رسد، بنا به گزارش Firaxis در نقشه‌ی زیر و در چنین سطحی از بزرگنمایی، با اعمال VRS شاهد ۱۴ درصد افزایش در خروجی فریم خواهیم بود. البته باید به سطح عملکرد گزارش شده توسط Firaxis با جانب احتیاط نگریست. ما از شرایط انجام آزمایش بی‌خبریم، قابلیت VRS را هنوز نیازموده‌ایم و حتی ممکن است تصاویر و آمار منتشرشده راهی برای تبلیغ فناوری گرافیکی جدید مایکروسافت باشد. بنابراین قضاوت در مورد میزان تأثیر سایه‌زنی با توان متغیر را باید به زمانی پس از آزمایش عمومی این قابلیت موکول کرد. در هر صورت، فناوری «سایه‌زنی با نرخ متغیر» مایکروسافت در دسترس توسعه‌دهندگان قرار دارد و بسیاری از شرکت‌های صاحب‌نام قصد استفاده از آن را در محصولات بعدی خود دارند. توسعه‌دهندگانی مانند 343 Industries، شرکت Playground Games و Massive Entertainment در کنار ناشرانی مثل Ubisoft و Activision و سازندگان موتورهای بازی نظیر Unity و Epic Games در فهرست شرکت‌هایی قرار دارند که بناست از این قابلیت در عناوین آینده‌ی خود استفاده کنند. طرز کار فناوری VRS همان‌طور که از نام «سایه‌زنی با نرخ متغیر» پیدا است، در این روش به‌جای تمرکز بر رندر شیدرها با رزولوشن و جزییات یکسان (که مفهومی متمایز از رزولوشن کلی است)، توان سایه‌زنی (قدرت پردازشی یا به عبارتی نرخ کلاک هسته‌های سایه‌زن) متغیری را در ترسیم بافت‌های گرافیکی بخش‌های مختلف هر فریم می‌توان به‌کار گرفت. این فناوری با تغییر تعداد پیکسل‌هایی کار می‌کند که در یک عملیات سایه‌زنی پیکسل واحد پردازش‌پذیر هستند. براساس اعلام مایکروسافت، توسعه‌دهندگان می‌توانند به‌صورت گزینشی توان سایه‌زنی را در مناطقی از فریم که تأثیر چندانی بر کیفیت بصری نداشته باشد، کاهش دهند و حداکثر قدرت واحدهای سایه‌زن را معطوف به مناطقی کنند که جزئیات تصویری بالاتری در آن‌ها موردنیاز است. بنابراین توسعه‌دهندگان خواهند توانست در مناطقی که در آن شیدرها اهمیت بیشتری دارند، توان سایه‌زنی را افزایش دهند تا کیفیت تصویر بهتری در خروجی بازی‌های خود دریافت کنند. در پایان سطح عملکرد بالاتر و کیفیت تصویری بهتری را می‌توان به دست آورد؛ درحالیکه منابع سخت‌افزاری مورد نیاز کمتری برای اجرای بهتر بازی‌ها نسبت به قبل لازم خواهد شد.API سایه‌زنی با نرخ متغیر به توسعه‌دهندگان اجازه خواهد داد توان سایه‌زنی را به سه روش تنظیم کنند: روش‌های per-draw، روش within-draw با استفاده از یک تصویر screenspace و روش within-draw به حالت per-primitive. همچنین دو رده‌ی پشتیبانی از VRS وجود دارد. در رده‌ی نخست از VRS در حالت per-draw و در رده‌ی دوم از VRS هم در حالت per-draw و هم در حالت within-draw پشتیبانی می‌شود. همچنین حالت ترکیبی سایه‌زنی با توان متغیر (VRS Combiners) پیش‌بینی شده است که امکان استفاده‌ی همزمان از VRS به روش per-draw و per-permitive را ممکن می‌سازد. براساس ادعای مایکروسافت، قابلیت سایه‌زنی با نرخ متغیر با سخت‌افزارهای موجود شرکت انویدیا برخوردار از معماری تورینگ و نیز سخت‌افزارهایی که در آینده توسط اینتل ارائه خواهد شد، پشتیبانی می‌شود. اینتل هم‌اکنون در حال آزمایش سایه‌زنی با نرخ متغیر روی تراشه‌های اولیه‌ی گرافیکی نسل ۱۱ خود است که برنامه‌ریزی برای عرضه‌ی آن‌ها در سال جاری وجود دارد. احتمالا پردازنده‌های گرافیکی مجزای اینتل (نسخه‌های دسکتاپ آینده) نیز از این فناوری گرافیکی پشتیبانی کند.
  26. نسخه‌ی Qt Creator 4.9 Rc منتشر شد. از مهمترین تغییرات این نسخه می‌توان به پشتیبانی از MSVC 2019 و ECMAScript 7 اشاره کرد. لیست تغییرات و بهبود‌های کلی به صورت زیر آمده است: Qt Creator version 4.9 contains bug fixes and new features. The most important changes are listed in this document. For a complete list of changes, see the Git log for the Qt Creator sources that you can check out from the public Git repository. For example: git clone git://code.qt.io/qt-creator/qt-creator.git git log --cherry-pick --pretty=oneline origin/4.8..v4.9.0 General * Added high-level introduction to Qt Creator's UI for first-time users (QTCREATORBUG-21585) * Added option to run external tools in build or run environment of active project (QTCREATORBUG-18394, QTCREATORBUG-19892) * Improved selection colors in dark themes (QTCREATORBUG-18888) * Added -temporarycleansettings (alias -tcs) command line option Editing * Language Client * Added support for document outline (QTCREATORBUG-21573) * Added support for `Find References to Symbol Under Cursor` (QTCREATORBUG-21577) * Added support for code actions * Highlighter * Replaced custom highlighting file parser with `KSyntaxHighlighting` (QTCREATORBUG-21029) * Made it possible to filter bookmarks by line and text content in Locator (QTCREATORBUG-21771) * Fixed document sort order after rename (QTCREATORBUG-21565) Help * Improved context help in case of code errors or diagnostics (QTCREATORBUG-15959, QTCREATORBUG-21686) * Improved lookup performance for context help All Projects * Added `Expand All` to context menu (QTCREATORBUG-17243) * Added `Close All Files in Project` action (QTCREATORBUG-15593) * Added closing of all files of a project when project is closed (QTCREATORBUG-15721) * Added display of command line parameters to `Application Output` (QTCREATORBUG-20577) * Fixed that dragging file from `Projects` view to desktop moved the file (QTCREATORBUG-14494) QMake Projects * Fixed that adding files did not respect alphabetic sorting and indentation with tabs (QTCREATORBUG-553, QTCREATORBUG-21807) * Fixed updating of `LD_LIBRARY_PATH` environment variable (QTCREATORBUG-21475) * Fixed updating of project tree in case of wildcards in corresponding QMake variable (QTCREATORBUG-21603) * Fixed issues with project tree when files are directly added to `RESOURCES` (QTCREATORBUG-20103) * Fixed that importing build unnecessarily created temporary kit (QTCREATORBUG-18153) CMake Projects * Fixed that default build directory names contained spaces (QTCREATORBUG-18442) * Fixed that build targets were reset on CMake parse error (QTCREATORBUG-21617) * Fixed scroll behavior when adding configuration item Qbs Projects * Fixed crash when switching kits (QTCREATORBUG-21544) Generic Projects * Added deployment via `QtCreatorDeployment.txt` file (QTCREATORBUG-19202) * Added setting C/C++ flags for the code model via `.cflags` and `.cxxflags` files (QTCREATORBUG-19668) * Fixed `Apply Filter` when editing file list (QTCREATORBUG-16237) Compilation Database Projects * Fixed that project tree was not updated when database changes on disk (QTCREATORBUG-21733) C++ Support * Added code snippet for range-based `for` loops * Added option to synchronize `Include Hierarchy` with current document (QTCREATORBUG-12022) * Clang Code Model * Added buttons for copying and ignoring diagnostics to tooltip * Fixed issue with high memory consumption (QTCREATORBUG-19543) * Fixed inconsistency between `Follow Symbol` and `Ctrl + Click` (QTCREATORBUG-21637) * Fixed that global completion was shown after comma (QTCREATORBUG-21624) * Clang Format * Added option to format code instead of only indenting code * Added `Open Used .clang-format Configuration File` to editor's context menu QML Support * Updated to parser from Qt 5.12, adding support for ECMAScript 7 (QTCREATORBUG-20341, QTCREATORBUG-21301) * Improved error handling in Qt Quick Application project template (QTBUG-39469) * Fixed crash on `Find Usages` Python * Added project templates for Qt for Python Nim Support * Added code completion based on `NimSuggest` Debugging * Fixed that debugger toolbar could force large minimum window size (QTCREATORBUG-21885) * Added pretty printing of `QSizePolicy` * Fixed pretty printing of standard maps and sets from `libc++` (QTCREATORBUG-18536) * GDB * Added support for rvalue references in function arguments * LLDB * Fixed `Source Paths Mappings` functionality (QTCREATORBUG-17468) Clang Analyzer Tools * Made Clazy configuration options more fine grained (QTCREATORBUG-21120) * Improved Fix-its handling in case of selecting multiple diagnostics and after editing files * Added diagnostics from header files (QTCREATORBUG-21452) * Added sorting to result list (QTCREATORBUG-20660) * Fixed that files were analyzed that are not part of current build configuration (QTCREATORBUG-16016) Perf Profiler * Made Perf profiler integration opensource Qt Quick Designer * Made QML Live Preview integration opensource * Added support for `Dialog` (QTCREATORBUG-22120) Version Control Systems * Git * Improved messages when submit editor validation fails and when editor is closed * Added `Subversion` > `DCommit` * `Branches` View * Added `Push` action * Added entry for detached `HEAD` (QTCREATORBUG-21311) * Added tracking of external changes to `HEAD` (QTCREATORBUG-21089) * Subversion * Improved handling of commit errors (QTCREATORBUG-15227) * Perforce * Disabled by default * Fixed issue with setting P4 environment variables (QTCREATORBUG-21573) * Mercurial * Added side-by-side diff viewer (QTCREATORBUG-21124) Test Integration * Added `Uncheck All Filters` * Added grouping results by application (QTCREATORBUG-21740) * QTest * Added support for `BXPASS` and `BXFAIL` * Fixed parsing of `BFAIL` and `BPASS` FakeVim * Added option for blinking cursor (QTCREATORBUG-21613) * Added closing completion popups with `Ctrl+[` (QTCREATORBUG-21886) Model Editor * Added display of base class names Serial Terminal * Improved error message on connection failure Platform Specific Windows * Added support for MSVC 2019 * Changed toolchain detection to use `vswhere` by default, which is recommended by Microsoft * Fixed issue with UNC paths in `.pro` files (QTCREATORBUG-21881) * Fixed language version detections with MSVC and precompiled headers (QTCREATORBUG-21860) Linux macOS * Added support for Touch Bar (QTCREATORBUG-21263) Android * Removed separate `QmakeAndroidSupport` plugin and merged functionality into other plugins * Fixed debugging for API level 22 (QTCREATORBUG-22098) Remote Linux * Removed use of Botan, exchanging it by use of separately installed OpenSSH tools (QTCREATORBUG-15744, QTCREATORBUG-15807, QTCREATORBUG-19306, QTCREATORBUG-20210) * Added support for `ssh-askpass` * Added optional deployment of public key for authentication to device setup wizard * Added support for X11 forwarding * Added `rsync` based deployment method * Added support for `Run in Terminal` * Added support for opening a remote terminal from device settings * Fixed incremental deployment when target directory is changed (QTCREATORBUG-21225) * Fixed issue with killing remote process (QTCREATORBUG-19941) جهت دریافت این نسخه کلیک کنید.
  27. کامبیز اسدزاده

    انواع مجوزهای منبع‌باز (Open Source)

    با توجه به اینکه اکثر طراحان و توسعه دهندگان نرم‌افزارها دید روشنی از تفاوت گواهینامه‌های متعدد متن باز ندارند در این مقاله ما به ویژگی‌ها و شرایط هر یک از آن‌ها اشاره کرده‌ایم که به شما یک شفاف سازی سریع در رابطه با اینکه کدام مجوز مناسب محصول شما به صورت منبع‌باز خواهد بود را ارائه می‌کند. قبل از هر چیز در زیر لیستی از انواع مجوز‌های منبع باز را در نظر بگیرید: Apache License 2.0 BSD 3-Clause “New” or “Revised” license BSD 2-Clause “Simplified” or “FreeBSD” license GNU General Public License (GPL) v3.0 GNU Library or “Lesser” General Public License (LGPL) MIT license Mozilla Public License 2.0 Creative Commons License مجوز APACHE LICENSE حقوق موجود در مجوز آپاچی نسخه ۲.۰ را می‌توان برای مقوله کپی‌ رایت‌ یا پتنت استفاده کرد (البته برخی مجوزها را تنها می‌توان روی کپی‌ رایت اعمال کرد و برای پتنت‌ها مورد استفاده قرار نمی‌گیرند). به طور کلی، بخشی از جزئیات مجوز آپاچی به شرح زیر است: حقوق هیچ‌گاه به اتمام نمی‌رسد:‌ وقتی حقوقی تحت مجوز آپاچی ارائه شود، دیگر نیازی به تکرار مجوز برای آن نیست و همیشه می‌توانید تحت همین مجوز از آن‌ها استفاده کنید. نفوذ جهانی: حتی اگر حقوقی در یک کشور عرضه شود، به صورت خودکار در همه کشورها قابل استفاده می‌شود. عرضه رایگان یا دریافت حق امتیاز: بدون هزینه، هزینه بر مبنای استفاده یا هر نوع دیگری اجرایی است. حقوق غیرقابل فسخ است: هیچ‌کس نمی‌تواند ادعا کند که کار مشتق شده شما از سورس‌ کدی که تحت این مجوز عرضه شده را دیگر نمی‌توانید استفاده کنید (عبارتی در این مجوز وجود دارد که بیان می‌کند اگر شما از فردی به خاطر نقض پتنت یا هر چیز دیگری تحت این لایسنس شکایت کنید، مجوز شما باطل می‌شود، اما این قضیه فقط به کارهای پتنت‌ شده اختصاص دارد و تا وقتی که شما از کسی شکایت نکنید، نگرانی خاصی وجود ندارد). نمونه‌ی مجوز Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. مجوز BSD License مجوز BSD بخشی از خانواده مجوزهای نرم‌ افزار آزاد است که در مقایسه با مجوزهای نرم‌ افزاری دیگر، محدودیت‌های کمتری درباره نحوه توزیع دارد که دو نسخه مهم آن عبارت‌ است از: The New BSD License / The New Modified BSD License The Simplified BSD License / FreeBSD License هر دو به‌ عنوان مجوزهای متن باز توسط Open Source Initiative پذیرفته شده‌اند. مجوز New BSD که با نام «مجوز سه شرطی» نیز شناخته می‌شود، اجازه توزیع مجدد نامحدود را برای هر هدفی می‌دهد (البته تا وقتی که کپی‌ رایت‌ و رفع تعهدهای این مجوز برقرار باشند). این مجوز یک شرط جالب نیز دارا است به این شکل که استفاده از نام مشارکت‌ کنندگان برای تأیید کارهای انجام شده در پروژه را بدون اجازه شخصی آن‌ها ممنوع می‌کند. این تبصره در‌ واقع به این معنی است که اگر کسی سورس‌ کد توسعه دهنده شناخته‌ شده‌ای را fork کرده باشد و تغییراتی را برای ساخت پروژه جدید در آن انجام داده باشد، نمی‌تواند از نام آن فرد مطرح برای تأیید و اعتبار بخشی به پروژه خود استفاده کند (در حقیقت، تفاوت اصلی میان نسخه جدید و نسخه ساده مجوز BSD در استفاده از این شرط است). نمونه‌ی مجوز Copyright <YEAR> <COPYRIGHT HOLDER> Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. مجوز GNU با وجود این مجوز محدودیت خاصی برای کپی کردن کدها در پروژه‌هایی که لایسنس GPL دارند وجود نداشته و می‌توانید کدهای دارای این مجوز را به‌ سادگی کپی کنید. همچنین، می‌توانید آن را روی فلش یا هارد خود توزیع کنید یا کدها را در وب‌ سایت خود با لینک دانلود و به همراه همین لایسنس منتشر کرده یا روی کاغذ پرینت کنید. در‌ واقع، به هر شکلی که بخواهید می‌توانید پروژه‌های دارای لایسنس GPL را توزیع کنید. می‌توانید با این مجوز از مخاطب در قبال ارائه نرم‌ افزار به او هزینه دریافت کنید ولی به خاطر داشته باشید که باید یک کپی از GNU GPL را نیز ارائه کنید که به آن‌ها می‌گوید می‌توانند نرم‌ افزار را از جای دیگر بدون هزینه دریافت کنند (در کنار این کار، همچنین می‌توانید دلیلی که به خاطر آن از مخاطب هزینه دریافت می‌کنید را نیز بیان کنید) اگر بخواهید تغییراتی در پروژه ایجاد کنید (اصطلاحاً آن را Fork کنید)، این امکان برای شما وجو دارد؛ به عبارت دیگر، ویژگی‌هایی که می‌خواهید را حذف و اضافه کنید اما تنها به‌ شرطی که شما هم پروژه‌ٔ خود را تحت مجوز GNU GPL ارائه کنید (همچنین این نکته اهمیت دارد که باید تفاوت بین سورس‌ کد پروژه و توزیع باینری آن را بدانید؛ به این دلیل که محدودیت‌هایی در رابطه با هر کدام وجود دارد. همچنین، اگر پروژه‌ای از GNU GPL استفاده می‌کند، باید با برخی قوانین استاندارد دربارهٔ کامنت‌ گذاری بخش‌های مختلف این مجوز درون سورس‌ کد نیز مطابقت داشته باشد. مجوز GNU LESSER GENERAL PUBLIC LICENSE این لایسنس حقوق کمتری را برای استفاده در مقایسه با GNU GPL نیاز دارد و معمولاً در لایبرری‌ها و پروژه‌هایی استفاده می‌شود که قصد دارند اجازهٔ لینک شدن آن‌ها را به نرم‌ افزارهای بدون مجوز GPL و با سورس‌ کد بسته نیز بدهند. در مورد مجوز GPL، هر پروژه و سورس‌ کدی که در پروژه‌ی تحت GPL عرضه می‌شود، خود نیز باید GPL باشد و کدهای تحت GPL نمی‌تواند در پروژه‌های اختصاصی مورد استفاده قرار بگیرند. LGPL این مورد را نادیده گرفته و نیاز به مجوز مشابه را برای استفاده از کدهای دارای LGPL از بین می‌برد (به عبارت دیگر، نسبت به GPL آزادی بیشتری در اختیار توسعه دهندگان قرار می‌دهد). نمونه‌ی مجوز <one line to give the program's name and a brief idea of what it does.> Copyright (C) <year> <name of author> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. مجوز MIT LICENSE این مجوز، کوتاه‌ترین و احتمالاً پراستفاده‌ترین مورد بین تمامی لایسنس‌های متن باز است زیرا شرایط آن آسان است و به‌ اصطلاح از مجوزهای دیگر راحت‌تر عمل می‌کند. اگر بخواهیم ماهیت اصلی این لایسنس را شرح دهیم، بایستی بگوییم که به وسیله این مجوز، اجازه استفاده بدون هزینه به هر شخصی که یک کپی از سورس‌ کد یا نرم‌ افزار و مستندات مربوط به آن را دریافت کرده، داده می‌شود تا در آن نرم‌ افزار بدون هیچ‌گونه محدودیتی تغییرات خود را اِعمال کند که شامل استفاده بدون محدودیت، کپی، تغییر، ترکیب، انتشار، توزیع، استفاده بخشی از مجوز یا فروش کپی‌هایی از نرم‌افزار می‌شود و به افرادی که این نرم‌ افزار برای آن‌ها تهیه شده نیز در این موارد اجازه داده می‌شود به شرطی که ملاحظاتی که در بالا به آن‌ها اشاره شد و همچنین معرفی این لایسنس را در تمامی کپی‌ها یا بخش‌های مهم این نرم‌ افزار در معرض دید کاربران قرار دهند. با این مجوز در واقع اجازه استفاده، کپی و تغییر در نرم‌ افزار را هر طوری که تمایل دارید خواهید داشت؛ هیچ کسی نمی‌تواند شما را از بکارگیری آن در پروژه‌های دیگر منع کند و می‌توانید نرم‌ افزار را تحت این مجوز به صورت رایگان یا از طریق فروش آن عرضه کنید. هیچ شرطی برای این توزیع به هیچ طریقی وجود نخواهد داشت و هر کسی می‌تواند هر تغییری را که می‌خواهد در کدهای تحت لیسانس MIT انجام دهد (البته مادامی که مجددا تحت این مجوز عرضه شوند). نمونه‌ی مجوز The MIT License (MIT) Copyright (c) <year> <copyright holders> Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. مجوز Mozilla Public License مجوز همگانی موزیلا (Mozilla Public License) یک مجوز نرم‌ افزار آزاد مفصل است که توسط بنیاد موزیلا نوشته و نگهداری می‌شود. از این مجوز به عنوان مجوزی که هم ویژگی‌های مجوز تغییر یافته BSD و هم ویژگی‌های مجوز GPL را دارد، یاد می‌شود که سعی دارد مشکلات و نگرانی‌های توسعه‌ دهندگان نرم‌ افزار آزاد و نرم‌افزار انحصاری را تعادل بخشد. این مجوز دو بار مورد بازبینی قرار گرفته‌ است و در نسخه آخر آن یعنی نسخه ۲.۰، سعی شده تا سادگی مجوز حفظ شود و سازگاری بهتری با دیگر مجوزها داشته باشد. این مجوز که به اختصار به MPL هم گفته می‌شود، مجوزی است که در موزیلا فایرفاکس، موزیلا تاندربرد و بقیه نرم‌ افزارهای بنیاد موزیلا مورد استفاده قرار می‌گیرد اما اخیراً دیگران هم به استفاده از این مجوز روی آورده‌اند، همانند شرکت Adobe که از این مجوز برای نرم‌ افزار ادوبی فلکس استفاده کرده و همچنین لیبره‌آفیس که از این مجوز به همراه LGPL (نسخه ۳) استفاده می‌کند. شرکت‌هایی مانند سان مایکروسیستمز هم از نسخه ۱.۱ این مجوز برای نوشتن یک مجوز ترکیبی مثل مجوز توسعه و توزیع مشترک استفاده کرده‌اند. نمونه‌ی مجوز /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ # This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at https://mozilla.org/MPL/2.0/. <!-- This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at https://mozilla.org/MPL/2.0/. --> This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at https://mozilla.org/MPL/2.0/. مجوز CREATIVE COMMONS مجوز Creative Commons که به اختصار CC گفته‌ می‌شود، خیلی هم اپن‌ سورس نبوده و به صورت معمول در پروژه‌های مربوط به طراحی استفاده می‌شود. انواع مختلفی از این نوع لایسنس وجود دارد که هر کدام برای موارد خاصی ایجاد شده که حق و حقوق معینی را اعطا می‌کنند، به طوری که یک مجوز CC دارای چهار بخش اساسی است که عبارت است از: اعتباربخشی: نویسنده (مؤسس) باید به عنوان خالق اثر نام برده شود؛ سپس می‌توان آن را تغییر داد، توزیع کرد، کپی نمود و به صورت دیگری استفاده کرد. انتشار تحت مجوز کریتیو کامانز: می‌توان اثر را تغییر داد و توزیع کرد ولی تنها تحت مجوز CC. غیرتجاری: یک اثر تحت این مجوز می‌تواند تغییر داده شود یا توزیع شود ولی نه برای اهداف تجاری (البته عبارت Commercial به‌ معنی «تجاری» کمی مبهم است و هیچ تعریف مشخصی از آن ارائه نشده است) ممنوعیت اعمال تغییرات: می‌توان اثر دارای چنین مجوزی را کپی کرده یا توزیع کرد، اما نمی‌توانید آن را به هیچ صورت تغییر دهید یا اثری را براساس طرح اصلی ایجاد کنید. به خاطر داشته باشید که این‌ها قوانین الزامی موجود در همه مجوزهای مبتنی بر CC نیستند؛ برخی از مجوزهای CC ممکن است این شرط‌ها را نداشته باشند، چرا که برخی از این شرط‌ها دو به دو ناسازگار هستند و برخی می‌توانند براساس نیاز با هم ترکیب شوند. نمونه‌ی مجوز <WORK'S NAME> (c) by <AUTHOR'S NAME> <WORK'S NAME> is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. You should have received a copy of the license along with this work. If not, see <http://creativecommons.org/licenses/by-sa/3.0/>.
  28. قانون حمایت از حقوق پدیدآورندگان نرم‌افزارهای رایانه‌ای قانون دیگر قانون حمایت از حقوق پدیدآورندگان نرم‌افزارهای رایانه‌ای مصوب ۱۳۷۹ است. همان‌طور که از نام این قانون مشخص است، در این قانون حقوق مادی و معنوی پدیدآورندگان نرم‌افزارهای رایانه‌ای شرح داده می‌شود. مطابق ماده‌ی ۱ این قانون، «حق نشر، عرضه، اجرا و حق بهره‌برداری مادی و معنوی از نرم‌افزارهای رایانه‌ای متعلق به پدیدآورنده‌ی آن است. نحوه‌ی تدوین و ارائه‌ی داده‌ها در محیط قابل پردازش رایانه‌ای نیز مشمول احکام نرم‌افزار خواهد بود.» مطابق مطابق ماده‌ی ۳ این قانون، نام، عنوان و نشان ویژه‌ای که معرف نرم‌افزار است از حمایت این قانون برخوردار است و هیچ‌کس نمی‌تواند آنها را برای نرم‌افزار دیگری از همان نوع یا مانند آن به نحوی که القای شبهه نماید، استفاده کند. در ماده‌ی ۱۳ قانون به‌طور کلی ضمانت اجرای نقض حقوق مورد حمایت این قانون، علاوه بر جبران خسارت متضرر، حبس از نود و یک روز تا شش ماه و جزای نقدی از ده میلیون تا پنجاه میلیون ریال بیان شده است. همچنین مطابق ماده‌ی ۱۵ این قانون، جرایم مربوط به نقض حقوق مورد حمایت این قانون، از جرایم قابل گذشت است. ‌ماده ۱ - حق نشر، عرضه، اجرا و حق بهره برداری مادی و معنوی نرم افزار رایانه‌ای متعلق به پدید آورنده آن است. نحوه تدوین و ارائه داده‌ها در‌محیط قابل پردازشرایانه‌ای نیز مشمول احکام نرم‌افزار خواهد بود. مدت حقوق مادی سی (۳۰) سال از تاریخ پدید آوردن نرم‌افزار و مدت حقوق‌معنوی نامحدود است. ماده ۲ - در صورت وجود شرایط مقرر در قانون ثبت علایم و اختراعات، نرم‌افزار به عنوان اختراع شناخته می‌شود، آئین‌نامه مربوط به این ماده به‌تصویب هیأت وزیرا نخواهد رسید. ‌ماده ۳ - نام، عنوان و نشانه ویژه‌ای که معرف نرم افزار است از حمایت این قانونبرخوردار است و هیچ کس نمی‌تواند آنها را برای نرم افزار دیگری‌ از همان نوع یامانند آن به ترتیبی که القای شبهه کند بکار برد در غیر این صورت به مجازات مقرر در ماده (۱۳) این قانون محکوم خواهد شد. ‌ماده ۴ - حقوق ناشی از آن بخش از نرم‌افزاری که به واسطه نرم‌افزارهای دیگر پدیدمی‌آید متعلق به دارنده حقوق نرم‌افزارهای واسط نیست.‌ ماده ۵ - پدید آوردن نرم‌افزارهای مکمل و سازگار با دیگر نرم‌افزارها با رعایتحقوق مادی نرم‌افزارهای اولیه مجاز است.‌ ماده ۶ - پدید آوردن نرم‌افزارها ممکن است ناشی از استخدام و یا قرارداد باشد دراین صورت: ‌الف - باید نام پدید آورنده توسط متقاضی ثبت به مراجع یاد شده در این قانون بهمنظور صدور گواهی ثبت، اعلام شود. ب - اگر هدف از استخدام یا انعقاد قرارداد، پدید آوردن نرم‌افزار مورد نظر بوده ویا پدید آوردن آن جزء موضوع قرارداد باشد، حقوق مادی مربوط‌و حق تغییر و توسعه نرم‌افزار متعلق به استخدام کننده یا کارفرما است، مگر اینکه در قرارداد به صورتدیگری پیش بینی شده باشد. ‌ماده ۷ - تهیه نسخه‌های پشتیبان و همچنین تکثیر نرم‌افزاری که به طریق مجاز برایاستفاده شخصی تهیه شده است چنانچه به طور همزمان مورد‌استفاده قرار نگیرد، بلامانعاست.‌ ماده ۸ - ثبت نرم‌افزارهای موضوع مواد (۱) و (۲) این قانون پس از صدور تأییدیه فنی توسط شورای عالی انفورماتیک حسب مورد توسط وزارت‌فرهنگ و ارشاد اسلامی و یامرجع ثبت شرکتها انجام می‌پذیرد.‌ ماده ۹ - دعوای نقض حقوق مورد حمایت این قانون ، در صورتی در مراجع قضایی مسموعاست که پیش از اقامه دعوی ، تأییدیه فنی یاد شده در‌ماده (۸) این قانون صادر شده باشد. در مورد حق اختراع ، علاوه بر تأییدیه مزبور ، تقاضای ثبت نیز باید به مرجعذی ربط تسلیم شده باشد.‌ ماده ۱۰ - برای صدور تأییدیه فنی موضوع ماده (۸) در مورد نرم افزارهایی که پدیدآورنده آن مدعی اختراع بودن آن است، کمیته‌ای به نام "‌کمیته‌حق اختراع" زیر نظرشورای عالی انفورماتیک تشکیل می‌شود. اعضای این کمیته مرکب از سه کارشناس ارشدنرم‌افزار به عنوان نمایندگان شورای عالی‌انفورماتیک، نماینده سازمان ثبت اسناد واملاک کشور و یک کارشناس حقوقی به انتخاب شورای عالی انفورماتیک خواهد بود.‌ ماده ۱۱ - شورا مکلف است از صدور تأییدیه فنی برای نرم‌افزارهایی که به تشخیصوزارت فرهنگ و ارشاد اسلامی خلاف اخلاق اسلامی و‌عفت عمومی و سلامت شخصیت کودکان ونوجوانان باشند خودداری کند. وزارت فرهنگ و ارشاد اسلامی باید ظرف دو هفته راجع به استعلام کتبی‌شورای عالی انفورماتیک اعلام نظر کند.‌ ماده ۱۲ - به منظور حمایت عملی از حقوق یاد شده در این قانون‌، نظم بخشی وساماندهی فعالیت‌های تجاری رایانه‌ای مجاز، نظام صنفی رایانه‌ای‌توسط اعضای صنف یادشده تحت نظارت شورا به وجود خواهد آمد. مجازات‌های مربوط به تخلفات صنفی مربوط،برابر مجازات‌های جرایم یاد شده در‌ لایحه قانونی امور صنفی - مصوب 1359.4.13 واصلاحیه‌های آن - خواهد بود.‌ ماده ۱۳ - هرکس حقوق مورد حمایت این قانون را نقض نماید علاوه بر جبران خسارت بهحبس از نود و یک روز تا شش ماه و جزای نقدی از ده‌ میلیون (۱۰،۰۰۰،۰۰۰) تا پنجاه میلیون (۵۰،۰۰۰،۰۰۰) ریال محکوم می‌گردد.‌ تبصره - خسارات شاکی خصوصی از اموال شخص مرتکب جرم جبران می‌شود.‌ ماده ۱۴ - شاکی خصوصی می‌تواند تقاضا کند مفاد حکم دادگاه در یکی از روزنامه‌ها با انتخاب و هزینه او آگهی شود.‌ ماده ۱۵ - رسیدگی جرم مذکور در ماده (۱۳) با شکایت شاکی خصوصی آغاز و باگذشت او موقوف می‌شود.‌ ماده ۱۶ - حقوق مذکور در ماده (۱) در صورتی مورد حمایت این قانون خواهد بود که موضوع برای نخستین بار در ایران تولید و توزیع شده باشد.‌ ماده ۱۷ - آیین‌نامه اجرایی این قانون شامل مواردی از قبیل چگونگی صدور گواهی ثبت و تأییدیه فنی و هزینه‌های مربوط همچنین نحوه تشکیل‌ نظام صنفی رایانه‌ای، به پیشنهاد سازمان مدیریت و برنامه‌ریزی کشور و با هماهنگی وزارتخانه‌های فرهنگ وارشاد اسلامی و دادگستری به تصویب‌ هیأت وزیران خواهد رسید.‌قانون فوق مشتمل بر هفده ماده و یک تبصره در جلسه علنی روز یکشنبه مورخ چهارم دی‌ماه یک هزار و سیصد و هفتاد و نه مجلس شورای اسلامی‌تصویب و در تاریخ ۱۳۷۹/۱۰/۱۰ به تأیید شورای نگهبان رسیده است. تاریخ تصویب : ۱۳۷۹/۱۰/۰۴ مرجع تصویب : مصوبات مجلس شورا ماده ۱۷ بند ۲ منابع و اسناد رسمی مرکز پژوهش‌های مجلس شورای اسلامی ویکی‌پدیا
  1. نمایش فعالیت های بیشتر
×