Academy and Foundation unixmens | Your skills, Your future
2.28K subscribers
6.66K photos
1.37K videos
1.23K files
6.05K links
@unixmens_support
@yashar_esm
[email protected]
یک کانال علمی تکنولوژی
فلسفه متن باز-گنو/لینوکس-امنیت - اقتصاد
دیجیتال
Technology-driven -بیزینس های مبتنی بر تکنولوژی
Enterprise open source
ارایه دهنده راهکارهای ارتقای سازمانی - فردی - تیمی
Download Telegram
در این مقاله به بررسی apache و nginx پرداخته // شایان ذکر هست در مقایسه در این مقاله apache مزیت های بالاتری را نسبت ngnix اشاره کرده است .
https://www.digitalocean.com/community/tutorials/apache-vs-nginx-practical-considerations
🔫 دارپا: ۴ سال دیگر کنترل سربازان با #BCI امکان‌پذیر می‌شود 🔫
@unixmens
دارپا: ۴ سال دیگر کنترل سربازان با BCI امکان‌پذیر می‌شود


آژانس پروژه‌های تحقیقات پیشرفته دفاعی امریکا (دارپا) در حال توسعه رابط مغز و کامپیوتر (BCI) برای کنترل سربازان از طریق مغز آنها است. این سازمان پیش‌بینی می‌کند تا چهار سال آینده این پروژه به اتمام برسد.

دارپا به دنبال توسعه فناوری است که با استفاده از آن امکان کنترل سربازان از طریق مغز آنها فراهم می‌شود. آژانس پروژه‌های تحقیقات پیشرفته دفاعی امریکا موسوم به دارپا اعلام کرد که این سازمان در حال توسعه رابط مغز و کامپیوتری است که می‌تواند سربازان را به کامپیوتر متصل کرده و با استفاده از کامپیوتر، مغز سربازان را کنترل کرده و در نهایت رفتار سرباز در میدان نبرد را کنترل کند.

این سازمان به‌دنبال ارائه نسل جدید فناوری عصبی بی‌نیاز از جراحی است که در قالب برنامه N3 پیاده‌سازی شود. این پروژه قصد دارد تا دو فناوری جدید را عرضه کند.

در فناوری اول، کاربر مواد شیمیایی مختلفی را استفاده می‌کند تا بعد از هضم آن به حسگرهای خارج از بدن اجازه دهد تا فعالیت‌های مغزش را خوانده و در نهایت مغز او را کنترل کند. فناوری دوم، یک فناوری غیرتهاجمی بوده که مغز را خوانده و آن را به کامپیوتر متصل می‌کند.

هر دو فناوری از یک رابط برخوردار هستند که بین مغز و ماشین ارتباط برقرار می‌کند و اطلاعات را از مغز به ماشین و از ماشین به مغز می‌رساند. البته هنوز مشخص نیست که دارپا قصد دارد چگونه از این فناوری استفاده کند. آل اموندی از مدیران این برنامه دارپا می‌گوید که این رابط می‌تواند برای کنترل اشیاء پرنده بدون خلبان استفاده شود به‌طوری که کاربر تنها با مغز خود اقدام به کنترل این پرندگان بدون سرنشین کند. به اعتقاد وی، در آینده نزدیک این فناوری می‌تواند سامانه‌های خودکار را توسعه داده به‌طوری که نقش پررنگی در عملیات‌های نظامی داشته باشند.

اموندی می‌گوید: « ابزارهایی که ما استفاده می‌کنیم در حال پیشرفت و پیچیده‌تر شدن هستند. اما هنوز این تجهیزات نیاز به کنترل فیزیکی توسط یک کاربر دارند که باید آن را لمس کرده یا با صوت آن را کنترل کند. با استفاده از رابط‌های نرونی می‌توان این ابزارها را تقویت کرد و کنترل بهتری روی آنها داشت.»

دارپا پیش‌بینی می‌کند که 4 سال زمان برای تکمیل این پروژه نیاز دارد.

