بهمن ۱۱ ۱۳۹۶

آموزش نصب OpenStack Pike بر روی CentOS 7.4

openstack

 

بی شک OpenStack یکی از قدرتمندترین نرم افزارها جهت پیاده سازی زیرساخت ابری و یا همان Cloud می باشد.آخرین نسخه ی OpenStack تا این لحظه نسخه ی Pike می باشد که در آگوست ۲۰۱۷ منتشر شده است.

برای انتشار نسخه ی Pike که شانزدهمین نسخه از OpenStack می باشد بیش از ۱۸۲۵ مشارکت کننده با یکدیگر همکاری داشته اند که یکی از سردمداران این شرکت های توسعه دهنده، شرکت ردهت می باشد.

 

openstack-pike-contributors

 

جهت اطلاعات بیشتر در مورد مشارکت کننده های OpenStack می توانید به لینک پایین مراجعه نمایید :

 

http://stackalytics.com/?release=pike

نصب OpenStack Pike با روش RDO :

 

برای نصب اوپن استک روش های گوناگونی وجود دارد.یکی از این روش ها RDO می باشد که سرنام واژه های RedHat Distribution OpenStack می باشد.RDO روشی است که شرکت RedHat آن را ارائه نموده است که نصب OpenStack را ساده تر و سریع تر انجام می دهد.RDO شامل مجموعه اسکریپتی به نام packstack می باشد که بوسیله ی آن می توان آخرین نسخه از OpenStack را بر روی توزیع های RedHat,CentOS,Scientific Linux و توزیع هایی از این خانواده نصب کرد.

ما در این مطلب قصد داریم تا نسخه ی OpenStack Pike را بر روی توزیع CentOS 7.4-x86-64 Minimal به صورت all-in-one نصب کنیم.به همین خاطر ما فرض می کنیم که شما CentOS 7.4-x86-64 minimal را نصب کرده اید و به آن یک IP اختصاص داده اید.به عنوان نمونه فایل پیکربندی کارت شبکه ی آن به صورت زیر می باشد :


TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

BOOTPROTO=none

DEFROUTE=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=enp0s3

UUID=78ab42f4-9221-4a5e-bfb2-f83386922326

DEVICE=enp0s3

ONBOOT=yes

IPADDR=10.10.22.191

PREFIX=24

GATEWAY=10.10.22.254

DNS1=10.200.100.201

DNS2=10.200.100.199

IPV6_PRIVACY=no

 

همانطور که مشاهده می کنید نام رابط کارت شبکه ی سرور en90s3 می باشد و IP آن ۱۰٫۱۰٫۲۲٫۱۹۱ می باشد.اکنون در این مرحله سرویس NetworkManager را disable کنید و سرویس network را enable کنید :

# systemctl disable NetworkManager

# systemctl enable network

 

اکنون مخزن RDO را نصب کنید :

 

#yum install -y https://rdoproject.org/repos/rdo-release.rpm

 

همچنین مخرن OpenStack را نصب کنید :

 

 

#yum install -y centos-release-openstack-pike

 

اکنون کل سیستم را بروزرسانی کنید :

 

#yum update -y

پس از بروزرسانی کامل سیستم بهتر است تا سیستم را یکبار reboot کنید تا سیستم با آخرین کرنل boot شود :

 

#reboot

پس از بالا آمدن سیستم،اکنون بسته ی Packstack را نصب کنید :

 

 

#yum install -y openstack-packstack

 

اکنون برای نصب OpenStack Pike کافیست تا دستور پایین را اجرا کنید :

 

#packstack --allinone

 

پس از نصب موفقیت آمیز با همچین پیغامی روبرو خواهید شد :

 

openstack-pike

 

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

 

http://10.10.22.191/dashboard

 

گفتنی است بجای IP نوشته شده باید آدرس سرور خود را بنویسید.پس از وارد کردن آدرس بالا در مرورگر وب خود با همچین صفحه ای روبرو خواهید شد :

 

openstack-pike

نام کاربری جهت ورود به پنل، admin می باشد و پسورد آن را می توانید از فایل keystonerc_admin در مسیر root/ بدست بیاورید.در ادامه تصاویری از پنل تحت وب اوپن استک که نام آن Horizon می باشد را مشاهده کنید :

 

openstack-pike

 

openstack-pike

 

openstack-pike

امید است تا از این مطلب استفاده لازم را برده باشید و همیشه در ابرها باشید!

 


بهمن ۹ ۱۳۹۶

آموزش کنترل سرویس ها با systemd در سرور راه دور

systemd

امروزه اکثر توزیع های سیستم عامل گنو/لینوکس از systemd استفاده می کنند.با استفاده از systemd می توان سیستم و سرویس ها را مدیریت کرد که با اجرای دستور systemctl در خط فرمان این امکان وجود دارد که سرویس ها را بر روی ماشین محلی (local machine) و یا یک ماشین راه دور (remote server) مدیریت کرد.

برای کنترل سرویس های ماشین راه دور با استفاده از systemd بهتر است تا از public/private key pairs برای اتصال از طریق SSH استفاده کنید تا نیاز به وارد کردن password برای ماشین یا ماشین های راه دور نباشد.

برای کنترل سرویس های ماشین راه دور کافیست تا دستور systemctl را به همراه H- یا  host- –  استفاده کنید.به عنوان نمونه فرض کنید قصد داریم تا به کاربر root از سرور راه دور به آدرس fedorafans.com وصل شویم و وضعیت سرویس httpd آن را بررسی کنیم :

 

$systemctl --host root@fedorafans.com status httpd.service

 

 

یا می توان از این دستور نیز استفاده کرد :

 

$systemctl -H root@fedorafans.com status httpd.service

همچنین شما می توانید سرویس مورد نظر را stop,start.restart,enable,disable و … کنید :

 

systemctl --host root@fedorafans.com start httpd.service
systemctl --host root@fedorafans.com stop httpd.service
systemctl --host root@fedorafans.com restart httpd.service
systemctl --host root@fedorafans.com enable httpd.service
systemctl --host root@fedorafans.com disable httpd.service

 

برای اطلاعات بیشتر در مورد دستور systemctl کافیست تا راهنمای آن را مطالعه کنید :

 

$man systemctl

امید است تا از این مطلب استفاده لازم را برده باشید.

 


بهمن ۸ ۱۳۹۶

اسکریپت تراکتور

اسکریپت تراکتور(traktor) یک پروژه آزاد و متن باز هست که برای سهولت نصب و کانفیگ تور و بسته های همراهش برای توزیع های مختلف نوشته شده.

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

توریع هایی که تراکتور ازشون پشتیبانی میکنه:
دبین بیس ها
فدورا بیس ها
آرچ بیس ها
اوپن سوزه بیس ها

نحوه نصب:
برای نصب تراکتور دستورات زیر رو به ترتیب وارد کنید.

 

