Seyed Abolfazl Mousavi

سید ابوالفضل موسوی

کانبان بورد

سید ابوالفضل موسوی | شنبه هفدهم خرداد ۱۴۰۴ | 13:27

تابلوی کانبان ابزاری برای مدیریت پروژه به صورت چابک یا چالاک یا Agile است که برای کمک به تجسم کار، محدود کردن کار در حال انجام و به حداکثر رساندن کارایی یا جریان کار طراحی شده است. این تابلو می‌تواند به تیم‌های چابک و DevOps کمک نماید تا در کار روزانه خود نظم ایجاد کنند. تابلوهای کانبان از کارت‌ها، ستون‌ها و بهبود مستمر استفاده می‌کنند تا به تیم‌های فناوری و خدمات کمک کنند تا به میزان مناسبی از حجم کار متعهد شوند و آن را به پایان برسانند!

کانبان به لطف گروه کوچک اما قدرتمندی از طرفداران خود توانسته تحولات و بهبودهای فراوانی را با گذر از ریشه‌های خود در تولید ناب یا Lean Manufacturing دریافته و درک نماید. تلاش‌های دیوید اندرسون در تعریف روش کانبان، به ورود کانبان به فضای نرم‌افزار و خدمات موجود در فناوری اطلاعات کمک کرد و کانبان شخصی یا Personal Kanban، نوشته جیم بنسون و تونیان دی‌ماریا، منتهی به توسعه‌ی کاربردهای کانبان به حیطه‌های صنعتی و عملیاتی که باورتان نمی‌شود گردید. بهره‌گیری آسان از بورد کانبان باعث شده تا استفاده از آن روزانه شده به طوری که نمی‌توان بدون آن زندگی کرد. چیزی که باعث می‌شود تمایز و اهمیت ویژه‌ی کانبان می‌شود، ارزش‌های کانبان و به طرز شگفت‌آوری فقدان قوانین دست‌وپاگیر سازمانی و بروکراتیک پیچیده‌ی اداری است. ارزش‌های کانبان احترام به افراد و بهبود همیشگی است. دیوید اندرسون ثابت کرد که تابلوهای کانبان را می‌توان به پنج جزء تقسیم کرد: سیگنال‌های بصری، ستون‌ها، محدودیت‌های کار در حال انجام، نقطه تعهد و نقطه تحویل.

سیگنال‌های بصری: یکی از اولین چیزهایی که در مورد تخته کانبان قابل اشاره است. کارت‌های بصری مانند چسب‌ها، بلیط‌ها یا موارد دیگر از جمله موارد قابل اشاره هستند. تیم‌های کانبان تمام پروژه‌ها و موارد کاری خود را روی کارت‌ها می‌نویسند. برای تیم‌های چابک، هر کارت می‌تواند یک داستان کاربر را در بر بگیرد. این سیگنال‌های بصری پس از قرار گرفتن روی تخته، به هم‌تیمی‌ها و ذی‌نفعان کمک می‌کنند تا به سرعت بفهمند که تیم روی چه چیزی کار می‌کند.

ستون‌ها: یکی دیگر از ویژگی‌های بارز تخته کانبان، ستون‌ها هستند. هر ستون نشان‌دهنده یک فعالیت خاص است که در کنار هم یک «گردش کار» را تشکیل می‌دهند. کارت‌ها تا زمان تکمیل، در گردش کار جریان می‌یابند. گردش‌های کار می‌توانند به سادگی «برای انجام»، «در حال انجام»، «تکمیل شده» یا بسیار پیچیده‌تر باشند.

محدودیت‌های کار در حال انجام (WIP): محدودیت‌های WIP حداکثر تعداد کارت‌هایی هستند که می‌توانند در هر زمان معین در یک ستون قرار بگیرند. ستونی با محدودیت WIP سه، نمی‌تواند بیش از سه کارت در خود داشته باشد. وقتی ستون به «حداکثر» رسید، تیم باید روی آن کارت‌ها تمرکز کرده و آن‌ها را قبل از این‌که کارت‌های جدید بتوانند به آن مرحله از گردش کار وارد شوند، به جلو حرکت دهند. این محدودیت‌های WIP برای آشکار کردن گلوگاه‌های گردش کار و به حداکثر رساندن جریان کار حیاتی هستند. محدودیت‌های WIP یک علامت هشدار اولیه به شما می‌دهند که شما بیش از حد کار کرده‌اید.

نقطه تعهد: تیم‌های کانبان اغلب فهرستی از کارهای عقب‌مانده برای هیئت مدیره خود دارند. در این صورت مشتریان و هم‌تیمی‌ها ایده‌هایی برای پروژه‌هایی که تیم می‌تواند در صورت آمادگی آن‌ها را انتخاب کند، قرار می‌دهند. نقطه تعهد لحظه‌ای است که یک ایده توسط تیم انتخاب شده و کار روی پروژه آغاز می‌شود.

نقطه تحویل: نقطه تحویل، پایان گردش کار یک تیم کانبان است. برای اکثر تیم‌ها، نقطه تحویل زمانی است که محصول یا خدمات در دست مشتری است. هدف تیم این است که کارت‌ها را از نقطه تعهد به نقطه تحویل در اسرع وقت برساند. زمان سپری شده بین این دو، زمان تحویل نامیده می‌شود. تیم‌های کانبان به طور مداوم در حال بهبود هستند تا زمان تحویل خود را تا حد امکان کاهش دهند.

یک تخته کانبان با این پنج عنصر بدون شک تیم شما را برای موفقیت آماده می‌کند. اما دیدگاه مخالفی وجود دارد. جیم بنسون می‌گوید که کانبان فقط دو قانون دارد: محدود کردن کار در حال انجام و تجسم کار شما. اگر فقط با این قوانین شروع کنید و آن‌ها را در کار خود اعمال کنید، تخته کانبان شما بسیار متفاوت از آنچه در بالا توضیح داده شد، خواهد بود. و اشکالی ندارد! جیم طرفدار شروع فقط با این دو قانون است زیرا به گفته او، "هرچه قوانین بیشتری اضافه کنید، در زمینه‌های صنعتی و عملیاتی کمتری قابل استفاده خواهد بود."

پیشنهاد من بهره‌گیری از تخته‌ی کانبان بدون هرگونه محدودیتی است که در آن دو جاب تعریف شده است:

1) بلندمدت یا long term

2) کوتاه مدت یا short term

باید ذات کانبان را با مدیریت چالاک تطبیق داد و شاید بسیاری از جاب‌ها طی اسپرینت‌های روزانه از حیض انتفاع ساقط شده و دیگر جایی در تخته‌ی کانبان نداشته باشند و یا با تکرار تعویق و بررسی در زمره‌ی کارهای بلندمدت قرار گرفته تا خط سیر و گردش کار متفاوت و نزدیک به تیم Administration یافته و در صورت صلاحدید اسکرام مستر و یا مدیر پروژه به عنوان بخشی جدایی‌ناپذیر از امور اداری درآید. معمولا چنین جاب‌هایی ذاتی نزدیک به پشتیبانی و یا نگهداری دارند.

کانبان را می‌توان با محیط‌های زیادی، از تولید گرفته تا منابع انسانی، و توسعه نرم‌افزار چابک و DevOps، تطبیق داد. نوع محیطی که کانبان با آن تطبیق می‌یابد، اغلب تعیین می‌کند که تخته فیزیکی باشد یا دیجیتال. یک پروژه ساختمانی می‌تواند با یک تخته فیزیکی در یک تریلر مدیریت شود و تیم‌های نرم‌افزاری بسیار زیادی از تخته‌های کانبان دیجیتال استفاده می‌کنند.

ساده‌ترین تخته‌های کانبان، تخته‌های فیزیکی هستند که به ستون‌های عمودی تقسیم شده‌اند. تیم‌ها یک تخته سفید یا تخته سیاه را علامت‌گذاری می‌کنند و یادداشت‌های چسبی را روی تخته قرار می‌دهند. این یادداشت‌های چسبی در طول گردش کار حرکت می‌کنند و پیشرفت را نشان می‌دهند.

یکی از مزایای تخته فیزیکی این است که «همیشه روشن» یعنی همیشه قابل دسترس است البته شما نمی‌توانید روی یک تخته سفید چرخان غول‌پیکر که درست کنار میزتان قرار دارد، یک تب جدید باز کنید ولی راه‌اندازی آن ساده است، نشان دادن آن به دیگران آسان است و اغلب اوقات راه بهتری برای برقراری ارتباط با تیم‌های ویژه و تخصصی فنی می‌باشد. با این حال، تخته‌های فیزیکی برای تیم‌های از راه دور یا افرادی که مانند من دست‌خط بدی دارند ایده‌آل نیستند.

فرض کنید به صورت بهینه نرم‌افزاری در حال توسعه است و شرکت‌ها مرتب در حال رصد و فهم این موضوع هستند که کاربران چه نسخه‌هایی از یک صفحه وب یا محصول را بیشتر دوست دارند. آن‌ها از Jira برای ردیابی اقلام کاری بزرگ و کوچک استفاده می‌کنند، اما شکافی فنی وجود دارد. تیم‌های مختلف در جیرا مشغول به کار هستند، اما با یکدیگر صحبت نمی‌کنند. برای این‌که همه در جریان امور باشند، استفاده از یک تخته کانبان فیزیکی بزرگ با عنوان «دیوار کار» مناسب است و شکاف و گپ به وجود آمده را از میان می‌برد تا فهم و درکی عمومی از وضعیت پروژه تا آخرین نفرات موجود در برگ‌های درخت فلوچارت سازمانی و سلسله مراتب اداری فراهم شود.

هیئت مدیره تمام پروژه‌هایی را که تیم مهندسی روی آن‌ها کار می‌کند به همراه معیارها، اعضای تیم و وضعیت آن‌ها را در معرض نمایش قرار داده است. اگرچه این امر برای درک کل نمونه کارهای آنها مفید بود، اما ارزش جالب‌تری نیز در حال آشکار شدن بود.

در ابتدا، دیوار کار فقط شامل «کارهای در لیست انتظار انجام»، «کارهای در حال انجام» و «کارهای انجام شده» است، اما با گذشت زمان کارشناسان امر و اعضای فنی و اداری شروع به گفت‌وگو در مورد نحوه کار می‌کنند و به لطف این گفتگوها، دیوار کار رشد و تکامل یافته و در عرض چند هفته تصویر واضح‌تری از نحوه انجام کار نسبت به گذشته وجود خواهد داشت.

همزمان با این‌که سیستم کانبان مورد توجه تیم‌های نرم‌افزاری و مهندسی قرار گرفت، تابلوهای کانبان نیز دست‌خوش تحول دیجیتالی شدند. تابلوهای دیجیتال به تیم‌هایی که فضای اداری فیزیکی مشترکی ندارند، اجازه می‌دهند تا از تابلوهای کانبان به صورت از راه دور و غیرهمزمان استفاده نمایند.

ترلو روشی سریع و ساده برای ساخت یک تابلوی کانبان دیجیتال است. این تنظیمات تنها با چند کلیک انجام می‌شود تا لیست‌های دیجیتالی ایجاد شوند که مراحل فرآیند کانبان شما را نشان می‌دهند و روی یک تابلو قرار می‌گیرند که تمام اعضای تیم می‌توانند به آن دسترسی داشته باشند و آن را مدیریت نمایند. به صورت معمول شرکت‌های ایران به موجب محدودیت Iran-Access مجبورند از سکوهای On-Premise استفاده نمایند بنابراین آلترناتیو متن باز و مبتنی بر نگارش Community مانند محصول OpenProject قابل توصیه می‌باشد. تفاوت بین کانبان و اسکرام در واقع بسیار ظریف است. طبق اکثر تفاسیر، تیم‌های اسکرام از یک تخته کانبان استفاده می‌کنند، فقط به همراه فرآیندهای اسکرام، مصنوعات و نقش‌های موجود در آن، با این حال برخی تفاوت‌های کلیدی وجود دارد:

  1. اسپرینت‌های اسکرام تاریخ شروع و پایان دارند در حالی که کانبان یک فرآیند مداوم است.
  2. نقش‌های تیمی در اسکرام مانند مالک محصول، تیم توسعه و اسکرام مستر به وضوح تعریف شده‌اند، در حالی که کانبان هیچ نقش رسمی ندارد. در هر دو وضعیت روابط بین افراد به صورت خودکار و طی زمان و استفاده از روش‌های استاندارد شکل گرفته و به وجود می‌آید.
  3. تخته کانبان در طول چرخه حیات یک پروژه استفاده می‌شود در حالی که تخته اسکرام پس از هر اسپرینت پاک و راه‌اندازی مجدد می‌شود.
  4. یک تخته اسکرام تعداد مشخصی از وظایف و مهلت‌های دقیقی برای تکمیل آن‌ها دارد.
  5. تابلوهای کانبان از نظر وظایف و زمان‌بندی انعطاف‌پذیرتر هستند. وظایف را می‌توان در صورت نیاز دوباره اولویت‌بندی، واگذار یا به‌روزرسانی کرد.

هم کانبان و هم اسکرام، چارچوب‌های چابک محبوبی در بین توسعه‌دهندگان نرم‌افزار هستند اما با توجه به ذات Dynamicity موجود در زیست‌بوم کسب‌وکارهای ایرانی و ریسک‌های عملیاتی مفروض به واسطه‌ی Administration ضعیف و عدم تحلیل و توزیع درست فنی وظایف میان تیم‌کاری واضح است کانبان خط‌مشی سازمانی بهتری نسبت به اسکرام را ارائه می‌دهد چون بی‌قانون است و با محیط آشوب‌زده و مشحون از اثر پروانگی سازگاری بیشتری دارد. انعطاف‌پذیری کانبان بورد بیش از اسکرام است.

Cache coherence

سید ابوالفضل موسوی | سه شنبه سیزدهم خرداد ۱۴۰۴ | 8:11

تعاریف:

سلسله مراتب حافظه:

سلسله مراتب حافظه، دستگاه‌های ذخیره‌سازی را در یک سیستم بر اساس سرعت، هزینه و ظرفیت سازمان‌دهی می‌کند و داده‌هایی که اغلب به آنها دسترسی دارند را برای بازیابی سریع‌تر اولویت‌بندی می‌کند. هدف این سازمان که اغلب به صورت هرمی نشان داده می شود، به حداقل رساندن زمان دسترسی و بهبود عملکرد کلی سیستم با قرار دادن حافظه سریعتر و کوچکتر به پردازنده است. اصل محلی بودن، به ویژه موقعیت زمانی و مکانی، پایه و اساس این طرح است، که نشان می دهد داده های اخیراً استفاده شده احتمالاً به زودی دوباره مورد استفاده قرار می گیرند (زمانی) و همچنین به احتمال زیاد داده های نزدیک به داده هایی که اخیراً به آن‌ها دسترسی پیدا کرده‌اند نیز مورد نیاز است (مکانی).

حافظه نهان (Cache Memory):

حافظه کش (Cache Memory) نوعی حافظه سریع و کوچک است که بین پردازنده (CPU) و حافظه اصلی (RAM) قرار می‌گیرد و برای ذخیره موقت داده‌های پرکاربرد طراحی شده است. هدف اصلی آن، کاهش زمان دسترسی پردازنده به داده‌ها و افزایش سرعت پردازش است.


مسئله:

انسجام حافظه نهان:

