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
3094 - Telegram Web
Telegram Web
یه آموزش کامل و ساده و دوست داشتنی برای design pattern ها به همراه تکه‌کدهایی برای زبون‌های برنامه‌نویسی مختلف

نسخه اصلی:
https://github.com/kamranahmedse/design-patterns-for-humans

نسخه ترجمه شده:
https://github.com/3lf/design-patterns-for-humans
متاسفانه توزیع دوست داشتنی Arco Linux که من سالها ازش استفاده میکردم، بعد از ۸ سال توسعه‌ش متوقف میشه.

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

لینک خبر:
https://news.itsfoss.com/arcolinux-discontinued/
اگه تو ویم متن نوشته باشید احتمالا به این مشکل خوردید که خط ها طولانی میشه و سخته باهاشون کار کرد.
یه کاری که میشه کرد wrap کردن خط‌هاست که میاد خط های طولانی رو در دو خط نشون میده. در حالت پیشفرض از وسط کلمه هم ممکنه بشکونه ولی میتونید تنظیم کنید فقط از whitespace ها برک بده.

حالا تو این حالت مشکلی که هست اینه که j/k خیلی جالب کار نمیکنن چون کل اون خط که ما چند خط می‌بینیم رو یه خط می‌بینیم!

این ویدیو چند تا شورتکات خوب گفته با کلید g که مشکل رو حل میکنن‌.
https://youtu.be/t9FWr7cajV4?si=XeS61yU20w0P6F5g

البته g کلا کارهای خیلی جالبی می‌کنه مثلا تبدیل lowercase به uppercase هم انجام میده.
https://learnbyexample.github.io/tips/vim-tip-7/
یکی از بهترین ابزارهایی که کاربران پایتون یا حتی کاربرانی که ابزارهای پایتونی دارن می‌تونن نصب کنن uvئه به نظرم. یه جایگزینه برای بسیاری از ابزارهای مدیریت پکیج و غیره پایتونه (مثل pip و pipx و pyenv و virtualenv) که با rust نوشته شده و بسیار بسیار سریعه. اینقدر سریع پکیج‌ها رو دانلود می‌کنه که من باورم نمیشه با pip یه کار مشترک رو انجام بدن!
https://docs.astral.sh/uv/


چیزی که امروز باهاش آشنا شدم قابلیت toolsش هست. به این صورته که شما فقط می‌نویسید uvx pycowsay (برای نصب ابزار pycowsay) و همین! خودش اگه اون نصب باشه اجراش میکنه و اگه نصب نباشه اول نصبش میکنه و بعد اجراش میکنه! همچنین می‌شه ابزار رو جوری نصب کرد که به path اضافه بشه.
https://docs.astral.sh/uv/concepts/tools/


به عنوان نکته مثبت اضافه، اگه دوست ندارید کامند های خودش رو هم یاد بگیرید کافیه به جای pip install ... بزنید uv pip install و خودش اکثر ساب‌کامند‌های پیپ رو پشتیبانی می‌کنه و می‌تونید از سرعت زیادش لذت ببرید.
یه کتاب‌خونه‌ و ابزار جدیدی که پیدا کردم اسمش llm ئه و بهتون اجازه میده تو ترمینال و یا به عنوان کتابخونه پایتونی با llmهاتون ارتباط بگیرید.
جدا از این که محبوبه و داک خوبی داره، چیزی که برای من جالب بود قابلیت پلاگین‌هاش بود که مثلا می‌شه با یه پلاگین پشتیبانی از مدل‌های لوکال یا مدل‌های openrouter رو هم بهش اضافه کرد.
همچنین قابلیت کار با عکس یا خروجی structured هم داره که من تو ابزارهای دیگه ندیده بودم به این راحتی و رایگان بشه استفاده کرد.

لینک گیتهاب:
https://github.com/simonw/llm

لینک داکیومنت (قسمت schema به عنوان مثال)
https://llm.datasette.io/en/stable/schemas.html


یک نمونه پلاگین:
https://github.com/simonw/llm-openrouter

برای نصبش هم پیشنهادم استفاده از uvئه که به راحتی با uv tool install llm می‌تونید نصبش کنید.
کد زیبا چه کدیه؟ کدیه که به اندازه باشه نه بیشتر نه کمتر. قابل فهم باشه و ...
در این مطلب یه کد زیبا که برای match کردن regex ها استفاده می‌شه توضیح داده شده! به نظرم مهم تر از خود اون کد، دیدی که به برنامه‌نویسی و کد تمیز داره جالبه.
https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html
Forwarded from Geek Alerts
اسکایپ امروز بعد از ۲۲ سال برای همیشه خاموش می‌شه و کاربران برای استفاده از ویژگی‌های مشابه باید به مایکروسافت تیمز برن.

hadi @geekalerts
چرا داشتن فقط یک مانیتور برای بهره‌وری بهتر است؟
این ویدیو توضیح می‌ده که چطوری با تمرکز بر فقط همون یک مانیتور حس بهتری داره و خستگی کمتری رو تجربه می‌کنه.

https://m.youtube.com/watch?v=8rWtKKeBMm8
ادیتور zed اخیرا ویژگی agentic edit رو معرفی کرده. قضیه به این صورته که شما قبلا می‌تونستین api key مربوط به LLM رو وارد کنید (انواع مختلفی رو هم ساپورت میکرد) و کنار کد و با کانتکست هر فایلی که بهش بگید، بتونید با مدلتون چت کنید.
الان علاوه بر اون قابلیت ادیت هم اضافه کرده، یعنی خود ادیتور میاد بر اساس پرامپت شما و چندین کال زدن به LLM، ادیت می‌کنه کد رو و حتی توی کد سرچ می‌کنه و فایل های مرتبط و مورد نیاز رو به کانتکست اضافه می‌کنه. در نهایت هم diff رو به شما نشون میده و شما تایید یا رد می‌کنید و خلاصه بدون اجازه شما کد رو دست نمیزنه. (البته قطعا ایده خوبیه که از ورژن کنترل استفاده کنید و کپی‌ای چیزی داشته باشید از کد)

https://zed.dev/agentic


در کل من ادیتور Zed رو دوست دارم خیلی. هم vim mode خوبی داره هم پشتیبانی نسبتا خوبی از زبان های مختلف بدون نیاز به پلاگین خاصی داره. البته برخلاف تبلیغشون که خیلی سریعه، از کانفیگ neovim من با ده ها پلاگین سریع‌تر نیست، اما باز هم تجربه لذت بخشی ارائه می‌ده.
یه ویدیو خیلی جالب در مورد گیت
تو این ویدیو میاد دیتا مدل گیت رو بررسی میکنه و میگه چرا شاید به عنوان یه دیتابیس هم این دیتا مدل می‌تونه جالب باشه؟

https://youtu.be/nPPlyjMlQ34?si=pvgzmoQH4XCLpd7t
فایل متنی چیه؟ شاید بدیهی به نظر بیاد ولی توی POSIX تعریف ازش داریم.
تو این لینک میتونید بیشتر در موردش بخونید.
نکات مختلفی داره از جمله این که بین خط ها چی میاد و و از همه جالب تر این که اگر آخرین کارکتر فایلتون n\ نباشه معتبر نیست فایلتون :)))
https://stackoverflow.com/questions/729692/why-should-text-files-end-with-a-newline/729795#729795
This media is not supported in your browser
VIEW IN TELEGRAM
مایکروسافت ادیتور متن تحت ترمینال خودش به نام Edit رو عرضه کرده که ادیتور ساده ای هست و به کاربران امکان ویرایش فایلهای متنی رو بدون خارج شدن از محیط ترمینال فراهم میکنه، بسیار سبک هست، از ماوس پشتیبانی میکنه، امکان باز کردن چند فایل به صورت همزمان رو داره و میشه عبارات مختلف رو در اون پیدا و جایگزین کرد.

این شرکت Edit رو به عنوان ویرایشگر پیش فرض متن برای ویندوز ساخته و به دلیل اینکه کاربران درگیر میم نحوه خارج شدن از Vim نشن، نیاز بوده که ساده باشه و دارای حالتهای مختلف مثل Vim نباشه، در نتیجه مایکروسافت تصمیم گرفته ادیتور خودش رو بسازه.

این ادیتور با زبان Rust نوشته شده، متن باز هست و از حالا میشه اون رو از گیت هاب دانلود و روی ویندوز و لینوکس نصب کرد.

🔎 theverge

📍 @TechTube
یکی از پترن های مورد علاقه من تو سیستم های توزیع شده، back pressure ئه.
خلاصه ماجرا اینه که وقتی یه سیستم نمیتونه با سرعتی که ورودی میگیره، اون رو هندل کنه، یه جوری این فشاری که روشه رو روی سیستم دیگری که بهش ورودی میده اعلام کنه.
این مطلب با مثال های زیاد و توضیحات جذاب این موضوع رو توضیح داده.

https://medium.com/@jayphelps/backpressure-explained-the-flow-of-data-through-software-2350b3e77ce7
2025/07/04 14:28:28
Back to Top
HTML Embed Code: