✔️ معرفی Antigravity – IDE جدید و انقلابی گوگل
گوگل با معرفی IDE جدید خودش به نام Antigravity نگاه تازهای به توسعه نرمافزار ارائه داده. این IDE بر پایه Agent طراحی شده و هوش مصنوعی فقط پیشنهاد نمیدهد، بلکه میتواند خودش برنامهریزی کند، کد بزند، اجرا کند، تست بگیرد و نتیجه را تحلیل کرده و مرحله بعد را انتخاب کند؛ مثل یک توسعهدهنده واقعی داخل محیط IDE.
ایجنت فقط متن تولید نمیکند و به ابزارها دسترسی مستقیم دارد. میتواند دستور در ترمینال اجرا کند، پروژه را در مرورگر تست بگیرد، اسکرینشات ثبت کند و همه این مراحل قابل بازبینی باشند؛ یعنی نتیجه عملی است، نه صرفاً تئوری.
همچنین Antigravity فقط محدود به Gemini 3 Pro نیست و امکان استفاده از مدلهایی مثل Claude Sonnet 4.5 و حتی مدلهای متنباز وجود دارد که آزادی بیشتری به تیمها میدهد.
این IDE به مرور از سبک کاری تیم یاد میگیرد و هرچه پروژه جلو برود، خروجیها هوشمندتر و شخصیتر میشوند.
https://antigravity.google/
@Teachify | برنامه نویسی
گوگل با معرفی IDE جدید خودش به نام Antigravity نگاه تازهای به توسعه نرمافزار ارائه داده. این IDE بر پایه Agent طراحی شده و هوش مصنوعی فقط پیشنهاد نمیدهد، بلکه میتواند خودش برنامهریزی کند، کد بزند، اجرا کند، تست بگیرد و نتیجه را تحلیل کرده و مرحله بعد را انتخاب کند؛ مثل یک توسعهدهنده واقعی داخل محیط IDE.
ایجنت فقط متن تولید نمیکند و به ابزارها دسترسی مستقیم دارد. میتواند دستور در ترمینال اجرا کند، پروژه را در مرورگر تست بگیرد، اسکرینشات ثبت کند و همه این مراحل قابل بازبینی باشند؛ یعنی نتیجه عملی است، نه صرفاً تئوری.
همچنین Antigravity فقط محدود به Gemini 3 Pro نیست و امکان استفاده از مدلهایی مثل Claude Sonnet 4.5 و حتی مدلهای متنباز وجود دارد که آزادی بیشتری به تیمها میدهد.
این IDE به مرور از سبک کاری تیم یاد میگیرد و هرچه پروژه جلو برود، خروجیها هوشمندتر و شخصیتر میشوند.
https://antigravity.google/
@Teachify | برنامه نویسی
❤9👍3👎1
✔️ کنترل همزمانی در تراکنشهای مالی و جلوگیری از Race Condition / Double Spending
در سرویسهای مالی، اگر چند درخواست برداشت همزمان به یک حساب برسد، هر دو موجودی را در یک لحظه میخوانند و هر دو تراکنش را تأیید میکنند؛ نتیجه: برداشت بیش از موجودی و ایجاد Double Spending.
برای جلوگیری از این اتفاق، از قفلگذاری Redis استفاده میشود:
این دستور چه میکند؟
🔸 NX
فقط اگر قفل قبلاً وجود نداشته باشد، ثبت میشود؛ یعنی تنها یک فرآیند قفل را میگیرد.
🔸 PX 10000
قفل بعد از ۱۰ ثانیه خودکار آزاد میشود تا Deadlock رخ ندهد.
🔸 unique_token
یک UUID که تضمین میکند فقط صاحب قفل بتواند آن را آزاد کند.
با این مکانیزم، عملیات حساس روی حساب بهصورت انحصاری انجام میشود و احتمال Double Spending از بین میرود.
@Teachify | برنامهنویسی
در سرویسهای مالی، اگر چند درخواست برداشت همزمان به یک حساب برسد، هر دو موجودی را در یک لحظه میخوانند و هر دو تراکنش را تأیید میکنند؛ نتیجه: برداشت بیش از موجودی و ایجاد Double Spending.
برای جلوگیری از این اتفاق، از قفلگذاری Redis استفاده میشود:
SET lock:user_id unique_token NX PX 10000
این دستور چه میکند؟
🔸 NX
فقط اگر قفل قبلاً وجود نداشته باشد، ثبت میشود؛ یعنی تنها یک فرآیند قفل را میگیرد.
🔸 PX 10000
قفل بعد از ۱۰ ثانیه خودکار آزاد میشود تا Deadlock رخ ندهد.
🔸 unique_token
یک UUID که تضمین میکند فقط صاحب قفل بتواند آن را آزاد کند.
با این مکانیزم، عملیات حساس روی حساب بهصورت انحصاری انجام میشود و احتمال Double Spending از بین میرود.
@Teachify | برنامهنویسی
👍8
✔️ آشنایی با متد کاربردی dict.fromkeys در پایتون
گاهی لازم است یک دیکشنری با مجموعهای از کلیدها بسازیم که همه مقادیر اولیه یکسان باشند. برای این کار، متد dict.fromkeys راهکاری سریع و استاندارد ارائه میدهد:
نکته مهم درباره مقادیر mutable
اگر مقدار اولیه از نوع mutable مثل لیست، دیکشنری یا set باشد، تمام کلیدها به یک آبجکت مشترک اشاره میکنند:
در این حالت، استفاده از dictionary comprehension پیشنهاد بهتری است.
متدهای مهم و رایج دیکشنریها در پایتون
@Teachify | برنامهنویسی
گاهی لازم است یک دیکشنری با مجموعهای از کلیدها بسازیم که همه مقادیر اولیه یکسان باشند. برای این کار، متد dict.fromkeys راهکاری سریع و استاندارد ارائه میدهد:
keys = ["a", "b", "c"]
d = dict.fromkeys(keys, 0)
print(d)
# خروجی: {'a': 0, 'b': 0, 'c': 0}
نکته مهم درباره مقادیر mutable
اگر مقدار اولیه از نوع mutable مثل لیست، دیکشنری یا set باشد، تمام کلیدها به یک آبجکت مشترک اشاره میکنند:
d = dict.fromkeys(["x", "y"], [])
d["x"].append(1)
print(d)
# خروجی: {'x': [1], 'y': [1]}
در این حالت، استفاده از dictionary comprehension پیشنهاد بهتری است.
متدهای مهم و رایج دیکشنریها در پایتون
get(key, default) → دریافت مقدار بدون خطاsetdefault(key, default) → ایجاد کلید در صورت عدم وجودupdate(mapping) → ادغام دو دیکشنریpop(key, default) → حذف کلید و بازگرداندن مقدارpopitem() → حذف آخرین کلید اضافهشدهkeys(), values(), items() → دسترسی به اجزای دیکشنری@Teachify | برنامهنویسی
❤1👍1
Forwarded from کالی بویز | ترفند | تکنولوژی (YOUSEF)
✔️ سوءاستفاده از بلکفرایدی در ایران!
این روزها همهمون شاهدیم که بعضی از فروشگاههای ایرانی با چه جسارتی مردم رو دست میاندازن و تخفیفهای ساختگی رو بهعنوان «بلکفرایدی» جا میزنن.
شما هم اینجوری باهاش حساب کنین:
اسم فروشگاه رو در گوگل جستوجو کنید. روی لینک اول، سهنقطهی سمت راستش رو بزنید و وارد گزینهی Feedback بشید.
از بین گزینهها، Irrelevant content رو انتخاب کنید.
در باکسی که ظاهر میشه، بنویسید:
و ارسالش کنید.
از بقیه هم بخواین همین کار رو انجام بدن. وقتی تعداد گزارشها بالا بره، گوگل فروشگاه رو ریپورت میکنه و رتبهش بهشدت سقوط میکنه. این بهترین راهه تا بفهمن نمیتونن با بیشرمی، نامردی و سوءاستفاده از اعتماد مردم ادامه بدن.
در نهایت، همیشه به یاد داشته باشیم:
پنیرِ مفت فقط تو تلهٔ موشه.
همه میدونیم کدوم فروشگاه ها رو باید ریپورت کنیم(توی عکس ها من با آمازون یاد دادم ولی به اشتباه نرید آمازون رو بزنید)🙏
این پست رو share کنید تا همه در جریان باشن.
@kaliboys | کالی بویز
این روزها همهمون شاهدیم که بعضی از فروشگاههای ایرانی با چه جسارتی مردم رو دست میاندازن و تخفیفهای ساختگی رو بهعنوان «بلکفرایدی» جا میزنن.
شما هم اینجوری باهاش حساب کنین:
اسم فروشگاه رو در گوگل جستوجو کنید. روی لینک اول، سهنقطهی سمت راستش رو بزنید و وارد گزینهی Feedback بشید.
از بین گزینهها، Irrelevant content رو انتخاب کنید.
در باکسی که ظاهر میشه، بنویسید:
scam shoppingو ارسالش کنید.
از بقیه هم بخواین همین کار رو انجام بدن. وقتی تعداد گزارشها بالا بره، گوگل فروشگاه رو ریپورت میکنه و رتبهش بهشدت سقوط میکنه. این بهترین راهه تا بفهمن نمیتونن با بیشرمی، نامردی و سوءاستفاده از اعتماد مردم ادامه بدن.
در نهایت، همیشه به یاد داشته باشیم:
پنیرِ مفت فقط تو تلهٔ موشه.
همه میدونیم کدوم فروشگاه ها رو باید ریپورت کنیم(توی عکس ها من با آمازون یاد دادم ولی به اشتباه نرید آمازون رو بزنید)🙏
این پست رو share کنید تا همه در جریان باشن.
@kaliboys | کالی بویز
👍21❤2👌1
✔️ تفاوت set و frozenset در پایتون
در پایتون، دو نوع ساختار برای کار با مجموعههای غیرتکراری وجود دارد: set و frozenset.
تفاوت اصلی آنها در قابلیت تغییر است:
▪️set (قابل تغییر – Mutable)
کاربرد: زمانی که دادهها در طول برنامه نیاز به بهروزرسانی دارند.
▪️frozenset (غیرقابل تغییر – Immutable)
کاربرد: دادههای ثابت و hashable
@Teachify | برنامه نویسی
در پایتون، دو نوع ساختار برای کار با مجموعههای غیرتکراری وجود دارد: set و frozenset.
تفاوت اصلی آنها در قابلیت تغییر است:
▪️set (قابل تغییر – Mutable)
s = {1, 2, 3}
s.add(4) #افزودن عنصر
s.remove(2) # حذف عنصر
print(s) # خروجی: {1, 3, 4}کاربرد: زمانی که دادهها در طول برنامه نیاز به بهروزرسانی دارند.
▪️frozenset (غیرقابل تغییر – Immutable)
fs = frozenset([1, 2, 3])
print(fs) # خروجی: frozenset({1, 2, 3})
# fs.add(4)
#خطا: frozenset قابل تغییر نیست
کاربرد: دادههای ثابت و hashable
weights = {frozenset(["سیب", "موز"]): 120}
key = frozenset(["موز", "سیب"])
print(weights[key]) # خروجی: 120@Teachify | برنامه نویسی
👍4❤2
✔️ حقیقتی که باید قبول کنیم
عزیزان ،
اگر صرفا یک Endpoint از OpenAI یا هر AI Service Provider دیگری را صدا میزنید و یک اتفاقی می افتد، شما از خدایان هوش مصنوعی نیستید - باور کنید شما اصلا چیز خاصی نیستید، شما در حال حرام شدن و یک استعداد کشف نشده نیستید، شما صرفا یک صدا کننده یک API هستید - زیاد خودتان را اذیت نکنید !! - کسی هم در هیچ کجای دنیا الاف این تخصص عجیب شما نیست - به همان CRUD ادامه بدهید - خبری هم از حقوق 800 هزار دلاری نیست - بشین سر جات دوست من !
پیروز باشید
@Teachify | #AliKolahdoozan
عزیزان ،
اگر صرفا یک Endpoint از OpenAI یا هر AI Service Provider دیگری را صدا میزنید و یک اتفاقی می افتد، شما از خدایان هوش مصنوعی نیستید - باور کنید شما اصلا چیز خاصی نیستید، شما در حال حرام شدن و یک استعداد کشف نشده نیستید، شما صرفا یک صدا کننده یک API هستید - زیاد خودتان را اذیت نکنید !! - کسی هم در هیچ کجای دنیا الاف این تخصص عجیب شما نیست - به همان CRUD ادامه بدهید - خبری هم از حقوق 800 هزار دلاری نیست - بشین سر جات دوست من !
پیروز باشید
@Teachify | #AliKolahdoozan
😁11👍7❤3
برنامه نویس های عزیز شما دلتون گرفتنی چیکار میکنید؟
👨💻14❤2
✔️ سطح توسعهدهنده، فقط کدنویسی نیست!
برنامه نویس Junior
کد میزنه تا برنامه فقط کار کنه.
برنامه نویس Mid-Level
کد رو تمیز و مرتب میکنه. میدونه:
هر چیزی که کار میکنه، لزوماً خوب نیست.
برنامه نویس Senior
میفهمه کی باید کد بزنه، کی نزنه و کی کد رو حذف کنه.
برنامه نویس Lead
اصلاً نمیذاره کد اشتباه نوشته بشه.
قبل از اجرا، مسئله رو درست تعریف میکنه.
حقیقت ساده ولی مهم:
هر چی جلوتر میری، کمتر کد میزنی
ولی مسئولیت تصمیمهات خیلی سنگینتر میشه.
تجربه فقط به سالها نیست؛
طرز فکر و تصمیمگیریه که سطح واقعی تو رو نشون میده.
@Teachify | برنامه نویسی
برنامه نویس Junior
کد میزنه تا برنامه فقط کار کنه.
برنامه نویس Mid-Level
کد رو تمیز و مرتب میکنه. میدونه:
هر چیزی که کار میکنه، لزوماً خوب نیست.
برنامه نویس Senior
میفهمه کی باید کد بزنه، کی نزنه و کی کد رو حذف کنه.
برنامه نویس Lead
اصلاً نمیذاره کد اشتباه نوشته بشه.
قبل از اجرا، مسئله رو درست تعریف میکنه.
حقیقت ساده ولی مهم:
هر چی جلوتر میری، کمتر کد میزنی
ولی مسئولیت تصمیمهات خیلی سنگینتر میشه.
تجربه فقط به سالها نیست؛
طرز فکر و تصمیمگیریه که سطح واقعی تو رو نشون میده.
@Teachify | برنامه نویسی
👍19
✔️ چه بلایی سر MinIO اومده؟
تیم توسعه MinIO رسماً اعلام کرده است که نسخه متنباز MinIO وارد Maintenance Mode شده است.
- توسعه فعال نسخه Community متوقف شده است
- رفع مشکلات تنها برای باگهای امنیتی حیاتی انجام میشود
- افزودن قابلیتهای جدید یا بهبودهای عمده دیگر در نسخه متنباز ارائه نخواهد شد
- تمرکز تیم توسعه اکنون به سمت نسخه Enterprise با نام AIStor معطوف شده است
—> به عبارت دیگر، نسخه متنباز MinIO دیگر در حال رشد و توسعه فعال نیست و تنها برای اطمینان از ثبات و امنیت نگهداری میشود.
پیامدها برای کاربران:
_ پروژههایی که روی نسخه Community بنا شدهاند، ممکن است نیازمند بازبینی و برنامهریزی بلندمدت باشند
- انتشار باینریها و تصاویر رسمی Docker/Helm نسخه متنباز متوقف شده است
- مدیریت و تنظیمات پیشرفته UI به نسخه Enterprise منتقل شده است
جایگزینهای متنباز معتبر:
Ceph
SeaweedFS
Garage
Zenko
🔗 لینک رسمی پروژه: MinIO GitHub
@Teachify | برنامه نویسی
تیم توسعه MinIO رسماً اعلام کرده است که نسخه متنباز MinIO وارد Maintenance Mode شده است.
- توسعه فعال نسخه Community متوقف شده است
- رفع مشکلات تنها برای باگهای امنیتی حیاتی انجام میشود
- افزودن قابلیتهای جدید یا بهبودهای عمده دیگر در نسخه متنباز ارائه نخواهد شد
- تمرکز تیم توسعه اکنون به سمت نسخه Enterprise با نام AIStor معطوف شده است
—> به عبارت دیگر، نسخه متنباز MinIO دیگر در حال رشد و توسعه فعال نیست و تنها برای اطمینان از ثبات و امنیت نگهداری میشود.
پیامدها برای کاربران:
_ پروژههایی که روی نسخه Community بنا شدهاند، ممکن است نیازمند بازبینی و برنامهریزی بلندمدت باشند
- انتشار باینریها و تصاویر رسمی Docker/Helm نسخه متنباز متوقف شده است
- مدیریت و تنظیمات پیشرفته UI به نسخه Enterprise منتقل شده است
جایگزینهای متنباز معتبر:
Ceph
SeaweedFS
Garage
Zenko
🔗 لینک رسمی پروژه: MinIO GitHub
@Teachify | برنامه نویسی
💔2
✔️ تفاوت repr و str در پایتون
متد repr:
نمایش رسمی و دقیق شیء
مخصوص برنامهنویس، دیباگ و لاگ
متد str:
نمایش کاربرپسند شیء
مخصوص خروجی برای کاربر نهایی
نکته مهم:
اگه str نباشه پایتون از repr استفاده میکنه.
@Teachify | برنامه نویسی
متد repr:
نمایش رسمی و دقیق شیء
مخصوص برنامهنویس، دیباگ و لاگ
متد str:
نمایش کاربرپسند شیء
مخصوص خروجی برای کاربر نهایی
class User:
def init(self, name):
self.name = name
def repr(self):
return f"User(name={self.name!r})"
def str(self):
return self.name
u = User("Yousef")
print(u) # Yousef
repr(u) # User(name='Yousef')`
نکته مهم:
اگه str نباشه پایتون از repr استفاده میکنه.
@Teachify | برنامه نویسی
❤5
✔️ 8 مدل LLM مناسب اجرا روی لوکال (دسامبر 2025)
1️⃣ Devstral-2-123B
بهترین برای برنامهنویسی
مخصوص توسعه نرمافزار، دیباگ، ریفکتور و ساخت Agent
2️⃣ MiniMax-M2
Agent + Coding + UI
مناسب فولاستک و پروتوتایپ سریع
3️⃣ GLM-4.5-Air
بهترین انتخاب کلی
روزمره، سریع و پایدار
4️⃣ Qwen3-VL-235B-A22B
متن + تصویر
بهترین مدل بینایی (VLM)
5️⃣ GLM-4.6 (REAPed)
استدلال قوی + کدنویسی پیشرفته
قدرت بالا در مسائل پیچیده
6️⃣ Nemotron-3-Nano-30B-A3B
سبک ولی قدرتمند
کیفیت بالا با مصرف کمتر
7️⃣ GPT-OSS-120B
GPT-5 روی سیستم خودت
Agent و Coding سنگین
8️⃣ GPT-OSS-20B
سریع و کممصرف
مناسب Automation و Tool Calling
@Teachify | برنامه نویسی
1️⃣ Devstral-2-123B
بهترین برای برنامهنویسی
مخصوص توسعه نرمافزار، دیباگ، ریفکتور و ساخت Agent
2️⃣ MiniMax-M2
Agent + Coding + UI
مناسب فولاستک و پروتوتایپ سریع
3️⃣ GLM-4.5-Air
بهترین انتخاب کلی
روزمره، سریع و پایدار
4️⃣ Qwen3-VL-235B-A22B
متن + تصویر
بهترین مدل بینایی (VLM)
5️⃣ GLM-4.6 (REAPed)
استدلال قوی + کدنویسی پیشرفته
قدرت بالا در مسائل پیچیده
6️⃣ Nemotron-3-Nano-30B-A3B
سبک ولی قدرتمند
کیفیت بالا با مصرف کمتر
7️⃣ GPT-OSS-120B
GPT-5 روی سیستم خودت
Agent و Coding سنگین
8️⃣ GPT-OSS-20B
سریع و کممصرف
مناسب Automation و Tool Calling
@Teachify | برنامه نویسی
❤4