ایجاد یک افزونه Extension برای گوگل‌کروم با کمک هوش‌مصنوعی

یک برنامه‌نویس هم یک مخترع است و هم یک هنرمند، یک مخترع است چون ابداع‌گر روشی برای انجام بهتر و سریع‌تر و دقیق‌تر کاری است و هنرمند است چون طبق تعریف دانشنامه بریتانیکا هنر یعنی «استفاده از توانایی و تخیل در خلق آثار زیبا، محیط یا تجاربی که می‌توان با دیگران به اشتراک گذاشت». از آنجایی که یک برنامه نویس پیش از نوشتن برنامه باید در ذهن خود آن را مجسم نموده و با کمک تخیل خود آن را در ذهن بسازد و سپس با پیاده‌سازی آن به یک زبان برنامه‌نویسی، آن را خلق کرده و در اختیار دیگران قراردهد، لذا مانند یک هنرمند تجسمی عمل‌ می‌کند. اما در این میان هوش مصنوعی چه کمکی به ما در انجام کارها می‌نماید؟ حتما شنیده‌اید و بسیار عنوان‌شده که با هوش‌مصنوعی، برنامه‌نویسی از میان می‌رود؟ برنامه‌نویسان نخستین قربانیان هنر خودشان هستند؟ و  از این‌گونه نوشته‌ها، اما واقعیت این است هنوز برنامه‌نویسی نیازمند تخیل است که هوش مصنوعی فاقد آن است(حداقل تا امروز) این یک برنامه‌نویس است که با تخیل خودش برنامه را در ذهن پرورش می‌دهد و پیش از آنکه آن را خلق کند، در ذهن خودش آن را بدون در نظر گرفتن زبانی که میخواهد با آن اقدام به برنامه‌نویسی کند می‌سازد، البته یک برنامه‌نویس ایده‌آل تنها به ذهن اکتفا نکرده و با کمک ابزارهای مناسب اول آن ایده‌ذهنی را بر روی کاغذ می‌آورد.

این مقدمه بسیار طولانی شد، در این مقاله می‌خواهیم یک افزونه یا همان Extension به گوگل‌کروم اضافه کنیم که مثلا یک پیام به ما بدهد و ...، لازم به ذکر است برای این منظور از هوش مصنوعی دیپ‌سیک استفاده شده‌است(بدلیل رایگان و قابل دسترس بودن) البته باید گفت من خودم با جاوا اسکریپت را در حد یک مبتدی آشنایی دارم و هیچ‌گونه آشنایی با نحوه ایجاد یک افزونه در گوگل‌کروم را ندارم

  • 122
  • 0
ادامه مطلب

تولید پرزنتیشن پاورپوینت بصورت خودکار(بخش یکم)

در مطلب ترفندهایی برای کار با پاورپوینت(ایجاد نمودار با برنامه نویسی VBA) دیدیم که چگونه می‌توان یک نمودار را توسط برنامه نویسی ایجاد کرد و با مطلب دستوراتی برای تغییر استایل یک نمودار در پاورپوینت توانستیم تغییراتی در شکل و رنگ و ... یک نمودار بدهیم، در این مطلب که یک رشته از مطالب بهم پیوسته می‌باشد(این بخش، نخستین قسمت آن است)، شما با نحوه ایجاد یک پرزنتیشن کامل از روی داده‌ها آشنا خواهیدشد، البته باید گفت این رشته مطالب برای کسانی مفید است که بصورت روزانه، هفتگی و یا ماهانه اقدام به تهیه گزارش ‌های مشابه می‌کنند. مثلا شما مسئول نظر سنجی از مشتریان شرکت می‌باشید و باید بصورت مستمر(مثلا ماهیانه) و با سریعترین زمان این اطلاعات را در قالب فایل پاورپوینت جهت تصمیم‌گیری‌های مدیریتی در اختیار مدیران قراردهید، و یا شما باید همه هفته اطلاعات بازاریابان خود را جمع‌آوری و در اختیار مدیران قراردهید، درست است که نرم‌افزار پاورپوینت برای این منظور تهیه نشده و اینگونه کاربرد مختص کشور ما می‌باشد، اما چه می‌شود کرد.

  • 186
  • 0
ادامه مطلب

ابزار خطکش در WPF

