چالش لایف استیال پرگرمینگ که خودم رو‌ بهش دعوت کردم!

توجه کنید بعضی قسمت ها با لحن طنز نوشته شده :)

این چالش چیه؟!

چیز جدیدی نیست تو این چالش شما سعی میکنید چیزی رو توسعه بدید که یک مشکل از زندگی خودتون یا اطرافیان رو حل کنه! ممکنه ۲۰ خط کد باشه مثل این کدی که من نوشتم که میخواستم نمره هام رو سریع تو ترمینال با تایپ یک کلمه ببینیم! ممکنه پروژه ای مثل پروژه هایی جادی تودور و بستون باشه!

چراخودم رو تو دردسر انداختم؟

اولین بار تحت جو حرف های لینوس تو TEDTALK بود فکر کنم، بعدش دیدن پروژه بستون، گفتم یک حرکتی بزنم خسته شدم از بس کار با منافع عمومی نکردم 😂 حالا این همه آرمانی هم نه! ولی خب یک چیزی لازم داشتم چند روز فکر نکنم به دلیل مشکلات شخصی. اول میخواستم بنویسم مرحم درد های من یا حاصل درد کشیدن های یک نرد گفتم خیلی ناله میشه!!، در کل من خیلی به فکر جامعه و این حرفا اون جور آرمانی و شعار وار که یک عده خاص میگید نبودم ( گیت هاب در روز حساب علیه ام شهادت میده اگه بگم بودم )  بدم نمیومد که کاری کنم که به خودم و دوستام کمک کنه، شاید حالم بهتر شد

بستون چیه؟!

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

تودور چیه ؟!

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

این جملشم خیلی خوب بود!

خوش باشین و خندون و همیشه از برنامه نوشتن و مهمتر از اون، به انجام رسوندن کارها لذت ببرین. هیچ لذتی بالاتر از تیک زدن کارها نیست!

من چیکار کردم؟!

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

  • بعدش ببنید تو یک هفته چقدر وقت خالی دارید = X
  • اگر وقت خالی با  زمان اجرا برابری میکرد یا بیشتر بود if x== Time to implement
  • یک هفته کد بزنید و محصول بدید بیرون(هر چی که بود!!) start Coding

تجربه جالبی میشه بنظرم، شاید نشه و وقت طلف کنی باشه!! به هر حال من واسه حال هوای امروزم خوب بود!

حاصل این چالش که خودم رو بهش دعوت کردم یک بات تلگرام بود برای پرتال دانشگاهی که توش مثلا درس میخونم!!!

شاید دفعه بعد خودم رو به چالش توسعه API و اپلیکشن واسه دانشگاه دعوت کردم!!

زمانی که واسش گذاشتم تقریبا همون زمانی بود که سه سال هر هفته واسه غر زدن درباره اینکه دانشگاه چقدر بده ابزارهاش رو توسعه نمیدن و این چیزا تلف میشد بود!

چالش لایف استایل پرگرمینگ من

من چند ساعتی وقت خالی داشتم که نمیدونستم چیکار کنم!

این ربات چیکار میکنه

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

چه چیزی ذخیره میکنه؟

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

اخطار و رفع مسولیت

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

این رابط هیچ ارتباط رسمی با دانشگاه صنعتی بیرجند نداره و در صورتی که مسولین از من بخوان ربات رو غیر فعال میکنم (البته دانشگاه ما از اونی که فکر میکنید روشن فکر تر هستند و فکر نکنم بخوان همچیم چیزی)!!

این ربات اولش واسه استفاده شخصی نوشته شده، زمان زیادی هم از من نگرفت ، سرور این ربات فعلا تو خونه منه😅 و ممکنه بعضی وقت ها از دسترس خارج بشه(اینترنت خوب نداریم که)! کد به صورت متن باز در گیت هاب من موجوده، البته کد تمیزی نیست چرا که یک روزه نوشته شده ولی میتونید بر مبناش  api توسعه بدید یا ربات خودتون رو بنویسید!(خودم تو برنامه دارم)

نکته مخصوص همکلاسی ها محترم

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

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

اصلا چرا این همه واسه یک بات زپرتی نوشتم؟!

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

راستی بعد از چالش حالت چطوره؟!

بهترم، تصمیم دارم برنامه بریزم به صورت مرتب از این چیزهای کوچک بدم بیرون! بنظرم فانه

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

مخزن گیت هاب پروژه

اسکریپت پایتونی برای دیدن نمرات از پرتال دانشگاه صنعتی بیرجند!

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

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

 

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

خوشبختانه پرتال دانشگاه ما گلستان نیست قبلا واستون نوشتم که چی هستش توضیحاتش رو میتونید اینجا بخونید و میشه یک کارهایی باهاش کرد!  کدی که نوشتم رو پایین میتونید ببینید! خیلی سریع توسعه داده شده و ممکنه مشکلاتی داشته باشه ولی کارمون رو راه میندازه، کد رو اجرا میکنید و نمره ها رو تو ترمینال میبینید (:

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

با استفاده از این کد میشه واسه پرتال دانشگامون بات تلگرام یا api نوشت واسه دیدن نمره، کمی حال داشته باشید میتونید واسه کل پرتال اپلیکیشن یا بات بنویسید (یکی از دوستان دنبالش بودن تو دانشگاه)

فعلا حال و حوصله ندارم این بات یا api بنویسم ولی مطمینا کامنت ها و به اشتراک گذاری این پست میتونه منو سر حال بیاره(:

امیدوارم نمرات خوبی با این اسکریپت ببینید (;

تبدیل jpg به PDF در ترمینال + فشرده سازی

ایام امتحانات این پست منتشر میشه چون خیلی لازمتون میشه

معمولا از جزوه ها عکس میگیریم و از طریق تلگرام واسه هم میفرستیم ! که ترتیب داغون میشه کیفیت رو از دست میده و فرستادن فایل با کیفیت زمان بره، با دوتا ابزار تحت ترمینال خیلی راحت میشه عکس هایی که گرفتید رو به پی دی اف تبدیل کنید و فشرده کنید و بفرستیدش ! من ۲۴۰ مگابایت عکس داشتم ۸۰ صفحه جزوه و با این کار بدون افت کیفیت فرستادمشون !

ابزار های زیر رو احتیاج داریم که تو مک اینجوری نصب میشن

تو دبیان و اوبونتوتو هم اینجوری :

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

برای تبدیل عکس ها به پی دی اف بر اساس نام (معمولا دوربین و گوشی ها نام رو به ترتیب میزنن خودشون) دستوری زیر رو وارد میکنیم:

خروجی یک فایل input خواهد بود!

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

برای من فایل ۲۴۰ مگابایتی رو به ۳۵ مگ کاهش داد و خروجی دستور بالا فایلی با نام output.pdf خواهد بود.

پینوشت : ترمینال رو دوست داریم چون کار رو راحت تر میکنه!

ssl رایگان با Lets Encrypt و کنترل پنل Directadmin

چند وقت پیش هاست وبلاگم رو به پارس پک انتقال دادم و از اونجایی که گوگل اعلام کرد که هر وبسایتی که ssl نداشته باشه غیر امن طلقی میشه تصمیم گرفتم تنبلی رو بزارم کنار و واسه وبلاگم  گواهی رایگان ssl از  Lets Encrypt بگریم! که البته اگه سرور باشه خیلی راحت این کار انجام میشه :)

قبلا دوست خوبم هوشمند هم آموزشی در این زمینه نوشته بود که برای افراد خیلی مبتدی مناسب نبود گفتم حالا که دارم انجامش میدم یک آموزش مبتدی هم بنویسم :)

چند ماهی میشه از مک او اس استفاده میکنم و خوشبختانه کلاینت Lets Encrypt برای مک ارائه شده بود

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

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

بعد از اجرای دستور بالا از شما ایمیل خواسته میشود ایمیل خود را وارد کنید و به مرحله بعد بروید(تصویر زیر)

lets-encrypt-email

در مرحله بعد از شما میپرسه که ای پی شما ذخیره میشه ؟ قبول کنید و به مرحله بعد برید

lets-encrypt-ip-saving

در این مرحله که قسمت مشقت بارش است :دی از شما خواسته میشه که در مسیر زیر تو هاستتون فایلی با نام مشخص (رنگ قرمز در تصویر) ایجاد کنید و مجتوای مشخص شده (رنگ سبز) را درون فایل قرار دهید.

lets-encrypt-url

بعد از ایجاد فایل اینتر بزنید و گواهی شما آماده است :) به همین سادگی

 

lets-encrypt

بعد میریم سراغ استفاده از فایل ها که در مسیر زیر قرار دارند

