رفتن به نوشته‌ها

XMEN Team مطالب

کتاب اسرار برنامه‌نویسی

به نام دانای بر حق

کتاب اسرار برنامه‌نویسی

آنچه باید هر برنامه‌نویس و توسعه‌دهنده بداند

 

فهرست عناوین

 

دانلود:

سرویس گیت خصوصی و عمومی کاملا رایگان git private – بدون تحریم

مقدمه

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

سایت مذکور https://gitgo.ir

امکانات سایت گیت گو

سایت گیت گو از امکانات زیر پشتیبانی میکند.

  • ایجاد مخازن خصوصی private و عمومی public به صورت کاملا رایگان و بدون محدودیت
  • امکان ایجاد مسئله issue و برچسب برای آن + نسبت دادن افراد دیگر
  • امکان تشکیل تیم و سازمان
  • امکان قرینه سازی mirror برای مخازن شما در سرویس های دیگرهمانند گیت هاب و گیت لب
  • امکان تعریف هوک تخت وب webhook برای مخازن
  • امکان احراز هویت دو مرحله two-factor authentication
  • و هزاران امکان دیگر که از حوصله بحث خارج است.

ماهیت نرم افزاری سرویس git go

این سرویس از نرم افزار اوپن سورس گیتی gitea استفاده میکند که از بهترین و امن ترین نرم افزارهای

ترجمه صحیح تمامی اصطلاحات گیت git به زبان پارسی (فارسی)

به نام دانای برحق ترجمه صحیح تمامی اصطلاحات گیت git به زبان پارسی (فارسی) مقدمه در حین ترجمه رشته های گیت تی یا gitea به…

مقایسه C#- asp.net با PHP , همه چیز درباره php و asp.net

به نام دانای بر حق

مقدمه

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

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

 

وضعیت نرم‌افزاری و توسعه دهنده

مورد اول زبان برنامه نویسی می باشد که در خصوص ASP.net دست شما باز تر از پی اچ پی است لذا در ای اس پی شما می‌توانید از زبان های دات نتی مثل vb.net و C# در این زمینه بهره ببرید ولی در PHP شما باید زبان PHP را یاد بگیرید چون فریم ورک نیست یک زبان است . این موضوع وقتی اهمیت پیدا میکند که شما از پیش یکی از زبان های دات نت را بلد هستید.

اما اگر هیچ زبانی بلد نیستید به سادگی میتونین بدون توجه به این موضوع انتخاب کنید.

اما اگر شما زبان های:

JAVA , visual basic را از پیش بلد هستید قطعا یادگیری ASP.net با C# برای شما ساده تر است.

اگر زبان های javascript یا C++ یا پایتون را بلد هستید به طور قطع نمی‌شود اذعان داشت ولی یادگیری PHP برای شما آسان تر خواهد بود.

اما در کل یادگیری PHP به نسبت به ASP.net آسان تر خواهد بود.

و اما نکته مهم دات نت در کل یک نرم‌افزار

helper در لاراول| تعریف کلاس و تابع سراسری

به نام دانای بر حق

مقدمه

در فریم ورک محبوب لاراول Laravel گاهی اوقات نیاز به ایجاد متغییر سراسری را پیدا می کنید. در این زمان یکی از بهترین راهها استفاده از Helper هاست. که به شما این اجازه رو میده که در صورت نیاز توابع و کلاس های خود را به صورت سراسری تعریف کنید و در هر جای کدتون که نیاز داشتید ازش استفاده کنید.

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

ایجاد فایل helper

مسیر پیش فرض و قراردادی که برای این موضوع در نظر گرفته شده است آدرس زیر می باشد.

مثال ما فایل helper امون اسمش هم همین نام هستش  و یا time است مثال:

فرض محتوای فایل Helper.php به این صورت باشد:

معرفی برنامه لیست وظایف to do list

به نام دانای بر حق

مقدمه

برنامه های بسیاری در زمینه لیست وظایف وجود دارند که متاسفانه دارای اشکالات زیادی هستند. من خودم شاید نزدیک به ۲۴-۲۵ تایی رو تست کردم ولی از قضا کلا آنلاین بودند یا قابلیت تایم لاین نداشتند. یا دارای ایرادات غیر قابل تحمل بودند. یکی از کارهایی که هر برنامه نویس باید انجام دهد لیست وظایف هستش. که باید داشته باشد یا همان to do list

 

معرفی برنامه

