یوشا آل ایوب

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

یوشا آل ایوب

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

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

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

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

 

بلخره بعد از مدت ها گنولینوکس Slackware نسخه 15 stable ترخیص شد!

 

  • تغییرات مهم

- Kernel 5.15.19 LTS

- Python 3.9 ,BASh 5.1, LLVM 13, GCC 11.2, PHP 7.4

- XFCE 4.16, KDE 5.23, X Server 1.20

- GRUB 2.0.6, OpenSSL 1.1.1m, BinUtils 2.37, GNU C lib 2.33

- تغییر درایورها

- پشتیبانی بهتر از اینترفیس NVMe و بسترهای نوع UEFI

- جایگزین شدن Elogind بجای ConsoleKit2

- اضافه شدن FFmpeg و Lame

- جایگزین شدن postfix بجای sendmail

- جایگزین شدن Dovecot بجای pop3d و imapd

- جایگزین شدن iproute2 بجای net-tools

- اضافه شدن Qt 5.15 و GTK4

- اضافه شدن تعدادی User/Group جدید

- حذف و اضافه شدن تعداد زیادی package

و بسیاری بهینه سازی و بروز رسانی های دیگه...

 

  •  وبسایت

http://www.slackware.com

 

  • دانلود

32bit

https://mirrors.slackware.com/slackware/slackware-iso/slackware-15.0-iso

https://ftp.osuosl.org/pub/slackware-iso/slackware-15.0-iso

64bit

https://mirrors.slackware.com/slackware/slackware-iso/slackware64-15.0-iso

https://ftp.osuosl.org/pub/slackware-iso/slackware64-15.0-iso

64bit live

https://slackware.nl/slackware/slackware-live/slackware64-15.0-live

 

  • مستندات

https://docs.slackware.com

۰۰/۱۱/۱۶
یوشا آل ایوب

نام توزیع

کشور سازنده

نوع پروانه

معماری

تاریخ بروزرسانی

وبسایت

Kali

(BackTrack)

سوئیس

رایگان/تجاری

Opensource/Binary

i686, x64

2021

kali.org

BlackArch

آمریکا

رایگان

Opensource/Binary

x64

2021

blackarch.org

Grml

استرالیا

رایگان

Opensource

i686, x64

2021

grml.org

Parrot OS

ایتالیا

رایگان

Opensource/Binary

x64

2021

parrotlinux.org

Pentoo

سوئیس

رایگان

Opensource

i686, x64

2020

pentoo.ch

CAINE

ایتالیا

رایگان

Opensource

x64

2021

caine-live.net

نام توزیع

کشور سازنده

نوع پروانه

معماری

تاریخ بروزرسانی

وبسایت

ForLEx

ایتالیا

رایگان

Opensource

x86

2019-10

forlex.it

PALADIN

آمریکا

 

تجاری

Opensource/Binary

x86, x64

?

sumuri.com

DEFT Linux

ایتالیا

رایگان

i686

2018-09

deftlinux.net

BackBox Linux

ایتالیا

رایگان

Opensource/Binary

x86, x64

2020

backbox.org

ALT Linux

روسیه

رایگان

Opensource/Binary

i586, x64

2021

en.altlinux.org

 

basealt.ru

radare2

?

رایگان

Opensource

x86

2021

rada.re/n/

ArchStrike

آمریکا

رایگان

Opensource

i686, x64

2021

archstrike.org

Santoku

?

رایگان

Opensource

x64

2014

santoku-linux.com

نام توزیع

کشور سازنده

نوع پروانه

معماری

تاریخ بروزرسانی

وبسایت

Bugtraq

اسپانیا

رایگان

x86, x64

2013

bugtraq-team.net

URIX OS

بلغارستان

رایگان

x64

2016-01

urix.us

SIFT

؟

؟

x64

2019

digital-forensics.sans.org

Cyborg Linux

هند

رایگان

Opensource

x86

2015

cyborg.ztrela.com

Security Onion

آمریکا

رایگان

Opensource/Binary

x86

2021

securityonion.net

ADIA

?

رایگان

Opensource

x64

2017

forensics.cert.org

NST

آمریکا

رایگان

 Opensource

x64

2021

networksecuritytoolkit.org

Tsurugi Linux

Japan

رایگان

Opensource

x64

2021

https://tsurugi-linux.org


 

دانلود فایل PDF

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

مسئله Thread و Process دو موضوع نزدیک به هم ولی متفاوت هستن...

 

