Saeid بدون دیدگاه

مقایسه Unity 3d با Unreal Engine

مقایسه
Unity 3D vs Unreal Engine

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

 

هزینه:

انتخاب یک موتور بازی ساز و انتخاب یک پلتفرم برای شروع میتواند معیار بسیار مهمی برای آینده شما باشد. ممکنه شما فعلا فقط برای یادگیری و آشنایی با محیط ساخت بازی یک موتور بازی ساز را پیاده سازی کنید و نیاز نباشه که بی خودی خرج زیادی بکنید.خوب در اینجا یونیتی حق انتخاب برای شما گذاشته! یونیتی یک نسخه رایگان برای آنهایی که تازه دست به کار شدن گذاشته و در آینده اگر نسخه رایگان همه نیاز های شما را رفع نکرد می توانید با هزینه 1500 دلار و یا ماهیانه 75 دلار به نسخه پرو ارتقا دهید که ویژگی هایی به آن اضافه خواهد شد. ولی آنریال نسخه پولی ندارد و آنریال کاملا رایگان با تمام ویژگی هاش نرم افزار را در اختیار شما قرار می دهد ولی با این تفاوت که آنریال بازی هایی که هزینه حق امتیاز دارند 5% از کل درامد به آنریال تعلق خواهد گرفت.

 

زبان برنامه نویسی:

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

 

قابلیت های گرافیکی:

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

 

سخن آخر: هر دو از این موتور های بازی سازی بسیار قدرتمند هستند و من خلاصه ای از قابلیت های آن ها را برای شما گفتم و در آخر مهم تصمیم شما با توجه به گفته ها است.

Drcain بدون دیدگاه

تحلیل بازار ارز دیجیتال

سلام و سال نو مبارک با آرزوی موفقیت و بهترین ها در سال جدید!

یک نکته ی خیلی جالب که آمار ها حاکی از ضرر بیش از 500 میلیارد تومنی ایرانی ها در بازار ارز دیجیتال است! ( با بیش از 1000 میلیارد نیز ورودی)
حقیقت همین است! مارکت شوخی ندارد یا همراه بازار میشوی یا له میشوی. ورود به بازار در این نقطه به نظرم هنوز ریسک دارد هیچ سیگنال خریدی صادر نشده و طبق تحلیل ها در کوتاه مدت و میان مدت احتمال ریزش هنوز وجود دارد.
از نظر کف بودن بعضی سهم ها به نظرم آیوتا جالب است چرا که رشد تا 3 دلار دارد و ریسک از 1 دلار به 0.5 دلار.

(نمودار آیوتا)

اخبار خوب درباره ی ارز دیجیتال کم است و صرفا با دید بلند مدت(1 ساله) میتوان سرمایه گزاری کرد. گرچه من به نزول بیشتر معتقد هستم فعلا
یادم است که همین 3-4 ماه پیش موقعی که بیت کوین و همه بازار به طرز وحشتناکی بالا بود اخبار بیت کوین به طرز چشمگیری زیاد شد! از اینترنت تا رسانه ملی ولی واقعیت این است که ناخودآگاه کمک به بازیگران سهم و صاحبان قدرت کردیم.
مثلا بیت کوین 16 هزار دلار قیمت داشت و تحلیل با هدف 100 هزار دلار میگذاشتند در صورتی که بیشتر شبیه بازار بورس و خالی کردن سهم گران بر سر مردم بود!

