Warning: Undefined array key 0 in /var/www/tgoop/function.php on line 65

Warning: Trying to access array offset on value of type null in /var/www/tgoop/function.php on line 65
3074 - Telegram Web
Telegram Web
در مورد این که چه مدلی خوبه که از برنچ‌های گیت استفاده کنیم، ایده‌های مختلفی مطرح می‌شه.
یکی از بهترین‌هاش در این دوره زمونه، trunk based developmentئه. (مدلهای دیگه مثل git flow هم وجود داره)

در مورد trunk based اینجا می‌تونید اطلاعات خوبی کسب کنید.
https://trunkbaseddevelopment.com/
اگه دوست دارید در مورد hyperloglog بدونید این مطلب مخصوص شماست. این مطلب به این می‌پردازه که توی فیس‌بوک چطوری با کمک این ساختمان داده احتمالاتی، یه کوئری رو بهینه سازی کردن.

ساختمان داده ها احتمالاتی، ساختمان داده هایی هستن مثل bloom filter که پاسخ نزدیکی به ما میدن ولی نه لزوما دقیق. با این که گارانتی دقت رو نمیدن، مزایای دیگه‌ای دارن مثلا مصرف مموری کمتری دارن یا از نظر محاسباتی سبک‌تر هستن.

در این مورد هم hyperloglog تعداد المنت های یونیک یه لیست رو به شکل تقریبی می‌شماره، با مصرف پردازنده و مموری خیلی خیلی کم. توی مطلب پیوست اشاره می‌شه که تعداد بازدید کننده های غیرتکراری فیسبوک رو میخواستن پیدا کنن.

https://engineering.fb.com/2018/12/13/data-infrastructure/hyperloglog/
Forwarded from Software Philosophy
۱۰ برابر شدن سرعت TypeScript با پورت کامپایلر به GO

در این ویدئو Andres Hejlsberg (خالق تایپ‌اسکریپت و سی‌شارپ) توضیح می‌دهد که چگونه با پورت کردن کدهای کامپایلر TypeScript به GO، سرعت کامپایل را 10x بهتر کرده‌اند!

او همچنین توضیح می‌دهد که چرا زیرساخت JavaScript برای این کار مناسب نیست. در حقیقت این زبان بیشتر برای کارهای UI طراحی شده بوده و زیرساخت‌های لازم برای کارهای performance-intensive مانند این کار را ندارد.

برای من خیلی جالب بود خالق سی‌شارپ، زبان GO را برای این کار انتخاب کرده، پس مستندات مربوط به این تصمیم را خواندم.
https://github.com/microsoft/typescript-go/discussions/411

اولین نکته جالب این بود که چقدر بدون تعصب و با ذهن باز زبان‌های مختلف رو بررسی کردن.
با توجه به اینکه هر دو زبان‌ C#, GO از لحاظ پرفورمنسی بسیار خوب هستند، یکی از مهم‌ترین دلایل انتخاب GO تشابه بسیار بالای سینتکس آن با TypeScript بوده است.

کامپایلر قبلی تایپ‌اسکریپت، با خود تایپ‌اسکریپت نوشته شده و تیم نمی‌خواستند که کل آن را بازنویسی کنند.
در حقیقت هدف rewrite کردن نبوده، بلکه port کردن بوده.
آنها دنبال پورت کردن آن به یک زبان با پرفورمنس بالا بودند که تشابه سینتکسی بالایی داشته باشد تا عملیات پورت بتواند راحت‌تر انجام شود.

از بین زبان‌های C#, GO و Rust، زبان گو تشابه سینتکسی بیشتری با تایپ‌اسکریپت داشته و در نهایت انتخاب شده.

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


https://www.youtube.com/watch?v=pNlq-EVld70

#مهران_داودی (لینکدین - بلاگ)

⁉️ برای بحث و تبادل نظر فنی در مورد این پست، نظرات خود را با ما در قسمت کامنت‌ها به اشتراک بگذارید.

کانال تلگرام:
@SoftwarePhilosophy

