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

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
چون بحث خودمیزبانی داغ بود، یک پست کوتاه و مفید توی بلاگم از آماده کردم که چرا باید خودمیزبانی بکنیم؟

https://sohrabbehdani.ir/blogfa/whyselfhosting/

@SohrabContents
Forwarded from Linuxor ?
دوره #فوق_لینوکسه_ها قسمت 8

توی این قسمت با شبکه بیشتر آشنا میشید درباره ایپی ورژن 4 و 6 باهم صبحت میکنیم و بعضی از تجهیزات و مفاهیم شبکه رو باهم میبینیم که چی هستن و DNS ، DHCP و Web Server رو یه برسی کلی میکنیم.


https://youtu.be/T92McwTcgrw?si=zh1wM0A47FTB2osB

🐧 @Linuxor
میترا، یک شبکه‌اجتماعی فدیورسی نوشته شده با راست هستش که یک Gui خوب و همینطور فیچرای خوبی هم داره :))

از همه مهمتر، برای اجرا رم مینیمالی که می‌خواد حداقل ۲۵۶ مگابایته!

https://codeberg.org/silverpill/mitra


@SohrabContents
Forwarded from Yasha
الان که داشتم درباره تلگرام می‌خوندم متوجه یه چیزی شدم. تلگرام یه زیرساخت غیرمتمرکز خیلی جالبی داره، دیتاسنترهاش رو توی کشورهای مختلفی که قوانین قضایی متفاوتی داره پخش کرده. تمام دیتایی که نگه‌داری می‌کنه رمز میشن و کلیدهای رمزگذاری هم به بخش‌های مختلفی تیکه تیکه شده و توی دیتاسنترها پخش شده. تلگرام میگه هیچ کدوم از دیتاسنترها کلید رو به شکل کامل نداره و حالا یه تحت یه پروتکلی اینا دیتاسنترهای توزیع‌شده باهمدیگه کار می‌کنن. حالا چرا اینکار رو انجام داده؟ جالبیش اینجاست. این باعث میشه که یه کشور واحد نتونه به تنهایی تلگرام رو مجبور به دادن دیتا کنه، یعنی فرانسه چیزی رو از تلگرام بخواد باید هر کشوری که دیتاسنتر تلگرام داخلش هست هم بخواد و توافق جمعی و جهانی صورت بگیره که یه چیز خیلی سخت و نشدنیه درحال حاضر. این باعث میشه حتی دو یا سه تا کشور هم‌پیمان (مثل ایران، روسیه، چین) هم باز نتونن از تلگرام دیتا بگیرن، چون کشورهای زیادی در درگیر جریان قضایی با قوانین مختلف می‌کنه. توی این حالت حتی اگه یکی با تانک هم وارد دیتاسنتر تلگرام بشه نمی‌تونه دیتای کسی رو بخونه :) تا وقتی که خود پاول دروف و تیم تلگرام بخوان.

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

@Yasha
Forwarded from Golden Code (@lix)
در لاراول میتونید دیسک‌های ذخیره‌سازی custome شده رو بدون نیاز به تغییر دادن فایل config/filesystems ایجاد کنید.

کاربردش؟
این قابلیت برای مواردی که ممکنه مسیر ذخیره‌سازی تغییر کنه یا به صورت داینامیک تعیین میشه میتونه خیلی کار راه انداز باشه.
#Laravel
@GoldenCodeir
(به منبع و مثالش دقت کنین👇🏾)
https://x.com/laravelbackpack/status/1828394539867930675?t=uPya--8IeMfyqPo3nHWD2A&s=35
1👍1
لینک ویدیوی جلسه 31 :
https://youtu.be/74Z5saE4FqM

هک گوگل و استفاده از قابلیت های مخفی اون، مهارتهای جستجو و حل مسئله در مورد برنامه نویسی و هوش مصنوعی - جلسه ۳۱ ام آموزش رایگان برنامه نویسی

برنامه‌نویسی رو از صفر تا صد یاد بگیر و وارد بازار کار شو!

تو این ویدیو، یکسری ترفند برای هک کردن گوگل یاد گرفتیم 😈، بهترین روش های سرچ کردن رو برای برنامه نویس ها توضیح دادیم و نحوه استفاده از سایت هایی مثل استک اور فلو رو توضیح دادیم، یاد گرفتیم که چطوری سوال بپرسیم از هوش مصنوعی و به جواب خوب برسیم

