badrinex بدون دیدگاه

ارز دیجیتالی

 

چند مدتی هست که بحث ارز دیجیتالی داغ شده است تا مردم بجای استفاده است پول رسمی کشور خود برای خرید و فروش ارز ارز دیجیتالی استفاده کنند. به طور مثال یک شخص در قبال انجام پروژه یا انجام خدمات برای دریافت حق زحمه خود از این نوع ارز استفاده می نماید. دلایل استفاده از این نوع ارز را می توان به امن بودن تراکنش و غیر قابل پیگیری عنوان کرد و تنها با استفاده از بارکد و کد رمزگذاری شده نقل و انتقالات انجام می پذیرد.

ارزهای دیجیتالی متعددی وجود دارد که در ادامه بخشی از پرکاربرد ترین های آنها را مورد بررسی قرار می دهیم.

یکی از پر کاربردترین ارزها بیت کوین BitCoin است که اکثر افراد با بیت کوین به معامله می پردازند. مدتی است که این ارز با افزایش چشمگیر قیمت روبرو گردیده است. همچنین بعضهی از افراد از این ارز به عنوان یک سرمایه گذاری برای افزایش پول خود استفاده می کنند.
چونکه مبلغ بیت کوین در اولین ظهور خود که جولای سال ۲۰۱۰ بود با ۰.۰۸ دلار معامله می گردید ، اما با گذشت ۷ سال این مبلغ به ۱۵۰۰۰ دلار برای هر بیت کوین پرداخت می شد و با کاهشی به قیمتی حدود ۱۳۰۰۰ دلار رسیده است. باید توجه داشت که این ارز با شرایط بوجود آمده قابل پیش بینی نمی باشد و نمی توان گفت سرمایه گذاری در آن چه آینده ای خواهد داشت . تنها برنده های که با بالا رفتن بیت کوین به سود هنگفتی رسیده اند افرادی هستند که در زمان قبل از افزایش قیمت تصمیم به خرید آن گرفتند.

و اما ارزهای دیجیتالی دیگر مورد استفاده فعالان در این زمینه به شرح زیر می باشد.

‏Ethereum :
یک برنامه نویس به نام Vitalik Buterin که به عنوان یک مقاله نویس در مجله Bitcoin مشغول به کار بود با ایجاد یک برنامه غیر متمرکز در اواخر سال ۲۰۱۳ توانست یک پلتفرم جدید با زبان برنامه نویسی ساده و عمومی را پیاده سازی کند.
ارز دیجیتالی اتریوم در بین دیگر ارزها جایگاه بسیار خوبی را پیدا کرده است که یک ارز موفق و پر کاربرد بعد از بیت کوین به شمار می‌رود . قیمت فعلی این ارز در بازار معاملات ارزی دیجیتال ۷۷۲.۸۴ دلار به ازای هر ETH می باشد. اتریوم هم مانند بیت کوین برای داد و ستد ها و پرداخت هزینه ها تحت شبکه اتریوم استفاده می شود.

‏LiteCoin:
یک ارز دیجیتالی دیگر که به صورت متن باز با پیروی از بیت کوین و کد اختصاصی LTC به جمع ارزهای دیجیتالی پیوسته است. به طور تخصصی به مانند بیت کوین می باشد. اما تفاوت های با بیت کوین دارد که به عنوان مثال امنیت در لایت کوین به مراتب بیشتر از بیت کوین است و برای اینکار از الگوریتم scrypt بجای SHA-256 استفاده کرده است. قیمت این ارز دیجیتالی در بازار معاملات ۲۸۴.۷۶ دلار به ازای هر LTC رسیده است.

‏Dash:
یک ارز دیجیتالی بر پایه بلاک چین ( امنیت تضمین شده برای نقل و انتقال پول که غیر قابل ردگیری در دنیای اینترنت می باشد.) است. دش با قدرت بالا در امنیت و سرعت در تراکنش توانست بین افرادی که از ارزهای دیجیتالی استفاده می کنند جای خود را در بین دیگر واحدهای پولی دیجیتالی ثابت کند. نقطه قوت Dash در تراکنش های سریع می باشد که در کمتر از ۵ ثانیه این کار را انجام می‌دهد. حتی برای استفاده از دش نیاز نیست در جای ثبت نام کنید. آخرین قیمت Dash ۱٫۲۲۱.۱۶ دلار برای هر واحد می باشد.

