<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Dev.Ess</title>
        <link>https://virgool.io/feed/@Ess</link>
        <description>توسعه دهنده اندروید ، عاشق خواندن و نوشتن، عاشق آموزش دادن و آموزش دیدن</description>
        <language>fa</language>
        <pubDate>2026-06-10 12:47:24</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/65475/avatar/1DEcTs.jpeg?height=120&amp;width=120</url>
            <title>Dev.Ess</title>
            <link>https://virgool.io/@Ess</link>
        </image>

                    <item>
                <title>یک فونت برای برنامه‌نویسی</title>
                <link>https://virgool.io/fboard/jetbrains-mono-eqewxvsdql6q</link>
                <description>JetBrains Monoشرکت JetBrains که با IDE های معروف خود شناخته شده است، چندی پیش با یک  فونت متن‌باز بسیار عالی تمام برنامه نویس ها و توسعه دهنده ها را خوشحال  کرد، شاید بگویید یک فونت که ارزش این‌ کارها ندارد، اما باید بگویم اشتباه  میکنید. این فونت خیلی بیشتر از یک فونت معمولی است و در نتیجه تصمیم گرفتم مقاله ایی کوتاه درمورد این اثر هنری بنویسم.چرا JetBrains Mono ؟همانطور که  از تیتر وب سایت معلوم است، هدف اصلی طراحی این فونت تنها و تنها  توسعه‌دهندگان و برنامه‌نویس‌ها است. این موضوع نشان میدهد که این فونت با  باقی فونت های داخل اینترنت ( فونت های مرسوم) کمی متفاوت است.وقتی صحبت  از خوانایی میشود یعنی در نظر گرفتن خیلی موارد که میشود گفت تمام این  موارد در این فونت رعایت شده. برای مثال میتوانم به ضخامت قابل قبول و  فاصله هر حرف از دیگری و یا کشیده تر شدن حروف اشاره کنیم. تمام این موارد  نه تنها کدهای شما را خوانا تر بلکه محیط کار شما را جذاب‌تر هم میکند.یکی دیگر  از موارد، تمایز کامل بین تمام حروف است. به شکلی که حروف های یک شکل مثل ۱  و i بزرگ و L کوچک و یا صفر و حرف o، حتی وقتی کنار یکدیگر بیاییند کاملا  قابل تشخیص هستند و خود این ویژگی یک نقطه قوت به حساب می‌آید.تمام حروف شکل اختصاصی خود را دارند و کاملا متمایز هستندانطور که ملاحظه میکنید تمام حروف بصورت جداگانه طراحی شدننکته بعدی حالت Italic است که نه تنها با زاویه ۹ درجه‌ای بلکه با تغییرات ظاهری در این حالت  باعث میشود، آن جمله یا آن کلمه در میان دنیایی از کد های شما کاملا گویا و  مشخص باشد.اگر  کمی در دنیای فونت ها گشت و گذار کرده باشید و یا خود دستی در کار داشته  باشید حتما متوجه میشود که این زاویه ۹ درجه بین ۳ یا چهارر درجه کمتر از  استاندارد باقی فونت‌ها است. همین مسئله هم از خستگی چشم و هم تضاد بد شکل  بین کلمات جلوگیری میکند.همچنین در این حالت حروف های f , a و y شکلی کاملا متفاوت به خود میگیرند که زیبایی کم نظیری را به کد های شما میدهد.زاویه ۹ درجه بین ۳ یا چهارر درجه کمتر از استاندارد باقی فونت‌ها است. همین مسئله هم از خستگی چشم و هم تضاد بد شکل بین کلمات جلوگیری میکند.پیوند زدن سیمبل ها(LIGATURES)بعضی از  IDE ها و یا ویرایشگر ها از ویژگی پشتیبانی میکنند که از ترکیب چند  نماد(Symbol) یک نماد دیگر میسازند. البته این ویژگی به شرط آن است که فونت  شما چنین چیزی را پشتیبانی کند که این فونت این اجازه را به شما میدهد.  شما میتوانید در تمام IDE های JB از این ویژگی استفاده کنید. تنها کافیست  به آدرس زیر رفته و تنظیمات مورد نظر را در آن انجام دهید.Settings → Editor → Font → Enable Font Ligaturesحالت پیوند  موقعی پیش می‌آید که شما دو یا چند نماد را کنار هم میگذارید. برای مثال  برای نشان دادن کوچکتر مساوی از دو نماد = و &gt; استفاده میکنیم و این  ویژگی میاآید این دو را با یکدگیر ترکیب کرده و نماد ≥ را میسازد. البته  این خودش قسمتی از کار است و حالت دیگر به گونه‌ای است که فاصله بین دو  نماد را کم میکند تا به خواننده این حس را بدهد که این دو باهم هستند نه  جدا از یکدیگر.در شکل زیر بعضی از این نماد ها آمده است.پیوند زدن (LIGATURES)پشتیبانی از همه چیزاین فونت ۱۴۵ زبان را در خود جا داده و از تمام کارکترهای مورد نیاز هر زبان را پشتیبانی میکند. لیست کامل این زبان‌ها در وب‌سایت رسمی این فونت وجود دارد.این فونت در سه سیستم‌عامل ویندوز، لینوکس و مک‌ نصب میشود که آموزش نصب در هر یکی از این سیستم‌عامل ها بصورت زیر است:بسته را بر روی سیستم خود دانلود کند.بسته را از حالت فشرده خارج کنید و بر روی سیستم خود نصب کنید:ویندوز: تمام فونت های داخل پوشه را انتخاب کنید و بر روی یکی از آنها راست کلیک کنید و بعد گزینه نصب را بزننید.لینوکس: تمام پوشه فونت را در یکی از مسیرهای زیر کپی کنید:~/.local/share/fonts و یا /usr/share/fontsمک: تمام فونت های داخل پوشه را انتخاب کنید و برر روی آن ها دو با کلیک کنید.IDE خود را ببنید و باز کنید.در بخش Preferences/Settings → Editor → Font میتوانید فونت های جدید خود را پیدا کنید.توصیه میشود برای این فونت از سایز ۱۳ استفاده کنید و فاصله بین هر خط ۱.۲ باشد تا بهترین نتیجه را دریافت کنید.سوال‌های رایجدر وب سایت  اصلی چنین بخشی وجود دارد و به چنین سوال های پاسخ داده که در حقیقت به  شما اجازه میدهد تا با خیال راحت از این فونت متن باز در هر جا که خواستید  استفاده کنید.آیا میتوانم JetBrains Mono را بر روی سیستم خود نصب کنم و بر روی تمام ویرایشگرها استفاده کنم؟ بله.آیا میتوانم JetBrains Mono را بر روی پوستر پرینت کنم؟ بله.آیا میتوانم JetBrains Mono را در لوگو استفاده کنم؟ بلهآیا میتوانم JetBrains Mono را در وب سایت و اپلیکیشن خود اسفاده کنم؟ بلهآییا  میتوانم فونت اختصاصی خود را بر روی فونت JetBrains Mono طراحی کنم؟ بله،  در این مورد شما باید نشان دهید که مبتنی بر JetBrains Mono کار میکنید.منبع: JetBrains Monoبا نظر دادن هم من رو برای بهتر نوشتن کمک میکنید و هم به من انگیزه میدید که بیشتر بنویسم</description>
                <category>Dev.Ess</category>
                <author>Dev.Ess</author>
                <pubDate>Sat, 31 Oct 2020 10:56:06 +0330</pubDate>
            </item>
                    <item>
                <title>فایربیس ( Firebase )، چاقوی سوئیسی برنامه نویس‌ها</title>
                <link>https://virgool.io/@Ess/%D9%81%D8%A7%DB%8C%D8%B1%D8%A8%DB%8C%D8%B3-firebase-%DA%86%D8%A7%D9%82%D9%88%DB%8C-%D8%B3%D9%88%D8%A6%DB%8C%D8%B3%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%86%D9%88%DB%8C%D8%B3%D9%87%D8%A7-lgpkrev9iu8y</link>
                <description>فایربیس یک ارائه دهنده سرویس ابری و پشتیبان برای شرکت های ارائه سرویس  است. فایربیس چندین ابزار قدرتمند را در اختیار توسعه دهندگان و برنامه  نویسان موبایل و وب‌ قرار داده. که میخواهیم در این مقاله به آنها به  پردازیم.فایربیس یک ارائه دهنده سرویس ابری و پشتیبان برای شرکت های ارائه سرویس است.تاریخچهدر سال ۲۰۱۱ آقای جیمز تامپلین و اندرو لی یک شرکت با هدف ارائه سرویس  های ابری به برنامه نویسان و توسعه دهندگان راه اندازی کردند. چنان با قدرت  این پروژه را پیش بردند که در آوریل سال ۲۰۱۲ این پروژه با ارائه دادن  پایگاه داده ابری شروع به کار کرد و در سال ۲۰۱۴ (تنها سه سال بعد از شروع  کار)گوگل تمام این شرکت را از آن خود کرد.فایربیس به زبان سادههرچند این پلتفرم در سال ۲۰۱۴ بعنوان یک پایگاه داده ابری توسط گوگل  خریداری شد اما امروزه فایربیس به یک ابزار بسیار مفید و قدرتمند برای  توسعه دهندگان موبایل و وب تبدیل شده.در حقیقت میتوان فایربیس را مجموعه سرویس های سمت سرور دانست, یعنی شما  میتوانی با صرف کمترین هزینه و زمان یک سرور برای اپلیکیشن( وب و مویایل)  خود داشته باشید. در ادامه با چند سرویس قدرمند آن آشنا میشویم.Firebase Cloud Messaging :این سرویس که در قبل با نام Google Cloud Messaging شناخته میشد و حالا  جای خود را به Firebase Cloud Messaging و یا FCM داده , یک سرویس چند  سکویی (Cross-platform) است که برای ارسال پیام و یا اطلاعیه (که به آن  Push Notification میگویند) از سمت سرور برای کاربر مورد استفاده قرار  میگیرد. به این معنی که شما هر زمان که بخواهید با دسته بندی کاربران خود  میتوانید به آنها پیامی بدهید و متن و عکسی را برای آنان ارسال کنید. برای  مثال شما میتوانید از محصول جدید خود که قبلا در مارکت شما قرار نداشته رو  نمایی کنید.هرچند پیش‌تر از چند سکویی بودن این سرویس نام بردیم اما بهتر است  بگوییم این سرویس بر روی پلتفرم های اندروید, IOS , زبان برنامه نویسی  سی‌شارپ و موتور بازی unity مورد استفاده قرار میگیرد.شما میتوایند آموزش استفاده از این سرویس را در سایت اندرویدآرنا تهیه کنید.Firebase Analytics :Firebase Analytics و یا سرویس تحلیل فایربیس, یک سرویس برای تهیه گزارش  عملکرد کاربر در برنامه شما است. این سرویس هم در IOS و هم اندروید مورد  استفاده قرار میگیرد.این سرویس مدت زمان استفاده کاربر از برنامه شما, درصد صرف زمان در یک  صفحه و یا اکتیویتی را به شما گزارش میدهد که شما با داشتن چنین اطلاعاتی  میتوانید, برنامه خود را به خوبی مدیریت کنید و یا حتی در ورژن های آینده  آن را بهبود دهید.این سرویس حتی خرید های درون برنامه ایی را برای شما طبقه بندی و جمع  آوری میکند که خود این میتواند کمک ارزشمندی برای یک توسعه دهنده باشد.Firebase Realtime Database:یک پایگاه ابری NoSQL است که بصورت realtime(همزمان) کار میکند. برای  درک بهتر realtime میتوان به برنامه هایی مسنجر و چت اشاره کرد. اگر شما به  دوستتان پیامی بدهید, در صورت متصل بودن به اینترنت در کسری از ثانیه پیام  به او میرسید, بطوری که میتوان گفت همان لحظه کار انجام شده. حال همین  اتفاق در پایگاه داده فایربیس اتفاق می‌افتد. وقتی شما داده ایی را به  پایگاه فایربیس اضافه و یا کم میکنید, تمام دستگاه های متصل به آن پایگاه  بدون نیاز به بروز رسانی با آن همگام میشوند.Firebase Authentication :Firebase Authentication و یا احراز هویت فایربیس, یکی دیگر از سرویس های قدرمند فایربیس است.تصور کنید شما میخواهید یک صفحه ورودی (Login page) طراحی کنید که احراز  هویت هر کاربر را بررسی کنید. جدا از صرف زمان و هزینه بسیار زیادی که  بابت کد نویسی و ایجاد پایگاه اطلاعاتی (Database) بزرگ و پیچیده انجام  میدهید, مدیریت چنین کاری هم کمی دشوار است. اینجا است که میتوان از این  سرویس فایربیس استفاده کرد.شما تنها با چند کلیک و چند خط اضافه در برنامه میتوانید که سیستم بسیار  روان و خوبی در برنامه خود قرار دهید. از این سرویس در IOS , اندروید و  زبان PHP و سی‌شارپ میتوان استفاده کرد.Crash Reporting:یکی از بهترین قسمت های فایربیس است. هرچند هیچ برنامه نویسی دوست ندارد  که به او بگوید برنامه‌اش کرش میکند. اما دانستن اینکه این اتفاق می‌افتد  بسیار مفید است. شاید کمی ابتدایی باشد اما بهتر است واژه Crash را توضیحی  نیم خطی بدهم. اگر در میان کدهای ما خطایی(باگ) وجود داشته باشد, چه از روی  اشتباه نوشتن و شاید فراموش کردن و یا چک نکردن متغیری. برنامه کاربر بعد  از رسیدن به آن خط بسته میشود.حال کاری که فایربیس برای ما میکند, در زمانی که برنامه کرش میکند.  گزینه ایی نشان کاربر میدهد با این مضمون «Crash Reporting» که اگر کاربر  لطف کند و گزینه را انتخاب کند. اکتیویتی و یا صفحه ایی که کرش کرده همراه  با خطای آن برای برنامه نویس و توسعه دهنده فرستاده میشود.یک عیب بسیار بزرگهرچند تمام این سرویس ها, جدا از رایگان بودن و یا نبودن آن, بسیار خوب و  ارزشمند است ولی باید به این نکته هم توجه کرد که تمام این سرویس ها برای  کشور ما محدود است. البته بیشتر این محدودیت ها تنها در سوی توسعه برنامه  است و اگر با هر ابزار گذر از تحریم, این سرویس ها را بر روی برنامه خود  قرار دهید, برای استفاده از نرم افزار شما محدودیتی ندارد.( تا امروز )حرف آخرتمام سعی خود را کردم تا توضیحی کامل در باره فایربیس بدهم. اما این  پلتفرم شامل ۱۸ محصول مختلف است. تمام این محصولات به سه گروه توسعه، کیفیت  و مدیریت رشد نرم افزار و یا وب سایت شما کمک میکند. هرچند توضیح آنها  دشوار نیست اما شاید از حوصله چنین مقاله ایی خارج باشد. شما میتوایند در  سایت اصلی فایربیس لیستی از محصولات آن را ببینید.پست ها و مقاله های بیشتر من را میتوانید هم در ویرگول و هم در وب سایت آموزشی اندروید‌آرنا دنبال کنید.منبعبا نظر دادن و یا انتقاد کردن  من رو برای بهتر نوشتن کمک میکنید . پس از این کار دریق نکنید.</description>
                <category>Dev.Ess</category>
                <author>Dev.Ess</author>
                <pubDate>Mon, 12 Oct 2020 17:00:10 +0330</pubDate>
            </item>
                    <item>
                <title>باز فکر کن مثل Open Source</title>
                <link>https://virgool.io/@Ess/%D8%A8%D8%A7%D8%B2-%D9%81%DA%A9%D8%B1-%DA%A9%D9%86-%D9%85%D8%AB%D9%84-open-source-on3vb7t6zeyp</link>
                <description>ما ایرانی ها یک مثالی داریم که میگیم : همه چیز را همگان دانند.دقیقا این همون جواب سوال « چرا Open Source؟»بگذارید مثل روند همیشگمون قبل از ادامه اول چند اصطلاح ریز و درشت رو بیان کنیم.Open Source : متن‌بازاگر خیلی ساده بخواهم بگویم، متن‌باز بودن یعنی بتوانیم به  هرآنچیز که داخل یک نرم‌افزار باشد دسترسی داشته باشیم، بتوانیم ویرایش کنیم و یا از آن نسخه‌ای خاص برای خودمان داشته باشیم.هرچند ریشه اصلی متن‌باز بودن در برنامه نویسی است، اما امروزه این واژه در جاهای دیگری نیز به چشم میخورد. میخواهد طرح یک پوستر باشد، متن کتابی و یا مقاله ایی علمی. تمام اینها میتوانند به صورت متن‌باز در دست عموم قرار بگیرد.Open source از کجا آمد؟در آن زمان که کامپیوتر ها دستگاه هایی غولپیکر و ناعاقلی بودند. مهندسان، برنامه نویسان و توسعه دهندگان برای یادگیری از یکدیگر و فهم بهتر این موجودات و همچنین تکمیل محسبات اطلاعاتشان را به اشتراک گذاشتند.در میان دهه ها ۷۰ تا ۸۰ میلادی بود که اصطلاح Open-Source به میان آمد. تا مدت زیادی این روند ادامه داشت که در سال ۱۹۹۷ آقای اریک ریموند مقاله ای با نام The Cathedral and the Bazaar نوشت که بعدها در سال ۱۹۹۹ این مقاله تبدیل به یک کتاب شد و در اختیار عموم قرار گرفت.این کتاب از تجربه های شخصی آقای ریموند بر پایه مشاهداتش بر هسته لینوکس و مدیریت پروژه متن‌باز نوشته شده بود. آقای ریموند در این کتاب با دیدی وسیع، دو سبک نرم افزار های متن‌باز و نرم افزار های تجاری آن دوران را با یکدیگر مقایسه کرد. اینجا بود که عموم مردم بصورت واضح با Open-Source آشنا شدند.کمتر از یکسال بعد این مقاله چنان رشد چشمگیری داشت که باعث ایجاد یک انگیزه قوی در شرکت ارتباطات Netscape  شد تا کدهای نرم افزار محبوب خود را با همین اسم بصورت متن‌باز در بیاورد. لازم به ذکر است که همین کدها بودند تا باعث بوجود آمدن نرم افزار هایی مثل  SeaMonkey ، Mozilla Firefox ، Thunderbird و KompoZer شد.جنگ،جنگ تا قیامتدر حالی که Open source با قدرت داشت پیش میرفت و عموم را ترغیب میکرد تا راه او را پیش بگیرند، شرکت های تجاری و فروشندگان نرم افزار خود را در خطر دیدند. این موضوع به حدی جدی بود که یکی از مدیران مایکروسافت در سال ۲۰۰۱ چنین گفت: « متن‌باز یک خرابکار است. هیچ چیز بد تر از این در دنیای نرم افزار نخواهد بود...».اما این حرف به نظر شخصی من کاملا اشتباه است.  میخواهم خودم این مورد را اصلاح کنم. متن‌باز یک قهرمان است. هیچ چیز قدرتمند تر از این در دنیای نرم افزار نخواهد بود.درست است متن‌باز نیمی از تجارت پر سود دنیای نرم‌افزاری را ویران کرده اما در دل دنیای نرم افزار یک دنیایی دیگر ساخت، دنیایی که مورد حمایت شرکت هایی نظیر google , IBM , Oracle قرار گرفت و این شرکت ها تنها مشتی از خروارْ شرکت هایی هستند که متن‌باز را حمایت کردند.همین حامیان بودند که باعث ایجاد یک تغییر در دنیای نرم افزار شدند و طرفداران نرم‌افزار های تجاری و فروشندگان نرم افزار را به عقب نشینی وا داشتند.FOSSشاید بیشتر ما در یک اشتباه بزرگ توافق نظر داشته باشیم . ‌Open source باید رایگان باشد !با رعایت ادب و لبخندی بر لب باید بگویم خیر این مسئله اصلا درست نیست.سوال: خب پس چرا بیشتر نرم افزار های متن‌باز رایگان است؟در جواب این سوال باید واژه FOSS را برای شما شرح دهم.  FOSS  سرواژه کلمه Free Open Source Software است و به معنی &quot; نرم افزار آزاد متن‌بار&quot; است. در حقیقت ما از این نرم افزار ها استفاده میکنیم و به آنها نرم افزار های Open source میگوییم. هرچند اشتباه نمی کنیم اما مسیر را هم کامل نمیرویم.سوال: پس تمام نرم افزار های رایگان متن‌باز هستند؟باز هم با همان ادب و لبخند سوال پیش میگویم خیر.ما در دنیای کامپیوتر چیزی هم داریم به اسم Free-ware که یک شکل کلی تر از نرم افزار های رایگان هستند. این دسته نرم افزار ها میتوانند هم متن‌باز باشند و هم خیر.یک قدم نزدیک تر به Open sourceاین که ما به یکسری کد نرم افزار دسترسی داشته باشیم قطعاً به معنی متن‌باز بودن آن نیست. هرچند برای تعریف Open source به همین مسئله اکتفا گفتیم. اما یک نرم افزار باید از ۱۰ خان عبور کند تا تبدیل به یک نرم افزار متن‌باز شود.۱. توزیع مجدد آزاد.نرم‌افزار باید بدون نیاز به حق امتیاز یا هر گونه پرداختی برای فروش، امکان توزیع به صورت آزاد را داشته باشد.۲. کد منبع.کد نرم‌افزار باید شامل نرم‌افزار باشد و اجازه توزیع کد نرم‌افزار داده بشود (برای مثال از یک صفحه وب قابل دانلود باشد).۳. کار مشتق‌شده.اعمال تغییرات و کارهای بعدی روی نرم‌افزار امکان‌پذیر باشد و این نرم‌افزار جدید را بتوان تحت همان شرایط نرم‌افزار اولیه و اصلی تکثیر کرد.۴. نگهداری تمامیت کد منبع نویسنده اصلی نرم‌افزار.مجوز نرم‌افزار ممکن است اجازه تغییر در اصل متن برنامه را به کاربران ندهد و تنها اجازهٔ افزودن وصله‌های نرم‌افزاری و کامپایل مجدد برنامه را بدهد. در این شرایط توسعه دهندگان تنها می‌توانند توزیع‌هایی به کمک وصله‌های نرم‌افزاری خود ایجاد نمایند. مجوز نرم‌افزاری می‌باید صراحتاً ایجاد توزیع تازه با تغییر مجدد در کد اصلی را محدود نماید. نرم‌افزار توزیع شده تحت این مجوز می‌باید حتمن نام نسخه‌ای تازه را داشته باشد.۵. بین افراد و گروه‌ها تبعیضی گذاشته نشود.اجازه‌نامه نباید بین افراد یا گروه‌ها تبعیضی بگذارد.۶. هیچ تبعیضی در نوع استفاده از نرم‌افزار وجود نداشته باشد.هیچ گونه تبعیض و تمایزی بین هر فعالیتی که در راستای نرم‌افزار انجام می‌گیرد، وجود نداشته باشد. برای مثال نرم‌افزاری نباید بین استفادهٔ تجاری یا تحقیقاتی تبعیض قائل شود.۷. توزیع اجازه‌نامه.مجوز باید به هرکسی که یک کپی از نرم‌افزار را دریافت می‌کند نیز اختصاص یابد، بدون این‌که آن‌ها نیاز به توافق و هماهنگی با اجازه‌نامهٔ دیگری داشته باشند.۸. اجازه‌نامه نباید مخصوص یک محصول باشد.حقوق داده شده در مجوز یک نرم‌افزار نباید وابسته به این باشد که بخشی از بسته بزرگتری است. در صورتی که نرم‌افزار از محصول دریافت شده نیز جدا شود، باید همان حقوق را در استفاده، توزیع و ویرایش، به دریافت کننده نرم‌افزار را اعطا کند. تمام کسانی که آن نرم‌افزار را، که قبلاً به عنوان بخشی از محصول بزرگتری بوده است، دریافت یا توزیع مجدد می‌کنند باید تمامی حقوق را مانند محصول اصلی داشته باشند.۹. اجازه‌نامه نباید نرم‌افزارهای دیگر را محدود کند.شرایط تعریف شده در مجوز نباید توزیع نرم‌افزار را درکنار نرم‌افزارها با مجوزهای دیگر محدود کند. برای نمونه نمی‌تواند تعیین کند که تمامی نرم‌افزارهای ارائه شده در لوح فشرده ارائه شده باید متن باز باشند.۱۰. اجازه‌نامه باید از نظر تکنولوژی بی‌طرف باشد.اجازه‌نامه نباید مختص یک تکنولوژی خاص باشد.منبع این ده مورد وب سایت ویکی‌پدیا است.امنیت Open source !شاید باور کردنش سخت باشد، اما امنیت نرم افزار های متن‌باز خیلی بیشتر از نرم افزار های دیگر است. چرا که چیزی برای پنهان کردن ندارند. در حقیقت قدرت پنهان کردن ندارند.هیچ وقت یک هکر،برنامه مخرب خود را بصورت متن باز قرار نمیدهد. چرا که با این کار  شما و یا هر شخص دیگری که قدرت خواندن کد را داشته باشید نه تنها متوجه مخرب بودن آن می شوید بلکه ممکن است حفره امنیتیی را برای شما روشن کند که شما از آن بی خبر بودید.اما این امنیت فقط برای کاربر نیست. خیلی از نرم افزار های انحصاری برای در امان ماندن نرم افزار های خود به هزار و یک روش آن را رمز گذاری میکنند تا مبادا شما بصورت رایگان و یا با هزینه کمتر به آن دسترسی پیدا کنید. اما افرادی هستند که سر شوخی را با آنها باز میکنند و این قفل و بست ها را دور میزنند و نرم افزار را یا بصورت رایگان در اختیار عموم قرار میدهند و یا با هزینه کمتر آن را میفروشند. اما این روش چندان برای نرم افزار های متن‌باز جوابگو نیست، مخصوصا نرم افزار های FOSS . تصور کنید وارد وب سایتی میشوید و میگوید به من ۱ دلار بدهید تا گوگل کروم را به شما بدهم! آیا اینکار را میکنید؟مزایا Open sourceدسترسی به نرم افزار های متن‌باز خیلی راحت تر است. کافیست شما به وب سایت رسمی نرم افزار سر بزنید و آن را از سرور بی زبانش طلب کنید و  یا وارد مخازن کد هایش شوید و آن ها را برای خود به اصطلاح کامپایل کنید.موضوع بعدی سمت دیگر است. اگر نرم افزار متن بازی معرفی شود، مشکلات و باگ هایش خیلی سریع تر، هم دیده میشود و هم بر طرف میشود. تصور کنید نرم افزار فوتوشاپ عکس بخصوصی را نتواند لود کند ( بعید است... گفتم تصور کنید) خب شما باید به کمپانی ادوبی پیامی بدید و منتظر بمانید تا با بروزرسانی جدید این مشکل بر طرف شود. اما این موضوع در دنیای متن‌باز نیست. شما میتوانید خود،مشکل را برطرف کنید و یا با عنوانش در گپ های مخصوص راهکاری از دوستان خود جویا شوید. به همین راحتی.موضوع دیگر اطمینان است. من شخصا به نرم افزاری که هزاران برنامه نویس آن را زیر نظر گرفتند بیشتر اعتماد میکنم تا نرم افزاری که گروهی کوچک آن را زیر نظر میگیرند.طرف دیگر ، نرم افزار های متن‌باز کاملا قابل انعطاف هستند. نه تنها به دلیل اینکه شما میتوانید کد ها را بخوانید و قسمت‌هایی که میخواهید را به آن اضافه کنید بلکه بیشتر آنها ماژولار هستند. به این معنی که یا شما و یا افراد دیگر قسمت هایی را که دوست داشتید این نرم افزار داشته باشد برای خود نوشته ایید و در یک پک جداگانه در اختیار عموم قرار دادید تا باقی مردم نیز از آن بهرمند شوند.یک بازی برد بردتوسعه دهندگان و برنامه نویسان با فداکاری بسیار فرزند خود را که چند شبانه روز برای بزرگ کردنش زحمت کشیدند را در اختیار عموم قرار میدهند. این مسئله نه تنها برای کاربران خوب است بلکه کمک بزرگی برای توسعه بیشتر و نوآوری میشود. همین مسئله است که باعث میشود یک برنامه نویس برای ساخت نرم‌افزار جدیدش دوباره نرود و چرخ را از ابتدا اختراع کند!از طرف دیگر همانطور که پیش تر گفته بودم، بعد از انتشار نرم‌افزار تعداد بیشتری برنامه نویس و توسعه دهنده بر روی نرم افزار کار میکنند که خود این هم باعث تسریع در انتشار نسخه بعد میشود و هم باعث بر طرف شدن کدهای اشتباه و باگ ها میشود.سخن پایانیبعنوان یک طرفدار از Open source هر چه میدانستم را نوشتم و بعنوان یک نویسنده سعی کردم آن را روان عنوان کنم. اما خیلی از مطالب را از قلم انداختم. چرا که از حوصله مقاله خارج بود و سعی میکنم در مقاله های بیشتر تک تک موارد جا مانده را برای شما به قلم بیاورم.بعنوان کلام پایانی دوست دارم نقل قولی از آقای لینوس توروالدز داشته باشم که با Open source شوخی کرده:من آدم تنبلی هستم، برای همین از متن‌باز استفاده میکنم تا دیگران جای من کد بزنند  :)از اینکه تا اینجا با من همراه بودید از شما سپاسگذارم.پست ها و مقاله های بیشتر من را میتوانید هم در ویرگول و هم در وب سایت آموزشی اندروید‌آرنا دنبال کنید.منبعبا نظر دادن هم من رو برای بهتر نوشتن کمک میکنید و هم به من انگیزه میدید که بیشتر بنویسم</description>
                <category>Dev.Ess</category>
                <author>Dev.Ess</author>
                <pubDate>Wed, 01 Jul 2020 20:56:30 +0430</pubDate>
            </item>
                    <item>
                <title>همه چیز درباره جاوا ( Java ):</title>
                <link>https://virgool.io/javacup/%D9%87%D9%85%D9%87-%DA%86%DB%8C%D8%B2-%D8%AF%D8%B1%D8%A8%D8%A7%D8%B1%D9%87-%D8%AC%D8%A7%D9%88%D8%A7-java-ispidc6hpbyd</link>
                <description>خیلی از ما با زبان برنامه نویسی جاوا ‌( Java ) سر و کار داریم.این مقاله برای افرادی نوشته شده که میخواهند بهتر و بیشتر در مورد زبان پرقدرت جاوا اطلاعات کسب کنند.با ما همراه باشید.تاریخچه زبان جاوا ( Java ):در اوایل دهه ۹۰ میلادی، شرکت سان‌مایکروسیستمز در حال توسعه نرم افزاری برای استفاده ابزار های الکترونیکی بود که به پروژه green شهرت گرفت و آقای جیمز گاسلینگ مسولیت تیم را بر عهده گرفت.بعد از زمان کوتاهی آقای گاسلینگ به این نتیجه رسید که بهتر است برای این پروژه یک زبان برنامه نویسی جدید درست کند تا نسبت باقی زبان ها بیشتر قابل درک و قدرتمند تر باشد و در عین حال با تمامی ابزار های الکترونیکی کار کند. پس به سراغ زبان C و ++C رفت و پایه های اولیه زبان قدرتمند جاوا (Java) را گذاشت و این زبان را ‌OAK یا بلوط نامید.هرچند که خالق این زبان یعنی آقای جیمز گاسلینگ این زبان را برای پروژه خود و برای رفع نیاز های خود ساخته بود اما شرکت سان‌مایکروسیستمز که با پیشرفت و گسرش اینترنت متوجه شد این زبان قابلیت و تطابق های زیادی دارد تصمیم گرفت این زبان را گسترش دهد و این موضوع را با تیم خالق آن در میان گذاشت. در نتیجه تیم برای بحث و مشورت به کافه‌ای رفتند و شروع به صحبت کردند و در آخر نام Java را به آن دادند. اسمی بر گرفته از کلمه عامیانه “قهوه” (یا فنجانی قهوه)برای همین نماد این زبان فنجانی قهوه است، که هم به اعتیاد بیشتر برنامه نویسی ها به قهوه را نشان میدهد و هم یادآور روز نام گذاری این زبان است و همچنین به خود این زبان اشاره میکند. جالب است بدانید که در پشت این نام حرف های زیادی است که میگویند این اسم بر گرفته از اول اسم هر فرد است یعنی James Gosling و Arthur Van Hoff و همچنین Andy Bechtolsheim است و یا مخففی از واژه Just Another Vertual Accelerator و … ، باید بگویم هرچه باشد امروز Java نام یکی از قدرتمندترین زبان های برنامه نویسی است که در هر وسیله ای که میبینید ممکن است بکار رفته باشد. و اینجاست که معنی واقعی شعار این زبان یعنی یک‌بار بنویس و همه‌جا اجرا کن را میدهد. https://virgool.io/p/ispidc6hpbyd/%F0%9F%93%B7%D8%AC%DB%8C%D9%85%D8%B2%D8%A2%D8%B1%D8%AA%D9%88%D8%B1%DA%AF%D8%A7%D8%B3%D9%84%DB%8C%D9%86%DA%AF%D9%85%D9%84%D9%82%D8%A8%D8%A8%D9%87Dr.Java%D8%8C%DB%8C%DA%A9%DB%8C%D8%A7%D8%B2%D8%AF%D8%A7%D9%86%D8%B4%D9%85%D9%86%D8%AF%D8%A7%D9%86%DA%A9%D8%A7%D9%85%D9%BE%DB%8C%D9%88%D8%AA%D8%B1%D9%88%D8%AE%D8%A7%D9%84%D9%82%D8%B2%D8%A8%D8%A7%D9%86%D8%AC%D8%A7%D9%88%D8%A7 سرانجام در سال ۱۹۹۵ شرکت سان بصورت رسمی OAK را به Java تغییر نام داد و توسط مایکروسافت و نت اسکیپ پشتیبانی شد.چندی بعد یعنی در سال ۲۰۱۰ شرکت سان که در حقیقت ریشه اصلی این زبان بود توسط شرکت بزرگ آمریکایی به نام اوراکل خریداری شد و مالک اصلی زبان جاوا اکنون شرکت اوراکل است.آقای جیمز آرتور گاسلینگ ملقب به Dr.Java، یکی از دانشمندان کامپیوتر و خالق زبان جاوایک‌بار بنویس و همه‌جا اجرا کن :خب این مسئله چطور میشود که با یک بار نوشتن بتوانی آن را بر روی هر سیستم و یا ابزاری که میخواهی اجرا کنی؟اینجاست که ما به Java Virtual Machine و یا ماشین مجازی جاوا (JVM) نیاز پیدا میکنیم. کاری که این ماشین مجازی برای ما انجام میدهد به دو صورت است:ایجاد یک محیط برای اجرای کد در سیستم های مختلفبهینه سازی و مدیریت حافظه آن سیستمدر حقیقت شما یکبار برنامه را می‌نویسید و به کمک ماشین مجازی جاوا (JVM) آن‌را در سایر پلتفرم‌ها اجرا می‌کنید، به همین دلیل است که می‌گوییم جاوا یک زبان چند‌سکویی (Cross Platform) است، همین امر در ابتدای کار به شدت بر محبوبیت این زبان افزود.شاید این سوال بوجود بیایید که دقیقا این ماشین مجازی چه کاری انجام میدهد که این زبان را اینقدر قابل انعطاف کرده؟هنگامی که شما یک سری کد را مینویسید و آن را اجرا میکنید، برنامه شما به مجموعه کدها به نام بایت کد تبدیل میشود که ماشین مجازی درک کاملی از آن ها دارد. اینجا ماشین مجازی خودی نشان میدهد و این بایت کد ها را بر اساس تنظیمات و تعاریف خاص، برای سیستم عامل ترجمه و قابل اجرا میکند. در حقیقت معجزه جاوا نه خود زبان بلکه این ماشین مجازی است.کاربرد جاوا :همانطور که گفتیم ماشین مجازی جاوا یا همان JVM به ما کمک میکند تا با یک بار نوشتن کد بتوانیم در هر ابزار و هر سیستم‌عامل آن را اجرا کنیم. اگر بخواهیم به زبان ساده تر بگوییم یعنی هر چیزی که اطراف ما وجود دارد و به نوعی کامپیوتر محسوب شود، میتوان کد های جاوا را بخواند. حال بخواهد ابر کامپیوتر باشد یا یک لبتاب ساده، سرور باشد یا یک گوشی همراه یا شاید سیستم کنترل ماشین های صنعتی یا حتی یک کنترل از راه دور برای درب خانه. میتوانید از آن برای ساخت برنامه های آمارگیری استفاده کنید یا بازی کامپیوتری با آن بنویسید.همین مسئله باعث شد که از لحظه تولد جاوا یعنی روزی که آقای جیمز گاسلینگ به درخت بلوط کنار اتاق کارش خیره شده بود تا اسمی به ذهنش برسد تا به امروز جزو ۳ زبان برتر دنیا باشد و با والدین خود یعنی ‌++C و C رقابت مرگ باری داشته باشد و در سال هایی از آنها پیشی بگیرد.پای این ابر قدرت در ایران هم باز شده و در بیشتر سازمان های دولتی و غیر دولتی استفاده میشود. پس نتیجه میگیریم شما با یادگیری جاوا در حد متوسط رو به بالا، میتوانید در انتظار یک شغل خوب با درآمد قابل قبولی باشید.سکوهای جاوااز زبان جاوا گفتیم و به این نتیجه رسیدیم که زبان جاوا گستردگی خود را دارد. حال میخواهیم پلتفرم های این زبان را معرفی کنیم تا درک ساده تری به این زبان داشته باشیم.Java SE: این نسخه که مخفف Standard Edition و در حقیقت نسخه‌ی اصلی می‌باشد، شامل کتابخانه‌های اصلی زبان جاواست که با استفاده از آن می‌توان برای دسکتاپ و سرورها برنامه‌نویسی کرد، این نسخه را با نام J2SE نیز می‌شناسند.Java EE: این نسخه مخفف شده‌ی عبارت Enterprise Edition به مفهوم نسخه‌ی تجاری بوده و برای ساخت برنامه‌های تحت وب و اپلیکیشن‌های تجاری و سازمانی مورد استفاده قرار می‌گیرد، نام دیگر این نسخه J2EE است.Java ME: این نسخه مخفف Micro Edition بوده و در حقیقت نسخه‌ای کوچک و سبک است که برای برنامه‌نویسی ریزپردازنده‌ها و تلفن‌ها مورد استفاده قرار میگیرد، مانند سایر نسخه‌ها، این نسخه نیز با نام مستعار J2ME شناخته می‌شود.جاوا و اپلت‌ها (applet)بطور کلی اپلت به معنی برنامه های کوچکی  است که در دل یک برنامه بزرگ تر اجرا میشوند. این برنامک ها امکانات فراوانی برای نوشتن برنامه‌های تحت وب در اختیار برنامه‌نویسان قرار می‌دهند.همانطور که گفتیم جاوا همه چیز را در بر میگیرد و اپلت ها از این مسئله مستثنا نیستند.اپلت‌ها معمولا تک منظوره بوده و وظیفه‌ی خاصی را دنبال می‌کنند، از جمله معروف‌ترین اپلت‌های جاوا می‌توان به فلش پلیر و مدیاپلیر داخلی ویندوز که در مرورگر اینترنت اکسپلورر استفاده می‌شد اشاره کرد که بعد ها مایکروسافت سیلورلایت را معرفی کرد که بتواند با جاوا رقابت کند.اینجاست که دلیل محبوبیت جاوا برایمان روشن میشود.اهداف جاوااز روز اول که اولین کد های جاوا زده میشد، این زبان چند هدف ثابت داشت.که میتوان این اهداف را نه تنها یک هدف ساده بلکه قدرت اصلی جاوا در نظر گرفت. به چند هدف اصلی آن اشاره میکنیم:قابل فهم بودن برای تمام ابزار ها و سیستم‌عامل هاراحت و قابل درک بودنروان بودن و کنترل حافظه با دقتی بالاقابل حمل بودن ( این باعث میشود که این زبان بر روی گوشی تلفن و یا ماشین رختشویی قابل اجرا باشد.)…ابزار های مورد نیاز برای شروع کارIDE :برای کار با این زبان، ما به یک محیطی برای نوشتن کد ها نیاز داریم که بتواند که به آن IDE میگویندکه سرواژه‌ای از Integrated Development Environment و به معنای محیط توسعه یکپارچه است.در زبان جاوا از IDE های زیادی میشود اشاره کرد که در اینجا به معروف ترین آنها اشاره میکنیم :NetBeans ، یک IDE بسیار قدرتمند و محبوب برای زبان جاوا است که توسط شرکت Apache و  بصورت متن باز تولید شده. این IDE خود نیز با زبان جاوا نوشته شده.وب سایت رسمی:   https://netbeans.apache.org/مخزن رسمی:         https://gitbox.apache.org/‌IntelliJ ، این IDE توسط بزرگترین شرکت نرم افزاری و  توسعه دهنده های IDE های قدرتمند یعنی  JetBrains بصورت متن باز تولید شده که خوده این امر نشانگر قدرت بسیار زیاد این IDE است، آنقدر خوب و روان است که شرکت گوگل تصمیم گرفت تولید IDE رسمی اندروید یعنی Android Studio توسط این شرکت توسعه یابد.وب سایت رسمی:    http://jetbrains.com/مخزن رسمی :        https://github.com/Eclipse ، یکی دیگر از IDE های معروف و قدرمتند جاوا است که طرفداران زیادی دارد و توسط شرکت Eclipse Foundation بصورت متن باز تولید شد که از زبان جاوا و سی در آن استفاده شده. این IDE شاید از دید اول بسیار ساده و ناکارآمد باشد اما بعد نصب تعدادی پلاگین میتوان از کد نوشتن در این IDE لذت برد.وب سایت رسمی:   https://www.eclipse.org/مخزن رسمی :        https://git.eclipse.org/c/bluej ، شاید در هیچ یک از سایت های ایرانی چیزی در باره این IDE ندیده و نشنیده باشید. این IDE که با زبان جاوا نوشته شده، بیشتر هدفش آموزش زبان جاوا است.البته ناگفته نماند که این IDE محبوب آقای جیمز گاسلینگ هم هست. سبک و روان بودن آن یکی از مهمترین مواردی است که آن را در لیست IDE های محبوب جاوا قرار میدهد. اگر شما هم تازه کار هستید و در حال یادگیری جاوا، به شما این IDE کوچک را پیشنهاد میکنم.وب سایت رسمی:    http://bluej.org/JDK و JRE :این دو ابزار در حقیقت دو کیت برای دو دسته از افرادی هستند که با جاوا سر و کار دارند.درک هر یک از این دو ابزار برای افراد تازه کار کمی دشوار است، در نتیجه هر یک از این دو را بصورت جداگانه و مختصر تعریف میکنیم.JRE : سرواژگان Java Runtime Environment به معنای محیط  اجرای برنامه ی جاوا می باشد.در حقیقت این JRE است که بار اجرای کدهای جاوا را به دوش میکشد.JDK : سرواژه  Java Development Kit است. یک کیت کامل و ضروری از ابزارهای مورد نیاز برای توسعه، دیباگ و مانیتورینگ نرم‌افزار به زبان جاوا است.این کیت شامل بسته JRE هم میشود. به این منظور که با نصب JDK نیازی به ‌JRE ندارید.سخن آخر :شاید بشود متن های طولانی درباره زبان جاوا نوشت، از بدی و خوبی آن گفت و تجربه های شخصی هر فرد را بررسی کرد، اما قدرت این زبان تنها در چند خط هرچند طولانی قابل ذکر نیست و شما شخصا باید وارد این زبان بشوید و آن را بررسی کنید. پس نتیجه گیری نهایی را به عهده خودتان میگذارم.پست ها و مقاله های بیشتر من را میتوانید هم در ویرگول و هم در وب سایت آموزشی اندروید‌آرنا دنبال کنید.منبعبا نظر دادن هم من رو برای بهتر نوشتن کمک میکنید و هم به من انگیزه میدید که بیشتر بنویسم</description>
                <category>Dev.Ess</category>
                <author>Dev.Ess</author>
                <pubDate>Mon, 29 Jun 2020 21:06:12 +0430</pubDate>
            </item>
                    <item>
                <title>ساخت موتور جستجوی شخصی در کروم</title>
                <link>https://virgool.io/wptips/%D8%B3%D8%A7%D8%AE%D8%AA-%D9%85%D9%88%D8%AA%D9%88%D8%B1-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C-%D8%B4%D8%AE%D8%B5%DB%8C-%D8%AF%D8%B1-%DA%A9%D8%B1%D9%88%D9%85-oomj3p8gzjd2</link>
                <description>بعنوان یک برنامه نویس شاید بارها نیاز باشد به یک وب سایت بروید و در آن وب سایت جستجو کنید و این امر آنقدر تکرار شود که شاید برای شما کسل کننده باشد.  اما گوگل کروم راه کاری دارد.تصور کنید دارید یک برنامه اندروید مینویسد و میخواهید برای پیدا کردن آیکون های برنامه از سایت متریال استفاده کنید. پس هر باری که نیاز به یک ایکون دارید باید در مرورگر وارد سایت متریال و بخش ایکون ها بشید و توی جستجوی سایت چیزی که میخوایید را جستجو کنید، خیلی کسل کننده است، خیلی وقت گیر هم هست. اما چاره کار چیست؟از اونجایی که گوگل همیشه حواسش به همه چی هست برای افرادی مثل ما راهکاری جالب درست کرده که میشه گفت شما میتونید برای یک سایت خاص و برای خودتون یک موتور جستجو درست کنید. این ترفند بسیار ساده خیلی جاها مورد استفاده است و شما تنها به یک گوگل کروم نیاز دارید.(بر روی بعضی از مرورگر های دیگر هم انجام میشود که مراحل آن به همین صورت است).مرحله اول ( بررسی وب سایت)برای پیاده سازی این مورد، اول باید بررسی کنیم که وب سایت مورد نظر به چه صورتی جستوجو را انجام میدهد. برای این کار کافیست به وب سایت بروید و در جستجوی سایت موردی را بنویسید. برای مثال من وارد سایت متریال میشوم و در بخش آیکون ها واژه Menu را جستجو میکنم. به عکس زیر دقت کنید.بررسی آدرس وب سایتاگر به آدرس سایت دقت کنید میبیند که بعد از آدرس سایت و در بخشی به خصوص، واژه‌ای که جستجو شده را به من نماییش میدهد. به زبان ساده تر واژه Menu در آدرس دیده میشود. به نمونه زیر دقت کنید، در آن واژه Menu مشهود است.https://material.io/resources/icons/?search=Menu&amp;amp;amp;amp;style=baselineتمام این آدرس را کپی کنید و یا در جایی نگاه دارید تا بتوانیم از آن استفاده کنیم.مرحله دوم ( تنظیمات گوگل کروم)گوگل کروم را باز کنید. در بالا سمت راست سه نقطه وجود دارد که منو را باز میکند. بر روی آن کلیک کنید در منو باز شده به دنبال Settings(تنظیمات) بگردید.بعد از باز شدن صفحه تنظیمات، صفحه را آنقدر به پایین اسکرول کنید تا به بخش Search engine برسید و  در آن گزینه Manage search engines را انتخاب کنید.میتوانید برای راحتی کار در نوار جستجوای که در این صفحه است واژه Search engine را جستجو کنید تا بتوانید به سرعت به این بخش برسید.بخش Search engine در تنظیمات گوگل کرومیک راه ساده ترمیتوانید این آدرس را به کروم خود منتقل کنید تا مستقیم وارد این بخش شوید.chrome://settings/searchEnginesبعد از وارد شدن به بخش Manage search engines لیستی از موتورهای جستجوی معروف را در بخش اول و در بخش دو، سایت هایی که زیاد در‌ آن جستجو کردید را میبیند که گوگل هوشمندانه آنها را به این لیست اضافه کرده.هر یک از مقادیر در لیست دوم را میتوانید به وسلیه سه نقطه کنار آنها حذف و یا ویرایش کنید.ما در نظر میگیریم که سایت متریال در این بخش وجود ندارد، در نتیجه با زدن دکمه Add در بالای این لیست میخواهیم این سایت را در این بخش اضافه کنیم.با زدن این دکمه یک صفحه به شکل زیر برای ما پدیدار میشود.با زدن دکمه Add در صفحه Manage search engine با این صفحه روبرو میشویمهمانگونه که میبیند در این صفحه سه بخش جداگانه دارد که بهتر است برای گرفتن خروجی بهتر هر سه آنها پر شود.کاربرد هر بخش:Search engine: اسم دلخواهی برای موتور جستجوی خود انتخاب کنید.Keyword :این بخش به شما اجازه میدهد که با نوشتن یک واژه خاص به این موتور جستجو دسترسی پیدا کنید( کمی صبر داشته باشید تا جلو تر به آن بپردازیم.)URL:مهمترین بخش این قسمت است که باید با کمی دقت آن را پر کنیم.حال باید این موارد را تکمیل کنیم. توجه کنید که این بخش برای سایت های مختلف به صورت های مختلف پر میشود و ما تنها با مثالی از سایت متریال این بخش را تکمیل میکنیم.پر کردن هر بخشاین سه بخش را به شکل زیر پرکنید:Search engine: Material IconKeyword:این بخش بهتر است از واژه های ساده و قابل فهم استفاده شود تا شما بتوانید بهتر و سریع تر به وب سایت مورد نظر دسترسی داشته باشید برای مثال من از واژه زیر استفاده میکنم :iconURL : آدرسی که در بخش اول آن را ذخیره کردید را در این بخش بگذارید و به جای واژه Menu از واژه s% استفاده کنید. توجه کنید کوچکترین تغییر در آدرس باعث کار نکردن این ترفند میشود. پس با دقت این مورد را انجام دهید به نمونه زیر دقت کنید:https://material.io/resources/icons/?search=%s&amp;style=baselineحال که تمام موارد پر شد باید چیزی شبیه به شکل زیر داشته باشیم.نمونه ای از صفحه اضافه کردن موتور جستجوی جدیددکمه save (ذخیره) را بزنید تا تغییرات انجام شده ثبت و پنجره بسته شود.کار ما در این بخش تمام شد.مرحله سوم ( استفاده از موتور جستجوی شخصی)قبل از ادامه باید به شما تبریک بگم، شما صاحب یک موتور جستجوی هستید.برای استفاده از این موتور جستجو یک صفحه جدید باز کنید و در آدرس‌بار ‌Keyword که در بخش دوم آن را نوشته بودید را بنویسید و دکمه اسپیس را بزنید و  واژه‌ای که دوست دارید جستجو شود را بنویسید و دکمه اینتر را بزنید.بله گوگل کروم وارد صفحه مورد نظر میشود و جستجو را انجام میدهد!بعد از نوشتن keyword و فشردن اسپیس متوجه میشود که تغییری صورت میگیرد و حال میتوانید واژه را جستجو کنیدچند نمونه دیگر ...در این بخش آدرس  چند وب سایت دیگر را میگذارم و URL آنها را مینویسم تا بهتر متوجه شوید.flaticonآدرس وب سایت با جستجوی واژه Menu :https://www.flaticon.com/search?word=Menuآدرس URL که باید در بخش تنظیمات گوگل کروم اضافه شود:https://www.flaticon.com/search?word=%sstackoverflowآدرس وب سایت با جستجوی واژه Android Menu :https://stackoverflow.com/search?q=android+menuآدرس URL که باید در بخش تنظیمات گوگل کروم اضافه شود:https://stackoverflow.com/search?q=%sیک پیشنهاد خوب!شما میتوایند برای سایت هایی که بخش های جداگانه دارند و شما میخواهید به این بخش ها به سادگی دسترسی پیدا کنید هم از این روش استفاده کنید برای مثال وب سایت w3school شامل بخش هایی مثل HTML و PHP و … است. ببینیم چطور میشه به این بخش ها به سادگی دسترسی پیدا کنیم.برای این کار کافیست آدرس سایت را جستجو کرده  و قسمتی از آدرس را که میخواهیم واژه خاصی در آن تغییر کند را حذف کنیم و واژه s% را جای گذاری کنیم و همچون مراحل بالا با آن برخورد میکنیم.مثالی از لینک:https://www.w3schools.com/%s/با گذاشتن این آدرس در تنظیمات گوگل کروم میتوانیم با نوشتن کلیدواژه، فشردن اسپیس و نوشتن CSS به بخش مربوط به CSS وارد شویم. پست ها و مقاله های بیشتر من را میتوانید هم در ویرگول و هم در وب سایت آموزشی اندروید‌آرنا دنبال کنید.منبعبا نظر دادن هم من رو برای بهتر نوشتن کمک میکنید و هم به من انگیزه میدید که بیشتر بنویسم</description>
                <category>Dev.Ess</category>
                <author>Dev.Ess</author>
                <pubDate>Sat, 27 Jun 2020 11:06:50 +0430</pubDate>
            </item>
                    <item>
                <title>گیت : هیولای هزارپا</title>
                <link>https://virgool.io/@Ess/%DA%AF%DB%8C%D8%AA-%D9%87%DB%8C%D9%88%D9%84%D8%A7%DB%8C-%D9%87%D8%B2%D8%A7%D8%B1%D9%BE%D8%A7-qob5yauikbbi</link>
                <description>برای اولین پست قصد دارم گیت رو معرفی کنم. امیدوارم این پست مورد پسند همه دوستان باشه.لازم به ذکر است که قصدم تنها یک آشنایی با گیت است و هیچ آموزشی در مورد کار با این نرم افزار داده نمیشه.احتمالا تا کنون نام git به گوش‌تان خورده. در پایین قسمتی از توضیحات ویکی‌پدیا را  در مورد این نرم‌افزار کنترل نسخه قدرتمند باهم میخوانیم.گیت یک نرم‌افزار کنترل نسخه و از مدل نرم‌افزارهای آزاد و متن‌باز برای بازنگری کد منبع توزیع شده و مدیریت منبع کد است، که برای دنبال کردن تغییر فایل‌های کامپیوتری و دنبال کردن کارهای انجام شده روی آن‌ها توسط افراد مختلف است. هدف اولیه این نرم‌افزار برای استفاده در پروژه‌های نرم‌افزاری بوده‌است ولی می‌توان از آن تنها برای دنبال کردن تغییر فایل‌ها هم استفاده کرد.گیت ابتدا برای توسعهٔ لینوکس توسط لینوس تروالدز به وجود آمد، اکنون پروژه‌های فراوانی از آن الهام گرفته‌اند. هر دایرکتوری کاری در گیت یک مخزن کامل با تاریخچهٔ کامل تغییرها و قابلیت بازنگری آن‌ها است. برای کار با آن نیازی به دسترسی به شبکه یا سرور مرکزی وجود ندارد.سیستم کنترل نسخهتصور کنید تیمی در نقطه های مختلف این کره خاکی دارند بر روی یک پروژه کار میکنند. هر چند نفر از اعضای این تیم باید روی یک بخش مشخص کار کنند. بعد از نوشتن کدها نیاز است تمام این کد ها بصورت یکپارچه جمع آوری، قسمت‌هایی که ممکن است تداخل داشته باشند حذف و در نهایت یک جا ذخیره شوند. شاید هم شخصی یا اشخاصی جایی اشتباه کردند و نیاز است به گذشته برگردند. اینجا است که نیاز به یک سیستم کنترل نسخه احساس میشود.یک پروژه به چندین شاخه میتوان تقسیم شود که هر یک روند خود را داشته باشدسیستم کنترل نسخه پروژه ما را به چند شاخه مختلف تبدیل میکند. هر شاخه نسبت به دیگری کاملا مجزا است. میتوان هر شاخه را پیش برد و در نهایت آن را به شاخه اصلی متصل کرد.موضع دوم، تهیه گزارش کامل افراد است که این مسئله دو خصوصیت اصلی دارد.به افراد نشانن میدهد که هر خط توسط چه شخصی نوشته شده.مثل یک ماشین زمان عمل میکند. یعنی به افراد این اجازه را میدهد که به گذشته بروند، مشکلی را بر طرف کنند و یا کد های از دست رفته را بازگردانند.انواع کنترل نسخه هانرم افزار های کنترل ورژن به دو دسته مختلف تقسیم میشوند که به شرح زیر است:Centralized :در این دسته تعدادی کاربر یا برنامه‌نویس همراه با یک سرور وجود دارد. تمام تغییرات به همراه یک تاریخچه دقیق در سرور ذخیره میشود. عبارت Centralized یا متمرکز در حقیقت از عملکرد این نوع نرم افزار ها می‌آید.نرم افزار Subversion از این روش استفاده میکند و یکی از رغیب های اصلی git است.Distributed : این دسته کاملا با برعکس Centralized عمل میکند. به این صورت که در این دسته هیچ سرور واحدی وجود ندارد. در حقیقت هر سیستم، خود به تنهایی که سرور محسوب میشود.این دسته هرچند نسبت به دسته دیگر پیچیدگی خود را دارد اما امنیت آن بیشتر است. چرا که تمام اطلاعات نه تنها در یک سرور خاص، بلکه در تمام سیستمهایی که دارند باهم بر روی یک پروژه کار میکنند ذخیره شده است.گیت (git) از این روش استفاده میکند.هر یک از این دو دسته شامل نرم افزار های بسیار است. میتوان با یک جستجوی ساده به لیست آنها دسترسی پیدا کنید.و اما گیت ...حالا که با مفهوم version control system آشنا شدیم میتوانیم بهتر از قبل گیت را بشناسیم.بصورت خلاصه git یک نرم‌افزار کنترل نسخه از نوع Distributed است. این نرم‌افزار در سال ۲۰۰۵ توسط آقای لینوس بندیکت توروالدز (توسعه دهنده و معمار ارشد هسته لینوکس) توسعه یافت.سرویس‌های هاستینگ سورس‌کدبعد از عمومی شدن گیت،  به سرعت در میان برنامه نویسان شروع به رشد کرد. از این رو وب‌سایت های بسیاری شروع به خدمات دهی به کاربران گیت کردند. این وب‌سایت ها برای ساخت مخازن مختلف، سرور های قدرتمندی را در خدمت برنامه نویسان گذاشتند که تعدادی از آنها را معرفی میکنیم.۱. GitHub :یکی از مشهور ترین و ایمن‌ترین پلتفرم های هاستینگ برای میزبانی از پروژه نرم‌افزاری میباشد. چندی پیش این وب سایت توسط مایکروسافت خریداری شد. روزانه چند میلیون کامیت در این وب سایت زده میشود.۲. GitLab :یکی دیگر از پلتفرم‌ها است که بصورت متن ‌باز ارائه شده. خیلی از افراد گیت‌لب را رقیب اصلی گیت‌هاب میدانند.مهمترین ویژگی گیت‌لب، خدمات رایگانی بود که ارائه میداد، خدماتی که گیت‌هاب از آن کسب در آمد میکرد.‌امروزه تعداد زیادی از خدمات گیت‌هاب رایگان شده است. همین مسئله باعث سخت شدن انتخاب میشود.۳. GitBucket :یک پلتفرم گیت اپن‌سورس، با قابلیت توسعهٔ بالا است. گیت‌باکت در ماشین مجازی جاوا اجرا میشود.این پلتفرم ویژگی‌هایی همچون امکان بررسی ریپازیتوری، پیگیری خطا، پول ریکوئست یک یا چند کامیت در بِرنچ‌های متفاوت، داکیومنت و ویکی، ای‌پی‌آی سازگار با گیت‌هاب و همچنین یک سیستم مبتنی بر پلاگین برای توسعه ویژگی‌های اصلی آن دارا است.۴. Gitea :یک سرویس اپن‌سورس و رایگان است. تنها هدف و اصلی ترین دلیل بوجود آمدنش راحتی در انجام کار است. هرچند ممکن است خیلی از افراد این سرویس را نشناسند، اما بعد از کار با آن شیفته راحتیش میشوند.۵. GitKranken :محیط خشک و ترمینالی گیت را به یک محیط گرافیکی و زیبا تبدیل کرده. این یکی از اصلی ترین دلیل های شهرتش است.گیت‌لب بزرگترین رقیب برای گیت‌هاب به حساب می آید.همیشه جنگ بین نرم افزار ها و ارائه دهنگان سرویس های مختلف زیاد بوده. هرکس تبلیغ خود را میکند و خدمات بخصوص خود را میدهد. این مسئله باعث گیچ شدن تازه وارد ها میشود. اما تنها چیزی که اینجا مهم است این است که شما دارید از Git استفاده میکنید. تک تک وب سایت ها را سر بزنید. با هر یک که راحت هستید شروع به کار کنید. شاید هر یک از نظر خدمات گوناگون با یکدیگر متفاوت باشند اما همه یک کار را میکنند.ساختار و عمل کرد گیتگیت از سه مرحله  ساخته شده که به شرح زیر است:Working Directory :مسیر اصلی و پوشه پایه‌ای نرم‌افزار شما است. اگر هر کد در این مرحله باشد یعنی در گیت جایی نگرفته. این مرحله زمانی اتفاق میوفتد که یا نرم‌افزار را تازه به گیت معرفی کرده باشید و یا تغییری در کد ها یا پوشه ها ایجاد کرده باشید.Staging Area :در اینجا یک قدم به ثبت پوشه و کد هایتان در داخل گیت نزدیک تر میشویم. این مرحله برای ذخیره تغییرات است و در این مرحله میتوانید کدهای جدیدتان را با قبل مقایسه کنید.این مرحله به Stage شهرت دارد.Git Directory :این مرحله آخرین مرحله گیت است. در اینجا است که گیت وظیفه های خود را انجام میدهد و کدها را بصورت یکپارچه ذخیره میکند.بهتر است بدانید که کدهای شما در کدام مرحله از گیت است و این مرحله دقیقا چه وظیفه‌ای دارد. چرا که بهتر میتوانید گیت را درک و با آن کار کنید.چند خط پایانیاین مقاله را تنها برای آشنایی افراد با گیت نوشتم. مسلما اگر شما ندانید گیت چیست، خیلی سخت متوجه میشوید که چگونه باید باهاش کار کرد .چون قصد آموزش نداشتم، به زبانی ساده و خلاصه موارد مهم را عنوان کردم، اما این دلیلی نمیشود که بگوییم گیت همین است و بس. گستردگی گیت به قدری است که شایستگی رتبه اول در لیست سیستم‌های کنترل نسخه را دارد.پست ها و مقاله های بیشتر من را میتوانید هم در ویرگول و هم در وب سایت آموزشی اندروید‌آرنا دنبال کنید.منبعبا نظر دادن هم من رو برای بهتر نوشتن کمک میکنید و هم به من انگیزه میدید که بیشتر بنویسم </description>
                <category>Dev.Ess</category>
                <author>Dev.Ess</author>
                <pubDate>Thu, 25 Jun 2020 18:45:45 +0430</pubDate>
            </item>
            </channel>
</rss>