بعد از لاگین در پنل به سراغ گزینه  SSL Certificates میرید

2_direct_admin

بعد محتوای فایل های privkey.pem و cert.pem رو به ترتیب در قسمت متنی کپی میکنید و محض رضای خدا اون قسمتی که قرمز کردم رو کلیک کنید (دو ساعت درگیرش بودم که چرا کار نمیده 😅 )

cer-pv-ssl

بعد سیو رو بزنید و دوباره به همون صفحه برگردید و Click Here to paste a CA Root Certificate رو انتخاب کنید

در صفحه ای که باز میشه تیک بالا رو بزنید و محتوای فایل chain.pem رو اونجا کپی کنید و سیو رو بزنید :)
le-da-2

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

به قسمت Domain Setup برید و Secure SSL رو تیک بزنید و  سیو رو بزنید

7_direct_admin

هم اکنون میتونید با سایت خودتون اینجوری حال کنید :)))

screen-shot-2016-09-27-at-12-52-04-am

مشکلی داشتید کامنت بزارید اگه در توان باشه جواب میدم :)

پی نوشت : برای نصب این پکج در گنو/لینوکس فقط دستور نصب فرق میکنه و بقیه مراحل یکسانه  از این سایت میتونید راهنمایی بگرید :)

منبع + +

+++++++++++

از سایت https://certificatemonitor.org/ هم میتونید برای یادآوری تمدید گواهی استفاده کنید :)

برای ریداریکت همه در خواست ها به ssl هم کد زیر را به فایل .htaccess اضافه کنید

 

خرید درون برنامه ای رایگان با Lucky patcher

یکی از دوستان یک نرم افزار جالب بهم معرفی کرد گفتم بد نیست که توی وبلاگم معرفی کنم! 

این اپلیکشن Lucky patcher نام داره و استفاده های جالبی میشه ازش کرد! همانطور که از اسمش پیداست شانسی اپلیکشن ها رو پچ میکنه و امکاناتش به صورت مختصر به صورت زیر هستش

  • حذف تبلیغات گوگل پلی از داخل اپلیکشن ها(خودش گفته این ویژگی به صورت درست کار میکنه و به شانس وابسته نیست)
  • حذف لایسنس از نرم افزارهایی که برای فعال سازی احتیاج به لایسنس دارند.
  • دور زدن خرید درون برنامه ای یا خرید رایگان ((: البته در همه موارد این ویژگی جواب نمیده ولی ۵۰٪ شانس هم می ارزه به امتحانش :)

آخرین نسخه این اپلیکشن رو میتونید از اینجا دانلود کنید.

برای حذف لایسنس از اپلیکشن مورد نظر بعد از نصب روی اپلیکشن مورد نظر کلیک کنید و از منوی Patches :

برای حذف تبلیغات گوگل :

حالا بریم سراغ خرید درون برنامه ای :

lucky-patcher-in-app-purchase-2
بعد از نصب لاکی پچر اپلیکشن رو باز کنید و بر روی patch to android کلیک کنید
در این قسمت همه پچ ها رو تیک بزنید و apply را فشار دهید (:

سپس منتظر بمانید تا دستگاه ریبوت شود !

بعد از ریبوت شدن اپلیکشن را ببندید و اپلیکشن یا بازی که خرید درون برنامه ای دارد را باز کنید!

lucky-patcher-3
در اپ بدنبال خرید یا چیزی شبیه به این بگردید و آن را انتخاب کنید
یکی از گزینه های قابل خرید را انتخاب کنید!
یکی از گزینه های قابل خرید را انتخاب کنید!
لاکی پچر باز میشود و به شما میگوید که میخواهید این آیتم را رایگان دریافت کنید؟ شما با لبخند YESرا انتخاب میکنید (:
لاکی پچر باز میشود و به شما میگوید که میخواهید این آیتم را رایگان دریافت کنید؟ شما با لبخند YESرا انتخاب میکنید (:

خیلی ساده تر از چیزی بود که فکرش را میکردید ؟ پایرت کنید و لذت ببرید (:

البته این روش روی همه اپلیکشن ها جواب نمیده و راه هایی واسه جلوگیری داره که در تخصص من نیست ولی خوب میشه که دوستان در موردش بنویسند :) من مطلب فارسی در موردش ندیدم اگه سراغ داشتید کامنت کنید (: