An Inspired Engineer
1.27K subscribers
70 photos
18 videos
4 files
99 links
اینجا در مورد performance, distributed systems و کرنل لینوکس مینویسم
Download Telegram
Forwarded from Singular Thinker
🐈‍⬛ Learning Theory Circle — Session 3

We're holding a biweekly reading group on the theory of deep learning. Every other Sunday, one person presents a paper followed by an open discussion.

🗓 Sunday, Aug 30 · 7:00 PM
(Tehran, UTC+3:30)

🎤 Shayan Shahrabi-Farahani

📄 "The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks"

🎥 On Google Meet

🔗 Schedule, links & past talks: learning-theory-circle.github.io

Want to present a future session? Get in touch or open a PR on the webpage. See you Sunday!

@SingularThinker
Forwarded from Singular Thinker
Singular Thinker
🐈‍⬛ Learning Theory Circle — Session 3 We're holding a biweekly reading group on the theory of deep learning. Every other Sunday, one person presents a paper followed by an open discussion. 🗓 Sunday, Aug 30 · 7:00 PM (Tehran, UTC+3:30) 🎤 Shayan Shahrabi…
بچه ها واقعا توصیه میکنم که این ارائه ها رو از دست ندید و برای دوستاتون و تو گروه ها هم بفرستید.
پیپری که شایان داره ارائه میده ۶ هزار ارجاع داره از سال ۲۰۱۹ که نشونه اهمیت زیاد این موضوع هست.
و ارزش افزوده این جلسه صرفا ارائه ما نیستش اون گفتگویی هست که بعدش شکل میگیره و در نهایت داریم سعی میکنی در مسیر community شدن هم پیش بریم.
تازه کسایی که جلسات رو فعالانه شرکت میکنن و تا آخر میمونن به After party هم دعوت میشن.

فیلم جلسات قبلی رو در یوتیوب میتونید ببینید:
https://www.youtube.com/watch?v=8z3oVPGt3eA&t=17s

https://www.youtube.com/watch?v=Kp-tXx1AMBE&t=2737s&pp=0gcJCRMMAYcqIYzv
👍5❤1🤔1
An Inspired Engineer
امشب صحبتمون با آرین رو با یه چالش(فردا پستش میکنم سوال چی بود) شروع کردم و مثل همیشه چند تا چیزم ازش یاد گرفتم بعد در مورد ساختار شبکه تو سطح توزیع ترافیک صحبت کردیم و بعد رسیدم به این ویدیو بهتون پیشنهاد میکنم: https://www.youtube.com/watch?v=9GSH8tVnCqs
خب مسئله چی بود؟

فرض کنین یه HTTP server داریم که فقط یه رکویست می‌گیره و مثلا زمان فعلی رو برمیگردونه.

رکویست وارد ماشین میشه و از NIC و TCP stack رد میشه، میرسه به لایه ی اپلیکیشن و در نهایت میوفته توی controller فریمورک ما.
حالا دقیقا همون‌جا breakpoint می‌ذاریم و پروسس رو pause می‌کنیم. فرض هم می‌کنیم هیچ timeout، proxy یا مکانیزم دیگه‌ای توی این فاصله کانکشن رو نبنده، پس TCP connection همچنان بازه.

حالا سوال اینه: اگه به هر روشی از یه پروسس دیگه به همون سوکت دسترسی پیدا کنیم، میتونیم قبل از اینکه پروسس اصلی ادامه پیدا کنه، یه HTTP response فیک روی همون کانکشن برای کلاینت بفرستیم؟

در حالت عادی نه، چون fdها داخل هر پروسس معنی دارن. یعنی fd شماره‌ی 10 توی پروسس A لزوما هیچ ربطی به fd شماره‌ی 10 توی پروسس B نداره. ولی اگه پروسس دوم واقعا reference همون socket رو داشته باشه، مثلا از طریق fork، پاس دادن fd با SCM_RIGHTS یا مکانیزم‌هایی مثل pidfd_getfd، اون پروسس هم می‌تونه روی همون socket send() یا write() انجام بده.

