2 452
订阅者
-324 小时
+317 天
+11430 天
数据加载中...
吸引订阅者
十月 '2610月 '26
十月 '26
+46
在4个频道中
九月 '26
+156
在4个频道中
Get PRO
八月 '26
+236
在7个频道中
Get PRO
七月 '26
+268
在7个频道中
Get PRO
六月 '26
+218
在6个频道中
Get PRO
五月 '26
+220
在7个频道中
Get PRO
四月 '26
+306
在8个频道中
Get PRO
三月 '26
+1 156
在3个频道中
Get PRO
二月 '260
在20个频道中
Get PRO
一月 '26
+71
在2个频道中
| 日期 | 订阅者增长 | 提及 | 频道 | |
| 08 十月 | +1 | |||
| 07 十月 | 0 | |||
| 06 十月 | +3 | |||
| 05 十月 | +3 | |||
| 04 十月 | +7 | |||
| 03 十月 | +5 | |||
| 02 十月 | +6 | |||
| 01 十月 | +21 |
频道帖子
#تجربه
یکی از کارهایی که با بعضی کارفرماها میکنم اینه؛ تاریخ شروع و پایان پروژه رو توی
Description, README.md
مینویسم (اولین خط) + تمام فیچرها و توافقاتی که کردیم.
هربار یک چیزی رو میخواد تغییر بده یا اضافه کنه بهش میگم برو Readme تاریخ رو به این تغییر بده فیچر رو هم اضافه کن توی بخش تغییرات
همین مورد به تنهایی ۹۰٪ مشکلات و جنگهای بعدی رو حل میکنه؛ وقتی به لفظ میگید اضافه کردن این فیچر یا این تغییری که گفتی زمان رو عقب میندازه مطمئن باشید کارفرما فردا صبحش یادش میره.
وقتی بهش تقویم میدید که با هر تغییر خودش باید تاریخ رو عوض کنه (دست از ۹۰٪ تغییراتی که میخواد بده میکشه)
من الان ۲ سالی میشه برای کارفرماهای دورکاریم این موضوع رو دارم
بیش از ۸۰٪ پروژههام تاریخش دست نمیخوره و همیشه هم زودتر از تاریخ اولیه بهشون تحویل میدم و عشق میکنند.| 2 | من دروغ نمیگم، واقعاً سرویس گوگل سرچ دان هست. | 427 |
| 3 | #موقت
نسخه ویندوز روی گیتهاب قرار گرفت؛
پیشنهاد میکنم از ورژن .msi استفاده کنید. | 763 |
| 4 | #موقت
بیلد ویندوز رو انجام دادم، مشکل tray panel و ... رو هم حل کردم.
فقط اینکه من ویندوز ۱۱ رو فقط میتونم تست بزنم
انقدر نوسان برق زیاده که نمیشه سیستم رو روشن نگه داشت. | 766 |
| 5 | درنهایت از اونجایی که اکثر فیچرهایی که خواسته شده بود رو توسعه دادم (غیر از کلی فیچر دیگه که خودم نیاز داشتم و توی roadmap نوشتم)
و تقریبا ازینجا به بعد هیچ کس به پروژه اهمیتی نمیده؛ بعد از v0.2.2 و اضافه شدن تم واقعا اینطوری شد بر اساس پیامها و گزارش باگ و ...
ممکنه بعد از انتشار نسخه ویندوزی ورژن v0.3.1 دیگه روی این پروژه کار نکنم و برگردم روی ایدههای شرکت. | 768 |
| 6 | این تمام مدل استفاده من از AI روی این پروژه بود؛ بخشهایی که بنظرم تکراری و خسته کننده بود همرو به LLM سپردم؛ مثلا اینکه من حفظ کنم کدوم تگ html استاندارد هست الان واقعا کار خوبی نیست.
یا اینکه کدوم className های tailwind رو باید استفاده کنم که ui مدنظرم اینطوری عمل کنه ؛ همین رو به LLM بگید بهتون میده
فقط نکتهاش این هست که بتونید wireframe وار استراکچر صفحه رو بهش بدید و بهش بگید که نباید به این استراکچر دست بزنه.
به راحتی میتونم بگم بیش از ۹۹٪ پرامپتهایی که میدادم همون پاسخ اول راهجل درست بود.
دوستان توی گروه شاهد هستند با همین استاندارد تغییر تم کل نرمافزار به تمهای Gogh حدود ۴ ساعت طول کشید.
فقط نیاز شد با موارد انتخابی روی HomePage بهش تایید بدم و بعد اون استاندارد رو تبدیل به پرامپت کنم و بگم روی همه صفحات دیگه رعایت بشه.
خیلی صفحات و کامپوننتها هم البته ساده بود و خودم دستی اینکار رو میکردم.
درنهایت برای تست نویسی؛ چون کل کدها رو خودم زده بودم و از وضعیتشون با خبر بودم
تست نویسی رو بهش سپردم؛ تست اول خوب نبود ازش خواستم بجای اینکه تست نویسی انجام بده دنبال باگ بگرده و برای اثبات وجود باگ تست برای اون باگ بنویسه (حدودا ۲۰ تا باگ پیدا کرد که ۱۱ موردش واقعی بود ۹ مورد رو شرایط خاص رو واسه خودش درنظر گرفته بود که اتفاق نمیوفتاد)
این ۹ مورد رو نوشتم؛ بعد برای هر صفحه بهش گفتم تست نویسی انجام بده
(البته بعد از اینکه تستهای کامپوننتهای ریز رو گرفتم)
و بعد همهی اینها رو با باگهایی که قبلتر دوستان پیدا کرده بودند و دستی فیکس کرده بودم بررسی کردم و دیدم اون باگها هم براشون تست نوشته شده و اگر وجود داشت پیدا میکرد.
دوتا نکتهی نهایی:
۱- من تمام پرامپتهام رو به انگلیسی میدم (انگلیسی دست و پا شکسته و اشتباه هم نتیجه بهتری از فارسی داره)
۲- بیشتر از بخش یا چیزی که مورد نیازش هست برای حل اون مسئله بهش دیتا نمیدم.
اگر نکته دیگری بود اضافه خواهم کرد (سوالی هم اگر بود توی گروه یا دایرکت کانال بپرسید) | 736 |
| 7 | قبل از شروع اینو بگم که :
من نه Agent روی سیستمم دارم
نه ابزارهای شرکتهای LLM رو دارم
نه نسخه Open-source و نه حتی محیط چت با LLM داخل ادیتور و ...
مواقعی که در مورد Api صحبت میکنم اون روی سیستم شرکت هست که بعضی وقتا مجبور میشم یک مقدار توکن روش بسوزونم.
ذهنیت من برای کار کردن روی پروژههام بعد از دوران LLM این هست که برای پیدا کردن مشکل باید بدونی چی کجا قرار داره؛ هیچ کدی بدون مشکل نیست ولی وقتی LLM کد بزنه باید کل سورس کد رو بگردم تا ببینم مشکل کجاست (اکثر وایبکدرها توی این موقعیت مثل خر تو گل گیر میکنند؛ قصد توهین ندارم وحامت شرایط و اصطلاح رو میخوام توضیح بدم)
اما اگر خودم چیده باشم میدونم مشکلم از کجاس و فقط سراغ همون بخش میرم.
من از LLM فقط توی محیط چت آنلاین استفاده میکنم :
chat.deepseek.com
grok.com
duck.ai
gemini.com
chatgpt.com
chat.qwen.com
معمولا هم همین موارد کارم رو راه میندازه (به ترتیب استفادهام لیست کردم) ۳ مورد اول کل چیزی بود که برای این پروژه استفاده کردم.
خود پروژه رو چطور کد زدم ؟
برای بخش بکند که کاملا روی Rust نوشته شده همه چیز دستی هست؛ غیر از یک سری موارد و ایرادات کوچیک که برای حل مشکل از LLM کمک گرفتم مثلا یک جایی FromRow رو ننوشته بودم (برای sqlx هست) و این باعث میشد یک سری ارور trait عجیب ببینم؛ توی بررسی چشمی پیداش نکردم که روی کدوم struct هست برای LLM فرستادم و بهم گفت.
توی بکند این موضوع که همرو خودم کد بزنم خیلی خیلی برام مهم بود به ۳ دلیل :
۱- بفهمم و بدونم چیکار دارم میکنم
۲- مطمئن باشم اگر بعدا اروری خوردم مشکل از بکند نیست
۳- بکند بخشی هست که دسترسی به هارد و ... ام داره و نمیخواستم بخاطر یک گیج بازی LLM مثلا بخشی از آهنگهام از روی هارد پاک بشه یا اتفاقات دیگه.
اما توی فرانت موضوع فرق میکرد:
۱- من خیلی طرفدار توسعه فرانتاند نیستم (چیزی که جذبم کنه وجود نداره برام)
۲- خیلی سواد حرفهای توش ندارم (البته که React رو بلدم)
۳- بخشهای زیادی مثل Tailwind, html, css یا نوشتن متن انگلیسی هست که عمرا دوست ندارم دستی کد بزنم.
پس توی فرانت همین کار رو کردم :
اول یک استاندارد کلی برای css نوشتم که بتونم ازش توی کل پروژه استفاده کنم؛ بخصوص توی نسخه اول که تمهای ترمینال وجو نداشت (اگر یادتون باشه ۲ تا رنگ بیشتر نداشتیم)
بعد شروع کردم برای هر صفحه کد کامپوننت زدن؛ به اینصورت که همه چیز div بود و همه چیز wireframe بود؛ جاهایی که نیاز بود متن انگلیسی بنوسیم مثلا اگر دیتا داشیتم و نداشتیم سناریو چطوری میشه :
no data -> nothing
got data -> render
متنهای بدنه رو اینطوری مینوشتم یا برای about نوشته بودم :
about goes here
همینارو بهشون استایل اصلی مدنظرم رو اضافه میکردم.
وقتی که بنظرم خوب شد :
این رو برای LLM میفرستادم میگفتم حالا از tailwind روی این استفاده کن بدون اینکه به هیچ چیز دیگه دست بزنی؛ بعد از اینکه رضایت داشتم از خروجیش خروجی رو بهش میدادم میگفتم تا جایی که میشه html tag درست رو استفاده کن بجای div (من همرو div میذاشتم)
و درنهایت متنها؛ تمام توضیحات و متنهای انگلیسی رو خود LLM نوشته؛ وقتی مرحله html tag تموم میشد بهش میگفتم که متنها رو dummy text های من بنویسه.
وقتی اینطوری کد میزنید یک سری کامپوننت خواهید داشت (هرچند کوچیک) که باعث رندر شدن کل صفحه میشه برای اینها یک تگ problem: مینوشتم که تنظیمات neovim من این تگ قرمز میشه همیشه و اینطوری بود که برای v0.3.0 میدونستم چه چیزهایی رو باید optimize کنم و بطورکلی چیکار باید بکنم.
یک سری منطق و استانداردسازی هم وجود داره که برای اینکه مدل اونارو اشتباه نکنه کلا اینارو جدا کد زدم:
مثلا نحوه فرستادن درخواست برای بکند؛ یک فایل به اسم
command.ts
ساختم که تمام function هایی که از فرانت با بکند کار داره داخلش هست و این فایل هم به api.ts متصل هست که داخلش کلاس musicApi رو داره و تمام invoke ها توی این موارد هست و دیتاها همیشه ثابت و با یک فرمت بر میگرده.
جاهایی که LLM احمق میشد و میخواست کدهارو بهم بریزه از روی import ها متوجه میشد و اشاره میکردم حق نداره از چیزی به غیر از command.ts و musicApi استفاده کنه.
یک بخش مهم پرامپت هم این بود که:
اگر تصمیم گرفته که فانکشن جدید یا api دیگری برای خروجی بهتر نیازه اول دلیل اون رو توضیح میدی و بعد نمونه کد پیشنهاد میدی و سوال میپرسی اگر من تایید کردم میتونی فرض کنی که اضافه شده و توی چت بعدی راهحل رو با درنظر گرفتن این متد ادامه بدی.
اینا برای مواردی بود که توی command.ts, musicApi یا حتی Rust نیاز بود اضافه کنم. | 666 |
| 8 | حالا که وضعیت پروژه به جای خوبی رسیده؛ گفتم یک توضیحی بدم از نحوه استفادهام از LLM برای این پروژه شاید بدرد شما و پروژههاتون هم خورد.
پست یا پستهای بعدی در اینباره هست. | 795 |
| 9 | انقدر بدم میاد از بچههای فنی کپی میکنند.
مزرعهداری از همون اولش شغل بازنشستگی بچههای فنی بود 😑 | 1 044 |
| 10 | فیچر اصلی نسخه جدید اضافه شدن قابلیت Lyric هست
که اگر بخواید میتونید بهش ترجمه هم اضافه کنید.
(برای اونهای که ویسهای آموزشی زبان اصلی گوش میدند)
اگر ترجمه نداشته باشه اون پنل ترجمه رو نخواهد داشت؛
برای Lyric هم ۲ حالت داره Plain text که متن رو میذارید دیگه با آهنگ هماهنگ نمیشه و حالت Sync که با آهنگ میتونید هماهنگ کنید متن مدنظر خودتون رو.
یک سری فیچر دیگه هم برای راحتی اضافه شده که توی صفحه release گیتهاب میذارم.
ترجمه آهنگ با chatgpt بوده و هیچی از متن نمیفهمه بعضی کلمات رو بهش گفتم این شد بهترینش.
قطعا اگر تست نویسی نبود این فیچر عمرا امروز آماده نمیشد ۸۷۸ تا تست فرانت و ۳۲۷ تا تست توی بکند.
JaFplayer
نسخه ویندور؛ توی روزهای آینده | 1 074 |
| 11 | Shadmehr Aghili - Ghoroor.mp3 | 1 087 |
| 12 | دوستانی که روی لینوکس هستند
اگر آپدیت بزنید ممکنه tray panel دیگه براتون کار نکنه
روی ورژن v0.1.0 اگر یادتون باشه یک باگ داشتیم که سیستمهای غیر از Nvidia براسون tray panel درست کار نمیکرد و من اون موقع یک راهکار موقت براش زدم.
الان توی آپدیت سیستمم متوجه شدم اون باگ توی لینوکس حل شده و بعد از آپدیت باعث میشه tray panel دوباره درست کار نکنه
۵ ساعته دارم دیباگ میکنم (چون جایی این موضوع رو درست داکیومنت نکرده بود)
خلاصه v0.3.1 رو سعی میکنم زودتر بدم اگر به این مشکل برخوردید باید منتظر ورژن بعدی باشید.
چندتا آپدیت دیگه هم توی سطح دسترسی خورده، اونم دردسر شده
یک مشکل باگ هم روی خود tauri پیدا شده که باید ورژن این رو هم آپدیت کنم. | 1 166 |
| 13 | نسخه ویندوز آمادهاس، برای بیلد dev که نیازی به کد جدید نداشت همون flagهایی که باهاش نسخه لینوکس رو جدا کرده بود جواب داده. | 1 157 |
| 14 | ۱۰۵ تا ویندوزی داریم ؟
خدایی دارید اذیت میکنید یا واقعی ویندوزی هستید.
ولی خب؛ زدم iso رو دانلود کنم
راستی؛ اگر به امنیت فایل نصب پروژه شک دارید.
wireshark
رو نصب کنید؛ بذارید کل پروژه رو ساعتها بررسی کنه تا فیچرهای اصلی و درخواست دوستان تموم نشه من هیچ فیچر آنلاینی اضافه نخواهم کرد.
ولی این ذهنیت رو از اول داشتم:
من ۶ تا سیستم دارم برای کارهای مختلف که هرکدوم توی یک زمانی بدردم میخوره با قیمت هارد و ... کپی کردن ۷۰ گیگ آهنگ روی هرکدوم و بکاپ گرفتن و این چیزا کار خوبی نیست.
از روز اول توی ذهنم بود یک سرویس استریم یا کلاد خصوصی با قیمت پایین برای خودم راه بندازم (خیلی دلم میخواد استریم بسازم) که هر اتفاقی هم افتاد مشکلی نداشته باشم.
مثل اون دفعه که ۱۰۰ گیگ آهنگای تلگرامم رو اشتباه delete کردم.
ولی قبل اینکه نسخه آنلاین منتشر کنم همه فیچرها و فیکسها رو انجام میدم و حتما اطلاع میدم از کدوم نسخه به بعد قابلیت آنلاین هم داره که هرکسی که نیازی نداشت یا اعتماد نداشت دانلود نکنه. | 1 161 |
| 15 | توضیحات؛ دیگه بخونید حال تایپ کردن ندارم.
از همون اول توی همه کانالا گفتم.
بعد از اون هم توی گروه بحث کردیم.
ولی ۲-۳ روزه شدیدا دارم پیامهای زیادی برای open source کردنش دریافت میکنم.
انقدر که پیام دریافت کردم؛ انقدر دوستانی که نصب کرده باشند نداریم (طبق تعداد فیچر و باگها و ...)
صادقانه؛ من بعد از اون دوره کسالتم (هنوزم کمی درگیر هستم) حال و حوصله خوبی ندارم و برای جلوگیری از اینستاگرام چرخیدن و اخبار خوندن و سرچ کردن علائم و ... توی گوگل و به اینکه وای ما بدبختیم روی آوردن دارم کاری رو میکنم که دوس دارم الان وقتی میخوابم یا وسط روز که خسته میشم.
با بهونه کار روی این پروژهاس و چون کل کد رو خودم دارم میزنم هربار میدونم کجای رودمپ ذهنی خودم هستم و قدم بعدیم باید چی باشه؛ open source شدن و PR ثبت کردن روش میشه یکی دیگه از پروژههام و انگیزم رو میگیره.
این پروژه منطقه فرار من هست درحال حاضر و بخاطر همین از تفریح و کارهای دیگهام میزنم که بهش فیچر اضافه کنم یا بهبودش بدم. | 1 082 |
| 16 | از کدوم سیستمعامل بصورت روزمره و شخصی استفاده میکنید ؟ | 1 071 |
| 17 | از دید من از ۲۴۵۳ نفر کاربر این کانال
۲۴۰۰ نفر لینوکس دارند
۴۰ نفر ویندوز دارند
۱۳ نفر هم مک دراند که ۸ تاشون از انتخابشون پشیمون هستند.
۳ تا درخواست انتشار نسخه ویندوز دارم (من نه سیستم ویندوزی دارم نه هیچی ازش بلدم و اگر بخوام اینکار رو بکنم دردسری هست) بهشون گفتم طبق آماری که من از کابرهای کانال توی ذهنم دارم وقت تلف کردن هست کد زدن نسخه ویندوز.
قرار شد رای بگیریم اگر به ۱۰۰ نفر رسید من نسخه ویندوزش رو هم منتشر کنم.
لطفا توی رای گیری بعدی صادق باشید | 1 092 |
| 18 | رو گیتهابه | 630 |
| 19 | نسخهی v0.3.0 و میزان بهبود نسبت به نسخه قبلی v0.2.2 که البته خودش یک اپتیمایز سنگین داشت.
توی این نسخه مشکل تاخیر pause آهنگ تا قطع شدن صدا هم رفع شده؛ ولی هیچ فیچر جدیدی اضافه نشده.
فقط بهبود داشتیم و بهبود.
Idle mode:
RAM: dropped 25%
v0.2.2: 248MB
v0.3.0: 185MB
CPU: dropped 27%
v0.2.2: 3.51% one core
v0.3.0: 2.57% one core
Heavy activity:
RAM (steady): dropped 12%
v0.2.2: 574MB
v0.3.0: 506MB
CPU: dropped 27%
v0.2.2: 89.5% one core
v0.3.0: 65.6% one core
باقی مواردم که توی چارت هست؛
اسکن اولیه پوشهها هم سرعتش برگشت یک سری اپتیمایز بیشتر روی hash, compress و... زدم الان ۱۰۰۰ آهنگ روی همون ۱ ثانیه هست.
برای دانلود این نسخه به گیتهاب پروژه سر بزنید :
JaFplayer
ی مقدار دیگه آپلود میکنم اونجا | 1 168 |
| 20 | همون بهتر که ساکت باشه این دل | 1 183 |