@SEYED_BAX | @MakeDeveloper
Forwarded from CleverDevs (Mammad)
‏Named Arguments توی php چیه و چه کاربردی داره ؟

این فیچر که توی php8 اضافه شده به ما کمک میکنه که آرگومان های تابع رو به جای ترتیب بر اساس اسم هاشون به تابع پاس بدیم

مثلا تابع زیر رو تصور کنید

function createNewUser($name , $city = "Tehran" , $age = "18", $gender = ""){

$user = new User();
$user->name = $name;
$user->city = $city;
$user->age = $age;
$user->gender = $gender;
$user->save();
}


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



createNewUser(name : "Mammad" , gender : "male");


حالا اگه اسم آرگومان هارو مشخص نمیکردیم مجبور بودیم هر چهارتا آرگومان رو پاس بدیم و خب کدوم شلوغ تر و سخت تر میشد

این قابلیت برای توابعی که تعداد پارامتر زیادی دارن و بیشترشون هم آپشنال هستن خیلی کاربردیه

اگه میخواید بیشتر در بارش بخونید میتونید به این لینک سر بزنید

https://stitcher.io/blog/php-8-named-arguments

#php
@CleverDevs - @CleverDevsGp
Forwarded from 🎄 یک برنامه نویس تنبل (Raymond Dev)
🔶 هاستینگر ارائه دهنده خدمات هاستینگ آمریکایی اعلام کرده از تاریخ September 30, 2024 دسترسی سایت به کشورهای ذکرشده مسدود می کند و ارائه خدمات به این کشورها متوقف می شود.

#خبر

@TheRaymondDev
Forwarded from 
github.com/StollD

یکی از باحال‌ترین صفحه‌های گیت‌هابی که تا حالا دیدم:

#fun
@amiria703_channel
Forwarded from Code Module | کد ماژول (genix)
با انواع دسترسی کاربر (RBCD و RBAC) آشنا بشید! 🔥

‏Role-Based Access Control و Resource-Based Conditional Access، این مدل‌ها برای تنظیم دسترسی کاربر به منابع درون یک سازمان وب سایت و... طراحی شدن و تضمین میکنن که داده‌های حساس محافظت میشن و تنها پرسنل مجاز، میتونن اقدامات خاصی رو انجام بدن.

‏RBAC: کنترل دسترسی مبتنی بر نقش

‏RBAC یکی از پرکاربردترین مدل های کنترل دسترسی هست. بر اساس اصل تخصیص مجوزها بر اساس نقش های درون یک سازمان عمل میکنه. در یک سیستم RBAC، به هر کاربر یک یا چند نقش اختصاص داده میشه و هر نقش دارای مجوزهای خاصی هست. برای مثال، در یک محیط شرکتی، ممکنه نقش‌هایی مثل Manager یا مدیر IT داشته باشید، که هرکدوم به داده‌ها یا سیستم‌های خاصی دسترسی از پیش تعریف شده دارن.

‏RBAC با گروه‌بندی مجوزها به نقش‌ها، مدیریت دسترسی رو ساده‌تر می‌کنه، که مدیریت اون ها رو راحت‌تر از تخصیص مجوزها به صورت جداگانه به کاربران هست. این مدل به ویژه در محیط هایی که کارکردهای شغلی به خوبی تعریف شده و ثابت هستن، مؤثر هست، زیرا تضمین میکنه که کاربرا فقط به منابع لازم برای مسئولیت های شغلی خود دسترسی دارن.


‏RBCD: دسترسی مشروط مبتنی بر منابع

دسترسی مشروط مبتنی بر منابع (RBCD) یک رویکرد پویاتر و دقیق تر برای کنترل دسترسی هست. برخلاف RBAC که مجوزها رو بر اساس نقش های کاربر اختصاص میده، RBCD شرایط رو در سطح منبع ارزیابی میکنه تا حقوق دسترسی رو تعیین کنه. این به این معنی هست که تصمیمات دسترسی در زمان واقعی و بر اساس ویژگی هایی مثل مکان کاربر، دستگاه مورد استفاده، زمان دسترسی و حتی حساسیت داده های مورد دسترسی گرفته میشه.

