خرسِ برنامه نویس
167 subscribers
166 photos
12 videos
1 file
282 links
من 5 درصد موسیقی ام! 30 درصد خواب! و بقیه به دنبال یافتن چیزی !!!
Download Telegram
Forwarded from Science Magazine
This media is not supported in your browser
VIEW IN TELEGRAM
چرا فکر می‌کنید حق با شماست حتی اگر اشتباه کنید
جولیا گالف
Julia Galef
Why you think you're right even if you're wrong
#TED

زاویه‌ی دید، همه چیز است، بویژه وقتی پای امتحان کردنِ اعتقاداتتان در میان باشد. آیا شما یک سرباز، در صدد حفاظت از دیدگاه‌های خود به هر قیمتی هستید یا یک مامور شناسایی که کنجکاوی، شما را به جلو می‌برد؟ «جولیا گالف» انگیزه‌هایی که در پسِ این دو طرز تفکر قرار دارند و چگونگیِ شکل گیریِ روشِ تفسیرِ اطلاعات توسط آنها را با ذکر داستانی تاریخی از فرانسه‌ی قرن نوزدهم بررسی می‌کند.

🆔 Science Magazine
👍4🔥3
🖊️ Understanding Strokes in Typography

A stroke is a fundamental part of each letter in a typeface. It’s the line—or curved shape—that makes up the main body of a character. For example, letters like “l” and “w” use straight strokes, while letters like “c” and “o” have curved strokes.

Some letters, such as “N,” “M,” or “Y,” have angled strokes that are considered secondary to their main, vertical stems. Other letters with two diagonal lines, like “A” or “V,” usually have one main stem and a secondary stroke to complete their shape.

Read this short post here.
🔥4
What is an Ascender in Typography?
In typography, an ascender is the part of a lowercase letter that rises above the x-height (the central line where most lowercase letters sit). For example, the tall strokes in letters like “b,” “d,” and “h” are ascenders. These upward extensions help create a unique rhythm and texture in text, influencing how easily we recognize individual letters at a glance.

What is a Descender in Typography?
A descender is essentially the opposite of an ascender—it’s the part of a lowercase letter that falls below the baseline (the invisible line on which letters rest). Letters like “g,” “j,” “p,” “q,” and “y” often have descenders, adding variety to a line of text and helping us distinguish between similar shapes. Some letterforms even feature decorative descenders to create a more artistic or playful feel.

📄Continue reading the blog post
🔥4
Colder Heavens
Blanco White
قهوه با سیروپ بوسه
You❤️
#SoftPop
6🔥1
اقا یه سری مقاله میکروسرویسمون نشه؟
🔥9
Microservices Philosophy, Why they're here and Why they're hard to make?

Microservices are the rockstars of modern software architecture. Everyone talks about them, everyone wants them—but few fully understand what it takes to make them work. They’ve earned their hype, but they’re not the magic wand people often think they are. If you’ve ever wondered why they exist or why they can turn into a giant headache, buckle up. Let’s unpack this together.

📄Continue reading the blog post
🔥6
Boundaries, Boundaries, Boundaries Pt.1

When we get into microservices, we’re really talking about something beyond just splitting a monolith into smaller parts. We’re talking about deliberately designing boundaries—where each piece of your system starts and ends, how they talk to each other, and how you keep one team’s changes from upending the rest of your ecosystem. Good boundaries are what separate truly scalable, maintainable architectures from thinly disguised “distributed monoliths.”

If you’ve seen microservice initiatives that end up as giant balls of mud—just spread out across the network—you know what I mean. We want to avoid that at all costs. In this deep dive, we’ll tackle four core concepts that set the foundation for truly robust microservice systems: Encapsulation, Module Connections, Cohesion, and Coupling.

📄Continue reading the blog post
🔥4🤔1
یلداتون مبارک ❤️
6🔥1
Forwarded from tech-afternoon (Amin Mesbahi)
انواع استراتژی‌های تاب‌آوری نرم‌افزار (Resiliency Strategy)

مفهوم Resiliency یا تاب‌آوری، به توانایی یک سیستم برای بازیابی شرایط پایدار در صورت بروز خطا گفته می‌شه. حالا این بازیابی می‌تونی تلاش برای بازیابی باشه، یا انتخاب راه جایگزین. مثل اینکه شما ۲ بار تلاش می‌کنی از API آب‌وهوا مقدار دمای فعلی یک منطقه رو بگیری، هر بار با فاصله زمانی ۵ ثانیه API رو صدا می‌زنی ولی بعد از اینکه پاسخ موفق نمی‌گیری (تا اینجا به این می‌گن استراتژی retry) بعد تصمیم می‌گیری از cache آخرین مقداری که کم‌تر از ۵ ساعت گذشته وجود داشته رو استفاده کنی که فعلا کار راه بیوفته (استراتژی fallback) یا ... به هر کدوم از این رفتارها برای تداوم کار و مقابله با موانع، می‌گن resiliency strategy.

