در ادامه مقاله قبلیم که شماره شش "نکات و اصول مهم در برنامه نویسی Java/Android" بود، در این مقاله شماره هفت همین موضوع رو ارائه میدم.
1- تفاوت HashMap
و HashTable
:
کلاس HashMap
از نوع synchronize نیست پس thread-safe نیست. اما کلاس HashTable
از نوع synchronize هستش.
کلاس HashMap
بخاطر synchronize نبودن کمی سریعتر از HashTable
عمل میکنه.
کلاس HashMap
اجازه داشتن یک کلید null و چندین مقدار null رو داره، اما کلاس HashTable
همچین اجازه ای رو نداره.
کلاس HashMap
زیرکلاس AbstractMap
هستش، اما کلاس HashTable
زیرکلاس Dictionary
هستش.
کلاس HashTable
تقریباً منسوخ شده و باید از جایگزینش ConcurrentHashMap
استفاده بشه.
و.
در بیشتر موارد کلاس HashMap
استفاده میشه، درصورتی که synchronization در اولویت نباشه.
در ادامه مقاله قبلیم که شماره دو "نکات و اصول مهم در برنامه نویسی PHP" بود، در این مقاله شماره سه همین موضوع رو ارائه میدم.
1- جهت پشتیبانی از ارث بری چندگانه در PHP میتونید توسط trait
ها اون رو شبیه سازی کنید.
trait PHP { public function printPHP() { echo 'PHP '; } } trait Java { public function printJava() { echo 'Java '; } } trait PHPJava { use PHP, Java; } class ProgrammingLanguages { use PHPJava; }
2- اگر در حین کار با Composer یا PHPUnit با خطای module openssl is already installed on Unknown in line 0 مواجه شدید، کافیه اکستنشن openssl رو در PHP.ini غیرفعال کنید:
ویندوز ;extension=php_openssl.dll لینوکس ;extension=php_openssl.soادامه مطلب
در ادامه مقاله قبلیم که شماره پنج "نکات و اصول مهم در برنامه نویسی Java/Android" بود، در این مقاله شماره شش همین موضوع رو ارائه میدم.
1- بهتره همیشه شماتیک :file رو در کلاس WebView
رو مسدود کنید.
کلاس WebView
قابلیت نمایش صفحات وب در داخل اکتیویتی رو فراهم میکنه، و از اونجایی که دیگر برنامه ها قادرن Intent URI به WebView
ایجاد شده بفرستن، پس این امکان رو هم دارن تا بتونن فایل یا آدرس URI آلوده رو در دستگاه بارگذاری کنن.
راه حل:
String _intentUrl = getIntent().getStringExtra("http://blog.ir"); if (!_intentUrl.startsWith("file:")) { loadUrl = _intentUrl; }
2- از انجایی که همه برنامه ها قادرن محتوای logcat
رو read کنن، هرگز اطلاعات حساس رو برای دیباگ Log
نکنید، مخصوصاً درخواستها و پاسخهای HTTP رو.
3- اگر در حین بازکردن برنامه Eclipse با خطای Java was started but returned exit code 13 مواجه شدید، این یعنی مثلاً Java 64bit نصب کردید، درصورتی که Eclipse تون 32bit هستش. یا Java 32bit نصب کردید، درصورتی که Eclipse تون 64bit هستش.
بنابراین باید معماری هردو یکی باشه. مثلاًً هردو 32bit یا هردو 64bit باشن.
نکته: در صورت حل نشدن مشکل با نصب معماری مناسب، فایل eclipse.ini رو که در کنار فایل اجرایی Eclipse تون هست رو باز کنید و بدنبال واژه –vm بگردید. بعد در زیر این واژه مسیر نصب شده Java رو جایگزینش کنید.
و یا برنامه Eclipse رو باز کنید و به مسیر Menu -> Prefecences -> Java -> Installed JREs برید و مسیرنصب شده Java رو بهش بدید.
ادامه مطلبمکانیزم و شیوه کار پروتوکل HTTP رو کامل فرا بگیرید.
همیشه کتابخانه ها و فریم ورکهای استفاده شده در اپلیکیشن رو بروز نگه دارید!
جهت جلوگیری از click-jacking مقدار هدر X-Frame-Options
رو DENY
قرار بدید:
Apache httpd.conf: Header always append X-Frame-Options DENY Apache .htaccess: Header append X-FRAME-OPTIONS "DENY" Nginx: add_header X-Frame-Options "DENY"; PHP: header('X-Frame-Options: DENY');
بصورت هفتگی یا ماهیانه کل سایت رو توسط نرم افزارها و سایتهای اسکنر امنیتی چک کنید:
https://securityheaders.com
https://immuniweb.com/websec
https://detectify.com
http://amn.bayan.ir
https://ssllabs.com/ssltest/index.html
https://observatory.mozilla.org
http://isithacked.com
https://asafaweb.com
https://app.upguard.com/webscan
https://app.webinspector.com/online_scan
https://suip.biz/?act=sqlmap
https://pentest-tools.com/home
https://sitecheck.sucuri.net
https://quttera.com
https://siteguarding.com
https://observatory.mozilla.org
https://transparencyreport.google.com/safe-browsing/search
داده های ورودی توسط کاربر را بدقت بررسی، برش و فیلترسازی کنید!
برای اپلیکیشن، قابلیت debug mode درست کنید تا در مواقع وم بتونید فعالیت های اپلیکیشن رو مانیتور و خطازدایی کنید.
ادامه مطلببرای استفاده از این کدها برنامه "تماس" گوشی رو باز کنید و کد رو بدقت وارد کنید:
کد | توضیحات |
---|---|
*#*#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 |
بر اساس مستندات و آمارهای رسمی، نه توهمات و شنیده ها و برداشت های شخصی:
کشورهایی که بالاترین میزان خیانت به همسر در دنیا و دارن (2016)
تایلند، دانمارک، ایتالیا، آلمان، فرانسه، انگلیس.
کشورهایی که بالاترین میزان بی خانمان در دنیا رو دارن (2012 تا 2019)
آلمان، آمریکا، انگلیس، فرانسه، سوئد، کانادا.
کشورهایی که بالاترین میزان خودکشی در دنیا رو دارن (2016)
آمریکا، ژاپن، فرانسه، استرالیا، آلمان، انگلیس، ترکیه.
ادامه مطلب
مقایسه پرفورمنس(startup, rendering, event handling):
Windows FLTK > wxWidgets > GTK > Qt Linux FLTK > GTK > (wxWidgets / Qt)
نکته: در اینجا منظور از GTK نسخه GTKmm هستش که wrapper/مخصوص ++C هستش.
نکته 2: عناصر کتابخانه wxWidgets صددرصد native هست. اما عناصر کتابخانه FLTK و Qt و GTK فقط "شبیه" به native هستن. که برای این شبیه سازی از CSS و API های theming سیستم استفاده می کنن.
این توضیحات رو هم در نظر بگیرید:
- کتابخانه FLTK از نظر استایل بهترین گزینه برای لینوکس با محیط EDE هستش. از نظر فضای دیسک، بسیار کم حجم هستش. پرفورمنس بالاتری نسبت به بقیه کتابخانه ها داره. استفاده ازش آسون هست. از بعضی دیگر زبانها هم پشتیبانی میکنه. در ویندوز برروی WinAPI، در لینوکس برروی X Window و در مک بر روی Quartz سوار هست. FLTK بعضی از widget های مدرن مثل Treeview رو نداره. بعضی از widget ها حالت RTL رو ندارن.
- کتابخانه wxWidgets از نظر استایل بهترین گزینه برای ویندوز و مک و لینوکس هستش. از نظر فضای دیسک، حجیم هستش. یادگیری و استفاده ازش کمی سخته. UI designer هم داره. از خیلی زبانها پشتیبانی میکنه. در لینوکس بر روی کتابخانه GTK قرار داره و در پشت پرده از API های GTK استفاده میکنه. wxWidgets فقط کتابخانه GUI نیست، یک فریم ورک محسوب میشه.
- کتابخانه GTK از نظر استایل بهترین گزینه برای لینوکس با محیط Cinnamon, GNOME, XFCE یا Mate هستش. یادگیری و استفاده ازش آسونه. UI designer هم داره. از خیلی زبانها پشتیبانی میکنه.
- کتابخانه Qt از نظر استایل بهترین گزینه برای لینوکس با محیط KDE, TDE یا LXQt هستش. از نظر فضای دیسک، حجیم هستش. یادگیری و استفاده ازش بواسطه Qt Creator آسونه. UI designer هم داره. از خیلی زبانها پشتیبانی میکنه. امکانات غیر استاندارد هم داره(meta-object). طیف گسترده تری از platform ها رو در بر گرفته. Qt فقط کتابخانه GUI نیست، یک فریم ورک محسوب میشه. برای پروژه های غیر opensource باید مجوز داشته باشید. از مدل برنامه نویسی reactive پشتیبانی می کنه. (به کمک شتابدهنده گرافیکی میشه بار سنگین رندر رو از روی پردازنده برداشت، بنابراین باعث افزایش پرفورمنس میشه)
درباره این سایت