Forwarded from جادی | Jadi
این تحقیق میگه که تونستن در همه موجودات زنده (انسانها، موشها و گیاهان) نور بسیار ضعیفی رو ببینن. در واقع میگه همه موجودات زنده نور بسیار کمی در طیف مرئی برای انسان منتشر میکنن که بعد از مرگ خاموش میشه و [حداقل ] در گیاهان با استرس و صدمه خوردن تغییر میکنه.
مشخصه که معنای عجیب ماورایی نداره ولی همزمان معنای زیبایی اضافه میکنه به اصطلاحاتی مانند «نور زندگی».
https://pubs.acs.org/doi/10.1021/acs.jpclett.4c03546
مشخصه که معنای عجیب ماورایی نداره ولی همزمان معنای زیبایی اضافه میکنه به اصطلاحاتی مانند «نور زندگی».
https://pubs.acs.org/doi/10.1021/acs.jpclett.4c03546
ACS Publications
Imaging Ultraweak Photon Emission from Living and Dead Mice and from Plants under Stress
The phenomenon of biological ultraweak photon emission (UPE), that is, extremely low-intensity emission (10–103 photons cm–2 s–1) in the spectral range of 200–1000 nm, has been observed in all living systems that have been examined. Here, we report experiments…
Forwarded from GitHub Trending Daily
🔥 New GitHub Trending Repositories 🔥
Found 11 new trending repositories:
1. capnweb by cloudflare
📝 JavaScript/TypeScript-native, low-boilerplate, object-capability RPC system
💻 TypeScript | ⭐ 1,704 | 🌟 Today: 326
🔗 Link
2. RAG-Anything by HKUDS
📝 "RAG-Anything: All-in-One RAG Framework"
💻 Python | ⭐ 5,525 | 🌟 Today: 122
🔗 Link
3. ultralytics by ultralytics
📝 Ultralytics YOLO 🚀
💻 Python | ⭐ 46,026 | 🌟 Today: 49
🔗 Link
4. istio by istio
📝 Connect, secure, control, and observe services.
💻 Go | ⭐ 37,347 | 🌟 Today: 7
🔗 Link
5. Dolphin by bytedance
📝 The official repo for “Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting”, ACL, 202...
💻 Python | ⭐ 6,428 | 🌟 Today: 457
🔗 Link
6. cai by aliasrobotics
📝 Cybersecurity AI (CAI), the framework for AI Security
💻 Python | ⭐ 4,212 | 🌟 Today: 99
🔗 Link
7. solana by solana-labs
📝 Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces.
💻 Rust | ⭐ 14,480 | 🌟 Today: 2
🔗 Link
8. siyuan by siyuan-note
📝 A privacy-first, self-hosted, fully open source personal knowledge management software, written in t...
💻 TypeScript | ⭐ 37,712 | 🌟 Today: 75
🔗 Link
9. django by django
📝 The Web framework for perfectionists with deadlines.
💻 Python | ⭐ 85,150 | 🌟 Today: 22
🔗 Link
10. system-design-101 by ByteByteGoHq
📝 Explain complex systems using visuals and simple terms. Help you prepare for system design interview...
💻 Star | ⭐ 76,829 | 🌟 Today: 126
🔗 Link
11. exo by exo-explore
📝 Run your own AI cluster at home with everyday devices 📱💻 🖥️⌚
💻 Python | ⭐ 31,199 | 🌟 Today: 32
🔗 Link
🔘 @github_trending_daily
Found 11 new trending repositories:
1. capnweb by cloudflare
📝 JavaScript/TypeScript-native, low-boilerplate, object-capability RPC system
💻 TypeScript | ⭐ 1,704 | 🌟 Today: 326
🔗 Link
2. RAG-Anything by HKUDS
📝 "RAG-Anything: All-in-One RAG Framework"
💻 Python | ⭐ 5,525 | 🌟 Today: 122
🔗 Link
3. ultralytics by ultralytics
📝 Ultralytics YOLO 🚀
💻 Python | ⭐ 46,026 | 🌟 Today: 49
🔗 Link
4. istio by istio
📝 Connect, secure, control, and observe services.
💻 Go | ⭐ 37,347 | 🌟 Today: 7
🔗 Link
5. Dolphin by bytedance
📝 The official repo for “Dolphin: Document Image Parsing via Heterogeneous Anchor Prompting”, ACL, 202...
💻 Python | ⭐ 6,428 | 🌟 Today: 457
🔗 Link
6. cai by aliasrobotics
📝 Cybersecurity AI (CAI), the framework for AI Security
💻 Python | ⭐ 4,212 | 🌟 Today: 99
🔗 Link
7. solana by solana-labs
📝 Web-Scale Blockchain for fast, secure, scalable, decentralized apps and marketplaces.
💻 Rust | ⭐ 14,480 | 🌟 Today: 2
🔗 Link
8. siyuan by siyuan-note
📝 A privacy-first, self-hosted, fully open source personal knowledge management software, written in t...
💻 TypeScript | ⭐ 37,712 | 🌟 Today: 75
🔗 Link
9. django by django
📝 The Web framework for perfectionists with deadlines.
💻 Python | ⭐ 85,150 | 🌟 Today: 22
🔗 Link
10. system-design-101 by ByteByteGoHq
📝 Explain complex systems using visuals and simple terms. Help you prepare for system design interview...
💻 Star | ⭐ 76,829 | 🌟 Today: 126
🔗 Link
11. exo by exo-explore
📝 Run your own AI cluster at home with everyday devices 📱💻 🖥️⌚
💻 Python | ⭐ 31,199 | 🌟 Today: 32
🔗 Link
🔘 @github_trending_daily
Forwarded from DevTwitter | توییت برنامه نویسی
ممکنه پیش بیاد که روی چندین پروژه در سیستم خودتون کار کنید، برای سویچ کردن و مدیریت سریع تر آنها در ترمینال یه ابزار خیلی ساده نوشتم گفتم اینجا هم بزارم که شاید بکار دوستان هم اومد
فرایندش اینه که بعد از نصب، دستور (opener aap) رو در ترمینال میزنی
نام پوشه پروژه رو بهش میدی، اونم میره در مسیر home یوزر، سرچ میکنه (Recursive Search) و پروژه رو با مسیرش پیدا میکنه
و بعدش زبان توسعه اونو ازت میخواد (طبق لیستی از زبان های ارائه شده، انتخابش میکنی)
و در نهایت انتخاب ادیتور رو ازت میخواد (کد ادیتور های نصب شده روی سیستم رو پیدا میکنه و لیست میکنه) و بعدش ذخیرش میکنه
بعد از انتخاب یه ادیتور، همونو برای اون پروژه در نظر میگیره و برای بار دوم دیگه نیازی به سلکت مجدد نیست و تنها با دستور کوتاه (o- project-name) پروژه رو باز میکنی
حذف پروژه هایی که به این ابزار معرفی می کنی ربطی به پروژه اصلی نداره
این ابزار opener_cli نسخه لینوکس هست و با node.js نوشته شده
https://github.com/NorouziMilad/opener
@DevTwitter | <YouVsYs/>
فرایندش اینه که بعد از نصب، دستور (opener aap) رو در ترمینال میزنی
نام پوشه پروژه رو بهش میدی، اونم میره در مسیر home یوزر، سرچ میکنه (Recursive Search) و پروژه رو با مسیرش پیدا میکنه
و بعدش زبان توسعه اونو ازت میخواد (طبق لیستی از زبان های ارائه شده، انتخابش میکنی)
و در نهایت انتخاب ادیتور رو ازت میخواد (کد ادیتور های نصب شده روی سیستم رو پیدا میکنه و لیست میکنه) و بعدش ذخیرش میکنه
بعد از انتخاب یه ادیتور، همونو برای اون پروژه در نظر میگیره و برای بار دوم دیگه نیازی به سلکت مجدد نیست و تنها با دستور کوتاه (o- project-name) پروژه رو باز میکنی
حذف پروژه هایی که به این ابزار معرفی می کنی ربطی به پروژه اصلی نداره
این ابزار opener_cli نسخه لینوکس هست و با node.js نوشته شده
https://github.com/NorouziMilad/opener
@DevTwitter | <YouVsYs/>
Forwarded from یه شعر (Poem Bot)
حافظ | غزلیات | غزل شمارهٔ ۲۴۳
بوی خوش تو هر که ز باد صبا شنید
از یار آشنا سخن آشنا شنید
ای شاه حسن چشم به حال گدا فکن
کـاین گوش بس حکایت شاه و گدا شنید
خوش می کنم به باده مشکین مشام جان
کز دلق پوش صومعه بوی ریا شنید
سر خدا که عارف سالک به کس نگفت
در حیرتم که باده فروش از کجا شنید
یا رب کجاست محرم رازی که یک زمان
دل شرح آن دهد که چه گفت و چه ها شنید
اینش سزا نبود دل حق گزار من
کز غمگسار خود سخن ناسزا شنید
محروم اگر شدم ز سر کوی او چه شد
از گلشن زمانه که بوی وفا شنید
ساقی بیا که عشق ندا می کند بلند
کان کس که گفت قصه ما هم ز ما شنید
ما باده زیر خرقه نه امروز می خوریم
صد بار پیر میکده این ماجرا شنید
ما می به بانگ چنگ نه امروز می کشیم
بس دور شد که گنبد چرخ این صدا شنید
پند حکیم محض صواب است و عین خیر
فرخنده آن کسی که به سمع رضا شنید
حافظ وظیفه تو دعا گفتن است و بس
در بند آن مباش که نشنید یا شنید
#حافظ | گنجور
📍@iipoem
بوی خوش تو هر که ز باد صبا شنید
از یار آشنا سخن آشنا شنید
ای شاه حسن چشم به حال گدا فکن
کـاین گوش بس حکایت شاه و گدا شنید
خوش می کنم به باده مشکین مشام جان
کز دلق پوش صومعه بوی ریا شنید
سر خدا که عارف سالک به کس نگفت
در حیرتم که باده فروش از کجا شنید
یا رب کجاست محرم رازی که یک زمان
دل شرح آن دهد که چه گفت و چه ها شنید
اینش سزا نبود دل حق گزار من
کز غمگسار خود سخن ناسزا شنید
محروم اگر شدم ز سر کوی او چه شد
از گلشن زمانه که بوی وفا شنید
ساقی بیا که عشق ندا می کند بلند
کان کس که گفت قصه ما هم ز ما شنید
ما باده زیر خرقه نه امروز می خوریم
صد بار پیر میکده این ماجرا شنید
ما می به بانگ چنگ نه امروز می کشیم
بس دور شد که گنبد چرخ این صدا شنید
پند حکیم محض صواب است و عین خیر
فرخنده آن کسی که به سمع رضا شنید
حافظ وظیفه تو دعا گفتن است و بس
در بند آن مباش که نشنید یا شنید
#حافظ | گنجور
📍@iipoem
Forwarded from Gopher Academy
🔵 عنوان مقاله
the WebAssembly 3.0 standard is now 'live'
🟢 خلاصه مقاله:
** استاندارد WebAssembly 3.0 رسماً منتشر شده و هماکنون در اکثر مرورگرهای مدرن در دسترس است. این نسخه با افزودن قابلیتهایی مانند garbage collection، tail calls و exception handling تمرکز خود را بر بهبود بلندمدت interoperability گذاشته و هدفش آسانتر شدن ادغام با زبانها و ابزارهای مختلف است. پشتیبانی استاندارد از GC مسیر زبانهای با runtime مدیریتشده را هموارتر میکند، حجم باینریها را کاهش میدهد و راهاندازی را سریعتر میسازد؛ در عین حال tail calls کارایی الگوهای بازگشتی را بالاتر میبرد و exception handling مدیریت خطا را ساختیافتهتر میکند. WebAssembly 3.0 با حفظ backward compatibility اجازه میدهد باینریهای فعلی بدون تغییر اجرا شوند و ابزارها بهتدریج قابلیتهای جدید را پشتیبانی کنند.
#WebAssembly #Wasm30 #Browsers #Interoperability #GarbageCollection #TailCalls #ExceptionHandling #WebStandards
🟣لینک مقاله:
https://golangweekly.com/link/174640/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
the WebAssembly 3.0 standard is now 'live'
🟢 خلاصه مقاله:
** استاندارد WebAssembly 3.0 رسماً منتشر شده و هماکنون در اکثر مرورگرهای مدرن در دسترس است. این نسخه با افزودن قابلیتهایی مانند garbage collection، tail calls و exception handling تمرکز خود را بر بهبود بلندمدت interoperability گذاشته و هدفش آسانتر شدن ادغام با زبانها و ابزارهای مختلف است. پشتیبانی استاندارد از GC مسیر زبانهای با runtime مدیریتشده را هموارتر میکند، حجم باینریها را کاهش میدهد و راهاندازی را سریعتر میسازد؛ در عین حال tail calls کارایی الگوهای بازگشتی را بالاتر میبرد و exception handling مدیریت خطا را ساختیافتهتر میکند. WebAssembly 3.0 با حفظ backward compatibility اجازه میدهد باینریهای فعلی بدون تغییر اجرا شوند و ابزارها بهتدریج قابلیتهای جدید را پشتیبانی کنند.
#WebAssembly #Wasm30 #Browsers #Interoperability #GarbageCollection #TailCalls #ExceptionHandling #WebStandards
🟣لینک مقاله:
https://golangweekly.com/link/174640/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
webassembly.org
Wasm 3.0 Completed - WebAssembly
WebAssembly (abbreviated Wasm) is a binary instruction format for a stack-based virtual machine. Wasm is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
Forwarded from Go Casts 🚀
سازنده Redis در جواب توییتی که نوشته بود تکنولوژی ای رو نام ببرید که quality خیلی زیادی داره و hype کمی داره، از ruby language design نام برده بود.
دلایل مختلفی برای این قضیه وجود داره من چندتا شو سعی میکنم ذکر کنم.
یکی اینکه آقای Matsumoto سازنده Ruby اولویت ش برای طراحی زبان رو productive بودن برنامه نویس ها در نظر گرفته بود و نه speed و چیزای دیگه..
به عبارتی developer happiness با کم کردن confusion در کدنویسی
زبان Ruby یک زمان کاملا Object-Oriented هست. اما فرق میکنه با اون چیزی که از OOP میدونیم..
یکی از نکات جالب طراحی Ruby وفاداری ش به تعریف OOP از آقای Alan Kay هست که در SmalTalk هم طراحی شده.
در تعریف آقای Alan Kay هر object با objectهای دیگه از طریق message passing ارتباط برقرار میکنه و نه از طریق method callها.
این چیزی هست که در زبان ruby هم طراحی شده. در ruby شما send message میکنی به object و اون object میتونه تصمیم بگیره که به پیام شما پاسخ بده و یا نده.
یکی دیگه از ایده های Alan Kay برای oop که به objectها انعطاف بیشتری میده تغییر رفتار objectها در runtime هست.
نکته کلیدی ای که در مورد OOP از نظر آقای Kay وجود داره که در Ruby هم پیاده سازی شده اینه که رفتار یا behaviour که معمولا از طریق interface تعریف میشه به object وابسته ست و نه class.
تعریف مرسومی که ما از OOP تو ذهن داریم رفتار وابسته به class هست. چیزی که در java و cpp هم خیلی رایجه.
اما تعریفی که آقای Kay از oop داره و در ruby هم پیاده سازی شده رفتار وابسته به object هست ونه class.
تعریف آقای Kay اگه درست رعایت بشه باعث میشه اصل composition over inheritance رعایت بشه. اصلی که مهمه و زبان های دیگه مثل گولنگ هم خیلی این مورد رو بهش اهمیت دادن.
آقای Kay معتقده که
behavioral composition is often better than deep inheritance hierarchies
یادگیری یه زبانی مثل ruby کمک میکنه که اصول oop آقای Kay رو بهتر متوجه بشیم و ذهنیتمون کاملا متفاوت بشه نسبت به OOPی که زبان های java و cpp به ما تحمیل کردن...
@gocasts
دلایل مختلفی برای این قضیه وجود داره من چندتا شو سعی میکنم ذکر کنم.
یکی اینکه آقای Matsumoto سازنده Ruby اولویت ش برای طراحی زبان رو productive بودن برنامه نویس ها در نظر گرفته بود و نه speed و چیزای دیگه..
به عبارتی developer happiness با کم کردن confusion در کدنویسی
زبان Ruby یک زمان کاملا Object-Oriented هست. اما فرق میکنه با اون چیزی که از OOP میدونیم..
یکی از نکات جالب طراحی Ruby وفاداری ش به تعریف OOP از آقای Alan Kay هست که در SmalTalk هم طراحی شده.
در تعریف آقای Alan Kay هر object با objectهای دیگه از طریق message passing ارتباط برقرار میکنه و نه از طریق method callها.
این چیزی هست که در زبان ruby هم طراحی شده. در ruby شما send message میکنی به object و اون object میتونه تصمیم بگیره که به پیام شما پاسخ بده و یا نده.
یکی دیگه از ایده های Alan Kay برای oop که به objectها انعطاف بیشتری میده تغییر رفتار objectها در runtime هست.
نکته کلیدی ای که در مورد OOP از نظر آقای Kay وجود داره که در Ruby هم پیاده سازی شده اینه که رفتار یا behaviour که معمولا از طریق interface تعریف میشه به object وابسته ست و نه class.
تعریف مرسومی که ما از OOP تو ذهن داریم رفتار وابسته به class هست. چیزی که در java و cpp هم خیلی رایجه.
اما تعریفی که آقای Kay از oop داره و در ruby هم پیاده سازی شده رفتار وابسته به object هست ونه class.
تعریف آقای Kay اگه درست رعایت بشه باعث میشه اصل composition over inheritance رعایت بشه. اصلی که مهمه و زبان های دیگه مثل گولنگ هم خیلی این مورد رو بهش اهمیت دادن.
آقای Kay معتقده که
behavioral composition is often better than deep inheritance hierarchies
یادگیری یه زبانی مثل ruby کمک میکنه که اصول oop آقای Kay رو بهتر متوجه بشیم و ذهنیتمون کاملا متفاوت بشه نسبت به OOPی که زبان های java و cpp به ما تحمیل کردن...
@gocasts
Forwarded from DevTwitter | توییت برنامه نویسی
ابزار diff برای چک کردن تفاوت خط به خط تغییرات فایل استفاده میشه. اما نمیتونه سینتکس رو بفهمه اومدن یه ابزار ساختن که سینتکس رو میفهمه و تغییرات رو توی سطح سینتکس بهتون نشون میده!
نصب :
https://github.com/Wilfred/difftastic
@DevTwitter | <Nimo/>
نصب :
https://github.com/Wilfred/difftastic
@DevTwitter | <Nimo/>
Forwarded from Sadra Codes
تقریبا ۶ ماهه که سرباز ارتشم. راجع به خدمت و تداخلش با کار، هر سوال، ابهام یا نگرانی دارین بپرسین تا طبق جایگاهی که دارم، راهنمایی کنم. 🫶
Forwarded from Gopher Academy
🔵 عنوان مقاله
Why I Ditched Docker for Podman (And You Should Too)
🟢 خلاصه مقاله:
مهاجرت از Docker به Podman برای من بیشتر یک انتخاب عملی بود تا بحث سلیقه؛ بهویژه در جریانهای کاری مرتبط با Go که در Golang Weekly هم زیاد دیده میشود. دلیل اصلی، معماری سادهتر و امنتر Podman است: بدون daemon و با اجرای rootless بهصورت پیشفرض، پس سطح حمله و دردسرهای دسترسی کاهش مییابد و سرویس پرامتیازِ دائمی لازم نیست. مهاجرت هم کماصطکاک است؛ چون Podman با CLI و فرمت OCI سازگار است و دستورات رایج مثل podman build/run عملاً جایگزین مستقیم میشوند. برای Compose، ابزار Podman Compose و برای رابط گرافیکی، Podman Desktop وجود دارد؛ روی macOS و Windows هم podman machine تجربهای سبک و قابلاتکا میدهد. ادغام بومی با systemd، مدیریت لاگها و قابلیتهایی مثل pods و podman generate kube، راه را برای استفاده در CI/CD و حتی انتقال به Kubernetes هموار میکند. در پروژههای Go، ساخت چندمرحلهای، ایمیجهای کمحجم، و mountهای rootless بدون مشکل دسترسی، چرخه توسعه و تست را سریع و قابلاعتماد میکند. هرچند تفاوتهایی مثل مسیر socket و جزئیات volumes نسبت به Docker وجود دارد، اما راهکارهای روشن و مستندی برایشان هست. نتیجه: اگر Docker جوابگو است، خوب؛ اما Podman در اکثر سناریوهای روزمره توسعه و CI تجربهای امنتر، سادهتر و سازگار ارائه میدهد.
#Podman #Docker #Containers #DevOps #Go #GolangWeekly #Kubernetes #Security
🟣لینک مقاله:
https://golangweekly.com/link/174075/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Why I Ditched Docker for Podman (And You Should Too)
🟢 خلاصه مقاله:
مهاجرت از Docker به Podman برای من بیشتر یک انتخاب عملی بود تا بحث سلیقه؛ بهویژه در جریانهای کاری مرتبط با Go که در Golang Weekly هم زیاد دیده میشود. دلیل اصلی، معماری سادهتر و امنتر Podman است: بدون daemon و با اجرای rootless بهصورت پیشفرض، پس سطح حمله و دردسرهای دسترسی کاهش مییابد و سرویس پرامتیازِ دائمی لازم نیست. مهاجرت هم کماصطکاک است؛ چون Podman با CLI و فرمت OCI سازگار است و دستورات رایج مثل podman build/run عملاً جایگزین مستقیم میشوند. برای Compose، ابزار Podman Compose و برای رابط گرافیکی، Podman Desktop وجود دارد؛ روی macOS و Windows هم podman machine تجربهای سبک و قابلاتکا میدهد. ادغام بومی با systemd، مدیریت لاگها و قابلیتهایی مثل pods و podman generate kube، راه را برای استفاده در CI/CD و حتی انتقال به Kubernetes هموار میکند. در پروژههای Go، ساخت چندمرحلهای، ایمیجهای کمحجم، و mountهای rootless بدون مشکل دسترسی، چرخه توسعه و تست را سریع و قابلاعتماد میکند. هرچند تفاوتهایی مثل مسیر socket و جزئیات volumes نسبت به Docker وجود دارد، اما راهکارهای روشن و مستندی برایشان هست. نتیجه: اگر Docker جوابگو است، خوب؛ اما Podman در اکثر سناریوهای روزمره توسعه و CI تجربهای امنتر، سادهتر و سازگار ارائه میدهد.
#Podman #Docker #Containers #DevOps #Go #GolangWeekly #Kubernetes #Security
🟣لینک مقاله:
https://golangweekly.com/link/174075/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
CodeSmash
Switching from Docker to Podman
Podman offers better security, uses fewer resources, and integrates seamlessly with Linux and Kubernetes, making it a superior Docker alternative
Forwarded from محتوای آزاد سهراب (Sohrab)
یک لایه داشتیم برای apt روی پارچ که مستقیم میومد و ترجمه میکرد دستورات apt رو.
متاسفانه اون صرفاً یک عادت بد رو توی کاربران نگه میداشت و کسی دیگه پکمن رو یاد نمیگرفت.
یک لایه جدید نوشتم که دستور معادل رو به کاربر میگه، یک لینک از ویکی نشون میده و در نهایت هم میگه میخوای من برات اجراش کنم؟
@SohrabContents
متاسفانه اون صرفاً یک عادت بد رو توی کاربران نگه میداشت و کسی دیگه پکمن رو یاد نمیگرفت.
یک لایه جدید نوشتم که دستور معادل رو به کاربر میگه، یک لینک از ویکی نشون میده و در نهایت هم میگه میخوای من برات اجراش کنم؟
@SohrabContents
Forwarded from Python Hints
چیزایی که شخصا خیلی باهاشون مشکل دارم :
۳- وقتی این
هست؟ استفاده از اسم متغییر درست به توسعه دهنده بعدی به درستی میفهمونه که باید ایمیل استفاده کنه و نه چیز دیگری
اینجا باید ترجیح بدید که
۴- احساس امنیت کاذب؛ توی مورد ۱ به این موضوع اشاره کردم!
حالا بخش بدتر این قضیه کجاس ؟ دولوپرهای حواسپرت به mypy تکیه میکنند که دولپر دیگری از کدشون سواستفاده نکنه بجای اینکه دقیقا پارامتر ورودی رو بررسی کنند و اگر ایمیل ولید نیست ارور برگردونند.
۵- توی پایتون
کلاس بدون رفتار ؟
اینم موردی دیگه و یک
در نهایت :
چیز بدی نیست؛ جو گیری بده. وقتی سورس کد بزرگ هست و شما این موضوع رو بیش از حد پیش بردید اتفاقات قشنگی نخواهد افتاد.
دقت کنید این موارد حتی توی زبانهای کامپایلری و
خلاصه که هرچیزی رو در جای درست خودش استفاده کنید؛ این مورد یک فیچر هست توی پایتون که قطعا استفاده خواهد شد ولی بهتره درجای درست و برای مفهوم درست استفاده بشه!
کل صحبت نویسنده کتاب هم همین بوده که سعی کردم با مثال توضیح بدم.
۳- وقتی این
NewType هیچ runtime چکی نمیده؛ چه فرقی بین email: Email
email: str
هست؟ استفاده از اسم متغییر درست به توسعه دهنده بعدی به درستی میفهمونه که باید ایمیل استفاده کنه و نه چیز دیگری
اینجا باید ترجیح بدید که
Email رو تبدیل به یک کلاس کنید که validation های مختلف خودش رو هم حتما داشته باشه! ۴- احساس امنیت کاذب؛ توی مورد ۱ به این موضوع اشاره کردم!
حالا بخش بدتر این قضیه کجاس ؟ دولوپرهای حواسپرت به mypy تکیه میکنند که دولپر دیگری از کدشون سواستفاده نکنه بجای اینکه دقیقا پارامتر ورودی رو بررسی کنند و اگر ایمیل ولید نیست ارور برگردونند.
۵- توی پایتون
NewType چون قوانین نامگذاری شبیه به Class داره و البته که Syntax Highlight هم مثل کلاس میبینه باعث سردرگمی میشه!کلاس بدون رفتار ؟
اینم موردی دیگه و یک
anti-pattern دیگه در نهایت :
NewType چیز بدی نیست؛ جو گیری بده. وقتی سورس کد بزرگ هست و شما این موضوع رو بیش از حد پیش بردید اتفاقات قشنگی نخواهد افتاد.
دقت کنید این موارد حتی توی زبانهای کامپایلری و
lowlevel هم قفل هست.خلاصه که هرچیزی رو در جای درست خودش استفاده کنید؛ این مورد یک فیچر هست توی پایتون که قطعا استفاده خواهد شد ولی بهتره درجای درست و برای مفهوم درست استفاده بشه!
کل صحبت نویسنده کتاب هم همین بوده که سعی کردم با مثال توضیح بدم.
Forwarded from DevTwitter | توییت برنامه نویسی
برای یادگیری C++ دارم (گشاد گشاد) یه mini grep می نویسم. اینو میذارم اینجا که تنبلی کردم دچار شرم بشم بشینم کاملش کنم
فقط نمیدونم طبق داکیومنت grep ببرمش جلو یا از صفر مال خودمو بنویسم
https://github.com/hamedtahmasebi/mini-grep-cpp
@DevTwitter | <Hamedooo/>
فقط نمیدونم طبق داکیومنت grep ببرمش جلو یا از صفر مال خودمو بنویسم
https://github.com/hamedtahmasebi/mini-grep-cpp
@DevTwitter | <Hamedooo/>
Forwarded from Linuxor ?
Forwarded from Python Hints
پرسیدید چرا نویسنده میگه این مورد
من یک نمونه کد زدم که نشون بدم چرا بد هست این رفتار؛ توی این حالت من بیش از حد سخت گرفتم و همه چیز
اولین و مهمترین نکته :
توجه کنید نویسنده همین رفتار یعنی تعریف مداوم تایپ جدید برای نوع دادههای اصلی رو بد میدونه!
اینکه بجای str, bool, int تایپ جدید تعریف کنید که پارامتر ورودی شما بهتر بنظر برسه!
حالا بررسی کنیم خود ایرادات وارده رو:
۱- تعریف نوع دادهای جدید هیچ عملکرد بهتری برای
خیلی از افرادی که اینکار رو میکنند برای فرار از تست کردن کدها؛ فرار از نوشتن ولیدیشن؛ فرار از چک کردن پارامترهای ورودی و ... اینکار رو میکنند! این چیزی هست که شخصا بسیار توی این مدل کد زدن دیدم (قطعا هستند افرادی که اینطوری عمل نمیکنند ولی خب من ندیدم)
۲- خط ۹۱ کد رو ببینید؛ هرجایی از کدم که بخوام یک
ادامه پست بعدی:
appalling هست؟ با اینکه بنظر رفتار خیلی خوبی میاد.من یک نمونه کد زدم که نشون بدم چرا بد هست این رفتار؛ توی این حالت من بیش از حد سخت گرفتم و همه چیز
NewType هست (یا یک رفتاری رو نباید دنبال کنید یا کل کد باید یک استاندارد رو رعایت کنه)اولین و مهمترین نکته :
توجه کنید نویسنده همین رفتار یعنی تعریف مداوم تایپ جدید برای نوع دادههای اصلی رو بد میدونه!
اینکه بجای str, bool, int تایپ جدید تعریف کنید که پارامتر ورودی شما بهتر بنظر برسه!
حالا بررسی کنیم خود ایرادات وارده رو:
۱- تعریف نوع دادهای جدید هیچ عملکرد بهتری برای
runtime بهم نمیده!خیلی از افرادی که اینکار رو میکنند برای فرار از تست کردن کدها؛ فرار از نوشتن ولیدیشن؛ فرار از چک کردن پارامترهای ورودی و ... اینکار رو میکنند! این چیزی هست که شخصا بسیار توی این مدل کد زدن دیدم (قطعا هستند افرادی که اینطوری عمل نمیکنند ولی خب من ندیدم)
۲- خط ۹۱ کد رو ببینید؛ هرجایی از کدم که بخوام یک
str یا ... رو برای این توابع استفاده کنم حتما باید توی NewType ایی که تعریف کردم بذارمش!ادامه پست بعدی:
Forwarded from Agora (Alireza)
بین سالهای ۹۱ تا ۹۳ مشتری مجلهی دنیای بازی بودم. تنها مجلهی بازی که اون موقع سراغ داشتم. در کنار سایتهایی مثل پردیسگیم و گیمفا سورس اصلی من و رفیقام (علی و محمد که اولی الان پزشکه و دومی هم آلمانه و توی فولکس واگن مشغوله) بود برای خوندن راجعبه بازیها. مجله رو من میگرفتم و بین زنگها یا سر کلاسا کنار هم که مینشستیم میخونیم.
الان رفتم گوگل کردم ببینم چی به سر مجله اومد و دیدم که آخرین شمارهای که ازش منتشر شد همون شمارهای بود که ازشون خریده بودم. کار جالبی که کردن اینه که آرشیو مجله رو رایگان توی وبسایتشون گذاشتن. خیلی کیفیتشون خوبه. البته بهشکل عجیبی فقط تا ۹ شمارهی آخرش در دسترسه توی سایت. به هر حال همون ۹ تا هم دیدنش خالی از لطف نیست. سایتشون ولی هنوز فعاله و مطالب جدید میذارن.
اینجا میتونید یه سری به آرشیوشون بزنید.
الان رفتم گوگل کردم ببینم چی به سر مجله اومد و دیدم که آخرین شمارهای که ازش منتشر شد همون شمارهای بود که ازشون خریده بودم. کار جالبی که کردن اینه که آرشیو مجله رو رایگان توی وبسایتشون گذاشتن. خیلی کیفیتشون خوبه. البته بهشکل عجیبی فقط تا ۹ شمارهی آخرش در دسترسه توی سایت. به هر حال همون ۹ تا هم دیدنش خالی از لطف نیست. سایتشون ولی هنوز فعاله و مطالب جدید میذارن.
اینجا میتونید یه سری به آرشیوشون بزنید.
دنیای بازی
مجله دنیای بازی
در صفحه آرشیو مجله دنیای بازی میتوانید مجله دنیای بازی را به رایگان و به صورت آنلاین از طریق سایت دنیای بازی مطالعه کنید.
Forwarded from Gopher Academy
🔵 عنوان مقاله
How Fast is Go? Simulating Millions of Particles on a Smart TV
🟢 خلاصه مقاله:
این مقاله با اجرای یک شبیهسازی بزرگ روی یک Smart TV نشان میدهد Go در عمل چقدر سریع است. نتیجه اصلی: شبیهسازی ۲.۵ میلیون ذره با نرخ ۶۰ فریمبرثانیه و همزمان ارسال داده با ۳۰ فریمبرثانیه به بیش از ۳۰۰ کلاینت (و احتمالاً تا حدود هزار) ممکن شده است. ترکیب کار محاسباتی سنگین و ارسال شبکه همزمان، توان Go در مدیریت بارهای بلادرنگ و استفاده مؤثر از همزمانی را نشان میدهد. با بهینهسازی تخصیص حافظه و استفاده از الگوهای همزمانی Go، تأثیر GC کم و تأخیر قابلپیشبینی باقی مانده و سیستم روی دستگاهی محدود مثل Smart TV نیز پایدار عمل میکند.
#Go #Golang #Performance #Concurrency #RealTime #SmartTV #Simulation #Scalability
🟣لینک مقاله:
https://golangweekly.com/link/174646/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
How Fast is Go? Simulating Millions of Particles on a Smart TV
🟢 خلاصه مقاله:
این مقاله با اجرای یک شبیهسازی بزرگ روی یک Smart TV نشان میدهد Go در عمل چقدر سریع است. نتیجه اصلی: شبیهسازی ۲.۵ میلیون ذره با نرخ ۶۰ فریمبرثانیه و همزمان ارسال داده با ۳۰ فریمبرثانیه به بیش از ۳۰۰ کلاینت (و احتمالاً تا حدود هزار) ممکن شده است. ترکیب کار محاسباتی سنگین و ارسال شبکه همزمان، توان Go در مدیریت بارهای بلادرنگ و استفاده مؤثر از همزمانی را نشان میدهد. با بهینهسازی تخصیص حافظه و استفاده از الگوهای همزمانی Go، تأثیر GC کم و تأخیر قابلپیشبینی باقی مانده و سیستم روی دستگاهی محدود مثل Smart TV نیز پایدار عمل میکند.
#Go #Golang #Performance #Concurrency #RealTime #SmartTV #Simulation #Scalability
🟣لینک مقاله:
https://golangweekly.com/link/174646/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
David Gerrells
how fast is go? simulating millions of particles on a smart tv
The challenge, simulate millions of particles in golang, multi-player enabled, cpu only, smart tv compatible.
Forwarded from DevTwitter | توییت برنامه نویسی
برنامه نویس خوش ذوق که برای هر ریلیز از کاور یه انیمه استفاده کرده
https://github.com/panjf2000/ants/releases
@DevTwitter | <Mdhesari/>
https://github.com/panjf2000/ants/releases
@DevTwitter | <Mdhesari/>
Forwarded from محتوای آزاد سهراب (Sohrab)
اینکه در توسعه #نرمافزارآزاد افراد توسعه دهنده رو با پشتیبانی ۲۴/۷ اشتباه میگیرن، از این سرچشمه میگیره که جا نیفتاده که توسعه دهنده ای که داره وقتش رو پای این نرمافزار میذاره هیچ پولی دریافت نمیکنه، هیچ وظیفهای در قبال پشتیبانی از اون نرمافزار هم نداره.
دراصل پشتیبانی یک نرمافزارآزاد از هرگونهای باید به دست #جامعه اون ابزار صورت بگیره.
-----------------------
https://github.com/sundarnagarajan/licenses/blob/057b7ff5ddf6d2624f5920d79d4d96415a037e38/GPL-3.txt#L565
هرچند که جا داره در این مورد من یک مطلب توی بلاگ خودم بنویسم و در اون بیشتر توضیح بدم.
@SohrabContents
دراصل پشتیبانی یک نرمافزارآزاد از هرگونهای باید به دست #جامعه اون ابزار صورت بگیره.
-----------------------
https://github.com/sundarnagarajan/licenses/blob/057b7ff5ddf6d2624f5920d79d4d96415a037e38/GPL-3.txt#L565
۱۵. سلب مسئولیت از ضمانت
هیچگونه ضمانتی برای این برنامه وجود ندارد، تا جایی که قوانین قابل اجرا اجازه میدهند. مگر در مواردی که بهطور کتبی خلاف آن ذکر شده باشد، دارندگان کپیرایت و/یا سایر طرفها، برنامه را «همانطور که هست» بدون هیچگونه ضمانتی ارائه میکنند؛ چه ضمانت صریح و چه ضمنی، از جمله (و نه محدود به) ضمانت ضمنی قابلیت فروش یا انطباق برای یک هدف خاص. تمام ریسک مربوط به کیفیت و عملکرد برنامه بر عهده شماست. اگر برنامه معیوب باشد، شما مسئول تمام هزینههای لازم برای سرویسدهی، تعمیر یا اصلاح آن خواهید بود.
هرچند که جا داره در این مورد من یک مطلب توی بلاگ خودم بنویسم و در اون بیشتر توضیح بدم.
@SohrabContents