<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Mahdi Akbari</title>
        <link>https://virgool.io/feed/@blackestwhite</link>
        <description>توسعه دهنده https://github.com/blackestwhite</description>
        <language>fa</language>
        <pubDate>2026-06-07 17:52:33</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/2086/avatar/sRrvdy.jpg?height=120&amp;width=120</url>
            <title>Mahdi Akbari</title>
            <link>https://virgool.io/@blackestwhite</link>
        </image>

                    <item>
                <title>شاید کاربردی در شرایط فیلترنت</title>
                <link>https://virgool.io/@blackestwhite/%D8%B4%D8%A7%DB%8C%D8%AF-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D8%AF%D8%B1-%D8%B4%D8%B1%D8%A7%DB%8C%D8%B7-%D9%81%DB%8C%D9%84%D8%AA%D8%B1%D9%86%D8%AA-vu2ksqyvfnev</link>
                <description>من کلی سر و کله زدم با چیزای مختلف، چیزی که به خارج بشه وصل شد پیدا نکردم.روی هم روش یه راکت چت اوردم بالا و با دوستام اونجا چت می‌کنیم و از هم خبر داریم. hamravesh.com این لینک هم روش هستش.این شرایط یکم حالم رو گرفت چون تازه یه سرویس اورده بودم بالا و درآمدزا شده بود، کلی فیچر هم مد نظر داشتم اما با این شرایط پیش اومده فعلا هیچ کار نمیشه کرد.حالا که ازش گفتم، یه لینکی هم میدم بهش شاید بعد از درست شدن اوضاع اینترنت بتونید ازش استفاده کنید: مثلث - تولید محتوا برای وبسایت‌های وردپرسی به طور اتوماتخب اما این روزا با پرامپت انجینیرینگ بیشتر سر و کله میزنم چون دوتا مدل لوکال دارم و یه مدل امبدینگمدل های لوکال اولاماکتابای نشر O&#039;Reilly و پکت و امثالهم رو ورق میزنم تا چیزی بسازم و حوصلم سر نره...و مابقی وقت اضافه رو میرم تو سایت uptvs.com و فیلم و سریال و انیمیشن نگاه می‌کنم...اوضاع شما از چه قراره :)</description>
                <category>Mahdi Akbari</category>
                <author>Mahdi Akbari</author>
                <pubDate>Mon, 12 Jan 2026 20:50:43 +0330</pubDate>
            </item>
                    <item>
                <title>یه محصول جدید کد زدم، این بار برای محتوا</title>
                <link>https://virgool.io/@blackestwhite/mosallas-ny0cryl0lejo</link>
                <description>خیلی وقت بود چیزی نمی‌ساختم. نه اینکه ایده نباشه، ولی همیشه یه چیزی کم بود؛ انگیزه، تمرکز، یا شاید هم یه پروژه‌ای که واقعا ارزش برگشتن داشته باشه.تا اینکه بعد از یه مدت غیبت، بالاخره یه چیزی ساختم که حس می‌کنم هم به درد می‌خوره، هم عملاً خلا واقعی تو کار خودم بود: mosallas.ir.مثلث نتیجه همون نیازی بود که همیشه ته ذهنم بود؛ اینکه تولید محتوا برای سایت‌ها و پروژه‌ها نباید این‌قدر وقت‌گیر، تکراری و خسته‌کننده باشه. اینکه آدم باید بتونه روی کارهای مهم‌تر تمرکز کنه، نه روی ساختن ده‌ها مقاله‌ی تکراری برای سئو.برای همین نشستم و ابزاری نوشتم که خودش مقالات رو تولید کنه، سئو رو رعایت کنه، عکس کاور بسازه، حتی مستقیم توی وردپرس منتشر کنه.یه جور «ماشین محتوا» که کمک می‌کنه بدون تیم بزرگ، خروجی بزرگ بگیری.این پروژه برای من فقط یک محصول جدید نیست؛ یه جور برگشتن بود. یه یادآوری به خودم که هنوز می‌تونم چیزهایی بسازم که زندگی دیجیتال آدم‌ها رو راحت‌تر کنه.اگر همیشه دنبال این بودی که تولید محتوات رو اتومات کنی یا پروژه‌هات رو سریع‌تر جلو ببری، احتمالا این چیزی‌ه که دنبالش بودی.فیچر ها:۱. کلمات کلیدی بر اساس SERP۲. تولید تصویر با نانو بنانا پرو و عادی(کاربران رایگان)۳. لینک‌دهی داخلی۴. ساخت پروفایل از وبسایت با گذشت زمان (به نوعی با گذر زمان هوش مصنوعی بهتر میفهمه که شما دقیقا چکار می‌کنید)تمرکزم بر چی بوده:۱. فولی اتومات باشه۲. جایگزین یه تیم کوچیک محتوا باشه۳. نتایج رو واقعا بهبود بده و چرت و پرت و تکراری ننویسه</description>
                <category>Mahdi Akbari</category>
                <author>Mahdi Akbari</author>
                <pubDate>Sat, 22 Nov 2025 10:17:02 +0330</pubDate>
            </item>
                    <item>
                <title>آمار مشاهده با influxDB و Go</title>
                <link>https://virgool.io/@blackestwhite/%D8%A2%D9%85%D8%A7%D8%B1-%D9%85%D8%B4%D8%A7%D9%87%D8%AF%D9%87-%D8%A8%D8%A7-influxdb-%D9%88-go-dmxrq1ervmfe</link>
                <description>درود دوستان عزیزم. MVP اریموت(سامانه استخدام دورکاری: https://oremote.org) رو که بالا آوردم اول صرفا شماره بازدید هارو توی هر نمونه شغل پست شده آپدیت می‌کردم و مثلا نشون میدادم فلان آگهی فلان قدر بازدید داشته.یادتون باشه دیگه ما اول یه چیزی میسازیم، بعد مدام بهتر و بهترش می‌کنیم و بهش فیچر اضافه می‌کنیم، کمال‌گرا نشید.بعد که یکی دوبار آگهی توی سایت دیوار ثبت کردم، دیدم یه قسمتی پایینش آمار بازدید روزانه رو میزنه و گفتم ایول چه خفن منم اضافه کنمش.اول گفتم خب همون با دیتابیسی که نوشتم بیام تایم استمپ یونیکسی رو بریزم توی دیتابیس ولی بعدش پشیمون شدم و گفتم بجاش از یه دیتابیس تایم سریز استفاده کنم از اونجایی که با زمان سروکار دارم بهتره برم سراغ چیزی که براش ساخته شده و اولین چیزی که تو ذهنم اومد اینفلاکس دیبی بودش، چون داشبورد خیلی خوشگلی داشت یادم مونده بود :)و البته یه ایمج داکر نسبتا سبک داره که خیلی راحت میتونید ران کنید و توی سیستم لوکالتون تستش کنید.اگر نمی‌دونید: تایم استمپ یونیکسی (Unix timestamp) یک عدد صحیح است که تعداد ثانیه‌های گذشته از ۱ ژانویه ۱۹۷۰، ۰۰:۰۰:۰۰ UTC را نشان می‌دهد.حالا روند اینطوری بود، که من برای افزایش تعداد بازدیدها یه روت تعریف کرده بودم که میومد شغل رو میگرفت و میزان view رو توی سند دیتابیسش افزایش میداد (فریمورک Gin رو استفاده کردم)GET /api/v1/job/view/:job_idو این میومد تو دیتابیس مانگو ویو رو اپدیت میکرد.حالا تو ورژن جدید اومدم چکار کردم؟اومدم به ازای هر بازدید یه نقطه توی باکت(bucket) اینفلاکس دیبی ایجاد کردم.دوستان نمیدونم چرا ویرگول دبل کوتیشن رو درست نشون نمیده، این &amp;quot ها که نوشته شده، دبل کوتیشنه(&quot;)org := &amp;quottest-org&amp;quot
bucket := &amp;quottest-bucket&amp;quot
writeAPI := InfluxClient.WriteAPIBlocking(org, bucket)
point := influxdb2.NewPoint(&amp;quotjob_view&amp;quot,
    map[string]string{&amp;quotjob_id&amp;quot: instance.ID.Hex()},
    map[string]interface{}{
    &amp;quotunix_ts&amp;quot: time.Now().Unix(),
    },
    time.Now(),
)
err = writeAPI.WritePoint(context.TODO(), point)
if err != nil {
    return err
}که البته اون یونیکس تایم استمپ هم نیاز نبود بیارمش ولی چون عددیه، احتمالا بعدا راحت تر بتونم باهاش کوئری فلاکس بنویسم.(نمیدونم شایددد)و حالا که ثبت کردم باید یه روشی هم برا نمایشش ایجاد میکردم، از اونجایی که هر آگهی باید ۳۱ روز فعال باشه، من دیتای بازدید ۳۱ روز قبل تا حالا برای هر شغل رو نیاز دارم.و اگر اون روزا پوینتی توی اینفلاکس نداشته باشم باید صفر رو برگردونم یعنی بازدیدی نبوده(یا آگهی ثبت نشده بوده هنوز، یا بازدید صفر بوده)حالا ما اومدیم نقطه مون رو بر اساس ثانیه ثبت کردیم، چطوری بفهمیم اقا این نقطه(ها) تو مال کدوم روزن؟ اینجاست که دیتابیس time series به کمک میاد با توابع built-inشorg := &amp;quottest-org&amp;quot
bucket := &amp;quottest-bucket&amp;quot
queryAPI := InfluxClient.QueryAPI(org)
query := fmt.Sprintf(`
    import &amp;quottimezone&amp;quot
    option location = timezone.location(name: &amp;quotAsia/Tehran&amp;quot)
    from(bucket: &amp;quot%s&amp;quot)
    |&gt; range(start: -30d)
    |&gt; filter(fn: (r) =&gt; r._measurement == &amp;quotjob_view&amp;quot and r.job_id == &amp;quot%s&amp;quot)
    |&gt; map(fn: (r) =&gt; ({_time: r._time, _value: 1}))
    |&gt; aggregateWindow(every: 1d, fn: sum, location: location)
    |&gt; fill(value: 0)
    `, bucket, jobID)
results, err := queryAPI.Query(context.Background(), query)
if err != nil {
    return err
}اول این علامت های |&gt; اینطوری رو بگم چی ان، اینا بهش میگن پایپ کردن، پایپ به معنی لوله هستش ولی بعنوان فعل یه جورایی میشه خروجی عمل قبلی رو پاس میده به عمل بعدی.اول از همه اومدم گفتم به باکت test-bucket میخوام کوئری بزنم، (توی تایم زون تهران)بعد گفتم رنج زمانی از ۳۰ روز پیش میخوام باشه،بعد اومدم یه تابع فیلتر نوشتم که بتونم بر اساس فیلد job_view و بر اساس کد شغل job_id که به طور string داشتمش، فیلتر کنه، اینطوری میاد تمام نقاط مربوط به اون شغل رو فیلتر میکنه،بعد یه تابع مپ که قطعا توی برنامه نویسی فانکشنال باهاش اشنایی دارید رو روش اجرا کردم که به ازای تمام رکورد هایی که بهش رسیده، مقدار ستون _value رو یک قرار بده(چون هر بازدید یه دونس)،بعدش گفتم aggregate (تجمیع، توده ساختن) انجام بده، توی بازه‌ی ۱ روزه، از اونجایی که من بازدید روزانه رو فعلا نیاز دارم، و هنگام اون توده سازی میخوام مقادیری که به ستون _value دادم رو جمع بزنم بنابرین تابع fn ما میشه sum،و نهایتا با fill جاهایی که مقدار نداره رو صفر قراردادم(بعضی روزا ممکنه بازدیدی نباشه).(من تازه با اینفلاکس اشنا شدم و احتمال خیلی زیاد روش بهینه تری برای کوئری زدن هست با ریسک خودتون از کد استفاده کنید.)حالا که اینارو گرفتم باید با زمان ایران تنظیمش کنم و روزایی که دیتا ندارم رو صفر کنم.قبلش یه نوع متغییر معرفی میکنم برای نگه داشتن شکل و شمایل امار:بعدشم ازش استفاده می‌کنم.این دیگه کد go هستش و توضیحی ندارم روش، اگر سوالی داشتید یا بهبود مد نظرتون بود(من سنیور نیستم) توی کامنتا اعلام کنید.و اخرشم dailyCounts رو میدم به ctx.JSON که به کاربر برگردونم به صورت جیسون/جیسان؟؟؟ نمیدونم.جیسون رو هم دو قسمتی میکنم به مقادیر ایکس و ایگرگ و میدمش به چارت جی اس(خود فرانت با ناکست نوشته شده) و نتیجه کارم فعلا شده این:مقاله من اینجا تموم شد، خوشحال میشم برید https://oremote.org رو ببینید، ثبت آگهی حالا حالا ها توش رایگانه، اگر انتقاد/پیشنهاد چه از لحاظ دیزاین چه از لحاظ فنی بود بگید.اریموت هنوز یوزر زیادی نداره، و یکی از قدمای بعدیم براش نوشتن ریکامندیشن سیستمه(سیستم پیشنهاد دهنده شغل) ولی برای اینکار دیتا نیاز دارم و برای دیتا یوزر نیاز دارم :)موفق و پیروز باشید. بدرود.</description>
                <category>Mahdi Akbari</category>
                <author>Mahdi Akbari</author>
                <pubDate>Fri, 08 Sep 2023 20:34:34 +0330</pubDate>
            </item>
                    <item>
                <title>تب و تاب ارز رمزنگاری شده(کریپتوکرنسی)</title>
                <link>https://virgool.io/@blackestwhite/%D8%AA%D8%A8-%D9%88-%D8%AA%D8%A7%D8%A8-%D8%A7%D8%B1%D8%B2-%D8%B1%D9%85%D8%B2%D9%86%DA%AF%D8%A7%D8%B1%DB%8C-%D8%B4%D8%AF%D9%87%DA%A9%D8%B1%DB%8C%D9%BE%D8%AA%D9%88%DA%A9%D8%B1%D9%86%D8%B3%DB%8C-zwbwq8b5fgje</link>
                <description>سلام خدمت همه خواننده های این پستقصد دارم توی این نوشته از اتفاقایی که داره میوفته و میبینم(از دید یک توسعه دهنده) بگم تا افراد سودجو شما رو اسیر دست خودشون نکننچارلز پانزی - مطرح کننده طرح پانزی یا همون هرمیپدر من مدیر مدرسه هستش، هفته پیش به دعوت دوستانش به جلسه‌ای دعوت شد که گویا یک توکن/کوین رو معرفی می‌کردند و قول سود n درصدی می‌دادند به خریدارانخب اولا هروقت به شما قول سود دادند کمی بیشتر تامل کنید، به گفته دوست پدرم این فرد میگفت فلان کوین رو بخرید، مبلغ سرمایه گذاری اولیه مورد نیاز 100 میلیون تومان هستش، و والت شما نزد ما باشه.. و قول دادند که ماهی 10 درصد سود بدناولا بهتره ما به دلیل بوجود اومدن سیستم بلاکچین در زمینه ارز و دارایی یک نگاهی بیاندازیم که یکی از اهداف اصلی این بود که شخص من یا شما، مالک واقعی دارایی خودمون باشیم ( توی حساب بانکی مالک ما هستیم ولی حساب نزد بانک هستش، به عبارت دیگه حساب و دارایی امانی هست)دوما کوین-توکنی که بخواهد مشکل واقعی حل کنه، وعده پولدار کردن شمارو نمیدهمن به این مدل ایراد گرفتم، سپس همکار پدرم مدعی شد این تیم دوماه بهشون سود دادن اما من بهشون گفتم که ممکنه این افراد معامله کرده باشن و از پول شما سود کرده باشند ولی حالت اصلی اینه که این افراد از پول اصلی شما مبلغی به اندازه سود دوماه به خودتان برگردوندن(یعنی پول خودشو به خودش دادن)ایراد به مدل این هستش که توی یک سیستم بسته یک عده سود میکنند و یک عده ضرر، یعنی سرمایه از بیرون وارد نمیشه و فقط کسایی که دعوت به خرید شدند حجم و سرمایه وارد میکنن و بر اساس عرضه و تقاضا وقتی عرضه ثابته و تقاضا بالا به تبع قیمت اون دارایی بالا میره، اما نکته مهم اینه که همه شما منتظرید توی قیمت n بفروشید اونوقت چی؟ متقاضی قیمت بالای n کجاست؟در ضمن وقتی شما والت رو پیش اون افراد دارید یعنی اختیار تام با اوناست و این خوب نیست!اما این تنها دلیل نبود که من این مطلب رو نوشتم چون توی گروه دانشگاه هم مثل اینکه یک فرد به نام ع.ح با فالوور 1.7 میل در اینستاگرام یک کوین/توکنی رو معرفی کرد و قول 1-10 دلار شدنش رو به مردم داد و مشوق من شد که این پست رو بنویسممن رفتم سایت اون پروژه رو چک کردم دیدم از یک قالب اماده استفاده شده،هیچ وایت پیپری ارائه داده نشده (وایت پیپر یک خلاصه ای بر دلیل ایجاد پروژه و مشکلاتی که حل میکنه هستش، به علاوه مختصری از استاندارد هایی که ایجاد کرده یا استفاده میکنه)هیج لینکی توی گیتهاب داده نشدهخلاصه بگم مثل یک سیاهچاله اونورش ناپیدا و حالا یک فرد اومده و اینو تبلیغ میکنه..روش درست چیه؟اولا بهتره شما راجب چیستیت و دلیل بوجود اومدن این تکنولوژی DLT و بلاکچین معروف اطلاعات کسب کنید که بنظرم سایت learn me a bitcoin منبع خوبی هستش هم قسمت ساده و روان داره هم قسمت تکنیکال برای برنامه نویسادوما با تحقیق راجب دلیل بوجود اومدن پروژه و مشکلاتی که اون پروژه حل میکنه میتونید وارد این حیطه نوظهور بشید (coinmarketcap) برای اطلاعات کسب کردن مناسبه- ضمنا گوگل هر سوالی دارید پاسخ میدهلازم هم نیست برای اینکار به کسی پول بدید، تنها چیزی که نیاز دارید یک والت و یک صرافی هستشوالت یا همون کیف پول اپلیکیشن یا سخت افزاری هست که براتون یک سری کلید خصوصی و عمومی رمزنگاری شده رو نگه میداره و امنیت دارایی تون رو تامین میکنهنکته: دارایی شما توی صرافی زیاد امن نیست (مثل حساب امانی توی بانک میمونه)کلام اخرتوی این وضع اقتصادی کشور اگر دیدید کسی داره سر دیگری رو کلاه میزاره مخصوصا با استفاده از دانش ازاد، سعی کنید کمکش کنیداگر سوالی داشتید توی کامنتا بپرسید شاید موضوعی شد برای پست های بعدیبدرود</description>
                <category>Mahdi Akbari</category>
                <author>Mahdi Akbari</author>
                <pubDate>Wed, 01 Dec 2021 01:36:05 +0330</pubDate>
            </item>
            </channel>
</rss>