web analytics

alias ها در لینوکس

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

 

cp /home/$USER/data1/* /usr/local/share/latest/.

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

alias moveit=”cp /home/$USER/data1/* /usr/local/share/latest/.”

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

alias

و اگر نیاز دارید یکی از alias ها را پاک کنید می توانید از دستور unalias استفاده کنید. مثلا میخواهیم moveit را از لیست alias ها پاک کنیم کافیست تایپ کنیم

unalias moveit

توجه داشته باشید alias ها تنها در Shell و زیرمجموعه های Shell در حال کار در دسترس هستند. پس این نکته وجود دارد که وقتی ترمینال و زیر مجموعه های آن را ببندید alias ها پاک شوند. اما برای رفع این مشکل می توانید alias خود را در فایل

vim /etc/bash.bashrc

اضافه کنید. مثلا لیست زیر alias های لپتاپ من هست‌:

 

می توانید دستوراتی که همیشه استفاده مکنید را بصورت alias در این فایل قرار دهید و سپس از طریق دستور

source /etc/bash.bashrc

آن را برای همیشه به alias های مادام العمر خود اضافه کنید.

گنوم ۲ روی ابونتو ۱۱.۱۰

شاید این مطلب یکم قدیمی باشه ولی خب هنوزم یه سری از دوستان راحتی کار با Gnome 2 رو به Gnome 3 ترجیح میدن. واسه اینکه بتونین روی اوبونتو ۱۱.۱۰ محیط کار گنوم ۲ رو داشته باشید. می تونین از MATE که یه fork از گنوم ۲ هست استفاده کنید. برای این کار اول باید repository مربوط به Linux Mint 12 رو اضافه کنید.

sudo gedit /etc/apt/sources.list

( البته جای gedit هر editor دیگه ای بر حسب سلیقتون میتونین استفاده کنین، vim ، nano و … )

این رو به فایل sources.list اضافه کنید :

deb http://packages.linuxmint.com/ lisa main upstream import

و حالا فایل رو ذخیره کنید و ببندید. حالا دستور های زیر رو توی ترمینال وارد کنید:

sudo apt-get update
sudo apt-get install linuxmint-keyring

و حالا برای نصب Mate کافیه دستورات زیر رو وارد کنید :

sudo apt-get update

sudo apt-get install mint-meta-mate
اوکی، حالا Mate نصب شده. برای استفاده ازش هم کافیه موقع لاگین کرد تو اوبونتو Mate رو انتخاب کنید.
و اینم دسکتاپ من که از Mate استفاده میکنم.

درس هایی از فرهنگ یک هکر

توی این یکی دو سال اخیر شخصا بیشتر سعی کردم بیشتر وارد مبحث های مرتبط با نرم افزار آزاد بشم و بیشتر یاد بگیرم تا اینکه بخوام تولید محتوا کنم. یادم میاد اول یا دوم دبیرستان بودم که مقاله ی اریک ریموند خوندم با عنوان “چگونه یک هکر شویم” یادم میاد اون موقع تو بهر این بودم که یه هکر کلاه سفید (اصطلاحا!) بشم، بعد از خوندن اون مقاله دیدگاهم به این مبحث عوض شد و تصمیم گرفتم بیشتر به زندگی کامپیوتری آدمایی مثل دنیس ریچ ، کِن تامسون، اریک ریموند و … نزدیک بشم. Jargon File هم کمک زیادی بهم کرد.

همون طور که توی اون مقاله نوشته، هکر بر خلاف تصور غلط جامعه یک شخصیت مخرب نیست، هکر در حقیقت یه عاشق هست، عاشقی که به یه چیزی عشق می ورزه، مثلا هکر کامپیوتر، هکر ریاضی، هکر پیانو و …، پس میشه گفت هکر نه یه خرابکار شبکه یا ویروس نویسه که بخواد سیستم های کامپیوتری رو مختل کنه، با اینکه اکثرا این توانایی رو دارند. طبق نوشته ی اریک ریموند از مهارت های یه هکر کامپیوتری، متوجه میشویم یه هکر کامپیوتری اصولا برنامه نویسی بلد است، منظور از برنامه نویسی دونستن سینتکس ها نیست، منظور داشتن ذهن باز و الگوریتمیک هست که بتونه به هکر قابلیت نوشتن برنامه رو بده، یه هکر حداقل زبان هایی مثل  Python, C/C++, Java, Perl, و LISP رو بلده. به نظر من اینکه به آدم بگن که یه هکر اینارو باید بلد باشه جالب هست ولی اگه به تعریف هکر برگردیم میبینیم یه هکر یه عاشق هست، بقولی : “عشق یعنی آن خدای عاشق بنده نواز / عشق یعنی آنکه می داند همه سرِّنیاز” فکر کنم این خلاصه ی کلام رو برگردونه.

Eric Reymond

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

و در آخر میشه گفت یه هکر یه خراب کار نیست، پس هرکی که اومد گفت من هکرم یکم بهش نگاه کنید و بعدش مثل یه هکر خوب، فرهنگ هکر ها رو گسترش بدین و ملتفتش کنید که داداش من این ره که تو میروی به هیچستان است.

۶ منبع مفید برای یادگیری پایتون

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

۱٫ Wrox Beginning Python : کتاب واقعا خوب و کاملی هست واسه ی شروع پایتون، منم از روی این شروع کردم، کتاب های Wrox اکثرا دارای کیفیت های خوبی هست.

۲٫ Oreilly Python : عالیه! من از رو این یاد گرفتم!

۳٫ Python Developers Handbook : این کتاب واسه ی شروع خوب نیست، بیشتر به درد زمانی می خوره که توی پروژه هستی نیاز به یه مفهوم داری، سری ازش یاد بگیری.

۴٫ سایت پایتون : که روش حرفی نیست.

۵٫ LearnPythonTheHardWay : اینم منبع خوبیه

۶٫ PySchool : یه منبع خوب دیگه

 

گروه کاربران لینوکس دانشگاه آزاد تهران جنوب

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

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

و اما “گروه کاربران لینوکس دانشگاه آزاد تهران جنوب” چیست؟

لاگ یا Linux User(‘s) Group با به اختصار LUG، محفلی از یه جماعتی هست که واسه ی اشتراک عقاید، آموزش، بحث و گفتگو  و… در زمینه ی نرم افزار آزاد یا هرچی که به این مسایل ربط داشته باشه دور هم جمع میشن. لاگ های زیادی در اقصی نقاط ایران و جهان بصورت غیرانتفاعی و خودگردان در حال برگزاری جلسات خودشون هستن که چند نمونشون به لاگ تهران ، لاگ کرج، لاگ مشهد، لاگ زنجان، لاگ اصفهان و … اشاره نمود.

TJLUG : هم محل نشست همین جماعت هستش، که روز های یکیشنبه ساعت ۹ تا ۱۲ تو کلاس ۲۱۰۴ در دانشکده فنی مهندسی دانشگاه آزاد تهران جنوب برگزار خواهد شد.

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

 

 

http://www.tjlug.com

[ متاسفانه .org بسته بود :( ]

کتاب جنگو

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

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

 

آیا واقعا آندروید یک نرم‌افزار آزاد به حساب می‌آید؟

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

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

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

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

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

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

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

در آندروید، هسته لینوکس به صورت برنامه‌ای جدا باقی می‌ماند و مجوز خود را تحت GNU/GPL 2 حفظ می‌کند. در ترکیب لینوکس با کدی تحت مجوز آپاچی ۲.۰، تخلفی در کپی‌رایت صورت می‌پذیرد، زیرا GPL 2 و آپاچی ۲.۰ باهم ناسازگارند. به‌گونه‌ای که گوگل لینوکس را به مجوز آپاچی تبدیل کرده است، کاملا اشتباه است؛ گوگل هیچ گونه قدرتی در تغییر مجوز کد لینوکس را ندارد، و نکرده است(؟!). اگر نویسندگان لینوکس اجازه استفاده را تحت GPL 3 بدهند، در این صورت کد می‌تواند با کد تحت آپاچی ترکیب شود و کد نهایی می‌تواند با مجوز GPL 3 انتشار یابد که لینوکس هم به این روش منتشر نشده است.

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

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

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

برنامه نویسی ++C در لینوکس

اگر برنامه نویس باشید حتما حداقل یک بار گذرتون به لینوکس خورده، همون طور که می دونین لینوکس یکی از سیستم عامل های متن بازه که از فرزند های Unix پدر هست. لینوکس و بطور کل سیستم عامل های یونیکس بیس همگی دارای یه ویژگی هستند، که اون راحتی و آزاد بودن در برنامه نویسی هست، شما از کتابخونه هایی استفاده میکنید که سیستم عاملتان هم اسثفاده میکنه، می تونین اون رو تغییر بدین و ویرایش کنید و در همه جای سیستم عامل قابل دسترسی هست.

برای شروع به کامپایلر gcc نیاز دارید، البته توی اکثر این جماعت لینوکس این بسته نصب شده هست.

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

sudo apt-get install build-essential

حالا هر جایی از سیستون یه فایل باز کنید و با پسوند cpp ذخیرش کنید، برای این کار میتونید از vim استفاده کنید.

#include <iostream>

using namespace std;

int main()
{
cout << “Hello World!” << endl;
return 0;
}

بعد مثلا با اسم HelloWord ذخیره کنید ( تو vim با زدن insert و wq: ).

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

g++ HelloWorld.cpp

و برای ران کردن برنامتون :

a.out/.

متالیکا – سبکی از یک زندگی

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

آهنگ های زیر آهنگ هایی هست که واقعا ازشون لذت میبرم.

Orion

Loverman

Turn The Page

The Unforgiven 2

The Unforgiven 3

The Day That Never Come

Nothing Else Matters

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