$ wget https://gitlab.com/GNULand/TraktorPlus/Traktor/repository/master/archive.zip O Traktor.zip
$ unzip Traktor.zip d $HOME/Traktor && cd $HOME/Traktor/*
$ chmod +x installer.sh
$ ./installer.sh

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

 ./uninstall_debian.sh

برای اوپن سوزه بیس ها:

  ./uninstall_opensuse.sh

اگر علاقه‌مند به گسترش و کمک به این اسکریپت هستید، همین الان به گیت‌لب این اسکریپت سر بزنید و سعی در بهتر کردن اسکریپت کنید…

اگه دوست دارین بیشتر راجب این اسکریپت و نحوه کارکردنش بدونین به صفحه گیت لب تراکتور مراجعه کنین :ـ)


بهمن ۸ ۱۳۹۶

اسکریپت تراکتور

اسکریپت تراکتور(traktor) یک پروژه آزاد و متن باز هست که برای سهولت نصب و کانفیگ تور و بسته های همراهش برای توزیع های مختلف نوشته شده.

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

توریع هایی که تراکتور ازشون پشتیبانی میکنه:
دبین بیس ها
فدورا بیس ها
آرچ بیس ها
اوپن سوزه بیس ها

نحوه نصب:
برای نصب تراکتور دستورات زیر رو به ترتیب وارد کنید.

 

$ wget https://gitlab.com/GNULand/TraktorPlus/Traktor/repository/master/archive.zip O Traktor.zip
$ unzip Traktor.zip d $HOME/Traktor && cd $HOME/Traktor/*
$ chmod +x installer.sh
$ ./installer.sh

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

 ./uninstall_debian.sh

برای اوپن سوزه بیس ها:

  ./uninstall_opensuse.sh

اگر علاقه‌مند به گسترش و کمک به این اسکریپت هستید، همین الان به گیت‌لب این اسکریپت سر بزنید و سعی در بهتر کردن اسکریپت کنید…

اگه دوست دارین بیشتر راجب این اسکریپت و نحوه کارکردنش بدونین به صفحه گیت لب تراکتور مراجعه کنین :ـ)


بهمن ۶ ۱۳۹۶

جلسهٔ دویست و چهل

تاریخ برگزاری جلسه: ۱۳۹۶/۱۱/۱۹
موضوع: جلسهٔ گروه کاربران گنو/لینوکس تهران
جلسهٔ ۲۴۰ گروه کاربران گنو/لینوکس تهران در روز پنج‌شنبه، ۱۹ بهمن ماه از ساعت ۱۴:۳۰ الی ۱۹ در محل شتاب‌دهنده آواتک به نشانی « جاده مخصوص کرج، جنب متروی بیمه، خط کندرو، بین کوچه بیمه ۲ و بیمه ۳، پلاک ۳۱، (محل سابق کارخانه الکترودسازی آما) کارخانه نوآوری » برگزار خواهد شد. شرکت در این رویداد همانند جلسات گذشته برای کلیه علاقه‌مندان، آزاد و رایگان می‌باشد.برگزار خواهد شد.
ثبت‌نام رایگان جهت حضور در جلسه
فرم ارسال ارائه برای جلسات آینده

بهمن ۴ ۱۳۹۶

آموزش رایتر: قسمت سوم، نحوه نمایش نوارابزارها

نوشته شده توسط فرشید نوتاش حقیقت.

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

نمایش یا پنهان کردن نوارابزارها

برای نمایش یا پنهان کردن نوارابزارها، مسیر View Toolbar را انتخاب کنید. سپس بر روی لیست نوارابزارها کلیک کنید. نوارابزارهای فعال دارای یک علامت چکمارک (تیک) در کنار نام است. نوارابزارهای جداشونده در لیست منوی View وجود ندارد.

زیرمنوها و نوارابزارهای جداشونده

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

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

حرکت دادن نوارابزار

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

برای حرکت دادن نوار ابزار شناور، بر روی دسته نوار کلیک کنید و آن را به بخش جدید بکشید.

قفل کردن/ شناور کردن پنجره‌ها در نوارابزارها

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

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

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

قفل کردن اتوماتیک

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

اگر بر روی دکمه‌ای (سه نقطه‌ها در انتهای هر پنجره) که بر روی لبه پنجره نشان داده می‌شود کلیک کنید پنجره قابل مشاهده باقی می‌ماند تا اینکه به‌صورت دستی (با همان دکمه) دوباره آن را پنهان کنید.

سفارشی‌سازی نوارابزارها

می‌توان به روش‌های مختلف، نوارابزار را تغییر داد. برای این کار بین دکمه‌هایی که روی نوارابزار است کلیک راست کرده و از دکمه‌های تعریف شده، موارد نظر را انتخاب و به نوارابزار اضافه کنید.

برای نمایش یا عدم نمایش دکمه‌های تعریف شده در نوارابزار کلیک راست نموده و در بخش دکمه‌های Visible از منوی نوارابزار را انتخاب کنید.

منبع: «جزوه آموزشی مهارت کار با نرم‌افزار واژه‌پرداز» نوشته شرکت دانش‌بنیان سافا

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


بهمن ۳ ۱۳۹۶

آموزش خط فرمان: قسمت سوم، حرکت در خط فرمان

نوشته شده توسط فرشید نوتاش حقیقت.

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

فرمان ls: لیست کردن محتوای دایرکتوری

فرمان file: مشاهده محتویات فایل

فرمان less: آشنایی بیشتر با فرمان ls

با استفاده از ls می‌توان محتویات دایرکتوری را مشاهده کرد و انواع مختلفی از ویژگی‌های فایل و دایرکتوری را تعیین نمود.

علاوه بر دایرکتوری جاری، می‌توان هر دایرکتوری دلخواهی را با فرمان ls اجرا کرد:

یا حتی چندین دایرکتوری را مشخص نمود. در این مثال از دایرکتوری home کاربر (که با ~ نشان داده شده) و دایرکتوری /usr استفاده شده است:

همچنین می‌توان فرمت خروجی را برای نمایش جزئیات بیشتر تغییر داد:

با افزودن –l به فرمان، خروجی با فرمت طولانی‌تری نمایش داده خواهد شد.

گزینه‌ها و آرگومان‌ها (Options and Arguments)

فرمان‌ها به کمک یک یا چند گزینه (Option) و آرگومان (Argument) رفتار خود را می‌توانند تغییر دهند. بنابراین فرمت اکثر فرمان‌ها چنین است:

command –options argument

اکثر فرمان‌ها از گزینه‌های متشکل از یک کاراکتر به همراه خط تیره استفاده می‌کنند. (مانند -l) اما برخی از فرمان‌ها از جمله آن‌هایی که از پروژه GNU پشتیبانی می‌کنند، متشکل از یک کلمه به همراه دو خط تیره هستند. همچنین بسیاری از فرمان‌ها اجازه می‌دهند تا گزینه‌های چندگانه با هم هماهنگ شوند. در این مثال، فرمان ls دارای دو گزینه است. گزینه l برای تولید خروجی فرمت طولانی و گزینه t برای مرتب‌سازی نتایج بر اساس زمان اصلاح فایل می‌باشد:

در ادامه گزینه طولانی –reverse را برای مرتب‌سازی به‌صورت معکوس اضافه شده است:

فرمان ls تعداد زیادی از گزینه‌ها را داراست که به برخی از آن‌ها اشاره می‌کنیم:

شرح Long Option Option
تمامی فایل‌های موجود (حتی فایل‌های hidden) را لیست می‌کند. –all -a
اگر دایرکتوری مشخص شود فرمان ls محتویات دایرکتوری را لیست می‌کند، نه خود دایرکتوری را. –directory -d
این گزینه یک کاراکتر شاخص را به انتهای هر نام اضافه می‌نماید. (به‌عنوان مثال در جلوی نام یک پوشه، علامت اسلش قرار می‌گیرد.) –classify -F
در لیست‌های طولانی، اندازه فایل‌ها را به جای استفاده از بایت در فرمت قابل خواندن برای انسان نمایش می‌دهد. –human-readable -h
نتایج را با فرمت طولانی نمایش می‌دهد. -l
نتایج را به‌صورت معکوس مرتب می‌کند. معمولاً فرمان ls نتایج را به ترتیب حروف الفبا نمایش می‌دهد. –reverse -r
نتایج را بر اساس سایز نمایش می‌دهد. -S
نتایج را بر اساس زمان اصلاح نمایش می‌دهد. -t

تعیین نوع فایل با فرمان file

از فرمان file برای تعیین نوع فایل استفاده می‌شود. فرمان file به شکل زیر اجرا می‌گردد:

file filename

هنگام اجرا، فرمان file توضیحی مختصر را از محتویات فایل چاپ می‌کند. به عنوان مثال:

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

مشاهده محتویات فایل با فرمان less

فرمان less برنامه‌ای برای مشاهده فایل‌های متنی است. در لینوکس فایل‌های زیادی هستند که متن قابل خواندن می‌باشد. فرمان less برنامه‌ای برای مشاهده فایل‌های متنی است.

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

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

less filename

به محض شروع، فرمان less اجازه می‌دهد تا از طریق یک فایل متنی به جلو و عقب حرکت کنید. به‌عنوان مثال، برای بررسی فایل که تمام حساب‌های کاربر سیستم را تعریف می‌کند، فرمان زیر را وارد کنید:

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

فعالیت فرمان
یک صفحه به عقب می‌رود. Page Up  یا b
یک صفحه به جلو می‌رود. Page Down یا Spacebar
یک خط بالا می‌رود. کلید جهت‌نمای بالا
یک خط پایین می‌رود. کلید جهت‌نمای پایین
به انتهای فایل متنی می‌رود. G
به ابتدای فایل متنی می‌رود. ۱G یا g
characters را رو به جلو جستجو می‌کند. /characters
برای رویداد بعدی رو به عقب جستجو می‌کند. n
صفحه راهنما (help) را نمایش می‌دهد. h
از less خارج می‌شود. q

منبع: کتاب The Linux Command Line نوشته William E. Shotts

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


بهمن ۲ ۱۳۹۶

آموزش رایتر: قسمت دوم، نوار وضعیت

نوشته شده توسط فرشید نوتاش حقیقت.

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

وضعیت صفحات سند

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

برای پرش به یک صفحه خاص در سند، بر روی شماره صفحه کلیک می‌کنیم تا پنجره Navigator باز شود. در بخش شماره صفحه، شماره صفحه مورد نظر را وارد می‌کنیم. همانطور که در تصویر زیر نشان داده شده است.

تعداد کلمه و کاراکتر درون سند در نوار وضعیت نشان داده شده است و به روز نگه داشته می‌شود.

برای نمایش شمارش کاراکتر به استثنای فاصله‌های بین آن‌ها بر روی تعداد کلمه در نوار وضعیت کلیک و یا گزینه Tools>>Word Count را انتخاب کنید.

سبک صفحه

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

نمایش زبان صفحه

برای چک کردن املا، چینش، و اصلاح نامه استفاده می‌شود. با کلیک بر روی این بخش زبان‌های دیگری را برای متن می‌توان انتخاب نمود. همچنین با گزینه None می‌توان کاری کرد که املای متن بررسی نشود.

حالت درج

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

نمایش مشخصات آیتم انتخاب شده

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

مشخصات چیدمان

در این بخش نحوه نمایش سند به‌صورت تک‌صفحه‌ای، دو صفحه‌ای و سندهای پشت و رو تنظیم می‌شود.

بزرگ‌نمایی

برای تغییر بزرگ‌نمایی می‌توان از نوار لغزنده یا نشانه‌های + و – یا کلیک راست بر روی درصد استفاده نمود.

منبع: «جزوه آموزشی مهارت کار با نرم‌افزار واژه‌پرداز» نوشته شرکت دانش‌بنیان سافا

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


بهمن ۱ ۱۳۹۶

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

نوشته شده توسط فرشید نوتاش حقیقت.

برای استفاده از ترمینال به غیر از تایپ کردن می‌بایست حرکت کردن در فایل‌سیستم لینوکس را آموخت.در این آموزش، فرمان‌های زیر را معرفی خواهیم کرد:

فرمان pwd: نمایش نام دایرکتوری جاری

فرمان cd: تغییر دایرکتوری

فرمان ls: لیست کردن محتوای دایرکتوری

درک درخت فایل‌سیستم

همانند ویندوز، سیستم‌عامل لینوکس فایل‌های خود را به‌صورت سلسله‌مراتبی در دایرکتوری‌ها قرار می‌دهد که به آن ساختار دایرکتوری سلسله‌مراتبی (hierarchical directory structure) گفته می‌شود. این بدین معنی است که فایل‌ها در یک الگوی درختی از دایرکتوری‌ها (که بعضاً به آن‌ها Folder هم می‌گویند.) سازماندهی می‌شود.

اولین دایرکتوری موجود در فایل‌سیستم، دایرکتوری ریشه (root directory) نام دارد. دایرکتوری root که با علامت / نمایش داده می‌شود شامل تمامی فایل‌ها و زیردایرکتوری‌ها است که خود آن‌ها نیز فایل‌ها و دایرکتوری‌هایی را شامل می‌شوند.

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

دایرکتوری جاری (دایرکتوری کاری)

اکثر ما احتمالاً با یک مدیر گرافیکی که درخت فایل‌سیستم را نشان می‌دهد، آشنا هستیم. (همانند شکل زیر)

تصویر فوق گویای نمایش سلسله‌مراتبی دایرکتوری‌ها است اما باید توجه داشت که خط فرمان هیچ‌گونه نمای بصری ندارد. بنابراین برای حرکت در درخت فایل‌سیستم باید از روش دیگری استفاده کرد. در خط فرمان و در هر زمان معین همیشه در یک دایرکتوری خاص هستیم و می‌توان فایل‌های موجود در دایرکتوری و مسیر دایرکتوری بالاتر (دایرکتوری والد) و زیردایرکتوری‌ها را مشاهده کرد. دایرکتوری که در آن هستیم دایرکتوری جاری نام دارد که برای نمایش آن از فرمان pwd (سرنام واژگان print working directory) استفاده می‌شود:

هنگامی که ترمینالی را برای اجرای فرمان‌ها می‌گشاییم دایرکتوری جاری در دایرکتوری home مستقر می‌گردد. هر حساب کاربری به دایرکتوری home خود ارجاع داده می‌شود.

لیست محتویات یک دایرکتوری

برای لیست کردن فایل‌ها و دایرکتوری‌های دایرکتوری جاری از فرمان ls استفاده می‌شود:

در واقع می‌توان از فرمان ls برای لیست کردن محتویات هر دایرکتوری استفاده کرد.

تغییر دایرکتوری جاری

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

Pathname مطلق

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

مشاهده می‌شود که دایرکتوری جاری به /usr/bin تغییر یافته است که حاوی فایل‌های متعددی است. توجه داشته باشید اعلان پوسته چگونه تغییر یافته است به جای دایرکتوری home (علامت ~) دایرکتوری جاری یعنی bin قرار گرفته است.

Pathname نسبی

یک Pathname مطلق از دایرکتوری root شروع شده و به مقصد آن منتهی می‌شود اما Pathname نسبی از دایرکتوری جاری شروع می‌شود. برای این کار، از دو علامت خاص برای نشان دادن Pathname نسبی استفاده می‌شود. این علائم ویژه، نقطه (.) و دونقطه (..) می‌باشد. نماد نقطه به دایرکتوری جاری و نماد دونقطه به دایرکتوری والد دایرکتوری جاری اشاره می‌کند.

حال به چگونگی کارکرد آن خواهیم پرداخت. به عنوان نمونه دایرکتوری جاری را دوباره به /usr/bin تغییر دهید:

اکنون می‌خواهیم دایرکتوری کاری را از /usr/bin به والد آن یعنی /usr تغییر مسیر دهیم. برای این کار می‌توان از دو روش استفاده کرد. روش Pathname مطلق:

یا به‌وسیله Pathname نسبی:

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

به همین ترتیب می‌توان دایرکتوری جاری را از /usr به /usr/bin تغییر دهیم، روش Pathname مطلق:

و یا از طریق روش Pathname نسبی:

برخی از میانبرهای مفید

نتیجه

میانبر
دایرکتوری جاری را به دایرکتوری home سیستم شما تغییر می‌دهد. cd
دایرکتوری جاری را به آخرین دایرکتوری جاری تغییر می‌دهد. cd –
دایرکتوری جاری را به دایرکتوری home کاربر username تغییر می‌دهد. به عنوان مثال cd ~bob دایرکتوری جاری را به دایرکتوری home کاربر bob تغییر می‌دهد. cd ~username

منبع: کتاب The Linux Command Line نوشته William E. Shotts

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


دی ۳۰ ۱۳۹۶

اقتصاد رمزپولی و ویرگول؛ بازگشت وبلاگ نویسی

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

از اینها که بگذریم، چرا اصلا این عنوان رو برای مطلب انتخاب کردم؟ دلیل خاصی نداشت و واقعا هم قصد نداشتم که وارد مباحث تحلیلی و پیچیده «رمزپول» ها بشم، ولی دوست داشتم یکی دو تا از مطالب روز که در فضای وب فارسی هم خیلی مطرح هستند رو پوشش بدم. اولیش هم همین «رمزپول» یا پولهای دیجیتالی مثل بیت‌کوین و اتریوم و مونرو و … .
چیزی که برای من در این زمینه خیلی جالب شده، اینه که کم کم اقتصاد داره به سمت معامله با این پولها میره و پولهای کلاسیک – که یعنی یک پشتوانه پر ارزش داشتند، اون هم در خزانه ها و بانکهای بزرگ کشورها – کم کم کنار زده میشن. کم‌کم، سرویسهای آنلاینی که ازشون خرید میکنیم (یا چیزی رو روی اونها میفروشیم) هم دارند قبول می‌کنند که این پولها رو هم در کنار پولهای کلاسیک بپذیرند.
خب چیزی که واضحه، این پولها احتمالا توجه تاجران و سرمایه داران بزرگ هم به خودشون جذب میکنن و این یعنی جایگزین شدنشون با پولهای بین المللی و احتمالا به شکل قابل توجهی «جهان‌وطنی» شدن صنعت و تجارت (باز هم در انحصار عده‌ای خاص؟).
البته ما ، بعنوان جوامع گیک و نِرد هم صرفا این پولها رو مطالعه میکنیم، کاوش (ماین) میکنیم و بعضا ممکنه برای خرید و فروشهای ساده (مثل همونایی که از داخل یا خارج امکان معامله‌شون نیست، مثل خرید نرم افزار یا سرویس) استفاده‌شون کنیم و همین باعث شده که زندگی جماعت گیک حداقل کمی بهتر بشه.

و اما ویرگول! درست همین «،» ساده که هیچوقت نفهمیدیم ویرگول اسم درستشه یا کاما، شده اسم یک سرویس ایرانی برای میکروبلاگینگ (لینک) و بسیاری از وبلاگ نویسهای قدیمی که در «وبلاگستان» فعال بودند، دوباره سمتش اومدند و شروع کردن به نوشتن.
چه اونهایی که پست های مینیمال دو سه خطی می‌نوشتند، چه اونهایی که مثل من عادت به روده‌درازی و طومار نویسی داشتند. بهرحال تریبون کسانی که به دور از فیسبوک و توییتر و … میخوان که شنیده و دیده و خونده بشن، همین وبلاگهاست. همین فضاهای چند مگابایتی روی اینترنت!
از ظهور ویرگول خوشحال شدم، چون خیلی وقت پیش تلگراف (لینک) رو دیده بودم که عموما به زبان انگلیسی می‌نویسند (چندین پست از پاول دوروف، مدیرعامل تلگرام اونجا خوندم) و فهمیدم یک شکل جدید از وبلاگ نویسی رو به بازار عرضه کرده، در این فکر بودم که چرا فارسیش نیست؟ و حتی به فکر پیاده سازی یکی از اونها افتادم که دیدم ویرگول به خوبی و زیبایی پیاده سازی شده.

خلاصه، این یک مطلب طولانی و شاید غیرعلمی بود که پس از مدتها نوشتم، برای نویسندگی در وبلاگ برنامه های زیادی دارم 🙂

Share


دی ۳۰ ۱۳۹۶

آموزش اوبونتو: قسمت اول، آشنایی با محیط

نوشته شده توسط فرشید نوتاش حقیقت.

در این آموزش قصد داریم شما را با محیطی که پس از نصب اوبونتو با آن روبرو می‌شوید، آشنا کنیم.

دسکتاپ اوبونتو

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

Unity

تمامی سیستم‌عامل‌های مبتنی بر gui از یک محیط دسکتاپی که دارای ویژگی‌هایی است بهره می‌برند.

اوبونتو به‌طور پیش‌فرض از دسکتاپ Unity استفاده می‌کند.

پس‌زمینه دسکتاپ

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

منوبار

منوبار شامل توابع متداولی است که در اوبونتو استفاده می‌شود. آیکون‌ها در سمت راست منو در ناحیه‌ای از نوار منو به نام ناحیه نشانگر (Indicator) یا ناحیه اطلاع‌رسانی (notification) واقع شده‌اند.

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

برخی از برنامه‌ها به‌طور خودکار در حین نصب آیکونی را به منوبار اضافه می‌کنند. شایع‌ترین شاخص‌ها عبارتند از:

Network Indicator که ارتباطات شبکه را مدیریت می‌کند و به شما این امکان را می‌دهد که به سرعت و به آسانی به یک شبکه سیمی یا بی‌سیم متصل شوید.

Text Entry Settings که اگر شما بیش از یک زبان صفحه‌کلید را نصب کرده باشید مانند EN و FA نمایان می‌شود که به کمک آن قادر خواهید بود آن را تغییر دهید.

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

Sound Indicator راهی آسان برای تنظیم صدا و همچنین دسترسی به پخش‌کننده موسیقی و تنظیمات صدا را فراهم می‌کند.

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

Session Indicator دارای تنظیمات سیستم، راهنمای اوبونتو و گزینه‌هایی چون قفل کردن کامپیوتر، logging یا ریستارت کامپیوتر و یا خاموش کردن آن می‌باشد.

هر برنامه‌ای شامل منوهای مختلفی چون File، Edit، View و … هست که با باز کردن آن در سمت منو بار نمایش داده می‌شوند. برای نمایش منوهای برنامه، کافی است ماوس خود را به نوار منوی دسکتاپ در بالای صفحه حرکت دهید تا منوهای برنامه نمایش داده شوند.

شما می‌توانید از طریق Appearance در System Setting این قابلیت را غیرفعال کنید. در زبانه Behavior در زیر Show the menus for a window گزینه In the windows title bar را انتخاب کنید.

The Launcher

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

تمامی برنامه‌های در حال اجرا شما تا زمانی که بسته نشده‌اند به‌صورت یک آیکون بر روی لانچر دیده می‌شوند.

برای تغییر سایز آیکون‌های لانچر از طریق System Setting و گزینه Appearance و زبانه Look می‌توانید اقدام کنید.

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

به‌طور پیشفرض آیکون‌های دیگری شامل File Manager، LibreOffice، Firefox، دستگاه‌های متصل (مانند فلش مموری) و سطل زباله در لانچر وجود دارد.

اجرای برنامه‌ها

برای اجرای یک نرم‌افزار که بر روی لانچر قرار دارد با کلیک کردن بر روی آن به راحتی آن را اجرا خواهید کرد.

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

همچنین می‌توانید برنامه‌ها را از طریق Dash اجرا کنید که در آموزشی مجزا بدان خواهیم پرداخت.

افزودن و حذف برنامه‌ها بر روی لانچر

برای اضافه کردن یک برنامه به لانچر دو روش وجود دارد:

روش اول – Dash را گشوده و برنامه‌ای که می‌خواهید پیدا کرده سپس آیکون آن را با ماوس کشیده و بر روی لانچر رها کنید.

روش دوم – برنامه‌ای که می‌خواهید به لانچر اضافه کنید اجرا کرده و سپس روی آن کلیک راست کنید و گزینه Lock to Launcher را برگزینید.

برای حذف یک برنامه از لانچر کافی است بر روی آیکون آن کلیک راست کرده و گزینه Unlock from Launcher را انتخاب کنید.

در آموزش بعدی به آیتم Dash خواهیم پرداخت.

نوشته آموزش اوبونتو: قسمت اول، آشنایی با محیط اولین بار در لینوکس سیزن پدیدار شد.


دی ۲۹ ۱۳۹۶

آموزش رایتر: قسمت اول، آشنایی با محیط کار نرم‌افزار

نوشته شده توسط فرشید نوتاش حقیقت.

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

در خط بعد، منوهای برنامه را مشاهده می‌کنیم و در خط بعدی ابزارهای استاندارد واژه‌پرداز نمایان هستند که به‌وسیله منوی View>>Toolbars قابل اضافه یا حذف شدن هستند. در بخش میانی، اصطلاحاً صفحه کاغذ قرار دارد که می‌توانیم نامه، گزارش، کتاب، مجله و غیره را در این قسمت بنویسیم و یا ویرایش کنیم. در کنار و بالای این صفحه نوار باریکی با شماره‌هایی مشخص شده‌اند، که به آن خط‌کش گفته می‌شود. در انتهای پنجره نوار وضعیت قرار دارد. در سمت راست نوار وضعیت می‌توانیم بزرگ‌نمایی سند را تنظیم کرده و حالت خواندن، دو صفحه‌ای و تک صفحه‌ای را فعال کنیم.

نوار عنوان

نوار عنوان (Title Bar) در بالای پنجره رایتر قرار گرفته که نام فایل سند جاری را نشان می‌دهد وقتی که سند به تازگی ایجاد شده، نام سند Untiled X است که X یک عدد خواهد بود.

نوار منو اصلی

نوار منو اصلی (Menu Bar) در زیر نوار عنوان قرار گرفته است. زمانی که شما یکی از منوها را انتخاب می‌کنید یک زیرمنو ظاهر خواهد شد که بیشتر دستورات آن شامل موارد زیر است:

دستورات اجرایی، مانند Close یا Save کردن، که در منوی File موجود است.

Commands: کادرهای محاوره‌ای را باز می‌کنند که در انتهای آن سه نقطه وجود دارد، مانند Find یا Paste Special که در منوی Edit موجود است.

گزینه‌هایی که خود دارای زیرمنو هستند و بیشتر با پیکان مشکی که به سمت راست اشاره دارد مانند Toolbars و Zoom در منوی View، حرکت دادن مکان‌نما بر روی آن باعث باز شدن آن می‌شود.

نوار ابزار استاندارد (Standard Toolbar)

نوار ابزار استاندارد به‌صورت پیش‌فرض در زیر نوار منوی اصلی قرار دارد که ابزارهای پر کاربرد را نمایش می‌دهد، مانند: ذخیره‌سازی، چاپ، ایجاد سند جدید، این نوار ابزار در تمامی برنامه‌های LibreOffice وجود دارد. (Writer، Calc، Impress، Draw)

نوار قالب‌بندی

نوار قالب‌بندی (Formatting Toolbar) دومین نوار ابزاری است که با انتخاب متن یا عکس متفاوت می‌شود، یعنی در هنگام کار با متن، نوار قالب‌بندی گزینه‌های ویژه کاراکترها را نمایش داده و هنگامی که مکان‌نما بر روی تصویر قرار می‌گیرد نوار ابزارهای مخصوص تصاویر را نشان می‌دهد.

نوار ابزار تصاویر به‌صورت قفل شده در انتهای صفحه‌نمایش، نمایش داده می‌شود. یک نوار ابزار فرعی برای گلوله و شماره‌گذاری (Bullet and Numbering) در کنار نوار ابزار قالب‌بندی نمایش داده می‌شود.

نوار وضعیت

نوار وضعیت (Status Bar) در پایین فضای کاری واقع شده است. این نوار ابزار اطلاعاتی درباره سند و راه‌های مناسب برای تغییرات سریع برخی از ویژگی‌های سند را فراهم می‌کند. این نوار ابزار را می‌توان در منوی View پنهان یا آشکار کرد. همانطور که در تصویر نشان داده شده است:

نوار کناری

برای فعال کردن نوار کناری، Sidebar را از منوی View انتخاب می‌کنیم. نوار کناری شامل هفت آیتم تنظیمات، خصوصیات (Properties)، سبک‌ها و قالب‌بندی‌ها (Styles and Formatting)، گالری (Gallery)، دیدبان (Navigator)، مدیریت تغییرات (Manage Changes) و طراحی (Design) است.

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

سبک و قالب‌بندی: در این بخش سبک‌های مورد استفاده سند را می‌توان مدیریت کرد.

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

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

منبع: «جزوه آموزشی مهارت کار با نرم‌افزار واژه‌پرداز» نوشته شرکت دانش‌بنیان سافا

نوشته آموزش رایتر: قسمت اول، آشنایی با محیط کار نرم‌افزار اولین بار در لینوکس سیزن پدیدار شد.


دی ۲۸ ۱۳۹۶

آموزش خط فرمان: قسمت اول، Shell چیست؟

نوشته شده توسط فرشید نوتاش حقیقت.

وقتی از خط فرمان سخن می‌گوییم در واقع به Shell (پوسته) اشاره می‌کنیم. Shell برنامه‌ای است که فرمان‌ها را از صفحه‌کلید می‌گیرد و به سیستم‌عامل منتقل می‌کند. تقریباً تمامی توزیع‌های لینوکسی یک برنامه Shell را از پروژه GNU تحت عنوان bash پشتیبانی می‌کنند. Bash سرنام واژگان Bourne Again Shell بوده که توسط استیو بورن نوشته شده است.

شبیه‌سازهای ترمینال

هنگام استفاده از یک رابط گرافیکی نیازمند برنامه دیگری تحت عنوان شبیه‌ساز ترمینال برای تعامل با پوسته خواهید بود. KDE از console و GNOME از gnome-terminal استفاده می‌کند. تعداد دیگری از شبیه‌سازهای ترمینال برای لینوکس وجود دارد که اساس کار آن‌ها یکسان است و امکان دسترسی به پوسته را به ما می‌دهد.

هنگامی که شبیه‌ساز ترمینال را می‌گشایید، می‌بایست چیزی شبیه به این را ببینید:

این نشان‌دهنده اعلان پوسته (shell prompt) نامیده می‌شود. ممکن است اعلان پوسته در سیستم شما کمی متفاوت باشد. معمولاً نام کاربری username@machinename بوده و سپس دایرکتوری جاری (در این باره بیشتر توضیح خواهیم داد) و علامت دلار است.

اگر آخرین کاراکتر به جای دلار، # باشد بدین معنا است ترمینال دارای دسترسی‌ها و مجوزهای کاربر superuser می‌باشد. این بدین معناست که ما به‌عنوان کاربر root (ریشه) وارد شده‌ایم و یا یک ترمینال را با امتیازات superuser (چیزی شبیه Administrator در سیستم‌های ویندوزی) وارد شده‌ایم.

حال با تایپ کردن، ترمینال آزمایش می‌کنیم:

با توجه به اینکه این فرمان موجود نیست، پوسته به شما فرصت دیگری می‌دهد.

تاریخچه فرمان

اگر دکمه جهت‌نمای بالا را بفشارید مشاهده خواهید کرد که فرمان قبلی (kaekfjaeifj) پس از اعلان ظاهر می‌شود. به این ویژگی تاریخچه فرمان (Command History) می‌گویند. به‌طور پیشفرص اکثر توزیعات لینوکسی ۵۰۰ فرمان را به‌خاطر می‌سپارند. فشردن کلید جهت‌نمای پایین، فرمان قبلی را از بین می‌برد.

مکان‌نما (Cursor)

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

چند فرمان ساده

حال که اندکی با خط فرمان آشنا شده‌اید، به سراغ چند فرمان ساده می‌رویم. اولین فرمان، فرمان date است که زمان و تاریخ فعلی را نمایش می‌دهد:

فرمان بعدی، فرمان cal می‌باشد که به‌طور پیشفرض تقویم ماه جاری را نمایش می‌دهد:

برای دیدن مقدار فضای فعلی روی درایورهای دیسک خود از فرمان df استفاده خواهید کرد:

به همین ترتیب برای نمایش مقدار حافظه آزاد، از فرمان free استفاده می‌گردد:

با بستن پنجره ترمینال و یا با استفاده از فرمان exit می‌توانید از ترمینال خارج شوید:

منبع: کتاب The Linux Command Line نوشته William E. Shotts

نوشته آموزش خط فرمان: قسمت اول، Shell چیست؟ اولین بار در لینوکس سیزن پدیدار شد.


دی ۲۸ ۱۳۹۶

قرآن مطلا

به نام خداوند جان و خرد این روز ها با پدیده ای روبرو هستیم که میگه مردم اشکنه بخورند مردم سنگ به شکمشون ببندن. ولی میره قرآن مطلا درست میکنه. اینکه کجای کتاب خدا گفته شده پول مردم رو برای قرآن و در و پیکر طلا خرچ کنید نمیدونم ولی خیلی خوب میدونم که خداوند […]

نوشته قرآن مطلا اولین بار در گشتاسب مظفریان – GMozafarian. پدیدار شد.


دی ۲۷ ۱۳۹۶

تفاوت su و sudo در لینوکس

نوشته شده توسط فرشید نوتاش حقیقت.

اگر شما از جمله کاربران لینوکس می‌باشید، احتمالاً به sudo و su برخورده‌اید. حال سوال اینجاست که sudo با su چه تفاوتی دارد؟

su و sudo دو روش مختلف برای به‌دست آوردن دسترسی‌های root می‌باشد.

کاربر root

su و sudo هر دو برای اجرای فرامین با پرمیژن‌های root مورد استفاده قرار می‌گیرد. کاربر root (ریشه) معادل کاربر Administrator در ویندوز می‌باشد. کاربر ریشه دارای تمامی پرمیژن‌هاست که با آن می‌توانید هر کاری را در سیستم انجام دهید. کاربران معمولی در لینوکس با پرمیژن‌های کمتری کار می‌کند. به عنوان مثال کاربران عادی نمی‌توانند نرم‌افزار نصب کنند. برای انجام کاری که نیازمند این پرمیژن‌هاست می‌بایست از su یا sudo کمک گرفت.

su در مقابل sudo

وقتی فرمان su را بدون هیچ گزینه اضافه‌ای اجرا می‌کنید به super user یا کاربر ریشه سوئیچ می‌شوید که می‌بایست رمز عبور حساب کاربری root را وارد کنید. همچنین فرمان su می‌تواند برای سوئیچ به هر حساب کاربری به‌کار گرفته شود. اگر فرمان su bob را اجرا کنید، از شما رمز عبور Bob خواسته می‌شود و پوسته به حساب کاربری Bob تغییر خواهد کرد.

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

Sudo یک فرمان واحد را با امتیازات root اجرا می‌کند. وقتی فرمان sudo را اجرا می‌کنید، سیستم قبل از اجرای فرمان به عنوان کاربر ریشه از شما رمز عبور کاربر فعلی را خواستار می‌شود.

Su شما را به کاربر root سوئیچ می‌کند و از شما رمز عبور حساب کاربری root را می‌خواهد. این یکی از کلیدی‌ترین تفاوت‌های su و sudo می‌باشد.

Sudo یک فرمان واحد را با امتیازات root اجرا می‌کند و حساب کاربری را به کاربر root تغییر نمی‌دهد.

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

فرمان su روشی مرسوم برای دستیابی به پرمیژن‌های ریشه در لینوکس می‌باشد. فرمان sudo برای مدت طولانی وجود داشته اما اوبونتو اولین توزیع محبوب لینوکسی است که به‌طور پیش‌فرض با sudo کار می‌کند.

زمانی که اوبونتو را نصب می‌کنید، یک حساب root استاندارد ایجاد می‌شود، اما هیچ رمز عبوری برای آن اختصاص داده نمی‌شود. شما نخواهید توانست به عنوان root وارد سیستم شوید مگر آن که یک رمز عبور برای حساب کاربری root تخصیص دهید.

استفاده از sudo به‌جای su دارای مزایای زیادی است. کاربران اوبونتو فقط باید یک کلمه عبور را به یاد داشته باشند در حالی که فدورا و سایر توزیع‌ها نیاز به ایجاد رمزهای عبور ریشه و کاربر به‌صورت جداگانه در هنگام نصب دارند.

مزیت دیگر این است که اجازه ورود به سیستم به‌عنوان کاربر root و یا استفاده از su را برای دریافت پوسته root نمی‌دهد.

توزیعات مبتنی بر اوبونتو از جمله لینوکس مینت به‌طور پیش‌فرض از sudo به‌جای su استفاده می‌کنند.

چندین ترفند

برای اجرای یک فرمان به‌عنوان کاربر ریشه با su فرمان زیر را اجرا کنید:

su -c ‘command’

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

برای دریافت کامل پوسته ریشه، فرمان sudo –i را اجرا کنید.

شما باید رمز عبور حساب کاربری فعلی را به جای گذرواژه حساب کاربری root وارد کنید.

فعال کردن کاربر ریشه در اوبونتو

برای فعال کردن حساب کاربری root در اوبونتو، از فرمان زیر برای تنظیم رمز عبور برای آن استفاده کنید.

sudo passwd root

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

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

افزودن کاربران به فایل sudoers

فقط حساب‌های administrator می‌توانند فرامین را با sudo اجرا کنند. شما می‌توانید نوع حساب کاربری را از پنجره User Accounts configuration تغییر دهید.

اوبونتو به‌طور خودکار حساب کاربری ایجاد شده در هنگام نصب را به‌عنوان حساب administrator تعیین می‌کند.

اگر از توزیع لینوکسی دیگری استفاده می‌کنید، می‌توانید یک پرمیژن کاربری را برای استفاده از sudo با اجرای فرمان visudo با امتیازات root ایجاد کنید. (پیش از آن su یا su –c را اجرا کنید.)

خط زیر را به فایل اضافه کنید و به‌جای user نام حساب کاربری را قرار دهید:

user    ALL=(ALL:ALL) ALL

ابتدا Ctrl+X را زده و سپس Y را برای ذخیره فایل بفشارید. همچنین می‌توان یک کاربر را به یک گروه مشخص شده در فایل اضافه کنید.

نسخه‌های گرافیکی su

لینوکس نسخه‌های گرافیکی su را نیز پشتیبانی می‌کند و خواستار رمز عبور در محیط گرافیکی می‌شود. به‌عنوان مثال، می‌توان فرمان زیر را برای دریافت یک درخواست رمز عبور گرافیکی اجرا نمود و مرورگر ناتیلوس را با پرمیژن‌های root اجرا نمود. Alt+F2 را بفشارید تا فرمان را از یک نمایشگر گرافیکی اجرا کنید بدون آنکه از ترمینال استفاده کرده باشید.

gksu nautilus

gksu در پشت پرده از su یا sudo مبتنی بر توزیع لینوکس استفاده می‌کند.

منبع: howtogeek.com

نوشته تفاوت su و sudo در لینوکس اولین بار در لینوکس سیزن پدیدار شد.


دی ۲۶ ۱۳۹۶

نحوه مشاهده گروه‌هایی که یک حساب کاربری در آن عضو است

نوشته شده توسط فرشید نوتاش حقیقت.

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

با گشودن ترمینال کار خود را آغاز نمایید. در خط فرمان، فرمان زیر را تایپ کرده و سپس دکمه اینتر را بفشارید:

groups

استفاده از فرمان groups نشان می‌دهد که کاربر در چه گروه‌هایی عضو است.

همچنین اگر یک نام کاربری را بعد از فرمان groups اضافه کنید، گروه‌هایی که آن کاربر عضو آن است نشان داده می‌شود. تنها کافی است از فرمت زیر تبعیت کنید:

groups  <username>

منبع: howtogeek.com

 

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


دی ۲۵ ۱۳۹۶

نمایش ستاره در محل تایپ پسورد sudo

همون طور که میدونید اجرای دستور sudo منوط به تایپ پسورد هست. اما در حین تایپ چیزی نشون داده نمیشه. میتونیم با یه کلک ساده کاری کنیم که موقع تایپ پسورد برای دستور sudo ستاره گذاشته بشه.
برای این کار باید فایل etc/sudoers/ رو ویرایش کنیم. راه صحیح و اصولیش اینه که با این دستور این کار رو بکنیم:
 sudo visudo
اما کار با این روش خیلی روی اعصابه! من با gedit به راحتی این کار رو میکنم:
sudo gedit /etc/sudoers
دنبال عبارت Defaults env_reset بگردید. و اون رو به Defaults env_reset,pwfeedback تغییر بدید. اگر نبود، اضافه کنید. فایل رو ذخیره کنید و در ترمینال دستور reset رو اجرا کنید تا تغییرات اعمال بشه.


دی ۲۵ ۱۳۹۶

نمایش ستاره در محل تایپ پسورد sudo

همون طور که میدونید اجرای دستور sudo منوط به تایپ پسورد هست. اما در حین تایپ چیزی نشون داده نمیشه. میتونیم با یه کلک ساده کاری کنیم که موقع تایپ پسورد برای دستور sudo ستاره گذاشته بشه.
برای این کار باید فایل etc/sudoers/ رو ویرایش کنیم. راه صحیح و اصولیش اینه که با این دستور این کار رو بکنیم:
 sudo visudo
اما کار با این روش خیلی روی اعصابه! من با gedit به راحتی این کار رو میکنم:
sudo gedit /etc/sudoers
دنبال عبارت Defaults env_reset بگردید. و اون رو به Defaults env_reset,pwfeedback تغییر بدید. اگر نبود، اضافه کنید. فایل رو ذخیره کنید و در ترمینال دستور reset رو اجرا کنید تا تغییرات اعمال بشه.


دی ۲۵ ۱۳۹۶

آموزش نصب دیتابیس TILE38 در لینوکس

tile38-logo

برای ذخیره ی اطلاعات، دیتابیس های مختلفی وجود دارد که هر کدام کاربرد خاص خود را دارند.TILE38 یک دیتابیس open source می باشد که قابلیت ذخیره ی اطلاعات جغرافیایی،شاخص مکانی و geofence را به صورت realtime دارا می باشد.

برخی از ویژگی های دیتابیس tile38 بنا به گفته ی سایت رسمی آن به شرح زیر می باشند :

 

  • Spatial index with search methods such as NEARBY, WITHIN, and INTERSECTS.
  • Realtime geofencing through persistent sockets or webhooks.
  • Object types of lat/lon, bbox, Geohash, GeoJSON, QuadKey, and XYZ tile.
  • Support for lots of Clients Libraries written in many different languages.
  • Variety of client protocols, including http (curl), websockets, telnet, and the Redis RESP.
  • Server responses are RESP or JSON.
  • Full command line interface.
  • Leader / follower replication.
  • In-memory database that persists on disk.

 

 

نصب tile38 در لینوکس :

 

روند نصب دیتابیس tile38 بسیار ساده می باشد.در این مطلب جهت نصب tile38 از توزیع CentOS 7.4 x86-64  استفاده شده است.برای نصب ابتدا به شاخه ی زیر بروید :

 

 

#cd /opt

 

اکنون از صفحه releases پروژه ی tile38 در github آخرین نسخه ی آن را بر اساس سیستم عامل خود دانلود کنید :

 

https://github.com/tidwall/tile38/releases

#wget -c https://github.com/tidwall/tile38/releases/download/1.10.0/tile38-1.10.0-linux-amd64.tar.gz

 

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

 

#tar -xzvf tile38-1.10.0-linux-amd64.tar.gz

سپس وارد پوشه ی استخراج شده بروید :

 

 

#cd tile38-1.10.0-linux-amd64

 

اکنون جهت اجرای سرویس  tile38 کافیست تا دستور زیر را اجرا کنید :

 

#./tile38-server

 

توجه داشته باشید با اجرای دستور بالا tile38 در foreground اجرا خواهد شد.برای اجرا شدن آن در background می توان از systemd استفاده کرد.برای اینکار ابتدا فایل زیر را ایجاد کنید :

 

# vim /usr/lib/systemd/system/tile38.service

سپس خطوط زیر را درون آن وارد کنید و فایل را ذخیره کنید :

[Unit]
Requires=network.target
After=network.target

[Service]
Type=simple
User=root
Group=root
ExecStart=/opt/tile38-1.10.0-linux-amd64/tile38-server

ExecStop=/usr/bin/pkill tile38-server

[Install]
WantedBy=multi-user.target

 

اکنون می توانید سرویس tile38 را با استفاده از systemd کنترل کنید :

 

 

# systemctl status tile38.service

# systemctl start tile38.service

# systemctl stop tile38.service

# systemctl enable tile38.service

# systemctl disable tile38.service

 

 

اگر از firewalld استفاده می کنید اکنون باید port 9851 که مربوط به سرویس tile38 است را باز کنید :

 

#firewall-cmd --zone=public --add-port=9851/tcp
#firewall-cmd --zone=public --add-port=9851/tcp --permanent

 

امید است تا از این مطلب استفاده لازم را ببرید.

 


دی ۲۳ ۱۳۹۶

فیلترشکن های دندان‌شکن

به نام خداوند جان و خرد این روزها همه در حال دست و پنجه نرم کردن با فیلترشکن های مختلف برای شکستن فیلتر پیام رسان محبوب تلگرام هستند; اما باید بدانیم که فیلتر شدن پیام رسان تلگرام تنها قسمت کوچکی از پروژه فیلترینگ جمهوری اسلامی‌ست. خوشبختانه بعد از فیلتر تلگرام دید جامعه نسبت به فیلترینگ […]

نوشته فیلترشکن های دندان‌شکن اولین بار در گشتاسب مظفریان – GMozafarian. پدیدار شد.


دی ۲۲ ۱۳۹۶

نحوه تغییر آدرس IP در خط فرمان لینوکس

نوشته شده توسط فرشید نوتاش حقیقت.

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

این ترفند باید بر روی تمامی توزیع‌های لینوکسی مبتنی بر دبیان، از جمله اوبونتو کار کند. برای شروع، ifconfig را در ترمینال تایپ کرده و سپس دکمه Enter را بفشارید. این فرمان، تمام رابط‌های شبکه را در سیستم لیست می‌کند، بنابراین نام رابط کاربری را که می‌خواهید آدرس IP آن را تغییر دهید، یادداشت کنید.

برای تغییر تنظیمات نیز از فرمان ifconfig با چند پارامتر اضافی استفاده خواهد شد. فرمان زیر رابط شبکه eth0 را برای استفاده از آدرس IP به‌صورت ۱۰۲.۱۶۸.۰.۱ تغییر و ماسک زیرشبکه را به ۲۵۵.۲۵۵.۲۵۵.۰ تغییر می‌دهد:

sudo ifconfig eth0 192.168.0.1 netmask 255.255.255.0

اگر ifconfig را دوباره اجرا کنید، خواهید دید که رابط کاربری در تنظیمات جدیدی که به آن اختصاص داده‌اید، قرار گرفته است.

فرمان زیر به‌عنوان مثال gateway پیشفرض را برای رابط eth0 به ۱۹۲.۱۶۸.۰.۲۵۳ تنظیم می‌کند:

sudo route add default gw 192.168.0.253 eth0

برای دیدن تنظیمات جدید، نیاز به نمایش جدول مسیریابی خواهید داشت. کافی است تا فرمان زیر را اجرا کنید:

route -n

منبع: howtogeek

نوشته نحوه تغییر آدرس IP در خط فرمان لینوکس اولین بار در لینوکس سیزن پدیدار شد.


دی ۲۲ ۱۳۹۶

چطور مقالات علمی را درست انتخاب کنیم، بخوانیم و متوجه شویم؟

احتمالا شما هم مثل من به خوندن بلاگ پست‌ها، دنبال کردن فیدها و … معتاد شده باشید. من یاد گرفتم چطور یک تکنولوژی جدید رو یاد بگیرم، یاد گرفتم چطور و چقدر از یک کتاب مرجع رو بخونم ولی بلد نبودم چطور درست مقالات علمی رو بخونم (البته هنوزم هم بلد نیستم). این مورد آخر در دوره ارشد خیلی من رو اذیت کرد. از افراد زیادی پرسیدم که شما چطور مقاله می‌خونید و  تحقیق می‌کنید. هر کسی بنا به تجربه قبلی خودش و آزمون و خطاهایی که کرده بود روشی رو پیشنهاد می‌کرد ولی نقطه مشترک همه این بود که “ما هم درست نمی‌دونیم”. برای همین تصمیم گرفتم ببینم بزرگترها چی‌کار می‌کنند:)

چطور یک مقاله خوب انتخاب کنیم؟

(این بخش مفهومی از نوشته‌های دو دانشجوی دکتری MIT است)

خلاصه مقاله را بخون، اگر جذبت کرد به شکل‌ها، تصاویر و نمودارها یک نگاهی بینداز و نتیجه‌گیری رو بخون. مقاله خوبی به نظر میاد؟ برو بخش بعد وگرنه برو مقاله بعدی

اگر در این حوزه تخصص داری بخش Methods رو بخون، در غیر اینصورت Introduction رو 
هنوز هم فکر می‌کنی مقاله خوبیه؟ پس مقاله درستی رو انتخاب کردی. مقاله خوب رو باید خوب خوند!

چطور یک مقاله خوب را خوب بخوانیم؟

(این بخش هم مفهومی است از مقاله چطور مقاله بخوانیم از یکی از استادهای دانشگاه واترلو)

خوندن هر مقاله رو می‌شه به سه فاز تقسیم کرد. ایده کلی، فهمیدن کلی و فهم دقیق

ایده کلی: (حدود ۱۰ دقیقه)

عنوان مقاله، خلاصه و Introduction رو بخونید، بعد به سراغ عنوان‌ها و زیر عنوان‌ها برید و در نهایت نتیجه‌گیری رو بخونید. به مراجع مقاله نگاه کنید و ببینید کدوم یکی را تا حالا خوندید. الان باید بتونید بگید این مقاله در چه حوزه‌ای هست، چه زمینه‌ای داره، چه کسایی اون رو نوشتند و اصلا مقاله‌ای هست که برای خوندن نوشته شده باشه (well-written)؟ 

فهمیدن کلی: (حدود یک ساعت)

مقاله رو با دقت بالا ولی بدون جزئیات (مثلا اثبات‌ها) بخوان و کنار اون‌ حتما حاشیه‌نویسی انجام بده.

به اشکال، جدول‌ها، نمودارها و … دقت ویژه‌ای کن
مراجع مرتبط رو برای خوندن علامت‌گذاری کن

بعضی وقت‌ها در این مرحله مقاله رو متوجه نمی‌شیم، چرا؟ 

۱)موضوع جدید
۲)مقاله‌ای که بد نوشته شده
۳)خسته‌ایم

حالا چی‌کار کنیم؟

۱) بیخیال مقاله می‌شیم، به امید خدا که بهش احتیاج نداریم
۲)بعد از خوندن background این زمینه به سراغ مقاله میایم
۳)با قدرت میریم سراغ مرحله بعد

فهمیدن دقیق: (از ۱ ساعت تا ۵-۶ ساعت)

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

چطور یک مقاله خوب را خوب بفهمیم؟

(این بخش هم ترجمه آزادی است از نوشته یکی از اساتید دانشگاه تگزاس)

الف) چه کسی و از کجا مقاله را نوشته است؟

ب)معنی هر کلمه‌ای که نمی‌دانی بنویس، خواندن متن علمی با تست Reading کنکور متفاوت است

۱) Introduction را بخوان (دکتر قنبری از اساتید دانشگاه تهران هم روی این موضوع تاکید دارند که به جای Abstract حتما Introduction رو اول بخونید)

۲) سوال اساسی: این مقاله چه مشکلی را در زمینه خود حل می‌کند؟ (باید مشکل را فهمید نه زمینه را!)

۳)کارهای قبلی: چه‌کارهایی انجام شده؟ چه محدودیت‌هایی داشتند؟ باعث می‌شه درک بهتری از مقاله داشته باشی

۴)سوال تخصصی: دقیقا بفهم که نویسنده می‌خواسته چه مشکلی را حل کند. (چرا کارهای قبلی در حل این موضوع ناتوان بوده‌اند؟)

۵)نویسنده چه رویکردی برای حل مساله داشته؟ از چه روشی برای حل مساله استفاده کرده؟ (مثلا از الگوریتم X برای حل مساله Y)

۶)حالا بخش Methods رو بخون. به طور شماتیک کاری که انجام شده رو رسم کن، تا به صورت کلی این بخش رو نفهمیدی به سراغ بقیه بخش‌ها نرو

۷)Result رو بخون. برای هر شکل، جدول و تصویر چند خط بنویس که نشان‌گر چه چیزی بوده است.

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

۹) حالا بخش نتیجه‌گیری رو بخون. اینکه نویسنده چطور داده‌ها رو تفسیر‌ کرده.

۱۰) فک کنم وقتش باشه که Abstract رو خوند.

۱۱ و ۱۲) این مراحل اختیاریه، ولی خوبه که انجام بشوند. نظر دیگران رو در مورد مقاله بخون‌ و نگاهی به مراجع مقاله بنداز.

پ.ن:

به جز Google Scholar چندین سایت و ابزار مفید دیگه هم هست که میشه در این موارد ازشون استفاده کرد.

اگر کامپیوتری هستید حتما به سایت های scimagojr.com و csrankings.com یک نگاهی بندازید و در هر صورت از mendely استفاده کنید.

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

و در نهایت اگر این نوشته رو مفید می‌دونید اون رو به اشتراک بگذارید و ابزارها و سایت‌های دیگه‌ای که فکر می‌کنید مفید هستند رو در کامنت‌ها به دیگران معرفی کنید.


دی ۲۲ ۱۳۹۶

یک ماه زندگی و کار داوطلبانه در چین – مقدمه

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

آیسک:

طبق تعریف، آیسک یعنی:

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

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

پروژه Guangzhou Sungshine 2.0:

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


دی ۲۲ ۱۳۹۶

حفاظت از دموکراسی با رمزنگاری و توابع درهم‌ساز

نکته: این مطلب اصلا سیاسی نیست!

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

قبل از گفتن روش بگذارید کمی در مورد رمزنگاری و هش بگم. به طور کلی الگوریتم‌های رمزنگاری به دو دسته تقسیم می‌شند، متقارن و نامتقارن. 

رمزنگاری متقارن: الگوریتم‌های این نوع رمزنگاری از یک کلید برای رمزگذاری و رمزگشایی استفاده می‌کنند، مثلا من و شما توافق می‌کنیم که پیام‌هامون رو با الگوریتم AES و کلید ۱۲۳۴۵۶۷۸۹ رمز کنیم و برای هم بفرستیم، امنیت این روش به امنیت الگوریتم و دونستن کلید برمیگرده. یعنی هر کس دیگه‌ای که بدونه کلید پیام‌های ما ۱۲۳۴۵۶۷۸۹ است می‌تونه پیام‌ها رو بخونه.

رمزنگاری نامتقارن: این الگوریتم‌ها از دو کلید استفاده می‌کنند، یکی برای رمزکردن و یکی برای رمزگشایی. نمونه معروف این نوع الگوریتم‌ها RSA است.  فرض کنید شما دوتا کلید به اسم A و B دارید، به طور استاندارد در این نوع الگوریتم‌ها قراره اگر پیامی با کلید A رمز شد، فقط با کلید B باز بشه و اگر با کلید B رمز شد، فقط با کلید A باز شه. (البته نمونه‌هایی هم هستند که فقط با یکی رمز و با یکی رمزگشایی می‌شند)

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

ec8956637a99787bd197eacd77acce5eV73PLV_m

کلید سبز رنگ کلید عمومی و کلید قرمز رنگ، کلید خصوصی است.

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

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

هش (Hash): هش یعنی توابع یک‌ طرفه، یعنی وقتی یک ورودی به یک تابع هش داده می‌شه خروجی ای تولید می‌کنه که با دونستن اون نمیشه به ورودی رسید. مثلا خروجی تابع md5 (یکی از توابع معروف هش) به ورودی Moein Hosseini میشه ca6e1e3c12c635146943e1c11c1502ae که یک‌طرفست، یعنی با دونستن ca6e1e3c12c635146943e1c11c1502ae نمیشه به Moein Hosseini رسید. به جز اینکه یک جدول بزرگ از همه ورودی‌ها درست کنید و هش اون‌ها رو حساب کنید (Rainbow table) که البته برای اینکه این‌هم سخت و تقریبا غیر ممکن بشه بهش چیزی به اسم salt اضافه میشه، یعنی من یک مقدار رندوم و به ورودی تابع هش اضافه می‌کنم، یعنی این‌سری Moein Hosseini s*2js1Je رو هش می‌کنم که باعث میشه ساخت Rainbow table خیلی بزرگ و غیر ممکن بشه.

خوب بریم سراغ دموکراسی، برای این روز این اصول رو داریم:

نکته: منظور از دولت برگذار کننده انتخابات است.

۱- رای هیچ کس نباید مشخص بشه (حتی برای دولت)، یعنی حریم خصوصی هر شخص باید حفظ بشه.

۲- دولت موظفه همه رای‌ها رو در یک جدول منتشر کنه، به‌صورتی که فقط شخص رای دهنده متوجه بشه کودوم سطر جدول متعلق به خودشه. (مثلا من بدونم اون سطری که خونه A اون برابر فلان هش است، رای منه)

ec8956637a99787bd197eacd77acce5eTn6uxKFl

یک نمونه از جدول انتشاری در دولت

۳- در صورت دستکاری نتایج، شخص بتونه اثبات کنه

۴- در صورتی که سطر مربوط به شخص منتشر نشد، بتونه اثبات کنه که رای داده

۵- شخص نتونه به صورت دروغین ادعا کنه که به کس دیگه‌ای رای داده و در جدول رای دیگه‌ای براش ثبت شده

حالا برای اینکه به موارد بالا برسیم، از راه حل زیر استفاده می‌کنیم.

ec8956637a99787bd197eacd77acce5eBGguaHKT

روش تضمین عدم تقلب در انتخابات

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

برای رای دادن هر شخص یک مقدار که فقط خودش می‌دونه انتخاب می‌کنه (مثل پسورد)، حالا از کد ملی و اون مقدار هش می‌گیره، بعد از اون هش و رای خودش ({hashValue:Vote}) رو برای دولت می‌فرسته.

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

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

اگر رای داده باشه و رای اون در جدول نباشه هم می‌تونه با ارائه همون متن رمزشده توسط دولت ادعا کنه که رای داده و دولت رای اون رو دریافت کرده

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

با مقدار هش موجود در جدول هم که هر شخص منحصرا هش خودش رو می‌دونه، حریم خصوصی اشخاص حفظ می‌شه.

پ.ن۱: البته یک باگ این الگوریتم اینکه باید همه در انتخابات شرکت کنند، وگرنه امکان داده‌سازی وجود داره. البته به‌نظرم با اضافه کردن روش‌های p2p بشه این مشکل رو حل کرد. 

در صورتی که مطلبی بود که دوست داشتید به صورت شخصی در این مورد به من بگید ایمیلم هست : 

ec8956637a99787bd197eacd77acce5ejvNN6_C3

Type caption for image (optional)

و اگر خواستید واقعا شخصی باشه، کلید PGP من رو از اینجا دریافت کنید. Finger Print کلید هم هست : A4D4 128D 1DDF 96BE 1F04 A50B A3E7 C058 3306 76E0


دی ۲۲ ۱۳۹۶

آپاچی کافکا چطور کار می‌کند؟

کافکا ابزاری قدرتمند برای پیاده‌سازی معماری Publish/Subscriber است که برای pipeline کردن داده‌ها و Stream Processing  استفاده می‌شه. که تمام اینها در کنار مقیاس‌پذیر بودن و fault-tolerant بود اون رو به یکی از ابزارهای اصلی در کلان‌داده‌ها تبدیل کرده.

معماری Pub/Sub

38db3aed920cf82ab059bfccbd02be6abv32xmg1536g3FVtWkim4xtWzzlcfTeSbmMCHyAZa3DM9nJ4wfi-qZNi6T.png

Type caption for image (optional)

فرض کنید تعدادی سرویس نیاز دارند که با همدیگه صحبت کنند و همدیگر رو مستقیما call می‌کنند. پیچیدگی فنی زیاد میشه، کوچکترین تغییری رو به سختی باید در همه سرویس‌ها دنبال کرد و پیاده‌سازی back pressure هم که خودش داستانی جدا برای هر سرویس داره. در نهایت این یک بدهی فنیه که باید پرداخت بشه. یکی از معماری‌ها برای حل این مشکل، Pub/Sub است. سرویس‌ها داده‌هایی رو Publish می‌کنند و کسایی که به اون داده‌ها نیاز دارند Subscribe می‌کنند. 

38db3aed920cf82ab059bfccbd02be6alefkiR5qHmXe3WdMsdLB0P9vTXm3rKM2Xg3oWLWjkIJCfdx1hGbCu69un9.png

Type caption for image (optional)

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

Topicها و Partionها

38db3aed920cf82ab059bfccbd02be6aSjNIoh8ufUUJWeMDMvaJ4rXWx35rSWPOUGPxilLIH4Yh_GhMsMIsARhpMk.jpg

Type caption for image (optional)

پیام‌های نوشته شده در کافکا توسط topic دسته‌بندی می‌شند. شاید topic را بشه معادل یک جدول در بانک اطلاعاتی دونست.  هر topic به تعدادی partioion تقسیم می‌شه که از منطق append only پیروی می‌کنند و هر پیام در هر partiotion یک id یکتا بهش اختصاص پیدا می‌کنه. وقتی تولید کننده پیام (producer) قصد نوشتن در یک topic رو داره، می‌تونه partition رو صریحا اعلام کنه (این پیام رو در پارتیشن شماره ۳ بنویس) یا اینکار بر اساس هش از کلید پیام انجام بشه.

در مقابل producer ها، consumer ها قرار میگیرند که شروع به خوندن اطلاعات از kafka می‌کنند و بر اساس اون کاری رو انجام می‌دهند. consumer ها بر اساس کاری که انجام می‌دهند به گروه‌های مختلفی تقسیم بندی می‌شند که بهش consumer group گفته می‌شه و هر partition حداکثر به یک consumer از هر گروه اختصاص پیدا می‌کنه. یعنی اگر شما تعداد پارتیشن‌ها رو ۱۰ تا انتخاب کنید و ۲۰ تا consumer داشته باشید، ۱۰ تا از consumer هاتون عملا بی‌کارند. پس یکی از موراد مهم در طراحی انتخاب تعداد پارتیشن مناسب هست. 

38db3aed920cf82ab059bfccbd02be6a4k_zvW_UkR5SofJnBpd4QZDHNrE_Secp4NA1SkePtkuxowaSRVcwBW1Que.png

به مصرف‌ کننده شماره ۵ هیچ پارتیشنی اختصاص پیدا نکرده. این به معنی حداکثر توان پردازش اندازه ۴تا از مصرف کننده هاست.

‌Broker و Cluster

به هر سرور کافکا Broker گفته میشه. هر سرور می‌تونه حاوی چندین topic و به ازای هرکودوم هم حاوی چندین partition باشه. طراحی Broker ها به‌نحویه که بتونند به‌عنوان یک خوشه (cluster) کار کنند.  در این مواقع یکی از سرورها به عنوان controller انتخاب میشه و وظیفه داره مشخص کنه که کدام partition به کدوم بروکر اختصاص داره، همینطور وظیفه health check و مانیتور کردن بقیه سرورها هم بر عهده controller هست. بر اساس تنظیمات ممکنه یک partition به بیش از یک سرور اختصاص پیدا کنه که به معنی replication است. فرض کنید پارتیشن X از تاپیک Y به ۳تا سرور A,B و C اختصاص داره. یکی از این ۳تا سرور به عنوان leader برای این partition انتخاب می‌شند و دوتای دیگه replicate های اون هستند. این کار کمک می‌کنه تا در صورت از دست دادن leader چندین copy از اطلاعات اون وجود داشته باشه تا consumer ها بعد از rebalance شدن به‌کار خودشون ادامه بدند.

38db3aed920cf82ab059bfccbd02be6aJzDsJbx_6RGFWj6asaU0igpnklf0bPk6OjTVhQHULUlgPEvvjnWYceblLx.jpg

Type caption for image (optional)

کافکا طراحی نشده که همزمان روی چندین دیتاسنتر اجرا بشه، یعنی یکی از بروکر‌های کلاسترمون رو دیتاسنتر A باشه و دیگری روی دیتاسنتر B. ولی ممکنه ما نیاز داشته باشیم که اطلاعاتمون رو چندین دیتا سنتر باشند. چرا؟ امنیت، isolation و disaster recovery

برای اینکار کافکا ابزاری داره به اسم Mirror Maker که مثل یک consumer/producer عمل می‌کنه. یعنی عملا از یکی از کلاسترها می‌خونه و در یکی دیگه می‌نویسه. 

پاک کردن اطلاعات از کافکا اینطوری نیست که بگیم فلان id رو پاک کن! بلکه بر اساس استراتژی خاصی اطلاعات از کافکا پاک می‌شند.

۱) بر اساس زمان: من اطمینان دارم که حداکثر ۷ روز طول می‌کشه تا اطلاعات پردازش بشند، پس به کافکا می‌گم که اطلاعاتی که قدیمی‌تر از ۷ روز هستند رو پاک کنه. چطوری این اتفاق می‌افته؟ خوب کافکا اطلاعات هر پارتیشن رو فایل به فایل می‌نوسه. مثلا بهش میگیم حجم هر فایل ۱ گیگ بشه، اطلاعات به پارتیشن X می‌رسند و شروع به نوشتن در فایل T1P1F1 می‌کنه (یک اسم فرضی، یعنی Topic اول، Partition اول و فایل اول) . وقتی به حجم فایل ۱ گیگ شد، این فایل رو می‌بنده و میره سراغ فایل بعدی. حالا این فایل مقدار modified at داره و در صورتی که این تاریخ قبل از ۷ روز پیش باشه، پاک میشه. برای همین ممکنه آخرین پیام نوشته شده مربوط به ۵ روز پیش باشه و اولین مربوط به ۱۰۰ روز پیش. خوب فایل پاک نمیشه و ما هنوز امکان دسترسی به اطلاعات قدیمی‌تر از ۷ روز رو هم داریم (در این پارتیشن)

۲) بر اساس حجم: من ۱ ترا حجم حجم به کافکا اختصاص دادم و بهش می‌گم حجم اطلاعاتت رو روی ۸۰۰ گیگ نگاه‌دار. در این‌جور مواقع در صورتی که ۸۰۰ گیگ رد بشه، کافکا قدیمی‌ترین فایل رو پاک می‌کنه. این مدل قابل ترکیب با مدل زمانی هست. هر کودوم زودتر اتفاق بیفته، بر اساس اون سیاست حذف انجام میشه.

۳) compact: در این حالت از هر partition به عنوان key-value استفاده میشه و هر پارتیشن فقط آخرین پیام رو نگاه می‌داره. از این روش برای نگاه‌داشتن index مکانی که consumer ازش خونده استفاده میشه. یعنی اگر consumer به هر دلیل reset شد و نمی‌دونست تا کجا خونده، این پیام رو می‌خونه و از اونجا به بعد رو شروع به پردازش می‌کنه. (تاپیک‌ها متفاوت هستند)

پ.ن: قصد دارم در چندین پست در رابطه با برخی از ابزارهای Big Data بنویسم. ابزارهایی مثل kafka، Flink، Spark و Cassandra که مدتی باهاشون کار کردم. خوشحال می‌شم در این رابطه نظراتتون رو بدونم. (اگر دوست داشتید کامنت و اگر دوست نداشتید ایمیل من moein7tl روی جیمیل)


دی ۱۹ ۱۳۹۶

چک کردن ۳۲ بیتی یا ۶۴ بیتی بودن سیستم لینوکس

نوشته شده توسط فرشید نوتاش حقیقت.

اکثر کامپیوترهای مدرن قادر به اجرای یک سیستم‌عامل ۶۴ بیتی هستند. در ادامه به چگونگی تشخیص ۳۲ بیتی یا ۶۴ بیتی بودن لینوکس خواهیم پرداخت.
برای اکثر موارد توصیه می‌شود که نسخه ۶۴ بیتی لینوکس اجرا شود. با نسخه ۶۴ بیتی عملکرد و امنیت بهتری خواهید داشت.
تنها زمانی که از یک پردازنده ۳۲ بیتی استفاده می‌کنید نیاز به نسخه ۳۲ بیتی خواهید داشت و یا اگر تنها درایورهای سخت‌افزاری ۳۲ بیتی موجود است، از لینوکس ۳۲ بیتی استفاده خواهید کرد (هر چند که این مسأله اغلب در سیستم‌عامل ویندوز رخ می‌دهد.)
برای تشخیص ۳۲ بیتی یا ۶۴ بیتی بودن لینوکس خود دو راه وجود دارد:
روش اول: استفاده از فرمان lscpu در ترمینال
برای بررسی ۳۲ بیتی یا ۶۴ بیتی بودن نسخه لینوکس خود ترمینال را گشوده و فرمان زیر را تایپ نموده و سپس کلید Enter را بفشارید:

lscpu

بخش Architecture به شما خواهد گفت که دارای چه پردازنده‌ای هستید. X86_32 به معنای ۳۲ بیتی و X86_64 به معنای ۶۴ بیتی است. CPU op-mode(s) به شما می‌گوید که کدام نسخه از لینوکس در حال اجراست.
اگر نسخه ۶۴ بیتی را اجرا می‌کنید، حالت‌های ۳۲ بیتی و ۶۴ بیتی را مشاهده خواهید کرد. (چرا که یک پردازنده ۶۴ بیتی می‌تواند هر دو را اجرا کنید.) اگر فقط نسخه ۳۲ بیتی را اجرا می‌کنید تنها ۳۲ بیتی اجرا خواهد شد.
روش دوم: استفاده از محیط گرافیکی
اگر به دنبال یک ابزار گرافیکی برای تشخیص سیستم ۳۲ بیتی یا ۶۴ بیتی سیستم خود، وارد بخش System (در پانل بالای صفحه با آیکونی به چرخ‌دنده) شده و سپس بخش System Settings را برگزینید.
در پنجره System Setting بر روی گزینه Details دو بار کلیک کنید.
در پنجره Details بر روی زبانه Overview بخش OS type را نگاه کنید. در این بخش ۳۲ بیتی یا ۶۴ بیتی بودن سیستم شما مشخص خواهد شد.

منبع: howtogeek

نوشته چک کردن ۳۲ بیتی یا ۶۴ بیتی بودن سیستم لینوکس اولین بار در لینوکس سیزن پدیدار شد.


دی ۱۹ ۱۳۹۶

بررسی باگ های Spectre و Meltdown بر روی لینوکس

spectre_and_meltdown

 

حتما تا الان خبر آسیب پذیری Meltdown و Spectre که باگ هایی مربوط به CPU می باشند به گوش تان رسیده است.در این مطلب قصد دارم تا به شما اسکریپتی را معرفی کنم که این باگ ها رو تشخیص می دهد.این اسکریپت CPU های Intel/AMD/ARM را برای تشخیص این باگ ها بررسی می کند.

ابتدا اسکریپت را بر روی سیستم مورد نظر دانلود کنید :

 

$cd /tmp

$wget -c  https://raw.githubusercontent.com/speed47/spectre-meltdown-checker/master/spectre-meltdown-checker.sh

یا از این روش استفاده کنید :

 

$git clone https://github.com/speed47/spectre-meltdown-checker.git

 

اکنون کافیست تا اسکریپت spectre-meltdown-checker.sh را جهت بررسی باگ های Spectre و Meltdown اجرا کنید :

 

 

#sh spectre-meltdown-checker.sh

جهت اطلاعات بیشتر در مورد این اسکریپت می توانید به github آن مراجعه کنید :

 

https://github.com/speed47/spectre-meltdown-checker

امید است تا از این مطلب استفاده لازم را برده باشید.

 


دی ۱۸ ۱۳۹۶

آموزش کامنت کردن چند خط در شل اسکریپت

bash

شاید برای شما هم پیش آمده باشد که بخواهید درون shell script خود چند خط را comment کنید.مثلا در زبان برنامه نویسی c++/c برای کامنت کردن چند خط، در ابتدای خط مورد نظر */ قرار می دهند و در پایان خط مورد نظر از /* استفاده می کنند.یک نمونه از کد را در پایین مشاهده می کنید :

 

 

/*
my c code
comment # 2
blah
foo bar
….
*/

 

