یوشا

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

یوشا

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

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

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

۲۱ مطلب با موضوع «شبکه و وب» ثبت شده است

 

ابتدا باید بگم استاندارد رسمی برای سبک ها و workflow ها وجود نداره، اما در این مقاله سعی می کنم از تجربیاتم، قوائد همگانی و معمولترین موارد موجود در Atlassian، Kernel و git manpage استفاده کنم...

 

مقالات مرتبط:

دانلود، نصب و راه اندازی Git در ویندوز

ساخت SSh key در ویندوز

ساخت SSh key در لینوکس

کدام پروتکل: //:git یا //:ssh یا //:https

 

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

  • Branch / انشعاب
  • Commit
  • تنظیم / config
  • گوناگون

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

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

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

 

برنامه Git برای کار با repository، پنج پروتکل در اختیار ما گذاشته که هرکدوم مزایا و معایب خودشونو دارن... این پروتکل ها:

1- File (یا همون Local protocol)

2- HTTP (یا همون Dumb protocol)

3- HTTPS (یا همون Smart protocol)

4- SSh

5- Git

هستن. اما از کدوم پروتکل باید استفاده کنیم؟ کدوم پروتکل امنیت بیشتری داره؟ و کدوم پروتکل سرعت بیشتری داره؟

 

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

1- طبق گفته Sun، از دستورات System.runFinalizersOnExit() و Runtime.runFinalizersOnExit() استفاده نکنید، اینها منسوخ و Unsafe اعلام شدن:

JAVA-DOC: Because it is inherently unsafe. It may result in finalizers being called on live objects while other threads are concurrently manipulating those objects, resulting in erratic behavior or deadlock. While this problem could be prevented if the class whose objects are being finalized were coded to "defend against" this call, most programmers do not defend against it. They assume that an object is dead at the time that its finalizer is called. Further, the call is not "thread-safe" in the sense that it sets a VM-global flag. This forces every class with a finalizer to defend against the finalization of live objects!

Joshua Bloch: Never call System.runFinalizersOnExit or Runtime.runFinalizersOnExit for any reason: they are among the most dangerous methods in the Java libraries.

 

 

2- Handler یا Timer؟ (در شرایط کاربری یکسان)

Handler: براحتی reschedule میشه، هر اینترفیس Runnable ای رو میشه داخلش attach کرد، حافظه کمتری رو مصرف می کنه، بهترین گزینه برای update های UI هستش، از Multi-threading پشتیبانی می کنه، استثناهای پرتاب شده از task ها و thread هارو هندل میکنه، در ساخت Thread میشه Handler اون thread رو هم باهاش طراحی کرد، زمانی که دستگاه به حالت sleep بره کماکان به کارش ادامه میده!

Timer: قابلیت reschedule شدن نداره، فقط یک TimerTask رو میشه داخلش attach کرد، حافظه بیشتری رو اشغال میکنه، بهترین گزینه برای background-task ها هستش، نمی تونه UI رو update کنه، فقط با یک Thread کار میکنه(بقیه task ها باید queue بمونن تا کار اولی تموم بشه)، استثناهای task و thread رو هندل نمی کنه و فقط نابودشون میکنه(دیگر task ها رو هم اجرا نخواهد کرد)، زمانی که دستگاه به حالت sleep بره متوقف میشه.

 

3- آیا میدونید با فعال کردن خاصیت android:debuggable="true" در فایل AndroidManifest.xml پروسه Proguard غیرفعال میشه؟

ProGuard runs only when you build your application in release mode, so you do not have to deal with obfuscated code when you build your application in debug mode.

 

4- اگر به استثنا نوع UnknownHostException برخورد کردید و نتونستید این نوع استثنا رو catch کنید، تعجب نکنید. چراکه استثنای UnknownHostException از دسته java.net هستش درحالی که Exception از دسته java.lang!

راه ساده:

try
{
    // Codes.
}
catch (final java.net.UnknownHostException exception) // java.net
{
    // Handling codes.
}
catch (final java.lang.Exception exception) // java.lang
{
    // Handling codes.
}

 

5- با تغییر color scheme تصاویر به RGB_565 می تونید میزان حافظه اشغالی توسط تصویر رو کاهش بدید:

البته فقط کمی کیفیت تصویر پایین میاد...

BitmapFactory.Options _options = new BitmapFactory.Options();
_options.inPreferredConfig = Config.RGB_565;

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

این مقاله شامل آموزش نصب و راه اندازی Java + Android + Eclipse هستش.

که البته منظور از Android, پکیج Android SDK هستش، منظور از Eclipse, برنامه Eclipse IDE هستش و منظور از Java, پکیج Java SDK (همون JDK) هست.

 

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

  • ابزارهای مورد نیاز
  • دانلود، نصب و تنظیم Java
  • دانلود، نصب و تنظیم Android SDK
  • دانلود، نصب و تنظیم Eclipse
  • دانلود، نصب و تنظیم ADT plugin
  • درباره Gradle ,ANT و Maven
  • نکات
  • رفع مشکلات

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

 

بطور خلاصه، اساس کار SSh-Key مبتنی بر رمزنگاری بر کلید عمومی هست. به این صورت که شما دو کلید ایجاد می کنید: یکی کلید عمومی(public key) و دیگری کلید خصوصی(private key). که در اینجا کلید عمومی نقش قفل رو داره و کلید خصوصی نقش کلید!

 

شما می تونید کلید عمومی(public key) خودتون رو به هر کسی بدید یا در هر جایی قرار بدید... چراکه تنها عملکردش رمزی کردن داده هاست و هیچ کارایی دیگه ای نداره. پس چیزی هم شما رو تهدید نمی کنه. کلید دیگه، کلید خصوصی هه(private key)، که شما نباید اون رو به کسی بدید! و عملکردش رمزگشایی داده هاست. (داده های رمزگذاری شده توسط کلید عمومی)

شیوه تعامل این دو کلید به این صورته که:

1- سرور/remote یک پیام کوتاه رو توسط کلید عمومی شما [که قبلاً بهش داده بودید رو] رمزگذاری و اون به کامپیوتر شما ارسال میکنه.

2- کامپیوتر شما، این پیام رمزگذاری شده رو دریافت و با کلید خصوصی شما اون رو رمزگشایی میکنه و اون رو به سرور/remote ارسال می کنه.

3- در نهایت، سرور/remote هویت شما رو [از نظر مالک کلید خصوصی] شناسایی میکنه و بلافاصله دسترسی های لازم رو به شما اعطا می کنه. بهمین سادگی!

نکته: SSH ارتباطی به SSL نداره.

 

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

  • دانلود برنامه
  • ساخت SSh-Key
  • آپلود SSh-Key

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

 

1- هرگز روی سیستمی که کمتر از 2 گیگ RAM داره ویندوز نسخه 64 بیتی نصب نکنید. چون اینکار بیشتر باعث کند شدن ویندوز میشه.

ویندوزهای نسخه 64 بیتی به حداقل ۴ گیگ RAM نیاز دارن.

 

2- حتاالمکان روی سیستمی که 8 گیگ یا بیشتر RAM داره ویندوز نسخه 32 بیتی نصب نکنید. درغیراینصورت فقط 4 گیگ RAM توسط CPU قابل دستیابی هستش و بقیه RAM بدون استفاده باقی می مونن.

 

3- درسیستم های BIOS یا پارتیشن نوع MBR/DOS، بهتره در حین نصب ویندز فقط درایو نصب ویندوز رو پارتیشن بندی کنید و بقیه درایوهارو از داخل خود ویندوز(بعد از نصبش) پارتیشن بندی کنید. اون هم از نوع Logical.

با اینکار پارتیشن های Primary بیشتری براتون باقی می مونه... و برای نصب سیستم عامل دوم و سوم به مشکل نمی خورید.

نکته: این موضوع راجب سیستم های UEFI یا پارتیشن نوع GPT صدق نمیکنه.

 

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

اگر مشکل جدی برای ویندوز یا این درایو پیش بیاد معمولاً اطلاعتتون هم پاک میشه.

 

4- اگر از لپ تاپ استفاده می کنید، برای افزایش قدرت لپ تاپ و استفاده از تمام توان دستگاه اون رو به حالت Maximum performance تنظیم کنید.

