Armin's Notes 🪴
139 subscribers
106 photos
18 videos
1 file
58 links
إحتضن نَفسك بِنَفسك، لَن يحارب أحد مِن أجلك 💛

اینجا بیشتر می‌نویسم... 🌿
از چیزایی که به نظرم جالب رسیده 🦋
موزیکایی که دوس داشتم 🌚
مقالات و کتابایی که خوندم 📚
و چیزای دیگه 💫

🃏 t.me/PanicDev

🃏 t.me/LaravelGroups

🃏 t.me/MentionHex
Download Telegram
و این‌طوری کل ماجرا از یک ایده برای رنده کردن حریف‌ها، تبدیل شد به یک اپ کاملا On-Device که بدون اینترنت، بدون مدل Machine Learning و بدون خروج از بازی، صفحه رو می‌خونه و بهترین کلمات رو در کمتر از چند لحظه نمایش میده ✨🌞🌻
🔥1
و خب این هم از قصه این پروژه :))

چیزی که از این ماجرا یاد گرفتم این بود که همیشه پیچیده‌ترین یا ترندترین راه‌حل، بهترین راه‌حل نیست.

اولین چیزی که به ذهنم رسید OCR و مدل‌های Machine Learning بود؛ ولی وقتی مسئله رو دقیق‌تر شکستم، دیدم با یک فضای کاملا محدود طرفیم: فونت ثابته، تعداد کاراکترها مشخصه، شکل تایل‌ها تغییر نمی‌کنه و همه‌چیز قابل پیش‌بینیه.

اینجا یک راه‌حل ساده‌تر مثل Template Matching، هم سریع‌تر بود، هم دقیق‌تر، هم سبک‌تر و هم دردسر کمتری داشت.

بخش جالب دیگه برام این بود که تقریبا هیچ‌کدوم از مشکلات اصلی پروژه، اون جایی نبودن که اول انتظارش رو داشتم.

پیدا کردن Grid یا نوشتن DFS خیلی زودتر از چیزی که فکر می‌کردم انجام شد؛ ولی یک نقطه کوچک روی حرف «خ»، چند پیکسل سایه گوشه تایل، تفاوت ک و ك در Unicode یا یک null بی‌سروصدا از JNI می‌تونست کل پایپ‌لاین رو خراب کنه.

بزرگ‌ترین چالش پروژه هم دقیقا همین بود: ساختن الگوریتمی که روی یک اسکرین‌شات درست کار کنه زیاد سخت نیست؛ سختی اصلی اینه که روی رزولوشن‌های مختلف، حروف مشابه، Thresholdهای متفاوت، محدودیت‌های Android 14 و تمام Edge Caseهای ریز همچنان پایدار بمونه.

از نظر فنی، این پروژه باعث شد خیلی بهتر با پردازش تصویر، Connected Componentها، Template Matching، ساختار Trie، Prefix Pruning، MediaProjection و محدودیت‌های Overlay در اندروید آشنا بشم.

ولی فارغ از بخش فنی، حسی که نسبت بهش دارم بیشتر از جنس رضایت ساختنه.

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

و فکر کنم جذاب‌ترین بخش برنامه‌نویسی برای من دقیقا همینه...

اینکه یک مسئله کاملا معمولی و حتی یکم مسخره رو ببینی، با خودت بگی «میشه براش یه چیزی ساخت»، و چند روز بعد ببینی یک دکمه شناور روی صفحه داری که در چند میلی‌ثانیه ۵۲ هزار کلمه رو زیر و رو می‌کنه تا کمکت کنه یک نفر ناشناس رو توی یک بازی موبایلی رنده کنی :))

ارزشش رو داشت؟ از نظر منطقی و اقتصادی احتمالا نه چون فقط ۳ ۴ روز ازش استفاده کردم؛ ولی از نظر چیزهایی که یاد گرفتم و لذتی که از ساختنش بردم، قطعا آره...

امیدوارم برای شما هم جالب بوده باشه و مرسی که تا اینجا خوندید این رشته پیام رو و تحمل کردید 😁❤️
👏6🔥2👍1
and they still ask why i dont come to the office 🤷‍♀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤‍🔥1
Armin's Notes 🪴
Photo
این، سری ششم از نُهمین سریِ یک لگوی خیلی باحال و Cozy هست
داستانش از این قراره که ۹ بخش یک خونه رو توی ۹ سِری عرضه کردن و همه اینا قابلیت plug شدن به پارت بعدی / قبلی رو دارن

درست کردنش خیلی راحته و توی کمتر از ۱ ساعت انجام میشه
یه چراغ سقفی داخلش داره که با باتری سکه‌ای کار میکنه و میتونید با پیچوندن لامپ توی هُلدرش چراغ سقفی رو روشن کنید

درکل که حس خیلی خوبی میده و درست کردنش هم کلی باحاله =) میتونید بگیرید و به عنوان یه ایتم دکوراتیو توی خونه ازش استفاده کنید
هم فال و هم تماشا :))
🔥3
درود - من نیازمند یاری سبز اکانت‌های گیت‌هابتون هستم 🌱

لطفا اگه براتون امکان‌پذیره لینک این issue رو باز کنید و پایینش یک 👍 بزنید.
پیشاپیش بابت کمکتون مچکرم 🙏


https://github.com/espressif/esp-sr/issues/247
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🔥3❤2
Armin's Notes 🪴
Photo
unbox time 😊
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1😍1