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
خیلی وقت بود میخواستم این ویدیو رو بگیرم. روزی که من Python گذاشتم کنار و حرفه ای شروع به کد زدن JavaScript و NodeJS کردم همیشه هروقت باکسی بحث برنامه نویسی میشد من این رو میگفتم که جای یک چیزی مثل Context Manager مثل پایتون در اکوسیستم JavaScript  واقعا خالی هست. وقتی TypeScript ورژن 5.2 منتشر شد و این syntax رو برای بار اول دیدم واقعا خوشحال شدم
async function main() {
    using resource1 = getResource()
    await using resource2 = await getResource()
}

در این ویدیو به Explicit Resource Management در زبان های برنامه نویسی cpp و golang و python میکنیم. با یک پترن خیلی قدیمی به اسم RAII پترن آشنا میشیم و در نهایت میرسیم به ارتباط RAII پترن در C++ در TypeScript .
https://youtu.be/N0akLbvhShE?si=f623-vxXz-brA4ag

@DevTwitter | <Iman Hosseini/>
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
خیلی از ما ممکنه بخوایم یه ویدیو کوتاه از توییتر، اینستاگرام و یا حتی یوتیوب رو به صورت مستقیم در تلگرام داشته باشیم، ربات inlineای که در ویدیو می‌بینید از سرویس cobalt.tools برای همین کار استفاده می‌کنه تا به راحتی بتونید ویدیو یا گیفی که دوست دارید رو در چت‌های تلگرام‌تون بفرستید.

@coboldbot
hadi @geekalerts
فردا ساعت ۱۰ صبح یه پست خفن داریم 😎
Forwarded from Linuxor ?
ویندوز و مک توی شرکت های بزرگ توسعه داده شدن و توی خونه ها استفاده میشن
اما لینوکس توی خونه ها توسعه داده شده ولی توی شرکت های بزرگ استفاده میشه


🐧 @Linuxor ~ neoqueto
کرون‌جاب (Cron Job) چیه و به چه درد می‌خوره؟

به گفته ویکی پدیا:

کرون یک زمان‌بندی‌کننده وظایف در سیستم‌عامل‌های شبه یونیکس است که بر اساس زمان کار می‌کند. این ابزار به کاربران اجازه می‌دهد وظایف (دستورات یا اسکریپت‌های شل) را برای اجرا در بازه‌های زمانی مشخص، تاریخ‌های خاص یا فواصل زمانی دوره‌ای برنامه‌ریزی کنند. کرون معمولاً برای خودکارسازی کارهای نگهداری سیستم یا مدیریت سیستم مورد استفاده قرار می‌گیرد.



مثال‌های عملی از استفاده‌های کرون‌جاب

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

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

تمیزکاری سیستم: مثلا هر هفته یه بار فایل‌های موقتی (temp files) که تو سیستم مونده رو پاک کنی تا حافظه پر نشه.



چطور کار می‌کنه؟

کرون‌جاب از یه فایلی به اسم crontab استفاده می‌کنه. تو این فایل، زمان‌بندی و دستورهایی که باید اجرا بشن، تعریف میشه.
ساختار کرون‌جاب یه چیزی شبیه اینه:

* * * * * command-to-be-executed


این پنج تا ستاره نشون میده که دستور باید چه زمانی اجرا بشه:
1. دقیقه
2. ساعت
3. روز ماه
4. ماه
5. روز هفته

مثلاً:

0 2 * * * /path/to/backup.sh


این یعنی هر روز ساعت ۲ صبح، اسکریپت backup.sh اجرا بشه.



کرون‌جاب به چه درد می‌خوره؟

هر کاری که بخوای اتوماتیک انجام بشه، از پشتیبان‌گیری و ارسال ایمیل گرفته تا مدیریت سرور و بهینه‌سازی سایت، با کرون‌جاب راحت‌تر و مطمئن‌تر انجام میشه مثلاً:

- باعث صرفه‌جویی در زمان و انرژی میشه.
- احتمال خطای انسانی رو کم می‌کنه.
- خیلی جاها به پایدارتر بودن سیستم کمک می‌کنه.

اگر اطلاعات بیشتری ازش می‌خواید می‌تونید صفحه مربوط بهش رو از ویکی آرچ بخونید.

@SohrabContents
توی توزیع‌هایی که از سیستم‌دی (systemd) استفاده می‌کنن، ما یه ابزار دیگه داریم به اسم systemd-run که شایان عزیز معرفی کرد و بعضی کاربردها رو مثل کرون‌جاب و یا حتی بیشتر رو هم برامون فراهم می‌کنه:

‏ systemd-run به چه درد می‌خوره؟

1. اجرای دستورات به صورت موقت
فرض کنید یک دستور یا برنامه دارید که فقط یه بار می‌خوای اجراش کنید و نیازی نیست براش یه سرویس دائمی تعریف کنید. اینجاست که systemd-run به کارتون میاد و می‌تونید خیلی راحت دستور رو اجرا کنید.

2. زمان‌بندی دستورات
مثل کرون‌جاب، با این ابزار می‌تونی زمان‌بندی انجام بدی یا دستورات رو براساس رخدادهای خاص (مثل تغییر فایل یا باز شدن سوکت) اجرا کنی.

3. مدیریت منابع سیستم
اگه بخوای دستوری رو طوری اجرا کنی که مصرف منابعش محدود باشه (مثلاً CPU یا دیسک)، می‌تونی تنظیمات مربوط به منابع رو توی اجراش مشخص کنی.

4. اجرای دستورات تعاملی
حتی اگه دستوری نیاز به تعامل با کاربر داشته باشه، مثل باز کردن یه شل (Shell)، می‌تونی با تنظیمات خاصی این کار رو انجام بدی.



مثال‌هایی از کاربرد systemd-run

۱. اجرای یه دستور ساده و موقت
اگه بخواین یه دستور مثل نمایش متغیرهای محیطی رو اجرا کنید:
systemd-run env


۲. محدود کردن منابع برای یه دستور
می‌خوایم دستور fc-cache اجرا بشه، ولی نمی‌خوای دیسک سیستم رو زیاد مشغول کنه:
systemd-run -p IOWeight=10 fc-cache


۳. اجرای دستور زمان‌بندی‌شده
فرض کنید می‌خوایم یه فایل بعد از ۳۰ ثانیه ایجاد بشه:
systemd-run --on-active=30 /bin/touch /tmp/foo


۴. اجرای یه شل تعاملی
اگه بخوایم Bash رو اجرا کنیم و ورودی و خروجیش به ترمینال متصل باشه:
systemd-run -t bash


۵. اجرای دستورات کاربر بدون قطع شدن
می‌خوایم از screen استفاده کنیم و مطمئن بشیم وقتی از سیستم خارج شدیم، فرآیند همچنان اجرا بشه:
systemd-run --scope --user screen




صد البته که من زیاد طرفدار سیستم‌دی نیستم ولی به صورت توکار ابزارهای خوبی رو ارائه میده، اگه درمورد این systemd-run هم می‌خواین بیشتر بدونید می‌تونید به سایت فری‌دسکتاپ مراجعه کنید.

@SohrabContents
Forwarded from Golden Code (@lix)
در لاراول گاهی اوقات نیازه که یک storage disk بطور موقت و در حالت (runtime) بسازیم، مثلاً برای فایل‌های temp یا تست.
این کار بدون نیاز به اعمال تغییرات در فایل config/filesystems.php بصورت زیر و به راحتی قابل انجامه
#laravel
@GoldenCodeir
(به منبع و مثالش دقت کنید👇🏾)
https://x.com/OussamaMater/status/1863686467442065495?s=35
1
#meme

ترجمه از این فرسته در ماستادون

@SohrabContents
Forwarded from Linuxor ?
اگه بکند کار میکنی و خوشت از فرانت نمیاد بزار بهت یه حقیقتی رو بگم فایل های css در واقع یه کانفیگ فایلن برای html به اسمش نگاه نکن فرض کن بجای css اسمش cfg هستش و مثلا داری یه چیزی رو کانفیگ میکنی


🐧 @Linuxor ~ Sezo
Forwarded from یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 پیش نمایش پروژه مدیریت وظایف (تسک ها) با لاراول و لایو وایر - در حال ساخت

#لاراول
#لایوـوایر

@TheRaymondDev
Forwarded from  (Amir Hossein "Amiria" Maher)
Forwarded from Syntax | سینتکس (Daimon)
قبل از DNS

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

