نوشته‌های ترمینالی
2.62K subscribers
423 photos
12 videos
32 files
2.25K links
Download Telegram
مدیرعامل گیتهاب، Thomas Dohmke، یه ارائه داشت که با فیچرهای جدید کوپایلوت یک بازی Snake رو با vibe coding پیاده‌سازی کنه که تا آخر هر کاری کرد کدش کار نکرد و مجبور شد ارائه‌اش رو ناتموم بذاره :))

#wearedevelopers2025
@aminrbg
😁20🤣8🐳2
اگه به گوشتون نخورده، ردیس نسخه ۸ اومده. و تغییرات خیلی خوبی داشته.
هم از سمت فنی قابلیت های جدید (مثل کار با Json) هم بهبود پرفورمنسی و توانایی استفاده بهتر از تردهای بیشتر رو داره.
هم از سمت لایسنس، ماژول ها و چیزهای close source رو اوپن سورس کردن و همه رو مرج کردن در قالب لایسنس درست و حسابی منتشر کردن.

اگه کاربر ردیس هستین، بلاگ پست خودشون رو به نگاهی بندازید به نظرم.
https://redis.io/blog/redis-8-ga/
17
Forwarded from TondTech (مسعود بیگی)
دوستان خوب و عزیزم سلام، من و تیم خوبم در #رسمیو، مدتی رو سرمون خلوت خواهد بود و دوست داریم به شکل مشاوره یا همکاری در انجام پروژه های شما (به صورت صفر تا صد یا مشارکت در پیاده سازی بخشی از سرویس هاتون) همراه باشیم .

ما توی تیممون به جز توسعه دهندگان .net و React ، پروداکت منیجر و دیزاینر هم داریم اگر لازم داشته باشید برای این پروژه ها.

کد تمیز و قابل گسترش مینویسیم، با هم سر استانداردهای مستندسازی به تفاهم خواهیم رسید.


بعد از پایان پروژه هم، پروژه رو به تیم تون تحویل میدیم و اگر نیاز به آموزشی باشه، در حد توان راهنمایی و آموزش نیروهاتون رو هم بر عهده خواهیم گرفت.

خیلی به من لطف خواهید کرد اگر این پست را در همه ی گروه های فنی و بیزنسی تان منتشر کنید.
متاسفانه فعلا فقط از طریق اکانت تلگرام @StartupNerd وشماره 09308282925 در خدمت شما و پاسخگو خواهم بود.

🫂 مجددا از شما خواهش میکنم این پست رو (در همه ی گروه های خودتون که فکر میکنید ممکنه کسی به توانایی ما نیاز داشته باشه) بازنشر کنید
8💔6
در مورد اینسیدنت cloudflare روی ۱.۱.۱.۱

بلاگ پست جالبی نوشتن و خلاصه ایده ش اینه که به خاطر سیستم legacy کانفیگ اشتباه باعث خطا شد و ما دیگه سیستم مدرن(!) میاریم بالا و حل میشه همه چی.

https://news.ycombinator.com/item?id=44578490


