رجیستری در ویندوز یک بخش مهم و حیاتی است. اهمیت این بخش به دلیل این است که ویندوز و نرمافزار های زیادی تنظیمات خود را در رجیستری ذخیره میکنند؛ تنظیماتی از قبیل فرمت فایل ها، رنگ بندی و تصویر پسزمینه، و یا تعیین برنامهای که بعد از ورود کاربر اجرا شود (شل یا پوسته) همگی این ها و حتی اطلاعات حساستر در رجیستری ذخیره شدهاند.
امروز میخواهیم در مورد این بخش مهم در سیستمعامل ویندوز صحبت کنیم پس با وبسایت کرمهای کامپیوتر همراه باشید.
رجیستری چطور کار میکند؟
این موضوع میتواند شروع خوبی برای مطلب ما باشد. رجیستری ویندوز درواقع یک دیتابیس درختی (Hierarchical) است. از ویژگی های مهم رجیستری این است که داده ها موقتی نستند؛ یعنی تمام اطلاعات بعد از ریستارت باید باقی بمانند. پس بدیهی است که داده ها باید بر روی هارد (به قول اهل فن ها حافظه جانبی) ذخیره شوند. سیستم عامل ویندوز این داده ها را در هارد ذخیره و در هر راهاندازی آن ها را در حافظه اصلی سیستم یا همان RAM ذخیره میکند. بنابراین دسترسی به Registry بسیار سریع خواهد بود (در حالت ایدهآل).
رجیستری ویندوز به طور کل از ۵ بخش به نام Hive (به معنی کندو) تشکیل شده است. هایو ها یک دستهبندی برای کلید ها و مقدار ها هستند. این کندو ها به ترتیب زیر هستند:
HKEY_CLASSES_ROOT (HKCR): حاوی اطلاعات کلاس، ارتباط بین برنامه ها و اطلاعات فرمت های فایل است
HKEY_CURRENT_USER (HKCU): اطلاعات مربوط به کاربر فعلی
HKEY_LOCAL_MACHINE (HKLM): اطلاعاتی که بین کاربر ها مشترک هستند و مربوط به سیستم فعلی است
HKEY_USERS (HKU): به اذای هر کاربر در سیستم یک شاخه جدید (کلید) در این هایو ایجاد میشود
HKEY_CURRENT_CONFIG (HKCC): تنظیمات مربوط به ویندوز
همانطور که میبینید در لیست بالا جلوی نام هر کندو در پرانتز نام مختصر آن نیز نوشته شده که گاهاً در آدرس دهی از آن ها استفاده میشود. البته برخی از hive ها صرفا جهت حفظ سازگاری هستند و در واقع بیشتر شبیه یک میانبر به یک کلید دیگر عمل میکنند. برای مثال HKCR در واقع یک ادغام از دو کلید در آدرس های HKEY_LOCAL_MACHINE\Software\Classes و HKEY_CURRENT_USER\Software\Classes است.
برنامه ویرایش رجیستری
هرچند که برنامه هایی برای این کار نوشته شدهاند اما در بسیاری از مواقع نرمافزار Regedit خود ویندوز کاملا کافی خواهد بود و نیازی به استفاده از نرمافزار های دیگر نیست. برای اجرای اون هم میتونید در منوی استارت به دنبال آن بگردید! یا آن که کلید های R+ را بزنید و در پنجره run نام این برنامه را وارد کنید تا اجرا شود.
نمایی از برنامه regedit و لیست Hives یا کندو ها
البته علاوه بر این یک رابط خط فرمان به نام reg نیز هست که میتوان از آن نیز استفاده کرد و به دلیل خط فرمانی بودن پیچیدگی بیشتری دارد.
درسترسی به Hives (کندو ها)
همانطور که پیشتر گفته شد این هایو ها در هارد سیستم ذخیره و نگهداری میشوند. به همین خاطر رجیستری ویندوز با دسترسی به این فایل ها میتواند بدون وارد شدن به آن نیز تغییر کند! این نکته میتواند موجب نقض امنیت ویندوز شود.
تمامی این فایل ها در آدرس Windows\System32\Config هستند:
Supporting files
Registery Hives
Software,Software.log and Software.sav
HKEY_LOCAL_MACHINE\Software
System, System.alt, System.log, and System.sav
HKEY_LOCAL_MACHINE\System
Sam, Sam.log, and Sam.sav
HKEY_LOCAL_MACHINE\SAM
Security, Security.log, and Security.sav
HKEY_LOCAL_MACHINE\Security
Default, Default.log, and Default.sav
HKEY_USERS\DEFAULT
System, System.alt, System.log, System.sav, Ntuser.dat, and Ntuser.dat.log
HKEY_CURRENT_CONFIG
فایل هایی که برای دسترسی به یک کندو موجود هستند
کلید ها و مقدار ها
همانطور که گفته شد رجیستری یک نوع دیتابیس درختی است. میتوان آن را به ساختار پوشه ها و فایل ها تشبیه کرد. همانطور که هر پوشه میتواند شامل چند پوشه و چند فایل دیگر باشد هر کلید در رجیستری نیز میتواند شامل چند کلید و مقدار دیگر باشد.
در سمت چپ ساختار درختی کلید ها و در سمت راست مقدار ها هستند
نکته دیگر این است که هر کلید همواره دارای یک مقدار پیشفرض به نام (Default) و از نوع REG_SZ است. مقادیر میتوانند از انواع مختلفی باشند؛ برخی از رایج ترین انواع این ها هستند:
REG_BINARY: داده های باینری
REG_DWORD: یک عدد ۳۲ بیت
REG_EXPAND_SZ: یک متن که میتواند شامل متغیر های Environment هم باشد (مثل %path%)
REG_SZ: یک رشته متن ساده
در مطالب بعدی به شما کلید ها و مقدار های جالبی را در ویندوز معرفی میکنیم که با تغییر هر کدام میتوانید در ویندوز تغییراتی ایجاد کنید و گاهاً حتی امکانات جدیدی به آن اضافه کنید!
زمانی که سیستم شما به هر دلیلی دچار مشکل میشود و سیستمعامل به اصطلاح بالا نمیآید شما به چیزی به نام سیستمعامل زنده (live) نیاز خواهید داشت تا فایلها را برگردانید و سیستمعامل را تعمیر کنید. بسیاری از کاربران (نسبتاً مبتدی) به دلیل دسترسی نداشتن به یک نسخه سیستمعامل زنده دچار مشکلاتی از قبیل از دست دادن اطلاعاتشون هستند. در این پست قصد دارم به این موضوع بپردازم که سیستمعامل زنده چیست، چگونه راهاندازی میشود و چطور میتوان آن را نصب کرد.
سیستمعامل زنده (live) چیست؟
اگر شما کاربر ویندوز هستید حتما میدانید که ویندوز باید ابتدا بر روی سیستم شما نصب شود تا بتوان آن را اجرا نمود اما سیستمعامل ویندوز مانند سیستمعامل های دیگر میتواند بر یک DVD یا یک flash نیز نصب شود. در شرایطی که سیستمعامل شما به درستی کار نمیکند میتوان از این امکان برای تعمیر سیستم و دسترسی به فایل ها استفاده کرد. در چنین شرایطی برای آن که سیستمعامل با هدف اجرا شدن از یک حافظه فلش یا DVD سازگار باشد (سریع و سبک باشد) نسخهای از آن به عنوان live منتشر میشود که قابل حمل است و نیازی به نصب ندارد.
سیستمعامل های غیر ویندوزی
اکثر سیستم عامل های غیر از ویندوز عموما از خانواده شبهیونیکس نسخه لایو جدا ندارند، درواقع اصلا نیازی ندارند! در هنگام نصب این سیستمعامل ها از کاربر سوال میشود که آیا میخواهید نصب شود یا به صورت زنده از آن استفاده کنید.
اما اگر به دنبال استفاده از ویندوز به صورت زنده هستید با کرمهای کامپیوتر همراه باشید.
بوت یا Boot چیست؟
به نظرم بهتر است همین ابتدا این مسئله را روشن کنم که در مرحله boot یا به اصطلاح «بالا آمدن» سیستم چه اتفاقاتی رخ میدهد. در ابتدای کار و زمانی که کاربر سیستم را روشن میکند هیچ برنامهای برای اجرا در RAM نیست بنابراین باید فرآیندی صورت گیرد تا برنامه ها و دستورات در آن بارگذاری شوند. طی این فرایند CPU به کمک یک برنامه به نام BIOS که بر روی مادربورد در یک حافظه ذخیره شده به سراغ یک بخش قراردادی از هارد به نام Boot Sector میرود. در این بخش کد های مربوط به اجرای سیستم عامل (Boot Loader) ذخیره شده. با اجرای این کد ها مرحله بوت کامل میشود و سیستم عامل آماده استفاده خواهد بود.
برنامه بایوس این امکان را میدهد تا حافظهای که میخواهیم به طور موقت یا ثابت برنامه Boot Loader از آن خوانده و اجرا شود را انتخاب کنیم. معمولا این کار با کلید هایی مثل F8 یا F2 یا F12 یا Del انجام میشود! (جداً چرا یک کلید قراردادی بین تمام سیستم ها برای این کار نیست؟!) در بعضی سیستم ها هم هیچ کلیدی برای این کار نیست! و باید تنظیمات بایوس رو تغییر داد.
ویندوز PE چیست؟
ویندوز PE یا «WinPE» یک نسخه سبک شده از ویندوز برای نصب و یا تعمیر ویندوز است. درواقع مایکروسافت برای نصب یا تعمیر یک ویندوز از یک ویندوز استفاده میکند! علاوه بر این شما میتوانید ویندوز زنده خودتان را با ابزار های دلخواه بسازید.
البته برای تعمیر سیستم نیاز نیست که حتما نسخه دلخواه خودتون رو داشته باشید. افرادی هستند که ویندوز های زنده خوبی با ابزار های کاربردی ساختند و آن ها را در اینترنت منتشر میکنند. یکی از این منتشرکنندهها Hiren's bootCD است.
تصویر Hiren's BootCD PE که بر اساس ویندوز ۱۰ ساخته شده.
برای دانلود این سیستم عامل لایو میتوانید به اینجا بروید و آخرین نسخه از فایل ISO این سیستمعامل را دریافت کنید. بعد از دانلود فایل HBCD_PE_x64.iso شما میتوانید آن را بر روی DVD یا حافظه فلش (توصیه شده) راهاندازی کنید. البته با وجود امکانات بالای این نسخه چون در اون از ویندوز ۱۰ استفاه شده برای استفاده روی سیستم های با مقدار رم پایین و یا استفاده از طریق DVD کند خواهد بود. برای چنین مواقعی پیشنهاد من استفاده از نسخه 15.2 Hiren's BootCD هست که میتوانید از اینجا دانلود کنید.
برای آن که سیستم عامل زنده را نصب کنید نیاز به یک فایل با فرمت ISO دارید. این فایل میتواند بر روی DVD و حافظه فلش نصب شود. حافظه فلش به دلیل سرعت بالاتر اون نسبت به DVD بهتر است و موجب میشود لود شدن ویندوز سریع تر انجام شود.
نصب سیستم عامل زنده روی فلش
همانطور که در ابتدای این بخش در مورد بوت توضیح دادم؛ برای این که سیستمعامل بارگذاری شود باید یک برنامه به نام bootloader اجرا شود. این برنامه باید در بخش خاصی از حافظه فلش به نام bootsector نوشته شود. دقت کنید که در اکثر موارد تمامی اطلاعات فلش شما پاک (فرمت) میشود. برای این کار شما به برنامه هایی مانند rufus یا YUMI نیاز خواهید داشت.
Rufus
یک برنامه ساده و سریع برای نصب و راه اندازی فایل های iso بر روی فلش است. با استفاده از این نرمافزار شما میتوانید یک سیستمعامل را از طریق فلش خود نصب یا به صورت زنده اجرا کنید. این نرمافزار محیط کاری بسیار سادهای دارد و کاربران تازه کار بسیار راحت میتوانند به هدف خود برسند. این نرمافزار را میتوانید از اینجا دانلود کنید
Yumi
این نرمافزار به شما امکان میدهد بیشتر از یک سیستمعامل (یا هر ابزار بوت شونده دیگری) را بر روی فلشتان نصب کنید. مثلا میتوانید هم زمان یک نصب ویندوز و یک توزیع لینوکسی و مثلا HBCD 15.2 را بر روی فلشتان داشته باشید تا برای هر شرایطی آماده و یک جعبه ابزار بوت شونده همراهتان داشته باشید! این نرمافزار را نیز میتوانید از اینجا دانلود کنید.
امیدوارم این مطلب برای شما مفید بوده باشه. اگر مورد، مشکل یا مطلبی داشتید حتما در کامنت ها بگید. به امید دیدار مجدد 😉
امروز، دوشنبه ۲ اسفند ۱۴۰۰، جلسه دوم گروه نرمافزار آزاد هرمزگان را با حضور نویسنده این مطلب داشتیم و به پیشنهاد یکی از اعضا، یک بازی جالب کردیم: «به صورت چرخشی در یک دایره هرکس میبایست نام یک ماژول پایتونی، توکار یا غیر توکار، بگوید. نام ماژولها روی تابلو نوشته میشود و کسی حق تکرار اسم یک ماژول را ندارد. کسی که ظرف مدت زمان ۳۰ ثانیه نتوانست اسمی پیدا کند، از بازی خارج میشود و آخرین نفر باقی مانده در بازی برنده است». روشن است که در بازی حق جستجو کردن، نوشتن یا امثالهم را نداشتیم!
بازی سرگرمکنندهای برای ۴ پایتون کار بود و با برد نویسنده این مطلب به پایان رسید که البته با توجه به تجربه پایتونی چند سالهای که وجود داشت زیاد به دور از ذهن نیز نبود.
بازی بعدی، همان بازی قدیمی حدس زدن کلمات بود با این تفاوت که هرکس میبایست نام یک callable توکار پایتون(یک callable توکار پایتون، تابع یا کلاسی در پایتون است که جزو ماژول توکارهاست و نیازی به import کردن ندارد. مانند max یا len) را برمیگزید و دیگران حرف به حرف تلاش میکردند نام را حدس بزنند. بنده در ابتدا bin را برگزیدم که کسی موفق به حدس زدن آن حداکثر با ۴ خطا(۳+۱) نشد. البته به استثنای i وسط. سپس یکی از اعضا، len ord را انتخاب کرد که البته باز کسی از جمله نویسنده مطلب موفق به حدس زدن آن نشد. در نهایت بهنام سیمجو، نویسنده دیگر این وبلاگ eval را انتخاب کرد که بنده بعد از راهنمایی های بسیار از طرف بهنام موفق به حدس زدنش شدم.
در کل جلسه مفرحی بود با اینکه در مورد نرمافزار آزاد مستقیم صحبت نشد. این بازیها در جلسات حضوری یا مجازی قابل انجام هستند و شاید یک ایده خوب، ساخت یک نسخه تحت وب از آنها باشد.
بنده در دانشگاه هرمزگان دستیار تدریس یا حل التمرین(TA) برنامهسازی پیشرفته هستم. ضمن تصحیح پروژه دانشجویان به اشتباهاتی درست(!) در کد هایشان برخوردم. قسمت درست کدها این میباشد که «کار» میکنند اما به روش درست پایتون نوشته نشدهاند.
در پایتون دیکوریتوری(decorator) به اسم dataclass داریم. همانطور که از اسمش پیداست برای نوشتن کلاسهای داده بسیار مناسب است. کلاس زیر را در نظر بگیرید:
class Item:
def __init__(self, name, amount, price, description):
self.name = name
self.amount = amount
self.price = price
self.description = description
برنامهنویس میتوانست با استفاده از dataclass آنرا بنویسد:
from dataclasses import dataclass
@dataclass
class Item:
name: str
amount: int
price: int
description: str
سوم: تابع بیشتر از یک وظیفه به عهده دارد
تابع زیر را در نظر بگیرید:
def f(x: str):
if x.isdigit():
x = int(x)
return x ** 2
else:
raise ValueError("digits only")
بهتر نیست از همان اول تابع تنها یک کار «مربع کردن ایکس» را به جای دو کار «مربع کردن ایکس» و «چک کردن اینکه ایکس عدد صحیح هست یا نه و تبدیلش به عدد صحیح» را انجام دهد؟ البته این اشتباه تنها به توابع و زبان پایتون محدود نمیشود.
چهارم: تبدیل همهچیز به لیست و توپل
این اشتباه بین تازهکاران برای مپها،دیکشنریها و متدها مرتبطش،فیلترها و غیره به چشم میخورد. تکه کد زیر را در نظر بگیرید:
my_cool_list = list(some_dict.values())
my_new_list = [v+1 for v in my_cool_list]
میتوانست به صورت زیر نوشته شود:
my_cool_list = [v+1 for v in some_dict.values()]
پنجم: عدم پیروی از قرارداد های اسمی
هر زبانی معمولا یک(یا چند) قرارداد برای نامگذاری دارد که توسط جامعه زبان دنبال میشود و برای آنکه بین اسامی خوانا باشند و مشخص باشد که این اسم مربوط به چه چیزیست(نام تابع یا نام کلاس یا هرچیز دیگر) این قراردادها را دنبال میکنیم. در ادامه به ترتیب دو تکه کد را میبینید که اولی نامگذاری اشتباه یک تابع و کلاس سپس دومی نام گذاری درست همان تابع و کلاس را نشان میدهد. برای اطلاع از این قراردادها و البته دیگر قراردادهای موجود در پایتون، PEP8 را مطالعه کنید.
# This is wrong!
def Function(x: float):
return x**2 + 1
class my_cool_class:
...
# This is right!
def func(x: float):
return x**2 + 1
class MyCoolClass:
...
ششم: عدم قراردادن فاصله در جای مناسب
اینجا نیز پای PEP8 در میان است. به یک تکه کد کاملا اشتباه و معادل درستش بسنده میکنم.
class Core:
def __init__ (self, x,y) :
self.x= x
self.y =y
class Core:
def __init__(self, x, y):
self.x = x
self.y = y
هفتم: تعریف خصوصیت(attribute) جدید برای کلاس بعد از ایجاد
هرچند که پایتون به کد شما زمانی که اینکار را میکنید، ایراد وارد نمیکند اما بنظر شخص بنده عادت خوبی است که در متد __init__ کلاس تمام ویژگیهایی که نیاز دارید را تعریف کنید و در دیگر متدها تنها از آنها استفاده کنید. برای مثال این کد اینکار را نمیکند:
class C:
def __init__(self, x, y):
self.x = x
self.y = y**2
def m(self, z):
self.z = z
return z + 1
در کلاس C که در بالا تعریف شده است، خصوصیت z خارج از متد m تعریف شده است. در تکه کد زیر این مسئله اصلاح شده است:
class C:
def __init__(self, x, y):
self.x = x
self.y = y**2
self.z = 0
def m(self, z):
self.z = z
return z + 1
اشتباه دیگر مرتبط با این موضوع که زمان تصحیح پروژههای دانشجویان مشاهده شده است، انتصاب هر پارامتر یا آرگامونی است که در متدها دریافت میکنند(!):
class C:
def power_method(self, x, y):
self.x = x
self.y = y
return x ** y
کلام پایانی: چطور اشتباهات خود را کمتر کنیم؟
جدای از خواندن کد دیگر برنامهنویسان و خواندن best practice های هر زبانی که کار میکنید، میتوانید از نرمافزار linter استفاده کنید تا اشتباهات شما را گرفته و شاید تصحیح کند. همچنین سعی کنید «کد تمیز» بنویسید و از PEP8 تا جای ممکن پیروی کنید.
به صورت کلی، جنگو و django-admin تلاش میکنند با پیادهسازی پیشفرضهایی که مناسب هستند زندگی توسعهدهنده را آسانتر کنند. در نتیجه یک توسعه دهنده قادر خواهد بود تا یک اپلیکیشن را در زمان بسیار کمی بالا بیاورد. اما او مجبور است به اکثر پیشفرضها بچسبد. البته سفارشیسازی ممکن است اما اغلب تغییر پیشفرضها نیازمند فهمی درست از اتفاقاتی است که پشت صحنه میافتد که میتواند وقتگیر و نیازمند مهارت باشد.
فلسفه پشت طراحی فلسک کمی متفاوت است. فلسک تنوعی که میان وب اپلیکیشنها وجود دارد را میپذیرد و تصمیمات طراحی را به توسعهدهنده تحمیل نمیکند. جنگو ساخت یک اپلیکیشن که تقریبا مشکل را حل میکند را بسیار ساده میکند و به شما اجازه میدهد تصمیم آخرین قسمت را خودتان بگیرید اما فلسک ساخت کل وب اپلیکیشن را برای شما ممکن میکند. ممکن است برای شروع انرژی بیشتری بگیرد اما زمانی که قلقش دستتان آمد، آسمان محدودیت شماست. حتی اگر اپلیکیشن شما فقط کمی نسبت به اکثر دیگر اپلیکیشنها روی وب متفاوت باشد.
رجیستری در ویندوز یک بخش مهم و حیاتی است. اهمیت این بخش به دلیل این است که ویندوز و نرمافزار های زیادی تنظیمات خود را در رجیستری ذخیره میکنند؛ تنظیماتی از قبیل فرمت فایل ها، رنگ بندی و تصویر پسزمینه، و یا تعیین برنامهای که بعد از ورود کاربر اجرا شود (شل یا پوسته) همگی این ها و حتی اطلاعات حساستر در رجیستری ذخیره شدهاند.
امروز میخواهیم در مورد این بخش مهم در سیستمعامل ویندوز صحبت کنیم پس با وبسایت کرمهای کامپیوتر همراه باشید.
زمانی که سیستم شما به هر دلیلی دچار مشکل میشود و سیستمعامل به اصطلاح بالا نمیآید شما به چیزی به نام سیستمعامل زنده (live) نیاز خواهید داشت تا فایلها را برگردانید و سیستمعامل را تعمیر کنید. بسیاری از کاربران (نسبتاً مبتدی) به دلیل دسترسی نداشتن به یک نسخه سیستمعامل زنده دچار مشکلاتی از قبیل از دست دادن اطلاعاتشون هستند. در این پست قصد دارم به این موضوع بپردازم که سیستمعامل زنده چیست، چگونه راهاندازی میشود و چطور میتوان آن را نصب کرد.
سیستمعامل زنده (live) چیست؟
اگر شما کاربر ویندوز هستید حتما میدانید که ویندوز باید ابتدا بر روی سیستم شما نصب شود تا بتوان آن را اجرا نمود اما سیستمعامل ویندوز مانند سیستمعامل های دیگر میتواند بر یک DVD یا یک flash نیز نصب شود. در شرایطی که سیستمعامل شما به درستی کار نمیکند میتوان از این امکان برای تعمیر سیستم و دسترسی به فایل ها استفاده کرد. در چنین شرایطی برای آن که سیستمعامل با هدف اجرا شدن از یک حافظه فلش یا DVD سازگار باشد (سریع و سبک باشد) نسخهای از آن به عنوان live منتشر میشود که قابل حمل است و نیازی به نصب ندارد.
سیستمعامل های غیر ویندوزی
اکثر سیستم عامل های غیر از ویندوز عموما از خانواده شبهیونیکس نسخه لایو جدا ندارند، درواقع اصلا نیازی ندارند! در هنگام نصب این سیستمعامل ها از کاربر سوال میشود که آیا میخواهید نصب شود یا به صورت زنده از آن استفاده کنید.
اما اگر به دنبال استفاده از ویندوز به صورت زنده هستید با کرمهای کامپیوتر همراه باشید.
امروز، دوشنبه ۲ اسفند ۱۴۰۰، جلسه دوم گروه نرمافزار آزاد هرمزگان را با حضور نویسنده این مطلب داشتیم و به پیشنهاد یکی از اعضا، یک بازی جالب کردیم: «به صورت چرخشی در یک دایره هرکس میبایست نام یک ماژول پایتونی، توکار یا غیر توکار، بگوید. نام ماژولها روی تابلو نوشته میشود و کسی حق تکرار اسم یک ماژول را ندارد. کسی که ظرف مدت زمان ۳۰ ثانیه نتوانست اسمی پیدا کند، از بازی خارج میشود و آخرین نفر باقی مانده در بازی برنده است». روشن است که در بازی حق جستجو کردن، نوشتن یا امثالهم را نداشتیم!
بنده در دانشگاه هرمزگان دستیار تدریس یا حل التمرین(TA) برنامهسازی پیشرفته هستم. ضمن تصحیح پروژه دانشجویان به اشتباهاتی درست(!) در کد هایشان برخوردم. قسمت درست کدها این میباشد که «کار» میکنند اما به روش درست پایتون نوشته نشدهاند.
به صورت کلی، جنگو و django-admin تلاش میکنند با پیادهسازی پیشفرضهایی که مناسب هستند زندگی توسعهدهنده را آسانتر کنند. در نتیجه یک توسعه دهنده قادر خواهد بود تا یک اپلیکیشن را در زمان بسیار کمی بالا بیاورد. اما او مجبور است به اکثر پیشفرضها بچسبد. البته سفارشیسازی ممکن است اما اغلب تغییر پیشفرضها نیازمند فهمی درست از اتفاقاتی است که پشت صحنه میافتد که میتواند وقتگیر و نیازمند مهارت باشد.
یکی از ترفند های کدزنی که برنامهنویسان حرفهای معمولا از آن استفاده میکنند استفاده از or و and به جای شرط است. بله درست متوجه شدید، به جای شرط. این ترفند ممکن است باعث شود تا کد شما خوانا نباشد و حتی توصیه شده نیست ولی ترفند به شدت جذابیست که میتواند در خلاصه نویسی کد تاثیر زیادی داشته باشد. این روش در بسیاری زبان ها مانند C, JavaScript, Python و … کاربرد دارد. پس با ما همراه باشید تا این تکنیک زیبا و جذاب را یاد بگیرید.
در نسخه ۳.۱۰ پایتون یک ویژگی جدید و جالب به زبان اضافه شده است: pattern matching. اگر با سوئیچکیس(switch-case) در زبانهای سی و سیپلاسپلاس کار کردهاید، پترنمچینگ یک نسخه پیشرفتهتر از switch-case ميباشد. در پست «از سوییچکیس تا پترنمچینگ» از روزبه شریفنسب میتوانید در مورد این ساختارها در زبانهای مختلف و تاریخچه آنها بخوانید.
بنده قبل از i3 از مدیر پنچرههای رایج استفاده میکردم. به دلیل اینکه مجبور بودم تعداد زیادی پنجره را همزمان مدیریت کنم همیشه مشکل پیدا کردن یک پنجره و مدیریتش را داشتم. خب من مشکل خود را با استفاده از یک مدیر پنجره موزائیکی به اسم آی۳ حل کردم!
اوایل تنها از i3 به همراه i3bar و dmenu استفاده میکردم اما بعدا زوبونتو را نصب کرده و مدیر پنجره پیشفرضش که xfwm باشد را با i3 جایگزین کردم. و به این ترتیب دردسر پیکرهبندی هزار و یک چیز دیگر را نداشتم و در عین حال از i3 استفاده میکردم.