اینجا TCP هیچ مشکلی با قضیه نداره؟ معلومه نه، TCP اصلا نمی‌دونه این write() رو کدوم PID انجام داده و براش مهم هم نیست. هر دو پروسس دارن روی همون سوکت کرنل می‌نویسن و کرنل همون TCP state مشترک رو مدیریت می‌کنه: sequence numberها، ACKها، retransmission، segmentation و بقیه‌ی ماجرا و یعنی اگه پروسس دوم روی همون سوکت واقعی send() بزنه، قرار نیست sequence numberها قاطی بشن و از دید TCP فقط یه byte stream وجود داره.

نکته‌ی مهم اینه که این با raw packet injection فرق داره. اگه از همون سوکت معمولی استفاده کنیم، کرنل کاملا در جریان داده‌ایه که ارسال شده و TCP state رو درست جلو میبره. ولی اگه خارج از اون سوکت با packet دست‌ساز با sequence number دستی تزریقی انجام بشه کرنل ممکنه اصلا ندونه این بایت ها ارسال شدن و وضعیت خودش با کلاینت همگام نباشه.

حالا سوال اصلی: کلاینت میفهمه اون پروسسی که قرار بوده جواب بده pause بوده و یه پروسس دیگه جواب رو نوشته؟

در سطح TCP و HTTP نه
کلاینت به یه PID وصل نیست؛ به یه TCP connection وصله. روی سیم هم در نهایت چیزی به اسم PID یا «این bytes رو فلان پروسس که خسته بود نوشته» نداریم. اگه پروسس دوم واقعا به همون سوکت دسترسی داشته باشه و یه HTTP response معتبر بفرسته کلاینت از دید پروتکل نمیتونه بفهمه این response رو پروسس اصلی نوشته یا پروسس دیگه.

یه دلیلی هم که توی اندروید و ای‌او‌اس شما نمیتونی raw سوکت باز کنی همینه!

@knowpow
❤17
Forwarded from مسعود بیگی (مسعود بیگی)
Juniors and AI Agents
Massoud Beygi
🎙 گزارش کار #۲ — جونیورها و AI Agentها
این اپیزود از یه سؤال شروع شد:
وقتی AI Agentها دارن بخش بزرگی از کار توسعه نرم‌افزار رو انجام می‌دن، تکلیف جونیورها چی می‌شه؟
بحث فقط این نیست که AI می‌تونه سریع‌تر کد بنویسه. مسئله اینه که بخش زیادی از چیزهایی که یه برنامه‌نویس تازه‌کار قبلاً با انجام‌دادنشون یاد می‌گرفت — سرچ کردن، اشتباه کردن، دیباگ کردن، خوندن کد بقیه و کلنجار رفتن با مسئله — حالا می‌تونه به یک Agent سپرده بشه.
از اون طرف، همین ابزارها می‌تونن یه جونیور رو خیلی زودتر وارد مسئله‌های واقعی و کارهای جدی‌تر کنن.
توی این قسمت درباره همین تناقض حرف می‌زنم؛ اینکه AI Agentها چه تغییری توی مسیر رشد توسعه‌دهنده‌های تازه‌کار ایجاد می‌کنن و شاید سؤال درست دیگه این نباشه که:
«AI جای جونیورها رو می‌گیره؟»
بلکه این باشه:
«جونیوری که قراره کنار AI کار کنه، باید چه چیزهایی بلد باشه؟»
🎧 حدود ۲۲ دقیقه
🎙 گزارش کار — اپیزود دوم
Juniors & AI Agents
اگه با جونیورها کار می‌کنید، خودتون اول مسیر توسعه‌اید، یا این روزها Agentها بخش جدی‌ای از کارتون شدن، خیلی دوست دارم بعد از شنیدنش نظرتون رو بدونم.
#گزارش_کار #هوش_مصنوعی #AIAgents #برنامه_نویسی #توسعه_نرم_افزار
👍2👎1
توییتر یه سری پروژه پیشنهاد داده بودم که توشون async io هم بود که یکی از بچه ها گفت هرکسی میخواد async رو بزنه tehrun بزاره اسمش رو، دیدم اسم جالبیه و خودمم همچین چیزی برای پروژه ی سیمکارت نیاز داشتم تا از شر boost خلاص بشم، پس دست بکار شدم و این ریپوی async io رو با سی++ نوشتم و امروز هم بهش با کمک کلاد opus ساپورت darwin و android رو ادد کردم، بسیار زیبا شد:

https://github.com/tehrun-cpp/tio

این یه لایه ی نازک ابسترکشن از پروژه ی ته‌ران هست. ماژول های بعدی هم به حالم بستگی داره که توسعه بدم یا نه
به ریپو استار بدین هم خوشحال میشم

@knowpow
🔥7👍4
یه نفر عدد RSA-260 رو که ۳۵ سال کسی نتونسته بود بشکنه، فاکتور گرفته.
این عدد ۲۶۰ رقمی که حاصل‌ضرب دو عدد اول مخفی بود و اساس چالش معروف رمزنگاری RSA از سال ۱۹۹۱ بود، الان بزرگ‌ترین عدد RSA شکسته شده تا امروز شده.

سال ۲۰۲۰ عدد قبلی یعنی RSA-250 رو پیدا کردن ولی کامپیوتینگ عظیمی پشتش بود، به عبارتی برای شکستن عدد قبلی حدود ۲۷۰۰ سال/‌هسته لازم شد.
بزارین با عدد حساب کنم تا روشن بشه: اگه بگیم ۱۰۰ تا ماشین ۶۴ هسته ای از امازون بگیریم و اینارو به هم وصل کنیم تا همگی با هم پردازش کنن و هزینه ی network و latency بینشون رو هم نسنجیم میتونیم بگیم برای این کار ۶۴۰۰ هسته داریم، حالا اگه یه هفته (۱۶۸ ساعت) کار کنن همگی با هم حدود ۱۲۳ سال‌/هسته کار میکنن.

یعنی اون ۱۰۰ تا ماشین تو یه هفته فقط حدود یک بیست و دوم کار مورد نیاز عدد قبلی رو انجام میدن. این عددی که داداشمون پیدا کرده خیلی سختتره

@knowpow
😍11❤3🤔3👍1
بردی که ۱۱ روز طول کشید طراحیش کنم رو مدل Astra توی 2 ساعت زد!

شماتیکش رو طراحی کرده بودم گفتم بزار مدل جدید رو تست کنم به فارسی بهش گفتم بیا اینو طراحی کن ولی توی التیومه! رفت خوند و تمام دیتابیس ها و دیتاشیت ها رو دانلود کرد، مدل های سه بعدی رو دانلود کرد و تمام!

@knowpow
🍾20❤2👍1
An Inspired Engineer
بردی که ۱۱ روز طول کشید طراحیش کنم رو مدل Astra توی 2 ساعت زد! شماتیکش رو طراحی کرده بودم گفتم بزار مدل جدید رو تست کنم به فارسی بهش گفتم بیا اینو طراحی کن ولی توی التیومه! رفت خوند و تمام دیتابیس ها و دیتاشیت ها رو دانلود کرد، مدل های سه بعدی رو دانلود کرد…
برای شروع خوبه، چینش رو خوب انجام داده ولی روتینگ اصلا خوب نیست و باید دستی انجام بشه، ولی توی کتابخونه ساختن با مدل های سه بعدی و footprint ها به شدت خوب عمل کرده، مثلا بهش گفتم میخوام به jlcpcb سفارش بدم کامل با اطلاعات اسمبلی و توضیحات هر قطعه برای کارخونه ساخته، حتی جایگزین هم بهشون داده که اگه موجود نبود اینو استفاده کنین
👍8
عکس بعدی برای ژانر سیاه سفید بعدی رو اختصاص میدم به علی جوان؛ فیزیکدانی که نقش خیلی مهمی توی شکل‌گیری فیزیک لیزر داشت و با William R. Bennett و Donald Herriott توی دانشگاه MIT اولین لیزر گازی هلیوم–نئون رو ساخت که بر خلاف نمونه های اولیه میتونست به صورت پیوسته کار کنه و همین موضوع راه رو برای کاربردهای گسترده تر لیزر مثل مخابرات و اندازه گیری و مسیریابی فضایی باز کرد

@knowpow
❤15🤔2🔥1🍾1
به‌به قراره عشق کنیما 🤘
👍11🔥7🤔2🍾2
DevTwitter | توییت برنامه نویسی
مثلاً یک DNS Response که قبلاً به‌راحتی با UDP منتقل می‌شد، ممکنه با امضای جدید فضای بیشتری از ظرفیت معمول Packet رو بگیره و مجبور بشه از TCP استفاده کنه.
اخه udp که سقفش ۱۵۰۰ بایت نیست و دیتاگرام udp میتونه تا حدود ۶۵ کیلوبایت باشه ولی مسيله ی واقعی mtu و ip fragmentation و خرابکاری middlebox ها مثل اوپراتور و سیستم های فیلترینگه نه اینکه امضا بزرگ شد پس دیگه udp جا نمیشه. dns هم به‌خاطر شکننده بودن fragmentation ترجیح میده tc=1 بده و روی tcp retry کنه

@knowpow
👍7🔥1
یه خبرایی هست که اینا اینجوری پنیک کردن

@knowpow
🤔13🔥3👍1👎1
این هارنسی که با ai نزدیک یه ساله دارم باهاش سر و کله میزنم و هی بهتر و بهترش میکنم رو بهش میگن حدودا spec driven development و توی تایملاین خارج منسوخ شده ولی توی تایم لاین داخل تازه داره ترند میشه، این کیتی که من ساختمم نمیشه گفت با spec ها پیش میره ولی حدودا شبیه اونه.

یه سریا هم هستن که میگن نیازی نیست این همه داستان دور مدل بچینیم، این حرف هم حدودا درسته ولی نباید بیش از حد روی خود مدلای AI حساب باز کرد، فرقی نمیکنه Fable 5 باشه یا Opus 4.8. نهایتش این مدلا محتمل‌ ترین پیاده سازی آماری رو تولید میکنن که روشن train شدن و اون پیاده سازی بیشتر روی Happy Path متمرکزه نه تمام فضای مسئله ای که شما باهاش مواجه هستین

اونچیزی که واقعا اهمیت داره سیستمیه که این مدلا رو توش به کار میگیرید و به هم متصل میکنید نه صرفا اینکه از کدوم مدل استفاده میکنید، اگه اشتباه باشه ممکنه fable 5 کارایی sonnet 3 رو هم نده

باید با System Prompt و User Prompt بازی کنین برای هر agent یه Mental Model و Role مشخص تعریف کنین و خروجی های ساختاریافته ازشون بگیرین. از چند agent مستقل برای کد نوشتن و نقد کد و تست استفاده کنین و هر مرحله رو با یه نگاه متفاوت طراحی کنین

اینجا بهش میگیم هارنس و به نظرم طراحی این سیستم از انتخاب خود مدل مهمتره. درسته که determenıstıc نییست ولی از اینکه مدل رو ول کنین برای خودش توی کدبیس بگرده مفیدتره و پروژه ای که ۸ ماه پیش ول کردین رو میتونین همین امروز ادامه بدین
اینجا مدل‌ها موتور هستند؛ اما کیفیت محصول نهایی رو معماری سیستمی تعیین میکنه که اون موتور رو هدایت کنترل و راستی‌ آزمایی می‌کنه

حواستون باشه برای ۵۰۰ خط کد زدن ۲۰۰۰ خط تست و هارنس و صدها ادابازی ارزنده ی دیگر اضافه نکنین 😄 البته این ساختاری نیست که بتونیم بگیم استاندارد داره، هر کسی روش خودشو داره

@knowpow
❤4👍2
ایده ‎typesafeai‎ خیلی جالب بود کنجکاو شدم بفهمم چقدرش از خود مدل میاد و چقدرش از نحوه ی سرو شدنش، یه نسخه لوکال ساختم تا بفهمم چی به چیه!

چهار سوال درباره ی یه داکیومنت تو ~۲۰۰ میلی‌ثانیه روی M4 Pro، بدون اینکه چیزی آموزش داده بشه یا فاین تیون بشه.کالیبراسیون میخواد فقط.

لوکال بدون API key

https://github.com/aabolfazl/typesafe-local

@knowpow
🔥3