The Commit
372 subscribers
231 photos
68 videos
8 files
181 links
توسعه میدیم و توی راه توسعه چالش ها و مشکلات رو به خودمونی به اشتراک میزاریم (:
Download Telegram
توی آپدیت بعدی تلگرام می‌تونید به پروفایلتون آهنگ و پلی‌لیست اضافه کنید
👍6
The Commit
توی آپدیت بعدی تلگرام می‌تونید به پروفایلتون آهنگ و پلی‌لیست اضافه کنید
چیزی که سال قبل اینستاگرام امتحانش کرد ولی خیلی هم محبوب نشد. ایده جذابیه اما واقعیت اینه که گوش دادن به موسیقی جای خودش رو داره و بهترین تجربه فقط روی پلتفرم‌های اختصاصی موسیقی مثل اسپاتیفای، یوتیوب موزیک یا ساندکلاد به دست میاد. دلیلش هم واضحه: اول اینکه کیفیت و تنوع موزیک اونجا خیلی بیشتره، دوم اینکه الگوریتم‌های پیشنهاد آهنگ هوشمندانه‌ عمل می‌کنن و بر اساس سلیقه‌تون موزیک‌های جدید معرفی می‌کنن، سوم هم ابزارهایی مثل پلی‌لیست‌های آماده، متن آهنگ و حتی قابلیت آفلاین گوش دادن رو دارید. در نهایت، اپلیکیشن‌های پیام‌رسان خوبن برای ارتباط، ولی وقتی پای موسیقی وسط باشه تجربه تخصصی خیلی مهم‌تره
👍7👎1
امروز بعد از چرخیدن توی یوتیوب به یه نکته جالب فکر کردم؛ اینکه خیلی وقت‌ها می‌بینیم وسط ویدیوها چند بار گفته میشه "لایک کنید" یا "سابسکرایب فراموش نشه". اما واقعیت اینه که وقتی محتوا ارزشمند باشه، این اتفاق خودش به شکل طبیعی میفته. مخاطب وقتی چیزی یاد می‌گیره، سرگرم میشه یا لذت می‌بره، ناخودآگاه می‌خواد حمایت کنه. پس مهم‌تر از هر چیزی کیفیت محتواست؛ اگر خوب باشه، لایک و فالو خودش دنبالش میاد
👍71
خیلی وقتا میشینیم پای کار، ولی بعد چند دقیقه یه نوتیفیکیشن، یه فکر رندومی یا یه سر زدن سریع به شبکه اجتماعی کل تمرکزمون رو می‌گیره. جالب اینجاست که بیشتر از خود کار، انرژی اصلی‌مون صرف برگشتن به حالت تمرکز میشه. چیزی که خیلی کمک می‌کنه اینه که موقع شروع کار همه چیزای اضافی رو ببندیم، حتی برای نیم‌ساعت. همین کار کوچیک باعث میشه کیفیت خروجی خیلی فرق کنه. تمرکز یه جورایی مثل ماهی‌گیریه؛ اگه هر لحظه سنگ بندازیم تو آب، دیگه چیزی گیرمون نمیاد.
1👍6
من از این به بعد سعی می‌کنم فقط روی محتوای فنی تمرکز نکنم و یه بخش دیگه هم به اشتراک بذارم؛ چیزایی که بیشتر به مهارت‌های نرم مربوط میشن. راستش به نظرم برنامه‌نویسی فقط کد زدن نیست. خیلی وقتا مدیریت زمان، تمرکز، ارتباط گرفتن درست با تیم، یا حتی پیدا کردن مسیر یادگیری، تاثیرش خیلی بیشتر از یه تکنیک خاص توی کده. برای همین می‌خوام اینجا علاوه بر مباحث فنی، تجربه‌ها و نکته‌هایی رو هم به اشتراک بذارم که کمک کنه هم توی کارمون حرفه‌ای‌تر بشیم و هم ذهنمون سبک‌تر و منظم‌تر پیش بره. امیدوارم این ترکیب هم به دردتون بخوره و هم مسیر یادگیری‌مون رو جذاب‌تر کنه

#Amiri
1👍7
امروز یه تجربه جالب برام پیش اومد. یه تسک کاری بهم سپرده شد و من با اعتماد به نفس کامل رفتم سراغش، جوری که حتی لحظه‌ای هم احتمال اشتباه کردن رو به ذهنم راه ندادم. ولی وقتی نتیجه بررسی شد، معلوم شد کارم پر از ایراده. انگار همین اعتماد به نفس زیاد باعث شد خیلی از جزئیات مهم رو ندیده بگیرم.
این دقیقا همون چیزیه که بهش میگن اثر دانینگ–کروگر. یعنی معمولا وقتی تجربه یا دانش کمی توی یه موضوع داریم، اعتماد به نفس‌مون خیلی بالاست چون نمی‌دونیم چی رو نمی‌دونیم. در مقابل، آدمای باتجربه‌تر چون پیچیدگی‌ها رو بهتر می‌فهمن، معمولا با شک و احتیاط بیشتری جلو می‌رن.
خلاصه امروز فهمیدم اعتماد به نفس داشتن لازمه، ولی اگه با آگاهی همراه نباشه، می‌تونه بزرگ‌ترین مانع یادگیری بشه. شاید بد نباشه هر وقت با اطمینان کامل گفتیم "این کار دیگه هیچ ایرادی نداره"، یه لحظه مکث کنیم… چون اون‌جا دقیقا همون‌جاییه که احتمال خطا بیشتره

+ من این پست رو توی لینکدین هم نوشتم و اگه دوست داشتید می‌تونید از اونجا بخونیدش و پست رو لایک کنید :)
9
شاید برات سوال شده باشه وقتی میگن «کد پایتونیک» یعنی چی. پایتونیک بودن یعنی کدی بنویسی که هم ساده و قابل خوندن باشه، هم با روحیه و استانداردهایی که جامعه‌ی پایتون روش تاکید داره هماهنگ باشه. اینجوری کدت فقط درست کار نمی‌کنه، بلکه تمیزتر، قابل نگهداری‌تر و حتی برای بقیه توسعه‌دهنده‌ها قابل‌درک‌تر میشه. در عمل، پایتونیک بودن کمک می‌کنه هم خودت از کدی که نوشتی سر دربیاری، هم نفر بعدی که میاد روی پروژه، راحت‌تر بتونه ادامه بده
👍4
یکی از اصل‌های مهم در نوشتن کد پایتونیک استفاده از
EAFP (Easier to Ask for Forgiveness than Permission)
به‌جای LBYL (Look Before You Leap) هست. به‌جای اینکه مدام قبل از انجام کاری چک کنیم، راحت انجامش می‌دیم و اگر خطایی رخ داد اون رو مدیریت می‌کنیم. اینطوری کد هم تمیزتر میشه و هم کارایی بهتری پیدا می‌کنه.

