Dev Perfects – Telegram
Dev Perfects
40 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
Forwarded from Bardiaism
Media is too big
VIEW IN TELEGRAM
آموزش Qt6 - قسمت دوازدهم - Network Requests

در این قسمت درباره ماژول نتورک کیوت صحبت میکنیم و یاد میدیم چطوری به کمک این ماژول روی پروتوکل http ریکوئست ارسال کنیم و جواب اونو بگیرید و اگر json هست خروجی اون رو parse کنید.
این ماژول شامل کلاس‌های سطح پایین‌تر مثل tcp و udp هم میشه که در ویدیوهای بعدی درباره اون‌ها توضیح خواهم داد.

لینک ویدیو در یوتیوب:
https://youtu.be/dnDv5uAcl_Q

@Bardiaism
Forwarded from ASafaeirad
Key takeaway from Notion Calendar's poor UX: Avoid using optimistic updates if your system cannot ensure reliable synchronization.

#ux #notioncalendar
Forwarded from Syntax | سینتکس (nasrin)
پروکسی (proxy) چیه و به چه دردی میخوره

امروز می‌خوایم راجع به یه موضوع خیلی پرکاربرد و مهم حرف بزنیم: پروکسی (Proxy).
شاید براتون سوال باشه که پروکسی چیه و دقیقاً چه کاری انجام میده؟ 🤔
بیاید باهم بیشتر بررسی کنیم.

پروکسی یعنی چی؟ 🤷‍♂️
پروکسی یه نوع واسطه‌ست که بین دستگاه شما (مثلاً کامپیوتر یا موبایلتون) و اینترنت قرار می‌گیره. وقتی از پروکسی استفاده می‌کنید، درخواست‌هاتون (مثل وقتی یه سایت رو باز می‌کنید) اول به سرور پروکسی میره و بعد از اونجا به مقصد اصلی (یعنی همون سایت) فرستاده می‌شه. به همین خاطر، سایت مقصد هیچ‌وقت نمی‌فهمه شما دقیقاً از کجا بهش وصل شدید، چون فقط آی‌پی سرور پروکسی رو می‌بینه 😎

پروکسی چه کاربردهایی داره؟ 🤓

دور زدن محدودیت‌ها 🚫:
یکی از معروف‌ترین کاربردهای پروکسی اینه که می‌تونید باهاش فیلترها و محدودیت‌های اینترنتی رو دور بزنید. مثلاً اگه سایتی تو کشور ما فیلتر باشه، ( که ماشالله همه چی فیلتره) می‌تونید با استفاده از یه پروکسی از کشوری دیگه به اون سایت دسترسی پیدا کنید.

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

افزایش امنیت 🔒:
بعضی پروکسی‌ها با استفاده از پروتکل‌های امنیتی مثل HTTPS، اطلاعات شما رو رمزنگاری می‌کنن تا هکرها و جاسوس‌ها نتونن به راحتی به داده‌هاتون دسترسی پیدا کنن.

مدیریت پهنای باند 📊:
توی شبکه‌های بزرگ (مثلاً تو شرکت‌ها)، مدیران شبکه می‌تونن از پروکسی برای مدیریت پهنای باند استفاده کنن. اینطوری می‌تونن ترافیک اینترنت رو کنترل کنن و استفاده از منابع رو بهینه کنن.

انواع پروکسی 🌐

HTTP Proxy:
این نوع پروکسی فقط درخواست‌های HTTP رو هندل می‌کنه. یعنی وقتی شما یه سایت رو با مرورگر باز می‌کنید، درخواست شما از طریق این پروکسی عبور می‌کنه. اما این نوع پروکسی نمی‌تونه درخواست‌های
غیر HTTP (مثلاً FTP) رو پشتیبانی کنه.

SOCKS Proxy 🧦:
این یکی از همه خفن تره و تقریباً هر نوع ترافیکی رو پشتیبانی می‌کنه. می‌تونید ازش برای ارسال ایمیل، دانلود فایل یا حتی بازی‌های آنلاین استفاده کنید. اما باید بدونید که SOCKS پروکسی به‌خودی‌خود اطلاعات رو رمزنگاری نمی‌کنه و فقط ترافیک رو هدایت می‌کنه.

Transparent Proxy (پروکسی شفاف) 🛠️:
این نوع پروکسی بدون اینکه شما متوجه بشید، درخواست‌هاتون رو هدایت می‌کنه. معمولاً مدیران شبکه یا ارائه‌دهندگان اینترنت از این نوع پروکسی استفاده می‌کنن تا ترافیک رو مانیتور یا فیلتر کنن.

