یه آموزش کامل و ساده و دوست داشتنی برای design pattern ها به همراه تکهکدهایی برای زبونهای برنامهنویسی مختلف
نسخه اصلی:
https://github.com/kamranahmedse/design-patterns-for-humans
نسخه ترجمه شده:
https://github.com/3lf/design-patterns-for-humans
نسخه اصلی:
https://github.com/kamranahmedse/design-patterns-for-humans
نسخه ترجمه شده:
https://github.com/3lf/design-patterns-for-humans
GitHub
GitHub - kamranahmedse/design-patterns-for-humans: An ultra-simplified explanation to design patterns
An ultra-simplified explanation to design patterns - kamranahmedse/design-patterns-for-humans
متاسفانه توزیع دوست داشتنی Arco Linux که من سالها ازش استفاده میکردم، بعد از ۸ سال توسعهش متوقف میشه.
البته اینجور دیستروهای کوچک که تیم کوچکی دارن یا حتی فقط یک نفر پشتشونه، این اتفاق براشون زیاد میفته، خیلی مهمه که حواسمون باشه موقع انتخاب دیسترو، اگر دنبال چیز آیندهدار هستیم، سراغ دیستروهایی که هیت شدن نریم، بلکه دنبال چیزایی باشیم که کامیونیتی پشتشون بزرگه. چون اگر یکی دو نفر توسعهدهنده داشته باشه هرچند هم خودشون رو وقف این کار کرده باشن خسته میشن یا انگیزهشون رو از دست میدن یا مشکل مالی و ... میخورن.
لینک خبر:
https://news.itsfoss.com/arcolinux-discontinued/
البته اینجور دیستروهای کوچک که تیم کوچکی دارن یا حتی فقط یک نفر پشتشونه، این اتفاق براشون زیاد میفته، خیلی مهمه که حواسمون باشه موقع انتخاب دیسترو، اگر دنبال چیز آیندهدار هستیم، سراغ دیستروهایی که هیت شدن نریم، بلکه دنبال چیزایی باشیم که کامیونیتی پشتشون بزرگه. چون اگر یکی دو نفر توسعهدهنده داشته باشه هرچند هم خودشون رو وقف این کار کرده باشن خسته میشن یا انگیزهشون رو از دست میدن یا مشکل مالی و ... میخورن.
لینک خبر:
https://news.itsfoss.com/arcolinux-discontinued/
It's FOSS News
8 Years, One Last Goodbye: ArcoLinux Bids Farewell
After 8 years, ArcoLinux has come to the end of its journey.
اگه تو ویم متن نوشته باشید احتمالا به این مشکل خوردید که خط ها طولانی میشه و سخته باهاشون کار کرد.
یه کاری که میشه کرد wrap کردن خطهاست که میاد خط های طولانی رو در دو خط نشون میده. در حالت پیشفرض از وسط کلمه هم ممکنه بشکونه ولی میتونید تنظیم کنید فقط از whitespace ها برک بده.
حالا تو این حالت مشکلی که هست اینه که j/k خیلی جالب کار نمیکنن چون کل اون خط که ما چند خط میبینیم رو یه خط میبینیم!
این ویدیو چند تا شورتکات خوب گفته با کلید g که مشکل رو حل میکنن.
https://youtu.be/t9FWr7cajV4?si=XeS61yU20w0P6F5g
البته g کلا کارهای خیلی جالبی میکنه مثلا تبدیل lowercase به uppercase هم انجام میده.
https://learnbyexample.github.io/tips/vim-tip-7/
یه کاری که میشه کرد wrap کردن خطهاست که میاد خط های طولانی رو در دو خط نشون میده. در حالت پیشفرض از وسط کلمه هم ممکنه بشکونه ولی میتونید تنظیم کنید فقط از whitespace ها برک بده.
حالا تو این حالت مشکلی که هست اینه که j/k خیلی جالب کار نمیکنن چون کل اون خط که ما چند خط میبینیم رو یه خط میبینیم!
این ویدیو چند تا شورتکات خوب گفته با کلید g که مشکل رو حل میکنن.
https://youtu.be/t9FWr7cajV4?si=XeS61yU20w0P6F5g
البته g کلا کارهای خیلی جالبی میکنه مثلا تبدیل lowercase به uppercase هم انجام میده.
https://learnbyexample.github.io/tips/vim-tip-7/
YouTube
Overpowered vim commands for writers
If you're reading a youtube video description in your free time it's time to go outside and touch some grass. If the words "vim config" have any kind of meaning to you, you're already cooked and might as well drop a sub.
#programming #math #sylvanfranklin
#programming #math #sylvanfranklin
سیستم نشون دادن تبلیغ بر اساس کوئری ها در گوگل چطوری کار میکنه؟
با یه مکانیسم به اسم ad auction
https://support.google.com/google-ads/answer/6366577?hl=en
با یه مکانیسم به اسم ad auction
https://support.google.com/google-ads/answer/6366577?hl=en
Google
How the Google Ads auction works - Google Ads Help
Google Ads determines which ads should show with a lightning-fast ad auction, that takes place every time someone searches on Google or visits a site that shows ads. When someone searches on Go
یکی از بهترین ابزارهایی که کاربران پایتون یا حتی کاربرانی که ابزارهای پایتونی دارن میتونن نصب کنن 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 و خودش اکثر سابکامندهای پیپ رو پشتیبانی میکنه و میتونید از سرعت زیادش لذت ببرید.
https://docs.astral.sh/uv/
چیزی که امروز باهاش آشنا شدم قابلیت toolsش هست. به این صورته که شما فقط مینویسید uvx pycowsay (برای نصب ابزار pycowsay) و همین! خودش اگه اون نصب باشه اجراش میکنه و اگه نصب نباشه اول نصبش میکنه و بعد اجراش میکنه! همچنین میشه ابزار رو جوری نصب کرد که به path اضافه بشه.
https://docs.astral.sh/uv/concepts/tools/
به عنوان نکته مثبت اضافه، اگه دوست ندارید کامند های خودش رو هم یاد بگیرید کافیه به جای pip install ... بزنید uv pip install و خودش اکثر سابکامندهای پیپ رو پشتیبانی میکنه و میتونید از سرعت زیادش لذت ببرید.
docs.astral.sh
uv
uv is an extremely fast Python package and project manager, written in Rust.
یه کتابخونه و ابزار جدیدی که پیدا کردم اسمش
جدا از این که محبوبه و داک خوبی داره، چیزی که برای من جالب بود قابلیت پلاگینهاش بود که مثلا میشه با یه پلاگین پشتیبانی از مدلهای لوکال یا مدلهای 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 میتونید نصبش کنید.
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 میتونید نصبش کنید.
GitHub
GitHub - simonw/llm: Access large language models from the command-line
Access large language models from the command-line - simonw/llm
کد زیبا چه کدیه؟ کدیه که به اندازه باشه نه بیشتر نه کمتر. قابل فهم باشه و ...
در این مطلب یه کد زیبا که برای match کردن regex ها استفاده میشه توضیح داده شده! به نظرم مهم تر از خود اون کد، دیدی که به برنامهنویسی و کد تمیز داره جالبه.
https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html
در این مطلب یه کد زیبا که برای match کردن regex ها استفاده میشه توضیح داده شده! به نظرم مهم تر از خود اون کد، دیدی که به برنامهنویسی و کد تمیز داره جالبه.
https://www.cs.princeton.edu/courses/archive/spr09/cos333/beautiful.html
یک مطلب چند قسمتی خوب برای مدیریت مموری در زبانهای برنامهنویسی مختلف
https://dev.to/deepu105/demystifying-memory-management-in-modern-programming-languages-ddd
https://dev.to/deepu105/demystifying-memory-management-in-modern-programming-languages-ddd
DEV Community
🚀 Demystifying memory management in modern programming languages
Let us take a look at how modern programming languages manage memory.
چطور مثل یک هکر از ترمینال استفاده کنیم؟
https://www.freecodecamp.org/news/coding-like-a-hacker-in-the-terminal-79e22954968e/
https://www.freecodecamp.org/news/coding-like-a-hacker-in-the-terminal-79e22954968e/
freeCodeCamp.org
How to code like a Hacker in the terminal
By Caleb Taylor You are a hacker. Your home is the terminal. You know every key stroke is valuable. If something is less than 100% efficient, you will spend hours figuring out the right tool to save yourself seconds. Because it’s always worth it. _S...
چرا برنامهنویس ها بسیار دچار فرسودگی شغلی میشن؟ (burnout)
یکم طولانیه ولی ویدیوی خیلی جالبی بود.
https://youtu.be/XW-02QiiHDM?si=5YiqqH-iN-nhWc7U
یکم طولانیه ولی ویدیوی خیلی جالبی بود.
https://youtu.be/XW-02QiiHDM?si=5YiqqH-iN-nhWc7U
YouTube
Why Software Devs Keep Burning Out
Our coaches can help you take real steps toward getting your life on track. Learn more: https://bit.ly/3GjDVdy
▼ Timestamps ▼
────────────
00:00 - Introduction
01:13 - Set up to fail
05:35 - Why devs burn out
07:47 - Remote Work
09:15 - Your colleagues…
▼ Timestamps ▼
────────────
00:00 - Introduction
01:13 - Set up to fail
05:35 - Why devs burn out
07:47 - Remote Work
09:15 - Your colleagues…
Forwarded from Geek Alerts
اسکایپ امروز بعد از ۲۲ سال برای همیشه خاموش میشه و کاربران برای استفاده از ویژگیهای مشابه باید به مایکروسافت تیمز برن.
hadi @geekalerts
hadi @geekalerts
در مورد functional programming مطلب خیلی جالبی بود
https://medium.com/@olxc/switching-from-oop-to-functional-programming-4187698d4d3
https://medium.com/@olxc/switching-from-oop-to-functional-programming-4187698d4d3
Medium
Switching from OOP to Functional Programming
Why functional programming is so hard?
چرا داشتن فقط یک مانیتور برای بهرهوری بهتر است؟
این ویدیو توضیح میده که چطوری با تمرکز بر فقط همون یک مانیتور حس بهتری داره و خستگی کمتری رو تجربه میکنه.
https://m.youtube.com/watch?v=8rWtKKeBMm8
این ویدیو توضیح میده که چطوری با تمرکز بر فقط همون یک مانیتور حس بهتری داره و خستگی کمتری رو تجربه میکنه.
https://m.youtube.com/watch?v=8rWtKKeBMm8
YouTube
Why I only use one monitor
BenQ Programming Monitor https://benqurl.biz/4i9Wmi7
Most developers swear by having multiple monitors… but after years of trying, I realized it just doesn’t work for me. In this video, I share why I decided to switch to a single monitor setup as a software…
Most developers swear by having multiple monitors… but after years of trying, I realized it just doesn’t work for me. In this video, I share why I decided to switch to a single monitor setup as a software…
ادیتور zed اخیرا ویژگی agentic edit رو معرفی کرده. قضیه به این صورته که شما قبلا میتونستین api key مربوط به LLM رو وارد کنید (انواع مختلفی رو هم ساپورت میکرد) و کنار کد و با کانتکست هر فایلی که بهش بگید، بتونید با مدلتون چت کنید.
الان علاوه بر اون قابلیت ادیت هم اضافه کرده، یعنی خود ادیتور میاد بر اساس پرامپت شما و چندین کال زدن به LLM، ادیت میکنه کد رو و حتی توی کد سرچ میکنه و فایل های مرتبط و مورد نیاز رو به کانتکست اضافه میکنه. در نهایت هم diff رو به شما نشون میده و شما تایید یا رد میکنید و خلاصه بدون اجازه شما کد رو دست نمیزنه. (البته قطعا ایده خوبیه که از ورژن کنترل استفاده کنید و کپیای چیزی داشته باشید از کد)
https://zed.dev/agentic
در کل من ادیتور Zed رو دوست دارم خیلی. هم vim mode خوبی داره هم پشتیبانی نسبتا خوبی از زبان های مختلف بدون نیاز به پلاگین خاصی داره. البته برخلاف تبلیغشون که خیلی سریعه، از کانفیگ neovim من با ده ها پلاگین سریعتر نیست، اما باز هم تجربه لذت بخشی ارائه میده.
الان علاوه بر اون قابلیت ادیت هم اضافه کرده، یعنی خود ادیتور میاد بر اساس پرامپت شما و چندین کال زدن به LLM، ادیت میکنه کد رو و حتی توی کد سرچ میکنه و فایل های مرتبط و مورد نیاز رو به کانتکست اضافه میکنه. در نهایت هم diff رو به شما نشون میده و شما تایید یا رد میکنید و خلاصه بدون اجازه شما کد رو دست نمیزنه. (البته قطعا ایده خوبیه که از ورژن کنترل استفاده کنید و کپیای چیزی داشته باشید از کد)
https://zed.dev/agentic
در کل من ادیتور Zed رو دوست دارم خیلی. هم vim mode خوبی داره هم پشتیبانی نسبتا خوبی از زبان های مختلف بدون نیاز به پلاگین خاصی داره. البته برخلاف تبلیغشون که خیلی سریعه، از کانفیگ neovim من با ده ها پلاگین سریعتر نیست، اما باز هم تجربه لذت بخشی ارائه میده.
Zed
Zed — Agentic Editing
Collaborate with agents at 120fps in a natively multiplayer IDE.
یه ویدیو خیلی جالب در مورد گیت
تو این ویدیو میاد دیتا مدل گیت رو بررسی میکنه و میگه چرا شاید به عنوان یه دیتابیس هم این دیتا مدل میتونه جالب باشه؟
https://youtu.be/nPPlyjMlQ34?si=pvgzmoQH4XCLpd7t
تو این ویدیو میاد دیتا مدل گیت رو بررسی میکنه و میگه چرا شاید به عنوان یه دیتابیس هم این دیتا مدل میتونه جالب باشه؟
https://youtu.be/nPPlyjMlQ34?si=pvgzmoQH4XCLpd7t
YouTube
Using Git as a NoSql Database by Kenneth Truyers
Git is not just a source control system. It’s a content tracker we can (ab)use as a NoSQL database. Git has two features that traditional databases don’t support: deduplicated storage and automatic history tracking. This talk discusses how to leverage it…
فایل متنی چیه؟ شاید بدیهی به نظر بیاد ولی توی POSIX تعریف ازش داریم.
تو این لینک میتونید بیشتر در موردش بخونید.
نکات مختلفی داره از جمله این که بین خط ها چی میاد و و از همه جالب تر این که اگر آخرین کارکتر فایلتون n\ نباشه معتبر نیست فایلتون :)))
https://stackoverflow.com/questions/729692/why-should-text-files-end-with-a-newline/729795#729795
تو این لینک میتونید بیشتر در موردش بخونید.
نکات مختلفی داره از جمله این که بین خط ها چی میاد و و از همه جالب تر این که اگر آخرین کارکتر فایلتون n\ نباشه معتبر نیست فایلتون :)))
https://stackoverflow.com/questions/729692/why-should-text-files-end-with-a-newline/729795#729795
Stack Overflow
Why should text files end with a newline?
I assume everyone here is familiar with the adage that all text files should end with a newline. I've known of this "rule" for years but I've always wondered — why?
Forwarded from TechTube 𝕏 تک توب
This media is not supported in your browser
VIEW IN TELEGRAM
مایکروسافت ادیتور متن تحت ترمینال خودش به نام Edit رو عرضه کرده که ادیتور ساده ای هست و به کاربران امکان ویرایش فایلهای متنی رو بدون خارج شدن از محیط ترمینال فراهم میکنه، بسیار سبک هست، از ماوس پشتیبانی میکنه، امکان باز کردن چند فایل به صورت همزمان رو داره و میشه عبارات مختلف رو در اون پیدا و جایگزین کرد.
این شرکت Edit رو به عنوان ویرایشگر پیش فرض متن برای ویندوز ساخته و به دلیل اینکه کاربران درگیر میم نحوه خارج شدن از Vim نشن، نیاز بوده که ساده باشه و دارای حالتهای مختلف مثل Vim نباشه، در نتیجه مایکروسافت تصمیم گرفته ادیتور خودش رو بسازه.
این ادیتور با زبان Rust نوشته شده، متن باز هست و از حالا میشه اون رو از گیت هاب دانلود و روی ویندوز و لینوکس نصب کرد.
🔎 theverge
📍 @TechTube
این شرکت Edit رو به عنوان ویرایشگر پیش فرض متن برای ویندوز ساخته و به دلیل اینکه کاربران درگیر میم نحوه خارج شدن از Vim نشن، نیاز بوده که ساده باشه و دارای حالتهای مختلف مثل Vim نباشه، در نتیجه مایکروسافت تصمیم گرفته ادیتور خودش رو بسازه.
این ادیتور با زبان Rust نوشته شده، متن باز هست و از حالا میشه اون رو از گیت هاب دانلود و روی ویندوز و لینوکس نصب کرد.
🔎 theverge
📍 @TechTube
یکی از پترن های مورد علاقه من تو سیستم های توزیع شده، back pressure ئه.
خلاصه ماجرا اینه که وقتی یه سیستم نمیتونه با سرعتی که ورودی میگیره، اون رو هندل کنه، یه جوری این فشاری که روشه رو روی سیستم دیگری که بهش ورودی میده اعلام کنه.
این مطلب با مثال های زیاد و توضیحات جذاب این موضوع رو توضیح داده.
https://medium.com/@jayphelps/backpressure-explained-the-flow-of-data-through-software-2350b3e77ce7
خلاصه ماجرا اینه که وقتی یه سیستم نمیتونه با سرعتی که ورودی میگیره، اون رو هندل کنه، یه جوری این فشاری که روشه رو روی سیستم دیگری که بهش ورودی میده اعلام کنه.
این مطلب با مثال های زیاد و توضیحات جذاب این موضوع رو توضیح داده.
https://medium.com/@jayphelps/backpressure-explained-the-flow-of-data-through-software-2350b3e77ce7
Medium
Backpressure explained — the flow of data through software
Backpressure is something nearly every software engineer will have to deal with at some point, and for some it’s a frequent problem. But…