______
Forwarded from Prisma | پریسما
🤔 تا حالا به این فکر کردی که تحصیلات طرفدارای پرسپولیس بیشتره یا استقلال؟

🤔 یا اینکه آدمایی که ازدواج کردن خودشونو خوشبخت‌تر میدونن یا مجردا؟

🤔 یا تا حالا فکر کردی که بشه از همه کسایی که مهاجرت کردن نظرشونو در مورد مهاجرتشون پرسید؟


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

برای اینکه همراهمون باشی از طریق این بات نظراتت رو ثبت کن:
🆔 @prisma_poll_bot

برای دیدن نتایج هم کافیه توی چنلمون عضو شی:
🆔 @prisma_thoughts

اگه خوشت اومد ما رو به دوستات هم معرفی کن که به تحلیل بهتر نظرات کمک کرده باشی 🤌
ابزار مدیریت محصول Linear که یکی از استارت‌آپ‌های خیلی موفق چند سال گذشته است، به خاطر نگاه متفاوتی که به روند توسعهٔ محصولشون داشتن در کامیونیتی‌های پروداکت و UX خیلی ازش صحبت می‌شه. اونا تونستن که محصول خیلی باکیفیتی ارائه بدن و خیلی‌ها معتقدن از رقیب‌های بزرگشون مثل Jira و Clickup تجربهٔ کاربری بهتری ارائه می‌دن.

یک محصول خوب با پشتیبانی یک تیم مهندسی خوب ساخته می‌شه. Sabin Roman که Engineer Manager و Hiring Manager این شرکته، اخیراً مصاحبهٔ خیلی خوبی با Gergley Orosz داشته. هر دوی این افراد در گذشته در Uber با هم همکار بودن و به همین دلیل مقایسه‌های جالبی بین شرکت بزرگی مثل Uber و استارت‌آپ نسبتاً جدیدی و کوچکی مثل Linear شکل می‌گیره.

نکاتی در مورد فرهنگ شرکت Linear که برام جالب‌ بود:
- شرکتشون کاملاً ریموته و بر روی این اصل پافشاری می‌کنن. مصاحبه‌کننده بر این باوره که remote first بودن مزایای زیادی رو به شرکت‌ اضافه می‌کنه، حتی با وجود این که سربار بیشتری برای مدیرهای شرکت‌ داره.
- حل یک باگ همواره براشون اولویت بالاتری از توسعهٔ محصول داره و همهٔ اعضای تیم موظفن که در زودترین زمان ممکن باگ رو رفع کنن و برای این مسئله فرآیند مشخصی دارن.
- مهندس‌هاشون ارتباط مستقیم و بدون واسطه‌ای با مشتری‌ها دارن و حرف‌هاشون رو می‌شنون و مشکلات محصول رو می‌بینن.

ویدیو رو می‌تونید از این لینک ببینید.

@aminrbg
https://iximiuz.com/en/posts/containers-distroless-images/

دوست دارید از بیس ایمج scratch استفاده کنید برای داکر فایل هاتون، ولی خیلی خالیه و امکانات مورد نظر رو نداره؟
از طرفی alpine هم زیادی امکانات و attack surface داره؟

یه ایمج استاتیک وجود داره که در حد پوشه بندی استاندارد و tzinfo رو فراهم می‌کنه ولی پکیج‌منیجر نداره.
یه نکته که الان در مورد چنل متوجه شدم اینه که از دسامبر به بعد پیام زماندارهایی که برا ساعت ۲۰:۰۰ می‌ذارم، با تاخیر خیلی زیاد میرسه. قبلا خود ۲۰:۰۰ یا ۲۰:۰۱ می‌رسید ولی تاخیره به ۳ تا ۵ دقیقه رسیده!
حتی در یه مورد یک دقیقه زودتر بوده!

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

