Linux Mint 22.2 با اسم "Zara" منتشر شد. این نسخه بر پایه Ubuntu 24.04 LTS ساخته شده و از کرنل 6.14 استفاده میکنه.
🔄 تغییرات جدید:
- اپ Fingwit برای ورود با اثرانگشت
- بهبود Wayland session (بهویژه در Cinnamon)
- آپدیت تمها و پشتیبانی از Accent Colors
- تغییرات در Sticky Notes، لاگین اسکرین، Hypnotix و چندین جزئیات دیگه
⏳ پشتیبانی از این نسخه تا سال 2029 ادامه داره.
#linux #mint #update
☕️ Telegram | Website | Discord
🔄 تغییرات جدید:
- اپ Fingwit برای ورود با اثرانگشت
- بهبود Wayland session (بهویژه در Cinnamon)
- آپدیت تمها و پشتیبانی از Accent Colors
- تغییرات در Sticky Notes، لاگین اسکرین، Hypnotix و چندین جزئیات دیگه
⏳ پشتیبانی از این نسخه تا سال 2029 ادامه داره.
#linux #mint #update
☕️ Telegram | Website | Discord
🔥7❤🔥2
مدیریت حافظه توی Go ⏳
شاید براتون جالب باشه بدونید که هر برنامهٔ کامپیوتری معمولاً حافظهشو تو سه بخش اصلی نگه میداره:
حافظهٔ سراسری (Global): برای متغیرهایی که کل مدت اجرای برنامه هستن.
پشته (Stack): برای متغیرهای محلی و موقتی؛ سریع و خودکار تخصیص و آزاد میشه.
هیپ (Heap): برای دادههایی که عمر طولانیتری دارن یا بین بخشهای مختلف برنامه به اشتراک گذاشته میشن؛ مدیریتشون کمی سختتره.
زبان Go برای اینکه برنامهها سبکتر و سریعتر باشن، تا جایی که میتونه دادهها رو تو پشته نگه میداره. اینکه یه داده تو پشته بمونه یا بره هیپ، رو بخشی از کامپایلر به اسم تحلیل فرار (Escape Analysis) تصمیم میگیره. این تحلیل نگاه میکنه اگه یه متغیر بعد از تموم شدن تابع هم باید زنده بمونه، میفرستدش هیپ.
تو زبانهایی مثل C و ++C، آزاد نکردن حافظه، دوبار آزاد کردن یا اشارهگرهای معلق میتونه دردسر بزرگی بشه. Go با داشتن جمعآوریکنندهٔ زباله (Garbage Collector) این دردسرا رو از دوش برنامهنویس برداشته. GCش بر پایهٔ الگوریتم Mark & Sweep کار میکنه و خودکار حافظهٔ بلااستفاده رو آزاد میکنه.
به زبون ساده:
1️⃣ توقف کوتاهمدت برنامه (Stop-The-World): وقتی GC شروع میشه، اجرای goroutineها برای مدت کوتاهی متوقف میشه تا وضعیت حافظه ثبت بشه.
2️⃣ علامتگذاری (Mark): اشیایی که هنوز در حال استفادهان علامت میخورن.
3️⃣ پاکسازی (Sweep): حافظهٔ اشیای غیرقابلدسترس آزاد میشه.
یه نکتهٔ جالب دیگه اینه که کد نهایی Go شامل runtime خودش هم هست؛ یعنی وقتی یه برنامهٔ Go رو کامپایل میکنید، علاوه بر کد شما، اجزای زماناجرای Go مثل همین GC، مدیریت پشته، زمانبندی goroutineها و فراخوانیهای سیستمی هم داخل فایل باینری قرار میگیرن. این باعث میشه خیلی از قابلیتهای مدیریت حافظه بهصورت خودکار تو برنامه حاضر باشه.
پس GC همواره رشد هیپ رو زیر نظر داره و هر وقت لازم باشه، چرخهٔ جدیدی راه میندازه تا حافظهٔ غیرقابلاستفاده آزاد بشه. نتیجهٔ این طراحی اینه که تو Go میتونید با خیال راحتتر برنامهنویسی کنید و کمتر نگران آزاد کردن دستی حافظه باشید.
#go #memory #managment
☕️ Telegram | Website | Discord
شاید براتون جالب باشه بدونید که هر برنامهٔ کامپیوتری معمولاً حافظهشو تو سه بخش اصلی نگه میداره:
حافظهٔ سراسری (Global): برای متغیرهایی که کل مدت اجرای برنامه هستن.
پشته (Stack): برای متغیرهای محلی و موقتی؛ سریع و خودکار تخصیص و آزاد میشه.
هیپ (Heap): برای دادههایی که عمر طولانیتری دارن یا بین بخشهای مختلف برنامه به اشتراک گذاشته میشن؛ مدیریتشون کمی سختتره.
زبان Go برای اینکه برنامهها سبکتر و سریعتر باشن، تا جایی که میتونه دادهها رو تو پشته نگه میداره. اینکه یه داده تو پشته بمونه یا بره هیپ، رو بخشی از کامپایلر به اسم تحلیل فرار (Escape Analysis) تصمیم میگیره. این تحلیل نگاه میکنه اگه یه متغیر بعد از تموم شدن تابع هم باید زنده بمونه، میفرستدش هیپ.
تو زبانهایی مثل C و ++C، آزاد نکردن حافظه، دوبار آزاد کردن یا اشارهگرهای معلق میتونه دردسر بزرگی بشه. Go با داشتن جمعآوریکنندهٔ زباله (Garbage Collector) این دردسرا رو از دوش برنامهنویس برداشته. GCش بر پایهٔ الگوریتم Mark & Sweep کار میکنه و خودکار حافظهٔ بلااستفاده رو آزاد میکنه.
به زبون ساده:
1️⃣ توقف کوتاهمدت برنامه (Stop-The-World): وقتی GC شروع میشه، اجرای goroutineها برای مدت کوتاهی متوقف میشه تا وضعیت حافظه ثبت بشه.
2️⃣ علامتگذاری (Mark): اشیایی که هنوز در حال استفادهان علامت میخورن.
3️⃣ پاکسازی (Sweep): حافظهٔ اشیای غیرقابلدسترس آزاد میشه.
یه نکتهٔ جالب دیگه اینه که کد نهایی Go شامل runtime خودش هم هست؛ یعنی وقتی یه برنامهٔ Go رو کامپایل میکنید، علاوه بر کد شما، اجزای زماناجرای Go مثل همین GC، مدیریت پشته، زمانبندی goroutineها و فراخوانیهای سیستمی هم داخل فایل باینری قرار میگیرن. این باعث میشه خیلی از قابلیتهای مدیریت حافظه بهصورت خودکار تو برنامه حاضر باشه.
پس GC همواره رشد هیپ رو زیر نظر داره و هر وقت لازم باشه، چرخهٔ جدیدی راه میندازه تا حافظهٔ غیرقابلاستفاده آزاد بشه. نتیجهٔ این طراحی اینه که تو Go میتونید با خیال راحتتر برنامهنویسی کنید و کمتر نگران آزاد کردن دستی حافظه باشید.
#go #memory #managment
☕️ Telegram | Website | Discord
🔥5❤🔥2😍2
مایکروسافت سورس کد Microsoft BASIC که برای پردازنده 6502 هست و سال 1978 توسط بیل گیتس و پل آلن نوشته شده رو توی گیت هاب گذاشته برید ببینیدش.
🔗 https://github.com/microsoft/BASIC-M6502
#microsoft #basic #sourcecode
☕️ Telegram | Website | Discord
🔗 https://github.com/microsoft/BASIC-M6502
#microsoft #basic #sourcecode
☕️ Telegram | Website | Discord
❤🔥6🔥2⚡1
دوستان برای ساخت محتوا توی یوتوب چه پیشنهاداتی برای ما دارین؟
ما همیشه سعی کردیم انتقاداتتونو بشنویم و بهش عمل کنیم پس توی کامنتای این پست منتظر پیشنهاداتتون هستیم.
ما همیشه سعی کردیم انتقاداتتونو بشنویم و بهش عمل کنیم پس توی کامنتای این پست منتظر پیشنهاداتتون هستیم.
🔥10
🚀 4 قسمت جدید از آموزش مقدماتی تا پیشرفته Django رایگان منتشر شد 💼🐍
اگه پایتون بلدی و میخوای وارد دنیای برنامهنویسی وب بشی، این دوره دقیقاً برای توئه!
تو مسیر آموزش یاد میگیری چطوری بکاند یک سایت رو طراحی کنی، پایگاه داده بسازی، صفحات داینامیک داشته باشی و در نهایت یه اپلیکیشن تحتوب واقعی رو کامل پیادهسازی کنی.
📅 دوره بهصورت سه روز یکبار آپدیت میشه و قسمتهای جدید بهش اضافه میشه.
🔔 قسمتهای منتشر شده:
🔹 فصل دوم جنگو پیشرفته
- Class-based views(CBV)
- CBV – Methods
- CBV – TemplateView
- CBV – RedirectView
🎬 دسترسی به دوره
اگه دوست داشتین میتونید دوره رو از یوتیوب ببینید.
#django #python #backend
☕️Telegram | Website | Discord
اگه پایتون بلدی و میخوای وارد دنیای برنامهنویسی وب بشی، این دوره دقیقاً برای توئه!
تو مسیر آموزش یاد میگیری چطوری بکاند یک سایت رو طراحی کنی، پایگاه داده بسازی، صفحات داینامیک داشته باشی و در نهایت یه اپلیکیشن تحتوب واقعی رو کامل پیادهسازی کنی.
📅 دوره بهصورت سه روز یکبار آپدیت میشه و قسمتهای جدید بهش اضافه میشه.
🔔 قسمتهای منتشر شده:
🔹 فصل دوم جنگو پیشرفته
- Class-based views(CBV)
- CBV – Methods
- CBV – TemplateView
- CBV – RedirectView
🎬 دسترسی به دوره
اگه دوست داشتین میتونید دوره رو از یوتیوب ببینید.
#django #python #backend
☕️Telegram | Website | Discord
🔥12😍7⚡3❤🔥2
کداکسپلور | CodeExplore
دوستان برای ساخت محتوا توی یوتوب چه پیشنهاداتی برای ما دارین؟ ما همیشه سعی کردیم انتقاداتتونو بشنویم و بهش عمل کنیم پس توی کامنتای این پست منتظر پیشنهاداتتون هستیم.
پیشنهادات شما باعث میشه محتوایی که شما بهش علاقه دارین رو تولید کنیم پس بنویسید برامون.
* ایده برای یوتوب
* ایده برای یوتوب
🔥3❤🔥2
4 قسمت جدید از آموزش مقدماتی پایتون مقدماتی رایگان منتشر شد🐍💻
اگه قصد داری پایتون رو از پایه شروع کنی و به زبان ساده ولی کاربردی وارد دنیای برنامه نویسی بشی، این دوره برای خودته!
توی این دورهی پروژه محور، از مفاهیم ابتدایی مثل متغیرها، شرطها و حلقهها شروع میکنیم و قدم به قدم تا موضوعات مهم تر مثل ماژول ها، شیگرایی مقدماتی و مدیریت خطاها پیش میریم.
تو مسیر آموزش، دو پروژهی واقعی هم انجام میدیم (مدیریت دانشآموزان و مدیریت وظایف) تا علاوه بر یادگیری مباحث تئوری، تجربهی عملی هم داشته باشی.
📅 دوره به صورت سه روز یکبار آپدیت میشه و قسمتهای جدید بهش اضافه میشه.
🔔 قسمت های منتشر شده:
- Dictionary
- پروژه مدیریت دانش آموزان
- ماژول ها – بخش اول
- ماژول ها – بخش دوم
🎬 دسترسی به دوره
#python #programming #beginners
☕️ Telegram | Website | Discord
اگه قصد داری پایتون رو از پایه شروع کنی و به زبان ساده ولی کاربردی وارد دنیای برنامه نویسی بشی، این دوره برای خودته!
توی این دورهی پروژه محور، از مفاهیم ابتدایی مثل متغیرها، شرطها و حلقهها شروع میکنیم و قدم به قدم تا موضوعات مهم تر مثل ماژول ها، شیگرایی مقدماتی و مدیریت خطاها پیش میریم.
تو مسیر آموزش، دو پروژهی واقعی هم انجام میدیم (مدیریت دانشآموزان و مدیریت وظایف) تا علاوه بر یادگیری مباحث تئوری، تجربهی عملی هم داشته باشی.
📅 دوره به صورت سه روز یکبار آپدیت میشه و قسمتهای جدید بهش اضافه میشه.
🔔 قسمت های منتشر شده:
- Dictionary
- پروژه مدیریت دانش آموزان
- ماژول ها – بخش اول
- ماژول ها – بخش دوم
🎬 دسترسی به دوره
#python #programming #beginners
☕️ Telegram | Website | Discord
❤🔥3😍3🔥1
🔹DocumentDB به Linux Foundation جوین شد!
مایکروسافت اعلام کرد که DocumentDB، دیتابیس اوپن سورس مبتنی به PostgreSQL، حالا بهعنوان یه پروژه رسمی زیر نظر Linux Foundation توسعه داده میشه.
🧩 ویژگی های DocumentDB:
- پشتیبانی از BSON و Document Queries
- Compatibility کامل با MongoDB API و درایورها
- قابلیتهای پیشرفته مثل Full-Text Search، GeoSpatial Queries و Vector Search
- Open Source با شفافیت کامل در معماری و Engine
🤝 این پروژه با حمایت شرکتهایی مثل AWS، Google، Cockroach Labs، Snowflake، Supabase، Yugabyte و چندین شرکت دیگه در حال توسعه هست.
منبع
#documentdb #linux #foundation
☕️ Telegram | Website | Discord
مایکروسافت اعلام کرد که DocumentDB، دیتابیس اوپن سورس مبتنی به PostgreSQL، حالا بهعنوان یه پروژه رسمی زیر نظر Linux Foundation توسعه داده میشه.
🧩 ویژگی های DocumentDB:
- پشتیبانی از BSON و Document Queries
- Compatibility کامل با MongoDB API و درایورها
- قابلیتهای پیشرفته مثل Full-Text Search، GeoSpatial Queries و Vector Search
- Open Source با شفافیت کامل در معماری و Engine
🤝 این پروژه با حمایت شرکتهایی مثل AWS، Google، Cockroach Labs، Snowflake، Supabase، Yugabyte و چندین شرکت دیگه در حال توسعه هست.
منبع
#documentdb #linux #foundation
☕️ Telegram | Website | Discord
❤🔥3⚡2🔥1
🧱 YAML یه قالب ساده و خوانا برای ذخیره و نمایش دادههاست، مخصوصاً تنظیمات و پیکربندیها. هدفش اینه که هم ماشین راحت پردازش کنه و هم انسان راحت بخونه. بهجای پرانتز و آکولاد، فقط با indentation (تورفتگی) ساختار دادهها رو مشخص میکنه، برای همین فایلهاش خیلی تمیز و قابل فهمه.
از Docker و Kubernetes گرفته تا Ansible و Github Actions، همه جا ردپای YAML رو میبینیم✅
🧐اگر شما هم کنجکاو شدین بیشتر در موردش بدونید مقاله مارو توی سایت بخونین.
🔗 https://codeexplore.ir/yaml/
#yaml #introduction
☕️Telegram | Website | Discord
از Docker و Kubernetes گرفته تا Ansible و Github Actions، همه جا ردپای YAML رو میبینیم✅
🧐اگر شما هم کنجکاو شدین بیشتر در موردش بدونید مقاله مارو توی سایت بخونین.
🔗 https://codeexplore.ir/yaml/
#yaml #introduction
☕️Telegram | Website | Discord
❤🔥9😍3⚡1
🚀 4 قسمت جدید از آموزش مقدماتی تا پیشرفته Django رایگان منتشر شد 💼🐍
اگه پایتون بلدی و میخوای وارد دنیای برنامهنویسی وب بشی، این دوره دقیقاً برای توئه!
تو مسیر آموزش یاد میگیری چطوری بکاند یک سایت رو طراحی کنی، پایگاه داده بسازی، صفحات داینامیک داشته باشی و در نهایت یه اپلیکیشن تحتوب واقعی رو کامل پیادهسازی کنی.
📅 دوره بهصورت سه روز یکبار آپدیت میشه و قسمتهای جدید بهش اضافه میشه.
🔔 قسمتهای منتشر شده:
🔹 فصل دوم جنگو پیشرفته
- CBV – DetailViews
- CBV – DeleteViews
- CBV – ListViews
- میکسینها
🎬 دسترسی به دوره
اگه دوست داشتین میتونید دوره رو از یوتیوب ببینید.
#django #python #backend
☕️Telegram | Website | Discord
اگه پایتون بلدی و میخوای وارد دنیای برنامهنویسی وب بشی، این دوره دقیقاً برای توئه!
تو مسیر آموزش یاد میگیری چطوری بکاند یک سایت رو طراحی کنی، پایگاه داده بسازی، صفحات داینامیک داشته باشی و در نهایت یه اپلیکیشن تحتوب واقعی رو کامل پیادهسازی کنی.
📅 دوره بهصورت سه روز یکبار آپدیت میشه و قسمتهای جدید بهش اضافه میشه.
🔔 قسمتهای منتشر شده:
🔹 فصل دوم جنگو پیشرفته
- CBV – DetailViews
- CBV – DeleteViews
- CBV – ListViews
- میکسینها
🎬 دسترسی به دوره
اگه دوست داشتین میتونید دوره رو از یوتیوب ببینید.
#django #python #backend
☕️Telegram | Website | Discord
🔥8❤🔥4⚡1😍1
Flowbit یه لایبرری اوپن سورسه که روی Tailwind CSS ساختهشده و بیشتر از 600 کامپوننت و صفحه آماده داره. میتونی هم توی پروژه های React, Vue, Angular یا Svelte ازش استفاده کنی و هم توی Figma برای طراحی. خلاصه اگه با Tailwind کار میکنی، Flowbite راهتو خیلی سریعتر میکنه.
🔗 https://flowbite.com
☕️Telegram | Website | Discord
🔗 https://flowbite.com
☕️Telegram | Website | Discord
❤🔥5🔥2😍1
پیاده سازی Defer در پایتون🔥
شاید دلتون بخواد توی پایتونتون defer داشته باشید. با اینکه به صورت built-in همچین چیزی وجود نداره اما میتونید یا خودتون با دکوراتور ها یکی بسازید یا از لایبرری استفاده کنید.
روش اول(استفاده از لایبرری):
و نمونه استفاده اش:
روش دوم(چرخو خودتون بسازید):
برای روش دوم باید یه سری چیزو بدونیم. دیفر در واقع یه فانکشن رو به عنوان ورودی میگیره و اونو زمان بندی میکنه. اما کی؟ لحظه آخری که تابع قراره به اتمام برسه. چطوری؟ با استفاده از ارور هندلینگ پایتون. میایم یه دکوراتور درست میکنیم و بعد از اینکه تابع کارش تموم شد، استک کال های دیفر رو به اجرا در میاریم.
🐾 پیاده سازی دکوراتور دیفر:
و نکته کد زیر اینه ما از ارور هندینگ استفاده میکنیم. ولی مهم نیست تابع چیزی raise کنه یا نکنه. در هر صورت باید کد توی بلاک Finally ران بشه که در واقع خالی کردن استک دیفر هست. و چه کد بدون خط و چه با خطا توی تابع جلو بره قبلا از اینکه تابع به پایان برسه و return بشه، finally اجرا میشه.
و استفادش:
خروجی:
البته این پست صرفا برای آشنایی با مکانیزم دیفره. چون شاید به ذهنتون برسه اینه که این پیاده سازی Pythonic نیست و میتونیم به جاش از With استفاده کنیم که خودش به صورت اتوماتیک این کارو انجام میده.
#defer #python
☕️Telegram | Website | Discord
شاید دلتون بخواد توی پایتونتون defer داشته باشید. با اینکه به صورت built-in همچین چیزی وجود نداره اما میتونید یا خودتون با دکوراتور ها یکی بسازید یا از لایبرری استفاده کنید.
روش اول(استفاده از لایبرری):
pip install defer
و نمونه استفاده اش:
from defer import defer
@defer
def main(d):
f = open("file.txt")
d(f.close) # in go: `defer f.close()`
print(f.read())
روش دوم(چرخو خودتون بسازید):
برای روش دوم باید یه سری چیزو بدونیم. دیفر در واقع یه فانکشن رو به عنوان ورودی میگیره و اونو زمان بندی میکنه. اما کی؟ لحظه آخری که تابع قراره به اتمام برسه. چطوری؟ با استفاده از ارور هندلینگ پایتون. میایم یه دکوراتور درست میکنیم و بعد از اینکه تابع کارش تموم شد، استک کال های دیفر رو به اجرا در میاریم.
🐾 پیاده سازی دکوراتور دیفر:
و نکته کد زیر اینه ما از ارور هندینگ استفاده میکنیم. ولی مهم نیست تابع چیزی raise کنه یا نکنه. در هر صورت باید کد توی بلاک Finally ران بشه که در واقع خالی کردن استک دیفر هست. و چه کد بدون خط و چه با خطا توی تابع جلو بره قبلا از اینکه تابع به پایان برسه و return بشه، finally اجرا میشه.
def defer(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
deferred = [] # Store deferred functions as (fn, args, kwargs)
def d(fn, *a, **kw):
"""Register a function to run at the end of the main function (LIFO)."""
deferred.append((fn, a, kw))
try:
# Call the original function, passing in the defer collector
return func(d, *args, **kwargs)
finally:
# Run deferred functions in reverse order automatically
while deferred:
fn, a, kw = deferred.pop()
try:
fn(*a, **kw)
except Exception:
print("Exception in deferred function:")
traceback.print_exc()
return wrapper
و استفادش:
@defer
def example(d):
f = open("file.txt", "w")
d(f.close) # schedule file close
d(lambda: print("Deferred print 1"))
d(lambda: print("Deferred print 2"))
print("Inside function")
f.write("Hello from example!\n")
خروجی:
Inside function
Deferred print 2
Deferred print 1
البته این پست صرفا برای آشنایی با مکانیزم دیفره. چون شاید به ذهنتون برسه اینه که این پیاده سازی Pythonic نیست و میتونیم به جاش از With استفاده کنیم که خودش به صورت اتوماتیک این کارو انجام میده.
#defer #python
☕️Telegram | Website | Discord
🔥5❤🔥2