در یک سیستم چندپردازنده‌ای، ناسازگاری داده‌ها ممکن است بین سطوح مجاور یا در همان سطح از سلسله مراتب حافظه رخ دهد. در یک چندپردازنده‌ای با حافظه مشترک و حافظه‌های نهان جداگانه برای هر پردازنده، می‌توان کپی‌های زیادی از هر عملوند دستورالعمل داشت: یک کپی در حافظه اصلی و یکی در هر حافظه نهان. هنگامی که یک کپی از یک عملوند تغییر می‌کند، کپی‌های دیگر عملوند نیز باید تغییر کنند. مثال: حافظه نهان و حافظه اصلی ممکن است کپی‌های ناسازگاری از یک شیء داشته باشند.

فرض کنید سه پردازنده وجود دارد که هر کدام دارای حافظه پنهان هستند. سناریوی زیر را در نظر بگیرید:

پردازنده ۱ عدد X را می‌خواند: عدد ۲۴ را از حافظه دریافت کرده و آن را در حافظه پنهان (cache) ذخیره می‌کند.
پردازنده ۲ عدد X را می‌خواند: عدد ۲۴ را از حافظه دریافت کرده و آن را در حافظه پنهان (cache) ذخیره می‌کند.
دوباره، پردازنده ۱ به صورت X: 64 می‌نویسد، کپی آن که در حافظه پنهان محلی ذخیره شده است، به‌روزرسانی می‌شود. حالا، پردازنده ۳ X را می‌خواند، چه مقداری باید دریافت کند؟
حافظه و پردازنده ۲ فکر می‌کنند که ۲۴ است و پردازنده ۱ فکر می‌کند که ۶۴ است.
از آنجایی که چندین پردازنده به صورت موازی کار می‌کنند و چندین حافظه پنهان (cache) به طور مستقل ممکن است کپی‌های مختلفی از یک بلوک حافظه را داشته باشند، این امر باعث ایجاد مشکل انسجام حافظه پنهان می‌شود. انسجام حافظه پنهان، نظمی است که تضمین می‌کند تغییرات در مقادیر عملوندهای مشترک به موقع در سراسر سیستم منتشر شوند. سه سطح مجزا از انسجام حافظه پنهان وجود دارد:

  1. به نظر می‌رسد هر عملیات نوشتن فوراً رخ می‌دهد.
  2. همه پردازنده‌ها دقیقاً توالی یکسانی از تغییرات مقادیر را برای هر عملوند جداگانه مشاهده می‌کنند.
  3. پردازنده‌های مختلف ممکن است یک عملیات را ببینند و توالی‌های مختلفی از مقادیر را فرض کنند؛ این به عنوان رفتار غیرمنسجم شناخته می‌شود.

پروتکل‌های انسجام حافظه پنهان مختلفی در سیستم‌های چندپردازنده‌ای وجود دارد. این پروتکل‌ها عبارتند از:

  1. پروتکل MSI (اصلاح‌شده، اشتراکی، نامعتبر)
  2. پروتکل MOSI (اصلاح‌شده، متعلق به، اشتراکی، نامعتبر)
  3. پروتکل MESI (اصلاح‌شده، انحصاری، اشتراکی، نامعتبر)
  4. پروتکل MOESI (اصلاح‌شده، متعلق به، انحصاری، اشتراکی، نامعتبر)

این اصطلاحات مهم به شرح زیر مورد بحث قرار می‌گیرند:

  • اصلاح‌شده: به این معنی است که مقدار موجود در حافظه پنهان، dirty است، یعنی مقدار موجود در حافظه پنهان فعلی با حافظه اصلی متفاوت است.
  • انحصاری: به این معنی است که مقدار موجود در حافظه پنهان همان مقدار موجود در حافظه اصلی است.
  • اشتراکی: به این معنی است که مقدار حافظه پنهان، جدیدترین کپی داده را در خود جای داده است و این همان چیزی است که بین تمام حافظه پنهان و حافظه اصلی نیز به اشتراک گذاشته شده است.
  • متعلق به: به این معنی است که حافظه پنهان فعلی، بلوک را در اختیار دارد و اکنون مالک آن بلوک است، یعنی تمام حقوق مربوط به آن بلوک‌های خاص را در اختیار دارد.
  • نامعتبر: این نشان می‌دهد که بلوک حافظه پنهان فعلی نامعتبر است و لازم است از حافظه پنهان یا حافظه اصلی دیگری واکشی شود.

مکانیسم‌های انسجام:

سه ​​نوع انسجام وجود دارد:

  • مبتنی بر دایرکتوری: در یک سیستم مبتنی بر دایرکتوری، داده‌هایی که به اشتراک گذاشته می‌شوند در یک دایرکتوری مشترک قرار می‌گیرند که انسجام بین حافظه‌های نهان را حفظ می‌کند. دایرکتوری به عنوان فیلتری عمل می‌کند که از طریق آن پردازنده باید برای بارگذاری یک ورودی از حافظه اصلی به حافظه نهان خود، اجازه بخواهد. هنگامی که یک ورودی تغییر می‌کند، دایرکتوری یا سایر حافظه‌های نهان دارای آن ورودی را به‌روزرسانی یا نامعتبر می‌کند.
  • جاسوسی: اولین بار در سال ۱۹۸۳ معرفی شد، جاسوسی فرآیندی است که در آن حافظه‌های پنهان جداگانه، خطوط آدرس را برای دسترسی به مکان‌های حافظه‌ای که در حافظه پنهان ذخیره کرده‌اند، نظارت می‌کنند. به آن پروتکل ابطال نوشتن می‌گویند. زمانی که یک عملیات نوشتن در مکانی مشاهده می‌شود که یک حافظه پنهان یک کپی از آن را دارد و کنترل‌کننده حافظه پنهان، کپی خود از مکان حافظه جاسوسی شده را باطل می‌کند.
  • Snarfing: مکانیزمی است که در آن یک کنترل‌کننده حافظه نهان، هم آدرس و هم داده‌ها را زیر نظر می‌گیرد تا زمانی که یک استاد دوم مکانی را در حافظه اصلی تغییر می‌دهد، کپی خود از یک مکان حافظه را به‌روزرسانی کند. هنگامی که یک عملیات نوشتن در مکانی مشاهده می‌شود و یک حافظه نهان دارای یک کپی از آن است، کنترل‌کننده حافظه نهان، کپی خود از مکان حافظه snarf شده را با داده‌های جدید به‌روزرسانی می‌کند.

Zabbix

سید ابوالفضل موسوی | دوشنبه دوازدهم خرداد ۱۴۰۴ | 12:48

Zabbix یک راهکار مانیتورینگ توزیع‌شده، متن‌باز و در سطح سازمانی است که برای نظارت بر عملکرد و در دسترس بودن دستگاه‌های شبکه، سرورها، سرویس‌ها و سایر منابع فناوری اطلاعات طراحی شده است. زبیکس یک راهکار انعطاف‌پذیر است که می‌تواند هر چیزی را از یک برنامه ساده و مستقل گرفته تا یک محیط در مقیاس بزرگ، با ویژگی‌هایی از جمله موارد زیر، تحت نظارت خود درآورد:

  • کشف منابع: موجودیت‌های شبکه، منابع سرور و دستگاه‌های داخلی/خارج از شبکه را کشف می‌کند. از یکپارچه‌سازی‌های آماده یعنی قالب‌ها جهت نظارت بر هر چیزی از یک دستگاه سطح پایین تا یک سرویس SAAS استفاده می‌نماید.
  • جمع‌آوری معیارها: از یک رویکرد عامل یا بدون عامل جهت گردآوری معیارها از هر منبعی مانند دستگاه‌ها، حسگرها، سیستم‌عامل‌ها، پلتفرم‌های مجازی‌سازی، پلتفرم‌های کانتینر مانند Docker، Kubernetes، زیرساخت‌های ابری، پایگاه‌های داده، صفحات وب، اکوسیستم‌های جاوا، سرورهای برنامه، نقاط پایانی API، برنامه‌های تجاری و بسیاری موارد دیگر استفاده می‌کند.
  • تحلیل ریشه‌ای علت و تشخیص مشکل: روی تشخیص مشکل با کارایی بالا و در لحظه کار می‌کند که هم مشکلات موجود و هم مشکلات ورودی را به هم مرتبط کرده و تحلیل ریشه‌ای علت را انجام می‌دهد.
  • حوادث، هشدارها و اعلان‌ها: هنگامی که مشکلی به صورت پیشگیرانه یا پس از وقوع در اکوسیستم کاری رخ می‌دهد، هشدار دریافت می‌شود. از چندین کانال پیام‌رسانی از جمله Slack، JIRA، Microsoft Teams، ایمیل یا پیامک برای اطلاع‌رسانی در مورد انواع مختلف رویدادهایی که در محیط عملیاتی رخ می‌دهد، استفاده می‌شود.
  • نمای کلی «یک پنجره شیشه‌ای»: داده‌های جمع‌آوری‌شده و رویدادهای نظارتی را در نمودارها، لیست‌ها، نقشه‌های جغرافیایی و نقشه‌های توپولوژی شبکه ترسیم می‌نماید.
  • نظارت چندگانه و توزیع‌شده: کاربر نهایی از راحتی یک راهکار نظارتی جهت استفاده در چندین مرکز داده، بخش‌ها و سازمان‌های اداری لذت برده و مکان‌های دوردست را در پشت فایروال‌ها با قابلیت اجرای فرمان از راه دور رصد می‌کند.
  • انعطاف‌پذیری بی‌نظیر: زبیکس با نیازهای محیطی تطبیق یافته و تنظیم می‌شود و از ویژگی‌های داخلی آن، از جمله قابلیت انتشار معیارها و رویدادها از طریق HTTP، گزارش‌گیری، حسابرسی، امنیت، محاسبات SLA سرویس و موارد دیگر، استفاده می‌شود.

زبیکس علاوه بر عامل‌ها یا ایجنت‌های نظارتی از گزینه‌های نظارتی متعدد دیگری نیز بهره می‌برد. یک بررسی ساده می‌تواند در دسترس بودن و پاسخگویی یک سرویس استاندارد، مانند اعلان‌ها یا HTTP را تأیید نماید. افزونه‌های مدیریت جاوا (JMX)، نظارت بر وب و سایر روش‌ها نیز جایگزین‌هایی برای استفاده از عامل‌ها هستند. در زبیکس، JMX می‌تواند برای نظارت بر برنامه‌های مبتنی بر جاوا استفاده شود. نظارت بر وب برای بررسی در دسترس بودن وب‌سایت‌ها استفاده می‌شود و از HTTP و HTTPS پشتیبانی می‌نماید. زبیکس داده‌های مربوط به میانگین سرعت دانلود یک سناریو، خطاها و پیام‌های خطا، زمان پاسخ و موارد دیگر را جمع‌آوری می‌کند.

رابط برنامه‌نویسی کاربردی (API) زبیکس یک API مبتنی بر وب برای ایجاد برنامه‌های جدید، خودکارسازی وظایف و ادغام با نرم‌افزارهای شخص ثالث مانند Go، Zabbix::Tiny یا Zabbix sender است. فرمت نشانه‌گذاری شیء جاوا اسکریپت برای نشان‌گذاری API به عنوان یک رابط وب front-end استفاده می‌شود.

API زبیکس شامل متدهای زیادی است که در APIهای جداگانه گروه‌بندی شده‌اند و هر کدام یک سرویس خاص را انجام می‌دهند. به عنوان مثال، متدی برای ایجاد یک میزبان جدید host.create است؛ متدی برای ورود به عنوان مدیر user.login است. با استفاده از API، کاربران می‌توانند برنامه‌هایی برای کار با اطلاعات زبیکس و نمایش آن ایجاد نمایند.

قالب‌ها یا الگوها یا تمپلیت‌ها، افزونه‌های سفارشی هستند که قابلیت‌های Zabbix را گسترش می‌دهند. برخی از قالب‌ها توسط Zabbix ساخته شده‌اند و به همراه نرم‌افزار آماده استفاده ارائه می‌شوند، در حالی که برخی دیگر توسط کاربران Zabbix ساخته می‌شوند. قالب‌ها به کاربران Zabbix این امکان را می‌دهند که دستگاه‌های شبکه از فروشندگانی مانند Cisco، Dell، HP و Juniper را رصد کنند. از قالب‌های دیگر می‌توان جهت رصد سرورهای IBM، HP و Super Micro استفاده کرد. قالب‌های سرویس‌های مبتنی بر برنامه شامل MS Exchange، Zenoss و PowerDNS هستند. قالب‌ها را می‌توان برای رصد سیستم‌عامل‌ها و هایپروایزرها نیز ایجاد کرد.

مدیر عملیات مرکز سیستم مایکروسافت (SCOM)، ناجیوس و زنوس نمونه‌هایی از سیستم‌های رقیب نظارت بر زیرساخت فناوری اطلاعات هستند.

SCOM امکان پیکربندی، مدیریت و نظارت بر یک اکوسیستم فناوری اطلاعات را از طریق یک کنسول مدیریتی فراهم می‌کند. SCOM می‌تواند سخت‌افزار سرور، سرویس‌های سیستم، سیستم‌عامل‌ها، هایپروایزرها و برنامه‌ها را مشابه Zabbix نظارت کند. SCOM همچنین از نظارت مبتنی بر عامل (agent-based) و بدون عامل (agentless) مشابه Zabbix استفاده می‌کند.

Nagios یکی دیگر از برنامه‌های نظارت متن‌باز برای محیط‌های فناوری اطلاعات است. Nagios می‌تواند بر سیستم‌عامل‌های لینوکس، یونیکس و ویندوز نظارت نماید. Nagios محصولات متعددی مانند Core، XI، Log Server، Network Analyzer و Fusion ارائه می‌دهد. Nagios می‌تواند بررسی‌های فعالی را که خودبه‌خود آغاز می‌شوند و بررسی‌های غیرفعالی را که با استفاده از برنامه‌های خارجی تکمیل می‌شوند، اجرا کند. Nagios همچنین از نظارت مبتنی بر عامل و بدون عامل استفاده می‌کند.

Zenoss نرم‌افزار نظارتی است که به دو شکل موجود است: Zenoss Core و Zenoss Service Dynamics.

Zenoss Core نسخه متن‌باز این نرم‌افزار است که شامل اجزای اساسی نرم‌افزار نظارت است. همچنین می‌توان از Core برای ایجاد ZenPacks، معادل Zenoss برای قالب‌ها، استفاده کرد. Zenoss Service Dynamics نسخه داخلی این نرم‌افزار است که می‌تواند زیرساخت‌های فناوری اطلاعات مانند سرورها، شبکه‌ها و پایگاه‌های داده را رصد کند.

KDE

سید ابوالفضل موسوی | دوشنبه دوازدهم خرداد ۱۴۰۴ | 12:23

KDE یک جامعه بین‌المللی نرم‌افزار آزاد است که نرم‌افزارهای آزاد و متن‌باز را توسعه می‌دهد. به عنوان یک قطب توسعه مرکزی، ابزارها و منابعی را فراهم می‌سازد که امکان کار مشارکتی در پروژه‌های آن را فراهم می‌کند. محصولات آن شامل دسکتاپ پلاسما ، انواع سکوهای KDE و طیف وسیعی از برنامه‌ها مانند Kate ، digiKam و Krita است. بسیاری از برنامه‌های KDE چندسکویی یا Cross-Platform هستند و می‌توانند روی سیستم‌عامل‌های یونیکس و شبه‌یونیکس، مایکروسافت ویندوز و اندروید اجرا شوند. KDE به طور قانونی توسط KDE eV مستقر در آلمان نمایندگی می‌شود که مالک علائم تجاری KDE نیز هست و مسئولیت پشتیبانی مالی پروژه را برعهده دارد.

KDE در سال 1996 توسط ماتیاس اتریچ، دانشجوی دانشگاه توبینگن، تأسیس شد. در آن زمان، او از جنبه‌های خاصی از دسکتاپ یونیکس نگران بود . از جمله نگرانی‌های او این بود که هیچ یک از برنامه‌ها از نظر ظاهری یا رفتاری شبیه به هم نبودند. به نظر او، برنامه‌های دسکتاپ آن زمان برای کاربران نهایی بسیار پیچیده بودند. برای حل این مشکل، او پیشنهاد ایجاد یک محیط دسکتاپ را داد که در آن کاربران بتوانند انتظار داشته باشند که برنامه‌ها سازگار و آسان برای استفاده باشند. پست اولیه او در Usenet علاقه زیادی را برانگیخت و پروژه KDE متولد شد.

نام KDE به عنوان یک بازی با کلمات با محیط دسکتاپ مشترک موجود، که برای سیستم‌های یونیکس در دسترس بود، در نظر گرفته شده بود. CDE یک محیط کاربری مبتنی بر X11 بود که با رابط کاربری و ابزارهای بهره‌وری مبتنی بر ابزارک گرافیکی Motif به طور مشترک توسط HP، IBM و Sun از طریق کنسرسیوم X/Open توسعه داده شد. قرار بود یک محیط کامپیوتر رومیزی با استفاده آسان و بصری باشد. در ابتدا پیشنهاد شد که K مخفف " Kool " باشد، اما به سرعت تصمیم گرفته شد که K مخفف هیچ چیز خاصی نباشد. بنابراین، نام اولیه KDE به "محیط دسکتاپ K" گسترش یافت، پیش از این‌که در سال 2009 به طور کامل به نفع KDE تغییر نام دهد.

از همان بدو امر، ماتیاس اتریچ تصمیم گرفت از چارچوب Qt شرکت Trolltech برای پروژه KDE استفاده نماید. برنامه‌نویسان دیگر به سرعت شروع به توسعه برنامه‌های KDE/Qt کردند و تا اوایل سال 1997، چند برنامه منتشر شد. در 12 ژوئیه 1998، اولین نسخه از محیط دسکتاپ، به نام KDE 1.0، منتشر شد. جعبه ابزار با نسخه اصلی GNU General Public Licensed فقط برای پلتفرم‌هایی که از سرور نمایش X11 استفاده می‌کردند، وجود داشت، اما از زمان انتشار Qt 4، نسخه‌های GNU Lesser General Public Licensed برای پلتفرم‌های بیشتری در دسترس هستند. این امر به نرم‌افزار KDE مبتنی بر Qt 4 یا نسخه‌های جدیدتر اجازه داد تا در مایکروسافت ویندوز و OS X توزیع شود.

تیم بازاریابی KDE در 24 نوامبر 2009 تغییر نام تجاری اجزای پروژه KDE را اعلام کرد. با توجه به تغییر اهداف درک شده، این تغییر نام تجاری با تأکید بر جامعه‌ی سازندگان نرم‌افزار و ابزارهای مختلف ارائه شده توسط KDE، جایگزین محیط محض دسکتاپ، شد. KDE 4 به فضاهای کاری پلاسما KDE ، برنامه‌های KDE و سکوهای KDE در آن زمان پلتفرم KDE 4 تقسیم شد که به عنوان KDE Software Compilation 4 بسته‌بندی و به عموم کاربران ارائه شدند. از سال 2009، نام KDE دیگر مخفف K Desktop Environment نیست، بلکه مخفف جامعه‌ای است که نرم‌افزار تولید می‌کند.

نسخه‌های نرم‌افزاری که تا حال از KDE منتشر شده است به شرح ذیل می‌باشد:

  1. اولین نگارش در 14 اکتبر 1996 میلادی
  2. محیط رومیزی K1 در 12 ژوئیه‌ی 1998 میلادی
  3. محیط رومیزی K2 در 23 ژوئیه‌ی 2000 میلادی
  4. محیط رومیزی K3 در 3 آوریل 2003 میلادی
  5. کامپایل نرم‌افزار KDE 4 در 11 ژانویه‌ی 2008 میلادی
  6. کی‌دی‌ای پلاسما ۵ که طی آن KDE/KDE SC سابق به KDE Plasma، KDE Frameworks و KDE Applications تقسیم شد در 15 ژوئیه‌ی 2014 میلادی
  7. کی‌دی‌ای پلاسما ۶ که به صورت عمومی در تاریخ 28 فوریه 2024 انتشار یافته است

جامعه KDE چندین پروژه نرم‌افزار آزاد را مدیریت می‌کند. این پروژه که قبلاً با نام KDE یا KDE SC (Software Compilation) شناخته می‌شد، امروزه از سه بخش تشکیل شده است:

  1. KDE Plasma: یک محیط دسکتاپ گرافیکی با طرح‌بندی‌ها و پنل‌های قابل تنظیم، که از دسکتاپ‌های مجازی و ویجت‌ها پشتیبانی می‌کند. محیط دسکتاپ فوق با استفاده از چارچوب‌های Qt و KDE نوشته شده است.
  2. چارچوب‌های KDE: مجموعه‌ای از کتابخانه‌ها و چارچوب‌های نرم‌افزاری ساخته شده بر پایه Qt که قبلاً با نام 'kdelibs' یا 'KDE Platform' شناخته می‌شد.
  3. KDE Gear: برنامه‌های کاربردی مانند Kdenlive یا Krita که عمدتاً بر اساس چارچوب‌های KDE ساخته شده‌اند و اغلب بخشی از انتشار رسمی برنامه‌های KDE محسوب می‌شوند.

پروژه‌های دیگری که توسط جامعه‌ی مشارکتی فوق راه‌اندازی و پشتیبانی می‌شود به قرار زیر است:

  1. نئون: KDE neonیک مخزن نرم‌افزاری است که از Ubuntu LTS به عنوان هسته‌ی اصلی استفاده می‌کند و هدف آن ارائه نرم‌افزارهای Qt و KDE با قابلیت ارائه‌ی خدمات به‌روزرسانی سریع به کاربران است در حالی که به‌روزرسانی بقیه‌ی اجزای سیستم‌عامل از مخازن اوبونتو با سرعت عادی انجام می‌شود. KDE ادعا می‌کند که یک "توزیع KDE" نیست، بلکه یک آرشیو به‌روز از بسته‌های KDE و Qt است.
  2. آهنگساز زیرنویس: Subtitle Composer یک ویرایشگر زیرنویس متن‌باز برای سیستم‌عامل‌های لینوکس و مایکروسافت ویندوز است که بر اساس چارچوب‌های Qt و KDE ساخته شده است. این پروژه از دسامبر 2019 به بخشی از KDE تبدیل شد. این نرم‌افزار از رایج‌ترین قالب‌های زیرنویس مبتنی بر متن و بیت‌مپ، پیش‌نمایش ویدیو، شکل موج صوتی، تشخیص گفتار، هماهنگ‌سازی زمان‌بندی، ترجمه زیرنویس، OCR و ماکروها/اسکریپت‌های جاوا اسکریپت پشتیبانی می‌کند. Subtitle Composer یک نرم‌افزار رایگان است که تحت مجوز عمومی GNU منتشر شده است.
  3. ویکی‌تو‌لرن: WikiToLearn که به اختصار WTL نامیده می‌شود، یکی از محصولات جدید KDE است. یک ویکی مبتنی بر MediaWiki ، مانند ویکی‌پدیا است که بستری برای ایجاد و اشتراک‌گذاری کتاب‌های درسی متن‌باز فراهم می‌کند. ایده این است که یک کتابخانه عظیم از کتاب‌های درسی برای استفاده و ایجاد توسط هر کسی وجود داشته باشد. ریشه‌های آن به دانشگاه میلان بازمی‌گردد، جایی که گروهی از دانشجویان رشته فیزیک می‌خواستند یادداشت‌های خود را به اشتراک بگذارند و سپس تصمیم گرفتند که این کار برای همه و نه فقط گروه دوستان داخلی آن‌ها باشد. آن‌ها به یک پروژه رسمی KDE تبدیل شده‌اند که چندین دانشگاه از آن حمایت می‌کنند.

توسعه نرم‌افزار KDE در درجه اول یک تلاش داوطلبانه است، اگرچه شرکت‌های مختلفی مانند Novell ، Nokia یا Blue Systems توسعه‌دهندگانی را برای کار بر روی بخش‌های مختلف پروژه استخدام یا به کار می‌گیرند، از آنجایی که تعداد زیادی از افراد به روش‌های مختلف (مثلاً کد، ترجمه، آثار هنری) در KDE مشارکت دارند، سازماندهی چنین پروژه‌ای پیچیده است بنابراین یک برنامه‌ی منتور یا مربی به مبتدیان یاد می‌دهد تا با چه روشی توسعه و برقراری ارتباط در پروژه‌ها و جوامع KDE را آغاز نمایند. ارتباطات درون جامعه از طریق فهرست‌های پستی، IRC، وبلاگ‌ها، انجمن‌ها، اطلاعیه‌های خبری، ویکی‌ها و کنفرانس‌ها صورت می‌گیرد. این جامعه دارای یک آیین‌نامه رفتاری برای تبعیت و ارائه‌ی یک دیسیپلین قابل قبول در جامعه است.

در حال حاضر جامعه KDE از سیستم کنترل نسخه Git استفاده می‌کند. نمونه KDE GitLab (با نام Invent) نمای کلی از تمام پروژه‌های میزبانی شده توسط سیستم مخزن Git KDE را ارائه می‌دهد. Phabricator برای مدیریت وظایف استفاده می‌شود.

در 20 ژوئیه 2009، KDE اعلام کرد که یک میلیونمین کامیت به مخزن Subversion آن انجام شده است. در 11 اکتبر 2009، کورنلیوس شوماخر، یکی از توسعه‌دهندگان اصلی KDE در مورد هزینه تخمینی با استفاده از مدل COCOMO با SLOCCount برای توسعه بسته نرم‌افزاری KDE با 4,273,291 LoC نوشت که حدود 175,364,716 دلار آمریکا می‌شود. این تخمین شامل Qt، Calligra Suite ، Amarok ، digiKam و سایر برنامه‌هایی که بخشی از هسته KDE نیستند، نمی‌شود .

جهت‌گیری کلی توسط تیم هسته KDE تعیین می‌شود. این تیم توسعه‌دهندگانی هستند که در مدت زمان طولانی سهم قابل توجهی در KDE داشته‌اند. این تیم با استفاده از لیست پستی kde-core-devel که به صورت عمومی بایگانی و قابل خواندن است، ارتباط برقرار می‌کند، اما عضویت در آن نیاز به تأیید دارد. KDE یک رهبر مرکزی واحد ندارد که بتواند تصمیمات مهم را وتو نماید. در عوض، تیم هسته KDE متشکل از ده‌ها مشارکت‌کننده است که نه با رأی رسمی، بلکه از طریق بحث و گفت‌وگو تصمیم می‌گیرند.

توسعه‌دهندگان همچنین در کنار تیم‌های موضوعی، سازماندهی می‌شوند. به عنوان مثال، تیم KDE Edu نرم‌افزار آموزشی رایگان توسعه می‌دهد. در حالی که این تیم‌ها عمدتاً مستقل کار می‌کنند و همگی از یک برنامه انتشار مشترک پیروی نمی‌کنند. هر تیم کانال‌های پیام‌رسانی خود را دارد، چه در IRC و چه در لیست‌های پستی.

حامی KDE فرد یا سازمانی است که با اهدای حداقل 5000 یورو به KDE eV از جامعه KDE حمایت می‌کند. تا فوریه 2024، نه حامی از این نوع وجود دارد: Blue Systems ، Canonical Ltd. ، Google ، GnuPG ، Kubuntu Focus، Slimbook، SUSE ، The Qt Company و TUXEDO Computers.

آکادمی، اجلاس جهانی سالانه است که هر تابستان در مکان‌های مختلف اروپا برگزار می‌شود. اهداف اصلی آکادمی، عمل به عنوان یک رویداد جامعه‌سازی، انتقال دستاوردهای جامعه و فراهم کردن بستری برای همکاری با شرکای جامعه و صنعت است. اهداف ثانویه، مشارکت دادن مردم محلی و فراهم کردن فضایی برای دور هم جمع شدن و نوشتن کد است. KDE eV در رویه‌ها، مشاوره و سازماندهی کمک می‌کند. آکادمی شامل کنفرانس، مجمع عمومی KDE eV، جلسات کدنویسی ماراتن، جلسات BOF (جلسات یرندگان با یک‌پر) و برنامه‌های اجتماعی است. BOFها برای بحث در مورد زیرپروژه‌ها یا مسائل خاص تشکیل جلسه می‌دهند.

اولین کنفرانسی که جامعه KDE برگزار کرد، KDE One بود که در سال ۱۹۹۷ در آرنسبرگ آلمان برگزار شد تا در مورد اولین انتشار KDE بحث شود. در ابتدا، هر کنفرانس پس از انتشار شماره‌گذاری می‌شد و به طور منظم برگزار نمی‌شد. از سال ۲۰۰۳، کنفرانس‌ها سالی یک بار برگزار می‌شدند. و از سال ۲۰۰۴ به بعد، آکادمی نامیده شدند.

کنفرانس سالانه آکادمی ، جوایز آکادمی را اهدا می‌کند. این جوایز، جوایزی هستند که جامعه KDE به مشارکت‌کنندگان KDE اهدا می‌نماید. هدف آن‌ها قدردانی از مشارکت‌های برجسته در KDE است. سه جایزه وجود دارد: بهترین برنامه، بهترین غیربرنامه و جایزه هیئت داوران. مثل همیشه، برندگان توسط برندگان سال قبل انتخاب می‌شوند. برندگان اول یک عکس قاب‌شده از Konqi که توسط همه توسعه‌دهندگان KDE حاضر امضا شده بود، دریافت کردند.

نماد جامعه KDE یک اژدهای سبز به نام کونکی است. ظاهر کونکی با آمدن پلاسما 5 رسماً دوباره طراحی شد و طرح تایسون‌تان در مسابقه طراحی مجدد انجمن‌های KDE برنده شد.

کیتی یک اژدهای ماده است. او در سال ۲۰۱۰ معرفی شد و به عنوان نماد جامعه زنان KDE انتخاب شد.

کندالف جادوگر، نماد سابق جامعه KDE در نسخه‌های 1.x و 2.x بود. شباهت کندالف با شخصیت گندالف منجر به گمانه‌زنی‌هایی مبنی بر تغییر نماد به کونکی به دلیل نگرانی‌های مربوط به نقض حق نشر شد، اما این موضوع هرگز توسط KDE تأیید نشد.

کمپ KDE یکی دیگر از کنفرانس‌های سالانه مشارکت‌کنندگان جامعه KDE است. این رویداد فرصتی منطقه‌ای برای مشارکت‌کنندگان و علاقه‌مندان فراهم می‌کند تا گرد هم آیند و تجربیات خود را به اشتراک بگذارند. شرکت در این رویداد برای همه شرکت‌کنندگان رایگان است. هدف از برگزاری این رویداد، اطمینان از این است که KDE در جهان صرفاً به عنوان یک نهاد اروپایی محور دیده نشود. KDE eV به ارائه‌دهندگان، رهبران BoF، سازمان‌دهندگان یا مشارکت‌کنندگان اصلی، یارانه سفر و اقامت می‌دهد. این رویداد از سال ۲۰۰۹ در آمریکای شمالی برگزار می‌شود.

در ژانویه ۲۰۰۸، رویداد انتشار KDE 4.0 در دفتر مرکزی گوگل در مانتین ویو، کالیفرنیا، ایالات متحده، به مناسبت انتشار KDE SC 4.0 برگزار شد. جامعه متوجه شد که تقاضای زیادی برای رویدادهای KDE در قاره آمریکا وجود دارد، بنابراین کمپ KDE ایجاد شد.

کمپ KDE 2009 اولین نشست KDE Americas بود که در Travellers Beach Resort در نگریل، جامائیکا، با حمایت گوگل، اینتل، iXsystem، KDE eV و Kitware برگزار شد. این رویداد شامل 1 تا 2 روز ارائه، جلسات BoF و جلسات هکاتون بود. کمپ KDE 2010 در دانشگاه کالیفرنیا، سن دیگو (UCSD) در لا هویا، ایالات متحده برگزار شد. برنامه شامل ارائه‌ها، BoFها، هکاتون‌ها و یک سفر یک روزه بود. این برنامه با مقدمه‌ای کوتاه از جف میچل، که برگزارکننده اصلی کنفرانس بود، آغاز شد و کمی از تاریخ کمپ KDE و برخی آمارها در مورد جامعه KDE صحبت کرد. با حدود 70 شرکت‌کننده، گفت‌وگوهای این رویداد نسبتاً مورد توجه قرار گرفت. کمپ KDE 2011 در هتل کابوکی در سانفرانسیسکو، ایالات متحده برگزار شد. این کنفرانس همزمان با اجلاس همکاری بنیاد لینوکس برگزار شد. برنامه شامل ارائه‌ها، هکاتون‌ها و یک مهمانی در نویزبریج بود. کنفرانس با مقدمه‌ای از سلست لین پاول آغاز گردید.

فصل KDE یک برنامه ترویجی است که توسط جامعه KDE برگزار می‌شود. دانش‌آموزان توسط جامعه KDE به عنوان مربی منصوب می‌شوند تا به آن‌ها در به ثمر رساندن پروژه‌شان کمک نمایند.

conf.kde.in اولین کنفرانس KDE و Qt در هند بود. این کنفرانس که توسط KDE هند سازماندهی شده بود، در کالج مهندسی RV در بنگلور هند برگزار شد. سه روز اول این رویداد شامل گفت‌وگوها، آموزش‌ها و جلسات تعاملی بود. دو روز آخر، بر یک اسپرینت کد متمرکز بود. این کنفرانس توسط برگزارکننده اصلی آن، پرادیپتو باتاچاریا، افتتاح شد. بیش از 300 نفر در گفت‌وگوهای افتتاحیه حضور داشتند. مراسم روشنایی چراغ فرخنده برای افتتاح کنفرانس انجام شد. اولین جلسه توسط لیدیا پینتشر برگزار شد که با موضوع "کارهای زیاد برای انجام دادن و زمان کم" صحبت کرد. در این رویداد، بازگشت پروژه نئون در 11 مارس 2011 اعلام شد و این پروژه نسخه‌های شبانه یا تاریک یا دارک کامپایل نرم‌افزار KDE را ارائه داد. سخنران اصلی کنفرانس، سیرتاج، توسعه‌دهنده قدیمی KDE بود.

Día KDE (روز KDE) یک رویداد آرژانتینی است که بر KDE تمرکز دارد. این رویداد سخنرانی‌ها و کارگاه‌هایی را برگزار می‌کند. اهداف این رویداد عبارتند از: گسترش جنبش نرم‌افزار آزاد در بین مردم آرژانتین، معرفی جامعه KDE و محیط توسعه‌یافته توسط آن؛ شناخت و تقویت KDE-AR؛ و به‌طورکلی گرد هم آوردن جامعه برای تفریح. این رویداد رایگان است.

مهمانی انتشار، مهمانی‌ای است که انتشار نسخه جدیدی از KDE SC را جشن می‌گیرد و دو بار در سال برگزار می‌شود. KDE همچنین در کنفرانس‌های دیگری که حول محور نرم‌افزار آزاد می‌چرخند، شرکت می‌کند.

سیستم آموزش ابتدایی برزیل با بیش از 42000 مدرسه در 4000 شهر، کامپیوترهایی را که نرم‌افزار KDE را اجرا می‌کنند، اداره می‌کند و در نتیجه از نزدیک به 52 میلیون کودک خدمات ارائه می‌دهد. توزیع پایه، لینوکس آموزشی نام دارد که مبتنی بر کوبونتو است. علاوه بر این، هزاران دانش‌آموز دیگر در برزیل از محصولات KDE در دانشگاه‌های خود استفاده می‌کنند. نرم‌افزار KDE همچنین بر روی کامپیوترهای مدارس پرتغالی و ونزوئلایی اجرا می‌شود که به ترتیب 700000 و یک میلیون سیستم به آن‌ها دسترسی دارند.

از طریق Pardus ، یک توزیع محلی لینوکس، بسیاری از بخش‌های دولت ترکیه از نرم‌افزار KDE استفاده می‌کنند، از جمله نیروهای مسلح ترکیه، وزارت امور خارجه، وزارت دفاع ملی، پلیس ترکیه، و SGK (موسسه تأمین اجتماعی ترکیه)، اگرچه این ادارات اغلب منحصراً از Pardus به عنوان سیستم‌عامل خود استفاده نمی‌کنند.

سازمان اروپایی تحقیقات هسته‌ای (CERN) از نرم‌افزار KDE استفاده می‌کند.

آلمان از نرم‌افزار KDE در سفارتخانه‌های خود در سراسر جهان استفاده می‌کند و حدود ۱۱۰۰۰ سیستم را نمایندگی می‌کند.

ناسا در طول ماموریت مریخ از دسکتاپ پلاسما استفاده کرد.

کامپیوتر بازی دستی شرکت ولو، Steam Deck، در حالت دسکتاپ از محیط دسکتاپ KDE Plasma استفاده می‌نماید.

تمرکززدایی در بلاک‌چین

سید ابوالفضل موسوی | شنبه دهم خرداد ۱۴۰۴ | 13:11

اگرچه بلاکچین به دلیل پتانسیلش برای ارتقای تمرکززدایی در هر سیستم یا فرآیندی، یکی از برترین فناوری‌های نوظهور امروزی محسوب می‌شود، اما تمرکززدایی به عنوان یک مفهوم مستقل کمی بد فهمیده شده است. امروزه شش تعریف متمایز از تمرکززدایی در فضای بلاکچین رایج است.

ایده اصلی تمرکززدایی برای همه انواع تمرکززدایی در بلاکچین یکسان است، یعنی عدم وجود یک نهاد مرکزی و واگذاری اختیار و تصمیم‌گیری به شبکه‌ای توزیع‌شده از رایانه‌ها.

با غیرمتمرکز کردن فرآیند تصمیم‌گیری، به این معنی که شرکت‌کنندگان شبکه به صورت جمعی از طریق یک مکانیسم اجماع تصمیم می‌گیرند، بلاکچین‌ها میزان اعتماد مورد نیاز بین اعضا را کاهش می‌دهند. این محیط بدون نیاز به اعتماد که به این صورت ایجاد می‌شود، نیاز به یک مرجع مرکزی یا واسطه‌ها را از بین می‌برد. تراکنش‌ها در بلاکچین به صورت همتا به همتا ، یعنی مستقیماً بین دو طرف، انجام می‌شوند. به این ترتیب، بسیار بعید است که یک فرد یا گروهی از گره‌ها بتوانند امنیت شبکه را تضعیف کنند یا از قدرت خود سوءاستفاده کنند و بر یکپارچگی شبکه تأثیر بگذارند.

به صورت کلی 6 تمرکززدایی مطرح در بلاکچین به شرح ذیل می‌باشد:

  1. تمرکززدایی کسب‌وکار: تمرکززدایی کسب‌وکار شامل حذف پردازنده‌های متمرکز تک‌طرفه و امکان تعامل مستقیم طرفین تراکنش با یکدیگر از طریق یک قرارداد هوشمند است. به هیچ وجه مرجع متمرکز تمام دارایی‌ها و داده‌ها را در اختیار نخواهد داشت، بلکه اکنون دارایی‌ها و داده‌ها به صورت یک پایگاه داده مشترک وجود خواهند داشت و برای هر دو سازمان قابل دسترسی هستند.
  2. تمرکززدایی فیزیکی: تمرکززدایی فیزیکی شامل پراکندگی جغرافیایی سرورهای بلاکچین در حال اجرا در سراسر جهان با افزونگی کافی است. ایده این نوع تمرکززدایی، داشتن حداکثر تعداد هاست‌های ممکن در شبکه و داشتن یک زیرساخت فناوری جهانی است که هیچ یک از طرفین یا نهادها مالک آن نباشد.
  3. تمرکززدایی تراکنشی: این نوع تمرکززدایی در بلاکچین، شفافیت، کارایی و امنیت بیشتری را در شبکه‌های B2B فراهم می‌سازد. بلاکچین‌های B2B امروزه بخش حیاتی بسیاری از سازمان‌ها هستند و وظیفه ایجاد زنجیره‌های ارزش و اکوسیستم‌های شامل روابط تجاری پیچیده و چندجانبه را بر عهده دارند. علاوه بر این، این نوع تمرکززدایی را می‌توان بر اساس انگیزه توزیع گره‌ها نیز متمایز کرد. برخی از این انگیزه‌ها می‌توانند امنیت بیشتر جهت جلوگیری از نقاط شکست واحد، گسترش جغرافیایی جهت نزدیکی به پایگاه‌های کاربری خاص، دلایل اقتصادی مانند ارائه مشوق‌هایی برای هاست‌های خاص، دلایل سیاسی یا نظارتی بر هاست‌های خاص در حوزه‌های قضایی با مقررات دوستانه باشند.
  4. تمرکززدایی مبتنی بر معماری: این نوع تمرکززدایی در بلاکچین بیشتر مربوط به تعداد سیستم‌های درگیر در یک شبکه بلاکچین است. هرچه تعداد سیستم‌ها بیشتر باشد، شبکه بلاکچین بیشتر غیرمتمرکز است، حتی اگر یک یا چند سیستم از کار بیفتند، شبکه به طور دائم به کار خود ادامه می‌دهد.
  5. تمرکززدایی مبتنی بر سیاست یا Policy اداره شبکه و زیرساخت: تمرکززدایی سیاسی بیشتر مربوط به تعداد افراد یا گروه‌هایی است که سیستم‌ها را در شبکه اداره می‌کنند. به عنوان مثال، یک بلاکچین ممکن است روی چندین سرور اجرا شود، اما فقط یک سازمان یا شخص ممکن است آن را کنترل کند. در چنین حالتی، هیچ تمرکززدایی سیاسی وجود ندارد. بیت‌کوین و سایر پروژه‌های بلاکچین لایه اول ، نمونه خوبی از یک شبکه غیرمتمرکز سیاسی هستند.
  6. تمرکززدایی منطقی: این نوع تمرکززدایی به نمایش یک سیستم بلاکچین از نظر تعداد رابط‌ها و ساختارهای داده اشاره دارد. به عنوان مثال، بیت‌کوین را نمی‌توان از نظر منطقی غیرمتمرکز نامید زیرا به عنوان یک شبکه واحد وجود دارد. حتی اگر یک بلاکچین از نظر معماری غیرمتمرکز باشد یعنی در سطح و مقیاس وسیعی از رایانه‌ها توزیع شده باشد و از نظر سیاسی غیرمتمرکز باشد یعنی توسط یک نهاد واحد کنترل نشود، همچنان می‌تواند به عنوان یک عنصر یکپارچه "شبکه" عمل نماید. شبکه بیت‌کوین از نظر منطقی غیرمتمرکز نیست زیرا به عنوان یک شبکه منسجم واحد عمل می‌کند. اگر شبکه‌های بیت‌کوین مختلفی وجود داشتند که یکدیگر را نمی‌شناسند اما تحت یک اصل عمل می‌کردند، از نظر منطقی غیرمتمرکز می‌شد.

تمرکززدایی مزایای زیادی برای کسب‌وکارها و سیستم‌ها به همراه دارد، از جمله کارایی، تغییرناپذیری، شفافیت و قابلیت ردیابی. تمرکززدایی بخش حیاتی آینده اینترنت یعنی وب ۳ خواهد شد. انواع مختلفی از تمرکززدایی در بلاکچین وجود دارد و هر کدام هدفی را دنبال می‌کنند. یادگیری کافی در مورد تمرکززدایی، به عنوان بخش اصلی و حیاتی زیرساخت اینترنت، ضروری است.

Secure multi-party Computation

سید ابوالفضل موسوی | سه شنبه ششم خرداد ۱۴۰۴ | 8:7

همان گونه که متخصصین فناوری اطلاعات مسلط بر استک TCP/IP اطلاع دارند امنیت از همان آغاز پروژه‌های نرم‌افزاری یکی از مهم‌ترین وجوه قابل نظاره و توجه در مدیریت و پیشبرد پروژه می‌باشد. اگر چنین امری حاصل نشد کلیت کسب‌وکار فناورانه به خطر افتاده و زیست‌بوم اقتصادی دیجیتال از میان می‌رود. حریم شخصی یکی از مهم‌ترین دل‌نگرانی‌های کسب‌وکارهای دیجیتال است تا بتوانند اعتماد مشتریان خود را جلب نمایند. چنین تحفیظی از همان بدو امر با قابل لحاظ می‌باشد. الگوی طراحی یا Design Pattern غالب در چنین محیطی Secure multi-party computation است.

محاسبات چندجانبه امن یا عنوان محاسبات امن یا محاسبات چندجانبه (MPC) یا با نام محاسبات حفظ حریم خصوصی شناخته می‌شود که زیرشاخه‌ای از رمزنگاری است که هدف آن ایجاد روش‌هایی برای طرفین است تا بتوانند به طور مشترک یک تابع را بر روی ورودی‌های خود محاسبه کنند و در عین حال آن ورودی‌ها را خصوصی نگه دارند. برخلاف وظایف رمزنگاری سنتی، که در آن رمزنگاری امنیت و یکپارچگی ارتباط یا ذخیره‌سازی را تضمین می‌کند و دشمن خارج از سیستم شرکت‌کنندگان است یک استراق سمع روی فرستنده و گیرنده دارد، رمزنگاری در این مدل از حریم خصوصی شرکت‌کنندگان در برابر یکدیگر محافظت می‌کند.

پایه و اساس محاسبات چندجانبه امن در اواخر دهه ۱۹۷۰ با کار بر روی پوکر ذهنی، کار رمزنگاری که بازی‌های رایانه‌ای/وظایف محاسباتی را از راه دور و بدون نیاز به شخص ثالث مورد اعتماد شبیه‌سازی می‌کند، آغاز شد. به طور سنتی، رمزنگاری در مورد پنهان کردن محتوا بود، در حالی که این نوع جدید از محاسبات و پروتکل در مورد پنهان کردن اطلاعات جزئی در مورد داده‌ها هنگام محاسبه با داده‌های منابع مختلف و تولید صحیح خروجی‌ها است. در اواخر دهه ۱۹۸۰، مایکل بن‌اور ، شفی گلدواسر و آوی ویگدرسون، و به طور مستقل دیوید چام، کلود کرپو و ایوان دامگارد ، مقالاتی را منتشر کردند که نشان می‌دادند "چگونه می‌توان هر تابعی را در تنظیمات کانال‌های امن به طور ایمن محاسبه کرد".