منبع
#bci @unixmens
📣آسیب‌پذیری اجرای دستورات شل در تلفن‌های تحت شبکه از محصولات شرکت Cisco
به‌تازگی محققان امنیت کشف کردند که نقص اعتبار در ورودی رابط کاربری تلفن‌های تحت شبکه‌ی شرکت cisco در ورژن های 6800 ، 7800 و سری‌های 8800 به کاربران معتبر اجازه می‌دهند از راه دور دستورات شل دلخواه خود را در سیستم هدف اجرا کنند.
🔴در تلفن‌های تحت شبکه همگرایی شبکه‌های صوت و دیتا امکان‌پذیر می‌باشد،از آنجائی که به تلفن‌های مذکور آدرس IP اختصاص می‌یابد لذا امکانات در آن بسیار زیاد است و این امکانات و قابلیت‌ها بستگی به ویژگی‌هایی که تولیدکنندگان روی آن قرار می‌دهند دارد. کاربردهای مــهم آن شامل پیام‌های یکپارچه، همکاری ، کنفرانس و غیره می‌باشد. با استفاده‌ از این تلفن‌ها می‌توان اطلاعات شبکه را در حال پاسخ به مکالمه خواند و یا به یک سرویس مبتنی بر شبکه برای چک کردن پست الکترونیکی، وضعیت هوا، شرایط ترافیک یا چک کردن موجودی خود در بانک وصل شد.
#security @unixmens
مدرک تحصیلی مفهومی شخصی !
در عصر کنونی مهم این نیست در کجا علم را کسب کنی ، مهم این هست ، آن را داشته باشی .
حال ۱۵ کمپانی مطرح شرط استخدامی آن ها هیچ مدرکی نیست !
https://www.glassdoor.com/blog/no-degree-required/
از شرکت هایی که میشه از آن ها نام برد :‌
1. Google
2. Ernst and Young (EY)
3. Penguin Random House
4. Costco Wholesale
5. Whole Foods
Apple
IBM
Bank of America
...
#jobs #news @unixmens
آشنایی با 10 آسیب پذیری رایج وب سایت ها - OWASP Top 10 https://www.dropbox.com/s/5g3jtxmimojpz6o/OWASP%20Top%2010-2017%20%28en%29.pdf?dl=0 #owasp #security @unixmens
هزینه و زمان زیادی برای هدایت کاربران به سایتتون صرف می‌کنید اما خیلی راحت این مشتریان بالقوه رو از دست می‌دید. با کاربران گفتگو کنید، نیازشون رو بدونید، رفتارشون رو بررسی کنید و حسِ خوبِ خاص بودن رو بهشون القاء کنید. https://rocket.chat/ این بستر رو برای شما فراهم میکند
این پروژه بصورت متن باز می باشد و در نسخه های سرور ، کلاینت ، موبایل قابل دسترس هست .
#chat #server #linux #bussiness @unixmens
با #jenkins آشنا شویم
اگر برنامه نویس هستید احتمالا با مشکلات زیادی که هنگام برنامه نویسی پیش می آید برخورد کرده اید. شروع کار هر پروژه کامپیوتری که از روش سنتی و بدون تست استفاده میکند معمولا سریع پیش می رود و رفته رفته سرعت توسعه کم و کمتر می شود. این شرایط درست شبیه به شرایطی است که در باتلاق رخ میدهد هر چه بیشتر دست و پا می زنید بیشتر غرق می شوید...

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

همین روند باعث شد تا روشی جدید برای برنامه نویسی به نام test driven development یا به اختصار TDD ابداع شود. در این روش یک سیکل دائمی وجود دارد که منجر به کاهش جشمگیر میزان باگ ها خواهد شد.
در شکل بالا روند کلی این روش نشان داده شده است. این روش به این صورت است که برنامه نویس باید دو توع کد را موازی با هم پیش ببرد یکی کد اصلی و دیگری کد تست نام دارد. کد تست کد اصلی را تست می کند و کد اصلی خود برنامه اصلی است. روند کار در TDD به این صورت است که ابتدا سعی می کنیم تستی بینویسیم که fail شود. سپس سعی می کنیم تا کد اصلی خود را طوری تغییر دهیم که آن تست pass شود بعد از این کار به تمیز کردن کدهایی که زدیم می پردازیم (مثلا انتخاب نام های بهتر برای متغیرها و کم کردن حجم توابعی که نوشتیم برای خواناتر شدن کد) بعد از این کار این روند را تا ابد تکرار می کنیم. اگر بخواهیم نمودار بالا را ساده تر نشان دهیم می توانیم آن را به سه قسمت Red و Green و Refactor تقسیم کنیم :

