TheCodəPod
289 subscribers
269 photos
103 videos
7 files
165 links
باما همیشه بروز باشید =)
Download Telegram
Forwarded from Hamed
📘 Task Programming in C# and .NET

یه خبر خوب! 🎉
شروع کردم به ترجمه‌ی این کتاب. که به صورت تخصصی وارد دنیای برنامه‌نویسی Task و async/await در #C و .NET میشه و منبع خیلی خوبی برای درک عمیق این مفاهیمه.
دو فصل هم ترجمه شده

لطفاً حمایت کنید.❤️

🔗 https://github.com/hheydarian/task-programming-in-csharp-dotnet-persian
❤4🔥1
Forwarded from Hamed
📘 Task Programming in C# and .NET

یه خبر خوب! 🎉
شروع کردم به ترجمه‌ی این کتاب. که به صورت تخصصی وارد دنیای برنامه‌نویسی Task و async/await در #C و .NET میشه و منبع خیلی خوبی برای درک عمیق این مفاهیمه.
دو فصل هم ترجمه شده

لطفاً حمایت کنید.❤️

🔗 https://github.com/hheydarian/task-programming-in-csharp-dotnet-persian
❤3🔥1
Forwarded from Js is Strong
سلام
من تمام پروژه‌های بخش فرانت‌اند سایت roadmap.sh رو تکمیل کردم و همه رو داخل یک وبسایت یکجا گذاشتم همراه با سورس کد و پیشنمایش لایو
🔗 https://roadmap-sh-frontend.vercel.app/

اگر تازه فرانت‌اند رو شروع کردین یا دنبال ایده برای تمرین هستین این پروژه‌ها می‌تونن براتون چالش های باحالی باشن هر پروژه ای که ازش خوشتون اومد میتونید کلون کنید حتی همین سایت رو.
❤3👍1
👍2🔥2
Forwarded from 🕸 Articles
چند روز پیش یه گزارش منتشر شد که یه هکر تونسته از مرورگر کروم یه آسیب پذیری پیدا کنه و بعد از گزارش بهش 250,000 هزار دلار جایزه بدن.


https://issues.chromium.org/issues/412578726

تحلیل این آسیب پذیری رو براتون آماده کردم.
این آسیب خیلی عمیق تر از چیزی هست که نوشتم، پس اگر علاقه داشتین میتونید خودتون روش تحقیق بیشتری کنید.
خلاصه باگ هم این بوده که یه سایت رو باز میکردی و سیستمت هک میشده.
💅4❤1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Animejs
یه کتابخونه لایت‌ویت و قدرتمنده که با چند خط کد می‌تونی هر چیزی رو به حرکت دربیاری از متن و دکمه گرفته تا SVG و گرافیک
-میشه گفت anime.js یه جورایی برای وب مثل یه نسخه‌ی مینی و سبک از After Effects عمل می‌کنه

توی After Effects انیمیشن‌های گرافیکی می‌سازی و خروجی ویدئو می‌گیری

توی anime.js همون سبک انیمیشن‌ها رو ولی با کد جاوااسکریپت مستقیم روی المان‌های صفحه‌ی وب اجرا می‌کنی
❤2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
ی چیز باحال که دیدم این دمو بود که با استفاده از کتابخونه های Three.js و Anime.js ساخته شده که تغییر شکل پیچیده ذرات را بین چند شکل مختلف نشون میده
🔥3
کار با متغیر های محیطی (Environment Variables) در پایتون 🐍

احتمالا برات پیش اومده که اطلاعات حساسی مثل API Key‌ها، رمز عبور دیتابیس یا تنظیمات مهم اپلیکیشن‌ت رو مستقیم توی کد بذاری. مثلا:

# API Key
api_key = 'your_api_key'

# DataBase Config
db_user = 'root'
db_password = 'your_db_password'


خب این روش 👎 امن نیست! چون اگه کسی کد رو ببینه، راحت به اطلاعات حساس شما دسترسی پیدا می‌کنه.

✅ راه‌حل: استفاده از فایل .env

حالا فایل .env چی هست؟ 🤔

فایل .env (مخفف environment) یک فایل متنی ساده‌ست که برای نگهداری متغیرهای محیطی (Environment Variables) استفاده میشه. این متغیرها به ما این امکان رو میدن که اطلاعات حساس و تنظیمات مختلف رو از کدمون جدا کنیم!

کافیه یه فایل .env تو root پروژه خودمون بسازیم و متغیر های خودمون رو به صورت key=value توش بنویسیم. مثلا:

# API Key
API_KEY=your_api_key

# DataBase Config
DB_USER=root
DB_PASSWORD=your_db_password


این شکلی همه چیز مرتب و امن می‌مونه ✅


