وبلاگ محسن

۵ مطلب در خرداد ۱۳۹۲ ثبت شده است

ایمکس؛یک کلاینت ایمیل

| دوشنبه, ۲۰ خرداد ۱۳۹۲، ۱۱:۴۹ ق.ظ

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

 

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

 

لیسپ یک زبان برنامه‌نویسی رایانه است که در سال ۱۹۵۸ به وسیلهٔ جان مک‌کارتی ابداع شده‌است. این زبان، مانند زبان برنامه‌نویسی پرولوگ، بیشتر برای برنامه‌نویسی هوش مصنوعی مورد استفاده قرار می‌گیرد. با توجه به اینکه زبان لیسپ از نحو ساده‌ای برخوردار است، تجزیه و پیاده‌سازی آن نسبتاً با سهولت انجام می‌شود.

زبان برنامه‏‎نویسی لیسپ توسط جان مک کارتی در سال ۱۹۵۸ در حالی که در مؤسسهٔ فناوری ماساچوست (MIT) بود ابداع شد. مک کارتی طرح خودش را در یک مقالهٔ مرتبط با انجمن ماشین آلات کامپیوتری در سال ۱۹۶۰ منتشر کرد. طرح وی در ابتدا به صورت «بخش اول:توابع بازگشتی از دید عبارت‌های نمادین و محاسبهٔ آنها توسط ماشین» ارائه شد و بخش دوم آن هیچگاه منتشر نشد. وی نشان داد که با یک تعداد ساده و کمی از عملگرها و علمتگذاری توابع می‌توان یک زبان تورینگ کامل برای الگوریتم‌ها ایجاد کرد. زبان پردازش اطلاعات اولین زبان هوش مصنوعی بود. از سال ۱۹۵۵ یا ۱۹۵۶ و پیش از آن ایده‌های بسیاری بر زبان لیسپ وارد شد از جمله پردازش لیست و توابع بازگشتی که در زبان لیسپ به کار برده شد. ثبت‌های اصلی مک کارتی به صورت عبارت‌های غیر نمادین که خواستار تفسیر کردن و برگرداندن به عبارت‌های نمادین بود. به عنوان مثال عبارت غیر نمادین car[consA,Bمعادل عبارت نمادین (car (cons A B)بود که در زبان لیسپ به کار گرفته شده بود. برنامه نویسان به سرعت عبارت نمادین را انتخاب و عبارت‌های غیر نمادین را ترک کردند. لیسپ برای اولین بار توسط استفان راسل روی یک کامپیوتر IBM 704 اجرا شد. راسل مقالهٔ مک کارتی را مطالعه کرد و دریافت که توابع لیسپ می‌توانند در کد ماشین اجرا شوند. این نتیجه از مطالعه و دریافت راسل نشان می‌دهد که مفسر لیسپ می‌توانست برای اجرای برنامه‌های لیسپ و ارزیابی صحیح عبارت لیسپ استفاده شود. دو زبان اسمبلی به عنوان دو عملیات اصلی و ابتدائی تجزیه و جدا کردن عناصر اصلی لیست برای IBM 704 شد. این دو زبان اسمبلی car (مضمون آدرس ثبات) و cdr (محتوای کاهش میزان ثبات‌ها) نسخهٔ لیسپ هنوز ازcar وcdr برای عملیاتی که اولین عنصر در یک لیست و باقی‌ماندهٔ لیست را برمی‌گرداند، استفاده می‌کند. اولین کامپایلر تکمیل شدهٔ لیسپ، در سال ۱۹۶۲توسط تام هارت و مایک لوین در MIT اجرا شد، این کامپالر معرفی شده مدل لیسپ با کامپایلر نحوی در هر کامپایل و ترجمهٔ توابع می‌تواند به طور رایگان در هم بیامیزد. زبان به کار گرفته شده در ثبت هارت و لوین نسبت به کدهای ابتدائی مک کارتی به شیوهٔ لیسپ مدرن و جدید نزدیک تر می‌باشد.

 

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

 

این راز انعطاف پذیریه خارق العاده ایمکسه.

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

و خلاصه با ای لیسپ چه کار ها که نمی‌شه انجام داد.

و حالا میدونید زیبایی ایمکس کجاست؟

میخواین زبان elisp‌ رو یاد بگیرید؟ بسیار خوب؛هیج جا بهتر از خود ایمکس برای یادگیری نیست.

این دستورو وارد کنید:

C-h i d m emacs lisp intro RET

(دکمه Ctrl رو نگه دارید و کلید h رو فشار بدید، بعد اونا رو رها کنید و اول کلی i و بعد کلید d و بعد کلید m رو فشار بدید و سپس عبارت emacs lisp intro رو تایپ کنید و بعد دکمه اینترو مرقوم بفرمایید)

 

خب، مقدمه بسه.بریم سر اصل مطلب.

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

ما برای اتصال به میل سرورمون از کلاینت پیشفرض ایمکس به نام gnus استفاده می کنیم.کلاینت های دیکه ایی هم وجود داره که در صورت تمایل با اندکی جستوجو می تونید اونها رو هم پیاده سازی کنید.

 

فایل gnus.el./~ رو باز کنید و این خطوط رو داخلش کپی کنید:

(setq gnus-select-method '(nnimap "gmail"
				  (nnimap-address "imap.gmail.com")
				  (nnimap-server-port 993)
				  (nnimap-stream ssl)))

 

و برای استفاده از سرویس SMTP که برای ارسال ایمیل به کار می ره خطوط زیر رو هم اضافه کنید:

(setq message-send-mail-function 'smtpmail-send-it
      smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
      smtpmail-auth-credentials '(("smtp.gmail.com" 587 "username@gmail.com" nil))
      smtpmail-default-smtp-server "smtp.gmail.com"
      smtpmail-smtp-server "smtp.gmail.com"
      smtpmail-smtp-service 587)

به جای عبارت username@gmail.com، آدرس جیمل خودتون رو قرار بدید.

و برای اینکه ایمیل هایی که از طریق ‌gnus ارسال میکنید، در سرور گوگل ذخیره بشه این کد ها رو هم وارد کنید:

(setq gnus-posting-styles
      '((".*"
	 ("CC" "username@gmail.com")
         (address "username@gmail.com"))))

