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

طبقه بندی موضوعی
۱۵
فروردين

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

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

در روش اول اگر به صورت درصد عدد 10 را به عنوان طول مثلا یک تصویر تعیین کنیم در رزولوشن پایه (من از 1152*2048 به عنوان روزلوشن پایه استفاده میکنم) این مقدار 204.8 پیکسل خواهد بود. و در پایین ترین رزولوشن (1024*1280) طول تصویر 128 پیکسل خواهد بود. این به تنهایی مشکلی ایجاد نمیکند ولی وقتی مقدار عرض را هم وارد و در چند رزولوشن دیگر هم تست کنیم مشکل نمایان میشود

  • younes RayanFar
۱۳
فروردين

فقط برای تفریح ، داستان یک انقلابی اتفاقی

هیچ وقت هیچ کتابی رو یک ضرب نخوندم ، یا حجمش زیاد بوده یا موضوعش جالب نبوده ولی لازم بوده بدانم.

این کتاب واقعا عالی ترجمه شده و کلی لذت بردم. با توجه به این که دویست صفحه است احتمالا 5 ساعت وقت می خواد ، برای من که اینطور بود.

بخشی از صفحه ی درباره کتاب :

این کتاب، نوشته لینوس توروالدز خالق لینوکس و دیوید دیاموند است. یک خبرنگار مدت‌ها با لینوس وقت گذرونده و حرف‌هاش رو شنیده و نتیجه‌اش شده این کتاب که با نام انگلیسی  Just For Fun توسط انتشارات TEXERE منتشر شده.  (منبع)

میتونید از اینجا و به صورت برخط بخونیدش یا از بخش دانلود ، نسخه ی پی دی اف اش را دریافت کنید.

  • younes RayanFar
۰۷
فروردين

کد زدن بدون آکولاد و سمی کالن مزخرف است.

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

  • younes RayanFar
۱۰
اسفند

چون از مهر خاتم خوشم میاد یکی برای خودم طراحی کردم!

نظرتون چیه قشنگ شده؟

احتمالا در کار های به شدت خاص به عنوان امضا ازش استفاده کنم......

  • younes RayanFar
۰۲
بهمن

من عاشق جاوا هستم

چون کار ها رو خیلی راحت کرده مثلا این تصویر رو ببینید:

برای یک کاری لازمش داشتم ، حوصله اش را نداشتم که وقت بگذارم و در ابزاری مثل فتوشاپ یا گیمپ یه همچین چیزی رو با دقت یک پیکسل رسم کنم.

فکرش رو کنید باید از خطوط راهنما استفاده میکردم و یک تصویر 1000 در 50 پیکسلی که در صفحه نمایش من با توجه به رزولوشن ، 370 واحد از خط کش فتوشاپ بود ، به بیست قسمت مساوی تقسیم کنم بعد از 100 تا منهای 100 درجه بندی کنم چقدر وقت میبرد.

میانبر زدم

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

package paint;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

/**
 *
 * @author yn
 */
public class paint{

    static BufferedImage buffImage = null;
    static Graphics2D g2;

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        init();
        draw_line();

        write();

    }

    public static void init() {
        buffImage = new BufferedImage(1000, 50, BufferedImage.TYPE_INT_ARGB);
        g2 = buffImage.createGraphics();
    }

    public static void draw_line() {
        g2.setStroke(new BasicStroke(2));
        g2.setColor(Color.green);
        g2.drawLine(0, 25, 1000, 25);

        int c = 100;
        for (int i = 0; i <= 1000; i += 50) {
            g2.drawLine(i, 30, i, 20);

            if (i == 0) {
                g2.drawString(c + "", i + 2, 15);
            } else if (i == 1000) {
                g2.drawString(c + "", i - 25, 15);
            } else {
                g2.drawString(c + "", i - 5, 15);
            }

            c -= 10;
        }
    }


    public static void write() {
        try {
            File outputfile = new File("saved.png");
            ImageIO.write(buffImage, "png", outputfile);

        } catch (Exception e) {
            System.out.println(e);
        }
    }

}

  • younes RayanFar
۲۵
دی

وقتی که از nfity-gui به دلایلی دل سرد شدم به lemur فکر میکردم.

اما خب فونتی که برای نیفتی و جی ام ئی درست کار میکرد در lemur خوب نشون نمیداد و پایین تر می افتاد پس لازم بود در مورد کارایی برنامه ای که نوشتم تجدید نظر کنم و دوباره برم سراغ مستندات bitmapFonts ... 

اصلاحش کردم

هیچ راهی وجود نداشت که با قبلی ادامه بدم و در lemur هم دسترسی به خصوصیات متن مثل فاصله از بالا وجود نداشت و موقعیت متن بر طبق لایه تعیین میشد. لازم بود فونت ساز رو اصلاح کنم که در هر سه ابزار به خوبی نمایش داده شود (lemur - nifty- jme gui node) و این کار رو کردم.

لینک نسخه ی اصلاح شده برای lemur 

  • younes RayanFar
۲۳
دی

nfity gui یک ابزار بدرد نخور است.

خستم کرده لامصب ...

اصلا حرف آدمی زاد حالیش نیست هر گوشه اش یک ایراد داره....

مثلا یک نمونه اش کیفیت بسیار بسیار پایین رندر تصاویر برای image Icon ها در hud است.

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

هیچ راهی برای ادامه وجود ندارد ، به همین دلیل لازم  است در hud از گزینه ی دیگری استفاده کنم.

https://github.com/jMonkeyEngine-Contributions/Lemur

  • younes RayanFar
۱۸
دی

من یک تازه بسیجی هستم

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

تجربه ی جالبی بود ولی هنوز دوستی پیدا نکردم....

تغییر کردم ...

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

فعلا فقط آقای برادر  از من حمایت میکنه و قراره دومین فرد خاندان رایان فر باشه.

روز هام به سختی میگذرد

افسردگی بهم فشار میاره و دارو هایی که دکتر تجویز کرده فکر میکنم بی اثره ، چون هیچ تغییری رو احساس نمیکنم.

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

دوستم برگشت منطقه و این حالم رو بیشتر بد میکنه امیدوارم این بار هم سالم برگرده ، تا نصفه های شب باهم وینستون لایت بکشیم ریه هامون رو به فنا بدیم.

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

در حال حاضر فکر میکنم همه چیز خوبه ، هیچ باگ جدی وجود نداره که حلش طول بکشد، چیزی تا انتشارش نمونده...

در مجموع 47753 خط کد زدم .

با این کد در خط فرمان لینوکس میتونید مجموع خط هایی که در فایل های یک دایرکتوری وجود داره رو حساب کنید.

find . -name "*.java" -print | xargs wc -l

  • younes RayanFar
۰۹
شهریور

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

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

چون میدنستم این فرایند مربوط به برنامه ی java.exe است پس با دستور تسک کیل و به صورت اجباری بستمش.

taskkill /IM java.exe /F

این دستور (taskKill) میتونه یک پروسه رو با دادن image name و یا PID متوقف کنه و اگر لازم باشه به صورت فورس. و دستور تسک لیست ، اطلاعاتی در مورد فرایند ها و وضعیتشون رو لیست میکنه که برای پیدا کردن PID و IM استفاده میشه.

tasklist 

  • younes RayanFar
۲۷
تیر

یه زمانی دوست داشتم خزنده ی خودمو بنویسم .....

نمیدونید تجربه کار کردن با پروتکل http برای من چقدر آزار دهنده بود. مخصوصا وقتی طرف سرور با کد 304 یا 301 یا 302 ریداریرکت میکرد! با رفتار های بسیار عجبی که برنامه ی سمت سرور از خودش نشون میداد ، احتمال اینکه توسعه دهنده اش حتی یکبار هم مستندات http رو نخونده باشه بالا میبرد..... از اون بدتر قابلیت auto redirect کتابخانه ی استاندارد net تو جاوا بود که کارش رو درست انجام نمیداد و از نسخه ی فکر کنم 1.6 به بعد متد غیر فعال کردنش هم منسخوخ کرده بودند اما قابل استفاده بود. (کنترل اسپیس نت بینز آی دی عی کمک کرد پیداش کنم).

برای کار کردن با پروتکل http فکر میکنم این خیلی عالی باشه : http://javalite.io/http

من و خودم

عاشق داده کاوی و مشخصا وب کاوی هستم اما وقت ندارم :(

نمیدونم اما یه حسی بهم میگه این ها یعنی (مجازی سازی -داده کاوی - پردازش تصویر - شبکه ی عصبی - یادگیری ماشین- پردازش زبان طبیعی) بهم مربوطه. شاید ایده ای دارم و حتی خودم نمیدونم قراره چی بسازم .......

حداقل ده سال برای خودم کار تراشیدم .....

 

  • younes RayanFar