1. حفظ کردن آدرس‌های IP
قبل از DNS، شما برای باز کردن سایت‌ها مجبور بودید آدرس‌های IP مثل 192.168.1.1 یا 216.58.214.14 رو تایپ کنید. مثلاً اگه می‌خواستید به یه سایت خاص برید، باید آدرس IP اون رو از جایی پیدا می‌کردید و دستی وارد می‌کردید. کاملاً منطقیه که خیلی‌ها دفترچه‌ای کنار دست‌شون داشتن و توش آدرس‌های IP مهم رو می‌نوشتن، چون حفظ کردن این اعداد اصلاً کار ساده‌ای نبود.

2. فایل HOSTS
کامپیوترها اون زمان یه فایل به اسم `hosts` داشتن که مثل دفترچه تلفن عمل می‌کرد. تو این فایل، آدرس IP‌ها به اسم‌های خاصی (اگه وجود داشت) نگاشت می‌شدن. مثلاً نوشته می‌شد:
93.184.216.34 example.com
216.58.214.14 google.com

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

3. کشف سایت‌ها؟ یه چالش واقعی!
یادمون باشه که اون زمان خبری از موتورهای جستجو مثل گوگل یا یاهو نبود. شما یا باید آدرس IP یه سایت رو از کسی می‌شنیدید، یا توی یه مجله یا کتاب می‌دیدید. اگه یه سایت جدید می‌خواستید پیدا کنید، باید امیدوار می‌بودید که کسی آدرسش رو بهتون بده.


4. مشکل هماهنگی
هر شبکه‌ای نسخه خودش از فایل hosts رو داشت. حالا اگه یه سایت جدید اضافه می‌شد یا تغییری توی یه آدرس IP رخ می‌داد، باید اون تغییر رو دستی به همه شبکه‌ها اطلاع می‌دادید. این هماهنگی برای شبکه‌های بزرگ‌تر شبیه یه کابوس بود.

#fun

@Syntax_fa
اگه یه وقتی پروژه ی qt با پایتون داشتین و خواستین از داکر استفاده کنین این ریپویی که درست کردم کمک تون می کنه.
قسمت دیزاینر رو هم توی داکر هاب قرار دادم که باز هم راحت تر باشید

https://github.com/zaaferani/pyqt-docker

@DevTwitter | <حسن زعفرانی/>
مایکروسافت امکان پشتیبانی از سخت‌افزارهای قدیمی‌تر در ویندوز ۱۱ را منتفی کرد.

با نزدیک شدن به پایان پشتیبانی ویندوز ۱۰، مایکروسافت اعلام کرد که الزام وجود TPM 2.0 برای ویندوز ۱۱ «غیرقابل مذاکره» است.



خواندن خبر

@SohrabContents
Forwarded from Syntax | سینتکس (Daimon)
تایپ‌های مختلف DNS رکورد و کاربردهای آن‌ها

1. A Record (Address Record)


کاربرد:
این رکورد، نام دامنه را به آدرس IPv4 تبدیل می‌کند. این نوع رکورد یکی از رایج‌ترین و مهم‌ترین رکوردها در DNS است.

مثال:
اگر کاربری آدرس example.com را وارد کند، DNS با استفاده از رکورد A، آدرس IP مربوط به آن (مثلاً 93.184.216.34) را برمی‌گرداند.

موارد استفاده:
- اتصال نام دامنه به آدرس IPv4 سرور

2. AAAA Record


کاربرد:
مشابه رکورد A است، اما برای آدرس‌های IPv6 استفاده می‌شود.

مثال:
اگر نام دامنه example.com از رکورد AAAA استفاده کند، ممکن است به آدرس IPv6 مانند 2606:2800:220:1:248:1893:25c8:1946 اشاره کند.

موارد استفاده:
- اتصال دامنه به آدرس IPv6

3. CNAME Record (Canonical Name Record)

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

مثال:
اگر www.example.com یک رکورد CNAME داشته باشد که به example.com اشاره کند، تمامی درخواست‌ها به www.example.com به آدرس example.com هدایت می‌شوند.

موارد استفاده:
- تغییر مسیر زیردامنه‌ها.
- ساده‌سازی مدیریت DNS در صورت تغییر آدرس IP.

4. MX Record (Mail Exchange Record)