نظرات در مورد ارزهای نو ظهور دیجیتالی در میان ارزهای اصلی کشورها چگونه است؟

اکثر کشور های مختلف دنیا ارزهای دیجیتالی را قبول ندارند و یا به رسمیت نمی شناسند و همچنین نمی توانند به عنوان یک ارز بپذیرند. هر کشوری برای مخالفت با آن برای خود استدلالی را بیان کردند. اما نمی توان انکار کرد با بزرگ شدن و قدرت گرفتن ارزهای دیجیتالی واحد پولی هر کشور با کاهش ارزش روبرو خواهد شد.

با این حال بسیاری از مردم علاقه خود به کسب درآمد با ارز دیجیتالی را نشان داده اند. حتی آموزش های برای شروع اینکار ارائه داده است. حتی در بعضی از موارد شنیده شده است که زمزمه یک حرکت به سمت ارز دیجیتالی برای اشخاص ایرانی شروع شده است(صحت این خبر هنوز تائید نشده است.).

در انتها به این نتیجه میرسیم که ارز دیجیتالی برای پیشرفت در مبادلات ایمن و سریع کاربرد فراوانی دارد و هر شخص نیاز داشت به پول هر کشور تبدیل کنه به راحتی از طریق سایت های فعال در این زمینه می تواند اینکار را انجام دهد.

پیشنهاد: سعی کنید برای یکبار هم که شده استفاده از یک ارز دیجیتالی متناسب با شرایط خود استفاده کنید.

shirin بدون دیدگاه

توابع پایتونی

با قسمت دوم توابع پایتونی در خدمتتون هستیم:

خب قرار بود که تابع Sqrt() را پیاده سازی کنیم. بهتره قبل از هر چیز دقیقا بدونیم که این تابع چه کاری انجام میدهد و چطور square root را محاسبه میکند.

من  برای این کار از الگوریتم babylonian  استفاده کردم که در 4 مرحله و بصورت خیلی ساده عملیات این تابع را توضیح میدهد و کار را برای پیاده سازی بسیار راحت تر میکند.

بیاید با هم بررسی کنیم:

1 –  بعد از اینکه عدد مورد نظر را دریافت میکنیم، باید بتوانیم یک حدس نزدیک به ریشه عدد بزنیم، پس یک متغیر لازم داریم به نام guess که جواب تقسیم بر 2 عدد اصلی را در بر میگیرد.

2 – در مرحله بعد (با توجه به شرط) عدد اصلی را به متغیر guess تقسیم میکنیم.

3-  میانگین این اعداد را پیدا میکنیم.

4 – در حدس بعدی اگر لازم بود این عدد را استفاده میکنیم.

 زمان پیاده سازی تابع رسیده است:

square root#
🙁def jazr(number

error = 0.01
guss = nember / 2
iteration = 0

🙁 while ( abs(number-guss**2) > error
iteration = iteration + 1
div = number / guess
guess = (div + guess) / 2

(print (“The sqare root of”, number, “is”, guess

(“:number = input (“please give me a number

((jazr(float(number

پیاده سازی تابع جذر را با یک آرگومان شروع میکنیم.

یک مقدار خطا در نظر میگیریم تا به حدسی که میزنیم مقدار صحیح تری را برگرداند. از متغیر guess برای حدس استفاده میکنیم. برای اینکه بدانیم برنامه برای هر عدد چند بار محاسبات را انجام میدهد از متغیر iteration استفاده میکنیم تا در اجرای حلقه و با هر بار ورود به حلقه یک واحد به مقدار آن اضافه شود.

در حلقه while شرطی را بررسی میکنیم که اگر حدس به توان 2 برسد و از عدد اصلی کم شود و حاصل بزرگتر از مقدار خطا باشد، یعنی شرط درست باشد، باید شروع کنیم به انجام محاسبات.

وارد حلقه میشویم و همونطور که قبلا گفتم مقدار iteration یک واحد اضافه میشود. مقدار عدد اصلی را به مقدار guess تقسیم میکنیم و توی متغیر جدیدی به نام div میزاریم و در نهایت حاصلجمع دو متغیر div و guess  را بر 2 تقسیم میکنیم و درون متغیر guess قرار میدهیم. اگر مقادیر درست باشد تابع جواب را برمیگرداند در غیر اینصورت محاسبات ادامه خواهد داشت.

امیدوارم شما هم به جواب های درستی رسیده باشید، اگر هم اینطور نبوده هیچ مشکلی نیست قراره با هم پیش بریم و به هم کمک بکنیم.

 

 

 

 

 

badrinex بدون دیدگاه

W-Jet و WNMS در لیگوویو

‏W-Jet و WNMS در لیگو ویو

 

لیگو ویو یک شرکت ارائه خدمات وایرلس می باشد که توانسته است در چند سال اخیر جای برای خود در بازار ایران پیدا کند. در این مقاله پروتکل W-Jet که یکی از قدرت های لینک های PTP تلقی می شود را مورد بررسی قرار می دهیم.

‏W-Jet پروتکل اختصاصی است که توسط شرکت لیگو ویو برای رادیو های وایرلس خود طراحی نموده است. این پروتکل برای بالا بردن عملکرد بهتر در ارتباط های PTP ساخته شده است. با توجه به تجربه کسب شده از پروتکل ذکر شده در کارکرد آن طی سالیان متوالی که با استفاده در مسافت های طولانی بدست آمده است می توان  این اطمینان را حاصل کرد که با استفاده از این پروتکل بهتر است در فاصله های طولانی استفاده نمود.

 

پروتکل W-Jet قدرت رادیوهای سری PTP را افزایش می دهد که این قابلیت نقطه مثبت در رادیوهای معرفی شده است. در مقایسه با رادیوهای دیگر برندها می توان بیان کرد که با هزینه کمتر قدرت بیشتر را در دست خواهید داشت.

 

‏W-Jet دارای ورژن های متفاوتی می باشد که در رادیوهای لیگو ویو نسبت به قدرت مورد نیاز ورژن W-Jet متغیر است. در ادامه می توانید تفاوت ورژن های مورد استفاده در رادیوها مشاهده نمایید.

در رادیوهای PTP لیگوویو ۳ ورژن از W-Jet وجود دارد که W-Jet 2 , 3 و 5 می باشد. وجود پروتکل W-Jet در رادیو ها قابلیت برقراری ارتباط بین لینک ها افزایش می دهد، زیرا این پروتکل در مکانهای پر نو یز به کمک دستگاها می آید و ارتباط را بدون مشکل برقرار می کند.

اما دلیل وجود ورژن های مختلف در رادیو ها به چه منظور است؟

هر یک از دستگاه ها برای فضا و مسافت های مختلفی ساخته شده اند‌ ، دستگاه های که برای مسافت های طولانی استفاده می شوند  از  پروتکل W-Jet ورژن ۵ استفاده می کنند و در مسافت های کمتر از ورژن ۳ و در آخر از ورژن ۲ که برای مسافت های کوتاه تر طراحی شده است.

 

‏WNMS چیست؟

یک نرم افزار رایگان برای مدیریت شبکه های وایرلس سازمان ها می باشد. به وسیله این ابزار توانایی ایجاد راه حل برای مدیریت یک شبکه بزرگ را می دهد. لیگوویو برای مدیریت شبکه که در آن از هزاران نود استفاده می گردد نرم افزار WNMS را معرفی کرده است.

یک سرور WNMS قادر است تا شبکه های بسیاری را نگهداری و مانیتور کند تا اگر دیوایس و یا رادیویی به مشکل برخورد از طریق این نرم افزار به رفع آن بپردازند.

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

برای معرفی قابلیت های موجود در WNMS می توان به نمایش تمام اطلاعات دستگاه ، موقعیت جغرافیایی دستگاه، هشدار و‌خطاهای دستگاه را به صورت لیست نمایش می دهد ، ارسال دستورات و تنظیمات مورد نظر به دستگاه های ثبت شده در سرور WNMS  و Backup و Restore  کردن دستگاه و  غیره از این قبیل ویژگی ها به شمار می آیند.

WNMS بر بستر سرویس ابری:

با ارائه این سرویس توسط شرکت لیگوویو دنیایی جدیدی برای مدیریت شبکه وایرلس در کمترین زمان برای مدیر شبکه میسر شده است. خود شرکت حساب کاربری آزمایشی برای مدیریت ۲۰ دستگاه به رایگان در اختیار کاربران قرار می دهد.

 

نرم افزار WNMS برای تلفن های هوشمند:

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

امکاناتی که نسخه موبایل دارد عبارتنداز :

نمایش شبکه و دستگاه های موجود.

نمایش گذرای دستگاه های که نقطه جغرافیایی آنها مشخص است.

ثبت دستگاه جدید به سرور WNMS.

لیست کردن تمامی اعلان ها.

اجازه ساخت دستورات اجرایی برای کاربران.

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

در شماره بعد آموزش کار با این ابزار در اختیار علاقه مندان قرار خواهد گرفت.

Drcain بدون دیدگاه

پرسش و پاسخ برنامه نویسی!

سلام.

یه سری نکات تو مطلب برنامه نویسی و استخدام مطرح شد به نظرم اومد که تو یه شماره چند تا سوال برنامه نویس خوب هم داشته باشیم. خب بریم سراغشون!

 

1- فرق abstraction با encapsulation ?

خیلی ساده با یه مثال روشن میشه.

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

ریموت کنترل یه ابسترک ساده میتوان در نظر گرفت که کاربر بدون دانش از این که داخل آن چه خبر است استفاده میکند(ولی میتواند دسترسی بگیرد)

اما تلویزیون هیچ ایده ای از این که فیلم و آهنگ و … پخش میشود نداریم(حداقل فرض کنیم دسترسی محلی نداریم) و دسترسی هم نداریم و صرفا از آن استفاده میکنیم.

2- فرق interface با abstract?

از نظر مهندسی نرم افزار هیچ فرقی این دو مفهوم ندارند. به طور کلی یک ایده دارند ولی از نظر برنامه نویسی یه سری تفاوت دارند مثلا در متغیر و داستان وراثت تو اینترفیس و پیاده سازی توابع و ….

 

3- برنامه نویس سمت سرور هستید و پاسخ هایی همیشه ثابت هستند چه کار میکنید؟

از دیتابیس های جدید مثل ردیس استفاده میکنیم. راه حل ساده تر (در صورت کم بودن متغیر ها ) تعریف آن در چند متغیر و استفاده با رم (همان مفهوم ردیس است)

هدف از این کار چیست ؟ قطعا دیتا در هارد کندتر از رم است. سرعت انتقال دیتا رتبه نخست برا رجیستر ها و کش CPU و بعد رم و در انتها هارد است. پس دیتابیس های عادی که با هارد سر و کار دارند به مراتب کند تر هستند.

حال چرا اطلاعات در رم نیست ؟ چون حجم اطلاعات خیلی زیاد است و هزینه ساخت و داشتن رم خیلی بیشتر از هارد است.

  • ممکن است فک کنید که اگر سیستم خاموش شود چه پیش می آید یا اطلاعات رم میپرد؟ پاسخ منفی است و ردیس یک بکاپ میگیرد و مثل دیتابیس های معمولی در هارد ذخیره میکند و نگرانی ندارد !

4- برنامه نویس سمت سرور هستید چه راهکارهایی برای ریکوئست های الکی میدهید ؟

پاسخ این سوال کمی پیچیده است اما به طور کلی استفاده از CAPTCHA ، توکن ها و authentication ها  در راستای همین مطلب است. این که چجور جلوی DDOS گرفته شود شاید در پیچیده ترین حالت با هوش مصنوعی و یادگیری ماشین بهبود در عملکرد سیستم داشته باشیم.

5- اطلاعات محرمانه ای به روی کلاینت داریم چگونه جلوی دسترسی آن را میگیرید؟

مهندسی معکوس و جلوگیری آن باز هم مبحث گسترده ای است ولی ساده ترین ایده ای که پاسخ این مسئله را میدهد رمزنگاری و سالت است.

یعنی تقریبا کاری که بعضی از اپلیکیشن های موبایلی یا تحت وب انجام میدهند. شاید تضمینی هم در کار نباشد!

6- OOP را تعریف کنید و مزایا و معایبش را بگید؟

برنامه نویسی شی گرا برای راحتی برنامه نویس  و مهندسین نرم افزار است مزایای فراوان که دارد و هر کدوم کاربرد خودش ولی در حالت کلی فانکشنال نوشتن به مراتب زمان بیشتری میبرد. معایب آن در عملکرد است. مثلا اگر محدویت زیادی در رم و cpu و … داشته باشیم گزینه ی مناسب قطعا OOP نیست.

تعریف خیلی ساده هم  که میتوان گفت وقتی یه سری رفتار ها و داده های یکسان و قابل تعریف در یه موضوع داریم میتوان سراغ OOP برویم مثل کلاس حیوان و مثلا وراثت کلاس انسان از حیوان.( به فرض یک بازی open world داریم)

البته OOP و معماری ها و چارچوب خیلی مفصل هستند ولی در همین حد هم در حداقل مصاحبه ها به نظرم کافی باشه.

معمولا در راستای OOP باید دانش کافی از وراثت و کپسولیشن ، چند ریختی و … هم باید داشته باشیم.

7- کلاس های یک بازی شطرنج یا بولینگ یا .. را طراحی و پیاده سازی کنید ( معمولا 40 تا 60 دقیقه زمان)

فک میکنم سوالای معروف گوگل در استخدام باشه که یه پیاده سازی خیلی ساده با پرینت که منطق بازی کار کنه و کلاس بندی ها و معماری خوبه داشته باشه.

تو کلاس ها  و معماری باید یه سری موارد را رعایت کنید مثل coupling cohesion یا single responsibility و …

 

8- پیچیدگی الگوریتم … چه قدر است ؟

حتما باید مبحث پیچیدگی را مسلط باشید و بدانید الگوریتم های مورد استفاده شما چگونه عملکردی دارند. ممکن است سوالات ساده ای پرسیده شوند مثل ادغام دو آرایه نا مرتب در یک آرایه مرتب یا پیاده سازی یک الگوریتم مرتب سازی ساده، صف ، استک، لینک لیست، گراف و ….

که در نهایت شما باید بدانید چرا الگوریتم را پیشنهاد دادید و پیچیدگی چگونه است.

اگر شما هیچ اطلاعی درباره پیچیدگی الگوریتم ندارید معمولا بدترین حالت را با O  نمایش میدهند و میگن و از log n تا پیچیدگی های نمایی می تواند راه حل مسائل باشد.

مثلا اگر شما یک آرایه 100 تایی دارید و میخواهید آن را پرینت کنید.100 بار عمل خواندن + 100 بار پرینت دارید. یعنی در اوردر n است.(پیچیدگی زمانی)

پیچیدگی مکانی هم داریم که باید محاسبه ذخیره متغییر ها را حساب کرد.( که مثلا رم چه قدر نیاز است)

 

احتمالا متوجه هستید که مثلا الآن با قضیه ی سیستم های distribute مشکلات cpu را حل کرده اند ولی کمبود رم و پیچیدگی نمایی رم را کاری نمیشود کرد.

مثلا الگوریتمی در بدترین حالت 1 سال طول میکشه خب صبر میکنیم هسته و سیستم زیاد میکنیم و به فرض به 2 ماه کاهش میدهیم ولی وقتی رم خیلی بالایی بخواهد کار به مراتب سخت میشود یا حتی نشدنی.

 

این مدل سوالات رو معمولا تو مصاحبه های ایرانی میبینید. یه چیز جالبی که هست وقتی یه تکنولوژی جدیدی میاد و معروف میشه سریع همه از اون سوال میکنن و یه خورده کار مارو هم سخت میکنه. مثلا یه مدتی برا برنامه نویسی سمت سرور از mongo db سوال میکردن در صورتی که نیازی نداشتن! یا مثلا اخیرا چند جا سوال میکردن آقا مدل اسنپ را چند روزه میزنی  و چجوری ..(!)

نمونه سوالات  در گیت هاب و سایت های مختلف موجوده و زیاد هستن چه برا تمرین برنامه نویسی و الگوریتم و OOP چه مصاحبه و چیزای دیگه

موفق باشید

Roham بدون دیدگاه

What is Ansible

بلخره یه زمانی میرسه که شما سرور یا سرور های خودتون رو کانفیگ کنید : سرورهایی را که نیاز دارید  اونهارو کانفیگ کنید در شرایط عادی باید  به هر کدوم SSH بزنید و دستی کانفیگش کنید ممکنه 100 دستور و هرکدوم و دستی توی ترمینال وارد کنید مثال :  نصب کردن بسته ها، ویرایش فایل های پیکربندی و غیره، اما این داستان میتونه خیلی زمان شما رو بگیره و اعصاب شما رو خورد کنه ممکنه بعد از مدتی کارایی شما کم شه ، اینجاست که خطاهای انسانی وارد میشه و کل داستان و خراب میکنه !!!  یا حتی  میتونه برای ادمین خسته کننده باشه که یه سری کار های روتین و تکراری و روی چندین سرور انجام بده، تصور کنید یک سری Task های پیچیده دارید مثل داشتن یک OpenStack cloud در برنامه خودتون ، انجام این کارها به صورت دستی دیوانگی بیش نیست .اگر شما در یک شرکت درست و حسابی کار کنید ،مدیر ارشد سیستم اگر متوجه شه شما دارید کل دستورها رو دستی خودتون وارد میکنید ممکنه عصبانی شه و شمارو اخراج کنه ، بله این کاملا درسته در بیزنس های واقعی کسی با شما شوخی نداره 🙂
حتما متوجه این شدید که برای حل این مشکل شما نیاز به ابزار های مثل configuration management دارید یه چیزی مثل Asnible یا Pupet  ، ایت ابزار های configuration management tool میتونه راه حل مناسبی برای شما باشه، اگر شما Developer هستین یا SysAdmin و دنبال یه ابزار خوب Automate میگردین به نظر من بهترین ابزار برای شما Ansible خواهد بود. اینکه فرقش با بقیه ابزار ها چیه بمونه برا بعد، اما Ansible چیه ؟
Ansible چیست ؟
این اسم یه اسم علمی تخیلیه گرفته شده از یک کتاب هست. ansible یک دستگاه ارتباطی تخیلی است که می تواند اطلاعات را سریعتر از سرعت نور انتقال بده که نویسنده Ursula K. Le Guin این مفهوم را در کتابش  به اسم Rocannon’s World اختراع کرد، و نویسندگان دیگه داستان های علمی تخیلی این ایده رو از Le Guin گرفتند.
دقیقتر بخوام بگم ، Michael DeHaan خالق  Ansible این اسم رو از نام کتاب “Ender’s Game” که توسط Orson Scott Card نوشته شده گرفته (در سال 2013 نیز فیلمی با این نام توسط Gavin Hood ساخته شد). در” کتاب Ender’s Game” اسم ansible برای کنترل تعداد زیادی از کشتی های راه دور در یک زمان، در فواصل خیلی وسیع استفاده میشده.
حال به عنوان یک استعاره از این اسم برای کنترل سرورها از راه دور استفاده میشود.

ابزار Ansible چطور کار میکند ؟

تصویر زیر نمونه مورد استفاده Ansible را در عمل نشان می دهد.
یه یوزر به اسم Stacy از Ansible برای کانفیگ کردن 3 سرور مبتنی بر Ubuntu استفاده میکنه تا بتونه Nginx رو روی اونها اجرا کنه. Stacy یک اسکریپت Ansible نوشته به اسم webservers.yml ، در Ansible به یک اسکریپت playbook گفته میشود.یک playbook تعریف میکنه که کدوم هاست (دوراقع در Ansible به اسم remote servers شناخته میشه) باید برای کانفیگ استفاده بشه. و یک فهرست مرتب شده از وظایف برای انجام در آن سرورها را شامل میشود. در این مثال هاست های ما web1، web2 و web3 هستند و کارای که در آنها باید انجام بشه اینا هستند :
1 – نصب nginx
2- ایجاد فایل کانفیگ nginx
3- استارت کردن سرویس nginx
در مقالات بعدی صحبت خواهیم کرد که Stacy چطور این playbook را اجرا میکنه ، فعلا در این مثال playbook با نام webservers.yml ذخیره شده که میشه با دستور زیر اون رو اجرا کرد

 

 

.

Ansible درواقع یک  ارتباطات SSH را به صورت موازی با web1, web2, and web3 ایجاد میکن، درنهایت اولین دستور در لیست هر سه سرور را به صورت همزمان اجرا خواهد کرد در این مثال اولین دستور نصب  پکیج nginx توسط دستور apt میباشد  (درواقع Ubuntu از این پکیج منیجر برای نصب بسته ها استفاده میکند) بنابراین دستور playbook برای این کار چیزی مانند دستور زیر است.

همچنین Ansible  بعد از اجرای یه سری کارای دیگه هم میکنه:

  1. یک اسکریپت پایتون ایجاد میکنه که بسته nginx را نصب می کنه.
  2. اسکریپت را به web1، web2 و web3 کپی میکند.
  3. اسکریپت را در web1، web2، web3 اجرا میکند.
  4. صبر میکنه تا اسکریپت برای تمام موارد اجرا شود.

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

Ansible  هر کار را به طور موازی در تمام میزبان اجرا می کند.

Asnible   منتظر می ماند تا تمام هاست ها قبل از رفتن به کار بعدی کار قبلی را تمام کنند.

Ansible  وظایف را به ترتیبی که آنها را مشخص می کنید اجرا می کند.

امیدوارم براتون مفید باشه، هر سوالی داشتن میتونید در گر.ه قبیله در تلگرام مطرح کنید.

Sirous_fd بدون دیدگاه

آشنایی با الگوریتم های روتینگ(قسمت اول)

آشنایی با الگوریتم‌های روتینگ (قسمت اول)
دنیایی که ما امروز در آن زندگی می‌کنیم پر از تکه‌های ریزودرشت است و به‌وسیله هلی مختلف این تکه‌ها به هم متصل می‌شوند. در دنیای شبکه هم شبکه‌های کوچک و بزرگ زیادی وجود دارد که به همین خاطر از روش‌های مختلفی استفاده می‌کنیم که این شبکه هارا به هم متصل کنیم. به این کار Routing گفته می‌شود. در قسمت اول این مقاله که در قبیله‌ی گیک‌ها به انتشار می‌رسد به معرفی مفاهیم اولیه و دسته‌بندی‌های اولیه می‌پردازیم و در قسمت‌های آینده مطالب را بست می‌دهیم. بیشتر بدانید

siavash بدون دیدگاه

حملات DOS و DDOS

هك و هكر به دهه ٦٠ ميلادي بر مي گردد كه دانشجويان دانشگاه MIT براي پيش برد اهداف خود به صورت دقيق و سريع انجام مي دادند و افرادي كه اين روش ها را خلق مي كردند هكر مي ناميدند. اما امروزه معني اين كلمه به نفوذ و رخنه كردن تغيير يافته است.
امروزه هك و نفوذ به دستگاه هاي مختلف با وجود آمدن نرم افزار هاي متفاوت ساده تر شده است و افراد قادر هستند با استفاده از يك فايل آلوده دستگاه قرباني را مورد حجوم قرار دهند كه در صورت عدم ايمني كافي دستگاه قرباني مي تواند عواقب بسيار خطرناكي را متحمل شود.

روش هاي نفوذ بسيار زيادي وجود دارد كه هر چند وقت يكبار خبر آن را در تمامي رسانه ها پخش مي كنند و روش هاي جلوگيري از آن را به عموم آموزش مي دهند. نمونه از روش هاي نفوذ با حملات DOS ، DDOS ، باج افزار و غيره مي باشد.

در اين مطلب حملات DOS و DDOS را مورد بررسي قرار مي دهيم كه چگونه اين نوع حمله ايجاد مي شود و راه هاي مقابله با آن به چه صورت است.

كلمه DOS مخفف Denial of Service است ، در اين روش هكر با استفاده از يك سيستم برنامه آلوده خود را به يك سيستم يا سرور ارسال مي كند و سپس بعد از اجراي برنامه در سيستم قرباني عمليات خود را آغاز مي كند.
و اما DDOS كه از distributed denial of service تشكيل شده است به نوعي حمله اي گفته مي شود كه يك سيستم با نفوذ به تعداد سيستم بالا به يك سيستم حمله مي كنند كه در اين روش باعث كندي پهناي باند سيستم و تمام نقاط پردازش سيستم با كندي بالا روبرو شوند. متوقف كردن اين نوع حمله بسيار دشوار و حتي غير قابل كنترل است و باعث مي شود آن سرور و يا منبع از دسترس خارج شود. اما هر دو حمله يك نقش را در حملات ايفا مي كنند و باعث قطع دسترسي به سرويس هاي مانند سايت و هاستينگ مي گردد.
اين نوع حملات هميشه در حال انجام مي باشد و قرباني هاي زيادي را ميگيرد.

حملات DDOS يكي از قويتين حملات شناخته شده است كه جلوگيري از آن سخت مي باشد، همچنين داراي انواع مختلف براي سرويس هاي مختلف استفاده مي گردد كه در ذيل تعدادي از آنها را مورد بررسي قرار مي دهيم.

حملات DDOS :

‏حملات از نوع DDOS روش هاي مختلفي دارد كه هر كدام از اين روش ها ساختار مختص به خود را دارند تا اهداف خود را با مشكلات جدي روبرو سازند. در اين قسمت به دو روش از حملات اشاره كوچكي مي شود .

UDP Flood:
يك نوع حمله با ترافيك ساختگي مي باشد كه با تمام توان خود به سرور ها حمله مي كنند. اين نو حمله در لايه هاي OSI صورت مي گيرد كه باعث ايجاد مشكل در سرويس دهنده ها مي گردد و شبكه را مي تواند دچار اختلال نمايد.

‏SYN Flood:
در اين حمله ارسال پيام و دريافت جواب ما بين كلاينت و سرور انجام مي پذيرد كه از لايه ٤ براي اهداف خود استفاده مي نمايد. در استفاده از اين روش حمله بيشتر مواقع از IP هاي غير واقعي استفاده مي گردد. SYN Flood داراي سه مرحله مي باشد، در مرحله اول اتصال انجام مي گيرد و در خواست خود را ارسال مي نمايد . در مرحله دوم ارتباط به طور كامل برقرار نمي شود و به همين دليل كه بخواهد ارتباط تكميل گردد اتصال به صورت نيمه فعال مي باشد و اگر همين روال ادامه داشته باشد سرور قادر به تحمل اين همه كانكشن بدون پاسخ ندارد و نمي تواند كانكشن ديگري را ايجاد نمايد سرور از دسترس خارج مي شود.

چه راه كارهاي براي قرباني نشدن در اين نوع حملات وجود دارد؟
هر چند روش هاي گفته از روش هاي حمله منسوخ شده است اما هميشه بايد سيستم هاي خود را براي انواع حملات مخرب آماده سازيم تا دچار خسارت هاي جبران ناپذير نشويم. براي مثال نفوذهاي كه انجام مي پذيرد از حفره هاي موجود و ايجاد شده در سيستم ها است و براي جلوگيري از اينكار هميشه بايد سيستم عامل خود را بروز نگه داريد و فايروال هاي سيستم خود را فعال نگه داريد. چون اين حملات با IP سيستم هاي حمله كننده انجام مي شود بايد IP هاي كه درخواست زياد به سرور ارسال مي كنند را بلاك كرد تا مانع از نفوذ گردد.

Drcain بدون دیدگاه

آموزش زبان PHP-قسمت ششم(تابع و رشته)

سلام قسمت ششم آموزش php رو در کنار هم هستیم.

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

متغییر گیک را به صورت رشته ای تعریف کردیم و سپس طول رشته را بدست می آوریم.

 

تعداد کلمات در رشته را بدست می آوریم.

معکوس رشته را نمایش میدهیم.

جایگاه قیبله در رشته را خروجی میگیریم(از 0 تا n شماره گذاری میشود مانند آرایه ها)

 

و با استفاده از دستور بالا میتوان بجای کلمه Hello، کلمه ی bye را در ورودی دوم جایگزین کرد.(در متغییر گیک) – شبیه find و replace

سپس به آشنایی بیشتر با تابع پرداختیم.

خروجی تابع بالا صرفا یک نمایش و اکو کردن است در صورتی که ما معمولا در برنامه نویسی به return کردن نیاز داریم و با مثالی آن را به وضوح حس کردیم.

 

که در مثال بالا با استفاده از خروجی تابع تست، تست قبیله را اجرا کردیم.

نشان هم دادیم که به دو تابع با اسم یکسان به مشکل برمیخورد و از نظر کامپایل کردن امکان پذیر نیست.( چه با آرگومان یکسان و چه متفاوت)

 

موفق باشید

 

Youtube / Telegram / TorrentAparat