ابزاری هم اگه می‌شناسید که کمک می‌کنه برای پیاده‌سازی بگید بهمون.
شاید از خودتون پرسیده باشید اگه الگوریتم ها صدا داشتن آیا میشد باهاشون ساز ساخت و موسیقی زد؟ جواب اینه که بله. (احتمالا شما هم این سوال رو نپرسیدید از خودتون ولی به هر حال میخواستم معرفی کنم)

لینک گیتهاب پروژه:

https://github.com/myanvoos/algoMIDI

لینک صفحه لایو پروژه:
https://algomidi.vercel.app/


دو تا قابلیت داره، یکی ساخت صدا از الگوریتم های پیمایش گراف که فقط تو کامپیوتر در دسترس هست.
یکی هم این که بهش یه زمین Conway's game of life میدید و به ازای هر پیمایش که می‌ره جلو، صدای خونه‌های متناظر رو پخش می‌کنه.
اگه دوست دارید یه اپلیکیشن برای استفاده از youtube music داشته باشید که adblock داخلی خودشم داره این اپلیکیشن رو امتحان کنید.
پلاگین‌های متنوعی داره توی خودش که می‌تونید شخصی‌سازی هم داشته باشید ولی بدون تغییر خاصی هم، تجربه کلیش به نظرم لذت‌بخشه.

https://github.com/th-ch/youtube-music


برای لینوکس و ویندوز و مک هم نسخه داره.
نوشته‌های ترمینالی
یه مطلب خیلی خوب در مورد تاثیر generative ai بر برنامه‌نویسی و تیم‌های توسعه. در آخر هم نظراتش در مورد برنامه‌نویس جونیور و اینکه چرا برای اکثر تیم‌ها وجودش لازمه رو می‌گه. https://stackoverflow.blog/2024/12/31/generative-ai-is-not-going-to-build-your-engineering…
در ادامه مطلبی که ریپلای زدم:
آیا میشه با استخدام یه نیروی سنیور، میانبر زد و زودتر به بازدهی رسید؟
این مطلب نظرش اینه که نه.
چرا؟
چون سنیوری که تجربه‌ش جای دیگه‌ست اتفاقا خیلی سخت تر می‌تونه اداپت بشه.

در عوض یه جونیوری که اشتیاق یادگیری داره و پرفورمنس خوبی داره می‌تونه خیلی سریعتر روال‌ها رو یاد بگیره و به بازدهی برسه. در ادامه هم سنیور خوبی بشه که کاملا با سیستم آشنایی داره، چون همینجا سنیور شده.

https://skamille.medium.com/the-senior-shortcut-fadffe5503fd


از این مطلب هم در کنار مطلب قبلی، آگاهی‌بخشی از اینه که جونیورها هم مهمن.

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

۲- شاید به نظر بیاد که کاری که جونیور می‌تونه انجام بده رو هوش مصنوعی هم می‌تونه انجام بده، ولی خب جونیوری که با هوش مصنوعی کار می‌کنه سرعتش بیشتره، میتونه زودتر یاد بگیره و ... ضمن این که وقتی که جونیوری در حال یادگیری نباشه، به زودی سنیوری هم در کار نیست.
ما قرار نیست چون ماشین حساب وجود داره جمع و ضرب رو یاد ندیم به دانش‌آموزها. هرچند شاید از توانایی جمع و ضربشون زیاد استفاده نکنن.
آیا این که پوشه vendor رو توی پروژه گولنگیمون کامیت و پوش کنیم کار خوبیه؟

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

https://penkovski.com/post/to-vendor-or-not-to-vendor
#مطلب

What I Wish I Knew About Onboarding Effectively

https://eugeneyan.com/writing/onboarding/

زمانی که شرکتتون رو عوض می‌کنید و وارد یه شرکت جدید میشید باید یه فرایندی طی بشه تا شما با اون شرکت، کدهاش و فرهنگش آشنا بشید. به این فرایند میگن آنبوردینگ.
مطلب بالا نکات خیلی خوبی در همین مورد بیان می‌کنه که باعث میشه این فرایند رو بهتر بتونیم طی کنیم و توی شرکت جدید بهتر جا بیافتیم. اگر دارید آنبورد میشید یا قراره یه نفر دیگه رو آنبورد کنید این مطلب به شدت پیشنهاد میشه.


