<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های امید آقاخانی</title>
        <link>https://virgool.io/feed/@omid_developer</link>
        <description>دولوپر وب ، دسکتاپ و اپلیکیشن موبایل (اندروید و iOS)</description>
        <language>fa</language>
        <pubDate>2026-06-16 17:27:25</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/34610/avatar/ZCNRrI.png?height=120&amp;width=120</url>
            <title>امید آقاخانی</title>
            <link>https://virgool.io/@omid_developer</link>
        </image>

                    <item>
                <title>انتقال فایل ساخته شده در Docker Container به سرور</title>
                <link>https://virgool.io/@omid_developer/%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84-%D9%81%D8%A7%DB%8C%D9%84-%D8%B3%D8%A7%D8%AE%D8%AA%D9%87-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-docker-container-%D8%A8%D9%87-%D8%B3%D8%B1%D9%88%D8%B1-lhvxdbiepmo9</link>
                <description>سلام دوستان داکری.شما وقتی فایلی چیزی رو توی داکر میسازید،اونو توی روت سرور تون که نمیاره فداتون بشم.توی همون Container ذخیره میکنه و مستقیم بهش دسترسی ندارید و خلاصه دنگ فنگ خودشو داره.مثلا  با mysqldump میخواید از دیتابیس بک اپ بگیرید،اونو رو داخل خود Container  قرار میده ینی هر مسیری بدید،نسبت به روت Container خودش تصمیم میگیره و  فایل رو ذخیره میکنه.خوب فرض کنید یه فایلی ساختید و ذخیره شده توی Container،چطوری باید اونو بیاریم به شاخه اصلی سرور؟خوب کافیه با دستور docker ps لیست container های خودتون رو بیارید که لیستی از اونا رو به شما به همراه،اسم و کد و ... رو میده.اون ستون اول ینی CONTAINER ID مهم هست دوستان.خلاصه آی دی رو که پیدا کردید،کافیه با دستور زیرdocker cp CONTAINER_ID:/FILENAME NEW_DIRECTORYفایل رو به شاخه ای که میخواید کپی کنید اما دستور بالا چطوریه؟توی  دستور بالا اون cp به معنای کپی هستش،اون CONTAINER_ID کد کانیتنری هست که  فایل داخل اونه و اون FILENAME اسم فایلی هست که میخواید کپی کنید (البته  اگه توی پوشه ای چیزی هست باید دقیقا اون مسیر رو بدید) و اون  NEW_DIRECTORY مسیری هست که قراره فایل کپی بشه مثلا /root بدید،میاد فایل  رو داخل پوشه root در مسیر ~ لینوکستون قرار میده.خوب شما اگه داخل کانتینر باشید میتونید با دستور ls خودمون لیست فایل ها رو ببینید.منتهی باید داخل اون کانتینر باشید مثلا توی mysql باید داخل برید و اونجا مسیر رو میبینید.مثلا من با دستور docker exec -it mysql bash -ls وارد کانتینر mysql عزیز شدم و اگه حالا دستور ls رو بزنم لیست فایل ها رو میبینم.ینی شما هر دستوری بزنید نسبت به کانتینر فعلی که واردش شدید عمل میکنه.خلاصه اینطوری فایل رو کپی میکنید خیلی راحتر.البته احتمال قوی روش های راحتری هم باشه منتهی من با این روش کپی میکنم.گون آیدین...</description>
                <category>امید آقاخانی</category>
                <author>امید آقاخانی</author>
                <pubDate>Sat, 12 Sep 2020 12:29:11 +0430</pubDate>
            </item>
                    <item>
                <title>دستورات کاربردی Centos بخش اول</title>
                <link>https://virgool.io/@omid_developer/%D8%AF%D8%B3%D8%AA%D9%88%D8%B1%D8%A7%D8%AA-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-centos-%D8%A8%D8%AE%D8%B4-%D8%A7%D9%88%D9%84-ntczsaa202pf</link>
                <description>سلام دوستان لینوکسیدیگه الان یجوری شده که هر فریلسنری باید به سرور مخصوصا با سیستم عامل لینوکس نسخه Centos ش اشنا باشه و بتونه یه سری تنظیمات رو خودش انجام بده.مثلا باز کردن پورت یا بستن یه برنامه ای یا هر چیز مهم دیگه.اینجا من یه سری دستورات مهم که زیاد خودم استفاده میکنم رو براتون اوردم که به ترتیب ذکر میشه و توضیح میدم کارش چیه.فقط اون حروف هایی که بزرگ نوشته میشن در واقع شما باید بجای اون ها مقدار مناسب رو بزارید.1- ps لیست برنامه های باز رو به همراه process_id یا آی دی برنامه به شما میده2- kill -9 PROCESS_IDبستن اجباری برنامه که با استفادا از -9 اجبار میشه (معادلش -SIGKILL هستش) و PROCESS_ID هم کد برنامه ای س که میخواید ببندیندش3- pgrep PROCESS_NAMEپیدا کردن برنامه از توی برنامه های باز توسط اسم برنامه و برگردوندن process_id یا کد برنامه4- pgrep PROCESS_NAME | xargs COMMANDهمون دستور قبلی هست که برنامه ای که میخوایم رو پیدا میکنه و process_id ش رو به ما میده منتهی،هر برنامه هایی که پیدا میکنه رو به عنوان ارگومان میفرسته به بعد علامت | و بجای عبارت COMMAND میتونید دستور خودتونو بنویسید که روی اون برنامه اعمال کنهمثلا دستور pgrep php | xargs kill -9 میاد هر برنامه ای که اسمش به php میخوره رو پیدا میکنه و همشون رو با دستور kill میبنده.5- fuser PORT/tcpاین دستور میاد پورت از نوع tcp که بهش میدید رو میگرده و برنامه ای که داره ازش استفاده میکنه رو به شما میدهبجای PORT میتونید پورت مورد نظر رو بنویسیددر صورت نبودن این دستور در centos،از دستور yum install psmisc برای نصب این دستور استفاده کنید.6- watch &quot;ps aux | sort -nrk 3,3 | head -n 5&quot;این دستور میاد 5 برنامه باز آخر رو به شما بصورت زنده مانیتور میکنه و مقدار استفاده از منابع سیستم رو نشون میده.7- alias NAME=&quot;COMMAND&quot;با این دستور میتونید یه میانبر برای دستوراتتون بنویسید کافیه بجای NAME اسم میانبر و COMMAND هم دستور مورد نظر و بعد از ساخت میانبر،با زدن NAME در ترمینال،اون دستوری که دادید اجرا میشه.8- timedatectl set-timezone TIMEZONEتنظیم تایم زون سرور بجای TIMEZONE ،اسم کشور رو وارد کنید9- dateنمایش تاریخ و زمان فعلی سرور10- nohup PROCESS (مثلا یه فایل jar یا php یا هر چیزی که قراره اجرا بشه و بمونه)با این دستور میتونید برنامه ای که میخواید اجرا کنید رو ببرید پس زمینه و دیگه قطع نمیشه (اگه اینو نزنید،وقتی ترمینال رو میبندید،خودکار برنامه بسته میشه مگه اینکه خودش سرویس داخلی داشته باشه و بسته نشه)11- lsاین دستور،لیست فایل و پوشه های مسیر فعلی ترمینال رو میدهبرای تغیر مسیر فعلی ترمینال،کافیه با دستور cd به اون مسیر برید مثلا cd /home/omid،خط فرمان رو میبره روی این پوشه12- pwdمسیر فعلی خط فرمان رو به شما نشون میده13- cat FILENAMEفایلی که بهش میدید رو همون ترمینال بهتون نشون میده14- viبه شما یه محیط ویرایشگر میده برا نوشتن متن تون و ذخیره توی فایل (یه ادیتور فایله)که با زدن کلید Escape روی کیبورد و : و wq فایل ذخیره میشه (البته دقیق یادم نیست ولی فکر کنم همین بود)اوووف دستور زیاده حوصلم نمیگیره بگم ولی توی پست های بعدی میگم.</description>
                <category>امید آقاخانی</category>
                <author>امید آقاخانی</author>
                <pubDate>Mon, 07 Sep 2020 15:48:35 +0430</pubDate>
            </item>
                    <item>
                <title>بلاخره کدوم زبان برنامه نویسی خوبه؟</title>
                <link>https://virgool.io/@omid_developer/%D8%A8%D9%84%D8%A7%D8%AE%D8%B1%D9%87-%DA%A9%D8%AF%D9%88%D9%85-%D8%B2%D8%A8%D8%A7%D9%86-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%AE%D9%88%D8%A8%D9%87-jwcvridzgm2l</link>
                <description>سلامهمیشه انتخاب زبان برنامه نویسی،مثل انتخاب همسر یا شغل یا هر چیزی،خیلی مهم بوده.اینکه چه زبانی رو انتخاب کنید که آینده به دردتون بخوره و کدومش درامدش بالاس یا کدومش پرستیژ خودشو داره.متاسفانه جوون های مملکت ما،پول جلو چشمونو گرفته و اول از همه به پول فکر میکنن.ولی شخصا باید عرض کنم توی هر شغلی،اول باید علاقه ایجاد بشه و انگیزه بیاره و بعد به پول فکر کرد.برا همین توی انتخاب به مشکل برمیخورند.من به عنوان یه برنامه نویس فریلنسر و بی اغراق موفق در شغلم،باید عرض کنم شما باید نوع کار کردنتون رو مشخص کنید.ینی میخواین خونه کار کنید یا شرکت...این انتخاب،باعث میشه نوع انتخاب زبان برنامه نویسی تون فرق کنه.ولی چرا مهمه؟وقتی شما برا خودتون کار میکنید یا برا مشتری پروژه هایی رو پیاده سازی میکنید،اینجا فاکتور ها عوض میشن.مثلا برا شما زمان خیلی مهمه،ینی هر چقدر زودتر تموم بشه،پروژه بعدی رو شروع میکنید و بیشتر سود میکنید.پس ابزار ها،زبان هایی که سریع کار رو جلو ببره اولویت شما باید باشه.ولی توی شرکت ها اینطوری نیست.چون توی شرکت ساعتی کار میکنید،پس اولویت شما سبک بودن زبان برنامه نویسی نیست،پس بهتره یه زبان مطرح تری رو انتخاب کنید.خوب و اما منظورم چیه چطوری اخه؟ببینید الان زبان های برنامه نویسی مختلفی برای توسعه اپلیکیشن اندروید وجود داره.جاوا،زامارین،سی ndk،ریکت نیتیو،بیسیک و بقیه یادم نیست.همشون برای توسعه اپلیکیشن اندروید استفاده میشند ولی اما کدوم راسته کار ما هستش؟شخصا از بیسیک برا توسعه استفاده استفاده میکنم به چند دلیل زیر :1- خیلی سبک2- توسعه سریع اپلیکیشن3- تبدیل به کدهای نیتیو جاوا4- از همه مهمتر،تامین خواسته های مادرامدی که من از بیسیک داشتم خیلی بیشتر از یه جاوا کار یا ریکت نیتیو کار بوده.البته نه نجومی ولی دوستانی دارم که درامد اکثر جاوا کارها به گرد پاشون نمیرسه ولی اما منظورم چیه؟ببینید جاوا و بیسیک هر دو درامدزا هستن ولی برا کسی که فریلنسر هست،تولید سریع اپلیکیشنه.اگه قراره فریلنسر باشید،باید سبک ترین ابزار،سریع ترین زبان ها رو برای کارتون انتخاب کنید.به دنبال پرستیژ،نمیدونم فلان زبان معروف تره نباشید.برای وب اگه میخواید کار کنید php بهترین گزینه س.حرف اونایی که میگن ضعیفه و فلانه و نود جی اس بهتره  یا فلان گوش ندید.نه اینکه قوی نیستن ولی پروژه هایی که توی ایران اجرا میشن انقدر پیچیده نیستن که نشه با php پیاده کرد.شخصا توی فریلنسری php کار میکنم ولی توی شرکت node js.و تا الان به بهترین شکل جواب دادن و کماکان پروژه هامو با اون میزنم.و اما اگه قراره شرکت کار کنید،ابزار های سریع بصورت مطلق،بدرد این کار نمیخورن (صریحا نه ولی اغلب موارد اره)یکی از موارد اشتغال زای اندروید اینه که شما اپلیکیشن میزنید و تبلیغاتی مثل ادموب که به دلار هست و یا تپسل که به ریال هست درامد داشته باشید خیلی راحت.ولی ایا واقعا مهمه که با جاوا بزنید یا بیسیک؟شما اگه با بیسیک اپلیکیشن درست کنید و تبلیغات بزارید مثلا 4 روز وقت میبره ولی با جاوا یا سایر زبان ها مثلا 6 روز.شما توی همون 2 روز اضافه ای که با جاوا میزنید میتونید یه اپلیکیشن دیگه بزنید و درامد بیشتر داشته باشید.پس اینجا انتخاب ما میشه بیسیک.برا همین اولویت باید نوع کار باشه (فریلنسری یا شرکت)بعد انتخاب ساده ترین و سریع ترین ابزار های توسعهو انتخاب بازار کار (مثلا فروش اپلیکیشن یا تبلیغات یا فروش سورس)و شروع کار...گول پرستیژ کاری رو نخورید.ابزاری رو انتخاب کنید که توی اون جامعه جواب داده و تست های خودشو داده و موفق بوده.متاسفانه یه مشکلی که دارم اینه که نمیتونم خوب مطلب رو برسونم.سوالی داشتید بپرسید در خدمتتون هستم.</description>
                <category>امید آقاخانی</category>
                <author>امید آقاخانی</author>
                <pubDate>Fri, 28 Aug 2020 10:42:06 +0430</pubDate>
            </item>
                    <item>
                <title>کاربرد پیام به همراه پارامتر retain در MQTT</title>
                <link>https://virgool.io/@omid_developer/%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF-payload-%D8%A7%D8%B2-%D9%86%D9%88%D8%B9-retain-%D8%AF%D8%B1-mqtt-bvd0ivvmmnfv</link>
                <description>سلام دوستانخوب دیگه توضیح نمیدم که MQTT چیه و کارش چیه.فقط میخوام قابلیت retain رو بهتون بگم که به چه دردی میخوره.شما وقتی یه پیامی رو به یه تاپیک خاصی پابلیش میکنید،نیازه که بعضی وقت ها یه پیامی رو بصورت پین اون بالا نگه دارید.ینی همیشه اون یوزری که به فلان تاپیک،subscribe کرده،هر وقت به سرور وصل بشه،اون پیام رو ببینه.منتهی وقتی یه پیامی رو میفرستید،چه نوع پیام از Qos 0,1,2 باشه،در هر حالت پیام رو میرسونه و از سرور پاک میکنه که دفعه بعد بهش چیزی نفرسته.که به درد ما نمیخوره و ما میخوایم پیام تا وقتی که میخوایم پین بشه.خوب کافیه موقع ارسال پیام،مشخصه retain اون پیام رو برابر با true  بزارید.به ازای هر پیامی که این خاصیت رو true بزارید و بفرستید،اون پیام میره بالا پین میشه و پیام قبلی پاک میشه اینو یادتون باشه.و اما تا کی این پیام پین میمونه اون بالا؟خیلی سوال خوبی بود احسنت به خودم :)برای حذف پیام پین شده،کافیه یه پیام خالی به همون تاپیک که retain ش هم true بوده بفرستید و به همین راحتی اون پیام پین شده حذف میشه.منظور از خاصیت،توی برنامه نویسی در واقعا همون properties یا مشخصه اون کلاس هستش.توی ابزارهایی که برای کار با mqtt هست این خاصیت رو میتونید ببینید.خلاصه این retain خیلی چیز بدرد بخوریه.</description>
                <category>امید آقاخانی</category>
                <author>امید آقاخانی</author>
                <pubDate>Mon, 24 Aug 2020 21:48:11 +0430</pubDate>
            </item>
            </channel>
</rss>