یوشا

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

یوشا

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

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

طبقه بندی موضوعی
۰۳
۱۳۹۲/۰۷

اصطلاح عبارت(Expression) و دستور(Statement) ممکنه که به ظاهر یکی بنظر بیان، اما اشتباه نکنید! اینها تفاوت های اساسی و مهمی دارن.

 

- عبارت یک مقدار را تولید می کند ولی دستور عملی را تکمیل می کند. (یا اثراتی ببار می آورد)
- عبارت میتواند ساده یا مرکب باشد. ولی دستور فقط سادست.
- عبارت شامل چندین قسمت می باشد(عملگر، عملوند علائم نقطه گذاری). ولی دستور شامل یک قسمت هست(یک کلمه لاتین).
- و اینکه عبارت شامل اجزایی هست که دستورات، عملگرها، عملوند ها، متغیر ها، ثوابت و... از آن ساخته می شود. ولی دستور از یک جزو ساخته می شود.

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

 

چند نمونه از توابعی که در php.ini بهتره Disable بشن:

apache_child_terminate,
apache_reset_timeout,
unregister_tick_function,
rpc,
exec,
dl,
show_source,
apache_note,
apache_setenv,
closelog,
debugger_off,
debugger_on,
define_syslog_variables,
escapeshellarg,
escapeshellcmd,
ini_restore,
openlog,
passthru,
pclose,
pcntl_exec,
popen,
proc_close,
proc_get_status,
proc_nice,
proc_open,
proc_terminate,
shell_exec,
syslog,
system,
url_exec

 

نکته: این توابع باید در قسمت disable_functions در فایل php.ini قرار بگیرن.

توجه: در سیستم های local اگر از برنامه Composer یا pickle استفاده می کنید نباید توابع escapeshellarg, exec, passthru رو غیرفعال کنید. اگر از برنامه PHPMD استفاده می کنید نباید تابع proc_open و ini_restore رو غیرفعال کنید. و اگر از برنامه PHPCS استفاده می کنید نباید تابع proc_get_status و proc_close رو غیرفعال کنید.

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

/**
 * A hack to support __construct() on PHP 4
 * Hint: descendant classes have no PHP4 class_name() constructors,
 * so this constructor gets called first and calls the top-layer __construct()
 * which (if present) should call parent::__construct()
 *
 * @return Object
 */
function object()
{
    $arguments = func_get_args();

    if (method_exists($this, '__destruct')) register_shutdown_function(array(&$this, '__destruct'));

    call_user_func_array(array(&$this, '__construct'), $arguments);
}

https://github.com/felixge/raleigh-workshop-08/blob/master/application/cake/libs/object.php

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

 

مقایسه سرعت بین توابع is_array / is_string / is_integer... در مقابل تابع getype

سرعت بیشتر:

$variable = array(1, 2, 3, 4, 5);

if (is_array($variable))
{
    # ...
}

0.00079393386840820
0.00079488754272461
0.00080204010009766
0.00080204010009766
0.00080204010009766
0.00080204010009766
0.00081205368041992
0.00093293190002441
0.00111198425292970
0.00123190879821780

سرعت کمتر:

$variable = array(1, 2, 3, 4, 5);

if (gettype($variable) == 'array')
{
    # ...
}

0.0013110637664795
0.0013110637664795
0.0013139247894287
0.0013139247894287
0.0013179779052734
0.0013198852539062
0.0013239383697510
0.0013329982757568
0.0014750957489014
0.0018458366394043

 

x64 Hardware
32bit OS
PHP 5.4 CLI

  • یوشا آل ایوب
۲۹
۱۳۹۲/۰۳

 

این پس زمینه رو برای لینوکس Slackware طراحی کردم... دوسش دارید؟

 

لینک دانلود.

  • یوشا آل ایوب
۲۰
۱۳۹۲/۰۲

قدیمیترین توزیع لینوکسی که کماکان زنده است:

 

Slackware یکی از قدیمیترین و معتبرترین توزیع‌ های لینوکس است که همچنان به صورت فعال توسعه می‌یابد. این توزیع در سال 1993 توسط پاتریک فولکردینگ (Patrick Volkerding) ایجاد شد و به دلیل سادگی، پایداری و وفاداری به فلسفه یونیکس/لینوکس مشهور است.

Slackware یک توزیع تاریخی و محبوب برای علاقه‌ مندان به لینوکس سنتی است که ارزش‌ های سادگی و کنترل manual را حفظ کرده است. اگرچه برای کاربران عادی توصیه نمی‌ شود، اما برای یادگیری عمیق لینوکس و سیستم‌ های قدیمی گزینه‌ای عالی است.

 