✴️ @software_inside - مهندسی‌نرم‌افزار
Forwarded from Tech Den (Amirhossein)
این بلاگ پست راجع به این حرف میزنه که ai چقدر میتونه کمک کننده باشه
چقدر ممکنه بهمون آسیب بزنه
و واقعا کجاها خوبه که ازش برای بهینه کردن کارامون استفاده کنیم

بهترین قسمتش به نظرم این تیکه از جمع بندی آخرش بود

AI is a tool, it is not good or bad in itself, it’s what you do with it. I do think it can be a great tool, as long as you are not reliant on it for your workflow. Make sure you can still work effectively without it, make sure you don’t push code to production that you don’t fully understand and don’t think of AI as a replacement for your own thinking. Stay curious, keep learning.

https://lucianonooijen.com/blog/why-i-stopped-using-ai-code-editors/

خوندن این مقاله برای کسایی هم که تازه برنامه نویسی رو شروع کردن خیلی خوبه

توی این ویدیو هم میتونید مقاله رو با primeagen ببینید
https://www.youtube.com/watch?v=y3_TY4K8hVE&t=776s
من بلاخره از منطقه امنم خارج شدم و کانفیگ zsh رو به سری تغییرات دادم.

یکی از بهترین چیزایی که کار کردم، atuin بود. این ابزار به جای نگهداری تاریخچه command history تون در قالب فایل متنی، از SQLite استفاده می‌کنه. در عین حال یه سری meta data و امکان fuzzy search هم میده (که البته با fzf هم خیلی از این کارا رو میشه کرد).
چیزی که برا من جالب بود این بود که بر خلاف fzf که خیلی عمومی بود، این مخصوص همین تاریخچه کامند های شل نوشته شده و متادیتای خوبی داره مثلا این که اون کامند با چه وضعیتی تموم شده.

به نظرم بهترین ویژگیش هم اینه که هیستوری رو می‌تونه بین دستگاه هاتون سینک کنه که قول داده encrypted هست. (من کدشو نخوندم)

https://github.com/atuinsh/atuin
بچه ها، یه سوال دارم ازتون :)))
امروز تو جشنواره لینوکس امیرکبیر یه نفر که تجربه کاری زیادی تو DevOps داشت گفت که هیچکس نمیتونه DevOps باشه و work life balance خوبی داشته باشه.

کلی تر از DevOps، فکر میکنم منظورش شغل هایی بود که انکالی دارن و هر ساعت از شبانه روز باید حواسشون به uptime سیستم باشه. به نظرم شامل SRE یا خود backend developer هم می‌تونه باشه.

شما میشه تجربیاتتون رو بگید؟
هم برای کسی که میخواد شروع کنه و وارد این فیلد بشه می‌تونه مفید باشه، هم برای منی که اوایل این مسیرم می‌تونه جالب باشه که در ادامه چه خبره.
یه ابزار zsh جدیدی که باهاش کار کردم، zinitئه که در واقع یه پلاگین منیجر برای zsh محسوب میشه.
من بعد از نصبش دیگه متوجه شدم نیاز نیست تک تک پلاگین هایی که نیاز دارم رو با مصیبت git clone کنم و خودش کارشو انجام میده. همچنین اگه چیز خاصی از پلاگین oh my zsh هست که میخواهید استفاده کنید، لازم نیست کل oh my zsh رو نگه دارید بلکه کافیه migration guide رو بخونید و ببینید چطوری میشه از پلاگین های اون استفاده کنید.

https://github.com/zdharma-continuum/zinit

قسمت migration
https://github.com/zdharma-continuum/zinit?tab=readme-ov-file#migration


این هم مثال خوبیه:
https://zdharma-continuum.github.io/zinit/wiki/Example-Oh-My-Zsh-setup/
The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.

- Edsger W. Dijkstra
2025/07/05 01:22:18
Back to Top
HTML Embed Code: