<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Alireza rameshki</title>
        <link>https://virgool.io/feed/@mralirezarameshki</link>
        <description>I am Alireza and on this page I share with you the things that I learn every day

To contact me, only Telegram with the following ID
https://t.me/alireza176</description>
        <language>fa</language>
        <pubDate>2026-06-16 15:59:50</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/3598968/avatar/qiyf0n.jpg?height=120&amp;width=120</url>
            <title>Alireza rameshki</title>
            <link>https://virgool.io/@mralirezarameshki</link>
        </image>

                    <item>
                <title>ربات هوشمند تلگرام برای شناسایی آهنگ‌ها</title>
                <link>https://virgool.io/@mralirezarameshki/%D8%B1%D8%A8%D8%A7%D8%AA-%D9%87%D9%88%D8%B4%D9%85%D9%86%D8%AF-%D8%AA%D9%84%DA%AF%D8%B1%D8%A7%D9%85-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%B4%D9%86%D8%A7%D8%B3%D8%A7%DB%8C%DB%8C-%D8%A2%D9%87%D9%86%DA%AF-%D9%87%D8%A7-szaqm1dumyid</link>
                <description>سلام دوستان! امروز می‌خوام به شما درباره ربات تلگرامی بگم که می‌تونه به شدت کارتون رو در پیدا کردن آهنگ‌ها راحت کنه. این ربات با استفاده از هوش مصنوعی، شما رو تنها نمی‌ذاره و به هر طریقی که بخواهید—چه با فرستادن صدا، متن، یا حتی ویدیو—آهنگ رو برای شما شناسایی می‌کنه. بیاید ببینیم چطور کار می‌کنه!  لینک ورود به ربات  ویژگی‌های ربات این ربات چندتا ویژگی عالی داره که کار باهاش رو لذت‌بخش می‌کنه:  1. شناسایی آهنگ با صدا: فقط کافی‌ست فایل صوتی یا ویس بفرستید تا ربات آهنگ رو شناسایی کنه و فایل رو در عرض چند ثانیه براتون ارسال کنه.  2. متن آهنگ: اگر یاد دارید که چه کسی آهنگ رو خونده، فقط کافیه متن آهنگ رو بگید—مثلاً &quot;اسم خواننده اسم اهنگ&quot;. ربات به سرعت آهنگ مورد نظر رو پیدا می‌کنه.  3. ویدیوها: حتی می‌تونید لینک ویدیوها از اینستاگرام رو ارسال کنید و ربات با تحلیل ویدیوی شما، آهنگ رو شناسایی می‌کنه و به شما ارسال می‌کنه.  4. رابط کاربری ساده: کار کردن با ربات خیلی آسانه و نیاز به هیچ دانشی نداره. فقط کافی‌ست با کلمات ساده درخواست کنید و بقیه کار رو به ربات بسپارید.  این ربات تلاش می‌کند تا تجربه‌ی جستجوی آهنگ رو برای شما ساده‌تر و سریع‌تر کنه. چه بخواهید آهنگ یک هنرمند خاص رو پیدا کنید، چه فقط یک فایل صوتی بفرستید، این ربات همیشه در کنار شماست.  اگر به موسیقی علاقه دارید و همیشه دنبال آهنگ‌ها هستید، این ربات تلگرامی رو امتحان کنید و تجربه‌تون رو با ما به اشتراک بذارید! بیاید با هم وارد دنیای موسیقی بشیم و هیچ آهنگی رو از دست ندیم!لینک ورود به ربات </description>
                <category>Alireza rameshki</category>
                <author>Alireza rameshki</author>
                <pubDate>Wed, 20 Nov 2024 19:05:08 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش متد های scyncronous و Asyncronous</title>
                <link>https://virgool.io/@mralirezarameshki/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%AA%D8%AF-%D9%87%D8%A7%DB%8C-scyncronous-%D9%88-asyncronous-zhnavu7cutr3</link>
                <description>اموزش دوتا متد Syncronous و Asynchronousحالا این دو متد چیه و چکار میکنه ؟متد Sync :این متد دستورات میگه که دستورات نباید همزمان اجرا بشن و باید پس از اجرای دستور قبلی دستور بعدی اجرا بشه اما فقط درصورتی این کار انجام میشه که دستورات ما حتما از نوع sync باشن مثال :console.log(1)console.log(2)console.log(3)result :123مفهوم sync دقیقا توی همینه ، یعنی مثلا نقطه پایان 2 دقیقا چسبیده به نقطه شروع 3 اما Async دقیقا برعکس این متد عمل میکنه این میاد دستورات رو با هم اجرا میکنه یعنی دنباله ندارند setTimeout&#40;(&#41; =&gt; {        console.log(1)    }, 2000);    setTimeout&#40;(&#41; =&gt; {        console.log(2)    }, 1000);    setTimeout&#40;(&#41; =&gt; {        console.log(3)    }, 500);متد set timeout از نوع async عمل میکنه، در این حالت دستورات طبق تایمشون اجرا میکنه بعنی صبر نمیکنن تا به ترتیب اجرا بشن پس خروجی طبق تایمشون بصورت زیر هست :3 =&gt; (Time : 500)2 =&gt; (Time : 10001 =&gt; (Time : 2000)ابتدا دستور 3 پس از 500 میلی ثانیه اجرا میشه ، سپس 2 پس از 1000 میلی ثانیه و...همون طور که میبینید دستورات به نظم اهمیت نمیدن و فقط طبق تایم شون چاپ میشن حالا یک مثال میزنم که قشنگ بره توی مغزتون :Sync :   فرض کنید میرید نونوایی اونجا نمیاد اول به نفر اخر نون بده بعد به نفر دوم نون بده بعد نفر پنجم و...اگه پارتی بازی نکنن باید به ترتیب به هر کدوم نون داده بشه و ترتیب رعایت بشه این دقیقا مفهوم sync هست Async : فرض کنید میخواید خرید اینترنتی انجام بدید درگاه پرداخت نمیاد صبر کنه تا نفر قبلی شما پرداختش تکمیل بشه و بعد درخواست شما رو قبول کنه دقیقا همزمان چندین نفر میتونند ثبت سفارش انجام بدن خب اینم از یک مثال امیدوارم با این مثال دیگه قشنگ یاد گرفته باشید</description>
                <category>Alireza rameshki</category>
                <author>Alireza rameshki</author>
                <pubDate>Sun, 03 Nov 2024 18:38:46 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش Regular expression یا RegExp</title>
                <link>https://virgool.io/@mralirezarameshki/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-regular-expression-%DB%8C%D8%A7-regexp-ddmsrjf7pe6c</link>
                <description>موضوع: Regex یا Regular Expressionاول اینکه ریجکس چیه و چه کاربردی داره؟ ما با استفاده از ریجکس می‌توانیم روی ورودی‌ها محدودیت بگذاریم. مثلاً می‌گوییم اگر درون اینپوت شماره تلفن با 0912 شروع شد، آن را تایید کن یا مثلاً می‌گوییم اگر فامیلی طرف کاظمی بود، آن را رد کن.مثال دیگر اعتبارسنجی لاگین است. مثلاً می‌گوییم پسورد شما باید شامل حروف باشد و یا باید شامل اعداد باشد و...درسته که این را با یک دستور if و else می‌توانیم به راحتی درست کنیم، اما ممکن است در آنجا کمی پیچیده‌تر شود. ما برنامه‌نویسیم و برایمان مهم است که کدهایمان کوتاه و خوانا باشد و این کاری است که ریجکس برایمان انجام می‌دهد.خب، بیایید سراغ یک مثال ساده. مثلاً من می‌خواهم از کاربر یک ورودی بگیرم و می‌گویم این ورودی باید شامل عدد و حروف الفبا باشد.در حالت عادی باید بگوییم:if (input == &amp;quota&amp;quot || input == &amp;quotb&amp;quot || input == &amp;quotc&amp;quot) return &amp;quotthis is string&amp;quotشاید هم از یک راه خیلی ساده‌تر بتوان این کار را انجام داد، اما این چیزی بود که الان به ذهنم رسید. 😅حالا همین کار را با ریجکس انجام می‌دهیم:let x = new RegExp(/[a-z]/g);if (x.test(input.value)) return &amp;quotI see a string&amp;quotحالا شاید تعجب کنید که این عبارات درهم‌برهم چیست؟ اما خب، عادی است. چرا؟ چون همین دیروز خودم همین احساس را می‌کردم، اما امروز دارم آموزش می‌دهم. بسیار ساده است. در دستور اول با استفاده از new می‌گوییم یک چیز جدید برایمان درست کن! حالا این چیز جدید چیست؟ همان چیزی که بعد از این عبارت می‌آید می‌تواند هر چیزی باشد، مثلاً new Date().من گفتم که یک ریجکس برایم درست کن که فیلتر باشد با عبارات داخل ریجکس. در قدم اول برای استفاده از ریجکس باید از دستور / / (دو تا اسلش) استفاده کنید و فیلترهایی که مدنظر داریم را درونش قرار دهیم.هر چیزی می‌توانم قرار بدهم. مثلاً می‌گویم اگر حرف &quot;alireza&quot; را دیدی، بگو دیدمت:const reg = new RegExp(/alireza/ig);if (reg.test(input.value)) return &amp;quotI see you&amp;quotمن اینجا گفتم که اگر علیرضا را دیدی، بگو دیدمت. خب، حالا دستورات بعدی‌اش چه کاری می‌کند؟ مثلاً i یا g:دستور i منظورش این است که حروف کوچک را هم شامل شود. یعنی اگر این را ننویسم و بعد بگویم Alireza، بعد بگویم console.log(reg)، من با false مواجه می‌شوم. دستور بعدی g است به معنی global، یعنی اینکه تمام این عبارت را بگرد. مثلاً اگر g را نگذارم، یک بار اسم &quot;alireza&quot; را ببیند، دیگر در عبارت من نمی‌گردد. حالا کاربردش چیست؟مثلاً ما یک پاراگراف طولانی داریم. می‌گوییم درون این پاراگراف هر چه حرف &quot;a&quot; تا &quot;z&quot; دیدی، رنگش را خاکستری کن. اما اگر global نباشد با یک بار دیدن حروف، همان را علامت می‌زند و داخل کل متن نمی‌گردد.دستور بعدی \d و \D است.دستور \D می‌گوید هر چیزی به جز عدد را دیدی، برایم برگردان. البته برنمی‌گرداند نتیجه‌اش یا false است یا true.نحوه استفاده‌اش هم به این صورت است. مثل قبل یک ریجکس درست می‌کنیم با / /:const reg = new RegExp(/\D/);حالا پاراگراف ما این است:const p = &amp;quotHello Mr Alireza&amp;quotحالا می‌گوییم که مقایسه را انجام بده:if (reg.test(p)) return &amp;quotI see string&amp;quotفکر می‌کنید نتیجه چیست؟نتیجه true است اما مشکلی که دارد این است که فقط حرف H را می‌بیند. چرا؟چون ما از دستور global استفاده نکردیم. پس برای اینکه برنامه‌مان درست کار کند، می‌گوییم:const reg = new RegExp(/\D/ig);و همچنین دستور i که به حروف کوچک و بزرگ حساس نباشد.دوستان توجه کنید که درون اسلش‌ها هر چیزی می‌توانیم قرار دهیم. می‌تواند یک استرینگ باشد یا می‌تواند یک عدد باشد و هر چیز دیگری.مثلاً:const reg = new RegExp(/[0123456789]/g);من اینجا گفتم که فیلتر شود با اعداد 0 تا 9. یعنی اگر اعداد 0 تا 9 باشد، به من دستور true برمی‌گرداند و اگر نباشد false است.اما این کار یک اشکالی دارد. این است که فقط در صورتی که تمامی اعداد 0 تا 9 وجود داشته باشد، به من true برمی‌گرداند. در غیر اینصورت false.مثلاً اگر بگویم &quot;123&quot; غلط است، ولی اگر بگویم &quot;0123456789&quot; درست است.که این چیزی نیست که ما به آن نیاز داریم. پس راهکار چیست؟باید از علامت [] استفاده کنیم و مقادیر را درون کروشه بگذاریم. مثلاً:const reg = new RegExp(/[0-9]/g);در این حالت روی اعداد 0 تا 9 فوکوس می‌شود و هر بار یا هر کجای متن که عددی ببیند، دستور true را برمی‌گرداند.مثلاً می‌توانم بگویم &quot;123&quot; یا &quot;58466&quot; یا هر عدد دیگری.ما این کار را نه تنها روی اعداد بلکه روی استرینگ هم می‌توانیم انجام دهیم:مثلاً:const regex = new RegExp(/[a-z]/g);در اینجا بین عبارات &quot;a&quot; تا &quot;z&quot; می‌گردد و همچنین دستور i برای عدم حساسیت به حروف بزرگ و کوچک:const regex = new RegExp(/[a-z]/ig);نمونه الگوی دریافت ایمیل با استفاده از ریجکس:/([a-z]+([0-9])*)@gmail\.com/نمونه الگوی دریافت ادرس سایت با استفاده از ریجکس:/(https?://)?(www\.)?([a-z 0-9 _ -]+)(.[a-z]{2,5})/خب این مقاله هم به اتمام رسید امیدوارم که مفید بوده باشم ,موفق باشید</description>
                <category>Alireza rameshki</category>
                <author>Alireza rameshki</author>
                <pubDate>Fri, 01 Nov 2024 21:38:55 +0330</pubDate>
            </item>
            </channel>
</rss>