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

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Armon technical logs (armon Taheri)
ارایه های ایرناگ فنی ترین و یونیک ترین مطالب مربوط به شبکه در ایران هست که تا به حال دنبال کردم
https://t.iss.one/irnog
Forwarded from 
jspr.jdisf.ac.ir

صد رحمت به وبگاه‌های دولتی، وبگاه‌های علمی فاجعه‌ن!

#موقت
سوال مصاحبه: چطور میشه بررسی کرد که نام کاربری بین یک میلیارد کاربر تکراری نباشه؟

این روزها با رشد سریع کسب‌وکارها، ثبت‌نام کاربرهای جدید هم به یه چالش تبدیل شده. یکی از مهمترین بخش‌ها اینه که مطمئن بشیم هر کاربر یه نام کاربری منحصربه‌فرد داره. اخیراً در مورد این موضوع یه تحقیقی کردم و دو راه‌حل خوب پیدا کردم: استفاده از حافظه Redis و فیلتر Bloom. هر دو کمک میکنن سریع و بدون فشار زیاد به سیستم، نام کاربری جدید رو بررسی کنیم.

مشکل کجاست؟
اگه بخوایم از روش‌های سنتی و دیتابیس برای بررسی نام کاربری استفاده کنیم، با زیاد شدن کاربرها سیستم کند میشه و با مشکلات زیر روبه‌رو میشیم:
- کندی در درخواست‌ها
- فشار زیاد به دیتابیس، که باعث مصرف زیاد منابع میشه.
- مشکل در مقیاس‌پذیری، یعنی وقتی تعداد درخواست‌ها زیاد بشه، سرور نمیتونه همه رو مدیریت کنه.

استفاده از Redis: سریع ولی پرمصرف
ردیس Redis کمک میکنه که بررسی نام کاربری خیلی سریع بشه، چون داده‌ها رو توی حافظه ذخیره میکنه. اما این روش یه مشکل بزرگ داره: حافظه زیادی مصرف میکنه. مثلاً برای یک میلیارد نام کاربری به 15 گیگابایت حافظه نیاز داریم! که تو سیستمهای بزرگ، خیلی پرهزینه و غیرعملی میشه.

فیلتر Bloom: ساده، بهینه و کم‌مصرف
حالا بریم سراغ فیلتر Bloom. این فیلتر یه روش خیلی بهینه‌تره که فضای حافظه خیلی کمتری استفاده میکنه. برای همون یک میلیارد نام کاربری، فقط 1.67 گیگابایت حافظه نیاز داره!

اما فیلتر Bloom چیه؟ بذار یه مثال ساده بزنم:
فرض کن یه کیف داری که یه سری جیب کوچیک داره. هر بار که میخوای یه نام کاربری جدید رو ذخیره کنی، یه سری کلید (یعنی همون الگوریتمهای هش) بهت میگه تو کدوم جیب‌های کیف بذاری. بعد اگه بخوای ببینی اون نام کاربری قبلاً ذخیره شده یا نه، فقط کافیه جیب‌های مشخص شده رو چک کنی. اگه تو هر جیب چیزی باشه، یعنی احتمالاً اون نام کاربری قبلاً استفاده شده. ولی اگه یکی از جیب‌ها خالی باشه، مطمئنی که اون نام کاربری وجود نداره.

با این روش:
- حافظه کمی استفاده میشه
- سرعت بررسی خیلی بالاست

البته یه نکته کوچیک داره: بعضی وقتا ممکنه به اشتباه بگه که یه نام کاربری هست در حالی که نیست (این همون خطای مثبت یا False Positive هست)، ولی در اکثر مواقع این خطا قابل چشم‌پوشیه.

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

@DevTwitter | <Massimo Dev/>
“Artificial Neural Networks are Reconstructing Human Thoughts in Realtime”


Blog Post Link
Forwarded from CleverDevs (Arian)
💢 خرید نیروگاه هسته ای توسط مایکروسافت!

مایکروسافت برای تأمین انرژی توسعه و نگهداری هوش مصنوعی خود، توافقی ۲۰ ساله با نیروگاه هسته‌ای Three Mile Island کرد که در سال 1979 میلادی بنا به دلایلی به مشکل برخورده و بصورت قسمی ذوب شده و پس از نشتی انرژی هسته ای تعطیل شده بود.
زینپس با رفع این مشکل تمامی انرژی تولید شده توسط این نیروگاه به سرور های هوش مصنوعی مایکروسافت اختصاص داده می‌شود.
مورد قابل توجه دیگر این است که، با این مقدار انرژی هسته‌ای میتوان انرژی لازم هشتصد هزار خانه در آمریکا و حدود سه میلیون خانه در ایران را تامین کرد!
#Microsoft | #AI
@CleverDevs - @CleverDevsGp
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
🗓 ابزار mitmproxy یک HTTPS proxy تعاملی برای debugging, testing و ... به کار میره

پلاگین Kubernetes داره و اگر بخواهید یک REST APIs را به صورت خودکار reverse-engineer کنید روی OpenAPI 3.0 به راحتی با پلاگین امکن پذیره

رهگیری، بازرسی، اصلاح و ارسال مجدد ترافیک روی HTTP/2/1, WebSockets یا هر نوع SSL/TLS-protected

🔥 در نسخه ۱۱ پشتیبانی کامل HTTP/3 را اضافه کرده

💠 امکانات مهم :
✳️ رابط Command Line
انواع پیام‌ها از HTML تا Protobuf را به سادگی رمزگشایی، پیام‌های خاصی را در لحظه رهگیری، قبل از رسیدن به مقصد آن‌ها را اصلاح و بعداً آن‌ها را برای یک کلاینت یا سرور دوباره ارسال کنید.

✳️ رابط Web Interface
با رابط وب با mitmweb شبیه به DevTools برای هر برنامه یا دستگاه دیگری به همراه ویژگی های اضافی مانند رهگیری درخواست و ارسال مجدد استفاده کنید

✳️ رابط Python API
با mitmdump افزونه های قدرتمند و اسکریپت mitmproxy میتوانید بنویسد. API اسکریپت کنترل کاملی را بر mitmproxy ادارد و امکان تغییر خودکار پیام‌ها، تغییر مسیر ترافیک، مشاهده پیام‌ها یا امکان اجرای دستورات میدهد

گیت هاب

#امنیت #پایتون #python
اگر مثل من با Django REST Framework (DRF) کار میکنی و دنبال راهی برای سریعتر کردن APIهات هستی، حتماً باید drf-cache رو امتحان کنی.

این ابزار چیکار میکنه؟

با کش کردن درخواست‌های API به شما کمک میکنه تا فشار روی دیتابیس کمتر بشه و سرعت پاسخ‌دهی APIها به‌طور چشمگیری افزایش پیدا کنه

میتونی کش کردن رو برای هر ویو یا کوئری به‌طور جداگانه تنظیم کنی، این یعنی کنترل کامل روی نحوه ذخیره‌سازی و بازیابی داده‌ها

فوق‌العاده مفیده برای APIهای سنگین یا پرتقاضا که نیاز به بهینه‌سازی دارن

اگه میخوای کارایی APIهات رو بهبود بدی و لود سرورت رو کم کنی، drf-cache یکی از بهترین گزینه‌هاست!

پ.ن: (اگه داده‌های زیادی رو کش کنی، این میتونه حافظه سرور رو بیشتر مصرف کنه. به‌خصوص اگر کوئری‌ها یا درخواست‌ها خیلی بزرگ و پیچیده باشن و برای APIهایی که باید به سرعت اطلاعات رو به‌روزرسانی کنن (جایی که داده‌ها مرتباً تغییر میکنن)، استفاده از کش میتونه باعث بشه کاربران داده‌های جدید رو دیرتر ببینن. در این مواقع، باید خیلی هوشمندانه کشینگ رو تنظیم کنی.
و همچنین استفاده از drf-cache نیاز به تنظیمات دقیق داره، و اگر به‌درستی تنظیم نشه، ممکنه اصلاً نتونی ازش بهینه استفاده کنی یا برعکس، عملکرد رو حتی بدتر کنی.)

https://github.com/chibisov/drf-extensions

@DevTwitter | <Shima Fallah/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
🔶 تنسنت به‌دنبال تصاحب یوبیسافت، خالق بازی‌های اسسینز کرید است

بلومبرگ گزارش می‌دهد که شرکت‌های تنسنت هولدینگز و خانواده‌ی گیلموت، بنیان‌گذار یوبیسافت اینترتیمنت، در حال انجام مذاکره‌ای هستند که می‌تواند به خرید احتمالی خالق بازی‌های اسسینز کرید منجر شود.

#خبر
@TheRaymondDev
ترکیب وردپرس و لاراول Laravel خیلی جذابه واقعا.
اول از همه Corcel رو نصب می‌کنید و پروژه لاراول رو باهاش کانفیگ می‌کنید.
حالا وردپرس رو نصب می‌کنید و با پلاگین WordPress Pete ستش می‌کنید روی لاراول.

اینجوری یه سایت لاراولی دارید با بک‌اند وردپرس

@DevTwitter | <Pedram/>
Forwarded from Accio
I've just implemented decompression for this program as well. This is still compatible with linux compress program except for reset characters which are to be implemented later on.

Repo:
https://github.com/Keivan-sf/lzw/

#compression #lzw
یکی از میانبرهای کاربردی داخل #پلاسما ترکیب کلید‌های alt + f2 هستش که krunner رو اجرا می‌کنه براتون و از krunner شما می‌تونید یک سری ابزارهارو باز کنید، وبگردی کنید و یا حتی معادلات ساده ریاضی رو انجام بدید.

همینطور krunner پلاگین‌هایی داره که از KDE Store می‌تونید نصب کنید.



@SohrabContents
Forwarded from Go Casts 🚀
داشتم یه نگاهی به کتاب foundations of scalable systems مینداختم که یه بخشی ش در مورد مقیاس پذیر کردن دیتابیس به کمک کش صحبت میکنه.

A well-designed caching scheme can be invaluable in scaling a system. Caching
works great for data that rarely changes and is accessed frequently, such as inventory
catalogs, event information, and contact data. If you can handle a large percentage,
say, 80% or more, of read requests from your cache, then you effectively buy extra
capacity at your databases as they never see a large proportion of requests.

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

استراتژی های caching یکی از همون اصول ساده و مهمه که به مقیاس پذیری سیستم خیلی کمک میکنه.

کش کردن استراتژی های مختلفی داره و نباید کورکورانه استفاده بشه، چالش و دغدغه هایی هم ایجاد میکنه مثل مساله invalidate کردن کش یا thundering herd که در موردش چند روز پیش صحبت کردم.

کش کردن تو لایه های مختلف استفاده میشه و شما میتونید از مزایای این استراتژی در همه لایه ها استفاده کنید.

خود کلاینتی که مثلا اپلیکیشن وب یا موبایل هست میتونه یه سری داده رو کش کنه.

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

سرویس gateway شما میتونه یه سری api رو کش کنه که لود روی اپلیکیشن شما نیفته.

اپلیکیشن شما میتونه هم روی http server یه سروی api رو کش کنه و هم میتونه تو لایه کوئری زدن به دیتابیس یه سری کوئری ها رو کش کنه.

سرویس دیتابیس هم معمولا خودشون استراتژی های مختلفی دارن برای کش کردن کوئری ها.

سیستم فایل و دیسک هایی که دیتابیس ها استفاده میکنن هم خودشون pageهای دیسکی که بیشتر استفاده میشه رو کش میکنن.

سیستم عامل هم خودش چندین لایه کش داره.


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

@gocasts
Audio
رادیو جادی ۱۷۵ - کار و زندگی و تنبلی و فلسفه و جهان بینی در گپی با پادکست کارگاه

https://youtu.be/TC9VV4nxLvc

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

#پادکست #رادیو
فرقی نداره تو چه حوزه‌ای می‌خواین کار کنید؛ بک‌اند، فرانت‌اند، هوش مصنوعی یا هر چی که به ذهنتون می‌رسه، سایت roadmap.sh‎ برای شماست.

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

@DevTwitter | <Reza Jafari/>
This media is not supported in your browser
VIEW IN TELEGRAM
توی پست جدید اینستاگرام یه سایت بهتون معرفی کردم که سورس کد کلی بک گراند انیمیشنی خفن رو براتون گذاشته که میتونید ازشون توی وبسایتتون استفاده کنید 🤩

💎 لینک ویدیو

#️⃣ #NEWPost #website

🚀 @coolycode
شاید این سوال براتون پیش اومده باشه که چطور میشه استیم دک رو بدرد نخورش کرد؟
خب یکی از روش ها نصب ویندوزه، ولی اگه خیلی توی این راه افراط دارید دوستان روی استیم دک هکینتاش بالا آوردن:

https://www.tomshardware.com/software/macos/deckintosh-has-apples-latest-macos-sequoia-running-on-the-steam-deck

@SohrabContents
Forwarded from 
GitHub.com/quickemu-project/quickemu

این چند وقته درگیر دنیای هکینتاش و رفقاش بودم و این پروژه بین راه نظرمو جلب کرد:
(قبلاً کانال گذاشته بودم، مجدد قرارش دادم چون ایدهٔ پشتش قشنگه.)

#note #FLOSS #معرفی
@amiria703_channel
Forwarded from Linuxor ?
موش شانون


شانون توی ۱۹۵۰ یه موش مصنوعی، به اندازهٔ یه موش واقعی که با مدارهای رله کنترل می‌شد، اختراع کرد که می‌تونست توی یه هزارتوی ۲۵ مربعی حرکت کنه و هدف رو پیدا کنه. این موش هر جای این هزارتو که قرار داده می‌شد، می‌تونست با توجه به تجربهٔ قبلی‌اش، مسیر خود را به سوی هدف پیدا کنه و طوری برنامه‌ریزی شده بود که اگه توی جایی ناشناخته قرار می‌گرفت، برای یافتن جاهای آشنا جست‌وجو و از آن‌ها به سمت هدف حرکت کنه. با این کار، دانش جدیدی به حافظه موش اضافه می‌شد که همون جای ناشناخته بود. موش شانون، اولین وسیله با توانایی یادگیری بود.


🐧 @Linuxor