اما راه حل برای شل اسکریپت چیست؟

برای کامنت کردن خط در شل اسکریپت در ابتدای خط مورد نظر علامت # قرار داده می شود.به عنوان نمونه :

 

# my comment goes here

برای کامنت کردن چند خط نیز می توانید به صورت زیر عمل کنید :

 

# my comment 1
# my comment 2
# my comment N

 

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

 

#!/bin/bash
echo “Say Something”
<<COMMENT1
your comment 1
comment 2
blah
COMMENT1
echo “Do something else”

 

 

 

 

همانطور که در مثال بالا مشاهده می کنید، دستورات بین  COMMENT1>> تا COMMENT1 به صورت کامنت می باشند.

 

روش دیگر برای کامنت کردن چند خط در شل اسکریپت به صورت زیر می باشد :

 

#!/bin/bash
foo=bar
: ‘
This is a test comment
Author foo bar
Released under GNU

echo “Init…”
# rest of script

 

 

 

 

 

همانطور که در مثال بالا می بینید دستوراتی که بین ‘  : و  ‘ می باشند به صورت کامنت می باشند.در واقع ساختار کلی آن به این صورت می باشد :

 

 

: ‘
your comments here

 

امید است تا از این مطلب استفاده لازم را برده باشید.

 


دی ۱۸ ۱۳۹۶

نقل قول:اریک ریموند


دی ۱۸ ۱۳۹۶

نقل قول:اریک ریموند


دی ۱۸ ۱۳۹۶

اسکرین کست: چگونگی ساختن اسلایدها

اینم یه تجربه پراکنده دیگه!

خب من این مدت شروع کردم به ضبط چند قسمت ویدئو به فرمت اسکرین کست از کتاب «۹۷ چیز که یک برنامه نویس بهتر است بداند» و این آخر هم یه درس در مورد git درست کردم. سوالی که این مدت از من شده که ترجی دادم جوابش رو علاوه بر رو در رو اینجا هم منتشر کنم اینه که اسلایدها رو چطوری میسازم. البته اگه دقت کرده باشید نسبت به اولین اسلایدها، کیفیت اسلایدها بالاتر رفته چون من بیشتر با ابزاری که استفاده میکردم آشنا شدم.

کلا تکنولوژی ساخت اسلایدها چیزی نیست جز HTML همین. که این HTML خاص به کمک کتابخانه‌های impress.js به حرکت در میان و اسلایدها رو میسازن. ابزار impress.js با ایده گرفتن از محصول تجاری perzi و با استفاده از امکانات HTML5 توسعه پیدا کرده. کاری که باید انجام بشه اینه که شما اسلایدها و انتقالها رو یکی یکی درست میکنی و در نهایت impress.js میدونه که چطوری اونها رو اجرا کنه. سختی این روش اینه که جاگذاری دقیق اسلایدها روی صفحه نمایش و همه انتقالها بایستی بصورت دستی انجام بشه که به همین خاطر کار یکمی مشکل هست

حالا یه نفر پیدا شده ابزاری به نام hovercraft مبتنی بر پایتون توسعه داده که میاد فایلهای ReStructuredText رو تبدیل به HTML با فرمت مناسب میکنه و تمام جاگذاری‌ها و تبدیل‌ها رو هم انجام میده. شما می‌توانید تبدیلها رو بصورت اتوماتیک و متناسب با اسلاید قبلی دید. نمونه این اسلایدها در منبع گیت‌هاب ارائه‌های من موجود هست

همین!

نوشته اسکرین کست: چگونگی ساختن اسلایدها اولین بار در تجربه های پراکنده پدیدار شد.


دی ۱۳ ۱۳۹۶

دانلود فیلتر شکن رایگان برای ویندوز, اندروید و مک

به نام خداوند جان و خرد درود دوستان چند روزیه که حکومت دهن اینترنت رو سرویس کرده اینستا و تلگرام و… هم فیلتر شده واسه همین گفتم چندتا فیلتر شکن بزارم واسه دوستان   روحانی زمانی که کاندید شد گفت کلید داره امروز همه ما واسه شکستن فیلتر یک کلید داریم 🙂   ویندوز | […]

نوشته دانلود فیلتر شکن رایگان برای ویندوز, اندروید و مک اولین بار در گشتاسب مظفریان – GMozafarian. پدیدار شد.


دی ۱۲ ۱۳۹۶

راه اندازی صفحه status سرویس nginx

خیلی از سرویس‌ها یک صفحه status دارند که به شما وضعیت فعلیشون شامل چیزایی مثلا تعداد درخواست همزمان، درخواست های در حال اتمام و از این قبیل را می دهند.

سرویس nginx هم یه صفحه status داره . تنها مشکلش اینه که نسخه غیر تجاریش دارای صفحه status خیلی کوچیکیه و داده زیادی در اختیار نمی ده ؛ برخلاف Nginx Plus که صفحه status مفصلی داره.

برای فعال کردن صفحه status سرویس nginx کانفیگ زیر را به یکی از virtualhost هاتون اضافه کنید (virtualhost پیشفرض بهتره)

location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}

پس از اضافه کردن این کانفیگ nginx -s reload را بزنید و از طریق لینک زیر بازش کنید.

http://127.0.0.1/nginx_status

خروجی مشابه زیر خواهید دید. خیلی از ابزارهای مانیتورینگ از همین داده ها برای کشیدن نمودارهای وضعیت Nginx استفاده می‌کنند.

Active connections: 6
server accepts handled requests
۶ ۶ ۱
Reading: 0 Writing: 1 Waiting: 5


دی ۱۲ ۱۳۹۶