پروتکل‌های خاص برای وظایف خاص در اواخر دهه 1970 آغاز شدند. بعدها، محاسبات امن به طور رسمی به عنوان محاسبات دو طرفه امن یا 2PC در سال 1982 برای مسئله به اصطلاح میلیونرها، یک مسئله خاص که یک گزاره بولی است و به طور کلی برای هر محاسبه ممکن در سال 1986 توسط اندرو یائو معرفی شد. این حوزه همچنین به عنوان ارزیابی عملکرد امن یا SFE شناخته می‌شود. پس از حالت دو طرفه، اودد گلدریچ، سیلویو میکالی و آوی ویگدرسون آن را به حالت چند طرفه تعمیم دادند. این محاسبه بر اساس اشتراک‌گذاری مخفی تمام ورودی‌ها و اثبات‌های دانش صفر برای یک حالت بالقوه مخرب است، که در آن اکثر بازیکنان صادق در حالت دشمن مخرب اطمینان می‌دهند که رفتار بد شناسایی شده و محاسبه با حذف فرد نادرست یا آشکار شدن ورودی او ادامه می‌یابد. این کار، طرح کلی بسیار اساسی را پیشنهاد کرد که اساساً توسط همه پروتکل‌های چند طرفه آینده برای محاسبات امن دنبال می‌شود. این کار، رویکردی به نام الگوی GMW را برای تدوین یک پروتکل محاسباتی چندطرفه که در برابر دشمنان نیمه‌صادق ایمن است، به پروتکلی که در برابر دشمنان مخرب ایمن است، معرفی کرد. این کار با اولین پروتکل امن قوی که رفتار معیوب را با مهربانی تحمل می‌کند بدون اینکه خروجی کسی را آشکار سازد، از طریق اثری که برای این منظور اختراع شد یعنی «ایده اشتراک سهام» انجام شد و پروتکلی که به یکی از طرفین اجازه می‌دهد ورودی خود را بدون قید و شرط پنهان کند، باعث ارائه‌ی تجاری آن گردید. الگوی GMW به دلیل سربارهای عظیمی که برای پروتکل پایه به همراه دارد، سال‌ها ناکارآمد تلقی می‌شد. با این حال، نشان داده شده است که دستیابی به پروتکل‌های کارآمد امکان‌پذیر است، و این امر این خط تحقیق را از دیدگاه عملی حتی جالب‌تر می‌کند. نتایج فوق در مدلی است که در آن دشمن محدود به محاسبات زمانی چندجمله‌ای است و تمام ارتباطات را مشاهده می‌کند و بنابراین این به عنوان یک «مدل محاسباتی» لحاظ می‌گردد. علاوه بر این، نشان داده شد که پروتکل انتقال بی‌توجه نیز برای این وظایف کامل است. نتایج فوق نشان داد که تحت شرایط مورد نظر مسئله مورد تحقیق و بررسی مقاله، دستیابی به محاسبات امن، زمانی که اکثر کاربران صادق باشند، امکان‌پذیر است.

سوال بعدی که باید حل می‌شد، مورد کانال‌های ارتباطی امن بود که در آن ارتباط نقطه به نقطه برای دشمن در دسترس نیست؛ در این مورد نشان داده شد که می‌توان با حداکثر 1/3 طرف‌های بدرفتار و مخرب، به راه‌حل‌هایی دست یافت و این راه‌حل‌ها هیچ ابزار رمزنگاری را اعمال نمی‌کنند زیرا ارتباط امن در دسترس است. اضافه کردن یک کانال پخش به سیستم اجازه می‌دهد تا حداکثر 1/2 اقلیت بدرفتار را تحمل کند.

در طول سال‌ها، مفهوم پروتکل‌های چندجانبه‌ی همه‌منظوره به حوزه‌ی پرباری برای بررسی ویژگی‌های مسائل اساسی و عمومی پروتکل، مانند ترکیب‌پذیری جهانی یا دشمن سیار مانند اشتراک‌گذاری مخفی پیشگیرانه ، تبدیل شده است.

