[{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/tags/internet-outage/","section":"Tags","summary":"","title":"Internet Outage","type":"tags"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/tags/android/","section":"Tags","summary":"","title":"Android","type":"tags"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/blog/","section":"Blogs","summary":"","title":"Blogs","type":"blog"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/","section":"Blowfish","summary":"","title":"Blowfish","type":"page"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/tags/flutter/","section":"Tags","summary":"","title":"Flutter","type":"tags"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/tags/gradle/","section":"Tags","summary":"","title":"Gradle","type":"tags"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/tags/iran/","section":"Tags","summary":"","title":"Iran","type":"tags"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/tags/kotlin/","section":"Tags","summary":"","title":"Kotlin","type":"tags"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/tags/myket/","section":"Tags","summary":"","title":"Myket","type":"tags"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/categories/programming/","section":"Categories","summary":"","title":"Programming","type":"categories"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/tags/survival-guide/","section":"Tags","summary":"","title":"Survival Guide","type":"tags"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/categories/tutorial/","section":"Categories","summary":"","title":"Tutorial","type":"categories"},{"content":" راهنمای بقا برای برنامه‌نویسان فلاتر، کاتلین و اندروید # توی زمان‌هایی که اینترنت ایران بخاطر شرایط مختلف مثل جنگ یا اختلالات داخلی قطع میشه، یکی از بزرگترین مشکلات برنامه‌نویس‌های موبایل، عدم دسترسی به پکیج‌ها و لایبرری‌های Gradle هست. این مشکل میتونه کل روند توسعه رو متوقف کنه.\nاین پست حاصل تجربیات من توی مدت زمانیه که اینترنت ایران قطع شده بود و حالا میخوام این راه حل رو به بقیه هم منتقل کنم تا اون‌ها هم بتونن توی این شرایط استفاده کنن. پس این یک Survival Guide برای برنامه‌نویس‌های فلاتر/اندروید/کاتلین هست.\nدر ادامه یاد می‌گیریم که چطور از میرور مایکت برای دور زدن این مشکل استفاده کنیم.\nراه حل اول: تنظیم میرور برای یک پروژه خاص # اگر میخواید برای هر پروژه دلبخواه خودتون به صورت جداگانه ریپازیتوری مایکت رو استفاده کنید، راه حلی که مایکت برای Maven داده در این لینک قابل مشاهده است.\nبرای این کار کافیه فایل build.gradle یا settings.gradle پروژه‌تون رو باز کنید و آدرس مایکت رو به بخش repositories اضافه کنید:\nrepositories { maven { url \u0026#34;https://maven.myket.ir\u0026#34; } google() mavenCentral() } این روش خوبه، اما اگر مدام پروژه‌های جدید می‌سازید، تنظیم کردن دستی برای هر پروژه واقعا خسته کننده‌ست. پس بریم سراغ راه حل دوم.\nراه حل دوم: تنظیم گلوبال برای تمام پروژه‌ها # این روش طلاییه! با این کار برای هر پروژه فلاتر/کاتلین/اندروید که می‌سازید، بدون نیاز به تغییر داخل پروژه می‌تونید از این ریپازیتوری‌ها استفاده کنید.\nراه حل ساختن یا ویرایش فایل init.gradle.kts هست و قرار دادن کدهای مربوطه داخل این فایل.\nمسیر فایل در سیستم عامل‌های مختلف # لینوکس و مک: ~/.gradle/init.gradle.kts (در مسیر HOME) ویندوز: C:\\Users\\YourUsername\\.gradle\\init.gradle.kts (به جای YourUsername اسم یوزر خودتون رو بذارید) کدهای فایل init.gradle.kts # کدهای زیر رو کپی کنید و داخل این فایل قرار بدید:\nimport org.gradle.api.artifacts.repositories.MavenArtifactRepository import org.gradle.api.artifacts.dsl.RepositoryHandler fun RepositoryHandler.enableMirror() { all { if (this is MavenArtifactRepository) { val originalUrl = this.url.toString().removeSuffix(\u0026#34;/\u0026#34;) urlMappings[originalUrl]?.let { mirrorUrl -\u0026gt; println(\u0026#34;Repository[$originalUrl] is mirrored to $mirrorUrl\u0026#34;) setUrl(mirrorUrl) } } } } val urlMappings = mapOf( \u0026#34;https://repo.maven.apache.org/maven2\u0026#34; to \u0026#34;https://maven.myket.ir\u0026#34;, \u0026#34;https://dl.google.com/dl/android/maven2\u0026#34; to \u0026#34;https://maven.myket.ir\u0026#34;, \u0026#34;https://plugins.gradle.org/m2\u0026#34; to \u0026#34;https://maven.myket.ir/\u0026#34; ) gradle.allprojects { buildscript { repositories.enableMirror() } repositories.enableMirror() } gradle.settingsEvaluated { pluginManagement.repositories.enableMirror() dependencyResolutionManagement.repositories.enableMirror() } با این تنظیمات، هر درخواستی که گریدل برای دانلود لایبرری‌ها سمت سرورهای مسدود شده میفرسته، به صورت خودکار به میرور مایکت ریدایرکت میشه.\nامیدوارم این پست بتونه توی روزهای سخت قطعی اینترنت کمکتون کنه تا پروژه‌هاتون متوقف نشن.\n","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/blog/survival-guide-myket-gradle/","section":"Blogs","summary":"چگونه در شرایط اختلال اینترنت، وابستگی‌های اندروید و فلاتر را دانلود کنیم؟","title":"راهنمای بقای برنامه‌نویسان موبایل: استفاده از میرور مایکت برای Gradle در زمان قطعی اینترنت","type":"blog"},{"content":"","date":"30 ژوئن 2026","externalUrl":null,"permalink":"/fa/tags/%D9%85%DB%8C%D8%B1%D9%88%D8%B1-%D9%85%D8%A7%DB%8C%DA%A9%D8%AA/","section":"Tags","summary":"","title":"میرور مایکت","type":"tags"},{"content":"","date":"25 مارس 2025","externalUrl":null,"permalink":"/fa/categories/updates/","section":"Categories","summary":"","title":"Updates","type":"categories"},{"content":" خوش اومدی به وبلاگ من 🚀 # این اولین پست منه — یه قدم کوچیک که شروع مسیرم توی این وبلاگ رو نشون میده.\nممنونم ممنونم که به وبسایت من سر زدی! 🎉 خیلی خوشحالم که قراره اینجا تجربیات، پروژه‌ها و یادگیری‌هام رو باهاتون به اشتراک بذارم.\n🌱 چرا این وبلاگ رو ساختم؟ # این وبلاگ رو ساختم تا یه جایی باشه برای جمع کردن چیزهایی که یاد می‌گیرم، پروژه‌هایی که انجام میدم و تجربه‌هایی که به دست میارم.\nنوشتن باعث میشه بهتر فکر کنم و شاید این نوشته‌ها به درد بقیه هم بخوره.\nاگه دنبال یادگیری، الهام گرفتن یا حتی فقط کنجکاوی — خیلی خوش اومدی!\nاینجا قراره چه چیزهایی ببینی:\nمطالب فنی — فلاتر، اینترنت اشیا و توسعه وب مدرن آموزش‌ها و کدهای کاربردی داستان پروژه‌ها — چالش‌ها و راه‌حل‌های واقعی افکار پراکنده — چون همیشه همه چیز توی دسته‌بندی جا نمی‌گیره 😉 🔥 موضوعاتی که دوست دارم # چیزهایی که حسابی بهم انرژی میدن:\nفلاتر و توسعه موبایل اینترنت اشیا (IoT) سیستم‌های خانه هوشمند کدنویسی تمیز و اصول حرفه‌ای مستندسازی، Markdown و وبلاگ‌نویسی ✍️ هدف من # \u0026ldquo;بهترین راه یادگیری، آموزش دادن به دیگرانه.\u0026rdquo;\nهدفم از این وبلاگ اینه که هم خودم رشد کنم و هم چیزهایی که بلدم رو با بقیه به اشتراک بذارم — شاید به درد کسی خورد.\nTip منتظر بمون! کلی محتوای خفن تو راهه.\nمیتونی این سایت رو بوکمارک کنی یا توی گیت‌هاب و لینکدین دنبال کنی تا از پست‌های جدید باخبر بشی.\n☕ حرف آخر # بازم ممنون که اینجایی. خوشحال میشم اگر نظری داری یا حتی دوست داری موضوعی رو پیشنهاد بدی که درباره‌ش بنویسم.\nبیاین با هم یاد بگیریم و بسازیم! 💪\nتا پست بعدی، پرقدرت کدنویسی کن!\n","date":"25 مارس 2025","externalUrl":null,"permalink":"/fa/blog/first-post/","section":"Blogs","summary":"A short introduction to mention what I intend to do with this website.","title":"اولین پست","type":"blog"},{"content":"Hi 👋 I\u0026rsquo;m a STEM Instructor, a freelance Software Developer and a Computer Science graduate based in Kenya. I write code, teach tech, build things, and learn as I go.\nI\u0026rsquo;ve shared more about my professional life over on LinkedIn if you\u0026rsquo;re keen on that.\nOutside of work, I obsessively watch motorsport \u0026ndash; mainly Formula 1 and its feeder series \u0026ndash; and run a car/motorsport blog when I remember.\nI also read a lot, you can check out my Goodreads to see what I\u0026rsquo;ve been flipping through.\nIn my former years, I did some piano playing and singing. These days, the singing\u0026rsquo;s still there but just to a much smaller (and furrier) audience.\nNoticed a bug or got a suggestion? Open an issue or let me know. ","date":"25 اکتبر 2022","externalUrl":null,"permalink":"/about/","section":"Blowfish","summary":"Introduction on Mordecai Kipng’etich","title":"whoami 🤷‍♂️","type":"page"},{"content":"","externalUrl":null,"permalink":"/fa/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/fa/series/","section":"Series","summary":"","title":"Series","type":"series"}]