Forwarded from کانال مهرداد لینوکس
✅لینوکس Linux 6.15 از The Airoha NPU که یک A RISC-V Network Processor Unit پشتیبانی میکنه
💠واحد پردازش شبکه (NPU) شرکت Airoha، با نام Xessor، یک پردازنده ۸ هستهای مبتنی بر معماری RISC-V است برای پردازش وظایف شبکه و تسریع Wi-Fi طراحی شده
🔥 این NPU به طور قابل توجهی بار کاری CPU را کاهش داده و مصرف انرژی سیستم را بهبود میبخشد. در نتیجه، مصرف انرژی کلی NPU هشت هستهای کمتر از یک CPU تک هستهای معمولی است
🔥 معماری Xessor به گونهای طراحی شده که تقریباً تمام وظایف پردازش شبکه را مدیریت میکند، بنابراین منابع CPU برای اجرای خدمات و برنامههای ارزش افزوده ارائهدهندگان خدمات آزاد میماند. همچنین، در صورت بارگذاری کامل CPU، NPU میتواند منابع جایگزین را برای حفظ سرعت و عملکرد روان سیستم فراهم کند
این معماری در سیستم روی تراشه (SoC) AN7581 شرکت Airoha به کار رفته است که از ترکیب CPU، NPU و یک شتابدهنده بسته هوشمند (SPA) بهره میبرد. این ترکیب، AN7581 را به اولین SoC در جهان تبدیل کرده که میتواند WAN، WLAN و LAN را با یک تراشه پشتیبانی کند و به سرعتهای بالای Wi-Fi 7 دست یابد.
#hardware #linux
💠واحد پردازش شبکه (NPU) شرکت Airoha، با نام Xessor، یک پردازنده ۸ هستهای مبتنی بر معماری RISC-V است برای پردازش وظایف شبکه و تسریع Wi-Fi طراحی شده
🔥 این NPU به طور قابل توجهی بار کاری CPU را کاهش داده و مصرف انرژی سیستم را بهبود میبخشد. در نتیجه، مصرف انرژی کلی NPU هشت هستهای کمتر از یک CPU تک هستهای معمولی است
🔥 معماری Xessor به گونهای طراحی شده که تقریباً تمام وظایف پردازش شبکه را مدیریت میکند، بنابراین منابع CPU برای اجرای خدمات و برنامههای ارزش افزوده ارائهدهندگان خدمات آزاد میماند. همچنین، در صورت بارگذاری کامل CPU، NPU میتواند منابع جایگزین را برای حفظ سرعت و عملکرد روان سیستم فراهم کند
این معماری در سیستم روی تراشه (SoC) AN7581 شرکت Airoha به کار رفته است که از ترکیب CPU، NPU و یک شتابدهنده بسته هوشمند (SPA) بهره میبرد. این ترکیب، AN7581 را به اولین SoC در جهان تبدیل کرده که میتواند WAN، WLAN و LAN را با یک تراشه پشتیبانی کند و به سرعتهای بالای Wi-Fi 7 دست یابد.
#hardware #linux
Forwarded from دستاوردهای یادگیری عمیق(InTec)
این دستگاه که میبینید اسمش
برای سال جدید، با شرکتی در ایران صحیت میکردیم روی یک سری کارهای هوش مصنوعی؛ که خب تصمیم گرفته بودند دوتا دستگاه با حداقل 96GB گرافیک تهیه کنند و نگرانی سرمایه گذاری و نشدن و ... داشتند.
یک همچین کانفیگی اگر بخواد بروز هم باشه برای هر سیستم حدوداً
تنها چیزی که کم داره البته فقط Memory Bandwith هست که ای کاش بالای 400GB بود ولی همین هم عالی هست (برای 90٪ البته فرقی هم نمیکنه)
با قیمت ۲تای این دستگاه؛ میشد یکی ازون سیستمها تهیه کرد فقط.
کاملاً هم قابل حمل هست.
https://www.nvidia.com/en-us/products/workstations/dgx-spark/
DGX Spark هست؛ جواب شرکت Nvidia به Framework, Apple Studio پیش فروش شروع شده با قیمتی حدوداً 3500 یورو.برای سال جدید، با شرکتی در ایران صحیت میکردیم روی یک سری کارهای هوش مصنوعی؛ که خب تصمیم گرفته بودند دوتا دستگاه با حداقل 96GB گرافیک تهیه کنند و نگرانی سرمایه گذاری و نشدن و ... داشتند.
یک همچین کانفیگی اگر بخواد بروز هم باشه برای هر سیستم حدوداً
8000$ درمیاد؛ که شخصاً با کمی جستجو پیشنهاد این دستگاه رو دادم.تنها چیزی که کم داره البته فقط Memory Bandwith هست که ای کاش بالای 400GB بود ولی همین هم عالی هست (برای 90٪ البته فرقی هم نمیکنه)
با قیمت ۲تای این دستگاه؛ میشد یکی ازون سیستمها تهیه کرد فقط.
کاملاً هم قابل حمل هست.
https://www.nvidia.com/en-us/products/workstations/dgx-spark/
Forwarded from Gopher Academy
🔵 عنوان مقاله
TypeScript's Compiler to Get 10x Faster, Thanks to Go
🟢 خلاصه مقاله:
در سالهای اخیر، TypeScript با استفاده از تایپ قوی (نوعبندی قوی که به کمک آن نوع متغیرها قبل از اجرای کد مشخص میشود) و ساختار افزوده، اکوسیستم JavaScript را به شدت تکان داده است. هرچند که کامپایلر (برنامهای که کد منبع را به کد ماشین تبدیل میکند) TypeScript به طور خاص سریع نیست، اما تیم TypeScript در مایکروسافت با انتقال آن به Go این مشکل را حل میکند!
🟣لینک مقاله:
https://golangweekly.com/link/166805/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
TypeScript's Compiler to Get 10x Faster, Thanks to Go
🟢 خلاصه مقاله:
در سالهای اخیر، TypeScript با استفاده از تایپ قوی (نوعبندی قوی که به کمک آن نوع متغیرها قبل از اجرای کد مشخص میشود) و ساختار افزوده، اکوسیستم JavaScript را به شدت تکان داده است. هرچند که کامپایلر (برنامهای که کد منبع را به کد ماشین تبدیل میکند) TypeScript به طور خاص سریع نیست، اما تیم TypeScript در مایکروسافت با انتقال آن به Go این مشکل را حل میکند!
🟣لینک مقاله:
https://golangweekly.com/link/166805/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Microsoft News
A 10x Faster TypeScript
Embarking on a native port of the existing TypeScript compiler and toolset to achieve a 10x performance speed-up.
Forwarded from Geek Alerts
فقط ۴ روز برای آپدیت فایرفاکس فرصت داری وگرنه همهچی خراب میشه! 🔴
اگه از فایرفاکس استفاده میکنی، بدو که فقط ۴ روز وقت داری آپدیتش کنی! یه گواهینامه ریشه (root certificate) مهم که برای تایید محتوا و افزونهها استفاده میشده، تاریخ انقضاش تموم شده و اگه به نسخه ۱۲۸ یا بالاتر آپدیت نکنی، فاتحه همه چی خوندهست. فرقی هم نمیکنه لینوکس، مک، ویندوز، اندروید یا iOS باشی، همهتون باید آپدیت کنید!
اگه آپدیت نکنی، همه قابلیتهایی که به آپدیت از راه دور وابسته هستن از کار میافتن، افزونههات غیرفعال میشن و محتوای DRM دار هم دیگه پخش نمیشه. حتی ممکنه سیستمهایی که به تایید محتوا نیاز دارن هم درست کار نکنن. پس دست بجنبون و برو توی تنظیمات فایرفاکس ببین چه نسخهای داری و اگه پایینتر از ۱۲۸ بود، سریع آپدیتش کن که بعداً پشیمون نشی.
در تاریخ ۲۸ اسفند ۱۴۰۳ • ساعت ۱۹:۵۲ • ۱۸ مارس ۲۰۲۵
zdnet
@alertsai
اگه از فایرفاکس استفاده میکنی، بدو که فقط ۴ روز وقت داری آپدیتش کنی! یه گواهینامه ریشه (root certificate) مهم که برای تایید محتوا و افزونهها استفاده میشده، تاریخ انقضاش تموم شده و اگه به نسخه ۱۲۸ یا بالاتر آپدیت نکنی، فاتحه همه چی خوندهست. فرقی هم نمیکنه لینوکس، مک، ویندوز، اندروید یا iOS باشی، همهتون باید آپدیت کنید!
اگه آپدیت نکنی، همه قابلیتهایی که به آپدیت از راه دور وابسته هستن از کار میافتن، افزونههات غیرفعال میشن و محتوای DRM دار هم دیگه پخش نمیشه. حتی ممکنه سیستمهایی که به تایید محتوا نیاز دارن هم درست کار نکنن. پس دست بجنبون و برو توی تنظیمات فایرفاکس ببین چه نسخهای داری و اگه پایینتر از ۱۲۸ بود، سریع آپدیتش کن که بعداً پشیمون نشی.
در تاریخ ۲۸ اسفند ۱۴۰۳ • ساعت ۱۹:۵۲ • ۱۸ مارس ۲۰۲۵
zdnet
@alertsai
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
یک مدل جدید multimodal اومده به اسم SmolDocling که خیلی عالیه! خیلی کوچکه (ultra-compact vision-language model) و فقط با ۲۵۶ میلیون پارامتر دقتش در تبدیل داکیومنت به متن و استخراج اطلاعات واقعا بالاست. از OCR تا تشخیص کد و فرمولها و ... به کار میاد. راحت روی کامپیوتر نصب میشه و سرعتش هم خیلی بالاست. برای انواع کارها از جمله در workflow های agentic خیلی به درد میخوره.
HF: https://huggingface.co/ds4sd/SmolDocling-256M-preview
Paper: https://arxiv.org/pdf/2503.11576
@DevTwitter | <Mehdi Allahyari/>
HF: https://huggingface.co/ds4sd/SmolDocling-256M-preview
Paper: https://arxiv.org/pdf/2503.11576
@DevTwitter | <Mehdi Allahyari/>
Forwarded from Laravel News
Using Laravel's fluent Method for HTTP Response Transformations https://laravel-news.com/fluent-http-response-transformations
Laravel News
Using Laravel's fluent Method for HTTP Response Transformations - Laravel News
Streamline external API interactions in your Laravel applications with the HTTP Client's fluent() method. This approach brings type-safe data access to your integrations while reducing data parsing complexity.
Forwarded from Geek Alerts
اگه نسخه مرورگر فایرفاکس شما زیر ۱۲۹ باشه فقط ۴ روز زمان دارید تا آپدیتش کنید، تو نسخههای قدیمی یه گواهینامه روت بوده برای تایید محتوا و افزونهها که این تاریخ انقضاش تموم شده، فرقی نداره نسخه فایرفاکس شما چی باشه، زمانش که تموم بشه بخشی از اکستنشنها یا سایتها دیگه کار نمیکنن.
البته مرورگر یکی از برنامههایی هست که همیشه باید اپدیت نگهش دارید چون مستقیم با امنیت دستگاهتون مرتبط هست.
🔗 zdnet
🤓 @geekalerts
البته مرورگر یکی از برنامههایی هست که همیشه باید اپدیت نگهش دارید چون مستقیم با امنیت دستگاهتون مرتبط هست.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Md Daily (Mahan)
چیزی که ما میخواستیم تو یکی از فایل های .js به دو صورت زیر مخفی شده بود.
"client_id=f1TFyuaI8LX1Ybd1zvQRX8GpsNYcQ3Y5"
client_id:"f1TFyuaI8LX1Ybd1zvQRX8GpsNYcQ3Y5"
حالا وقتش بود که این فرایند رو اتوماتیک کنم. عید وقت خوبیه که اگه هنوز regex بلد نیستید، یاد بگیرید (وبسایت https://regexlearn.com/ و ریپو ی https://github.com/ziishaned/learn-regex که ترجمه فارسی هم داره و در نهایت ویدیوی https://www.youtube.com/watch?v=sXQxhojSdZM منابع خوبی برای یادگیری هستن).
سناریو ساده بود یه کد go بنویسم که بره محتوای soundcloud.com رو بگیره لینک های .js رو ازش استخراج کرده و شروع کنه توی فایل های جاوا اسکریپت با regex دنبال پترن client_id بگرده. می تونید کد رو از اینجا ببینید:
https://gist.github.com/mdpe-ir/709c3ca362fa0c2a30fa71e46ddd1f96
ولی بریم برای توضیح بخش های مهمش:
func fetchHTML(url string) (string, error) {
resp, err := http.Get(url)
if err != nil {
return "", fmt.Errorf("error fetching URL %s: %v", url, err)
}
defer resp.Body.Close()
body, err := ioutil.ReadAll(resp.Body)
return string(body), nil
}این تابع یه درخواست HTTP GET به آدرس https://soundcloud.com/ میفرسته و کل محتوای HTML صفحه رو برمیگردونه.
نکته: اینجا defer resp.Body.Close() باعث میشه بعد از تموم شدن کار، اتصال بسته بشه تا منابع سیستم آزاد بشه.
این تابع HTML رو پارس میکنه و همه تگهای <script> رو پیدا میکنه. دو نوع جاوااسکریپت رو جدا میکنه: لینکهای خارجی (با src) و کدهای داخلی (inline).
از پکیج golang.org/x/net/html برای پارس کردن HTML استفاده میکنه. لینکهای نسبی رو با resolveURL به آدرس کامل تبدیل میکنه و فقط فایلهایی که به .js ختم میشن رو نگه میداره.
برای هر لینک .js که پیدا شده، یه درخواست HTTP میفرسته و محتوای فایل رو میگیره.
پکیج regexp استفاده میکنه. دو الگو رو چک میکنه
برای فرمت پارامتری:
client_id=([A-Za-z0-9]{32})برای فرمت object مانند:
client_id\s*:\s*["']([A-Za-z0-9]{32})["']نکته: [A-Za-z0-9]{32} یعنی دنبال یه رشته ۳۲ کاراکتری از حروف و اعداد میگرده.
جمعبندی و نمایش نتیجه (main)
همه مراحل رو اجرا میکنه، client_idها رو جمع میکنه، تکراریها رو حذف میکنه و چاپ میکنه.
توی تست هام متوجه شدم که هر client id حدودا ۷ روز معتبره. میشه یه cron job نوشت که طی یه مدت مشخص اجرا بشه و client id رو اپدیت کنه.
بعد از اینکه client_id رو پیدا کردیم، حالا میتونیم با استفاده ازش به APIهای SoundCloud درخواست بزنیم. برای این کار، من تصمیم گرفتم یه درخواست به endpoint سرچ بزنم تا یه خواننده پیدا کنم و بعد برم لیست موزیکهاش رو بگیرم. بیایم اینو قدم به قدم پیاده کنیم.
یه API داره که میتونیم با استفاده ازش یه خواننده رو جستجو کنیم. طبق درخواستها تو Burp Suite یه endpoint سرچ چیزی شبیه اینه:
برای جستو در کاربران:
GET https://api-v2.soundcloud.com/search/users?q={query}&client_id={client_id}برای جستجوی کلی :
GET https://api-v2.soundcloud.com/search?q={query}&client_id={client_id}حالا فقط کافی بود برای گرفتن لیست موزیک های خواننده :
GET https://api-v2.soundcloud.com/users/{user_id}/tracks?client_id={client_id}به عنوان مثال این اندپوینت لیست موزیک های Safir رو بر میگردونه:
https://api-v2.soundcloud.com/users/1016216608/tracks?client_id=f1TFyuaI8LX1Ybd1zvQRX8GpsNYcQ3Y5
حالا که این کار رو کردیم، میتونیم کلاینت رو گسترش بدیم، مثلاً یه رابط کاربری ساده باهاش بسازیم یا قابلیت دانلود ترکها رو اضافه کنیم:)
---
مثل همیشه کنجکاو بمونید :)
🆔 @MdDaily
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Laravel News
React Theme Provider: A Walkthrough https://laravel-news.com/react-theme-provider-a-walkthrough
Laravel News
React Theme Provider: A Walkthrough - Laravel News
In this tutorial, let's look at customizing the react starter kit
Forwarded from دستاوردهای یادگیری عمیق(InTec)
دیروز عصر یک لحظه
اما امروز متوجه شدم این قابلیت هم رایگان هست؛ برای
توی نسخه فعلی
gemini از کار افتاد و بعد از reload یک گزینه کنار DeepResarch اضافه شد به اسم Canvas که خب غیر فعال بود تا وقتی داشتم کار میکردم. (این مورد روی Gemini2-flash رایگان هست)اما امروز متوجه شدم این قابلیت هم رایگان هست؛ برای
frontend بنظرم خیلی گزینه خوبی هست.توی نسخه فعلی
Html, React رو پشتیبانی میکنه.Forwarded from Laravel News
JSON Unicode Cast Type Added in Laravel 12.3 https://laravel-news.com/laravel-12-3-0
Laravel News
JSON Unicode Cast Type Added in Laravel 12.3 - Laravel News
The Laravel team released v12.3.0, which includes a new JSON Unicode cast type, check linked storage status in the "artisan about" command, native JSON and JSONB support in SQLite schemas, and more.
Forwarded from DevTwitter | توییت برنامه نویسی
امروز یه سولوشن خیلی تر تمیز واسه icon پیدا کردم که حیفم اومد به اشتراک نذارم.
اگه سمت فرانت کار میکنید حتما با چالش مدیریت آیکن مواجه شدید و احتمالا با icomoon اشنا هستید.
هرچند که icomoon مساله رو تا حدودی حل کرده ولی استفاده ازش چالش های خاص خودشو داره مخصوصا توی پروژهای که تایپاسکریپت باشه.
راه کاری که میخوام معرفی کنم svgps هست. میتونید از توی لیستش آیکناتونو انتخاب کنید. اسمهاش رو تغییر بدید و پکیج خودتون رو دانلود کنید.
در نهایت یه فایل selection.json و یه فایل icon.d.ts خروجی بگیرید و توی پروژتون ذخیره کنید. واسه استفاده کردن هم کافیه وکیج مناسب پروژتون رو نصب و کانفیگ کنید.
لینک سایت: https://svgps.app/
لینک ریپو: https://github.com/aykutkardas/svgps.app
@DevTwitter | <Ali Ghorbani/>
اگه سمت فرانت کار میکنید حتما با چالش مدیریت آیکن مواجه شدید و احتمالا با icomoon اشنا هستید.
هرچند که icomoon مساله رو تا حدودی حل کرده ولی استفاده ازش چالش های خاص خودشو داره مخصوصا توی پروژهای که تایپاسکریپت باشه.
راه کاری که میخوام معرفی کنم svgps هست. میتونید از توی لیستش آیکناتونو انتخاب کنید. اسمهاش رو تغییر بدید و پکیج خودتون رو دانلود کنید.
در نهایت یه فایل selection.json و یه فایل icon.d.ts خروجی بگیرید و توی پروژتون ذخیره کنید. واسه استفاده کردن هم کافیه وکیج مناسب پروژتون رو نصب و کانفیگ کنید.
لینک سایت: https://svgps.app/
لینک ریپو: https://github.com/aykutkardas/svgps.app
@DevTwitter | <Ali Ghorbani/>
Forwarded from Linuxor ?
لیستی از فحش های لینوس توروالدز به برنامه نویس های بد
https://github.com/corollari/linusrants
@Linuxor
https://github.com/corollari/linusrants
@Linuxor
Forwarded from کانال مهرداد لینوکس
🔥 دستور !! sudo
❌ دستور را اجرا میکنید ولی فراموش کردهاید که از sudo استفاده کنید و پیام "permission denied" دریافت میکنید.
✅ در خط بعدی دستور !! sudo را وارد کنید تا آخرین فرمان بهطور خودکار با دسترسیهای مدیریتی تکرار شود.
🗓 در توزیعهای لینوکسی که از Bash یا Zsh بهعنوان شل پیشفرض استفاده میکنند این قابلیت فعال است
🗓 این قابلیت به دلیل ویژگی "History Expansion" در Bash و Zsh است
🗓اگر کار نکرد شاید sudo نصب نیست، یا ممکنه شل fish باشه که به صورت پیشرض History Expansion فعال نیست
پلاگین sudo روی Oh My Zsh همین کار را میکنه
❌ دستور را اجرا میکنید ولی فراموش کردهاید که از sudo استفاده کنید و پیام "permission denied" دریافت میکنید.
✅ در خط بعدی دستور !! sudo را وارد کنید تا آخرین فرمان بهطور خودکار با دسترسیهای مدیریتی تکرار شود.
apt update
# خطای دسترسی احتمالی
sudo !!
🗓 در توزیعهای لینوکسی که از Bash یا Zsh بهعنوان شل پیشفرض استفاده میکنند این قابلیت فعال است
🗓 این قابلیت به دلیل ویژگی "History Expansion" در Bash و Zsh است
🗓اگر کار نکرد شاید sudo نصب نیست، یا ممکنه شل fish باشه که به صورت پیشرض History Expansion فعال نیست
پلاگین sudo روی Oh My Zsh همین کار را میکنه
Forwarded from DevTwitter | توییت برنامه نویسی
ساخت یک پکیج Core برای میکرو فرانت اند
چند وقته که دارم روی یک پکیج Shared Core کار میکنم تا مشکل اشتراکگذاری کامپوننتها، هوکها، آیکونها و ابزارهای مشترک بین پروژههای میکرو فرانتاندی که داخل ریپو های مختلف هستن رو حل کنم. بعد از بررسی گزینههای مختلف، بهترین راهکار رو استفاده از GitHub Packages دیدم که باعث سریعتر شدن فرآیند توسعه و مدیریت سادهتر وابستگیها میشه(البته استفاده از monorepo هم گزینه خوبیه ولی برای پروژه هایی که داخل یک ریپو قرار دارند البته مشکلات زیادی توی deployment براتون پیش میاد).
ویژگیهای این پکیج:
* Rollup برای باندلینگ و بهینهسازی
* Storybook برای مستندسازی و تست کامپوننتها
* SVGR برای مدیریت و استفاده از آیکونهای SVG
* CI/CD خودکار با GitHub Actions
* قابلیت multi language support با استفاده از i18n , i18n-next
* انتشار روی GitHub Packages برای استفاده راحت در پروژههای مختلف
هر تغییری که با master مرج بشه عملیات ci/cd شروع میشه و مراحل build و release پروژه رو انجام میده به وسیله ی Github Actions
چرا به جای مونو ریپو از GitHub Packages استفاده کردم؟
* استقلال کامل پروژهها: هر پروژه نسخه مخصوص خودش رو داره و به تغییرات سایر پروژهها وابسته نیست.
* فرآیند توسعه سریعتر: نیازی به هماهنگسازی کل مونو ریپو نیست، فقط پکیج آپدیت میشه.
* پیچیدگی کمتر در CI/CD: فقط پکیج تغییر کرده منتشر میشه، نه کل ریپو.
استفاده راحت در پروژههای مختلف: بهسادگی از GitHub Packages نصب میشه، بدون تنظیمات اضافه.
برای استفاده از این ریپو میتونید مراحل زیر رو انجام بدین
1- تنظیم env متغیرها در GitHub: داخل فایل publish.yml یکسری متغییر داریم که برای استفاده از github action ضروری هستن و برای ست کردنشون کافیه که متغییری به اسم GT_TOKEN (میتونید داخل فایل publish.yml تغییرش بدید) رو داخل github secrets تعریف کنید
میتونید از این لینک کمک بگیرید:
https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions
2- کامپوننت ها، ایکون ها، helpers ها و هر انچه ماژول shared دارین رو انتقال بدید به core
3- کافیه تغییراتتون رو push کنید تا عملیات ci/cd استارت بشه و عملیات build و release انجام بشه (گیت هاب اکشن زمانی فعالیت رو اغاز میکنه که تغییراتی رو برنچ master اعمال بشه، میتونید داخل فایل publish.yml تغییرش بدین)
4- تنظیم npmrc برای نصب پکیج: برای نصب پکیج توی پروژههای دیگر، باید یک فایل npmrc. در ریشه پروژه قرار بدین. این فایل باید شامل توکن GitHub برای دسترسی به GitHub Packages باشه (میتونید از این لینک کمک بگیرید: https://stackoverflow.com/questions/72412063/personal-access-tokens-for-install-github-npm-packages)
اینو مد نظر داشته باید که پکیج شما همواره به این صورت خواهد بود
مثلا برای این ریپو به این صورت هستش
و در اخر کافیه پکیج رو نصب کنید
با این روش، پکیجهای shared core به راحتی بین پروژهها به اشتراک گذاشته میشن و فرایندهای CI/CD بهصورت خودکار و بدون نیاز به دخالت دستی انجام میشه.
https://github.com/sadegh1379/es-core
@DevTwitter | <Sadegh Akbari/>
https://github.com/sadegh1379/es-core
چند وقته که دارم روی یک پکیج Shared Core کار میکنم تا مشکل اشتراکگذاری کامپوننتها، هوکها، آیکونها و ابزارهای مشترک بین پروژههای میکرو فرانتاندی که داخل ریپو های مختلف هستن رو حل کنم. بعد از بررسی گزینههای مختلف، بهترین راهکار رو استفاده از GitHub Packages دیدم که باعث سریعتر شدن فرآیند توسعه و مدیریت سادهتر وابستگیها میشه(البته استفاده از monorepo هم گزینه خوبیه ولی برای پروژه هایی که داخل یک ریپو قرار دارند البته مشکلات زیادی توی deployment براتون پیش میاد).
ویژگیهای این پکیج:
* Rollup برای باندلینگ و بهینهسازی
* Storybook برای مستندسازی و تست کامپوننتها
* SVGR برای مدیریت و استفاده از آیکونهای SVG
* CI/CD خودکار با GitHub Actions
* قابلیت multi language support با استفاده از i18n , i18n-next
* انتشار روی GitHub Packages برای استفاده راحت در پروژههای مختلف
هر تغییری که با master مرج بشه عملیات ci/cd شروع میشه و مراحل build و release پروژه رو انجام میده به وسیله ی Github Actions
چرا به جای مونو ریپو از GitHub Packages استفاده کردم؟
* استقلال کامل پروژهها: هر پروژه نسخه مخصوص خودش رو داره و به تغییرات سایر پروژهها وابسته نیست.
* فرآیند توسعه سریعتر: نیازی به هماهنگسازی کل مونو ریپو نیست، فقط پکیج آپدیت میشه.
* پیچیدگی کمتر در CI/CD: فقط پکیج تغییر کرده منتشر میشه، نه کل ریپو.
استفاده راحت در پروژههای مختلف: بهسادگی از GitHub Packages نصب میشه، بدون تنظیمات اضافه.
برای استفاده از این ریپو میتونید مراحل زیر رو انجام بدین
1- تنظیم env متغیرها در GitHub: داخل فایل publish.yml یکسری متغییر داریم که برای استفاده از github action ضروری هستن و برای ست کردنشون کافیه که متغییری به اسم GT_TOKEN (میتونید داخل فایل publish.yml تغییرش بدید) رو داخل github secrets تعریف کنید
میتونید از این لینک کمک بگیرید:
https://docs.github.com/en/actions/security-for-github-actions/security-guides/using-secrets-in-github-actions
2- کامپوننت ها، ایکون ها، helpers ها و هر انچه ماژول shared دارین رو انتقال بدید به core
3- کافیه تغییراتتون رو push کنید تا عملیات ci/cd استارت بشه و عملیات build و release انجام بشه (گیت هاب اکشن زمانی فعالیت رو اغاز میکنه که تغییراتی رو برنچ master اعمال بشه، میتونید داخل فایل publish.yml تغییرش بدین)
4- تنظیم npmrc برای نصب پکیج: برای نصب پکیج توی پروژههای دیگر، باید یک فایل npmrc. در ریشه پروژه قرار بدین. این فایل باید شامل توکن GitHub برای دسترسی به GitHub Packages باشه (میتونید از این لینک کمک بگیرید: https://stackoverflow.com/questions/72412063/personal-access-tokens-for-install-github-npm-packages)
اینو مد نظر داشته باید که پکیج شما همواره به این صورت خواهد بود
@PACKAGE_NAME/{GITHUB_USERNAME}مثلا برای این ریپو به این صورت هستش
sadegh1379/es-core@و در اخر کافیه پکیج رو نصب کنید
npm install @sadegh1379/es-coreبا این روش، پکیجهای shared core به راحتی بین پروژهها به اشتراک گذاشته میشن و فرایندهای CI/CD بهصورت خودکار و بدون نیاز به دخالت دستی انجام میشه.
https://github.com/sadegh1379/es-core
@DevTwitter | <Sadegh Akbari/>
https://github.com/sadegh1379/es-core
Forwarded from Linuxor ?
ترکیب دانش مالی و برنامه نویسی یکی از ترکیب های موثر برای پول در آوردنه، این ریپو یه مجموعه عظیمی از کتابخونه هایی که برای تحلیل مالی و ترید نیاز دارین رو جمع آوری کرده :
https://github.com/wilsonfreitas/awesome-quant
@Linuxor
https://github.com/wilsonfreitas/awesome-quant
@Linuxor
Forwarded from Geek Alerts
Pavel Durov
پست جدید پاول دوورو مدیر تلگرام در مورد رسیدن به ۱ میلیارد کاربر ماهانه
تلگرام اکنون به طرز قابلتوجهی بیش از ۱ میلیارد کاربر فعال ماهانه داره و تبدیل شده به دومین پیامرسان محبوب جهان(اگر ویچت چین رو درنظر نگیریم).
همچنین کاربران تلگرام به طور میانگین روزی ۲۱ بار این برنامه رو باز میکنن و ۴۱ دقیقه از روزشون رو درش سپری میکنن. در همین حال درآمد ما رشد کرده و به سود ۵۴۷میلیون دلاری در سال ۲۰۲۴ تبدیل شده.
در مقابل ما واتساپ قرار داره که نسخهای ارزان و بیکیفیت از تلگرامه. سالهاست که اونها درحال تقلید از ما هستند و همچنین میلیاردها دلار برای لابیگری و کمپینها خرج کردند تا تلگرام رو متوقف کنن، اما در نهایت تلگرام رشد کرد، سودآور شد و برخلاف رقیبمان، استقلال خودش رو حفظ کرد.
🤓 hadi @geekalerts
تلگرام اکنون به طرز قابلتوجهی بیش از ۱ میلیارد کاربر فعال ماهانه داره و تبدیل شده به دومین پیامرسان محبوب جهان(اگر ویچت چین رو درنظر نگیریم).
همچنین کاربران تلگرام به طور میانگین روزی ۲۱ بار این برنامه رو باز میکنن و ۴۱ دقیقه از روزشون رو درش سپری میکنن. در همین حال درآمد ما رشد کرده و به سود ۵۴۷میلیون دلاری در سال ۲۰۲۴ تبدیل شده.
در مقابل ما واتساپ قرار داره که نسخهای ارزان و بیکیفیت از تلگرامه. سالهاست که اونها درحال تقلید از ما هستند و همچنین میلیاردها دلار برای لابیگری و کمپینها خرج کردند تا تلگرام رو متوقف کنن، اما در نهایت تلگرام رشد کرد، سودآور شد و برخلاف رقیبمان، استقلال خودش رو حفظ کرد.
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from محتوای آزاد سهراب
Forwarded from Geek Alerts
بالاخره بعد از ۹ ماه، دو فضانوردی که توسط Starliner بویینگ به فضا رفته بودند و به دلایل فنی در ایستگاه فضایی گیرافتاده بودن به زمین برگشتند. این دو نفر که میخواستن فقط دو هفته در فضا بمونن تا این فضاپیما رو امتحان کنن، به دلیل نقصهای فنی زیادی که برای این فضاپیما پیش اومده بود مجبور شدن با کپسول دراگون SpaceX برگردن. نقص فنیای که برای این فضاپیما پیش اومده بود باعث شد که ناسا ریسک نکنه و استارلاینر رو بدون سرنشین به زمین برگردونه و احتمالا ناسا قراردادش رو با این شرکت فسخ کنه. و اینطور شد که دیشب اسپیساکس در ماموریت Crew-9 این دو نفر رو برگردونه. در تصویر چهارنفر رو میبینید چون که دو فضانورد آمریکایی و روسی رو هم همراه این ماموریت به دنبال اونها فرستاند.
🔗 wired
🤓 hadi @geekalerts
Please open Telegram to view this post
VIEW IN TELEGRAM