Forwarded from محتوای آزاد سهراب (Sohrab)
خب توی این ویدئو چون روی گوشیم پارچ موبایل رو داشتم و دیدم از گرفتن یک سرور بهصرفه تره برای مقاصد آموزشی، روی اون به صورت لوکال با استفاده از داکر نکستکلود رو نصب کردم و انداختمش پشت ریورس پروکسی
یک سری مشکلات هم خوردم وسطش که حل کردم و توی ویدئو توضیح دادم چطور میشه حلشون کرد.
تماشا از یوتوب
تماشا از پیرتوب (توصیه شده)
تماشا از آپارات
@SohrabContents
یک سری مشکلات هم خوردم وسطش که حل کردم و توی ویدئو توضیح دادم چطور میشه حلشون کرد.
تماشا از یوتوب
تماشا از پیرتوب (توصیه شده)
تماشا از آپارات
@SohrabContents
Forwarded from GitHub Trending Daily
🔥 New GitHub Trending Repositories 🔥
Found 10 new trending repositories:
1. server by nextcloud
📝 ☁️ Nextcloud server, a safe home for all your data
💻 PHP | ⭐ 30,942 | 🌟 Today: 17
🔗 Link
2. fastapi by fastapi
📝 FastAPI framework, high performance, easy to learn, fast to code, ready for production
💻 Python | ⭐ 90,001 | 🌟 Today: 72
🔗 Link
3. guia-entrevistas-de-programacion by DevCaress
📝 No description available
💻 Star | ⭐ 6,013 | 🌟 Today: 84
🔗 Link
4. claude-agent-sdk-python by anthropics
📝 No description available
💻 Python | ⭐ 1,350 | 🌟 Today: 178
🔗 Link
5. anime by juliangarnier
📝 JavaScript animation engine
💻 JavaScript | ⭐ 64,172 | 🌟 Today: 157
🔗 Link
6. claude-code by anthropics
📝 Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and he...
💻 TypeScript | ⭐ 34,784 | 🌟 Today: 298
🔗 Link
7. devops-exercises by bregman-arie
📝 Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack...
💻 Python | ⭐ 78,674 | 🌟 Today: 112
🔗 Link
8. PDFMathTranslate by Byaidu
📝 PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL...
💻 Python | ⭐ 28,057 | 🌟 Today: 134
🔗 Link
9. Handy by cjpais
📝 A free, open source, and extensible speech-to-text application that works completely offline.
💻 TypeScript | ⭐ 932 | 🌟 Today: 67
🔗 Link
10. SDWebImage by SDWebImage
📝 Asynchronous image downloader with cache support as a UIImageView category
💻 Objective-C | ⭐ 25,559 | 🌟 Today: 7
🔗 Link
🔘 @github_trending_daily
Found 10 new trending repositories:
1. server by nextcloud
📝 ☁️ Nextcloud server, a safe home for all your data
💻 PHP | ⭐ 30,942 | 🌟 Today: 17
🔗 Link
2. fastapi by fastapi
📝 FastAPI framework, high performance, easy to learn, fast to code, ready for production
💻 Python | ⭐ 90,001 | 🌟 Today: 72
🔗 Link
3. guia-entrevistas-de-programacion by DevCaress
📝 No description available
💻 Star | ⭐ 6,013 | 🌟 Today: 84
🔗 Link
4. claude-agent-sdk-python by anthropics
📝 No description available
💻 Python | ⭐ 1,350 | 🌟 Today: 178
🔗 Link
5. anime by juliangarnier
📝 JavaScript animation engine
💻 JavaScript | ⭐ 64,172 | 🌟 Today: 157
🔗 Link
6. claude-code by anthropics
📝 Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and he...
💻 TypeScript | ⭐ 34,784 | 🌟 Today: 298
🔗 Link
7. devops-exercises by bregman-arie
📝 Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack...
💻 Python | ⭐ 78,674 | 🌟 Today: 112
🔗 Link
8. PDFMathTranslate by Byaidu
📝 PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译,支持 Google/DeepL...
💻 Python | ⭐ 28,057 | 🌟 Today: 134
🔗 Link
9. Handy by cjpais
📝 A free, open source, and extensible speech-to-text application that works completely offline.
💻 TypeScript | ⭐ 932 | 🌟 Today: 67
🔗 Link
10. SDWebImage by SDWebImage
📝 Asynchronous image downloader with cache support as a UIImageView category
💻 Objective-C | ⭐ 25,559 | 🌟 Today: 7
🔗 Link
🔘 @github_trending_daily
Forwarded from Laravel News
Profiling Laravel: How to Find Hidden Performance Killers https://laravel-news.com/profiling-laravel-how-to-find-hidden-performance-killers
Laravel News
Profiling Laravel: How to Find Hidden Performance Killers - Laravel News
Your dashboard loads in 150ms with more than 400 database queries - but you'd never know without proper profiling. Learn how to use Laravel Telescope to uncover N+1 queries, identify bottlenecks, and see exactly what your application is doing behind the scenes.…
Forwarded from Laravel News
Infinite Scroll in Inertia v2.2 https://laravel-news.com/infinite-scroll-in-inertia-v22
Laravel News
Infinite Scroll in Inertia v2.2 - Laravel News
The Laravel team released Inertia v2.2 with a new <InfiniteScroll/> component. This component will likely be a huge timesaver if you've ever built an infinite scroll feature by hand.
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 در اجرای رسمی مکانسیم ماشه, روسیه یک فروند هواپیمای آنتونوف ۱۲۴ حامل محموله های نظامی به ایران فرستاد.
#خبر
@TheRaymondDev
#خبر
@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (Lazy 🌱)
🔶 دیدار گیلومِرو راوچ، مدیرعامل شرکت Vercel، با بنیامین نتانیاهو نخستوزیر اسرائیل در تاریخ ۲۸ سپتامبر ۲۰۲۵ باعث واکنشهای منفی کاربران شد.
گزارشها نشان میدهد که توسعه دهندگان حسابهای خود را در Vercel حذف کرده یا قصد مهاجرت به سرویس های دیگر دارند. بسیاری این اقدام را سیاسی دانسته و در توییتر خواستار تحریم سرویس Vercel شدند.
#خبر
@TheRaymondDev
گزارشها نشان میدهد که توسعه دهندگان حسابهای خود را در Vercel حذف کرده یا قصد مهاجرت به سرویس های دیگر دارند. بسیاری این اقدام را سیاسی دانسته و در توییتر خواستار تحریم سرویس Vercel شدند.
#خبر
@TheRaymondDev
X (formerly Twitter)
vercel - Search / X
The latest posts on vercel. Read what people are saying and join the conversation.
Forwarded from DevTwitter | توییت برنامه نویسی
توی این ویدیو یه سری از مواردی که وقتی میخوایم یه کدی رو بزاریم توی گیتهاب، لازم میشه رو گفتم...
مثل اینا:
- لزوم داشتن gitignore اگر فایلی داریم که نمیخوایم بره تو گیت
- لروم داشتن env برای توکنها که نرن تو گیت
- یا مثلا داشتن requirements.txt مخصوصا برای پروژههای پایتونی که راحتتر لانچ بشن توسط افراد...
- در آخر هم یه مقداری streamlit بازی کردیم...
https://www.youtube.com/watch?v=v4Hm98Q3eEI&list=PLwUWEGKy5kyP7pUFE-vPDDtXgQ8Ty4ohd&index=5
پ.ن: این ویدیو فاز AI نداره و یه طورایی بیشتر سمت برنامهنویسی و ایناست خلاصه...
@DevTwitter | <ًRyan Heida/>
مثل اینا:
- لزوم داشتن gitignore اگر فایلی داریم که نمیخوایم بره تو گیت
- لروم داشتن env برای توکنها که نرن تو گیت
- یا مثلا داشتن requirements.txt مخصوصا برای پروژههای پایتونی که راحتتر لانچ بشن توسط افراد...
- در آخر هم یه مقداری streamlit بازی کردیم...
https://www.youtube.com/watch?v=v4Hm98Q3eEI&list=PLwUWEGKy5kyP7pUFE-vPDDtXgQ8Ty4ohd&index=5
پ.ن: این ویدیو فاز AI نداره و یه طورایی بیشتر سمت برنامهنویسی و ایناست خلاصه...
@DevTwitter | <ًRyan Heida/>
Forwarded from محتوای آزاد سهراب (Sohrab)
با اینکه بیاسدی عملاً نمیتونه توی ساختار wsl اجرا بشه، ولی ناممکن هارو ممکن کردند.
https://github.com/BalajeS/WSL-For-FreeBSD
الان میتونید توی ویندوز بیاسدی بزنید.
(عکس از کانال فری بیاسدی)
@SohrabContents
https://github.com/BalajeS/WSL-For-FreeBSD
الان میتونید توی ویندوز بیاسدی بزنید.
(عکس از کانال فری بیاسدی)
@SohrabContents
Forwarded from کانال مهرداد لینوکس
📄 دستور rmdir در لینوکس (دستور rd و rm)
✅ دستور rmdir برای حذف دایرکتوری خالی در لینوکس استفاده میشه.
اگر دایرکتوری فایل یا زیرشاخه داشته باشه، rmdir کار نمیکنه و خطا میده.
اپشنهای متداول:
👉 همهی مسیرهای خالی (code, src, project) حذف میشن.
🔥 ترفندها و تکنیکهای ترکیبی
1️⃣ حذف همهی دایرکتوریهای خالی یک مسیر را پیدا و حذف کرد:
5️⃣ پاکسازی پروژههای قدیمی:
💡 نکته:
rmdir فقط روی دایرکتوری خالی کار میکنه.
برای حذف دایرکتوریهای غیرخالی باید از rm -r استفاده کنید (با احتیاط ⚠️).
✅ دستور rd در بعضی linux ها یک alias است
#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
✅ دستور rmdir برای حذف دایرکتوری خالی در لینوکس استفاده میشه.
اگر دایرکتوری فایل یا زیرشاخه داشته باشه، rmdir کار نمیکنه و خطا میده.
اپشنهای متداول:
rmdir testdir حذف یک دایرکتوری خالی
rmdir dir1 dir2 dir3 حذف چند دایرکتوری
mkdir -p project/src/code
rmdir -p project/src/code حذف تو در تو
👉 همهی مسیرهای خالی (code, src, project) حذف میشن.
🔥 ترفندها و تکنیکهای ترکیبی
با دستور find بهتر میتوانید پوشه های خالی را پیدا و حذف کنید
1️⃣ حذف همهی دایرکتوریهای خالی یک مسیر را پیدا و حذف کرد:
find . -type d -empty -delete
5️⃣ پاکسازی پروژههای قدیمی:
find ~/projects -type d -empty -print -exec rmdir {} \;💡 نکته:
rmdir فقط روی دایرکتوری خالی کار میکنه.
برای حذف دایرکتوریهای غیرخالی باید از rm -r استفاده کنید (با احتیاط ⚠️).
✅ دستور rd در بعضی linux ها یک alias است
rd is an alias for rmdir
#دیوار_لینوکس
@MehrdadLinuxchannel
#Linux #لینوکس
#linux_command
Forwarded from Geek Alerts
شرکت بازیسازی الکترونیک آرتز (EA)، که همه ما اون رو با بازیهایی مثل «Madden NFL»، «Battlefield» و «The Sims» میشناسیم، به عربستان و جرد کوشنر، داماد ترامپ به مبلغ ۵۵ میلیارد دلار فروخته شده و احتمالا این فرایند خرید تا سال ۲۰۲۷ تکمیل بشه.
صندوق سرمایهگذاری عربستان (PIF) از قبل هم مالک حدود ۱۰ درصد از سهام EA هست ولی اینجا یه شرکت مشترک با سیلور لیک و افینیتی پارتنرز برای خرید بقیه سهام تاسیس کردن و سهم خودشون رو هم به این شرکت میارن. واکنش بازار سهام مثبت بوده که با توجه به خرید هر سهم ۲۱۰ دلار کاملا طبیعی هست. [L]
🤓 @geekalerts
صندوق سرمایهگذاری عربستان (PIF) از قبل هم مالک حدود ۱۰ درصد از سهام EA هست ولی اینجا یه شرکت مشترک با سیلور لیک و افینیتی پارتنرز برای خرید بقیه سهام تاسیس کردن و سهم خودشون رو هم به این شرکت میارن. واکنش بازار سهام مثبت بوده که با توجه به خرید هر سهم ۲۱۰ دلار کاملا طبیعی هست. [L]
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
دوره MCP مایکروسافت | زیرنویس فارسی
یوتیوب
https://youtu.be/Vr1vMyyIdzM?si=TEuNuXjEJhuE4fQG
آپارات (نیم بها)
https://www.aparat.com/v/azkvpjg
@DevTwitter | <Hamed Heydarian/>
یوتیوب
https://youtu.be/Vr1vMyyIdzM?si=TEuNuXjEJhuE4fQG
آپارات (نیم بها)
https://www.aparat.com/v/azkvpjg
@DevTwitter | <Hamed Heydarian/>
Forwarded from AI Labdon
کلاد سونت ۴.۵ اومد با عنوان بهترین مدل کدنویسی در جهان.
رکوردهاش هم توی بنچمارکها جالبه، بیشتر جاها عملکرد بالاتر از Opus 4.1.
اکستنشن Claude for Chrome هم برای کسایی که توی لیست انتظار بودن در دسترس قرار گرفت.
یه ویژگی ساخت فایل هم به چتبات اضافه شده و میتونه براتون اسلاید و داک بسازه.
واکنشها خوب بوده و میگن بیشترین جهش عملکرد رو از زمان معرفی Sonnet 3.6 داشته.
این مدل میتونه بیشتر از ۳۰ ساعت به صورت خودکار روی پروژههای چند مرحلهای کار کنه. برای Opus 4 عددش ۷ ساعت هست، این نیاز نظارت رو کم میکنه و رسما بیش از ۱ روز میتونه خودکار فعالیت خودشرو ادامه بده.
<Soroush Ahmadi/>
رکوردهاش هم توی بنچمارکها جالبه، بیشتر جاها عملکرد بالاتر از Opus 4.1.
اکستنشن Claude for Chrome هم برای کسایی که توی لیست انتظار بودن در دسترس قرار گرفت.
یه ویژگی ساخت فایل هم به چتبات اضافه شده و میتونه براتون اسلاید و داک بسازه.
واکنشها خوب بوده و میگن بیشترین جهش عملکرد رو از زمان معرفی Sonnet 3.6 داشته.
این مدل میتونه بیشتر از ۳۰ ساعت به صورت خودکار روی پروژههای چند مرحلهای کار کنه. برای Opus 4 عددش ۷ ساعت هست، این نیاز نظارت رو کم میکنه و رسما بیش از ۱ روز میتونه خودکار فعالیت خودشرو ادامه بده.
<Soroush Ahmadi/>
Forwarded from tech-afternoon (Amin Mesbahi)
🔥 🐘 انتشار PostgreSQL 18، و اهمیت تغییراتش!
طبق روال سالهای گذشته حوالی سپتامبر ریلیز نسخه جدید PostgreSQL انجام شد. حالا چرا این نسخه برای برخی سیستمها میتونه قابل توجه و مهم باشه؟
- تغییرات انقلابی در I/O (Asyn I/O):
بالاخره! این قابلیت اومد و سرعت عملیات Read رو «تا» ۳ برابر افزایش میده! معطلیهای CPU برای I/O خیلی کمتر میشه و برای کارهای مثل VACUUM و اسکنهای بزرگ، تاثیرش چشمگیره (من روی نسخههای پیشنمایش تست کردم و عالی بود).
- پشتیبانی از UUIDv7:
برای توسعهدهندهها این شاید خیلی مهم باشه! (اگر دوست دارید در مورد انواع UUIDها بیشتر توضیح بدم:🤪 )
پشتیبانی Native از UUIDv7 یعنی Primary Keyها به صورت گلوبال یونیک میشن و هم چون بر اساس زمان مرتب هستن، عملکرد ایندکس B-tree به شکل چشمگیری بهتر میشه. (یعنی Page Split بی مورد نداریم!)
- قابلیت Virtual Generated Columns:
حالا ستونهای محاسباتی بهصورت پیشفرض مجازی هستن، یعنی فقط موقع خوانش محاسبه میشن و فضای دیسک رو اشغال نمیکنن. (البته اگه لازم باشه، میتونید همچنان STORED هم تعریف کنین).
افزودن NOT NULL بدون Downtime: کابوس اضافه کردن NOT NULL به جدولهای بزرگ تموم شد! حالا میشه قید NOT NULL رو بهصورت NOT VALID اضافه کنیم و بلافاصله برای ردیفهای جدید اعمال بشه. اعتبارسنجی ردیفهای موجود رو هم میتونیم بعداً بدون قفل کامل جدول انجام بدیم.
- امکان Skip Scan برای B-tree:
یه بهبود عالی برای بهینهسازی کوئری؛ اگه توی ایندکسهای چند ستونی، ستون اول رو در WHERE فیلتر نکرده باشیم، باز هم ایندکس کار میکنه و کوئریهای تحلیلی/گزارشگیری خیلی سریعتر میشن.
- امکان RETURNING هوشمند:
حالا میشه توی یک دستور UPDATE یا DELETE به هر دو مقدار قدیمی (OLD) و جدید (NEW) یک ستون در بخش RETURNING دسترسی داشته باشیم.
- آپگرید آسونتر:
قابلیت حفظ Planner Statistics حین آپگرید با pg_upgrade باعث میشه دیتابیس جدید خیلی سریعتر به پرفورمنس دلخواه برگرده.
طبق روال سالهای گذشته حوالی سپتامبر ریلیز نسخه جدید PostgreSQL انجام شد. حالا چرا این نسخه برای برخی سیستمها میتونه قابل توجه و مهم باشه؟
- تغییرات انقلابی در I/O (Asyn I/O):
بالاخره! این قابلیت اومد و سرعت عملیات Read رو «تا» ۳ برابر افزایش میده! معطلیهای CPU برای I/O خیلی کمتر میشه و برای کارهای مثل VACUUM و اسکنهای بزرگ، تاثیرش چشمگیره (من روی نسخههای پیشنمایش تست کردم و عالی بود).
- پشتیبانی از UUIDv7:
برای توسعهدهندهها این شاید خیلی مهم باشه! (اگر دوست دارید در مورد انواع UUIDها بیشتر توضیح بدم:
پشتیبانی Native از UUIDv7 یعنی Primary Keyها به صورت گلوبال یونیک میشن و هم چون بر اساس زمان مرتب هستن، عملکرد ایندکس B-tree به شکل چشمگیری بهتر میشه. (یعنی Page Split بی مورد نداریم!)
- قابلیت Virtual Generated Columns:
حالا ستونهای محاسباتی بهصورت پیشفرض مجازی هستن، یعنی فقط موقع خوانش محاسبه میشن و فضای دیسک رو اشغال نمیکنن. (البته اگه لازم باشه، میتونید همچنان STORED هم تعریف کنین).
افزودن NOT NULL بدون Downtime: کابوس اضافه کردن NOT NULL به جدولهای بزرگ تموم شد! حالا میشه قید NOT NULL رو بهصورت NOT VALID اضافه کنیم و بلافاصله برای ردیفهای جدید اعمال بشه. اعتبارسنجی ردیفهای موجود رو هم میتونیم بعداً بدون قفل کامل جدول انجام بدیم.
- امکان Skip Scan برای B-tree:
یه بهبود عالی برای بهینهسازی کوئری؛ اگه توی ایندکسهای چند ستونی، ستون اول رو در WHERE فیلتر نکرده باشیم، باز هم ایندکس کار میکنه و کوئریهای تحلیلی/گزارشگیری خیلی سریعتر میشن.
- امکان RETURNING هوشمند:
حالا میشه توی یک دستور UPDATE یا DELETE به هر دو مقدار قدیمی (OLD) و جدید (NEW) یک ستون در بخش RETURNING دسترسی داشته باشیم.
- آپگرید آسونتر:
قابلیت حفظ Planner Statistics حین آپگرید با pg_upgrade باعث میشه دیتابیس جدید خیلی سریعتر به پرفورمنس دلخواه برگرده.
اگر جزو افرادی هستین که به مهاجرت به PostgreSQL فکر میکنید، یه تعداد کارتهای شستهرُفته برای مهاجرت از SQL Server به PostgreSQL با هشتگ #MSSQL_to_PGSQL توی کانال داریم (کارتهای قرمز رنگ از بخش تصاویر هم قابل پیدا کردنه)
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from DevTwitter | توییت برنامه نویسی
خیلیا رو دیدم که سالهاست با git کار میکنن ولی هنوز فرق بین merge و rabase رو نمیدونن توی این پست میخام راجب این دو مورد توضیح بدم
وقتی میخوای تغییرات یک برنچ رو به برنچ دیگه بیاری، معمولاً بین دو دستور انتخاب داری:
Merge
-تغییرات رو ادغام میکنه.
-یک merge commit جدید میسازه.
-تاریخچه واقعی حفظ میشه، ولی کمی شلوغتر میشه.
Rebase
-تغییراتت رو روی آخرین commit مقصد بازنویسی میکنه.
-تاریخچه خطی و مرتب میشه.
-اما تاریخچه واقعی تغییر میکنه (روی برنچ تیمی خطرناک).
در کل بهتره برای برنچهای شخصی قبل از merge به main از rebase استفاده کنی تا تاریخچه تمیز باشه.
برای برنچهای مشترک تیمی از merge استفاده کن تا تاریخچه تغییر نکنه و همه چیز شفاف بمونه.
@DevTwitter | <Amirreza Sajadiyan/>
وقتی میخوای تغییرات یک برنچ رو به برنچ دیگه بیاری، معمولاً بین دو دستور انتخاب داری:
Merge
-تغییرات رو ادغام میکنه.
-یک merge commit جدید میسازه.
-تاریخچه واقعی حفظ میشه، ولی کمی شلوغتر میشه.
Rebase
-تغییراتت رو روی آخرین commit مقصد بازنویسی میکنه.
-تاریخچه خطی و مرتب میشه.
-اما تاریخچه واقعی تغییر میکنه (روی برنچ تیمی خطرناک).
در کل بهتره برای برنچهای شخصی قبل از merge به main از rebase استفاده کنی تا تاریخچه تمیز باشه.
برای برنچهای مشترک تیمی از merge استفاده کن تا تاریخچه تغییر نکنه و همه چیز شفاف بمونه.
@DevTwitter | <Amirreza Sajadiyan/>
Forwarded from محتوای آزاد سهراب (Sohrab)
خب WSL2 کلاً چطور کار میکنه که من گفتم ناممکنه؟
اول از همه باید ببینیم که اولین نسخش چطور کار میکرده.
در نسخهی اول WSL، ویندوز بهجای اجرای یک کرنل لینوکس واقعی، لایهای از ترجمهی syscall پیادهسازی کرده بود. وقتی یک برنامهی لینوکسی فراخوان سیستمی مثل open() یا read() را صدا میزد، این فراخوانها مستقیماً به توابع هستهی ویندوز (NT API) مانند NtCreateFile یا NtReadFile ترجمه میشدن.
حالا WSL2 چه فرقی داره؟
توی این نسخه، مایکروسافت از یک ماشین مجازی بسیار سبک (Utility VM) مبتنی بر Hyper-V استفاده میکند که داخلش یک کرنل واقعی لینوکس بوت میشه. این کرنل برای ارتباط مستقیم با ویندوز پچ شده تا از طریق پروتکلهایی مانند 9p و virtio بتواند فایلسیستم، شبکه، حافظه و سایر منابع را با سیستم میزبان به اشتراک بذاره.
از اونجایی که این ماشینمجازی یک کرنل لینوکس واقعی رو اجرا میکند، تمام ABI و syscallها باید دقیقاً با لینوکس سازگار باشند. برای همین نمیشه سیستمعاملی مثل FreeBSD رو مستقیماً اجرا کرد.
چون با عکس محدودیت متن میخوریم فنیترش رو میرم پست بعدی.
@SohrabContents
اول از همه باید ببینیم که اولین نسخش چطور کار میکرده.
در نسخهی اول WSL، ویندوز بهجای اجرای یک کرنل لینوکس واقعی، لایهای از ترجمهی syscall پیادهسازی کرده بود. وقتی یک برنامهی لینوکسی فراخوان سیستمی مثل open() یا read() را صدا میزد، این فراخوانها مستقیماً به توابع هستهی ویندوز (NT API) مانند NtCreateFile یا NtReadFile ترجمه میشدن.
حالا WSL2 چه فرقی داره؟
توی این نسخه، مایکروسافت از یک ماشین مجازی بسیار سبک (Utility VM) مبتنی بر Hyper-V استفاده میکند که داخلش یک کرنل واقعی لینوکس بوت میشه. این کرنل برای ارتباط مستقیم با ویندوز پچ شده تا از طریق پروتکلهایی مانند 9p و virtio بتواند فایلسیستم، شبکه، حافظه و سایر منابع را با سیستم میزبان به اشتراک بذاره.
از اونجایی که این ماشینمجازی یک کرنل لینوکس واقعی رو اجرا میکند، تمام ABI و syscallها باید دقیقاً با لینوکس سازگار باشند. برای همین نمیشه سیستمعاملی مثل FreeBSD رو مستقیماً اجرا کرد.
چون با عکس محدودیت متن میخوریم فنیترش رو میرم پست بعدی.
@SohrabContents
Forwarded from محتوای آزاد سهراب (Sohrab)
خب مگه FreeBSD و Linux هردو کرنلشون سازگار با پاسیکس نیستن؟
کرنل FreeBSD و لینوکس اگرچه هر دوشون شبه یونیکس و تا حدی سازگار با POSIX هستن اما در سطح ABI تفاوتهای جدی دارند.
شمارهها، رفتار و حتی وجود بسیاری از syscallها در آنها یکسان نیست، برای مثال در لینوکس برای مدیریت I/O غیرهمزمان از epoll استفاده میشود در حالی که FreeBSD از kqueue و kevent استفاده میکنه.
خیلی از syscallهای لینوکس مانند futex یا io_uring در FreeBSD اصلاً وجود ندارن و برعکس. بنابراین باینریهای FreeBSD روی کرنل لینوکس قابل اجرا نیستند، چون درخواستهایی که ارسال میکنند براش ناشناخته است.
از یک طرف دیگه، بخش Hyper-V در WSL2 طوری طراحی شده که فقط با کرنل لینوکس کار بکنه.
کرنل لینوکسی که در wsl2 استفاده میشه، شامل ماژولهایی هستش که مایکروسافت برای ارتباط مستقیم با ویندوز از طریق VMBus توسعه داده.
کرنل FreeBSD هم هرچند درایورهایی برای Hyper-V داره، اما این درایورها با ساختار خاص WSL2 که tightly integrated است سازگار نیستش. برای همین FreeBSD میتونه بهعنوان یک سیستمعامل کامل روی Hyper-V بوت بشه، اما نمیتونه در قالب WSL2 با ویندوز تعامل سطح پایین داشته باشه.
حالا این یارو wsl for bsd چطور کار میکنه؟
تاجایی که من نگاهی به مخزن گیتهابش انداختم، میاد و بخشهای اوپن سورس wsl2 که در یک توزیع لینوکسی بهینه شده برای wsl وجود داره رو روی یک RootFS فری بیاسدی نصب میکنه، و متاسفانه من نتونستم این رو راه بندازم ولی رودمپش میگه که همچنان در دست توسعه است.
@SohrabContents
کرنل FreeBSD و لینوکس اگرچه هر دوشون شبه یونیکس و تا حدی سازگار با POSIX هستن اما در سطح ABI تفاوتهای جدی دارند.
شمارهها، رفتار و حتی وجود بسیاری از syscallها در آنها یکسان نیست، برای مثال در لینوکس برای مدیریت I/O غیرهمزمان از epoll استفاده میشود در حالی که FreeBSD از kqueue و kevent استفاده میکنه.
خیلی از syscallهای لینوکس مانند futex یا io_uring در FreeBSD اصلاً وجود ندارن و برعکس. بنابراین باینریهای FreeBSD روی کرنل لینوکس قابل اجرا نیستند، چون درخواستهایی که ارسال میکنند براش ناشناخته است.
از یک طرف دیگه، بخش Hyper-V در WSL2 طوری طراحی شده که فقط با کرنل لینوکس کار بکنه.
کرنل لینوکسی که در wsl2 استفاده میشه، شامل ماژولهایی هستش که مایکروسافت برای ارتباط مستقیم با ویندوز از طریق VMBus توسعه داده.
کرنل FreeBSD هم هرچند درایورهایی برای Hyper-V داره، اما این درایورها با ساختار خاص WSL2 که tightly integrated است سازگار نیستش. برای همین FreeBSD میتونه بهعنوان یک سیستمعامل کامل روی Hyper-V بوت بشه، اما نمیتونه در قالب WSL2 با ویندوز تعامل سطح پایین داشته باشه.
حالا این یارو wsl for bsd چطور کار میکنه؟
تاجایی که من نگاهی به مخزن گیتهابش انداختم، میاد و بخشهای اوپن سورس wsl2 که در یک توزیع لینوکسی بهینه شده برای wsl وجود داره رو روی یک RootFS فری بیاسدی نصب میکنه، و متاسفانه من نتونستم این رو راه بندازم ولی رودمپش میگه که همچنان در دست توسعه است.
@SohrabContents
Forwarded from محتوای آزاد سهراب (Sohrab)
اضافیات:
این 9p که من ذکر کردم، پیادهسازی از فایلسیستم و پروتکل های plan9 هستش.
بله مایکروسافت از پروژه Plan9 استفاده میکنه توی استکنتورک و سایر جاهای wsl.
https://lwn.net/Articles/918213/
و البته خود plan9 هم پستهای جدایی میطلبه که چیه :))
https://9p.io/plan9/
@SohrabContents
این 9p که من ذکر کردم، پیادهسازی از فایلسیستم و پروتکل های plan9 هستش.
بله مایکروسافت از پروژه Plan9 استفاده میکنه توی استکنتورک و سایر جاهای wsl.
https://lwn.net/Articles/918213/
و البته خود plan9 هم پستهای جدایی میطلبه که چیه :))
https://9p.io/plan9/
@SohrabContents
9p.io
Plan 9 from Bell Labs
Plan 9 from Bell Labs, an open-source distributed system from the creators of Unix.
Forwarded from DevTwitter | توییت برنامه نویسی
چرا از جاوا و پایتون برای نرم افزارهای سیستم های هوافضا نمیشه استفاده کرد؟
1-قطعیت (Determinism):
در زبان هایی مثل جاوا و پایتون به خاطر وجود garbage collection و مبتنی بر JVM بودن اجرای برنامه دقیقا قابل پیش بینی نیست. ممکنه برنامه یه لحظه به خاطر garbage collector متوقف بشه یا pause کنه. تو نرم افزارهای real time همچین چیزی قابل قبول نیست.
به عبارت دیگه یه حلقه توی جاوا یه بار ممکنه یک میلی ثانیه طول بکشه اما دفعه بعد 5 میلی ثانیه طول بکشه دلیل این امر اینه که JIT و gc معلوم نیست کی عمل می کنن و حافظه رو پس می گیرن. پایتون هم به همین دلیل که gc داره عملکردش این شکلیه.
2-زمانبندی سخت گیرانه(Hard real-time constraints): نرم افزارهای هوافضا باید مشخص، کوتاه و قطعی واکنش نشان دهند اما جاوا و پایتون همچین تضمینی نمی دهند.
3-ایمنی و استانداردها :
صنعت هوافضا از استانداردهایی مثل DO-178C پیروی میکند. Ada و C ابزارها و کتابخانههای تأییدشدهای برای این استاندارد دارند اما برای جاوا و پایتون چنین پشتیبانی و تأیید رسمی بسیار محدود یا تقریباً وجود ندارد.
4-کارایی (Performance & Footprint):
پایتون کنده چون مفسریه جاوا هم به خاطر JVM و مدیریت حافظه سربار زیادی داره که خب توی سیستم های هوافضا که سرعت مهمه و منابع سخت افزاری محدودی داریم نمیشه یه برنامه کند و برنامه ای که کلی منابع میخواد رو اجرا کنیم.
در نهایت باید بگم که زبان هایی که باهاشون نرم افزارهای سیستم های هوافضا، نظامی و حساس رو میسازن Ada-Spark ada - C و جدیدا Rust هستند.
@DevTwitter | <Mohsen Shojaei Yeganeh/>
1-قطعیت (Determinism):
در زبان هایی مثل جاوا و پایتون به خاطر وجود garbage collection و مبتنی بر JVM بودن اجرای برنامه دقیقا قابل پیش بینی نیست. ممکنه برنامه یه لحظه به خاطر garbage collector متوقف بشه یا pause کنه. تو نرم افزارهای real time همچین چیزی قابل قبول نیست.
به عبارت دیگه یه حلقه توی جاوا یه بار ممکنه یک میلی ثانیه طول بکشه اما دفعه بعد 5 میلی ثانیه طول بکشه دلیل این امر اینه که JIT و gc معلوم نیست کی عمل می کنن و حافظه رو پس می گیرن. پایتون هم به همین دلیل که gc داره عملکردش این شکلیه.
2-زمانبندی سخت گیرانه(Hard real-time constraints): نرم افزارهای هوافضا باید مشخص، کوتاه و قطعی واکنش نشان دهند اما جاوا و پایتون همچین تضمینی نمی دهند.
3-ایمنی و استانداردها :
صنعت هوافضا از استانداردهایی مثل DO-178C پیروی میکند. Ada و C ابزارها و کتابخانههای تأییدشدهای برای این استاندارد دارند اما برای جاوا و پایتون چنین پشتیبانی و تأیید رسمی بسیار محدود یا تقریباً وجود ندارد.
4-کارایی (Performance & Footprint):
پایتون کنده چون مفسریه جاوا هم به خاطر JVM و مدیریت حافظه سربار زیادی داره که خب توی سیستم های هوافضا که سرعت مهمه و منابع سخت افزاری محدودی داریم نمیشه یه برنامه کند و برنامه ای که کلی منابع میخواد رو اجرا کنیم.
در نهایت باید بگم که زبان هایی که باهاشون نرم افزارهای سیستم های هوافضا، نظامی و حساس رو میسازن Ada-Spark ada - C و جدیدا Rust هستند.
@DevTwitter | <Mohsen Shojaei Yeganeh/>
Forwarded from Geek Alerts
مدل GLM-4.6 منتشر شد، با ادعای برابری با Claude Sonnet 4.5 ولی یک هفتم قیمت. البته در همه فاکتورها مخصوصا کدنویسی برابری نمیکنه اما مهمترین فاکتورش قیمتهای کم و عملکرد در سطح مدلهای پرچمدار شرکتهای بزرگ هست.
اصل استفادهای که همه ازش میکنن برای کدنویسی، ساخت صفحات وب، ترجمه، تولید محتوا و ساخت پاورپوینت هست. از ۱۲۸ هزار توکن هم حالا به ۲۰۰ هزار توکن افزایش داشته. نسخه پولی این مدل فقط ۳ دلار قیمت داره. [L]
https://z.ai
🤓 @geekalerts
اصل استفادهای که همه ازش میکنن برای کدنویسی، ساخت صفحات وب، ترجمه، تولید محتوا و ساخت پاورپوینت هست. از ۱۲۸ هزار توکن هم حالا به ۲۰۰ هزار توکن افزایش داشته. نسخه پولی این مدل فقط ۳ دلار قیمت داره. [L]
https://z.ai
Please open Telegram to view this post
VIEW IN TELEGRAM