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
Repo:
https://github.com/Keivan-sf/lzw/
#compression #lzw
ncompress
About
a fast, simple LZW file compressor
Forwarded from محتوای آزاد سهراب
و هم اکنون آغاز انتقال #پستمارکت به #گیتلب خودمیزبانی شده
https://status.postmarketos.org
@SohrabContents
https://status.postmarketos.org
@SohrabContents
status.postmarketos.org
postmarketOS Status
We continuously monitor the status of our services and if there are any interruptions, a note will be posted here.
Forwarded from محتوای آزاد سهراب
یکی از میانبرهای کاربردی داخل #پلاسما ترکیب کلیدهای alt + f2 هستش که krunner رو اجرا میکنه براتون و از krunner شما میتونید یک سری ابزارهارو باز کنید، وبگردی کنید و یا حتی معادلات ساده ریاضی رو انجام بدید.
همینطور krunner پلاگینهایی داره که از KDE Store میتونید نصب کنید.
@SohrabContents
همینطور 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
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
چند وقت پیش به دعوت میلاد به پادکست کارگاه رفتم و گپی باهاش زدم. نمیدونستم در مورد چی قراره صحبت میکنیم. فکر می کردم بیشتر قراره بگم چطوری کار می کنم و اینها ولی بیشتر در مورد فلسفه زندگی و اینها گپ زدیم به نظرم. راستش درست یادم نیست چی گفتیم ولی یادمه که گفتگوی خوبی بود. به من که خوش گذشت و قرار شد چند روز بعد از اینکه خودش منتشرش کرد و آدم ها اونجا دیدنش، منم اینجا بذارم که در آرشیو من هم باشه.
#پادکست #رادیو
https://youtu.be/TC9VV4nxLvc
چند وقت پیش به دعوت میلاد به پادکست کارگاه رفتم و گپی باهاش زدم. نمیدونستم در مورد چی قراره صحبت میکنیم. فکر می کردم بیشتر قراره بگم چطوری کار می کنم و اینها ولی بیشتر در مورد فلسفه زندگی و اینها گپ زدیم به نظرم. راستش درست یادم نیست چی گفتیم ولی یادمه که گفتگوی خوبی بود. به من که خوش گذشت و قرار شد چند روز بعد از اینکه خودش منتشرش کرد و آدم ها اونجا دیدنش، منم اینجا بذارم که در آرشیو من هم باشه.
#پادکست #رادیو
Forwarded from DevTwitter | توییت برنامه نویسی
فرقی نداره تو چه حوزهای میخواین کار کنید؛ بکاند، فرانتاند، هوش مصنوعی یا هر چی که به ذهنتون میرسه، سایت roadmap.sh برای شماست.
مسیر یادگیری رو براتون مشخص میکنه و برای هر مرحله منابع خوب معرفی میکنه.برای افرادی که نمیدونن از کجا شروع کنن عالیه، از دستش ندید.
@DevTwitter | <Reza Jafari/>
مسیر یادگیری رو براتون مشخص میکنه و برای هر مرحله منابع خوب معرفی میکنه.برای افرادی که نمیدونن از کجا شروع کنن عالیه، از دستش ندید.
@DevTwitter | <Reza Jafari/>
Forwarded from LearnPOV | لرن پی او وی
This media is not supported in your browser
VIEW IN TELEGRAM
توی پست جدید اینستاگرام یه سایت بهتون معرفی کردم که سورس کد کلی بک گراند انیمیشنی خفن رو براتون گذاشته که میتونید ازشون توی وبسایتتون استفاده کنید ⚡🤩
💎 لینک ویدیو
💎 لینک ویدیو
#️⃣ #NEWPost #website
🚀 @coolycode
Forwarded from محتوای آزاد سهراب
شاید این سوال براتون پیش اومده باشه که چطور میشه استیم دک رو بدرد نخورش کرد؟
خب یکی از روش ها نصب ویندوزه، ولی اگه خیلی توی این راه افراط دارید دوستان روی استیم دک هکینتاش بالا آوردن:
https://www.tomshardware.com/software/macos/deckintosh-has-apples-latest-macos-sequoia-running-on-the-steam-deck
@SohrabContents
خب یکی از روش ها نصب ویندوزه، ولی اگه خیلی توی این راه افراط دارید دوستان روی استیم دک هکینتاش بالا آوردن:
https://www.tomshardware.com/software/macos/deckintosh-has-apples-latest-macos-sequoia-running-on-the-steam-deck
@SohrabContents
Tom's Hardware
Deckintosh has Apple's latest macOS Sequoia running on the Steam Deck
SteamOS 3 is undoubtedly the better way to use Steam Deck, at least for now.
Forwarded from ⚝
GitHub
GitHub - quickemu-project/quickemu: Quickly create and run optimised Windows, macOS and Linux virtual machines
Quickly create and run optimised Windows, macOS and Linux virtual machines - quickemu-project/quickemu
GitHub.com/quickemu-project/quickemu
این چند وقته درگیر دنیای هکینتاش و رفقاش بودم و این پروژه بین راه نظرمو جلب کرد:
(قبلاً کانال گذاشته بودم، مجدد قرارش دادم چون ایدهٔ پشتش قشنگه.)
#note #FLOSS #معرفی
@amiria703_channel
این چند وقته درگیر دنیای هکینتاش و رفقاش بودم و این پروژه بین راه نظرمو جلب کرد:
(قبلاً کانال گذاشته بودم، مجدد قرارش دادم چون ایدهٔ پشتش قشنگه.)
#note #FLOSS #معرفی
@amiria703_channel
Forwarded from Linuxor ?
موش شانون
شانون توی ۱۹۵۰ یه موش مصنوعی، به اندازهٔ یه موش واقعی که با مدارهای رله کنترل میشد، اختراع کرد که میتونست توی یه هزارتوی ۲۵ مربعی حرکت کنه و هدف رو پیدا کنه. این موش هر جای این هزارتو که قرار داده میشد، میتونست با توجه به تجربهٔ قبلیاش، مسیر خود را به سوی هدف پیدا کنه و طوری برنامهریزی شده بود که اگه توی جایی ناشناخته قرار میگرفت، برای یافتن جاهای آشنا جستوجو و از آنها به سمت هدف حرکت کنه. با این کار، دانش جدیدی به حافظه موش اضافه میشد که همون جای ناشناخته بود. موش شانون، اولین وسیله با توانایی یادگیری بود.
🐧 @Linuxor
شانون توی ۱۹۵۰ یه موش مصنوعی، به اندازهٔ یه موش واقعی که با مدارهای رله کنترل میشد، اختراع کرد که میتونست توی یه هزارتوی ۲۵ مربعی حرکت کنه و هدف رو پیدا کنه. این موش هر جای این هزارتو که قرار داده میشد، میتونست با توجه به تجربهٔ قبلیاش، مسیر خود را به سوی هدف پیدا کنه و طوری برنامهریزی شده بود که اگه توی جایی ناشناخته قرار میگرفت، برای یافتن جاهای آشنا جستوجو و از آنها به سمت هدف حرکت کنه. با این کار، دانش جدیدی به حافظه موش اضافه میشد که همون جای ناشناخته بود. موش شانون، اولین وسیله با توانایی یادگیری بود.
🐧 @Linuxor
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy Raymond)
🔶 آشنایی با PHP-FPM: راهنمای جامع | قسمت اول
مقدمه
زبان PHP هنوز هم محبوب ترین زبان برنامه نویسی سمت سرور در توسعه وب است. همانطور که وب سایت ها و برنامه های کاربردی از نظر پیچیدگی و تقاضا افزایش می یابد، توسعه دهندگان دائما به دنبال راه هایی برای بهینه سازی عملکرد و کارایی PHP هستند. یکی از این راه حل ها که محبوبیت پیدا کرده است، PHP-FPM (FastCGI Process Manager) است که یک جایگزین برای PHP FastCGI بسیار کارآمد است. ما در این دنیای PHP-FPM را بررسی خواهیم کرد و در مورد ویژگی ها، مزایا و اینکه چگونه ممکن است سرعت برنامه های مبتنی بر PHP را تا حد زیادی بهبود بخشد، آشنا خواهیم شد.
ابزار PHP-FPM چیست؟
ابزار PHP-FPM یک جایگزین برای PHP FastCGI است که برای غلبه بر محدودیت های PHP-CGI معرفی شده است. این به عنوان یک مدیر فرآیند کار می کند، فرآیندهای PHP را مدیریت می کند و درخواست های PHP را جدا از وب سرور مدیریت می کند. با انجام این کار، می تواند چندین درخواست PHP را به طور همزمان مدیریت کند که منجر به کاهش قابل توجه تأخیر و بهبود عملکرد کلی می شود.
مزایای PHP-FPM
2.1 افزایش عملکرد
تمرکز اصلی PHP-FPM بر بهبود عملکرد برنامه های مبتنی بر PHP است. با حفظ فرآیندهای جداگانه کارگر PHP، می تواند تعداد بیشتری از درخواست های همزمان را به طور موثرتری مدیریت کند. این رویکرد به طور قابل توجهی زمان پاسخگویی را کاهش می دهد و باعث می شود برنامه های وب پاسخگویی بیشتری داشته باشند و تجربه کاربری را افزایش دهند.
2.2 بهره وری منابع
با PHP-FPM، منابع را می توان به طور موثرتری مدیریت کرد. از آنجایی که به عنوان یک مدیر فرآیند عمل می کند، می تواند تعداد فرآیندهای فعال PHP را بر اساس منابع سرور و بار درخواست ورودی کنترل کند. این از اتلاف منابع جلوگیری می کند و عملکرد سرور را بهینه می کند و به آن اجازه می دهد تا با منابع کمتر به کاربران بیشتری خدمات ارائه دهد.
2.3 پایداری و ایزولاسیون
ابزار PHP-FPM یک محیط پایدار و ایمن برای اجرای برنامه های PHP فراهم می کند. اگر یک فرآیند PHP با خطا مواجه شود یا پاسخگو نشود، بر سایر فرآیندهای فعال تأثیر نمی گذارد. این جداسازی تضمین می کند که درخواست های فردی جدا شده اند و بر ثبات کلی سیستم تأثیر نمی گذارند.
2.4 پیکربندی استخر قابل تنظیم
توسعه دهندگان می توانند پیکربندی استخر PHP-FPM را برای مطابقت با نیازهای خاص برنامه های خود تنظیم کنند. برای به دست آوردن بهترین عملکرد برای سناریوهای مختلف، فاکتورهای پیکربندی از جمله تعداد فرآیندهای فرزند، حداکثر تعداد درخواست هایی که هر کودک می تواند مدیریت کند و سایر تنظیمات را می توان تغییر داد.
#php
@TheRaymondDev
مقدمه
زبان PHP هنوز هم محبوب ترین زبان برنامه نویسی سمت سرور در توسعه وب است. همانطور که وب سایت ها و برنامه های کاربردی از نظر پیچیدگی و تقاضا افزایش می یابد، توسعه دهندگان دائما به دنبال راه هایی برای بهینه سازی عملکرد و کارایی PHP هستند. یکی از این راه حل ها که محبوبیت پیدا کرده است، PHP-FPM (FastCGI Process Manager) است که یک جایگزین برای PHP FastCGI بسیار کارآمد است. ما در این دنیای PHP-FPM را بررسی خواهیم کرد و در مورد ویژگی ها، مزایا و اینکه چگونه ممکن است سرعت برنامه های مبتنی بر PHP را تا حد زیادی بهبود بخشد، آشنا خواهیم شد.
ابزار PHP-FPM چیست؟
ابزار PHP-FPM یک جایگزین برای PHP FastCGI است که برای غلبه بر محدودیت های PHP-CGI معرفی شده است. این به عنوان یک مدیر فرآیند کار می کند، فرآیندهای PHP را مدیریت می کند و درخواست های PHP را جدا از وب سرور مدیریت می کند. با انجام این کار، می تواند چندین درخواست PHP را به طور همزمان مدیریت کند که منجر به کاهش قابل توجه تأخیر و بهبود عملکرد کلی می شود.
مزایای PHP-FPM
2.1 افزایش عملکرد
تمرکز اصلی PHP-FPM بر بهبود عملکرد برنامه های مبتنی بر PHP است. با حفظ فرآیندهای جداگانه کارگر PHP، می تواند تعداد بیشتری از درخواست های همزمان را به طور موثرتری مدیریت کند. این رویکرد به طور قابل توجهی زمان پاسخگویی را کاهش می دهد و باعث می شود برنامه های وب پاسخگویی بیشتری داشته باشند و تجربه کاربری را افزایش دهند.
2.2 بهره وری منابع
با PHP-FPM، منابع را می توان به طور موثرتری مدیریت کرد. از آنجایی که به عنوان یک مدیر فرآیند عمل می کند، می تواند تعداد فرآیندهای فعال PHP را بر اساس منابع سرور و بار درخواست ورودی کنترل کند. این از اتلاف منابع جلوگیری می کند و عملکرد سرور را بهینه می کند و به آن اجازه می دهد تا با منابع کمتر به کاربران بیشتری خدمات ارائه دهد.
2.3 پایداری و ایزولاسیون
ابزار PHP-FPM یک محیط پایدار و ایمن برای اجرای برنامه های PHP فراهم می کند. اگر یک فرآیند PHP با خطا مواجه شود یا پاسخگو نشود، بر سایر فرآیندهای فعال تأثیر نمی گذارد. این جداسازی تضمین می کند که درخواست های فردی جدا شده اند و بر ثبات کلی سیستم تأثیر نمی گذارند.
2.4 پیکربندی استخر قابل تنظیم
توسعه دهندگان می توانند پیکربندی استخر PHP-FPM را برای مطابقت با نیازهای خاص برنامه های خود تنظیم کنند. برای به دست آوردن بهترین عملکرد برای سناریوهای مختلف، فاکتورهای پیکربندی از جمله تعداد فرآیندهای فرزند، حداکثر تعداد درخواست هایی که هر کودک می تواند مدیریت کند و سایر تنظیمات را می توان تغییر داد.
#php
@TheRaymondDev
Forwarded from ASafaeirad
content-visibility
the new CSS property that boosts your rendering performance
https://web.dev/articles/content-visibility
#css
the new CSS property that boosts your rendering performance
https://web.dev/articles/content-visibility
#css
web.dev
content-visibility: the new CSS property that boosts your rendering performance | Articles | web.dev
The CSS content-visibility property enables web content rendering performance benefits by skipping rendering of off-screen content. This article shows you how to use this new CSS property for faster initial load times, using the auto keyword. You will also…
Forwarded from Linuxor ?
یه کامپیوتر 7 سال روشن بوده و کلی توش پراسس ساخته شدن و از بین رفتن، اگه عدد PID بیش از حداکثرش بشه چی میشه؟
Anonymous Quiz
48%
سیستم عامل میره PID های پایین که خالین رو دوباره استفاده میکنه.
7%
کامپیوتر کم کم به صورت Safe خاموش میشه.
31%
سیستم عامل پراسس های غیر ضروری رو Kill میکنه
14%
اصلا 7 سال هست که کامپیوتر اختراع شده؟
Forwarded from DevTwitter | توییت برنامه نویسی
Forwarded from Gopher Academy
در Go، دلیل اینکه مقایسه
### توضیح:
- مقدار `a`: این یک اشارهگر از نوع
- مقدار `b`: این یک متغیر از نوع
### چرا خروجی
در مقایسه `a == b`، موارد زیر رخ میدهد:
1. `a` یک اشارهگر از نوع
2.
اما در Go، وقتی یک
### نتیجه:
مقدار
➖➖➖➖➖➖➖➖
👑 @gopher_academy
a == b در کد زیر خروجی false میدهد به تفاوت نوع دادههای مقایسهشده بازمیگردد:var a *int = nil
var b interface{} = nil
fmt.Println(a == b) // false
### توضیح:
- مقدار `a`: این یک اشارهگر از نوع
*int است که به nil اشاره میکند. اگرچه مقدار آن nil است، ولی نوع آن هنوز هم *int است.- مقدار `b`: این یک متغیر از نوع
interface{} است که به nil اشاره میکند. در Go، وقتی یک interface{} مقدار nil دارد، هم مقدار آن و هم نوع آن باید nil باشد تا برابر با nil ارزیابی شود.### چرا خروجی
false است:در مقایسه `a == b`، موارد زیر رخ میدهد:
1. `a` یک اشارهگر از نوع
*int است و مقدار nil دارد.2.
b یک interface{} است که به nil اشاره میکند.اما در Go، وقتی یک
interface{} مقدار nil داشته باشد، نوع interface{} نیز باید nil باشد تا با nil مقایسهشده برابر باشد. در اینجا، نوع b یک interface{} است، اما در مقایسه a == b`، نوع `b برابر با *int است (چون a از نوع *int است و به interface{} تبدیل شده است). این تفاوت در نوعها (*int در مقابل interface{}) باعث میشود که مقایسه false شود.### نتیجه:
مقدار
nil در Go به نوع آن وابسته است. حتی اگر هر دو متغیر مقدار nil داشته باشند، اگر نوع آنها متفاوت باشد، مقایسه برابر نخواهد بود.➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from Syntax | سینتکس (𝙰𝚖𝚒𝚛𝚑𝚘𝚜𝚜𝚎𝚒𝚗)
پست موقت :
سلام روز همگیتون بخیر باشه رفقا .
لطفا به لینک زیر (وبسایت سینتکس) برید و سرعت لود شدن وبسایت بار اول و بار دوم رو زیر پست کامنت کنید .
میخوایم سرعت بارگذاری وبسایت رو آزمایش کنیم ، لطفا اسم مرورگرتون هم بگید
دم همتون گرم🔥
https://flutter-tutorial-b68fa.web.app/
سلام روز همگیتون بخیر باشه رفقا .
لطفا به لینک زیر (وبسایت سینتکس) برید و سرعت لود شدن وبسایت بار اول و بار دوم رو زیر پست کامنت کنید .
میخوایم سرعت بارگذاری وبسایت رو آزمایش کنیم ، لطفا اسم مرورگرتون هم بگید
دم همتون گرم🔥
https://flutter-tutorial-b68fa.web.app/
flutter-tutorial-b68fa.web.app
syntax_website
A new Flutter project.
Forwarded from LearnPOV | لرن پی او وی
💎 شبهکلاس root در CSS 💎
شبهکلاس root در CSS به عنصر ریشه (یا بالاترین عنصر) در سند HTML اشاره میکنه. این شبهکلاس یکی از اجزای کلیدی CSS به شمار میره، بهویژه وقتی که از متغیرهای CSS ( نمونه استفاده ازش رو در پست های قبلی داشتیم ) استفاده میکنیم.
اولویت ( priority ) در :root به چه شکله ؟ 🚀
شبهکلاس هایی مثل hover ,focus و root نسبت به انتخابگرهای تگ ( مثل div یا html ) اولویت بیشتری دارن.
تعاملش با جاوااسکریپت چطوره ؟ 💥
جاوااسکریپت به خوبی این مورد رو هندل کرده و شما میتونید متغیرهای تعریفشده در :root رو با جاوااسکریپت به صورت داینامیک تغییر بدید، مثل تغییر تم وبسایت.
مثال :
امیدوارم حسابی از این پست لذت برده باشی، اگر دوست داشتید با ریاکشناتون بهمون انرژی بدید ❤️
شبهکلاس root در CSS به عنصر ریشه (یا بالاترین عنصر) در سند HTML اشاره میکنه. این شبهکلاس یکی از اجزای کلیدی CSS به شمار میره، بهویژه وقتی که از متغیرهای CSS ( نمونه استفاده ازش رو در پست های قبلی داشتیم ) استفاده میکنیم.
اولویت ( priority ) در :root به چه شکله ؟ 🚀
شبهکلاس هایی مثل hover ,focus و root نسبت به انتخابگرهای تگ ( مثل div یا html ) اولویت بیشتری دارن.
یعنی اگر استایل یکسانی هم در انتخابگر تگ و هم در شبهکلاس :root تعریف کنید، استایل :root اعمال خواهد شد 🔻
:root {
--bg-color: lightblue;
}
html {
--bg-color: pink;
}
body {
background-color: var(--bg-color); /* پسزمینه آبی روشن خواهد بود */
}تعاملش با جاوااسکریپت چطوره ؟ 💥
جاوااسکریپت به خوبی این مورد رو هندل کرده و شما میتونید متغیرهای تعریفشده در :root رو با جاوااسکریپت به صورت داینامیک تغییر بدید، مثل تغییر تم وبسایت.
مثال :
document.documentElement.style.setProperty('--primary-color', '#e74c3c');توی کد بالا، مقدار متغیر --primary-color به #e74c3c تغییر میکنه، و تمام عناصری که از این متغیر استفاده میکردند، به روز میشن.
#️⃣ #css #root
🚀 @coolycode
Forwarded from DevTwitter | توییت برنامه نویسی
یکی از مزایای استفاده از JWT (JSON Web Token) این است که برخلاف Sessionها، توکن در سرور ذخیره نمیشود و نیازی به نگهداری وضعیت کاربر در سمت سرور نیست. این موضوع باعث کاهش سربار سرور و افزایش مقیاسپذیری برنامه میشود.
اما یک چالش مهم در این روش وجود دارد: اگر نیاز باشد که دسترسی کاربر لغو یا توکن بلاک شود (به عنوان مثال پس از خروج کاربر)، توکن JWT تا زمان انقضای آن همچنان معتبر است و میتواند درخواستها را به سمت سرور ارسال کند.
برای رفع این مشکل، از Token Blacklisting یا همان فهرست سیاه توکنها استفاده میشود. در این رویکرد، توکنهایی که باید بلاک شوند در یک فهرست ذخیره میشوند (معمولاً در یک پایگاه داده سریع مانند Redis). هر زمان که توکنی به سرور ارسال میشود، ابتدا بررسی میشود که آیا در لیست سیاه قرار دارد یا خیر. اگر توکن در این لیست باشد، درخواست رد میشود حتی اگر هنوز مدت زمان اعتبار توکن به پایان نرسیده باشد.
این روش نه تنها امنیت بیشتری را فراهم میکند، بلکه مدیریت بهتری برای مواردی چون لغو دسترسی کاربران یا بروز تغییرات در حسابهای کاربری را امکانپذیر میسازد.
@DevTwitter | <Firoozeh Daeizadeh/>
اما یک چالش مهم در این روش وجود دارد: اگر نیاز باشد که دسترسی کاربر لغو یا توکن بلاک شود (به عنوان مثال پس از خروج کاربر)، توکن JWT تا زمان انقضای آن همچنان معتبر است و میتواند درخواستها را به سمت سرور ارسال کند.
برای رفع این مشکل، از Token Blacklisting یا همان فهرست سیاه توکنها استفاده میشود. در این رویکرد، توکنهایی که باید بلاک شوند در یک فهرست ذخیره میشوند (معمولاً در یک پایگاه داده سریع مانند Redis). هر زمان که توکنی به سرور ارسال میشود، ابتدا بررسی میشود که آیا در لیست سیاه قرار دارد یا خیر. اگر توکن در این لیست باشد، درخواست رد میشود حتی اگر هنوز مدت زمان اعتبار توکن به پایان نرسیده باشد.
این روش نه تنها امنیت بیشتری را فراهم میکند، بلکه مدیریت بهتری برای مواردی چون لغو دسترسی کاربران یا بروز تغییرات در حسابهای کاربری را امکانپذیر میسازد.
@DevTwitter | <Firoozeh Daeizadeh/>