ایمان ریحانیان

دست خط یک برنامه نویس

ایمان ریحانیان

دست خط یک برنامه نویس

ایمان ریحانیان

زکات علم یاد دادن آن به دیگران است، کمک کنیم که علم گسترش یابد.

طبقه بندی موضوعی

به نام خدا

 


 

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

 

 

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

میتوان رمزنگاری را از ابتدا پیدایش یک علم ریاضیات دانست که در عصر دیجیتال با رایانه مخلوط شده است و ترکیبی از آن به رمزنگاری پیشرفته شهرت یافته است که موجب بروز یه تغییر مهم در رمزنگاری شده است:

  1. وجود قدرت محاسباتی بالا
  2. کاربردهای جدید
  3. مزنگاری روی انواع اطلاعات و بر مبنای بیت

قبل از پیدایش رمزنگاری پیشرفته و ورود رایانه ها به عرصه رمزنگاری کاربردهای آن محدود به رمزکردن پیغام و پنهان کردن محتوا آن بوده است، ولی در رمزنگاری پیشرفته کاربردهایی زیادی از جمله موارد زیر ارائه گردیده است:

  1. حفظ محرمانگی یا امنیت محتوا
  2. حفظ صحت داده ها یا امنیت محتوا
  3. احراز هویت یا اصالت سنجی مختوا
  4. عدم انکار
۰ موافقین ۰ مخالفین ۰ ۰۹ مرداد ۹۱ ، ۱۱:۵۵
ایمان ریحانیان

به نام خدا

 

اکثر نسخه های توزیع لینوکس پشتیبانی خوبی از زبان فارسی دارند بطوریکه میتوان پس از نصب سیستم عامل به راحتی در صفحات فارسی گشت و گذار کرد و فارسی نوشت، برای نصب قلم های فارسی بیشتر میتوان به دو راه عمده اشاره کرد:

  1. استفاده از مخازن برای نصب قلم.
  2. نصب کردن قلم ها به روش معمولی.

به توضیح دو روش فوق میپردازیم ولی لازم بذکر است که نسخه توزیع لینوکس من Ubuntu میباشد که این روش ها با اندکی تفاوت در نسخه های دیگر لینوکس مورد استفاده میباشد.

  • استفاده از مخازن برای نصب قلم:

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

از طریق Terminal میتوانید از دستورهای زیر را برای نصب بسته های ttf-farsiweb و language-support-fonts-fa استفاده کنید.

sudo apt-get install ttf-farsiweb

sudo apt-get install language-support-fonts-fa

البته همانطور که گفته شد میتوان این بسته ها را به راحتی از طریق Synaptic هم نصب کرد.

  • نصب کردن قلم ها به روش معمولی:

در این روش شما ابتدا نیاز به قلمهایی برای نصب دارید که قلمهای آزاد زیادی وجود دارند که شما میتوانید از طریق وبسایت های مختلف آنها را دانلود کنید، من در اینجا چند تا لینک دانلود قرار میدم:

http://hezardastan.sourceforge.net/persianfonts/tahoma.tar.gz

http://hezardastan.sourceforge.net/persianfonts/bfonts.tar.gz

http://www.farsiweb.ir/font/farsifonts-0.4.zip

پس از دانلود کردن این قلم ها کافی است که آنهارا از حالت فشرده خارج سازید، که من نحوه ی نصب قلم tahoma را که از لینک بالا دانلود کرده ایم توضیح میدهم:

tar zxvf tahoma.tar.gz

حالا کافی است که قلم مورد نظر را در شاخه مربوطه برای دسترسی تمام کاربرهای سیستم عامل کپی کنیم، پس دستور زیر را برای ساختن شاخه مورد نظر تایپ کنید:

sudo mkdir /usr/share/fonts/truetype/ttf-persian-fonts

و قلم ها را که از حالت فشرده خارج شده اند با استفاده از دستور زیر کپی کنید:

sudo cp /tahoma/* /usr/share/fonts/truetype/ttf-persian-fonts/

و در پایان دستور زیر را اجرا کنید:

sudo fc-cache -f -v

و چند لحظه صبر کنید.

با استفاده از این دو روش شما میتوانید قلم های فارسی را نصب کنید و از آنها استفاده کنید.

 

۰ موافقین ۰ مخالفین ۰ ۰۴ مرداد ۹۱ ، ۱۶:۵۵
ایمان ریحانیان

به نام خدا

 

 

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

اانشاالله که خداوند نور هدایت و رستگاری رو در دل همه عاشقان و طلب کنندگان و تسلیمان قرار بده و امیدوارم که  من هم جز هدایت شدگان قرار بگیرم.

 

ناخودآگاه یاد دفتر اول مولانا افتادم که:

صد هزاران دام و دانه‌ست ای خدا / ما چو مرغان حریص بی‌نوا

گر هزاران دام باشد در قدم / چون تو با مایی نباشد هیچ غم

 

۰ موافقین ۰ مخالفین ۰ ۰۲ مرداد ۹۱ ، ۱۷:۵۵
ایمان ریحانیان

به نام خدا

 

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

برای مثال،

tee file1

با استفاده از دستور فوق میتوانید متنی را به فایل file1 اضافه کنید ولی متن قبلی فایل پاک میشود.

tee -a file1

در دستور بالا میتوانید با استفاده از سوییچ (a-) اطلاعات متنی رو به آخر فایل file1 اضافه کنید، بدون پاک شدن اطلاعات قبلی (append)، همچنین میتوان یک ورودی را همزمان در چندین فایل ذخیره کرد.

tee  -a file1 file2 file3

در اینجا خروجی دستور ps با کمک دستور tee در فایل های file1 file2 file3 دخیره میشود.

ps | tee file1 file2 file3

به همین روش میتوان خروجی دستور های مختلف را در یک یا چند فایل ذخیره کرد.

 

 

دریافت فایل تصویری با کیفیت اصلی

 

 

۰ موافقین ۰ مخالفین ۰ ۲۷ تیر ۹۱ ، ۰۹:۴۷
ایمان ریحانیان

به نام خدا

 

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

 

 

البته بعضی از این زبانها از زمان پیدایش از نظر محبوبیت و تعداد کاربرها در رقابت بوده اند، که نمودار زیر این مقایسه را نشان میدهد:

 

البته مطالب جالبی هم در این مورد در این وبسایت نوشته شده است.

البته میتوان گفت که هز زبان برنامه نویسی در جایگاه خودش قابلیتی داره که شاید زبانهای برنامه نویسی دیگه نداشته باشند و بستگی به جایگاه استفاده از آن داره، بعضی از این زبان ها تقریبا همیشه در اوج محبوبیت بوده اند مثل C و جاوا، که به نوعی جاوا نیز الهام گرفته شده از زبان قدرتمند C میباشد.

جاوا چیست:

جاوا یک زبان برنامه نویسی فوق العاده قدرتمند و شی گرا هست، که به نظر من بیش از یک زبان برنامه نویسی و یک طرز تفکر هست. که میتوان از ویژگیهای آن به :

  • متن باز بوده (Open Source) و نیازی به خریداری ندارد.
  • وابسته به معماری کامپیوتر نبوده و قابل انتقال باشد و مبتوان برنامه نوشته شده جاوا را بدون تغییر در هر پلتفرم اجرا کرد.
  • زبانی ساده و شی گرا دارد.
  • مطمئن و بدون خطا باشد با سیستم کنترل خطا قدرتمند.
  • IDE هاای بسیار قوی و کارآمد آزاد و تجاری دارد.
  • کنترل حافظه جاوا بر عهده پلتفرم آن میباشد و برنامه نویسی را درگیر نمیکند.
  • API ها و Framework های بسیار زیادی دارد که از این لحاظ در میان زبانهای برنامه نویسی مشهور میباشد و میتوان گفت تقریبا برای هر مسئله ای چندیدن انتخاب برای برنامه نویس وجود دارد.
  • کاربردهای بسیار زیادی دارد مثل : Desktop Application ، برنامه نویسی تحت وب ، برنامه نویسی تلفن همراه، در لوازم خانگی و ....
  • بسیار امن میباشد و موجب آسیب سخت افزار نمیشود.
  • و ...

میتوان از ویژگیهای این زبان صفحه ها نوشت که هرچقدر با این ساختار بیشتر آشنا میشوید با ویژگیهای بیشتر و کاملتری آشنا میشوید.

 

 

۲ موافقین ۰ مخالفین ۰ ۲۴ تیر ۹۱ ، ۱۵:۳۳
ایمان ریحانیان

به نام خدا

 

اگر شما محتوی یک فایل را در یک زمان مشخص مثلا امروز تغییر داده اید و آنرا ذخیره کرده اید و نمیدانید که کدام فایل بوده است میتوانید از دستور find استفاده کنید.

find /home/iman/ -type f -mtime 0

سوئیچ mtime- مقداری برحسب روز میگیرد که به همان مقدار به روزهای قبل میرود.
 

 

 

دریافت فایل تصویری با کیفیت اصلی
 

۰ موافقین ۰ مخالفین ۰ ۲۲ تیر ۹۱ ، ۱۷:۰۲
ایمان ریحانیان

به نام خدا

 

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

IDE که مخفف Integrated Development Environment است و به فارسی به محیط یکپارچه توسعه نرم افزار ترجمه میشود برنامه ای است برای توسعه نرم افزار یعنی میتوان تحت یک زبان برنامه نویسی خاص برنامه ای را در آن نوشت و تولید کرد، این محیط ها یا برنامه ها عموما همه یا قسمت زیادی از اشیا مورد نیاز برای ساخت یک برنامه را تحت زبان برنامه نویسی خاص دارا میباشند و مراحل تولید یک برنامه نرم افزاری را ساده تر و سریع تر میکنند، بعضی از این محیط ها اشیا های زیادی در مراحل ساخت نرم افزار مانند طراحی، پیاده سازی، تست، اشکال زدایی و گسترش را دارند. میتوان گفت که در بعضی از زبان های برنامه نویسی چندین نوع IDE وجود دارد که هم رایگان میباشد و هم تجاری. تقریبا یک IDE نزدیکترین دوست یک برنامه نویس است که اکثر ساعات عمر یک برنامه نویس با آن میگذرد. عموما این IDE ها گزینه های مختلفی یرای تغییر دادن شکل ظاهری برنامه و نحوه ی استفاده از آن طبق سلیقه کاربر دارند، همچنین مبتوان برنامه های (Plugin) زیادی را با کاربردهای مختلف به آنها اضافه کرد.

بعضی از این IDE ها چند زبانه میباشند و از زبان های مختلفی پشتیبانی میکنند مانند : Eclipse ،IntelliJ IDEA ،MyEclipse یا NetBeans.

 

 

۰ موافقین ۰ مخالفین ۰ ۲۲ تیر ۹۱ ، ۱۶:۳۰
ایمان ریحانیان

به نام خدا

 

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

یکی از ویژگیهای مهم در لینوکس این است میتوان یک از چندین راه مختلف یک کار را انجام داد و به هدف رسید مانند تولید تصادفی کلمه عبور، که میخواهم به ۱۰ روش مختلف اشاره کنم.

(شما میتوانید درهریک از روشهای زیر مقادیر ورودی مانند تعداد کاراکتر را تغییر بدهید)

  • در این روش شما از طریق نگاشت الگوریتم SHA میتوانید یک کلمه عبور تولید کنید.

date +%s | sha256sum | base64 | head -c 32 ; echo

  • در این روش از ویژگی/dev/urandom/  لینوکس استفاده میکنیم و مقدار کاراکتر خروجی دلخواه را فیلتر میکنیم.

< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo;

  • در این روش از openssl استفاده میکنیم که البته مکن است روی سیستم شما نصب نباشد.
  • openssl rand -base64 32
  • این روش هم برعکس urandom عمل میکند.
  • tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1
  •  
  • استفاده از از دستور strings که نیاز به یک فایل ورودی داره که در اینجا dev/urandom/ استفاده میکنیم.
  • strings /dev/urandom | grep -o ':alnum:' | head -n 30 | tr -d '\n'; echo
  • یک روش ساده تر با استفاده از urandom.
  • < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c6
  • این روش با استفاده از دستور dd است.
  • dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 -w 0 | rev | cut -b 2- | rev
  • این روش هم با استفاده از urandom است که کاراکترهای ورودی را وارد میکنیم که در اینجا کاراکترهای قسمت چپ صفحه کلید وارد شده است که کلمه عبوری را بسازد که کاملا با دست چپ وارد بشود.
  • </dev/urandom tr -dc '12345!@#$%qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c8; echo ""
  •  
  • اگز شما به ساختن کلمه عبور زیاد احتیاج دارید میتوانید آنرا به یک تابع تبدیل کنید و در نهایت آنرا در جایی مثل فایل bashrc./~ ذخیره کنید.
  • randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}
  •  
  •  و یکی از ساده ترین دستور های ساختن کلمه عبور تصادفی که کاملا تصادفی بوده و هم در لینوکس و هم Mac OS جواب میده.
  • date | md5sum

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

 
 

۰ موافقین ۰ مخالفین ۰ ۱۹ تیر ۹۱ ، ۱۰:۱۱
ایمان ریحانیان

به نام خدا

Hello World!!!

شاید تابحال بارها با این جمله روبرو شده باشیم، مخصوصا در کتابهای آموزش برنامه نویسی این جمله دیگه به یک سمبل تبدیل شده که سمبل اولین و ساده ترین خروجی که میتوان از یک برنامه رایانه ای گرفت  که معمولا یکی از نخستین فصل های کتابهای آموزشی رو به خودش اختصاص میده، البته همیشه هم ساده نیست مثلا در برنامه های گرافیکی رسیدن به خروجی Hello World  نیازمند پیش نیازهای زیادی است.

با یک جستجو ساده میتوان این برنامه ها را در سایت های زیادی پیدا کرد، که دوتا از کاملترین هاش :

هستند.

۰ موافقین ۰ مخالفین ۰ ۱۷ تیر ۹۱ ، ۱۵:۴۲
ایمان ریحانیان

به نام خدا

شاید تا حالا بارها به این مسئله برخورد کرده باشیم که سیستم عامل لینوکس نصب شده ۳۲ بیت است یا ۶۴ بیت ؟

یک روش بسیار ساده و کوتاه برای فهمیدن این موضوع وجود داره که برای اینکار باید وارد ترمینال شده و دستور uname -m را اجرا کنید.

اگر خروجی i686 بود یعنی نسخه لینوکس شما ۳۲ بیت است

اگر خروجی x86_64 بود یعنی نسخه لینوکس شما ۶۴ بیت است.

همچنین شما میتوانید با استفاده از دستور uname -a اطلاعات جزئی تری از سیستم عامل خود بدست آورید، مانند نسخه کرنل لینوکس و نوع توزیع شده لینوکس،

که خروجی به این شکل است:

Linux iman 3.0.0-12-generic #20-Ubuntu SMP Fri Oct 7 14:56:25 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

همچنین میتوانید با اجرای دستور uname --help اطلاعات بیشتری در مورد دستور uname بدست آورید.

 

 

 

دریافت ویدیو آموزشی با کیفیت اصلی

 

 

۰ موافقین ۰ مخالفین ۰ ۱۷ تیر ۹۱ ، ۰۹:۴۰
ایمان ریحانیان