من بلاخره از منطقه امنم خارج شدم و کانفیگ zsh رو به سری تغییرات دادم.
یکی از بهترین چیزایی که کار کردم، atuin بود. این ابزار به جای نگهداری تاریخچه command history تون در قالب فایل متنی، از SQLite استفاده میکنه. در عین حال یه سری meta data و امکان fuzzy search هم میده (که البته با fzf هم خیلی از این کارا رو میشه کرد).
چیزی که برا من جالب بود این بود که بر خلاف fzf که خیلی عمومی بود، این مخصوص همین تاریخچه کامند های شل نوشته شده و متادیتای خوبی داره مثلا این که اون کامند با چه وضعیتی تموم شده.
به نظرم بهترین ویژگیش هم اینه که هیستوری رو میتونه بین دستگاه هاتون سینک کنه که قول داده encrypted هست. (من کدشو نخوندم)
https://github.com/atuinsh/atuin
یکی از بهترین چیزایی که کار کردم، atuin بود. این ابزار به جای نگهداری تاریخچه command history تون در قالب فایل متنی، از SQLite استفاده میکنه. در عین حال یه سری meta data و امکان fuzzy search هم میده (که البته با fzf هم خیلی از این کارا رو میشه کرد).
چیزی که برا من جالب بود این بود که بر خلاف fzf که خیلی عمومی بود، این مخصوص همین تاریخچه کامند های شل نوشته شده و متادیتای خوبی داره مثلا این که اون کامند با چه وضعیتی تموم شده.
به نظرم بهترین ویژگیش هم اینه که هیستوری رو میتونه بین دستگاه هاتون سینک کنه که قول داده encrypted هست. (من کدشو نخوندم)
https://github.com/atuinsh/atuin
GitHub
GitHub - atuinsh/atuin: ✨ Magical shell history
✨ Magical shell history. Contribute to atuinsh/atuin development by creating an account on GitHub.
بچه ها، یه سوال دارم ازتون :)))
امروز تو جشنواره لینوکس امیرکبیر یه نفر که تجربه کاری زیادی تو DevOps داشت گفت که هیچکس نمیتونه DevOps باشه و work life balance خوبی داشته باشه.
کلی تر از DevOps، فکر میکنم منظورش شغل هایی بود که انکالی دارن و هر ساعت از شبانه روز باید حواسشون به uptime سیستم باشه. به نظرم شامل SRE یا خود backend developer هم میتونه باشه.
شما میشه تجربیاتتون رو بگید؟
هم برای کسی که میخواد شروع کنه و وارد این فیلد بشه میتونه مفید باشه، هم برای منی که اوایل این مسیرم میتونه جالب باشه که در ادامه چه خبره.
امروز تو جشنواره لینوکس امیرکبیر یه نفر که تجربه کاری زیادی تو 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/
من بعد از نصبش دیگه متوجه شدم نیاز نیست تک تک پلاگین هایی که نیاز دارم رو با مصیبت 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/
GitHub
GitHub - zdharma-continuum/zinit: 🌻 Flexible and fast ZSH plugin manager
🌻 Flexible and fast ZSH plugin manager. Contribute to zdharma-continuum/zinit development by creating an account on GitHub.
The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.
- Edsger W. Dijkstra
- Edsger W. Dijkstra
یه آموزش کامل و ساده و دوست داشتنی برای 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.