کتابخونه Polly محبوب‌ترین در بین دات‌نتی‌هاست. و تو دل Aspire هم ازش استفاده شده، برای درک بهتر ویدیوی Aspire که به زودی پابلیش می‌شه، خوبه یه مرور روی انواع استراتژی‌ها کنیم...
—————————
دو گروه اصلی داریم:

⚙️گروه استراتژی‌های Reactive (واکنشی)
وقتی به کار می‌رن که یک خطا یا مشکلی رخ داده و سیستم باید به شکلی واکنش نشون بده.

🛡 ۱: استراتژی Retry
فرضیه: خطاها موقتی هستن و ممکنه با کمی تأخیر و تلاش مجدد برطرف بشن.

در این استراتژی، سیستم تلاش می‌کنه که یک عملیات ناموفق رو بعد از یک بازه‌ی زمانی مشخص دوباره امتحان کنه. این بازه زمانی می‌تونه ثابت یا متغیر باشه (مثل Exponential Backoff). مثلاً اگر سرور موقتی قطع شده باشه، با چند بار Retry ممکنه مشکل حل بشه. در Polly، این با “Retry Policy” قابل پیاده‌سازی است. و تعداد دفعات و بازه زمانی بین هر تلاش به تصمیم ما وابسته است.

🛡 ۲: استراتژی Circuit-Breaker
فرضیه: وقتی سیستم به شدت دچار مشکل می‌شه، بهتره سریعاً فرآیندها متوقف بشن به جای اینکه کاربران منتظر بمونن.

چطور کمک می‌کنه؟ مدار رو قطع می‌کنه (اجرای درخواست‌ها رو متوقف می‌کنه) در زمانی که خطاها از حدی مشخص بیشتر می‌شن (مثل وقتی می‌فرسته به صف ولی هِی روی هم انباشت می‌شه و از اون طرف پردازش نمی‌شن)

شبیه به فیوز برق که اگر بیش از حد فشار وارد بشه، مدار رو قطع می‌کنه. این استراتژی به سیستم اجازه می‌ده برای مدتی مشخص درخواست‌ها رو به مقصد ارسال نکنه تا از خرابی‌های بیشتر جلوگیری بشه. مثلاً در Polly می‌تونید مدت‌زمانی که Circuit باز می‌مونه و شرایط بازگشت به حالت نرمال رو تنظیم کنیم.

🛡 ۳: استراتژی Fallback
فرضیه: خطا تداوم خواهد داشت؛ پس برای پلن B برنامه‌ریزی می‌کنیم.

چطوری کمک می‌کنه؟ یک مقدار یا راه حل جایگزین در صورت بروز یا تداوم خطا ارائه می‌ده.

وقتی یک عملیات شکست می‌خوره، به جای نمایش خطا به کاربر، یک نتیجه جایگزین برمی‌گرده. مثلاً به جای اینکه پیام “سرور API در دسترس نیست” نمایش داده بشه، می‌تونید یک مقدار ذخیره شده از کش رو ارائه بدید.

🛡 ۴: استراتژی Hedging
فرضیه: گاهی اوقات برخی مسیرها شاید کند یا حتی ناموفق باشن؛ پس بهتره چندین راه برای رسیدن به هدف در نظر بگیریم، هر کدوم زودتر جواب داد، همون.

چطوری کمک می‌کنه؟ برای یک کار، چند راه رو تلاش می‌کنه به طور موازی پی بگیره و منتظر اولین پاسخ موفق می‌مونه.

در این استراتژی، همزمان چند درخواست به چند مقصد مختلف ارسال می‌شه و اولین پاسخ موفق به عنوان نتیجه پذیرفته می‌شه. این کار برای کاهش زمان انتظار و بهبود اطمینان‌پذیری استفاده می‌شه.

⚙️گروه استراتژی‌های Proactive (کنشگر)
این استراتژی‌ها برای پیشگیری از بروز مشکلات در سیستم طراحی شده‌اند.

🛡 ۱: استراتژی Timeout
فرضیه: بعد از مدت زمانی مشخص، موفقیت بعیده.

