یوشا آل ایوب

وبگاه دست نوشته ها و تجربیات شخصی
بِسمِ اللّه‏ِ الرَّحمنِ الرَّحيمِ

یوشا آل ایوب

وبگاه دست نوشته ها و تجربیات شخصی

یوشا آل ایوب

دکتر مصطفی چمران: می گویند تقوا از تخصص لازمتر است، آنرا می پذیرم، اما می گویم: آنکس که تخصص ندارد و کاری را می پذیرد، بی تقواست!

تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران

۶۵ مطلب با موضوع «کامپیوتر :: نرم افزار» ثبت شده است

شیوه درست صدا زدن Superclass ها در Activity اندروید:

// Called after onCreate has finished, use to restore UI state
@Override
public void onRestoreInstanceState(Bundle savedInstanceState)
{
    super.onRestoreInstanceState(savedInstanceState); // Always call the superclass method at FIRST.

    // Restore UI state from the savedInstanceState.
    // This bundle has also been passed to onCreate.
    // Will only be called if the Activity has been
    // killed by the system since it was last visible.
}

// Called before subsequent visible lifetimes for an activity process.
@Override
public void onRestart()
{
    super.onRestart(); // Always call the superclass method at FIRST.

    // Load changes knowing that the Activity has already
    // been visible within this process.
}

// Called at the start of the visible lifetime.
@Override
public void onStart()
{
    super.onStart(); // Always call the superclass method at FIRST.

    // Apply any required UI change now that the Activity is visible.
}

// Called at the start of the active lifetime.
@Override
public void onResume()
{
    // Resume any paused UI updates, threads, or processes required
    // by the Activity but suspended when it was inactive.

    super.onResume(); // Always call the superclass method at LAST.
}

// Called to save UI state changes at the end of the active lifecycle.
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
    // Save UI state changes to the savedInstanceState.
    // This bundle will be passed to onCreate and
    // onRestoreInstanceState if the process is
    // killed and restarted by the run time.
    super.onSaveInstanceState(savedInstanceState); // Always call the superclass method at LAST.
}

// Called at the end of the active lifetime.
@Override
public void onPause()
{
    // Suspend UI updates, threads, or CPU intensive processes
    // that don't need to be updated when the Activity isn't
    // the active foreground Activity.
    super.onPause(); // Always call the superclass method at LAST.
}

// Called at the end of the visible lifetime.
@Override
public void onStop()
{
    super.onStop(); // Always call the superclass method at FIRST.

    // Suspend remaining UI updates, threads, or processing
    // that aren't required when the Activity isn't visible.
    // Persist all edits or state changes
    // as after this call the process is likely to be killed.
}

// Sometimes called at the end of the full lifetime.
@Override
public void onDestroy()
{
    // Clean up any resources including ending threads,
    // closing database connections etc.

    super.onDestroy(); // Always call the superclass method at LAST.
}

 

خلاصه مطب: در متد های onRestoreInstanceState، onStop, onRestart, onStart، ابتدا باید Superclass صدا زده بشه و بعد کدهای شما قرار بگیره. اما در متدهای onDestroy, onPause, onSaveInstanceState, onResume ابتدا باید کدهای شما قرار بگیره و بعد متد Superclass صدا زده بشه.

عدم رعایت این اولویت ها گاهی باعث کندی، crash کردن، memory leak، ناهماهنگی در UI، باگهای DataSaving و امثالش میشه... پس حتماً رعایت کنید.

 

(شاید درصد کمی از برنامه ها باشند که از این قائده پیروی نمی کنند، اما اون هم با آگاهی کامل از محتوا و مکانیسم Superclass ها.)

 

منبع: پروفسور Andrew T. Campbell (و گوگل)

http://www.cs.dartmouth.edu/~campbell/cs65/lecture05/lecture05.html

۰ نظر ۹۵/۰۶/۰۷
یوشا آل ایوب

نسخه 14.2 لینوکس Slackware هم روانه بازار شد!

۰ نظر ۹۵/۰۴/۱۳
یوشا آل ایوب

 

همونطور که می دونید برنامه Git برای کار با repository، پنج پروتکل در اختیار ما گذاشته که هرکدوم مزایا و معایب خودشونو دارن. این پروتکل ها:

1- File (یا همون Local protocol)

2- HTTP (یا همون Dumb protocol)

3- HTTPS (یا همون Smart protocol)

4- SSh

5- Git

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

پس وارد جزئیات میشیم!

۱ نظر ۹۵/۰۳/۰۹
یوشا آل ایوب

یه چند وقتیه دارم فکر میکنم که نسل بعدی اینترنت چی و چطوری میتونه باشه...!

واقا کسی تا به حال بهش فکر کرده؟

با تحقیقاتی که کردم فکر کنم اولین نفری هستم که راجبش مطلب مینویسم angel و البته نه نسخه جدیدی از اینترنت: https://en.m.wikipedia.org/wiki/Next_Generation_Internet

خب میتونیم بگیم اینترنت یه شبکه بین المللیه که ارتباط بین کامپیوترهارو از طریق پروتکل TCP/IP مهیا میکنه(در حالت معمول) و اینا هم چیزی نیستن جز نرم افزارو امواج رادیویی... 


اما نسل بعدی اینترنت چطوری میتونه باشه؟ 
شبکه بین کهکشانیه؟ یا بین کیهانی؟ 
گیرنده فرستنده داره؟
اصلاً در همه جا هست و قابل دسترسه؟ 
ماهیتش از چیه؟ طبیعتا چون نسل جدیده(نه نسخه جدید) نمی تونه امواج رادیویی یا کامپیوتری باشه...
آیا دیگه از طریق ذهن قابل دسترسه؟ 
یا جایی از دنیا هسته اش قرار میگیره و به شبکه ذهنی انسانها متصل میشه؟ (و شاید اون موقع چالش های جدید امنیتی و نفوذ به افکار بوجود میان. دزدی افکار و اطلاعات. شستشوی مغزی. اسیب زدن به ذهن و حتی جسم و جنگهای روانی...)
دیگه دنیای مجازی خطاب نمیشه؟
اسمش چی میتونه باشه؟ GalaxyNet? UniverseNet? HumanNet? MentalNet
کی اصلاً اختراع میشه؟
...

۹۵/۰۲/۱۷
یوشا آل ایوب

 

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

 

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

خب خوبه که ایران داره همدان میشه و مردم همچیزدان

با این وضعیتی هم که [بیشتر] تکنسین های کامپیوتر در پیش گرفتن و وضعیتی که شرکت های فروش لپ تاپ و PC دارن (با اون کارشناسان صفر کیلومترشون)، پس انتظار همچین چیزایی رو هم باید داشته باشید:

۲ نظر ۹۵/۰۲/۰۳
یوشا آل ایوب

در ادامه مقاله قبلیم که شماره یک "نکات و اصول مهم در برنامه نویسی Java/Android" بود، در این مقاله شماره دو همین موضوع رو ارائه میدم. منتها کمی پیشرفته تر...

 

1- طبق گفته Sun، از دستورات System.runFinalizersOnExit() و Runtime.runFinalizersOnExit() استفاده نکنید، اینها منسوخ و Unsafe اعلام شدن:

JAVA-DOC: Because it is inherently unsafe. It may result in finalizers being called on live objects while other threads are concurrently manipulating those objects, resulting in erratic behavior or deadlock. While this problem could be prevented if the class whose objects are being finalized were coded to "defend against" this call, most programmers do not defend against it. They assume that an object is dead at the time that its finalizer is called. Further, the call is not "thread-safe" in the sense that it sets a VM-global flag. This forces every class with a finalizer to defend against the finalization of live objects!

Joshua Bloch: Never call System.runFinalizersOnExit or Runtime.runFinalizersOnExit for any reason: they are among the most dangerous methods in the Java libraries.

۰ نظر ۹۵/۰۱/۰۸
یوشا آل ایوب
<?php

switch (1)
{
    case 1:
        $var = 'Test';
        echo ' in case 1 ';
    break;

    case 2:
        if (isset($var)) echo '($var is set)';
        echo ' in case 2 ';
    break;

    case 3:
        echo ' in case 3 ';
    break;
}
// Result: in case 1

switch (1)
{
    case 1:
    {
        $var = 'Test';
        echo ' in case 1 ';
    }

    case 2:
        if (isset($var)) echo '($var is set)';
        echo ' in case 2 ';
    break;

    case 3:
        if (isset($var)) echo '($var is set)';
        echo ' in case 3 ';
    break;
}
// Result:  in case 1 ($var is set) in case 2

switch (1)
{
    case 1:
        $var = 'Test';
        echo ' in case 1 ';

    case 2:
        if (isset($var)) echo '($var is set)';
        echo ' in case 2 ';
    break;

    case 3:
        if (isset($var)) echo '($var is set)';
        echo ' in case 3 ';
    break;
}
// Result:  in case 1 ($var is set) in case 2

