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

طبقه بندی موضوعی
۱۳
خرداد

شروع برنامه نویسی سی و سی پلاس پلاس در ویندوز


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

از  ویژوال استادیو به خاطر حجمش خوشم نمیاد و به عنوان گزینه ی شماره دو در نظر میگیرمش پس باید به دنبال یک گزینه ی سبک و متن باز بگردم و با یه گوگل سریع به MinGW رسیدم.....

برای دانلودش نیاز به یک تغییردهنده ی آی پی داریم چون sourceforge هم ما رو تحریم کرده، سگ تو روحش.

برای نصب هم نیاز به تغییر دهنده ی آی پی داریم چون نصب کننده ی MinGW یک سری از چیز ها رو باید از sourceForge دانلود کنه بازم سگ توروحش .......

بعد از نصب با تنظیم متغییر محیطی path سیستم ، در cmd مثل ترمینال گنو/لینوکس gcc و g++ و تمام ابزار های داخل پوشهMinGW bin در دسترس خواهند بود و .....

اگر در گنو لینوکس بودم از bash اسکریپت به جای make استفاده میکردم چون make رو بلد نیستم و یاد گرفتنش میمونه برای بعد....

gradle یه پلاگین برای توسعه برنامه های بومی (Native) داره جالب به نظر میاد حتما باید برم سراغ مستندات اش .

برای تمرین هم که شده دوست دارم توسعه ی یه ابزار مفید رو به صورت یک پروژه ی متن باز شروع کنم پس این داستان ادامه دارد....

  • * RayanFar
۱۰
خرداد

برای لود کردن کتابخانه های بومی (natvie) از فایل jar کافیه فایل های dll یا so رو در یک پکیج مثل سورس جاوا کپی کنید و  از این کلاس استفاده کنید:

/*
 * Class NativeUtils is published under the The MIT License:
 *
 * Copyright (c) 2012 Adam Heinrich <adam@adamh.cz>
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
package cz.adamh.utils;

import java.io.*;
 
/**
 * A simple library class which helps with loading dynamic libraries stored in the
 * JAR archive. These libraries usualy contain implementation of some methods in
 * native code (using JNI - Java Native Interface).
 * 
 * @see http://adamheinrich.com/blog/2012/how-to-load-native-jni-library-from-jar
 * @see https://github.com/adamheinrich/native-utils
 *
 */
public class NativeUtils {
 
    /**
     * Private constructor - this class will never be instanced
     */
    private NativeUtils() {
    }
 
  • * RayanFar
۲۱
ارديبهشت

اگر بخواهیم فایلی رو مثلا "file1.txt" از یک مخزن در github حذف کنیم:

از دستور git rm به این صورت استفاده میکنیم.

git rm file1.txt
git commit -m "remove file1.txt"

و برای حذف یک دایرکتوری و فایل های داخلش :

git rm -r directory

و اگر بخواهیم فقط از مخزن حذف بشه و نه کلا از filesystem :

git rm --cached file1.txt

و در آخر تغییرات رو به مخزن ریموت push میکنیم.

git push origin master  

  • * RayanFar
۱۸
ارديبهشت

در مثال های مستندات JmonkeyEngine در بخش ( Hello Picking) در مورد انتخاب یک geometry با موس چیز هایی گفته شده .....

اما کامل نیست و در یک مورد نیاز واقعی برای من کارایی نداشت، بیشتر اوقات هر مدل از بیشتر از یک geometry تشکیل شده است (مثلا مدل من از چند قسمت دست ،سر ، مو ، لباس ، بدن ، پا ، پوتین و غیره تشکیل شده که هر کدام یک geo در نظر گرفته میشود).و همچنین لازم بود به controller آن دسترسی داشته باشم که فقط والد تمام این ها این کنترلر را داشت نه فرزندان .

پس باید به spatial دسترسی پیدا می کردم  که والد تمام اجزای بدن مدل بود، برای اینکار geo ها را به سمت بالا در سلسله مراتب پدر فرزندی مرور میکنیم تا به یک برابری برسیم .(من برای هر چیز یک داده ی کلید مقدار ثبت میکنم مثلا id و npc را به مدل سربازهایی که توسط کامپیوتر کنترل میشوند نسبت می دهم تا بتوانم در یک حلقه بررسی کنم مورد انتخابی یک مدل از نوع npc است یا نه ؟بعد یک متد از کنترلر را اجرا میکنم تا رفتار مناسب داشته باشد ....)

  • * RayanFar
۲۸
فروردين

نام کتاب : jMonkeyEngine 3.0 Cookbook - Rickard Eden.pdf

نویسنده: Rickard Edén

ناشر :Packt Publishing Ltd

زبان : eng

حجم : دو و نیم مگ - 615 صفحه

لینک دانلود

پ ن : وقتی امکانی برای خرید آسان وجود نداره مجبورم از راه غیر اخلاقی بدست بیارمش. پس دانلود کنید ، پرینت بگیرید و لذت ببرید. 

شاید این کتاب (jMonkeyEngine 3.0 Beginner's Guide.pdf) رو هم دوست داشته باشید بخونید.

  • * RayanFar