وبلاگ محمد قاهری نجف آبادی

هر مطلب مفید در زمینه فعالیت هام رو داخل وبلاگ می ذارم. از برنامه نویسی و سرورها تا کشاورزی و گردشگری!!

وبلاگ محمد قاهری نجف آبادی

هر مطلب مفید در زمینه فعالیت هام رو داخل وبلاگ می ذارم. از برنامه نویسی و سرورها تا کشاورزی و گردشگری!!

  • ۰
  • ۰
سلام به دوستان عزیز
در هفته های اخیر درگیر وصل کردن سرورهای شرکت به سرویس های WCF ارائه شده توسط یکی از سازمان های دولتی کشور بودم. آزمون و خطاهای خیلی زیادی انجام دادم. با استفاده از کتابخانه های soap و strong-soap و wcf تلاشهای زیادی کردم تا این ارتباط رو برقرار کنم. اما نهایتا موفق نشدم. نهایتا پروژه رو با کدهای c# اجرا کردیم و کاملا جواب گرفتیم. بعد برای اینکه نخواهیم سرور ویندوزی راه اندازی کنیم رفتیم سراغ mono تا با استفاده از اون، کد های ویندوزی رو روی لینوکس اجرا کنیم. جالب این بود که mono مدتی بود که تصمیم گرفته بود به علت مشکلات زیادش دیگه wcf رو پشتیبانی نکنه. بعد رفتیم سراغ dotnetcore جالبه که اونهم با اینکه تولید مایکروسافته wcf رو پشتیبانی نمی کنه
نهایتا وب سرویس رو با یک اپ کاملا ویندوزی راه اندازی کردیم!!!!!!!!!!!!!
گفتم بنویسم که حداقل شما خطاهای ما رو تکرار نکنید
  • محمد قاهری
  • ۰
  • ۰

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

می گن آب در کوزه و ما گرد جهان می گردیم!

راه حل استفاده از نرم افزار Google Translate است!

گوگل ترنسلیت برای کار کردن نیاز به اینترنت داره. اولین پیشنهاد من در هر سفر خارجی اینه که بلافاصله یک سیم کارت محلی و یک بسته اینترنت برای روزهای اقامتتون تهیه کنید. این کار بسیار راهگشاست.
بریم سر اصل مطلب. من سیم کارت خریدم و از قبل نرم افزار مترجم گوگل یا Google Translate رو هم روی گوشیم نصب داشتم و ازش استفاده می کردم.
نرم افزار مترجم گوگل Google Translate
یک روز که موقع خوندن یه تابلو حسابی گیج شده بودم و کاراکترهای ترکی رو هم توی کیبورد گوشیم نداشتم با خودم گفتم یعنی مترجم گوگل با این همه هوشش نمی تونه از روی عکس متن رو ترجمه کنه؟! همون موقع رفتم توی پلی استور و دیدم که برای نرم افزار آپدیت وجود داره. آپدیت رو سریع نصب کردم و دیدم که بله!!! مشکل حل شد!
چند امکان جالب به مترجم اضافه شده که براتون توضیح میدم
  1. ترجمه از روی تصویر
  2. ترجمه صوتی و ترجمه به صورت مکالمه
  3. ترجمه متون کلیپ بورد
امیدوارم از امکانات مترجم گوگل حسابی لذت ببرید
اگه فرصت کردم در این باره بیشتر براتون می نویسم
  • محمد قاهری
  • ۰
  • ۰

سلام به دوستان گرامی

اگر به دنبال یک روش ساده و سریع برای تنظیم زمان سرور Centos خودتون هستید، آموزشی که براتون می ذارم کمکتون می کنه که توی دو دقیقه هم timezone سرورتون رو تنظیم کنید و هم سرور رو به یک NTP سرور یا سرور تنظیم خودکار زمان متصل کنید.

How To Configure Server Timezone In CentOS 7

  • محمد قاهری
  • ۰
  • ۰

تبدیل آدرس به Coordinates

عمل تبدیل متن آدرس به مختصات جغرافیایی Geocoding نام دارد. چند وب سرویس در حال حاضر برای این موضوع موجود هستند که معروفترین آنها Google Map API هست. به دلیل اینکه کاربران فارسی زبان نیاز به وب سرویسی دارند که با آدرس های فارسی کار کند من Nominatim رو پیشنهاد می کنم