و حالا فایل gnus.el. رو ذخیره کنید و ببندید.

 

 

اکنون فایل authinfo./~ رو باز کنید و و کد های زیر رو درونش وارد کنید :

 

machine imap.gmail.com login username@gmail.com password secret port 993
machine smtp.gmail.com login username@gmail.com password secret port 587

به جای password secret هم کلمه عبور حسابتون رو وارد کنید.

با ذخیره و بستن این فایل کار کانفیگ gnus تموم میشه و می تونید با باز کردن ایمکس و تایپ دستور M-x gnus از زندگی گیکی خودتون لذت ببرید.

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

http://www.emacswiki.org/emacs/GnusGmail#toc23

 

 

 

 

 

 

اینم لینکی که قولشو داده بودم : http://www.emacswiki.org/emacs/CategoryGnus

پوسته ایی نو برای ایمکس

| جمعه, ۱۷ خرداد ۱۳۹۲، ۱۰:۲۷ ب.ظ

چیزی که امروز تو ایمکس پیدا کردم و باعث خوشحالیم شد این بود که دیدم میشه پوستشو تغییر داد. با رفتن به منوی options و بعد customize emacs و بعد custom theme.

با انتخاب هر کدوم از تم های موجود ظاهر ایمکس به اون تم تغییر میکنه و با فشردن دکمه save theme setting پوسته ی محبوبتون رو به حالت پیش فرض میاره.




اسم پوسته ایی که من انتخاب کردم tango-dark ئه.

شاد باشین و ایمکسی

روز شماری برای انتشار فدورا 19

| پنجشنبه, ۱۶ خرداد ۱۳۹۲، ۱۰:۳۴ ب.ظ

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

امیدوارم نسخه نوزدهم کاستی های فدورا 18 رو جبران کنه، خاطرات بد اون رو از یاد ببره و مصرف کنندگان وفادارش رو که فراری داده بود دوباره به خونه بر گردونه : )


همه در یکی!

| جمعه, ۳ خرداد ۱۳۹۲، ۱۲:۰۷ ب.ظ

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

خب تنها کاری که لازمه راه انداختن ایمکسه.

و بعد فشردن کلید های ترکیبی C-x 2.

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

و بعد با استفاده از دستور M-x shell یکی از اون قسمتا رو به ترمینال تبدیل کنید. و برای رفت و آمد بین این دو بخش از C-x o.




و اگر خواستید پنجره به صورت عمودی تقسیم بشه C-x 3 رو وارد کنید.

ایمکس؛ یک کلاینت آی آر سی

| چهارشنبه, ۱ خرداد ۱۳۹۲، ۰۸:۰۸ ق.ظ

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

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

تنها کاری که لازمه انجام بدید باز کردن ایمکس و تایپ دستور M-x erc  و بعد فشردن اینتره.

(منظور از M-x نگه داشتن دکمه alt و فشردن x ئه)

و بعد در بافر باز شده به کانال مورد نظرتون join کنید.




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