Reverse Proxy (پروکسی معکوس) 🔄:
این نوع پروکسی برعکس بقیه‌ست. یعنی به جای اینکه درخواست‌های شما رو به اینترنت بفرسته، درخواست‌های اینترنت رو به سرورهای داخلی هدایت می‌کنه. معمولاً برای توزیع بار سرور یا افزایش امنیت سرورها از این مدل استفاده می‌شه.

مزایا و معایب پروکسی 💡

مزایا :

مخفی کردن هویت و آی‌پی شما
دور زدن محدودیت‌ها و فیلترینگ
مدیریت بهتر پهنای باند تو شبکه‌ها
افزایش امنیت و حفظ حریم خصوصی

معایب :

بعضی از پروکسی‌ها اطلاعات رو رمزنگاری نمی‌کنن، پس همچنان امکان لو رفتن اطلاعات وجود داره.
پروکسی‌های رایگان معمولاً سرعت پایینی دارن و قابل اعتماد نیستن.
اگه درست تنظیم نشن، می‌تونن باعث کاهش کارایی و سرعت اینترنت بشن.

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

لینک:
https://news.1rj.ru/str/ninja_learn_ir

#proxy

@Syntax_fa
Forwarded from Pishro App
⭕️ دوستان #لاراول 11.22 منتشر شد

تو این نسخه، یه ویژگی جدید به نام رابطه "inverse/chaperone" توی Eloquent معرفی شد.

💫 این ویژگی به نحوی عمل می‌کنه که از بروز N+1 queries ناخواسته در روابط بین مدل‌ها جلوگیری می‌کنه.


فرض کنید شما یک مدل پست (Post) و یک مدل کامنت (Comment) دارید. رابطه بین این دو مدل به این صورته که هر پست میتونه چندین کامنت داشته باشه.

توی لاراول، معمولاً این رابطه را بصورت زیر تعریف میکنیم:
public function comments(): HasMany
{
    return $this->hasMany(Comment::class);
}


حالا با این قابلیت جدید chaperone()، میشه رابطه را اینطور بنویسیم:
public function comments(): HasMany
{
    return $this->hasMany(Comment::class)->chaperone('post');
}


💫 خوب اما چه اتفاقی می افته؟

با استفاده از chaperone('post')، لاراول به‌طور خودکار اطمینان پیدا میکنه که وقتی رابطه کامنت‌ها از دیتابیس لود میشه، هر کامنت به درستی به مدل پست اصلی‌اش لینک شده باشه.
این کار باعث می‌شه که کوئری‌های اضافه (N+1 Queries) ایجاد نشه و سرعت و کارایی برنامه بهبود پیدا میکنه.

💣بطور خلاصه، این متد باعث می‌شه لاراول بهتر متوجه بشه که هر کامنت به کدوم پست تعلق داره و همه چیز بهینه‌تر اجرا میشه.


مزایای این متد:

جلوگیری از کوئری‌های اضافی (N+1)

لینک خودکار مدل فرزند به مدل والد

حفظ صحیح محدودیت‌ها (Scopes)

#laravel

👾 @pishroapp
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Linuxor ?
یه ویدیو گیم چیتر اومده تجربیاتش از اسمبلی ARMv8 رو در قالب یه آموزش برای تازه کار ها نوشته

https://mariokartwii.com/armv8/

🐧 @Linuxor
Forwarded from 
لشکر سه نفرهٔ ایران در برابر هجوم ارتش شوروی:

یاد و خاطرهٔ شهدای شهریور ۱۳۲۰ گرامی باد.

#note
🄯 CC-BY-SA 4 — w.wiki/B8d4
@amiria703_channel
Forwarded from 
Forwarded from 
First off, I'd suggest printing out a copy of the GNU coding standards, and NOT read it. Burn them, it's a great symbolic gesture.


kernel.org/doc/Documentation/process/coding-style.rst

ما هیچ. ما نگاه. :))

#fun #linux
@amiria703_channel
Forwarded from 
switchfromshapefile.org

فرمت‌های جایگزین شِیپ‌فایل همیشگی:

#GIS #معرفی
@amiria703_channel
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
دستور Neofetch یک ابزار خط فرمان بود (آرشیو شده و دیگه توسعه پیدا نمیکنه)
که مجموعه ای از اطلاعات سیستم را روی یک ترمینال از جمله لوگوی سیستم عامل نمایش میداد
اینقدر این fetch ها معادل دارند که کار کشیده به awesome-fetch
در لینک زیر میتوانید نزدیک به ۱۰۰ تا از انواع fetch پیدا کنید
https://beucismis.github.io/awesome-fetch/
#linux
سلام دوستان 👋

امروز تو یکی از گروه‌ها یه چیزی دیدم که گفتم بهتره در موردش صحبت کنم. خیلی از دوستانی که اینجا هستن سنشون زیر ۱۸ ساله. خب دوستان، تو این سن استخدام شدن تو یه شرکت خیلی سخته (نمی‌گم غیرممکنه، ولی خیلی کمه جایی پیدا بشه که با این سن کم استخدام کنه). دلیلش هم واضحه؛ شما نه کارت پایان خدمت دارین، نه وقت کافی چون درگیر درس و مدرسه هستین و...

پیشنهاد من اینه که تو این سن به‌جای اینکه دنبال استخدام شدن باشین، بیشتر روی قوی کردن مهارت‌های فنی و نرم خودتون کار کنین. اگه بتونین تو این چند سال خوب رو خودتون کار کنین، مهارت‌هاتون رو بالا ببرین و شبکه‌سازی کنین، وقتی به سن ۲۰ سالگی می‌رسین، خیلی‌ها دنبال شما خواهند بود.

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

برای همتون ارزوی بهترین هارو میکنم ❤️
Forwarded from Gopher Academy
🔵 عنوان مقاله
State Machines Simplified

🟢 خلاصه مقاله:
متأسفانه شما تنها یک جمله از مقاله فراهم کرده‌اید که اطلاعات کافی برای تهیه خلاصه‌ای جامع از مقاله را دربرندارد. با این حال، من می‌توانم بر اساس اطلاعات داده شده توضیحی ارائه دهم: مقاله‌ای که اشاره شده، به نظر می‌رسد به معرفی و بررسی "Temporal" می‌پردازد که یک راهکار برای مواجهه با چالش‌های پیچیده‌ی ماشین‌های حالت (state machines) است. Temporal به عنوان ابزاری برای افزایش کارآمدی شناخته شده، تأکید بر سادگی و دوام آن دارد، که می‌تواند در بهبود فرایندهای مرتبط با مدیریت حالت‌های مختلف در سیستم‌ها مفید واقع شود.

🟣لینک مقاله:
https://pages.temporal.io/download-state-machines-simplified-cooperpress.html


👑 @gopher_academy
Forwarded from Gopher Academy
الگوهای ورژن‌بندی (Versioning) در نرم‌افزار به روش‌های مختلفی برای شماره‌گذاری و پیگیری نسخه‌های نرم‌افزار اشاره دارند. در اینجا برخی از رایج‌ترین الگوهای ورژن‌بندی آورده شده است:

### 1. Semantic Versioning (SemVer)

   - فرمت: MAJOR.MINOR.PATCH
   - مثال: 1.4.2
   - قواعد:
     - MAJOR:
تغییرات ناسازگار که معمولاً با API همراه است.
     - MINOR:
افزودن قابلیت‌های جدید به شکلی که با نسخه‌های قبلی سازگار است.
     - PATCH:
رفع باگ‌ها و مشکلات کوچک بدون تغییرات ناسازگار.

### 2. Calendar Versioning (CalVer)

   - فرمت: YYYY.MM.DD یا YYYY.MM یا YYYY.MM.MICRO
   - مثال: 2024.08.26, 2024.08
   - قواعد:
     - براساس تاریخ انتشار نسخه‌ها شماره‌گذاری می‌شود.
     - مناسب برای نرم‌افزارهایی که به‌صورت دوره‌ای و مرتب آپدیت می‌شوند.

### 3. Sequential Versioning

   - فرمت: 1, 2, 3, 4, ...
   - مثال: 1, 2, 3, 4
   - قواعد:
     - شماره‌های نسخه به‌صورت ترتیبی و بدون توجه به نوع تغییرات افزایش می‌یابند.
     - معمولاً برای نسخه‌های ابتدایی یا محصولات کوچک استفاده می‌شود.

### 4. Date-based Versioning

   - فرمت: YYYYMMDD یا YYYYMMDDHHMM
   - مثال: 20240826, 202408261230
   - قواعد:
     - نسخه‌ها بر اساس تاریخ و زمان انتشار شماره‌گذاری می‌شوند.
     - مناسب برای نرم‌افزارهایی که به‌طور مداوم آپدیت می‌شوند و تاریخ نسخه مهم است.

### 5. Pseudo-Versioning

   - فرمت: vX.Y.Z-TIMESTAMP-COMMITHASH
   - مثال: v1.0.0-202108150915-abcdef123456
   - قواعد:
     - معمولاً در سیستم‌های کنترل نسخه مثل Git استفاده می‌شود.
     - زمانی که تگ رسمی وجود ندارد یا نیاز است به یک commit خاص اشاره شود، استفاده می‌شود.

### 6. Alphanumeric Versioning

   - فرمت: 1.0a, 2.0beta, 3.0rc1
   - مثال: 1.0a, 2.0beta, 3.0rc1
   - قواعد:
     - از حروف برای نشان دادن مراحل توسعه استفاده می‌شود (a=alpha, b=beta, rc=release candidate).

     - این الگو برای مراحل قبل از انتشار نهایی محصول به‌کار می‌رود.

### 7. Combined Versioning

   - فرمت: ترکیبی از الگوهای مختلف، مثل 1.0.0-alpha, 2024.1.0
   - مثال: 1.0.0-alpha, 2024.1.0
   - قواعد:
     - ترکیبی از ورژن‌بندی تقویمی، ترتیبی، و یا الفبایی به منظور مشخص کردن نوع تغییرات و زمان انتشار.

### 8. Dot Notation Versioning

   - فرمت: 1.0, 1.1, 2.0
   - مثال: 1.0, 2.1
   - قواعد:
     - هر قسمت نشان‌دهنده یک سطح از تغییرات است، که می‌تواند مشابه Semantic Versioning باشد، اما با عمق کمتر.
     - بیشتر برای پروژه‌های ساده استفاده می‌شود.

### 9. Major.Minor Schema

   - فرمت: MAJOR.MINOR
   - مثال: 3.5
   - قواعد:
     - به جای استفاده از PATCH، فقط MAJOR و MINOR مشخص می‌شوند.
     - اغلب برای نرم‌افزارهایی استفاده می‌شود که نیاز به پیچیدگی زیادی در ورژن‌بندی ندارند.

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


👑 @gopher_academy
حس می‌کنم از زمانی که اون نوکیا دکمه‌ای هایی که به اینترنت وصل می‌شدن رو دستم گرفتم، این مدل شبکه رو ندیده بودم :)))

چرا وسط شهر باید G باشه؟

@SohrabContents
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
اگر به طراحی با سبک نئومورفیسم علاقه مندی این سایت بهت کمک می‌کنه تا هر حالتی که میخوای رو پیاده کنی
Forwarded from کانال مهرداد لینوکس (Mehrdad Linux)
پست که ریپلای زدم را یادتونه 🤔پرسیدن

⁉️ ۱۰۰ تا معادل Neofetch که معرفی شد کدومش آخر ؟
راستش سلیقه است دیگه
من دارم از fastfetch استفاده میکنم
مثلا
fastfetch -c all

#linux
Forwarded from Bardiaism
Media is too big
VIEW IN TELEGRAM
چرا هزینه ساعتی فریلنسری از هزینه استخدامی بیشتره؟

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

لینک ویدیو در یوتیوب:
https://youtu.be/IzQObgWB1-A

@Bardiaism
💎 پکیج joi در جاوااسکریپت 💎

امروز میخوام در مورد یه پکیج خفن به اسم joi توی جاوااسکریپت صحبت کنم. 😎

خب بذارید اول بگم joi چیه و به چه دردی میخوره. 💡

فرض کن توی پروژه‌ت میخوای ورودی‌های کاربر رو validate کنی، مثلا فرم لاگین، ثبت نام، یا هر چیزی که قراره دیتای کاربر رو بفرسته.
معمولا برای اینکه مطمئن بشیم اطلاعاتی که میگیریم درسته، مثل ایمیل درست باشه، پسورد حداقل تعداد کاراکتر رو داشته باشه و ...، باید خودمون یه سری شرط بنویسیم که معمولا کدنویسی زیادی می‌طلبه.

حالا اینجاست که joi وارد میشه! 😎
با این پکیج می‌تونی خیلی راحت و سریع همه چیز رو ولیدیت کنی و نیازی نیست کلی کد بنویسی. 🙌

چطوری نصب کنیم؟
خیلی ساده‌ست:
npm install joi

حالا استفاده‌اش چطوریه؟
یه مثال ساده میزنم:

const Joi = require('joi');

const schema = Joi.object({
username: Joi.string().alphanum().min(3).max(30).required(),
password: Joi.string().pattern(new RegExp('^[a-zA-Z0-9]{3,30}$')).required(),
email: Joi.string().email({ tlds: { allow: false } })
});
حالا میایم دیتا رو با این اسکیما ولیدیت می‌کنیم
const { error, value } = schema.validate({
username: 'user123',
password: 'mypassword',
email: 'user@example.com'
});

if (error) {
console.log('خطا: ', error.details);
} else {
console.log('همه چی اوکیه: ', value);
}

همونطور که می‌بینید، با joi می‌تونید به راحتی اسکیماهای مختلف برای ولیدیت کردن دیتا تعریف کنید.
نیازی نیست نگران درست بودن دیتا باشید، چون خودش همه چیز رو چک می‌کنه. 😎💪

برای مطالعه بیشتر میتونید به این سایت مراجعه کنید 😁

امید وارم مفید بوده باشه :)

#JOIValidation #JavaScriptTips #BackendDevelopment


@ninja_learn_ir