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 Shayan GeeDook🐧
درود دوستان چطورین، کسی در زمینه دیتا آنالیز و ویژوالایز کردن دیتا و همچنین در زمینه تبدیل محصول به سمت ابری ممنون میشم جهت مشاوره و چند سوال به من وقتشو بده ممنون می‌شم با تشکر🙏❤️
This media is not supported in your browser
VIEW IN TELEGRAM
در CSS سه واحد جدید برای Viewport معرفی شده که مشکل ارتفاع در موبایل را حل می‌کنند. پیش‌تر استفاده از ‎100vh‎ باعث می‌شد بخش‌های تمام‌صفحه دقیق نمایش داده نشوند، چون نوار ابزار مرورگر هنگام اسکرول ظاهر یا ناپدید می‌شود و ارتفاع واقعی تغییر می‌کند. حالا با سه واحد جدید این مشکل رفع شده است:

1. lvh (Large Viewport Height)
بیشترین ارتفاع زمانی که نوار ابزار پنهان است.
کاربرد: برای بخش‌های فول‌اسکرین.

height: 100lvh;


2. svh (Small Viewport Height)
کمترین ارتفاع زمانی که نوار ابزار دیده می‌شود.
کاربرد: برای اجزایی مثل هدر یا فوتر ثابت.

height: 100svh;


3. dvh (Dynamic Viewport Height)
ارتفاع پویا بین ‎lvh‎ و ‎svh‎.
کاربرد: برای بخش‌های تطبیقی.

height: 100dvh;


اگر چند بخش ‎100dvh‎ داشته باشید، با ظاهر شدن نوار ابزار ممکن است صفحه بپرد.

جمع‌بندی:

- نمایش ثابت: ‎svh‎
- فول‌اسکرین واقعی: ‎lvh‎
- رفتار تطبیقی: ‎dvh‎

این واحدها جایگزین ‎vh‎ نیستند، بلکه ابزارهایی برای کنترل دقیق‌تر در موبایل‌اند. CSS امروز هوشمندتر و دقیق‌تر شده و کنترل بیشتری بر طراحی رابط‌ها می‌دهد.

@DevTwitter | <Hesam Valizadeh/>
Forwarded from CleverDevs (CleverDevs Ads)
این یه چالشه که با مهارت های مختلفتون باید مرحله بعدی رو پیدا کنید . اگه دیدید جایی سخت شد میتونید از فایل راهنماش استفاده کنید

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

فقط اینکه اسپویل نکنید تو کامنتا

https://a.voorivex.academy

@CleverDevs - @CleverDevsGp
This media is not supported in your browser
VIEW IN TELEGRAM
وقتی ابزار «قطره‌چکان» (Eyedropper) سایت‌ها از مرز مرورگر رد میشه!

​چند روز پیش داشتم از یک سایت آنلاین Shadow Generator استفاده می‌کردم که متوجه یک نکته عجیب شدم: ابزار قطره‌چکان رنگ اون سایت، علاوه بر فضای داخل مرورگر، به کل دسکتاپ و محیط سیستم عامل من هم دسترسی داشت!
​اولش شک کردم... مگه میشه؟ چطور یک وب‌سایت می‌تونه بدون نصب افزونه، اطلاعات پیکسل رو از خارج از پنجره مرورگر بخونه؟ این که کاملاً خلاف اصول امنیتی مرورگره!
​بعد از کمی تحقیق، متوجه شدم که این قابلیت به‌خاطر یک پیشرفت جدید در دنیای وب به نام EyeDropper API امکان‌پذیر شده.
​ ماجرا از این قراره:
که ​EyeDropper API یک رابط برنامه‌نویسی جدید برای مرورگرهای مبتنی بر کرومیوم (مثل کروم و اج) است.
​این API به سایت‌ها اجازه می‌ده که ابزار بومی (Native) انتخاب رنگ مرورگر رو فعال کنن.

​این قابلیت، مرز بین اپلیکیشن‌های تحت وب و نرم‌افزارهای دسکتاپ رو باریک‌تر کرده و برای ابزارهای طراحی وب (مثل انتخاب‌کننده‌های رنگ یا ویرایشگرهای عکس) واقعاً یک تحول محسوب میشه.
لینک سایت:
https://folge.me/tools/tailwind-shadow-generator

@DevTwitter | <Ali shabani/>
Forwarded from Armon technical logs (armon Taheri)
منتخب استان تهران برای مسابقات پردازش ابری شدم
Forwarded from محتوای آزاد سهراب (Sohrab)
#موقت

به نظر میاد محتوای کانال دیگه موردعلاقه عزیزان نیست :)



نظراتتون رو بگید
این متن

It took me nearly 1 year of full-time programming in Rust to become proficient and no longer
have to read the documentation every 5 lines of code


از کتاب
Black hat Rust

