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
وزیر قطع‌ارتباطات گفته استفاده از باتری‌های پشتیبان مشکل کندی و اختلال اینترنت رو حل نمی‌کنن، چون بر اساس استانداردهای جهانی تنها ۲۰ دقیقه و در حالت نو حداکثر یک ساعت می‌تونن سایت رو فعال نگه دارن، که واسه ناترازی‌های گسترده کارآمد نیستن.

ایشون البته بعد از تشریح مشکل و مرثیه سرایی، اشاره‌ای به راه‌حل و زمان رفع مشکل نکرده!

🔍 ircf.space
@ircfspace
Forwarded from Mr Python | مستر پایتون (حسین)
🟣 آموزش کتابخانه Libnet - قسمت ۱ : نصب و مفاهیم اولیه

به اولین قسمت از آموزش کتابخانه Libnet در زبان C خوش آمدید . این کتابخانه به ما اجازه میده تا بسته های دلخواه در شبکه تزریق کنیم . به عبارتی بسته هایی با header های مختلف و مقادیر دلخواه بسازیم و اونا رو در شبکه ارسال کنیم . این باعث میشه بتونیم طیف وسیعی از حملات و ابزار های تحت شبکه رو بنویسیم .


Aparat : https://www.aparat.com/v/vluz625
Youtube : https://youtu.be/5izrtZqUBNE

#Network #Libnet

🆔 : @MrPythonBlog | BOOST
Forwarded from Ninja Learn | نینجا لرن (Denver)
b
Forwarded from Ninja Learn | نینجا لرن (Denver)
خب خب خب، انواع کلید توی دیتابیس های رابطه ای🔑
کلید ها توی دیتابیس ها نقش حیاتی ای توی تضمین یکپارچگی و سازماندهی داده ها دارن. شاید تا الان موقع طراحی دیتابیس به این فکر کرده باشین که مثلا Primary Key چیه؟ چطوری تعیین میشه؟ یا اینکه اصلا Foreign Key چیه؟ توی این پست مهم ترین کلیدهای دیتابیس رو باهم مرور میکنیم.

1. کلید اولیه یا اصلی (Primary Key):
هر جدول یک کلید اولیه داره که رکوردها رو به‌صورت یکتا شناسایی می‌کنه. مقادیر این کلید باید منحصربه‌فرد و غیر NULL باشن.
مثال: توی جدول کاربران، user_id به عنوان کلید اولیه عمل می‌کنه. نمیتونه NULL باشه و حتما باید منحصر به فرد باشه.

2. کلید خارجی (Foreign Key):

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

3. کلید ترکیبی (Composite Key):

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

4. کلید کاندید (Candidate Key):

هر ستون یا ترکیبی از ستون‌ها که بتونه به عنوان کلید اصلی استفاده بشه، کلید کاندید نامیده میشه. هر جدول می‌تواند چندین کلید کاندید داشته باشه، اما فقط یکی از اونها به عنوان کلید اصلی انتخاب می‌شن. خیلی ساده تر بخوام بگم ستون یا ستون هایی که میتونستند به عنوان کلید اصلی انتخاب بشن.
مثال: توی جدول محصولات، ستون‌های product_code و product_name می‌تونن به عنوان کلید کاندید عمل کنن.

5. سوپر کلید (Super Key):

سوپر کلید، هر مجموعه‌ای از ستون‌هاست که میتونه هر رکورد توی جدول رو به‌طور یکتا شناسایی کنه. همه کلیدهای کاندید و کلید اصلی، سوپر کلید هستند، ولی هر سوپر کلیدی کاندید نیست.
مثال: ستون user_id یا ترکیب user_id و email در جدول کاربران می‌تواند سوپر کلید باشد.
برای این میگیم هر سوپر کلیدی، کلید کاندید نیست که یه سوپر کلید ممکنه از ترکیب یه کلید اصلی و یه کلید کاندید ایجاد شده باشه(مثلا user_id+user_email) ولی چون فقط با یکی از اینها(user_id) میتونیم یه رکورد رو به صورت یکتا شناسایی کنیم و کلید دومی(user_email) یه جورایی اضافه هست، دیگه این ترکیب کاندید نیست بلکه این فیلد ها هرکدوم یه کلید کاندید به حساب میان.


7. کلید جایگزین (Alternate Key):

زمانی که یک کلید کاندید به عنوان کلید اولیه انتخاب نمیشه، بهش کلید جایگزین میگن. این کلید هنوز قابلیت شناسایی یکتا را داره،ولی به عنوان کلید اصلی انتخاب نشده.
مثال: اگر توی جدول کاربران هم user_id و هم email کلید کاندید باشن و user_id به عنوان کلید اصلی انتخاب بشه، email کلید جایگزین خواهد بود.

8. کلید منحصر به فرد (Unique Key):

مثل کلید کاندیده با این تفاوت که کلید منحصر به فرد می‌تونه مقدار NULL داشته باشه (در بیشتر پایگاه‌داده‌ها حتی چند مقدار NULL مجازه)، ولی مقادیر غیر NULL نباید تکراری باشن. کلید منحصر به فرد در تضمین یکتایی داده‌ها موثر هست.
مثال: توی جدول کاربران، email میتونه یک کلید منحصر به فرد باشه، به این صورت که مقادیر ایمیل نباید تکراری باشن، اما میتونن NULL باشند.

جمع بندی
✍️
این کلیدها به شما کمک می‌کنن تا وابستگی‌های تابعی رو بهتر بشناسید و ساختار دیتابیس‌تون رو اصولی و منظم طراحی کنید. همچنین باعث می‌شن دیتابیس‌تون هم مقیاس‌پذیرتر باشه و هم برای تغییرات آینده آماده‌تر.

#️⃣ #programming #db


🥷🏻 CHANNEL | GROUP
Forwarded from Philocode
دارم یه CDN ساده با Go می‌نویسم.
فایده‌اش اینه که کارکردن با هدرها، کشینگ (اگه خواستید Redis)، فشرده‌سازی (برای من gzip) و کلی چیزهای دیگه رو یاد می‌گیرید.
https://github.com/muhammadmp97/TinyCDN
سال‌ها با jQuery زندگی کردیم.
هر افکتی می‌خواستیم، هر eventی، هر manipulation عجیبی… اون همیشه آماده بود.

ولی پروژه‌های مدرن نیاز به چیزی بیشتر از «کنترل DOM» دارن؛
نیاز به تعامل هوشمند با داده‌ها، ساختار تمیز، و سرعت بالا دارن.

همینجا بود که Alpine.js وارد شد:
نه مثل Vue یا React سنگین،
و نه مثل jQuery خطی و procedural.

یه ابزار سبک، مستقیم، و دقیقاً هم‌مسیر با فلسفه‌ی Laravel و Blade.
نصب خاصی نمیخواد، ساختار جدید نمیخواد، فقط تو HTML خودت کدت رو زنده میکنی!

ابزار Alpine کاری میکنه که تجربه کاربر سریعتر و تمیزتر بشه — بدون اینکه بار اضافه به پروژهات وارد بشه.

و از اون مهمتر:
نگاهت به تعامل با فرانت‌اند رو عوض میکنه.

اگه تا حالا Alpine رو تست نکردی، پیشنهاد میکنم فقط یک فایل blade باز کن و امتحانش کن.
باور نمیکنی چقدر تمیز و لذتبخشه!

@DevTwitter | <Mohammad asadi/>
👍1
Forwarded from Syntax | سینتکس (alireza-fa)
کلمه پر کاربر Bottleneck به چه معنیه؟

تصور کن یه بطری آب داری (bottle)، و می‌خوای خیلی سریع آب داخلش رو خالی کنی.

اما چون دهانه‌ی بطری باریکه (neck)، سرعت خالی شدن آب کم می‌شه.
این قسمت باریک شده که جلوی سرعت رو می‌گیره، می‌گن bottleneck.


تو برنامه‌نویسی:

Bottleneck
یعنی بخشی از برنامه که باعث کند شدن کل عملکرد می‌شه.
مهم نیست بقیه‌ی سیستم چقدر سریع باشن، تا وقتی bottleneck وجود داره، کار کل سیستم لنگ می‌مونه.

با Instrumentation می‌فهمی Bottleneck کجاست

مثلاً با Tracing:

می‌بینی یه درخواست API کل سیستم رو سریع رد می‌کنه، ولی توی مرحله‌ی `FindUser()`، یهو ۸ ثانیه مکث می‌کنه → Bottleneck همینه!

یا با Metrics:

نمودار نشون می‌ده که وقتی درخواست‌ها زیاد می‌شن، مصرف CPU می‌ره بالا، اما فقط برای یه سرویس خاص.


چرا باید Bottleneck رو پیدا کنی؟


چون بهت می‌گه:

* کجا باید بهینه‌سازی کنی
* کدوم سرویس باید scale بشه
* چه منابعی داری هدر می‌دی

#Bottleneck

@Syntax_fa
Forwarded from Gopher Academy
🔵 عنوان مقاله
Fx 36.0: A Command-Line JSON Processing Tool

🟢 خلاصه مقاله:

نسخه ۳۶ از ابزار Fx، قابلیت‌های جدیدی برای کار با فایل‌های JSON معرفی کرده است که برای تحلیل‌گران داده و توسعه‌دهندگان مفید می‌باشد. این نسخه از پشتیبانی از استریم‌های JSON و توانایی مشاهده آپدیت‌های زنده داده‌ها پشتیبانی می‌کند. همچنین، در پردازش فایل‌های JSON بزرگ، سریع‌تر و کم‌مصرف‌تر شده است. این به‌روزرسانی، ابزار Fx را برای کسانی که نیاز به کار با داده‌های بزرگ و استریمینگ دارند، بسیار مفید و کارآمد ساخته است.

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


👑 @gopher_academy
Forwarded from Linuxor ?
این فونتو برای کد زدن خیلیا دنبالشن :)

github.com/tonsky/FiraCode

@Linuxor
لیستی از پروژه‌های پیشنهادی GenAI که می‌تونه بهتون کمک کنه رزومه بهتری در این حوزه داشته باشید، از دستش ندید!
https://github.com/aishwaryanr/awesome-generative-ai-guide/blob/main/resources/60_ai_projects.md

@DevTwitter | <Reza Jafari/>
حداقل سیستم مورد نیاز برای Windows 11 :
* 1 GHz or faster with 2+ core 
* 4 GB RAM
* 64+ GB disk space
* TPM 2 must

حداقل سیستم مورد نیاز برای لینوکس :
🔥 برق 😎
@MehrdadLinuxchannel
اگه از hyprland استفاده میکنید، حتما این کانفیگ رو ببینید که میتونه زیباترین و پرکاربرد ترین دسکتاپ عمرتون رو بسازه!
من هرچی خودم کانفیگ کرده بودم ریختم دور...
https://github.com/end-4/dots-hyprland

@DevTwitter | <Mohsen Khodabakhshi/>
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 به نظر می‌رسد بازی‌های سوپرسل مانند کلش آو کلنز از فهرست تحریم‌ها خارج شده‌اند و اکنون با IP ایران قابل اجرا هستند.

#خبر

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

© Ammir

🔍 ircf.space
@ircfspace
Forwarded from Linuxor ?
اگه یه سرویس (مثلاً وب‌سایت یا دوربین مداربسته‌) رو روی لپ‌تاپ یا شبکه داخلی‌ت داری و می‌خوای از بیرون خونه یا شرکت بهش دسترسی داشته باشی، بدون دردسر NAT یا مودم، ابزار frp دقیقاً همینه! frp یه تونل امن می‌زنه بین کامپیوترت و یه سرور عمومی، انگار که سرویس‌ت تو اینترنت باشه.

شرکتا هم خیلی از frp استفاده می‌کنن برای اکسپوز کردن سرویس هاشون یه پنل مدیریتی خوبی هم داره

github.com/fatedier/frp


@Linuxor
یه چیزی توی مرورگرها هست که خیلیا خبر ندارن:
اگه چند تب از یه سایت باز باشه، چطور میشه به همه‌شون هم‌زمان گفت "کاربر logout شده" یا یه پیغام فوری نشون داد؟
بدون WebSocket
بدون سر زدن به سرور
حتی بدون ور رفتن با localStorage :)

راه‌حل: BroadcastChannel API
توی این مقاله با یه دید عمیق توضیح دادم:
که BroadcastChannel دقیقاً چیه
چطور با IPC و internal message bus مرورگر کار می‌کنه
چه الگوها و مفاهیم سیستمی پشتشه
مزایا و معایبش چی هستن
و در نهایت یه مثال کاربردی با React برای logout بین تب‌ها رو باهاش میبینیم
اگه می‌خوای بدونی مرورگر چطوری بین تب‌ها ارتباط ایجاد می‌کنه، این مقاله رو از دست نده

https://medium.com/@ajblog7070/broadcastchannel-api-the-secret-message-bus-between-browser-tabs-7a8485732051

@DevTwitter | <Ali Jafarian/>
Forwarded from یه شعر (Poem Bot)
خیام | رباعیات | رباعی شمارهٔ ۱۴۱

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

#خیام | گنجور
📍@iipoem
Forwarded from Linuxor ?
توی IDE های JetBrains وقتی دارین یه کدو برسی می‌کنید و مثلا 2000 لاین اومدین پایین تر لازم نیست کلی اسکرول کنید که برگردید جای اولیتون با Ctrl+Alt و جهت های چپو راست می‌تونین Jump کنید جای قبلیتون که بودید

@Linuxor
بازآفرینی یا Refactoring بدون Business Insight، فقط Code Cleanup است!!!

در طراحی مبتنی بر دامنه (DDD)، هر بار که درک ما از واقعیت کسب‌وکار تغییر می‌کند، مدل هم باید تغییر کند.

همان‌طور که Eric Evans در کتاب آبی معروفش می‌گوید:

"The model must change because our understanding has changed."

اگر تغییرات ما صرفاً در سطح کد و معماری باشد و مدل همچنان همان مدل قبلی بماند، در واقع فقط ظاهر سیستم را مرتب کرده‌ایم، بدون آنکه ریشه‌ی مشکل را حل کنیم.

و Refactoring وقتی ارزشمند است که همراه با کشف مفهوم‌های تازه در دامنه و بازتعریف مدل باشد.

وگرنه همان legacy code با ظاهر تمیزتر است.

@DevTwitter | <Mostafa Hosseinkhani/>
این هم از ترجمه فارسیش.

https://opencontent.ir/online-book/linux-user-group-howto/


با تشکر از آقای نوتاش حقیقت که این وبسایت زیبا رو آماده کردن برای نرم‌افزار آزاد:)

@SohrabContents