این که میدزدم نگاهم رو از تو از اینه که میدونم: سیری از چشمات 👁 ممکن نیست!، محو چشمای تو 😳 میمونم! * از صدای خندههای 😄 تو -که از اون چیزی رهاتر نیست- هیچ آهنگی 🎶 و آوازی توی گوشم خوشنواتر نیست * تو عجیبی! حیرتانگیزی! من ندیدم مثل تو جایی! بس که بی نقصی و بی عیبی، بس که خوبی، بس که زیبایی * انقدر خوبی که شاید هم از توهمهای من 💊 باشی! آخه شک دارم! نمیشه «تو» توی این دنیای بد جا شی! * نغمهٔ جادویی عشقت داره روحم رو جلا میده مثل خون 🩸عشقت خودش رو سخت داره تو رگهام جا میده * آخر این داستان تلخ گر چه میدونم رسیدن نیست، قصهای شیرینتر از این عشق تو کتاب قصهٔ من 📖 نیست *
در نوشتهٔ پیشین اشاره کردم که بیشتر با هدف درک معنی ترانههای ترکی استانبولی دوولینگو (DuoLingo) را استفاده میکردم و در نهایت تا به حال به آنجا که باید نرسیدم.
شاید برنامهٔ لینگوکلیپ (با نام قدیمی لیریکسترینینگ) را دیده باشید. با این برنامه میتوانید متن ترانههای در دسترس از طریق آن را مشاهده و تمرین کنید و در بازی پر کردن جاهای خالی یا تایپ کلمات جاافتاده در آن شرکت کنید.
به نظرم رسید با توجه به آن که بیشتر ترانهها و خوانندگان ترکیهای که ما ایرانیها با آنها آشنا هستیم در این برنامه غایب هستند و این که یوتیوبِ جاسازی شده داخل این برنامه اخیراً با بعضی ویپیانهای در دسترس ما مشکل دارد برنامهای بسازم که این ایده را بدون یوتیوب و با ترانههای آشنا برای خودمان ارائه کند.
یکی از چالشهای پیش رو این بود که چطور متن ترانهها را در سطح کلمه با خود ترانه همگام کنم. تلاش مختصری کردم و یکی دو ابزار مشهور و پیشنهادی چتجیپیتی را آزمایش کردم و به نتیجهٔ مناسب نرسیدم.
از این جهت مثل گذشته به فکر اختراع مجدد چرخ افتادم 😉 -تقریباً مطمئنم ابزار مناسبش وجود دارد و من خوب نگشتهام، اما خوب شاید به جای گشتن سرهم کردن ابزاری که این کار را برایم انجام دهد با عادت و روال من همخوانی بیشتری دارد-. به امکانات همگامسازی گنجور رومیزی امکان همگامسازی بر اساس کلمه را اضافه کردم و خروجی مناسبی برای استفاده توسط برنامهٔ خارجی هم به آن اضافه کردم (خروجی json که یک فایل متنی ترجمه هم در حین تولید میگیرد).
بیشتر کارهای مربوط به ترجمهٔ متن و لغات را هم با استفاده از سرویس ترجمهٔ گوگل یا چتجیپیتی انجام دادهام و برنامه در حال حاضر با ۸ ترانه در دسترس است (اینجا).
تصاویری از امکانات فعلی برنامه را میبینید:
در حین کوهگردی به نظرم رسید یک راه خیلی خوب برای آموختن متن ترانهها و لغات جدید آن است که یک شرح صوتی به فارسی برای هر کدام از ترانهها هم درست کنم که بدون نیاز به به باز کردن گوشی هم بشود از آن استفاده کرد. منتهی چند بار تلاشم برای تولید چنین شرحهایی راضیکننده نبود. در نهایت به این قناعت کردم که متن ترانه را روی کامپیوتر با صدای پایین پخش کنم و روی آن ترجمهها را بخوانم. به نظرم رسید که «از هیچی بهتر است» ولی صلاح ندیدم در محیط اصلی در دسترس باشد. برای همین آن را به این صورت در برنامه در دسترس قرار دادم که در پنجرهٔ تصویر بعد (مرحلهٔ بعد از انتخاب یکی از ترانهها) سه بار روی «چه کنیم؟» اگر بزنید یک دکمهٔ پخش ظاهر میشود که میتوانید این شرحهای کمکی را گوش کنید. امیدوارم شرایط فراهم شود و شرحهای آبرومندتری آماده کنم که نیاز به مخفی کاری نداشته باشد ;).
شاید از یک کنجکاوی شروع شد. می بند یک شیائومی آمده بود و من کنجکاو بودم ببینم چطور یک دستگاه میتواند بدون صفحهنمایش و هیچ دکمهای قابل استفاده باشد. دستبند را خریدم و جوابم را گرفتم.
اما حالا فکر میکردم باید متناسب با هزینهای که برای خرید این دستبند کردهام از آن استفاده کنم. این شد که شدم پاپی ثبت رکوردهای روزانهٔ پیادهروی با آن. روزی دست کم ۸۰۰۰ قدم. بوستان ولایت تهران حدود یک کیلومتری خانه است و من تصمیم گرفتم که روزانه به جای تاکسیسواری تا سر کار از داخل پارک پیاده به یکی از دو ایستگاه متروی نزدیک پارک بروم و برگشت هم از همان مسیر بیایم.
یک شب در حالی که چند قدم تا رسیدن به رکورد هشتهزارتاییم فاصله داشتم به این نتیجه رسیدم که این عادت رکورد زدن روزانه یک عادت بیمعنی است و نیت پشت آن درست نیست و باید شکسته شود! منتهی آن شب نتوانستم آن چند قدم را نروم. فردای آن روز یادم رفت که رکوردم را بزنم و زنجیرهٔ چند ماههٔ رکورد زدنهایم شکسته شد.
چند وقت پیش یا پس از آن بود که حین صحبت با نصاب هر سالهٔ کولر، آقای ارجمند اشاره کرد که او هم عادت پیادهروی در پارک را دارد ولی به نظرش پیادهروی ورزش نیست. خودم هم یک بار امتحان کرده بودم که یک دویدن کمتر از صدمتری باعث میشود ماهیچهٔ پشت پایین زانوی پایم درد بگیرد.
با شکسته شدن زنجیرهٔ پیادهرویهای روزانه زنجیرهٔ دویدنهای روزانه که به تأیید آقای ارجمند «ورزش» محسوب میشد شروع شد. ورزشی که انگیزانندهٔ اولیهاش آن بود که هزینههایی که برای خرید دستبندها و ساعتهای هوشمند کردهام به هدر نرفته باشند. زنجیرهای که آن هم بعدها شکسته شد اما باعث شد بتوانم بدون مشکل مسیر پنج کیلومتری دور پارک را یک نفس در حدود نیم ساعت بدوم و هیچ جایم درد نگیرد.
زنجیرهٔ دیگری را که بعدتر شروع کردم زنجیرهٔ تمرینهای روزانهٔ دوولینگو (DuoLingo) بود. انگیزهٔ اولیه؟ فکر کردم بد نیست متن ترانههای ترکی استانبولی را که به نظرم شیرین و دوستداشتنی میرسید بفهمم و یاد بگیرم. آن زنجیره هم چند باری شکسته شد اگر چه الان و امروز روز ۵۸۱م آخرین زنجیرهٔ شکستهنشدهاش را پشت سر میگذارم و دورهٔ ترکی استانبولی آن را تمام کردهام. آیا الان متن ترانهها را میفهمم؟ خیر! آیا به اندازهٔ کسی که یک دوره را تمام کرده ترکی بلدم؟ آن هم خیر! چقدر بلدم؟ دانم من این قدر که به ترکی است آب سو!
زنجیرههایی که قرار است گواه آن باشند که من از وقتم درست استفاده کردهام و کافی بودهام! از جمله مهمترینشان به نظرم زنجیرهٔ برنامهنویسی روزانه و ثبت کد در گیتهاب است که الان پنج سالی میشود به آن متعهد ماندهام. اگر چه ریاکارانه و خودنمایانه بوده و گاهی برای حفظش تقلب میکنم (کدی را که امروز نوشتهام برای فردایی که میدانم به لحاظ برنامهٔ از پیش تعیین شده وقت نشستن پشت کامپیوتر را پیدا نمیکنم نگه میدارم و فردا اول صبح کامیت میکنم)، اما منشأ کلی از کارهایی بوده که طی چند سال اخیر روی گنجور کردهام و باعث شده بتوانم تعداد قابل توجهی برنامه به فهرست خروجیهایم اضافه کنم.
دِ آقل گربهمُن خفتیده افتو ملوچّا غوره میچّینن گَلِ مو شلنگه ورگیر او لقا بشن او هنکش کن که گربا وخسه از خو هناش کن گربَهآ بش باگو بدو که ایفتاده همه جا پشت سرت چو که گفتن شوئرت درآرد سرت هو یه هوّ دم دراز زرد چش کو * که مرد اووه زن او مثل بلگو که بفته تو دل گربا مگر تو که ایجوری که ای ایفتاده اینجو همیجور خووه تا شو وخت مفتو مث دوشو، پریشو، پس پریشو برو بعدش بنیش به دختن گو از اولا وخ بریم امخت سر کو باکنیم پامنا از کو دلنگو * تمُشا باکنیم خنآ از او لو یخ و برفی که افتو می کنهش رو که وخت عید و سالی که میشه نو زیمین اوشا بده به گندم و جو
* مصرعهای ستارهدار بعداً اضافه شدهاند و در روخوانی شعر نیستند
شلنگه ورگیر او لقا بشن او او لقا: اون گوشه بشن: بیفشان، آب بپاش او: آب
هنکش کن که گربا وخسه از خو هنک: خنک وخسه: بلند شود خو: خواب
هناش کن گربَهآ بش باگو بدو هنا کردن کسی: کسی را صدا زدن باگو: بگو
که ایفتاده همه جا پشت سرت چو ایفتاده: افتاده چو: شایعه
که گفتن شوئرت درآرد سرت هو درآرد: آورد هو: هوو، زن دوم
چش کو: چشم کبود (کسی که چشم سبز یا آبی دارد)
که مرد اووه زن او مثل بلگو بلگو: چیزی که در مسیر آب میگذارند تا مسیر آب عوض بشود، درپوش ضرب المثل سنجانی هستش میگن: مرد اووه زن بلگووه یعنی مرد مثل جوی آبه و زن مثل چیزیه که مسیرش رو تعیین میکنه
که بفته تو دل گربا مگر تو بفته: بیفته گربا: گربهه تو: تاب، دل آشوب و نگرانی
که ایجوری که ای ایفتاده اینجو ای: این اینجو: اینجا
همیجور خووه تا شو وخت مفتو شو: شب وخت: وقت مفتو: مهتاب
از صب که وخسادم هی تا شم پلاله کردم دس توی او هزار بار یاد سلاله کردم از زور خستهای هی دشمن حواله کردم بددوعایی و زاری گوربه و ناله کردم شو شد یه خوو خوبی تو کل آله کردم تو خو سیل فیراسه سیل کلاله کردم نمی دونی چه کیفی تو او زلاله کردم یاد قدیم: ناهارا آقل خاله کردم یاد اوگوشت دو دار توی پیاله کردم
صب سحر ستاره تا شو دسم به کاره
تو ناقلا نابودی انقد بلا نابودی مثل غلاغ جره پرسرصدا نابودی زلنقه کن هرّا کش چووش وبا نابودی از صب تا شم ایلولا با بی غیرا نابودی ویلون صرا مردا تا مل بالا نابودی سیلون کوچّه باغا تو سرچغا نابودی تو صرا باغا مردم پی چاقالا نابودی آخر به فرک درسات صب تا حالا نابودی تو هول امتحانات آخر چرا نابودی
الخ که صد قراره شر از سرت میباره
یخ بسته او تو کورا تکه میکنه سولا داره هوا یه سوزی مث زن خسورا بفلهه گفته از شو او گفته را تو کورا ننم وارسته از کار یه لقه نشته اولا بری ناهار هشته زیر کرسینه دوگولا وخ میسه تا که کشمش واکّنه از اونگا جورابشا ورچنه یه سر بره ایلولا تا باغشو یا سرجو سره همه زمینا افتو رمق نداره جن سخته امسال سرما
ناقالّی گنده گنده چل رفته پنجا منده
پردههایی از گذشتههای زادگاهمان (سنجان) – شعر و صدا و عکسها از خودم
چند باری در توییتر یا جاهای دیگر نمونه چالشهای حدس عدد را بر اساس راهنماهای ارائه شده برای ارقام دیده بودم. جستجویی سطحی کردم و برنامهٔ موبایلی خوبی برای اینجور چالشهای ریاضی ندیدم. چند روز پیش ویر این که یکی خودم درست کنم به جانم افتاد و هماکنون این بازی با همین عنوان (به صورت رایگان) در بازار در دسترس است (دریافت حدس عدد در بازار).
برای این که حل بازی و همینطور برنامهنویسیش را برای خودم سادهتر کنم یک پیشفرض گذاشتم و آن که عدد جواب رقم تکراری نداشته باشد (شاید یک وقتی این که عدد بتواند رقم تکراری هم داشته باشد را اضافه کردم). در راهنمای جوابها هم با این فرض اگر رقمی در جای درستش ظاهر شود و سپس در جای نادرست تکرار شود تکرار آن به جای آن که «درست در جای نادرست» فرض شود نادرست فرض میشود.
در نهایت پس از مشخص شدن جواب با زدن روی عبارت «تبریک! این جواب صحیح است.» میتوانید ببینید که چطور همهٔ احتمالات دیگر حذف میشوند یا چرا یک عدد دیگر ورودی نمیتواند جواب باشد.
در راستای نوشتهٔ پیشین، کاشیچینی (قابل دریافت از کافهبازار از اینجا) یک کار جدید است که آن را هم تا حدود زیادی بر مبنای همان کدهایی که برای برنامههای جدولی نوشته بودم آماده کردهام. این یکی بیشترین وقتی که صرفش شده زمانی بوده که صرف پیدا کردن تصاویر و آمادهسازی آنها شده.
یک بازی پازلی ساده است اما به نظرم به صورت بالقوّه میتواند فرصتی فراهم کند تا بیش از حد معمول در نقاشیهای کتابهای خطی دقیق شویم.
همهٔ این تصاویر را پیشتر خودم در گنجینهٔ گنجور برچسبگذاری کرده بودم (مشخص کرده بودم که در نسخههای خطی کدامشان تصویر دارند).
در حال حاضر هم همهٔ لینکهای «اصل نگاره» به همان گنجینهٔ گنجور میرسد.
پیشنیاز برنامهٔ اندرویدی این بود که بتوانم جدولها را به حالت متقاطع تولید کنم. باید جوابهای افقی و عمودی همدیگر را کامل میکردند. مطمئن نبودم که از پس تولید این جدولها به شکل خودکار بربیایم. برنامه را این طور نوشتم که با دریافت طرح هندسی جدول شروع به پر کردن تصادفی خانههای آن با جاخالیهای تصادفی از شعرها میکرد و سعی میکرد با جاخالیهای متناسب افقی و عمودی آن را کامل کند و هر کجا با توجه به دادههای موجود کار را غیرممکن میدید برمیگشت و کلمات را عوض میکرد.
همچنان که احتمالاً حدس میزنید نیاز به یک الگوریتم پیچیده داشت که از منی که همهٔ کارها رو پشت صفحهکلید و حسی انجام میدهم و علاقهای به از پیش محاسبه و فکر کردن ندارم بعید بود بربیاید.
البته شبیه این کارها را پیشتر زیاد انجام دادهام و همان حسی که پشت صفحهکلید دارم کمک کرده به نتیجه برسانمشان. نتایجی که ایدهآل و باعث افتخار نیستند ولی کار میکنند!
این هم همان شد. برنامهٔ تولید جدول را نوشتم که عملاً شبیه برنامههای بروتفورس (brute force) شکستن پسورد بود! طول میکشید اما کار میکرد. چند طرح هندسی که با بررسی آنها به این نتیجه رسیدم که به خروجی میرسد آماده کردم و لپتاپ قدیمیم را که حالا سالهاست به تلویزیون وصل است و با آن داخل یوتیوب میچرخم گذاشتم تا در ساعات عدم استفادهاش مشغول به تولید جدول باشد (طرحهای ایدهآل مجلهای جدولهای متقاطع که کل جدول با هم ارتباط دارند با این برنامه به نتیجه نمیرسیدند و از خیر آنها گذشتم).
بعد سراغ برنامهٔ اصلی یعنی همان بازی اندرویدی جدول شعر رفتم که آن هم برای خودش چالشهای زیادی داشت. نیاز به یک صفحهکلید اختصاصی داشتم و باید حل جدول را با استفاده از آن برای کاربر آسان میکردم.
علیرغم آن که آن کار را هم با ضرب و زور به نتیجه رساندم این روزها که نگاهش میکنم برای خودم باورکردنی نیست که من چنین کاری را آن هم بدون کمک گرفتن از کمپوننت و ابزار از پیشآماده انجام داده باشم.
اضافه کردن تبلیغش پایین نوشتههای اینجا از جمله معدود تغییراتی بود که طی این سالهای اخیر اینجا به خودش دیده (الان حذفش کردهام):
حدود یک هفته بعد از انتشار نسخهٔ اولیهٔ جدول شعر، جدول قرآن را منتشر کردهام. پس آن هم نباید کار زیادی برده باشد. اصل کار برای تولید جدولها و برنامهٔ اندرویدی پیشتر انجام شده بوده و من تنها نیاز به منبعی برای متن قرآن و تغییراتی در صفحهکلید و امکانات جانبی داشتهام. خبرگزاری ایکنا در مطلبی (احتمالاً بعد از ارسال ایمیلی از طرف خود من) این برنامه را معرفی کرده است.
جدول انگلیسی حدود ده روز بعد از جدول قرآن منتشر شده. آن هم مبتنی بر منبعی از جملات انگلیسی است و تغییراتی که نیاز داشته در حد چپچین کردن جدول و صفحهکلید و چیزهایی مثل آن بوده و البته یک دیکشنری انگلیسی به فارسی نیز برای تولید راهنماییهای آن استفاده شده.