Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 آمریکا شرکت کمپانی تنسنت، مالک پیامرسان WeChat را به فهرست شرکتهای نظامی اضافه کرد
#خبر
@TheRaymondDev
#خبر
@TheRaymondDev
Forwarded from ASafaeirad
Linkedin
ویکی تجربه on LinkedIn: ورق بزنید... | 36 comments
فکر میکنین قلدری فقط به خیابان و محله بستنه؟؟
(لطفاً برای آگاهی دقیق مطالعه کنید)
وقتی در سازمان رفتارهایی رخ میده که باعث آزار و اذیت همکار میشه، هرچند این رفتارها غیر فیزیکی است اما بصورت عمدی و مکرر انجام میشه. این رفتارها در دل خودش خشونت و سوء استفاده…
(لطفاً برای آگاهی دقیق مطالعه کنید)
وقتی در سازمان رفتارهایی رخ میده که باعث آزار و اذیت همکار میشه، هرچند این رفتارها غیر فیزیکی است اما بصورت عمدی و مکرر انجام میشه. این رفتارها در دل خودش خشونت و سوء استفاده…
Forwarded from Python BackendHub (Mani)
Forwarded from CleverDevs (Mammad)
Forwarded from Woland's Linux Journal (Woland)
💠Qman💠
برنامهای جدید برای خواندن صفحات راهنمای یونیکس
ویژگیها:
صفحه نمایه که تمام صفحات راهنمای موجود در سیستم را به ترتیب الفبایی و سازماندهی شده بر اساس بخش نمایش میدهد.
صفحات برای نتایج apropos و whatis
پیوندهای متنی به صفحات راهنمای دیگر
پیوندهای متنی برای URLها و آدرسهای ایمیل (به طور پیشفرض با xdg-open مدیریت میشود)
پیوندهای متنی درون صفحه
فهرست مطالب برای هر صفحه راهنما
نصب:
پیشنیازها:
کامپایل:
👉🔗 Github
#معرفی
برنامهای جدید برای خواندن صفحات راهنمای یونیکس
ویژگیها:
صفحه نمایه که تمام صفحات راهنمای موجود در سیستم را به ترتیب الفبایی و سازماندهی شده بر اساس بخش نمایش میدهد.
صفحات برای نتایج apropos و whatis
پیوندهای متنی به صفحات راهنمای دیگر
پیوندهای متنی برای URLها و آدرسهای ایمیل (به طور پیشفرض با xdg-open مدیریت میشود)
پیوندهای متنی درون صفحه
فهرست مطالب برای هر صفحه راهنما
نصب:
git clone -b main https://github.com/plp13/qman qmanپیشنیازها:
sudo pacman -S base-devel git meson libinih python-cogapp pandoc man-db man-pagesکامپایل:
cd qman
meson setup build/ src/
cd build/
meson compile
sudo meson install
👉🔗 Github
#معرفی
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
پست جدید
جنگ چیپ ها chipset war به زودی.....
جنگ چیپ ها chipset war به زودی.....
Forwarded from Anophel | آنوفل
ولی خب، چون احتمال داره عدد زوج تولید بشه، پانیک میخوریم و برنامه میترکه!
برای مدیریت این خطا، اولین ایده ممکن اینه که یه recover تو گوروتین اصلی بذاریم حالا اگر بیاییم و یه recover توی گوروتین اصلی بیذاریم، ولی بازم پانیک میکنه! چرا؟
چون recover فقط توی همون گوروتینی جواب میده که خطا توش اتفاق افتاده. اینجا خطاها توی گوروتینهای کارگر اتفاق میفته، ولی ما داریم توی گوروتین اصلی recover رو صدا میزنیم. (گوروتین ها مستقل از هم دیگه هستن!)
اینجوری هر گوروتین خودش خطای خودش رو مدیریت میکنه و توی گوروتین اصلی متوجه میشیم که همه چیز اوکی بود یا نه.
#گو #گولنگ #Go #golang
Please open Telegram to view this post
VIEW IN TELEGRAM
1Stp Klosr (The Humble Brothers Reanimation) [feat. Jonathan Davis]
Linkin Park
مغزم یه همچین ریتمی رو نیاز داشت.
Forwarded from Ninja Learn | نینجا لرن
دوستاااان 🎉 بالاخره سرور دیسکوردی که قولش رو داده بودم آماده شد 😍 خوشحال میشم همگی جوین بدید تا با هم یه کامیونیتی خفن و پرانرژی بسازیم 💪✨ کلی برنامه جذاب داریم که فقط توی دیسکورد قابل اجراست و همونجا براتون عملی میکنم 🎙️ این فرصت رو از دست ندید 🔥
منتظر حضور گرم همتون هستم 🫶
برای جوین اینجا کلیک کنید و بیاید پیشمون 🚀
➖➖➖➖➖➖➖➖➖
منتظر حضور گرم همتون هستم 🫶
برای جوین اینجا کلیک کنید و بیاید پیشمون 🚀
➖➖➖➖➖➖➖➖➖
🔆 CHANNEL | GROUP
Discord
Join the NinjaLearn Discord Server!
اینجا جایی برای تمامی برنامه نویسان ایران زمینه | 6 members
Forwarded from Ninja Learn | نینجا لرن
ممنون میشم برای دوستاتونم بفرستید تا به جمع ما بپیوندند 😊❤️
Forwarded from Ninja Learn | نینجا لرن
یه خبر خوبم برای دوستانی که برای دیسکورد با مشکل VPN سروکله میزنن.
دوستان یه اراعه دهنده DNS هست
به اسم الکترو
برید توی این سایت همون اول یه دکمه هست DNS و DNS رو ست کنید بعدش میبینید که دیسکوردتون به راحتی باز میشه. 😁
➖➖➖➖➖➖➖➖➖
دوستان یه اراعه دهنده DNS هست
به اسم الکترو
برید توی این سایت همون اول یه دکمه هست DNS و DNS رو ست کنید بعدش میبینید که دیسکوردتون به راحتی باز میشه. 😁
➖➖➖➖➖➖➖➖➖
🔆 CHANNEL | GROUP
electrotm.org
آزاد باش
Forwarded from محتوای آزاد سهراب
سیستم۷۶، شرکت سازنده پاپ او اس و میزکار کازمیک که یک شرکت تولید کننده سخت افزار هم هست به تازگی از ورکاستیشن جدید آرم خودش رونمایی کرده که من زیاد چیزی نمیگم خودتون برید مشخصاتش رو بخونید :)))
https://system76.com/desktops/thelio-astra-a1-n1/configure
@SohrabContents
https://system76.com/desktops/thelio-astra-a1-n1/configure
@SohrabContents
system76
Thelio Astra
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
خیلی وقت ها پیش میاد که ما یه سری نکته ساده رو رعایت نمی کنیم و همین موضوع باعث میشه که مشکلات بزرگی در سیستم رخ بده.
من سعی میکنم نکات کوچیکی که طبق تجربه خودم داشتم یا اطرافیانم داشتند رو گاه به گاه منتشر کنم. امروز در مورد یکی از این موارد که باعث 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
pkg.go.dev
http package - net/http - Go Packages
Package http provides HTTP client and server implementations.
Forwarded from IRCF | اینترنت آزاد برای همه
لیبل آزمایشی از حالت اتصال Tun بعد از رفع اشکال و بروزرسانیهای متعدد از #oblivionDesktop حذف شد و الان میتونین با خیال راحتتری از اینبرنامه در ویندوز، لینوکس و مک استفاده کنین.
شرح تغییرات نسخه ۲.۴۰ و دریافت فایل موردنظر:
🚀 github.com/bepass-org/oblivion-desktop/releases
گزارش مشکل، مشارکت یا ارائه پیشنهاد:
🛟 github.com/bepass-org/oblivion-desktop/issues
💡 نکته: تیم توسعهدهنده #oblivion درحال کار بر روی آپدیت جدیدی برای گوشیهای #اندروید هست، که بهزودی منتشر میشه.
🔍 ircf.space/software
@ircfspace
شرح تغییرات نسخه ۲.۴۰ و دریافت فایل موردنظر:
🚀 github.com/bepass-org/oblivion-desktop/releases
گزارش مشکل، مشارکت یا ارائه پیشنهاد:
🛟 github.com/bepass-org/oblivion-desktop/issues
💡 نکته: تیم توسعهدهنده #oblivion درحال کار بر روی آپدیت جدیدی برای گوشیهای #اندروید هست، که بهزودی منتشر میشه.
🔍 ircf.space/software
@ircfspace