switch (1)
{
    case 1:
        $var = 'Test';
        echo ' in case 1 ';

    case 2:
    {
        if (isset($var)) echo '($var is set)';
        echo ' in case 2 ';
    }

    case 3:
        if (isset($var)) echo '($var is set)';
        echo ' in case 3 ';
    break;
}
// Result:  in case 1 ($var is set) in case 2 ($var is set) in case 3

در PHP، ظاهراً بودن یا نبودن اون گیومه ها {} هیچ تاثیری در روند اجرای برنامه نداره، بلکه این break هستش که تعیین کنندست... در حالی که در بیشتر زبانها (مثل java, pawn, c++ و...) می تونه حوزه/scope متغیر ها رو داخل هر case تعیین کنه.

توضیح رسمی C99 درباره دستور Switch:

CASE: Case statements are only 'labels'. This means the compiler will interpret this as a JUMP DIRECTLY to the label.
BREAK: A break statement terminates execution of the smallest enclosing switch or iteration statement.

البته این یه نکته ریزه که هنوز خیلی از برنامه نویس ها ازش مطلع نیستن!
من هم بعد از 1-2 ساعت تحقیق متوجه این موضوع شدم، چراکه مستندات خودشون هم به این نکته اشاره نکردن. (تا جایی که گشتم)

۰ نظر ۹۴/۱۲/۱۸
یوشا آل ایوب

اینها چیزی نیستند جز software bundle! که توسط شرکت ها و گروه های نرم افزاری برای یک هدف جمع آوری شدن. و اون هم فراهم کردن بستری سریع و آسون برای برنامه نویسی.

مفهوم ساده Software bundle یعنی تعدادی نرم افزار مستقل  که در یک پکیج گردآوری شدن و توسط یک برنامه واحد مدیریت میشن.


۱ نظر ۹۴/۱۱/۲۱
یوشا آل ایوب

6 تصویر wallpaper قشنگ برای لینوکس Slackware:
 

                    

۱ نظر ۹۴/۱۰/۱۸
یوشا آل ایوب

چند وقت پیش یکی از اعضای انجمن IranPHP از من سوالی درباره "دلیل شکست پروژه سیستم عامل ملی" کرد، منم اینطور پاسخ دادم:

 

اول اینکه در ایران، پروژه "سیستم عامل ملی" و امثالش چیزی شبیه برنامه "حمایت از تولید داخلی/ملی" می مونن. (همین الانم به هر کی بگیم "حمایت از تولید داخلی/ملی" اینا میاد توی ذهنش: چیشـــ برو بابا، LOL، خوش باشی و...)

چون همه ما میدونیم متاسفانه حمایت و نیروی متخصص واقعی که در خدمت اینجور پروژه ها و برنامه ها باشن در ایران وجود نداره!
آخه کی حاضره محصولات و تولیدات نسبتاً مرغوب، با کیفیت، نسبتاً استاندارد و تست شده خارجی رو ول کنه و بچسبه به تولیدات بومی؟


کی حاضره پروژه های خارجی رو با طرح ریزی و برنامه ریزی های خوب، با هدفی مشخص، پیش بینی ریسک ها، پشتیبانی قوی و... رو ول کنه و بچسبه به پروژه های داخلی؟


کدوم شرکت/ارگان خصوصی و مردمی حاضرن برای حمایت و توسعه اینجور پروژه ها خسارت پرداخت کنن و ضربه بخورن و دولت هم پشتیبانشون باشه؟
فقط میشد امیدوار بود که سازمانهای دولتی رو اجبار به استفاده از اینجور پروژه ها کرد و نه چیز دیگه! lol

 

واقاً چرا شکست می خورن؟
طرح ریزی ضعیف، اهداف و مقاصد غیرشفاف و نامشخص (کمی هم سیاسی)، پیش‌بینی غلط زمان و هزینه های مادی/معنوی پروژه، کمبود پشتیبانی و عدم درگیر کردن مصرف کنندگان در پروژه، مدیران دزد و نالایق! کم تجربه بودن تیم پروژه، کمبود تست و تضمینی برای کیفیت، مقاومت‌ کاربران و سازمان‌ها در پذیرش این پروژه و...

 

اینطور نیست؟

۹۴/۰۶/۲۱
یوشا آل ایوب