چطوری کمک می‌کنه؟ تضمین می‌کنه که درخواست‌ها بیشتر از زمان مشخص منتظر نمی‌مونن.

در این استراتژی، زمان محدودی برای انجام یک عملیات در نظر گرفته می‌شه. اگر عملیات در این زمان به نتیجه نرسید، سیستم اون رو قطع می‌کنه. این کار مانع از این می‌شه که یک درخواست معلق منابع سیستم رو اشغال کنه.

🛡 ۲: استراتژی Rate Limiter
فرضیه: محدود کردن تعداد درخواست‌هایی که سیستم در یک بازه زمانی مشخص می‌پذیره (راهی برای کنترل بار ورودی).

چطوری کمک می‌کنه؟ اجرای درخواست‌ها رو محدود می‌کنه تا از حد مشخصی فراتر نره.

برای جلوگیری از بار زیاد روی سیستم، این استراتژی تعداد درخواست‌ها در یک بازه زمانی مشخص رو محدود می‌کنه. مثلاً اگر کاربران زیادی همزمان به سیستم درخواست بفرستن، Rate Limiter می‌تونه از خرابی جلوگیری کنه.

—————————

ما می‌تونیم از یک یا ترکیبی از چند استراتژی برای افزایش تاب‌آوری سیستم‌هامون استفاده کنیم.

🔗 رفرنس جهت مطالعه عمیق‌تر

💬 نظر؟ تجربه؟ سوال؟
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥2
Forwarded from Learning With M (Masoud DaneshPour)
جمله روز

The greatest enemy of knowledge is not ignorance, it is the illusion of knowledge.


- Stephen Hawking
🔥51
Forwarded from دانش، آگاهی
هنوز در روش استنتاج o1 شگفت‌زده بودیم که

امروز OpenAI نسخه‌ی o3 رو معرفی کرد.
برای توصیف فقط میتونم بگم وحشتناک هست عملکردش و حقیقتا میشه گفت خیلی به AGI نزدیک شده.

در جام‌جمشید خبرهای مربوط به عملکردش رو ببینید...

واقعا هیولایی است عجیب...
@daneshagahi
🔥6
Forwarded from Science For ‌Life (Alireza Nazari)
اگر هزار نامه که روی هر کدام یک آدرس نوشته شده را با هزار پاکت که روی آن‌ها هم آدرس نوشته شده، کاملاً قاطی کنیم و بعد به صورت شانسی هر نامه را داخل یک پاکت بگذاریم، تقریباً ۶۳ درصد احتمال دارد که حداقل یک نامه داخل پاکت درست خودش قرار بگیرد.

@science4lifee
4🔥2👍1
Forwarded from Science For ‌Life (Alireza Nazari)
Science For ‌Life
اگر هزار نامه که روی هر کدام یک آدرس نوشته شده را با هزار پاکت که روی آن‌ها هم آدرس نوشته شده، کاملاً قاطی کنیم و بعد به صورت شانسی هر نامه را داخل یک پاکت بگذاریم، تقریباً ۶۳ درصد احتمال دارد که حداقل یک نامه داخل پاکت درست خودش قرار بگیرد. @science4lifee
یا اینکه دو دست ورق را که خیلی خوب بُر زده شده‌اند را در نظر بگیرید. اگر کارت‌های این دو دسته را همزمان و یکی یکی رو کنیم (یعنی کارت اول از دسته اول را با کارت اول از دسته دوم، کارت دوم از دسته اول را با کارت دوم از دسته دوم و همینطور تا آخر مقایسه کنیم)، چه احتمالی وجود دارد که حداقل یک بار، دو کارت کاملاً یکسان (مثلاً هر دو کارت بی‌بی خاج باشند) با هم رو شوند؟ جواب باز هم حدود ۶۳ درصد است.

@science4lifee
5🔥2
کلا یک سری گزاره های بولد و خم ناشدنی رو جدی نگیرید!
👍3🔥3
کوتاه درمورد AI

فرض کنیم که ما به نقطه ای رسیدیم که AI توانایی حل هر‌گونه مسئله ای را در حوزه نرم افزار داشت!

در چنین زمانی، چه کسی مسئول تعریف مسئله خواهد بود؟

چه کسی مسئول جمع اوری اطلاعات و داده برای درک بهتر نیاز های سازمان؟

و هزاران مسئله ارتباطی دیگه...

یکمی زود نیست برای کنار رفتن از بازی؟
5🔥1