چند وقت پیش فکری به سرم زد، یه ایده قدیمی که سالها قبل به ذهنم رسید بود و به دولوپر نیاز داشت. یه چیزِ ساده، ولی برای خودم مهم: من ساعتها پشتِ مانیتورم، و چشمام دارن اذیت میشن. کاش یه چیزی بود که هر چند وقت یهبار بهم یادآوری میکرد بلند شم، یه تمرینِ کوتاهِ چشم انجام بدم، و دوباره برگردم سرِ کار.
مشکل اینجا بود که من برنامهنویس نیستم. بلد نبودم اکستنشن بسازم، نمیدونستم از کجا شروع کنم، و کلاً فکر میکردم اینجور کارا فقط از آدمای فنی برمیاد.
اینبار تصمیم گرفتم با یه هوش مصنوعی (Claude) امتحانش کنم. این متن، روایتِ کاملِ همون مسیره — از اولین پیام تا لحظهای که اکستنشن روی Chrome Web Store منتشر شد. اگه شمام ایدهای دارین ولی فکر میکنین «بلد نیستم»، شاید این تجربه به دردتون بخوره.
اولین چیزی که فهمیدم این بود که لازم نیست از قبل همهچیز رو بدونم. کافی بود ایدهم رو ساده توضیح بدم. گفتم میخوام یه اکستنشن بسازم که:
هر ۴۵ دقیقه بهم یادآوری کنه که چشمام رو استراحت بدم،
این یادآوری فقط وقتی باشه که واقعاً دارم با کامپیوتر کار میکنم (نه وقتی سیستم قفله یا نیستم)،
با کلیک روش، یه تمرینِ چشمِ تمامصفحه باز شه،
و همهچیز آفلاین و روی خودِ سیستم باشه، نه آنلاین.
نکتهی جالب همینجا بود: لازم نبود بدونم «کروم چطور نوتیف نشون میده» یا «داده رو کجا ذخیره کنم». فقط چیزی که میخواستم رو گفتم، و Claude ترجمهاش کرد به چیزی که فنی قابلِساخت باشه.
چیزی که برام غافلگیرکننده بود این بود که قبل از نوشتنِ حتی یک خطِ کد، نشستیم منطقِ کار رو دقیق چیدیم.
من یه متنِ نسبتاً بلند نوشتم و توش همهی چیزایی که میخواستم رو توضیح دادم: یادآوری هر ۴۵ دقیقه، اگه نادیده گرفته شد ۵ دقیقه و ۱۰ دقیقه بعد دوباره، رنگِ آیکونی که عوض شه، و چیزای دیگه.
بعد ازش خواستم که این متن رو بررسی کنه و بگه کجاها ممکنه گیر داشته باشه. و اینجا بود که فهمیدم چقدر چیزها رو ندیده بودم. مثلاً:
وقتی سیستم قفل میشه، تایمر باید متوقف شه یا صفر شه؟ (تصمیم گرفتیم: اگه بیشتر از ۳۰ دقیقه قفل بود صفر، وگرنه ادامه.)
«نادیده گرفتن» یعنی چی دقیقاً؟ کاربر نوتیف رو ببنده یعنی «بعداً» یا یعنی «بیخیال»؟
اگه کاربر تمرین رو باز کرد ولی وسطش بست، چی؟
اگه دو تا یادآوری همزمان رو هم بیفتن چی میشه؟
اینا سؤالایی بودن که اصلاً به ذهنم نرسیده بود. ولی دقیقاً همینا بودن که بینِ یه اکستنشنِ «نصفهنیمه» و یه اکستنشنِ «درست» فرق میذاشتن. کلی وقت گذاشتیم سرِ این تصمیمها، و آخرش یه «داکِ منطق» داشتیم که همهچیز توش روشن بود.
درسی که گرفتم: با هوش مصنوعی، ارزشِ واقعی توی همین مرحلهست. اگه فقط بگی «برام یه اکستنشن بساز»، یه چیزِ متوسط میگیری. ولی اگه وقت بذاری و منطق رو دقیق کنی، نتیجه واقعاً همونیه که میخواستی.
یه بخشِ باحال این بود که من یه ویدیوی تمرینِ چشم (از یوتیوب) داشتم که توش یه نقطهی رنگی روی مسیرهای مختلف حرکت میکرد و آدم با چشمش دنبالش میکرد.
بهجای اینکه خودِ ویدیو رو داخلِ اکستنشن بذارم (که حجمش چند مگابایت میشد)، ازش خواستم انیمیشن رو با کد بازسازی کنه. اول ویدیو رو بررسی کرد، فهمید که محتواش فقط خط و نقطهست (نه فیلمِ واقعی)، و فهمیدیم با کد قابلِ بازسازیه و بهجای چند مگابایت، چند کیلوبایت میشه.
بعد توالیِ کاملِ ویدیو رو درآورد — موجِ سینوسی، دایره، زیگزاگ، ستاره، گل، و کارتهای متنی مثل «Blink» — و همه رو با کد ساخت. نتیجه دقیقاً شبیهِ ویدیو شد، ولی سبک و در هر سایزی خوشکیفیت.
اینجا دیگه کارِ کدنویسی تموم شده بود و باید اکستنشن رو منتشر میکردم. و راستش این بخش پر از جزئیاتِ ریز بود که اگه تنها بودم حتماً گیر میکردم:
ساختنِ اکانتِ دولوپر (کروم یه هزینهی یکبارهی ۵ دلاری داره).
پر کردنِ صفحهی معرفیِ اکستنشن (توضیحات، دستهبندی، زبان).
ساختنِ آیکونِ استور و اسکرینشاتها با سایزِ درست.
پر کردنِ فرمِ Privacy — که باید دقیق توضیح میدادم هر مجوزی (نوتیف، تایمر، ذخیرهسازی) برای چیه و تأیید میکردم که هیچ دادهای جمع نمیشه.
ساختنِ یه صفحهی Privacy Policy و گذاشتنش آنلاین (که رایگان روی GitHub انجامش دادم).
هر کدوم از این مرحلهها، من یه اسکرینشات از صفحه میفرستادم و دقیق بهم میگفت توی هر فیلد چی بذارم، کدوم گزینه رو بزنم، و کجاها مراقب باشم. حتی جاهایی که اشتباه یه گزینه رو زده بودم (مثلاً توی فرمِ Privacy یه چیزی رو اشتباه تیک زده بودم)، بهم گفت که اشتباهه و باید عوضش کنم.
تجربهم یه چیزایی یادم داد که فکر میکنم به دردِ هر کسی که میخواد همچین کاری بکنه میخوره:
۱. واضح و دقیق توضیح بده. هر چی دقیقتر بگی چی میخوای، نتیجه بهتره. مبهم بپرسی، مبهم میگیری.
۲. اجازه بده اول سؤال بپرسه. بهترین بخشِ کارمون اونجا بود که بهجای پریدن سرِ کد، اول سناریوها رو بررسی کردیم. این مرحله رو رد نکن.
۳. ازش بخواه ضعفهای کارت رو بگه. این خیلی ارزشمند بود — اینکه بگم «کجاها ممکنه گیر داشته باشه؟» و اون چیزایی که من ندیده بودم رو بهم نشون بده.
۴. وقت بذار. کارِ خوب یهدفعهای در نمیاد. ما رفتوبرگشتِ زیادی داشتیم، و هر بار یهچیزی بهتر شد.
eye exercises (Mili) یه اکستنشنِ کرومه که کمکت میکنه چشمات رو از خستگیِ مانیتور نجات بدی:
هر ۴۵ دقیقه که واقعاً داری با کامپیوتر کار میکنی، بهت یادآوری میکنه که یه استراحتِ کوتاه به چشمات بدی.
اگه یادآوری رو نادیده بگیری، ۵ و ۱۰ دقیقه بعد دوباره یادت میاندازه، بعد از نو شروع میکنه.
آیکونِ بالای مرورگر خودش یه تایمرِ زندهست: نشون میده چند دقیقه فعال بودی، و رنگش از سبز به زرد و قرمز میره تا بفهمی وقتِ استراحته.
با کلیک، یه تمرینِ چشمِ تمامصفحه باز میشه که توش یه نقطه روی مسیرهای مختلف حرکت میکنه و تو با چشمت دنبالش میکنی — بدونِ صدا، نرم و سبک.
وقتی سیستم قفله یا نیستی، مزاحمت نمیشه.
و مهمتر از همه: کاملاً آفلاین و خصوصیه — هیچ دادهای جمع نمیشه، هیچی آنلاین نمیره، و نیازی به لاگین نداره.
چیزی که از این تجربه یاد گرفتم این نبود که «هوش مصنوعی همهکارهست». چیزی که یاد گرفتم این بود که فاصلهی بینِ یه ایده و یه محصولِ واقعی، دیگه به اندازهی قبل ترسناک نیست.
من بلدِ کدنویسی نبودم، و هیچ تجربهای از انتشار روی استور نداشتم. ولی با یه ایدهی روشن و یه گفتوگوی صبورانه و قدمبهقدم، الان یه اکستنشن دارم که هر کسی میتونه از Chrome Web Store نصبش کنه.
نصب از Chrome Web Store
پس اگه شمام یه ایدهای دارین که گوشهی ذهنتون مونده، شاید وقتشه یه بار جدی امتحانش کنین. 🌱
ارادت، میلاد