Dev Perfects – Telegram
Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
سیستم۷۶، شرکت سازنده پاپ او اس و میزکار کازمیک که یک شرکت تولید کننده سخت افزار هم هست به تازگی از ورک‌استیشن جدید آرم خودش رونمایی کرده که من زیاد چیزی نمیگم خودتون برید مشخصاتش رو بخونید :)))

https://system76.com/desktops/thelio-astra-a1-n1/configure

@SohrabContents
Forwarded from Go Casts 🚀
تجربه یه incident با رعایت نکردن اصول ساده

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

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

قبل از اینکه شرح بدم incident چی بود در مورد root cause صحبت می کنم که تابع Get از پکیج net/http بود. خیلی هاتون ممکنه برای ارسال درخواست های http در گولنگ از این تابع استفاده کنید و خیلی کار رو هم ساده می کنه.

https://pkg.go.dev/net/http#Get


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

این سرویس با همین مشخصات روی پروداکشن زیر لود بود که فهمیدیم سرویس خارجی ای که اطلاعات رو ازش میگیریم خیلی latency بالایی داره و همین باعث شده درخواست های زیادی باز بمونن برای مدت طولانی و مصرف رم و cpu سرویس بالا رفته و پاسخ ها دچار response time بالا شدن.

اولین نکته ای که به ذهن میرسه اینه که خب بهتره از context timeout استفاده کنیم برای درخواست ها که مثلا یه درخواست http به سرویس خارجی بیشتر از ۳۰ ثانیه باز نمونه.
که خب تابع Get خودش ورودی context نمیگیره، پس باید به فکر راه دیگه ای بود.
برنامه نویس فهمیده بود که تابع Get داره از http.DefaultClient استفاده میکنه و این client یه فیلد timeout داره، پس خیلی سریع تایم اوت رو ست کرد، به این صورت

http.DefaultClient.Timeout = time.Second * 5

کد دیپلوی شد و رفت روی پروداکشن، اتفاقی که افتاد این بود که دیگه مشکل response time وجود نداشت برای سرویس خارجی و اگه درخواست بیشتر از ۵ ثانیه طول میکشید کنسل میشد.

اما یه مشکل جدید خیلی بد بوجود اومده بود، ماژول پرداخت به فنا رفته بود و نمیتونست پرداخت هارو درست مدیریت کنه.

علت چی بود؟‌ علت این بود که اونم داشت از http.Get استفاده میکرد و با تنظیم شدن تایم اوت ۵ ثانیه، اونم درخواست های بیشتر از ۵ ثانیه رو کنسل میکرد.

خب خیلی ها شنیدید که الگوی singleton خیلی جاها میتونه bad practice باشه و یکی از اون جاها همین default http clientی هست که پکیج net/http ارائه میده.

درست ش این بود که هر ماژول برای درخواست های خودش یه http client مجزا داشته باشه که تایم اوت خاص خودش رو ست کنه. حتی میشه از این تابع NewRequestWithContext
استفاده کرد که context رو هم پشتیبانی کنه.

https://pkg.go.dev/net/http#NewRequestWithContext


مشکل singleton اینه که side effectهای تغییر singleton object مبهم میشه، شما میای برای درخواست های سرویس خارجی تایم اوت ست کنی، ولی عملا درخواست های پرداخت رو به فنا میدی..

پکیج net/http و پکیج های دیگه گولنگ برای راحتی استفاده خیلی وقت ها یه default object ارائه میدن، ولی واقعا باید برای استفاده از این objectها احتیاط کرد. بهتره instance خاص خودت رو بسازی که مدیریت stateش فقط خودت رو تحت تاثیر بذاره و side effect نداشته باشه.

@gocasts
لیبل آزمایشی از حالت اتصال Tun بعد از رفع اشکال و بروزرسانی‌های متعدد از #oblivionDesktop حذف شد و الان می‌تونین با خیال راحت‌تری از این‌برنامه در ویندوز، لینوکس و مک استفاده کنین.

شرح تغییرات نسخه ۲.۴۰ و دریافت فایل موردنظر:
🚀 github.com/bepass-org/oblivion-desktop/releases

گزارش مشکل، مشارکت یا ارائه پیشنهاد:
🛟 github.com/bepass-org/oblivion-desktop/issues

