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

فایل آرشیو 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 نیز از جمله دیگر زبان‌های وب هستند که محتوای آن‌ها توسط کلاینت رندر و اجرا می‌شود.

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

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

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

پرکردن خودکار Autofill

پرکردن خودکار یا Autofill چیست؟

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

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

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

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

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

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

ردیاب فعالیت Activity Tracker

ردیاب فعالیت یا Activity Tracker چیست؟

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

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

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

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

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

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

ردیاب فعالیت Activity Tracker
ردیاب فعالیت Fitbit Charge 2

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

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

ترتیب عمقی Z-order

ترتیب عمقی یا Z-order چیست؟

ترتیب عمقی (Z-order) به ترتیب قرار گرفتن اشیاء روی یکدیگر در یک محیط گرافیکی رایانه ای گفته می‌شود. به عبارت بهتر Z-order در مورد اشیائی که می‌توانند هم پوشانی داشته باشند مشخص می‌کند کدام شئ روی شئ دیگر قرار می‌گیرد.

همانطور که می‌دانید در فضای سه بعدی، سه محور X (چپ و راست)، Y (بالا و پایین) و Z (عقب و جلو) قابل تصور است. اصطلاح Z-order در واقع به نحوه قرارگیری اشیا در راستای محور Z اشاره می‌کند. اگر ترتیب عمقی برای شئ A نسبت به شئ B مقدار بیشتری داشته باشد در صورتی که این دو شئ با یکدیگر هم پوشانی جزئی یا کامل داشته باشند A روی B قرار می‌گیرد و در نمایش دو بعدی، بخشی از شئ B یا تمام آن از دید کاربر پنهان می‌شود.

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

ترتیب قرارگرفتن اشکال روی هم در یک نرم افزار ویرایشگر تصویر مبتنی بر المان های برداری براساس همین مفهوم مشخص می‌شود. در اغلب این ویرایشگرها حین ترسیم اشیا، شئ تازه ترسیم شده روی اشیاء پیشین قرار می‌گیرد و کاربر می‌تواند با روش‌های مشخصی این ترتیب را تغییر دهد. رایج‌ترین این روش‌ها استفاده از دستورات مخصوصی مانند Bring to Front (برای قرار دادن شئ روی مابقی اشیا) و Send to Back (برای قرار دادن شئ پشت اشیاء دیگر) می‌باشد (این دستورات معمولا در منوی زمینه‌ای اشیا از طریق راست کلیک کردن روی آن‌ها نمایان می‌شود). علاوه بر این، تعیین ترتیب عمقی برای اشیاء موجود در اپلیکیشن های طراحی سه بعدی و هم‌چنین المان های موجود در صفحات HTML (با کمک تعیین مقدار z-index در قوانین CSS) امکان‌پذیر است.

ترتیب عمقی Z-order
مقدار Z-order برای شکل شماره یک نسبت به دو شکل دیگر مقدار بزرگتری است و برای شکل شماره دو کوچکترین مقدار را داراست. شیئی که مقدار ترتیب عمقی بزرگتری دارد روی مابقی اشیاء قرار می‌گیرد.
ترتیب عمقی Z-order
دستورات Bring To Front و Send To Back در نرم افزار Microsoft Word 2016 برای تغییر Z-order اشکال

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

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