‏RBCD سطح بالاتری از انعطاف پذیری و امنیت رو فراهم میکنه، چون میتونه با شرایط و زمینه های متغیر سازگار بشه. به عنوان مثال، ممکنه به یک کارمند اجازه داده بشه که تنها زمانی به یک سند محرمانه دسترسی داشته باشه که در شبکه شرکت باشه و از دستگاه مورد تایید شرکت استفاده کنه. این رویکرد به ویژه در محیط‌های مدرن که در اون منابع از مکان‌ها و دستگاه‌های مختلف قابل دسترسی هستن، مفیده.


به صورت کلی RBAC و RBCD هر کدوم بسته به نیازهای خاص یک سازمان، مزایای مشخصی رو ارائه میده. RBAC برای محیط‌هایی با نقش‌ها و مسئولیت‌های کاملاً تعریف‌شده ایده‌آل هست و سادگی و سهولت مدیریت رو ارائه میده. اون طرف RBCD رویکردی پویاتر و آگاه به زمینه رو برای کنترل دسترسی ارائه میکنه و اون رو برای محیط‌های پیچیده با شرایط دسترسی متفاوت مناسب‌تر می‌سازه 🚀

#rbcd #rbac
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Anophel | آنوفل
Forwarded from Anophel | آنوفل
تو جاوا اسکریپت ما سه نوع کد داریم :
1. کد Synchronous
2. کد macrotask
3. کد Microtask

نکته کلیدی سوال این سه مورد هستند.
در اولی که پیش فرض جاوااسکریپت هست کد لاین به لاین اجرا می شود و تا لاین قبلی تمام نشد لاین جدید اجرا نمیشه.

دومی : بعد از اجرای کد های Synchronou و قبل میکروتسک ها اجرا می شود مثل setTimeout و setInterval و ..
.

سومی :این بخش نیز بعد از اجرای کد های ماکروتسک اجرا می شوند. مثلا : promiseها.

بررسی مثال:
بخش Synchronous :

console.log(1); بلافاصله اجرا می‌شود و مقدار 1 در کنسول چاپ می‌شود
setTimeout یک ماکروتسک تعریف می‌کند، اما چون setTimeout تنها تنظیم کننده‌ی تاخیر است، این عملیات به تعویق می‌افتد. پس setTimeout هنوز چیزی چاپ نمی‌کند

console.log(2); نیز بلافاصله اجرا می‌شود و مقدار 2 در کنسول چاپ می‌شود

console.log(4) بلافاصله بعد از promise.then فراخوانی می‌شود و مقدار 4 در کنسول چاپ می‌شود

پس از اتمام اجرای کدهایSynchrono نیز setTimeout که یک ماکروتسک است، اجرا می‌شود.ابتدا مقدار "timerStart" را در کنسول چاپ می‌کند.سپس success فراخوانی می‌شود که باعث می‌شود promise به حالت fulfilled برسد و یک میکروتسک (یعنی promise.then) به صف میکروتسک‌ها اضافه شود.سپس مقدار "timerEnd" را چاپ می‌کند.

در‌اخرم میکروتسک اجرا می شود. success

خروجی نهایی :
1
2
4
timerStart
timerEnd
success

آنوفل

#javanoscript #js #نکته #جاوااسکریپت
Test
Test2
https://milkv.io/ruyibook

متاسفانه اگر شرایط اینطوری نبود، می‌شد از توی ایران این رو پیش‌خرید کرد :)

ولی باید رفت یوتوب و حسرت خورد.......


@SohrabContents
اگر بتونم فردا یک ویدئو ضبط می‌کنم، با این محتوا:

نصب و راه‌اندازی یک سرور دبیان


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

@SohrabContents
Forwarded from 
GitHub.com/linux-surface

برسد به دست عاشقان سرفیس:

#linux #FLOSS #معرفی
@amiria703_channel
Forwarded from Python BackendHub (Mani)
دیشب تو گروه بحث بود که من اینترن هستم و چیکار کنم که شغل پیدا کنم یا رزومه‌ام بیشتر دیده بشه. تو پیوی هم خیلیا سوال می‌پرسن که چطور بدون تجربه کاری اولین شغلشون رو بگیرن. ببین، همه شرکتا دنبال کسی می‌گردن که واقعاً یک مهارت رو بلده. حالا شاید بگی من ۴ سال دانشگاه رفتم، ۱۰ تا پروژه تمرینی هم تو گیت‌هاب گذاشتم، پس چرا قبولم نمی‌کنن؟ ولی باید بدونی که تعریف "بلد بودن" اینجا متفاوته.

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

مثلاً یه بازی بود قدیما تو ایران به اسم "تراوین". یه نقشه ۴۰۰ در ۴۰۰ داشت (مختصات منفی هم داشت) یعنی ۱۶۰۰۰ خونه. هر کاربر که ثبت‌نام می‌کرد، یه خونه تو نقشه می‌گرفت که می‌شد دهکده اصلیش. اولین شرط بازی این بود که دو دهکده نمی‌تونن تو یه مختصات باشن. خب، اینجا می‌تونستی یه تیبل با ۱۶۰۰۰ خونه بسازی و هر بار که کاربر ثبت‌نام کرد، یه مختصات خالی بهش بدی. به این روش میگن whitenoise sampling
تا اینجا پروژه تمرینی تموم میشه. ولی پیچیدگی از اینجا شروع میشه که بیزنس متوجه میشه کاربرا تو کل نقشه پخش شدن، بعضیا چسبیدن به هم، بعضیا دورن. حالا بیزنس میگه برای بیشتر کردن هیجان بازی، باید کاربرا رو نزدیک هم نگه داری. برای همین، مثلاً به جای ۱۶۰۰۰ خونه، ۴۰۰ خونه مرکزی رو در نظر می‌گیری و وقتی نصفش پر شد، میری سراغ ۱۶۰۰ خونه. به این روش میگن progressive sampling.
مشکل بعدی اینه که کاربرا خیلی بهم چسبیدن و این باعث میشه هیجان بازی زیادی زیاد شه و اول بازی همه به هم حمله کنن، که این خودش باعث میشه خیلیا همون اول بازی رو ول کنن. حالا بیزنس می‌خواد یه فاصله حداقلی بین دهکده‌ها بذاری. اینجا به روش blue sampling می‌رسی.

می‌بینی؟ یه سیستم ساده چطور با دوتا نیاز بیزنسی که اول مشخص نبود، پیچیده شد؟ این مثال رو زدم که بگم یه پروژه مثل فروشگاه زدن اصلاً چشمگیر نیست. با همونم شاید شغل بگیری، ولی اگه می‌خوای سریع‌تر شغل پیدا کنی، برو یه پروژه استارت بزن که واقعاً به دردت بخوره و یه مشکلی که داری رو حل کنه.
پس من میگم طبق قانون gall سیستم complex ای که کار کنه به دنیا نمیاد, بلکه سیستم ساده ای بود که کار میکرد و به سیستم complex بلوغ پیدا کرده. یک مقاله خیلی قشنگ راجب همین قانون.
مثال؟ یه نگاه به گیت‌هاب من بنداز. همه پروژه‌هام اینطوریه. از لینکدین کراولر گرفته تا کلودفلیر کراولر و aioclock. همه برای این ساخته شدن که یه مشکلی که داشتم رو حل کنن.

@PyBackendHub
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
خیلیا سوال میپرسن موقعیت کاراموز و جونیور گیر نمیاد، چطور استخدام بشیم پس

همیشه گفتم من که حتی اگر شده یکی دوماه زمان بزارید یک ایده ای مطرح کنید که بتونید بیزینس باهاش بزنید و بالا بیارید، صرفا یک وبلاگ یا فروشگاه نزنید، چیزی بزنید که یوزر‌بیاد روش و استفاده کنه

اینجا مانی یکسری توضیحات داده که چرا پروژه های ساده نمیتونن مارو استخدام کنن :

https://news.1rj.ru/str/PyBackEndHub/1109

دوست عزیز وقتی میخوای پروژه بزنی، نگا نکن چه توانایی داری، تو باید خودت رشد بدی، فراتر از توانایی هات تصمیم بگیر، برنامه نویسی که به چالش نخوره ، کرم شب تابه با لامپ سوخته (این چه مثالیه، حداقل زنبور بی عسل رو‌ میگفتی)

حتی با یک پروژه هم میتونید استخدام بشید، حتی میتونید استخدام کنید افرادی رو که براتون کار کنن :)

من هنوز از پروژه های ۵-۶ سال پیشم درامد دارم، اگر سپنتا خاموش نمیکردم از پروژه ده سال پیشمم هنوز درامد میتونستم داشته باشم

@SEYED_BAX