1- Process مستقل هستش، ولی Thread ها بخشی از یک Process هستن. (یعنی یک Process میتونه چندین Thread بوجود بیاره)
2- هر Process حافظه اختصاصی خودش رو داره، ولی Thread ها از حافظه اشغال شده Process استفاده می کنن. (یعنی هر Process حافظه خودش رو با Thread های خودش به اشتراک میذاره)
3- هر Process شامل یک برنامه و PID انحصاری هستش، ولی هر Thread شامل مجموعه ای از دستورالعمل ها و Stack انحصاری هستش.
4- هر Process درواقع یک Task هستش، ولی هر Thread یک Light wight process هستش.
5- Process ها توسط IPC (یا همون Inter-process communication) با یکدیگر ارتباط برقرار می کنن، ولی Thread ها توسط دستورات برنامه نویسی (در زبان PHP و Java توسط wait, notify و در زبان C توسط pthread_cond_wait, pthread_cond_signal) با یکدیگر ارتباط برقرار می کنن.
6- ساخت Process به سختی توسط duplicate کردن Process والد انجام میشه، ولی ساخت Thread براحتی توسط کپی شی Thread انجام میشه.
7- برای اجرای چند Process بطور موازی/parallel به یک سیستم Multi-Process نیاز هست، ولی برای اجرای چند Thread بطور همزمان به دستورات برنامه نویسی نیاز هست.
8- بطور کلی Process توسط CPU کنترل میشه، ولی Thread توسط Process کنترل میشه.
9- هر Process یک Thread main داره، ولی هر Thread فقط خودشه که کارگر/worker صدا زده میشه.
10- Process در فضای separate memory اجرا میشه، ولی Thread در فضای Shared memory اجرا میشه.
و...

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

- برآورد مشکلات سیستم

- بررسی کلی سخت افزار

- بررسی کلی نرم افزار

 

سخت افزار

- پاکسازی داخل سیستم و مادربورد

- سرویس CPU و فن CPU

- سرویس Power supply و فن Power supply

- پاکسازی موس، کیبورد و مانیتور

- تهیه باطری جدید برای CMOS/BIOS

- پاکسازی سوکت ها و پورت های سیستم

[- قطع و غیرفعال کردن مودم Dialup]

[- قطع و غیرفعال کردن درایو Floppy]

- تعویض کابلهای کهنه/آسیب دیده

- ریست و تنظیم مجدد مانیتور

- بررسی کابلهای داخل و بیرون سیستم

 

نرم افزار

- بک آپ گیری از اطلاعات!

- آپدیت Firmware مادربورد(BIOS EEPROM)

- ریست و تنظیم مجدد BIOS/CMOS

- فرمت عمقی(low-level) پارتیشن ها یا کل دیسک

- نصب مجدد سیستم عامل

- تنظیم سیستم عامل

[- ریستارت سیستم عامل بعد از انجام تنظیمات]

- تنظیم تاریخ و ساعت سیستم

- نصب نرم افزارهای کتابخانه ای/Runtime

- دانلود [و رایت] و نصب Driver ها

- حذف نرم افزارهای بلااستفاده و مزاحم

- پاکسازی فایلها و پوشه های اضافی و temp

[- بهینه سازی و تنظیم رجیستری]

- نصب و بروزرسانی نرم افزارهای کاربردی

- نصب ضدبدافزار سبک و قدرتمند

- بروزرسانی ضدبدافزار

- اسکن کل پارتیشن ها توسط ضدبدافزار

- بهینه سازی تنظیم سرویس ها

- Defrag/Optimize پارتیشن ها(بجز SSD ها!)

- پاکسازی و تنظیم startup سیستم عامل

- پاکسازی system restore point ها

 

شبکه

- پاکسازی کش DNS و ریست Socket سیستم

- آپدیت Firmware مودم ADSL/DSL

- تنظیم subnet mask مودم به 255.255.255.128 یا بالاتر

- تنظیم Subnet prefix مودم به 25

- تنظیم Security protocol مودم به WPA2 یا WPA3

- خاموش کردن قابلیت WPS مودم ADSL/DSL

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

 

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

1- تفاوت HashMap و HashTable:

 

کلاس HashMap از نوع synchronize نیست پس thread-safe نیست. اما کلاس HashTable از نوع synchronize هستش.
کلاس HashMap بخاطر synchronize نبودن کمی سریعتر از HashTable عمل میکنه.
کلاس HashMap اجازه داشتن یک کلید null و چندین مقدار null رو داره، اما کلاس HashTable همچین اجازه ای رو نداره.
کلاس HashMap زیرکلاس AbstractMap هستش، اما کلاس HashTable زیرکلاس Dictionary هستش.
کلاس HashTable تقریباً منسوخ شده و باید از جایگزینش ConcurrentHashMap استفاده بشه.
و...

در بیشتر موارد کلاس HashMap استفاده میشه، درصورتی که synchronization در اولویت نباشه.

 

2- برای حل مشکل ValueError: unsupported pickle protocol در لینوکس کافیه فایل .repopickle_.gitconfig در Android SDK رو پیدا و حذف کنید.

 

3- اصول طراحی کلاس:

- همیشه داده ها و فیلدها رو private نگهدارید و از اصول encapsulation پیروی کنید.

- همیشه فیلدها رو initialize کنید.

- هرکلاس رو به یک نوع/دسته از داده اختصاص بدید.

- کلاسهای چند منظوره با چند مسئولیت طراحی نکنید، بلکه آنها را تجزیه و جداسازی کنید.

- بی دلیل برای همه فیلدها و داده ها accessor و mutator طراحی نکنید. (set/get)

- همیشه بهترین و مناسبترین نام رو برای کلاس و متد تعیین کنید تا هدف رو بخوبی انعکاس بدهند.

- حتاالمکان کلاسها رو immutable (غیرقابل تغییر) طراحی کنید.

- بجای استفاده مکرر تودرتو if/else switch foreach از interface یا کلاس abstract استفاده کنید.

- حتاالمکان کلاس رو static طراحی نکنید. (بخاطر global state و مشکلات unit testing)

- از نوشتن متدهای طولانی و سنگین خودداری کنید. معمولاً متدهای طویل نشاندهنده رفتار و وظایف متعدد هستش که نیاز به تجزیه و refactoring داره.

- از قانون DRY (مخفف Don’t Repeat Yourself) پیروی کنید... متدهای تکراری رو با ساخت superclass abstract یکی کنید.

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

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 رو بهش بدید...

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

 

کتابخانه OkHTTP

توسط Square تولید شده. مناسب برای Streaming و استفاده General مبتنی بر HTTP. پشتیبانی از POST, GET, UPLOAD. دارای مستندات آموزشی. زیربنای پیشفرض Retrofit و Picasso. یکی از زیربناهای Volley هستش. دارای disk cache. پشتیبانی از conn pooling. از پروتکل SPDY پشتیبانی می کنه. از اندروید 4.4 به بعد بصورت builtin در زیربنای اندروید استفاده شده. پشتیبانی از NewIO و...

 

کتابخانه Retrofit

توسط Square تولید شده. مناسب برای RESTful API / Web Service. پشتیبانی از POST, GET, PUT, DELETE, Multipart. دارای مستندات آموزشی. مبتنی بر کلاینت OkHTTP. دارای disk cache. پشتیبانی از async با کمترین کد. دارای cancellation و retryy برای درخواست ها. پشتیبانی از Dynamic URL. کمی کندتر از Volley اما سریعتر از AsyncTask هستش. دارای مفسر پیشفرض JSON و تبدیلش به POJO بکمک GSON.  پشتیبانی از NewIO. پشتیبانی از فعالیت های background.

 

کتابخانه Volley

توسط Google پشتیبانی شده. مناسب برای استفاده General و کار با تصاویر. پشتیبانی از POST, GET, PUT, DELETE. دارای مستندات آموزشی. دارای کلاینت های OkHTTP, Apache, HttpUrlConnection. دارای memory cache.  پشتیبانی از conn pooling. پشتیبانی از async با کمترین کد. دارای prioritization, cancellation, retrying برای درخواست ها. پشتیبانی از Dynamic URL. کمی سریعتر از Retrofit هستش. پشتیبانی از Image loading. دارای bitmap caching. سازگاری مناسب با activity lifecycle. دارای memory error handing مناسب. هندل کننده duplicate calls. استفاده نسبتاً آسان.

 

البته اگر بدنبال کتابخانه های سبکتر و کوچیکتر HTTP می گردید این گزینه ها هم میتونن انتخاب خوبی باشن:

LoopJ's android-async-http (HttpClient)
http://loopj.com/android-async-http/

Fast-Android-Networking
https://github.com/amitshekhariitbhu/Fast-Android-Networking

jus
https://github.com/apptik/jus

RoboSpice
https://github.com/stephanenicolas/robospice

 

این نکته رو هم در نظر داشته باشید که هرکدوم مزایا و معایب خودشونو دارن و باید درجای مناسبش کتابخانه مناسب رو انتخاب کنید.

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

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

ُSlackware Linux wallpaper تصویر اصلی این wallpaper مطعلق به من نیست

            Slackware Linux wallpaper                                                                 

 
۰ نظر موافقین ۱ مخالفین ۰ ۹۶/۰۸/۰۵
یوشا آل ایوب

 

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

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

JNI, JVM internal, Class Loader, Execution Engine

Java internals, Java structure, JVM internals, ساختار جاوا، ساختمان جاوا
یکی از کاملترین و دقیق ترین دیاگرامهای Java/JVM internals  موجود در اینترنت هستش

اطلاعات بیشتر:

http://blog.jamesdbloom.com/JVMInternals.html

https://dzone.com/articles/understanding-jvm-internals

https://www.cubrid.org/blog/understanding-jvm-internals/

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