چند تا نکته به نظرم میرسه:
۱. چقدر خوبه که تا حدی شفافیت دارن و براشون مهمه و هم عذرخواهی کردن و گفتن کاری میکنیم که دیگه تکرار نشه.
۲. این که یه مشکل رو به اشتباه یه مهندس تقلیل نمی‌دن برام قشنگه، چون آدما اشتباه میکنن و باید سامانه ها و روند ها جوری باشه که خطا رو نشون بده (مثال ساده میشه پایپالاین تست یا محیط تست جدا از پروداکشن)
۳. به نظر میاد که خطا رو محیط تست بوده ولی باعث خراب شدن پروداکشن شده. این یکی از بدترین اتفاق هاست. به چند دلیل از جمله این که تغییر تو محیط تست زیاده و قاعدتاً داکیومنت نمیشه و پیدا کردن ریشه مشکل ممکنه خیلی سخت بشه.
۴. این روحیه که همه چیزو بندازیم گردن سیستم قبلی و بگیم legacy بود رو دوست ندارم. یهو با این اینسیدنت متوجه شدید که legacy بوده و همه اشکالاتش در اومد؟ قاعدتا مشکل از این هم هست که وقت کافی به حل بدهی فنی هاش اختصاص پیدا نکرده در طی ماه ها و سال های اخیر.
۵. نکته ای که برام جالبه اینه که اینسیدنت ۲۰۲۱ meta هم که باعث شد کل زیرساختش از بیرون قابل دسترسی نباشه هم به خاطر یه کانفیگ اشتباه بود. شاید اون تمرکزی که برای قابل اطمینان کردن لایه های بالاتر داشتیم (زبان های type safe و انواع تست و canary release و ...) رو باید رو لایه های پایین تر هم داشته باشیم.
5👍1
باگ امنیتی روز صفر (zero day) کروم حل شده که دسترسی به سیستم رو به اتکر می‌ده.
مرورگرهای chromium based خودتون رو آپدیت کنید زودتر.
https://thehackernews.com/2025/07/urgent-google-releases-critical-chrome.html

کلا همیشه ایده خوبیه که مرورگر ها رو بروز نگه دارید.
😱6👍4🔥1
راهنمای خوبی از شبکه از کوبرنتیز!
https://www.tkng.io/
11
تجربیاتی جالب در مورد نوشتن یک برنامه code formatter
چالش هایی داره که اصلا بهشون فکر نمی‌کردم هیچوقت موقع استفاده.

journal.stuffwithstuff.com/2015/09/08/the-hardest-program-ive-ever-written/
👍6
Forwarded from Go Casts 🚀
مقاله خیلی جذابیه. نکات بسیار ارزشمندی رو میگه. نکات مهمی رو در مورد استفاده از PostgreSQL میگه وقتی که شما همزمان Write-Heavy و Read-Heavy هستی.

مقاله ایده های جالب و متفاوتی رو ارائه میکنه:
داشتن جداولی با حداکثر ۱۰۰ هزار رکورد برای داشتن index scanهای سریع و جلوگیری از کاهش عملکرد PostgreSQL

استفاده از index-only scans و مکانیزمی شبیه loose index scan برای کم کردن io operations

داشتن استراتژی compaction و VACUUM Analyze برای جلوگیری از عملکرد read queries با بزرگ شدن جدول دیتابیس

استفاده از دستور COPY به جای Insert برای batch insertهای زیاد و سنگین

استفاده از golang string type به جای byte slice برای transfer داده که عملکرد تقریبا ۲ برابر بهتری داشته!

Lessons from scaling PostgreSQL queues to 100k events per second

https://www.rudderstack.com/blog/scaling-postgres-queue/

@gocasts
6👍2🔥2
مثل این که کمتر از یک ماه دیگه، Bitnami قراره بلاهایی سر تیم ها و دولوپرها بیاره.

ماجرا از این قراره که از ۲۸ آگوست به بعد فقط به آخرین تگ هر چارت میتونیم دسترسی داشته باشیم (latest) و نسخه های استیبل و مشخص فقط از طریق برنامه جدیدشون که پولیه میشه استفاده کرد. (به اسم bitnamisecure)

لازم به تاکیده که استفاده از تگ latest برا پروداکشن مطلقا ایده خوبی نیست و هر روز ممکنه اتفاقات جدید بیفته. تو این مدت تگ های فعلی رو تو یه ریپوزیتوری به عنوان lagecy قرار دادن ولی نسخه های جدید وارد این نمیشه.

به عنوان دولوپر چیکار کنیم؟ تو محیط دولوپ که میتونیم از latest استفاده کنیم ولی تو محیط پروداکشن فعلا و برای نسخه های فعلی از docker.io/bitnamilegacy به جای docker.io/bitnami استفاده کنیم.

