بیایید جامعه آزاد خود را درک کنیم

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

در سراسر دنیا انسان‌هایی وجود دارند که در ساخت نرم‌افزار، محتوا و فرهنگی که دیگران قادر به استفاده آزادانه از آن هستند با هم همکاری می‌کنند. افراد می‌توانند آن‌ها را آزادانه استفاده و به اشتراک بگذارند تا در کنار هم لذتی دوچندان از دست‌آورده‌های همکاری‌شان را به خود و دیگران بچشانند. ما هم اعتقاد داریم که آزادی خوب است؛ معتقدیم که آزادی به مردم کمک می‌کند تا کارهای خوب و بهتری انجام دهند؛ انتخاب‌های مناسب‌تری بکنند و زندگی امن‌تری داشته باشند. ما جامعه‌ای هستیم که در این اعتقاد با هم متحدیم!

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

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

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

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

اجتماع احترام آزاد (سایت اصلی‌)

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

منبع

=-=-=-=-=

Powered by Blogilo

dnscrypt روی اسلکور (‌و باقی لینوکس‌ها‌)

خوب عملا کامپیوتر‌های روی یه شبکه (‌سرور‌ها و سرویس گیرنده‌ها‌) با آدرس آی پی شناخته می‌شن‌. خوب حالا برای من کاربر که قصد داره روی اینترنت به یه سایت دسترسی داشته باشه‌، سخته که یه عدد نافهوم مثل 188.35.73.20 رو حفظ کنم‌. تازه این فقط برای دسترسی به یه سایته‌. یا فرض کنین صاحب سایت به هر دلیلی قصد تعویض سرورش رو داره‌، در این صورت باید تمام کسایی که با آی پی قبلی به سایت دسترسی داشتن‌، از آی پی سرور جدید استفاده کنن‌. حالا کار DNS Server‌ها اینه که می‌آن‌، هر آدرس معنادار (‌که طبیعتا استاندارد خودش رو داره‌) رو به یه آدرس آی پی معادلش ربط می‌دن‌. اینطوریه که وقتی شما می‌نوسین http://shahinism.com مرورگرتون آی پی و آدرس مسیری که وبلاگ من توش قرار داره رو پیدا می‌کنه و بهتون نشون می‌ده‌. به همین سادگی ;-)

حالا بحث سر اینه که DNS Server‌های متفاوتی توی اینترنت هستن‌. هر کدومشون با توجه به سلایق خاصی شخصی سازی شدن‌. اگه شما تا به حال نمی‌دونستین که اصلا DNS Server چی هست‌، پس احتمالا دارین از مال ISP‌تون استفاده می‌کنین‌. حالا ممکن شما از رفتار ISP‌تون نسبت به DNS‌ها راضی نباشین‌. یا فکر کنین که امنیت لازم براتون از این DNS فراهم نمی‌شه (‌حتما فهمیدین که اگه یه DNS سرور بخواد‌، می‌تونه وقتی شما http://google.com رو توی مرورگرتون می‌زنین‌، شما رو به آدرسی غیر از سرور‌های گوگل وارد کنه و این یعنی خطر‌!)

این‌جاست که فایل resolv.conf توی لینوکس سر و کلش پیدا می‌شه‌. شما با استفاده از این فایل می‌تونین به لینوکس‌تون بفهمونید که از چه DNS Server‌ای استفاده کنه تا در خطر نباشین‌ (‌این کار رو اگه روترتون ازش پشتیبانی کنه می‌شه توی خود روتر هم انجام داد ;-))

مزیت استفاده از DNSCrypt

بزرگترین و بهترین مزیتش اینه که ما رو به صورت کاملا امن به سرور‌های OpenDNS وصل می‌کنه‌، و دیگه ارتباطمون با DNS Server غیر قابل شنود می‌شه‌. یعنی اگه شخص خرابکاری روی اینترنتمون باشه‌، باید اول با کدگذاری DNSCrypt بجنگه تا دستش به ما برسه‌!

نصب روی اسلکور (‌و اکثر توزیع‌ها‌)

خیلی راحت‌، اول با دستور زیر فایل‌ها رو می‌گیریم‌:

git clone git://github.com/opendns/dnscrypt-proxy.git