در کنار این مطالب تحلیل بدبینانه نیز موجود است که به ارزش واقعی بیت کوین با 100 دلار قیمت گمان میبرد(خیلی بلند مدت) مثلا تا 2025 و برعکسش هم البته تحلیل دارند.(خیلی خوش بینانه که بیت کوین به زودی جای ارز حقیقی را میگیرد!)
سهم ها پس از صعود همیشه اصلاح دارند و در اصلاح بازیگران مهم معمولا به خالی کردن سهم میپردازند سهمی که بازیگر نداشته باشد قدرت ندارد و شروع به نزول میکند. صعود واقعی سهم ها معمولا با پول های درشت انجام میگیرد وگرنه پول های خرد و مردم عادی قدرت بازی با سهم ندارند.
یادتان باشد گران خریدن را برای همیشه فراموش کنید اگر از سهم عقب افتادید به فکر نوسان های کوچک باشید یا کلا بیخیال شوید.
بعضی از کارگزاری های فارکس و بازار بین الملل به جفت ارز BTC/USD یا ارز های دیگر مثل ETH میپردازند. در این حالت شما میتوانید با خرید (یعنی دلار بدهید بیت کوین بخرید) یا فروش(بیت کوین بدهید و دلار بخرید) سود کنید.
حواستان به اسپرد کارگزاری ها نیز باشد. در انتخاب کارگزاری باید حواستان خوب جمع باشد! در کل برای ایرانی ها که ریسک بالایی دارد چون از طرف کارگزاری ها تحریم هستیم یا اگر تحریم نباشیم پوشش بیمه نداریم.
دقیق به خاطر ندارم کدام سایت بود ولی شخصی تعریف میکرد (ایرانی بود) که چند سال پیش مقدار کمی بیت کوین خریده بعد که شنیده گرون شده سایت رو چک کرده، ارزش بیت کوینش حدود 70 هزار دلار بوده ولی بلوکه بود و پیام اومده که یا کارت شناسایی معتبر از اروپا میفرستی یا با پولت خداحافظی کن!
یا در همان کارگزاری ها معمولا دست ایرانی ها به جایی بند نیست و شخص دیگری تعریف میکرد که 25هزار دلار خود را به 100 هزار دلار رسانده ولی پولش بلوکه شده و گفتند که شما ایرانی هستی و حق نداشتید این قدر سرمایه گزاری کنید!(حتی پول اصلی را برنگرداندند)
پیشنهاد من مطالعه ی “کتاب چگونه در بورس 2 میلیون دلار بدست آوردم” است. خیلی خیلی کتاب جالبی است و اوایل کتاب حداقل برای من خیلی آشنا بود به نظرم برای هر کسی جالب و جذاب است و احتمالا هر کسی در شروع شبیه ایشون(یک مهاجر مجارستانی) باشد.
حرف آخرم نیز که اگر به قمار و شانس میپردازید وارد این بازار نشوید چراکه شانس شما در کازینو یا پوکر بیشتر است! و شاید لذت بیشتری نیز ببرید.

موفق باشید!

Roham ۱ دیدگاه

معرفی ابزار ELK

خیلی وقت بود دلم میخواست درباره ELK مطلب بنویسم، اما به دلیل مشغله کاری و … فرصت نمیکردم مطلب بنویسم. در این مقاله کوتاه قصد دارم اندکی درباره ELK بنویسم تا شاید مدیران IT که با این ابزار آشنا نیستن آشنا بشن.یکی از کاربرد های ELK در صنعت IT ،استفاده به عنوان یک log management هست.

تعاریف:

Elasticsearch یک موتور جستجوی open source و قابل توزیع می باشد که برای انتقال اطلاعات از json استفاده میکند یعنی درواقع وقتی میگیم Full text search یعنی با json کار میکند. و به وسیله جاوا توسعه داده شده است و دیتابسش NoSQL هست

اما logstash چیه ؟ این یک ابزار Log Pipeline هست که به شما کمک میکنه تا لاگ های سیستم و سرور های خودتونو به هر آدرسی که میخواین ارسال کنید که در اینجا ما برای متمرکز کردن های لاگ های تمام node هامون اونا رو به سمت Elastic ارسال میکنیم.

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

کیبانا (KIBANA) این برنامه کمک میکند تا بتونید داده هایی که توسط logstash به سمت elasticsearch ارسال کردید و به شکل های گوناگون به صورت داینامیک مصور سازی کنید، این به این معنی هست تغیرات صورت گرفته در داده ها هر ۱۵ دقیقه یک بار یا بیشتر در کیبانا refresh شده و تنایج جدیدی به شما نمایش میشود.

اتفاقی که در تمام فرآید میافته رو میتونید در تصویر زیر ببینید

برای نصب این برنامه و داشتن یک Centerlize log میتونید تمام مراحل و دستی خودتون نصب و کانفیگ کنید یا اینکه داکر آن را نصب کنید.

نکته : برای نصب تمام بسته های ELK حتما از VPN یا پراکسی استفاده کنید.

نکته : برای نصب حتما باید بسته jdk ۸ به بالا به روی هاست خود نصب کرده باشید.

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

 

شرکت elastic‌ در پلت فرم ELK خود امکانات زیادی نهفته است، بیشتر آنها رایگان هست شما میتونید از این روش برای مانیتورینگ node های خودتون استفاده کنید علاوه بر ابزار logstash که کمک میکرد تا شما لاگ های خودتونو به سمت elastic ارسال کنید، یه سری ابزار دیگه در اختیار شما قرار میده برای مانیتورینگ مانند meatricbeat که با جمع کردن یه سری متریک از سرور هاتون، مثل: اطاعات CPU یا RAM یا پهنای یاند NIC تون به شما اجازه میده تا در کیبانا این اطلاعات را مصورسازی و زیبا ببینید.

مانند تصویر زیر:

badrinex بدون دیدگاه

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

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

در این آموزش از دو عدد رادیو لیگو ویو مدل LigoDLB 5-15B استفاده خواهیم کرد. رادیوی اول Access Point   و رادیوی دیگری را به عنوان Station معرفی می نماییم. بعد انجام تنظیمات برقراری ارتباط ما بین دو رادیو را آزمایش کرده تا از درستی تنظیمات اطمینان پیدا کنیم.

