Forwarded from ⚝ (امیرحسین پناهےفر)
یکی از اتفاقات جالب و البته آموزنده اخیر برام outage منطقه aws us-east-1 بود.
اختلالی که ریشه اون به یک مشکل رو سرویس dns داخلی مرتبط با ddb برمیگشت و در نهایت روی زنجیره ای از سرویس های critical تاثیر گذاشت؛ بخشی از api gateway، lambda، IAM، cloudwatch و حتی سرویسهای third party...
این ایونت برام یه نکته مهم بودش که تو سیستم های دیستریبیوت، دیپندسی های لایه های ابسترکت و failure domain های اشتباهی، همیشه دیر یا زود خودشون رو نشون میدن :)
این دقیقا همون دلیلی هست که مهندسی آشوب یه کار اختیاری نیستش و صد البته لایف سایکل دیزاین دیستریبیوت سیستم به حساب میاد.
در واقع هدف اصلی اینه فرض کنیم هر چیز قابل تصوری در هر لحظه ممکنه fail کنه و بعدش این failure رو به طور کنترل شده و آگاهانه ایجادش میکنیم تا بتونیم
یکی متریک ha رو بسنجیم یا رفتار failover و ریکاوری رو به چشم ببینیم، در این میان دیپندنسی های کریتکال هیدن کاپلینگ رو کشف کنیم یا برای مدار های دفاعی مون مثل retry، timeout، backoff، circuit breaker ولیدیشن بگیریم.
بخوام تقسیمش کنم اون رو به سه failure domain تقسیمش میشه کرد مشابه مدل simian army نتفلکس
اولی سرویس لول
اسکوپ اختلالش به یه سرویس، یه پاد، یه اینیستنس یا یه پروسس بر میگرده
مثالش کیل کردن یه کانتینر رندوم یا ریستارت کردن میکروسرویس میشه اشاره کردش حتی شبیه سازی کردن latency فقط روی یه بخش مثل auth تمرکز کرد.
خروجیش میشه سنجش resiliency روی لایه اپلیکیشن، شناسایی دپندنسی های شکننده tight coupling روی پالیسی های retry/timeout هم تاثیر خوبی میذاره.
دومی az لول
اسکوپ دیس اوردرش از مدار خارج کردن یه availability zone
مثلا شات داون کردن کل subnet مربوط به یه زون یا سیمولیت کردن دیسکانکت کامل nat/route table یه az حتی حذف کردن مولتی az رپلیکاها برای دیتابیس و بررسی رفتار fallback اینطوری میشه فهمید که سنجش resiliency روی لایه اینفرا چقدر تاب میاره از ولیدیشن دیزاین لود بالانسینگ، روتینگ و vpc میشه در آورد ارزیابی failover دیتابیس با مولتی az رپلیکا به چه صورتیه... اینا نشون میدن دیزان flaws ها چی هستند.
سومی failure در حد ریجن بشه
اسکوپش شات داون کل ریجنه hell yeah :)
مثلا شبیه سازی همین قطع کامل us-east-1 کیس سناریو خوبیه که failover کنه کل ترافیک رو به eu-west-1 واسه تست global control plane resiliency هم کاراس
یه نکته ای رو بگم این روند chaos engineering تخریب رندوم نیستش یه روش علمی با سایکل کامله یه چند تا مثال واقعی بیارم بهتر درک بشه
اگه سرویس dns اینترنال ms 500 latency داشته باشه آیا میکروسرویس x بگیم همچنان قادر خواهد بود درخواست های کریتکال رو پاسخ بده؟
اگه db regionally unreachable بشه، آیا سیستم ما به رپلیکا جغرافیایی failover میکنه؟
اگه یه az کامل شات داون بشه آیا سیستم بدون human intervention به کارش ادامه میده؟
هدف مون از این اسکوپ محدود کردن دومین به اصطلاح blast radius به حساب میاد
به صورت تدریجی از لوکال به سمت small subset بعدش az و در آخر اسکوپ ریجن در حین اینکه داریم failure رو ایجاد میکنیم تاثیر رو هم باس مدیریت کنیم.
بعد این تست واسه پست مورتن نوشتن و هاردنینگ باس توجه کنیم اصلی ترین هدف مون بهبود دیزاین سیستمه resilient بشه در غیر این صورت فایده نداره.
اختلالی که ریشه اون به یک مشکل رو سرویس dns داخلی مرتبط با ddb برمیگشت و در نهایت روی زنجیره ای از سرویس های critical تاثیر گذاشت؛ بخشی از api gateway، lambda، IAM، cloudwatch و حتی سرویسهای third party...
این ایونت برام یه نکته مهم بودش که تو سیستم های دیستریبیوت، دیپندسی های لایه های ابسترکت و failure domain های اشتباهی، همیشه دیر یا زود خودشون رو نشون میدن :)
این دقیقا همون دلیلی هست که مهندسی آشوب یه کار اختیاری نیستش و صد البته لایف سایکل دیزاین دیستریبیوت سیستم به حساب میاد.
در واقع هدف اصلی اینه فرض کنیم هر چیز قابل تصوری در هر لحظه ممکنه fail کنه و بعدش این failure رو به طور کنترل شده و آگاهانه ایجادش میکنیم تا بتونیم
یکی متریک ha رو بسنجیم یا رفتار failover و ریکاوری رو به چشم ببینیم، در این میان دیپندنسی های کریتکال هیدن کاپلینگ رو کشف کنیم یا برای مدار های دفاعی مون مثل retry، timeout، backoff، circuit breaker ولیدیشن بگیریم.
بخوام تقسیمش کنم اون رو به سه failure domain تقسیمش میشه کرد مشابه مدل simian army نتفلکس
اولی سرویس لول
اسکوپ اختلالش به یه سرویس، یه پاد، یه اینیستنس یا یه پروسس بر میگرده
مثالش کیل کردن یه کانتینر رندوم یا ریستارت کردن میکروسرویس میشه اشاره کردش حتی شبیه سازی کردن latency فقط روی یه بخش مثل auth تمرکز کرد.
خروجیش میشه سنجش resiliency روی لایه اپلیکیشن، شناسایی دپندنسی های شکننده tight coupling روی پالیسی های retry/timeout هم تاثیر خوبی میذاره.
دومی az لول
اسکوپ دیس اوردرش از مدار خارج کردن یه availability zone
مثلا شات داون کردن کل subnet مربوط به یه زون یا سیمولیت کردن دیسکانکت کامل nat/route table یه az حتی حذف کردن مولتی az رپلیکاها برای دیتابیس و بررسی رفتار fallback اینطوری میشه فهمید که سنجش resiliency روی لایه اینفرا چقدر تاب میاره از ولیدیشن دیزاین لود بالانسینگ، روتینگ و vpc میشه در آورد ارزیابی failover دیتابیس با مولتی az رپلیکا به چه صورتیه... اینا نشون میدن دیزان flaws ها چی هستند.
سومی failure در حد ریجن بشه
اسکوپش شات داون کل ریجنه hell yeah :)
مثلا شبیه سازی همین قطع کامل us-east-1 کیس سناریو خوبیه که failover کنه کل ترافیک رو به eu-west-1 واسه تست global control plane resiliency هم کاراس
یه نکته ای رو بگم این روند chaos engineering تخریب رندوم نیستش یه روش علمی با سایکل کامله یه چند تا مثال واقعی بیارم بهتر درک بشه
اگه سرویس dns اینترنال ms 500 latency داشته باشه آیا میکروسرویس x بگیم همچنان قادر خواهد بود درخواست های کریتکال رو پاسخ بده؟
اگه db regionally unreachable بشه، آیا سیستم ما به رپلیکا جغرافیایی failover میکنه؟
اگه یه az کامل شات داون بشه آیا سیستم بدون human intervention به کارش ادامه میده؟
هدف مون از این اسکوپ محدود کردن دومین به اصطلاح blast radius به حساب میاد
به صورت تدریجی از لوکال به سمت small subset بعدش az و در آخر اسکوپ ریجن در حین اینکه داریم failure رو ایجاد میکنیم تاثیر رو هم باس مدیریت کنیم.
بعد این تست واسه پست مورتن نوشتن و هاردنینگ باس توجه کنیم اصلی ترین هدف مون بهبود دیزاین سیستمه resilient بشه در غیر این صورت فایده نداره.
اَحپِفاِیْسم 🍋
Forwarded from IRCF | اینترنت آزاد برای همه
نسخه ۳.۱۰ از #فیلترشکن متنباز و رایگان #OblivionDesktop برای ویندوز، لینوکس و مکاواس منتشر شد.
در اینآپدیت هسته مسکپلاس به نسخه جدید بروزرسانی شده، مشکل قطعشدن VPN هنگام خروجاز حالت Sleep برطرف شده، قابلیت Local DNS Resolver اضافه شده و برخی از مشکلات برطرف شدن.
💡 برای متصلشدن کافیه متد اتصال رو روی مسک قرار بدین و از اندپوینت سفارشی
👉 github.com/bepass-org/oblivion-desktop/releases
🔍 ircf.space/software
@ircfspace
در اینآپدیت هسته مسکپلاس به نسخه جدید بروزرسانی شده، مشکل قطعشدن VPN هنگام خروجاز حالت Sleep برطرف شده، قابلیت Local DNS Resolver اضافه شده و برخی از مشکلات برطرف شدن.
💡 برای متصلشدن کافیه متد اتصال رو روی مسک قرار بدین و از اندپوینت سفارشی
162.159.198.2:443 استفاده کنین👉 github.com/bepass-org/oblivion-desktop/releases
🔍 ircf.space/software
@ircfspace
Forwarded from Linuxor ?
وزیر ارتباطات: فیلترشکنها باعث حملات سایبری از داخل کشور شدهاند
استفاده از فیلترشکنها آسیبهای امنیتی جدی به همراه داشته و به آلودگی شبکه منجر شده است. این آلودگی بستر را برای حملات سایبری از داخل کشور به زیرساختها فراهم کرده و بسیاری از حملات سالهای اخیر از داخل بودهاند، نه خارج از کشور.
@Linuxor
استفاده از فیلترشکنها آسیبهای امنیتی جدی به همراه داشته و به آلودگی شبکه منجر شده است. این آلودگی بستر را برای حملات سایبری از داخل کشور به زیرساختها فراهم کرده و بسیاری از حملات سالهای اخیر از داخل بودهاند، نه خارج از کشور.
@Linuxor
Forwarded from DevTwitter | توییت برنامه نویسی
This media is not supported in your browser
VIEW IN TELEGRAM
این پروژههای Fun هم حس و حال خودشون رو دارند مثل Screensaverهای Cli.
بعضی ها موقع ای که از Cli استفاده نمی کنند، اجرا می کنند، گهگاهی هم خودم برای باحال شدن پروژهام داخل Loading اسکریپتها استفاده می کنم.
خلاصه باحال هست، یک نگاه کنید.
https://github.com/attogram/bash-screensavers
@DevTwitter | <VAHID NAMENI/>
بعضی ها موقع ای که از Cli استفاده نمی کنند، اجرا می کنند، گهگاهی هم خودم برای باحال شدن پروژهام داخل Loading اسکریپتها استفاده می کنم.
خلاصه باحال هست، یک نگاه کنید.
https://github.com/attogram/bash-screensavers
@DevTwitter | <VAHID NAMENI/>
Forwarded from Linuxor ?
شروط آزاد سازی فیلتری تلگرام، که به تیم تلگرام ارسال شده است :
محدودسازی مطالب تحریک آمیز قومیتی، حذف محتوا با شکایت شهروندان، همکاری تلگرام با دستگاه قضائی ایران، مسدودسازی ترویج کنندگان محتواهای تروریستی و خلاف امنیت ملی ایران، تعهد به ایران برای عدم ارائه اطلاعات کاربران ایرانی به سرویسهای اطلاعاتی بیگانه.
تلگرام هنوز واکنشی نشان نداده است
@Linuxor
محدودسازی مطالب تحریک آمیز قومیتی، حذف محتوا با شکایت شهروندان، همکاری تلگرام با دستگاه قضائی ایران، مسدودسازی ترویج کنندگان محتواهای تروریستی و خلاف امنیت ملی ایران، تعهد به ایران برای عدم ارائه اطلاعات کاربران ایرانی به سرویسهای اطلاعاتی بیگانه.
تلگرام هنوز واکنشی نشان نداده است
@Linuxor
😁2
Forwarded from ⚝ (امیرحسین پناهےفر)
Don't solve problems you don't have.
#SystemThinking
#SystemThinking
Forwarded from Reza Jafari
یک خط کد تا stream کردن datasetهای چندترابایتی
با استفاده از قابلیت جدید streaming=True در تابع ()load_dataset، میتونید بدون نیاز به دانلود کامل dataset، فقط با یک خط کد دادهها رو بهصورت مستقیم stream کنید. دیگه لازم نیست نگران پر شدن حافظه، خطای «disk out of space»، یا محدودیت در تعداد درخواستها باشید. حالا میتونید حتی روی datasetهای چندترابایتی آموزش بدید، بدون هیچ تأخیر یا دردسر اضافه. این سیستم جدید تا ۱۰۰ برابر درخواستهای کمتری در زمان استارتآپ ارسال میکنه، فایلها رو ۱۰ برابر سریعتر resolve میکنه، و دو برابر سرعت نمونهگیری (samples/sec) بیشتری داره، اون هم بدون هیچ crash حتی با ۲۵۶ تا worker فعال.
برای استفاده از این قابلیت نیازی به تغییر در کد قبلیتون نیست. همون API قبلی کار میکنه؛ فقط کافیه streaming=True رو بهش اضافه کنید. هزاران توسعهدهنده هر روز با datasets کار میکنن و حالا بدون هیچ تغییری در workflow خودشون، از سرعت و پایداری بیشتر بهرهمند میشن.
قبلاً streaming بیشتر برای بررسی سریع datasetها استفاده میشد، اما حالا برای آموزش مدلها هم کاملاً کاربردیه. در پروژههای بزرگ مثل SmolVLM و nanoVLM، استفاده از streaming باعث شد که دیگه نیازی به دانلود و ذخیره داده روی S3 نباشه. در ابتدا، هر worker در DataLoader جداگانه dataset رو initialize میکرد و این باعث میشد تعداد درخواستها بهشدت زیاد بشه، تا حدی که IP بلاک میشد. با بازطراحی کامل سیستم، حالا فقط یک worker دادهها رو از Hub میگیره و بقیه از cache محلی استفاده میکنن. این تغییر باعث شد تعداد درخواستها تا ۱۰۰ برابر کمتر بشه و کارایی streaming دو برابر افزایش پیدا کنه.
دو بخش اصلی در این بهبودها وجود داره: استارتآپ و فرایند streaming. در فاز استارتآپ، سیستم Persistent Cache برای فایلهای داده اضافه شده، تا همهی workerها از یه کش مشترک استفاده کنن. همچنین منطق resolve فایلها بهینه شده تا latency اولیه تا حد ممکن پایین بیاد. در فاز streaming، قابلیت prefetch برای فایلهای Parquet معرفی شده؛ یعنی وقتی مدل در حال پردازش دادههای فعلیه، سیستم در پسزمینه دادههای بعدی رو دانلود میکنه تا GPU هیچوقت منتظر نمونههای جدید نمونه. حالا همچنین میتونید با تنظیم اندازهی buffer و prefetch limit، عملکرد رو مطابق سختافزارتون تنظیم کنید.
سیستم ذخیرهسازی Xet، که بر پایهی deduplication ساخته شده، بخش مهمی از این تحول رو تشکیل میده. Xet فقط دادههای منحصربهفرد رو منتقل میکنه، بنابراین انتقال فایلهای بزرگ در Hugging Face بهمراتب سریعتر از روشهای سنتی انجام میشه. به لطف Content-Defined Chunking برای Parquet، آپلود و دانلود دیتاستها با Xet بهطور چشمگیری سریعتر و کارآمدتر انجام میگیره. این سیستم از طریق بستهی pyspark_huggingface هم در محیط Spark قابل استفاده است و سرعت read/write روی Hugging Face Hub رو به طرز چشمگیری افزایش میده.
برای کسانی که میخوان کنترل کاملتری روی pipelineهای streaming داشته باشن، حالا میتونن pipelineهای سفارشی خودشون رو بسازن. این ویژگی در کتابخانههایی مثل LeRobot برای نمونهگیری از فریمهای ویدیو و WebDataset برای stream کردن آرشیوهای TAR امتحان شده. همچنین HfFileSystem در کتابخانهی huggingface_hub بهبود یافته تا بتونه فایلها رو از repositoryهای remote با سرعت بالا stream کنه و بهصورت هوشمند از cache برای جلوگیری از درخواستهای تکراری استفاده کنه.
در حال حاضر، این بهبودها در پروژههای بزرگ مثل nanoVLM در حال استفاده هستن و نتایج نشون داده که streaming حالا به اندازهی خواندن داده از SSD محلی سریع شده. این یعنی دیگه نیازی به صرف ساعتها برای انتقال داده به فضای local نیست و آموزش مدلها میتونه فوراً شروع بشه.
تمام این قابلیتها در آخرین نسخهی datasets و huggingface_hub فعال هستن. برای بهرهمندی ازشون فقط کافیه کتابخانهها رو بهروزرسانی کنید
قابلیت Streaming حالا به مرحلهای رسیده که نهتنها جایگزینی برای دانلود دادههاست، بلکه از اون هم سریعتر، کارآمدتر و قابلاعتمادتره. فقط با یک خط کد، میتونید قدرت کامل Hub رو برای آموزش مدلهای بزرگ به کار بگیرید — بیوقفه، بدون محدودیت، و با حداکثر بازدهی.
🔤 🔤 🔤 🔤 🔤 🔤 🔤
🥇 اهورا اولین اپراتور هوش مصنوعی راهبردی ایران در حوزه ارائه خدمات و سرویسهای زیرساخت هوش مصنوعی
🌐 لینک ارتباط با اهورا
@reza_jafari_ai
با استفاده از قابلیت جدید streaming=True در تابع ()load_dataset، میتونید بدون نیاز به دانلود کامل dataset، فقط با یک خط کد دادهها رو بهصورت مستقیم stream کنید. دیگه لازم نیست نگران پر شدن حافظه، خطای «disk out of space»، یا محدودیت در تعداد درخواستها باشید. حالا میتونید حتی روی datasetهای چندترابایتی آموزش بدید، بدون هیچ تأخیر یا دردسر اضافه. این سیستم جدید تا ۱۰۰ برابر درخواستهای کمتری در زمان استارتآپ ارسال میکنه، فایلها رو ۱۰ برابر سریعتر resolve میکنه، و دو برابر سرعت نمونهگیری (samples/sec) بیشتری داره، اون هم بدون هیچ crash حتی با ۲۵۶ تا worker فعال.
برای استفاده از این قابلیت نیازی به تغییر در کد قبلیتون نیست. همون API قبلی کار میکنه؛ فقط کافیه streaming=True رو بهش اضافه کنید. هزاران توسعهدهنده هر روز با datasets کار میکنن و حالا بدون هیچ تغییری در workflow خودشون، از سرعت و پایداری بیشتر بهرهمند میشن.
قبلاً streaming بیشتر برای بررسی سریع datasetها استفاده میشد، اما حالا برای آموزش مدلها هم کاملاً کاربردیه. در پروژههای بزرگ مثل SmolVLM و nanoVLM، استفاده از streaming باعث شد که دیگه نیازی به دانلود و ذخیره داده روی S3 نباشه. در ابتدا، هر worker در DataLoader جداگانه dataset رو initialize میکرد و این باعث میشد تعداد درخواستها بهشدت زیاد بشه، تا حدی که IP بلاک میشد. با بازطراحی کامل سیستم، حالا فقط یک worker دادهها رو از Hub میگیره و بقیه از cache محلی استفاده میکنن. این تغییر باعث شد تعداد درخواستها تا ۱۰۰ برابر کمتر بشه و کارایی streaming دو برابر افزایش پیدا کنه.
دو بخش اصلی در این بهبودها وجود داره: استارتآپ و فرایند streaming. در فاز استارتآپ، سیستم Persistent Cache برای فایلهای داده اضافه شده، تا همهی workerها از یه کش مشترک استفاده کنن. همچنین منطق resolve فایلها بهینه شده تا latency اولیه تا حد ممکن پایین بیاد. در فاز streaming، قابلیت prefetch برای فایلهای Parquet معرفی شده؛ یعنی وقتی مدل در حال پردازش دادههای فعلیه، سیستم در پسزمینه دادههای بعدی رو دانلود میکنه تا GPU هیچوقت منتظر نمونههای جدید نمونه. حالا همچنین میتونید با تنظیم اندازهی buffer و prefetch limit، عملکرد رو مطابق سختافزارتون تنظیم کنید.
سیستم ذخیرهسازی Xet، که بر پایهی deduplication ساخته شده، بخش مهمی از این تحول رو تشکیل میده. Xet فقط دادههای منحصربهفرد رو منتقل میکنه، بنابراین انتقال فایلهای بزرگ در Hugging Face بهمراتب سریعتر از روشهای سنتی انجام میشه. به لطف Content-Defined Chunking برای Parquet، آپلود و دانلود دیتاستها با Xet بهطور چشمگیری سریعتر و کارآمدتر انجام میگیره. این سیستم از طریق بستهی pyspark_huggingface هم در محیط Spark قابل استفاده است و سرعت read/write روی Hugging Face Hub رو به طرز چشمگیری افزایش میده.
برای کسانی که میخوان کنترل کاملتری روی pipelineهای streaming داشته باشن، حالا میتونن pipelineهای سفارشی خودشون رو بسازن. این ویژگی در کتابخانههایی مثل LeRobot برای نمونهگیری از فریمهای ویدیو و WebDataset برای stream کردن آرشیوهای TAR امتحان شده. همچنین HfFileSystem در کتابخانهی huggingface_hub بهبود یافته تا بتونه فایلها رو از repositoryهای remote با سرعت بالا stream کنه و بهصورت هوشمند از cache برای جلوگیری از درخواستهای تکراری استفاده کنه.
در حال حاضر، این بهبودها در پروژههای بزرگ مثل nanoVLM در حال استفاده هستن و نتایج نشون داده که streaming حالا به اندازهی خواندن داده از SSD محلی سریع شده. این یعنی دیگه نیازی به صرف ساعتها برای انتقال داده به فضای local نیست و آموزش مدلها میتونه فوراً شروع بشه.
تمام این قابلیتها در آخرین نسخهی datasets و huggingface_hub فعال هستن. برای بهرهمندی ازشون فقط کافیه کتابخانهها رو بهروزرسانی کنید
قابلیت Streaming حالا به مرحلهای رسیده که نهتنها جایگزینی برای دانلود دادههاست، بلکه از اون هم سریعتر، کارآمدتر و قابلاعتمادتره. فقط با یک خط کد، میتونید قدرت کامل Hub رو برای آموزش مدلهای بزرگ به کار بگیرید — بیوقفه، بدون محدودیت، و با حداکثر بازدهی.
@reza_jafari_ai
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from کانال مهرداد لینوکس
✨آیا سیستمت را در چند سال اخیر خریدی؟احتمالا x86-64-v3 پشتیبانی میشه
🚀 بریم برای سرعت بیشترو بهینه تر بودن
حالا Ubuntu 25.10 با پشتیبانی از معماری x86-64-v3 منتشر شد!
اگر سیستمت (نسل Haswell به بعد)، احتمالاً CPU تو از x86-64-v3 پشتیبانی میکنه نسل جدیدی از معماری x86-64 که برای پردازندههای مدرن طراحی شده.
🧠 چی فرق کرده؟
پشتیبانی از دستورهای جدید CPU مثل AVX2، BMI1/BMI2 و FMA
اجرای سریعتر برنامههای سنگین (فشردهسازی، رمزنگاری، شبیهسازی، یادگیری ماشین و غیره)
بهینهسازی مخصوص سختافزار جدید بدون از کار انداختن نسخههای قدیمی
💡 چطور بفهمی سیستمت آمادهست؟
اگر دیدی:
✅ یعنی اوکی😎
🧩 در Ubuntu 25.10 بخشی از بستههای آرشیو «main» برای این معماری بازسازی شدهاند (حدود ۲۰۰۰)
در نسخههای بعدی (مثل 26.04 LTS) همهی بستهها با بهینهسازی کامل منتشر میشن.
🔧 برای فعالسازی (⚠️ اختیاری ریسک عدم پایداری):
@MehrdadLinuxchannel
منبع
🚀 بریم برای سرعت بیشترو بهینه تر بودن
حالا Ubuntu 25.10 با پشتیبانی از معماری x86-64-v3 منتشر شد!
اگر سیستمت (نسل Haswell به بعد)، احتمالاً CPU تو از x86-64-v3 پشتیبانی میکنه نسل جدیدی از معماری x86-64 که برای پردازندههای مدرن طراحی شده.
🧠 چی فرق کرده؟
پشتیبانی از دستورهای جدید CPU مثل AVX2، BMI1/BMI2 و FMA
اجرای سریعتر برنامههای سنگین (فشردهسازی، رمزنگاری، شبیهسازی، یادگیری ماشین و غیره)
بهینهسازی مخصوص سختافزار جدید بدون از کار انداختن نسخههای قدیمی
💡 چطور بفهمی سیستمت آمادهست؟
ld.so --help | grep v3
اگر دیدی:
x86-64-v3 (supported, searched)
✅ یعنی اوکی😎
🧩 در Ubuntu 25.10 بخشی از بستههای آرشیو «main» برای این معماری بازسازی شدهاند (حدود ۲۰۰۰)
در نسخههای بعدی (مثل 26.04 LTS) همهی بستهها با بهینهسازی کامل منتشر میشن.
🔧 برای فعالسازی (⚠️ اختیاری ریسک عدم پایداری):
echo 'APT::Architecture-Variants "amd64v3";' | sudo tee /etc/apt/apt.conf.d/99enable-amd64v3
sudo apt update && sudo apt upgrade
@MehrdadLinuxchannel
منبع
Forwarded from Gopher Academy
🔵 عنوان مقاله
Fantasy: Build Flexible AI Agents with Go
🟢 خلاصه مقاله:
با تمرکز بر ساخت ایجنتهای هوش مصنوعی انعطافپذیر در Go، ابزار Fantasy از سوی Charm معرفی شده است. این ابزار یکی از اجزای اصلی پشت Crush است، اما میتوان آن را بهصورت مستقل برای ساخت ایجنتهای مجهز به ابزار در Go بهکار گرفت. هدف Fantasy ارائه رویکردی ماژولار و قابل ترکیب است تا توسعهدهندگان بتوانند رفتار ایجنت را سفارشی کنند، ابزارها و سرویسها را متصل کنند و در عین حال در چارچوب کاری Go باقی بمانند.
#Go #Golang #AI #AIAgents #Charm #Crush #DevTools #AgentFramework
🟣لینک مقاله:
https://golangweekly.com/link/176311/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Fantasy: Build Flexible AI Agents with Go
🟢 خلاصه مقاله:
با تمرکز بر ساخت ایجنتهای هوش مصنوعی انعطافپذیر در Go، ابزار Fantasy از سوی Charm معرفی شده است. این ابزار یکی از اجزای اصلی پشت Crush است، اما میتوان آن را بهصورت مستقل برای ساخت ایجنتهای مجهز به ابزار در Go بهکار گرفت. هدف Fantasy ارائه رویکردی ماژولار و قابل ترکیب است تا توسعهدهندگان بتوانند رفتار ایجنت را سفارشی کنند، ابزارها و سرویسها را متصل کنند و در عین حال در چارچوب کاری Go باقی بمانند.
#Go #Golang #AI #AIAgents #Charm #Crush #DevTools #AgentFramework
🟣لینک مقاله:
https://golangweekly.com/link/176311/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - charmbracelet/fantasy: Build AI agents with Go. Multiple providers, multiple models, one API 🧙
Build AI agents with Go. Multiple providers, multiple models, one API 🧙 - charmbracelet/fantasy
Forwarded from DevTwitter | توییت برنامه نویسی
Funny PHP
یک کار بامزه ، چه طور بالا و پایین شدن داده ها رو به موسیقی تبدیل کنیم ؟
Convert price trends into audio sequences: detect increasing, decreasing, and flat price ranges, then generate a single MP3 summary using corresponding sound clips.
https://github.com/saeedvir/price-trend-audio-visualizer/
@DevTwitter | <Saeed/>
یک کار بامزه ، چه طور بالا و پایین شدن داده ها رو به موسیقی تبدیل کنیم ؟
Convert price trends into audio sequences: detect increasing, decreasing, and flat price ranges, then generate a single MP3 summary using corresponding sound clips.
$prices = [100, 102, 105, 105, 105, 104, 102, 101, 101, 103, 104];
$dates = ['2025-10-20','2025-10-21','2025-10-22','2025-10-23','2025-10-24','2025-10-25','2025-10-26','2025-10-27','2025-10-28','2025-10-29','2025-10-30'];
// Detect ranges
$ranges = PriceTrend::findDataRanges($prices, $dates, 2);
// Generate audio summary
AudioGenerator::joinRangeAudio($ranges, __DIR__ . '/../output.mp3');
https://github.com/saeedvir/price-trend-audio-visualizer/
@DevTwitter | <Saeed/>
Forwarded from GitHub Trending Daily
🔥 New GitHub Trending Repositories 🔥
Found 8 new trending repositories:
1. chef by get-convex
📝 The only AI app builder that knows backend
💻 TypeScript | ⭐ 2,542 | 🌟 Today: 61
🔗 Link
2. docs by suitenumerique
📝 A collaborative note taking, wiki and documentation platform that scales. Built with Django and Reac...
💻 Python | ⭐ 14,100 | 🌟 Today: 26
🔗 Link
3. Deep-Live-Cam by hacksider
📝 real time face swap and one-click video deepfake with only a single image
💻 Python | ⭐ 74,575 | 🌟 Today: 225
🔗 Link
4. copilot-cli by github
📝 GitHub Copilot CLI brings the power of Copilot coding agent directly to your terminal.
💻 Star | ⭐ 4,393 | 🌟 Today: 61
🔗 Link
5. ruoyi-vue-pro by YunaiV
📝 🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程...
💻 Java | ⭐ 33,844 | 🌟 Today: 27
🔗 Link
6. xiaomusic by hanxi
📝 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。
💻 Python | ⭐ 6,444 | 🌟 Today: 197
🔗 Link
7. lingo.dev by lingodotdev
📝 ⚡ Lingo.dev - open-source, AI-powered i18n toolkit for instant localization with LLMs. Bring your ow...
💻 TypeScript | ⭐ 3,915 | 🌟 Today: 100
🔗 Link
8. computer-science by ossu
📝 🎓 Path to a free self-taught education in Computer Science!
💻 HTML | ⭐ 196,593 | 🌟 Today: 235
🔗 Link
🔘 @github_trending_daily
Found 8 new trending repositories:
1. chef by get-convex
📝 The only AI app builder that knows backend
💻 TypeScript | ⭐ 2,542 | 🌟 Today: 61
🔗 Link
2. docs by suitenumerique
📝 A collaborative note taking, wiki and documentation platform that scales. Built with Django and Reac...
💻 Python | ⭐ 14,100 | 🌟 Today: 26
🔗 Link
3. Deep-Live-Cam by hacksider
📝 real time face swap and one-click video deepfake with only a single image
💻 Python | ⭐ 74,575 | 🌟 Today: 225
🔗 Link
4. copilot-cli by github
📝 GitHub Copilot CLI brings the power of Copilot coding agent directly to your terminal.
💻 Star | ⭐ 4,393 | 🌟 Today: 61
🔗 Link
5. ruoyi-vue-pro by YunaiV
📝 🔥 官方推荐 🔥 RuoYi-Vue 全新 Pro 版本,优化重构所有功能。基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 微信小程...
💻 Java | ⭐ 33,844 | 🌟 Today: 27
🔗 Link
6. xiaomusic by hanxi
📝 使用小爱音箱播放音乐,音乐使用 yt-dlp 下载。
💻 Python | ⭐ 6,444 | 🌟 Today: 197
🔗 Link
7. lingo.dev by lingodotdev
📝 ⚡ Lingo.dev - open-source, AI-powered i18n toolkit for instant localization with LLMs. Bring your ow...
💻 TypeScript | ⭐ 3,915 | 🌟 Today: 100
🔗 Link
8. computer-science by ossu
📝 🎓 Path to a free self-taught education in Computer Science!
💻 HTML | ⭐ 196,593 | 🌟 Today: 235
🔗 Link
🔘 @github_trending_daily
Forwarded from DevTwitter | توییت برنامه نویسی
کانفیگ و پیادهسازی Web Push Notification بدون Firebase
* از اونجایی که داخل ایران نمیتونیم از سرویسهایی مثل Firebase Cloud Messaging (FCM) استفاده کنیم، تصمیم گرفتم خودم سیستم Web Push Notification رو پیادهسازی کنم!
* در سمت کلاینت (Next.js) از یک Service Worker استفاده کردم تا نوتیفها حتی زمانی که تب بسته هستش هم نمایش داده بشه.
کاربر کافیه اپ رو به Home Screen اضافه کنه و بعد از اولین ورود، مجوز ارسال نوتیفیکیشن رو تأیید کنه؛
در این مرحله، مرورگر بهصورت خودکار یک subscription اختصاصی تولید میکنه که شامل endpoint، public key و auth token هست و به سرور ارسال میشه.
* در سمت بکاند (Node.js + Express) از پکیج web-push استفاده کردم تا با کلیدهای VAPID نوتیفها رو بهصورت مستقیم و امن برای مرورگر کاربران ارسال کنم.
هر endpoint بهصورت یکتا در دیتابیس ذخیره میشه و سرور میتونه به تمام کاربران یا فقط به یک کاربر خاص نوتیف بفرسته
ویژگیها:
ارسال نوتیف زنده و امن با کلیدهای VAPID
مدیریت subscribe / unsubscribe کاربران
پشتیبانی کامل از PWA و Service Worker
قابل تنظیم برای آیکون، عنوان و لینک دلخواه
مستقل از Firebase و بدون محدودیت
میتونید نسبت به کانفیگ پروژتون setup کنید
* خب شاید بپرسید اگه کاربر آفلاین باشه چی میشه…
خیلی ساده بخوام بگم وقتی کاربر آفلاین باشه و شما بخواید براش پوش نوتیفیکیشن بفرستید، Push Service مثل گوگل یا مرورگر، پیام رو میذاره تو صف (queue) و وقتی کاربر دوباره آنلاین شد، نوتیفیکیشن روی صفحهش ظاهر میشه.
demo: https://sadegh-nextjs-push-notification.liara.run/
برای تست، اپ رو به صفحه اصلی اضافه کنید و دسترسی رو اکسپت کنید و از فرمی که داخل اپ هستش نوتیف ارسال کنید
repo: https://github.com/sadegh1379/push-notification
@DevTwitter | <Sadegh Akbari/>
* از اونجایی که داخل ایران نمیتونیم از سرویسهایی مثل Firebase Cloud Messaging (FCM) استفاده کنیم، تصمیم گرفتم خودم سیستم Web Push Notification رو پیادهسازی کنم!
* در سمت کلاینت (Next.js) از یک Service Worker استفاده کردم تا نوتیفها حتی زمانی که تب بسته هستش هم نمایش داده بشه.
کاربر کافیه اپ رو به Home Screen اضافه کنه و بعد از اولین ورود، مجوز ارسال نوتیفیکیشن رو تأیید کنه؛
در این مرحله، مرورگر بهصورت خودکار یک subscription اختصاصی تولید میکنه که شامل endpoint، public key و auth token هست و به سرور ارسال میشه.
* در سمت بکاند (Node.js + Express) از پکیج web-push استفاده کردم تا با کلیدهای VAPID نوتیفها رو بهصورت مستقیم و امن برای مرورگر کاربران ارسال کنم.
هر endpoint بهصورت یکتا در دیتابیس ذخیره میشه و سرور میتونه به تمام کاربران یا فقط به یک کاربر خاص نوتیف بفرسته
ویژگیها:
ارسال نوتیف زنده و امن با کلیدهای VAPID
مدیریت subscribe / unsubscribe کاربران
پشتیبانی کامل از PWA و Service Worker
قابل تنظیم برای آیکون، عنوان و لینک دلخواه
مستقل از Firebase و بدون محدودیت
میتونید نسبت به کانفیگ پروژتون setup کنید
* خب شاید بپرسید اگه کاربر آفلاین باشه چی میشه…
خیلی ساده بخوام بگم وقتی کاربر آفلاین باشه و شما بخواید براش پوش نوتیفیکیشن بفرستید، Push Service مثل گوگل یا مرورگر، پیام رو میذاره تو صف (queue) و وقتی کاربر دوباره آنلاین شد، نوتیفیکیشن روی صفحهش ظاهر میشه.
demo: https://sadegh-nextjs-push-notification.liara.run/
برای تست، اپ رو به صفحه اصلی اضافه کنید و دسترسی رو اکسپت کنید و از فرمی که داخل اپ هستش نوتیف ارسال کنید
repo: https://github.com/sadegh1379/push-notification
@DevTwitter | <Sadegh Akbari/>
Forwarded from DevTwitter | توییت برنامه نویسی
در گیتهاب Typescript به محبوبترین زبان برنامهنویسی تبدیل شده و از پایتون جلو زده!
@DevTwitter | <Masoud Majidi/>
@DevTwitter | <Masoud Majidi/>
Forwarded from GamerTux
آینده گیمینگ: چرا لینوکس داره میدرخشه؟
@GamerTuxChat
@GamerTux
تو این ویدیو راجب آینده گیمینگ تو لینوکس ابزارهای مورد نیاز و مشکلات احتمالی صحبت میکنیم.YouTube | PeerTube
@GamerTuxChat
@GamerTux
Forwarded from DevTwitter | توییت برنامه نویسی
اپلیکیشن ریموت دسکتاپ اوپن سورس، به عنوان جایگزین TeamViewer و AnyDesk
https://github.com/rustdesk/rustdesk
@DevTwitter | <Mohammad/>
https://github.com/rustdesk/rustdesk
@DevTwitter | <Mohammad/>
Forwarded from Meitix
توی Go وقتی از map استفاده میکنیم، پشتش خبری از یه آرایه ساده نیست که بیاد کل دادهها رو بگرده تا کلیدتو پیدا کنه. ماجرا خیلی هوشمندتر از این حرفاست. Go برای map از ساختار hash map استفاده میکنه، یعنی هر کلید اول میره توی یه تابع هش و یه عدد خاص ازش درمیاد. اون عدد مشخص میکنه داده باید تو کدوم “bucket” یا همون سطل ذخیره بشه.
هر map یه عالمه از این bucket داره و هر bucket خودش چند تا key و value نگه میداره. وقتی مینویسی m["name"]، Go نمیاد کل map رو بگرده، فقط هش کلید رو حساب میکنه، میره سراغ bucket مربوطه و تو همون چند تا دادهی داخلش دنبال مقدار میگرده. معمولا بدترین حالتش اینه که بین کمتر از ۸ تا مقدار بگرده، پس خیلی سریع تموم میشه.
اگه چند تا کلید هش مشابه بدن، میرن تو یه bucket و اگه اون پر بشه، یه bucket اضافه (overflow) ساخته میشه. ولی حتی اونموقع هم lookup زمانش تقریبا O(1) میمونه، چون این زنجیرهی bucketها معمولا خیلی کوتاهه. Go وقتی حس میکنه برخوردها زیاد شدن، خودش map رو بزرگتر میکنه و دادهها رو دوباره پخش میکنه تا سرعت ثابت بمونه.
هر map یه عالمه از این bucket داره و هر bucket خودش چند تا key و value نگه میداره. وقتی مینویسی m["name"]، Go نمیاد کل map رو بگرده، فقط هش کلید رو حساب میکنه، میره سراغ bucket مربوطه و تو همون چند تا دادهی داخلش دنبال مقدار میگرده. معمولا بدترین حالتش اینه که بین کمتر از ۸ تا مقدار بگرده، پس خیلی سریع تموم میشه.
اگه چند تا کلید هش مشابه بدن، میرن تو یه bucket و اگه اون پر بشه، یه bucket اضافه (overflow) ساخته میشه. ولی حتی اونموقع هم lookup زمانش تقریبا O(1) میمونه، چون این زنجیرهی bucketها معمولا خیلی کوتاهه. Go وقتی حس میکنه برخوردها زیاد شدن، خودش map رو بزرگتر میکنه و دادهها رو دوباره پخش میکنه تا سرعت ثابت بمونه.
Forwarded from DevTwitter | توییت برنامه نویسی
درود، امیدوارم حالتون خوب باشه
یه پکیج جدید داخل NPM توسعه دادم به اسم script-connector و خوشحال میشم یه نگاه بندازین
npmjs.com/package/script-connector
github.com/Tariux/Node-Script-Connector
اگر تا حالا به این فکر کردین که بشه اسکریپت های زبان های دیگه رو از طریق JavaScript اجرا کرد، این پکیج دقیقا برای همینه. Script Connector یه ابزار سبک و دقیق با معماری تمیزه که بدون هیچ بخش اضافهای طراحی شده تا سریع، قابل اعتماد و کاملا قابل تنظیم باشه.
میتونین همه چیز رو طبق نیاز خودتون پیکربندی کنین، و از اون طرف متریک های دقیقی از تمام بخش های در حال اجرا دریافت کنین.
یه تیکه کد ساده از نحوه استفادش: (در نظر بگیرید کانفیگ های خیلی بیشتری از این داخل پکیج موجوده)
اگر خواستین نمونه کامل تر یا داکیومنتش رو ببینین، خوشحال میشم گیتهاب رو چک کنین.
@DevTwitter | <madman/>
یه پکیج جدید داخل NPM توسعه دادم به اسم script-connector و خوشحال میشم یه نگاه بندازین
npmjs.com/package/script-connector
github.com/Tariux/Node-Script-Connector
اگر تا حالا به این فکر کردین که بشه اسکریپت های زبان های دیگه رو از طریق JavaScript اجرا کرد، این پکیج دقیقا برای همینه. Script Connector یه ابزار سبک و دقیق با معماری تمیزه که بدون هیچ بخش اضافهای طراحی شده تا سریع، قابل اعتماد و کاملا قابل تنظیم باشه.
میتونین همه چیز رو طبق نیاز خودتون پیکربندی کنین، و از اون طرف متریک های دقیقی از تمام بخش های در حال اجرا دریافت کنین.
یه تیکه کد ساده از نحوه استفادش: (در نظر بگیرید کانفیگ های خیلی بیشتری از این داخل پکیج موجوده)
const { ScriptConnector } = require('script-connector');
const connector = new ScriptConnector({
scripts: {
math: './scripts/math.py',
}
});
connector.api.math.add(10, 5);اگر خواستین نمونه کامل تر یا داکیومنتش رو ببینین، خوشحال میشم گیتهاب رو چک کنین.
@DevTwitter | <madman/>