استفاده از python-dotenv 🐍

برای اینکه بتونیم متغیرهای موجود در فایل .env رو در پروژه پایتون خودمون لود کنیم، بهترین راه استفاده از کتابخانه python-dotenv هست.

نحوه نصب:

pip install python-dotenv


نحوه استفاده:
فایل .env که ساختیم رو در نظر بگیرید:

# API Key
API_KEY=your_api_key

# DataBase Config
DB_USER=root
DB_PASSWORD=your_db_password


حالا کافیه تو فایل main.py ، به این شکل متغیر ها رو لود کنیم:

import os
from dotenv import load_dotenv

# لود کردن متغیرها از فایل .env
load_dotenv()

# دسترسی به متغیرها
db_user = os.getenv("DB_USER")
db_pass = os.getenv("DB_PASSWORD")
api_key = os.getenv("API_KEY")

print(f"Database User: {db_user}")
print(f"API Key: {api_key}")


به همین سادگی میشه از متغیر های تعریف شده استفاده کرد. البته که راه های دیگه هم وجود داره!
برای مثال میتونیم به جای استفاده از تابع load_dotenv() از dotenv_values() استفاده کنیم.

کافیه کدمون رو به این شکل تغییر بدیم:

from dotenv import dotenv_values

# لود کردن متغیر ها به شکل دیکشنری
config = dotenv_values('.env')

# دسترسی به متغیرها
db_user = config['DB_USER']
db_pass = config['DB_PASSWORD']
api_key = config['API_KEY']


تابع dotenv_values() یک دیکشنری با مقادیر parse شده از فایل .env رو بر می‌گردونه!

نکته مهم: همیشه فایل .env رو به فایل .gitignore اضافه کنید تا به صورت تصادفی تو مخزن گیت‌هاب شما منتشر نشه!

چند ترفند جذاب با .env 🍭

📂 جدا کردن متغیرهای عمومی و خصوصی:
فرض کنید که بخوایم یک سری اطلاعات رو به صورت عمومی در دسترس بقیه قرار بدیم و باقی موارد حساس رو نگه داریم، برای این کار میتونیم یک فایل .env.shared و یک فایل .env.secret ایجاد کنیم. حالا باید اطلاعات حساس خودمون رو داخل فایل .env.secret و باقی اطلاعات رو داخل فایل .env.shared قرار بدیم 👇

.
├── main.py
├── .gitignore
├── .env.shared
└── .env.secret

داخل فایل .env.shared
# shared.env
API_PATH="/api/v1"
ENV_NAME="shared"


داخل فایل .env.secret
# secret.env
API_KEY=your_api_key
DB_USER=root
DB_PASSWORD=your_db_password


حالا داخل فایل main.py به این شکل متغیر ها رو لود میکنیم:
from dotenv import dotenv_values

config = {
**dotenv_values('.env.shared'),
**dotenv_values('.env.secret')
}

api_key = config['API_KEY']
api_path = config['API_PATH']


از اونجایی که تابع dotenv_values() به عنوان خروجی یه دیکشنری بر می‌گردونه، میتونیم با استفاده از عملگر ** مقادیر رو unpack کنیم و یک دیکشنری شامل همه متغیر ها داشته باشیم


🔗 استفاده از متغیرهای تو در تو:
SERVER=127.0.0.1
PORT=5500
ADDRESS=${SERVER}:${PORT}


from dotenv import dotenv_values

config = dotenv_values('.env')

print(config['ADDRESS']) # 127.0.0.1:5500


مزایای استفاده از .env:

🎯 مزایای استفاده از .env

🔒 امنیت: اطلاعات مهم داخل کد نیست.

🔄 انعطاف‌پذیری: راحت می‌تونی برای محیط‌های مختلف (dev/test/prod) تغییر بدی.

🗂 نظم: کدت تمیزتر و حرفه‌ای‌تر می‌مونه.

برای اطلاعات بیشتر می‌تونید به مستندات رسمی python-dotenv مراجعه کنید

امیدوارم این پست براتون مفید باشه! اگه سوالی دارید، همینجا بپرسید. 👇
👏3🔥1
👨‍💻 برنامه نویسی رو از صفر مطلق یاد بگیر با ساخت پروژه های واقعی و حل تمرین ها

هوش مصنوعی OpenLume مثل یه معلم خصوصی برات نقشه راه شخصی میچینه و قدم به قدم کمکت میکنه

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

#ai
👍2🔥1
بررسی کد فقط در چند دقیقه!

سرویسی اومده که با استفاده از هوش مصنوعی، کد رو اسکن می‌کنه، آسیب‌پذیری‌ها رو پیدا می‌کنه و حتی با ابزارهای پنتست حمله رو شبیه‌سازی می‌کنه.

در واقع Strix به‌صورت خودکار پروژه‌ت رو بررسی می‌کنه، مشکلات رو رفع می‌کنه و گزارش آماده می‌کنه — کاملاً امن و روی سیستم خودت اجرا می‌شه.
🔥4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
👨‍💻کتابخونه Muuri: جادوگر چیدمان‌های وب! ✨

تا حالا شده بخوای یه گالری عکس بسازی که بشه عکس‌ها رو با Drag-and-drop توش جابه‌جا کرد؟ یا یه داشبورد که کاربر خودش بتونه کارت‌ها رو بچینه؟ اگه اینجور کارها به نظرت سخت میاد، Muuri دقیقاً همون چیزیه که دنبالشی!

این کتابخونه جاوااسکریپت مثل یه دستیار حرفه‌ای، بهت کمک می‌کنه تا راحت‌ترین و جذاب‌ترین طرح‌بندی‌ها رو برای وب‌سایتت بسازی. کار باهاش خیلی ساده‌ست و بدون دردسر می‌تونی چیدمان‌های پیچیده رو پیاده‌سازی کنی.

کتابخونه Muuri هم خیلی قدرتمنده و هم خیلی سبکه، برای همین عملکردش عالیه و با فریم‌ورک‌هایی مثل React و Vue هم به خوبی هماهنگ میشه. اگه دنبال یه راه ساده و حرفه‌ای برای ساختن چیدمان‌های تعاملی و زیبا هستی، حتماً یه سر بهش بزن!

🔗 https://muuri.dev

#library #js
❤3🔥1
تایپ‌هینتینگ (Type Hinting) در پایتون 🐍

پایتون ذاتاً داینامیک تایپ هست یعنی وقتی یه متغیر تعریف می‌کنی، لازم نیست نوعش رو مشخص کنی:
x = 10       # از نوع عددی
y = "Hi" # از نوع رشته

✅ نکته مثبت: این موضوع داینامیک بودن سرعت کدنویسی رو بالا می‌بره

❌ اما تو پروژه‌های بزرگ می‌تونه باعث خطاهای سردرگم بشه (مثلاً خطا میده ولی نمی‌دونی مشکل از کجاست)


🫟 ورود Type Hinting

اینجاست که Type Hinting به کمکت میاد. در واقع این مفهوم میگه که تو می‌تونی به طور پیش‌فرض نوع داده رو مشخص کنی.

مثال ساده
name: str = "CodePode"
age: int = 1
height: float = 1.88
is_active: bool = True

مثال در توابع
def add(a: int, b: int) -> int:
return a + b

اینجا گفتیم متغیرهای a و b از نوع عددی باشن و خروجی تابع هم عددی باشه



📦 مثال پیچیده‌تر
def process_items(items: list[str]):
for item in items:
print(item)

اینجا گفتیم پارامتر items باید از نوع لیست رشته‌ای باشه



⚠️ یک نکته خیلی مهم

در واقع Type Hinting فقط راهنماست پایتون خودش جلو اجرای کد رو نمی‌گیره
def add(a: int, b: int) -> int:
return a + b


print(add("5", "10")) # اجرا میشه
print(add(5, "10")) # خطا میده (TypeError)

🔹 همونطور که می‌بینید خروجی تابع می‌تونه خلاف چیزی باشه که تعریف کردی ولی ابزارهایی مثل mypy یا IDEها (مثل PyCharm و VS Code) بهت اخطار میدن


🛠 موارد پرکاربرد در Type Hinting

۱. Optional (مقدار می‌تونه None باشه)
from typing import Optional

def greet(name: Optional[str]) -> str:
return f"Hello {name}" if name else "Hello Stranger"

Optional[str] ?
یعنی پارامتر name می‌تونه رشته (str) یا None باشه

اگر هیچ مقداری بهش ندی یا مقدارش None باشه، تابع همچنان درست اجرا میشه.

۲. Union (چند نوع مختلف مجاز)
from typing import Union

def square(x: Union[int, float]) -> float:
return x * x

Union[int, float] ?

یعنی پارامتر x می‌تونه عدد صحیح (int) یا اعشاری (float) باشه

یعنی تابع می‌تونه با هر دو نوع کار کنه و خروجی رو به صورت float برگردونه
۳. Any (هر نوعی قبول کنه)
from typing import Any
def log(data: Any) -> None:
print(data)

Any ?
یعنی پارامتر data می‌تونه از هر نوعی باشه: عدد، رشته، لیست، دیکشنری، حتی شیء

در واقع هیچ محدودیتی روی نوع داده وجود نداره.

🚀 نسخه‌های جدید پایتون (3.9+)

از پایتون 3.9 به بعد نوشتن Type Hint ساده‌تر شد:
def process(data: list[int]) -> dict[str, int]:
return {str(i): i for i in data}

دیگه لازم نیست از typing.List یا typing.Dict استفاده کنی.


🏆 چرا Type Hinting مهمه؟

🔍 خطاها رو زودتر پیدا می‌کنیم (قبل از اجرا).

🧑‍🤝‍🧑 کار تیمی راحت‌تر میشه

📝 مستندات کد واضح‌تر و خواناتر میشن.

🤖 ابزارهایی مثل mypy یا VS Code کمک می‌کنن سریع‌تر دیباگ کنیم


📌 جمع‌بندی

استفاده از Type Hinting اجباری نیست، اما توی پروژه‌های جدی شدیداً توصیه میشه.
بهتره حتی تو پروژه‌های کوچیک هم کم‌کم ازش استفاده کنی، تا وقتی کدت بزرگ‌تر شد مدیریت راحت‌تر باشه
🔥6❤‍🔥1
Forwarded from Geek Engineers ([ Taha. Dostifam ])
این هم از زبان برنامه نویسی Cyrus که ما موفق به ساختش شدیم.

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

در حال حاضر داریم type system رو تست میکنیم تا اینکه تا حدی stable بشه. هر موقع استیبل بشه به ادامه دولوپ فیچر های high level مثل error handling و macro ها و generic type ها خواهیم پرداخت انشالله.

#cyrus
@cyrus_lang
https://github.com/cyrus-lang/Cyrus
❤1😁1
باینری :
حالت خاصی از ،داده‌های دسته‌بندی‌شده با دو دسته مقادیر (0/1 ، درست/نادرست)
❤2👍1
Forwarded from EBooks World
اگر همیشه کنجکاو بوده‌اید که پشت صحنه‌ی مدل‌های زبانی بزرگ مثل ChatGPT چه می‌گذرد، کتابی که به دنبالش بودید همین‌جاست!
کتاب Build a Large Language Model (From Scratch) نوشته‌ی Sebastian Raschka، فرصتی بی‌نظیر برای یادگیری ساخت یک مدل زبانی از صفر است—کاملاً کاربردی، گام‌به‌گام، و مناسب اجرا روی لپ‌تاپ شخصی شما.
در این کتاب، نه‌تنها با مفاهیم اصلی مانند معماری ترنسفورمر و مکانیزم توجه آشنا می‌شوید، بلکه از پیش‌پردازش داده‌ها تا آموزش و تنظیم دقیق مدل برای وظایف خاص مثل طبقه‌بندی متن و پاسخ به دستورات انسانی را به‌صورت کامل پیاده‌سازی خواهید کرد.


🔗
https://www.ebooksworld.ir/post/index/1032
❤3
code usually means a system for transferring infor-mation among people, between peop-le and computers, or within compu-ters themselves


کد معمولاً به معنای سیستمی برای انتقال اطلاعات بین افراد، بین افراد و کامپیوترها، یا درون خود کامپیوترها است
❤2👍1
خط بریل برای نابینایان:

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

این سیستم از الگویی از نقاط برجسته روی کاغذ ضخیم استفاده میکنه و برای استفاده سربازان در هنگام یادداشت‌برداری به یکدیگر در تاریکی زمانی که سکوت ضروری بود در نظر گرفته شده بود سربازان می‌توانستند این نقاط را با استفاده از یک قلم درفش(نوعی قلم خاص) در پشت کاغذ فرو کنند سپس نقاط برجسته را میشد با انگشتان خواند

نحوه کد گذاری:
در بریل، هر نمادی که در زبان نوشتاری معمولی استفاده می‌شود به طور خاص، حروف، اعداد و علائم نگارشی - به صورت یک یا چند نقطه برجسته در یک خانه دو در سه کدگذاری می‌شود
نقاط خانه معمولاً از ۱ تا ۶ شماره‌گذاری می‌شوند
❤2
TheCodəPod
خط بریل برای نابینایان: در دهه‌های اخیر، خط بریل برای عموم مردم آشناتر شده است، زیرا آسانسورها و دستگاه‌های خودپرداز از بریل برای دسترسی آسان‌تر استفاده کرده‌اند(نمومش در آدامس های ایرانی ) این سیستم از الگویی از نقاط برجسته روی کاغذ ضخیم استفاده میکنه…
مثال :
نقاط ۱، ۳ ،۵ برجسته هستند و نقاط ۲، ۴ و ۶ برجسته نیستند

دلیل اینکه این موضوع مطرح کردم و برای ما جالب هست این موضوع است، که نقاط دودویی هستند(مثل 0 و 1) یک نقطه یاصافه یا برجسته
❤3