درود و امید که خوب باشید.
یکسری منابع قرار میدم که شاید توی این وضعیتای که امیدوارم هرچه زودتر به خوبی تموم شه، بهدردتون بخوره.
دیاناس داخلی:
5.202.100.100
5.202.100.101
رجیستری داکر:
hub.hamdocker.ir
docker.mobinhost.com
docker.arvancloud.ir
میرور NPM, PyPi و NuGet:
runflare.com/mirrors
میرور Ubuntu:
mirror.digitalvps.ir/ubuntu
ubuntu.pishgaman.net/ubuntu
ubuntu.pars.host
mirror.arvancloud.ir/ubuntu
داکیومنت یهسری از تکنولوژیها و ویکیپدیای کامپیوتر:
193.151.130.199
DNSTT Resolver:
8.8.8.8:53
77.88.8.8:53
77.88.8.1:53
2.188.21.130:53
2.189.1.1:53
یکسری منابع قرار میدم که شاید توی این وضعیتای که امیدوارم هرچه زودتر به خوبی تموم شه، بهدردتون بخوره.
دیاناس داخلی:
5.202.100.100
5.202.100.101
رجیستری داکر:
hub.hamdocker.ir
docker.mobinhost.com
docker.arvancloud.ir
میرور NPM, PyPi و NuGet:
runflare.com/mirrors
میرور Ubuntu:
mirror.digitalvps.ir/ubuntu
ubuntu.pishgaman.net/ubuntu
ubuntu.pars.host
mirror.arvancloud.ir/ubuntu
داکیومنت یهسری از تکنولوژیها و ویکیپدیای کامپیوتر:
193.151.130.199
DNSTT Resolver:
8.8.8.8:53
77.88.8.8:53
77.88.8.1:53
2.188.21.130:53
2.189.1.1:53
👍7
Mahi in Tech
درود و امید که خوب باشید. یکسری منابع قرار میدم که شاید توی این وضعیتای که امیدوارم هرچه زودتر به خوبی تموم شه، بهدردتون بخوره. دیاناس داخلی: 5.202.100.100 5.202.100.101 رجیستری داکر: hub.hamdocker.ir docker.mobinhost.com docker.arvancloud.ir …
اگر هم قصد داشتید که یک پیامرسان سلفهاست بالا بیارید (چیزی که توی این خاموشی ارتباطات به کار میاد) و حوصلهی سر و کله زدن با اینها و قطعی اینترنت رو برای بالا آوردن mattermost یا rocketchat و یا هرچی نداشتین، میتونید از سرویس hamravesh.com استفاده کنید و روش RocketChat خودتون رو بدون دردسر راهاندازی کنین، E2EE هم میشه روش فعال کرد تا خیالتون کمی راحتتر باشه.
درغیر اینصورت ایمیجهاشون توی همین رجیستریها موجود هستن، میتونید خودتون بالا بیارید.
درغیر اینصورت ایمیجهاشون توی همین رجیستریها موجود هستن، میتونید خودتون بالا بیارید.
👍4
Mahi in Tech
runflare.com/mirrors
برای دوستان داتنت دولوپر،
بهنظر میاد این سرویس رجیستری NuGet هم اضافه کرده، میتونید استفاده کنید:
https://mirror-nuget.runflare.com/
بهنظر میاد این سرویس رجیستری NuGet هم اضافه کرده، میتونید استفاده کنید:
https://mirror-nuget.runflare.com/
👍4
حواستون باشه توی این وضعیت بدون داشتن سشن فعال از اکانت تلگرامتون خارج نشید. بههیچ وجه کد OTP تلگرام ارسال یا دریافت نمیشه بر بستر پیامک.
😭3
Forwarded from IRCF | اینترنت آزاد برای همه
اپ SlipNet یک کلاینت متنباز و رایگان برای اندروید هست، که با بهرهگیری از تونلسازی DNS-over-QUIC و موتور Slipstream، امکان انتقال امن و کمتاخیر درخواستهای DNS رو فراهم میکنه.
یکی از قابلیتهای مهم این برنامه اسکن و شناسایی خودکار سرورهای DNS سازگار هست، تا کاربر بدون تنظیمات پیچیده، بهترین گزینههای موجود رو پیدا و تست کنه. همچنین امکان ساخت و مدیریت چندین پروفایل مختلف برای سرورها وجود داره، که جابجایی بین تنظیمات مختلف رو ساده و سریع میکنه.
👉 github.com/anonvector/SlipNet/releases/latest
🔍 ircf.space
@ircfspace
یکی از قابلیتهای مهم این برنامه اسکن و شناسایی خودکار سرورهای DNS سازگار هست، تا کاربر بدون تنظیمات پیچیده، بهترین گزینههای موجود رو پیدا و تست کنه. همچنین امکان ساخت و مدیریت چندین پروفایل مختلف برای سرورها وجود داره، که جابجایی بین تنظیمات مختلف رو ساده و سریع میکنه.
👉 github.com/anonvector/SlipNet/releases/latest
🔍 ircf.space
@ircfspace
▪️ حقیقتا توانی برای فعالیتهای غیرضروری نبوده و نیست، اما خب چه میشه کرد؟ مجبوریم با همون شیب ملایمی که همیشه تلاش میکردیم پیش بریم. با همهی اتفاقات وحشتناکی که افتاده حس کردم که سکوت کردن، تنها راه برای پردازش این همه درد و اندوه بوده.
👍4❤🔥3
👀 Pipeline Pattern در CSharp، وقتی متد Handleت پر از if-else و مسئولیتهای مختلف میشه.
سناریوی واقعی:
داری یک عملیات ثبت سفارش مینویسی. باید اعتبارسنجی کنی، موجودی چک کنی، تخفیف حساب کنی، توی دیتابیس ذخیره کنی، نوتیفیکیشن بفرستی و لاگ بگیری.
اگر همه این کارها رو توی یه متد طولانی بنویسی، بعد از چند ماه دیگه هیچکس جرأت تغییرش رو نداره. تستش هم که دیگه کابوسه.
☑️ راهحل ساده: Pipeline Pattern
هر مرحله رو یه کلاس مستقل میکنیم. یک Context داریم که هم Request و هم Result رو داخلش نگه میداره و با پراپرتی HasError جریان رو کنترل میکنه. Stateهای مشترک رو هم میتونیم توی همین Context نگه داریم.
⚙️ پیادهسازی و استفادهش رو هم توی تصاویر بالا گذاشتم.
هر مرحله اطلاعات مورد نیازش رو از Context میخونه، Result رو پر یا بهروزرسانی میکنه و در صورت نیاز HasError رو true میکنه. اگر جایی HasError صحیح بشه، باقی مراحل اجرا نمیشن.
مزایای این روش:
- هر کلاس فقط یک کار مشخص انجام میده
- اضافه کردن مرحلهی جدید فقط یه کلاس جدید + یه AddStep
- تست هر مرحله بهصورت جداگانه راحتتره
- کد بیزینس اصلی تمیز میمونه
البته که این فقط یک پیادهسازی ساده بود و بهروشهای مختلفی میشه این پترن رو اجرایی کرد.
سناریوی واقعی:
داری یک عملیات ثبت سفارش مینویسی. باید اعتبارسنجی کنی، موجودی چک کنی، تخفیف حساب کنی، توی دیتابیس ذخیره کنی، نوتیفیکیشن بفرستی و لاگ بگیری.
اگر همه این کارها رو توی یه متد طولانی بنویسی، بعد از چند ماه دیگه هیچکس جرأت تغییرش رو نداره. تستش هم که دیگه کابوسه.
☑️ راهحل ساده: Pipeline Pattern
هر مرحله رو یه کلاس مستقل میکنیم. یک Context داریم که هم Request و هم Result رو داخلش نگه میداره و با پراپرتی HasError جریان رو کنترل میکنه. Stateهای مشترک رو هم میتونیم توی همین Context نگه داریم.
هر مرحله اطلاعات مورد نیازش رو از Context میخونه، Result رو پر یا بهروزرسانی میکنه و در صورت نیاز HasError رو true میکنه. اگر جایی HasError صحیح بشه، باقی مراحل اجرا نمیشن.
مزایای این روش:
- هر کلاس فقط یک کار مشخص انجام میده
- اضافه کردن مرحلهی جدید فقط یه کلاس جدید + یه AddStep
- تست هر مرحله بهصورت جداگانه راحتتره
- کد بیزینس اصلی تمیز میمونه
البته که این فقط یک پیادهسازی ساده بود و بهروشهای مختلفی میشه این پترن رو اجرایی کرد.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 5👍2 2