ویدیوکست ۰۰ – آشنایی با ایمکس

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

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

خیلی خوشحال می‌شم اگر ببینیدش و اگر ایرادی توش دیدید بهم گوشزد کنید تا برطرفش کنم در آینده.

 

Share

ایمکس؛ ویرایشگر همه‌چیز!

بحث ویرایشگرهمیشه داغ بوده و مدام هم داره داغ‌تر می‌شه 🙂

من از ایمکس (Emacs) استفاده می‌کنم. نام این ویرایشگر آزاد و متن‌باز، مخفف «Editor Macros» هست و بخشی از پروژهٔ گنوست. در واقع نام دقیق این نرم‌افزار GNU Emacs هست.

اگر اولین باره که در مورد ایمکس می‌خونید، باید بگم که خیلی متفاوته از ویرایشگرهایی که تابحال دیدید. ایمکس اونقدر افزونه‌های کاربردی داره که برای خودش مخازن بسته‌ای مثل ELPA و MELPA وMarmalade داره؛ به قابلیت‌هاش، علاوه بر کدنویسی، ورژن‌کنترل، اتصال به کارگزارهای FTP، چک‌کردن ایمیل، استفاده به عنوان مدیر پرونده، رسم نمودار، برنامه‌ریزی روزانه، وب‌گردی، موسیقی و پادکست گوش دادن، بازی و… رو هم اضافه کنید!

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

منم برای مصارف خودم ایمکسم رو شخصی‌سازی کردم و توش به این شرح برنامه‌نویسی می‌کنم:

  • برنامه‌نویسی سی‌/سی‌پلاس‌پلاس
  • برنامه‌نویسی پایتون ۲٫۷
  • برنامه‌نویسی پی‌اچ‌پی (با تمرکز بیشتر روی چارچوب محبوب لاراول)
  • برنامه‌نویسی نودجی‌اس (جاوااسکریپت)
  • HTML نویسی (به همراه Emmet محبوب)
  • CSS نویسی

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

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

حالا مطمئن بشید که ایمکس، npm و pip رو نصب دارید:

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

حالا پروندهٔ تنظیمات رو دانلود و توی پوشهٔ خانگی قرار می‌دیم:

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

در صورتی که توی هر بخشی از فرآیند بالا، به مشکل برخوردید، مشکل رو با من در میون بگذارید. 🙂

Share

من چنددرصد گیک هستم؟

گیک (Geek) یا نرد (Nerd)، در اصطلاح به خورهٔ کامپیوتر گفته می‌شه. البته معانی این دوتا لغت در واقع خوب نیست ولی در اثر گذر زمان به صورت اصطلاح در اومدن.

یکی از دوستان در انجمن اوبونتو لینکی معرفی کرد که با طرح پرسش‌های ساده‌ای می‌گه که شما چنددرصد گیک هستید، و اون لینک اینه. چیزی که واضحه اینه که این لینک چندان علمی این کار رو انجام نمی‌ده و خیلی ساده به هرکدوم از سؤالات ۲/۵٪ امتیاز اختصاص داده و مجموع امتیاز سؤالاتی که شما «بله» جواب می‌دید، می‌شه درصد گیک بودن شما! 🙂

در هر صورت این شد نتیجهٔ تست من:

You are 62.5% geeky.

Not bad. Maybe you spend a little too much time with your computer, but at least you have friends. You do have friends, right?

The current average score is: 35.80%

Fact: 21.42% of people who took this test claim to have attempted to build a robot.

بد نبود؛ به نظرم درصدش در مورد من درست بود.

اما بد نیست در مورد همین لینک هم یه گیک‌بازی کوچیک بکنیم. بیاید ببینیم این جملهٔ کمیک که در جواب می‌گه، برای درصدهای مختلف چه فرقی می‌کنه؟!
با یه بررسی ساده می‌شه فهمید که اطلاعات توی یه اِلِمان Form به آدرس geek.php ارسال می‌شن، متد ارسال POST هست و به ازای هر گزینهٔ آره/نه، یه فیلد که نامش با q شروع می‌شه در نظر گرفته شده، به طوری که مثلا فیلد سؤال ۱۹، نامش هست q19. همچنین برای مقادیر «آره»، معادل «y» , برای مقادیر «نه»، معادل «n» در نظر گرفته شده.

کافیه یه اسکریپت سادهٔ پایتون بنویسیم:

چیز پیچیده‌ای توش نیست.. فقط برای اجرا مطمئن شید که Requests و BeautifulSoup رو نصب دارید:

این هم نتیجه:

خب حداقل فهمیدیم که کلا ۴ تا جمله بیشتر نبود! و مقداری هم با پایتون تفریح کردیم.

Share

QR Code بسازیم

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

شروع می‌کنیم:

$ sudo apt install qrencode

و بعد از نصب:

$ qrencode -o mfadavi.png -s 6 http://blog.mfadavi.ir

و این هم نتیجه:

http://blog.mfadavi.ir
QR Code

تبریک می‌گم! یه QR Code ساختیم. برای اطلاعات بیشتر man qrencode  رو بخونید.

Share

ساخت ربات تلگرام با میزبانی اوپن‌شیفت؛ به همین سادگی!

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

  • در اولین گام، به BotFather@ در تلگرام پیام می‌دم تا برام یه ربات بسازه و یه توکن بهم بده. توکن رو یه جایی یادداشت می‌کنم چون در مراحل بعدی نیازش دارم. در واقع تنها وسیله‌ی هویت‌سنجی ربات‌ها در تلگرام همین توکن هست؛ پس از نظر امنیتی هم باید مراقبش بود.
  • به وبسایت اوپن‌شیفت می‌رم و یه اکانت برای خودم می‌سازم. البته اوپن‌شیفت سرویس‌های پولی خیلی گسترده‌ای داره ولی برای نوشتن یه ربات تلگرام نیازی به پول دادن نیست. امکانات مجانیش هم کافیه.
    (از اینکه ثبت‌نام تکمیل شد می‌تونید همونجا از طریق اوپن‌شیفت برنامه‌تون رو بسازید ولی خب من ترجیح می‌دم از رابط خط فرمانش استفاده کنم…)
  • رابط خط‌فرمان اوپن‌شیفت رو با زدن دستور  sudo apt install rhc  نصب می‌کنم.
  • حالا با زدن دستور  rhc setup با وارد کردن اطلاعات کاربریم وارد می‌شم. در این مرحله چندباری ممکنه ازتون سؤالاتی بشه که خب پاسخ دادن بشون خیلی ساده‌ست! پس بیشتر پرحرفی نمی‌کنم.
  • حالا وقت انتخاب فریمورکه. من نود‌جی‌اس رو دوست دارم. ولی خب گزینه‌های روی میز 🙂 خیلی‌خیلی بیشترن!

$ rhc app create pingpong nodejs-0.10

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

  • rhc برنامه‌ی جدیدم رو با کارتریج پیش‌فرضش توی فولدر pingpong کلون می‌کنه. خب اول چیزایی که نیاز نیست رو پاک می‌کنم:

حالا محتویات فایل package.json رو تغییر می‌دم تا node-telegram-bot-api رو توی اوپن‌شیفت نصب کنه:

  • دیگه چیزی به پایان کار نمونده. حالا فایل main.js رو ویرایش می‌کنم تا بتونیم باهاش پینگ‌پونگ بازی کنیم! (شما به جای 'TOKEN' ، توکن ربات خودتون رو بذارید)

  • تبریک می‌گم. کار تقریبا تمومه. فقط باید تغییرات به سرور اطلاع داده بشه:

و بعد از اینکه دستور به پایان رسید ربات آماده‌ست! بیاید یکم باش پینگ‌پونگ بازی کنیم! pingnpong_bot@

Share