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

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

سری آموزشی توسعه بازی های کامپیوتری و C++

سری آموزشی توسعه بازی های کامپیوتری و C++ -  منبع تصویر: ویکی پدیا

سری آموزشی توسعه بازی های کامپیوتری و C++ - منبع تصویر: ویکی پدیا

پس از شروع سری آموزشی FreeBSD، تصمیم بر این شد که همزمان سری آموزشی توسعه بازی رو راه اندازی کنم. از آنجائی که من Game Engine های مبتنی بر C++ رو ترجیح میدم و بر موتورهای بازی Unreal Engine 4 و Cocos2d-x تسلط دارم دو دوره مجزای بازی سازی رو با هر یک از این Game Engine ها در این بلاگ شروع می کنم. ممکنه بعدها سرکی هم به OGRE و Godot (بخوانید گِدو، نام این Engine از نمایشنامه Waiting for Godot گرفته شده) بکشیم. اما در حال حاضر فقط Cocos2d-x و Unreal Engine 4.

چون که کار با Cocos2d-x نیازمند C++11 هست در یک سری آموزشی دیگر به شکل همزمان، C++1114 رو هم به زبان ساده و Beginner Friendly آموزش خواهم داد. به لطف Blueprints Visual Scripting که نسخه مدرن تر Kismet در Unreal Engine 3 و UDK یا همان Unreal Development Kit هست کار با Unreal Engine 4 ابدا نیازمند C++11 نخواهد بود. اما با در نظر گرفتن کارائی 10 برابری C++ نسبت به Blueprints بلد بودن C++11 کمک می کنه که شما حداکثر کارائی رو از UE4 بهره برداری کنید.

در این سری آموزشی شما توانائی تولید بازی برای پلتفرم های Windows, Mac OS X, Linux, Android, iOS و HTML5 رو به دست خواهید آورد.

در طول هرسه دوره فرض بر این خواهد بود که مخاطب هیچ دانش قبلی از برنامه نویسی با C++ و یا بازی سازی نداره. بنابراین تمام سعی من این خواهد بود که به زبان ساده مفاهیم رو انتقال بدم.

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

تاریخچه FreeBSD

نمودار سیر تکاملی سیستم عامل های یونیکس و شبه یونیکس - منبع تصویر: ویکی پدیا

نمودار سیر تکاملی سیستم عامل های یونیکس و شبه یونیکس - منبع تصویر: ویکی پدیا

اگر از یک سیستم عامل آزاد و کد باز استفاده می نمائید، به احتمال قریب به یقین مبتنی بر گنو و هسته لینوکس می باشد. اما باید بدانید این پلتفرم های کد باز و آزاد نه تنها اولین نرم افزارها در نوع خود نبوده، حتی حرفه ای ترین و یا موفق ترین نرم افزارهای کد باز تجاری شده در نوع خود نیز محسوب نخواهند شد. در هر سه این موارد Berkeley Software Distribution یا به اختصار BSD از GNU/Linux پیشی می گیرد. حال سوال اصلی اینجاست که چرا BSD در اکوسیستم نرم افزارهای آزاد به حاشیه رانده شده است، در حالی که توزیع های مختلف GNU/Linux گوی سبقت را از آن ربوده اند؟

در سه قسمت اول از سری آموزش های FreeBSD در ابتدا به تاریخچه آن خواهیم پرداخت. در قسمت دوم اقدام به بررسی ماهیت و ویژگی های آن نموده و با ساختار و مفاهیم آن آشنا خواهیم شد. و در نهایت در قسمت سوم آن را با GNU/Linux مقایسه می نماییم. پس از این سه قسمت در مقالات بعدی اقدام به نصب و راه اندازی FreeBSD جهت استفاده در Server به همراه نصب سرویس های مختلف از جمله Web Server, FTP Server, Mail Server, DNS Server و … جهت استفاده در محیط های Production می نمائیم. در کنار آن به نصب و پیکربندی FreeBSD در Desktop جهت Web Browsing, Multimedia و … خواهیم پرداخت. همچنین اقدام به توضیح مفاهیم یونیکس از ابتدا می نمائیم. در ادامه این مقاله به قسمت اول، تاریخچه FreeBSD خواهیم پرداخت.

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

شروعی دوباره

خب، تا اونجائی که من خاطرم هست فکر می کنم آخرین پستی که من توی بلاگ فارسی ام نوشتم 6 یا 7 سال پیش بوده. در واقع در اون زمان ابدا وبلاگی وجود نداشت و من یک وب سایت خیلی ساده داشتم متشکل از چند تا صفحه که با زبان برنامه نویسی Perl نوشته شده بود. یکی از اون صفحات صفحه مختص مقالات بود که بازدید کننده ها می تونستن پست های این وبلاگ رو در قالب فایل های نرم افزار Macromedia FlashPaper دریافت و مطالعه کنند.

وب سایت قدیمی من نوشته شده در Perl

وب سایت قدیمی من نوشته شده در Perl

پس از آشنائی من با مفهوم Static Generator ها در نهایت تصمیم گرفتم که تمامی مقالات رو با صرف مقداری زمان تبدیل کنم به پست های Octopress در قالب Markdown که برای اولین بار لذت فوق العاده وبلاگ نویسی رو با این نرم افزار تجربه کردم و بعدها با مهاجرت به Hexo که وبلاگ فعلی هست. در تمامی این مدت من هر از چندگاهی مقاله ای در دیگر وبلاگم به زبان انگلیسی منتشر کردم که این اولین پست فارسی من در تمامی این دوران هستش.

خب جهت جلوگیری از گزافه گوئی سخن رو کوتاه میکنم و می رسیم به هدف از راه اندازی مجدد این وبلاگ. از طرفی، خوب یا بد، من به معنای واقعی کلمه مشهورم به Jack of All Trades بودن و از طرف دیگه علاقه و شوق وافری دارم به یادگیری و یاد دادن. از اونجائی که من سال هاست تدریس رو کنار گذاشتم این وبلاگ رو فرصتی می بینیم جهت ارضای این نیاز درونی.

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

انتخاب بعدی می تونه ساخت بازی و آموزش موتورهای بازی سازی Cocos2d-x و Unreal Engine 4 باشن که پس از راه اندازی سری FreeBSD سعی می کنم با برنامه مشخص اینجا قرار بگیره. در نهایت تاپیک سومی که دوست دارم در موردش بنویسم ابزارهای توسعه ISO C++1114، کتابخانه Boost و در نهایت CMake هست که جزو ابزارهای مورد علاقه من جهت توسعه نرم افزار برای Desktop, Web و Mobile هستن.

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

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

توزیع شما نا امن است: اوبونتو

مقاله ی حاضر پیش از این در شماره ی ۲.۵ مجله ی Snoop – اردیبهشت ماه ۱۳۸۸ – به چاپ رسیده است.
یادآور می شویم مقاله حاضر حاصل ترجمه کامل مقاله ای از Ronald McCarty تحت عنوان Your Distro is Insecure: Ubuntu است که در تاریخ ۱۳ آوریل ۲۰۰۹ در وب سایت linux-mag.com انتشار یافته است.


برنامه نصب اوبونتو نسخه سرور یکی از ساده ترین و تمیزترین برنامه های نصب در میان سایر توزیع های لینوکس است. با این وجود٬ در بسیاری از موارد٬ طراحان آن تصمیم به قربانی نمودن امنیت در ازای سادگی استفاده نموده اند. نتیجه؟ بصورت پیش فرض یک نسخه تازه نصب شده اوبونتو ایمن نیست.

Ronald McCarty دوشنبه ۱۳ آوریل ۲۰۰۹
[ ادامه مطلب... ]

مبهم سازی کد در .NET و Java

چكیده

در این مقاله به بررسی چگونگی تولید٬ کامپایل و اجرای نرم افزارهای مبتنی بر .NET و Java در مقایسه با نرم افزارهای تولید شده با زبان های برنامه نویسی سنتی به علاوه تشریح کامل ساختار آن می پردازیم. همچنین به بحث پیرامون چگونگی Reverse Enginering و Decompile این دست از نرم افزارها خواهیم پرداخت.

در پایان راه کارهائی را جهت مقابله با موضوعات مطرح شده ارائه می نمائیم.

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

توسعه پروژه های C++ مبتنی بر Qt با استفاده از Eclipse

C++ Qt Development using Eclipse

C++ Qt Development using Eclipse

چكیده

در این مقاله به بحث پیرامون C++/Qt خواهیم پرداخت و همزمان با مفاهیم اولیه Qt آشنا خواهیم شد. همچنین با IDE قدرتمند Eclipse و پیکربندی آن جهت استفاده در کد نویسی C++/Qt, C/C++, Perl, Python/Jython, Ruby و هر زبان برنامه نویسی دیگری آشنا خواهیم شد.

در پایان نحوه نصب و پیکربندی Qt به همراه کامپایلر پیش فرض آن یعنی GCC Compiler را جهت کار با Eclipse مورد بررسی قرار می دهیم.

به دلیل تسلط نگارنده بر Mac OS X و Windows تمامی مقاله پیرامون Leopard و XP Professioanl x86 می باشد و نصب نرم افزارهای مورد نظر در لینوکس و سایر سیستم های عامل موردنظر را به مخاطب مقاله واگذار می نماییم.

همچنین فرض بر این است که مخاطب مقاله دارای مهارت لازم در کار با C و یا C++ می باشد.

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

طراحی و بكارگیری كیبورد فارسی مستقل از سیستم عامل

چكیده

در این مقاله اقدام به طراحی و پیاده سازی كیبورد فارسی مستقل از سیستم عامل با قابلیت به كارگیری به صورت مجزا برای هر یك از آیتم های فرم موردنظر می پردازیم.

همچنین كد موردنظر به صورت تابعی جهت بكارگیری آسان تر ارائه خواهد شد.

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

چه زماني گوگل به وب سايت شما سركشي مي كند

چكیده

در اين مقاله شاهد تحليل نحوه ي سركشي گوگل به يك وب سايت جهت استخراج اطلاعاتي مانند صفحه ي درخواست شده توسط گوگل، تشخيص اينكه صفحه در كدام سرور گوگل ذخيره شده است به علاوه ي زمان دسترسي گوگل به آن صفحه خواهيم بود.

همچنين اين اطلاعات با ارسال ايميلي در اختيار مدير وب سايت قرار خواهد گرفت.

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