یوشا

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

یوشا

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

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

طبقه بندی موضوعی

۱۱۷ مطلب با موضوع «نرم افزار» ثبت شده است

۰۷
۱۳۹۳/۰۱

این کدهای مخفی اندروید (معروف به USSD Codes یا Android Secret Codes) دستوراتی هستند که به کاربران اجازه می‌ دهند به منوهای مخفی، تست‌ های سخت‌افزاری و تنظیمات سیستمی گوشی دسترسی پیدا کنند. این کدها معمولاً توسط توسعه‌ دهندگان و تعمیرکار ها استفاده می‌ شوند، اما برخی از آن‌ ها برای کاربران عادی هم مفید هستند.

 

تأثیرات متفاوت

برخی کدها فقط اطلاعات نمایش می‌ دهند (مثل *#*#4636#*#* برای جزئیات باتری).

برخی دیگر تنظیمات را تغییر می‌ دهند (مثل *#*#7594#*#* برای رفتار دکمه پاور).

!! تعدادی از آن‌ ها داده‌ ها را پاک می کنند یا Reset factory انجام می‌ دهند (مثل *2767*3855# که تمام داده‌ ها را حذف می‌کند!).

بنابر این احتیاط ضروری است.

 

برای استفاده از این کدها برنامه "Contact" گوشی رو باز کنید و کد رو بدقت وارد کنید:

 

کد توضیحات
*#*#4636#*#* Display information about Phone, Battery and Usage statistics
*#*#7780#*#* Restting your phone to factory state-Only deletes application data and applications
*2767*3855# It’s a complete wiping of your mobile also it reinstalls the phones firmware
*#*#34971539#*#* Shows completes information about the camera
*#*#7594#*#* Changing the power button behavior-Enables direct poweroff once the code enabled
*#*#273283*255*663282*#*#* For a quick backup to all your media files
*#*#197328640#*#* Enabling test mode for service activity
*#*#232339#*#* OR *#*#526#*#* Wireless Lan Tests
*#*#232338#*#* Displays Wi-Fi Mac-address
*#*#1472365#*#* For a quick GPS test
*#*#1575#*#* A Different type GPS test
*#*#0283#*#* Packet Loopback test
*#*#0*#*#* LCD display test
*#*#0673#*#* OR *#*#0289#*#* Audio test
*#*#0842#*#* Vibration and Backlight test
*#*#2663#*#* Displays touch-screen version
*#*#2664#*#* Touch-Screen test
*#*#0588#*#* Proximity sensor test
*#*#3264#*#* Ram version
*#*#232331#*#* Bluetooth test
*#*#7262626#*#* Field test
*#*#232337#*# Displays bluetooth device address
*#*#8255#*#* For Google Talk service monitoring
*#*#4986*2650468#*#* PDA, Phone, Hardware, RF Call Date firmware info
*#*#1234#*#* PDA and Phone firmware info
*#*#1111#*#* FTA Software version
*#*#2222#*#* FTA Hardware verion
*#*#44336#*#* Displays Build time and change list number
*#06# Displsys IMEI number
*#*#8351#*#* Enables voice dialing logging mode
*#*#8350#*#* Disables voice dialing logging mode
##778 (+call) Brings up Epst menu
  • یوشا آل ایوب
۱۸
۱۳۹۲/۱۲

 

پایگاه داده MySQL بدلیل کارایی(performance) بسیار بالایی که داره قادره از انواع(type) مختلف Engine پشتیبانی کنه که هر کدوم برای کاربرد های خاصی طراحی شدن... در ادامه به بررسی کلی انواع این موتورها میپردازیم:

  • نوع MyISAM
  • نوع InnoDb
  • نوع Memory
  • نوع Archive
  • نوع BerkeleyDb
  • نوع Example
  • نوع Merge

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

 

نکاتی راجب error_reporting و set_error_handler و register_shutdown_function:

 

  • دستور error_reporting

برخلاف تصور خیلی ها که فکر می کنند این دستور خطاها رو "نمایش" میده، این دستور موتور دریافت خطاها هستش. (نه حتی Log کردن خطا)

  • دستور set_error_handler

میشه گفت دستوری برای ثبت تابع customize کننده رفتار خطا هستش (مثلاً برای کادر بندی متون خطا، ایمیل کردن خطا، دادن راه حل به کاربر و...)

  • دستور register_shutdown_function

دستوری برای ثبت تابع callback هستش که هنگام متوقف شدن و پایان یافتن پردازش اسکریپت، اون تابع callback اجرا بشه (همچنین زمانی که exit / die صدا زده میشه)
اصول نامگذاری: onScriptShutdown یا onScriptEnd یا onShutdown....
نکته: توسط این دستور میشه خطاهای نوع E_ERROR , E_PARSE , E_CORE_ERROR , E_COMPILE_ERROR رو هم جذب کرد

 

 

  • دستور ini_set('display_errors', TRUE);

دستوری برای نمایش خطا هستش. اگر دستور error_reporting خاموش باشه این دستور هم کار نمی کنه. اگر دستور error_reporting روشن باشه ولی این دستور false باشه، اسکریپت کماکان خطاها رو دریافت می کنه اما نمایش نمیده.

  • دستور ini_set('log_errors', TRUE);

دستوری برای ذخیره خطا در فایل هستش. اگر دستور error_reporting خاموش باشه این دستور هم کار نمی کنه. اگر دستور error_reporting روشن باشه ولی این دستور false باشه، اسکریپت کماکان خطاها رو دریافت می کنه اما ذخیره نمی کنه.

 

بنابراین برای محیط development همگی باید فعال و true باشن و برای محیط production(سرور واقعی یا تحویل به مشتری) همه باید فعال و true باشن بجز دستور display_errors!

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

 

 

نرم افزار Git (گیت) ویندوز دو نوع برنامه داره، یکی Git-BASh و دیگری Git-GUI.

Git-BASh: شبیه محیط Terminal/DOS یا سیاه و سفید هستش که همه فعالیت ها داخلش بکمک دستورات متنی توسط کاربر انجام میشن و معمولاً بر روی نرم افزار BASh یا Command Prompt و نرم افزار OpenSSh/PuTTY سوار هستش.


Git-GUI: شبیه محیط گرافیکی(فرم دار) هستش که همه فعالیت ها داخلش بکمک عناصر گرافیکی(Button, menu, textbox) انجام میشه. ولی در پشت پرده با نرم افزارهایی مثل PERL, OpenSSh/PuTTY, MinGW, BASh, TCL و غیره... در تعامل هستش.

 

فهرست مندرجات:

  • دانلود برنامه Git
  • نصب برنامه Git
  • تنظیم برنامه Git
  • ساخت SSh-Key
    • توسط برنامه PuTTY یا OpenSSh
    • توسط برنامه Git-GUI
  • آپلود SSh-key

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

 

سرعت بیشتر با تابع StrToLower:

0.000250101089478
0.000252008438110
0.000259160995483
0.000259160995483
0.000261068344116
0.000263929367065
0.000263929367065
0.000265121459961
0.000269174575806
0.000270128250122

سرعت کمتر با StrIStr:

0.000537157058716
0.000538110733032
0.000538110733032
0.000538110733032
0.000540018081665
0.000542163848877
0.000542163848877
0.000543117523193
0.000550985336304
0.000910043716431

در مواردی مثل:

if (strtolower(&$_SERVER['HTTPS']) == 'on' || @$_SERVER['HTTPS'] == 1 || @$_SERVER['SERVER_PORT'] == 443): return(true);
endif;
و
if (stristr(&$_SERVER['HTTPS']) == 'on' || @$_SERVER['HTTPS'] == 1 || @$_SERVER['SERVER_PORT'] == 443): return(true);
endif;

 

x64 Hardware
32bit OS
PHP 5.4 CLI

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

اصطلاح عبارت(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 طراحی کردم... دوسش دارید؟

 

لینک دانلود.

  • یوشا آل ایوب