از اواخر دهه 2000، و مطمئناً از سال 2010 و پس از آن، حوزه پروتکل‌های چندمنظوره به سمت بهبود کارایی پروتکل‌ها با در نظر گرفتن کاربردهای عملی حرکت کرده است. پروتکل‌های کارآمدتری برای MPC پیشنهاد شده‌اند و اکنون می‌توان MPC را به عنوان یک راه حل عملی برای مشکلات مختلف زندگی واقعی (به ویژه مواردی که فقط نیاز به اشتراک گذاری خطی اسرار و عمدتاً عملیات محلی روی سهام با تعاملات کم بین طرفین دارند مانند رأی‌گیری توزیع‌شده، مناقصه و مزایده خصوصی، اشتراک توابع امضا یا رمزگشایی و بازیابی اطلاعات خصوصی در نظر گرفت. اولین کاربرد عملی و در مقیاس بزرگ محاسبات چندطرفه، اجرای یک حراج دوگانه الکترونیکی در حراج چغندر قند دانمارک بود که در ژانویه 2008 انجام شد. بدیهی است که هم مفاهیم و تحقیقات نظری و هم ساختارهای کاربردی مورد نیاز است به عنوان مثال، شرایط برای انتقال MPC به بخشی از تجارت روزمره در مورد حمایت و ارائه قرار گرفت.

در یک MPC، تعداد مشخصی از شرکت‌کنندگان، p1 ، p2 ، ​​...، pN وجود دارد که هر کدام به ترتیب d1 ، d2 ، ...، dN تاپل داده‌های خصوصی دارند. شرکت‌کنندگان می‌خواهند مقدار یک تابع عمومی را روی آن داده‌های خصوصی محاسبه کنند: F(d1 ، d2 ، ...، dN ) در حالی که ورودی‌های خود را مخفی نگه می‌دارند.

برای مثال، فرض کنید سه طرف داریم: آلیس، باب و چارلی، که ورودی‌های x، y و z به ترتیب نشان‌دهنده حقوق آنها هستند. آن‌ها می‌خواهند بدون این‌که به یکدیگر بگویند هر کدام چقدر درآمد دارند، بالاترین حقوق را از بین این سه نفر پیدا نمایند. از نظر ریاضی، این به معنای محاسبه موارد زیر است:

F(x, y, z) = max(x, y, z)


اگر یک طرف خارجی مورد اعتماد وجود داشت مثلاً آن‌ها یک دوست مشترک به نام تونی داشتند که می‌دانستند می‌تواند رازی را نگه دارد، می‌توانستند هر کدام از آنها حقوق خود را به تونی بگویند، او می‌توانست حداکثر را محاسبه کند و آن عدد را به همه آن‌ها بگوید. هدف MPC طراحی پروتکلی است که در آن، آلیس، باب و چارلی با تبادل پیام فقط با یکدیگر، همچنان بتوانند F(x, y, z) را بدون فاش کردن این‌که چه کسی چه چیزی را تولید می‌کند و بدون نیاز به تکیه بر تونی، یاد بگیرند. آن‌ها نباید با مشارکت در پروتکل خود چیزی بیشتر از آن‌چه که با تعامل با یک تونی فاسدناپذیر و کاملاً قابل اعتماد یاد می‌گیرند، یاد بگیرند.

به طور خاص، تمام چیزی که طرفین می‌توانند یاد بگیرند، چیزی است که می‌توانند از خروجی و ورودی خودشان یاد بگیرند. بنابراین در مثال بالا، اگر خروجی z باشد، چارلی می‌فهمد که z او حداکثر مقدار است، در حالی که آلیس و باب می‌فهمند اگر x ، y و z متمایز باشند، که ورودی آن‌ها برابر با حداکثر نیست و حداکثر مقدار نگهداری شده برابر با z است. سناریوی اساسی را می‌توان به راحتی به جایی تعمیم داد که طرفین چندین ورودی و خروجی دارند و تابع مقادیر مختلفی را به طرفین مختلف خروجی می‌دهد.

به طور غیررسمی، اساسی‌ترین ویژگی‌هایی که یک پروتکل محاسبات چندطرفه قصد دارد تضمین کند عبارتند از:

  1. حریم خصوصی ورودی: هیچ اطلاعاتی در مورد داده‌های خصوصی که توسط طرفین نگهداری می‌شود، از پیام‌های ارسالی در طول اجرای پروتکل قابل استنباط نیست. تنها اطلاعاتی که می‌توان در مورد داده‌های خصوصی استنباط کرد، هر چیزی است که می‌توان از دیدن خروجی تابع به تنهایی استنباط کرد.
  2. صحت: هر زیرمجموعه مناسبی از طرفین متخاصم که مایل به اشتراک‌گذاری اطلاعات یا انحراف از دستورالعمل‌ها در طول اجرای پروتکل هستند، نباید بتوانند طرفین صادق را مجبور به خروجی نادرست کنند. این هدف صحت به دو صورت مطرح می‌شود: یا طرفین صادق تضمین می‌کنند که خروجی صحیح را محاسبه کنند (یک پروتکل "مقاوم")، یا در صورت یافتن خطا، از ادامه کار صرف نظر می‌کنند (یک پروتکل MPC "با لغو").

طیف گسترده‌ای از کاربردهای عملی وجود دارد، از کارهای ساده‌ای مانند پرتاب سکه گرفته تا کارهای پیچیده‌تر مانند حراج‌های الکترونیکی مثلاً محاسبه قیمت تسویه بازار و رأی‌گیری الکترونیکی یا داده‌کاوی با حفظ حریم خصوصی. یک مثال کلاسیک، مسئله میلیونرها است: دو میلیونر می‌خواهند بدانند چه کسی ثروتمندتر است، به گونه‌ای که هیچ‌کدام از آن‌ها از دارایی خالص دیگری مطلع نشوند. یک راه‌حل برای این وضعیت اساساً ارزیابی ایمن تابع مقایسه است.

در سال ۲۰۲۰، تعدادی از شرکت‌هایی که با محاسبات چندجانبه امن کار می‌کردند، اتحاد MPC را با هدف «تسریع آگاهی، پذیرش و به‌کارگیری فناوری MPC» تأسیس کردند.

همان طور که می‌بینید محاسبات امن حداکثر یک الگوریتم است که به صورت انتزاعی اگر داده‌ها را مضبوط در پایگاه‌داده‌ها دانست و با تاکید و لحاظ مشی پایگاهی به عنوان یک الگوی اساسی و قابل طرح در مهندسی نرم‌افزار و مدیریت پروژه‌ی نرم‌افزاری بر اساس آن و طراحی نرم‌افزار و همچنین پیچیده شدن محاسبات الگوریتمی که الزاما تابع max نیست ناگفته پیدا است محاسبات امن چندگانه با صعوبت و سختی به عنوان یک الگوی نرم‌افزاری غالب مبتنی بر روش‌های مرسوم و رایج مبتنی بر کتاب‌های مرجع مهندسی نرم‌افزار قابل اجرا می‌باشد. بسیاری از کمبودها و کاستی‌های سازمانی به واسطه‌ی تاکید بر design pattern و ایجاد پشتیبانی و بستر نگهداری مناسب از نرم‌افزار قابل جبران است. مسئله در پایگاه‌داده‌ها به صورت بالغ مورد بررسی قرار گرفته و تبدیل به حوزه‌ای مستقل با عنوان Statistical Database Security شده است.

به علاوه پیش‌فرض امن، استفاده حداقلی از کانال شاید راه‌حل مناسبی مبتنی بر آمار و احتمالات و یا جبر خطی باشد اما در علم امنیت با شایدها و اماواگرها و یا احتمالات محیطی سروکار ندارید بلکه باید همه چیز تحت نظارت Big Brother باشد و دزد و پلیس هر دو از وی حرف‌شنوی داشته باشند در غیر این صورت گرفتار عذابی دردناکی در دنیا و آخرت خواهند شد بنابراین کنترل Performance برنامه که در واحدهای Verification و Audit و Test برنامه انجام می‌شود طرح‌واره‌ی مناسب جهت تامین امنیت بر روی وب نیست و به راحتی با گرفتن یک shell بر روی میان‌افزارهای مجریان زبان میانی دات‌نت‌فریمورک و یا جاوا قابل کنترل و تغییر در نتایج و یا ورودی است. به راحتی با پروتکل JMX امکان راهبری JVM فراهم است و یا در مورد دات‌نت همین امر با PowerShell مفروض می‌باشد. باید امنیت در تمام لایه‌های استک TCP/IP برقرار شود و پس از آن به تدبیر اجرای الگوریتم بر معماری توزیع شده بود که می‌تواند توزیع شده و مبتنی بر معماری گرید طراحی شده باشد.

معماری گرید باید امنیت‌پذیر باشد بنابراین بهره‌گیری از زیرساخت SOAP راه‌حلی مناسب جهت نظارت دیواره‌ی آتش بر روی نقل و انتقال و حتی نوع محاسبات و سرویس‌های قابل ارائه به مشتری است.

نتیجه: با توجه به استدلالات گفته شده قابل اذعان است که امنیت یا Security برای زیست‌بوم‌های حساس دیجیتال علی‌الخصوص مالی همه‌چیز است.

qmake

سید ابوالفضل موسوی | دوشنبه پنجم خرداد ۱۴۰۴ | 8:9

ابزار qmake به ساده‌سازی فرآیند ساخت برای پروژه‌های توسعه در پلتفرم‌های مختلف کمک می‌کند. این ابزار تولید Makefileها را خودکار می‌کند، به طوری که برای ایجاد هر Makefile فقط به چند خط اطلاعات نیاز است. می‌توانید از qmake برای هر پروژه نرم‌افزاری، چه با Qt نوشته شده باشد و چه نباشد، استفاده کنید.

qmake بر اساس اطلاعات موجود در یک فایل پروژه، یک Makefile تولید می‌کند. فایل‌های پروژه توسط توسعه‌دهنده ایجاد می‌شوند و معمولاً ساده هستند، اما فایل‌های پروژه پیچیده‌تری نیز می‌توانند برای پروژه‌های پیچیده ایجاد شوند.

qmake شامل ویژگی‌های اضافی برای پشتیبانی از توسعه با Qt است، که به طور خودکار شامل قوانین ساخت برای moc و uic می‌شود.

qmake همچنین می‌تواند پروژه‌هایی را برای Microsoft Visual Studio بدون نیاز به تغییر فایل پروژه توسط توسعه‌دهنده، تولید نماید.

ابزار qmake یک سیستم پروژه‌محور برای مدیریت فرآیند ساخت برنامه‌ها، کتابخانه‌ها و سایر اجزا در اختیار شما قرار می‌دهد. این رویکرد به شما امکان کنترل فایل‌های منبع مورد استفاده را می‌دهد و اجازه می‌دهد هر یک از مراحل این فرآیند به طور مختصر، معمولاً در یک فایل واحد، شرح داده شوند. qmake اطلاعات موجود در هر فایل پروژه را به یک Makefile گسترش می‌دهد که دستورات لازم برای کامپایل و پیوند را اجرا می‌کند.

پروژه‌ها توسط محتویات ()project فایل‌های pro. توصیف می‌شوند. qmake از اطلاعات درون فایل‌ها برای تولید Makefileهایی استفاده می‌کند که شامل تمام دستورات مورد نیاز برای ساخت هر پروژه هستند. فایل‌های پروژه معمولاً حاوی لیستی از فایل‌های منبع و هدر، اطلاعات پیکربندی عمومی و هرگونه جزئیات خاص برنامه، مانند لیستی از کتابخانه‌های اضافی برای پیوند دادن به آنها یا لیستی از مسیرهای اضافی برای استفاده هستند.

فایل‌های پروژه می‌توانند شامل عناصر مختلفی از جمله نظرات، تعریف متغیرها، توابع داخلی و برخی ساختارهای کنترلی ساده باشند. در اکثر پروژه‌های ساده، فقط لازم است فایل‌های منبع و هدر که برای ساخت پروژه به همراه برخی گزینه‌های پیکربندی اولیه استفاده می‌شوند، تعریف شوند.

شما می‌توانید فایل‌های پروژه پیچیده‌تری برای پروژه‌های پیچیده ایجاد نمایید. شما می‌توانید از الگوهای پروژه برنامه یا کتابخانه برای مشخص کردن گزینه‌های پیکربندی تخصصی جهت تنظیم دقیق فرآیند ساخت استفاده کنید. شما می‌توانید از ویزارد پروژه جدید Qt Creator برای ایجاد فایل پروژه استفاده کنید. شما الگوی پروژه را انتخاب می‌کنید و Qt Creator یک فایل پروژه با مقادیر پیش‌فرض ایجاد می‌کند که به شما امکان ساخت و اجرای پروژه را می‌دهد. می‌توانید فایل پروژه را متناسب با اهداف خود تغییر دهید.

همچنین می‌توانید از qmake برای تولید فایل‌های پروژه استفاده کنید. ویژگی‌های پیکربندی اولیه‌ی qmake می‌تواند اکثر پروژه‌های چند پلتفرمی را مدیریت کند. با این حال، استفاده از برخی متغیرهای مختص پلتفرم ممکن است مفید یا حتی ضروری باشد.

برای پروژه‌های ساده، فقط کافی است qmake را در دایرکتوری سطح بالای پروژه خود اجرا کنید تا یک Makefile ایجاد شود. سپس می‌توانید ابزار make پلتفرم خود را برای ساخت پروژه مطابق با Makefile اجرا کنید.

نکته: دایرکتوری ساخت پروژه خود را به لیست دایرکتوری‌های مستثنی شده از هر برنامه آنتی ویروسی که روی سیستم شما اجرا می‌شود، اضافه کنید.

در پروژه‌های بزرگ، می‌توان از فایل‌های هدر از پیش کامپایل شده برای سرعت بخشیدن به فرآیند ساخت استفاده کرد.

qmake یک ابزار اتوماسیون ساخت نرم‌افزار است که فایل‌های makefiles را تولید می‌کند. از آنجایی که فایل‌های پیکربندی را برای سایر ابزارهای ساخت تولید می‌کند، به عنوان یک ابزار meta-build طبقه‌بندی می‌شود.

فایل‌هایی که qmake تولید می‌کند، بر اساس فایل‌های پروژه qmake، متناسب با پلتفرم خاصی که از آن اجرا می‌شود، تنظیم می‌شوند. به این ترتیب، می‌توان از یک مجموعه دستورالعمل ساخت برای ایجاد دستورالعمل‌های ساخت در سیستم عامل‌های مختلف استفاده کرد. qmake از تولید کد برای سیستم عامل‌های زیر پشتیبانی می‌کند:

  • لینوکس (از جمله اندروید)
  • اپل macOS
  • اپل iOS
  • FreeBSD
  • هایکو
  • سیمبیان
  • مایکروسافت ویندوز
  • مایکروسافت ویندوز CE

qmake توسط Trolltech (که اکنون شرکت Qt نام دارد) ایجاد شده است. این نرم‌افزار توزیع شده و با چارچوب برنامه Qt یکپارچه شده است و ایجاد منابع moc (کامپایلر متا شیء) و rcc (کامپایلر منابع) را که در سیستم متا شیء Qt و در یکپارچه‌سازی منابع باینری (مثلاً تصاویر) استفاده می‌شوند، خودکار می‌کند.

ابزار qmake به ساده‌سازی فرآیند ساخت برای پروژه‌های توسعه در پلتفرم‌های مختلف کمک می‌کند. این ابزار تولید Makefileها را خودکار می‌کند، به طوری که برای ایجاد هر Makefile فقط به چند خط اطلاعات نیاز است. می‌توانید از qmake برای هر پروژه نرم‌افزاری، چه با Qt نوشته شده باشد و چه نباشد، استفاده نمایید.

GNU

سید ابوالفضل موسوی | شنبه سوم خرداد ۱۴۰۴ | 11:47

گنو (GNU) مخفف

متخصصین حرفه‌ای که در دنیای بی‌انتهای فناوری‌های متن‌باز کار کرده‌اند حتما یک بار طی فعالیت شغلی خویش نام GNU را شنیده‌اند. اصطلاح Open-source که آن را به متن‌باز و گاهی منبع باز ترجمه می‌کنند صفتی است که با واژه‌های متنوعی همراه می‌شود. الگوی Open-source و نرم‌افزار Open-source و نگرش Open-source و حتی فلسفه‌ی Open-source از جمله اصطلاحاتی هستند که در پروپاگانداهای فناورانه به تعدد و تکرر بسیار شنیده و مورد تاکید قرار می‌گیرند. بحث Open Source چنان گسترده است که حتی عمر و زندگی یک انسان هم برای وارد شدن به همه‌ی جنبه‌ها و زیر و بم‌های آن کافی نیست.

حتماً تا به حال به این نکته توجه کرده‌اید که شما معمولاً به کدهای اصلی برنامه‌‌هایی که از آنها استفاده می‌کنید دسترسی ندارید. می‌توانید اپلیکیشن اینستاگرام یا Todoist را روی گوشی خود نصب کرده و استفاده کنید یا اسلایدسازی‌ خود را با پاورپوینت انجام دهید، اما نمی‌توانید کدهای اصلی آن‌ها را ببینید و تغییری در این برنامه‌ها ایجاد کنید. احتمالاً انتظار هم ندارید چنین امکانی در اختیار شما قرار داده شود. اگر قصد داشته باشید یک برنامه برای به اشتراک‌گذاری عکس‌ها طراحی کنید، یا اپلیکیشنی برای درست کردن چک‌لیست‌ ایجاد کنید یا برنامه‌ای برای ساختن اسلاید بنویسید، این را می‌پذیرید که تقریباً همه چیز را از صفر آغاز کنید. در چنین فضایی چندان قابل تصور نبود که یک برنامه‌نویس، کدها را هم به مشتری تحویل دهد و مشتری بتواند به هر شکلی که خواست از آن‌ها استفاده کند. Netscape شرکتی بود که با یک اقدام بی‌سابقه، فضا را در این زمینه تغییر داد. Netscape تمام کدهای برنامه را به صورت رایگان در دسترس عموم قرار داد.

تصور کنید که می‌توانید هر جای برنامه را که دوست دارید عوض کنید؛ یا این‌که بخش‌هایی از کد آن را در برنامه‌ی خودتان قرار دهید. نمونه‌های کوچک‌تر چنین کاری قبلاً هم انجام شده بود. کسی به نام ریچارد استالمن (Richard Stallman) برای یک پروژه‌ی نرم‌افزاری دانشگاهی به نام GNU این کار را کرده بود. اما این‌که یک شرکت تجاری چنین کاری انجام دهد، اتفاقی متفاوت و عجیب محسوب می‌شود. کسی نمی‌دانست برای چنین کاری چه نامی انتخاب کند. اگر چه با فاصله‌ی زمانی نسبتاً کمی نام این کار مشخص شد: Open-source. نوعی از عرضه‌ی نرم‌افزار که ما هم امروز آن را به همین اسم یعنی منبع باز یا متن‌باز می‌شناسیم.

ریچارد متیو استالمن (به انگلیسی: Richard Matthew Stallman) (متولد ۱۶ مارس ۱۹۵۳ در نیویورک) معروف به آر-ام-اس (به انگلیسی: RMS)، یک آمریکایی طرفدار آزادی نرم‌افزار و برنامه‌نویس کامپیوتر است. در سپتامبر سال ۱۹۸۳، او پروژه گنو را برای ساخت یک سیستم‌عامل کاملاً آزاد شبه-یونیکس آغاز کرد و مدیریت و معماری این پروژه را عهده‌دار شد. با آغاز پروژه گنو، او نخستین قدم را در جنبش نرم‌افزار آزاد برداشت و در اکتبر سال ۱۹۸۵ بنیاد نرم‌افزار آزاد را تأسیس کرد.

برنامه‌نویسی به نام بروس پرنز (Bruce Perens) قواعد کلی نرم افزارهای متن‌باز را تدوین و منتشر کرد. وی تأکید کرده است که باید به خاطر داشته باشیم که توسعه‌دهندگان این ایده، بر روی شانه‌های ریچارد استالمن ایستاده‌اند.

در پاسخ به این پرسش که «گنو چیست»، می‌توان گفت که «گِنو» (GNU)، سیستم عاملی آزاد است که شباهت زیادی به سیستم‌عامل «یونیکس» (Unix) دارد. بدون این‌که در ساخت آن، از کدهای یونیکس استفاده‌ای شده باشد. GNU مخفف «GNU's Not Unix» است و آقای ریچارد استالمن، نخستین بار در سال ۱۳۶۲ هجری‌شمسی مصادف با ۱۹۸۳ میلادی، زمانی‌که در MIT مشغول به کار بود از پروژه‌ای با این نام خبر داد. البته GNU چیزی بیش از تنها یک سیستم‌عامل است و در واقع یک خط فکری و رویه محسوب می‌شود. هدف از گنو، ارائه‌ی نرم‌افزاری «آزاد» (Free) و احترام به حقوق کاربران است. منظور، نرم‌افزاری است که آزادی کافی در اجرا، بررسی، کپی، تغییر و توزیع مجدد آن را داشته باشیم. حال این‌که، نرم‌افزارهای آزاد، ممکن است به‌طور رایگان یا در قبال پرداخت هزینه‌ای اغلب بابت پشتیبانی، به کاربران ارائه شوند. هدف گنو جایگزین کردن نرم‌افزارهای غیر آزاد با نرم‌افزارهای آزاد است.

استالمن می‌خواست کاربران کامپیوتر، آزاد باشند تا بتوانند سورس کد نرم‌افزارهای مورد استفاده را کند و کاو کنند، نرم‌افزار را با همکاران و به‌طور کلی افراد دیگر به اشتراک بگذارند، رفتار نرم‌افزار را به شیوه‌ای دلخواه اصلاح و نسخه‌های نرم‌افزاری تغییر یافته را منتشر کنند. این فلسفه به عنوان «مانیفست گنو» (خط فکری گنو) در ۱۳۶۴ (مارس ۱۹۸۵) منتشر شد.

«گنو»، قرار بود سیستم عاملی شِبه یونیکس، شامل «هسته» (Kernel)، «کامپایلرها» (Compilers)، ویرایشگرها، قالب‌دهنده متن، نرم‌افزار ایمیل، رابط‌های گرافیکی، کتابخانه‌ها، بازی‌ها و بسیاری موارد دیگر باشد. بنابراین، نوشتن سیستم عاملی در این ابعاد، کار بسیار بزرگی محسوب می‌شد. در اواخر سال ۱۳۶۲ (ژانویه ۱۹۸۴ میلادی) کار روی این پروژه شروع و «بنیاد نرم‌افزار آزاد» (Free Software Foundation | FSF) در مهر ۱۳۶۴ (اکتبر ۱۹۸۵) تاسیس شد. هدف ابتدایی این بنیاد، جمع‌آوری سرمایه و بودجه مورد نیاز برای کمک به توسعه گنو بود.

گنو یک سیستم‌عامل است که از هسته لینوکس استفاده می‌کند و در کنار آن نرم‌افزارهای گنو نیز وجود دارند. بسیاری از نرم‌افزارهای مورد نیاز باید از ابتدا نوشته می‌شدند، اما مواردی از نرم‌افزارهای آزادِ سازگار که توسط شخص ثالث ایجاد شده بودند، مانند سیستم حروفچینی TeX، سیستم «پنجره ایکس» (X Window) و میکروکرنل «ماخ» (Mach)، به همان شکل، مورد استفاده قرار گرفتند. به غیر از این موارد، بیشتر مولفه‌های گنو توسط برنامه‌نویسان داوطلب نوشته شده‌اند.

برخی از این نرم‌افزارها توسط برنامه‌نویسان و در اوقات فراغت نوشته می‌شدند و تهیه برخی دیگر توسط شرکت‌ها، موسسات آموزشی و سایر سازمان‌های غیرانتفاعی صورت می‌گرفت. استالمن در اواخر دهه ۷۰ (سال‌های ۱۹۹۰ میلادی)، برنامه‌نویسانی را برای نوشتن نرم‌افزارهای مورد نیاز برای GNU استخدام کرد.

دلیل اینکه واژه «GNU» برای این طرح انتخاب شد، این بود که مخفف بازگشتیِ عبارت «GNU's Not Unix» محسوب می‌شد (یعنی حرف اول این مخفف، خودِ واژه GNU است) و همچنین با توجه به شباهت میان گنو و یونیکس، این نکته را به‌طور غیرمستقیم بیان می‌کرد که گنو از کدهای یونیکس استفاده نکرده است. همچنین تلفظ واژه GNU علاوه بر مناسب بودن از نظر آوایی، کلمه‌ای معنادار محسوب می‌شود که به گونه‌ای به گوزن‌های یال‌دار اشاره دارد.

GPL مخفف

سیستم‌عامل «گِنو»، سیستم‌عاملی کامل و آزاد است که با یونیکس «سازگاری رو به بالایی» (Upward-Compatible) دارد. یعنی، علاوه بر انجام کارهایی که پیش از این قابل انجام بودند، عملکرد و قابلیت‌های بیشتری را نیز ارائه می‌دهد. این پروژه مسئول توسعه و انتشار نرم‌افزارهای گنو است. نرم‌افزارهایی که کاربران حق استفاده، تغییر، و توزیع آن‌ها را دارند، تحت مجوزهای آزاد مانند GPL (GNU General Public License) قرار می‌گیرند. پروانه عمومی گنو یکی از رایج‌ترین مجوزهای نرم‌افزارهای آزاد است که اطمینان می‌دهد کاربران حق مطالعه، تغییر، توزیع و انتشار نرم‌افزار را دارند.

کلمه «آزاد» (Free) در عبارت «نرم‌افزار آزاد» (Free Software)، به «آزادی» در آن اشاره دارد و ربطی به قیمت آن و رایگان بودن ندارد. یعنی تهیه و دریافت نرم‌افزار گِنو هم ممکن است به‌صورت رایگان باشد و هم اینکه شاید در برخی موارد لازم باشد هزینه‌ای در قبالِ دریافت آن بپردازیم. در هر صورت، فارغ از اینکه نرم‌افزار GNU را رایگان یا در ازای پرداخت هزینه‌ای، دریافت کردیم، با در اختیار داشتن آن (در هنگام استفاده از آن)، مشمول چهار مورد آزادی مشخص می‌شویم. در ادامه هر یک از مَنِش‌های آزادی در گنو فهرست شده‌اند:

  1. آزادیم تا برنامه را همان‌‌طوری که مایلیم اجرا کنیم
  2. می‌توانیم برنامه را کپی کنیم و آن را به دوستان و همکارانمان بدهیم
  3. دسترسی کامل به سورس کد آن داریم و می‌توانیم برنامه را به هر نحوی که بخواهیم تغییر دهیم
  4. همچنین آزادیم تا نسخه بهبودیافته آن را توزیع کنیم که این امر، به ساختن «اجتماع» (Community) آن نرم‌افزار کمک می‌کند.

به یاد داشته باشید اگر نرم‌افزار گنو را مجدداً توزیع کنید، می‌توانید به منظور عمل فیزیکی صورت گرفته برای انتقال کپی، هزینه‌ای را دریافت کنید، یا اینکه کپی‌ها را به رایگان در اختیار افرادی قرار دهید. تا سال ۱۳۶۹ (۱۹۹۰ میلادی)، همه اجزای اصلی سیستم عامل به جز یک مورد یعنی «هسته» (کرنل) آن نوشته شده بود. در نهایت، در سال ۱۳۷۰ (۱۹۹۱ میلادی)، سیستم عامل «لینوکس» (Linux) با هسته‌ای شبیه به یونیکس، توسط آقای «لینوس توروالدز» (Linus Torvalds) توسعه یافت و در سال ۱۳۷۱ (۱۹۹۲ میلادی) به عنوان «نرم‌افزاری آزاد» مورد استفاده قرار گرفت. ترکیب لینوکس با برنامه‌های توسعه داده شده برای GNU منجر به ظهور سیستم عامل کاملی به‌نام «گنو/لینوکس» (GNU/Linux) شد. پیش‌بینی‌ها نشان می‌دهد که در حال حاضر، ده‌ها میلیون نفر از سیستم‌های گنو/لینوکس، (غالبا به‌وسیله توزیع‌های آن) استفاده می‌کنند.

لینوکس کرنل یا هسته سیستم‌عامل است، در حالی که گنو مجموعه‌ای از نرم‌افزارها و ابزارهای دیگری است که روی کرنل لینوکس اجرا می‌شوند. به همین دلیل، سیستم‌عامل‌های گنو/لینوکس که به اشتباه لینوکس خوانده می‌شوند، در واقع ترکیبی از این دو هستند. البته آقای توروالدز نام تجاری لینوکس را به نام خود ثبت کرده است و با به کار بردن نام GNU/Linux مخالفت دارد. بیشتر آقای استالمن تاکید دارد که از عبارت GNU/Linux برای خطاب قرار دادن سیستم عامل لینوکس استفاده شود. برای کسب اطلاعات دقیق‌تر پیرامون این مسائل، مشاهده فیلم مستند «انقلاب سیستم عامل» (Revolution OS) به علاقه‌مندان پیشنهاد می‌شود.

لینوس بندیکت توروالدز (به سوئدی: Linus Benedict Torvalds) (متولد ۲۸ دسامبر ۱۹۶۹ در هلسینکی فنلاند) یک مهندس نرم‌افزار فنلاندی-آمریکایی است که به خاطر آغاز و توسعهٔ هسته لینوکس و همچنین نرم‌افزار گیت شناخته می‌شود. او پس از چندی معمار ارشد پروژهٔ هسته لینوکس شد و هم‌اکنون مسئولیت هماهنگ کنندهٔ پروژه (هسته لینوکس) را بر عهده دارد.

توزیع‌های رایگان سیستم عامل گنو/لینوکس فقط شامل نرم‌افزارهای آزاد می‌شوند و تنها این نوع نرم‌افزارها را پیشنهاد می‌کنند. اپلیکیشن‌ها، پلتفرم‌های برنامه‌نویسی، درایورها و «ثابت‌افزار» (Firmware) غیرآزاد، «Blob‎» و به طور کلی هر نرم‌افزار و مستنداتی که آزاد نباشند را رد می‌کنند. اگر احیانا مشخص شود که برخی از این نرم‌افزارهای غیر آزاد به اشتباه وارد جریان نرم‌افزارهای آزاد شده‌اند، کنار گذاشته می‌شوند. لازم به ذکر است که ثابت‌افزار، برنامه‌ای معمولا ثابت و کوچک است که درون سخت افزار انواع دستگاه‌های الکترونیکی (مثل مودم) قرار می‌گیرد.

نسخه اصلی لینوکس در حال حاضر حاوی ثابت‌افزار «Blobs» غیررایگان است. فعالان «نرم‌افزار آزاد» اکنون نسخه‌ای آزاد و اصلاح شده از لینوکس به نام «Linux-libre» (هسته‌ای آزاد از لینوکس) را نگهداری می‌کنند. لازم به ذکر است که «حباب» (Blob) در لینوکس قطعه کدی است که در سخت‌افزار مرتبط با درایور اجرا می‌شود. ایده این است که از دیدگاه درایور، سخت‌افزاری که حبابی روی آن بارگذاری شده است، همچنان به عنوان سخت افزار تلقی می‌شود.

Data Visualization

سید ابوالفضل موسوی | چهارشنبه سی و یکم اردیبهشت ۱۴۰۴ | 14:5

مصورسازی داده‌ها به متخصصان داده کمک می‌کند تا با داده‌ها داستانی را روایت نمایند. مصورسازی داده‌ها روشی قدرتمند برای افراد، به ویژه متخصصان داده، برای نمایش داده‌ها به گونه‌ای است که بتوان آن‌ها را به راحتی تفسیر نمود. این روش با تبدیل صفحات گسترده‌ی اعداد به نمودارها و جداول خیره‌کننده، به روایت داستان با داده‌ها کمک می‌کند. در ادامه پیرامون مصورسازی داده‌ها از جمله تعریف، مزایا، مثال‌ها، انواع و ابزارهای آن صحبت خواهد شد.

مصورسازی داده‌ها، نمایش اطلاعات و داده‌ها با استفاده از نمودارها، گراف‌ها، نقشه‌ها و سایر ابزارهای بصری است. این مصورسازی‌ها به ما امکان می‌دهند تا به راحتی هرگونه الگو، روند یا داده‌های صرف‌نظر شده را در یک مجموعه‌ی کلی قابل نمایش درک کنیم. مصورسازی داده‌ها همچنین داده‌ها را برای عموم مردم یا مخاطبان خاص بدون دانش فنی قابل دسترسی می‌کند. به عنوان مثال، یک سازمان بهداشتی دولتی ممکن است نقشه‌ای از مناطق واکسینه شده ارائه دهد. هدف از مصورسازی داده‌ها، کمک به تصمیم‌گیری آگاهانه و افزودن معنای رنگارنگ به یک پایگاه داده‌ی بی‌روح است. مصورسازی داده‌ها در واقع هنر نقاشی داده‌ها بر روی واسط گرافیکی قابل انتقال و استفاده توسط عموم مردم می‌باشد.

مصورسازی داده‌ها می‌تواند در بسیاری از زمینه‌ها تقریباً در هر زمینه‌ای، مانند سیاست عمومی، امور مالی، بازاریابی، خرده‌فروشی، آموزش، ورزش، تاریخ و موارد دیگر مورد استفاده قرار گیرد. مزایای مصورسازی داده‌ها عبارتند از:

  1. داستان‌سرایی: مردم به رنگ‌ها و طرح‌های موجود در لباس، هنر و فرهنگ، معماری و موارد دیگر جذب می‌شوند. داده‌ها نیز از این قاعده مستثنی نیستند. رنگ‌ها و طرح‌ها به ما امکان می‌دهند داستان درون داده‌ها را تجسم کنیم.
  2. دسترسی‌پذیری: اطلاعات به شیوه‌ای قابل فهم و در دسترس برای طیف وسیعی از مخاطبان به اشتراک گذاشته می‌شود.
  3. تجسم روابط: وقتی اطلاعات در یک نمودار یا چارت ارائه می‌شوند، تشخیص روابط و الگوها در یک مجموعه داده آسان‌تر است.
  4. اکتشاف: داده‌های در دسترس‌تر به معنای فرصت‌های بیشتر برای کاوش، همکاری و اطلاع‌رسانی در مورد تصمیمات عملی است.

شرکت‌ها «کلان داده» یا داده‌های بزرگ یا Big Data را جمع‌آوری کرده و آن را به اطلاعات تبدیل می‌کنند. مصورسازی داده‌ها به ترسیم بینش‌های مهم کمک می‌کند مانند یک نقشه حرارتی برای نشان دادن مناطقی که افراد در آن به دنبال کمک در زمینه سلامت روان هستند. برای ترکیب تمام این داده‌ها، می‌توان از نرم‌افزار مصورسازی در کنار نرم‌افزار جمع‌آوری داده‌ها استفاده کرد.

می‌توانید ابزارهای تجسم داده‌ها زیادی را متناسب با نیازهای خود پیدا کنید. قبل از انتخاب یکی از آنها، تحقیق کنید که آیا به یک سایت متن‌باز نیاز دارید یا می‌توانید به سادگی با استفاده از اکسل یا نمودارهای گوگل نمودار ایجاد کنید. ابزارهای رایج تجسم داده‌ها که می‌توانند نیازهای شما را برآورده کنند، به شرح ذیل می‌باشد:

  1. Tableau
  2. Google Charts
  3. Dundas BI
  4. Power BI
  5. JupyteR
  6. Infogram
  7. ChartBlocks
  8. D3.js
  9. FusionCharts
  10. Grafana

مصورسازی داده‌ها می‌تواند به سادگی یک نمودار میله‌ای یا نمودار پراکندگی باشد، اما هنگام تجزیه و تحلیل، به عنوان مثال، میانگین سنی کنگره ایالات متحده در مقایسه با میانگین سنی آمریکایی‌ها، قدرتمند می‌شود. انواع رایج مصورسازی داده‌ها عبارتند از:

  1. جدول: جدول، داده‌هایی است که در ردیف‌ها و ستون‌ها نمایش داده می‌شوند و می‌توان آن‌ها را به راحتی در یک سند Word یا صفحه گسترده Excel ایجاد کرد.
  2. نمودار یا گراف: اطلاعات به صورت جدولی با داده‌هایی که در امتداد محور x و y نمایش داده می‌شوند، معمولاً با میله‌ها، نقاط یا خطوط، برای مقایسه نمایش داده‌ها، ارائه می‌شوند. اینفوگرافیک نوع خاصی از نمودار است که تصاویر و کلمات را برای نشان دادن داده‌ها ترکیب می‌کند.
  3. نمودار گانت: نمودار گانت یک نمودار میله‌ای است که یک جدول زمانی و وظایف را که به طور خاص در مدیریت پروژه استفاده می‌شود، نشان می‌دهد.
  4. نمودار دایره‌ای: نمودار دایره‌ای داده‌ها را به درصدهایی که در «برش‌هایی» از یک دایره نمایش داده شده‌اند، تقسیم می‌کند که مجموع همه آنها ۱۰۰ درصد می‌شود.
  5. تجسم مکانی: داده‌ها به شکل نقشه با اشکال و رنگ‌هایی که رابطه بین مکان‌های خاص را نشان می‌دهند، مانند یک کروپلت یا نقشه حرارتی، نمایش داده می‌شوند.
  6. داشبورد: داده‌ها و مصورسازی‌ها، معمولاً برای اهداف تجاری، نمایش داده می‌شوند تا به تحلیلگران در درک و ارائه داده‌ها کمک کنند.

با استفاده از ابزارهای مصورسازی داده‌ها، می‌توان انواع مختلفی از نمودارها و گراف‌ها را برای نشان دادن داده‌های مهم ایجاد کرد. چند نمونه از مصورسازی داده‌ها در دنیای واقعی عبارتند از:

  1. علم داده: دانشمندان و محققان داده با استفاده از زبان‌های برنامه‌نویسی یا ابزارهایی مانند پایتون یا R به کتابخانه‌هایی دسترسی دارند که از آنها برای درک و شناسایی الگوها در مجموعه داده‌ها استفاده می‌کنند. ابزارها با کدگذاری تحقیقات با رنگ‌ها، نمودارها، خطوط و شکل‌ها به این متخصصان داده کمک می‌کنند تا کارآمدتر عمل کنند.
  2. بازاریابی: ردیابی داده‌هایی مانند ترافیک وب و تجزیه و تحلیل رسانه‌های اجتماعی می‌تواند به بازاریابان کمک کند تا تجزیه و تحلیل کنند که مشتریان چگونه محصولات آنها را پیدا می‌کنند و اینکه آیا آنها از بهترین خریداران هستند یا خریداران مناسبی نیستند. نمودارها و گراف‌ها می‌توانند داده‌ها را برای بازاریابان و ذی‌نفعان ترکیب کرده تا این روندها را بهتر درک کنند.
  3. امور مالی: سرمایه‌گذاران و مشاورانی که بر خرید و فروش سهام، اوراق قرضه، سود سهام و سایر کالاها تمرکز دارند، حرکت قیمت‌ها را در طول زمان تجزیه و تحلیل می‌کنند تا مشخص کنند کدام یک برای دوره‌های کوتاه‌مدت یا بلندمدت ارزش خرید دارند. نمودارهای خطی به تحلیلگران مالی کمک می‌کنند تا این داده‌ها را تجسم کنند و بین ماه‌ها، سال‌ها و حتی دهه‌ها جابجا شوند.
  4. سیاست سلامت: سیاست‌گذاران می‌توانند از نقشه‌های کروپلت که بر اساس مناطق جغرافیایی (ملت‌ها، ایالت‌ها، قاره‌ها) و با رنگ‌ها تقسیم‌بندی شده‌اند، استفاده کنند. برای مثال، آن‌ها می‌توانند از این نقشه‌ها برای نشان دادن میزان مرگ و میر ناشی از سرطان یا ابولا در نقاط مختلف جهان استفاده کنند.

با بهره‌گیری از تجزیه و تحلیل داده‌ها به شما کمک می‌کند تا تصمیمات بزرگ تجاری بگیرید. از بازاریابی گرفته تا تجزیه و تحلیل داده‌ها، تجسم داده‌ها مهارتی است که می‌تواند برای بسیاری از صنایع مفید باشد. تقویت مهارت‌هایتان در تجسم داده‌ها می‌تواند در مشاغل زیر مفید باشد:

  1. تحلیلگر مصورسازی داده‌ها: به عنوان یک تحلیلگر (یا متخصص) مصورسازی داده‌ها، شما مسئول ایجاد و ویرایش محتوای بصری مانند نقشه‌ها، نمودارها و اینفوگرافیک‌ها از مجموعه داده‌های بزرگ خواهید بود.
  2. مهندس مصورسازی داده‌ها: مهندسان و توسعه‌دهندگان مصورسازی داده‌ها، هم در کار با داده‌ها با SQL و هم در کمک به تیم‌های محصول در ایجاد داشبوردهای کاربرپسند که امکان داستان‌سرایی را فراهم می‌کنند، متخصص هستند.
  3. تحلیلگر داده: یک تحلیلگر داده، مجموعه داده‌ها را جمع‌آوری، پالایش و تفسیر می‌کند تا به سؤالات پاسخ دهد یا مشکلات تجاری را حل کند.

داده‌ها همه جا هستند. در نقش‌های خلاقانه مانند طراح گرافیک ، استراتژیست محتوا یا متخصص رسانه‌های اجتماعی، تخصص تجسم داده‌ها می‌تواند به شما در حل مشکلات چالش‌برانگیز کمک کند. از طرف دیگر، متخصصان داده می‌توانند از مهارت‌های تجسم داده‌ها برای روایت داستان‌های تأثیرگذارتر از طریق داده‌ها بهره‌مند شوند. مصورسازی داده‌ها می‌تواند به شما کمک کند تا داستانی را با داده‌ها به روشی روایت کنید که درک آن برای مخاطبانتان آسان‌تر باشد.

ابزارهای قابل استفاده در مصورسازی داده‌ها با زیرساخت دات‌نت‌فریمورک به شرح ذیل است:

  1. DotNet Report
  2. Redash
  3. Grafana Labs
  4. Data Wrapper
  5. Google Charts
  6. Bold BI
  7. Knowage
  8. Tableau Public
  9. Google Data Studio
  10. Microsoft Power BI Desktop
  11. D3.js
  12. Candela
  13. Chart Studio
  14. Gephi
  15. Polymaps
  16. RawGraphs
  17. Chartist
  18. Charted
  19. Datawrapper
  20. ParaView
  21. Plotly
  22. Leaflet
  23. ColorBrewer
  24. DyGraphs
  25. Orange

MIS

سید ابوالفضل موسوی | سه شنبه سی ام اردیبهشت ۱۴۰۴ | 10:7

MIS مطالعه افراد، فناوری و سازمان‌ها است. اگر به فناوری علاقه‌مند هستید و از چالش حل مشکلات متنوع تجاری لذت می‌برید، باید مطالعه سیستم‌های اطلاعاتی در صدر امور لحاظ گردد. تنها چیزی که نیاز دارید علاقه به فناوری و تمایل به استفاده از فناوری جهت بهبود زندگی مردم است. بسیاری از مردم فکر می‌کنند که MIS فقط برنامه‌نویسی است. با این حال، برنامه‌نویسی تنها بخش کوچکی از محتوای MIS می‌باشد و مشاغل بسیار زیادی در MIS وجود دارد که شما در آنها برنامه‌نویسی نمی‌کنید.

هر کسی که در تجارت کار می‌کند، از کسی که صورتحساب‌ها را پرداخت می‌کند تا کسی که استخدام و اخراج می‌کند، از سیستم‌های اطلاعاتی استفاده می‌کند. به عنوان مثال، یک سوپرمارکت می‌تواند از یک پایگاه داده کامپیوتری برای پیگیری این‌که کدام محصولات بیشترین فروش را دارند استفاده کند و یک فروشگاه موسیقی می‌تواند از یک پایگاه داده برای فروش سی‌دی از طریق اینترنت استفاده نماید.

اطلاعات اگر هدفی را دنبال نکند، ارزش زیادی ندارد. متخصصین MIS یاد گرفته‌اند چگونه مشاغل از اطلاعات برای بهبود عملیات شرکت استفاده نمایند همچنین سیستم‌های اطلاعاتی مختلف را مدیریت می‌کنند تا به بهترین شکل نیازهای مدیران، کارکنان و مشتریان را برآورده سازند. متخصصین MIS می‌دانند که چگونه سیستم‌هایی برای یافتن و ذخیره داده‌ها ایجاد کنند و در مورد پایگاه‌های داده کامپیوتری، شبکه‌ها، امنیت کامپیوتر و موارد دیگر اطلاعات کسب می‌کنند.

سیستم‌های اطلاعاتی به صورت ذاتی با علوم کامپیوتر متفاوت است و با توجه به افزایش نیاز بازار و کابران جهت بهره‌گیری از اطلاعات دیجیتال یک رشته‌ی مجزا محسوب می‌شود. همه این رشته‌ها عالی هستند، با این حال، رشته مدیریت اطلاعات (MIS) تنها رشته‌ای است که هم بر فرآیندهای کسب‌وکار و هم بر فناوری اطلاعات تمرکز دارد. اگر به کسب‌وکار و فناوری علاقه‌مند هستید، به تئوری علاقه دارید اما نه خیلی زیاد، به اندازه‌ای به فناوری علاقه دارید که بخواهید از اخبار داغ روز مطلع باشید اما نمی‌خواهید تمام عمرتان برنامه بنویسید، MIS برای شما مناسب است. من معتقدم که مسیر شغلی رو به رشد برای کسانی که دوست دارند با کسب‌وکار و فناوری کار کنند، قطعاً MIS است.

پروفایل‌های بسیار متفاوتی وجود دارد، اما برخی از ویژگی‌های مختص متخصصان عالی MIS است. آیا این ویژگی‌ها علایق شما را توصیف می‌کنند؟ اگر چنین است، بنابراین زمینه‌ی تولید سامانه‌های MIS برای شما مناسب است. متخصصان MIS عمدتا:

  1. حل‌کننده‌های خوبی برای مشکلات هستند
  2. دوست دارند با مردم کار کنند
  3. می‌توانند در مورد فناوری به صورت راهبردی و فنی فکر نمایند
  4. دوست دارند مسئولیت توسعه و سپس اجرای ایده‌هایشان را بر عهده بگیرند
  5. می‌توانند هم فناوری و هم کسب‌وکار را به هم پیوند دهند
  6. می‌توانند هم جزئیات و هم تصویر کلی را ببینند
  7. روابط عمومی قدرتمندی دارند
  8. می‌توانند زمان و منابع را به خوبی مدیریت کند

همانطور که احتمالاً از قبل می‌توان حدس زد، MIS یک حوزه یکپارچه است. متخصصان MIS "پل ارتباطی" بین نیازهای تجاری و فناوری هستند. این بدان معناست که شما باید بفهمید که چگونه سامانه‌های متفاوت نرم‌افزاری و سکوهای متنوع فناوری اطلاعات کار می‌کنند، چگونه مشکلات را حل کنید، یافته‌های خود را به اشتراک بگذارید و به طور منظم مطالب مطرح در مرز دانش را یاد بگیرید. MIS یک حوزه پویا است و برای موفقیت در آن به افراد پویا نیاز است. افرادی که می‌توانند سریع فکر کنند، سخت کار کنند و بین طیف گسترده‌ای از موضوعات متنوع تعادل ایجاد نمایند، واقعاً باید به MIS فکر کنند. نمونه‌ای از انواع مشاغل MIS به شرح زیر است:

  1. تحلیلگر کسب و کار
  2. توسعه‌دهنده اپلیکیشن تجاری
  3. مشاور فناوری اطلاعات
  4. تحلیلگر سیستم
  5. سرپرست پروژه توسعه فناوری اطلاعات
  6. مدیر پایگاه داده
  7. تحلیلگر هوش تجاری
  8. توسعه‌دهنده سیستم‌ها
  9. تحلیلگر پایگاه داده
  10. توسعه‌دهنده وب
  11. مدیر شبکه
  12. متخصص پشتیبانی فنی
  13. مدیر سیستم‌های اطلاعاتی
  14. رابط کاربر فناوری اطلاعات

طبق کتابچه راهنمای چشم‌انداز شغلی (OOH) اداره آمار کار ایالات متحده، پیش‌بینی می‌شود که اشتغال در مشاغل کامپیوتری و اطلاعاتی از سال ۲۰۱۶ تا ۲۰۲۶، ۱۳ درصد رشد کند و ۵۵۷،۱۰۰ شغل جدید ایجاد شود. تقاضا برای نیروی کار در این مشاغل به دلیل نیاز مداوم کسب‌وکارها، سازمان‌های دولتی و سایر سازمان‌ها به پذیرش و استفاده از جدیدترین فناوری‌ها افزایش خواهد یافت. به نیروی کار در این مشاغل برای توسعه نرم‌افزار، افزایش امنیت سایبری و به‌روزرسانی زیرساخت‌های شبکه موجود نیاز خواهد بود.

معمولا بخش مهمی که در مجموعه سامانه‌های MIS فراموش می‌شود و به عنوان حلقه‌ی مفقوده جهت ارتقای کارآمدی تجاری و علاقه‌مندی کاربر نهایی محسوب می‌شود انواع گزارشات جهت ارائه به مدیران و کاربران نهایی است.

سازمان‌ها امروزه از استراتژی‌های داده‌محور برای هدایت کسب‌وکار خود استفاده می‌کنند. کسب‌وکارهای موفق گزارش‌هایی را برای سنجش دستاوردهای خود و طراحی مسیرهای آینده برای هر حوزه کسب‌وکار تهیه می‌کنند. گزارش‌های سیستم اطلاعات مدیریت (MIS) به سازمان‌ها کمک می‌کند تا در حفظ و مدیریت اطلاعات جمع‌آوری‌شده برای تولید گزارش‌هایی جهت تجزیه و تحلیل بیشتر و بهبود کسب‌وکار موفق استفاده نمایند.
مدیران از گزارش‌های MIS برای تفسیر آمار داده‌های اولیه استفاده می‌کنند که روندهای کسب‌وکار را نشان می‌دهد و به آن‌ها در ردیابی معیارهای عملکرد برای تصمیم‌گیری‌های بیشتر کمک می‌کند. تصمیمات تجاری از طریق این گزارش‌ها بهبود می‌یابد و به سازمان‌ها اجازه می‌دهد تا از داده‌ها برای پیروزی در بازار خود استفاده کنند و به سرعت با چالش‌های جدید سازگار شوند.
گزارش سیستم اطلاعات مدیریت (MIS) یک سند ساختاریافته است که با کمک به مدیران در بررسی عملکرد کسب و کار و تصمیم‌گیری‌های بهتر، داده‌ها را به اطلاعات مفید تبدیل می‌کند. این اسناد، ارقام ضروری در مورد عملیات تجاری و سطوح بهره‌وری را به مدیران نشان می‌دهد.

گزارش‌های MIS داده‌های تجاری سازمان‌یافته و گیج‌کننده را در نظر می‌گیرند تا اطلاعات مفیدی را در قالب گزارش‌هایی که کسب‌وکارها می‌توانند بر اساس آنها اقدام کنند، تولید نمایند. کارکردهای کلیدی این گزارش‌ها عبارتند از:

  1. نظارت بر عملکرد: ردیابی معیارهای کسب‌وکار برای ارزیابی رشد سازمانی.
  2. برنامه‌ریزی استراتژیک: کمک به کسب‌وکارها در تصمیم‌گیری‌های مبتنی بر داده.
  3. بهره‌وری عملیاتی: شناسایی ناکارآمدی‌ها و بهینه‌سازی گردش کار .
  4. تجزیه و تحلیل مالی: کمک به بودجه‌بندی، پیش‌بینی و ارزیابی سودآوری.
  5. انطباق با مقررات: اطمینان از پایبندی کسب‌وکارها به استانداردهای قانونی و مالی.

گزارش‌های MIS برای کسب‌وکارها در هر اندازه‌ای، از استارتاپ‌ها گرفته تا شرکت‌های بزرگ، در صنایعی مانند خرده‌فروشی، تولید، مراقبت‌های بهداشتی و مالی، ضروری هستند. گزارش‌های MIS را می‌توان بر اساس کارکردهای تجاری دسته‌بندی کرد. رایج‌ترین انواع مورد استفاده عبارتند از:

۱. گزارش‌های مالی

گزارش‌های MIS مالی به کسب دیدگاهی عمیق از سلامت مالی یک شرکت کمک می‌کنند و برای بودجه‌بندی، پیش‌بینی و برنامه‌ریزی سرمایه‌گذاری مورد نیاز هستند. برخی از نمونه‌ها عبارتند از:

  • صورت سود و زیان: خلاصه‌ای از درآمد، هزینه‌ها و سود خالص را ارائه می‌دهد
  • ترازنامه: تصویری کلی از دارایی‌ها، بدهی‌ها و حقوق صاحبان سهام شرکت ارائه می‌دهد.
  • گزارش جریان نقدی: جریان‌های نقدی را برای تعیین نقدینگی و توانایی پرداخت بدهی ثبت می‌کند.

۲. گزارش‌های عملیاتی

گزارش‌های عملیاتی به سازمان‌ها کمک می‌کنند تا فرآیندهای تجاری، عملکرد زنجیره تأمین و کارایی تولید را رصد کنند. چنین گزارش‌هایی شامل موارد زیر است:

  • وضعیت موجودی و گردش مالی: بررسی سطح موجودی فعلی و نرخ گردش مالی موجودی.
  • گزارش‌های تولید: پیگیری خروجی و کارایی تولید.
  • گزارش‌های زنجیره تأمین: تجزیه و تحلیل عملکرد تأمین‌کننده/تدارکات و فروشندگان

۳. گزارش‌های فروش و بازاریابی

بخش‌های فروش و بازاریابی این گزارش‌ها را برای ارائه اطلاعات در مورد اقدامات مشتری، الگوهای ایجاد درآمد و معیارهای عملکرد کمپین تولید می‌کنند. مثال‌ها عبارتند از:

  • گزارش عملکرد فروش: روند فروش را در دوره‌های مختلف تجزیه و تحلیل می‌کند.
  • گزارش جمعیت‌شناسی مشتری: الگوهای خرید و ترجیحات مشتری را ارزیابی می‌کند.
  • گزارش بازگشت سرمایه بازاریابی: موفقیت کمپین‌های بازاریابی را ارزیابی می‌کند .

۴. گزارش‌های منابع انسانی

سازمان به شدت به گزارش‌های HR MIS برای پیگیری جنبه‌های مختلف مدیریت نیروی کار، حوزه‌های عملکرد کارکنان و بهبود سیاست‌های منابع انسانی وابسته هستند. چنین گزارش‌هایی عبارتند از:

  • گزارش بهره‌وری کارکنان: کارایی فردی و تیمی را اندازه‌گیری می‌کند.
  • گزارش حقوق و دستمزد: حقوق، پاداش‌ها و کسورات را پیگیری می‌کند.
  • گزارش‌های آموزش و توسعه: برنامه‌هایی را که شایستگی‌های کارکنان را بهبود می‌بخشند، رصد می‌کند.

هر گزارش با پشتیبانی از تصمیم‌گیری مبتنی بر داده، به فعالیت‌های مدیریت کسب‌وکار کمک زیادی می‌کند. برای تولید گزارش‌های MIS می‌توان از ساختار کلی ERPمحور زیر استفاده کرد. تهیه سیستم اطلاعات مدیریت دستی به یک روش ساختاریافته نیاز دارد. مراحل آن عبارتند از:

  1. توصیف اهداف گزارش با تعیین عملکرد اصلی آن، چه برای نظارت مالی و چه برای ارزیابی فروش.
  2. به دست آوردن داده‌ها از طریق همکاری با چندین بخش، از جمله امور مالی، فروش و عملیات.
  3. دستیابی به تحلیل دقیق داده‌های خام برای اجرای مراحل پاکسازی داده‌ها برای ساختار نمایش اطلاعاتی مورد نیاز مدیران و سازماندهی آن.
  4. شناسایی الگوها به همراه روندها و ناهنجاری‌ها در مرحله تحلیل.
  5. گنجاندن سیستم‌های نمایش بصری مبتنی بر جداول، نمودارها و چارت‌ها در مرحله آماده‌سازی.
  6. بررسی و انجام بررسی‌های اعتبارسنجی برای اطمینان از صحت یافته‌ها برای ارائه به ذینفعان.
  7. استفاده از نرم‌افزار ERP
مطالب قدیمی تر
  • صفحه اصلی
  • آرشیو وبلاگ
  • عناوین نوشته ها
پیوندها
  • نماشا
  • یوتیوب
  • صفحه خانگی
  • اینستاگرام
  • عرفان: Mysticism/Spiritual
  • لینکدین
آرشیو وب
  • خرداد ۱۴۰۴
  • اردیبهشت ۱۴۰۴

B L O G F A . C O M

تمامی حقوق برای Seyed Abolfazl Mousavi محفوظ است .