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

بهنام صباغی

مدیران مرجع
  • تعداد ارسال ها

    65
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    18

آخرین بار برد بهنام صباغی در 4 دی

بهنام صباغی یکی از رکورد داران بیشترین تعداد پسند مطالب است !

اعتبار در سایت

61 عالی

2 دنبال کننده

درباره بهنام صباغی

میانجی گر‌ها
  • تاریخ تولد 12 مهر 1374

اطلاعات شبکه‌ای

موقعیت

  • شهر
    محلات

آخرین بازدید کنندگان نمایه

بلوک آخرین بازدید کننده ها غیر فعال شده است و به دیگر کاربران نشان داده نمیشود.

  1. نرم‌افزار TortoiseGit رو هم تجربه کنید به شدت استفاده میشه و قابلیت‌های خوبی داره.
  2. بهنام صباغی

    با سلام چیزی که شما نیاز دارید ذخیره اطلاعات هست حالا روش های متفاوتی هست که پیشنهاد من دیتابیس هست و میتونید از پلاگین کیوت برای اس کیو ال استفاده کنید و برای این که به صورت عادی باز نشه هم میتونید از Qt SQL driver plugin for SQLCipher استفاده کنید برای رمز نگاری دیتابیستون. موفق باشید.
  3. بهنام صباغی

    QCustomPlot

    نگارش 2.0.1

    5 دریافت

    QCustomPlot یک کتابخانه ویجت کیوت سی پلاس پلاس است که هیچ پیش‌نیاز بیشتری ندارد و به خوبی مستند شده است. این کتابخانه تمرکز بر انتشار گراف و نمودارهای دو بعدی سنگین دارد و با بهره‌وری عالی خود انتخاب خوبی برای مجسم‌سازی بی‌درنگ است. نگاهی به آموزش راه اندازی و آموزش مقدماتی نمودار بندازید.

    رایگان

  4. بهنام صباغی

    با سلام پیشفرض وقتی شما تغییر میدید موقع ذخیره کردن خودش ران میکنه کیو میک رو تنظیم خاصی یادم نمیاد براش انجام داده باشم. مطمئنید بعد از ذخیره کردن کیومیک ران نمیشه ؟
  5. بهنام صباغی

    یک کتابخانه نیست اینی که من دادم لینک بهترین کتابخانه‌های سی پلاس پلاس هست توی زمینه های مختلف شما کدوم رو میخواید ؟ جستجو کنید آموزشش رو بعید میدونم مثلا توی لیندا یا یودمی پیدا کنید ولی توی یو تیوب برای هر کتابخانه احتمالش خیلی زیاده که ویدئو پیدا بشه از دوستان هندی یا چینی .
  6. بهنام صباغی

    خب پس مشکل چیز دیگست کلا مشکلی با کتابخانه نداری دیتا رو متوجه نشدی باید چکارش کنی. شاید یکم طولانی باشه بحثش ولی سعی میکنم یجوری توضیح بدم متوجه بشید. این حقیقت وجود داره که شما میخواید از دیتا استفاده کنید و صرفا نمیخواید ردش کنید بره پس مثلا به ازای هر مقدار عددی یه کامپوننت نمایشی برای نمایشش نیاز دارید. و این رو باید در زمان نوشتن برنامه مشخص کنید. پس در حالت عادی قضیه اونقدار هم داینامیک نیست و شما می‌دونید مثلا توی لیست قراره چه داده هایی نمایش داده بشه فرض کنید یه کاربر دارید که نام و نام خانوادگی و آدرس ایمیل و شماره موبایل داره از بین ان موارد ممکنه تعدادیشون بیش از یک مقدار داشته باشند یا اصلا ممکنه اپشنال باشند ولی کلیت مشخصه پس با روند عادی که توی پست http://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html گفته شده قابل انجام هست. اما وقتی شما میخواید فول داینامیک باشه یعنی ساختارهای داده پیچیده و تودرتو و کاملا داینامیک داشته باشید طوری که حتی ممکنه خود کاربر مواردی رو اضافه کنه مثلا فرض کنیم بخواد یه بخش برای حیوانات خانگیش اضافه کنه و توی اون دسته بندی بذاره و ... قضیه یکم فرق می‌کنه اما اونم راه حل داره که راهش اینه مثلا هر بخشی که میشه دیتا توش وارد کرد رو نوعش رو از کاربر بگیرید و بر اساس اون مثلا لیبل یا اسپین باکس یا ... نمایش بدید اما مشکل شما چند قدم عقب تر هست یعنی توی آماده سازی و ارسال دیتا به کیو ام ال مشکل دارید که گفتم اگر دیتا ساختار داره یا میتونید ساختار براش در نظر بگیرید که چه بهتر اگر هم ساختار نداره که روش جیسان کردن جواب میده اما این که چطور دیتا رو به جیسان تبدیل کنید می‌تونید دستی این کار رو انجام بدید که البته چندان هم داینامیک نیست یا می‌تونید یه کتابخانه برای تبدیل این کار پیدا کنید که بیاد تبدیل رو براتون انجام بده ولی اینو در نظر داشته باشید که اگر دارید همچین کاری می‌کنید شاید بهتر باشه از دیتابیس‌های NoSQL یا کلا جیسان بیس استفاده کنید. اما اجازه بدید یکم جزئی تر توی مسئله وارد بشم. الان شما دارید دیتا رو از دیتابیس SQL بیس میخونید و توی مدل اون داریدش حقیقت اینه که روند کاریش تا جایی که من یادم میاد جدولی هست یعنی شما الان که اطلاعات رو خوندی به ازای هر ردیف یه سری فیلد داری پس اون چنان داینامیک و قابل تغییر نیست که نیاز باشه از کتابخانه و ... برای تبدیلش استفاده کنی یه روش میتونه این باشه که شما هر ردیف رو یک جیسان در نظر بگیری و هر فیلد رو یک فیلد جیسان و به همین سادگی می‌تونید تبدیلش کنید به جیسان و ادامه روند هم که توی پست‌های بالا توضیح داده شده. حقیقتش فکر می‌کنم توی خود کیو ام ال یه ساده ترین حالت ممکن این قضیه هندل شده یعنی وقتی دیتا از یکی از کانال های تعریف شده به کیو ام ال برسه خیلی کار باهاش سادست مثلا وقتی JSON یا XML از طریق شبکه به برنامه ارسال می‌شود ولی الان مشکل شما ایجاد اون کانال ارتباطی هست شاید تا حدودی که خود کیوت توضیح داده برای هر استفاده چطور این کار رو بکنیم ولی به گفته شما شاید یک راه ساده یا یک ساختار مدل داده قابل ارسال به کیو ام ال اگر تعریف می‌کرد که خودش این قضیه رو هندل می‌کرد خیلی می‌تونست ساده تر باشه این قضیه هم ولی تا جایی که من می‌دونم توضیحات داده برای هربار ولی خودش یک کلاس جامع و داینامیک درست نکرده شاید دلایل خودش رو داره یا شایدم خودش درست کرده من خبر ندارم موفق باشید.
  7. بهنام صباغی

    با سلام میتونید از کتابخانه هایی که برای این کار وجود داره استفاده کنید نگاهی به بخش Compression لینک Awesome C/C++ بندازید کتابخانه‌های خوبی فراهم هست. موفق باشید.
  8. بهنام صباغی

    خب شما دست به کد بشید هرکجا مشکلی بود بپرسید در خدمتم تا دستان مبارک روی کیبورد نره که اشکال کار در نمیاد. الان پروژه‌ای دارید که مشغولش باشید و بتونید روی اون پیاده کنید تا مشکل رو حل کنیم ؟
  9. بهنام صباغی

    این که درست نیست توی هر حلقه یک mutex درست کردی باید یدونه باشه تا وقتی قفل میکنی دسترسی به منبع رو قبول کنه. ببر بیرون تعریف کن و همون یدونه رو باید lock و unlock کنی. یه نگاهی به مثال خود رفرنس بنداز : std::mutex - cppreference.com موفق باشی.
  10. بهنام صباغی

    با سلام تا جایی که به خاطر میارم مایکروسافت هم دیتابیسش رو کراس کرد. ولی در کل انتخاب خوبی نیست MS SQL Server ولی برای انتخاب دیتابیس کلا توی هر پروژه ای باشه باید اول بررسی کنید و میزان نیاز واقعیتون رو مشخص کنید. مثلا اگر بخواید روی موبایل هم خروجی بدید و تمایلی به تغییر دیتابیس نداشته باشید و فقط یک یا چند کاربر به صورت متوالی از نرم افزار استفاده کنند اس کیو لایت میتونه انتخاب خوبی باشه چون روی موبایل هم جواب میده و برای کار تک کاربره (کاری که هم زمانی نداشته باشه توش ) خوبه ولی ممکنه بخواید فقط روی دسکتاپ خروجی بدید و نیاز باشه که حالت سرور داشت هباشه نرم افزار و از چندین کلاینت بهش دسترسی باشه اونطوری بهتره از Mysql یا mariadb یا ... استفاده کنید. در جایی ممکنه بحث سنگین تر باشه که لازم بشه از NOSQL استفاده کنید که البته با توجه به عنوان پروژه شما بعید میدونم لازم بشه. موفق باشید.
  11. بهنام صباغی

    سلام خب کاری که دارید میکنید یک کار اشتباه و غیر اصولی هست شما دارید به ازای هر فایل یک ترد میسازید که این کار درستی نیست شما باید یه توازنی بین این دو پیدا کنید مثلا ممکنه حالت بهینه برای شما این باشه که هر یک دهم از فایلها رو یک ترد مدیریت کنه میتونید از پارالل فور هم استفاده کنید برای این موضوع که خودش هندل میکنه شما سیستمتون تا یه میزان ترد موازی رو پاسخ میده که بعید میدونم بلاتر از 16 باشه پس سختن تردهای بیشتر هزینه ساخت ترد به ازای هر فایل رو به دوشتون میذاره چون ری نیم کردن فایل کار سنگینی نیست به نظر درست نمیاد. شما حد اکثر اگر سیستم i7 دارید که 4 هسته فیزیکی داره و 8 هسته مجازی و تا 16 ترد موازی رو پشتیبانی میکنه حد اکثر تعداد تردهای بهینه 16 هست. بهتره قبل از این که دست به کاری بزنید درموردش مطالعه کنید پیدا کردن میزان ترد بهینه خودش کلی جریان داره اینی که من گفتم از نظر سخت افزاری هست ولی بحث خود کاری که میخواید انجام بدید هم یک تعداد ترد بهینه داره که ممکنه از این تعداد کمتر باشه یعنی ممکنه شما 16 ترد بسازید طولانی‌تر از حالتی باشه که 4 ترد میسازید.
  12. بهنام صباغی

    سلام این پروژه رو دو سال پیش نوشتم یه نگاه بندازید برای اسکرول میتونید ببینید : GitHub - FONQRI/AndroidBookQmlSimple: This is a simple android book that i developed it by Qt framework and QML language but it's not so Principles. این تیکه کد هم برای اضافه کردن داینامیک هست میتونید توی دلیگیت محتوای متفاوتی رو توی هر صفحه با توجه به ایندکسش لود کنید : import QtQuick 2.9 import QtQuick.Window 2.2 import QtQuick.Controls 2.2 Window { visible: true width: 640 height: 480 title: qsTr("Hello World") id: root SwipeView { id: view anchors.fill: parent currentIndex: 1 height: parent.height - but.height width: parent.width contentItem: ListView { id: list model: 1 delegate: Page { background: Rectangle { color: index % 2 ? "yellow" : "blue" } Label { text: "Page1" anchors.centerIn: parent } } snapMode: ListView.SnapOneItem orientation: ListView.Horizontal } } Button { id: but text: "create" onClicked: { list.model++ indicator.count = list.model indicator.currentIndex = view.currentIndex indicator.update() } anchors.horizontalCenter: parent.horizontalCenter } PageIndicator { id: indicator count: view.count currentIndex: view.currentIndex anchors.bottom: view.bottom anchors.horizontalCenter: parent.horizontalCenter } } موفق باشید.
  13. بهنام صباغی

    -pipe
  14. بهنام صباغی

    سلام بستگی به محیط توسعه و ... داره ولی امکان مالتر ترد کامپایل شدن وجود داره میتونید با فلگ تنظیم کنید با چند ترد برنامه کامپایل بشه.
  15. با سلام اولین چیزی که بعد یاد گرفتن درست درمون برنامه نویسی باید توی خودت تغییر بدی همینه که دیدت فقط درآوردن پول نباشه. البته این به این معنی نیست که پول بده یا نباید بابت کاری که میکنیم پول بگیریم. بلکه فقط نباید کار کنی که پول در بیاری وقتی حرفه‌ای میشی که دیدگاهت تغییر کنه و کار رو برای یک هدف والاتر انجام بدی مثلا یکی کار میکنه در مسیر علم پیش میره و بابت کاری که میکنه پول خوبی هم میگیره . یکی داره یک کار ارزشی میکنه و با قدرت و مطالعه پیش میره و در راه خدا کار میکنه اونم پول خوبی میگیره. ولی یکی هم هست که فقط دنبال پوله و همینقدر کوچیک فکر میکنه و تا اواخر عمرش همش همینطور پیش میره. برای تمام این مواردی که گفتم آدمای واقعی در نظر دارم ولی اسم نمیتونم بیارم.
×