در قدم اول مرورگر خود را اجرا کرده و با وارد کرد IP دستگاه که 192.168.2.66 است وارد صفحه تنظیمات رادیو می شویم. شناسه و رمز عبور پیشفرض تمامی دستگاه های لیگوویو user: admin password: admin01 می باشد که با وارد کردن آن با صفحه زیر روبرو خواهید شد.

در این قسمت تیک I have read and agree را زده و سپس کشور مورد نظر را انتخاب کرده و بر روی دکمه Change برای اعمال تنظیمات کلیک می کنیم. اما برای اینکه کانال های را بتوان برای پروژه انتخاب کرده از منوی کرکره ای Operating Country  گزینه Compliance Testing را انتخاب می نماییم. بعد از انجام صفحه اصلی نمایان می شود.

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

حال برای انجام تنظیمات رادیو بر روی آیکون Setting در بالای صفحه کلیک می کنیم تا صفحه برای انجام تنظیمات مورد نیاز نمایش داده شود.

با توجه به تصویر ذیل که مشاهده می نماید تنظیمات رادیو Access Point  یا مستر می باشد.

برای فعال شدن رادیو دکمه روبروی آن را برای فعال شدن کلیک کرده و سپس Operating mode را به Access point (iPoll 3)  تغییر میدهیم. در ادامه تنظیمات Tx power  است که برای محیط های داخلی بر روی عدد 10 الی 15 و محیط های خارجی بین 25 الی 29 را قرار می دهیم. چون محیطی که این رادیو ها قرار هست به هم متصل باشد داخلی است عدد 10 را قرار می دهیم. گزینه Enable ATPC برای کنترل اتوماتیک TX Power  با توجه به شرایط محیطی است که در این آموزش نیاز به فعال کردن آن نیست. حال باید کانال خلوت و بدون نویز یا با نویز کمتر را انتخاب نمود.

در قسمت تنظیمات کانال که در تصویر زیر مشاهده می کنید. عرض کانال 40 MHz می باشد و برای دسترسی به فرکانس های بیشتر گزینه Non Standard Channel  را فعال کرده و بهترین فرکانس را انتخاب و بر روی دکمه Select  کلیک کرده تا تنظیمات ثبت گردد.

بعد از کلیک بر روی دکمه Select  به صفحه تنظیمات برگشته و حال در انتهای صفحه بر روی نام رادیو کلیک کرده تا وارد صفحه تنظیمات Wireless AP Setting شویم.

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

Security Setting:

در این قسمت نوع رمز گذاری را مشخص کرده و رمز مورد نظر را با امنیت بالا برای رادیوی خود انتخاب می کنیم.

Bandwidth Limitation:

برای محدود کردن پهنای باند ما بین Access Point و Station از گزینه های موجود استفاده کرده و مقدار مورد نظر را با توجه به نیاز خود تعیین می نماییم.

WACL:

برای امنیت بالا می توان مک آدرس دستگاه هایی که قرار است به این دستگاه متصل شوند را نشانه گذاری کرد.

Advanced Setting:

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

پس از انجان تنظیمات بر روی دکمه Done کلیک می کنیم تا تنظیمات اعمال گردند.

حال برای تنظیمات شبکه باید از صفحه تنظیمات و استفاده از منوی که در سمت چپ تصویر قابل مشاهده است وارد Network Configuration  شده و تنظیمات را انجام دهیم.

با توجه به تصویر بالا تظیمات شبکه را به ترتیب وارد می نماییم.

در این مرحله مود شبکه بر روی Bridge باید قرار بگیرد.

اگر از IPV6 استفاده می کنید از Enable IPv6 آنرا فعال  نمایید و به همین صورت برای استفاده از  STP آن را فعال کنید.

قسمت بعد تنظیمات اترنت می باشد که با توجه به نیاز خودتنظیمات را تغییر می دهید اما در این آموزش تنظیمات به صورت پیش فرض می باشد.

مرحله بعد تنظیمات IPv4 است که نوع IP , رنج , سابنت و گیت وی را وارد می کنیم.

در صورت داشتن DNS Server در قسمت تنظیمات اضافه می کنیم.

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

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

در این قسمت توانستیم رادیوی که به عنوان Access Point  انتخاب کردیم آماده کنیم و سپس باید رادیوی دیگر که به عنوان رادیوی Station  هست را مطابق تنظیمات رادیوی اولی کانفیگ کرد. در مرحله بعد آموزش تنظیمات رادیویی دوم را انجام می دهیم و اتصال را مورد بررسی قرار می دهیم که چگونه می باشد.

 

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 گفته می‌شود. در قسمت اول این مقاله که در قبیله‌ی گیک‌ها به انتشار می‌رسد به معرفی مفاهیم اولیه و دسته‌بندی‌های اولیه می‌پردازیم و در قسمت‌های آینده مطالب را بست می‌دهیم. بیشتر بدانید