<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های MrJahanbin</title>
        <link>https://virgool.io/feed/@mrjahanbin</link>
        <description>سالها کار برنامه نویسی و مدیریت پروژه انجام دادم و الان هم در حال کسب تجربه در بازاریابی و برندسازی هستم. وب سایت من : http://mrjahanbin.ir</description>
        <language>fa</language>
        <pubDate>2026-06-16 12:50:24</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/28234/avatar/ndWSyj.png?height=120&amp;width=120</url>
            <title>MrJahanbin</title>
            <link>https://virgool.io/@mrjahanbin</link>
        </image>

                    <item>
                <title>آمار بازدید پست‌های من در سال ۹۹</title>
                <link>https://virgool.io/@mrjahanbin/%D8%A2%D9%85%D8%A7%D8%B1-%D8%A8%D8%A7%D8%B2%D8%AF%DB%8C%D8%AF-%D9%BE%D8%B3%D8%AA-%D9%87%D8%A7%DB%8C-%D9%85%D9%86-%D8%AF%D8%B1-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B9-knepl4er47wk</link>
                <description>در طول تاریخ از اعداد استفاده کردیم تا اغلب داد و ستد کنیم و آن‌چیزی که شمردنی است را بشماریم. برای هر عدد واحد درست کردیم تا عددهای زندگی قاطی نشوند و از اعداد، شفاف‌تر استفاده کنیم؛ مثلا وقتی می‌گوییم ده هزار تومان به پول اشاره داریم و وقتی می‌گوییم ده هزار بلیط به بلیط!روز به روز که در زندگی جلو‌تر رفتیم عددها فرقی نکردند ولی این واحدها بودند که زیاد شدند. واحد کریپتو، واحد اصله درخت، واحد فاصله و …«واحد» یک توافق عمومی است برای شمردن؛ تا همانطور که گفتم شمردن‌ها قاطی نشود. مشاهده افراد دارای ثروت (اجتماعی یا مالی) به من ثابت کرده اینکه چه چیزی را بشماریم از اینکه چطور بشماریم مهم‌تر است. هرکس با واحد خاصی مسائل زندگی را می‌شمارد. اینطور به نظرم آمده که مشخص کردن واحد یعنی مشخص کردن اینکه من در زندگی برای چه چیزهایی ارزش قائلم و می‌خواهم چه چیزهایی را در زندگی بشمارم. https://cdn.virgool.io/annual-report/1399/yx4vcumop5pi-XgpNE.mp4 اعدادی که بدون واحد ثبت کردمبه ویدیویی که ویرگول برایم ساخته که نگاه می‌کنم میبینم که در سال ۹۹، من در مجموع ۱,۳۰۸ کلمه در ویرگول نوشتم و منتشر کردم و مخاطبین، پست‌های من را ۲۹ مرتبه پسندیدند و  ۹ بار هم نظر خود را روی پست‌های من به اشتراک گذاشتند. در سال ۹۹، ۳۰ نفر در ویرگول من را دنبال کردند تا پست‌های بعدیم را بخوانند. این اعداد نشان میدهند من کاری کرده‌ام. هرکدام به واحدی وصل هستند. از خودم می‌پرسم من کدام واحد را شمارش کرده‌ام؟ کدامیک از واحدهای بالا از همه برای من مهم‌تر است؟ ادامه ویدیو را می‌بینم.آمار از اثر بیرونی می‌گویندطبق آمار پست‌های من ۴,۳۱۱ بار خوانده شدند و ۹۶۱,۹۱۵ ثانیه صرف مطالعه آنها شده است، که با توجه به جمعیتی که در ایران به اینترنت دسترسی دارند، ویرگول به من می‌گوید که توانستم  ۰/۰۱۳۱۸۷۷۵۷ ثانیه، سرانه مطالعه دیجیتال کشور را بالا ببرم.از طرف دیگر ویرگول به من می‌گوید که اگر قرار بود پست‌هایم را چاپ و به دست تک تک خوانندگان برسانم باید ۱۵,۷۷۲ کاغذ مصرف می‌کردم.آن عددهای کوچک ابتدای ویدیو حالا تبدیل شده‌اند به عددهای بزرگ به اینکه من جلوی مصرف این تعداد کاغذ را گرفتم یا به اینکه من  ۰/۰۱۳۱۸۷۷۵۷ ثانیه، سرانه مطالعه دیجیتال کشور را جابه جا کرده‌ام. واحد این عددها برای من ملموس‌تر است.واحد نوشتن چیست؟همه عددهای بالا و همینطور اثر بیرونی که روی خوانندگان و همینطور در مقیاس بزرگتر طبیعت و جامعه اطرافم گذاشتم اعدادی هستند که من دوستشان دارم و به آنها افتخار می‌کنم. اگر چنین ویدیویی دست شما نیز رسید به شما بابت تک تک اعداد تبریک می‌گویم.اثر هر نوشته تا حدودی معلوم است، اگر بنویسید جلوی قطع درخت را می‌گیرید، به سرانه مطالعه کشور اضافه می‌کنید و خوانندگانی جذب می‌کنید که شما را از طریق نوشته‌هایتان می‌شناسند و …به نظرم می‌رسد که نوشته‌های من و شما واحد ندارند ولی اثر بیرونی دارند.</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Wed, 24 Mar 2021 10:08:49 +0430</pubDate>
            </item>
                    <item>
                <title>Include vs IncludeOptimized In EF</title>
                <link>https://virgool.io/@mrjahanbin/include-vs-includeoptimized-in-ef-ocevylsbphd2</link>
                <description>یکی از موضوعاتی که خیلی این مدت ذهنم رو درگیر کرده بود، گرفتن اطلاعات از پایگاه داده با استفاده از Include بود. عکس زیر رو ببینید:دستور Include اطلاعات جدولی که مرتبط با جدول اصلی هست رو هم میاره. یجورایی جایگزین Lazy Loading شده. مزیت بالایی که داره میزان بازدهی این کد هستش که هوشمنده و با توجه به چیزی که میخوای برات اطلاعات میاره . حتی توی تحقیقاتم به این رسیدم که این کد در صورتیکه در ادامه کار از داده ی یکی از جدول هایی که include کردی استفاده نکرده باشی برات داده اش رو نمیاره تا کد سبک تر بشه.مشکلی که این وسط هستش اینه که تعداد زیاد include طبق اخطاری که خود Visual studio میده باعث کندشدن بازدهی میشه. همین موضوع باعث شد دنبال بررسی این موضوع بیوفتم.اولین نکته ای که جا داره اینجا عنوان کنم اینه که برخلاف تصور عموم، دستور SQL ی که طولانی باشه و شامل تمام خواسته ها باشه، بازدهی بالایی نداره و زمانبر هستش. هرچی دستور SQL یا همون SQL Query کوتاه تر باشه علاوه بر بازدهی بالاتر، خوانایی بالاتری هم داره.نکته ی دوم اینه که ما علاوه بر نکته ی اول ، یک روش دیگه هم داریم برای اینکه بتونیم اطلاعاتمونو با بازدهی بالا استخراج کنیم و اونم استفاده از +EF هستش.روش کار هم خیلی ساده س:اول کتابخونه اش رو توی پروژه نصب میکنین.بعدش فقط کافیه بجای Include از IncludeOptimized استفاده کنین. به همین سادگی.این نکته هم اضاف کنم که برخی ها معتقد هستن که گاهی اوقات سرعت کندتری داره.</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Tue, 24 Nov 2020 12:21:25 +0330</pubDate>
            </item>
                    <item>
                <title>نگاهی به طراحی یک صفحه</title>
                <link>https://virgool.io/@mrjahanbin/%D9%86%DA%AF%D8%A7%D9%87%DB%8C-%D8%A8%D9%87-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%DB%8C%DA%A9-%D8%B5%D9%81%D8%AD%D9%87-onmh1jrspjyh</link>
                <description>دربرنامه نویسی برای هر خط کدی که نوشته میشه باید منطقی وجود داشته باشه. اگه منطق رو مناسب بهت منتقل نکنن یا کلا منطقی در کار نباشه به نمونه های جالبی میرسیم که یک نمونه جالب امروز دیدم و خالی از لطف نیست که باهم بررسی کنیم:این نمونه یکی از صفحاتی بود که خیلی اتفاقی امروز باز کردم و یک وب سایت بزرگ در کشور هستش.در زمان ثبت نام در این وب سایت ما با صفحه زیر روبرو میشیم:در نگاه اول ظاهر صفحه بسیار شیک و زیباست:اما...ما اگر همینجوری یک کلیک روی ایجاد حساب کاربری کنیم چه میشه؟ با این پیغام روبرو میشیمچشم میزنیم. و دنگ دومی پیداش میشه!!!اینم چشم.ااااااااااا....و باز دوباره؟ چرااااا؟ نه واقعا چرا؟؟؟عیب نداره یادشون رفته اون آلرت ها رو حذف کنن.بیایم تیک قوانین رو بزنیم و نوع ثبت نام رو هم مشخص کنیم.حالا دوباره روی کلید &quot;ایجاد یک حساب کاربری&quot; میزنیم و....بعله اینجوریاس....قطار کلماته که سمت من کاربر سرازیر میشه.طراحی وب سایت یک اصولی داره که هیچکدومشون توی چنین وب سایتی لحاظ نشده. بریم یکم دقیق تر به ماجرا نگاه کنیم. همونجور که در نگاه اول دیدیم صفحه ظاهر شیک و خوبی داشت. اما جلوتر که رفتیم فاز طراح وبش مشخص نبود.اول اینکه آقا تکلیف ما رو مشخص کن میخوای Alert نشون بدی؟ میخوای Toast نشون بدی یا validation summery؟ کدومش؟وقتی داری validation summery میذاری پس اون زیر فیلدها دوباره نشون دادن چیه؟ وات د فاز؟!!ماجرای آفتاب پرست بودن وب سایت اینجا مطرح میشه که وب سایتی به اون شکل و شمایل خوشگل یهو گلبهی میشه!!(با تشکر از همکار عزیز در تشخیص رنگ?)ببینید گلهبی شدن وب سایت برای اینکه به مخاطب نشون بدی کجاها رو پر کن خوبه اما نه تا این حد. بالا که قطار هشدارها ردیف شده زیر همه ی فیلدها هم که نوشته شده بعدم بیای قرمز کنی؟ چه خبره؟؟ چی میخوای آخه؟تمام بک گراند input ها که قرمز شده مشکلی که بوجود میاره اینه که من مخاطب دیگه اون هشدارهای قرمز زیر input  ها رو درست نمیبینم. بهتر بود دورشون قرمز بشه تا خودشون. رنگ قرمزیم که انتخاب شده برای بک گراند یجورایی با پس زمینه ست شده کلا دیده نمیشه دیگه.یکی از نکات اساسی که توی طراحی دیده نمیشه ماجرای لیبل هاست که با placeholder سرو تهش رو هم اوردن. مثلا میخواستن که فضای کمتری بگیره اما این بخش رو دقت نکردن که پشتیبان سایت بیچاره میشه.چرا؟ فرض کنین مثلا به چنین حالتی بود میتونین بگین فیلد اول چیه؟ شماره پلاک ماشینه؟! لیبلی نداره که مشخص باشه؟ میتونیم بگیم خب کنارش زده نام خانوادگی پس حتما قبلی اسم بوده دیگه. اوکی قبول اما اینو چی میگین؟روبرویی زده تلفن ثابت اما قبلی چیه؟ آدرسه؟ که نوشته شده تهرا؟ آیکن که شبیه تلگرامه احتمالا آیدی تلگرام میخواد. اما ماجرا این نیست این فیلد کدشهرستانه!!! توی عکس اولی میتونین ببینید چیه. پس لازمه که لیبل باشه کنار input ها.ماجرای بعدی ایکن هاست. همونطور که نمونه ای رو بالا دیدیم آیکن تلگرام برای کدشهرستان قرار داده شده.یا برای کدملی از آیکن کارت اعتباری استفاده شده!!!!کنار آدرس پستی آیکن صفحه کلید هستش که هرکسی در دنیای مجازی میدونه چنین ایکنی رو که میبینه وقتی روش کلیک میشه براش صفحه کلید مجازی باز میشه اما اینجا آیکن آدرسه!!و کد پستی که باز آیکن تلگرامه. میشد یک نامه باشه اما نامه رو کجا گذاشتن؟ اینجااینجا همه چی در همه?یه چیزیم اون وقت هست که دیده نمیشه گفتم اونم ببینید.زیر &quot;لطفا کدپستی را وارد کنید&quot; یه چیزی نوشته شده شما میتونید بخونین؟?از اینها که بگذریم میرسیم به دو دکمه بالای صفحه:این دوتا دکمه اصلا با بقیه فرم ها مچ نیستن. چه شکل ظاهری و چه شیوه انتخاب کردنشون. یه نقطه ی کوچولو وسط این دکمه قرار گرفته که نشون بده مثلا این انتخاب شده!!!فاجعه اینجاست:حاجیییییییی چی داری میگی؟ کجایی حرف میزنی اصا؟ مرضی الطرفین یعنی چی؟!!!!من البته میذارمش پای اینکه کسی که نوشته زبونش میگرفته و چنین متنی رو گفته چون توی دکمه هم نوشته &quot;ایجاد یک حساب کابری&quot; ?ولی خدایی چه پاراگراف سنگینی. فارسی سخت نوشته شده.و اما در مقابل این داریم:نه به مرضی الطرفینت نه به این پسرخاله شدنت!معمولا روال اینجوری هست که وب سایت نباید مخاطب خطاب کنه کاربرش رو و حس یکی بودن باید ایجاد کنه با کاربر که کاربر بهتر ارتباط برقرار کنه باهاش. توی یکی از نمونه ها همون قوانینش بود که نشونتون دادم.بخش بعدی بخش معرف هستش که نوشته:میشد فقط نوشت معرف. یجوری خودشو از کاربر نمیدونه این وب سایته و برتر میبینه. اینجا هم نمونه ی دیگه ای:کم مونده فحشم بده?اینا یه بخش کوچکی بودن از یک صفحه وب سایتی که امروز اتفاقی دیدم.نکاتی داشتین خوشحال میشم بشنوم.پ ن: طراح وب سایت از دوستان خوبمه و دشمنی و دوشواری نداریم با هم. فقط دوست داشتم بترکونمش?پ ن 2: متاسفانه نمیشد آدرس بدم که برین ببینید ولی توی یکی از عکس ها تابلوهه کجاست این وب سایته!</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Thu, 27 Aug 2020 12:33:12 +0430</pubDate>
            </item>
                    <item>
                <title>تغییر نام و پسوند عکس های خراب</title>
                <link>https://virgool.io/@mrjahanbin/%D8%AA%D8%BA%DB%8C%DB%8C%D8%B1-%D9%86%D8%A7%D9%85-%D9%88-%D9%BE%D8%B3%D9%88%D9%86%D8%AF-%D8%B9%DA%A9%D8%B3-%D9%87%D8%A7%DB%8C-%D8%AE%D8%B1%D8%A7%D8%A8-nzvsoghjtsjs</link>
                <description>مدتی بود گوشه ذهنم بود این مطلب رو اماده کنم امروز به امید خدا تونستم. بذارین اول مسئله رو با هم ببینیم. حتما برای خیلیاتون پیش امده که عکسهایی که میگیرن به این شکل بشن:تعمیر عکسهای خراب شما در سه سوتپیش امده نه؟خب اما چگونه پسوند چند فایل رو باهم عوض کنیم ؟راه حل خیلی سخت نیست خیلی هم جالبه: 1- اول برین توی پوشه ای که عکس هاتون توش قرار داره مثلا توی عکس :G:\Pic\Pic\Camera\New folderهستش.2- بعد cmd رو باز کنید. با استفاده از دکمه ویندوز و R و نوشتن CMD اونجا و اینتر کردن3- حالا صفحه ی زشت و سیاه CMD براتون باز میشه4- مسیر عکس هاتونو بدین به CMD چجوری؟ اینجوری اینجوری :)دادن مسیر عکس به cmdcd G:\Pic\Pic\Camera\New folderالبته شما مسیر ادرستون رو خودتون بدین نه مال منو ( بخدا آدم گیج زیاده مجبورم اینجوری بنویسم که یادشون بیوفته.پوزش از دوستان اهل مطالعه و غیر گیج)5- وقتی رفتین توی پوشه اش در cmd که اینجوری میشه :حالا باید کد جادویی رو بذاریم :این کد میاد و یه حلقه درست میکنه از 1 تا 50 (عددشو خودتون کم و زیاد کنین) و شروع میکنه پسوند عکسها رو عوض میکنه. مثلا مال من عکسم اسمش 201901~1 (1).J00هستش. و باید تعویض بشه به 201901~1 (1).JPGچون ممکنه توی این تعویض پسوند اسم ها مشابه هم بشن من امدم و اسم عکس رو هم عوض کردم :hope%x.jpgاینجوری که نوشتم X% کاری که انجام میده اینه که متغییر X رو بعد از اسم عکس میذاره که HOPE هستش و براتون شروع میکنه به ساختن اسم های اینجوریhope1hope2....خلاصه اینکه همین عکسهاتون رو درست کنین.</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Thu, 27 Feb 2020 13:18:41 +0330</pubDate>
            </item>
                    <item>
                <title>رفتم به باغ کاکا</title>
                <link>https://virgool.io/@mrjahanbin/%D8%B1%D9%81%D8%AA%D9%85-%D8%A8%D9%87-%D8%A8%D8%A7%D8%BA-%DA%A9%D8%A7%DA%A9%D8%A7-adii6cewhbpj</link>
                <description>هوشنگ_مرادی_کرمانی داستانی را با این مضمون شروع کرده# :صدای سرفه ای از تو دالان خانه می آمد. طوطی از پله ها آمد پایین. اتاق ها، پنجره ها را نگاه کرد. دوید و رفت تو اتاقش. داشت چادرش را می انداخت روی چوب رختی که صدای رمضان آمد. #طوطی چادرش را انداخت سرش.، به #دلنشین نگاه کرد که خواب بود. آمد بیرون. صدا از اتاق منصور می آمد. پرید و آمد پشت در منصور روی پله ی بالایی نشست. گوشش را چرخاند طرف اتاق. رمضان ضجه می زد : &quot;#منصور خان ، نوکرتم، غلامتم.ذلیلتم، علیلتم. پایت را می بوسم. دست از سر طوطی وردار.&quot;طوطی از لای در نگاه کرد. رمضان اتفاده بود به پای منصور.منصور زیر بغلش را گرفته بود. زور میزد که بلندش کند، نمیتوانست. #رمضان گنده بود و توپر. دست های منصور را گرفته بود. می بوسید و می لیسید و زنم ،زنم می گفت. می زد تو سر و صورتش : &quot;بخاطربچه ام، بخاطر دلنشین، دست از طوطی بکش.&quot;&quot;نکن عزیز من ، چه شده،آرام باش. فکر همسایه ها را بکن، یواش تر. نزن خودت را نزن.&quot;&quot;خودم دیدم امده بود پیش شما.&quot;ادامه داستان را شما بنویسید. همین حالا شروع کن....https://www.instagram.com/p/B7ND7hpJXSx/?utm_source=ig_web_copy_link#داستان#روایت#قصه#معرفی_نویسنده#داستان_نویسی#داستان_کوتاه#کتابگردی#داستان_شب#داستانهای_کوتاه#داستان_نویس#داستان_نویسی_اشتراکی#چهل_سرو#40sero</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Sun, 12 Jan 2020 06:45:04 +0330</pubDate>
            </item>
                    <item>
                <title>داستان نویسی اشتراکی چیست؟</title>
                <link>https://virgool.io/@mrjahanbin/%D8%AF%D8%A7%D8%B3%D8%AA%D8%A7%D9%86-%D9%86%D9%88%DB%8C%D8%B3%DB%8C-%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%DA%A9%DB%8C-%DA%86%DB%8C%D8%B3%D8%AA-qewepgj4c8zb</link>
                <description>داستان_نویسی_اشتراکیداستان نویسی اشتراکی/گروهی یکی از شیوه های پرطرفدار داستان نویسی در دنیا محسوب میشود، بدین ترتیب که تعدادی افراد با مشارکت هم یک داستان را از ابتدا تا انتها با رعایت قوانینی نگارش میکنند. هرشخص یک پاراگراف از داستان را نوشته و ادامه می دهد مثال:نفر اول : خسته و کوفته وارد خونه شدم و دیدم پنجره ی رونفر دوم : خسته و کوفته وارد خونه شدم و دیدم پنجره ی رو به کوچه باز هست، با همون حالت خسته کنجکاو شدمنفر سوم : خسته و کوفته وارد خونه شدم و دیدم پنجره رو به کوچه باز هست با همون حالت خسته کنجکاو شدم که از پنجره بیرون رو ببینم و درست وقتی بهنوشتن همیشه تجربه ی لذت بخشی بوده. بخصوص وقتی آرزوها و رویاهایمان را درقالب یک داستان کوتاه و جذاب بازگو میکنیم، ذهنمان پرو بال در می آورد و در سرزمین خیر و شر تبدیل به قهرمانی می شویم که دنیا بی ما فنا خواهد بود.بیایید قله های خیال پردازی را در کنار هم فتح کنیم.اگر دست به قلم خوبی دارید، پس جای شما در تیم ما خالیستروال کار ما : ما یک دورهمی داستان نویسی راه انداخته ایم. شما بخشی از داستانی که خودتان نوشته اید را برای ما میفرستید و ما با ذکر اسم و عکس شما در پیج قرار میدهیم. اعضای دیگر پیج داستان شما را خوانده و با توجه به سلیقه خود داستان را ادامه می دهند. برنده کسی است که بیشترین لایک را گرفته باشد.برای شرکت در داستان نویسی اشتراکی به لینک زیر سر بزنیدhttps://www.instagram.com/40sero/#داستان_ایرانی #معرفی_نویسنده #داستان_نویسی #مطالعه_کنیم #داستان_کوتاه #کتابگردی #داستان_شب #داستانهای #داستانهای_کوتاه #داستانهای_واقعی #داستانک #داستان_آموزنده #داستان_ما #داستانک #داستان_جذاب #داستانی #داستان_فارسی #داستان_نویس #داستان_گویی #داستان_من #داستانکوتاه #داستان_خوب #داستان_نویسی_اشتراکی</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Mon, 06 Jan 2020 10:03:15 +0330</pubDate>
            </item>
                    <item>
                <title>هم تیمی های فامیل شده</title>
                <link>https://virgool.io/@mrjahanbin/%D9%87%D9%85-%D8%AA%DB%8C%D9%85%DB%8C-%D9%87%D8%A7%DB%8C-%D9%81%D8%A7%D9%85%DB%8C%D9%84-%D8%B4%D8%AF%D9%87-gjttae8oxiyu</link>
                <description>دیروز یه کشف جدیدی کردم!من و اصغر وجمشید و پدرام و بهادر دوستیم و از بچگی باهم بزرگ شدیم.کلی توی کوچه ها بازی میکردیم و تو سر و کول هم میزدیم. مدرسه که میرفتیم همیشه یکیمون باید خوراکی میخرید برای بقیه و این بصورت چرحشی میچرخید.بزرگتر که شدیم و به دبیرستان که رسیدیم محمود و عابد و موسی هم به جمع ما اضافه شدن و ما شدیم تیم فوتبال محله. روزهای خوبی رو میگذروندیم و همیشه خوشی و غم باهم بودیم.بزرگتر که شدیم عابد با خواهر من ازدواج کرد ،  اصغر با خواهر عابد ، پدرام با خواهر موسی و جمشید با خواهر بهادر.سر محمود موند بی کلاه! بهش هی میگفتم دست بجونبونه اما عین خیالش نبود که نبود.خلاصه تیم فوتبال محله ی ما تبدیل شدن به یک خانواده ی بزرگ. سالها گذشت و  هر کدوم از هم تیمی ها برای خودشون کس و کاری شدن.عابد فرماندار شد،اصغر شهردار،پدرام فرمانده پلیس آگاهی، جمشید معلم،بهادر تاجر،محمود لباس فروش شد و موسی هم ریاست بانک مرکزی. من تنها موندم که کاره ای نشدم و رفتم خارج از کشور.بعد مدتی که برای عقده گشایی و تازه کردن دید و بازدید به کشور برگشتم همه دوستا رو جمع کردم تا یک پروژه ی بزرگ توی شهرمون راه بندازم.با موسی که موضوع پروژه رو مطرح کردم گفت که من مشکل مالیت رو حل میکنم اما باید جاهم داشته باشی. برای همین ارجاعم داد به اصغر. اصغر گفت از طرف من اووووووووکییییییه ولی پدرامم باید تایید کنه.پدرام گفت نمیشه عابد قانون گذاشته که اینکار رو انجام ندیم.ولی رگ خواب عابد توی دست بهادره.رفتم دنبال بهادر. لابد میپرسین چرا به خود عابد نگفتم. راستش چندباری درخواست ملاقات دادم بهش اما وقتش پر بود. بهادر گفت که بابا عابد چرت و پرت زیاد میگه ولش کن تو برو کارت رو راه بنداز 70درصد کارت هم به اسم من میزنی. با کلی چونه زدن 70 رو کردم 40 درصد.تاییدیه رو از بهادر گرفتم و رفتم پیش پدرام و اونم اوکی کرد و رفتم پیش موسی. موسی 2 میلیارد رو برامون 20 میلیارد کرد و 12 میلیاردش رو خودش برداشت و 6 میلیارد رو گفت بدم به اصغر و زمین بگیرم. گفتم این کار جرم نیست؟ پدرام بفهمه بیچاره میشیم. گفت پدرام و عابد زمان بچگی هم عددی نبودن که الان باشن. بخوان حرفی بزنن تمام گندکاریاشونو رو میکنم. گفتمش یعنی چه؟ ماها دوستیم این حرفا درست نیست.خندید گفت اره نگران نباش.6 میلیارد رو بردم پیش اصغر و 20 هکتار زمین خواستم. گفت افرین به موسی که شیرینی منم فرستاده من 40 هکتار زمین میزنم 20 تاش برای من باقیش برای تو. گفتم اینکار جرم نیست؟ گفت جرم؟ من خودم قانونم داداش جرم چیه. گفتم عابد و پدرام اگه بفهمن چی؟ گفت اونا خودشون خیلی خوردن ازینا. بعدم قانونو مگه کی نوشته؟ ما هم تیمی ها باهم نوشتیم. حالا یه موقعی یه چرت و پرتی یکیمون گفته دیگه اونو که برای خودمون نبوده. اونا مال مردمه.خلاصه با تمام این ماجراها ما شروع کردیم به کارهای اولیه ی پروژه. همون اولهای کار دیدم یه عده ای امدن اعتراض کردن. جلو که رفتم جمشید و محمود رو شناختم. لیدر معترضان بودن. ماجرا رو برام تعریف کردن که این زمین ها رو بزور از چنگ مردم در اوردن و دادن به اصغر. تعجب کردم و گفتم چشم من پیگیری میکنم. از اصغر که پرسیدم خنده ی بلندی کرد گفت جمشید و محمود؟ دوتا گوجه پلاسیده چه میفهمن که امدن واسه من اعتراضات راه انداختن. الان درستش میکنم. زنگ زد به پدرام.من رفتم خونه که خبر رسید جمشید تیر خورده و فوت شده و محمود هم بازداشت شده به جرم اختلاس. با پدرام تماس گرفتم که ماجرا چی بوده اینا که دوستامون بودن. گفت دوستی کدومه بابا مشتی دزد و  فاسد بودن کلی زمین و پول سر همین پروژه ی تو بالا کشیدن. بعد گفتن عابد بوده. ادم فاسد رو باید کشت. یکیشونو کشتیم حالا نوبت دومیه تا درس عبرت بشه برای بقیه. گفتم اخه به چه جرمی؟ شما خودتون که اینکارا رو کردین بعد دوتا بیگناه رو میخواین بکشین؟ عصبانی شد گفت حرف اضافی بزنی توهم به عنوان شریکشون میکنم تو زندون.اونجا بود که فهمیدم پول چیکار که نمیکنه. فهمیدم چرا بعضیا هرچی میدزدن و هرچی میخورن و هرچی میکشن و هرچی اعتراض میشنون عین خیالشون نیست و هنوز که هنوزه توی چشمت نگاه میکنن و دروغ میگن.قانون رو خودشون نوشتن. مثل دوران بچگی که میگفتیم عابد گفته امروز بازی نکنیم و بقیه میگفتن عابد شکر خورده و میرفتن بازی میکردن، الانم همینجوره. وقتی عابد گفته این گناهه و خلافه و جرمه، تیم ما که میدونست که واقعیت نداره و عابد گفته اینا رو سر همین عین خیالشون نیست که کسی کشته بشه یا کسی بدبخت بشه. چون باورشون شده بود که این حرف عابده و چرت و پرت گفته عابد!منم مجبورم سکوت کنم و چیزی نگم هرجور باشه عابد دامادمونه!</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Wed, 01 Jan 2020 11:47:30 +0330</pubDate>
            </item>
                    <item>
                <title>استفاده از چارت در پلیمر!</title>
                <link>https://virgool.io/@mrjahanbin/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%DA%86%D8%A7%D8%B1%D8%AA-%D8%AF%D8%B1-%D9%BE%D9%84%DB%8C%D9%85%D8%B1-p9d3jufpqcja</link>
                <description>امروز مشغول یکی از چارتهای شرکت بودم که گفتم کدش رو با بقیه اشتراک بذارم.کاری که قراره توی این صفحه انجام داده بشه اینه که میزان تولید توی شرکتی خاص رو در تاریخ های معین استخراج کنه و بصورت چارت نمایش بده.بریم اول کدهای چارت رو ببینیمvar color = Chart.helpers.color;
                 = function () {
                };
                $.ajax({
                    url: &amp;quot/MorrisReport&amp;quot,
                    type: &amp;quotPOST&amp;quot,
                    dataType: &amp;quotjson&amp;quot,
                    data: Search()
                }).done(function (y) {
                    var config = {
                        type: &#039;line&#039;,
                        data: y
                        //{
                        //    labels: [
                        //        &#039;فروردین&#039;,
                        //        &#039;اردیبهشت&#039;,
                        //        &#039;خرداد&#039;,
                        //        &#039;تیر&#039;,
                        //        &#039;مرداد&#039;,
                        //        &#039;شهریور&#039;,
                        //        &#039;مهر&#039;,
                        //        &#039;آبان&#039;,
                        //        &#039;آذر&#039;,
                        //        &#039;دی&#039;,
                        //        &#039;بهمن&#039;,
                        //        &#039;اسفند&#039;
                        //    ],
                        //    datasets: [
                        //        {
                        //            label: &#039;نامه های ارسالی&#039;,
                        //            backgroundColor: color(window.chartColors.darkred).alpha(0.5).rgbString(),
                        //            borderColor: window.chartColors.red,
                        //            fill: false,
                        //            data: y.Sender
                        //        },
                        //        {
                        //            label: &#039;نامه های دریافتی&#039;,
                        //            backgroundColor: color(window.chartColors.blue).alpha(0.5).rgbString(),
                        //            borderColor: window.chartColors.green,
                        //            fill: false,
                        //            data: y.Reciver
                        //        }
                        //    ]
                        //}
                        ,
                        options: {
                            responsive: true,
                            title: {
                                display: true,
                                text: &#039;گزارش کلی&#039;
                            },
                            scales: {
                                xAxes: [{
                                    display: true,
                                    scaleLabel: {
                                        display: true,
                                        labelString: &#039;روز ها&#039;
                                    },
                                    ticks: {
                                        major: {
                                            fontStyle: &#039;bold&#039;,
                                            fontColor: &#039;#FF0000&#039;
                                        }
                                    }
                                }],
                                yAxes: [{
                                    display: true,
                                    scaleLabel: {
                                        display: true,
                                        labelString: &#039;میزان&#039;
                                    }
                                }]
                            }
                        }
                    };
                    var ctx = document.getElementById(&#039;chartline&#039;).getContext(&#039;2d&#039;);
                    window.myLine = new Chart(ctx, config);
                });کد HTML اون به شکل زیره :&lt;div class=&amp;quotrow&amp;quot&gt;
    &lt;div class=&amp;quotcol-lg-12 col-md-12 col-sm-12 col-xs-12&amp;quot&gt;
        &lt;div class=&amp;quotrow&amp;quot&gt;
            &lt;div class=&amp;quotcol-xs-12&amp;quot&gt;
                &lt;div class=&amp;quotdashboard-box&amp;quot&gt;
                    &lt;div class=&amp;quotbox-tabbs&amp;quot&gt;
                        &lt;div class=&amp;quottabbable&amp;quot&gt;
                            &lt;div class=&amp;quottab-content tabs-flat no-padding&amp;quot&gt;
                                &lt;div id=&amp;quotrealtime&amp;quot class=&amp;quottab-pane active padding-5 animated fadeInUp&amp;quot&gt;
                                    &lt;div class=&amp;quotrow&amp;quot&gt;
                                        &lt;div class=&amp;quotcol-lg-12&amp;quot&gt;
                                            &lt;div id=&amp;quotmychartline&amp;quot&gt;
                                                &lt;canvas id=&amp;quotchartline&amp;quot width=&amp;quot1100&amp;quot height=&amp;quot250&amp;quot&gt;&lt;/canvas&gt;
                                            &lt;/div&gt;
                                        &lt;/div&gt;
                                    &lt;/div&gt;
                                &lt;/div&gt;
                            &lt;/div&gt;
                        &lt;/div&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


&lt;script src=&amp;quot~/Scripts/Chart.bundle.js&amp;quot&gt;
&lt;script src=&amp;quot~/Scripts/utils.js&amp;quot&gt;به اون دایو های زیاد توجه نکنین اونا فیکن :)توی سی شارپش هم بصورت زیره: اول کنترلش[HttpPost]
        public JsonResult MorrisReport(_ListNamayeshNemodarGozareshTolidVM model)
        {
            try
            {
                var result = _RyfanBLL.GetReportByCodeKala(model);
                return Json(result);
            }
            catch (Exception ex)
            {

                throw;
            }
        }  و اما کد پشت اون GetReportByCodeKala :public ChartJsReportJSVM GetReportByCodeKala(_ListNamayeshNemodarGozareshTolidVM model)
        {
            try
            {
                using ( db = new //DBNAME())
                {
                    // var ProductNo = string.Join(&amp;quot,&amp;quot, model.ProductNo);
                    var ProductNo = &amp;quot&quot;

                    Guid IdCompanyName = Guid.Parse(model.IdCompanyToAnbarRyfan);

                    string query = $&amp;quot//کد استوری که برای دریافت داده ها مورد استفاده شده بود&#039;&quot;
                    var res = db.Database.SqlQuery&lt;string&gt;(query).ToList();

                    List&lt;ResultGetReportByCodeKalaWithJsonChart&gt; result = new List&lt;ResultGetReportByCodeKalaWithJsonChart&gt;();
                    foreach (var item in res)
                    {
                        result.Add(new ResultGetReportByCodeKalaWithJsonChart() { Kala = JsonConvert.DeserializeObject&lt;List&lt;JsonChartReport&gt;&gt;(item) });
                    }

                    List&lt;string&gt; labels = new List&lt;string&gt;();
                    foreach (var Kalas in result)
                    {
                        foreach (var item in Kalas.Kala)
                        {
                            var ltemp = labels.Where(o =&gt; o.Contains(item.ProductionDate)).FirstOrDefault();
                            if (ltemp == null)
                            {
                                labels.Add(item.ProductionDate);
                            }
                        }
                    }
                    List&lt;datasets&gt; datasets = new List&lt;datasets&gt;();

                    int i = 0;
                    int max = 0;

                    Random rand = new Random(DateTime.Now.Ticks.GetHashCode());
                    foreach (var date in labels)
                    {
                        foreach (var Kalas in result)
                        {
                            if (i &gt;= Kalas.Kala.Count)
                            {
                                max = Kalas.Kala.Count;
                                i = 0;
                            }
                            var KalaIsInDate = Kalas.Kala.Where(x =&gt; x.ProductionDate.Contains(date) &amp;&amp; x.ProductName == Kalas.Kala[i]?.ProductName).FirstOrDefault();
                            if (KalaIsInDate != null)
                            {
                                var temp = datasets.Where(x =&gt; x.label.Contains(KalaIsInDate.ProductName)).FirstOrDefault();
                                if (temp != null)
                                {
                                    temp.data.Add(Convert.ToInt32(KalaIsInDate.Amount));
                                }
                                else
                                {
                                    datasets.Add(new datasets()
                                    {
                                        data = new List&lt;int&gt;() { Convert.ToInt32(KalaIsInDate.Amount) },
                                        label = Kalas.Kala[i].ProductName,
                                        backgroundColor = getRandomColor(rand),
                                        borderColor = getRandomColor(rand),
                                        fill = false
                                    });
                                }
                            }
                            else
                            {
                                var temp = datasets.Where(x =&gt; x.label.Contains(Kalas.Kala[i]?.ProductName)).FirstOrDefault();
                                if (temp != null)
                                {
                                    temp.data.Add(0);
                                }
                                else
                                {
                                    datasets.Add(new datasets()
                                    {
                                        data = new List&lt;int&gt;() { 0 },
                                        label = Kalas.Kala[i].ProductName,
                                        backgroundColor = getRandomColor(rand),
                                        borderColor = getRandomColor(rand),
                                        fill = false
                                    });
                                }
                            }
                            i++;
                        }
                    }
            
                    ChartJsReportJSVM ss = new ChartJsReportJSVM()
                    {
                        labels = labels,
                        datasets = datasets
                    };
                    return ss;
                }
            }
            catch (Exception e)
            {
                return new ChartJsReportJSVM();
            }
        }


        private string getRandomColor(Random rand)
        {
            // Random rand = new Random(DateTime.Now.Millisecond);
            // return $&amp;quot#{rand.Next(0, 9)}{rand.Next(0, 9)}{rand.Next(0, 9)}{rand.Next(0, 9)}{rand.Next(0, 9)}{rand.Next(0, 9)}&quot;

            System.Drawing.Color randomColor = System.Drawing.Color.FromArgb(rand.Next(256), rand.Next(256), rand.Next(256));
            return &amp;quot#&amp;quot + randomColor.R.ToString(&amp;quotX2&amp;quot) + randomColor.G.ToString(&amp;quotX2&amp;quot) + randomColor.B.ToString(&amp;quotX2&amp;quot);


            //var colorList = Enum.GetValues(typeof(KnownColor)).Cast&lt;KnownColor&gt;().ToList();
            //var colorName = colorList[rand.Next(0, colorList.Count())];
            //var value = System.Drawing.Color.FromName(colorName.ToString()).ToArgb();
            //return string.Format(&amp;quot#{0:x6}&amp;quot, value);

        }تموم شد.این نکته رو بگم که کدها برای نمونه هستن و مسلما بهتون جواب نمیدن چون باید تغییراتی توشون بدین مثل آدرس دیتابیس یا آدرس URL ها.این نوع نوشته های من دوتا جنبه رو دنبال میکنه.دوستان با کدهای توی سازمانها آشنا بشن. و اگر دوستی کدبهینه تر داشت مطرح کنه. البته یه جنبه دیگه جا افتاد، بچه های تازه وارد توی شرکت ما بتونن از این کدها استفاده کنن و بدونن مثلا برای زدن چارت چکار باید کنند.</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Mon, 30 Dec 2019 13:11:56 +0330</pubDate>
            </item>
                    <item>
                <title>وقتی ذهن یک برنامه نویس درگیره</title>
                <link>https://virgool.io/fboard/%D9%88%D9%82%D8%AA%DB%8C-%D8%B0%D9%87%D9%86-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-%D8%AF%D8%B1%DA%AF%DB%8C%D8%B1%D9%87-rt4d1amz4awh</link>
                <description>امشبم ازون شبهاست که دوست دارم یکمی خودمونی تر بنویسم. حس میکنم یه درد مشترکه و خیلی هامون گرفتارشیم. چی؟ الان عرض میکنم بهتون.توی زمینه های دیگه نمیدونم اما به عنوان یه برنامه نویس خیلیا رو میبینم که امدن توی زمینه ی ما کار کردن. خیلیاشون موفق بودن، خیلیاشونم بازار خرابکن. خیلیاهم بعد مدتی از اینکه این همه انرژی فکری و روحی باید بذاری تا برسی به اون هدف نهاییت که محصول ممتاز هستش خسته میشن و ول میکنن میرن پی کار قبلیشون.این وسط ماها میمونیم که رشتمون و کارمون برنامه نویسی بوده. خب حق دارن اونا و توی همه ی زمینه ها چنین مشکلی هست.ماها میمونیم. اما ذهنمون نمیمونه. ذهنمون از یه مدت به بعد خسته میشه. گاهی شده میگیم به خودمون که چرا انقدر وقتمونو الکی تلف میکنیم با مدیرهای خنگ و نافهم و بی سواد و مشتری های نادان و ناآگاه. عوضش 4 تا کلیپ اینستاگرامی درست میکردیم الان میلیاردر بودیم. شده حتی فکر اینو کردیم که مثلا از php بریم سمت .net بازار خوبی داره یا اصلا وب رو ول کنیم و بریم سمت موبایل.این وسط فکرهای دیگه ای هم قلقکمون میده...مهاجرت. &quot; بابا موندی اینجا سگ دو میزنی که چی؟ این مملکت درست بشو نی. هرجور شده جمع کن برو اونور لااقل 1 دلار در بیاری معادل 13 تومن الانه . گدایی کنی اونجا از کار توی این مملکت شرفش بیشتره. (نه دیگه اونکار رو نکن و برای خودت احترام قائل باش و خودتو انقدر پایین نیار :)) )&quot;این حرفا رو فکر کنم خیلیاتون شنیدین و توی ذهن خیلیاتون داره میگرده. داستان زندگی خیلیامون شده این موضوع. خلاصه شدیم توی 3 کلمه : موندن ، تغییر دادن یا مهاجرت!</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Sun, 29 Dec 2019 00:20:28 +0330</pubDate>
            </item>
                    <item>
                <title>دلنوشته ی یک برنامه نویس</title>
                <link>https://virgool.io/fboard/%D8%AF%D9%84%D9%86%D9%88%D8%B4%D8%AA%D9%87-%DB%8C-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3-sjmovm7tkqdb</link>
                <description>دوست دارم این سری یه دل نوشت بنویسم و شما هم هرچی دوست دارین بگین. مثل روزهای قدیم وبلاگنویسی که انجام میدادم. خیلی روزهای جالب و جذابی بود واسم. اینکه جایی هست که مینویسم. نوشتن همیشه برام جذاب بوده و ارامش دهنده. یادمه قدما یه دفتر داشتم همیشه زیر سرم بود موقع خواب و وقتی افکاری به ذهنم میرسید سریع درش میووردم و با خودکاری که توش جاساز کرده بودم توی تاریکی شروع میکردم به نوشتن اون مطلب. گاهی شعر بود که توی ذهنم چرخ میزد ، گاهی یه ایده بود، گاهی یه مطلب یا موضوع که در موردش بخوام بنویسم. قضیه ی گذاشتن دفتر زیر سرمم موقع خوابم به این برمیگشت که شبها یکی دوساعتی خوابم نمیبرد و فکر میکردم. البته ناگفته نماند گاهی شعری یا مطلبی تو خواب میدیدم و از اونجایی که حافظه ی ماهی بادکنکی دارم و یادم میرن خوابهام بعد از یک ثانیه که از خواب بیدار میشم، تصمیم بر این گرفتم که دفتر بذارم و شعر و مطالبی که تو خواب میبینم رو بنویسم. ( اینکار باعث شد جایزه ی استانی داستان نویسی رو بگیرم!)اون زمانها دغدغه ای نداشتیم. لااقل در این حدی که الان داریم. دلمون خوش بود و لبمون خندون.کوچیک بودیم دیگه یاد نگرفته بودیم بزرگونه نگاه کنیم به دنیا. با 5 هزارتومن یک ماه میگذرونیدم و احساس بزرگ بودن میکردیم. بازار برو، کتابفروشی برو، مدرسه برو، کارت اینترنت و شارژ موبایل بخر و... . چقدر دعوا داشتیم سر اینترنت. هنوز جا نیفتاده بود واسه خونوادم که ADSL دیگه پولش روی خط تلفن نمیاد.  شبها بدور از چشم بقیه باید میرفتیم سیستم رو روشن میکردیم وصل میکردیم به مودم. یه پتو یا ملحفه میووردیم میذاشتیم دور مانیتور تا نورش نره بیرون و بعد پیش به سوی بهشت آزادی! تنها مشکل صدای قیژ قیژ خوشگل مودم بود که دلم براش تنگ شده اما اون زمان مجبور بودم صدای مودم رو ببندم که کسی بیدارنشه.یشب یادمه وقتی نشستم پای سیستم و منتظر بودم وصل بشه به نت صدای یه خانومی امد. فکر کردم مامانم بیدار شده. نگاه کردم دیدم نه خبری نیست اما خانومه صداش میومد اروم حرف میزد. اینور بگرد اونور بگرد .حالا ماجرا چی بود؟ شماره تلفن خطی که باهاش به اینترنت وصل میشدیم که روی کارت اینترنته نوشته شده بود عوض شده بود و اون خانومه صداش از توی مودم داشت در میومد که شماره مورد نظر اشتباهه! اولین بار بود که فهمیدم ااااااااااا..بغیر از قیژ قیژ کردن صدای دیگه هم میده مودم!روزگارمون با این چیزها پر میشد. یه فتوشاپ بود که در این حد ازش کار میکشیدیم و عکس میساختیم و با یولید مدیا استودیو کلیپ تولید میکردیم که هفته ای یه آلبوم تصویری ازمون بیرون میومد! البته تو خونه میومد. تازه یاد گرفته بودم که برم توی سورس هاشم دستکاری کنم و فارسیش میکردم یا آیکن هاشو عوض میکردم و اسم خودمو اضاف میکردم به عنوان یکی از اعضای تیم آدوب :)یه وبلاگ بود که تمام زندگیم شده بود یه مدتی. از همه چیز توش مینوشتم. از گرونی،انتخابات، همکارا،دلنوشته، شعرهام و داستان هام.خاطرات سرکار رفتنم و...حتی عاشق شدنم. اما خب بلاگفا زد و یه سریشونو با بک اپ نگرفتن از اطلاعاتش نابود کرد و بعد هم که خدمت سربازی نذاشت مرتب بنویسم توش. یکی از بهترین روزهای زندگیم زمانی بود که فهمیدم نه 20 نفر خواننده نداره وبلاگم و خیلی بازدید کننده داره که اصلا خبرنداشتم ازشون. دوستان دوران وبلاگنویسی جزء بهترین دوستام بودن.ساده و شیرین.به حق نیست از دوران قدیم بگیم و عظمت اون دوران رو یادی نکنیم. یاهو مسنجر D:  هنوز گاهی که یادش میوفتم دلم براش تنگ میشه. لبخند شیرینی که با اتصالش بهت میزد و شکلک هایی که شورکاتشونو حفظ میکردیم سریعتر چت کنیم و به جرات میگم رو دستشون هنوز شکلک نیومده با تمام پیشرفت های مسنجرها. مخصوصا اونکه موها کلشو میکند جاش بشدت خالیه :))از همون یاهو مسنجر بود که راهی شدم به دنیای وب و وبنویسی رو شروع کردم و با دوستای مسنجری وبسایت بهترین موزیک رو ساختیم و با سرعت ذغالی اون زمان ما اهنگ دانلود میکردیم ، تگ هاشونو عوض میکردیم و دوباره اپلود میکردیم. یک شب کامل وقتتو میگرفت این پروسه وقتی میخواستی یه آلبوم آپلود کنی. ولی لذت اینکه تو اولین نفری که این البومو میذاری توی نت شیرین بود.از اونجا به بعد وارد دانشگاه شدم و بخاطر همین ماجراهای نتی شروع کردم سایت انجمن علمی دانشگاه رو گرفتن و دوره های آموزش برنامه نویسی رایگان توی دانشگاه برگزار کردن. خیلی تجربه ی خوبی بود چون دیدگاه بهت میداد که کاربر چیا نیاز داره و چطور فکر میکنه. یادمه ما تا یه لینک بزرگ قرمز رنگ و گنده نذاشتیم اول سایت که جزوه های استادا اینجان ، کاربرهای اون زمان نتونستن جزوه دانلود کنن.اون زمان یه ریسک کردم.یه بخش آزاد گذاشتم توی وبسایت که بچه ها بتونن هرکاری دوست دارن توش انجام بدن. استقبالی نشد. گفتم باشه و شروع کردم اولین تاپیکش رو خودم زدم. داستان نویسی اشتراکی. توضیح دادم که این یه داستان هستش و من یه بخشیش رو مینویسم و شماها بیاین ادامه بدین. بچه های دانشگاهی اون زمان که از کنارت رد میشدن و سلامتم نمیکردن(هنوزم نمیدونم چرا و چشون میشد!) یدفه شروع کردن نوشتن. ماجرا براشون جذاب شده بود و دوست داشتن این موضوع رو. بخشی از داستان رو من مینوشتم و اونا شروع میکردن ادامه میدادن و وقتی داستان تموم میشد به بهترین نمره میدادیم و مدال میگرفت.ها یه چیزی یادم امد. روزهای اول زدن سایت انجمن علمی دانشگاه از سایت استقبال نمیشد و کسی مشارکت نمیکرد. جلسه گرفتیم و تصمیم گرفتیم که کاربر فیک بسازیم و مطلب و پست بذاریم که نشون بدیم سایت شلوغه و همین کار رو کردیم و زمانی هم تعیین کردیم برای جلسه نتیجه ی این فعالیتمون.زمان جلسه بعدی که فرا رسید دیدیم یکی از بچه ها یکم گرفته س و اون یکی بهش گیر میده خو بگو. خلاصه با هزار زر و زور حرفشو زد....عاشق شده بود! عاشق یکی از کاربرهای سایت به اسم ستاره که از قضا کاربر فیک من بود و خبر نداشت :)))) اون زمان لو ندادم اما الان میگم واستون که این ستاره خانوم نمیدونم عکسش جذاب بود یا نوع نوشتنم توی وب سایت ( اخه اون زمان روی سبک نوشتن داشتم تخصصی کار میکردم و زمانی که با عنوان ستاره مثلا 20 ساله پست میذاشتم با حال و هوای فکری و ذهنی اون مطلب مینوشتم وجواب میدادم.) که 3 تا از بچه ها روش کرش داشتن.D: یروز این دوست عاشق ما توی یکی از پیک نیک های دانشگاهی شروع کرد رفت بالا منبر و از عاشق شدن و راههای جلب توجه و چطور دل یکی رو بدست بیاریم و... صحبت نکن کی بکن. کلیم تعریف میداد از خودش که فلانم و بهمانم و بلدم و بلدم و بلدم. وسط حرفاش که همه جذبش شده بودن خندیدم. گفت چرا میخندی؟ گفتم والا به این میخندم که شما همونی هستی که عاشق ستاره شدی توی سایت که کاربر فیک من بود خودتم هنوز خبرنداری و داری نصیحتم میکنی بقیه رو!کلا خوشم نمیاد از کسایی که فکر میکنن برترن از بقیه و یه زمانی بهشون نشون میدم که هیچی نیستن!(چقدر خشنم من :)) )اون زمان با تمام خوبی و خوشی و بدی و زشتی هاش گذشت و به الانی رسیدیم که دغدغه ی زندگی کردن دارم. تمام تجربه های قدیم رو جلو گذاشتم و مسیرهای مختلف میرم و میدونمم اشتباهه چند مسیر رو رفتن اما توی دنیای برنامه نویسی که ما توش افتادیم وقتی میگی بک اند هستی ازت فرانت و دیتابیس و سیس ادمین و کلی چیز میز دیگه هم میخوان و با حقوقی که بهت میدن نمیتونی یه ادامس بخری. مدتیه تو فکر دل کندن از شرکتی هستم که الان توش هستم.خیلی دوست داشتم و دارم شرکت خودم رو بزنم مثل قدیم ( ماجراشو براتون یبار مینویسیم اگه خدا بخواد) اما هنوز تیم مورد علاقمو پیدا نکردم که از دل و جون مایه بذارن. برای همین مجبور شدم روی ایده هام کار کنم. توی این مسیر باز نیرو میخوام و راهنمایی که باز سخت شده برام پیدا کردن افراد مورد نظرم. از طرفی مصادف شده با رفتنم از شرکت و مجبور بودن برای ارتقا فکری و مهارتی برای یه گام بالاتر. و هرچی جلو میرم میبینم هنوز اول راهم.  خدا بزرگه البته.پ ن : ازین نوع پست ها زیاد مینوشتم قبلا الان یه فرصت گیر امد دوباره بنویسم. شاید دوباره رمان نویسی و داستان نویسی رو هم شروع کردم خدا رو چه دیدیم. اگه خدابخواد بیشتر در مورد تجربه هام مینویسم .</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Wed, 25 Dec 2019 22:19:08 +0330</pubDate>
            </item>
                    <item>
                <title>بیایم خاله خرسه نباشیم</title>
                <link>https://virgool.io/@mrjahanbin/%D8%A8%DB%8C%D8%A7%DB%8C%D9%85-%D8%AE%D8%A7%D9%84%D9%87-%D8%AE%D8%B1%D8%B3%D9%87-%D9%86%D8%A8%D8%A7%D8%B4%DB%8C%D9%85-nrkbgu5fx6xq</link>
                <description>باعث افتخارمه که سالها درگیر آموزش بودم و شروع کردم به علاقمندان چیزهایی که بلد بودم رو توضیح دادم. مناسب دیدم امروز رو بعد از مدتها که دست به قلم نشدم موضوعی رو مطرح کنم که دغدغه ی فکری این روزهام شده.مدتیه که توی گروه های دوستانی عضوم که تازه میخوان برنامه نویسی یاد بگیرن و سوالاتی دارن در سطح خودشون. خیلی خوبه اما دوتا مسئله این وسط هست. یکی خواهش برای نوشتن کد براشون و دوم نوشتن کد و تحویل دادن به دوستان!اینکه ما کدنویسی کنیم و بدیم به دوستانی که نیاز دارن گاهی لازمه، چون تا نبینه یاد نمیگیره.اما تا زمین نخوره هم یاد نمیگیره. خیلی از تازه واردهای حوزه ی برنامه نویسی عادت کردن که فقط بخوان و یکی همیشه هست که بهشون کد رو بده. این ارائه کد اسمش دوستی خاله خرسه س. شاید نیت شما خیر بوده که میخواین یادش بدین که بتونه حرکت کنه اما تکرار این عمل برای هرکس تبدیلش میکنه به یکی که از ذهنش، سلاح یک برنامه نویس و دولوپر، استفاده نکنه و منتظر باشه یکی براش کد بزنه.شک نکن فرداشم وقتی دو نفر تحویلش گرفتن تو روت وای میسته که چیکار کردی مگه؟ هیچی بلد نبودی!مثالی که همیشه برای دوستان میزنم اینه که اینجور افراد فردا دکتر و مهندس مملکت خودمون میشن.دکتر و مهندس هایی که ادعا دارن که مدرک گرفتن و باید دولت بهشون کاری بده و هزاران فحش نثار دولت میکنن (این تیکه اخری رو موافقم :دی ). اما خواهر و برادر من شماها فنی ندارین که کسی استخدامتون کنه. فردا همین افراد میخوان خدایی نکرده و دور از جون پدر و مادر و حتی خودمون رو عمل کنن، دستگاههای بومی!!! همینا میخواد بهمون نشون بده کجامون مشکل داره. خودتون حاضرین واقعا؟بیایم خیانت نکنیم به خودمون و آینده ی مملکتمون و بچه هامون.راهنمایی کنیم اما دوستی خاله خرسه نکنیم. مهربون باشیم و کمک کنیم. همین. بذاریم ذهنشون جستجو کنه. خلاق باشه. ورز بیاد و قوی بشه. اونوقت با افتخار میتونی بگی اینو من کمکش کردم. انشاالله خداهم کمکش کنه.یادمون نره :پیشرفت دوستمون پیشرفت خودمونه. پیشرفت شهر و استان و کشور خودمونه. پیشرفت کشور یعنی جامعه ای فهیم. و جامعه ای که فهیم باشه توش زندگی لذت بخشه.بیایم از خودمون شروع کنیم !</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Fri, 13 Dec 2019 12:12:52 +0330</pubDate>
            </item>
                    <item>
                <title>تحلیل و طراحی سیستم ها – بخش نخست</title>
                <link>https://virgool.io/@mrjahanbin/%D8%AA%D8%AD%D9%84%DB%8C%D9%84-%D9%88-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%DB%8C%D8%B3%D8%AA%D9%85-%D9%87%D8%A7-%D8%A8%D8%AE%D8%B4-%D9%86%D8%AE%D8%B3%D8%AA-rrhw0xxaeeel</link>
                <description>تحلیل و طراحی سیستم ها (Systems Analysis and Design)ما در این نوشته تحلیل و طراحی سیستم ها خواهیم دید:سیستم چیست؟هدف یک سیستم چیست؟برای ساخت سیستم جدید باید چکاری انجام داد؟مدل های فرآیندی چیست؟ما در جهانی زندگی میکنیم که پر از سیستم هاست. سیستم هایی که هدف های مختلف و مشخصی دارند. بذارین یکم برگردیم و اصلا ببینیم سیستم یعنی چی؟سیستم (System) یعنی : مجموعه ای (Set) از اجزاء (element) و رابطه های (relation) بین آنها. - G.Klir , System Theoryاین سخن از جناب جی کلیر هستش. اما بازم بیایم و ریز تر به ماجرا نگاه کنیم. مجموعه یعنی چی؟ در واقع مجموعه تعریفی (Definition) نداره، ما هرجور بخوایم مجموعه رو تعریف کنیم خودش تعریفی ازش میشه! (امتحان کنید). در اصل مجموعه توصیف (Description) داره: چندتا چیز دورهم!خب فهمیدیم مجموعه چیه بریم سمت بعدی.اجزا: اجزا یا جز یعنی هر چیزی. هر تکه ای یا هر بخشی.و بخش اخر رابطه هستش:رابطه : ارتباط بین اجزا رو میشه گفت.حالا که اینها رو یاد گرفتیم پس بهتر میتونیم بفهمیم سیستم چی هست. پس سیستم مجموعه ای رابطه ها و اجزا هستش. بیایم مثال بزنیم: درخت میتونه یه مثال خوب باشه از بخش های مختلفی مثل برگ و شاخه و ریشه و .... درست شده که این اجزابا هم ارتباط هایی دارن مثل رسوندن آب ار ریشه به بدنه و برگ ها تا به رشد و بقای درخت کمک کنند.مثال دیگه میتونه کتاب باشه. کتاب از مجموعه ای برگه ، نوشته ، جمله ، حروف و کلمه تشکیل شده که باهم در ارتباط هستن و جابجایی اونها که همون رابطه بینشون هست باعث خراب شدن رابطشون میشه.مثلا فصل اول رو بذاریم جای فصل دهم. پس کتاب هم یک سیستم هستش.به بیانی دیگر هر چیزی در عالم یک سیستم استسیستم ها هدف های مختلفی دارند. مثلا یک برنامه حسابداری داره کمک میکنه تا حساب هامونو بتونیم درست و حسابی مدیریت کنیم. سیستم مدیریت پرواز ها در فرودگاه ها ، کمک میکنه تا پروازهای فرودگاه رو مدیریت کنیم. سیستم تهویه خونه کمک میکنه هوا جریان داشته باشه و مطبوع باشه. هزاران مثال دیگه میشه زد در این زمینه. اما این هدف ها رو کی تعیین میکنه؟برای مشاهده دیزاین پترن ها از دیدی دیگر-Design Pattern کلیک کنید.هدف ها توسط چه کسانی تعریف می شوند؟هر سیستم با توجه به ناظری (Observer) از منظر (perspective) خاصی دیده میشه و این ناظر هست که هدف رو بر اساس منظر خودش تعیین میکنه.مثلا دانشگاه رو در نظر بگیرین. زمان ثبت نام توی دانشگاه ( یا هر جای دیگه) ازتون اطلاعات شخصی مثل نام و نام خانوادگی ، اسم پدر و... پرسیده میشه. اما اسم عمه و خاله و دایی و... پرسیده نمیشه. پس با توجه به هدفی که منظر ناظر دنبال میکنه ازتون سوالاتی پرسیده شده.بیایم یکم نگاهی کنیم به تحلیل و طراحی سیستم ها. هدف ما در این سلسله مقاله ها ساخت سیستم جدیده. این سیستم میتونه به دو شکل باشه :یا وجود داره و نمونه مشابه داره : که در این صورت ما نمونه سازی میکنیم و سیستم جدیدی خلق میکنیم با امکانات بهتر و یا بیشتریا وجود نداره : که در این صورت ما تجسم سازی میکنیم و تخیلی پردازی و سیستم جدید رو بوجود میاریم.هر دو روش فوق نیازمنده اینه که ما از سیستم فعلی شناخت کافی و کاملی داشته باشیم. این یکی از مشکلات دوستان خوش فکرمونه که فکر میکنن بدون دانش کافی میتونن مخترع باشن.برای مشاهده دیزاین پترن ها از دیدی دیگر-Design Pattern کلیک کنید.اما یه سیستم رو چطور میشه شناخت؟ما دو نوع شناخت داریم:White box : جعبه ی سفید یعنی شکستن یک سیستم به اجزاء و رابطه ها ( به این میگن تحلیل سیستم- system analysis یاsystem decomposition)Black box : جعبه ی سیاه یعنی سیستمی که نمیشه بازش کرد.مثل بمب که بازش کنی بازت میکنه ! ? یا یک هدیه که اگه بازش کنی خراب میشه. برای شناخت چنین سیستم هایی باید از طریق رفتارهاشون شناختشون. یعنی ورودی بدیم و خروجی بگیریم. (البته در مورد بمب توصیه نمیکنم.)بیایم یه مرور بکنیم:ما اول باید یه ایده داشته باشیم که یا نمونه ای داره یا ندارهبعدش باید شناخت از سیستم فعلی داشته باشیمحالا بیایم و سیستم رو بشکنیم به اجزا و رابطه هاطراحی رابطه ها و اجزای سیستم جدیدترکیب اجزا و رابطه های جدیدو در اخر میرسیم به سیستم جدیددر قسمت بعدی ما در مورد مدل های فرآیند طراحی و تحلیل سیستم باهم صحبت خواهیم کرد:مدل آبشاریمدل پاراللتکرارفرایندیمنبع :وب سایت مستر جهان بین</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Thu, 14 Nov 2019 00:15:44 +0330</pubDate>
            </item>
                    <item>
                <title>دیزاین پترن ها (Design Pattern)</title>
                <link>https://virgool.io/DesignersCommunity/%D8%AF%DB%8C%D8%B2%D8%A7%DB%8C%D9%86-%D9%BE%D8%AA%D8%B1%D9%86-%D9%87%D8%A7-design-pattern-aubmrsrb4nzw</link>
                <description>الگوی دیزاین پترن ها در سی شارپ و دات نتدیزاین پترن چست؟کاربرد دیزاین پترن ها کجاست؟از دیزاین پترن چه زمانی استفاده میشه؟تا امروز چه تعریفی از دیزاین پترن ها تو ذهنتون داشتین؟قبل از تعریف و توضیحات درمورد الگوهای دیزاین پترن ها، بیایم باهم یه مثال رو بررسی کنیم. فرض کنید، شما یک وب سایت برای شخصی حقیقی یا حقوقی ایجاد کرده اید.هنگامی که یک کاربر از محصول شما استفاده می کند، آنها لندینگ پیج، پست بلاگ یا قالب سایت خود را چگونه ذخیره می کنند؟آیا او می تواند از قابلیت “Auto-Save” استفاده کند یا باید حتما روی “Save” کلیک کند؟فرض کنید شما گزینه auto-save را انتخاب کرده اید. اکنون شما چقدر زمان دارید؟آیا مجبورید برای فعال سازی گزینه auto-save وارد تک تک صفحات شوید و کامپوننت مربوطه را ایجاد کنید؟ که مسلما در این حالت پتانسیل بروز خطای بالایی وجود دارد.یا از دیزاین پترن خاصی برای این قضیه استفاده می کنید تا اطمینان حاصل کنید که تمام صفحات سایت تان به طرز واحدی ذخیره می شوند. ارزش استفاده از دیزاین پترن ها در اینجا مشخص می شود.برای مشاهده آموزش Elasticsearch – نصب و راه اندازی کلیک کنید.دلایل استفاده از دیزاین پترن هافکر میکنم با این توضیح و مثال کوتاه متوجه دلیل استفاده از دیزاین پترن ها شدین. پس در اصل کاری که دیزاین پترن ها برای ما انجام میدن راه حل مسئله ای هست که قبلا بارها بوجود امده و با بررسی و نگرش درست، جوابی برای آن توسط اساتید فن داده شده و ما رو بی نیاز میکنه به اینکه بخواهیم دوباره چرخ رو اختراع کنیم!طراحی برنامه های شی گرا به خودی خود سخت است و طراحی برنامه های شی گرایی که قابل استفاده مجدد هم باشند از آن نیز سخت تر است.نکته ای که طراحان خبره برای حل یک مسئله می ­دانند این است که نباید هر مسئله را از اول حل کرد، یعنی نباید برای حل آن از ابتدای کار شروع کنیم.روش یافتن بهترین راه حل در حل مسائل مربوط به دیزاین پترنبلکه باید با توجه به ابزار موجود و استفاده مجدد از آنها این کار انجام شود. آنها وقتی که یک راه­ حل مناسب را یافتند، آنرا به دفعات زیادی استفاده خواهند کرد.این تجربه، یکی از مسائلی است که آنها را خبره می­ کند. پس در نتیجه شما الگوهایی از کلاس­ها و اشیاء مرتب را در بسیاری از سیستمهای شی ­گرا خواهید دید.هر الگو یک مشکل خاص را در طراحی نرم­ افزار حل می­ کند و باعث می­ شود که طراحی شی گرای ما انعطاف­ پدیرتر، زیباتر و در نهایت قابل استفاده مجدد باشد.کامپوننت ها پایه و اساس پروژه ها هستند. دیزاین پترن مشخص می کند این کامپوننت ها چگونه با یکدیگر کار کنند.برای مشاهده آموزش Elasticsearch – نگاهی به جستجو کلیک کنید.پس جواب سوال زیر مشخص شد :دیزاین پترن (Design Pattern) چیست؟دیزاین پترن ها راه حلی برای تکرار شدن مشکلات هستند.انواع دیزاین پترن:Design Pattern ها به سه نوع کلی دسته بندی می شوند :خلاقانه (Creational): با توجه به مکانیزم تولید آبجکتساختاری (Structural): با توجه به ارتباط بین کلاس و آبجکت و نیز پترن بین کامپوننت هارفتاری (Behavioral): شناسایی پترن ارتباطی بین آبجکت های کلاسما در این سلسله مباحت دیزاین پترن ها، سعی می کنیم به تمام بخش ها و نکات این موضوعات (تا جایی که توان داریم ) بپردازیم و با بیان ساده مباحث را شرح دهیم.لیستی از دیزاین هایی که پوشش خواهیم داد:دیزاین پترن های سی شارپ و دات نت (C# &amp; .Net Design Patterns):Abstract Factory PatternBuilder PatternFactory Method PatternPrototype PatternSingleton PatternAdapter PatternBridge PatternComposite PatternDecorator PatternFacade PatternFlyweight PatternProxy PatternChain Of Responsibility PatternCommand PatternInterpreter PatternIterator PatternMediator PatternMemento PatternObserver PatternState PatternStrategy PatternTemplate PatternVisitor Patternمنبع : http://2ad.ir/5kG8QFوب سایت مستر جهان بین</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Wed, 13 Nov 2019 00:00:37 +0330</pubDate>
            </item>
                    <item>
                <title>گرفتن اطلاعات از یک جدول در ویو MVC</title>
                <link>https://virgool.io/@mrjahanbin/%DA%AF%D8%B1%D9%81%D8%AA%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%A7%D8%B2-%DB%8C%DA%A9-%D8%AC%D8%AF%D9%88%D9%84-%D8%AF%D8%B1-%D9%88%DB%8C%D9%88-mvc-ucv44l1trax2</link>
                <description>گرفتن اطلاعات از یک جدول در ویو MVCعکس بالا رو مشاهده کنید.فرض کنید میخواید چنین جدولی رو توی دیتابیس ذخیره کنید. برای دریافت اطلاعات این جدول در JQuery بصورت زیر مینویسیم:   var Detail = Array();
   var LstTag = $(&#039;#ListKasri tbody tr&#039;);
        for (var i = 0; i &lt; LstTag.length; i++) {
         var IdKala = $(LstTag[i]).closest(&#039;tr&#039;).attr(&#039;IdKala&#039;);
            var BomKalaName = $(LstTag[i]).closest(&#039;tr&#039;).attr(&#039;BomKalaName&#039;);
            var IdAnbar = $(LstTag[i]).closest(&#039;tr&#039;).find(&#039;select&#039;).eq(0).val();
            var QuantityKol = $(LstTag[i]).closest(&#039;tr&#039;).attr(&#039;QuantityKol&#039;);
            var QuantityDarkhasti = $(LstTag[i]).closest(&#039;tr&#039;).find(&#039;input&#039;).eq(0).val();
            Detail.push({ IdKala: IdKala, BomKalaName: BomKalaName, IdAnbar: IdAnbar, QuantityKol: QuantityKol, QuantityDarkhasti: QuantityDarkhasti });
                    }در سمت ویو (View) هم به صورت زیر عمل میکنیم:&lt;table id=&amp;quotListKasri&amp;quot class=&amp;quottable table-striped table-bordered table-hover display select dataTable no-footer table table-responsive&amp;quot role=&amp;quotgrid&amp;quot cellspacing=&amp;quot0&amp;quot style=&amp;quotwidth: 100%;&amp;quot&gt;
 &lt;thead&gt;
 &lt;tr&gt;
  &lt;th&gt;ردیف&lt;/th&gt;
  &lt;th&gt;کد کالا&lt;/th&gt;
  &lt;th&gt;نام کالا&lt;/th&gt;
   &lt;th&gt;انتخاب انبار&lt;/th&gt;
   &lt;th&gt;میزان کسری&lt;/th&gt;
   &lt;th&gt;میزان درخواستی&lt;/th&gt;
   &lt;/tr&gt;
   &lt;/thead&gt;
   &lt;tbody id=&amp;quottbodyTableTag&amp;quot&gt;
   @{
     var RowNum = 1;
     if (Model != null)
     {
     foreach (var item in Model)
      {
      &lt;tr IdKala=&amp;quot@item.IdKala&amp;quot BomKalaName=&amp;quot@item.BomKalaName&amp;quot QuantityKol=&amp;quot@item.QuantityKol.Value&amp;quot&gt;
      &lt;td&gt;@RowNum&lt;/td&gt;
      &lt;td&gt;@item.IdKala &lt;/td&gt;
      &lt;td&gt;@item.BomKalaName&lt;/td&gt;
      &lt;td&gt;
        @Html.DropDownListFor(model =&gt; item.IdAnbar, item.ListAnbar, &amp;quotانتخاب کنید...&amp;quot, new
          {
           style = &amp;quotwidth: 100%;&amp;quot,
           @class = &amp;quotform-control  chosen-select Anbar&amp;quot
           })
           @Html.ValidatiFor(model =&gt; item.IdAnbar, &amp;quot&amp;quot, new { @class = &amp;quottext-danger&amp;quot })
           &lt;/td&gt;
           &lt;td&gt;@item.QuantityKol.Value.ToString(&amp;quotG29&amp;quot)&lt;/td&gt;
           &lt;td&gt;&lt;input class=&amp;quotform-control&amp;quot type=&amp;quotnumber&amp;quot name=&amp;quotname&amp;quot value=&amp;quot@item.QuantityKol.Value.ToString(&amp;quotG29&amp;quot)&amp;quot /&gt; &lt;/td&gt;
           &lt;/tr&gt;
            RowNum++;
            }
              }
              }
               &lt;/tbody&gt;
               &lt;/table&gt;همین !و دیگر هیچ...پ.ن : آخرش نفهمیدم چرا ویرگول کدها رو اینجوری خراب میکنه....اگه کسی راه حل داره بنویسه لطفا.</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Tue, 24 Sep 2019 11:07:33 +0330</pubDate>
            </item>
                    <item>
                <title>من عاشق چشمت شدم وقتی هنوز چشمی نبود</title>
                <link>https://virgool.io/@mrjahanbin/%D9%85%D9%86-%D8%B9%D8%A7%D8%B4%D9%82-%DA%86%D8%B4%D9%85%D8%AA-%D8%B4%D8%AF%D9%85-%D9%88%D9%82%D8%AA%DB%8C-%D9%87%D9%86%D9%88%D8%B2-%DA%86%D8%B4%D9%85%DB%8C-%D9%86%D8%A8%D9%88%D8%AF-qcjewgpqcfkt</link>
                <description>فرض کنید مقداری پول دارین. مثلا 10 میلیون. خب باهاش میتونین سفر برین، وسایل مورد نیاز کارتون رو بخرین و ارتقا بدین کارتونو. میتونین وسایل زندگی بخرین ( البته الان دیگه نمیشه!) و کلی ایده و ارزو دارین که ممکنه مقداری به اون کار یا ایده و ارزوتون نزدیکتون کنه. این وسط اما یکی ازتون همین مقدار پول رو میخواد و شما خواسته یا ناخواسته این پول رو بهش میدین. این یعنی پا گذاشتن روی آینده ی خودتون. با فرض اینکه میدونین دیگه بهتون برش نمیگردونه پول رو اما پول رو بهش میدین.فرض کنید برنامه ریزی کردین که امسال یه سفر خیلی خوب برین، یه پروژه کاری بزرگ رو به دست بگیرین ، خیلی مطالعات مفید در زمینه هایی که سالها تو فکرشون بودین رو انجام بدین. این بهترین زمان و بهترین وقت برای پیشرفت علمی و مالی و روحیه که شما با شوق و اشتیاق زیاد میخواین به سمتش گام بردارین.این وسط اما یکی ازتون میخواد که وقتتونو در اختیارش قرار بدین تا اون بتونه به هدفهاش برسه. بتونه رشد کنه و پیشرفت داشته باشه. و شما باز خواسته یا ناخواسته این زمان رو در اختیارش قرار میدین. یعنی پا گذاشتن روی آینده ی خودتون. با فرض اینکه میدونین دیگه بهتون برش نمیگردونه زمانتون رو اما زمان رو بهش میدین.اینها نمونه ی کوچکی از اوج فداکاریه پدر و مادره به فرزندشون.</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Tue, 10 Sep 2019 13:18:04 +0430</pubDate>
            </item>
                    <item>
                <title>نگاهی به DevOps</title>
                <link>https://virgool.io/coderlife/%D9%86%DA%AF%D8%A7%D9%87%DB%8C-%D8%A8%D9%87-devops-okxcgshyinqd</link>
                <description> در سیستم های سنتی تولید و نگه داری نرم افزار همواره چالش های فراوانی میان دو تیم توسعه به عنوان تولید کننده ی نرم افزار و تیم عملیات و پشتیبانی شبکه به عنوان ایجاد کننده و نگه دارنده ی محیط عملیاتی وجود داشته که از جمله ی این چالش ها میشه به موارد زیر اشاره کرد:چالش های نبود DevOps در سازمان ها : تیم توسعه بدون درک و دانش کامل از محیط عملیاتی ، نرم افزار رو توسعه میده و بعد از اتمام تمام فرآیندهای توسعه اونا رو در اختیار تیم عملیات قرار میده تا در محیط عملیاتی برای کاربران در دسترس قرار بگیره. این عدم وجود درک کافی از ساختار محیط عملیاتی می تونه شامل مواردی چون عدم شناخت ساختار شبکه اعم از Switching و Routing ، نوع Storage مورد استفاده و عملکرد اون ، نوع سیستم عامل ها ، معماری سرورها و Application Server های مورد استفاده ، تجهیزات امنیتی و … باشه که همگی تاثیر مستقیمی در نحوه ی عملکرد نرم افزار طراحی شده داشته و عدم شناخت کافی اونا میتونه منجر به شکست پروژه بشه.تیم عملیات نیز بدون درک کافی از ساختار نرم افزار توسعه داده شده و همچنین نبود دانش کافی در حوزه ی برنامه نویسی ، فرآیندهای تولید نرم افزار ، توابع و کلاس های مورد استفاده شروع به عملیاتی نمودن نرم افزار می کنه که این هم به صورت متقابل نهایتا می تونه پروژه رو منجر به شکست کنه. اوایل با تعریف های مختلفی در موردش مواجه شدم. یکی می گفت DevOps همون اسکرامه. یکی می گفت DevOps زیر مجموعه ITIL هست. یکی می گفت DevOps حذف تیم های Test و Deploy از تیم های بزرگ نرم افزاریه و فقط تیم های Develop و Operation باقی می مونه و خیلی خیلی تعریف های دیگه که خیلی هاش از اساس غلط بود و خیلی های دیگه شبیه همون داستان فیل و اتاق تاریک مولانا بود که هر کسی یه قسمت از فیل رو لمس کرده بود و فکر می کرد فیل فقط همونه.خب DevOps در لغت به معنی Develop + Operation هست.و این مفهوم رو می رسونه که تیم های Develop و Operation باید به هم نزدیک تر باشن و تیم هایی با ساز و کار جداگانه و غیر همسو نباشند.اما اگر بخواهیم دقیق تر در موردش صحبت کنیم DevOps یک مفهوم یا یک تفکره که تمام مراحل تولید نرم افزار از لحظه ای که ایده (Idea) در تیم و یا خارج از تیم نرم افزاری بوجود میاد و در جریان تولید قرار می گیره تا لحظه ای محصول به دست مشتری نهایی (EndUser) می رسه و حتی بعد تر یعنی استمرار و پایایی محصول در ارائه خدمت به مشتریان رو شامل می شه. هدف DevOps رو می تونیم سریع تر شدن چرخه تولید و ارائه محصول به مشتری نام ببریم اما واقعا این مفهوم جامع تر از این حرف هاست.بیایم باهم ببینیم فواید پیاده سازی دواپس چیه؟یکی ازون موارد سرعت هستش. DevOps با استفاده از هنر یکپارچه کردن دو تیم توسعه و عملیات ، این امکان رو به متخصصین میده تا تمام فرآیندهای چرخه ی بالا رو از جمله Test ، Release ، Deploy و Monitor رو  به کمک پیاده سازی یک چرخه ی اتوماتیک با استفاده از ابزارهای مطرح مانند Jenkins  که از جمله ابزارهای CI/CD هستن سرعت ببخشه.یکی از مشکلاتی که همیشه وجود داره فرایند آپدیت نرم افزاره که ممکنه بعد از اون بخشی از کارکرد سیستم رو مختل کنه. دواپس با استفاده از پیاده سازی Continuous Integration و Continuous Delivery و حصول اطمینان از صحت عملکرد سیستم با استفاده از اجرای تست های مختلف قبل از Release و مشاهده ی لاگ نرم افزار در سیستم مانیتورینگ پس از Release کمک میکنه تا نرم افزار به صورت پایدار همواره در حال سرویس دهی باشه. پس مزیت دیگه سرویس دهی پایدار سیستم هستش. علاوه بر اینها به دلیل همکاری نزدیک دوتیم توسعه و عملیات سیستم بهینه تر و منسجم تر کار میکنه. در کنار اینها چون متخصص های بخش امنیت هم حضور دارن پس میشه روی امنیت کار هم حساب کرد.بریم حالا وظایف تیم رو ببینیم.برای تیم DevOps عمدتا وظایف استاندارد و مشخصی وجود داره ، اما سازمان های بزرگ با توجه به ساختارهای سنتی قبلیشون ، اون رو کمی شخصی سازی میکنن تا قابل پیاده سازی و اجرا بشه. ( بعدا در مورد SRE یه مطلب جدا ارائه میکنم.)مهمترین بخش دواپس فرهنگ میان تیم نرم افزار و عملیات هستش. همکاری و ارائه ی راه حل در فرآیند های تولید کد با توجه به تجریبات محیط عملیاتی ، یکپارچه سازی در تحویل مداوم، تست و فرایند تولید،طراحی،تحلیل و… باعث تولید محیطی مناسب برای اشتراک گذاری دانش های تیم های مختلف باهم میشه که روند کار رو به شدت جذاب و پرسرعت میکنه.  و اما چارچوب CALMSچارچوب CALMS یک راهنما برای رسیدن به فرآیند دواپسه که تشکیل شده از:لغت Culture یعنی فرهنگ که توضیح دادیم که نیاز داریم تا فرهنگ تعامل درست و خوب رو بین افراد و تیم ها بوجود بیاریم برای رسیدن به هدف مشترک.لغت Automation یعنی اتوماسیون سازی که در اینجا دقیقا مفاهیم Continuous Delivery – Continuous Integration – Continuous Deployment مطرح میشه، امکان نداره شما ادعا کنید ما فرآیندهای DevOps رو داریم ولی از ابزارهای مثلا CI استفاده نمی کنیم و همه کارها رو دستی انجام میدیم. فرآیندهای دستی کندن و امکان خطای انسانی هم زیاد.برای همین باید اتوماسیون تا اونجایی که ممکنه لحاظ بشهلغت Lean در لغت به معنی لاغره که بیشباهت به مفهومی که میخوایم نداره. توی مبحث ما یعنی اینکه باید فعالیت هایی که ارزش ندارن و تولید ارزش نمیکنن رو حذف کرد.مثلا دوباره کاری ها یا توسعه ویژگی هایی که نیاز اصلی مشتری نیستن ازین قبل مواردن.لغت Measurement یا اندازه گیری ، معیار سنجش یا ارزیابی در واقع میخواد به ما بگه که باید بدونیم &quot; ازکجا امده ایم ، امدنمون بهر چه بود! &quot; . ما باید بتونیم با ملاکهای خاصی که داریم روال کار رو ارزیابی کنیم. چندتا از این ملاک ها :● Infrastructure Monitoring ● Log Management● Application and Performance Managementباید درنظر گرفت که این موارد تنها کافی نیست و گاهی نیازه که میزان استفاده از هر ویژگی ، تعداد باگ های هر نسخه، سرعت میانگین تحویل هر نسخه و هر متر و معیاری که در حداکثری کردن ارزش به ما کمک می کنن رو بدونیم .لغت Sharing یا اشتراک گذاری تجربه ها باعث میشه که ما با تفاهم بهتر تیم ها از درسهای جدیدی که از اشتراک منابع علمی بوجود میاد استفاده کنیم تا شاهد اشتباهات دوباره و دوباره نباشیم. در واقع مفهوم این کلمه اینه که ما درس بگیریم از اشتباهاتمون.بحث اصلی ما یه آشنایی کلی با مفهوم دواپس بود.در آخر بد نیست که نگاهی به فرایند توسعه ی نرم افزار هم بکنیم:Planning (طرح‌ریزی)Development (توسعه)Testing (تست کردن)Deployment (استقرار)Maintenance (نگهداری)Planning (طرح‌ریزی)اهداف پروژه مشخص میشه و مهندس دواپس میگرده و روشهای خودکارسازی فرایندهای مختلف رو باتوجه به منابع موجود پیدا میکنه تا بار دوش اعضای تیم کمتر بشه.Development (توسعه)کار میره سمت کدنویسی و برنامه نویس ها و مهندس دواپس به دولوپرها می‌گه که از چه ابزاری استفاده کنن و ابزارهای جدید رو در اختیارشون قرار می‌ده تا راحت تر و سریعتر کار کنن. یکی دیگه از کارهایی که توی این بخش مهندس دواپس انجام میده اتصال قسمتهای مختلف کد هستش برای رسیدن به نسخه ی نهایی.Testing (تست کردن)در این مرحله، دولوپرها و مسئولین کنترل کیفیت (QC) کدها رو تست میکنن و اونا رو برای یکپارچه شدن با سورس‌کد اصلی آماده می‌کنن. مهندس دواپس در این مرحله وظیفه‌اش اینه برای تکرار خودکار تست‌ها راهی پیدا کنه مانند Jenkins ،Bamboo و یا Drone استفاده کند که این‌ها ابزارهای Continuous Integration یا به‌ اختصار CI هستند که تست مداوم کدها رو راحت می‌کنن. Deployment (استقرار)خب دیگه حالا باید بفرستی بره بالا نرم افزار رو که کاری شبیه  تست کردن رو مهندس های دواپس روش انجام میدن.Maintenance (نگهداری)از الان به بعد باید تیم اماده باشه که از نرم افزار نگهداری کنه. یکی از بیشترین کارهای ممکن برای مهندس دواپس همین بخش میشه.نیاز به توضیح نیست که اصطلاح DevOps از دو واژهٔ Development به‌ معنی «توسعه» و Operations به‌ معنی «عملیات» ساخته شده است و تصویر فوق به‌ خوبی گویای وظایف هر کدام از این بخش‌ها است.</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Mon, 08 Jul 2019 12:33:47 +0430</pubDate>
            </item>
                    <item>
                <title>من و کتاب و یک سوال!</title>
                <link>https://virgool.io/@mrjahanbin/%D9%85%D9%86-%D9%88-%DA%A9%D8%AA%D8%A7%D8%A8-%D9%88-%DB%8C%DA%A9-%D8%B3%D9%88%D8%A7%D9%84-mqfj1kvipora</link>
                <description>من و کتاب و یک سوال!امروز یک مطلب خوندم پیرامون کتاب‌های الکترونیکی مایکروسافت از کتابخانه‌های مشتریان حذف می‌شود.ما توی ایرانم کتابهای الکترونیکی زیادی داریم مثل فیدیبو ، کتابراه، طاقچه که مسلما اگر تعطیل بشن هیچ پولی بهت برگشت داده نمیشه! به نظرتون راهی داره کتاب ها رو استخراج کرد ازتوش که بشه درآینده هم مطالعه شون کرد؟با توجه به اینکه کتابها رو هزینشون رو دادی و مسلما حق خودته که کتاب رو توی خونه ات داشته باشی!</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Wed, 03 Jul 2019 08:25:48 +0430</pubDate>
            </item>
                    <item>
                <title>نگاهی به Entity framework 7</title>
                <link>https://virgool.io/@mrjahanbin/%D9%86%DA%AF%D8%A7%D9%87%DB%8C-%D8%A8%D9%87-entity-framework-7-l2evpp1kld1n</link>
                <description>  بخش اولEf core نسخه سبک، قابل انعطاف، اپن سورس و چند سکویی از تکنولوژی محبوب Entity Framework  است.Ef7 یا ef core در واقع نسخه ی بروز شده ی ef6 هست که از نظر قدرت،سرعت و بهینه شدن تغییرات بسیاری انجام داده است. نسخه های قبلی Entity Framework در سایت CodePlex منتشر می شدند ولی نسخه ی هفتم از Entity Framework در سایت Git Hub منتشر خواهد شد.برخی از مزایا :پشتیبانی از بانک های غیر رابطه ای و اشیا درون حافظه : ef در نسخه جدید خود این قابلیت رو اعمال کرده که شما به راحتی بتوانید پایگاه داده ی خود را از حالت sql Server به sqlite تغییر دهید. این امر باعث توسعه سریعتر و انعطاف پذیری بهتر در پروژه ها می شود.اتصال و کار با پایگاه داده sqlite باعث شده که EF قابلیت کار با سیستم های مختلف مانند لینوکس و مک را داشته باشد.پشتیبانی از Windows Phone، Windows Store، linux و Mac پیاده سازی نیازهای خواسته شده برنامه نویسان : تغییرات بسیاری در بخش کدنویسی و بخصوص کدنویسی به کمک linq در ef core اعمال شده که این امر باعث به صفر رساندن حملات sql injection می شود.از دیگر تغییرات در این بخش حذف Lazy loading می باشد که جایگزینی به نام پروکسی جای آن را گرفته.از دیگر تغییرات:حذف EDMX و ادامه ی Database First  : در نسخه ی هفتم از Entity Framework از روش Model First پشتیبانی نمی شود. مایکروسافت در نسخه جدید پشتیبانی از SQLite  ، In-Memory را قرار داده که در In-Memory استفاده از حافظه برای تست ذخیره ی داده ها بدون ثبت داده در پایگاه داده است.سرعت بخشیدن به حذف و ویرایش و ساخت پایگاه داده بدون استفاده از migrations که یکی از تقاضاهای بسیار بوده.کمتر کردن DLL ها در خروجی به دلیل چندسکویی شدن EF و راحتی و سرعت بیشتر.یکی از قابلیت های جالب در EF قابلیتی با نام Table splitting است. فرض کنید فیلد IsDelete را به تیبل کاربران اضافه کرده اید. در این صورت باید تمام کوئری هایی که select کاربران در آن قرار دارد را تغییر داده تا کاربران حذف شده را نمایش ندهد. در چنین مواقعی درصورت بزرگ بودن پروژه تغییرات زیادی باید در کدها انجام شود. با قابلیت جالب و جدید EF فیلتری روی جدول اعمال می شود که روی تمام جداول اعمال می شود و با یک خط کد دیگر نیاز به تغییر کلی سرویس یا اکشن نیست!protected override void OnModelCreating(ModelBuilder modelBuilder){modelBuilder.Entity&lt;Post&gt;().HasQueryFilter(p =&gt; !p.IsDeleted&amp;&amp; p.TenantId == this.TenantId );}این قابلیت حالت عکس نیز دارد ، یعنی شما میتوانید به کمک این قابلیت در بخشی که نیاز دارید کاربران حذف شده را نیز ببینید.دیگر قابلیت اضاف شده EF.Functions.Like() است که به کمک آن میتوان از حالت Like در اس کیو ال استفاده کرد.var aCustomers =from c in context.Customerswhere EF.Functions.Like(c.Name, &quot;a%&quot;)select c;مزایا و قابلیت های EF7  بسیار گسترده و جذاب هستند که در قالب این متن نمیگنجند. در پایان چند نکته ی کار با EF رو باهم بررسی میکنیم که سرعت بیشتر و کمتر کردن بار روی سرور را ارمغان می آورند:تنها دریافت رکوردهای مورد نیاز : کد:string city = &quot;New York&quot;;List&lt;School&gt; schools = db.Schools.ToList();List&lt;School&gt; newYorkSchools = schools.Where(s =&gt; s.City == city).ToList();کد بهینه :List&lt;School&gt; newYorkSchools = db.Schools.Where(s =&gt; s.City == city).ToList();یاIQueryable&lt;School&gt; schools = db.Schools;List&lt;School&gt; newYorkSchools = schools.Where(s =&gt; s.City == city).ToList();· حداقل رفت و برگشت به دیتابیسکد:string city = &quot;New York&quot;;List&lt;School&gt; schools = db.Schools.Where(s =&gt; s.City == city).ToList();var sb = new StringBuilder();foreach(var school in schools){    sb.Append(school.Name);    sb.Append(&quot;: &quot;);    sb.Append(school.Pupils.Count);    sb.Append(Environment.NewLine);}کد   بهینه :List&lt;School&gt; schools = db.Schools    .Where(s =&gt; s.City == city)    .Include(x =&gt; x.Pupils)    .ToList();افزونگی کشِ پلنکد:var schools = db.Schools    .OrderBy(s =&gt; s.PostalZipCode)    .Skip(model.Page * model.ResultsPerPage)    .Take(model.ResultsPerPage)    .ToList(); کد بهینه :int resultsToSkip = model.Page * model.ResultsPerPage;var schools = db.Schools    .OrderBy(s =&gt; s.PostalZipCode)    .Skip(() =&gt; resultsToSkip) //must pre-calculate this value    .Take(() =&gt; model.ResultsPerPage)    .ToList();فراخوانی متد شناسایی تغییراتکد:for (int i = 0; i &lt; 2000; i++){    Pupil pupil = GetNewPupil();    db.Pupils.Add(pupil);}db.SaveChanges();کد   بهینه:var list = new List&lt;Pupil&gt;();for (int i = 0; i &lt; 2000; i++){    Pupil pupil = GetNewPupil();    list.Add(pupil);}db.Pupils.AddRange(list);db.SaveChanges();منابع:http://yon.ir/xea86http://yon.ir/Lkqr9http://yon.ir/2sXAZhttp://yon.ir/EW3OVhttp://yon.ir/oU0jBhttp://yon.ir/xbArn</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Wed, 03 Jul 2019 08:11:06 +0430</pubDate>
            </item>
                    <item>
                <title>کمپین من یک برنامه نویسم ... (گزارش یک)</title>
                <link>https://virgool.io/fboard/%DA%A9%D9%85%D9%BE%DB%8C%D9%86-%D9%85%D9%86-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%D9%85-%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4-%DB%8C%DA%A9-g9pv36witoly</link>
                <description>چند روز پیش یک پست گذاشتم با عنوان &quot; کمپین من یک برنامه نویسم&quot; و شروع کردم توضیح دادن در مورد مشکلات و نیازهای برنامه نویس ها به عنوان افرادی با شخصیت خاص و نیاز به محترم شمرده شدن بیشتر.از اون زمان تا الان فقط و فقط یک نفر پیام داد که من حمایت میکنم و پایه هستم برای چنین کاری و کلی نفر معرفی کرد که شاید بشه کمکی ازشون گرفت.خب این برای من چندتا معنی میده:یکی اینکه این دغدغه ای که فکر میکردم نیاز برنامه نویس ها هست و باید حل بشه گویا برای بقیه مسئله ای نیست و باهاش راحتن! احساس درد نمیکنن برای برطرف کردنش و گذاشتن هرچه پیش آید خوش آید. هرچند توی صحبت هایی که میکردم با خیلیا مشتاق بودن که یکی اینکارو کنه اما کمک از طرف خودشون نه!دوم اینکه بعضی ها راضی بودن و میگفتن ماها کلی زحمت کشیدیم تا رسیدیم به اینی که الان هست پس این چیزها برامون الان پیش نمیاد و اگرم بیاد بالاتر گیرمون میاد که به سودمونه.سوم یه عده ای کلی تشویق کردن و کلی گفتن افرین و ازین حرفا اما تبل تو خالی!چهارم اینکه بعضی ها مثل دولتمردان خوشگلمون درد رو تکرار کردن و دنبال یکی بودن که حلش کنه و حالا چیکار کنیم داشتن!پنجم یه عده کلا ناامید بودن و میگفتن تو ممکلت قمر در عقرب این کار اصلا نشده و خیلیا خواستن کاری کنن و نتونستن شماهم روش!</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Thu, 27 Jun 2019 07:37:09 +0430</pubDate>
            </item>
                    <item>
                <title>کمپین من یک برنامه نویسم...</title>
                <link>https://virgool.io/fboard/%DA%A9%D9%85%D9%BE%DB%8C%D9%86-%D9%85%D9%86-%DB%8C%DA%A9-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%D9%85-kqx5z76d4k45</link>
                <description>من یک برنامه نویسمخیلی وقته میخوام یکاری کنم برای این مشکل اما &quot; این درد مشترک هرگز جدا جدا درمان نمی شود&quot;.نیاز دارم به همفکری، همیاری، حمایت و کوشش جمعی از دوستان که این درد رو دارن. میخوایم با هم از خودمون حمایت کنیم. از بازار آشفته ای که به وجود اوردن برامون و هرکس و ناکسی توی زمینه ی کاریمون وارد شده و کار رو به جایی رسونده که اعتماد مشتری ها ازمون سلب شده. کدنویسی شاید کار ساده ای باشه، اما ماها برنامه نویس هستیم نه کدنویس. ماها اگه برای یک پروژه 10 میلیون میگیریم داریم پول سالها کار،تفکر و تلاش رو میگیریم که خودمون رو بسازیم برای تولید یک محصول با کیفیت و قدرتمند. محصولی که امضای خودمون زیرش باشه و با قدرت بگیم اینکار مال ماست. پول زمان، فکر، ترک کردن کلی تفریح ، گوش دادن و دیدن کلی فیلم آموزشی و مطلب آموزشی و تلاش و تلاش و تلاش.فکر میکنم تا کار بدتر نشده نیاز داریم مثل مشاغل دیگه خودمون رو بشناسیم و جلوگیری کنیم ازین بی هویتی و هرکسی شدن تخصصمون. نشون بدیم که ما کی هستیم و چطور زندگی میکنیم و به چه شکل هستیم.این راه نیاز به همت داره و نیاز به همیاری. من آیدی تلگرامم رو پایین میذارم، دوستانی که میتونن کمک کنن و دغدغه دارن برای خودشون پیام بدن بتونیم هسته ی اصلی رو تولید کنیم و شروع کنیم برای یه کار بزرگ برای خودمون.آیدی تلگرام : @Mrjahanbinآینده مال ما برنامه نویس هاست</description>
                <category>MrJahanbin</category>
                <author>MrJahanbin</author>
                <pubDate>Sat, 22 Jun 2019 07:47:57 +0430</pubDate>
            </item>
            </channel>
</rss>