برا اپدیت به نسخه های جدید و در ادامه هم باید واقعا دید که چی میشه. جایگزینی میاد یا چی!

https://github.com/bitnami/charts/issues/35164
3😐3😱1
چرا abstraction اشتباه در کد، از کد تکراری بدتر است:
https://sandimetz.com/blog/2016/1/20/the-wrong-abstraction

بلاگ پست قدیمی‌ایه ولی به نظرم هنوز کاملا می‌تونه نمود داشته باشه، مخصوصا وقتی که کد به مرور تغییر می‌کنه و ما میخوایم لاجیک جدید رو به زور توی همون تابع یا کلاس یا اینترفیس قبلی بگنجونیم.
🔥7👌3
یکی از پترن های بد ولی رایج توی نصب نرم‌افزار اینه که اسکریپت نصب رو curl کنیم و مستقیم اجرا کنیم.
مشکلی که وجود داره اینه که ممکنه تنی اون اسکریپت هرچیزی وجود داشته باشه و ما اون رو اجرا میکنیم، گاهی حتی با sudo


مثال:
curl -sSL https://example.com/install.sh | bash

برای این که سمت این پترن نریم، راه خوب اینه که اول اسکریپت رو بگیریم و تو دیسک ذخیره کنیم و بعد با ادیتور یا pager محتواشو بررسی کنیم.

ابزار vet اومده این کارو ساده کرده. با گرفتن آدرس میاد و اسکریپت رو دانلود می‌کنه، محتواشو (یا diffشو به نسبت دفعه قبل) بهتون نشون میده و حتی با shell check براتون چک می‌کنه و اگه مشکلی نبود، با اوکی شما اجراش می‌کنه. یه مقدار هم منو یاد aur helper ها میندازه که باید اول بررسی کنید اسکریپت رو و بعد نصب اتفاق میوفته.
https://github.com/vet-run/vet


این ابزار کار خاصی نمی‌کنه که اگه نصب نکنید ممکن نیست، ولی دیدگاهی که داره، «ساده کردن عادت خوب»ـه که برا من جالب بود.
118👍6👌3🔥1
لیفت یه برنامه تاکسی اینترنتیه و تو این مقاله توضیح میده که چطوری راننده ها و مسافرها رو بر اساس شرایط مختلف (مثلا مجاورت) به هم وصل می‌کنه. برای توضیحش از گراف و به شکل خاص از bipartite graph استفاده می‌کنه و به نظرم متن جالبی بود.

https://eng.lyft.com/solving-dispatch-in-a-ridesharing-problem-space-821d9606c3ff
👍20🔥42😁1
یه ابزار جدیدی که پیدا کردم و دوستش دارم، proton authenticatorئه.

یه برنامه مدیریت کدهای two factor authenticationئه که برای سیستم‌عامل های مختلف (شامل لینوکس و اندروید) نسخه داره. با این که تازه معرفی شده من باگ خاصی ندیدم و خوب و مناسب و رایگان بین دستگاه ها کدها رو سینک می‌کنه. من قبلا برای گوشی از google authenticator استفاده می‌کردم که اگرچه اون سینک می‌کرد ولی راه خاصی نداشت که روی سیستم هم داشته باشمش. در نتیجه مجبور بودم کدش رو خروجی بگیرم و با یه چنین کامندی کد رو تولید می‌کردم. که طبیعتا قابلیت سینک هم نداشت.
oathtool -b --totp '<my code>'


از قابلیت های خوب دیگه‌ی proton authenticator اینه که امکانات import export خیلی خوبی داره و میتونه از اکثر برنامه های دیگه ورودی بگیره و میتونید کدهاتون رو هم ازش export کنید و مثل microsoft authenticator به زور زندانی نمی‌کنه. =)

اگه براتون جالب بود از سایتشون می‌تونید لینک های نصبشو پیدا کنید:
https://proton.me/authenticator
13👍4🔥1