کاربرد:
این رکورد برای مشخص کردن سرورهای ایمیل دامنه استفاده می‌شود. رکورد MX مشخص می‌کند که ایمیل‌های ارسالی به دامنه باید به کدام سرور ارسال شوند.

مثال:
اگر رکورد MX برای example.com به mail.example.com اشاره کند، تمامی ایمیل‌ها به سرور mail.example.com ارسال می‌شوند.

موارد استفاده:
- تنظیم سرور ایمیل.
- مدیریت اولویت ارسال ایمیل (اولویت‌ها با اعداد مشخص می‌شوند).

5. TXT Record


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

مثال:
- تأیید مالکیت دامنه برای Google Search Console.
- پیاده‌سازی پروتکل‌های امنیتی مانند SPF، DKIM، و DMARC.

موارد استفاده:
- جلوگیری از اسپم و جعل هویت ایمیل.
- تأیید سرویس‌های خارجی.

6. NS Record (Name Server Record)


کاربرد:
این رکورد مشخص می‌کند که کدام سرورهای DNS مسئول مدیریت رکوردهای دامنه هستند.

مثال:
برای دامنه example.com، رکورد NS ممکن است به ns1.example.com و ns2.example.com اشاره کند.

موارد استفاده:
- تعیین سرورهای DNS اصلی یک دامنه.
- مدیریت و نگهداری رکوردهای دامنه.

7. SOA Record (Start of Authority)


کاربرد:
این رکورد اطلاعات پایه‌ای درباره دامنه و سرور DNS اولیه ارائه می‌دهد. SOA رکورد شامل اطلاعاتی مانند آدرس ایمیل مدیر دامنه و زمان به‌روزرسانی رکوردها است.

موارد استفاده:
- مشخص کردن سرور اصلی DNS.
- مدیریت به‌روزرسانی رکوردهای DNS.

8. PTR Record (Pointer Record)

کاربرد:
این رکورد برای جستجوی معکوس DNS استفاده می‌شود (تبدیل آدرس IP به نام دامنه). برخلاف رکورد A که دامنه را به IP تبدیل می‌کند، PTR آدرس IP را به نام دامنه تبدیل می‌کند.

موارد استفاده:
- تأیید هویت سرورها.
- جلوگیری از ارسال ایمیل‌های اسپم.

#DNS_records

@Syntax_fa
Forwarded from Geek Alerts
۲ مدل دیگه تا ۱ ماه آینده در دسترس میشه، یعنی Gemini 2.0 Pro و Gemini 2.0 Ultra. کاملا بازی رو تغییر میدن.
کلا این ماه ژانویه معرفی زیاد داریم و شاید مدل بعدی claude هم بیاد.
google
@geekalerts
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
الان میتونید تو لیست انتظار پروژه Mariner گوگل شرکت کنید.
یه دستیار هست تو مرورگر کروم، کار‌هایی که بهش میگید رو خودش انجام میده، جاتون تو گوگل سرچ میکنه، تو اینترنت میگرده، پیدا میکنه، متن مینویسه و یه دستیار AI وب‌گردی هست.
از اینجا میتونید ثبت نام کنید.
@geekalerts
همچین چیزی فقط از مایکروسافت برمیاد :))


برنامه نیتیو کوپایلت که برای ویندوز ۱۱ منتشر شده، وبسایت کوپایلت رو بارگذاری می‌کنه.





خواندن خبر


@SohrabContents
اگه نمیخواید خیلی کانفیگ های mysql رو تغییر بدید وقتی دارید بین سرور ها cross database، جوین کوعری میزنید تو لاراول ، joinSub() رو استفاده کنید. کار کثیفیه ولی چون DB layer کار نمیکنید این راه حل مناسبیه. وگر نه توی mysql میتونید از فیچر Federated Storage Engine استفاده کنید.

اپروچ های مختلف برای این کار. تو خود mysql و laravel. البته درستش اینه که شما همه این ها رو Store Procedure کنید و تو app layer فقط اون ها رو کال کنید.

البته بگم این کار خیلی تمیز ترم میشه تو PostgreSQL که فیچرش میشه
‏FWD (foreign data wrapper)
‏که البته پیشنهاد من اینه که کلا از postgres برای این مدل query ها استفاده کنید.

@DevTwitter | <iman/>