Forwarded from Woland's Linux Journal (Woland)
اگه تا حالا کانتینری رو بدون کامپوز دیپلوی کردین و یادتون نمیاد کامند داکر رانش چی بود، یا نمیتونین به هر دلیلی دستورش رو بازسازی کنین از روشهای زیر استفاده کنید:
یک:
با استفاده از inspect و jq
این روش جوابگو است ولی دستور بسیار طولانی و پیچیدهست و باید جایی ذخیرهاش کرده باشید.
روش دوم:
با استفاده از یک ایمیج دیگه که برای این کار ساخته شده
در هر دو دستور کافیه که فقط container id رو جایگزین کنید.
#آموزش #دواپس
یک:
با استفاده از inspect و jq
docker inspect <container_id_or_name> \
| jq -r '.[0] | "docker run " +
(if .HostConfig.Privileged then "--privileged " else "" end) +
(if .HostConfig.NetworkMode != "default" then "--network " + .HostConfig.NetworkMode + " " else "" end) +
(reduce .HostConfig.PortBindings[]? as $p (""; . + "-p " + $p[0].HostPort + ":" + $p[0].HostIp + " ")) +
(reduce .Mounts[]? as $m (""; . + "-v " + $m.Source + ":" + $m.Destination + " ")) +
(reduce .Config.Env[]? as $e (""; . + "-e " + $e + " ")) +
"--name " + .Name[1:] + " " + .Config.Image + " " +
.Path + " " + (.Args|join(" "))'
این روش جوابگو است ولی دستور بسیار طولانی و پیچیدهست و باید جایی ذخیرهاش کرده باشید.
روش دوم:
با استفاده از یک ایمیج دیگه که برای این کار ساخته شده
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
assaflavie/runlike <container_id_or_name>
در هر دو دستور کافیه که فقط container id رو جایگزین کنید.
#آموزش #دواپس
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
⭐️نتشار نسخه بتای Ubuntu 25.10 – Questing Quokka
🔹اوبونتو یکی از محبوبترین توزیعهای لینوکس است که هر شش ماه یک بار نسخه جدیدی منتشر میکند. نسخهٔ تازه یعنی Ubuntu 25.10 با نام Questing Quokka، یک نسخه غیر LTS است که برای کاربرانی طراحی شده که میخواهند همیشه بهروزترین قابلیتها و فناوریها را تجربه کنند.
🔹 انتشار نهایی: ۹ اکتبر ۲۰۲۵
✨ ویژگیها و تغییرات مهم:
🔹 هسته لینوکس 6.17
پشتیبانی گستردهتر از CPU، GPU، SoC روی Intel، AMD، ARM و RISC-V + بهینهسازی سیستم فایلها (Btrfs، EXT4، NTFS3، NFS، EROFS).
🔹 محیط دسکتاپ GNOME 49
کنترل موسیقی در صفحه قفل، اسلایدر روشنایی برای هر مانیتور، تجربه بهتر در حالت چند نمایشگر.
مدیر نمایش Wayland پیشفرض است و Xorg حذف شده (با پشتیبانی XWayland برای اپهای قدیمی).
🔹 برنامههای جدید
برنامه Loupe جایگزین Eye of GNOME (نمایشگر تصاویر مدرن، سریع و GPU-Accelerated).
برنامه Ptyxis جایگزین GNOME Terminal (ترمینال مدرن، بهینه و سازگار با ابزارهای جدید).
🔹 امنیت و زیرساخت
رمزنگاری کامل دیسک (Full-Disk Encryption) مبتنی بر TPM 2.0 با کلید بازیابی الزامی.
معرفی sudo-rs (نسخه Rust از sudo برای امنیت بیشتر).
استفاده از Dracut برای initramfs سریعتر.
🔹 بستهها و ابزارهای بهروز
GCC 15.2، Python 3.13.7، Rust 1.85، OpenJDK 25، LLVM 20، Boost 1.88، systemd 257.9، OpenSSL 3.5، Mesa 25.2
✅ مزایای کلیدی:
پشتیبانی سختافزاری پیشرفتهتر
امنیت قدرتمندتر (TPM + sudo-rs)
تجربه کاربری مدرنتر با Wayland و اپلیکیشنهای جدید
فناوریهای بهروز برای کارایی بالاتر و مصرف بهینه
نویسنده: حسین سیلانی
https://learninghive.ir
🔹اوبونتو یکی از محبوبترین توزیعهای لینوکس است که هر شش ماه یک بار نسخه جدیدی منتشر میکند. نسخهٔ تازه یعنی Ubuntu 25.10 با نام Questing Quokka، یک نسخه غیر LTS است که برای کاربرانی طراحی شده که میخواهند همیشه بهروزترین قابلیتها و فناوریها را تجربه کنند.
🔹 انتشار نهایی: ۹ اکتبر ۲۰۲۵
✨ ویژگیها و تغییرات مهم:
🔹 هسته لینوکس 6.17
پشتیبانی گستردهتر از CPU، GPU، SoC روی Intel، AMD، ARM و RISC-V + بهینهسازی سیستم فایلها (Btrfs، EXT4، NTFS3، NFS، EROFS).
🔹 محیط دسکتاپ GNOME 49
کنترل موسیقی در صفحه قفل، اسلایدر روشنایی برای هر مانیتور، تجربه بهتر در حالت چند نمایشگر.
مدیر نمایش Wayland پیشفرض است و Xorg حذف شده (با پشتیبانی XWayland برای اپهای قدیمی).
🔹 برنامههای جدید
برنامه Loupe جایگزین Eye of GNOME (نمایشگر تصاویر مدرن، سریع و GPU-Accelerated).
برنامه Ptyxis جایگزین GNOME Terminal (ترمینال مدرن، بهینه و سازگار با ابزارهای جدید).
🔹 امنیت و زیرساخت
رمزنگاری کامل دیسک (Full-Disk Encryption) مبتنی بر TPM 2.0 با کلید بازیابی الزامی.
معرفی sudo-rs (نسخه Rust از sudo برای امنیت بیشتر).
استفاده از Dracut برای initramfs سریعتر.
🔹 بستهها و ابزارهای بهروز
GCC 15.2، Python 3.13.7، Rust 1.85، OpenJDK 25، LLVM 20، Boost 1.88، systemd 257.9، OpenSSL 3.5، Mesa 25.2
✅ مزایای کلیدی:
پشتیبانی سختافزاری پیشرفتهتر
امنیت قدرتمندتر (TPM + sudo-rs)
تجربه کاربری مدرنتر با Wayland و اپلیکیشنهای جدید
فناوریهای بهروز برای کارایی بالاتر و مصرف بهینه
نویسنده: حسین سیلانی
https://learninghive.ir
Forwarded from Woland's Linux Journal (Woland)
جالبه بدونین که podman inspect به صورت پیشفرض یک قسمت CreateCommand توی خروجی json داره.
podman inspect <container_id> | jq -r '.[0].CreateCommand | join(" ")'Forwarded from DevTwitter | توییت برنامه نویسی
توی این مقاله از اهمیت یادگیری Docker برای فرانتاند دولوپرا گفتم؛ اینکه چرا نیازه و از کجا و چطور یاد بگیریمش. سعی کردم زبانم تا حد امکان ساده و روان باشه. خوشحال میشم بخونید و اگر نظری دارید برام بنویسید.
https://vrgl.ir/GiGV1
@DevTwitter | <Hesam Seyfollahi/>
https://vrgl.ir/GiGV1
@DevTwitter | <Hesam Seyfollahi/>
Forwarded from محتوای آزاد سهراب (Sohrab)
اوقات فراغت خود را در زمان نصب tool chain چطور سپری میکنید؟
با بازی کردن تتریس در ایمکس.
@SohrabContents
با بازی کردن تتریس در ایمکس.
@SohrabContents
Forwarded from a pessimistic researcher (Kc)
Summer Internship @ Max Planck Institutes
————————————————
کمکی سوالی چیزی بود بهم بگید حتما
📢 Join us for an internship next summer!
An internship at the Max Planck Institutes gives you the opportunity to pursue world-class research in computer science. Our internships are also an excellent way to decide if academia is the right field for you before you commit to a PhD project.
📌Apply via the CS@Max Planck platform for an internship and choose to work with our partner institutes: the Max Planck Institute for Informatics (MPI-INF), the Max Planck Institute for Software Systems (MPI-SWS), or the Max Planck Institute for Security and Privacy (MPI-SP)
🗓 Deadline: November 1st
Check the link below for more details on how to apply:
https://www.cis.mpg.de/internships/
————————————————
کمکی سوالی چیزی بود بهم بگید حتما
📢 Join us for an internship next summer!
An internship at the Max Planck Institutes gives you the opportunity to pursue world-class research in computer science. Our internships are also an excellent way to decide if academia is the right field for you before you commit to a PhD project.
📌Apply via the CS@Max Planck platform for an internship and choose to work with our partner institutes: the Max Planck Institute for Informatics (MPI-INF), the Max Planck Institute for Software Systems (MPI-SWS), or the Max Planck Institute for Security and Privacy (MPI-SP)
🗓 Deadline: November 1st
Check the link below for more details on how to apply:
https://www.cis.mpg.de/internships/
Forwarded from Gopher Academy
🔵 عنوان مقاله
Using Go Channels to Solve Interface Impedance Mismatch
🟢 خلاصه مقاله:
استفاده از Go Channels برای رفع ناسازگاری بین رابطها
این یادداشت نشان میدهد که چگونه میتوان از Go Channels نه برای همزمانی، بلکه بهعنوان یک لایه تطبیق سبک استفاده کرد. Zach Musgrave توضیح میدهد که در مواجهه با “interface impedance mismatch”—جایی که یک API داده را بهصورت push میدهد و دیگری آن را بهصورت pull مصرف میکند، یا یکی جریانمحور است و دیگری تکرارشونده—یک Channel میتواند بهعنوان بافری خنثی، این دو جهان را بدون تغییرات اساسی در کد به هم متصل کند. در این الگو، تولیدکننده در همان جریان اجرای عادی دادهها را داخل Channel میگذارد و مصرفکننده با الگوی خواندن رایج از روی Channel آنها را برمیدارد؛ نیازی به goroutine یا معماری همزمانی پیچیده نیست. مزیتها شامل جداسازی بهتر، سادهسازی تبدیل بین رابطها، و تستپذیری بالاتر است؛ با این احتیاطها که اندازه بافر معقول انتخاب شود و استفاده غیرهمزمانی از Channel بهوضوح مستند گردد. پیام اصلی: Channels فقط برای همزمانی نیستند؛ آنها یک واسط ترکیبی مفید برای آشتی دادن APIها—بهویژه در تبدیل push/pull و جریان/تکرار—هستند.
#Go #Golang #Channels #APIDesign #InterfaceImpedanceMismatch #SoftwareEngineering #DesignPatterns #GoTips
🟣لینک مقاله:
https://golangweekly.com/link/174421/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Using Go Channels to Solve Interface Impedance Mismatch
🟢 خلاصه مقاله:
استفاده از Go Channels برای رفع ناسازگاری بین رابطها
این یادداشت نشان میدهد که چگونه میتوان از Go Channels نه برای همزمانی، بلکه بهعنوان یک لایه تطبیق سبک استفاده کرد. Zach Musgrave توضیح میدهد که در مواجهه با “interface impedance mismatch”—جایی که یک API داده را بهصورت push میدهد و دیگری آن را بهصورت pull مصرف میکند، یا یکی جریانمحور است و دیگری تکرارشونده—یک Channel میتواند بهعنوان بافری خنثی، این دو جهان را بدون تغییرات اساسی در کد به هم متصل کند. در این الگو، تولیدکننده در همان جریان اجرای عادی دادهها را داخل Channel میگذارد و مصرفکننده با الگوی خواندن رایج از روی Channel آنها را برمیدارد؛ نیازی به goroutine یا معماری همزمانی پیچیده نیست. مزیتها شامل جداسازی بهتر، سادهسازی تبدیل بین رابطها، و تستپذیری بالاتر است؛ با این احتیاطها که اندازه بافر معقول انتخاب شود و استفاده غیرهمزمانی از Channel بهوضوح مستند گردد. پیام اصلی: Channels فقط برای همزمانی نیستند؛ آنها یک واسط ترکیبی مفید برای آشتی دادن APIها—بهویژه در تبدیل push/pull و جریان/تکرار—هستند.
#Go #Golang #Channels #APIDesign #InterfaceImpedanceMismatch #SoftwareEngineering #DesignPatterns #GoTips
🟣لینک مقاله:
https://golangweekly.com/link/174421/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Dolthub
Go channels to solve interface impedance mismatch
Learn how Go channels can solve a particular form of interface mismatch common in application development.
Forwarded from DevTwitter | توییت برنامه نویسی
چند هفتهست دارم با Bun کار میکنم. اولش مثل همه فکر میکردم صرفاً یه آلترناتیو سریعتر برای Node.jsـه.
ولی واقعاً فقط سریعتر بودن نیست. حس میکنم دارم با یه چیزی کار میکنم که برای سال ۲۰۳۰ ساخته شده، نه ۲۰۲۰.
- سرعت اجراش فوقالعادهست
- نصب پکیجها توی چند ثانیه!
- نیاز به تنظیمات پیچیده تقریباً صفره
- و TypeScript؟ انگار از اول برای Bun نوشته شده!
تو دنیایی که هر روز یه ابزار جدید میاد و میره، Bun داره یه سوال جدی مطرح میکنه:
آیا وقتشه Node.js رو کنار بذاریم؟
من نمیگم الان همه مهاجرت کنن، ولی اگه اهل تجربه و آیندهنگری باشی، حداقل باید یه پروژهی کوچک رو باهاش تست کنی.
@DevTwitter | <Amirhossein Dehghaniazar/>
ولی واقعاً فقط سریعتر بودن نیست. حس میکنم دارم با یه چیزی کار میکنم که برای سال ۲۰۳۰ ساخته شده، نه ۲۰۲۰.
- سرعت اجراش فوقالعادهست
- نصب پکیجها توی چند ثانیه!
- نیاز به تنظیمات پیچیده تقریباً صفره
- و TypeScript؟ انگار از اول برای Bun نوشته شده!
تو دنیایی که هر روز یه ابزار جدید میاد و میره، Bun داره یه سوال جدی مطرح میکنه:
آیا وقتشه Node.js رو کنار بذاریم؟
من نمیگم الان همه مهاجرت کنن، ولی اگه اهل تجربه و آیندهنگری باشی، حداقل باید یه پروژهی کوچک رو باهاش تست کنی.
@DevTwitter | <Amirhossein Dehghaniazar/>
Forwarded from GitHub Trending Daily
🔥 New GitHub Trending Repositories 🔥
Found 10 new trending repositories:
1. linux by torvalds
📝 Linux kernel source tree
💻 C | ⭐ 202,531 | 🌟 Today: 83
🔗 Link
2. system-prompts-and-models-of-ai-tools by x1xhlol
📝 FULL Augment Code, Claude Code, Cluely, CodeBuddy, Cursor, Devin AI, Junie, Kiro, Leap.new, Lovable,...
💻 Star | ⭐ 86,816 | 🌟 Today: 391
🔗 Link
3. ticket-purchase by WECENG
📝 大麦自动抢票,支持人员、城市、日期场次、价格选择
💻 Python | ⭐ 2,501 | 🌟 Today: 296
🔗 Link
4. AI-Researcher by HKUDS
📝 NeurIPS2025 "AI-Researcher: Autonomous Scientific Innovation" -- A production-ready version: https...
💻 Python | ⭐ 2,540 | 🌟 Today: 34
🔗 Link
5. free-programming-books by EbookFoundation
📝 📚 Freely available programming books
💻 Python | ⭐ 369,059 | 🌟 Today: 329
🔗 Link
6. mlx-swift-examples by ml-explore
📝 Examples using MLX Swift
💻 Swift | ⭐ 2,098 | 🌟 Today: 25
🔗 Link
7. mindsdb by mindsdb
📝 AI Analytics Engine that can answer questions over large scale data. - The only MCP Server you'll ev...
💻 Python | ⭐ 35,892 | 🌟 Today: 86
🔗 Link
8. youtube-dl by ytdl-org
📝 Command-line program to download videos from YouTube.com and other video sites
💻 Python | ⭐ 137,343 | 🌟 Today: 21
🔗 Link
9. intellij-community by JetBrains
📝 IntelliJ IDEA & IntelliJ Platform
💻 Java | ⭐ 18,800 | 🌟 Today: 5
🔗 Link
10. NekoBoxForAndroid by MatsuriDayo
📝 NekoBox for Android / sing-box / universal proxy toolchain for Android
💻 Kotlin | ⭐ 16,089 | 🌟 Today: 32
🔗 Link
🔘 @github_trending_daily
Found 10 new trending repositories:
1. linux by torvalds
📝 Linux kernel source tree
💻 C | ⭐ 202,531 | 🌟 Today: 83
🔗 Link
2. system-prompts-and-models-of-ai-tools by x1xhlol
📝 FULL Augment Code, Claude Code, Cluely, CodeBuddy, Cursor, Devin AI, Junie, Kiro, Leap.new, Lovable,...
💻 Star | ⭐ 86,816 | 🌟 Today: 391
🔗 Link
3. ticket-purchase by WECENG
📝 大麦自动抢票,支持人员、城市、日期场次、价格选择
💻 Python | ⭐ 2,501 | 🌟 Today: 296
🔗 Link
4. AI-Researcher by HKUDS
📝 NeurIPS2025 "AI-Researcher: Autonomous Scientific Innovation" -- A production-ready version: https...
💻 Python | ⭐ 2,540 | 🌟 Today: 34
🔗 Link
5. free-programming-books by EbookFoundation
📝 📚 Freely available programming books
💻 Python | ⭐ 369,059 | 🌟 Today: 329
🔗 Link
6. mlx-swift-examples by ml-explore
📝 Examples using MLX Swift
💻 Swift | ⭐ 2,098 | 🌟 Today: 25
🔗 Link
7. mindsdb by mindsdb
📝 AI Analytics Engine that can answer questions over large scale data. - The only MCP Server you'll ev...
💻 Python | ⭐ 35,892 | 🌟 Today: 86
🔗 Link
8. youtube-dl by ytdl-org
📝 Command-line program to download videos from YouTube.com and other video sites
💻 Python | ⭐ 137,343 | 🌟 Today: 21
🔗 Link
9. intellij-community by JetBrains
📝 IntelliJ IDEA & IntelliJ Platform
💻 Java | ⭐ 18,800 | 🌟 Today: 5
🔗 Link
10. NekoBoxForAndroid by MatsuriDayo
📝 NekoBox for Android / sing-box / universal proxy toolchain for Android
💻 Kotlin | ⭐ 16,089 | 🌟 Today: 32
🔗 Link
🔘 @github_trending_daily
Forwarded from a pessimistic researcher (Kc)
دیروز با یکی از دوستان سیستم کار داشتم صحبت میکردم و ۲ تا سوال داشت. یکی اینکه : مثلا الان اگه یک سیستم کانکارنت با چندین دیتابیس و کانکشن های مختلف همزمان روی یک ترد داشته باشیم ( مورد واقعی ) چطور میتونیم وریفایش کنیم؟ از کجا باید شروع کنیم؟ چیزی هست که فرآیند رو سریع کنه یا باید از ابتدا برناممون رو مدل سازی کنیم؟ دوم اینکه : یا راه درستی که میشه استفاده کرد اینه که از همون ابتدا verified توسعه بدیم برناممون رو؟
جوابی که من بهش دادم رو برای شما هم قرار میدم:
ببین جواب هر دو سوالت رو با هم میدم. اول از همه تو میتونی برنامه رو طوری توسعه بدی که از همون اول verified باشه، منتهی با هر زبان برنامهنویسی نمیشه این کار رو کرد. برای همین ممکنه خیلی جاها دستمون بسته باشه مثلا شرکت میگه که تو باید با زبان Go این سرویسها رو بنویسی و خب ما هیچ فریمورکی نداریم که بتونیم به واسطهاش کد Go رو طوری تولید کنیم که verified شده باشه. منتهی خب اگر دست آدم باز باشه و بخواد یه سیستمی رو پیاده کنه بهتره که verified شده انجامش بده مثل همین پروژههایی که بچههای MIT انجام میدن. چندتا مثال برات مینویسم:
DeepSpec / Sel4 / CompCert / Ironclad / IronFleet / CertiKOS / Formula-V / SCION / Barrelfish OS / ...
با چه زبانهایی این کارا رو میکنن:
Dafny - Boogie - Why3 - Coq - Isabelle/HOL - F* - Verus - Idris - Agda - Raven - SPARK - ...
اما خب همهی سیستمها که با این زبانها نوشته نشدن و ممکنه ما یه سیستم مثل اونی که تو گفتی داشته باشیم و بخوایم وریفایش کنیم. چند تا کار میشه کرد. یکیش اینه که اون کد رو مثلا transpile کنی به یکی از زبانها بالا. یکی دیگهاش اینه که سعی کنی رفتار برنامهات رو مدل کنی. این کار رو باید با استفاده از زبانهای فرمال انجام بدی و میتونی از هر یک از ابزارهای زیر استفاده کنی
TLA+ / Ivy / P / CIVL / JKind / SPIN
نکته اینه که اگر مدل سازی کنی، میتونی باگهای دیزاین و پروتکلی و الگوریتمی سیستم رو در بیاری. ولی چون خود کد رو verify نمیکنی ممکنه که کدت هنوز باگ داشته باشه.
برای وریفای کردن کد اومدن کلی تکنیک و و ابزار توسعه دادن. مثلا JMC که من روش کار میکنم برای وریفای کردن Java است. برخی از این ابزارها مبتنی بر روشهای کلاسیک verification توسعه یافتن مثل symbolic model checking و Abstract Interpretation و CEGAR.
از بین این روشهای کلاسیک میشه به اینا اشاره کرد :
CBMC (C) / JBMC (Java) / EBMC (Verilog) / Kani (Rust) / Viper (multi-lang) / CPAChecker (C) / Ultimate (C) / JayHorn (Java) / Farma-C (C) / Java Pathfinder (Java) / CN (C) / Nagini (Python) / Prusti (Rust) / BRiCk (C++) / coq-of-rust (Rust) / VerCors (multi-lang) / Verify Rust std lib / Verifast (multi-lang) / DSCheck (OCaml) / Rumur (C) / TriCera (C) / Eldarica (multi-lang) / Stateright (Rust)
منتهی نکتهای که وجود داره اینه که اکثر این ابزارها بخاطر محدودیتها و سختیهایی که تصمیم پذیری روشهای کلاسیک دارن، در مواجهه با کیسهای real-world کم میارن. روش نوینی که برای verification کدها امروزه نشون داده که بسیار promising هستش stateless model checking نام داره که سعی کردم توی این پست توضیحش بدم. در این پست هم لیست smc های موجود برای زبانهای مختلف رو به همراه تواناییها و محدودیتهاشون آوردم.
جوابی که من بهش دادم رو برای شما هم قرار میدم:
ببین جواب هر دو سوالت رو با هم میدم. اول از همه تو میتونی برنامه رو طوری توسعه بدی که از همون اول verified باشه، منتهی با هر زبان برنامهنویسی نمیشه این کار رو کرد. برای همین ممکنه خیلی جاها دستمون بسته باشه مثلا شرکت میگه که تو باید با زبان Go این سرویسها رو بنویسی و خب ما هیچ فریمورکی نداریم که بتونیم به واسطهاش کد Go رو طوری تولید کنیم که verified شده باشه. منتهی خب اگر دست آدم باز باشه و بخواد یه سیستمی رو پیاده کنه بهتره که verified شده انجامش بده مثل همین پروژههایی که بچههای MIT انجام میدن. چندتا مثال برات مینویسم:
DeepSpec / Sel4 / CompCert / Ironclad / IronFleet / CertiKOS / Formula-V / SCION / Barrelfish OS / ...
با چه زبانهایی این کارا رو میکنن:
Dafny - Boogie - Why3 - Coq - Isabelle/HOL - F* - Verus - Idris - Agda - Raven - SPARK - ...
اما خب همهی سیستمها که با این زبانها نوشته نشدن و ممکنه ما یه سیستم مثل اونی که تو گفتی داشته باشیم و بخوایم وریفایش کنیم. چند تا کار میشه کرد. یکیش اینه که اون کد رو مثلا transpile کنی به یکی از زبانها بالا. یکی دیگهاش اینه که سعی کنی رفتار برنامهات رو مدل کنی. این کار رو باید با استفاده از زبانهای فرمال انجام بدی و میتونی از هر یک از ابزارهای زیر استفاده کنی
TLA+ / Ivy / P / CIVL / JKind / SPIN
نکته اینه که اگر مدل سازی کنی، میتونی باگهای دیزاین و پروتکلی و الگوریتمی سیستم رو در بیاری. ولی چون خود کد رو verify نمیکنی ممکنه که کدت هنوز باگ داشته باشه.
برای وریفای کردن کد اومدن کلی تکنیک و و ابزار توسعه دادن. مثلا JMC که من روش کار میکنم برای وریفای کردن Java است. برخی از این ابزارها مبتنی بر روشهای کلاسیک verification توسعه یافتن مثل symbolic model checking و Abstract Interpretation و CEGAR.
از بین این روشهای کلاسیک میشه به اینا اشاره کرد :
CBMC (C) / JBMC (Java) / EBMC (Verilog) / Kani (Rust) / Viper (multi-lang) / CPAChecker (C) / Ultimate (C) / JayHorn (Java) / Farma-C (C) / Java Pathfinder (Java) / CN (C) / Nagini (Python) / Prusti (Rust) / BRiCk (C++) / coq-of-rust (Rust) / VerCors (multi-lang) / Verify Rust std lib / Verifast (multi-lang) / DSCheck (OCaml) / Rumur (C) / TriCera (C) / Eldarica (multi-lang) / Stateright (Rust)
منتهی نکتهای که وجود داره اینه که اکثر این ابزارها بخاطر محدودیتها و سختیهایی که تصمیم پذیری روشهای کلاسیک دارن، در مواجهه با کیسهای real-world کم میارن. روش نوینی که برای verification کدها امروزه نشون داده که بسیار promising هستش stateless model checking نام داره که سعی کردم توی این پست توضیحش بدم. در این پست هم لیست smc های موجود برای زبانهای مختلف رو به همراه تواناییها و محدودیتهاشون آوردم.
Forwarded from امین رشیدبیگی | مهندسی نرمافزار
وقتی میخواین یک دادهٔ حساس مثل گذرواژه یا یک سیکرتی رو برای همکارتون بفرستین، معمولاً سریعترین راه فرستادنش توی ایمیل یا ابزارهای پیامرسان مثل اسلک و تلگرامه. اما همونطور که میدونید اینها امن نیستن و بهتره پس از استفاده حذف بشن. با این حال خیلی وقتها این اتفاق نمیافته. یا فراموش میکنیم، یا بدتر اینکه از همون پیام بهعنوان پسوردمنیجر استفاده میکنیم!
یک راهحل ساده و در بسیاری از موارد، امنتر استفاده از ابزار 1ty.me هستش. این سرویس یک لینک حاوی اطلاعات مورد نظر براتون تولید میکنه و شما بهجای خود داده، لینک حاوی اون داده رو میفرستین. خوبیش اینه که لینک یکبارمصرفه و بعد از باز شدن، داده حذف میشه و دیگه قابل استفاده نیست.
@aminrbg
یک راهحل ساده و در بسیاری از موارد، امنتر استفاده از ابزار 1ty.me هستش. این سرویس یک لینک حاوی اطلاعات مورد نظر براتون تولید میکنه و شما بهجای خود داده، لینک حاوی اون داده رو میفرستین. خوبیش اینه که لینک یکبارمصرفه و بعد از باز شدن، داده حذف میشه و دیگه قابل استفاده نیست.
@aminrbg
Forwarded from DevTwitter | توییت برنامه نویسی
اگر روی مک هستین و از ollama استفاده میکنین یه سرویس مشابهش اومده که بیسش روی MLX هست و پرفورمنس بهتری داره
https://github.com/dinoki-ai/osaurus
@DevTwitter | <Armin/>
https://github.com/dinoki-ai/osaurus
@DevTwitter | <Armin/>
Forwarded from a pessimistic researcher (Kc)
امروز شیرینی خورش (قاتق) پختیم ( یکی از غذاهای بسیار خوشمزه گیلان ) درست مزه شیرینی خورش های مامان بزرگ و مامانم رو میداد 😭
Forwarded from a pessimistic researcher (Kc)
جدی اون روزی که آلو بخارامون تموم بشه دیگه دوست ندارم این زندگی ادامه داشته باشه
Forwarded from DevTwitter | توییت برنامه نویسی
زبان برنامه نویسی PHP با کلی فریمورک محبوب و کاربردی...
زبان PHP که اولین نسخه اش سال ۱۹۹۵ منتشر شد، تا الان چندین فریمورک رو عرضه کرده که هر کدوم در زمینه های مختلف کارایی دارند.
از این فریمورک ها می تونیم لاراول، سیمفونی، کد ایگنایتِر، Zend و غیره رو مثال بزنیم.
در حال حاضر محبوب ترین فریمورک این زبان لاراول هست که اولین نسخه اش ۱۴ سال پیش (2011) منتشر شد و هدف از ساختنش ارائه جایگزینی برای فریمورک کد ایگنایتر و رفع محدودیت هاش بود.
این فریمورک هم فوق العاده قویه و هم بازار کار بسیار فعال و گسترده ای داره.
در حال حاضر بعد از لاراول فریمورک های سیمفونی و کد ایگنایتر محبوب هستن.
توی تصویر زیر به صورت خلاصه و جمع و جور آمار استفاده از فریمورک ها به همراه کاربرد سه تا از محبوب ترین هاشون رو آوردم.
@DevTwitter | <Parsa Kavian/>
زبان PHP که اولین نسخه اش سال ۱۹۹۵ منتشر شد، تا الان چندین فریمورک رو عرضه کرده که هر کدوم در زمینه های مختلف کارایی دارند.
از این فریمورک ها می تونیم لاراول، سیمفونی، کد ایگنایتِر، Zend و غیره رو مثال بزنیم.
در حال حاضر محبوب ترین فریمورک این زبان لاراول هست که اولین نسخه اش ۱۴ سال پیش (2011) منتشر شد و هدف از ساختنش ارائه جایگزینی برای فریمورک کد ایگنایتر و رفع محدودیت هاش بود.
این فریمورک هم فوق العاده قویه و هم بازار کار بسیار فعال و گسترده ای داره.
در حال حاضر بعد از لاراول فریمورک های سیمفونی و کد ایگنایتر محبوب هستن.
توی تصویر زیر به صورت خلاصه و جمع و جور آمار استفاده از فریمورک ها به همراه کاربرد سه تا از محبوب ترین هاشون رو آوردم.
@DevTwitter | <Parsa Kavian/>