کرم های کامپیوتر





قالب وبلاگ در حال ویرایش شدن!

ممکن است اشکالاتی در قالب پیش بیاید
بنابراین پیشاپیش متاسفیم!

کرم های کامپیوتر

من و دوستم دو تا کرمیم که داریم تو سیستم ها وُل می خوریم و بعضی وقت ها براتون چیزایی که تو این وُل خوردن ها یاد گرفتیم رو می نویسیم!!!!!

ربات تلگرامی ما
آخرین نظرات
  • ۱۰ تیر ۹۷، ۲۰:۵۴ - پسر ساده
    داس

۵۹ مطلب با موضوع «آموزش» ثبت شده است

os.urandom(n)

تابع os.urandom تعداد n بایت تصادفی برمیگرداند که برای مصارف رمزنگاری و دیگر کاربرد‌ها که اعداد تصادفی با کیفیت‌تر نیاز دارند مناسب است

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

تصویر بالا بر اساس اطلاعات ویکی‌پدیای انگلیسی درست شده و نشان می‌دهد چه زبانی از چه زبانی تاثیر پذیرفته است.
همان طور که می‌دانید می‌توان یک مفهوم و معنی را با بی‌شمار زبان و روش گفت. زبان‌های برنامه‌نویسی هم به همین شکل هستند.
این جمله تا حدی درست است اما نه کاملا. برای مثال شعار پایتون «تنها یک راه حل برای یک مسئله» هست. احتمالا بعضی از دیگر زبان‌ها هم تلاش میکنند همینطور باشند.
البته که زبان اصلی رایانه‌ها زبان ماشین است که بسیار سنگین است و برای نوشتن آن نیاز به ریاضیات و محاسبات قوی دارد.
دوباره ترساندن از زبان ماشین یا اسمبلی؟ هر ماشین زبان مخصوص به خودش را دارد. زبان AVR‌ها با ۸۰۵۱ قدیمی و گوشی اندرویدی شما با معماری ARM و ... همه با هم متفاوت هستند.بعضی آسان‌تر و ساده‌تر و بعضی سخت‌تر هستند  اما زبان ماشین ترسناک نیست. اتفاقا تجربه‌ی زبان ماشین جالب و حتی جذاب است و شما را با سخت‌افزار رایانه بهتر آشنا میکند و تفکری متفاوت از زبان‌های معمول مانند سی و بیسیک به شما می‌دهد.
به طور کل زبان پایتون بهترین و قابل فهم‌ترین زبان برای آغاز برنامه نویسی است. زبان پایتون زبانی ساده و در عین حال کارآمد ولی متنی است یعنی خروجی آن تنها به صورت متنی نمایش داده می شود و تا آنجا که من می دانم رابط گرافیکی ندارد.
در این مورد مطمئن نیستم. شخصا فکر میکنم دلایل دیگری هم هست که افراد زیادی پایتون را برای شروع پیشنهاد میدهند: پایتون هم بدرد یادگیری برنامه‌نویسی میخورد و هم میتوانید بعدا آنرا واقعا استفاده کنید.میتوانید این ویژگی پایتون را با بیسیک مقایسه کنید. یک دلیل دیگر «عادت های خوب» هست. مثلا پایتون برنامه‌نویس را مجبور میکند که از دندانه‌گزاری(indentation) استفاده کند که این در دیگر زبان‌ها نیز یک عادت خوب تلقی می‌شود و برای خوانایی بهتر کد توصیه می‌شود.
و در مورد متنی بودن، برای پایتون نیز مانند بسیاری از زبان‌های برنامه‌نویسی کتابخانه و ماژول و چهارچوب وجود دارد. همچنین مانند بسیاری از دیگر زبان‌ها، برنامه‌نویسی رابط کاربری گرافیکی جزئی از زبان نیست.
توجه داشته باشید که زبان پایتون یک زبان اسکریپتی است و در ویندوز برای اجرای کد نیاز به برنامه دیگری است ولی در لینوکس مستقیما از ترمینال اجرا می شود.
بله برای اجرای کد های پایتون در حالت عادی باید از یک برنامه استفاده کنید که اسکریپت‌های پایتون را اجرا می‌کند. این برنامه در بسیاری از توزیع‌های گنو/لینوکسی و تعدادی از لپ‌تاپ‌های ویندوزی از قبل نصب شده است.
زبان دیگری که برای برنامه‌نویسان مبتدی است و از نامش هم پیداست، بیسیک (BASIC) می باشد. البته زبان پایتون از بیسیک خلاصه‌تر هست ولی بیسیک و مخصوصا ویژوال بیسیک (visual basic) امکان برنامه‌نویسی گرافیکی در ویندوز را به شما می دهد.
هرچند که خودم چندان با بیسیک کار نکردم و نظری در این مورد ندارم اما بزرگان(از جمله اریک ریموند) توصیه کردند که به دلیل طراحی بد و دادن عادات بد به برنامه‌نویس سمت بیسیک نرویم. اگر هم خواستید تجربه کنید، ویژوال بیسیک تنها گزینه‌ی شما نیست.گزینه‌های دیگری که حتی آزاد یا متن‌باز هستند وجود دارند.
زبانی که آقای کریمی زاده با آن برنامه‌نویسی را آغاز کرد همین بود.
درست هست که من با سی‌شارپ شروع کردم اما این شروع کاملا تصادفی بود و هیچ منطق یا فلسفه‌ای پشتش نبود. این را به بقیه نیز توصیه نمیکنم!
توجه داشته باشید که دو زبان بیسیک و سی‌شارپ بیشتر برای ویندوز هستند.
اگر منظور ویژوال بیسیک هست، بله وگرنه نسخه های مختلفی از بیسیک وجود دارند. همچنین فراموش نکنیم که بازی و برنامه‌های مختلفی با سی‌شارپ و پروژه مونو نوشته‌شده‌اند.
دنیای لینوکس برای کاربران مبتدی نیست و اگر کاربر مبتدی با لینوکس طرف باشد از آن بیزار می شود ولی لینوکس برای برنامه نویسان و کاربران پیشرفته‌تر حکم بهشت را دارد!
فکر نمیکنم قسمت اول نوشته چندان درست باشد. الآن برعکس گذشته توزیع‌هایی دقیقا برای مبتدیان(مثلا اوبونتو) و غیرفنی‌ها وجود دارد و روی بسیاری از توزیع‌ها یک رابط کاربری گرافیکی از قبل نصب شده.
پیشنهاد من این است که اگر تصمیم دارید که کرم کامپیوتر باشید بعد از این که در ویندوز چرخیدید و کودک نو پای برنامه نویسیتان راه رفتن یاد گرفت به دنیای لینوکس مهاجرت کنید.
البته گزینه‌ی دیگری جز لینوکس هم دارید: بی‌اس‌دی(BSD).خودم چندان با بی‌اس‌دی‌ها کار نکردم اما بنظر می‌آید(با توجه به نوشته‌ی اریک ریموند و دیگر نوشته‌ها) گزینه‌های خوبی هستند.
  • فاروق کریمی زاده

این توابع از توابع توکار پایتون هستند و همانطور که از اسمشان مشخص است، یک عدد مبنای ده را به یک رشته که حاوی آن عدد در مبنای ۸،۱۶ یا ۲ است تبدیل میکند. فکر نمیکنم نیاز به توضیح زیادی داشته باشند اما توجه کنید که این توابع یک رشته برمیگردانند. چند مثال:

>>> hex(10)
'0xa'
>>> oct(13)
'0o15'
>>> bin(12)
'0b1100'

مطالب مرتبط:

  • فاروق کریمی زاده

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

  • بهنام سیم جو

وقفه 19h(در مبنای شانزده) با کد ماشین CD19(بازهم در مبنای ۱۶) در بعضی سیستم‌ها باعث ریبوت شدن ماشین و در بعضی دیگر باعث بوت از دستگاه بعدی میشود.

طرز استفاده:

int 19h
  • فاروق کریمی زاده

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

  • بهنام سیم جو

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

input(prompt='')

prompt یک رشته است که به عنوان یک پیام به کاربر نمایش داده میشود و از کاربر میخواهد تا چیزی وارد کند، در صورتی که ذکر نشود،رشته‌ای خالی است(یعنی چیزی نمایش داده نمیشود). یک مثال:

name = input('What is your name?')
print('Hi,', name)

فراموش نکنید که تابع یک رشته برمیگرداند و در صورت نیاز باید آنرا به عدد و غیره تبدیل کنید.

مطالب مرتبط:

  • فاروق کریمی زاده

اندی پیش به این فکر میکردم که چطور میتوانم حجم یک پرونده را بدست بیاورم و زیر کاپوت این توابع چه چیزی پنهان است.

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

  • فاروق کریمی زاده

عملگر x در زبان پرل برای تکرار یک رشته به کار میرود،مثال:

$s = "M";
$s = $s . ("o" x 3);
print $s;

خروجی:

Mooo
  • فاروق کریمی زاده

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

  • بهنام سیم جو