وبسایت: www.Slackware.com

سازنده: پتریک وولکردینگ

دانلود: http://mirrors.slackware.com/slackware/slackware-iso یا ftp://ftp.slackware.com/pub/slackware-iso

لیست خبرنامه: majordomo@slackware.com

مستندات: docs.slackware.com

انجمن سوال/جواب: http://linuxquestions.org/questions/f14

تاریخ اولین انتشار: 1993/1372

مناسب برای: Desktop و Server

پروانه: گنو جی پی ال

معماری سخت افزاری: arm, i486, s390, x86_64

محیط های دسکتاپ: Blackbox, Fluxbox, FVWM, KDE, WMaker, Xfce

مدیر بسته: slackpkg

زبان: همه زبانها

نصاب: text UI

مجموعه آفیس: Calligra

سیستم فایل: Ext2, Ext3, Ext4, JFS, ReiserFS, BTRFS, XFS

  • یوشا آل ایوب
۱۱
۱۳۹۲/۰۲

 

۱. دبیان اولین توزیع لینوکس است!؟

پاسخ به این سؤال افتخاری که هر Slacker اون رو با غرور تمام به شما خواهد داد و قطعاً به ادعای شما درباره دبیان خواهد خندید. واقعیت امر بدین شرح که قبل از اینکه ایان مورداک دست به کار Debian و عرضه ی اون بزنه Slackware مدتی از زمان تولید و عرضه خودش رو پشت سر گذاشته بود. Slackware نزدیک به یک ماه قبل از تاریخ عرضه خودش حتی آماده بوده اما پاتریک به دلیل نگاه به عکس‌العمل پتر مکدونالد دست نگه داشت. Slackware در ۱۷ جولای ۹۳ به عنوان یک انشقاق کامل از لینوکس پتر مکدونالد در اختیار علاقه‌مندان قرار داده شده بود و حتی در چهارم آگوست اولین اپگرید رو هم پشت سر گذاشت بود، وقتی که Debian در ۱۶ آکوست برای اولین بار منتشر شد. lol

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

 

1- هرگز فایل های PHP ضمیمه شده رو با پسوند inc. ذخیره نکنید. یعنی name.class.inc رو به name.class.php تغییر بدید. و یا از .HTAccess یا HT برای تعیین سطح دسترسی inc. استفاده کنید.

با اینکار از دسترسی مستقیم و خوندن محتوای فایل توسط URL/Address bar جلوگیری می کنید.

 

2- حتاًالمکان تگ های اضافی و فضاهای خالی رو حذف و از باز و بسته کردن بیش از حد تگهای <?php ?> سرور خودداری کنید. (مخصوصاً در پروژه های سنگین)

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

 

3-  کلاس را با متد __construct یا نام کلاس شروع کنید و با متد __destruct پایان بدید. اگر هم از ارث بری کلاس استفاده نمی کنید، کلاس و متدها رو با کلمه کلیدی final آغاز کنید.

  • یوشا آل ایوب
۰۱
۱۳۹۱/۱۲

یکسری تصاویر و Wallpaper های گرافیکی برای لینوکس Slackware طراحی کردم (با فتوشاپ)، گفتم اینجا هم بزارم تا بقیه فیض ببرن

(بعضی هاشونو از طرح های موجود در اینترنت الگو گرفتم)

 

             

 

           

 

           

 

 

(برای بزرگنمایی کلیک کنید)

  • یوشا آل ایوب
۱۹
۱۳۹۱/۱۱

مقایسه سرعت بین متغیر عدد و متغیر رشته عدد...
برای افرادی که اعداد رو هم داخل ' یا " قرار میدن!

 

صحیح:
سرعت بیشتر در استفاده و تعریف متغیر عدد:

$intTest = 1234567890;
$dblTest = 123.45;

0.000204086303711
0.000205993652344
0.000207185745239
0.000207185745239
0.000208139419556
0.000208139419556
0.000210046768188
0.000285148620605
0.000363111495972
0.000482082366943

غلط:
سرعت کمتر در استفاده و تعریف متغیر رشته عدد:

$strInteger = '1234567890';
$strDouble = "123.45";

0.000639200210571
0.000640153884888
0.000641107559204
0.000646114349365
0.000653028488159
0.000655174255371
0.000657081604004
0.000658988952637
0.000684976577759
0.000693798065186

 

x64 Hardware
32bit OS
PHP 5.4 CLI

  • یوشا آل ایوب