تبدیل Coordinates به آدرس

این عمل عکس عمل Geocoding است و Reverse Geocoding نام دارد

  • محمد قاهری
  • ۰
  • ۰

دوستان گرامی بی تردید همه شما سرویس قدرتمند گوگل مپ رو می شناسید

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

1- Yandex Maps

آدرس: https://yandex.com/maps/


2- OpenStreetMaps

آدرس: www.openstreetmap.org


3- Wikimapia

آدرس: wikimapia.org


4- Waze Live Map

آدرس: https://www.waze.com/livemap

  • محمد قاهری
  • ۱
  • ۰

درباره Regex ها

Regex ها یا Regular Expression ها عباراتی هستند که برای مقایسه رشته های کاراکتری به کار می روند. این عبارات که از به کاربردن علائم و حروف و اعداد ساخته می شوند برای ارزشیابی یا Validate کردن فرم های ورودی نیز به کار می روند
سایت https://regexr.com به شما کمک می کند این عبارات را به درستی بسازید و آزمایش کنید
  • محمد قاهری
  • ۰
  • ۰

ممکنه شما هم موقع نوشتن بات های تلگرامی با مدیریت منو ها یا همون کیبورد ها با مشکل مواجه شده باشید

منظورم از کیبورد همون نوع قدیمی کیبورد تلگرامه نه inline_keyboard ها

توضیح درباره کیبورد ها اینکه پس از ارسال اونها به سمت کاربر چند انتخاب وجود داره

1- کیبورد پس از کلیک روی کلیدش همچنان پدیدار باقی بمونه

2- کیبود پس از کلیک روی کلیدش ناپدید بشه (ولی همچنان با کلیک روی آیکن مخصوصش فعال بشه)

3- !! بعد از کلیک روی کلیدش مستقیما کیبورد نابود بشه (این امکان وجود نداره)

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

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

و برای روش دوم باید مثل نمونه زیر مقدار one_time_keyboard رو برابر true قرار بدین. البته برای حالت قبل می تونید این مقدار رو برابر false قرار بدین.

$.sendMessage("لطفا با فشردن کلید زیر شماره خود را ارسال کنید",
                                {
                                    reply_markup:JSON.stringify({
                                        keyboard: [
                                          [{ text: 'ارسال شماره همراه من', request_contact: true }]
                                        ],
                                        resize_keyboard:true,
                                        one_time_keyboard:true
                                    })
                                });

اما بریم سر اصل مطلب یعنی

نابود کردن کیبوردها در بات تلگرام

برای این منظور لازمه که یک درخواست ارسال پیام (sendMessage) جدید ارسال کنید و امکان این درخواست در پیام حاوی کیبورد وجود نداره

و لازمه که در پیام جدید در پارامتر reply_markup مقدار remove_keyboard رو برابر true قرار بدید

دقت کنید که این message حتما باید متن داشته باشه حتی یک نقطه!

مثال این درخواست رو با NodeJS یا همون جاوا اسکریپت و با استفاده از ماژول Naltox در ادامه می بینید

$.sendMessage("متن پیام",
                            {
                                reply_markup:JSON.stringify({
                                    remove_keyboard : true
                                })
                            });
  • محمد قاهری
  • ۰
  • ۰

اگه شما هم کلی تلاش کردید و با تغییر دادن Owner دایرکتوری ها موفق به کار با فایل ها در Centos7 نشدید بدونین که مشکل از SELinux هست.

SELinux دسترسی رو به کلیه دایرکتوری ها و فایل های دارای دسترسی 777 و 755 محدود می کنه

دستورات زیر مشکل من رو حل کرد

chcon -R -t httpd_sys_content_t /path/to/www
chcon -R -t httpd_sys_content_rw_t /path/to/www/dir/for/rw

chcon -R --type httpd_sys_rw_content_t /path/to/your/directory
  • محمد قاهری
  • ۰
  • ۰

سلام به همه دوستان عزیز

اگه شما هم مثل من برای انتقال داده هاتون مرتب از JSON ها استفاده می کنید و مرتب به صورت دستی برای ایجاد prototype ها JSON می سازید وب سایت زیر می تونه کمک خوبی باشه که JSON ها تون خطا نداشته باشه

امتحان کنید:

http://www.objgen.com/json?demo=true

  • محمد قاهری
  • ۰
  • ۰
  • محمد قاهری