نکته: در زمانهایی که لپ تاپ از باطری بجای برق مستفیم تغذیه میکنه، از حالت Maximum battery life یا Battery saver استفاده کنید.

در ویندوز Xp و ویندوز 7: به مسیر Start -> Control panel برید و در پنجره باز شده گزینه System and Security رو انتخاب کنید. سپس روی گزینه Power Options کلیک و در پنجره جدید Maximum performance رو انتخاب کنید.

در ویندوز 8 و ویندوز 10: در سمت راست نوار استارت روی آیکون باطری کلیک کنید سپس گزینه Maximum performance رو انتخاب کنید.

 

5- بصورت پیشفرض، ویندوز DLL برنامه های باز و بعد بسته شده رو [بخاطر افزایش سرعت باز کردن مجدد اون برنامه] unload نمی کنه. که اینکار باعث اشغال حافظه و گاهی کندی میشه. برای تغییر این رفتار، میتونید دستورالعمل زیر رو انجام بدید:

- ابتدا برنامه RegEdit رو در مسیر X:\Windows\RegEdit پیدا و اجرا کنید.

- سپس به آدرس HKEY_LOCAL_MACHINE -> Software -> Microsoft -> Windows -> CurrentVersion -> Explorer برید.

- حالا بر روی صفحه راست کلیک و گزینه New -> DWORD(X bit) value رو انتخاب کنید. و نامش رو بذارید AlwaysUnloadDLL

- در آخر روی همین گزینه دوبار کلیک و Value data رو 1 قرار بدید.

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

 

بطور خلاصه، اساس کار SSh-Key مبتنی بر رمزنگاری بر کلید عمومی هست. به این صورت که شما دو کلید ایجاد می کنید: یکی کلید عمومی(public key) و دیگری کلید خصوصی(private key). که در اینجا کلید عمومی نقش قفل رو داره و کلید خصوصی نقش کلید!

 

شما می تونید کلید عمومی(public key) خودتون رو به هر کسی بدید یا در هر جایی قرار بدید... چراکه تنها عملکردش رمزی کردن داده هاست و هیچ کارایی دیگه ای نداره. پس چیزی هم شما رو تهدید نمی کنه. کلید دیگه، کلید خصوصی هه(private key)، که شما نباید اون رو به کسی بدید! و عملکردش رمزگشایی داده هاست. (داده های رمزگذاری شده توسط کلید عمومی)

شیوه تعامل این دو کلید به این صورته که:

1- سرور/remote یک پیام کوتاه رو توسط کلید عمومی شما [که قبلاً بهش داده بودید رو] رمزگذاری و اون به کامپیوتر شما ارسال میکنه.

2- کامپیوتر شما، این پیام رمزگذاری شده رو دریافت و با کلید خصوصی شما اون رو رمزگشایی میکنه و اون رو به سرور/remote ارسال می کنه.

3- در نهایت، سرور/remote هویت شما رو [از نظر مالک کلید خصوصی] شناسایی میکنه و بلافاصله دسترسی های لازم رو به شما اعطا می کنه. بهمین سادگی!

 

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

  • دریافت برنامه
  • ساخت SSh-Key
  • آپلود SSh-Key

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

در این مقاله خلاصه ای درباره مسیریاب ها در شبکه نوشتم. یحتمل اگر کانفیلیکتی (با استاندارد های جدید) مشاهده کردید در بخش نظرات اعلام کنید.

 

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

  • مقدمه
  • انواع مسیریاب
  • شیوه کار مسیریاب

 

  • مقدمه

در محیط هایی که چندین شاخه شبکه با پروتوکل ها و معماری های متفاوتی وجود دارد، Bridge های ساده، راه مناسبی برای تضمین امنیت و سرعت ارتباطات میان این شبکه ها نیستند! چراکه چنین شبکه پیچیده ای نیاز به دستگاهی دارد که نه تنها اطلاعات آدرسی هر شاخه را بداند، بلکه بتواند بهترین مسیر را برای ارسال داده انتخاب کند; و همچنین امکان فیلتر کردن ترافیک شاخه محلی هم داشته باشد. چنین دستگاهی مسیریاب یا Router نام دارد.

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

 

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

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

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