تبدیل log_format از Apache به Nginx

تا اومدم LogFormat ای که تو Apache تعریف کرده بودم را به log_format سرویس nginx تبدیل کنم، پوستم کنده شد.  برای همین اینجا گذاشتم شاید به دردتون بخوره. من LogFormat را به صورت Json برای ارسال به graylog آماده کرده بودم.

LogFormat سرویس Apache2.4
من LogFormat را به صورت زیر تعریف کرده بودم و برای پیدا کردن لیست متغیر هام از اینجا استفاده کردم.

LogFormat “{ \”version\”: \”1.1\”, \”host\”: \”%V\”, \”short_message\”: \”%r\”, \”timestamp\”: %{%s}t, \”level\”: 6, \”_user_agent\”: \”%{User-Agent}i\”, \”_source_ip\”: \”%a\”, \”_duration_usec\”: %D, \”_duration_sec\”: %T, \”_request_size_byte\”: %O, \”_http_status\”: %s, \”_http_request_path\”: \”%U\”, \”_http_request\”: \”%U%q\”, \”_http_method\”: \”%m\”, \”_http_referer\”: \”%{Referer}i\” }” graylog2_access

تبدیل به فرمت log_formate در nginx
نتیجه شد کانفیگ زیر، تنها نکته اش اینه که معادل %U در nginx وجود نداشت و اون را با کمک map ساختمش. برای دیدن لیست متغیر های nginx به اینجا مراجعه کنید. ولی لیستش مثل Apache خیلی کامل نیست.

map $request_uri $request_uri_path {
“~^(?P[^?]*)(\?.*)?$” $path;
}

log_format graylog2_access “{ \”version\”: \”1.1\”, \”host\”: \”$realip_remote_addr\”, \”short_message\”: \”$request\”, \”timestamp\”: $time_iso8601, \”level\”: 6, \”_user_agent\”: \”$http_user_agent\”, \”_source_ip\”: \”$remote_addr\”, \”_duration_usec\”: $request_time, \”_request_size_byte\”: $bytes_sent, \”_http_status\”: $status, \”_http_request_path\”: \”$request_uri_path\”, \”_http_request\”: \”$request_uri\”, \”_http_method\”: \”$request_method\”, \”_http_referer\”: \”$http_referer\” }” ;

 


دی ۱۱ ۱۳۹۶

مسیر شغلی کامپیوتر و آی‌تی

اینم یه تجربه پراکنده دیگه!

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

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

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

  • چه شغلی؟
  • به چه مهارتی نیاز داره؟
  • از کجا میشه این مهارت رو یاد گرفت؟

منتظر کمک‌هاتون هستم

همین!

نوشته مسیر شغلی کامپیوتر و آی‌تی اولین بار در تجربه های پراکنده پدیدار شد.