atVSG

0011001000110100

وحید امیری مطلق

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

رفع احتمالی مشکلات عجیب و به ظاهر غیر منطقی در Android


android weird issues

چندین ماه بود که یکی از اپ هایی که در دست توسعه داشتم داشت مشکلات عجیب و غریبی رو تجربه میکرد. اولیش این بود که هیچ سرویس push notification در برنامه کار نمیکرد. هیچ یعنی به واقع هیچکدوم از سرویس هایی که میشد استفاده کرد مثلا OneSignal یا Pushwoosh یا حتی سرویس ایرانی پوشه. تنها سرویسی هم که حداقل یه خطایی از طریق logcat میداد همین OneSignal بود. خطاش هم OneSignal AppId format is invalid بود.

گوگل کردن خطا هم متاسفانه هیچ کمکی نمیکرد. در بهترین حالت یه issue در github پیدا میشد که [تقریبا] مثل همیشه با پست های بی معنی و راه حل های تخیلی پر شده بود. چون این مساله push notification خیلی هم برای این برنامه حیاتی نبود من زیاد اهمیت ندادم ولی اخیرا متوجه شدم که هیچکدوم از library هایی که برای آپلود فایل استفاده میشن هم کار نمیکنن! در ادامه توضیح میدم مشکل چی بود و چطوری برطرفش کردم.



نصب mod_wsgi در ویندوز


apache python mod_wsgi windows

mod_wsgi یک ماژول مخصوص وب سرور Apache هستش که پشتیبانی از رابط استاندارد WSGI رو به آپاچی اضافه میکنه. از اونجایی که تقریبا تمام فریم ورک های وب مدرن Python نیازمند وب سروری با پشتیبانی از WSGI هستن، نصب کردنش به یکی از نیازمندی های شروع استفاده از Python برای توسعه web app شده. متاسفانه نصبش برخلاف بقیه ماژول های آپاچی کمی دردسر داره (مخصوصا تحت ویندوز). در این پست نحوه نصبش در ویندوز رو توضیح میدم.



انتشار وب اپ ساخته شده با ASP.NET Core با وب سرور Apache


ASP.NET Core + Apache

نسخه جدید فرم ورک Microsoft ASP.NET با عنوان ASP.NET Core یک فریم ورک ماژولار و منبع باز برای ساخت Web App و انواع Web API استفاده میشه. از بزرگترین مزیت های این نسخه، استفاده اون از NET Core هست که باعث میشه بتونید علاوه بر ویندوز، روی انواع توزیع های لینوکس و macOS هم برنامه ها رو اجرا کنید و از تمام مزیت هایی که دارن از جمله مصرف کمتر منابع و وب سرور قوی و محبوب nginx بهره مند بشید.

مسلما مثل همیشه امکان میزبانی ASP.NET Core روی وب سرور IIS که مخصوص ویندوزه هست ولی به دلایل زیادی از IIS خوشم نمیاد و ترجیح میدم از Apache استفاده کنم. مهم ترین دلایل من برای این کار اینه که تجربه ی مناسبی با Apache دارم و بدون اتلاف وقت میتونم تموم اون ها رو برای ASP.NET Core پیاده کنم و از طرفی همون طور که همه دنیا میدونن، Apache یک نرم افزار Cross Platform هستش که به معنی اینه که Apache رو روی هر سیستم عاملی اجرا کنید، دقیقا همین کار هایی که برای تنظیم Apache روی مثلا لینوکس انجام میدید رو بتونید با کمترین تغییر ممکن روی ویندوز هم پیاده کنید و این به شما این اجازه رو میده که به راحتی و در صورت نیاز، بتونید برنامه خودتون رو به یک سرور با یک سیستم عامل کاملا متفاوت منتقل کنید. همچنین این معنیه که میتونید چندین سایت با تکنولوژی های کاملا متفاوت رو کنار هم و بدون کوچکترین مشکلی روی یک سرور و یک وب سرور هاست کنید!



ترفند های کاربردی Apache با استفاده از فایل htaccess


htaccess

فایل htaccess (که با یک نقطه شروع میشه) یک فایل تنظیمات مخصوص وب سرور آپاچی است که البته توسط برخی وب سرور های دیگر هم تا حدودی پشتیبانی میشه. مزیت اصلی استفاده از این فایل به جای تغییر تنظیمات Apache در سطح پایین تر، پرتابل بودن اون و امکان استفاده از آن در محیط هایی که دسترسی به نرم افزار های سیستمی از جمله وب سرور برای کاربران محدود شده، مثل هاست های اشتراکی است. در این پست چند ترفند کاربردی رو برای بهبود سئو و سرعت سایت هایی که قابلیت استفاده از htaccess رو دارند، بررسی میکنیم.



Quotes by VSGWoRLD – نقل قول ها و جملات مورد علاقه من


Quotes by VSGWoRLD

چند وقتی میشد پیش خودم میگفتم ای کاش یه جایی، وجود داشت که جملات و نقل قول هایی که ازشون خوشم میاد رو میتونستم اونجا ذخیره کنم. البته راه های مختلفی برای این کار هست ولی دوست داشتم یه سیستم مخصوص برای این کار وجود داشت. سیستمی که در عین ساده بودن، قابلیت های خاصی از جمله API عمومی داشته باشه. ایده اولیه به اندازه کافی ساده بود که بدون هدر دادن وقت روش کار کردم و طی کمتر از 3-4 روز این سیستم رو پیاده سازی کردم. البته پیاده سازی همچین سیستمی نباید زمان زیادی ببره و میشد طی 2 روز هم انجامش داد ولی من با کمبود وقت آزاد مواجه بودم. به هر حال… الان این سیستم رو در یک زیر دامنه برای یه دامنه که تازه ثبت کردم، راه اندازی کردم. از آدرس quotes.vsgworld.com میشه بهش دسترسی داشت. این سیستم با استفاده از نرم افزار های زیر درست شده:

  • PHP 5.6
  • MariaDB 10/MySQL 5.6
  • Apache 2.4
  • Bootstrap 4
  • jQuery 3

همون طور که میبینید، از هیچ فریم ورک PHP استفاده نشده. البته این سیستم دارای Routing هست که با استفاده از یک پکیج composer به اسم phroute انجام میشه. به نظر خودم نکته ی مهم این سیستم و شاید متفاوت اون، Public API باشه که مستنداتش اینجا موجوده. با استفاده از این API میتونید نقل قول ها رو در سایت یا برنامه خودتون دریافت کنید و اون ها رو به هر فرمتی که دلتون میخواد نمایش بدید.


حل مشکل UnexpectedValueException in Response.php line 395 در Laravel 5


داشتم یک ماژول سرور رو برای NewsGet آپدیت میکردم که وقتی اجراش کردم:

laravel stack trace

stack trace ها با این که طولانی و خسته کننده هستن، میتونن اطلاعات زیادی راجع به نحوه ی به وجود آمدن مشکلات و exception ها بدن اما نه در این مورد.

رفع مشکل در ادامه مطلب.