Forwarded from cyru55 unofficial channel (cyru55)
Because the wheel did not turn to the taste of a wise man
If you want to count the world as seven, or even eight
While you must die and put down all your wishes
Whether ants eat you at the grave, whether wolves at the plain
👤Khayyam
If you want to count the world as seven, or even eight
While you must die and put down all your wishes
Whether ants eat you at the grave, whether wolves at the plain
👤Khayyam
Forwarded from AI Pulse (Mohammad)
گوگل در کنفرانس دیشب از Gemini Diffusion رونمایی کرد. یه مدل آزمایشی که بهجای پیشبینی کلمهبهکلمه، از تکنیک "دیفیوژن" (پخش تدریجی) برای تولید متن استفاده میکنه. این سیستم دقیقا مشابه چیزیه که قبلا در مدل های خانواده Mercury دیده بودیم.
برخلاف مدلهای زبانی سنتی که متن رو کلمهبهکلمه تولید میکنن، Gemini Diffusion از روشی الهامگرفته از تولید تصویر استفاده میکنه: اصلاح نویز طی چند مرحله.
این سیستم با یه سری نویز تصادفی شروع میکنه و کمکم اون رو به بخشهای کامل و منسجم متن تبدیل میکنه. این روش اجازه میده در میانهی مسیر، اصلاحات انجام بشه و کنترل بیشتری روی خروجی داشت. به گفتهی دیپمایند، این کار باعث میشه خروجیها منسجمتر و از نظر منطقی، مرتبطتر باشن؛ چیزی که مخصوصاً برای کارهایی مثل تولید کد و ویرایش متن خیلی مؤثره، چون دقت، انسجام و امکان بازبینی تو این حوزهها خیلی مهمه.
Gemini Diffusion بهجای اینکه متن رو از چپ به راست و بهصورت خطی تولید کنه، یکباره بخشهای کامل از متن رو تولید میکنه — و این کار رو خیلی سریعتر از مدلهای سنتی انجام میده. دیپمایند گفته این سیستم میتونه با سرعت ۱۴۷۹ توکن بر ثانیه (بدون احتساب سربار سیستم) کار کنه و تأخیر اولیهی اون فقط ۰.۸۴ ثانیهست.
بهگفتهی «برندن اوداناهیو»، پژوهشگر دیپمایند، این مدل توی کارهای برنامهنویسی حتی میتونه به سرعت ۲۰۰۰ توکن در ثانیه هم برسه، حتی وقتی سربارهایی مثل توکنیزیشن، آمادهسازی و بررسیهای ایمنی رو هم در نظر بگیریم.
«اوریول وینیالز»، معاون پژوهش دیپمایند و یکی از مدیران پروژه Gemini، عرضهی این مدل جدید رو یه دستاورد شخصی توصیف کرده و گفته: «همیشه آرزو داشتم بتونم نیاز به تولید متن از چپ به راست رو حذف کنم.» توی نسخهی نمایشی مدل، سرعت خروجی اونقدری بالا بوده که برای دیدن عملکردش، مجبور شدن ویدیو رو آهسته پخش کنن.
در آزمونها، Gemini Diffusion عملکردی تقریباً برابر با نسخهی Gemini 2.0 Flash Lite داشته. توی وظایف برنامهنویسی مثل HumanEval (با دقت ۸۹.۶٪ در مقابل ۹۰.۲٪) و MBPP (۷۶٪ در مقابل ۷۵.۸٪) نتایج تقریباً مساوی بوده.
حتی توی برخی آزمونها مثل LiveCodeBench (۳۰.۹٪ در مقابل ۲۸.۵٪) و LBPP (۵۶.۸٪ در مقابل ۵۶٪)، Gemini Diffusion کمی بهتر ظاهر شده. با این حال، توی حوزههایی مثل استدلال علمی (GPQA Diamond) و آزمون چندزبانهی Global MMLU Lite ضعیفتر عمل کرده و بهترتیب امتیازهای ۴۰.۴٪ و ۶۹.۱٪ رو گرفته، در حالی که مدل Flash Lite امتیازهای بالاتری بهدست آورده (۵۶.۵٪ و ۷۹٪).
به این ترتیب، برای اولینبار یه مدل زبانی مبتنی بر تکنیک دیفیوژن تونسته به سطح عملکرد مدلهای رایج فعلی برسه — حتی با وجود اینکه Gemini 2.0 Flash-Lite یه مدل اقتصادیتر و قدیمیتر از گوگله.
«جک ری»، دانشمند ارشد دیپمایند، این دستاورد رو یه «لحظهی تاریخی» دونسته. تا پیش از این، مدلهای خودبازگشتی (autoregressive) همیشه توی کیفیت متن عملکرد بهتری داشتن و مشخص نبود که مدلهای دیفیوشن بتونن بهشون برسن. ری این موفقیت رو نتیجهی تحقیقات متمرکز و حل «تعداد زیادی» از چالشهای فنی دونسته.
@aipulse24
برخلاف مدلهای زبانی سنتی که متن رو کلمهبهکلمه تولید میکنن، Gemini Diffusion از روشی الهامگرفته از تولید تصویر استفاده میکنه: اصلاح نویز طی چند مرحله.
این سیستم با یه سری نویز تصادفی شروع میکنه و کمکم اون رو به بخشهای کامل و منسجم متن تبدیل میکنه. این روش اجازه میده در میانهی مسیر، اصلاحات انجام بشه و کنترل بیشتری روی خروجی داشت. به گفتهی دیپمایند، این کار باعث میشه خروجیها منسجمتر و از نظر منطقی، مرتبطتر باشن؛ چیزی که مخصوصاً برای کارهایی مثل تولید کد و ویرایش متن خیلی مؤثره، چون دقت، انسجام و امکان بازبینی تو این حوزهها خیلی مهمه.
Gemini Diffusion بهجای اینکه متن رو از چپ به راست و بهصورت خطی تولید کنه، یکباره بخشهای کامل از متن رو تولید میکنه — و این کار رو خیلی سریعتر از مدلهای سنتی انجام میده. دیپمایند گفته این سیستم میتونه با سرعت ۱۴۷۹ توکن بر ثانیه (بدون احتساب سربار سیستم) کار کنه و تأخیر اولیهی اون فقط ۰.۸۴ ثانیهست.
بهگفتهی «برندن اوداناهیو»، پژوهشگر دیپمایند، این مدل توی کارهای برنامهنویسی حتی میتونه به سرعت ۲۰۰۰ توکن در ثانیه هم برسه، حتی وقتی سربارهایی مثل توکنیزیشن، آمادهسازی و بررسیهای ایمنی رو هم در نظر بگیریم.
«اوریول وینیالز»، معاون پژوهش دیپمایند و یکی از مدیران پروژه Gemini، عرضهی این مدل جدید رو یه دستاورد شخصی توصیف کرده و گفته: «همیشه آرزو داشتم بتونم نیاز به تولید متن از چپ به راست رو حذف کنم.» توی نسخهی نمایشی مدل، سرعت خروجی اونقدری بالا بوده که برای دیدن عملکردش، مجبور شدن ویدیو رو آهسته پخش کنن.
در آزمونها، Gemini Diffusion عملکردی تقریباً برابر با نسخهی Gemini 2.0 Flash Lite داشته. توی وظایف برنامهنویسی مثل HumanEval (با دقت ۸۹.۶٪ در مقابل ۹۰.۲٪) و MBPP (۷۶٪ در مقابل ۷۵.۸٪) نتایج تقریباً مساوی بوده.
حتی توی برخی آزمونها مثل LiveCodeBench (۳۰.۹٪ در مقابل ۲۸.۵٪) و LBPP (۵۶.۸٪ در مقابل ۵۶٪)، Gemini Diffusion کمی بهتر ظاهر شده. با این حال، توی حوزههایی مثل استدلال علمی (GPQA Diamond) و آزمون چندزبانهی Global MMLU Lite ضعیفتر عمل کرده و بهترتیب امتیازهای ۴۰.۴٪ و ۶۹.۱٪ رو گرفته، در حالی که مدل Flash Lite امتیازهای بالاتری بهدست آورده (۵۶.۵٪ و ۷۹٪).
به این ترتیب، برای اولینبار یه مدل زبانی مبتنی بر تکنیک دیفیوژن تونسته به سطح عملکرد مدلهای رایج فعلی برسه — حتی با وجود اینکه Gemini 2.0 Flash-Lite یه مدل اقتصادیتر و قدیمیتر از گوگله.
«جک ری»، دانشمند ارشد دیپمایند، این دستاورد رو یه «لحظهی تاریخی» دونسته. تا پیش از این، مدلهای خودبازگشتی (autoregressive) همیشه توی کیفیت متن عملکرد بهتری داشتن و مشخص نبود که مدلهای دیفیوشن بتونن بهشون برسن. ری این موفقیت رو نتیجهی تحقیقات متمرکز و حل «تعداد زیادی» از چالشهای فنی دونسته.
@aipulse24
Forwarded from AI Pulse (Mohammad)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from AI Pulse (Mohammad)
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from دستاوردهای یادگیری عمیق(InTec)
مدل
با ۲۴ میلیارد پارامتر روی
Ollama
حجم بسیار کم، نتایج بسیار عالی (بنچمارک) از ویژگیهای این مدل هست.
Devstral: the best open source model for coding agentsبا ۲۴ میلیارد پارامتر روی
ollama اضافه شد.Ollama
حجم بسیار کم، نتایج بسیار عالی (بنچمارک) از ویژگیهای این مدل هست.
Forwarded from Linuxor ?
سمنتیک یو آی یه فریمورک UI مثل Bootstrap ولی با کلاسهای قابل خواناتر. مثلاً بهجای btn-primary، مینویسی ui primary button — خود جملهست.
خودت بخونش، راحتتر درکش میکنی.
برای ساخت سریع UI تمیز و قابل کاستوم، تو پروژههای MVP یا دمو واقعاً میدرخشه.
github.com/Semantic-Org/Semantic-UI
@Linuxor
خودت بخونش، راحتتر درکش میکنی.
برای ساخت سریع UI تمیز و قابل کاستوم، تو پروژههای MVP یا دمو واقعاً میدرخشه.
github.com/Semantic-Org/Semantic-UI
@Linuxor
Forwarded from cyru55 unofficial channel (cyru55)
Forwarded from Syntax | سینتکس (alireza-fa)
نمونهبرداری و کاهش چشمگیر هزینهها در Tracing بدون از دست دادن Visibility
قبل اینکه بریم سراغ sampling توضیح کوتاهی درباره trace و span بخونیم:
یک trace رو میتونیم بهعنوان نماینده ی یک کار کامل تو سیستم در نظر بگیریم. مثلا وقتی کاربر درخواست ثبت سبد خرید میده، این عملیات بهصورت کامل یک Trace حساب میشه.
هر Span یک بخش کوچک از اون Trace هست. مثلاً برای ثبت سبد خرید، ممکنه چند سرویس درگیر بشن (مثل بررسی موجودی، محاسبهی تخفیف، ثبت در پایگاه داده و ...) که هر کدوم از این مراحل میتونه یک Span جدا باشه. در نهایت، این Spanها کنار هم قرار میگیرن و یک کار کامل یعنی trace رو تشکیل میدن.
پس با استفاده از traces (یا همون ردپاها)، میتونید با دقت بررسی کنید یک درخواست از کجا شروع شده، به کدوم سرویسها رفته، و حتی در هر فانکشن یا لایه چقدر زمان برده تا پردازش بشه.
میتونید اطلاعات اضافی (Attributes) یا رویدادهایی که اتفاق افتاده رو هم به هر Span اضافه کنید. در کل، Trace ابزار فوقالعادهای برای تحلیل دقیق و عمیق رفتار سیستمتونه.
اما یه مشکلی هست:
تریس کردن همهی درخواستها هزینهی زیادی داره، هم از نظر حافظه و پهنای باند و هم هزینهی پردازش و ذخیرهسازی.
در واقع، بیشتر درخواستهایی که وارد سیستم شما میشن بدون خطا و با latency مناسب انجام میشن. پس واقعا نیازی به نگهداری صد درصد تریس ها ندارید.
شما فقط به نمونه هایی از کل تریس ها نیاز دارید. اینجاست که مفهوم Sampling و یا همون نمونه برداری وارد میشه.
نمونه برداری یعنی چی؟
نمونه برداری یعنی تصمیم بگیریم کدوم Traceها نگهداری (Sampled) بشه و کدوم رو حذف کنیم (Not Sampled).
هدف اینه که با یه درصد کوچیک و حسابشده از دادهها، تصویری واضح از وضعیت سیستم داشته باشیم.
مثلا اگه شما هزار تا Trace در ثانیه تولید میکنید، نگه داشتن ۱۰۰٪ اونا هم پرهزینهست و هم اغلب غیرضروری. توی این شرایط، یه نرخ Sampling حتی در حد ۱٪ هم میتونه نماینده خوبی از رفتار کلی سیستم باشه.
چه زمانی باید از Sampling استفاده کنیم؟
* وقتی تعداد زیادی Trace در ثانیه تولید میکنید (مثلا بیشتر از ۱۰۰۰ تا)
* وقتی بیشتر ترافیک شما سالم و بدون خطاست
* وقتی بتونید با قواعد خاصی (مثل خطا داشتن یا latency زیاد) تصمیم بگیرید که چه Traceهایی مهمترن
* وقتی بودجه محدودی برای observability دارید
همچنین ما دو نوع نمونه برداری داریم:
1. Head Sampling
اینجوریه که تو لحظه ای که یک تریس ایجاد میشه، براساس ID و بدون درنظر گرفتن محتوا تصمیمگیری میکنه که این تریس سمپل هستش یا نه.
مزیتش اینه ساده و سریعه، ولی نمیتونه مثلا تشخیص بده که آیا داخل اون Trace خطا بوده یا نه.
مثال استفادش مثلا میگیم پنجاه درصد کل درخواست هارو نگه دار.
2. Tail Sampling
نمونه برداری بعد از اینکه کل Trace جمعآوری شد. میتونه براساس شرایطی مثل داشتن خطا، زیاد بودن latency، یا حتی اطلاعات مربوط به یک سرویس خاص تصمیم بگیره. خیلی قدرتمنده ولی نسب به head sampling منابع و هزینه بیشتری میخواد.
مثال tail sampling:
– هر Trace که error داشته باشه رو حتما نگه دار
– اگه latency بالای ۳ ثانیه بود، نگه دار
– تریس هایی که از سرویس جدیدمون شروع میشن رو بیشتر نگه دار
گاهی ترکیب Head و Tail Sampling بهترین راهه
مثلا ممکنه یه سیستم خیلی پرحجم اول با Head Sampling فقط ۱۰٪ دادهها رو رد کنه، بعد اون ۱۰٪ رو بیاره داخل یه سیستم Tail Sampling تا براساس هوشمندی بیشتر تصمیم بگیره چی رو نگه داره.
پیاده سازی عملی:
ما تو پروژه اپن سورس و مدرن Quick-Connect از opentelemetry برای جمع آوری تریس ها استفاده کردیم و از head sampling هم برای نمونه برداری استفاده کردیم که توی کانفیگ میتونید مشخص کنید به چه صورت باشه.
اگه 0 تنظیم کنید هیچی تریس نمیکنه و اگه 1 تنظیم کنیم صد درصد تریس میکنه.
برای اینکه مشخص کنید ده درصد باشه میتونید روی 0.1 تنظیمش کنید.
https://github.com/syntaxfa/quick-connect/tree/main/adapter/observability/traceotela
#trace #sampling #opentelemetry #observability
@Syntax_fa
قبل اینکه بریم سراغ sampling توضیح کوتاهی درباره trace و span بخونیم:
یک trace رو میتونیم بهعنوان نماینده ی یک کار کامل تو سیستم در نظر بگیریم. مثلا وقتی کاربر درخواست ثبت سبد خرید میده، این عملیات بهصورت کامل یک Trace حساب میشه.
هر Span یک بخش کوچک از اون Trace هست. مثلاً برای ثبت سبد خرید، ممکنه چند سرویس درگیر بشن (مثل بررسی موجودی، محاسبهی تخفیف، ثبت در پایگاه داده و ...) که هر کدوم از این مراحل میتونه یک Span جدا باشه. در نهایت، این Spanها کنار هم قرار میگیرن و یک کار کامل یعنی trace رو تشکیل میدن.
پس با استفاده از traces (یا همون ردپاها)، میتونید با دقت بررسی کنید یک درخواست از کجا شروع شده، به کدوم سرویسها رفته، و حتی در هر فانکشن یا لایه چقدر زمان برده تا پردازش بشه.
میتونید اطلاعات اضافی (Attributes) یا رویدادهایی که اتفاق افتاده رو هم به هر Span اضافه کنید. در کل، Trace ابزار فوقالعادهای برای تحلیل دقیق و عمیق رفتار سیستمتونه.
اما یه مشکلی هست:
تریس کردن همهی درخواستها هزینهی زیادی داره، هم از نظر حافظه و پهنای باند و هم هزینهی پردازش و ذخیرهسازی.
در واقع، بیشتر درخواستهایی که وارد سیستم شما میشن بدون خطا و با latency مناسب انجام میشن. پس واقعا نیازی به نگهداری صد درصد تریس ها ندارید.
شما فقط به نمونه هایی از کل تریس ها نیاز دارید. اینجاست که مفهوم Sampling و یا همون نمونه برداری وارد میشه.
نمونه برداری یعنی چی؟
نمونه برداری یعنی تصمیم بگیریم کدوم Traceها نگهداری (Sampled) بشه و کدوم رو حذف کنیم (Not Sampled).
هدف اینه که با یه درصد کوچیک و حسابشده از دادهها، تصویری واضح از وضعیت سیستم داشته باشیم.
مثلا اگه شما هزار تا Trace در ثانیه تولید میکنید، نگه داشتن ۱۰۰٪ اونا هم پرهزینهست و هم اغلب غیرضروری. توی این شرایط، یه نرخ Sampling حتی در حد ۱٪ هم میتونه نماینده خوبی از رفتار کلی سیستم باشه.
چه زمانی باید از Sampling استفاده کنیم؟
* وقتی تعداد زیادی Trace در ثانیه تولید میکنید (مثلا بیشتر از ۱۰۰۰ تا)
* وقتی بیشتر ترافیک شما سالم و بدون خطاست
* وقتی بتونید با قواعد خاصی (مثل خطا داشتن یا latency زیاد) تصمیم بگیرید که چه Traceهایی مهمترن
* وقتی بودجه محدودی برای observability دارید
همچنین ما دو نوع نمونه برداری داریم:
1. Head Sampling
اینجوریه که تو لحظه ای که یک تریس ایجاد میشه، براساس ID و بدون درنظر گرفتن محتوا تصمیمگیری میکنه که این تریس سمپل هستش یا نه.
مزیتش اینه ساده و سریعه، ولی نمیتونه مثلا تشخیص بده که آیا داخل اون Trace خطا بوده یا نه.
مثال استفادش مثلا میگیم پنجاه درصد کل درخواست هارو نگه دار.
2. Tail Sampling
نمونه برداری بعد از اینکه کل Trace جمعآوری شد. میتونه براساس شرایطی مثل داشتن خطا، زیاد بودن latency، یا حتی اطلاعات مربوط به یک سرویس خاص تصمیم بگیره. خیلی قدرتمنده ولی نسب به head sampling منابع و هزینه بیشتری میخواد.
مثال tail sampling:
– هر Trace که error داشته باشه رو حتما نگه دار
– اگه latency بالای ۳ ثانیه بود، نگه دار
– تریس هایی که از سرویس جدیدمون شروع میشن رو بیشتر نگه دار
گاهی ترکیب Head و Tail Sampling بهترین راهه
مثلا ممکنه یه سیستم خیلی پرحجم اول با Head Sampling فقط ۱۰٪ دادهها رو رد کنه، بعد اون ۱۰٪ رو بیاره داخل یه سیستم Tail Sampling تا براساس هوشمندی بیشتر تصمیم بگیره چی رو نگه داره.
پیاده سازی عملی:
ما تو پروژه اپن سورس و مدرن Quick-Connect از opentelemetry برای جمع آوری تریس ها استفاده کردیم و از head sampling هم برای نمونه برداری استفاده کردیم که توی کانفیگ میتونید مشخص کنید به چه صورت باشه.
اگه 0 تنظیم کنید هیچی تریس نمیکنه و اگه 1 تنظیم کنیم صد درصد تریس میکنه.
برای اینکه مشخص کنید ده درصد باشه میتونید روی 0.1 تنظیمش کنید.
https://github.com/syntaxfa/quick-connect/tree/main/adapter/observability/traceotela
#trace #sampling #opentelemetry #observability
@Syntax_fa
Forwarded from یک برنامه نویس تنبل (The Lazy 🌱)
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 این خط پایان ترجمه است؛
این شروع همکاریهای بینالمللی و گفتگوی ملتها است و دیگر به زبان محدود نخواهد بود!
گوگل میت قابلیت ترجمه همزمان زنده را فعال کرده؛
کاربران میتوانند در لحظه صحبت افراد را به زبان خود یا هر زبانی بشنوند!
#خبر
@TheRaymondDev
این شروع همکاریهای بینالمللی و گفتگوی ملتها است و دیگر به زبان محدود نخواهد بود!
گوگل میت قابلیت ترجمه همزمان زنده را فعال کرده؛
کاربران میتوانند در لحظه صحبت افراد را به زبان خود یا هر زبانی بشنوند!
#خبر
@TheRaymondDev
Forwarded from Gopher Academy
🔵 عنوان مقاله
Compress: Optimized Compression Packages for Go
🟢 خلاصه مقاله:
مقاله به تجزیه و تحلیل جامع استانداردهای مختلف فشردهسازی پرداخته که شامل zstandard، S2، gzip، snappy، و zip میباشد. هر یک از این استانداردها خصوصیات منحصر به فردی دارند و بسته به نیاز کاربردی، سرعت و کارایی فشردهسازی، مزایای مختلفی ارائه میدهند. این مقاله به خوبی ویژگیهای کلیدی و موارد استفاده ایدهآل هر استاندارد را خلاصه کرده است تا افراد و سازمانها بتوانند بر اساس نیازهای خاص فشردهسازی دادههای خود تصمیم گیری کنند.
🟣لینک مقاله:
https://golangweekly.com/link/169230/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Compress: Optimized Compression Packages for Go
🟢 خلاصه مقاله:
مقاله به تجزیه و تحلیل جامع استانداردهای مختلف فشردهسازی پرداخته که شامل zstandard، S2، gzip، snappy، و zip میباشد. هر یک از این استانداردها خصوصیات منحصر به فردی دارند و بسته به نیاز کاربردی، سرعت و کارایی فشردهسازی، مزایای مختلفی ارائه میدهند. این مقاله به خوبی ویژگیهای کلیدی و موارد استفاده ایدهآل هر استاندارد را خلاصه کرده است تا افراد و سازمانها بتوانند بر اساس نیازهای خاص فشردهسازی دادههای خود تصمیم گیری کنند.
🟣لینک مقاله:
https://golangweekly.com/link/169230/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
GitHub
GitHub - klauspost/compress: Optimized Go Compression Packages
Optimized Go Compression Packages. Contribute to klauspost/compress development by creating an account on GitHub.
Forwarded from محتوای آزاد سهراب
متأسفانه چون به چشم خودم دیدم که یکجایی pipe ( | ) رو با && اشتباه گرفته بودن، این مطلب رو صرفاً مینویسم تا فرقشون رو به صورت خلاصه بگم. بعداً هم اگر حال داشته باشم یک مطلب کلیتر توی بلاگم با عکس و نمودار و اینا مینویسم که فرق کلیشو بگم.
خب اول از همه با پایپ شروع میکنیم، پایپ چی هستش؟
مثلاً، من یک فایل دارم به اسم foo.txt میخوام ببینم این فایل من چند خط هستش.
چیکار میکنم؟
اینطوری خروجی دستور اول رو به عنوان ورودی دستور دوم که wc -l برای نشان دادن تعداد خط هستش میفرستم و مثلاً خروجی ۹۱ رو دریافت میکنم.
از پایپ میتونید استفادههای دیگهای هم بکنید :).
حالا && چیه؟
مثلاً، من میخوام یک دایرکتوری بسازم و بعد بهش وارد بشم یا اول سیستمم رو آپگرید کنم بعدش درجا ریاستارتش کنم:
این کلا یک توضیح ساده بود :)
@SohrabContents
خب اول از همه با پایپ شروع میکنیم، پایپ چی هستش؟
عملگر Pipe ( |) در شل به شما اجازه میدهد خروجی یک دستور را مستقیماً به ورودی دستور بعدی منتقل کنید. به عبارت سادهتر، وقتی از | استفاده میکنید، آنچه را که در خروجی دستور اول تولید میشود، به عنوان ورودی دستور دوم دریافت میشود.
مثلاً، من یک فایل دارم به اسم foo.txt میخوام ببینم این فایل من چند خط هستش.
چیکار میکنم؟
cat foo.txt | wc -l
اینطوری خروجی دستور اول رو به عنوان ورودی دستور دوم که wc -l برای نشان دادن تعداد خط هستش میفرستم و مثلاً خروجی ۹۱ رو دریافت میکنم.
از پایپ میتونید استفادههای دیگهای هم بکنید :).
حالا && چیه؟
در شل (Shell)، عملگر && هم برای زنجیرهسازی دستورات به کار میرود، اما با یک شرط: دستور بعد از && فقط زمانی اجرا میشود که دستور قبل از آن بدون خطا (با موفقیت) اجرا شده باشد.
مثلاً، من میخوام یک دایرکتوری بسازم و بعد بهش وارد بشم یا اول سیستمم رو آپگرید کنم بعدش درجا ریاستارتش کنم:
mkdir foo && cd foo
sudo pacman -Syu --noconfirm && reboot
این کلا یک توضیح ساده بود :)
@SohrabContents
Forwarded from Python Hints
#تجربه #جنگو
چیزی که توی کدهای
تست نویسی برای سرویسهای third-party هست که از طریق API استفاده میکنیم.
همینجا اضافه کنم؛ همیشه فرض ما این هست که هیچ اتفاقی برای اون سرویسها نمیوفته ولی چندتا سوال؛
۱- سرویس ما چه اتفاقی باید براش بیوفته اگر سرویس دهنده تغییراتی داشته باشه ؟ و درخواستهای ما 400, 404 , ... برگرده ؟
۲- چه اتفاقی برای سرویسهای ما خواهد افتاد اگر سرویس دهنده بخاطر محدودیتهای جدید یا .... بهمون 500, 503, ... برگردونه ؟
اینا چیزهایی هست که ننوشتن تست براش میتونه خسارت زیادی به سرویس بزنه مثلاً:
فرض کنید، من یک فروشگاه اینترنتی دارم؛ اگر سرویس درگاه پرداخت به هر دلیلی کار نکنه یعنی فروشگاه من هیچ خروجی نداره دوتا مورد باید هرچه سریعتر انجام بشه :
۱- یک ایمیل
۲- خطای مناسب (اینکه سرویس پرداخت غیرفعال هست) به کاربر نشون داده بشه تا از رفرش و
بخصوص روی سرویسهای auto-scale که با زیاد شدن درخواست سرورهای جدیدی بالا میاد و این یعنی هزینه بیشتر.
توی زبانهای برنامهنویسی مختلف ابزارهای متفاوتی برای اینکار وجود داره؛ توی پایتون هم پکیج
Responses
کمک میکنه اینکار رو انجام بدید.
واقعاً نمیدونم چرا؛ ولی اینکه این تستهای توی کدهای شرکتهای بزرگ داخلی نمیبینم یا حتی توی آموزشها و .... مغزم سوت میکشه.
بعد اینا از
حالا که این موارد رو توی آموزش و کدها ندیدم (توی سرویسهایی که تیم خودم مینویسه همیشه وجود داره)
گفتم بگم که شما خودتون یاد بگیرید، شاید یک روزی کدهای شما به من رسید یا هم تیمی شدیم.
چیزی که توی کدهای
Django توی ایران به معنای واقعی اصلا و هیچوقت ندیدم؛ اما جزو مهمترین موارد هست.تست نویسی برای سرویسهای third-party هست که از طریق API استفاده میکنیم.
همینجا اضافه کنم؛ همیشه فرض ما این هست که هیچ اتفاقی برای اون سرویسها نمیوفته ولی چندتا سوال؛
۱- سرویس ما چه اتفاقی باید براش بیوفته اگر سرویس دهنده تغییراتی داشته باشه ؟ و درخواستهای ما 400, 404 , ... برگرده ؟
۲- چه اتفاقی برای سرویسهای ما خواهد افتاد اگر سرویس دهنده بخاطر محدودیتهای جدید یا .... بهمون 500, 503, ... برگردونه ؟
اینا چیزهایی هست که ننوشتن تست براش میتونه خسارت زیادی به سرویس بزنه مثلاً:
فرض کنید، من یک فروشگاه اینترنتی دارم؛ اگر سرویس درگاه پرداخت به هر دلیلی کار نکنه یعنی فروشگاه من هیچ خروجی نداره دوتا مورد باید هرچه سریعتر انجام بشه :
۱- یک ایمیل
critical برای ادمین بره تا بتونه پیگیری کنه موضوع رو از سرویس دهنده۲- خطای مناسب (اینکه سرویس پرداخت غیرفعال هست) به کاربر نشون داده بشه تا از رفرش و
DDOS شدن توسط کاربرهای خودمون جلوگیری بشهبخصوص روی سرویسهای auto-scale که با زیاد شدن درخواست سرورهای جدیدی بالا میاد و این یعنی هزینه بیشتر.
توی زبانهای برنامهنویسی مختلف ابزارهای متفاوتی برای اینکار وجود داره؛ توی پایتون هم پکیج
Responses
کمک میکنه اینکار رو انجام بدید.
واقعاً نمیدونم چرا؛ ولی اینکه این تستهای توی کدهای شرکتهای بزرگ داخلی نمیبینم یا حتی توی آموزشها و .... مغزم سوت میکشه.
بعد اینا از
gorilla تست صحبت میکنند.حالا که این موارد رو توی آموزش و کدها ندیدم (توی سرویسهایی که تیم خودم مینویسه همیشه وجود داره)
گفتم بگم که شما خودتون یاد بگیرید، شاید یک روزی کدهای شما به من رسید یا هم تیمی شدیم.
GitHub
GitHub - getsentry/responses: A utility for mocking out the Python Requests library.
A utility for mocking out the Python Requests library. - getsentry/responses
Forwarded from Python Hints
یادآوری کنم؛ خیلی قبلتر توی یک سخنرانی پایتون به
ولی
اما اگر از زبانهای برنامهنویسی دیگه میاید؛ این تقریباً همون کارهای
wiremock اشاره کرده بودم.ولی
responses هم آپدیتتر هست هم بچههای پایتون دولوپر باهاش راحتتر کار میکنند.اما اگر از زبانهای برنامهنویسی دیگه میاید؛ این تقریباً همون کارهای
wiremock رو انجام میدهForwarded from محتوای آزاد سهراب
هرچند بیشتر برنامههایی که روی ویندوز استفاده میکنید یک نسخه برای گنو/لینوکس هم دارن، مثل vlc، فایرفاکس و کروم، باز هم توصیه میکنم اگر خواستید به گنو/لینوکس سوییچ کنید از سایت زیر کمک بگیرید، جایگزین ابزارهاتون رو پیدا کنید، امتحانشون کنید و بعد تصمیم بگیرید.
https://alternativeto.net
@SohrabContents
https://alternativeto.net
@SohrabContents
AlternativeTo
AlternativeTo - Crowdsourced software recommendations
AlternativeTo lets you find apps and software for Windows, Mac, Linux, iPhone, iPad, Android, Android Tablets, Web Apps, Online, Windows Tablets and more by recommending alternatives to apps you already know.
Forwarded from Linuxor ?
یادتون میاد چقدر دردسر بود تشخیص چهره با OpenCV؟ face_recognition تمام پیچیدگیهای پردازش تصویر رو پشت یه API سادهس. نیازی به تنظیم پارامترهای عجیب و غریب نیست؛ فقط عکس رو بدی و جواب رو بگیر. برای پروژههای کوچیک و استارتاپهای تازه خوبه،
دیجیتال میکآپ هم داره مثلا اینجا واسه جو بایدن رژ لب زدن.
github.com/ageitgey/face_recognition
@Linuxor
دیجیتال میکآپ هم داره مثلا اینجا واسه جو بایدن رژ لب زدن.
github.com/ageitgey/face_recognition
@Linuxor
Forwarded from Python Hints
خیلی رفته تو مخم، یک وقت خالی پیدا کنم و یک تیم تشکیل بدم و دوره آموزش
یک پروژهای رو بسازم، دپلوی کنم و بگم اوکی قدم بعدی اینه که K8s بذارید بجای docker compose و ...
ولی قطعاً دوره طولانی خواهد شد 🤔
نمیدونم ارزش وقت گذاشتن و هزینه کردن داره یا نه (۹۰٪ مخاطب این دورهها نخواهند بود)
یعنی دوره مقدمات پایتون مخاطب و دیده شدن بیشتری داره تا این موارد.
Django و Fastapi با تمام استانداردهایی که بلدم بزنم.یک پروژهای رو بسازم، دپلوی کنم و بگم اوکی قدم بعدی اینه که K8s بذارید بجای docker compose و ...
ولی قطعاً دوره طولانی خواهد شد 🤔
نمیدونم ارزش وقت گذاشتن و هزینه کردن داره یا نه (۹۰٪ مخاطب این دورهها نخواهند بود)
یعنی دوره مقدمات پایتون مخاطب و دیده شدن بیشتری داره تا این موارد.
Forwarded from کانال مهرداد لینوکس
🦊 اگه از فایرفاکس استفاده میکنی و به امنیت و حریمخصوصی اهمیت میدی، این پست مخصوص توئه!
میدونستی میتونی کل سرویس Firefox Sync رو خودت روی سرورت راهاندازی کنی؟
یعنی دیگه لازم نیست رمزها، بوکمارکها و تاریخچهی مرورگرتو بسپری دست فرد دیگری مثل Mozilla!
✅ با self-host کردن Firefox Sync Server:
کنترل کامل روی اطلاعاتت داری
میتونی بدون حساب فایرفاکس Sync کنی
اگه شبکه داخلی داری (مثلاً خونه یا شرکت)، همه مرورگرها همزمان و خصوصی همگام میشن
🔥چطوری ؟
توضیح بیشتر ؟ لینک گیت هاب پروژه ، لینک اصلی پروژه
#linux
@MehrdadLinuxchannel
میدونستی میتونی کل سرویس Firefox Sync رو خودت روی سرورت راهاندازی کنی؟
یعنی دیگه لازم نیست رمزها، بوکمارکها و تاریخچهی مرورگرتو بسپری دست فرد دیگری مثل Mozilla!
✅ با self-host کردن Firefox Sync Server:
کنترل کامل روی اطلاعاتت داری
میتونی بدون حساب فایرفاکس Sync کنی
اگه شبکه داخلی داری (مثلاً خونه یا شرکت)، همه مرورگرها همزمان و خصوصی همگام میشن
🔥چطوری ؟
docker compose up -d --build && docker compose logs -f
توضیح بیشتر ؟ لینک گیت هاب پروژه ، لینک اصلی پروژه
#linux
@MehrdadLinuxchannel
Forwarded from Python BackendHub (Mani)
یک پروداکت MVP خیلی قشنگ دیدم که ۲ تا سافتور انجینر نوشتنش
https://www.hypertune.com/
فیچر فلگی هست که تایپ سیفه! اگه نمیدونید فیچر فلگ چیه توصیه میکنم گوگل کنید. ولی تایپ سیف بودنش یعنی چی؟ یعنی شما یک سری فلگ میسازین, بعد از روش تایپ میسازه براتون. مثلا میدونه فلگ x ورودی تایپ y و z میگیره و خروجی مثلا بولین میده.
قبلا تو کورس پرسونال برندینگ گفته بودم سعی کنید بلاگ و اینا نسازین چون چالش و ارزشی نداره :) خیلیا پرسیده بودن چی بسازیم. کافیه به اطرفاتون نگاه کنید و سعی کنید یک مشکلی که دولوپر ها دارن رو حل کنید.
@PyBackendHub
https://www.hypertune.com/
فیچر فلگی هست که تایپ سیفه! اگه نمیدونید فیچر فلگ چیه توصیه میکنم گوگل کنید. ولی تایپ سیف بودنش یعنی چی؟ یعنی شما یک سری فلگ میسازین, بعد از روش تایپ میسازه براتون. مثلا میدونه فلگ x ورودی تایپ y و z میگیره و خروجی مثلا بولین میده.
قبلا تو کورس پرسونال برندینگ گفته بودم سعی کنید بلاگ و اینا نسازین چون چالش و ارزشی نداره :) خیلیا پرسیده بودن چی بسازیم. کافیه به اطرفاتون نگاه کنید و سعی کنید یک مشکلی که دولوپر ها دارن رو حل کنید.
@PyBackendHub
Hypertune
Hypertune | Type-safe, Git-based feature flags, experimentation, analytics, and app configuration
Hypertune is the most flexible platform for feature flags, experimentation, analytics, and app configuration. Optimized for TypeScript, React, and Next.js.
Forwarded from Md Daily (Mahan)
چند وقت پیش دانشگاه یه ارائه ی ai داشتم به بچه ها گفتم این چیزی که الان میبینید مال الان هست تا هفته ی دیگه مطالبی که بهتون راجب ابزار ها گفتم معتبر نیست. تا همین الان بعد از کنفرانس google io، فعال شدن ویس Grok توی نسخه ی اندروید، اپن سورس شدن گیت هاب کوپایلت و معرفی گیت هاب کوپایلت agent نصف مطالب ارائه شده راجب ابزار ها منسوخ شدن :)
🆔 @MdDaily
🆔 @MdDaily