یوشا آل ایوب

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

یوشا آل ایوب

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

یوشا آل ایوب

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

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

این تصویر رو درست کردم تا روند(internals) کامپایل، تولید و اجرای برنامه های جاوا رو نشون بده:
 

[تصویر:  java-execution-process.png]


یکی از کاملترین و واضح ترین چارت های نوع خودشه heart

نکته اینکه درمورد جاوای داخل اندروید روال به همین شکله منتها از Java bytecode به بعد:
1- توسط ابزار DEx Compiler اندروید، بایت کدها به Dalvik bytecode تبدیل میشن.
2- بجای پکیج JRE، اندروید از DVM/ART استفاده میکنه و همینجا هم اپلیکشن رو اجرا میکنه.

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

خدابیامرز معمار انقلاب اسلامی:

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

 

ظاهراً در PHP (در ویندوز) هرچیزی بعد از دستور exit بصورت ناقص(!) پردازش میشه ولی بصورت کامل حافظه مورد نیازش رو allocate میکنه...

 

خروجی یک صفحه ساده:

<?php

echo memory_get_usage();

// 217992

 

خروجی یک صفحه متغیر دار ولی exit شده:

<?php

echo memory_get_usage();

// 220552

exit; // <---------- !!

$simpleVar = 'abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabbcdabc​dabcdabcdabcdabcdabcd';
$simpleVar .= '​abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabbcdabc​dabcdabcdabcdabcdabcd';
$simpleVar .= '​abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabbcdabc​dabcdabcdabcdabcdabcd';
$simpleVar .= '​abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabbcdabc​dabcdabcdabcdabcdabcd';
$simpleVar .= '​abcdabcdabcdabcdabcdabcdabcdabcdabcdabcdabbcdabc​dabcdabcdabcdabcdabcd';
echo $simpleVar; 

enlightened

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

من خودم رای باطله انداختم، اما:

 

 

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

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

اول اینکه بیشتر Coding-style های موجود در اینترنت بروزرسانی نمیشن یا برای ویرایشگرها و مانیتورهای قدیمی طراحی شدن... یا حتی ناقصن! دوم اینکه چقدر خوب بود اگر مرجع رسمی براشون وجود داشت تا یک الگو، الگوی همگان میشد. نه اینکه هر شرکت و تیمی برای خودش یه سبک رو طراحی و تعیین کنه و اسمشو بذاره قرارداد/convention رسمی!

فکر کنید برنامه نویسایی که با دو یا چند زبان مختلف برنامه نویسی میکنن، برحسب عادت چقدر براشون سخته که از قوائد مختلف پیروی کنن...

Tab:

  • سایزش در هر ویرایشگر و کامپیوتری متفاوته. (در یکی به اندازه 3 فاصله، در دیگری 4 در دیگری 5 و...)
  • میشه گفت Dynamic هستش و سایزش براحتی با تنظیم کردن سیستم/ویرایشگر قابل تبدیله.
  • در بعضی از پرینترها نادیده گرفته میشه، درنتیجه قالب کدها بهم میریزه.
  • Tab با سایز 3، یک کاراکتره.
  • معمولاً حذف و اضافه کردن Tab زمان کمتری صرف میکنه.
  • فلسفه وجود Tab برای tabulation/جدول بندی و پرش هستش.
  • در صفحات استاتیک وب، Tab پرفورمنس (جزیی) بالاتری در Load شدن داره. 
  • برای indentation کردن کلیدکمتری لازمه تا فشار داده بشه. (مگر ویرایشگرهای حرفه ای)
  • در بعضی از ویرایشگرهای تحت وب هنگام copy/paste نادیده گرفته میشه.
  • همتراز/Alignment کردن توسط Tab بهتر انجام میشه.