💡 نکته: تیم توسعه‌دهنده #oblivion درحال کار بر روی آپدیت جدیدی برای گوشی‌های #اندروید هست، که به‌زودی منتشر میشه.

🔍 ircf.space/software
@ircfspace
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
🔰پلتفرم امنیتی چندوجهی (Polymorphic Security Platform)

🔹اگر در زمینه امنیت، حریم خصوصی، فارنزیک،باگ بانتی و ....هستی یا اگر دنبال ابزاراهای نصب شده در زمینه امنیت و تست نفوذ هستی
دنبال توزیعی که هم حالت نصب داشته باشد هم حالت اجرای live

🔹یا به دنبال دسترسی به :
• بیش از 40 ابزار IPv6.
• بیش از 100 موتور جستجو در زمینه امنیت
• بیش از 100 وب‌سایت آموزشی امنیت سایبری.
• بیش از 40 منبع برای اجرای آزمایشگاه‌های امنیت سایبری.
• بیش از 10 مجموعه نقشه راه (Roadmap) در حوزه امنیت سایبری.
• بیش از 150 ابزار برای تخریب داده و استرس‌تست سیستم.
• بیش از 200 ابزار AWS Cloud.
• بیش از 300 ابزار فارنزیک دیجیتال.
• بیش از 300 اسکریپت آموزشی.
• بیش از 500 ابزار تیم‌های قرمز و آبی (Red & Blue Teams).
• بیش از 100 فایل آموزشی امنیت سایبری.
• بیش از 300 ابزار امنیتی Web3 و Cloud.
• بیش از 800 وب‌سایت برای OSINT (هوش منبع باز).
• بیش از 1,000 ورودی در دیتابیس هک گوگل (Google Hacking Database).
• بیش از 2 ترابایت لیست رمزعبور (آنلاین و آفلاین).
• ابزارهایی برای هک در 7 پلتفرم مختلف شامل: Cloud و AWS، Web3، IoT و Embedded، iOS، Android، سیستم‌عامل و سخت‌افزار

هستید از توزیع لینوکس predator-os که یک پلتفرم امنیتی چندوجهی استفاده کن.
http://predator-os.ir
Forwarded from a pessimistic researcher (Kc)
Forwarded from Linuxor ?
می‌دونستین وقتی Packet بزرگتر از حد مجاز (Maximum Transmission Unit) باشه، به فرگمنت‌های کوچیکتر تقسیم میشه؟ مثلاً یک بسته 4000 بایتی به 3 فرگمنت 1500 بایتی تقسیم میشه و هرکدوم جداگونه ارسال میشن! جالب اینجاست که فرگمنت‌ها می‌تونن از مسیرهای مختلف برن و در مقصد دوباره سر هم می‌چسبن

@Linuxor
Forwarded from CleverDevs (Mammad)
اگه دنبال یه ویرایشگر ویدیوی سبک توی لینوکس میگردید shotcut گزینه خوبیه

خیلی کم حجمه و بیشتر کارای معمولی رو میتونید باهاش انجام بدید

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

https://www.shotcut.org/

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

#tools #gnu #linux
@CleverDevs - @CleverDevsGp
Forwarded from Linuxor ?
یه اشتباهی کردن توی DNS اسم ریکورد IPV4 رو گذاشتن A بعدش مجبور شدن واسه IPV6 رو بزارن AAAA.

@Linuxor
Forwarded from DevAcademy
یکی دیگه از سوالات مصاحبه های فرانت اند که کم و بیش پرسیده میشه مربوط به Type Coercion in JS
این سبک سوالات رو شاید بارها و بارها بهش برخورده باشید ولی اصطلاح اونو کمتر شنیده باشید که دونستش تو مصاحبه پوینت مثبتی میتونه باشه

https://www.linkedin.com/posts/masoud-varzi_type-coercion-in-js-this-is-one-of-those-activity-7282739915354759170-aw7B?utm_source=share&utm_medium=member_desktop

💻@DevAcaademy
💬
@DevAcademyGroup
This media is not supported in your browser
VIEW IN TELEGRAM
اولین لپ‌تاپ رول‌شونده جهان با قیمت ۳۵۰۰ دلار معرفی شد

لنوو سرانجام در نمایشگاه CES 2025 از اولین لپ‌تاپ رول‌شونده جهان با نام ThinkBook Plus Gen 6 رونمایی کرد. به گفته لنوو، عرضه این محصول در سه‌ماهه اول سال ۲۰۲۵ آغاز می‌شود و قیمت آن نیز ۳۵۰۰ دلار خواهد بود. اگرچه با قیمت بالایی روبه‌رو هستیم، اما شاید نمایشگر ثانویه که از نوع OLED است بتواند این قیمت بالا را توجیه کند.

لنوو ThinkBook Plus Gen 6 به یک نمایشگر OLED منعطف با موتورهای کوچک در لولاها مجهز شده است که می‌توانند نمایشگر را باز کرده یا آن را به سمت پایین حرکت دهند. در نگاه اول شاید این محصول شبیه به یک لپ‌تاپ ۱۴ اینچی معمولی به نظر برسد، اما با فشاردادن یک دکمه مخصوص، نمایشگر دوم شروع به بازشدن می‌کند و اندازه نمایشگر را به ۱۶.۸۷ اینچ و رزولوشن آن را به ۲۰۰۰ در ۲۳۵۰ پیکسل ارتقا می‌دهد.

از دیگر مشخصات این لپ‌تاپ می‌توان به پردازنده Core Ultra 7 سری ۲ اینتل، ۱ ترابایت SSD و ۳۲ گیگابایت رم اشاره کرد. همچنین این محصول تنها ۲ پورت تاندربولت ۴ و جک هدفون دارد.

@DevTwitter | <Digiato/>
‏استفاده از جنگو لذت بخشه
البته به شرطی که از لاراول استفاده نکرده باشی

<Ali Firouzbakhsh/>

@DevTwitter
‏واقعا از برنامه‌نویسی دسکتاپ چیزی در نمیاد، کم کم باید پی وب یا موبایل رو بمالم به تنم.
مدت کمی Flutter کار کردم، ازش خوشم اومد، اما حس می‌کنم web آینده‌ی بهتری داره.
برم سمت جنگو؟ موندم، ولی اگر گازانبری شروع به یادگیری کنم، حس می‌کنم ۳ ماهه بشه به نقطه خوبی رسید

<Aref/>

@DevTwitter
‏حقیقتا این که جنگو به این خوبی سرعت پایینی داره، منو خیلی میسوزونه. کاش این پایتون این طوری نبود.

<Amirmahdi Tafreshi/>

@DevTwitter
‏نفرت درونی یعنی چی؟ یعنی جنگو رست فرمورک رو کمتر از ۳ روز یاد گرفتم و یه پروژه کامل باهاش زدم، اما بعد ۳ ماه هنوز لاراول رو درست حسابی بلد نیستم :))

<Muhammadreza Haghiri/>

@DevTwitter
بازم بگید جنگو توی اینستا گرام و پینترست به کار رفته ://
اینم از نتیجه ی مقایسه اش حتی اونقد پرفورمنس جنگو بد بوده سال 2021 توی بنچمارک قرار نگرفت.
این یک لیست از دیتابیس به همراه تیبل های رابط این لیست رو استخراج میکنه( حالا تا اونجایی که خبر دارم. )
اون پرفورمنسشون هست.
زنده باد لاراول و میکرو فریموک قدرتمند lumen

@DevTwitter | <mamad shirazi/>
‏به نظرم ذاتا ادما هر وقت به چیزی پول نمیدن اهمیتی نداره براشون حالا شما میتونی اینو تعمیم بدی به زبون های برنامه نویسی فریمورکاشون
یا حتی کورس ها و رادیو ها پادکست ها و...
مثلا فک کن استفاده از فریمورک جنگو پولی بود و دسترسی به داکیومنتش سخت
خیلی داکیومنت خوانی بیشتر بود
و بنظرم حتی جامعه ی کاربریش سواد بیشتری هم داشتن
چون رایگانه و لیمیت نداره هی امروز و فردا میشه و هیچ وقت خونده نمیشه اون داکیومنت لنتی

@DevTwitter | <amir_valizadeh/>
Forwarded from a pessimistic researcher (Kc)
Forwarded from a pessimistic researcher (Kc)
Forwarded from a pessimistic researcher (Kc)
Forwarded from a pessimistic researcher (Kc)