Forwarded from DevTwitter | توییت برنامه نویسی
کمپانی OpenAI مدل GPT-5-Codex-Mini را معرفی کرد؛ کدنویسی با هزینه کمتر
کمپانی OpenAI نسخه جدیدی از مدل کدنویسی خود با نام GPT-5-Codex-Mini را معرفی کرده است که نسخهای کوچکتر و مقرونبهصرفهتر نسبت به GPT-5-Codex محسوب میشود. این مدل امکان چهار برابر استفاده بیشتر را با کاهش جزئی در قابلیتها فراهم میکند و در بنچمارک SWE-bench Verified امتیاز ٧١.٣ درصد کسب کرده است. عملکرد آن در مقایسه با نسخه اصلی قابلتوجه و رضایتبخش ارزیابی شده است.
مدل GPT-5-Codex برای بهبود توانایی در کارهای واقعی مهندسی نرمافزار طراحی شده بود و وظایفی مانند ایجاد پروژههای جدید، افزودن قابلیتها، تستهای تازه و بازسازی گسترده کد را پوشش میداد. نسخه مینی برای وظایف سبکتر یا زمانی که توسعهدهندگان به محدودیتهای مدل اصلی نزدیک میشوند توصیه شده است. این مدل اکنون در CLI و افزونه IDE در دسترس است و پشتیبانی API آن نیز بهزودی فعال خواهد شد.
@DevTwitter | <Digiato/>
کمپانی OpenAI نسخه جدیدی از مدل کدنویسی خود با نام GPT-5-Codex-Mini را معرفی کرده است که نسخهای کوچکتر و مقرونبهصرفهتر نسبت به GPT-5-Codex محسوب میشود. این مدل امکان چهار برابر استفاده بیشتر را با کاهش جزئی در قابلیتها فراهم میکند و در بنچمارک SWE-bench Verified امتیاز ٧١.٣ درصد کسب کرده است. عملکرد آن در مقایسه با نسخه اصلی قابلتوجه و رضایتبخش ارزیابی شده است.
مدل GPT-5-Codex برای بهبود توانایی در کارهای واقعی مهندسی نرمافزار طراحی شده بود و وظایفی مانند ایجاد پروژههای جدید، افزودن قابلیتها، تستهای تازه و بازسازی گسترده کد را پوشش میداد. نسخه مینی برای وظایف سبکتر یا زمانی که توسعهدهندگان به محدودیتهای مدل اصلی نزدیک میشوند توصیه شده است. این مدل اکنون در CLI و افزونه IDE در دسترس است و پشتیبانی API آن نیز بهزودی فعال خواهد شد.
@DevTwitter | <Digiato/>
Forwarded from Linuxor ?
مایکروسافت یه چیزی توسعه داده به اسم Swin Transformer که یه مدل بینایی کامپیوتریه که مثل Transformerهای NLP کار میکنه، ولی مخصوص تصویر طراحی شده. ایدهش اینه که تصویر رو به پنجرههای کوچیک تقسیم میکنه و هر پنجره با خودش تمرکز میکنه، بعد پنجرهها رو شیفت میده تا با هم ارتباط پیدا کنن در نتیجه یه مدل سریع، کارآمد و دقیق برای تشخیص تصویر، تشخیص اشیاء و حتی جداسازی اشیاءه.
این مدل خیلی خوبه وقتی میخواین پروژههای واقعی بینایی بسازین، مثل تشخیص شیء تو عکسهای دوربین، یا طبقهبندی و جداسازی تصویر. نسبت به CNNهای قدیمی میتونه جزئیات و مقیاسهای مختلف رو بهتر مدیریت کنه.
برای شروع میتونین با نسخه از پیشآموزشدیده Swin Transformer توی PyTorch کار کنین و مدل رو روی دادهٔ ها خودتون fine-tune کنین. کد هاش :
github.com/microsoft/Swin-Transformer
@Linuxor
این مدل خیلی خوبه وقتی میخواین پروژههای واقعی بینایی بسازین، مثل تشخیص شیء تو عکسهای دوربین، یا طبقهبندی و جداسازی تصویر. نسبت به CNNهای قدیمی میتونه جزئیات و مقیاسهای مختلف رو بهتر مدیریت کنه.
برای شروع میتونین با نسخه از پیشآموزشدیده Swin Transformer توی PyTorch کار کنین و مدل رو روی دادهٔ ها خودتون fine-tune کنین. کد هاش :
github.com/microsoft/Swin-Transformer
@Linuxor
Forwarded from DevTwitter | توییت برنامه نویسی
اگر داتنت کار هستی و علاقه داری هوش مصنوعی رو تو پروژههات استفاده کنی، این پست مال توعه!
همه میدونیم که هوش مصنوعی داره با سرعت وارد همه حوزهها میشه، اما ترکیبش با توسعه Backend در داتنت واقعا یه سطح بالاتر از کار روزمرهست.
یکی از ابزارهایی که حتما باید بشناسید، MCP یا Model Context Protocol هست.
پروتکل MCP یه پروتکل استاندارد برای ارتباط بین مدلهای زبانی (LLM) و ابزارها یا منابع خارجیه.
با MCP میتونیم:
مدلهای زبانی رو به APIها، دیتابیسها یا ابزارهای دلخواه وصل کنیم.
چند ابزار مختلف رو با هم چین کنیم و فرآیندهای پیچیده بسازیم.
مطمئن باشیم که ارتباط بین Agent و ابزارها استاندارد، قابل اطمینان و قابل توسعه هست.
به زبان ساده:
پروتکل MCP پلیه بین هوش مصنوعی و دنیای واقعی دادهها.
چرا تو داتنت کاربردیه؟
با Microsoft Agent Framework در داتنت، شما میتونید:
- ایجنتهای هوشمند بسازید که قادرن چندمرحلهای تصمیم بگیرن.
- ابزارهای خارجی (Tools) رو به Agent اضافه کنید، مثل جستجوی اطلاعات شرکتها، گرفتن جزئیات، تحلیل و جمعبندی.
- با MCP، Agent رو مستقل از API خاص بسازید، فقط با رعایت پروتکل JSON-RPC.
- فرآیندهای پیچیده هوشمندانه بسازید: جستجو → تحلیل → پاسخ به کاربر.
مثال کاربردی
فرض کنید میخواید یه چتبات تجاری هوشمند بسازید که اطلاعات شرکتهای ایرانی رو از Rasmio بگیره و تحلیل کنه، کد نوشته شده در عکس با Microsoft Agent Framework و MCP.
جمعبندی
ابزار MCP یه ابزار فوقالعاده برای هر کسیه که میخواد:
- هوش مصنوعی رو به پروژههای واقعی داتنت بیاره
- ایجنتهای چندمرحلهای و هوشمند بسازه
- دادهها و ابزارهای خارجی رو به راحتی با AI ترکیب کنه
نکته نهایی:
اگه دنبال یه راهکار مدرن، استاندارد و قدرتمند برای AI در .NET هستید، MCP بهترین گزینهست.
با همین ابزار میتونید از یک CLI ساده تا یک سیستم هوشمند تجاری واقعی بسازید.
@DevTwitter | <nahid moradi/>
همه میدونیم که هوش مصنوعی داره با سرعت وارد همه حوزهها میشه، اما ترکیبش با توسعه Backend در داتنت واقعا یه سطح بالاتر از کار روزمرهست.
یکی از ابزارهایی که حتما باید بشناسید، MCP یا Model Context Protocol هست.
پروتکل MCP یه پروتکل استاندارد برای ارتباط بین مدلهای زبانی (LLM) و ابزارها یا منابع خارجیه.
با MCP میتونیم:
مدلهای زبانی رو به APIها، دیتابیسها یا ابزارهای دلخواه وصل کنیم.
چند ابزار مختلف رو با هم چین کنیم و فرآیندهای پیچیده بسازیم.
مطمئن باشیم که ارتباط بین Agent و ابزارها استاندارد، قابل اطمینان و قابل توسعه هست.
به زبان ساده:
پروتکل MCP پلیه بین هوش مصنوعی و دنیای واقعی دادهها.
چرا تو داتنت کاربردیه؟
با Microsoft Agent Framework در داتنت، شما میتونید:
- ایجنتهای هوشمند بسازید که قادرن چندمرحلهای تصمیم بگیرن.
- ابزارهای خارجی (Tools) رو به Agent اضافه کنید، مثل جستجوی اطلاعات شرکتها، گرفتن جزئیات، تحلیل و جمعبندی.
- با MCP، Agent رو مستقل از API خاص بسازید، فقط با رعایت پروتکل JSON-RPC.
- فرآیندهای پیچیده هوشمندانه بسازید: جستجو → تحلیل → پاسخ به کاربر.
مثال کاربردی
فرض کنید میخواید یه چتبات تجاری هوشمند بسازید که اطلاعات شرکتهای ایرانی رو از Rasmio بگیره و تحلیل کنه، کد نوشته شده در عکس با Microsoft Agent Framework و MCP.
جمعبندی
ابزار MCP یه ابزار فوقالعاده برای هر کسیه که میخواد:
- هوش مصنوعی رو به پروژههای واقعی داتنت بیاره
- ایجنتهای چندمرحلهای و هوشمند بسازه
- دادهها و ابزارهای خارجی رو به راحتی با AI ترکیب کنه
نکته نهایی:
اگه دنبال یه راهکار مدرن، استاندارد و قدرتمند برای AI در .NET هستید، MCP بهترین گزینهست.
با همین ابزار میتونید از یک CLI ساده تا یک سیستم هوشمند تجاری واقعی بسازید.
@DevTwitter | <nahid moradi/>
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 به تازگی برای جامعه لاراول کاران وب سایت Laramap رونمایی شده که محل استقرار برنامه نویسان لاراول در کشورها رو نشان می دهد.
اگر برنامه نویس لاراول هستید وارد این سایت شوید و پروفایل خود بسازید و حضور خود اعلام کنید.
https://laramap.dev
#لاراول
@TheRaymondDev
اگر برنامه نویس لاراول هستید وارد این سایت شوید و پروفایل خود بسازید و حضور خود اعلام کنید.
https://laramap.dev
#لاراول
@TheRaymondDev
laramap.dev
Laramap is a community-driven map connecting Laravel artisans worldwide.
Forwarded from ASafaeirad
DEV Community
Why CSS Is So Hard for Generative AIs to Understand?
CSS is one of those things that looks simple, until you actually try to reason about it. Most people...
I wrote another article today
Why CSS Is So Hard for Generative AIs to Understand?
Don't forget to share if you liked it
#css #ai #tailwind #article
Why CSS Is So Hard for Generative AIs to Understand?
Don't forget to share if you liked it
#css #ai #tailwind #article
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 با اینکه افزونه WP Statistics ایرانی هست و خیلی معروفه اما با این حجم بازدیدی که ثبت میشه در واقعیت سایت وردپرس که روی هاست اشتراکی رو نابود می کند.
۱ میلیون بازدید ثبت بشه که ۱۸۰ مگ 💀 حجم دیتابیس برای افزونه WP Statistics تولید می کند و به دلیل اینکه جدول های زیادی برای ثبت چنین داده های اضافی وجود دارد.
#وردپرس
@TheRaymondDev
۱ میلیون بازدید ثبت بشه که ۱۸۰ مگ 💀 حجم دیتابیس برای افزونه WP Statistics تولید می کند و به دلیل اینکه جدول های زیادی برای ثبت چنین داده های اضافی وجود دارد.
#وردپرس
@TheRaymondDev
Forwarded from AiSegaro 👾
Media is too big
VIEW IN TELEGRAM
⚠️این یک پادکست عادی نیست، یک جلسه سه ساعته برای کشف نقشه راه آینده است!🚨
این ویدیو از پادکست "تجربه جو روگان" (Joe Rogan Experience) است که با حضور ایلان ماسک ضبط شده است.با توجه به طولانی بودن ویدیو (بیش از ۳ ساعت) در سه قسمت قرار داده میشود.
🎥 قسمت سوم - آخرین قسمت
🚀 شهر جدید ماسک
👽 پیمان محرمانه: ماسک به جو روگان قول میدهد که اگر اسپیسایکس از وجود هرگونه شواهد فضایی یا بیگانگان مطلع شود، قبل از هر کس دیگری، آن را در این پادکست فاش خواهد کرد! و ...
〰️〰️〰️〰️〰️〰️
برای ترجمه این ویدیو زمان و دقت و وسواس زیادی به کار گرفته شده , در صورتی که مایل بودید میتونید از لینک زیر دونیت کنیدتا قسمت های بعدی و موضوعات بیشتری پوشش داده شود.
🌎 donate.isega.ro
〰️〰️〰️〰️〰️〰️
📽 زیرنویس فارسی
🧠 مناسب برای همه، چه مبتدی چه حرفهای
🌐 ترجمه این ویدیو با وبسایت isega.ro انجام شده — حتماً سر بزن!
📌 برای دیدن قسمتهای بعدی کانال رو دنبال کن:
📺🌐 @AiSegaro
🚀 هر روز یک قدم نزدیکتر به آیندهای هوشمند!
📤 بازنشر آزاد با ذکر منبع 🙏❤️
این ویدیو از پادکست "تجربه جو روگان" (Joe Rogan Experience) است که با حضور ایلان ماسک ضبط شده است.با توجه به طولانی بودن ویدیو (بیش از ۳ ساعت) در سه قسمت قرار داده میشود.
🎥 قسمت سوم - آخرین قسمت
🚀 شهر جدید ماسک
👽 پیمان محرمانه: ماسک به جو روگان قول میدهد که اگر اسپیسایکس از وجود هرگونه شواهد فضایی یا بیگانگان مطلع شود، قبل از هر کس دیگری، آن را در این پادکست فاش خواهد کرد! و ...
〰️〰️〰️〰️〰️〰️
برای ترجمه این ویدیو زمان و دقت و وسواس زیادی به کار گرفته شده , در صورتی که مایل بودید میتونید از لینک زیر دونیت کنیدتا قسمت های بعدی و موضوعات بیشتری پوشش داده شود.
🌎 donate.isega.ro
〰️〰️〰️〰️〰️〰️
📽 زیرنویس فارسی
🧠 مناسب برای همه، چه مبتدی چه حرفهای
🌐 ترجمه این ویدیو با وبسایت isega.ro انجام شده — حتماً سر بزن!
📌 برای دیدن قسمتهای بعدی کانال رو دنبال کن:
📺🌐 @AiSegaro
🚀 هر روز یک قدم نزدیکتر به آیندهای هوشمند!
📤 بازنشر آزاد با ذکر منبع 🙏❤️
Forwarded from 🎄 یک برنامه نویس تنبل ( MΞ)
Forwarded from IRCF | اینترنت آزاد برای همه
نسخه ۶ از #فیلترشکن رایگان بگذر برای گوشیهای اندروید در دسترس قرار گرفت.
افزایش عملکرد برنامه و بهبود فرایند اتصال، اضافهشدن قابلیت تست سرعت و بازطراحی رابط کاربری، تغییرات نسخه جدید اینبرنامه هستند.
👉 github.com/Begzar/BegzarApp/releases/latest
🔍 ircf.space/software
@ircfspace
افزایش عملکرد برنامه و بهبود فرایند اتصال، اضافهشدن قابلیت تست سرعت و بازطراحی رابط کاربری، تغییرات نسخه جدید اینبرنامه هستند.
👉 github.com/Begzar/BegzarApp/releases/latest
🔍 ircf.space/software
@ircfspace
Forwarded from Gopher Academy
🔵 عنوان مقاله
Revisiting Interface Segregation in Go
🟢 خلاصه مقاله:
این مطلب «Interface Segregation Principle (ISP)» را از منظر Go مرور میکند: مشتری نباید به متدهایی وابسته شود که از آنها استفاده نمیکند. در Go، راهکارهای رایج شامل ساختن رابطهای کوچک و رفتاری، تعریف رابطها در محل استفاده، «پذیرفتن interface و برگرداندن نوعهای concrete»، و الهام گرفتن از نمونههای استاندارد مثل io.Reader و io.Writer است.
مشکل وقتی پیش میآید که یک پکیج، رابطهای چاق و همهچیزدار صادر میکند؛ این کار تغییرات را سخت و پیادهسازیها را پر از متدهای بیمصرف میکند. بهتر است رابطهای کوچک را ترکیب یا embed کنیم، فقط وقتی واقعاً لازم است سراغ رابطهای بزرگ برویم، و از میانافزارها/adapterها برای سازگاری در مسیر ریفکتور کمک بگیریم.
راهبرد عملی: ابتدا پیادهسازیهای concrete بسازید، بعد بر اساس نیاز واقعی رابط استخراج کنید؛ مجموعهمتدها را کوچک نگه دارید، برای تست از فیک/ماک بهره ببرید، و APIها را تدریجی تکامل دهید. با وجود generics هم باید از تعمیم بیجا پرهیز کرد و رابطهای runtime را بر رفتار متمرکز نگه داشت. نتیجه پایبندی به ISP در Go، کدی سادهتر برای تست، نگهداشت و توسعه است؛ نکاتی که در تازهترین مطلب معرفیشده توسط Golang Weekly نیز برجسته شدهاند.
#Go #Golang #InterfaceSegregation #ISP #GoInterfaces #SoftwareDesign #Refactoring #GolangWeekly
🟣لینک مقاله:
https://golangweekly.com/link/176622/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Revisiting Interface Segregation in Go
🟢 خلاصه مقاله:
این مطلب «Interface Segregation Principle (ISP)» را از منظر Go مرور میکند: مشتری نباید به متدهایی وابسته شود که از آنها استفاده نمیکند. در Go، راهکارهای رایج شامل ساختن رابطهای کوچک و رفتاری، تعریف رابطها در محل استفاده، «پذیرفتن interface و برگرداندن نوعهای concrete»، و الهام گرفتن از نمونههای استاندارد مثل io.Reader و io.Writer است.
مشکل وقتی پیش میآید که یک پکیج، رابطهای چاق و همهچیزدار صادر میکند؛ این کار تغییرات را سخت و پیادهسازیها را پر از متدهای بیمصرف میکند. بهتر است رابطهای کوچک را ترکیب یا embed کنیم، فقط وقتی واقعاً لازم است سراغ رابطهای بزرگ برویم، و از میانافزارها/adapterها برای سازگاری در مسیر ریفکتور کمک بگیریم.
راهبرد عملی: ابتدا پیادهسازیهای concrete بسازید، بعد بر اساس نیاز واقعی رابط استخراج کنید؛ مجموعهمتدها را کوچک نگه دارید، برای تست از فیک/ماک بهره ببرید، و APIها را تدریجی تکامل دهید. با وجود generics هم باید از تعمیم بیجا پرهیز کرد و رابطهای runtime را بر رفتار متمرکز نگه داشت. نتیجه پایبندی به ISP در Go، کدی سادهتر برای تست، نگهداشت و توسعه است؛ نکاتی که در تازهترین مطلب معرفیشده توسط Golang Weekly نیز برجسته شدهاند.
#Go #Golang #InterfaceSegregation #ISP #GoInterfaces #SoftwareDesign #Refactoring #GolangWeekly
🟣لینک مقاله:
https://golangweekly.com/link/176622/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Redowan's Reflections
Revisiting interface segregation in Go
Object-oriented (OO) patterns get a lot of flak in the Go community, and often for good
reason.
Still, I’ve found that principles like SOLID, despite their OO origin, can be useful
guides when thinking about design in Go.
Recently, while chatting with a few…
reason.
Still, I’ve found that principles like SOLID, despite their OO origin, can be useful
guides when thinking about design in Go.
Recently, while chatting with a few…
Forwarded from DevTwitter | توییت برنامه نویسی
اگر مثل من حوصله ندارید که فرانت بزنید
برید
https://stitch.withgoogle.com
یه سری توضیحات بدید براتون UI طراحی میکنه که هم فیگما میده و هم html
بعد html صفحات رو دانلود کنید.
حالا Vue, React... هرچی که میخواید رو init کنید.
به واسطهی cursor, Cline,Kilo... بگید که تبدیل کنه براتون
@DevTwitter | <Mahmoud Eskandari/>
برید
https://stitch.withgoogle.com
یه سری توضیحات بدید براتون UI طراحی میکنه که هم فیگما میده و هم html
بعد html صفحات رو دانلود کنید.
حالا Vue, React... هرچی که میخواید رو init کنید.
به واسطهی cursor, Cline,Kilo... بگید که تبدیل کنه براتون
@DevTwitter | <Mahmoud Eskandari/>
Forwarded from Meitix
دو نوع استراتژی برای کش cdn داریم: پول بیس و پوش بیس
توی push-based cdn خودت مسئول فرستادن محتوا به سرورهای cdn هستی. یعنی برعکس pull که cdn خودش موقع درخواست میره فایل رو از origin میکشه، اینجا باید تو موقع deploy فایلهارو “push” کنی داخل شبکهی cdn. معمولا با یه پایپ لاین انجام میشه: build میسازی، فشرده میکنی، بعد با api یا cli فایلهارو میفرستی cdn اونارو بین سرورها پخش میکنه تا همیشه آمادهی سرو باشن. اینطوری اولین درخواست سریعتره چون همه چیز از قبل روی edge نشسته، ولی مسئولیت sync و invalidate نسخههای جدید با خودته.
و pull based هم اینجوریه اولین نفری که درخواست میکنه میره از سرور میگیره و کش میکنه برا بعدیا
توی push-based cdn خودت مسئول فرستادن محتوا به سرورهای cdn هستی. یعنی برعکس pull که cdn خودش موقع درخواست میره فایل رو از origin میکشه، اینجا باید تو موقع deploy فایلهارو “push” کنی داخل شبکهی cdn. معمولا با یه پایپ لاین انجام میشه: build میسازی، فشرده میکنی، بعد با api یا cli فایلهارو میفرستی cdn اونارو بین سرورها پخش میکنه تا همیشه آمادهی سرو باشن. اینطوری اولین درخواست سریعتره چون همه چیز از قبل روی edge نشسته، ولی مسئولیت sync و invalidate نسخههای جدید با خودته.
و pull based هم اینجوریه اولین نفری که درخواست میکنه میره از سرور میگیره و کش میکنه برا بعدیا
Forwarded from DevTwitter | توییت برنامه نویسی
با این ریپو میتونید داکر ایمیج رو به فایل اجرایی ویندوز تبدیل کنید
https://github.com/rzane/docker2exe
@DevTwitter
https://github.com/rzane/docker2exe
@DevTwitter
Forwarded from کانال مهرداد لینوکس
🚀داخل مرورگر، کدهای اسمبلی x86-64 بنویس، اجرا و دیباگ کن
🎯ویژگیها:
🔹پشتیبانی از اسمبلرهایی مثل GNU AS، FASM، NASM.
🔹رابط دیباگر شبیه GDB: میتوانی کنترل مرحلهبهمرحله (step)، مشاهده رجیسترها، حافظه، و disassembly را انجام دهی.
🔹اجرای کل محیط x86-64-Linux در داخل مرورگر: همهٔ کدها و ابزارها سمت کلاینت اجرا میشوند و نیاز به سرور نیست
🧩 برای چه کسانی مناسبه؟
دانشجویان امنیت، مهندسی معکوس، یا کسانی که میخواهند معماری و اسمبلی را “از نزدیک” ببینند😎
مربیان و آموزشگران (مثل خود مهرداد😁) که میخواهند مفاهیم معماری، حافظه، رِجیسترها را به صورت تعاملی به دانشآموزانشان آموزش دهند.
✔️ مزایای اصلی
بدون نصب: فقط مرورگر، اینجا کلیک کن
تقریبا آفلاین: پس از لود اولیه، ممکنه بدون اتصال اینترنت هم کار کند.
کد خودت را آپلود کن: فایل ELF لینوکسی را اپلود و در محیط اجرا کن.
منبع باز پروژه در GitHub
@MehrdadLinuxchannel
سایت x86-64 Playground یک ویرایشگر، شبیهساز و دیباگر آنلاین برای معماری x86-64 است. میتوانی مستقیماً در مرورگر بنویسی، کامپایل کنی، اجرا کنی، و حتی فایلهای ELF لینوکسی را آپلود و تحلیل کنی
🎯ویژگیها:
🔹پشتیبانی از اسمبلرهایی مثل GNU AS، FASM، NASM.
🔹رابط دیباگر شبیه GDB: میتوانی کنترل مرحلهبهمرحله (step)، مشاهده رجیسترها، حافظه، و disassembly را انجام دهی.
🔹اجرای کل محیط x86-64-Linux در داخل مرورگر: همهٔ کدها و ابزارها سمت کلاینت اجرا میشوند و نیاز به سرور نیست
🧩 برای چه کسانی مناسبه؟
دانشجویان امنیت، مهندسی معکوس، یا کسانی که میخواهند معماری و اسمبلی را “از نزدیک” ببینند😎
مربیان و آموزشگران (مثل خود مهرداد😁) که میخواهند مفاهیم معماری، حافظه، رِجیسترها را به صورت تعاملی به دانشآموزانشان آموزش دهند.
✔️ مزایای اصلی
بدون نصب: فقط مرورگر، اینجا کلیک کن
تقریبا آفلاین: پس از لود اولیه، ممکنه بدون اتصال اینترنت هم کار کند.
کد خودت را آپلود کن: فایل ELF لینوکسی را اپلود و در محیط اجرا کن.
منبع باز پروژه در GitHub
@MehrdadLinuxchannel
Forwarded from DevTwitter | توییت برنامه نویسی
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
⭐️اگر میخواهید:
🔹دمای CPU پایینتر و پایداری بیشتر داشته باشی
🔹زمان Context Switch بین threadها کاهش پیدا کنه
🔹فقط از هستههای فیزیکی واقعی استفاده بشه
🔹هستههای منطقی (Hyper-Threading/SMT) خاموش بشود
🔹هر فرآیند منابع کامل یک core را در اختیار داشته باشه
🔹 کارایی بهتر در پردازشهای real-time، بازیها یا سیستمهای کمتأخیر داشته باشی
✅ کافیست Hyper-Threading (Intel) یا SMT (AMD) رو غیرفعال کنی با اضافه کردن یک پارامتر ساده به GRUB:
مراحل سریع:
فایل GRUB رو باز کن با ویرایشگر مورد علاقهات:
sudo nano /etc/default/grub
خط زیر رو پیدا و یا اضافه کن:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nosmt"
فایل رو ذخیره کن و خارج شو.
دستور زیر رو اجرا کن تا تغییرات اعمال بشه:
sudo update-grub
سیستم رو ریستارت کن تا تغییرات فعال بشه.
🔻پست و آموزش بیشتر در وبلاگ آکادمی:
https://learninghive.ir/linux-blogs/
🔹دمای CPU پایینتر و پایداری بیشتر داشته باشی
🔹زمان Context Switch بین threadها کاهش پیدا کنه
🔹فقط از هستههای فیزیکی واقعی استفاده بشه
🔹هستههای منطقی (Hyper-Threading/SMT) خاموش بشود
🔹هر فرآیند منابع کامل یک core را در اختیار داشته باشه
🔹 کارایی بهتر در پردازشهای real-time، بازیها یا سیستمهای کمتأخیر داشته باشی
✅ کافیست Hyper-Threading (Intel) یا SMT (AMD) رو غیرفعال کنی با اضافه کردن یک پارامتر ساده به GRUB:
مراحل سریع:
فایل GRUB رو باز کن با ویرایشگر مورد علاقهات:
sudo nano /etc/default/grub
خط زیر رو پیدا و یا اضافه کن:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nosmt"
فایل رو ذخیره کن و خارج شو.
دستور زیر رو اجرا کن تا تغییرات اعمال بشه:
sudo update-grub
سیستم رو ریستارت کن تا تغییرات فعال بشه.
🔻پست و آموزش بیشتر در وبلاگ آکادمی:
https://learninghive.ir/linux-blogs/
Forwarded from محتوای آزاد سهراب (Sohrab)
فقط برای تفریح!
خب این فیلم رو گرفتم و همون کارهایی رو انجام میدم که توی بلاگ گفتم، یعنی با یک کرنل لینوکس و بیزیباکس یک نیمچه توزیع مینیمال میسازیم!
تماشا از یوتوب
تماشا از پیرتوب
تماشا از آپارات 🥴
@SohrabContents
خب این فیلم رو گرفتم و همون کارهایی رو انجام میدم که توی بلاگ گفتم، یعنی با یک کرنل لینوکس و بیزیباکس یک نیمچه توزیع مینیمال میسازیم!
تماشا از یوتوب
تماشا از پیرتوب
تماشا از آپارات 🥴
@SohrabContents
Forwarded from Gopher Academy
💋چی کار میکنه sync.Once
تضمین میکنه یک تابع دقیقاً یکبار اجرا بشه حتی اگر چندین goroutine همزمان تلاش کنن اون رو اجرا کنن. متد اصلیش
💋موارد متداول استفاده
* پیادهسازی Singleton (یکبار ساختن نمونهٔ مشترک).
* بارگذاری تنبل (lazy load) کانفیگ یا منابع سنگین فقط وقتی لازم شدن.
* عملهایی که باید فقط یکبار انجام بشن (مثلاً ثبت یک handler، close ای که نباید دوباره انجام بشه، و غیره).
مثال ساده (Singleton)
مثال: امن کردن
💋 نکات و خطرات (خیلی مهم)
1. اگر تابعِ داخل `Do` پانیک کند: در نسخهٔ فعلیِ استاندارد،
> (نکته: در Go 1.21 بهعلاوه توابعی مثل
2.ا `Once` را بعد از استفاده کپی نکنید — کپی کردن یک
3. تابعِ داخل `Do` نباید خودش `Do` را صدا بزند (یا باعث قفل/deadlock شود). اگر
4. ا`Do` مقدار/خطا برنمیگرداند — اگر تابع شما ممکن است خطا داشته باشد و بخواهید آن را به callerها برگردانید، معمولاً از pattern زیر استفاده میکنند:
اما دقت کنید: اگر
💋 پیشنهاد وقتی میخواهید retry یا مقدار/خطای دقیق داشته باشید
اگر نیاز دارید تابع مقدار برگردونه و رفتارِ retry داشته باشید، باید از الگوهای دیگری استفاده کنید (مثلاً mutex + state machine، یا کانالها، یا بستههای ثالث که این الگو رو پیادهسازی میکنن). در Go 1.21 توابعی مثل
تضمین میکنه یک تابع دقیقاً یکبار اجرا بشه حتی اگر چندین goroutine همزمان تلاش کنن اون رو اجرا کنن. متد اصلیش
Do(f func()) هست: اولین فراخوانی Do تابع f را اجرا میکنه و فراخوانیهای بعدی هیچ کاری نمیکنن (بلوک نمیشن؛ فقط بازمیگردن).💋موارد متداول استفاده
* پیادهسازی Singleton (یکبار ساختن نمونهٔ مشترک).
* بارگذاری تنبل (lazy load) کانفیگ یا منابع سنگین فقط وقتی لازم شدن.
* عملهایی که باید فقط یکبار انجام بشن (مثلاً ثبت یک handler، close ای که نباید دوباره انجام بشه، و غیره).
مثال ساده (Singleton)
var instance *MyType
var once sync.Once
func GetInstance() *MyType {
once.Do(func() {
instance = &MyType{ /* init */ }
})
return instance
}
مثال: امن کردن
close یک channel`var once sync.Once
var ch = make(chan struct{})
func safeClose() {
once.Do(func() { close(ch) })
}
💋 نکات و خطرات (خیلی مهم)
1. اگر تابعِ داخل `Do` پانیک کند: در نسخهٔ فعلیِ استاندارد،
Do آن فراخوانی را «تمامشده» در نظر میگیرد — یعنی بعد از پانیک، فراخوانیهای بعدی Do دیگر f را اجرا نخواهند کرد. (در عمل پانیک به caller برمیگردد ولی Once وضعیتِ «انجامشده» را علامت میزند). پس اگر f ممکن است پانیک کند یا نیاز به retry دارید، sync.Once ممکن است مناسبِ کامل نباشد. > (نکته: در Go 1.21 بهعلاوه توابعی مثل
OnceFunc / OnceValue اضافه شدند که رفتار پانیک/بازگردانی را متفاوت ارائه میدهند؛ خوب است اگر از این ورژنها استفاده میکنید نگاهی به مستندات بیندازید). 2.ا `Once` را بعد از استفاده کپی نکنید — کپی کردن یک
Once بعد از اولین استفاده خطا/رفتار غیرمنتظره ایجاد میکند. 3. تابعِ داخل `Do` نباید خودش `Do` را صدا بزند (یا باعث قفل/deadlock شود). اگر
f در همان Once دوباره Do را فراخوانی کند، قفل/deadlock یا رفتار نامناسب ممکن است رخ دهد. (بهصورت کلی از بلوکهای طولانی یا عملیات که ممکن است بلوکه شوند داخل f خودداری کنید).4. ا`Do` مقدار/خطا برنمیگرداند — اگر تابع شما ممکن است خطا داشته باشد و بخواهید آن را به callerها برگردانید، معمولاً از pattern زیر استفاده میکنند:
var once sync.Once
var cfg Config
var cfgErr error
func LoadConfig() error {
once.Do(func() {
cfg, cfgErr = loadFromDisk()
})
return cfgErr
}
اما دقت کنید: اگر
loadFromDisk پانیک کند یا با خطاهای خاصی مواجه شود و شما نیاز به retry داشته باشید، این الگو کافی نیست چون Do بعد از اولین اجرا (حتی اگر پانیک شد) اجازهٔ تکرار نمیدهد.💋 پیشنهاد وقتی میخواهید retry یا مقدار/خطای دقیق داشته باشید
اگر نیاز دارید تابع مقدار برگردونه و رفتارِ retry داشته باشید، باید از الگوهای دیگری استفاده کنید (مثلاً mutex + state machine، یا کانالها، یا بستههای ثالث که این الگو رو پیادهسازی میکنن). در Go 1.21 توابعی مثل
OnceValue هم اضافه شدند که کمک میکنند مقدار بازگردونده و رفتار پانیک مشخصتر بشهForwarded from Gopher Academy
بیایید هر دو حالت را ببینیم:
۱️⃣ نمونهٔ Retryدار (برای مواقعی که تابع ممکن است خطا بدهد)
۲️⃣ نمونهٔ واقعیتر (مثلاً بارگذاری فایل کانفیگ فقط یکبار)
---
🧩 مثال ۱:
اما گاهی میخواهیم تابع فقط *در صورت موفقیت* «once» باشد، وگرنه دفعهٔ بعدی دوباره تلاش کند.
برای این کار، باید رفتار خودمان را روی
🟢 نتیجه خروجی:
یعنی تابع تا زمانی که موفق نشده، باز هم قابل اجراست — اما بعد از موفقیت فقط یکبار انجام میشود ✅
🧱 مثال ۲: بارگذاری فایل کانفیگ فقط یکبار (Real-world)
🔹 حتی اگر
🔹 در برنامههای بزرگ (microserviceها، سرورها، یا SDKها) این pattern خیلی رایج است.
۱️⃣ نمونهٔ Retryدار (برای مواقعی که تابع ممکن است خطا بدهد)
۲️⃣ نمونهٔ واقعیتر (مثلاً بارگذاری فایل کانفیگ فقط یکبار)
---
🧩 مثال ۱:
sync.Once با قابلیت Retrysync.Once بهصورت پیشفرض فقط یکبار اجرا میشود — حتی اگر اون اجرا شکست بخوره.اما گاهی میخواهیم تابع فقط *در صورت موفقیت* «once» باشد، وگرنه دفعهٔ بعدی دوباره تلاش کند.
برای این کار، باید رفتار خودمان را روی
Once شبیهسازی کنیم:package main
import (
"errors"
"fmt"
"sync"
)
type OnceRetry struct {
mu sync.Mutex
done bool
}
func (o *OnceRetry) Do(f func() error) error {
o.mu.Lock()
defer o.mu.Unlock()
if o.done {
return nil
}
err := f()
if err != nil {
return err
}
o.done = true
return nil
}
func main() {
var once OnceRetry
counter := 0
task := func() error {
counter++
if counter < 3 {
fmt.Println("❌ Failed attempt", counter)
return errors.New("temporary error")
}
fmt.Println("✅ Success on attempt", counter)
return nil
}
for i := 0; i < 5; i++ {
err := once.Do(task)
if err != nil {
fmt.Println("Error:", err)
}
}
fmt.Println("Final counter =", counter)
}
🟢 نتیجه خروجی:
❌ Failed attempt 1
Error: temporary error
❌ Failed attempt 2
Error: temporary error
✅ Success on attempt 3
Final counter = 3
یعنی تابع تا زمانی که موفق نشده، باز هم قابل اجراست — اما بعد از موفقیت فقط یکبار انجام میشود ✅
🧱 مثال ۲: بارگذاری فایل کانفیگ فقط یکبار (Real-world)
package main
import (
"encoding/json"
"fmt"
"os"
"sync"
)
type Config struct {
Port int `json:"port"`
Mode string `json:"mode"`
}
var (
cfg Config
cfgErr error
cfgOnce sync.Once
)
func LoadConfig() (Config, error) {
cfgOnce.Do(func() {
fmt.Println("📁 Reading config.json only once...")
data, err := os.ReadFile("config.json")
if err != nil {
cfgErr = err
return
}
cfgErr = json.Unmarshal(data, &cfg)
})
return cfg, cfgErr
}
func main() {
for i := 0; i < 3; i++ {
c, err := LoadConfig()
if err != nil {
fmt.Println("Error:", err)
} else {
fmt.Println("Loaded config:", c)
}
}
}
🔹 حتی اگر
LoadConfig() چندبار فراخوانی شود، فایل فقط یکبار خوانده میشود.🔹 در برنامههای بزرگ (microserviceها، سرورها، یا SDKها) این pattern خیلی رایج است.