پلتفرم codewars فقط حل مسئله نیست، یاد گرفتن طرز فکره. Codewars یه پلتفرمه برای تمرین برنامهنویسی و حل مسئله با زبانهای مختلف؛
جایی که میتونی چالشهای کوچیک الگوریتمی حل کنی و مهارتت رو کمکم تقویت کنی.
چیزی که برای من Codewars رو واقعاً ارزشمند کرده، فقط حل کردن کاتاها نیست؛
بعد از حل مسئله، دیدن راهحل بقیهست.
مثلاً امروز روی یه چالش کار میکردم که در ظاهر ساده بود،
ولی تا زمانی که الگوی مسئله رو درست نفهمیدم، پیادهسازیش گیجکننده میشد.
بعد از اینکه خودم حلش کردم و رفتم سراغ solutions:
دیدم بعضیها همون مسئله رو با چند خط سادهتر حل کرده بودن
بعضیها از نگاه کاملاً متفاوتی استفاده کرده بودن
و بعضی راهحلها واقعاً طرز فکرم رو نسبت به مسئله عوض کرد
برای من این بخش دقیقاً مثل یه code review واقعی و رایگان عمل میکنه.
یه پیشنهاد ساده:
فرقی نمیکنه برنامهنویس باشی یا تو هر زمینهی دیگهای کار کنی—
اگر روزی فقط یک چالش کوچیک حل کنی:
توی یک ماه -> حدود ۳۰ تمرین
توی یک سال -> بیشتر از ۳۶۰ بار فکر کردن، تحلیل کردن و حل مسئله
این حجم تمرین، بدون اغراق:
طرز فکرت رو قویتر میکنه
حل مسئلهت رو بهتر میکنه
و تأثیرش رو مستقیم توی کارت میبینی
برای من Codewars فقط تمرین برنامهنویسی نیست؛
یه عادت خوبه برای رشد مداوم.
@DevTwitter | <Ahmad Aghazade/>
جایی که میتونی چالشهای کوچیک الگوریتمی حل کنی و مهارتت رو کمکم تقویت کنی.
چیزی که برای من Codewars رو واقعاً ارزشمند کرده، فقط حل کردن کاتاها نیست؛
بعد از حل مسئله، دیدن راهحل بقیهست.
مثلاً امروز روی یه چالش کار میکردم که در ظاهر ساده بود،
ولی تا زمانی که الگوی مسئله رو درست نفهمیدم، پیادهسازیش گیجکننده میشد.
بعد از اینکه خودم حلش کردم و رفتم سراغ solutions:
دیدم بعضیها همون مسئله رو با چند خط سادهتر حل کرده بودن
بعضیها از نگاه کاملاً متفاوتی استفاده کرده بودن
و بعضی راهحلها واقعاً طرز فکرم رو نسبت به مسئله عوض کرد
برای من این بخش دقیقاً مثل یه code review واقعی و رایگان عمل میکنه.
یه پیشنهاد ساده:
فرقی نمیکنه برنامهنویس باشی یا تو هر زمینهی دیگهای کار کنی—
اگر روزی فقط یک چالش کوچیک حل کنی:
توی یک ماه -> حدود ۳۰ تمرین
توی یک سال -> بیشتر از ۳۶۰ بار فکر کردن، تحلیل کردن و حل مسئله
این حجم تمرین، بدون اغراق:
طرز فکرت رو قویتر میکنه
حل مسئلهت رو بهتر میکنه
و تأثیرش رو مستقیم توی کارت میبینی
برای من Codewars فقط تمرین برنامهنویسی نیست؛
یه عادت خوبه برای رشد مداوم.
@DevTwitter | <Ahmad Aghazade/>
👍40❤10
بعضی وقتا گلوگاه performance دیتابیس از query یا infra نیست، از primary key میاد.
اUUID چون randomه، هر insert رو میفرسته یه جای متفاوت از B-treeی که برای ایندکس ها ساخته شده و ممکنه باعث شه درخت دوباره ساخت بشه؛ نتیجهاش cache miss، page split و write cost بالاتره. زیر بار دیتابیس زود به سقف CPU میرسه.
در مقابل، bigint auto-increment همیشه آخر index مینویسه و رفتار دیتابیس قابل پیشبینی میشه. تو تستهای واقعی، فقط با عوض کردن UUID به bigserial، throughput چند برابر بهتر شده بدون اینکه data model یا business logic تغییر کنه.
اprimary key تصادفی یعنی مالیات دائمی روی هر write
راه بهتر اینه که primary key داخلی bigint باشه و یه public UUID برای بیرون سیستم داشته باشی. اگه client-generated id لازم داری، میتونی از time-orderd مثله Snowflake استفاده کنی تا keyها تقریبا ترتیبی باشن و توی سیستم های توزیع شده هم یکتا باشن و هم index اذیت نشه.
@DevTwitter | <Go Talk | گو تاک/>
اUUID چون randomه، هر insert رو میفرسته یه جای متفاوت از B-treeی که برای ایندکس ها ساخته شده و ممکنه باعث شه درخت دوباره ساخت بشه؛ نتیجهاش cache miss، page split و write cost بالاتره. زیر بار دیتابیس زود به سقف CPU میرسه.
در مقابل، bigint auto-increment همیشه آخر index مینویسه و رفتار دیتابیس قابل پیشبینی میشه. تو تستهای واقعی، فقط با عوض کردن UUID به bigserial، throughput چند برابر بهتر شده بدون اینکه data model یا business logic تغییر کنه.
اprimary key تصادفی یعنی مالیات دائمی روی هر write
راه بهتر اینه که primary key داخلی bigint باشه و یه public UUID برای بیرون سیستم داشته باشی. اگه client-generated id لازم داری، میتونی از time-orderd مثله Snowflake استفاده کنی تا keyها تقریبا ترتیبی باشن و توی سیستم های توزیع شده هم یکتا باشن و هم index اذیت نشه.
@DevTwitter | <Go Talk | گو تاک/>
👍22❤10🍌5👎2
از اونجایی که من کلا همیشه به دنبال حداکثر سرعت، بهینه بودن و عملکرد هستم و همیشه اینارو یه جا میخوام،
مجبور میشم از کتابخونههای آماده استفاده نکنم و بشینم یه چیزی بهتر از اونارو طراحی کنم.
حالا ایندفعه fasthttp رو برای پایتون طراحی کردم، یه کتابخونهی ساده، سبک، مینیمال و زیبا برای ارسال درخواست های HTTP با حداکثر سرعت ممکن.
این کتابخونه از aiohttp، httpx و requests هم سریعتره و سینتکس مشابهای به هر سه داره و به راحتی میشه ازش استفاده کرد. کدنویسی sync و async رو همزمان پشتیبانی میکنه.
میتونید با دستور زیر کتابخونه رو نصب کنید:
یه مثال از کتابخونه:
گیت هاب پروژه:
https://github.com/shayanheidari01/fasthttp
@DevTwitter | <ShythonX/>
مجبور میشم از کتابخونههای آماده استفاده نکنم و بشینم یه چیزی بهتر از اونارو طراحی کنم.
حالا ایندفعه fasthttp رو برای پایتون طراحی کردم، یه کتابخونهی ساده، سبک، مینیمال و زیبا برای ارسال درخواست های HTTP با حداکثر سرعت ممکن.
این کتابخونه از aiohttp، httpx و requests هم سریعتره و سینتکس مشابهای به هر سه داره و به راحتی میشه ازش استفاده کرد. کدنویسی sync و async رو همزمان پشتیبانی میکنه.
میتونید با دستور زیر کتابخونه رو نصب کنید:
pip3 install -U pyfasthttp
یه مثال از کتابخونه:
from fasthttp import Client
with Client() as client:
resp = client.get("https://httpbin.org/get")
print(resp.status_code)
print(resp.json())
گیت هاب پروژه:
https://github.com/shayanheidari01/fasthttp
@DevTwitter | <ShythonX/>
❤30🍌24👎8👍4
حضور zod-ir در داکیومنت رسمی Zod + انتشار نسخه v1.5.4
از زمان انتشار نسخه 1.2 که فقط روی "ولیدیشن" تمرکز داشتم و در پست قبلی معرفی کردم، هدفم حل چالشهای دیتای ایرانی در Zod بود. اما در مسیر توسعه، نیاز به چیزی فراتر از true/false حس میشد. امروز نسخه v1.5.4 با رویکرد جدید Data Extraction (استخراج دیتا) منتشر شد.
خبر ویژه: پولریکوست پروژه در ریپوی اصلی Zod مرج شد و اکنون zod-ir رسماً به عنوان ابزار استاندارد ولیدیشن ایرانی در بخش Ecosystem داکیومنت Zod معرفی شده است و میتونید با خیال راحت توی پروژههای بزرگ ازش استفاده کنید.
تغییرات کلیدی نسبت به نسخههای قبل: در این نسخه، پکیج علاوه بر بررسی صحت داده، متادیتای کاربردی را برای UI استخراج میکند:
۱. خدمات شهری و خودرو (Vehicle & Bills):
- پلاک: استخراج استان و شهر محل پلاک خودرو.
- قبض: استخراج مبلغ، نوع قبض (آب، برق،...) و شناسه پرداخت از روی شناسه قبض (محاسبه خودکار).
۲. امور مالی (Financial):
- ورودی مالی ترکیبی (zFinancial): دیگه فرقی نمیکنه کاربر کارت بزنه یا شبا. سیستم خودش تشخیص میده و آبجکت کامل (شامل لوگو، رنگ و نام بانک) رو برمیگردونه.
- بانکی: تشخیص نام بانک، رنگ سازمانی و لوگو (SVG) از روی شماره کارت یا شبا.
- کریپتو: ولیدیشن Native آدرسهای TRC20 ،BTC و ETH (بدون وابستگی سنگین).
۳. تماس و مکان (Contact & Location):
- تلفن ثابت (جدید): استخراج نام استان و شهر (فارسی/EN) از روی پیششماره.
- کد پستی (بهبود یافته): بازنویسی الگوریتم تشخیص شهر با متد Best Match (رفع تداخل رنجهای پستی).
- موبایل: تشخیص اپراتور (همراه اول، ایرانسل و...) و ارائه لوگوی اپراتور.
تشکر از شایان زمانی عزیز (Shayan Zamani) بابت مشارکت در مدرنسازی زیرساخت و بیلد سیستم این نسخه.
الان zod-ir یک ابزار کامل برای تیمهای فرانتاند است که هم دیتای ورودی را چک میکند و هم دیتای خروجی را فرمتشده تحویل میدهد.
نصب: npm i zod-ir
https://www.npmjs.com/package/zod-ir
https://github.com/Reza-kh80/zod-ir
@DevTwitter | <Reza Kheradmandi/>
از زمان انتشار نسخه 1.2 که فقط روی "ولیدیشن" تمرکز داشتم و در پست قبلی معرفی کردم، هدفم حل چالشهای دیتای ایرانی در Zod بود. اما در مسیر توسعه، نیاز به چیزی فراتر از true/false حس میشد. امروز نسخه v1.5.4 با رویکرد جدید Data Extraction (استخراج دیتا) منتشر شد.
خبر ویژه: پولریکوست پروژه در ریپوی اصلی Zod مرج شد و اکنون zod-ir رسماً به عنوان ابزار استاندارد ولیدیشن ایرانی در بخش Ecosystem داکیومنت Zod معرفی شده است و میتونید با خیال راحت توی پروژههای بزرگ ازش استفاده کنید.
تغییرات کلیدی نسبت به نسخههای قبل: در این نسخه، پکیج علاوه بر بررسی صحت داده، متادیتای کاربردی را برای UI استخراج میکند:
۱. خدمات شهری و خودرو (Vehicle & Bills):
- پلاک: استخراج استان و شهر محل پلاک خودرو.
- قبض: استخراج مبلغ، نوع قبض (آب، برق،...) و شناسه پرداخت از روی شناسه قبض (محاسبه خودکار).
۲. امور مالی (Financial):
- ورودی مالی ترکیبی (zFinancial): دیگه فرقی نمیکنه کاربر کارت بزنه یا شبا. سیستم خودش تشخیص میده و آبجکت کامل (شامل لوگو، رنگ و نام بانک) رو برمیگردونه.
- بانکی: تشخیص نام بانک، رنگ سازمانی و لوگو (SVG) از روی شماره کارت یا شبا.
- کریپتو: ولیدیشن Native آدرسهای TRC20 ،BTC و ETH (بدون وابستگی سنگین).
۳. تماس و مکان (Contact & Location):
- تلفن ثابت (جدید): استخراج نام استان و شهر (فارسی/EN) از روی پیششماره.
- کد پستی (بهبود یافته): بازنویسی الگوریتم تشخیص شهر با متد Best Match (رفع تداخل رنجهای پستی).
- موبایل: تشخیص اپراتور (همراه اول، ایرانسل و...) و ارائه لوگوی اپراتور.
تشکر از شایان زمانی عزیز (Shayan Zamani) بابت مشارکت در مدرنسازی زیرساخت و بیلد سیستم این نسخه.
الان zod-ir یک ابزار کامل برای تیمهای فرانتاند است که هم دیتای ورودی را چک میکند و هم دیتای خروجی را فرمتشده تحویل میدهد.
نصب: npm i zod-ir
https://www.npmjs.com/package/zod-ir
https://github.com/Reza-kh80/zod-ir
@DevTwitter | <Reza Kheradmandi/>
🔥48❤5
اگه با Cloud Storageها کار میکنی، احتمالاً به rclone نیاز داری.
ابزاری برای بکاپ، سینک و مایگریشن که بهصورت rsync-like بین کلود استوریجها کار میکنه.
ریپو گیت هاب: http://github.com/rclone/rclone
@DevTwitter | <Mohammad/>
ابزاری برای بکاپ، سینک و مایگریشن که بهصورت rsync-like بین کلود استوریجها کار میکنه.
ریپو گیت هاب: http://github.com/rclone/rclone
@DevTwitter | <Mohammad/>
👍9🍌5❤3👎1
This media is not supported in your browser
VIEW IN TELEGRAM
الان داشتن رزومه شخصی سازی شده برای هر شغل خیلی ضروریه!
اگر میخواهید رزومهای داشته باشید که هم ساختار مهندسی داشته باشد و هم چشمنواز باشد، حتما به ریپوزیتوری RenderCV سر بزنید.
ایده اصلی اینه: محتوا رو از ظاهر جدا کن. دیگه لازم نیست نگران باشی که اگه یه خط به سوابق کاریت اضافه کنی، کل فونتها و فاصلههای رزومهات به هم میریزه. تو فقط متنت رو توی فایل YAML مینویسی، RenderCV خودش بقیهی کارها (چیدمان، فاصلهگذاری، فونت و...) رو انجام میده.
چه ویژگی هایی داره؟
- مدیریت ورژنکنترل: میتوانید رزومهتان را در گیتهاب قرار دهید و تمام تغییرات آن را در طول زمان ردیابی کنید.
- ظاهر بینقص: دیگر نیازی نیست ساعتها وقت صرف تنظیم فاصلهها و فونتها کنید؛ همهچیز طبق استانداردهای حرفهای چیده میشود.
- خروجیهای متنوع: علاوه بر نسخه PDF، به شما فایلهای Markdown و LaTeX هم میدهد که برای پلتفرمهای مختلف عالی است.
- تمرکز روی محتوا: شما فقط روی نوشتن تجربیاتتان تمرکز میکنید و اجازه میدهید ابزار، کارِ طراحی را برایتان انجام دهد.
Github: https://github.com/rendercv/rendercv
@DevTwitter | <Mehdi Allahyari/>
اگر میخواهید رزومهای داشته باشید که هم ساختار مهندسی داشته باشد و هم چشمنواز باشد، حتما به ریپوزیتوری RenderCV سر بزنید.
ایده اصلی اینه: محتوا رو از ظاهر جدا کن. دیگه لازم نیست نگران باشی که اگه یه خط به سوابق کاریت اضافه کنی، کل فونتها و فاصلههای رزومهات به هم میریزه. تو فقط متنت رو توی فایل YAML مینویسی، RenderCV خودش بقیهی کارها (چیدمان، فاصلهگذاری، فونت و...) رو انجام میده.
چه ویژگی هایی داره؟
- مدیریت ورژنکنترل: میتوانید رزومهتان را در گیتهاب قرار دهید و تمام تغییرات آن را در طول زمان ردیابی کنید.
- ظاهر بینقص: دیگر نیازی نیست ساعتها وقت صرف تنظیم فاصلهها و فونتها کنید؛ همهچیز طبق استانداردهای حرفهای چیده میشود.
- خروجیهای متنوع: علاوه بر نسخه PDF، به شما فایلهای Markdown و LaTeX هم میدهد که برای پلتفرمهای مختلف عالی است.
- تمرکز روی محتوا: شما فقط روی نوشتن تجربیاتتان تمرکز میکنید و اجازه میدهید ابزار، کارِ طراحی را برایتان انجام دهد.
Github: https://github.com/rendercv/rendercv
@DevTwitter | <Mehdi Allahyari/>
🔥21❤8👍4👎1
اولین تجربه اتصال به Remote MCP Server با استفاده از MS Agent Framework با دات نت:
امروز در مورد Official Microsoft Learn MCP Server میخوندم، گفتم یه تست بنویسم که با AI Agent بتونم به Remote MCP Server وصل بشم، خیلی چسبید!
اینجا گذاشتم (مثال 9):
https://github.com/pournasserian/agent-framework-sample
مثال 8 هم کار با تصویر بود که امروز اضافه کردم.
@DevTwitter | <Amir Pournasserian/>
امروز در مورد Official Microsoft Learn MCP Server میخوندم، گفتم یه تست بنویسم که با AI Agent بتونم به Remote MCP Server وصل بشم، خیلی چسبید!
اینجا گذاشتم (مثال 9):
https://github.com/pournasserian/agent-framework-sample
مثال 8 هم کار با تصویر بود که امروز اضافه کردم.
@DevTwitter | <Amir Pournasserian/>
🍌11❤5👍1👎1
یه ابزار/ریپوی خیلی کاربردی از مایکروسافت: Microsoft Learn MCP Server
اگه از Claude / Cursor / Copilot / Codex و… استفاده میکنید و «hallucination» و یا کدهای غیرقابلکامپایل (قدیمی) اذیتتون میکنه، این MCP Server، ایجنتتون رو مستقیم وصل میکنه به
آخرین داکیومنت رسمی Microsoft
نمونهکدهای Microsoft Learn
نصب سریع، رایگان، و بدون API Key.
https://github.com/microsoftdocs/mcp
@DevTwitter | <Amir Pournasserian/>
اگه از Claude / Cursor / Copilot / Codex و… استفاده میکنید و «hallucination» و یا کدهای غیرقابلکامپایل (قدیمی) اذیتتون میکنه، این MCP Server، ایجنتتون رو مستقیم وصل میکنه به
آخرین داکیومنت رسمی Microsoft
نمونهکدهای Microsoft Learn
نصب سریع، رایگان، و بدون API Key.
https://github.com/microsoftdocs/mcp
@DevTwitter | <Amir Pournasserian/>
❤9👍2👎2
بهترین اتفاق سال من میرسه به این که جنرال رو open-source کردن.
یعنی میشه هررکجا بگی نصبش کردی، linux, macos و ....
https://github.com/TheSuperHackers/GeneralsGameCode
@DevTwitter | <Sadegh/>
یعنی میشه هررکجا بگی نصبش کردی، linux, macos و ....
https://github.com/TheSuperHackers/GeneralsGameCode
@DevTwitter | <Sadegh/>
🔥36🍌6❤1
Forwarded from Space sup
Please open Telegram to view this post
VIEW IN TELEGRAM
👎6❤3🔥1🍌1
این برنامه رو خیلی تایم پیش نوشتم،
خیلی ساده با یک فایل yml میتونید بات تلگرامی درست کنید که بتونه هر نوع دیتا یا مسیجی رو با توجه به کامند هایی که توی yml تعریف کردین ارسال کنه.
امشب آپدیتش کردم و کاری کردم که plugins بشه بهش اضافه کرد، و کد هم ران کنه
https://github.com/shabane/commodore
@DevTwitter | <Arya Shabane/>
خیلی ساده با یک فایل yml میتونید بات تلگرامی درست کنید که بتونه هر نوع دیتا یا مسیجی رو با توجه به کامند هایی که توی yml تعریف کردین ارسال کنه.
امشب آپدیتش کردم و کاری کردم که plugins بشه بهش اضافه کرد، و کد هم ران کنه
https://github.com/shabane/commodore
@DevTwitter | <Arya Shabane/>
🔥24🍌8❤6
اگه مثل من از obsidian برای جزوه نویسی و یادداشت استفاده می کنید و می خواید یه چارت ساده برای گزارش نویسی کارای روزانتون و یا هرچیزی دیگه داشته باشید یه سر به این ریپو بزنید.
https://github.com/amirow-unknown/obsidian_simplechart
@DevTwitter | <Amir/>
https://github.com/amirow-unknown/obsidian_simplechart
@DevTwitter | <Amir/>
❤19🍌5👍3🎄1
ابزارSnitch پروژه اوپنسورس برای دیدن کانکشنهای شبکه به صورت تمیز و زیبا توی ترمیناله شبیه ss/netstat اما با رابط جذاب و جدولهای قابلخونده بیشتر که نصبش راحت و مفیده برای بررسی سریع اتصالات شبکه روی لینوکس و macOS
لینک گیتهاب:
https://github.com/karol-broda/snitch
@DevTwitter | <Shayan GeeDook/>
لینک گیتهاب:
https://github.com/karol-broda/snitch
@DevTwitter | <Shayan GeeDook/>
🔥10❤2👍1
این qwen code cli رو امتحان کردید تاحالا؟ بینظیره بنظرم (مخصوصا اگه لینوکس استفاده میکنید ولی اولاتونه و زیاد دستورات رو بلد نیستید، صد برابر عالی تره برای شما)!
برای نصبش باید رو سیستم عاملتون Node.js نصب شده باشه( اگه نبودم دانلود و نصبش راحته و کافیه سرچ کنید)
node -v
npm -v
با این دوتا میتونید چک کنید که نصبه یا نه.
بعد تو ترمینالتون
@DevTwitter | <Mohammad Seyfi/>
برای نصبش باید رو سیستم عاملتون Node.js نصب شده باشه( اگه نبودم دانلود و نصبش راحته و کافیه سرچ کنید)
node -v
npm -v
با این دوتا میتونید چک کنید که نصبه یا نه.
بعد تو ترمینالتون
npm install -g @qwen-code/qwen رو تایپ کنید که خودش نصب میکنتش و بعد اینکه تموم شد همونجا qwen رو تایپ کنید و اگه ترمينالتون شبیه عکس زیر شد ینی همه چی اوکیه! اگه تا حالا مدل های زبانی رو توی ترمینالتون استفاده نکردید، حتما یه امتحان کنید که پشیمون نمیشید.@DevTwitter | <Mohammad Seyfi/>
👍32❤4🍌4
یه ابزار کوچیک ولی قوی دیدم که واقعاً کارِ پردازش داده برای AI رو ساده میکنه:
اسمش CocoIndex یه data transformation framework سریع که روی مدل dataflow programming ساخته شده و برای کسانی که دیگه از ETLهای قدیمی خسته شدن مناسبه.
https://github.com/cocoindex-io/cocoindex
@DevTwitter | <پروفشیونال/>
اسمش CocoIndex یه data transformation framework سریع که روی مدل dataflow programming ساخته شده و برای کسانی که دیگه از ETLهای قدیمی خسته شدن مناسبه.
https://github.com/cocoindex-io/cocoindex
@DevTwitter | <پروفشیونال/>
❤11👍1👎1
دیگه نیازی نیست کاربران رو مجبور کنیم مسیرِ طراحیشدهٔ ما رو طی کنن.
با Tambo، یک Generative UI SDK برای React، رابط کاربری واقعاً تطبیقپذیر میشه:
کاربر میگه چی میخواد و AI، با تکیه بر Zod schemas، دقیقاً همون کامپوننت رو رندر میکنه.
https://github.com/tambo-ai/tambo
@DevTwitter | <پروفشیونال/>
با Tambo، یک Generative UI SDK برای React، رابط کاربری واقعاً تطبیقپذیر میشه:
کاربر میگه چی میخواد و AI، با تکیه بر Zod schemas، دقیقاً همون کامپوننت رو رندر میکنه.
https://github.com/tambo-ai/tambo
@DevTwitter | <پروفشیونال/>
🎄20❤3👍2🔥1
https://youtu.be/HfJwezWWu08?t=426
یعنی این تیکه از صحبت های The PrimeTime انقدر دارک بود که دارم ناامید میشم به گیتهاب
اینکه CEO کل سازمان گیتهاب داره با AI میره جلو
حتی پالمر نقش پایین تری داره و این موضوع خیلی عجیبه
یعنی کل گیتهاب داره با هدایت هوش مصنوعی میره جلو؟
شهر عجیبیه
@DevTwitter | <Shayan GeeDook/>
یعنی این تیکه از صحبت های The PrimeTime انقدر دارک بود که دارم ناامید میشم به گیتهاب
اینکه CEO کل سازمان گیتهاب داره با AI میره جلو
حتی پالمر نقش پایین تری داره و این موضوع خیلی عجیبه
یعنی کل گیتهاب داره با هدایت هوش مصنوعی میره جلو؟
شهر عجیبیه
@DevTwitter | <Shayan GeeDook/>
👍26🎄4👎3🔥1
Forwarded from DevTwitter Ads.
ما حسن و حسین هستیم.
چند ساله بکند کار میکنیم، چیزایی که یاد میگیریم رو اینجا میذاریم.
نه guru هستیم نه متخصص همهچیز—فقط دو نفر که سیستمهای بزرگ رو دوست دارن.
https://news.1rj.ru/str/+zwjhcfPyLfhmOTc0
چند ساله بکند کار میکنیم، چیزایی که یاد میگیریم رو اینجا میذاریم.
نه guru هستیم نه متخصص همهچیز—فقط دو نفر که سیستمهای بزرگ رو دوست دارن.
https://news.1rj.ru/str/+zwjhcfPyLfhmOTc0
🍌69🔥12❤6👍4
دو تا سایت خیلی کاربردی برای JavaScript که همیشه موقع کدنویسی بهشون سر میزنم :
سایت DevHints – خلاصه، سریع و مناسب مرور مفاهیم JS
سایت OverAPI – چیتشیتهای تمیز و جمعوجور برای JavaScript
اگه فرانتاند کار میکنی، اینا واقعاً نجاتدهندهان
https://devhints.io/
https://overapi.com/javanoscript
@DevTwitter | <Sadaf Amininia/>
سایت DevHints – خلاصه، سریع و مناسب مرور مفاهیم JS
سایت OverAPI – چیتشیتهای تمیز و جمعوجور برای JavaScript
اگه فرانتاند کار میکنی، اینا واقعاً نجاتدهندهان
https://devhints.io/
https://overapi.com/javanoscript
@DevTwitter | <Sadaf Amininia/>
❤15🍌5
ارائه Critical Path Analysis: تکنیکی از پروژه منهتن برای دیباگ Latency در Go!
یکی از ارائه های جذاب GopherCon 2025 ارائه Felix Geisendörfer از Datadog بود درباره پروفایلینگ request latency با استفاده از Critical Path Analysis.
این تکنیک جالبه چون اصلاً برای نرمافزار طراحی نشده بود. از پروژه منهتن میاد! همون پروژهای که بمب اتمی ساخت. ایدهش سادهست: وقتی یه پروژه بزرگ داری با زیرپروژههای موازی، کدوم مسیر واقعاً تعیینکننده زمان کله؟
حالا Felix این رو آورده روی Go و goroutine ها.
مشکلی که حل میکنه اینه که پروفایلینگ سنتی بهت میگه mutex contention داری، ولی نمیگه این چقدر روی latency کاربر تأثیر گذاشته. مثلاً یه پروفایل نشون میده ۴۳۹ ثانیه contention تو ۶۰ ثانیه داشتی. خب این خیلی بده، ولی سوال اصلی اینه: کدوم بخشش واقعاً روی request های کاربر تأثیر گذاشته؟
اینجاست که execution tracer میاد وسط. برخلاف CPU profiling که فقط on-CPU رو نشون میده، execution tracer همه state transition ها رو ثبت میکنه: کی goroutine داشت run میشد، کی منتظر mutex بود، کی منتظر channel بود، کی scheduling latency داشت. یه تصویر کامل از زندگی goroutine هات.
راهحل اینه که از آخر request بری عقب و ببینی کدوم goroutine ها واقعاً سر راه بودن. اگه G1 منتظر G2 و G3 باشه و G3 دیرتر تموم بشه، سریعتر کردن G2 هیچ فایدهای نداره. این همون critical path هست.
یه کار خفن دیگه که تیم Datadog کرده اینه که overhead اجرای execution tracer رو از ۱۰-۲۰ درصد به ۱-۲ درصد رسوندن. یعنی الان میشه تو production ازش استفاده کرد.
این ارائه خیلی ارزشمنده چون نشون میده پروفایلینگ میتونه خیلی دقیقتر از چیزی باشه که عادت کردیم. به جای اینکه بگیم mutex contention داریم، بیاید همه جا رو optimize کنیم، میتونیم دقیقاً بفهمیم کجا واقعاً مهمه.
آقای Felix امیدواره این کار رو open source کنه.
اگه با Go کار میکنید و tail latency براتون مهمه، پیشنهاد میکنم این ارائه رو ببینید.
https://www.youtube.com/watch?v=BayZ3k-QkFw
@DevTwitter | <Hasan Nazari/>
یکی از ارائه های جذاب GopherCon 2025 ارائه Felix Geisendörfer از Datadog بود درباره پروفایلینگ request latency با استفاده از Critical Path Analysis.
این تکنیک جالبه چون اصلاً برای نرمافزار طراحی نشده بود. از پروژه منهتن میاد! همون پروژهای که بمب اتمی ساخت. ایدهش سادهست: وقتی یه پروژه بزرگ داری با زیرپروژههای موازی، کدوم مسیر واقعاً تعیینکننده زمان کله؟
حالا Felix این رو آورده روی Go و goroutine ها.
مشکلی که حل میکنه اینه که پروفایلینگ سنتی بهت میگه mutex contention داری، ولی نمیگه این چقدر روی latency کاربر تأثیر گذاشته. مثلاً یه پروفایل نشون میده ۴۳۹ ثانیه contention تو ۶۰ ثانیه داشتی. خب این خیلی بده، ولی سوال اصلی اینه: کدوم بخشش واقعاً روی request های کاربر تأثیر گذاشته؟
اینجاست که execution tracer میاد وسط. برخلاف CPU profiling که فقط on-CPU رو نشون میده، execution tracer همه state transition ها رو ثبت میکنه: کی goroutine داشت run میشد، کی منتظر mutex بود، کی منتظر channel بود، کی scheduling latency داشت. یه تصویر کامل از زندگی goroutine هات.
راهحل اینه که از آخر request بری عقب و ببینی کدوم goroutine ها واقعاً سر راه بودن. اگه G1 منتظر G2 و G3 باشه و G3 دیرتر تموم بشه، سریعتر کردن G2 هیچ فایدهای نداره. این همون critical path هست.
یه کار خفن دیگه که تیم Datadog کرده اینه که overhead اجرای execution tracer رو از ۱۰-۲۰ درصد به ۱-۲ درصد رسوندن. یعنی الان میشه تو production ازش استفاده کرد.
این ارائه خیلی ارزشمنده چون نشون میده پروفایلینگ میتونه خیلی دقیقتر از چیزی باشه که عادت کردیم. به جای اینکه بگیم mutex contention داریم، بیاید همه جا رو optimize کنیم، میتونیم دقیقاً بفهمیم کجا واقعاً مهمه.
آقای Felix امیدواره این کار رو open source کنه.
اگه با Go کار میکنید و tail latency براتون مهمه، پیشنهاد میکنم این ارائه رو ببینید.
https://www.youtube.com/watch?v=BayZ3k-QkFw
@DevTwitter | <Hasan Nazari/>
❤11👍2🍌2👎1
Forwarded from هشتگ تبلیغ تخصصی
🧠 از مفاهیم پایه تا پروژههای واقعی
🐍 به همراه آموزش Python و SQL Server
👥 دوره آنلاین #علم_داده مناسب برای:
✅ دانشجوها ✅تحلیلگران داده ✅کارکنان واحدهای تخصصی
و
⭐️ افرادی که دنبال تغییر مسیر شغلی به دنیای تحلیلگری داده و دیتاساینس هستن
💯 گواهینامه معتبر مؤسسه توسعه
---
📈 جمعبندی سریع:
Please open Telegram to view this post
VIEW IN TELEGRAM
🍌4