زمانی که سیستم شما به هر دلیلی دچار مشکل میشود و سیستمعامل به اصطلاح بالا نمیآید شما به چیزی به نام سیستمعامل زنده (live) نیاز خواهید داشت تا فایلها را برگردانید و سیستمعامل را تعمیر کنید. بسیاری از کاربران (نسبتاً مبتدی) به دلیل دسترسی نداشتن به یک نسخه سیستمعامل زنده دچار مشکلاتی از قبیل از دست دادن اطلاعاتشون هستند. در این پست قصد دارم به این موضوع بپردازم که سیستمعامل زنده چیست، چگونه راهاندازی میشود و چطور میتوان آن را نصب کرد.
سیستمعامل زنده (live) چیست؟
اگر شما کاربر ویندوز هستید حتما میدانید که ویندوز باید ابتدا بر روی سیستم شما نصب شود تا بتوان آن را اجرا نمود اما سیستمعامل ویندوز مانند سیستمعامل های دیگر میتواند بر یک DVD یا یک flash نیز نصب شود. در شرایطی که سیستمعامل شما به درستی کار نمیکند میتوان از این امکان برای تعمیر سیستم و دسترسی به فایل ها استفاده کرد. در چنین شرایطی برای آن که سیستمعامل با هدف اجرا شدن از یک حافظه فلش یا DVD سازگار باشد (سریع و سبک باشد) نسخهای از آن به عنوان live منتشر میشود که قابل حمل است و نیازی به نصب ندارد.
سیستمعامل های غیر ویندوزی
اکثر سیستم عامل های غیر از ویندوز عموما از خانواده شبهیونیکس نسخه لایو جدا ندارند، درواقع اصلا نیازی ندارند! در هنگام نصب این سیستمعامل ها از کاربر سوال میشود که آیا میخواهید نصب شود یا به صورت زنده از آن استفاده کنید.
اما اگر به دنبال استفاده از ویندوز به صورت زنده هستید با کرمهای کامپیوتر همراه باشید.
امروز، دوشنبه ۲ اسفند ۱۴۰۰، جلسه دوم گروه نرمافزار آزاد هرمزگان را با حضور نویسنده این مطلب داشتیم و به پیشنهاد یکی از اعضا، یک بازی جالب کردیم: «به صورت چرخشی در یک دایره هرکس میبایست نام یک ماژول پایتونی، توکار یا غیر توکار، بگوید. نام ماژولها روی تابلو نوشته میشود و کسی حق تکرار اسم یک ماژول را ندارد. کسی که ظرف مدت زمان ۳۰ ثانیه نتوانست اسمی پیدا کند، از بازی خارج میشود و آخرین نفر باقی مانده در بازی برنده است». روشن است که در بازی حق جستجو کردن، نوشتن یا امثالهم را نداشتیم!
بنده در دانشگاه هرمزگان دستیار تدریس یا حل التمرین(TA) برنامهسازی پیشرفته هستم بودم. ضمن تصحیح پروژه دانشجویان به اشتباهاتی درست(!) در کد هایشان برخوردم. قسمت درست کدها این میباشد که «کار» میکنند اما به روش درست پایتون نوشته نشدهاند.
به صورت کلی، جنگو و django-admin تلاش میکنند با پیادهسازی پیشفرضهایی که مناسب هستند زندگی توسعهدهنده را آسانتر کنند. در نتیجه یک توسعه دهنده قادر خواهد بود تا یک اپلیکیشن را در زمان بسیار کمی بالا بیاورد. اما او مجبور است به اکثر پیشفرضها بچسبد. البته سفارشیسازی ممکن است اما اغلب تغییر پیشفرضها نیازمند فهمی درست از اتفاقاتی است که پشت صحنه میافتد که میتواند وقتگیر و نیازمند مهارت باشد.
یکی از ترفند های کدزنی که برنامهنویسان حرفهای معمولا از آن استفاده میکنند استفاده از or و and به جای شرط است. بله درست متوجه شدید، به جای شرط. این ترفند ممکن است باعث شود تا کد شما خوانا نباشد و حتی توصیه شده نیست ولی ترفند به شدت جذابیست که میتواند در خلاصه نویسی کد تاثیر زیادی داشته باشد. این روش در بسیاری زبان ها مانند C, JavaScript, Python و … کاربرد دارد. پس با ما همراه باشید تا این تکنیک زیبا و جذاب را یاد بگیرید.
در پایتون ۳.۸ یک عملگر جدید برای انتصاب معرفی شده است.این عملگر جهت انتصاب در عبارات بزرگتر استفاده میشود. مثلا:
a = 10
if (b := a) == 10:
...
در تکه کد بالا همزمان مقدار b برابر مقدار a میشود و هم مقایسه انجام میشود.
داستان از جایی شروع شد که در مقاله چطور کاری کنیم لیسپ سریعتر از سی اجرا شود؟ خواندم که کامن لیسپ بنا به خواست برنامهنویس میتواند «زبانی با تعیین نوع پویا(dynamic) ویا ایستا(static) باشد» که کنجکاوی بنده برانگیخته شد(بخوانید فضولیام گل کرد!) و در کانال #clschool
روی شبکهی آیآرسی فرینود پرسیدم که در ادامه نتیجه بحث خدمتتون عرض خواهد شد. توجه کنید که ممکن است جدیدا این کانال مانند بسیاری از دیگر کانالها به شبکه لیبراچت منتقل شده باشد.
این مقاله از «دیدیر ورنا» میباشد که توسط من، فاروق به فارسی ترجمه شده است. اگر اشتباهی تایپی یا علمی یا املایی مشاهده کردید حتما به مترجم گزارش دهید.
دریافت از فضای ابری فاروق
در نسخه ۳.۱۰ پایتون یک ویژگی جدید و جالب به زبان اضافه شده است: pattern matching(به فارسی: تطبیق الگو). اگر با سوئیچکیس(switch-case) در زبانهای سی و سیپلاسپلاس کار کردهاید، پترنمچینگ یک نسخه پیشرفتهتر از switch-case ميباشد. در پست «از سوییچکیس تا پترنمچینگ» از روزبه شریفنسب میتوانید در مورد این ساختارها در زبانهای مختلف و تاریخچه آنها بخوانید.
range(end)
range(start, end)
range(start, end, step)
یک شی range در پایتون بسیار شبیه یک لیست از اعداد مرتب است اما توجه کنید که با یک نمونه از کلاس range سروکار دارید و نه یک لیست یا توپل.
بنده قبل از i3 از مدیر پنچرههای رایج استفاده میکردم. به دلیل اینکه مجبور بودم تعداد زیادی پنجره را همزمان مدیریت کنم همیشه مشکل پیدا کردن یک پنجره و مدیریتش را داشتم. خب من مشکل خود را با استفاده از یک مدیر پنجره موزائیکی به اسم آی۳ حل کردم!
اوایل تنها از i3 به همراه i3bar و dmenu استفاده میکردم اما بعدا زوبونتو را نصب کرده و مدیر پنجره پیشفرضش که xfwm باشد را با i3 جایگزین کردم. و به این ترتیب دردسر پیکرهبندی هزار و یک چیز دیگر را نداشتم و در عین حال از i3 استفاده میکردم.
خب فرض کنید میخواهید یک فایل حجیم(مثلا ۲.۶ گیگابایت مثل من) را منتقل کنید. مثلا در بستر اینترنت یا اینکه میخواهید از طریق چند حافظه ذخیرهسازی مختلف فایل را جابجا کنید. برای من با اینترنت ADSL حداکثر سرعت آپلود ۵۰ کیلوبایت بر ثانیه هست و علاوه برآن اگر اینترنت ناگهان قطع و وصل شود مجبورم از اول شروع کنم!
راه حلی که برای این موضوع پیدا کردم قطعه قطعه کردن فایل حجیم با split و آپلود قطعات فایل به یک سرور واسط هست. و از سرور واسط به سرور اصلی آپلود میکنم. با اینکار میتوانم از چند دستگاه و با چند ارتباط اینترنت قطعات را آپلود کنم و به نوعی از پهنایباند همه کانکشنهای اینترنت همزمان استفاده کنم تا فایل حجیمی که دارم سریعتر به دست سرور اصلی برسد.
کلاس int در پایتون که بعضا آن را با تابع اشتباه میگیرند،برای تبدیل یک متغیر با نوعی جز نوع عدد صحیح به عدد صحیح کاربرد دارد. شما میتوانید با استفاده از int در پایتون یک رشته(string) یا یک عدد اعشاری(float) را به عدد صحیح تبدیل کنید.
تقریبا در تمام زبانهای برنامهنویسی از نسل سی، چیزی به اسم آرایه وجود دارد.در زبان سی یک آرایه را میتوان یک فهرست از متغیرهای همنوع در نظر گرفت که خانههای مجاور حافظه به آن تخصیص داده شده هست. به عنوان یک نمونه، در زبان سی یک آرایه از ۳ عدد صحیح تعریف کردهام:
int my_cool_array[3] = {1, 2, 3};
در پایتون چیزی به اسم آرایه نداریم. خود زبان به صورت ذاتی(منظورم builtin یا توکار هست) چند نوع مخزن دارد که اینجا من در مورد دو مورد از آنها برایتان مینویسم.
بر خلاف آرایهها در سی که تنها میتوانند دادههایی از یک نوع را در خود نگه دارند، لیست، توپل(تاپل)، دیکشنری(جدول هش) و مجموعه در پایتون هر کدام میتوانند همزمان دادههایی با نوعهایی مختلف را درون خود داشته باشند.
بنده دیروز در اتاق ماتریکس هشبنگ یک پرسش مطرح کردم: «عقیده شما در مورد پایتون چیست؟» یکی گفت زبان «چندشآور» و «احمقانهای» است اما دیگری جواب بهتری داد:
آسان برای یادگیری، عالی برای درست کردن پیشنمونه یا prototype و یادگیری تئوری مهندسی کامپیوتر، عالی برای اسکریپتهایی که میخواهی قابل پیشبینی باشند. [اما] افتضاح برای سرعت یا مقیاسپذیری.
Lance Vick
بله! پایتون واقعا برای یادگیری آسان است و میتوانید با آن سریع و طی مثلا چند ساعت(یا بیشتر یا کمتر که البته به اندازه و نوع پروژه بستگی دارد) یک پیشنمونه بسازید. علاوه بر اینها شما را با چیزی مثل مدیریت دستی حافظه درگیر نمیکند. در نتیجه کاندیدای خوبی برای یادگیری مهندسی کامپیوتر و شروع برنامهنویسی هست. اما خب همه خوبیها در این زبان برنامهنویسی جمع نشدهاند. پایتون با پیادهسازی پیشفرضش،که تقریبا همهجا استفاده میشود، «کند» است(میتوانید مطلب پیادهسازی الگوریتم وارشال در پایتون و راست را ببینید)
لنس ادامه داد:
اگر نیاز داری چیزی را یک بار در ثانیه روی یک هستهٔ پردازنده اجرا کنی، پایتون برای هک کردن(در اینجا به معنی نفوذ و خرابکاری نیست –فاروق) چیزی که کار را انجام دهد، آسان خواهد بود. اگر به سرعت و امنیت نیاز داری، بهتر است به سراغ راست(Rust) یا گو(Go) بروی. اما آن دو سرمایهگذاری اولیه بیشتری را برای برنامهنویسی طلب میکنند. من ترجیح میدهم برای چیزی که تنها یکبار قرار است انجام شود و سرعت مهم نیست به سراغ پایتون بروم تا طی مدت زمان کوتاهی، مثلا چند ساعت آینده، شروع به کار کند. اما اگر مقیاسپذیری میخواهم یا قرار است با بارهای سنگین شبکه دست و پنجه نرم کنم و غیره، در آن صورت به سراغ گو میروم.
Lance Vick
لنس در اینجا به ضعف امنیتی پایتون در برنامههای چند ریسمانی(multi thread) اشاره میکند(به نظر من). البته خود در مورد آن چیزی نمیدانم ولی در موردش شنیدهام. سپس میگوید به سرمایهگذاری اولیه بیشتری نیاز داریم تا گو یا راست یا یاد بگیریم. جز این نیست که راست،و احتمالا گو، مقداری تفکر جدید میطلبدند. و این تفکر جدید باید ساخته شود؛ که زمان و انرژی میبرد.
نهایتا به عنوان یک خلاصه، اگر به یک زبان برای استفادهٔ کوتاه مدت یا شروع برنامهنویسی نیاز دارید، پایتون گزینهٔ بسیار خوبیست. اما برای یک کار طولانی مدت که سرعت مهم است، بهتر است به سراغ گو یا راست بروید.