ساخت یک پکیج 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
👍29🔥3
این نوروز باستانی، تحول سال و نو شدن روزگار رو به شما قشنگا تبریک میگیم.
امیدوارم این سال جدید براتون پر از موفقیت، حال خوب و البته پول زیاد باشه.
@DevTwitter
امیدوارم این سال جدید براتون پر از موفقیت، حال خوب و البته پول زیاد باشه.
@DevTwitter
❤166🔥10👍8👎1
کمپانی Nvidia یک دیتاست خیلی بزرگ (بیشتر از ۱۵ میلیون رکورد) که برای فاین تیون کردن مدلهای LLM از جمله برای فارسی میتونید استفاده کنید. خصوصا برای کارهای
- math
- code
- general reasoning
- and instruction following
یک گنج!
HF:
https://huggingface.co/datasets/nvidia/Llama-Nemotron-Post-Training-Dataset-v1
@DevTwitter | <Mehdi Allahyari/>
- math
- code
- general reasoning
- and instruction following
یک گنج!
HF:
https://huggingface.co/datasets/nvidia/Llama-Nemotron-Post-Training-Dataset-v1
@DevTwitter | <Mehdi Allahyari/>
👍43🔥11❤4
This media is not supported in your browser
VIEW IN TELEGRAM
یک مدل زبان بزرگ سهبعدی (3D LLM) به اسم SpatialLM اومده که برای پردازش دادههای 3D point cloud طراحی شده و خروجیهای ساختار یافته از درک صحنههای 3D تولید میکند. این خروجیها شامل عناصری معماری مانند دیوارها، درها، پنجرهها همراه با دستهبندیهای معناییشان هستند. این مدل تواناییهای استدلال فضایی (spatial reasoning) را برای کاربردهایی در رباتیک، ناوبری خودران (autonomous navigation) و دیگر وظایف پیچیده تحلیل صحنههای سهبعدی بهبود میبخشد.
Link: manycore-research.github.io/SpatialLM/
@DevTwitter | <Mehdi Allahyari/>
Link: manycore-research.github.io/SpatialLM/
@DevTwitter | <Mehdi Allahyari/>
👍34🔥8
یکی از مهندسین گوگل یک RFC جالب برای کرنل لینوکس اارسال کرده با نام Live Update Orchestrator که برای live patching است.
تمرکز این ویژگی روی زیرساختهای ابری است. الان دیگر زمانی نیست که به Uptime بالا افتخار کرد، بلکه یک خط قرمز محسوب می شود!
ابزارهای دیگر مثل kpatch و غیره در دسته بندی in-place قرار دارند اما LUO گوگل اینگونه نیست ولی چرا ویژگی خفنی است؟
چون LUO دارای State Machine و Callback API است که به سایر subsystemهای مثل KVM اجازه مدیریت فرآیند بهروزرسانی را میدهد.
با بهرهگیری از Kernel Hotplug Operations، وضعیت حافظه را از هسته قدیمی به هسته جدید منتقل میکند.
این کار به هسته جدید امکان میدهد از جایی که هسته قبلی متوقف شده، ادامه دهد، در حالی که همچنان یک راهاندازی مجدد واقعی انجام شده است.
رویکرد LUO بهویژه در محیطهای پیچیده مانند زیرساختهای ابری، امکان توسعه (extensible) را فراهم می کند و هماهنگی را تا حد زیادی بالا میبرد.
https://lore.kernel.org/lkml/20250320024011.2995837-1-pasha.tatashin@soleen.com/
@DevTwitter | <Vahid Nameni/>
تمرکز این ویژگی روی زیرساختهای ابری است. الان دیگر زمانی نیست که به Uptime بالا افتخار کرد، بلکه یک خط قرمز محسوب می شود!
ابزارهای دیگر مثل kpatch و غیره در دسته بندی in-place قرار دارند اما LUO گوگل اینگونه نیست ولی چرا ویژگی خفنی است؟
چون LUO دارای State Machine و Callback API است که به سایر subsystemهای مثل KVM اجازه مدیریت فرآیند بهروزرسانی را میدهد.
با بهرهگیری از Kernel Hotplug Operations، وضعیت حافظه را از هسته قدیمی به هسته جدید منتقل میکند.
این کار به هسته جدید امکان میدهد از جایی که هسته قبلی متوقف شده، ادامه دهد، در حالی که همچنان یک راهاندازی مجدد واقعی انجام شده است.
رویکرد LUO بهویژه در محیطهای پیچیده مانند زیرساختهای ابری، امکان توسعه (extensible) را فراهم می کند و هماهنگی را تا حد زیادی بالا میبرد.
https://lore.kernel.org/lkml/20250320024011.2995837-1-pasha.tatashin@soleen.com/
@DevTwitter | <Vahid Nameni/>
👍28🔥8❤3👎1
همین الان پروژه جدیدمو که تو ی روز درست کردم منتشر کردم، ی ابزاره برای برنامه نویس ها که داکر کامپوز هاشونو با کد بنویسن و سپس تبدیلش کنن به یک فایل داکر کامپوز یا حالا DCaC
https://github.com/amirparsadd/compocompo
@DevTwitter | <AmirParsa Baghdadi/>
https://github.com/amirparsadd/compocompo
@DevTwitter | <AmirParsa Baghdadi/>
👎28👍11🔥2❤1
یک برنامه نوشتم که خیلی ساده هرکسی خواست یک ربات تگلرام درست کنه که در اعزای هر دستوری کار خاصی بکنه دیگه کد ننویسه
کافیه توی فایل yaml دستور و بعد متن و یا فایل ها رو مشخص کنید. همین
ربات شما آمادهست :)
https://github.com/shabane/commodore
@DevTwitter | <Arya Shabane/>
کافیه توی فایل yaml دستور و بعد متن و یا فایل ها رو مشخص کنید. همین
ربات شما آمادهست :)
https://github.com/shabane/commodore
@DevTwitter | <Arya Shabane/>
👍84👎6❤5🔥4
داشتم پروژه Cutie رو بررسی میکردم متوجه شدم همکاری دانشگاه ایلینویز با مرکز تحقیقات آدوبی بوده. جالب بود این Adobe research. دربارش سرچ کردم جای خفنیه.
پروژه Cutie
github.com/hkchengrex/Cutie
مرکز تحقیقات Adobe:
research.adobe.com
@DevTwitter | <Amir/>
پروژه Cutie
github.com/hkchengrex/Cutie
مرکز تحقیقات Adobe:
research.adobe.com
@DevTwitter | <Amir/>
🔥21👍3
با تکنیک «آنالیز احساس» یا همون Sentiment Analysis اومدن توهینهای لینوس تروالدز (خالق لینوکس و گیت) رو طبقهبندی کردند :)))
بالاخره یکی هم پیدا شد که یه حرکت فان با AI بزنه :))
https://github.com/corollari/linusrants
@DevTwitter | <Mohammadreza Haghiri/>
بالاخره یکی هم پیدا شد که یه حرکت فان با AI بزنه :))
https://github.com/corollari/linusrants
@DevTwitter | <Mohammadreza Haghiri/>
🔥53👍13❤7
ساده ترین سیستم RAG رو توی حدود صد خط کد نوشتم که کاملا لوکال روی سیستم خودتون ران میشه.
استار فراموش نشه
https://github.com/mshojaei77/ollama_rag
@DevTwitter | <Shojaei/>
استار فراموش نشه
https://github.com/mshojaei77/ollama_rag
@DevTwitter | <Shojaei/>
👍38👎13🔥8❤2
طی دو روز گذشته با Cline کار می کردم: واقعا برای vibe coding لذت بخش بود. روی VS Code نصب میشه و به OpenRouter هم کار می کنه. مراحل نصب خیلی ساده بود. دو امکان جدید داره:
- Plan/Act
- Memory Bank
نتیجه، تقریبا بدون اینکه من چیزی بنویسم:
https://github.com/pournasserian/FluentCMS
@DevTwitter | <Amir Pournasserian/>
- Plan/Act
- Memory Bank
نتیجه، تقریبا بدون اینکه من چیزی بنویسم:
https://github.com/pournasserian/FluentCMS
@DevTwitter | <Amir Pournasserian/>
👎31👍14❤4🔥1
یه چرخ زدم تو گیتهاب ، ملت کلی api key پوش کردن تو گیتهاب :)))
نتیجه وایب کدینگ با هوش مصنوعی
البته بیشتراش از کار افتاده بخاطر سیستم گیتهاب...
@DevTwitter | <Shojaei/>
نتیجه وایب کدینگ با هوش مصنوعی
البته بیشتراش از کار افتاده بخاطر سیستم گیتهاب...
@DevTwitter | <Shojaei/>
👍73❤14👎4🔥1
فریمورک Hypervel یه فریمورک پورت شده از لاراول هست که coroutine هارو ساپورت میکنه
با لاراول Octane میشه ریکوئستهایی که I/O سنگین دارن رو هندل کرد اما خوب چون coroutineها استفاده نمیکنه بهینه نیست
بنچمارک زیر نسبت QPS هندل شده بین هایپرول و اکتان هست
https://github.com/hypervel/hypervel
@DevTwitter | <Saman/>
با لاراول Octane میشه ریکوئستهایی که I/O سنگین دارن رو هندل کرد اما خوب چون coroutineها استفاده نمیکنه بهینه نیست
بنچمارک زیر نسبت QPS هندل شده بین هایپرول و اکتان هست
https://github.com/hypervel/hypervel
@DevTwitter | <Saman/>
👍30👎4❤2🔥2
امروز یکی از بخش های مهم nestjs رو که داکیومنت کرده بودم تو ریپو docs مرج شد. در مورد Discovery Service هست، اینکه چطور از IoC contaienr نست بتونین سرویس های رجیستر شده رو بگیرین:
https://github.com/nestjs/docs.nestjs.com/pull/3227
اگه می خواین در مورد IoC container ها بیشتر بدونین یا یکی رو از صفر بنویسین
@DevTwitter | <Vahid/>
https://github.com/nestjs/docs.nestjs.com/pull/3227
اگه می خواین در مورد IoC container ها بیشتر بدونین یا یکی رو از صفر بنویسین
@DevTwitter | <Vahid/>
👍30❤4
واقعا نمیدونم چنین افزونهای به درد کسی میخوره یا نه! اگر توی سایتتون دوست دارید که جدول لیگ برتر فوتبال ایران یا لیگ یک رو نشون بدید میتونید از این پلاگین که برای وردپرس نوشتم استفاده کنید:
https://github.com/LordArma/Iranian-League-Table
@DevTwitter | <Arma/>
https://github.com/LordArma/Iranian-League-Table
@DevTwitter | <Arma/>
👍60👎12❤6🔥4
خودکار زیرنویس میکنه!
استخراج صدا
تبدیل به متن دقیق
اصلاح اشتباهات ترانزکریپشن، زمانبندی و جملات نامفهوم
ترجمه و تغییر گویش
کدش روی گیتهاب هست، حتماً امتحان کنید!
https://github.com/TahaBakhtari/SubnoscriptGenerator
@DevTwitter | <Taha/>
استخراج صدا
تبدیل به متن دقیق
اصلاح اشتباهات ترانزکریپشن، زمانبندی و جملات نامفهوم
ترجمه و تغییر گویش
کدش روی گیتهاب هست، حتماً امتحان کنید!
https://github.com/TahaBakhtari/SubnoscriptGenerator
@DevTwitter | <Taha/>
👍63❤9👎3
هشدار: Next.js آسیبپذیر است! آسیبپذیری CVE-2025-29927 به مهاجمان اجازه میدهد احراز هویت را دور بزنند. با هدر x-middleware-subrequest میتوان به مسیرهای محافظتشده دسترسی پیدا کرد. فوراً به نسخه ۱۵.۲.۳ ارتقا دهید!
جزئیات: https://zhero-web-sec.github.io/research-and-things/nextjs-and-the-corrupt-middleware
@DevTwitter | <alifiroozi/>
جزئیات: https://zhero-web-sec.github.io/research-and-things/nextjs-and-the-corrupt-middleware
@DevTwitter | <alifiroozi/>
👍48
اینم از مهر، یه اپلیکیشن ساخته شده با الکترون که بتونید یکم راحت تر از LLM هایی که لوکال نصب میکنید استفاده کنید.
از ollama ساپورت میکنه و یه بار نصب میشه و میتونید با یه کلیک اجراش کنید، رابط کاربری خوبی داره و برای فارسی مناسبه.
کاملا اوپن سورس، برای ویندوز هم build شد
لینک گیت هاب این پایین هست، یه مدتی میشد که میخواستم کاملش کنم و بالاخره وقت شد، بیشتر استایل ها هم از چت بات ماکس الهام گرفته شده تا تجربه بهتری برای فارسی داشته باشید.
کافیه ollama رو نصب کنید و با یه مدل مثلا gemma 3 ازش استفاده کنید
https://github.com/xmannii/MehrLocalChat
@DevTwitter | <Mani/>
از ollama ساپورت میکنه و یه بار نصب میشه و میتونید با یه کلیک اجراش کنید، رابط کاربری خوبی داره و برای فارسی مناسبه.
کاملا اوپن سورس، برای ویندوز هم build شد
لینک گیت هاب این پایین هست، یه مدتی میشد که میخواستم کاملش کنم و بالاخره وقت شد، بیشتر استایل ها هم از چت بات ماکس الهام گرفته شده تا تجربه بهتری برای فارسی داشته باشید.
کافیه ollama رو نصب کنید و با یه مدل مثلا gemma 3 ازش استفاده کنید
https://github.com/xmannii/MehrLocalChat
@DevTwitter | <Mani/>
👍49🔥11👎4