برنامه‌نویسان بخصوص کسانی که برنامه تهیه گزارش‌های قابل چاپ ایجاد می‌کنند حتما نیاز به یک ابزاری برای تعیین محل دقیق قرار‌گیری اطلاعات دارند مثلا فرض‌کنید می‌خواهید درون یک فرم کاغذی چاپ‌شده و آماده که سربرگ شرکت را نیز دارد اطلاعات فاکتور فروش را چاپ‌کرده و تحویل‌دهید. این‌کار درظاهر ساده می‌باشد اما قرار دادن اطلاعات دقیقا در محلی‌خاص بسیار سخت است برای نمونه قراردادن نام مشتری دقیقا در محل مورد نظر(یعنی در جلوی کلمه نام‌مشتری که روی کاغذ چاپ شده‌است) نیاز به چندین بار سعی‌وخطا دارد تا کار بدرستی انجام‌شود، اما با سعی‌وخطا هم دقیقا نمی‌توان اطلاعات را درست ارنج(Arrange) نمود. اما ابزاری مانندخطکش که ابعاد کاغذ درآن مشخص‌باشد کمکی بزرگ در این راه به برنامه‌نویس می‌کند. با این ابزار دقت قراردادن اشیا در محلی خاص افزایش یافته و امکان هم‌تراز نمودن افزایش می‌یابد. البته این ابزار از نظر امکانات بسیار ابتدایی می‌باشد، یک خطکش باید دارای واحداندازه‌گیری، قابلیت زوم(Zoom)شدن و یا اسکیلینگ(Scaling)، قابلیت اسکرول(Scroll)شدن و چندین امکان دیگری باشد تا به توان از آن استفاده نمود. در این مقاله سعی می‌گردد در چند مرحله تک‌تک قابلیت‌های موردنیاز را به آن اضافه‌نمود.

  • 515
  • 0
ادامه مطلب

نمودار پای(PieChart) در WPF

برای برنامه‌نویسی در حوزه اطلاعات در بیشتر زمان‌ها نیاز به تهیه انواع نمودارها از جمله نمودارپای(PieChart)، میله‌ای(BarChart)، خطی(LineChart) و ... می‌باشد، زیبای یک برنامه به وجود همین نمودارها وابسته می‌باشد چراکه فقط با یک نگاه می‌تواند اطلاعات بسیاری را از یک نمودار دریافت کرد. ابزارهای مختلفی برای تولید این نمودارها موجود است برای نمونه اکسل(Excel)، پاوربی‌آی(PowerBI)، کلیک‌ویو(Qlikview) و ... اما همه این ابزارها خارج از محیط برنامه‌نویسی‌مان هستند و استفاده از نمودارهای تولیدشده توسط این نرم‌افزارها درون برنامه خودمان امکان‌پذیر نیست. در محیط برنامه‌نویسی ویژوال‌استودیو نیز می‌توان از ابزارهای تولید نمودار استفاده کرد مانند wpfToolkit، LiveChart، ScottPlot، oxyplot، Telerik، DevExpress، Syncfusion، SciChart WPF و بسیاری دیگر از این نوع ابزارها موجود است که برخی رایگان و برخی مانند تلریک را باید خریداری نمود. هرکدام از این ابزارها دارای قابلیت‌ها و محدودیت‌های خودشان می‌باشند. در این مقاله هدف ساخت یک نمودارپای بصورت مستقل از این ابزارها و فقط با کمک WPF می‌باشد. قابلیت‌هایی چون لیبل(lable)، دونات‌شکل(Doughnut)، خروج‌ازمرکز(Indent) و ... در آن درنظر گرفته‌شده که شما نیز می‌توانید قابلیت‌های مدنظر خودتان را به آن بیفزایید.

  • 563
  • 0
ادامه مطلب

کانواس با قابلیت اسکرول و خطکشی در WPF

برنامه‌نویس‌هایی که برنامه برای طراحی گزارش‌ها تهیه‌می‌کنند، نیازمند یک محیطی هستند که بتوانند درون آن اشیا را قرار داده و جابجا نمایند و یا ابعاد آن را تغییر داده و شکل را دوران بدهند، یکی از خصوصیت‌ها در جابجایی‌ها نیاز به هم‌تراز کردن اشیا با هم می‌باشد. پانل کانواس(Canvas) محیط خوبی برای طراحی می‌باشد اما این قابلیت که بتوان با آن اشیا را هم‌تراز کرد درونش قرار ندارد، در ضمن با چیدن اشیا در کانواس ابعاد آن تغییر می‌کند اما قابلیت اسکرول ندارد، لذا شما همیشه به اندازه پنجره‌ای که کانواس درون آن قرار دارد را مشاهده می‌کنید(در واقع محدوده‌ قابل دیدن ابعاد کانواس است). برای اینکه بتوان اشیا را هم‌تراز کرد حداقل باید صفحه طراحی بصورت خط کشی شده باشد و درصورتی که اشیا جابجا شوند و از محدوده ابعاد کانواس خارج شوند باید بتوان با اسکرول آن‌ها را مشاهده‌نمود.برای قابلیت اسکرول‌کردن از یک کنترل به نام اسکرول‌ویوور(ScrollViwer) استفاده‌می‌گردد.

  • 410
  • 0