ناپایتونیک:
if "key" in data:
value = data["key"]
else:
value = None


پایتونیک (EAFP):
try:
value = data["key"]
except KeyError:
value = None
1👍2👎1
اسپاتیفای توی آپدیت جدیدش قابلیت پیام‌رسانی مستقیم (دایرکت) رو معرفی کرده. از این به بعد کاربرا می‌تونن آهنگ‌ها، پادکست‌ها و کتاب‌های صوتی رو مستقیم برای دوستاشون بفرستن و توی خود اپ باهاشون گفتگو کنن.
این ویژگی کم‌کم برای کاربرای بالای ۱۶ سال – چه رایگان چه پرمیوم – در دسترس قرار می‌گیره
1👍3
یه ایمیل عجیب برام اومد که پر از وعده‌های قشنگ بود: "تو خیلی بااستعدادی، شغل پردرآمد بلندمدت داریم برات!" 😅 این دقیقا همون Social Engineering؛ یعنی با تعریف و وعده‌ی وسوسه‌کننده سعی می‌کنن اعتماد جلب کنن.

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

بدتر از همه هم اون لینک‌های Google Docs هست؛ چون اگه روشون کلیک کنی ممکنه یا فایل آلوده بدن، یا ببرنت به یه صفحه فیشینگ برای دزدیدن اطلاعاتت.

خلاصه: اگر همچین ایمیلی دریافت کردی، جواب نده، کلیک نکن، مستقیم بفرست تو اسپم
1
‏GitHub Codespaces یه جور محیط برنامه‌نویسی آماده‌ست که گیت‌هاب برات توی مرورگر میاره بالا. یعنی لازم نیست برای هر پروژه بری پایتون یا نود یا کلی ابزار دیگه نصب کنی. فقط کافیه توی صفحه‌ی ریپو روی دکمه‌ی Code → Open with Codespaces بزنی، همون لحظه یه ماشین مجازی می‌سازه، کدت رو کلون می‌کنه و یه VS Code کامل جلوت باز میشه.

برای شروع هم کار سختی نداره؛ فقط برو روی ریپوت توی گیت‌هاب، دکمه‌ی Codespaces رو بزن و چند ثانیه صبر کن. همین! بعدش می‌تونی مثل همیشه کد بزنی، کامیت کنی و حتی پول ریکوئست بسازی.

اگه خواستی بیشتر بدونی، مستندات رسمی گیت‌هاب خیلی کامل توضیح داده:

https://docs.github.com/en/codespaces
1👍61
گاهی پیش میاد روی یه ریپو کلی فایل جدید بسازی یا تغییر بدی، ولی بعدش بخوای همه رو پاک کنی و مخزن برگرده به حالت تمیز. اگر هنوز تغییرات رو add یا commit نکردی، با دو دستور ساده میشه همه‌چی رو مثل روز اول کرد:
git reset --hard
git clean -fd


‏- git reset --hard همه تغییرات فایل‌های track‌شده (اونایی که از قبل توی ریپو بودن) رو برمی‌گردونه به آخرین commit