بنظرم خیلی درسته؛ حالا که درگیر کد زدن هستم واقعاً متوجه میشم خیلی پیش میاد یک مفهوم رو بفهمی و به راحتی کدهای دیگران رو بخونی و متوجه بشی!
اما اینکه خودت اون کد رو بنویسی و همه چیز درست و تا حد خوبی بهینه و idiomatic باشه خیلی چیز متفاوتی هست، اما

Favor getting things done rather than the perfect design that will never ship. It’s
far better to re-work an imperfect solution than to never ship a perfect system.


خیلی وقتا میزان خطاهایی که میگیرفتم، یا توضیحات clippy و ... باعث می‌شد پنیک کنم و هی تغییرات بیشتر بدم.

If you are fighting with the limits of the language, it may mean that you are doing something wrong. Stop what you are doing, take a break, and think about how you can do things differently.


بعضی وقتا دست کشیدن و فکر کردن مجدد باعث میشه کد بهتری بزنم، خیلی وقتا شده کد رو زدم و بعد از چندتا اجرا و ... برگشتم و refactor کردم و کد خیلی بهتر اجرا شده!
با اینکه کد اول خیلی خفن‌تر هم بوده شاید (چون از بچه‌ها شنیدم) اما ترجیح میدم کدم راحت‌تر خونده و درک بشه تا خفن‌تر بنظر بیاد.

و درنهایت، اگر Error handling رو درست انجام داده باشید unwrap, expect همه جا نداشته باشید توی پروداکشن هیچ موقع کد کرش نمی‌کنه و این خیلی چیز جذابی هست.

چندتا توضیح:
پروژه jsedit استثنا بود چون می‌خواستم بعنوان cookbook نگهش دارم؛ که چیزای پر تکرار توی سخت‌ترین حالتش همیشه دمه دستم باشه.

دلیل خوندن این کتاب هم این نیست که می‌خوام به دنیای امنیت برگردم (گذشته‌ها گذشته) فقط چون کتابی برای optimization پیدا نکردم دارم این کتاب رو می‌خونم.

توی همه‌ی زبان‌های برنامه‌نویسی کتاب‌های مربوط به امنیت و نفوذ و توسعه ابزارهای نفوذ معمولاً کدهای بهینه‌تری دارند.
اینم از من به شما

خلاصه‌ای از نکات مهم.
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
⭐️ مدیریت حافظه‌های کش در کرنل لینوکس

🔹سیستم‌عامل لینوکس به‌صورت هوشمند از حافظه‌ی RAM نه‌فقط برای اجرای برنامه‌ها، بلکه برای افزایش کارایی I/O از طریق مکانیزم‌های Cache و Buffer استفاده می‌کند.

🔹کرنل لینوکس برای آزادسازی حافظه‌ی کش، از الگوریتم معروف LRU (Least Recently Used) بهره می‌برد.
وقتی سیستم با کمبود RAM روبه‌رو می‌شود، کرنل صفحاتی را که کمتر استفاده شده‌اند (مثل *Page Cache* یا *Dentry Cache*) آزاد می‌کند تا فضای بیشتری برای پردازش‌ها فراهم شود.


🔻 سه سطح آزادسازی حافظه در کرنل:
🔻 Drop Clean Pages → صفحات کش تمیز که نیاز به نوشتن مجدد ندارند.
🔻 Write Back Dirty Pages → صفحاتی که تغییر کرده‌اند، ابتدا روی دیسک نوشته می‌شوند.
🔻 Shrink Slab Objects → پاک‌سازی ساختارهای کرنلی مانند *inode* و *dentry cache*.

🔹 مشاهده وضعیت Cache
برای بررسی وضعیت کش، از دستورات زیر استفاده کنید:

$ free -h
$ cat /proc/meminfo | grep -E "Cached|Buffers|Slab"
$ vmstat -s | grep cache


📘 انواع حافظه‌های Cache در لینوکس

🔹 Page Cache
داده‌های فایل‌هایی که از دیسک خوانده می‌شوند، در حافظه نگهداری می‌شوند.
🎯 هدف: افزایش سرعت خواندن فایل‌ها.

🔹 Buffer Cache
شامل اطلاعات متادیتا (metadata) مربوط به بلاک‌های دیسک است.
🎯 هدف: بهبود عملکرد نوشتن روی دیسک.

🔹 Dentry Cache
مسیرها و نام فایل‌ها (directory entries) را در حافظه ذخیره می‌کند.
🎯 هدف: افزایش سرعت دسترسی به فایل‌ها و دایرکتوری‌ها.

🔹 Inode Cache
ساختارهای *inode* فایل‌ها را در حافظه نگه می‌دارد.
🎯 هدف: کاهش بار روی فایل‌سیستم و تسریع عملیات فایل.