بعد وارد پوشه می‌شیم و دستورات زیر رو به ترتیب می‌زنیم‌:

./autogen

./configure

make -j4

که اون ‏‎-j4 منظورم اینه که از همه زور CPUم استفاده کن (‌اگه شما CPUتون چهار هسته‌ای نیست می‌تونین تعداد هسته خودتون رو جای چهار بزارین یا کلا تگ j رو بیخیال شین) حالا برای این که وقتی دلمون خواست پاکش کنیم این کار رو می‌کنیم‌ (مخصوص اسلکور):

mkdir /tmp/dnscrypt

make install DESTDIR=/tmp/dnscrypt

cd /tmp/dnscrypt

makepkg -l y -c n /tmp/dnscrypt.tgz

installpkg /tmp/dnscrypt.tgz

توی باقی توزیع‌ها تنها کافیه بزنین make install ولی خوب پاک کردنش پای خودتونه!

کار با DNSCrypt

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

/usr/local/sbin/dnscrypt-proxy -d

و اگه دلتون نمی‌خواد بعد از هر بار ری‌استارت دوباره این دستور رو بزنین‌، فقط کافیه توی فایل ‏‎/etc/rc.d/rc.local همین دستور بالا رو اضافه کنین‌.

و در آخر با اضافه کردن خط زیر توی ‎/etc/resolv.conf به لینوکستون بگین که از 127.0.0.1 به عنوان DNS Server استفاده کنه‌:

nameserver 127.0.0.1

حواستون باشه که nameserver قبلی رو با اضافه کردن یه # کامنت کنین‌! حالا با مرورگرتون (‌و بدون استفاده از پروکسی‌) این صفحه رو ببینین‌. احتمالا بهتون تبریک می‌گه که از OpenDNS استفاده می‌کنین ;-)

حل یک مشکل:

احتمالا بعد از اولین ریبوت می‌فهمین که فایل resolv.conf‌تون دوباره عوض شده و آدرس قبلی توش نیست‌! این به دلیل استفاده از dhcpcd هست که تنظیمات این فایل رو بعد از هر بار شناسایی آی پی روتر دوباره‌نویسی می‌کنه‌. خوب حالا چاره چیه‌؟ هیچی دستور زیر رو می‌زنیم:

chattr +i /etc/resolv.conf

که یعنی دست خر کوتاه‌! (‌یعنی هیچ‌کس غیر از صاحب فایل حق دست زدن بهش رو نداشته باشه‌)  در مورد این که این دستور دقیقا چی کار می‌کنه می‌تونین به این مطلب از علی عزیز در آکلینوکس رجوع کنین ;-)

Zsh دوست شماست‌!

اون زیاد هم همه کاره نیست‌ و هیچ چیزی رو کاملاً عالی انجام نمی‌ده‌، در‌واقع یه جورایی یه نوع Zsh عذاب آوره (‌یا شاید هم Zsh یه نوع بهتری از Bash باشه‌).

شروع کار با Zsh خیلی آسونه‌، بخاطر اینکه در بیشتر مواقع مثل Bash نقش بازی می‌کنه‌. پس اگه با Bash اخت شدین نترسین‌، شما می‌تونین Zsh رو بدون از دست دادن ذره‌ای از امکانات Bash امتحان کنید و هنوز هم با یک پوستهٔ بهتر طرف باشید.

چرا Zsh از Bash بهتره؟

تو ذهن من یکی از مهم‌ترین دلایلی که برای برتری Zsh وجود داره‌ اینه که Zsh توی تکمیل خود‌کار از bash بهتره‌، منظورم اون تکمیل خودکار چلاغی نیست که با نصب Bash نصیبتون می‌شه‌. منظورم یک تکمیل خودکار واقعیه‌، که شامل تمامی دستورات رایج در خط فرمان می‌شه‌، که واقعاً هم سریعه‌. ویژگی تکمیل خودکار همچنین به شما یک لیست قابل پیمایش با کیبورد از انتخاب‌هاتون هم می‌ده که می‌تونه عالی باشه‌.

نمونه‌ای از تکمیل خودکار Zsh

خوب می‌دونم الان چی می‌خواین‌، ارزشش چیه؟ خوب بیاین یه نمونه عالی از تکمیل خودکار رو با هم ببینیم‌. بیاین از kill به عنوان یه مثال استفاده کنیم‌. شما تایپ می‌کنین‌:

kill TAB

توی bash شما چی می‌بینین؟ لیست تمام فایل‌هایی که توی پوشهٔ حاضرتون قرار داره‌. اینکه برای من یه ویژگی عالی به حساب نمی‌آد‌. حالا چی رخ می‌ده اگه توی Zsh بنویسین‌:

kill TAB

این رخ می‌ده‌:

لیستی از تمام پروسه‌ها با شماره‌هاشون (pids)؟ بله خواهش می‌کنم‌.

چیز دیگه‌ای که Zsh رو متفاوت می‌کنه تاریخچهٔ اشتراکیشه‌. اگه شما هم مثل منین و تمام طول روز رو توی ترمینال زندگی می‌کنین‌. چیزی بد‌تر از این نیست (بزارین به حساب اغراق‌های من) که یه ترمینال دیگه توی یه تب باز کنین و برای پیدا کردن دستوری که همین الان توی تب بقلی زدین تاریخچه رو پیمایش کنین و ببینین خبری ازش نیست‌. توی Zsh همچین اتفاقی نمی‌افته.

وقت چیز‌های خارق‌العاده‌تری رسیده

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

تصحیح خودکار واقعاً عالیه‌
> $ awesome git:(master) ✗ gut status

zsh: correct 'gut' to 'git' [nyae]? y

تصحیح خودکار برای دستورات شناخته شده‌. من بدون تو چی کار می‌کردم (جز اینکه دستور رو دوباره تایپ کنم)؟

حتی باحال‌تر از تصحیح خودکار‌، برای ابر نرد‌ها (مثل من) حالت Vi و emacs‌ه‌، آره لعنتی‌، شما می‌تونی ویرایشگر محبوبت رو توی خط فرمانت داشته باشی‌. این قابلیت از فرمان‌های جابجایی و وبرایش رایج پشتیبانی می‌کنه‌، مثل حالت‌های command و insert توی vi.

آخری ولی مهم مثل بقیه‌، Zsh بسته‌ای به اسم oh-my-zsh رو داره که به گفتهٔ وبسایتش‌:

یک فریم ورک برای مدیریت تنظیمات zshه که توسط جامعهٔ کاربریش پشتیبانی می‌شه‌. شامل بیش از چهل پلاگین اختیاری (rails، git، OSX، hub، capistrano، brew، ant، macports و غیره) ‌، بیش از هشتاد تم ترمینال برای خوشمزه کردن صبحتون‌، و یک ابزار به روزرسانی خودکار که این امکان رو بهتون می‌ده که آخرین تغییراتی که جامعهٔ پشتیبان به بسته‌ها می‌دن رو در اختیار داشته باشین‌.

می‌دونم Bash هم یکی از اینا داره‌، ولی من فکر می‌کنم oh-my-zsh خیلی بهتره‌، بروزرسانی خودکارش‌، داشتن پلاگین‌های عالی و یک جامعهٔ پشتیبانی فعال پشت سرشه که می‌تونه دلیل خوبی برای این طرز تفکر من باشه‌.

در کل Zsh فوق‌العادست‌، پس اگه تا حالا اون رو امتحان نکردین‌، شاید وقتشه که این کار رو بکنین‌. اگه شما هم موافقین oh-my-zsh جای خوبی برای شروعه‌.

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

ویرایش: اگه قصد یادگیری بیشتر در مورد Zsh دارین‌، Zsh FAQ رو امتحان کنین‌. خیلی کامله و خیلی بهتر از یه پست وبلاگی به ویژگی‌های Zsh پرداخته ;-)

همچنین‌، صحبت‌های بیشتر در این مورد توی Hacker News.

منبع

افزودن قابلیت تکمیل خودکار به Emacs

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

bashM-x load-file RET

آدرس فایل ‎/etc/install.el موجود در پوشه‌ی دانلود شده را به ایمکس بدهید‌. برای نمونه من چیزی شبیه به این را وارد کردم‌:

bash~/home/shahin/auto-complete/etc/install.el

باقی مراحل را تایید کنید و تمام‌. پیغام زیر را مشاهده می‌کنید‌:

```bashSuccessfully installed!

Add the following code to your .emacs:

(add-to-list 'load-path "~/.emacs.d") ; This may not be appeared if you have already added.

(add-to-list 'ac-dictionary-directories "~/.emacs.d/ac-dict")

(require 'auto-complete-config)

(ac-config-default)

```

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

پی‌نوشت: جالبیتش این است که حتی در محیط متنی هم به خوبی عمل می‌کند و نیازتان را بر طرف می‌سازد ;-)

=-=-=-=-=

Powered by Blogilo

چ‌چ‌چ (۱۱)‌: چگونه می‌توانم بفهمم کارت اترنتم (NIC) شناخته شده یا نه‌؟

/sbin/ifconfig

خروجی‌:

```bash

eth۰ Link encap: Ethernet HWaddr ۰۰: ۲۴: ۱d: d۱: ۰۴: d۰

inet addr: ۱۹۲. ۱۶۸. ۱. ۲ Bcast: ۱۹۲. ۱۶۸. ۱. ۲۵۵ Mask: ۲۵۵. ۲۵۵. ۲۵۵. ۰

inet۶ addr: fe۸۰:: ۲۲۴: ۱dff: fed۱: ۴d۰/۶۴ Scope: Link

UP BROADCAST RUNNING MULTICAST MTU: ۱۵۰۰ Metric: ۱

RX packets: ۱۸۰۷۸ errors: ۰ dropped: ۰ overruns: ۰ frame: ۰

TX packets: ۲۰۱۰۸ errors: ۰ dropped: ۰ overruns: ۰ carrier: ۰

collisions: ۰ txqueuelen: ۱۰۰۰

RX bytes: ۱۰۱۹۴۷۸۶ (۹. ۷ MiB) TX bytes: ۳۴۵۳۳۵۳ (۳. ۲ MiB)

Interrupt: ۴۰ Base address: ۰x۸۰۰۰

توجه کنید که اگر در خروجی eth۰ را دیدید‌، پس کارت شما شناخته شده‌. نکته دیگر اینکه در سرور‌های مجازی با عبارات دیگری نظیر venet روبرو هستید‌، که پس از تجربه کردنشان‌، می‌توانید بهتر درکشان کنید ;-)

برنامه dmesg به کاربران کمک می‌کند پیغام‌های هنگام بوت را مشاهده کنند‌. این پیغام‌ها در فایل ‎/var/log/dmesg (‌لینوکس دبیان‌) ذخیره می‌شوند‌:

cat /var/log/dmesg | grep -i eth۰

خروجی‌:

[۴. ۷۰۹۳۴۷] r۸۱۶۹ ۰۰۰۰: ۰۲: ۰۰. ۰: eth۰: RTL۸۱۶۸c/۸۱۱۱c at ۰xffffc۹۰۰۱۰۹c۸۰۰۰، ۰۰: ۲۴: ۱d: d۱: ۰۴: d۰، XID ۱c۴۰۰۰c۰ IRQ ۴۰

و یا:

# dmesg | grep -i eth۰

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

# netstat -i

خروجی‌:

Kernel Interface table

Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg

eth۰ ۱۵۰۰ ۰ ۱۸۴۰۸ ۰ ۰ ۰ ۲۰۵۲۴ ۰ ۰ ۰ BMRU

lo ۱۶۴۳۶ ۰ ۹۸۲۲ ۰ ۰ ۰ ۹۸۲۲ ۰ ۰ ۰ LRU

پیدا کردن چیپ NIC

برای رفع نقض کردن کارت ارتنت (NIC) من پیشنهاد می‌کنم که از دستور lspci استفاده کنید‌. Lspci ابزاری برای نمایش اطلاعات تمام درگاه‌های PCI موجود در سیستم که ابزار‌ی به‌شان متصل شده می‌باشد‌.

lspci | less

یا

<code>lspci | grep Ethernet</code>

خروجی‌:

۰۲: ۰۰. ۰ Ethernet controller: Realtek Semiconductor Co.، Ltd. RTL۸۱۱۱/۸۱۶۸B PCI Express Gigabit Ethernet controller (rev ۰۲)

در مثال بالا من یک کارت «Realtec Semiconductor» با چیپ RTL-۸۱۱۱/۸۱۶۸B دارم‌.

منبع