‏- git clean -fd هم هرچی فایل و پوشه‌ی جدید (untracked) درست کردی رو پاک می‌کنه
1👍41
پخت و پز گوگل؟؟
برای سوالات عمومی میتونه خیلی خوب باشه که سریع به نتیجه برسی.
به این قسمت هم میگن AI Mode که به قسمت کتگوری های سرچ اضافه شده...
🔥6
The Commit
توی آپدیت بعدی تلگرام می‌تونید به پروفایلتون آهنگ و پلی‌لیست اضافه کنید
اضافه شد و روش کارش اینجوریه یه موزیک توی تلگرام پلی میکنید و میزنید روش که پلیرش باز بشه و add to profile میکنید.

خداییش اپشن باحالیه حال کردم
1👍5
یه مقاله خوب پیدا کردم که به بررسی معماری لایه‌ای و Dependency Injection در FastAPI می‌پردازه. نویسنده، Antonis Markoulis، توضیح داده چطور می‌شه پروژه‌ها رو طوری ساخت که UseCaseها، Repositoryها و لایه‌های دیتابیس کاملا از هم جدا باشن و در عین حال کنترل کامل روی session و transaction داشته باشیم

https://dev.to/markoulis/layered-architecture-dependency-injection-a-recipe-for-clean-and-testable-fastapi-code-3ioo
1
این مخزن یه فهرست دست‌چین‌شده از بهترین ابزارهای هوش مصنوعیه که مرتب به‌روز می‌شه. شامل ابزارهایی برای نوشتن، تولید تصویر و ویدیو، کدنویسی، بهره‌وری، صدا و موسیقی، اتوماسیون، تحلیل داده و حتی مدل‌ها و فریم‌ورک‌های متن‌باز هوش مصنوعیه

واقعا یه جای عالیه برای پیدا کردن ابزارهای مناسب و الهام گرفتن برای پروژه‌ها و تحقیقات AI

https://github.com/best-of-ai/best-of-ai
👍6
اگر بخوایم یه تابع تو پایتون فقط یه بار اجرا بشه و دفعه‌های بعد همون نتیجه رو دوباره استفاده کنیم، دکوریتور @lru_cache از ماژول functools دقیقا کار همینه؛ مثلا وقتی ما یه تابع داریم که یه محاسبه سنگین یا یه فایل بزرگ رو می‌خونه، می‌تونیم بالاش @lru_cache بذاریم و دفعه اول که اجرا شد، نتیجه محاسبه یا فایل بارگذاری میشه و دفعه بعد، دوباره همون نتیجه رو می‌گیریم بدون اینکه دوباره محاسبه یا خواندن انجام بشه.

این دکوریتور باعث میشه مصرف منابع کم بشه، سرعت بالاتر بره و همه جای برنامه بتونیم از یه نمونه مشترک استفاده کنیم و خلاصه، یه ابزار ساده و قدرتمنده برای کش کردن نتایج توابع و جلوگیری از اجرای بی‌مورد اون‌ها
3👍5
این اپشن "مولتی ریپلای" باید اضافه بشه به تلگرام بنظرم که هم زمان روی چند تا پیام ریپلای زده بشه
👍8
وقتی LLM همیشه باهات موافقه…

گاهی وقت‌ها وقتی از یک LLM مثل ChatGPT می‌خوایم کدی رو بررسی کنه یا نظری بده، جوابش بیش از حد مثبت و موافق به نظر میاد. حتی اگر اون کد یا متن واقعا ایراد داشته باشه، مدل معمولا مستقیم نمی‌گه «اینجا مشکل داری»
دلیلش ساده‌ست: این مدل‌ها بیشتر برای همراهی و کمک ساخته شدن تا نقد کردن. برای همین، ناخودآگاه سعی می‌کنن لحن تاییدکننده داشته باشن

اما خبر خوب اینه که می‌شه این رفتار رو مدیریت کرد. کافیه شفاف به مدل بگیم دنبال چی هستیم. مثلا به جای اینکه فقط بپرسیم «این کد خوبه؟»، بهتره بگیم: «فقط ایرادهای این کد رو پیدا کن» یا «مثل یک reviewer سخت‌گیر نقدش کن»

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

شبیه اینه که از کسی بپرسی "نظرت درباره این کار چیه؟" و اون هم فقط یه جواب کلی بده. اما اگر بپرسی "کجاش می‌تونه مشکل‌ساز بشه؟"، جواب دقیق‌تر و به‌دردبخورتر می‌گیری. توی کار با LLM هم همین قاعده صادقه؛ نوع سوال، کیفیت جواب رو تعیین می‌کنه

این نوشته رو توی لینکدین هم منتشر کردم؛ اگر دوست داشتید می‌تونید از این لینک بخونید و برام لایک بزنید
2👍7
امشب پخت و پز اپل رو میبینیم یا چی؟؟
👍4👎4🤔1