نویسنده: حسین سیلانی.اموزش بیشتر در:
https://learninghive.ir
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
نکته #لینوکس_پیشرفته 2
⭐️ مدیریت حافظه‌های کش در کرنل لینوکس

🔹سیستم‌عامل لینوکس به‌صورت هوشمند از حافظه‌ی RAM نه‌فقط برای اجرای برنامه‌ها، بلکه برای افزایش کارایی I/O از طریق مکانیزم‌های Cache و Buffer استفاده می‌کند. در کرنل‌های مدرن لینوکس (از حدود سال ۲۰۰۱ به بعد)، Page Cache و Buffer Cache ادغام شده‌اند

🔹کرنل لینوکس برای مدیریت و آزادسازی این حافظه‌های کش، از الگوریتم‌های پیشرفته‌ای مانند LRU/Active و Inactive بهره می‌برد. وقتی سیستم با کمبود RAM روبه‌رو می‌شود، کرنل ابتدا صفحات کم‌استفاده‌تر (غیرفعال) را از کش‌هایی مانند Page Cache یا Slab آزاد می‌کند.

🔻 مراحل کلی آزادسازی حافظه کش توسط کرنل:
🔻آزاد کردن صفحات تمیز (Clean Pages): این صفحات یک کپی معتبر در دیسک دارند و می‌توانند بلافاصله دور ریخته شوند.
🔻نوشتن صفحات کثیف (Dirty Pages): صفحاتی که تغییر کرده‌اند، ابتدا باید روی دیسک نوشته (Sync) شوند تا پس از آن به عنوان صفحه تمیز آزاد گردند.
🔻کوچک کردن حافظه Slab: در این مرحله ساختارهای کرنلی کم‌استفاده مانند dentry و inode cache آزاد می‌شوند.

🔹 مشاهده وضعیت Cache
برای بررسی وضعیت کش، از دستورات زیر استفاده کنید:
$ free -h
$ cat /proc/meminfo | grep -E "Cached|Buffers|SReclaimable"
$ vmstat -s | grep cache


📘 انواع حافظه‌های کش در لینوکس

🔹 Page Cache
داده‌های فایل‌ها و داده‌های خوانده شده از دیسک در این حافظه نگهداری می‌شوند.
🎯 هدف: افزایش سرعت عملیات خواندن و نوشتن (از طریق به‌تعویق انداختن نوشتن).

🔹 Dentry Cache
ساختارهای مربوط به مسیرها و نام فایل‌ها (directory entries) را در حافظه ذخیره می‌کند.
🎯 هدف: افزایش سرعت دسترسی به فایل‌ها و دایرکتوری‌ها.

🔹 Inode Cache
ساختارهای *inode* فایل‌های باز شده را در حافظه نگه می‌دارد.
🎯 هدف: کاهش بار روی فایل‌سیستم و تسریع عملیات فایل.

*(توضیح: در کرنل‌های مدرن، "Buffers" عمدتاً به متادیتای فایل‌سیستم و داده‌های بلاک‌دیوایس در حال انتقال اشاره دارد).*

نویسنده: حسین سیلانی. آموزش بیشتر در:
https://learninghive.ir
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
نکته #لینوکس_پیشرفته 1
⭐️ مفهوم Namespaces در لینوکس


🔹در سیستم‌عامل لینوکس، مکانیزم Namespace یکی از بنیادی‌ترین قابلیت‌های ایزولاسیون (Isolation) است که به هر گروه از پردازه‌ها اجازه می‌دهد دیدگاه جداگانه‌ای نسبت به منابع سیستم داشته باشند.
به بیان ساده‌تر، هر Namespace مثل یک “جهان کوچک” درون کرنل است که قوانین خودش را برای منابعی مانند پردازه‌ها (PIDs)، شبکه (Network)، سیستم فایل (Mounts)، کاربران (Users) و فضای بین‌پردازه‌ای (IPC) دارد.

🔹وقتی یک پردازه درون Namespace خاصی ایجاد می‌شود، فقط منابع همان Namespace را می‌بیند؛ به‌عنوان مثال، اگر دو container روی یک ماشین در حال اجرا باشند، هر دو می‌توانند پردازه‌ای با PID=1 داشته باشند، بدون اینکه تداخلی بین آن‌ها پیش بیاید.

🔹این ویژگی، یکی از پایه‌های اصلی فناوری‌های Containerization مانند Docker و LXC (Linux Containers) است. Namespaceها با استفاده از پرچم‌های clone() یا فراخوان سیستمی unshare() ساخته می‌شوند و از طریق ترکیب چند نوع Namespace، می‌توان محیط‌های کاملاً ایزوله (مانند container) ایجاد کرد.

مطالعه پست کامل
Forwarded from Linuxor ?
وایب کدینگ خوبه مخصوصا بعدش که مجبور میشی شبو بیدار بمونی وایب دیباگینگ کنی


@Linuxor
Forwarded from Armon technical logs (armon Taheri)
از لطف دوستان و تبریک هاشون بسیار متشکرم
Forwarded from Linuxor ?
این استار هایی که توی تلگرام میزنید اینکانسیستنته، یعنی مثلا همین الان دوتا بود بعد شد یکی،
چون ستاره ها روی بلاک چینه و تراکنش ها توی تلگرام زمان میبرن تلگرام اولش اعتماد میکنه و ستاره رو میزنه بعد میبینه ندارینش واقعیشو آپدیت میکنه. (بلخره ری اکشنه و باید سریع باشه نمیشه ری اکشن بزنید بعدش اعمال شه)

کلا توی کامپیوتر به چیزی میگن اینکاسیستنت که دیتا توی سرور های مختلف باهم یکسان نباشه. (هیچ راه حلی هم تقریبا برای حل مشکلش نیست)


@Linuxor
Forwarded from Shayan GeeDook🐧
این بشر خیلی خفنه یه سری مباحثی رو بردیم جلو که واقعاً دم عرفان گرم که وقت گذاشت و مبحث هایی که توشون مشکل و مسئله داشتم رو روشن کرد. اقا خیلی عشقی ❤️🔥
@erfuuan
Forwarded from Linuxor ?
دیروز یکی ازم پرسید سینیور دولوپر به کی می‌گن؟

دوساعت داشتم بهش فکر میکردم چی جوابشو بدم تا فردا (فردا منظورم فردای انسان های عادیه چون من هنوز تو دیشبم) یه چیز خوب مینویسم میزارم؛ پروژه سنگینی قبول کردم خدا به خیر کنه.


@Linuxor
Forwarded from یه شعر (Poem Bot)
حافظ | غزلیات | غزل شمارهٔ ۴۷

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

#حافظ | گنجور
📍@iipoem
Forwarded from Gopher Academy
🔵 عنوان مقاله
Reverse Engineering Doesn't Have to Be Hard

🟢 خلاصه مقاله:
این مطلب نشان می‌دهد مهندسی معکوس الزماً سخت نیست و با یک نمونه بدافزار نوشته‌شده با Go به‌صورت گام‌به‌گام پیش می‌رود. بدون نیاز به دانستن Go یا کدنویسی، بر روش‌شناسی تمرکز دارد: راه‌اندازی محیط امن، تریاژ اولیه (هش‌ها، فراداده و بررسی سریع رشته‌ها)، تشخیص بسته‌بندی/ابهام‌سازی، تحلیل ایستا (بررسی imports، نقطه‌های ورود، نام‌گذاری تابع‌ها، و ترسیم جریان کنترل) و در کنار آن تحلیل پویا در محیط جداافتاده برای مشاهده رفتار پردازشی، تغییرات سیستم و ترافیک شبکه. نتیجه، یک جعبه‌ابزار فشرده از تکنیک‌های پایه است که به مبتدیان اعتمادبه‌نفس می‌دهد تا منطق بدافزار را روشن کنند و نشانگرهای آلودگی (IOC) را استخراج کنند—بدون تکیه بر ترفندهای وابسته به زبان.

#ReverseEngineering #MalwareAnalysis #Golang #Infosec #StaticAnalysis #DynamicAnalysis #CyberSecurity

🟣لینک مقاله:
https://golangweekly.com/link/175361/web


👑 @gopher_academy
Forwarded from Linuxor ?
واقعا سینیور دولوپر به کی می‌گن؟

هیچ تعریف دقیقی از سینیور دولوپر وجود نداره هر شرکتی یه تعریفی برای خودش داره ولی این سه تا مورد رو یادتون باشه یه مرز خوبی بهتون نشون میده :

+ باید بتونه پروژه با مقیاس بالا رو هندل کنه: قشنگ نشون میده معماری، دیزاین و دواپس رو خوب فهمیده کلمه مقیاس بالا خودش یه بار سنگین داره و هر کسی نمیتونه ادعاش کنه دولوپر های عادی معمولا سمتش نمی‌رن.

+ باید بتونه هدایت تیم کنه : اینم نشون می‌ده فرد می‌تونه تصمیم‌های فنی استراتژیک بگیره و مسئولیت خروجی تیم رو بپذیره. همچنین نیازمند یه درک خوبی از Soft skill هست برای این کار.

+ باید بتونه پروژه‌هایی با چالش فنی خاص یا فناوری جدید رو هندل کنه : مثلا یه هوش مصنوعی یه چیزی اضافه کنه یا اینکه زیرساخت و CI/CD رو از صفر بتونه بنویسه یا ابزار اختصاصی برای توسعه بسازه، سینیور وابسته به تکنولوژی خاصی نیست در کل انعطاف بالایی داره.


@Linuxor