بایگانی برچسب‌ها : معایب

لیست پیوندی Linked List

لیست پیوندی یا Linked List چیست؟

لیست پیوندی (Linked List) مجموعه‌ای از عناصر داده‌ای است که در آن هر عنصر به عنصر بعدی خود اشاره می‌کند. این عناصر که در کنار یکدیگر تشکیل یک دنباله می‌دهند گره (Node) نامیده می‌شوند و در ساده‌ترین فرم (لیست یک طرفه)، هرکدام شامل یک فیلد داده و یک فیلد اشاره‌گر (ارجاع یا لینک) به گره بعدی خود می‌باشند. این اشاره‌گر با عناوینی چون Next Pointer یا Next Link نیز شناخته می‌شود.

از این ساختمان داده برای پیاده‌سازی لیست، پشته، صف، آرایه انجمنی و … استفاده می‌شود. معمولا برای دسترسی به یک لیست پیوندی از اشاره‌گری به اولین گره لیست استفاده می‌شود که به آن head (یا front) گفته می‌شود. در لیست‌های پیوندی ساده، معمولا اشاره‌گر گره آخر برابر با null (تهی) خواهد بود. در برخی موارد برای تسهیل افزودن گره به انتهای لیست، اشاره‌گری به نام tail درنظر گرفته می‌شود که به آخرین گره لیست اشاره می‌کند.

لیست پیوندی یک طرفه singly linked list
نمونه‌ای از یک لیست پیوندی یک طرفه با سه گره (نود) – در این لیست پیوندی هر گره دارای دو فیلد (یک فیلد برای نگه‌داری داده و دیگری اشاره‌گر به گره بعدی) می‌باشد.

اعمال رایج لیست‌های پیوندی

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

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

لیست پیوندی
در این لیست پیوندی می‌خواهیم گره جدیدی را پس از گره اول درج کنیم.

در صورتی که خصوصیات گره اول را داشته باشیم این کار به آسانی تنها با دو عمل انجام می‌شود. به این ترتیب که ابتدا اشاره‌گر گره جدید به گره بعدی گره A اشاره می‌کند و سپس اشاره‌گر گره A به گره جدید اشاره می‌کند.

لیست پیوندی
ابتدا اشاره‌گر گره جدید به گره بعد از گرهی که دارای داده A است اشاره می‌کند.
در مرحله دوم اشاره‌گر گره اول به گره جدید اشاره می‌کند.

شبه کد زیر نحوه انجام این کار را به زبان ساده بیان می‌کند. nodeA گرهی است که می‌خواهیم nodeB را پس از آن درج کنیم و next متغیر اشاره‌گر گره است:

function insertAfter(Node nodeA, Node nodeB)
     nodeB.next := nodeA.next
     nodeA.next := nodeB

انواع لیست‌های پیوندی

برای افزایش کارایی لیست‌های پیوندی یک طرفه (Singly Linked List)، گونه‌های مختلفی بر اساس همین ساختار شکل گرفته‌اند که از رایج‌ترین آن‌ها می‌توان به لیست پیوندی دو طرفه (Doubly Linked List) و لیست پیوندی دایره‌ای یا حلقوی (Circular Linked List) اشاره نمود.

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

لیست پیوندی دو طرفه doubly linked list
نمونه‌ای از یک لیست پیوندی دو طرفه با سه گره – در این شکل هر گره دارای سه فیلد (یک فیلد برای نگه‌داری داده، یک فیلد برای اشاره‌گر به گره بعدی و یک فیلد برای اشاره‌گر به گره قبلی) می‌باشد.

مزایا و معایب لیست‌های پیوندی

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

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

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

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

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

مدیر کلمه عبور Password Manager

مدیر کلمه عبور یا Password Manager چیست؟

مدیر کلمه عبور یا پسورد منیجر (Password Manager) به ابزاری گفته می‌شود که امکان ایجاد و بازیابی کلمه‌های عبور را برای کاربر فراهم می‌کند. معمولا کلمه‌های عبور کاربر با کمک چنین ابزارهایی در یک پایگاه داده رمزنگاری شده محلی یا آنلاین نگه‌داری می‌شود و کاربر تنها با به خاطر سپردن یک کلمه عبور اصلی (موسوم به Master Password) که برای استفاده از این ابزار تعیین می‌کند می‌تواند به تمام کلمات عبور و اطلاعات ذخیره شده دسترسی پیدا کند.

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

از جمله مشهورترین ابزارهای مدیریت کلمه عبور می‌توان به LastPass و Dashlane اشاره نمود.

انواع ابزارهای مدیریت کلمه عبور

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

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

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

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

مزایای استفاده از یک مدیر کلمه عبور مناسب

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

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

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

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

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

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

رایانه شخصی مجتمع All in One PC

رایانه شخصی مجتمع یا All in One PC چیست؟

رایانه شخصی مجتمع (All in One PC به اختصار AIO) نوعی رایانه شخصی رومیزی (Desktop PC) است که در آن جعبه‌ی نگهدارنده‌ی قطعات داخلی سیستم با نمایشگر رایانه ادغام شده است. به عبارت بهتر در رایانه‌های مجتمع، از کیس رایانه (Computer Case) به عنوان جعبه‌ای مجزا برای نگه‌داری قطعات سخت‌افزاری خبری نیست.

اولین رایانه‌های All in One در دهه‌ی 1980 میلادی تولید شدند. هرچند در نمونه‌های ابتدایی این نوع رایانه‌ها (همانند Kaypro II) از نمایشگرهای CRT (لامپ پرتوی کاتدی) استفاده می‌شد که به فضای قابل توجهی نیاز داشتند اما با رشد فناوری‌های سخت‌افزاری و ظهور نمایشگرهای Flat از فضای موردنیاز این رایانه‌ها کاسته شد. به علاوه برخی از مدل‌های امروزی آن‌ها مجهز به صفحه نمایش‌های لمسی هستند که امکان تجربه‌ی کاری مشابه گوشی‌های هوشمند و تبلت‌ها را برای کاربر فراهم می‌آورد.

مزایا و معایب رایانه‌های All in One

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

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

رایانه رومیزی All in One
نمونه‌ای از رایانه‌های رومیزی All in One

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

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

رایانه رومیزی Desktop Computer

رایانه رومیزی یا Desktop Computer چیست؟

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

کیس‌های رایانه‌ای معمولا به صورت افقی یا عمودی در زیر یا کنار نمایشگر یا میز رایانه قرار می‌گیرند. در نوع دیگری از رایانه‌های رومیزی که به رایانه‌های شخصی مجتمع (یا All in One PC به اختصار AIO) موسوم هستند خبری از یک جعبه مجزا نیست و در واقع اجزای داخلی کیس با نمایشگر رایانه ترکیب شده است. این نوع از رایانه‌های رومیزی که در برخی نمونه‌های امروزی مجهز به صفحه نمایش‌های لمسی نیز می‌باشد فضای کمتری نسبت به مدل معمولی اشغال کرده و به علاوه در آن‌ها از شلوغی کابل‌های متعدد نیز خبری نیست.

اولین رایانه رومیزی (ماشین حساب قابل برنامه ریزی) که به صورت تجاری در اواسط دهه 1960 وارد بازار شد Programma 101 نام داشت. در دهه 1980 با ظهور رایانه‌های IBM PC و پس از آن Apple Macintosh استفاده از رایانه‌های رومیزی رواج بیشتری پیدا کرد و به گونه‌ی غالب رایانه‌های شخصی تبدیل شد. اما به مرور زمان در اواسط دهه 2000 میلادی، رایانه‌های رومیزی با کاهش اقبال مردم جایگاه خود را به لپ‌تاپ‌های قابل حمل دادند.

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

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

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

یک رایانه رومیزی Desktop Computer
نمای گرافیکی از یک رایانه رومیزی (Desktop Computer) معمولی
رایانه رومیزی All in One
نمونه‌ای از رایانه‌های رومیزی All in One

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

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

دستور GOTO

دستور GOTO چیست؟

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

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

ساختار کلی این دستور به شکل goto identifier می‌باشد که در آن منظور از identifier برچسب یا شماره خطی است که به آن نقطه قرار است پرش صورت بگیرد. (یک برچسب در واقع دنباله‌ای از کاراکترهاست که در بسیاری از زبان‌ها با علامت : به پایان می‌رسد و یک نقطه معین در سورس کد را مشخص می‌کند). در قطعه کد زیر که به زبان C++ نوشته شده است نحوه استفاده از این دستور نمایش داده شده است:

...
goto label;
...
label:
...

مزایا و معایب استفاده از دستور GOTO

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

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

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

کاغذ الکترونیک Electronic paper

کاغذ الکترونیک یا Electronic paper چیست؟

کاغذ الکترونیک (Electronic paper) یا E-paper نوعی دستگاه نمایشگر است که به لحاظ تشابه ظاهری، محتوای تصویری در آن به گونه‌ای نمایش داده می‌شود که گویا با جوهر معمولی روی صفحه کاغذ نوشته یا ترسیم شده است.

ویژگی‌ها، مزایا و معایب کاغذهای الکترونیک

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

در اغلب فناوری‌های مورد استفاده در کاغذهای الکترونیک، نمایش محتوای ثابت نیازی به الکتریسیته ندارد بلکه تنها تغییر محتوای صفحه است که نیازمند مصرف انرژی است. همین ویژگی کافیست تا دستگاه‌هایی که در آن‌ها از کاغذهای الکترونیک استفاده شده است از نظر صفحه نمایش مصرف الکتریسیته‌ی بسیار پایینی داشته و گاها تا هفته‌ها بدون نیاز به شارژ باتری به فعالیت خود ادامه دهند. به علاوه e-paper ها دارای زاویه دید بسیار گسترده‌ای هستند و برخی از انواع آن‌ها همانند یک کاغذ معمولی انعطاف‌پذیر می‌باشند.

در کنار این ویژگی‌های شگفت‌انگیز، کاغذهای الکترونیک با معایبی هم دست و پنجه نرم می‌کنند. این صفحه‌نمایش‌ها دارای نرخ تازه‌سازی (Refresh rate) بسیار پایین‌تری در مقایسه با صفحه‌نمایش‌های معمولی هستند. بنابراین کاربر نمی‌تواند انتظار داشته باشد در تعاملات سریع با e-paper ها، همان تجربه‌ای را به دست آورد که حین کار با صفحه نمایش یک گوشی هوشمند معمولی داشته است. به علاوه در برخی از این صفحه‌نمایش‌ها هنگام تازه‌سازی صفحه، ممکن است بخش‌های شبح‌مانندی از محتوای قبلی نیز مشاهده شود. این معایب باعث می‌شود کاربرد کاغذهای الکترونیک اغلب به موارد خاصی محدود شود که در آن‌ها نیازی به واکنش‌دهی سریع صفحه نمایش وجود ندارد.

کاربردهای کاغذ الکترونیک

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

کاغذ الکترونیک e-paper
نمونه‌ای از کاغذهای الکترونیک انعطاف‌پذیر

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

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

کوکی Cookie

کوکی یا Cookie چیست؟

کوکی (Cookie)، داده‌های اندکی است که از سوی یک وبسایت به هنگام بازدید به رایانه‌ی کاربر فرستاده شده و توسط مرورگر در فضای مخصوصی روی رایانه کاربر ذخیره می‌شود. زمانی که کاربر مجددا وارد آن سایت می‌شود، اطلاعات ذخیره شده برای سرور ارسال می‌شود تا از وضعیت پیشین کاربر مطلع شود. کوکی با عناوین مختلفی نظیر کوکی مرورگر (Browser Cookie)، وب کوکی (Web Cookie)، اچ تی تی پی کوکی (HTTP Cookie) و اینترنت کوکی (Internet Cookie) نیز شناخته می‌شود. از نظر لغوی Cookie به معنای کلوچه می‌باشد.

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

هر کوکی دارای اجزای مختلفی است که عبارتند از: نام (Name)، مقدار (Value) و ویژگی (Attribute) ها که البته مورد آخر الزامی نبوده و اطلاعاتی از جمله زمان انقضای کوکی و … را نگه داری می‌کند.

کاربردهای رایج کوکی‌ها

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

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

انواع رایج کوکی ها

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

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