ادامه مطلب

تعریف یک ویژگی‌وابسته(DependencyProperty) در WPF

پیش از شروع لازم است تعریفی از ویژگی داشته‌باشیم، یک ویژگی، خاصیت و یا پراپرتی(Property) {در تمامی این مقاله ویژگی به معنی پراپرتی می‌باشد} یک مکانیزم انعطاف‌پذیر برای خواندن، نوشتن و یا محاسبه یک فیلد یا متغیر می‌باشد. ویژگی را به‌گونه‌ای می‌توان استفاده کرد که گویی یک متغیر عمومی است، یعنی مانند تعریف یک متغیرعمومی(Public) در یک کلاس عمل‌می‌کند. اما در متغیرعمومی امکان کنترل داده ورودی وجود ندارد، برای نمونه فرض کنید در کلاس شخص(Person) یک متغیرعمومی از نوع اعداد صحیح برای ورود اطلاعات قد افراد تعریف شده باشد، اما می‌دانیم قد افراد نمی‌تواند بیش از 250سانتیمتر باشد، ولی بدلیل تعریف عمومی آن، امکان کنترل قد برای جلوگیری از ورود اطلاعات نادرست نیست. اما اگر همین متغیر را به‌صورت یک ویژگی تعریف‌کنیم، امکان اعتبارسنجی(Validate) برای آن وجود دارد. در برنامه‌نویسی استاندارد(شاید استاندارد واژه مناسبی برای آن نباشد) وقتی می‌خواهید یک ویژگی تعریف‌کنید نخست یک متغیر خصوصی(Private variable) تعریف‌می‌کنید و با دستورهای Get و Set مقادیر ویژگی را تنظیم(Set) کرده و یا(Get) برمی‌گردانید(به این ویژگی‌ها CLR Property که مخفف Common Language Runtime Property است گفته‌می‌شود).

  • 812
  • 0
ادامه مطلب

بدست‌آوردن تمپلیت ابزارها‌ی تلریک و کنترل‌ها در WPF

زیبایی در طراحی ابزار یکی از صفات بارز در WPF می‌باشد، داشتن کنترل‌هایی همانند کنترل‌های موجود در برنامه‌نویسی فرم‌بیس از نظر کارایی مناسب است اما بدلیل استفاده WPF از دایرکت‌ایکس در پس‌زمینه اگر بتوان کنترل‌های گرافیکی زیباتر و جذاب‌تر با همان کارایی ایجاد کرد کاری‌است بسیار دلچسب. برنامه‌نویس‌هایی که با ابزارها و کنترل‌های تلریک آشنایی دارند, حتما RadToggleSwitchButton را دیده‌اند، یک کنترل زیبا بصورت دکمه خاموش و روشن که مانند کلید لامپ می‌باشد اما همانند یک ToggleButton در WPF عمل‌می‌کند، و یا یک RadPathButton که به شما امکان تهیه یک دکمه(Button) با شکل دلخواه(با استفاده از PathGeometry) را می‌دهد و کارایی آن دقیقا معادل Button در WPF است و یا ابزارهای ساخت منوبار و تولزبار و ... که همگی بصورت بسیار زیبا در تلریک یافت می‌شود. این قابلیت‌ها فقط بدلیل محیط گرافیکی در WPF امکان‌پذیر است. اما برای تهیه هرکدام از این کنترل‌ها باید تمپلیت(Template) آن‌ را ساخت، این‌کار چندان ساده نیست و شاید حتی دربرخی موارد غیرممکن به نظربرسد. اما اگر بشود تمپلیت یک کنترل را بدست‌آورد براحتی می‌توان نمونه مشابه(با کمی تفاوت) ایجاد کرد. در ادامه نحوه بدست‌آوردن تمپلیت یک کنترل دلخواه را خواهید دید.

  • 335
  • 0
ادامه مطلب

نقشه ایران با قابلیت انتخاب استان در WPF

موضوعات : متوسطه, سی‌شارپ, زمل

برای یک برنامه‌نویس بخصوص کسی که می‌خواهد برنامه‌ای برای مدیریت ارشد بنویسد، هیچ چیز مهمتراز نمایش داده‌ها با زیبایی هرچه‌بیشتر و قابلیت فهم بالاتر نیست. مدیریت ارشد همیشه انتظار دارد با یک نگاه تمامی اطلاعات مورد نیازش را بدست‌آورد. برای نمونه، اطلاعات فروش در استان‌ها را هم می‌توان با استفاده از یک جدول نمایش‌داد هم با استفاده از نقشه کشور. نمایش گرافیکی برروی نقشه به‌مراتب زیباتر و قابل فهم‌تر از یک جدول می‌باشد. برنامه‌نویسی هنر است اما از آن مهم‌تر نحوه نمایش و طراحی زیبا و کاربرپسند است. زمانی محیط کار در کامپیوتر سیستم عامل تکست‌بیس(TextBase) به‌نام DOS بود اما عدم زیبایی باعث تغییر محیط سیستم‌عامل به محیطی گرافیکی یعنی همین ویندوز شد که هم زیباست و هم کاربرپسند. در محیط برنامه‌نویسی WPF برای نمایش نیاز به اطلاعات موردنیاز برای دستور PATH داریم. اما از کجا چنین نقشه‌ای بیابیم که اطلاعات موردنیاز ما را داشته باشد. با یک جستجوی ساده متوجه‌می‌شوید که نقشه‌ها با فرمت svg همانی است که نیازداریم. اینگونه نقشه‌ها در اینترنت به فراوانی یافت می‌شود. فقط کافی‌است یک جستجوی ساده انجام‌دهید.

  • 542
  • 0
ادامه مطلب

خواندن داده اکسل و نمایش آن در کامبوباکس به‌همراه عکس در WPF

موضوعات : تخصصی, سی‌شارپ, زمل

خواندن داده برای یک برنامه‌نویس بخصوص اگر بخواهد برنامه‌هایی که برپایه دیتا(دیتابیس) هستند بنویسد بسیار مهم خواهدبود، بخش مهمی از این نوع برنامه‌ها عملیات‌هایی چون جستجو، درج, بروزرسانی‌ و حذف داده‌ها را شامل می‌شوند. این عملیات‌ها اگر با استفاده از اوراکل(Oracle)، اس‌کیوال(SQL) و یا برنامه‌هایی مشابه باشد تا حدود زیادی ساده و راحت است اما اگر داده‌ها در یک فایل متنی یا یک اکسل ذخیره شده‌باشد این‌گونه عملیات‌ها سخت‌تر و مشکل‌تر خواهدبود چرا که ساختار داده خوانده شده، یک ساختار جدولی نیست و امکاناتی چون جستجو، درج، بروزرسانی و حذف را باید توسط برنامه شبیه‌سازی کرد. در اینجا هدف فقط خواندن داده‌ها از یک شیت(Sheet) خاص از یک فایل اکسل است و نمایش آن‌ها درون یک کامبوباکس است، البته می‌خواهیم کامبوباکس‌مان عکس را نیز نشان دهد. در گذشته(منظور برنامه‌های فرم‌بیس) گذاشتن عکس در کامبوباکس مشکلات فراوانی داشت و نیاز به استفاده از APIها بود.

  • 818
  • 0
ادامه مطلب

کنترل با امکان جابجایی توسط موس در WPF

برنامه‌نویسان بخصوص کسانی که می‌خواهند برنامه‌هایی مشابه طراحی فرم( Form Builder) و یا ریپورت(Report Builder) در ویژوال‌استودیو یا نرم‌افزارهای مشابه بنویسند لازم دارند که وقتی یک شی یا یک کنترل توسط کاربر به برنامه اضافه می‌شود، کاربر بتواند آن را با استفاده از موس حرکت دهد و مکان آن را با موس مشخص کند. این کار در محیط فرم‌بیس(FormBase) با بکارگیری ایونت‌(Event)های MouseDown، MouseUp و MouseMove برای هر کنترل امکان‌پذیر است. اما در حالت فرم‌بیس شی‌ها و کنترل‌ها همگی درون یک فرم یا یک پانل(Panel) قرار دارند و حرکت درون هردو (فرم یا پانل) با استفاده از تنظیم دو خاصیت(Property) لفت(Left) و تاپ(Top) برای آن کنترل یا شی امکان‌پذیر است. اما در WPF ما پانل‌های مختلفی چون Canvas، Grid و ... داریم که تغییر مکان کنترل‌ها در آن‌ها روش‌های متفاوتی دارند. مثلا در پانل Canvas برای تنظیم محل یک شی باید با استفاده از دستورهای SetLeft و SetTop و بکارگیری خاصیت وابسته(Attached Property) Left و Top محل شی را درون Canvas تغییر داد اما برای Grid لازم است خاصیت Margin را برای آن شی یا کنترل تغییردهیم. در اینجا هدف آموزش نحوه تغییرمکان کنترل در Canvas می‌باشد.

  • 1587
  • 0
ادامه مطلب