د RED : در این حالت هدف نوشتن تستی است که fail شود. شاید پیش خودتان بپرسید چرا باید همچین کاری کرد ؟ جواب این سوال در اینجاست که شما fail شدن تست خود را با چشمان خود می بینید و به این ترتیب به تستی که نوشتید اطمینان پیدا می کنید وقتی در ادامه راه توانستید pass شدن آن را هم ببینید آن وقت هم test شدن و هم pass شدن آن را دیده اید و مطمئن می شوید که این تست درست کار می کند این نکته خیلی مهمی است
د GREEN : برای تستی که در مرحله قبل fail شده کد اصلی ای مینویسید که تست fail شده را pass کند به این ترتیب شما به تست خود اعتماد می کنید چون هم fail شدن و هم pass شدن اش را دیده اید
د REFACTOR : در این مرحله کدهایی که در دو مرحله قبل زده اید را از لحاظ خوانایی بهتر میکنید مثلا کارهایی از قبیل کم کردن تعداد خطوط توابع یا بهینه کردن پارامترهای ورودی آنها
به این ترتیب درواقع ما کد اصلی را مانند قطعات پارل کنار هم قرار می دهیم. هر کدام از این قطعات تست شده اند و احتمال وقوع باگ را در ادامه کار کاهش می دهند. شاید در ابتدا اینگونه به نظر برسد که نوشتن تست برای کد سرعت توسعه را کاهش می دهد شاید در ابتدای کار این حرف درست باشد اما هر چقدر که کار جلوتر می رود دیگر مانند قبل در باتلاقی که توصیف کردم فرو نمی روید و با سرعتی تقریبا ثابت به کار ادامه می دهید. چیزی که در این روش توسعه به شدت محسوس است کاهش میزان debug کردن در حین کار است.
نقش jenkins در این داستان کجاست ؟

حال که نقش تست نرم افزار را درک کردید به سراغ یکی از ابزارهای معروف برای continuous integration به نام jenkins می رویم. این برنامه برای کار تیمی روی یک پروژه درست شده است و بطور اتوماتیک خودش با یک اتفاق خاص (مثلا هر ۲۰ دقیقه یکبار یا با هر بار push کردن کد) تست هایی که برایش به عنوان یک کار (job) تعریف کردیم را اجرا کند و بلافاصله نتیجه را نشان میدهد اگر تست ها fail شدند تمام اطلاعات ذخیره شده و معلوم میشود که با کدام commit بوده که تست fail شده و مشکل را میتوان سریعتر حل کرد مثلا مدیر پروژه میتواند این موضوع را سریعا دیده و اطلاع دهد تا مشکل قبل از بزرگتر شدن حل شود.
نصب jenkins

برای نصب jenkins می توانید به آدرس jenkins.io رفته و متناسب با سیستم عامل خود installer موردنظر خود را دانلود و نصب کنید. همچنین اگر java runtime برروی سیستم شما نصب است می توانید فایل نصب war. را دانلود کنید و با دستور زیر آنرا اجرا کنید:

java -jar <name of file>.war

در دستور بالا به جای <name of the file> نام فایلی را که دانلود کرده اید قرار دهید. (مثلا jenkins.war) بعد از اجرای این دستور در log هایی که در اجرای دستور می آیند شماره پورتی که سرور روی آن اجرا می شوند نمایش داده میشود (معمولا این عدد ۸۰۸۰ است) بعد از اینکه سرور آماده برای کار شد میتوانید در مرورگر ip و port ای که دارید را وارد کنید (اگر local هستید این آدرس localhost:port و اگر برروی سرور این عملیات را انجام دادید server_ip:port را وارد کنید.) پس از انجام مراحل نصب باید چیزی شبیه به تصویر زیر ببینید