Space:

  • اندازش در همه ویرایشگرها و کامپیوتر ها ثابته.
  • میشه گفت Static هستش و معمولاً سایزش توسط تنظیمات قابل تبدیل نیست. (مگر ویرایشگرهای حرفه ای)
  • در همه پرینترها اعمال میشه، پس قالب کدها بهم نمیریزه.
  • Space با سایز 3، 3 کاراکتره.
  • معمولاً حذف و اضافه کردن Space زمان بیشتری صرف میکنه.
  • فلسفه وجود Space برای قراردادن فضای خالی هستش.
  • در صفحات استاتیک وب، Space پرفورمنس (جزیی) پایینتری در Load شدن داره. 
  • در هیچ کدوم از ویرایشکرهای تحت وب هنگام copy/paste نادیده گرفته نمیشه.
  • برای indentation کردن کلید بیشتری لازمه تا فشار داده بشه. (مگر ویرایشگرهای حرفه ای)
  • همتراز/Alignment کردن توسط Space سخت تر انجام میشه.

پیشنهاد من: یک TAB یا سه SPACE.

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

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

 

1- فراموش نکنید که مقدار صفت android:updatePeriodMillis در تگ <appwidget-provider فایل xml/widget_info.xml بیانگر تایمری هست که کالبک onUpdate کلاس ویدجت صدا زده میشه.

 

2- در metadata ویدجت، مقدار صفت android:minHeight و android:minWidth تعیین کننده حداقل اندازه ویدجت هستش که باید 72dp (یعنی 1x1) باشه. ولی صفت android:layout_width و android:layout_height در layout ویدجت، تعیین کننده اندازه کنونی ویدجت هستش.

 

3- از انجایی که List متدی برای اضافه کردن عنصر نداره و سایزش هم ثابت هست، برای تبدیل Array به ArrayList باید به این روش عمل کنید:

ArrayList<String> _arrayList = new ArrayList<String>(Arrays.asList(myArray));

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

به نقل از روحانی "سید مهدی صدر ساداتی":

 

دوستی گفت: من از تازی(عرب) بدم میاد!! ما از نسل کوروشیم، منشور کوروش را خوانده ای؟

گفتم: کوروش آدم خوبی بوده؟

گفت: بله

گفتم: کوروش بین افراد جامعه تبعیض نژادی قائل میشد؟

کمی مکث کرد و چاره ای ندا که بگوید: نه

گفتم: پس تو چرا اینطور شدی؟

 

همانا ای مردم، ما شمارا از یک زن و مرد آفریدیم و شما را تیره های بزرگ و کوچک قرار دادیم تا یکدیگر را بشناسید [نه اینکه به یکدیگر فخر بفروشید] و گرامی ترین شما با تقواترین شماست، که خداوند دانا و با خبر است. حجرات/13
۴ نظر ۹۵/۱۲/۱۴
یوشا آل ایوب

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

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

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

 

1- برای حذف شدن notification هنگام کرش برنامه یا ویدجت، همیشه از یک ID ثابت برای Notification استفاده کنید.

 

2- مقدار صفت android:targetSdkVersion در تگ uses-sdk فایل AndroidManifest.xml، به دستگاه با نسخه مشابه SDK فرمان میده که سیستم compability رو غیرفعال کنه. بنابراین سرعت پردازش برنامه افزایش و کارایی برنامه بهبود پیدا می کنه.

۳ نظر ۹۵/۱۰/۲۳
یوشا آل ایوب
  • Version چیست

Version یا همون نسخه، مشخصه ای برای دسته بندی وضعیت محصول منتشر شده و [مختصر] شرحی از تغییرات انجام گرفته هستش.

به این معنی که Version یک محصول، بیانگر حال و روز کنونی و مقدار بهبود یافتگی اون محصول هستش... یا حتی آینده ای که در انتظارشه!

مشخصه Version می تونه بصورت عدد، کلمه و تاریخ باشه; یا حتی هر سه:

Major.Minor.Revision/Patch[-/.Build] [ReleaseState] [Architecture[Date] [Time]

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