برنامه نویس C++، عاشق یونیکس، و توسعه‌دهنده بازی در موتور بازی سازی آنریل انجین ۴ که هرگز از یادگیری چیزهای جدید خسته نمی شه.

مبتلا به خیال پردازی مزمن هستم (بخونید INFP)؛ به همین دلیل بازی می سازم!

سال ۲۵۷۸ مبارک! یادداشت سال نوی من

سبزه سفره هفت سین

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

[ ادامه مطلب... ]

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

تلگرام

حاج آقا عندالموءمنین می فرمایند: “فی الواقع، به تعداد آدم‌ها راه هست برای دور زدن فیلترینگ تلگرام.”

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

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

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

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

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

بسیار خب! و اما پیش نیازها:

مدت زمان ۳۰ دقیقه
سطح مطلب گروه سنی الف 😄
زیرساخت سرور فیزیکی یا مجازی، و یا دسترسی به فضای میزبانی وب با دسترسی به اینترنت آزاد
دانش نرم افزاری نصب، پیکربندی و راه اندازی وب سرور (تنها برای سرور فیزیکی یا مجازی، در صورت اجاره هاست نیاز نیست)

اختیاری: آشنائی مقدماتی با یک زبان برنامه نویسی سمت سرور. مثلا PHP؛ به خصوص اگر قصد توسعه کد بات به منظور افزودن قابلیت های بیشتر را دارید

پیش نیازها

در پایان، اضافه کنم که هر چند من دکمه ای دارم به نام C++ که تمامی کت و شلوارهایم را با آن ست می کنم 😊، تا بدان جا که برنامه نویسی وب و بک اند را هم با C++ انجام میدهم، اما چون دنبال کردن مطلب برای مخاطبین به سرعت سخت می شود، و علاوه بر این ها نمی توان در هاست های اشتراکی از C++ استفاده نمود، با وجود این که تا پیش از این با PHP آشنائی نداشتم، بات مورد نظر را به دلایل پرواضح و مبرهنی که اشاره شد، در این مطلب با PHP طراحی و پیاده سازی می نمائیم.

[ ادامه مطلب... ]

مهاجرت از Hexo به Hugo

مدت کوتاهی بعد از مهاجرت این وبلاگ و وبلاگ دیگه ام (که به زبان انگلیسیه) از Octopress به Hexo و نوشتن تعدادی پست جدید باهاش، با یه Static Generator دیگه به نام Hugo آشنا شدم. اولش به نظر می‌رسید که Hexo پاسخگوی تمامی نیازهای بلاگ نویسی من باشه. اما سرعت فوق‌العاده Hugo در تولید صفحات خروجی و قابلیت‌های بسیاری که با وجود جوون بودن پروژه عرضه می‌کرد برای من نوید بخش یک فریم ورک بلاگ نویسی ایده‌آل بود.این شد که پس از مدت کوتاهی تصمیم به مهاجرت از Hexo به Hugo گرفتم. متأسفانه، به دلیل عدم وجود برخی قابلیت‌های مورد نیاز من امکان مهاجرت به Hugo از من سلب شد.

پس از مدت ها، پروژه مشابهی در زبان برنامه نویسی Rust شروع شد به نام Gutenberg. برای مدتی قابلیت‌هاش رو در حین توسعه زیر نظر گرفتم و تست هائی در این فریم ورک انجام دادم. سرعت اجرای بسیار بسیار سریعش و پاسخگو بودن توسعه‌دهنده اصلی اون باعث علاقه شدید من به این Static Generator شد. با وجود این به دلیل عدم بلوغ اون، از مهاجرت به Gutenberg هم منصرف شدم.

حدودا دو هفته پیش یک بار دیگه وضعیت پروژه Hugo رو بررسی کردم که خوشبختانه این بار به شدت من رو تحت تأثیر خودش قرار داد. کماکان سرعت اجرای خوب، تا حدود زیادی بالغ شدن این پرژوه، داشتن تمامی قابلیت‌های مورد نیاز من، و از همه مهمتر تعداد و تنوع بسیار زیاد پوسته ها و قالب هاش که من رو از طراحی یه پوسته جدید کاملا بی‌نیاز می‌کرد باعث شد که بالاخره تصمیم نهائی ام رو بگیرم. با تبدیل وبلاگ انگلیسی و بعد از اون وبلاگ فارسی در حال حاضر هر دو وبلاگ از Hugo بهره می برن.

باید اضافه کنم که سورس کد هر دو وبلاگ و مطالب اون ها در گیت هاب و گیت لب موجود هست. برنچ master نسخه Hugo هست و سه برنچ دیگه هم به نام های octopress-v2, hexo-v3 و درنهایت gutenberg وجود دارن که سورس نسخ قبلی رو شامل میشه.

پ.ن. با وجود اینکه در حال حاضر Hugo پاسخگوی تمامی نیازهای فعلی من هست، من بیشتر تمایل به استفاده از پروژهائی دارم که در Rust توسعه داده شدن تا Go. دلیلش هم برای من بسیار مشخصه: این روزها دنبال یک زبان جایگزین برای توسعه پروژه هام به جای C++ مدرن می گردم و به نظرم Rust ایده‌آل ترین گزینه ممکن هست. حداقل فعلا. به همین دلیل هم در حالی که لذت استفاده از Hugo رو تجربه می‌کنم نیم نگاهی هم به Gutenberg دارم. کسی چه میدونه؟ شاید یه روزی از Hugo به Gutenberg مهاجرت کنم.

اضافه شدن بخش نظرات

به روز رسانی [1395/06/15]: متاسفانه به دلایل متعددی که در اینجا شرح داده شده است، از این تاریخ به بعد امکان استفاده از سیستم نظرات فعلی وجود ندارد. بنابراین سیستم نظرات تا اطلاع ثانوی غیر فعال خواهد بود.

خب بالاخره بخش کامنت ها هم به هر دو وبلاگ فعلی و وبلاگ انگلیسی اضافه شد. بخشی از این قضیه که چرا تا حالا چنین چیزی در این وب سایت وجود نداشت مربوط میشه به مقاومت من، مقداری سخت گیر بودن راجع به سیستم های کامنت گذاری مرسوم و بلاخره مسایل فنی. از آنجائی که در فیدبک هائی که به شکل مستمر از سوی دوستان گرامی دریافت می کردم قضیه کامنت، بحث و تبادل نظر از اولویت بالائی برخوردار بود بالاخره با صرف زمان واقعا زیاد به آنچه که خواسته خوانندگان این وبلاگ و خودم بود رسیدم. بخشی از داستان این تلاش ها و راه حلش رو که یک نرم افزار کد باز به نام Discourse هست رو اینجا توضیح دادم. این نرم افزار توسط Jeff Atwood خالق وب سایت های Stack Overflow و مجموعه Stack Exchange توسعه داده شده که در وبلاگ خودش با نام Coding Horror هم استفاده میشه.

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

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

منتظر مطالب جدید باشید!

FreeBSD یا Linux مسئله این است؟

FreeBSD در مقابل Linux

FreeBSD در مقابل Linux

قبل از پرداختن به تفاوت های میان FreeBSD و GNU/Linux بایستی خاطر نشان شد که بیش از هر چیز شباهت های زیادی میان این دو وجود دارد. در واقع هر دوی آن ها توسط سازمان های غیرانتفاعی مختص خود با یک هدف مشترک توسعه می یابند: قابل اتکاترین سیستم عامل با بیشترین قابلیت استفاده.

در سومین مقاله از سری آموزشی FreeBSD، با تفاوت های FreeBSD و GNU/Linux آشنا خواهیم شد. توصیه می شود پیش از مطالعه این مقاله قسمت های اول و دوم این سری را مطالعه نمائید.

هشدار: این مقاله بر اساس تجربیات و نظرات شخصی نگارنده در کار با هر دو سیستم عامل، به رشته تحریر در آمده است. لذا، از آنجا که بحث مقایسه مطرح است ممکن است برخی از افراد با نظرات مطرح شده در این مقاله موافق نباشند. شایان ذکر است که تصمیم گیری و برداشت نهائی از مطالب بر عهده خواننده خواهد بود.

[ ادامه مطلب... ]

آموزش نحوه ی نصب Unreal Engine 4

A Boy and His Kite

A Boy and His Kite

قبلا در مقاله ای مفصل به شرح تاریخچه Unreal Engine پرداخته و سپس با برخی از مفاهیم و کلیات آن آشنا شدیم. حال نوبت به نصب آن می رسد. نصب این Game Engine و ابزارهای آن بسیار ساده می باشد. اما، دلایلی همچون: نصب آنلاین، فایل های حجیم، دسترسی کند برخی از کاربران به اینترنت و در نهایت تحریم های بین اللملی، ممکن است برخی از کاربران ایرانی را جهت دریافت این نرم افزار با مشکل مواجه کند. لذا علاوه بر نصب UE4، اقدام به ارایه راهکاری مناسب و کم هزینه جهت دریافت آن در چنین شرایطی می نمائیم.

در پایان این مقاله، قادر به انجام موارد ذیل خواهید بود:

  • ساخت یک حساب کاربری نزد شرکت Epic Games (البته اگر در حال حاضر چنین حساب کاربری ندارید)
  • دریافت و راه اندازی برنامه نصب به نام Epic Game Launcher
  • ورود به Epic Game Launcher با حساب کاربری تان
  • نصب Unreal Engine
  • اجرای Unreal Engine
[ ادامه مطلب... ]

FreeBSD چیست؟ یک نمای کلی از سیستم عامل FreeBSD

'Beastie' The BSD Daemon / Mascot (a near homophone of the letters B-S-D pronounced slurred together)

'Beastie' The BSD Daemon / Mascot (a near homophone of the letters B-S-D pronounced slurred together)

FreeBSD چیست؟ پاسخ کوتاه: FreeBSD یک سیستم عامل مدرن و پیشرفته جهت استفاده در سرورها، کامپیوترهای شخصی، لپ تاپ ها و دستگاه های Embedded به همراه پشتیبانی از پلتفرم های گسترده می باشد که توسط هواداران آن به شکل داوطلبانه برای بیش از سه دهه در دست توسعه بوده است. قابلیت های پیشرفته آن در زمینه شبکه، امنیت و ذخیره سازی، آن را به انتخاب اول برخی از پرترافیک ترین وب سایت ها، همچنین دستگاه ها و سیستم های فراگیر شبکه (فایروال ها و روترها) و ذخیره سازی داده (NAS/SAN) نموده است. این سیستم عامل توسط کمپانی ها، ISP ها، دانشگاه ها، موسسات تحقیقاتی، دانشجویان، دانش آموزان و کاربران خانگی در سراسر دنیا به منظور کار و امور تحقیقاتی مورد استفاده قرار می گیرد.

در دومین مقاله از سری آموزشی FreeBSD، در قالب دسته ای از پرسش و پاسخ با ماهیت، برخی مفاهیم، ویژگی ها و اهداف FreeBSD آشنا خواهیم شد.

[ ادامه مطلب... ]

مقدمه ای بر موتور ساخت بازی Unreal Engine 4

صفحه بارگذاری Unreal Engine 4 Editor

صفحه بارگذاری Unreal Engine 4 Editor

علیرغم حضور نام های بزرگی مانند CryEngine از شرکت Crytek و سایرین در دنیای بازی، بدون شک Unreal Engine موفق ترین موتور بازی سازی AAA تا به امروز می باشد. با ظهور مارکت های جدیدی مانند Valve Steam, Apple App Store, Google Play و سایر بازارهای از این دست در دنیای بازی های کامپیوتری، فرصت های بسیاری جهت درخشش توسعه دهندگان مستقل در دنیای بازهای کامپیوتری ایجاد شد. قطعا یکی از عوامل موفقیت توسعه دهندگان مستقل در این بازارهای نوظهور موتور بازی سازی Unity بود که برای چند سال سلطان بی چون و چرای دنیای Indie بود. این موتور بازی سازی بدلیل سهولت یادگیری و استفاده، همچنین قابلیت تولید خروجی برای پلتفرم های مختلف شامل دسکتاپ، موبایل و کنسول در ازای پرداخت مبلغی نسبتا معقول، داشتن فروشگاه Asset که باعث کاهش هزینه توسعه بازی ها توسط توسعه دهندگان می شد، از محبوب ترین موتورهای بازی سازی نزد تولیدکنندگان مستقل می باشد. لذا شرکت Epic سازنده موتور بازی سازی Unreal Engine ابتدا با عرضه UDK که بر اساس موتور Unreal Engine 3 توسعه داده شده بود و سپس باز نمودن و عرضه کد Unreal Engine 4 بر روی GitHub که قبلا با مبلغ بسیار گزافی فقط در اختیار آنهائی که این شرکت Licensees می نامید قرار داشت، گام بزرگی به سوی تسخیر بخشی از بازار بازی های مستقل نهاد.

در این سری از مقالات به آموزش ساخت بازی با استفاده از Unreal Engine 4 برای پلتفرم های مختلف Destkop, Mobile و Web خواهیم پرداخت. در اولین مقاله از این سری، به شناخت Unreal Engine 4، مختصری تاریخچه و توضیح مفاهیم آن می پردازیم.

جهت دنبال نمودن این دوره آموزشی نیازی به هیچگونه آشنائی مقدماتی با ساخت بازی های کامپیوتری نخواهد بود.

[ ادامه مطلب... ]