برنامه ای که آن را معرفی میکنیم اوپن سورس یا متن با نام Super Productivity است که یک برنامه مستقل از سکو می باشد یعنی در تمام سیستم عامل ها قابلیت اجرا را دارد و اما قابلیت ها:

بررسی درستی عملکرد SMTP توسط لینوکس

به نام دانای بر حق

خلاصه و مفید: قبل از این که وارد داستانهای SMTP بشید میتونید از روش زیر برای مطمئن شدن درستی SMTP مطمئن بشید:

توجه داشتید باشید این پورت ۵۸۷ میتونه ۴۶۵ یا ۲۵ هم باشد بسته به سرور شماست.

و بعد دستور زیر رو بزنید:

بعد همچون پاسخ ارسال شده میبنید و اکنون اگر برای ورد دستور زیر رو بزنید:

درآمدی بر Snappy یا snapcraft پکیج منیجر snap store

مقدمه

شرکت کنونیکال سازنده Ubuntu برای امنیت و سادگی بیشتر سیستم عامل Ubuntu touch یک پدیده جدیدی به نام Snappy را بوجود آورد. تا کارآمدی و امنیت را برای سیستم عامل های لینوکس بیس علی الخصوص ubuntu phone فراهم کند که این موضوع برای سایر توزیع ها مورد استفاده قرار گرفته است.

معرفی

این بسته به زبان go و c نوشته شده است و تحت مجوز GPLv3 انتشار پیدا میکند و شروع کار آن ۲۰۱۴ بوده است و سورس کد آن را میتوانید در این قسمت مشاهده کنید:

پکیج هایی که از ابزار snapd استفاده میکنند و یا پکیج snaps را فراخوانی میکنند، کاملا بدون مشکل

آموزش دارت: کار با map , list و یا همان آرایه و object

به نام دانای بر حق

مقدمه

در این سری آموزش ها قصد داریم syntax زبان برنامه نویسی دارت Dart را با هم یاد بگیریم، برای دنبال کردن سری کلی این آموزش ها و دیدن قست ها اینجا کلیک کنید.

دارت زبان برنامه نویسی flutter می باشد برای نوشتن برنامه های native یعنی با کد محلی برای android و ios هم زمان با طراحی متریالز.

دارت list, map

 

کار با list ها یا همان‌ آرایه ها در دارت و حتی mapها

به دست آوردن طول آرایه

همانند رشته دقیقا:

جواب مقادر روبروی آنها به صورت comment نوشته شده است.

جستجو در list  یا map در دارت

جستجو در کلید های maps :

با توجه به مثال بالاتر

جواب مقادر روبروی آنها به صورت comment نوشته شده است.

 

نکته: در لیست ها و مپ و حتی string ها همیشه

آموزش دارت: کار با رشته های متنی

به نام دانای بر حق

مقدمه

در این سری آموزش ها قصد داریم syntax زبان برنامه نویسی دارت Dart را با هم یاد بگیریم، برای دنبال کردن سری کلی این آموزش ها و دیدن قست ها اینجا کلیک کنید.

دارت زبان برنامه نویسی flutter می باشد برای نوشتن برنامه های native یعنی با کد محلی برای android و ios هم زمان با طراحی متریالز.

رشته ها در دارت

کار با رشته ها در دارت

رشته یا string در واقع متون ما رو تشکیل میدهند آرایه ای از char کارکتر ها هستند و یکی از کارهای مهم در برنامه نویسی کار کردن با اطلاعات رشته ها هستند در اینجا بخشی از توابع و ویژگی های مورد نظر رو رو بررسی می کنیم.

انواع تعریف رشته در دارت

تعریف با تک و جفت کوتیشن امکان پذیر است و از رشته \ برای گذر و بریده شدن میتوان استفاده کرد.

تعریف به صورت heredoc مثل php در Dart

این نوع تعریف اجازه میدهد از تا بدون مشکل خطوط را جا به جا کنید و رشته چند خطی تعریف کنید.

تعریف رشته به صورت runes

با پیشوند r میتوانید این کار را انجام دهید.

جمع دو رشته یا الحاق دو رشته در Dart

آموزش دارت: انواع شرط در زبان دارت , if , switch – case

به نام دانای بر حق

مقدمه

در این سری آموزش ها قصد داریم syntax زبان برنامه نویسی دارت Dart را با هم یاد بگیریم، برای دنبال کردن سری کلی این آموزش ها و دیدن قست ها اینجا کلیک کنید.

دارت زبان برنامه نویسی flutter می باشد برای نوشتن برنامه های native یعنی با کد محلی برای android و ios هم زمان با طراحی متریالز.

 

if و else در زبان دارت ۲

فلوچارت زیر نحوه ی عملکرد عبارت if-else را نشان میدهد.

if chart in dart

انواع if نوع if در دارت:

  • عبارت if
  • عبارت if…else
  • عبارت …if…else if

عبارت if در زبان دارت

عبارت if اساسی ترین عبارت کنترلی است که به دارت اجازه میدهد تصمیم بگیرد و دستوری را براساس

آموزش دارت: معرفی عملگرهای: ریاضی – منطقی و مقایسه ای

به نام دانای بر حق

مقدمه

در این سری آموزش ها قصد داریم syntax زبان برنامه نویسی دارت Dart را با هم یاد بگیریم، برای دنبال کردن سری کلی این آموزش ها و دیدن قست ها اینجا کلیک کنید.

دارت زبان برنامه نویسی flutter می باشد برای نوشتن برنامه های native یعنی با کد محلی برای android و ios هم زمان با طراحی متریالز.

 

جدول لیست عملگر ها  در زبان دارت

 

توضیحات عملگر
منحصر پسوندی expr++    expr–    ()    []    .    ?.
منحصر پیشوندی -expr    !expr    ~expr    ++expr    –expr
ضرب و تقسیمی *    /    %  ~/
جمع و تفریق +    –
شیفت <<    >>
و بیتی AND &
 یای اختصاصی بیتی XOR ^
 یای بیتی OR |
آزمون بزرگ و کوچکی و … >=    >    <=    <    as    is    is!
برابر و نابرابری ==    !=
و منطقی &&
یای منطقی ||
اگر null نبود ??
شرط تک خطی expr1 ? expr2 : expr3
ابشاری ..
نسبت دادن =    *=    /=    ~/=    %=    +=    -=    <<=    >>=    &=    ^=    |=    ??=

 

نکته: assert به معنی ادعا کردن برای تشخیص درستی در مثال ها زین پس در

آموزش دارت: تعریف توابع و انواع پارامتر ها

به نام دانای بر حق

مقدمه

در این سری آموزش ها قصد داریم syntax زبان برنامه نویسی دارت Dart را با هم یاد بگیریم، برای دنبال کردن سری کلی این آموزش ها و دیدن قست ها اینجا کلیک کنید.

دارت زبان برنامه نویسی flutter می باشد برای نوشتن برنامه های native یعنی با کد محلی برای android و ios هم زمان با طراحی متریالز.

 

تعریف توابع در دارت

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

تعریف اولین تابع:

همانطور که میبینید در تابع تعریف شده بالا مقدار خروجی bool  تعریف شده و ورودی یک عدد از نوع int  می باشد دقیقا مثل c از return هم استفاده میشود برای بازگشت.

تابع بالا را به شکل زیر نیز میتوان تعریف کرد:

برای توابعی یک خطی میتوانید از دستور shorthand نیز به شکل زیر استفاده کنید:

در کد بالا معنای expr <=  درواقع به معنای { return expr; }  می‌باشد و <= گاهی اوقات به معنای فلش چاق نیز معرفی می‌شود.

 

پارامتر ها

درتوابع پارامتر های ارسالی معمولا به دو شکل هستند پارامتر های ضروری و پارامترهای دلخواه، که ابتدا باید توابع ضروری در ورودی فهرست شوند و سپس پارامتر های دلخواه بایستی لیست شوند.

پارامتر های دلخواه میتوانند از نوع named یا positional  باشند، اما هر دوی آنها نمیتواند

آموزش زبان دارت بخش دوم – متغییر ها، ثوابت و نکات کلیدی شروع

به نام دانای بر حق

مقدمه

در این سری آموزش ها قصد داریم syntax زبان برنامه نویسی دارت Dart را با هم یاد بگیریم، برای دنبال کردن سری کلی این آموزش ها و دیدن قست ها اینجا کلیک کنید.

دارت زبان برنامه نویسی flutter می باشد برای نوشتن برنامه های native یعنی با کد محلی برای android و ios هم زمان با طراحی متریالز.

 

نکات کلیدی برای شروع دارت

  • تمامی متغییر ها در دارت شی هستند
  • متغییر نسبت دهی null می باشد و null خود نیز شی است
  • در انتهای هر می بایستی از ; استفاده نمایید.
  • اگرچه دارت حساس است روی نوع داده ها ولی شما رو مجبور تعریف دقیق آنها نمیکند به عنوان مثال number تعریف شود حتما نیاز نیست int تعریف شود.
  • در دارت list نوع داده برای ذخیره چندین متغییر با هم می باشد هماننده آرایه
  • بالاترین مرحله در تابع های main می باشد، همانند C
  • دارت از متغییر های سطح بالا مانند کلاس و … پشتیبانی میکند.
  • دارت شبیه جاوا نیست که ضروت داشته باشد کلید واژه های public, protected و private استفاده شود هر چیزی که با _ در توابه شروع شود داخلی و خصوصی محسوب میشود و در غیر این صورت عمومی و قابل استفاده در خارج از کلاس است.
  • متغییر تعریف کردن نام متغییر و توابع و کلاس ها در دارت شیوه اسم گذاری مانند C دارد متغییر ها و توابع  با _ و حروف شروع می‌شود و بعد از حرف اول میتوان از عداد نیز استفاده کرد.
  • ابزار Dart میتواند دو نوع مشکلی را گزارش کند: هشدارها و خطاها. هشدارها فقط نشانگر این نکته است که کد شما ممکن است کار نکند اما آنها از اجرای برنامه شما جلوگیری نمی کنند. خطاها می توانند زمان کامپایل یا زمان اجرا باشند. یک خطای کامپایل زمانی مانع اجرای کد در همه می شود.

 

dart logo
آموزش زبان برنامه نویسی دارت

 

کلمات کلیدی در دارت

abstract ۱ deferred ۱ if super
as ۱ do implements ۱ switch
assert dynamic ۱ import ۱ sync* ۲
async ۲ else in this
async* ۲ enum is throw
await ۲ export ۱ library ۱ true
break external ۱ new try
case extends null typedef ۱
catch factory ۱ operator ۱ var
class false part ۱ void
const final rethrow while
continue finally return with
covariant ۱ for set ۱ yield ۲
default get ۱ static ۱ yield* ۲

کلماتی که با ۲ نشانه گذاری شده اند جدید هستند و در دارت ۲ اضافه شدن و در همگام سازی کاربرد دارند.

تعریف متغییر در دارت

نحوه تعریف متغییر:

ابتدا نوع داده و سپس نام متغییر و سپس مساوی و و مقدار و در انتها ; قرار می‌گیرد.

دو مثال دیگر:

آموزش زبان برنامه نویسی Dart بخش مقدماتی

به نام دانای بر حق

مقدمه بر آموزش زبان دارت

در این سری آموزش ها قصد داریم syntax زبان برنامه نویسی دارت Dart را با هم یاد بگیریم، برای دنبال کردن سری کلی این آموزش ها اینجا کلیک کنید: و روش مطالعه این آموزش ها با رویکرد زیر میباشد:

 

  • در این آموزش فرض شده شما حداقل یک زبان برنامه نویسی کلاسیک مثل javascript , php , c++ , delphi یا … را بلد هستید.
  • در این آموزش سعی شده به زبان ساده پارسی با توجه به آنچه در نسخه Dart 2 معرفی شده پیش برویم.
  • تمامی موضوعات توضیحی داده شده سعی شده است دارای مثال باشد.
  • برای امتحان کردن آنلاین آموزش های از این صفحه استفاده کنید. ابزار آنلاینی میباشد که توسط سایت رسمی معرفی شده است.
  • هرگز بخش های از آموزش را به صورت سر سری رد نشود لذا آموزش خلاصه وار است و سعی شده نکات بسیار مهم در آن ذکر شود.
  • قبل از شروع آموزش باید توجه داشته باشید که:
    • دارت یک زبان برنامه نویسی مدرن است.
    • از Dart انتظار یک زبان کلاسیک را نداشته باشید.
    • شما باید حداقل به یک زبان برنامه نویسی دیگر مسلط باشید،
    • سعی شده concept هایی که در چهارچوبهای ذهنی شما در زبان های دیگر مورد دارت را روشن کنیم.
    • در هرجای آموزش احساس کردید متوجه نمیشوید، بیشتر ادامه ندهید و یا مباحث قبل را در صورت عدم مطالعه دنبال کنید.
  • اگر اشکال و یا ایرادی ار آموزش ها دیدید از یادآوری شما ممنونم و قطعا اصلاح خواهیم کرد.

 

 در آمدی بر Dart

دارت یک زبان برنامه نویسی با ویژگی های زیر است:

  1. دارت یک زبان برنامه نویسی مدرن است.
  2. دارت یک زبان برنامه نویسی سطح بالا است.
  3. دارت شبیه به زبان C می باشد
  4. dart را گوگل توسعه میدهد
  5. هدف دارت جایگزین کردن جاوااسکریپت که زبان داخلی مرورگرهای وب است می‌باشد.
  6. دارت در انتها به جاوا اسکریپت تبدیل میشود
  7. دارای سه پلت فرم به نام های: flutter , ماشین مجازی و وب میباشد.

dart

برنامه سلام به همگی در Dart

اکنون قصد داریم برنامه hello world! را با دارت بنویسیم تا آموزش فقط تئوری و خسته کننده نباشد، و سایر توضیحات را در بخش های بعدی با هم میخواینم.

همانطور که

چند تکنیک در مورد apt در ubuntu و زیر مجموعه هاش

به نام دانای بر حق

مقدمه

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

افزایش سرعت در apt به اصطلاح Speedup

یکی از چیز هایی که برای من عجیب هست عدم استفاده از apt-fast  ، اگر شخصی apt-fast استفاده نکند، احساس میکنم در حال تهذیب نفس است، این برنامه open source نسخه ای پیشرفته تر از apt-get است و قابلیت دانلود هم زمان چند پکیج برای دانلود را داراست.

به عبارتی سرعت دانلود و نصب پکیج شما را گاهی تا ۵ برابر افزایش میدهد، و شکل استفاده آن هم کاملا شبیه apt-get می باشد، برای

ضرورت نشر محتوا در surface web و اجتناب از deep web

به نام دانای بر حق

خواندن این موضوع به صاحبان کانال های تلگرامی و فعالین دیپ وب اکیداً توصیه می‌شود.

مقدمه

Surface web یا سطح نت اصطلاحاً به بخشی از وب اطلاق می‌شود که قابلیت جستجو و کنکاش عمومی را در سطح world wide web را دارای هستند، هر آنچه اطلاعات در دسترس عموم قرار دارد و قابلیت جستجو و index شدن در موتور های جستجو را دارا هستند در بخش سورفیس وب قرار دارند.

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

dark web: یا وب تاریک بخشی از دیپ وب میباشد، شبکه‌ای شخصی و پوشیده است که ارتباطات آن فقط به صورت ارتباط یک زوج معتمد یعنی کاربر به کاربر (دوست به دوست) یا (F2F) است که از پروتکل‌ها و پورت‌های غیر استاندارد استفاده می‌کند.دارک نت‌ها متمایز از دیگر شبکه‌های رایج کاربر به کاربر هستند به‌طوری‌که اشتراک‌گذاری به صورت anonymous (مخفی بودن آدرس IP) است. که معمولا با استفاده از تور یا شبکه پیازی به آن دسترسی خواهید داشت. که بخش های امنیتی جامعه پلیس های آگاهی مثل FBI شدیدا

معرفی ابزار آنالیز و بررسی کد ها| code analysis tool

به نام دانای بر حق

مقدمه

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

گاهی اوقات این ابزار شامل آنالیز ایستا static و برخی اوقات آنالیز dynamic یا پویا می باشند که به آنها میپردازیم. ما قصد داریم تا در این مورد ابزار های به روز و متعددی که قالبا متن بازی یا همان اوپن سورس میباشند به تفکیک معرفی کنیم و شیوه عملکرد ، رویکرد و نحوه نصب و کار با ابزار های آنالیز و ارزیابی کد ها در سیستم عامل لینوکس توزیع Ubuntu با هم بررسی میکنیم.

 

  • CLOC

این نرم فزار از نوع آنالیز ایستا کد می باشد که برای شمارش بلاک های کد، تعداد خطوط و تعداد توضیحات (comments) نوشته شده در سورس کدها مورد استفاده قرار می  گیرد. ابزاری بسیار دقیق است و فایل های تکراری را نیز نادیده میگیرد و سرعت قابل توجهی دارد با تفکیک زبان های برنامه نویسی بسیار تا کنون ۱۵۹ زبان برنامه نویسی به فهرست زیر:

 

این نرم افزار به شکل زیر نصب میکند:

 

 

نحوه استفاده:

نمونه خروجی کد: