Category Archives: نرم‌افزار

اسکرین شات Screenshot

اسکرین شات یا Screenshot چیست؟

اسکرین شات (Screenshot) به تصویری گفته می‌شود که از محتویات موجود در صفحه نمایش رایانه، گوشی هوشمند، تلویزیون و … تهیه می‌شود. برخی اوقات از عبارت Screen Capture به عنوان معادلی برای این اصطلاح استفاده می‌شود.

اسکرین شات ها به ویژه با گسترش سیستم عامل های مجهز به واسط کاربری گرافیکی رواج پیدا کردند. امروزه این تصاویر معمولا به صورت نرم افزاری با کمک قابلیت‌های پیشفرضی که در سیستم عامل درنظر گرفته شده یا با استفاده از برنامه هایی که برای همین منظور طراحی شده‌اند تهیه می‌شوند. تصویر حاصل در اغلب موارد یا به صورت خودکار با فرمت های رایج فایل‌های تصویری (نظیر JPG و PNG) در مسیری مشخص ذخیره می‌شود و یا در کلیپ بورد قرار می‌گیرد.

در روشی دیگر که البته از کاربرد کمتری برخوردار است با کمک یک دوربین عکاسی از صفحه نمایش دستگاه، اسکرین شات تهیه می‌شود. در این شیوه معمولا برای داشتن تصویری واضح و با کیفیت از تجهیزات و لنزهای ویژه‌ای استفاده می‌شود.

توجه داشته باشید Screenshot ها ممکن است از تمام صفحه یا صرفا بخشی از صفحه (نظیر محتویات یک پنجره) ایجاد شوند.

اسکرین شات Screenshot
یک Screenshot تمام صفحه از سیستم عامل ویندوز 7

کاربردهای اسکرین شات

اسکرین شات ها معمولا برای نگه داری و ذخیره محتوایی که کاربر روی صفحه نمایش دستگاه خود مشاهده می‌کند و همین‌طور به اشتراک گذاری محتوای صفحه با دیگران به کار می‌رود. به عنوان مثال ممکن است برای آموزش نحوه ثبت نام در یک سایت از تعدادی تصویر حاوی صفحه اصلی سایت استفاده شود که در آن با شماره‌هایی ترتیب مراحل ثبت نام نمایش داده شده است.

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

نحوه گرفتن اسکرین شات

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

در سیستم عامل ویندوز ساده‌ترین و فراگیرترین روش برای تهیه اسکرین شات استفاده از کلید Print Screen است. با فشردن این کلید تصویری حاوی محتوای کنونی صفحه در کلیپ بورد قرار می‌گیرد و کاربر می‌تواند به دلخواه خود آن را با کمک یک نرم افزار، ویرایش یا ذخیره نماید. علاوه بر این می‌توانید از ترکیب کلیدهای Alt + Print Screen برای تهیه تصویر از پنجره فعال کمک بگیرید. در بسیاری از توزیع‌های رایج لینوکس هم روشی مشابه با ویندوز برای ایجاد اسکرین شات ها به کار می‌رود اما در macOS از ترکیب Cmd + Shift + 3 برای این منظور استفاده می‌شود.

لازم به ذکر است در برخی موارد امکان تهیه اسکرین شات به صورت دیجیتال با روش‌های معمولی وجود ندارد. نرم افزارها یا بازی هایی که در آن‌ها از Hardware Overlay استفاده می‌شود و همین طور اپلیکیشن های اندرویدی که اجازه ثبت اسکرین شات از آن‌ها داده نشده است از جمله این موارد استثنا به شمار می‌روند.

نرم افزارهای ثبت Screenshot

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

ویندوز

  • ShareX
  • PickPick
  • LightShot
  • Greenshot
  • Snagit
  • Snipping Tool (که به صورت پیشفرض از نسخه ویستا به بعد همراه با سیستم عامل ویندوز عرضه می‌شود)

لینوکس

  • Shutter
  • ImageMagick
  • Gnome Screenshot

مک او اس

  • LightShot
  • Snagit
  • Skitch
  • Monosnap

اندروید

  • Screenshot Touch
  • Screen Master
  • Super Screenshot

در کنار مواردی که به آن اشاره شد برخی از نرم افزارها از قابلیت های اختصاصی برای ایجاد Screenshot برخوردار هستند. برای مثال مرورگرهای وب رایج قادرند با کمک افزونه ها یا به صورت داخلی از محتوای صفحات وب تصویر تهیه کنند. نرم افزار ویرایش تصویر GIMP و اغلب برنامه های Microsoft Office نیز امکان گرفتن Screenshot از پنجره‌های مختلف را برای استفاده در داخل نرم افزار و اسناد گوناگون فراهم می‌کنند.

فیلمبرداری از صفحه

فیلمبرداری یا ضبط ویدیو از محتوای صفحه (Screen Recording) که به اسکرین کست (Screencast) نیز مشهور است معمولا توسط نرم افزارهای ویژه‌ای انجام می‌‌شود که امکان ضبط همزمان صدا را نیز برای کاربر فراهم می‌کنند. از کاربردهای رایج فیلمبرداری از محتوای صفحه می‌توان به تهیه آموزش ویدئویی برای نرم افزارهای رایانه ای اشاره کرد.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

پچ یا وصله Patch

وصله یا Patch چیست؟

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

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

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

وصله های امنیتی (Security Patches) از جمله مهم ترین انواع وصله هایی هستند که برای رفع آسیب پذیری های امنیتی (به خصوص در مورد سیستم عامل ها) منتشر می‌شود.

پچ - وصله - بروزرسانی Patch - Update
پچ ها برای بروزرسانی، تعمیر یا بهبود نرم افزارهای رایانه ای منتشر می‌شوند.

بروزرسانی و اعمال پچ ها

امروزه معمولا دریافت وصله ها برای نرم افزارها و سیستم عامل های مختلف به سادگی از طریق اینترنت انجام می‌شود و اعمال آن‌ها نیز بدون نیاز به درگیری کاربر با جزئیات فنی این فرایند صورت می‌گیرد. در اغلب نرم افزارهای پرکاربرد مکانیزمی طراحی می‌شود که به صورت دوره‌ای در دسترس بودن وصله های جدید را بررسی می‌کند و به صورت خودکار یا پس از تأیید کاربر پروسه دریافت و اعمال آن‌ها را آغاز می‌نماید.

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

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

در بسیاری از موارد، نهایی شدن و اعمال این تغییرات نیازمند بسته شدن نرم افزار یا ری استارت کردن سیستم خواهد بود. با اینحال بروزرسانی های پویا این امکان را فراهم می‌کنند که حین اجرای نرم افزار، تغییرات لازم اعمال شود. گفتنی است اغلب پس از نصب پچ ها، نسخه نرم افزار نیز تغییر می‌کند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

یوتیلیتی – نرم افزار سودمند Utility Software

یوتیلیتی یا نرم افزار سودمند Utility Software چیست؟

نرم افزار سودمند (Utility Software) یا به اختصار یوتیلیتی (Utility) گونه‌ای از نرم افزارهای سیستمی است که به منظور تسهیل امور مرتبط با آنالیز، پیکربندی، بهینه سازی (بهبود کارایی) و نگه داری یک رایانه به کار می‌رود. به عبارت بهتر این نرم افزارها معمولا برای پشتیبانی از زیرساخت های رایانه و مدیریت منابع سیستم مورد استفاده قرار می‌گیرند.

تعدادی از نرم افزارهای سودمند پرکاربرد و اصلی همراه با اغلب سیستم عامل های امروزی عرضه می‌شود. با این حال کاربر می‌تواند برای دسترسی به امکانات بیشتر، از نرم افزارهای شخص ثالث و تخصصی‌تر استفاده کند.

مثال هایی از نرم افزارهای سودمند

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

نرم افزار سودمند - یوتیلیتی - Utility Software
محیط نرم افزار پیش فرض برای رفع قطعه قطعه شدگی درایوهای دیسک در سیستم عامل ویندوز 10 – منظور از قطعه قطعه شدگی، پراکندگی مکانی فایل ها روی دیسک است که منجر به کاهش سرعت دسترسی به فایل ها می‌شود. این نرم افزار، نمونه‌ای از نرم افزارهای یوتیلیتی به شمار می‌رود.

یوتیلیتی ها و اپلیکیشن ها

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

فایل آرشیو Archive File

فایل آرشیو یا Archive File چیست؟

فایل آرشیو (Archive File) فایلی است که از یک یا چند فایل رایانه ای تشکیل شده است. معمولا از این نوع فایل ها برای ذخیره سازی تعدادی فایل مختلف در قالب فایلی واحد یا به منظور فشرده سازی فایل‌ها استفاده می‌شود. آرشیو کردن فایل ها باعث تسهیل انتقال، به اشتراک گذاری و نگه داری آن‌ها می‌شود.

فایل های آرشیو علاوه بر فایل هایی که در خود جای داده‌اند معمولا شامل فراداده هایی در مورد ساختار دایرکتوری ها، اطلاعات لازم برای شناسایی و تصحیح خطا و … نیز می‌باشند.

از جمله مهم‌ترین و رایج‌ترین پسوندهای فایل آرشیو می‌توان به zip و rar و tar و 7z و iso اشاره کرد. برای ایجاد و ویرایش فایل های آرشیو از برنامه هایی موسوم به File Archiver استفاده می‌شود که معمولا به صورت پیشفرض نمونه‌هایی از آن‌ها در سیستم عامل های مختلف وجود دارد. WinRAR و 7-Zip و WinZip از جمله مشهورترین این نرم افزارها هستند.

کاربردهای رایج فایل های آرشیو

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

کاربرد رایج دیگری که برای بسیاری از فرمت های Archive تعریف می‌شود امکان فشرده سازی فایل هاست. فرمت هایی که از این قابلیت پشتیبانی می‌کنند مجموعه‌ای از فایل ها را در قالب فایلی با حجم کمتر آرشیو می‌کنند. استفاده از این فایل ها علاوه بر اینکه امکان ارسال سریع و آسان محتوای موردنظر را فراهم می‌کند بلکه فضای لازم برای نگه داری فایل ها را نیز کاهش می‌دهد.

همچنین بسیاری از نرم افزارها در قالب یک فایل آرشیوی توزیع می‌شوند. این فایل ها که با نام پکیج (Package) شناخته می‌شوند ممکن است شامل سورس کد یا فایل اجرایی نرم افزار باشند. از جمله این نوع فایل ها می‌توان به فایل های با فرمت APK (برای اندروید) و JAR (برای جاوا) اشاره کرد.

علاوه بر مواردی که به آن اشاره شد بسته به فرمت آرشیو، ممکن است از آن برای رمزنگاری فایل ها، تقسیم فایل های بزرگ به تعدادی فایل کوچک‌تر و ایجاد Disk Image (نظیر فایل هایی با فرمت ISO) نیز استفاده شود.

فایل آرشیو Archive File
یک فایل آرشیو با فرمت zip (سمت چپ) که حاوی پنج فایل با پسوند jpg است (سمت راست).

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپیدیا

نرم افزار کراس پلتفرم Cross-Platform Software

نرم افزار کراس پلتفرم یا Cross-Platform Software چیست؟

نرم افزار کراس پلتفرم (Cross-Platform Software) به نرم افزاری گفته می‌شود که برای چند پلتفرم رایانشی پیاده سازی شده است. به عبارت بهتر کراس پلتفرم ها نرم افزارهایی هستند که روی چند محیط یا بستر رایانشی شامل سخت افزارها یا سیستم عامل های مشخص و مختلف قابل اجرا هستند. به عنوان مثال دو سیستم رایانه ای، یکی با معماری x86 که روی آن سیستم عامل ویندوز نصب شده است و دیگری یک رایانه مک با سیستم عامل مکینتاش می‌توانند پلتفرم هایی برای اجرای یک نرم افزار کراس پلتفرم باشند. به این نرم افزارها، نرم افزارهای چند پلتفرمی یا چند سکویی (Multi-Platform) و مستقل از پلتفرم (Platform-Independent) نیز گفته می‌شود.

گفتنی است برنامه ای که حداقل روی دو پلتفرم قابل اجراست یک برنامه کراس پلتفرم به شمار می‌رود. اما اگر تصور می‌کنید چند پلتفرمی بودن صرفا به رایانه ها و آن هم نرم افزارهای کاربردی محدود می‌شود کاملا در اشتباه هستید و لازم است بدانید این اصطلاح حتی به دنیای بازی های ویدیویی نیز ورود پیدا کرده است. شما می‌توانید بازی‌های محبوب فراوانی را پیدا کنید که روی پلتفرم‌های مختلف نظیر کنسول های Xbox و PlayStation، رایانه ها و گوشی های همراه با سیستم عامل های مختلف قابل اجرا هستند.

نرم افزار کراس پلتفرم یا چند پلتفرمی Cross-Platform Software
یک نرم افزار کراس پلتفرم نرم افزاری است که روی چند پلتفرم مختلف قابل اجراست.

انواع نرم افزارهای چند پلتفرمی

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

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

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

توسعه نرم افزار کراس پلتفرم

معمولا ساخت نرم افزارهای چند پلتفرمی در مقایسه با نرم افزارهای تک پلتفرمی زمانبرتر و دشوارتر است چرا که سیستم عامل ها و معماری های مختلف سخت افزاری دارای واسط های برنامه نویسی کاربردی (API) مختلف و ساختارهای مخصوص به خودشان هستند. بنابراین برنامه ای که برای یک سیستم عامل یا معماری رایانه ای به خصوص توسعه یافته است روی سایر پلتفرم ها به طور معمول قابل اجرا نخواهد بود.

از آنجایی که توسعه یک نرم افزار چند پلتفرمی از طریق نوشتن سورس کدهای مختلف برای هر پلتفرم به افزایش هزینه‌ها و زمان موردنیاز برای توسعه منجر خواهد شد لذا توسعه دهندگان به دنبال روش‌های ساده‌تری برای ایجاد این نوع نرم افزارها هستند. تجرید پلتفرم (Platform Abstraction) از جمله این روش‌هاست که کمک می‌کند برنامه حاصل بدون توجه به اینکه روی چه معماری رایانه ای یا سیستم عاملی قرار گرفته است قابل اجرا باشد (درست نظیر برنامه هایی که روی یک Java Virtual Machine اجرا می‌شوند). “یک بار بنویس، همه جا اجرا کن” (Write Once, Run Anywhere) مفهومی محبوب در میان توسعه دهندگان نرم افزارهای کراس پلتفرم است که در همین راستا رایج شده است و اجازه می‌دهد کد نوشته شده روی هر پلتفرمی اجرا شود. البته ممکن است در توسعه بخش‌هایی از این نوع برنامه ها برای پلتفرم های مختلف از ویژگی‌های خاص آن پلتفرم نیز استفاده شود که در هر حال در مقایسه با کدنویسی های مجزا برای پلتفرم های مختلف آسان‌تر خواهد بود.

علاوه بر این، ابزارهای توسعه کراس پلتفرم نیز به منظور تسهیل ساخت نرم افزارهای چند پلتفرمی در دسترس توسعه دهندگان قرار دارد. از جمله این ابزارها می‌توان به فون گپ (PhoneGap)، زامارین (Xamarin)، اپسلریتر (Appcelerator)، الکترون (Electron) و 8th اشاره کرد.

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

پلتفرم رایانشی Computing Platform

پلتفرم رایانشی یا Computing Platform چیست؟

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

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

در سمت مقابل، پلتفرم ها عملکردهای سطح پایین را به صورت آماده در اختیار توسعه دهنده قرار می‌دهند و به این ترتیب او را از سر و کله زدن با رویه‌های متفاوت برای انجام عملی مشخص در سخت افزارهای مختلف نجات می‌دهند. برای مثال، یک سیستم عامل می‌تواند با وجود تفاوت در سخت افزارهایی که روی آن‌ها قابل اجراست، یک دستور واحد برای دسترسی به شبکه در اختیار توسعه دهنده قرار دهد.

نمونه هایی از انواع پلتفرم ها

جالب است بدانید تنها سیستم عامل ها و سخت افزارهای مختلف نیستند که به عنوان محیطی برای اجرای نرم افزارها شناخته می‌شوند. برای مثال یک مرورگر وب نیز فارغ از اینکه روی چه سیستم عامل یا سخت افزاری در حال اجراست می‌تواند برای وب اپلیکیشن ها و افزونه هایی که روی آن اجرا می‌شوند نقش یک Platform را ایفا کند. ماشین مجازی هم می‌تواند بستری برای اجرای نرم افزارها باشد. به عنوان مثال Java Virtual Machine (به اختصار JVM) محیطی را برای اجرای برنامه های کامپایل شده در قالب Java bytecode فراهم می‌آورد و همین طور نسخه مجازی سازی شده یک سیستم که سیستم عامل ویندوز روی آن نصب شده است اجازه می‌دهد نرم افزارهای ویندوزی را روی یک مک اجرا کنید. پلتفرم های رایانش ابری (Platform as a Service – PaaS) نیز از جمله دیگر نمودهای پلتفرم های رایانه ای به شمار می‌روند.

سیستم عامل های مختلف رایانه ها و دستگاه های همراه نظیر مایکروسافت ویندوز، لینوکس و مک او اس، اندروید و iOS، فریم ورک های نرم افزاری (نظیر دات نت فریم ورک، پلتفرم چندرسانه ای Adobe Flash، پلتفرم جاوا) و معماری های سخت افزاری (نظیر ARM و x86) مثال‌هایی از این Platform ها به شمار می‌رود.

نرم افزارها و محیط اجرای آن‌ها

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

برخی از نرم افزارها تنها روی یک Platform خاص قابل اجرا هستند؛ به عبارت بهتر توسعه دهنده این نوع نرم افزارها، آن‌ها را تنها برای اجرا شدن روی یک Platform معین طراحی کرده است. بنابراین امکان اجرای معمولی آن‌ها روی بسترهای دیگر وجود ندارد.

در مقابل، برخی از نرم افزارها برای اجرا شدن روی پلت‌فرم های مختلف پیاده سازی شده‌اند. این نرم افزارها به نرم افزارهای کراس پلتفرم یا چندپلتفرمی (Cross-Platform Software) مشهور هستند. نرم افزارهای Cross-Platform معمولا دارای نسخه های کامپایل شده مجزا برای Platform های مختلف می‌باشند و یا به صورت مستقیم و بدون سفارشی سازی روی بسترهای گوناگون رایانه ای قابل اجرا هستند.

پلتفرم Platform
Platform ها پایه و بستر اجرای نرم افزارها هستند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

حالت تاریک Dark mode

حالت تاریک یا Dark mode چیست؟

حالت تاریک (Dark mode) نوعی رنگ بندی (شِمای رنگی) محبوب و پرکاربرد است که در آن متن و المان های واسط کاربری گرافیکی با رنگ‌های نسبتا روشن روی پس زمینه تاریک قرار می‌گیرند. حالت تاریک با عنوان حالت شب (Night mode)، تم تاریک (Dark Theme) و شمای رنگی روشن روی تاریک (Light-on-dark Color Scheme) نیز شناخته می‌شود.

این تم رنگی در نقطه مقابل حالت معمولی (یا شمای رنگی تاریک روی روشن) قرار می‌گیرد که در آن متون و المان ها با رنگ تیره روی پس زمینه روشن (تقریبا سفید) نمایش داده می‌شوند.

مزایای حالت تاریک

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

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

فراگیری و استفاده از تم تاریک

در سال‌های اخیر با گسترش استفاده از دستگاه‌های همراه و تحقیقات انجام شده پیرامون مزایای Dark mode، بسیاری از توسعه دهندگان شناخته شده به پشتیبانی از این حالت در واسط های کاربری خود روی آورده‌اند. در حال حاضر برخی از سیستم عامل ها، اپلیکیشن های همراه محبوب، نرم افزارهای دسکتاپ پرکاربرد و حتی برخی از سایت ها هم از تم تاریک پشتیبانی می‌کنند.

حالت تاریک - حالت شب Night Mode - Dark Mode
تم تاریک در محیط Microsoft Visual Studio
حالت تاریک - حالت شب Night Mode - Dark Mode
حالت شب در دو اپلیکیشن ویندوز 10

معمولا در واسط های کاربری گرافیکی که از حالت شب پشتیبانی می‌کنند کاربر می‌تواند متناسب با نیاز خود، به این حالت سوئیچ کند. با این وجود در برخی از سیستم عامل ها و اپلیکیشن ها، امکان زمان بندی برای سوئیچ خودکار به حالت شب نیز فراهم شده است.

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

آندو و ریدو Undo and Redo

آندو Undo و ریدو Redo چیست؟

آندو (Undo) عنوان یکی از قابلیت‌های پرکاربرد در بسیاری از نرم افزارهای رایانه ای است که در حالت مرسوم، آخرین تغییر انجام گرفته در سند را به حالت قبلی آن بازمی‌گرداند. ریدو (Redo) معادل معکوس فرمان Undo است به این معنا که می‌تواند عمل آندو شده را مجددا انجام دهد و سند را به حالت پیش از اجرای Undo بازگرداند.

به عبارت بهتر، Undo به معنای خنثی سازی یا بازگردانی عمل انجام شده به حالت قبل است در حالیکه Redo به معنای انجام مجدد عمل Undo شده است.

وجود قابلیت‌های Undo و Redo در نرم افزارها این امکان را فراهم می‌کنند که کاربر بتواند بدون نگرانی در مورد اشتباه کردن یا نامناسب بودن نتیجه عملی که می‌خواهد انجام دهد به کار خود روی سند ادامه دهد.

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

لازم است بدانید همانطور که اجرای یک فرمان Undo منجربه فعال شدن Redo می‌شود، معمولا انجام هر ویرایش یا عمل جدید روی یک سند نیز، فرمان Redo را غیرفعال می‌کند. به این ترتیب کاربر صرفا بلافاصله پس از اجرای یک یا تعدادی فرمان Undo می‌تواند از فرمان Redo استفاده نماید. این درحالیست که فرمان Undo می‌بایست به محض انجام هر عمل قابل بازگردانی در نرم افزار فعال شود.

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

جزئیات و نحوه اجرای فرامین آندو و ریدو

در سیستم عامل ویندوز، اغلب نرم افزارها برای آندو از ترکیب کلیدهای Ctrl + Z یا Alt + Backspace و برای دستور ریدو نیز از ترکیب Ctrl + Y یا Ctrl + Shift + Z استفاده می‌کنند. معمولا این فرامین از طریق منوی Edit یا منوی زمینه ای (Context Menu) نرم افزار نیز قابل دسترسی هستند.

آندو و ریدو Undo and Redo
فرامین Undo و Redo در منوی Edit ویرایشگر متن Notepad++

برای فراهم آوردن امکان استفاده از فرمان Undo، اعمال انجام شده توسط کاربر در قالب یک بافر یا لیست ویژه موسوم به تاریخچه دستورات یا اعمال (Action History) نگه داری می‌شوند.

تعداد اعمال پیشین که قابل آندو کردن هستند در برنامه‌های مختلف متفاوت است. در برخی نرم افزارهای قدیمی، کاربر تنها می‌توانست یک عمل انجام شده آخر را آندو کند درحالیکه در بسیاری از نرم افزارهای امروزی، بافرهای Undo و Redo قادر هستند تا ده‌ها و صدها عمل انجام شده گوناگون را در خود نگه داری کنند.

آندوی خطی و غیرخطی

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

در مقابل مدل خطی، نوع دیگری از Undo موسوم به نوع غیرخطی (Non-Linear Undo) نیز وجود دارد. در آندوی غیرخطی، کاربر می‌تواند اعمال ذخیره شده در بافر را به ترتیب دلخواه خود آندو کند. به عنوان مثال اگر در یک سند ابتدا یک جدول و سپس یک تصویر اضافه کرده باشید و نرم افزار از آندوی غیرخطی پشتیبانی کند شما می‌توانید جدول را با کمک لیست مربوط به فرمان آندو حذف کنید بدون اینکه تصویر حذف شود!

نرم افزارهایی که در آن‌ها به طور همزمان چندین کاربر می‌توانند روی یک سند به صورت مشترک کار کنند مفهوم دیگری به نام آندوی چند کاربره (Multi-user Undo) نیز شکل می‌گیرد. آندوی چند کاربره در دو نوع سراسری (Global) و محلی (Local) تعریف می‌شود. در گونه سراسری، آخرین عمل انجام شده روی سند، فارغ از اینکه توسط کدام کاربر انجام شده به حالت قبل برگردانده می‌شود. اما در نوع محلی هر کاربر تنها می‌تواند اعمال مربوط به خود را آندو کند.

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

مسدودسازی آگهی Ad blocking

مسدودسازی آگهی یا Ad blocking چیست؟

مسدودسازی آگهی (Ad blocking) به فرایندی گفته می‌شود که طی آن با کمک نرم افزارهای مخصوصی، محتوای تبلیغاتی یک صفحه وب (یا اپلیکیشن موبایل) حذف می‌شود.

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

در مقابل استفاده از ابزارهای مسدودکننده آگهی علاوه بر اینکه سرعت بارگیری صفحات را افزایش می‌دهد و از اتلاف منابع جلوگیری می‌کند، محتوای مورد نظر کاربر را به شکلی منسجم در اختیار او قرار داده و مانع از به هم ریختگی تمرکز او می‌شود.

روش‌های مسدودسازی آگهی

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

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

دستکاری فایل hosts از جمله دیگر روش‌هایی است که می‌تواند برای بلاک کردن تبلیغات مورد استفاده قرار گیرد. این فایل، یک فایل متنی سیستمی است که Hostname ها را به نشانی IP شان نگاشت می‌کند. اغلب کلاینت‌های DNS پیش از آنکه به یک سرور DNS متصل شوند ابتدا این فایل محلی را روی سیستم کاربر مورد بررسی قرار می‌دهند. چنانچه در این فایل سرورهای توزیع کننده آگهی به نشانی‌های IP ناموجود نگاشته شود آگهی های دریافتی از آن سرور مسدود می‌شوند.

برخی از مسدودکننده‌های آگهی به جای حذف تمام آگهی‌ها از یک صفحه، می‌توانند با استفاده از لیست‌های سفید یا سیاه تنها به مسدود کردن آگهی های نامناسب یا ناخواسته اقدام نمایند.

مسدودسازی آگهی Ad blocking
نمایی از وضعیت یک افزونه مسدودسازی آگهی در مرورگر موزیلا فایرفاکس – چهار آگهی از صفحه کنونی حذف شده است.

واکنش متقابل در برابر نرم افزارهای مسدودکننده آگهی

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا

سمت کلاینت Client-Side

سمت کلاینت یا Client-Side چیست؟

سمت کلاینت (Client-Side) اصطلاحی در مورد اعمالی است که در یک ارتباط کلاینتسرور توسط کلاینت انجام می‌شود.

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

به عنوان نمونه در مورد صفحات وب، جاوا اسکریپت یکی از مهم‌ترین زبان‌هایی به شمار می‌رود که دستوراتش در سمت کلاینت اجرا می‌شود. به این معنا که ابتدا فایل حاوی کد جاوا اسکریپت از سرور دانلود می‌شود و سپس توسط کلاینت (در اینجا مرورگر وب که روی سیستم کاربر نصب شده است) اجرا می‌شود. HTML و CSS نیز از جمله دیگر زبان‌های وب هستند که محتوای آن‌ها توسط کلاینت رندر و اجرا می‌شود.

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

پیوندهای پیشنهادی تک دیک

لینک واژه در ویکیپدیا