<?xml version="1.0" encoding="UTF-8"?>
    <rss version="2.0"><channel><title>آخرین اخبار و مطالب فرانش</title><link>https://ecosystem.ir/legal/1388/</link><language>fa</language><item><title>دستورات SQL کاربردی که باید بدانید + فیلم آموزش اس کیو ال سرور</title><link>https://ecosystem.ir/blog/108457/</link><description>همانطور که می‌دانید دستورات اس کیو ال از ۴ دستور اصلی Select، Update، Delete و Insert تشکیل شده است.
در عصری هستیم که حجم‌هایی عظیم از داده به صورت روزانه تولید می‌شوند و لازم است این داده‌ها در پایگاه داده نگه داری شوند.
در این آموزش به معرفی دستورات و عبارات مهم SQL می‌پردازیم.
: دستوراتی که از آنها برای تعریف ساختار پایگاه داده استفاده می‌شود.
: دستوراتی که از آنها برای تغییر داده‌های موجود در پایگاه داده استفاده می‌شود.
: دستوراتی که از آنها برای کنترل مجوزهای کاربری و کنترل سیستم پایگاه داده استفاده می‌شود.
: دستوراتی که از آنها برای مدیریت تراکنش‌های (Transaction) پایگاه داده استفاده می‌شود.
در مثال‌های این آموزش، دستورات SQL را روی جدول زیر اجرا می‌کنیم.
from the Employee_Info table: */
از این دستور برای ساخت یک پایگاه داده یا جدول (Table) استفاده می‌شود.
همان‌طور که از نام عبارت پیداست، از آن برای ساخت پایگاه داده استفاده می‌شود.
از این عبارت برای ساخت جدول در پایگاه داده استفاده می‌شود.
می‌توانید از جدولی دیگر برای ساخت یک جدول استفاده کنید.
از این دستور برای حذف یک پایگاه داده‌ی موجود استفاده می‌شود.
پس از اجرای این دستور، تمام اطلاعات موجود در پایگاه داده از بین می‌رود.
DROP DATABASE Employee;
از این دستور برای حذف یک جدول موجود در پایگاه داده استفاده می‌شود.
از این دستور برای حذف یک جدول موجود در پایگاه داده استفاده می‌شود.
DROP Table Employee_Info;
از این دستور برای پاک کردن اطلاعات موجود در جدول استفاده می‌شود.
پس از اجرای این دستور، اطلاعات موجود در جدول را از دست می‌دهید، اما خود جدول در پایگاه داده باقی می‌ماند.
TRUNCATE Table Employee_Info;
از این دستور برای حذف، تغییر یا افزودن Constraint یا ستون (Column) به جداول موجود استفاده می‌شود.
از این دستور برای حذف، تغییر یا افزودن ستون (Column) به جداول موجود استفاده می‌شود.
عبارت ‘ALTER TABLE’ به همراه ADD/DROP COLUMN
می‌توانید عبارت ALTER TABLE را طبق نیازهای خود و با استفاده از دستور ADD/DROP COLUMN تغییر دهید.
از این دستور برای تغییر نوع داده‌ای (Datatype) یک ستون جدول استفاده می‌شود.
از این عبارت برای بک‌آپ گیری کامل از یک پایگاه داده‌ی موجود استفاده می‌شود.
جدول زیر را درنظر بگیرید، از آن برای توضیح انواع کلیدها در Sql server استفاده می‌کنیم.
یکی از این کلیدهای کاندید به عنوان کلید اصلی (Primary Key) درنظر گرفته می‌شود.
در این مثال EmployeeID را به عنوان کلید اصلی درنظر گرفته‌ایم.
در این مثال می‌توانیم EmployeeID و Month-Year_Of_Salary را با هم درنظر بگیریم و هر تاپل جدول را از سایر تاپل‌ها جدا کنیم.
آموزش کامل پایگاه داده SQL در سی شارپ (C#) 
دستورات Constraint در SQL چیست
با این Constraint دیگر یک ستون نمی‌تواند مقدار NULL به خود بگیرد.
با این Constraint تمام مقادیر یک ستون منحصر به فرد هستند.
CONSTRAINT UC_Employee_Info UNIQUE (Employee_ID, PhoneNumber) 
DROP CONSTRAINT UC_Employee_Info;
با این Constraint تمام مقادیر یک ستون از شرط خاصی پیروی می‌کنند.
--CHECK Constraint on CREATE TABLE
Country varchar (۲۵۵) CHECK (Country = 'India' AND Cite = 'Hyderabad') 
--CHECK Constraint on ALTER TABLE
وقتی هیچ مقداری برای ستون مشخص نشده باشد، این Constraint حاوی مقادیر پیش‌فرض است.
--DEFAULT Constraint on CREATE TABLE
ALTER TABLE Employee_Info
ALTER TABLE Employee_Info
ALTER TABLE Employee_Info
ALTER TABLE Employee_Info
ALTER TABLE Employee_Info
ALTER TABLE Employee_Info
ALTER TABLE Employee_Info
ALTER TABLE Employee_Info
ALTER TABLE Employee_Info
ALTER TABLE Employee_Info
ALTER TABLE Employee_Info
ALTER TABLE Employee_Info
ALTER COLUMN Country DROP DEFAULT;
DROP INDEX Employee_Info.
در این بخش از دستورات SQL، دستوراتی را یاد می‌گیرید که به شما در تغییر پایگاه داده کمک می‌کنند.
علاوه بر این دستورات، عمگرها/توابعی نیز برای تغییر داده‌های پایگاه داده داریم: 
از عبارت USE برای انتخاب پایگاه داده‌ای استفاده می‌شود که می‌خواهید با آن کار کنید.
از این عبارت برای افزودن رکوردهای جدید به جدول استفاده می‌شود.
INSERT INTO Employee_Info (EmployeeID, EmployeeName, Emergency ContactName, PhoneNumber, Address, City, Country) 
INSERT INTO Employee_Info
از این عبارت برای تغییر رکوردهای موجود در جدول استفاده می‌شود.
از این عبارت برای حذف رکوردهای موجود در جدول استفاده می‌شود.
DELETE FROM Employee_Info
از این عبارت برای انتخاب داده‌های موجود در جدول استفاده می‌شود و این داده‌ها به صورت یک جدول به نام result-set برگردانده می‌شوند.
SELECT EmployeeID, EmployeeName
-- (*) is used to select all from the table
می‌توانید از کلیدواژه‌های زیر به همراه عبارت SELECT استفاده کنید: 
این عبارت تنها مقادیر غیر مشابه را برمی‌گرداند.
SELECT DISTINCT Column۱, Column۲, …ColumnNFROM TableName;
SELECT DISTINCT PhoneNumber FROM Employee_Info;
از عبارت ORDER BY برای مرتب کردن خروجی به صورت صعودی یا نزولی استفاده می‌شود.
-- Select all employees from the 'Employee_Info' table sorted by EmergencyContactName: 
-- Select all employees from the 'Employee_Info' table sorted by EmergencyContactName in Descending order: 
-- Select all employees from the 'Employee_Info' table sorted by EmergencyContactName and EmployeeName: 
/* Select all employees from the 'Employee_Info' table sorted by EmergencyContactName in Descending order and EmployeeName in Ascending order: */
از عبارت GROUP BY برای تجمیع توابع استفاده می‌شود تا جدول result-set با یک یا چند ستون تشکیل شود.
SELECT Column۱, Column۲,…, ColumnNFROM TableNameWHERE ConditionGROUP BY ColumnName (s) ORDER BY ColumnName (s) ;
SELECT COUNT (EmployeeID) , City
SELECT COUNT (EmployeeID) , City
از عبارت SELECT INTO برای کپی داده از یک جدول به جدولی دیگر استفاده می‌شود.
-- To create a backup of database 'Employee'
--To select only few columns from Employee
SELECT EmployeeName, PhoneNumber INTO EmployeeContactDetails
عملگرهای موجود در SQL به صورت زیرند: 
کوچک‌تر مساوی [A <= B] 
بزرگ‌تر مساوی [A >= B] 
عملگرهای منطقی موجود در SQL به صورت زیرند: 
از این عملگر برای فیلتر کردن رکوردهایی استفاده می‌شود که به بیش از یک شرط وابسته هستند.
با این عملگر آن دسته از رکوردهایی که تمام شروط را (که با AND از هم جدا می‌شوند) رعایت و خروجی را TRUE کنند، نمایش داده می‌شوند.
با این عملگر آن دسته از رکوردهایی که یکی از شروط را (که با OR از هم جدا می‌شوند) رعایت و خروجی را TRUE کنند، نمایش داده می‌شوند.
SELECT Column۱, Column۲, …, ColumnNFROM TableNameWHERE Condition۱ OR Condition۲ OR Condition۳ …;
SELECT Column۱, Column۲, …, ColumnNFROM TableNameWHERE Condition۱ OR Condition۲ OR Condition۳ …;
SELECT Column۱, Column۲, …, ColumnNFROM TableNameWHERE NOT Condition;
وقتی می‌خواهیم رکوردهای موجود در یک محدوده‌ی مشخص را انتخاب کنیم، از این عمگلر استفاده می‌کنیم.
SELECT * FROM Employee_Salary
از این عملگر در WHERE و برای مشخص کردن الگویی خاص در یک ستون جدول استفاده می‌شود.
SELECT ColumnName (s) FROM TableNameWHERE ColumnName LIKE pattern;
در جدول زیر می‌توانید الگوهای مختلفی را ببینید که ساخت آنها با عملگر LIKE ممکن است.
از این عملگر برای شروط چندگانه‌ی OR استفاده می‌شود.
از این عملگر برای بررسی موجود بودن یا نبودن یک رکورد استفاده می‌شود.
WHERE EXISTS (SELECT EmergencyContactName FROM Employee_Info WHERE EmployeeId = ۰۵ AND City = 'Kolkata') ;
از عملگر ALL در یک WHERE یا HAVING استفاده می‌شود و اگر تمام پرس‌وجوهای داخلی، شرط را رعایت کنند، مقدار TRUE برمی‌گرداند.
WHERE EmployeeID = ALL (SELECT EmployeeID FROM Employee_Info WHERE City = 'Hyderabad') ;
WHERE EmployeeID = ANY (SELECT EmployeeID FROM Employee_Info WHERE City = 'Hyderabad' OR City = 'Kolkata') ;
در این بخش از دستورات SQL، به توابع زیر می‌پردازیم: 
SELECT MIN (ColumnName) FROM TableNameWHERE Condition;
SELECT MAX (ColumnName) FROM TableNameWHERE Condition;
SELECT COUNT (ColumnName) FROM TableNameWHERE Condition;
SELECT SUM (ColumnName) FROM TableNameWHERE Condition;
SELECT AVG (ColumnName) FROM TableNameWHERE Condition;
در SQL Server این تابع ISNULL () است.
در این بخش از دستورات SQL، به ترتیب به معرفی Aliasها و Case می‌پردازیم.
SELECT EmployeeID AS ID, EmployeeName AS EmpName
SELECT EmployeeName AS EmpName, EmergencyContactName AS [Contact Name] 
این عبارت تمام شروط را بررسی می‌کند و زمانی که اولین شرط برقرار شد، مقداری را برمی‌گرداند.
SELECT EmployeeName, City
WHEN City IS NULL THEN 'Country is India by default'
دستور Join (الحاق) در SQL
الحاق داخلی (INNER JOIN): این الحاق رکوردهایی را برمی‌گرداند که در ستون مشترک هر دو جدول دارای مقدار یکسانی هستند.
الحاق کامل (FULL JOIN): این الحاق تمام رکوردهایی را برمی‌گرداند که دارای مقداری مشابه در جدول سمت چپ یا راست هستند.
الحاق چپ (LEFT JOIN): این الحاق مقادیر جدول چپ و مقادیری از جدول راست را برمی‌گرداند که در شرط صدق می‌کنند.
بیایید برای فهم سینتکس الحاق‌ها از جدول زیر استفاده کنیم.
TechID, Employee_Info.
INNER JOIN Employee_Info ON Technologies.
FULL OUTER JOIN Orders ON Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
SELECT Employee_Info.
LEFT JOIN Technologies ON Employee_Info.
ORDER BY Employee_Info.
ORDER BY Employee_Info.
RIGHT JOIN Employee_Info ON Technologies.
از این عمگلر برای ترکیب جدول result-set حاصل از دو یا چند SELECT استفاده می‌شود.
از این عمگلر برای ترکیب دو SELECT استفاده می‌شود و اشتراک جداول result-set دو SELECT را برمی‌گرداند.
FROM TableNameWHERE Condition INTERSECT SELECT Column۱ , Column۲ ….
می‌توانید از انواع تاریخ زیر در SQL Server استفاده و مقادیر تاریخ/زمان را در پایگاه داده ذخیره کنید.
SELECT * FROM Technologies WHERE ProjectStartDate='۲۰۱۹-۰۴-۰۱'
SQL Server از واژه‌ی کلیدی IDENTITY به این منظور استفاده می‌کند.
<span>CREATE TABLE Employee_Info (</span>
<span>CREATE TABLE Employee_Info (</span>
<span>CREATE TABLE Employee_Info (</span>
<span>CREATE TABLE Employee_Info (</span>
<span>CREATE TABLE Employee_Info (</span>
<span>CREATE TABLE Employee_Info (</span>
<span>CREATE TABLE Employee_Info (</span>
<span>CREATE TABLE Employee_Info (</span>
<span>EmployeeName VARCHAR (۲۵۵) NOT NULL</span>
<span>EmployeeName VARCHAR (۲۵۵) NOT NULL</span>
<span>EmployeeName VARCHAR (۲۵۵) NOT NULL</span>
<span>EmployeeName VARCHAR (۲۵۵) NOT NULL</span>
در این بخش از دستورات SQL، درباره‌ی دستوراتی صحبت می‌کنیم که برای اعمال امنیت پایگاه داده در محیط‌های چند کاربره‌ی پایگاه داده استفاده می‌شوند.
این دستور به یک کاربر مجوز دسترسی به پایگاه داده و اشیاء موجود در آن را می‌دهد.
-- To grant SELECT permission to Employee_Info table to user۱
GRANT SELECT ON Employee_Info TO user۱;
REVOKE SELECT ON Employee_Info TO user۱;
برای ساخت یک ویو از جدول، از این عبارت استفاده می‌شود.
CREATE VIEW ViewName ASSELECT Column۱, Column۲, …, ColumnNFROM TableNameWHERE Condition;
برای آپدیت کردن یک ویو از این عبارت استفاده می‌شود.
SELECT EmployeeName, PhoneNumber
SELECT EmployeeName, PhoneNumber
SELECT EmployeeName, PhoneNumber
برای حذف یک ویو از این عبارت استفاده می‌شود.
تریگرها (TRIGER) مجموعه‌ای از عبارات SQL هستند که در کاتالوگ (Catalog) یک پایگاه داده ذخیره می‌شوند.
: قبل از حذف داده از جدول فعال می‌شود.
در این بخش از دستورات SQL درباره‌ی دستوراتی می‌آموزیم که می‌توانیم از آنها برای مدیریت تراکنش‌های پایگاه داده استفاده کنیم.
از این دستور برای ذخیره‌ی تراکنش در پایگاه داده استفاده می‌شود.
از این دستور برای برگرداندن پایگاه داده به آخرین حالت کامیت شده استفاده می‌شود.
از این دستور برای ذخیره‌ی موقتی یک تراکنش استفاده می‌شود.
حالا از پرس و جوهای SQL زیر برای فهمیدن تراکنش‌ها در پایگاه داده استفاده کنید.
INSERT INTO Employee_Table VALUES (۰۵, 'Avinash') ;
UPDATE Employee_Table SET name = 'Akash' WHERE id = '۰۵';
INSERT INTO Employee_Table VALUES (۰۶, 'Sanjana') ;
INSERT INTO Employee_Table VALUES (۰۷, 'Sanjay') ;
INSERT INTO Employee_Table VALUES (۰۸, 'Veena') ;
SELECT * FROM Employee_Table;
SELECT * FROM Employee_Table;
در این آموزش در کنار هم دستورات SQLای را بررسی کردیم که می‌توانید با استفاده از آنها پرس و جو بنویسید و با پایگاه داده کار کنید.</description></item><item><title>آموزش Yii۲: پروژه محور گام به گام + دانلود فیلم آموزشی</title><link>https://ecosystem.ir/blog/108009/</link><description>بعد از نصب Yii۲ Framework سراغ ویژگی‌های مهم آن شامل استفاده از معماری MVC برای PHP در این نوع فریمورک می‌پردازیم و پس از تنظیم اپلیکیشن Yii، در گیت هاب یک ریپازیتوری ایجاد می‌کنیم.
در این آموزش نصب Yii ۲.
۰ را یاد می‌گیریم، محیط توسعه‌ی محلی‌ خود را راه‌اندازی می‌کنیم، یک اپلیکیشن Hello World ساده می‌سازیم، محیط هاستینگ ریموت خود را تنظیم می‌کنیم و کدمان را در یک ریپازیتوری گیت‌هاب قرار می‌دهیم.
کامپوزر یک مدیر Dependency معروف برای PHP است.
اگر در سیستم‌تان کامپوزر ندارید، کد زیر را اجرا کنید: 
حالا از کامپوزر برای نصب Yii۲ استفاده می‌کنیم.
برای نصب باید اکانت گیت‌هاب خود را داشته باشید و اطلاعات آن را وارد کنید.
composer create-project --prefer-dist yiisoft/yii۲-app-basic hello
Yii۲ براساس نوع اپلیکیشن، دو نوع تمپلت نصب در اختیارتان قرار می‌دهد.
در این آموزش از اپلیکیشن Basic استفاده می‌کنیم که به صورت پیش‌فرض نصب شده است.
در این دوره تفاوت‌ها و قابلیت‌های Yii basic و Yii Advanced را آموخته و همچنین با نصب Yiiframework۲ قالب Advanced آشنا می‌شوید: 
سپس یک Symlink به Sites پوشه‌ی برنامه برای MAMP بسازید: 
سپس به آدرس http: //localhost: ۸۸۸۸/hello/web بروید.
نصب فریم ورک Yii۲
نصب فریم ورک Yii۲
یکی از مهم‌ترین ویژگی‌های فریمورک Yii داشتن معماری MVC) Model View Controller) برای PHP است.
در یک اپلیکیشن Yii، تمام ترافیک برنامه را به یک فایل به نام /web/index.
این فایل Yii و تمام Dependencyهایش را لود و سپس برنامه را اجرا می‌کند.
/vendor/yiisoft/yii۲/Yii. php') ;
متد Index به صورت پیش‌فرض در فایل /controllers/SiteController.
php به صورت زیر است: 
Yii به صورت پیش‌فرض از /views/layouts/main.
کد فایل /views/site/index.
php به جای متغیر $content قرار می‌گیرد که در حال حاضر یک کد HTML ساده است که پیغام
http: //localhost: ۸۸۸۸/hello/web/index.
localhost: ۸۸۸۸/hello/web/site/about
php را ویرایش و urlManagement را به اپلیکیشن کنونی تحت وب اضافه کنید.
مطمئن شوید که mod_rewrite به صورت محلی در MAMP اجرا می‌شود.
در مرورگرتان، آدرس http: //localhost: ۸۸۸۸/hello/web/site/about را باز کنید.
برای یادگیری مفاهیم پایه و اساسی فریمورک Yii۲ کلیک کنید: 
php اضافه کنید: 
این کد به دنبال پارامتر URLای به نام target می‌گردد تا در صفحه نمایش نشان دهد.
Actionها در Yii با پیشوند action شروع می‌شوند و بعد از آن نام موردنظر برای Action قرار می‌گیرد.
این یک فایل ویو است که تگ h۱ را، که حاوی
اگر به آدرس http: //localhost: ۸۸۸۸/hello/web/site/say?target=Tuts٪۲۰Readers بروید، صفحه‌ی زیر را خواهید دید: 
این مثالی بسیار ساده از معماری MVC اپلیکیشن‌های Yii۲ بود.
حالا بیایید اپلیکیشن را در گیت‌هاب قرار دهیم و آن را در یک سرور محیط توزیع نهایی (Production Server) دپلوی (Deploy) کنیم.
بعد از تنظیم تمپلت اپلیکیشن Yii، یک ریپازیتوری در گیت‌هاب می‌سازیم: 
هم‌چنین می‌توانید سایت را به صورت ریموت با آن بسازید سپس به صورت محلی تلفیق کنید.
می‌توانید از اپلیکیشن گیت‌هاب یا خط فرمان برای ساخت ریپازیتوری استفاده کنید.
در کد زیر، با استفاده از این دستورات یک پروژه‌ی موجود را از طریق خط فرمان به گیت‌هاب اضافه می‌کنیم (به جای «youraccount» نام اکانت گیت‌هابتان را بنویسید): 
کانفیگریشن را آپدیت کنید، گیت را نصب کنید، mod_rewrite را برای Apache و mcrypt را برای PHP فعال کنید: 
دسترسی گیت هاب را در سرور ریموت تنظیم کنید
حالا کاربری را برای Pull کردن کد از گیت‌هاب ایجاد می‌کنیم که توسط Apache پشتیبانی می‌شود.
گیت را روی سرورتان نصب کنید: 
حالا گروهی برای www ایجاد می‌کنیم، کاربران www-data و گیت‌هاب را به آن اضافه می‌کنیم و مالکیت پوشه‌های وب‌مان را به آن می‌دهیم.
چیزی شبیه شکل زیر خواهید دید، که باید آن را کپی و در GitHub. com پیست کنید: 
به صفحه‌ی Setting ریپازیتوری گیت‌هاب بروید و این کلید را در قسمت Keys به ریپازیتوری خود اضافه کنید: 
پس از اضافه کردن، می‌بینید که کلید به صورت زیر نمایش داده می‌شود: 
git /var/www/hello
پس از این می‌توانید با توسعه‌های بیشتر کدتان، آنها را با استفاده از دستور Pull گیت در سرور ریموت سینک کنید.
DocumentRoot «/var/www/hello/web» 
com/site/say?target=World!
بروید و باید اپلیکیشن‌تان را ببینید که بدون یک تولبار دیباگ Yii۲ در پایین صفحه و به صورت زیر اجرا می‌شود: 
همراهان گرامی سایت فرانش پس از مطالعه این آموزش، می‌توانید به سراغ قابلیت‌های پیچیده‌تر Yii۲ بروید.
آموزش PHP با تاکید بر معماری MVC</description></item><item><title>آموزش زبان برنامه نویسی Go + دانلود فیلم رایگان گو</title><link>https://ecosystem.ir/blog/107675/</link><description>Go (که با نام Golang نیز شناخته می‌شود)، یک زبان برنامه‌نویسی متن باز است.
گوگل سازنده‌ی اصلی این زبان است.
این زبان از نوع کامپایل استاتیک است.
گام ۱: برای دانلود زبان برنامه نویسی Go به آدرس
پس از پایان نصب، می‌توانید با باز کردن ترمینال و تایپ دستور زیر، آن را تایید کنید.
این دستور نسخه‌ی Go نصب‌شده را نشان می‌دهد.
آموزش پروژه محور زبان برنامه نویسی Go
در این بخش از آموزش گام به گام زبان برنامه نویسی Go پوشه‌ای با نام studyGo بسازید.
می‌توانید با استفاده از دستور زیر، برنامه‌های Go را اجرا کنید: 
با استفاده از دستور زیر برنامه را اجرا کنید.
می‌بینید که خروجی زیر چاپ می‌شود.
package main: هر برنامه‌ی Go باید با یک نام پکیج شروع شود.
Go به ما این امکان را می‌دهد که از پکیج‌ها در سایر برنامه‌های Go استفاده کنیم و اینطور از قابلیت استفاده‌ی مجدد از کد پشتیبانی می‌کند.
اجرای برنامه از قطعه کدی داخل پکیج main آغاز می‌شود.
func main (): این همان تابعی است که اجرای برنامه از آن آغاز می‌شود.
PrintLn: این کد از تابع PrintLn موجود در پکیج fmt استفاده می‌کند و متن خروجی را چاپ می‌کند.
در ادامه‌ی این آموزش Go، وقتی می‌گوییم کد را اجرا کنید، منظورمان این است که کد موجود در فایل Go را ذخیره و سپس آن را با استفاده از دستور زیر اجرا کنید: 
انواع داده در برنامه نویسی Go
، نشان‌دهنده‌ی نوع مقداری است که در یک متغیر ذخیره می‌شود یا نوع مقداری که یک تابع برمی‌گرداند و ….
این انواع نشان‌دهنده‌ی اعداد صحیح (Integer)، ممیز شناور (Floating Point) و مقادیر مختلط (Complex) هستند.
تعریف متغیرها در زبان برنامه نویسی گو (Variable) 
پارامتر type (در دستور زیر) نوع داده‌ای را نشان می‌دهد که می‌توانیم در آن مکان حافظه ذخیره کنیم.
برای چگونگی تعریف متغیر در زبان برنامه نویسی Go با ادامه مقاله همراه باشید.
با استفاده از دستور زیر می‌توانیم متغیر تعریف کنیم: 
با استفاده از دستور زیر می‌توانید هنگام تعریف متغیر به آن یک مقدار اولیه نیز بدهید: 
پس می‌توانید با استفاده از سینتکس زیر، type را از آن حذف کنید: 
با دستور زیر می‌توانید چند متغیر تعریف کنید: 
Println («x:» , x) //prints ۳
//declaring a integer variable y with value ۲۰ in a single statement and prints it
//declaring a variable z with value ۵۰ and prints it
//Multiple variables are assigned in single line- i with an integer and j with a string
Go برای تعریف ساده‌تر متغیرها دستور زیر را دارد که var در آن حذف شده است: 
توجه کنید که در دستور بالا به جای = از: = استفاده می‌کنیم.
نمی‌توانید از: = برای متغیری که قبلا تعریف شده است، استفاده کنید.
از: = برای تعریف متغیر و مقداردهی به آن استفاده می‌شود.
در زبان برنامه نویسی Go آن دسته از متغیرهایی هستند که نمی‌توانیم مقدار آنها را پس از تعیین عوض کنیم.
go را اجرا کنید تا نتایج زیر را ببینید: 
go را اجرا کنید تا نتایج زیر را ببینید: 
دستور این حلقه به شکل زیر است: 
سپس evaluation_expression بررسی می‌شود و در صورت برقرار بودن شرط، کد درون بلوک اجرا می‌شود.
اگر برقرار باشد، بلوک دستورات مجددا اجرا می‌شود.
دستورات زیر را در یک فایل Go کپی و آن را اجرا کنید.
سینتکس آن به صورت زیر است: 
در اینجا condition بررسی می‌شود و اگر true باشد، statements_۱ اجرا می‌شود.
در صورت false بودن، statements_۲ اجرا می‌شود.
می‌توانید دستور if را بدون else نیز اجرا کنید.
هم چنین می‌توانید چند دستور if else را به هم وصل کنید.
در برنامه‌ی زیر بیشتر با دستور if else آشنا می‌شوید.
این برنامه بررسی می‌کند که یک عدد، x، کمتر از ۱۰ است یا نه.
در اینجا چون مقدار x بیشتر از ۱۰ است، عبارت درون بلوک شرط if اجرا نمی‌شود.
حالا به برنامه‌ی زیر دقت کنید.
یک بلوک else داریم که اگر شرط درست نباشد، اجرا می‌شود.
حالا بیایید یک برنامه دارای چندین دستور if else را ببینیم (chained if-else).
مثال زیر را اجرا کنید.
این برنامه بررسی می‌کند که یک عدد کمتر از ۱۰، بین ۱۰-۹۰ یا بیشتر از ۹۰ است.
در این برنامه اول شرط if (if condition) بررسی می‌کند که آیا x کمتر از ۱۰ است یا نه.
سپس بلوک زیر else را اجرا می‌کند که خروجی زیر را به ما می‌دهد: 
Switch یکی دیگر از دستورات شرطی زبان برنامه نویسی گو است.
دستورات Switch یک Statement را بررسی می‌کنند و نتیجه‌ی آن با مجموعه‌ای از مقادیر موجود (Switch Case) مقایسه می‌شود.
با اضافه کردن یک بلوک default به Switch، در صورت پیدا نشدن نمونه‌ی مشابه، این بلوک اجرا می‌شود.
در اینجا مقدار expression با مقادیر هر case مقایسه می‌شود.
وقتی نمونه‌ای مشابه پیدا شد، دستور آن Case اجرا می‌شود.
وقتی نمونه‌ای مشابه پیدا شد، دستور آن Case اجرا می‌شود.
اگر نمونه‌ی مشابه پیدا نشد، دستور بلوک default اجرا می‌شود.
در زبان برنامه نویسی گو
در زبان برنامه نویسی گو
دستور تعریف آرایه به صورت زیر است: 
می‌توانید با دستور زیر به هر المنت آرایه مقدار بدهید: 
می‌توانید در زمان تعریف با دستور زیر به المنت‌های آرایه مقدار بدهید: 
وقتی از دستور بالا استفاده می‌کنید، می‌توانید پارامتر size را حذف کنید و … بگذارید.
دستور زیر را ببینید: 
با استفاده از دستور زیر می‌توانید اندازه‌ی یک آرایه را بفهمید: 
کد زیر را برای فهمیدن بهتر آرایه‌ها اجرا کنید: 
var numbers [۳] string //Declaring a string array of size ۳ and adding elements 
Println (len (numbers)) //prints ۳
Println (numbers) // prints [One Two Three] 
Println (numbers) // prints [One Two Three] 
Println (directions) //prints [۱ ۲ ۳ ۴ ۵] 
Println (len (directions)) //prints ۵
می‌توانید مثل یک آرایه، با استفاده از نام و ایندکس به المنت‌های یک Slice دسترسی داشته باشید.
نمی‌توانید اندازه‌ی آرایه را تغییر دهید، اما اندازه‌ی Slice قابل تغییر است.
با دستور زیر می‌توانید یک Slice بسازید: 
این دستور یک Slice با نام slice_name از آرایه‌ی array_name می‌سازد که از ایندکس start شروع و به ایندکس end-۱ ختم می‌شود.
این برنامه یک Slice از یک آرایه می‌سازد و آن را نمایش می‌دهد.
var b [] string = a [۱: ۴] //created a slice named b
Println («Array after slice modification:» ,a) 
توابع مشخصی داریم که می‌توانیم از آنها برای یک Slice استفاده کنیم.
: از این تابع برای اضافه کردن value_۱ و value_۲ به یک Slice موجود استفاده می‌شود.
Println («Slice_b:» , slice_b) 
Println («Slice_b:» , slice_b) 
این برنامه اول دو Slice می‌سازد و طول‌شان را چاپ می‌کند.
در تعریف یک تابع، نام تابع، نوع مقدار خروجی و پارامترهای ورودی را می‌بینیم.
دستور تعریف یک تابع به شکل زیر است: 
بیایید مثال زیر را اجرا کنیم.
تابع calc زیر دو مقدار را می‌گیرد، حاصل جمع و تفریق آنها را محاسبه کرده و هر دو را به عنوان خروجی برمی‌گرداند.
// (int, int) says that the function returns two values, both of integer type.
package‌ها در زبان برنامه نویسی Go
برای سازمان‌دهی کدها استفاده می‌شود.
یک برنامه‌ی قابل اجرای Go دارای یک پکیج به نام main است و برنامه با اجرای تابع main آغاز می‌شود.
با دستور زیر می‌توانید پکیج‌های دیگر را به برنامه ایمپورت کنید: 
go بسازید و کد زیر را به آن اضافه کنید: 
go بسازید و کد زیر را به آن اضافه کنید: 
go بسازید و کد زیر را به آن اضافه کنید: 
با این کد تابع Do-add را از پکیج calculation فراخوانی می‌کنید.
در سیستم عامل مک، دستور echo $PATH را اجرا کنید: 
در ویندوز، مسیر نصب را با اجرای دستور echo ٪GOROOT٪ پیدا کنید: 
go در پوشه‌ی calculation بسازید (می‌توانید هر نامی برایش انتخاب کنید، اما نام پکیج در برنامه مهم است.
در اینجا باید calculation باشد) و کد زیر را به آن اضافه کنید: 
دقت کنید که نام تابع Do_add با حرف بزرگ شروع می‌شود.
در Go، اگر نام تابع با حرف بزرگ شروع شود، از سایر برنامه‌ها قابل دسترسی است و در غیر این صورت قابل دسترسی نخواهد بود.
اگر نام تابع do_add بود شما پیغام خطای ‘cannot refer to unexported name calculation.
Defer و Defer‌های استک شده در زبان برنامه نویسی Go
از دستور Defer در زبان GO برای عقب انداختن اجرای یک تابع استفاده می‌شود تا زمانی که تابع حاوی دستور Defer اجرای خود را به پایان برساند.
Deferهای استک شده درواقع استفاده از چند دستور Defer است.
Go فراخوانی تمام توابع را در یک استک قرار می‌دهد و زمانی که اجرای تابع حاوی کدها به پایان رسید، توابع درون استک به صورت
می‌توانید آن را در مثال زیر ببینید.
در کد بالا، اول کدهای درون تابع main () اجرا می‌شوند و سپس فراخوانی‌های توابع Defer به صورت معکوس اجرا می‌شوند، به عبارت دیگر به صورت ۴، ۳، ۲، ۱.
از عملگر ; برای گرفتن آدرس متغیر استفاده می‌شود.
دستور زیر را اجرا کنید تا مقدار و آدرس یک متغیر را ببینید: 
خروجی به صورت زیر است: 
خروجی به صورت زیر است: 
خروجی به صورت زیر است: 
خروجی به صورت زیر است: 
می‌توانید با استفاده از دستور زیر یک اشاره‌گر تعریف کنید: 
//Create an integer variable a with value ۲۰
//Create a pointer variable b and assigned the address of a
//print address of a (;a) and value of a 
برای استفاده از یک Structure باید دو مرحله را طی کنید.
می‌توانید به دو صورت این اطلاعات را ذخیره کنید.
حالا آرایه‌ای از این ساختار بسازید که هر المنت آرایه دارای نام، آدرس و سن است.
با دستور زیر می‌توانید یک ساختار تعریف کنید: 
در کد بالا، یک نوع تعریفی کاربر به نام emp ساخته می‌شود.
حالا می‌توانید با استفاده از دستور زیر متغیرهای این نوع را تعریف کنید: 
می‌توانید مقادیر empdata۱ را به صورت زیر تعریف کنید: 
می‌توانید با استفاده از کد زیر نیز متغیر ساختار بسازید و به آن مقدار بدهید: 
Raj مقدار متغیر name، مقدار بعدی برای متغیر address و مقدار آخر age است.
کد زیر را اجرا کنید: 
کد زیر را اجرا کنید: 
//function which accepts variable of emp type and prints name property
// declares a variable, empdata۱, of the type emp
//declares and assign values to variable empdata۲ of type emp
//prints the member name of empdata۱ and empdata۲ using display function
این مقدار بین کلمه‌ی کلیدی func و نام متد قرار می‌گیرد.
دستور یک متد به صورت زیر است: 
بیایید برنامه‌ی بالا را تغییر دهیم تا به جای تابع از متد استفاده کند: 
//Declaring a function with receiver of the type emp
func (e emp) display () {
func (e emp) display () {
//declaring a variable of type emp
//declaring a variable of type emp and assign values to members
در این آموزش توضیح می‌دهیم که چگونه اولین برنامه خود به زبان Ruby را به آسانی ایجاد نمایید.
در اجرای موازی، یک وظیفه به وظایف کوچک‌تر تقسیم می‌شود و این وظایف به صورت موازی اجرا می‌شوند.
تابعی است که می‌تواند به صورت همروند با سایر توابع اجرا شود.
معمولا وقتی تابعی فراخوانی می‌شود، کنترل اجرا به آن داده می‌شود تا اجرای آن پایان یابد.
بعد از آن این تابع اجرای خود را ادامه می‌دهد.
این تابع منتظر پایان اجرای تابعی که فراخوانی کرده می‌ماند و پس از پایان اجرا، اجرای سایر دستورات را از سر می‌گیرد.
می‌توانید در یک برنامه چند Goroutine داشته باشید.
می‌توانید یک Goroutine را با دستور زیر فراخوانی کنید.
در این مثال، برنامه‌ی اصلی پیش از شروع اجرای Goroutine به پایان می‌رسد.
display () یک Goroutine است که با دستور زیر فراخوانی می‌شود: 
به همین دلیل دستور print درون display () نمایش داده نشد.
حالا برنامه را به گونه‌ای تغییر می‌دهیم که دستور درون display () را نیز نشان دهد.
خروجی چیزی به شکل زیر است: 
کانال روشی است تا توابع بتوانند با استفاده از آن با هم ارتباط داشته باشند.
با استفاده از دستور زیر می‌توانید یک کانال تعریف کنید: 
می‌توانید با استفاده از دستور زیر به یک کانال داده بفرستید: 
می‌توانید با استفاده از دستور زیر از یک کانال داده بردارید: 
اگر یک Goroutine در کانال داده بگذارد، main () روی دستور دریافت داده منتظر می‌ماند تا داده‌ها را دریافت کند.
سپس به جای Goroutine از کانال استفاده کنید و رفتار آنها را نیز بررسی کنید.
پس دستور print درون display () اجرا نشد.
حالا در برنامه‌ی بالا از دستور کانال استفاده و رفتارش را بررسی کنید.
func display (ch chan int) {
Println («Inside display ()») 
Println («Inside display ()») 
Println («Printing x in main () after taking from channel:» ,x) 
Printing x in main () after taking from channel: ۱۲۳۴
در برنامه‌ی بالا main () بعد از رسیدن به دستور: =<-ch منتظر داده‌های کانال ch می‌ماند.
main () که روی دستور دریافت منتظر است، از حالت قفل خارج می‌شود و به اجرای دستوراتش ادامه می‌دهد.
این رویکرد زمانی کاربرد دارد که از حلقه‌ها برای فرستادن داده به یک کانال استفاده می‌کنیم.
می‌توانیم یک کانال را با دستور زیر ببندیم: 
می‌توانید از کانال‌ها برای ارتباط بین Goroutineها نیز استفاده کنیم.
func add_to_channel (ch chan int) {	
//This subroutine fetches data from the channel and prints it.
func fetch_from_channel (ch chan int) {
//creating a channel variable to transport integer values
Println («Inside main ()») 
Println («Inside main ()») 
Println («Inside main ()») 
Println («Inside main ()») 
تابع add_to_channel اعداد ۰ تا ۹ را به کانال اضافه کرده و آن را می‌بندد.
به صورت همزمان، تابع fetch_from_channel در دستور x, flag: = <- ch منتظر رسیدن داده‌ها می‌ماند و با رسیدنشان آنها را نمایش می‌دهد.
دستور Select در زبان Go را می‌توانیم یک دستور Switch در نظر بگیریم که روی کانال‌ها اجرا می‌شود.
اگر هریک از Caseها آماده باشد (کانال خوانده شده)، آن‌وقت دستور مرتبط به Case اجرا می‌‌شود.
اگر چند دستور Case آماده باشند، یک دستور به صورت تصادفی انتخاب می‌شود.
یک Case هم به صورت default داریم که در صورت آماده نبودن هیچ‌یک از Caseها اجرا می‌شود.
//Both case statements wait for data in the chan۱ or chan۲.
در کد بالا دستور Select منتظر آماده شدن داده در کانال‌ها می‌شود.
data۲ () پس از تاخیر دو ثانیه‌ای به کانال داده اضافه می‌کند که موجب اجرا شدن Case دوم می‌شود.
یک default case به همان برنامه اضافه کرده و خروجی را ببینید.
در کد زیر، با رسیدن به Select، اگر هیچ کانالی داده‌ی آماده نداشت، بلوک default بدون انتظار برای رسیدن داده اجرا می‌شود.
func data۲ (ch chan string) {
func data۲ (ch chan string) {
//creating channel variables for transporting string values 
//creating channel variables for transporting string values 
//invoking the subroutines with channel variables
//invoking the subroutines with channel variables
//Both case statements check for data in chan۱ or chan۲.
//So the default block will be executed without waiting for data in channels.
این خروجی برنامه است.
چون هیچ کانالی داده نداشت، default case اجرا شده است.
پس باید پکیج sync را به درون برنامه ایمپورت کنید.
این برنامه تعداد اجرای یک حلقه را می‌شمارد.
این روتین را ۳ بار اجرا می‌کنیم که مجموع کل ۳۰ می‌شود.
این مجموع در یک متغیر سراسری count ذخیره می‌شود.
اول، برنامه را بدون Mutex اجرا کنید: 
در کد بالا ۳ Goroutine می‌خواهند مقدار متغیر count را افزایش دهند.
فرض کنید که پس از پایان اجرای گام ۳ توسط goroutine۱، یک Goroutine دیگر که دارای مقدار قبلی ۳ است، مراحل بالا را تکرار و مقدار ۴ را ذخیره می‌کند، که غلط است.
در این شرایط می‌توانیم از Mutex استفاده کنیم.
اگر یکی از روتین‌ها در حال استفاده از متغیر باشد، Mutex نمی‌گذارد سایر روتین‌ها به آن دسترسی داشته باشند.
حالا برنامه را با Mutex اجرا کنیم.
در کد زیر سه گام بالا در یک Mutex اجرا می‌شوند.
چون دستورات خواندن، افزایش و نوشتن مقدار در count در یک Mutex اجرا می‌شود.
با استفاده از این قابلیت می‌توانید خطاهای شخصی بسازید.
می‌توانید با استفاده از new () در پکیج error از این قابلیت استفاده کنید.
برنامه‌ی زیر را اجرا کنید: 
برنامه‌ی زیر را اجرا کنید: 
برنامه‌ی زیر را اجرا کنید: 
برنامه‌ی زیر را اجرا کنید: 
برنامه‌ی زیر را اجرا کنید: 
برنامه‌ی زیر را اجرا کنید: 
برنامه‌ی زیر را اجرا کنید: 
Println (error) 
خروجی به شکل زیر است: 
خروجی به شکل زیر است: 
خروجی به شکل زیر است: 
خروجی به شکل زیر است: 
خروجی به شکل زیر است: 
خروجی به شکل زیر است: 
خروجی به شکل زیر است: 
خروجی به شکل زیر است: 
خروجی به شکل زیر است: 
خروجی به شکل زیر است: 
خروجی به شکل زیر است: 
خروجی به شکل زیر است: 
از فایل‌ها برای ذخیره‌ی داده استفاده می‌شود.
txt را در پوشه‌ی کنونی بسازید و محتوای زیر را در آن کپی کنید: 
حالا برنامه‌ی زیر را اجرا کنید.
Println («Contents of file:» , string (data)) 
از دستور WtiteLine () برای نوشتن در فایل استفاده می‌شود.
بعد از آن با استفاده از دستور Close () می‌توانید فایل را ببندید.
در این آموزش زبان‌ برنامه ‌نویسی Go موضوعات زیر را بررسی کردیم: 
var slice_name [] type = array_name [start: end] 
var slice_name [] type = array_name [start: end] 
func function_name (parameter_۱ type, parameter_n type) return_type {//statements} 
برای سازمان‌دهی کدها از پکیج استفاده می‌شود.
Declare: ch: = make (chan int) Send data to channel: channel_variable <- variable_name Receive from channel: variable_name: = <- channel_variable
Select را می‌توانیم یک دستور Switch درنظر بگیریم که روی کانال‌ها اجرا می‌شود.
معمولا، هر دستور Case یک تلاش برای خواندن کانال است.
معمولا، هر دستور Case یک تلاش برای خواندن کانال است.
Println (x) case y: = <-chan۲: fmt.
آموزش زبان برنامه نویسی GO
آموزش زبان برنامه نویسی GO
آموزش زبان برنامه نویسی GO
آموزش زبان برنامه نویسی Rust
همانطور که مشاهده کردید در این بخش از سایت فرانش، دانلود و نصب کامپایلر، ساختار زبان برنامه نویسی Go، چگونگی ایجاد آن، انواع داده و بررسی متغیرها را آموزش دادیم.</description></item><item><title>آموزش اتوکد رایگان + فیلم آموزشی به زبان ساده</title><link>https://ecosystem.ir/blog/107198/</link><description>با این آموزش گام به گام می‌توانید اولین اشیاء اتوکدی خود را رسم کنید.
در این آموزش در کنار هم اصول اولیه‌ی کار با اتوکد (AutoCAD) را یاد می‌گیریم و اولین اشیاء را در اتوکد رسم می‌کنیم.
با اتوکد می‌توانید اشیاء دوبعدی و سه‌بعدی رسم کنید: مثل نقشه‌های معماری و پروژه‌های ساختمانی و مهندسی.
با اتوکد می‌توانید فایل‌های پرینت سه‌بعدی نیز بسازید.
اگر می‌خواهید با کمک این آموزش کار با اتوکد را شروع کنید، بهتر است حداقل ۲ ساعتی برایش وقت بگذارید.
در این آموزش اتوکد یاد می‌گیریم که چطور کار با اتوکد را شروع کنیم، طرح‌های دوبعدی و سه‌بعدی رسم کنیم، نرم‌افزار را برای پرینت سه‌بعدی آماده کنیم و در انتها چطور یک نقشه‌ی فنی در آن بکشیم.
اتوکد یک نرم‌افزار طراحی حرفه‌ای و جامع است که با کمک آن می‌توانید نقشه‌هایی بسیار پیچیده رسم کنید.
می‌توانید آدرس نصب برنامه را تغییر دهید و کامپوننت‌های موردنیاز را برای نصب انتخاب کنید.
هنگام باز کردن نرم‌افزار اتوکد، روی «Start Drawing» کلیک کنید تا یک فایل یا پروژه‌ی جدید ساخته شود.
اولین کار این است که Quick Action Toolbar را تنظیم کنید و با کلیک روی «Workspace» آن را به تولبار اضافه کنید.
با این کار می‌توانید از تمام ابزارهای Sketch and ۳D برای طراحی نقشه‌ها و اشیاء سه‌بعدی استفاده کنید.
اگر می‌خواهید واحدها (Units) را به سیستمی تغییر دهید که به آن عادت دارید، روی A بزرگ قرمز رنگ در بالای گوشه‌ی سمت چپ کلیک کنید.
می‌توانید با تایپ کردن فرامین در Command Bar آنها را وارد کنید.
روی آن کلیک کنید تا وارد Isometric Viewشوید.
می‌توانید روی صفحات، اضلاع یا گوشه‌های مکعب کلیک کنید و وارد ویو موردنظر خود شوید.
برای Pan کردن DrawSpace، روی نماد دست («Hand») کلیک کنید یا با پایین نگه‌داشتن اسکرول موس، اشاره‌گر آن را حرکت دهید.
برای چرخاندن DrawSpace، روی «Orbit» در تولبار سمت راست کلیک کنید.
اگر می‌خواهید با حرکت موس، در مرکز محورها بچرخید، کلیک موس را روی DrawSpace نگه دارید.
این کار را می‌توانید با نگه داشتن کلید «Shift» کیبورد و اسکرول موس هم انجام دهید.
اگر می‌خواهید در نقطه‌ای مشخص بچرخید، روی فلش Extend کلیک و سپس «Free Orbit» را انتخاب کنید.
ممکن است لازم باشد هنگام طراحی نقشه‌ها در اتوکد، از گزینه‌ی Snapping استفاده کنید.
برای فعال کردن Grid Snap، می‌توانید کلید F۹ کیبورد را بزنید یا گزینه‌ی «Snap to Drawing Grid» را از پایین گوشه‌ی سمت راست انتخاب کنید.
با باز کردن Snap Settings، می‌توانید Drawing Gridو دقت Grid Snap را تغییر دهید.
با کمک کلید F۳ کیبورد یا گزینه‌ی Object Snap، می‌توانید عمل کلیپینگ (Clip) را روی گوشه‌ها، خطوط، نقاط و مراکز و … فعال کنید.
اگر در وارد کردن مختصات یا نقشه به مشکل برخوردید، گزینه‌ی Snap را فعال و غیرفعال کنید یا به صورت همزمان از Object Snap و Grid Snap استفاده نکنید.
برای رسم اولین شکل خود، Top View را در قطب‌نما انتخاب کنید.
در اتوکد می‌توانید تنها اولین حروف فرمان را وارد کنید.
نقطه‌ای را روی Workspace انتخاب یا مختصات آن را وارد کنید.
بعد از رسیدن مجدد به مرکز محور، برای متوقف کردن فرمان Line کلید Escape را بزنید.
برای انتخاب یک شئ، رویش کلیک کنید.
برای خارج کردن از حالت انتخاب شده، کلید Shift را نگه دارید و دوباره روی آن کلیک کنید.
با Drag کردن از چپ به راست، می‌توانید چند شئ را انتخاب کنید.
البته، روش‌های ساده‌تری نیز برای رسم یک مربع یا مستطیل در اتوکد وجود دارد.
اگر کلیک موس را نگه دارید، می‌توانید برای شئ موردنظر از Lasso استفاده کنید.
می‌توانید فرمان ابزار موردنظر را تایپ کنید یا روی آیکون آن کلیک کنید.
۲ با فعال کردن Object Snap یک دایره‌ی دیگر رسم کنید
بعد از تعیین نقطه‌ی شروع برای خط، گزینه‌ی «Tangent» را انتخاب و Object Snap را فعال کنید.
با استفاده از ابزار Spline می‌توانید با نقاط متصل به هم یک منحنی سینوسی پیوسته رسم کنید.
با استفاده از فرمان Trim می‌توانید خطوط اضافی را تا محل تداخل آنها با خطی دیگر پاک کنید.
فرمان Trim را فعال و Enter کنید تا کل طرح انتخاب شود.
مرکز را به عنوان اولین نقطه‌ی Mirror Line انتخاب کنید.
اولین طرح دوبعدی خود را در این آموزش اتوکد رسم کردید!
احتمالا این جذاب‌ترین قسمت این آموزش اتوکد برای شما باشد.
این مسئله را هنگام رسم سه‌بعدی به یاد داشته باشید: طراحی در اتوکد تنها در صفحه‌ی XY ممکن است.
با این کار می‌توانید یک دستگاه مختصات جدید داشته باشید.
می‌توانید با اتوکد اشیاء آماده مثل مکعب، استوانه، توپ یا هرم بسازید و این اشیاء را روی صفحات موجود یا صفحه، ضلع و گوشه‌ی اشیاء دیگر قرار دهید.
اشکال دیگر را نیز به همین سادگی می‌توانید رسم کنید.
با دابل‌کلیک کردن روی شئ می‌توانید ارتفاع را تغییر دهید.
حالا می‌توانید تمام اضلاع بالایی چندضلعی را انتخاب کنید.
برای اینکه مجبور نباشید تمام اضلاع را به صورت دستی انتخاب کنید، Loop را تایپ کنید.
وقتی تمام اضلاع بالایی هایلایت شدند، روی Accept کلیک و برای تعریف اندازه‌ی Fillet، Radius را تایپ کنید.
برای تغییر شعاع، مقدار آن را دوباره انتخاب یا وارد کنید.
مقادیر شعاع مختلف را برای Chamfer انتخاب کنید
حالا چندضلعی را بچرخانید و با فلش زیر قابلیت Fillet، Chamfer را انتخاب کنید.
حالا روی Distance کلیک و اولین طول Chamfer را وارد کنید.
بار دیگر شکل را نمایش دهید و سپس با دوبار زدن کلید Enter آن را تایید کنید.
۴ ظاهر اشیاء سه‌بعدی را در اتوکد تغییر دهید
با تایپ VISUALSTYLES، می‌توانید ظاهر اشیاء سه‌بعدی را در اتوکد تغییر دهید.
حالا Union را تایپ و روی استوانه و کره کلیک کنید.
حالا کره را به عنوان شئ‌ای که باید کم شود، انتخاب و تایید کنید.
برای استفاده از قابلیت Sweep در اتوکد، اول باید هندسه‌ی پایه‌ی Sweep را رسم کنید.
حالا Sweep را تایپ کنید، Arcas Base را انتخاب و تایید کنید.
برای ساخت Sweep یک چندضلعی و Arc رسم کنید.
یک دایره به مرکز محور مختصات و شعاع ۱۰۰ رسم کنید.
Front View را انتخاب کنید و مرکز یک هشت ضلعی را به صورت (۵۰، ۰، ۰) درنظر بگیرید.
فرمان Loft را اجرا و دایره و سپس چندضلعی را انتخاب کنید.
Enter را بزنید و روی Cross Sections only کلیک کنید.
قابلیت Revolve برای رسم طرح‌هایی ساده با محور یا خطوط متقارن مناسب است.
یک خط از مرکز مختصات در راستای محور Y رسم کنید و طول آن را ۵۰ بگذارید.
حالا اول یکی از نقاط پایانی خط و سپس دیگری را انتخاب کنید.
می‌توانید Y را تایپ کنید چون محور Y محور چرخش این طرح است.
برای ساخت این فایل‌ها می‌توانید از دیگر نرم‌افزارهای اتودسک مثل Inventor یا نرم‌افزار رایگان FreeCAD استفاده کنید.
برای انجام این کار، روی لوگوی اتوکد کلیک، Open، سپس Export، Other File Formats و بعد در File Browser،.
اگر می‌خواهید نقشه‌ی فنی مدل خود را بکشید، اتوکد ابزاری مناسب برای این کار است.
سپس روی علامت + در پایین گوشه‌ی سمت چپ کلیک و تمپلت دانلود شده را انتخاب کنید.
وقتی وارد تب Drawing Sheet Template شدید، روی Base و سپس From Model Space کلیک کنید.
برای قرار دادن اولین ویو (که Front View است) در وسط Sheet کلیک کنید.
پس از کلیک می‌توانید برای رفتن به سایر Viewها Orientation را انتخاب کنید.
اگر مدل خیلی کوچک یا بزرگ بود، روی Scale کلیک و یک Scaling Factor انتخاب کنید.
برای تغییر مکان شئ روی Move کلیک کنید.
برای تایید مکان جدید، روی آن کلیک کنید.
با Drag کردن موس به صورت افقی و عمودی می‌توانید ویوهای دیگر را قرار دهید.
اگر می‌خواهید فرمان Dimension را برای دایره‌ یا سوراخ‌ اجرا کنید، اول باید یک نقطه‌ی مرکزی داشته باشید.
روی Center Mark در تب Annotation کلیک و یک دایره انتخاب کنید.
با تایپ کردن R و D می‌توانید Radius و Diameter را انتخاب کنید.
با زدن کلید Enter آن را تایید کنید و Section View را در یک نقطه‌ی خالی قرار دهید.
اتوکد یکی از نرم‌افزارهای قدرتمند CAD است که می‌توانید از آن برای رسم نقشه‌های معماری و مهندسی مکانیک استفاده کنید.
این نرم‌افزار دارای بهترین ابزارها برای رسم طرح‌های دوبعدی است.
می‌توانید با لایسنس دانشجویی خود به این نرم‌افزار نیز دسترسی داشته باشید.
در این مقاله با ۶ گام آموزش اتوکد AutoCAD دو بعدی و سه بعدی ۲۰۲۰ به زبان ساده آشنا شدید، همانطور که مشاهده کردید برای کار با این نرم افزار توضیح دادیم که ابتدا چگونه باید یک اکانت AutoDesk بسازید، سپس شما را با فضای برنامه آشنا کردیم و به توضیح طراحی دو بعدی پرداختیم.</description></item><item><title>آموزش MVC برای مبتدیان ۲۰۲۰: گام به گام</title><link>https://ecosystem.ir/blog/106938/</link><description>mvc که مخفف کلمات Model View Controller می‌باشد را در این مقاله از سایت فرانش به صورت گام به گام آموزش خواهیم داد.
ابتدا تاریخچه، ویژگی‌ها و معماری MVC را برای شما بیان می‌کنیم؛ سپس پس از ذکر دو مثال در این مورد، فریمورک‌های تحت وب مطرح MVC را بررسی می‌کنیم.
MVC چیست؟ MVC یک الگوی معماری است که یک اپلیکیشن را به سه قسمت منطقی تقسیم می‌کند: 
MVC از حروف اول این سه کلمه تشکیل شده است.
امروزه از MVC در طراحی اپلیکیشن‌های تحت وب و موبایل استفاده می‌شود.
Trygve Reenskaug برای اولین بار در سال ۱۹۷۹ MVC را مطرح کرد.
منطق برنامه را به خوبی به قسمت‌های مختلف تقسیم می‌کند: مدل، ویو و کنترلر.
معماری MVC
معماری MVC
۴. مدل به ویو پیغام می‌دهد که تغییر یافته است.
۵. ویو داده‌های مدل را برمی‌دارد و خودش را آپدیت می‌کند.
سه جزء اصلی معماری MVC به صورت زیرند: 
Model (مدل): حاوی تمام داده‌ها و منطق مرتبط به آنهاست.
View (ویو): داده‌ها را برای کاربر نمایش می‌دهد یا تعاملات کاربر را مدیریت می‌کند.
Controller (کنترلر): واسطی است بین دو جزء ویو و مدل.
ویو آن بخش برنامه است که داده‌ها را نمایش می‌دهد.
ویو از مدل درخواست اطلاعات می‌کند و سپس این اطلاعات را برای کاربر نمایش می‌دهد.
کنترلر آن بخش اپلیکیشن است که تعاملات کاربر را مدیریت می‌کند.
کنترلر ورودی‌های موس و کیبورد کاربر را تحلیل می‌کند و به مدل و ویو می‌گوید که چگونه خود را تغییر دهند.
مدل داده‌ها و منطق مرتبط به آنها را ذخیره می‌کند.
مدل داده‌هایی را ارائه می‌کند که بین اجزاء کنترلر یا هر منطق تجاری مرتبطی جابه‌جا می‌شوند.
مدل به درخواست‌های ویو پاسخ می‌دهد و دستورات کنترلر را نیز اجرا و خود را آپدیت می‌کند.
. ویو: واسط کاربری، کنترلر: موتور ماشین، مدل: سوخت
همراهان گرامی سایت فرانش در این مقاله، یک پروژه را با معماری MVC ایجاد می‌کنیم: 
گسترش کد در این مدل ساده است.
با تقسیم اپلیکیشن به سه جزء (مدل، ویو و کنترلر)، می‌توان از پیچیدگی جلوگیری کرد.
استفاده از مدل MVC در واسط‌های کاربری مدرن امروزی سخت است
از این مدل در اپلیکیشن‌های تحت وب بسیار استفاده می‌شود.
MVC یک الگوری معماری است که اپلیکیشن را به بخش مدل، ویو و کنترلر تقسیم می‌کند.
مدل: حاوی داده‌ها و منطق مرتبط به آنها است.
ویو: داده‌ها را برای کاربر نمایش می‌دهد یا تعاملات کاربری را مدیریت می‌کند.
Trygve Reenskaug در سال ۱۹۷۹ مدل MVC را مطرح کرد.
این مدل بسیار Pluggable است.
Rails، Zend Framework، Codelgniter، Laravel و Fuel PHP برخی از فریمورک‌های مطرح MVC هستند.
آموزش PHP با تاکید بر معماری MVC
آموزش PHP با تاکید بر معماری MVC
آموزش Htaccess و معماری MVC در PHP
آموزش Htaccess و معماری MVC در PHP</description></item><item><title>آموزش جاوا از مقدماتی تا پیشرفته به زبان ساده</title><link>https://ecosystem.ir/blog/106397/</link><description>در این مقاله از سایت فرانش قصد داریم شما را با مقدمات و اصطلاحات مهم جاوا آشنا کنیم تا در فرایند یادگیری و
هر چند زبان جاوا ممکن است کمی پیچیده به نظر بیاید اما
سعی بر این شده است که به ساده‌ترین صورت ممکن این نوع زبان برنامه نویسی پرطرفدار را از مقدماتی تا پیشرفته به همراه اصطلاحات مهم و کاربردی آن، آموزش دهیم
اگر روزی بخواهید برنامه‌ی اندروید (Android) خود را برای سرگرمی یا کار بسازید، احتمالا باید کمی کد بنویسید.
پس این آموزش مقدماتی جاوا (Java) مناسب شماست.
جاوا فقط زبان برنامه‌نویسی رسمی گوگل برای توسعه‌ی اپلیکیشن‌های اندرویدی نیست (هم‌چنین
)، گوگل از جاوا در قسمت‌های داخلی اندروید نیز استفاده کرده است.
یادگیری جاوا برای نوشتن اپلیکیشن اندرویدی دو بخش جدا دارد.
یک بخش خود زبان برنامه‌نویسی جاوا است و بخش دیگر فهمیدن قسمت‌های مختلف یک اپلیکیشن مانند واسط کاربری، 
در این آموزش درباره‌ی قسمت اول، یعنی زبان برنامه‌نویسی جاوا یاد خواهیم گرفت.
برای شروع کار با جاوا و نوشتن کد، باید کدهای خود را کامپایل و به یک فایل قابل اجرا برای جاوا تبدیل کنید.
به هر حال، اگر درباره‌ی نصب JDK مطمئن نیستید و می‌خواهید سریعا وارد مسیر برنامه‌نویسی جاوا شوید، compilejava.
این سایت یک محیط برنامه‌نویسی آنلاین ساده است که می‌توانید در آن برنامه‌های ساده جاوا بنویسید و بدون دردسرهای نصب JDK آنها را اجرا کنید.
لازم به ذکر است که نسخه‌ی آخر OpenJDK در Android Studio وجود دارد و دیگر حتی لازم نیست برای نوشتن اپلیکیشن‌های اندرویدی، JDK نصب کنید.
در قسمت بالایی کد جاوا خود را می‌نویسید و در پایین آن خروجی کامپایل (چپ) و اجرای (راست) کدتان را می‌بینید.
اما اگر JDK را نصب کردید، باید به جای ویرایشگر متن این IDE آنلاین، از یک ویرایشگر متن نصب‌شده در سیستم خودتان استفاده کنید.
اگر از JDK استفاده می‌کنید، این فایل را با نام HelloWorld.
در جاوا، نام کلاس و سورس‌کد باید یکی باشند.
متن «Hello, World» را می‌بینید که در پنجره‌ی سمت راستی پایین صفحه نمایش داده می‌شود.
این فایل سه کار انجام می‌دهد.
یک کلاس (Class) در جاوا، و تمام زبان‌های برنامه‌نویسی شئ‌گرا، یک شئ (Object) را تعریف می‌کند.
هر برنامه‌ی جاوا باید حداقل در یکی از کلاس‌هایش، متد main را تعریف کند.
این متد نقطه‌ی شروع برنامه است.
اطلاعات زیادی را می‌توانید درباره‌ی این دو کلاس در سایت اوراکل پیدا کنید.
حالا ماشین مجازی جاوا (Java Virtual Machine) وظیفه دارد این بایت‌کد را در یک پلتفرم خاص اجرا کند.
همراهان گرامی سایت فرانش در این مقاله تاریخچه و جایگاه زبان جاوا بررسی می‌شود پیشنهاد می‌کنیم مطالعه کنید: 
هنگام برنامه‌نویسی لازم می‌شود که داده‌هایی را به صورت کوتاه مدت ذخیره کنید.
از آنجایی که داده‌ها انواع مختلفی دارند، باید برای هر متغیر یک نوع (Type) تعریف کنیم تا جاوا بفهمد که درون آن متغیر چه نوع داده‌ای ذخیره شده است.
در زیر یک برنامه را می‌بینید که به یک متغیر مقدار می‌دهد، آن مقدار را در کنسول نمایش می‌دهد، مقدار متغیر را عوض می‌کند و دوباره آن را نمایش می‌دهد: 
همان‌طور که در کد می‌بینید، این برنامه متغیری به نام i را تعریف می‌کند و به آن مقدار اولیه‌ی ۱ را می‌دهد.
مقدار متغیر «i» در کنسول نمایش داده می‌شود.
سپس مقدار جدیدi + ۲۴ یا ۱ + ۲۴ به «i» داده می‌شود که همان عدد ۲۵ است.
سپس مقدار جدید نمایش داده می‌شود.
حالا برنامه را به گونه‌ای تغییر دهید که به جای int از double استفاده کند.
نگاه کنید، می‌بینید که یک مقدار صحیح با یک رشته (String) جمع شده است: «The value of i is:» + i.
در اینجا جاوا می‌داند که قسمت اول یک رشته است، پس مقدار «i» را به رشته تبدیل می‌کند که «۱» به دست می‌آید و سپس آن را به رشته‌ی قبلی وصل می‌کند.
// Add some trailing spaces and then remove them with trim () 
مثل قبل این کد را کامپایل و اجرا کنید.
بخش اول برنامه یک شئ String با نام «hello» و مقدار «Hello, World» می‌سازد.
شاید این کار شبیه تعریف و مقداردهی یک عدد صحیح یا یک نوع دیگر باشد، اما رشته‌ها کمی پیچیده‌تر عمل می‌کنند.
به عبارت دیگر، یک شئ جدید از نوع String ساخته می‌شود و مقدار «Hello, World» به سازنده‌اش منتقل می‌شود.
بخشی از رشته را برمی‌گرداند، که در این کد ۵ کاراکتر اول است.
برای تکرار یک وطیفه در یک زبان برنامه‌نویسی از ساختاری به نام حلقه استفاده می‌کنید.
در کد زیر می‌بینید که چطور اعداد ۱-۱۰، ۱۰-۲۰ و ۲۰-۳۰ را با استفاده از سه حلقه‌ی مختلف نمایش دهید: 
public class Loops {
java حاوی کد بالا ایجاد و سپس آن را کامپایل و اجرا کنید.
در کد بالا در این بخش عدد صحیح i با مقدار اولیه‌ی ۱ تعریف می‌شود.
بخش دوم، عبارت تست است (
). این بخش در هر بار اجرای حلقه بررسی می‌شود.
اگر نتیجه‌ی بخش تست True باشد، حلقه مجددا اجرا می‌شود.
در این مثال کد تست بررسی می‌کند که آیا متغیر i هنوز کمتر یا مساوی ۱۰ هست یا نه.
در این مثال بخش Iterator، یکی به مقدار i اضافه می‌کند.
(OO) و برای یادگیری برنامه‌نویسی جاوا و اندروید باید مفهوم OO را بفهمیم.
public int GetCount () {
اولین متد یکی به مقدار متغیر داخلی
اگر دقت کنید می‌بینید که تا اینجا تمام متدها با عبارت
public int
می‌گوید که این متد یک عدد و درواقع یک عدد صحیح را برمی‌گرداند.
دقت کنید که نام متد اول مثل نام کلاس است (
). این نوعی متد خاص سازنده (Constructor) نام دارد.
از این متد برای ساخت شئ با مقادیر پیش‌فرض یا هرگونه عمل مقداردهی اولیه‌ی دیگری استفاده می‌شود.
در این کد سازنده تنها مقدار متغیر
یکی از مزایای کلاس‌ها این است که می‌توانید یک کلاس کلی بسازید و سپس کلاس‌های خاص دیگری ایجاد کنید که از کلاس اصلی اول به‌وجود آمده‌اند.
مثلا می‌توانید یک کلاس به نام Animal ایجاد کنید و سپس با استفاده از این کلاس یک کلاس دیگر برای یک حیوان خاص مثلا یک گوزن ایجاد کنید.
باید برای این مثال دو فایل
public class Animal {
public Animal (int n) {
public int GetNumLegs () {
net استفاده می‌کنید، هر دو کد را در پنجره‌ی ویرایشگر بنویسید و این فایل‌ها هنگام کامپایل و اجرا به صورت خودکار به صورت مناسب ذخیره می‌شوند.
public class Elk extends Animal {
public Elk (int l) {
public int GetAntlerLength () {
public static void main (String [] args) {
public static void main (String [] args) {
public static void main (String [] args) {
public static void main (String [] args) {
public static void main (String [] args) {
public static void main (String [] args) {
دلیل این نام‌گذاری این است که به صورت سلسله‌مراتبی، کلاس Elk زیر کلاس Animal قرار می‌گیرد.
را فراخوانی کند، با اینکه این متد بخشی از کلاس Animal است.
استفاده کردیم که نشان می‌دهد می‌توانیم از سایر نقاط برنامه به متد دسترسی داشته باشیم.
آموزش برنامه نویسی جاوا (JAVA) 
آموزش برنامه نویسی جاوا (JAVA) </description></item><item><title>بهترین ابزار کالی لینوکس رایگان ۲۰۲۰ (۲۱ مورد)</title><link>https://ecosystem.ir/blog/106170/</link><description>بهترین ابزار کالی لینوکس
در این مقاله لیستی از بهترین ابزارهای کالی (Kali Linux) را معرفی خواهیم کرد که از آنها می‌توانید برای اجرای تست‌ نفوذ (Penetration Test) و هک استفاده و به امنیت وب‌سرورها دسترسی پیدا کنید.
کالی یکی از بهترین توزیع‌های لینوکس برای اجرای تست نفوذ و هک است.
این سیستم‌عامل ابزار مختلفی دارد که می‌توانید از آنها برای تست، هک یا دیگر کاربردهای جرم‌یابی دیجیتال استفاده کنید.
کالی بهترین توزیع لینوکس برای هکرهای قانونی است.
حتی اگر هکر نیستید و تنها یک وب‌مستر هستید، می‌توانید از ابزارهای کالی برای بررسی وب سرور یا صفحه‌ی وب خود استفاده کنید.
ابزارهای برتر کالی برای اجرای تست نفوذ و هک
Nmap یا «Network Mapper» یکی از مشهورترین ابزارهای لینوکس برای جمع‌آوری اطلاعات است.
البته می‌توانید از آن برای کشف ضعف‌های امنیتی و تست‌ نفوذ نیز استفاده کنید.
البته، مسلما یک بلاگ خوب جزئیات زیادی را در اختیارتان قرار نمی‌دهد، اما WPScan بهترین ابزار برای کشف نقض‌های امنیتی وردپرسی است.
اگر رمزعبور وای‌فای خود را فراموش کرده‌اید، می‌توانید از Aircrack-ng برای بازیابی آن استفاده کنید.
این ابزار هم‌چنین شامل مجموعه‌ای از حملات وایرلس مختلف است که با آن می‌توانید یک شبکه‌ی وای‌فای را هدف قرار داده و امنیت آن را بهتر کنید.
Hydra یکی از بهترین ابزارهای کالی
اگر به دنبال ابزاری هستید که با آن جفت‌های رمزعبور/نام‌کاربری را پیدا کنید، Hydra یکی از بهترین ابزارهای کالی است که به صورت پیش‌فرض روی آن نصب شده است.
Wireshark یکی از معروف‌ترین ابزارهای آنالیز شبکه‌ است که توسط کالی پشتیبانی می‌شود.
می‌توانیم آن را یکی از بهترین ابزارهای کالی برای حملات اسنیفینگ (Sniffing) شبکه بدانیم.
این فریمورک دو نسخه دارد: یک نسخه‌ی Open (متن‌باز) و یک نسخه‌ی Pro. با این ابزار می‌توانید نقض‌های امنیتی را تایید کنید، نقاط نفوذ مشخص را تست کنید و یک ارزیابی امنیتی کامل را انجام دهید.
Skipfish یک ابزار بررسی اپلیکیشن‌های تحت وب است که با آنها می‌توانید تقریبا هر نوع اپلیکیشن تحت وبی را اسکن کنید.
Maltego یکی از بهترین ابزارهای داده‌کاوی است تا با آن اطلاعات آنلاین را بررسی کنید.
Maltego برای هر دسته از اطلاعات، گرافی جهت‌دار ایجاد می‌کند که با کمک آن می‌توانید ارتباط موجود بین آن دسته از اطلاعات را بررسی کنید.
این ابزار به صورت پیش‌فرض نصب شده است، اما برای انتخاب نسخه‌ی موردنظر خود باید ثبت‌نام کنید.
اگر سیستم شما به یک شبکه متصل است، Nessus به شما کمک می‌کند نقض‌های امنیتی موجودی را پیدا کنید که شاید یک مهاجم بتواند از طریق آنها به سیستم‌تان نفوذ کند.
البته اگر ادمین سیستم‌های مختلف یک شبکه هستید، می‌توانید از این ابزار برای امن کردن چنین کامپیوترهایی استفاده کنید.
Burp Suite Scanner ابزار برای بررسی امنیت وب
Burp Suite Scanner یک ابزار عالی برای بررسی امنیت وب است.
این ابزار برای متخصصین تست نفوذ و بررسی امنیت یک مرورگر وب طراحی شده است.
BeEF یکی از بهترین ابزارهای کالی است، چون هنگام بررسی امنیت وب، بسیاری دوست دارند مشکلات سمت کلاینت را شناسایی و حل کنند.
Apktool یکی از بهترین ابزارهای کالی برای مهندسی معکوس اپلیکیشن‌های اندرویدی است.
اگر به دنبال یک ابزار تست نفوذ متن‌باز هستید، sqlmap بهترین است.
همراهان گرامی سایت فرانش یک آموزش ویژه برای شما داریم: بعد از این مقاله شما می‌توانید کالی لینوکس را پیشرفته فرا بگیرید و با ترفندهایی که نفوذگر‌ها از آنها استفاده می‌کنند آشنا شوید: 
Yersinia فریمورکی جالب است که با آن می‌توانید حملات سطح ۲ (سطح ۲ به سطح لینک داده در مدل OSI اشاره دارد) را در یک شبکه اجرا کنید.
اگر به دنبال تست‌های نفوذ جدی هستید، SET یکی از بهترین ابزارهاست که حتما آن را بررسی کنید.
ابزارهای بسیاری را می‌توانید به همراه کالی پیدا کنید.
آموزش امنیت و راه‌های مقابله با نفوذ ۲ (کالی لینوکس) 
آموزش امنیت و راه‌های مقابله با نفوذ ۲ (کالی لینوکس) 
آموزش امنیت و راه‌های مقابله با نفوذ ۲ (کالی لینوکس) 
همراهان گرامی سایت فرانش در این مقاله ۲۱ مورد از ابزارهای مهم و کاربردی Kali Linux (یک توزیع لینوکس برای انجام تست‌های امنیت و هک) را برای شما توضیح دادیم، همانطور که مشاهده فرمودید این نسخه از لینوکس قابلیت‌های فراوانی دارد و در صورتیکه که علاقمند به مبحث تست نفوذ و چگونگی امنیت وب سرور خود هستید می‌توانید کالی لینوکس را انتخاب کنید.</description></item><item><title>آموزش طراحی بنر تبلیغاتی حرفه ای</title><link>https://ecosystem.ir/blog/106066/</link><description>آموزش طراحی بنر تبلیغاتی
چگونه بنری طراحی کنیم که در عین سادگی، جذابیت خاص خودش را داشته باشد و در کمترین زمان ممکن اطلاعات مفیدی از بنر در ذهن مخاطب جای بگیرد.
طراحی بنرهای تبلیغاتی کاری ساده نیست.
در این مقاله نکاتی را درباره‌ی طراحی بنرهای تبلیغاتی به شما خواهیم گفت و برای آشنایی بیشتر با این نکات نمونه‌هایی را خواهید دید.
آموزش نکات طراحی بنرهای تبلیغاتی برای کمپین‌های دیجیتال
پیش از شروع به طراحی بنر تبلیغاتی، باید چند موضوع مهم را بدانید: ابعاد بنر شما چقدر است، نوع فایلی که بنر را باید در آن ذخیره کنید، چیست، و بیشترین حجم این فایل چقدر می‌تواند باشد.
بدون این اطلاعات، ممکن است بنری فوق‌العاده طراحی کنید که نمی‌توان از آن استفاده کرد.
بیشترین اندازه‌ی فایل گوگل برای بنرهای تبلیغاتی ۱۵۰kb است.
بنر تبلیغاتی شما باید سه قطعه‌ی اطلاعاتی را در خود داشته باشد: لوگوی تجاری یا برندینگ، پیغام شما و فراخوان عمل (call to action).
این سه تمام اطلاعات لازم را به بیننده می‌دهند: شما چه کسی هستید، قصد انجام چه کاری را دارید و گام بعدی چیست.
این بنر برای شرکت Dollar Shave Club از توازن خوبی برخوردار است: لوگو خوانا است، اما مرکز توجه نیست و بر پیغام و CTA نیز تاکید شده است.
یادتان باشد: فضای بنر محدود است و بیننده برای مدت کوتاهی به بنر خیره خواهد شد.
متن طولانی، بنر شما را شلوغ و خسته‌کننده می‌کند و به‌علاوه بیننده باید زمان بیشتری را صرف خواندن آن کند.
نمونه طراحی بنر تبلیغاتی نامناسب که CTA ندارد
این بنر برای معرفی برند مناسب است، اما احتمالا بیننده با دیدن آن مشتاق نمی‌شود و کلیک نمی‌کند.
این بنر برای یک شرکت هواپیمایی است که با «Book Now» بیننده را ترغیب به رزرو می‌کند و گام بعدی را نشان‌شان می‌دهد.
پکیج جامع طراحی بنر و پوستر تبلیغاتی در فتوشاپ
با استفاده از تنها چند رنگ مشخص، یک یا دو فونت ساده و خوانا و تنها یک تصویر، می‌توانید بنرهایی جذاب و واضح طراحی کنید.
نمونه بنر تبلیغاتی با فونت و رنگ مناسب
تنها از یک فونت در سه رنگ (سفید، مشکی، قرمز) و در مکان‌های مناسب از حروف بزرگ استفاده شده است.
اگر می‌خواهید از تصاویر در بنرتان استفاده کنید، بهتر است تنها یک تصویر داشته باشید.
این بنر تنها اطلاعات یک محصول را مطرح می‌کند و دقیق‌تر است.
خلاصه اینکه برای طراحی بنرهای تبلیغاتی خلاقانه عمل کنید تا توجه مشتریان را به خود جلب کنید.
همانطور که ملاحظه فرمودید فاکتورهایی که اعمال می‌کنید تا بنر تبلیغاتی پرمخاطب را طراحی کنید باید به گونه‌ای باشد که مخاطب را در لحظه‌ی اول جذب کرده و در کمترین زمان ممکن، بیشترین اطلاعات را ارائه دهد.
فیلم رایگان آموزش طراحی بنر تبلیغاتی حرفه‌ای</description></item><item><title>آموزش تصویری نصب وردپرس + فیلم رایگان</title><link>https://ecosystem.ir/blog/105913/</link><description>اما اگر دوست دارید که خودتان وردپرس را نصب کنید، این آموزش به کمک‌تان می‌آید.
قبل از ادامه مقاله به شما پیشنهاد می‌کنیم که فیلم آموزش نصب وردپرس را مشاهده کنید: 
آموزش گام به گام نصب وردپرس
اگر پکیج وردپرس را ندارید، آن را دانلود کرده و از حالت فشرده خارج کنید.
یک پایگاه داده برای وردپرس روی وب‌سرورتان (Web Server) بسازید.
سپس یک کاربر MySQL (یا MariaDB) ایجاد کنید که تمام مجوزهای لازم را برای دسترسی به این پایگاه داده و تغییر آن داشته باشد.
سپس اطلاعات پایگاه داده خود را به آن اضافه کرده و آن را ویرایش کنید.
اگر دوست ندارید نام فایلی را عوض کنید، گام ۳ اختیاری است و می‌توانید آن را انجام ندهید.
اگر می‌خواهید وردپرس را در Root دامین قرار دهید (https: //example.
com)، تمام محتوای فایل وردپرس را که از حالت فشرده خارج کرده‌اید (به همراه خود پوشه‌ی وردپرس)، در پوشه‌ی root وب‌سرور قرار دهید.
اگر می‌خواهید که نصب وردپرس در پوشه‌ی مختص به خود قرار گیرد (https: //example.
com/blog)، پوشه‌ی blog را روی سرور ایجاد کنید و از طریق FTP محتوای غیرفشرده‌ی پوشه‌ی وردپرس را در این پوشه آپلود کنید.
اگر کلاینت FTP شما گزینه‌ای برای کوچک کردن حروف بزرگ موجود در اسامی دارد، حتما آن را غیرفعال کنید.
با رفتن به URL مربوطه در مرورگرتان، اسکریپت (Script) نصب وردپرس را اجرا کنید.
این همان URLای است که فایل‌های وردپرس را در آن آپلود کرده‌اید.
اگر می‌خواهید وردپرس را در یک سرور ریموت (Remote Server) آپلود کنید، با استفاده از یک مرورگر، فایل وردپرس را دانلود و سپس آن را در کامپیوترتان از حالت فشرده خارج کنید.
اگر از FTP استفاده می‌کنید، به گام بعد بروید.
اگر دسترسی shell به وب سرورتان و تجربه‌ی استفاده از ابزارهای کنسول (Console) را دارید، می‌توانید با استفاده از wget (یا lynx یا دیگر مرورگرهای مبتنی بر کنسول) وردپرس را مستقیما روی وب سرور دانلود کنید و به سراغFTP نروید.
سپس با استفاده از فرمان روبه‌رو آن را از حالت فشرده خارج کنید: tar -xzvf latest.
پکیج وردپرس در پوشه‌ای با نام wordpress قرار می‌گیرد که این پوشه در همان پوشه‌ای قرار دارد که latest.
اگر از یک سرویس هاست (Host) استفاده می‌کنید، احتمالا تنظیمات پایگاه داده برایتان انجام شده است یا راهکاری برای انجام آن در اختیارتان قرار خواهد گرفت.
به صفحات پشتیبانی هاست یا کنترل‌پنل خود بروید و ببینید که آیا لازم است آن را به صورت دستی تنظیم کنید یا نه.
زیر را بخوانید و یک نام کاربری و رمز عبور برای خود ایجاد کنید.
اگر از قبل یک پایگاه داده دارید و از آن استفاده می‌کنید، می‌توانید وردپرس را نیز نصب کنید، فقط دقت کنید که از یک پیشوند برای نام جداول استفاده کنید تا اشتباها در جداول موجود چیزی اضافه نکنید.
اگر phpMyAdmin روی وب‌سرورتان نصب شده است، می‌توانید با استفاده از دستورالعمل‌های زیر، نام کاربری وردپرس و پایگاه داده خود را ایجاد کنید.
اگر از کامپیوتر خودتان استفاده می‌کنید، می‌توانید phpMyAdmin را روی بیشتر توزیع‌های لینوکس به صورت خودکار نصب کنید.
در سمت چپ وجود ندارد، یک پایگاه داده ایجاد کنید: یک نام برای پایگاه داده‌ی وردپرس انتخاب کنید: 
و blog مناسبند، اما بیشتر سرویس‌های هاست (مخصوصا هاست‌های اشتراکی) از شما می‌خواهند که نامی را انتخاب کنید که با نام کاربری‌تان شروع و بعد از آن یک _ قرار بگیرد.
پیشنهاد می‌کنیم که اگر از کامپیوتر خودتان استفاده می‌کنید، ملزومات سرویس هاست خود را در سرور خودتان بررسی و رعایت کنید تا هنگام انتقال پایگاه داده مجبور به تغییر نشوید.
اگر کاربری مرتبط به وردپرس در لیست کاربران موجود نبود، یکی ایجاد کنید: 
یک نام کاربری برای وردپرس (wordpressمناسب است) انتخاب و آن را در فیلد
یک رمز عبور امن انتخاب کنید (به صورت ایده‌آل رمزعبور باید شامل حروف کوچک، بزرگ، عدد و نشانه باشد.) و آن را در فیلد
آموزش نصب افزونه وردپرس: گام به گام به زبان ساده
php را خودتان ایجاد و ویرایش کنید یا از این گام عبور کنید و اجازه دهید وردپرس بعد از اجرا شدن اسکریپت نصب (گام ۵) خودش این فایل را برایتان ایجاد کند.
(اما هنوز لازم است که اطلاعات پایگاه داده‌تان را به وردپرس بدهید).
php تغییر دهید و آن را با استفاده از یک ویرایشگر متن باز کنید.
نام پایگاه داده‌ای که در گام ۲ برای وردپرس ساختید.
نام کاربری که برای وردپرس در گام ۲ ساختید.
رمز عبوری که برای وردپرس در گام ۲ انتخاب کردید.
اگر لازم است که فایل‌ها را در وب‌سرور آپلود کنید، از یک کلاینت FTP استفاده کنید.
اگر فایل‌ها از قبل در وب‌سرور قرار دارند و از دسترسی shell برای نصب وردپرس استفاده می‌کنید، تمام
اگر لازم است که فایل‌ها را در وب‌سرور آپلود کنید، نام پوشه‌ی wordpress را به نام دلخواه تغییر دهید و سپس با استفاده از یک کلاینت FTP پوشه‌ را به مکانی دلخواه درون پوشه‌ی root وب‌سایت منتقل کنید.
اگر فایل‌ها از قبل در وب‌سرور قرار دارند و از دسترسی shell برای نصب وردپرس استفاده می‌کنید، پوشه‌ی wordpressرا در پوشه‌ای دلخواه از پوشه‌ی root آپلود کنید و نام آن را به سلیقه‌ی خود تغییر دهید.
گام ۵: اسکریپت نصب را اجرا کنید
اگر وردپرس را در پوشه‌ی root نصب کرده‌اید، به آدرس https: //example.
اگر وردپرس را در پوشه‌ی root نصب کرده‌اید، به آدرس https: //example.
اگر وردپرس را در پوشه‌ای دیگر با نام blog نصب کرده‌اید، به آدرس https: //example.
اگر وردپرس را در پوشه‌ای دیگر با نام blog نصب کرده‌اید، به آدرس https: //example.
اگر وردپرس نتواند فایل wp-config.
وردپرس اطلاعات پایگاه داده را از شما می‌پرسد و آن را در یک فایل جدید wp-config.
اگر این مرحله به خوبی پیش رفت، می‌توانید به نصب ادامه دهید.
در غیر این صورت به گام ۳ برگردید و فایل wp-config.
دقت کنید که در این صفحه، عنوان سایت، نام کاربری موردنظر، رمزعبور انتخابی (دو بار) و آدرس ایمیل خود را وارد می‌کنید.
مطمئن شوید که در گام ۳ به کاربر وردپرس اجازه‌ی دسترسی به پایگاه داده را داده‌اید.
htaccess در پوشه‌ی نصب ایجاد و این دستور را در آن کپی کنید.
روش دیگر این است که دستور را در فایل‌های کانفیگ وب‌سرور قرار دهید.
php را دانلود کنید (اگر دسترسی shell ندارید) 
اگر مشکل این بود، از یک ویرایشگر متن دیگر استفاده کنید.
مطمئن شوید که وب‌سرورتان تمام ملزومات لازم برای اجرای وردپرس را داراست، PHP به خوبی نصب و کانفیگ شده است یا برای راهنمایی‌های بیشتر با سرویس‌دهنده‌ی هاست یا ادمین سیستم تماس بگیرید.
اگر از طریق Shell به MySQL دسترسی دارید، فرمان زیر را اجرا کنید: 
اگر موفق به این کار هم نشدید، می‌توانید با استفاده از کنترل پنل هاست رمز عبور کاربر پایگاه داده‌تان را تغییر دهید.
گاهی لازم است برای حل این مشکل، تمام مسیر وب‌سرور تا نصب MySQL را بررسی کرده و مطمئن شوید که همه‌چیز به خوبی کار می‌کند.
اگر از ویرایشگر متن آنلاین روی بلاگی استفاده کنید که در یک پوشه به غیر از root نصب شده است و یک تصویر آپلود شده را به داخل ویرایشگر درگ (Drag) کنید، شاید تصویر پس از چند ثانیه محو شود.</description></item><item><title>فرانش: برنده بهترین وب‌سایت آموزش آنلاین ایران برای پنجمین سال متوالی</title><link>https://ecosystem.ir/blog/105757/</link><description>فرانش برای پنجمین سال متوالی همچنان در صدر بهترین وب‌سایت‌های آموزشی کشور قرار گرفت.
با اعلام نتایج هئیت داوران دوازدهمین جشنواره وب و موبایل ایران، فرانش توانست برای پنجمین سال متوالی تندیس بهترین وب‌سایت آموزشی کشور را دریافت کند.
را با استانداردهای آموزشی خاص خود ارائه داده و در شاخص‌های موردنظر هئیت داوران که شامل کارکرد، محتوا، تجربه‌ی کلی، طراحی دیداری، ساختار و مسیر، تعامل و نوآوری است توانست همچنان جایگاه برتر خود را حفظ کند.
فرانش برنده تندیس بهترین وبسایت آموزش آنلاین ایران برای پنجمین سال متوالی</description></item><item><title>آموزش عرضه اولیه بورس</title><link>https://ecosystem.ir/blog/105115/</link><description>هرگاه شرکتی برای اولین بار سهام خود را در بورس عرضه کند عرضه اولیه می­گویند.
وقتی یک شرکت قرار است قسمتی از سهام خود را در بورس عرضه کند باید
معمولا تمام کسانی که در بازار بورس فعالیت دارند در عرضه اولیه شرکت می‌کنند و خواهان سهامی که تازه وارد بازار سرمایه می‌شود هستند و با آغوشی باز از آن استقبال می‌کنند.
به طور مثال اگر ارزش هر برگه سهام شرکتی که قرار است وارد بازار بورس شود ۴۰۰ تومان است
به طورکلی علت استقبال از عرضه اولیه ارزان بودن قیمت سهام آن شرکت است.
و این امر باعث نارضایتی فعالان بازار سرمایه شده بود، به همین خاطر روش بوک بیلدینگ (ثبت سفارش) را جایگزین روش قبلی کرده‌اند.
اما در روش بوک­ بیلدینگ ساعتی را سازمان بورس مشخص می­کند که خریداران درخواست خرید خود را در آن ساعت ارسال می‌کنند.
معمولا سازمان بورس تایم دو ساعتی را که از ساعت ۱۰ تا ۱۲ صبح می‌باشد برای خرید عرضه اولیه قرار می­دهند
گاهی ممکن است ساعت سفارش عرضه اولیه متفاوت باشد به همین خاطر شما می­توانید در روز عرضه اولیه در سایت بورس
قیمت فروش هر برگه سهام این شرکت در قسمت «دامنه قیمت در ثبت سفارش» نوشته شده است.
حتما برای خرید عرضه اولیه سقف قیمت پیشنهادی را درخواست کنید، چون مکانیزم معاملاتی بورس به صورت حراج است گران‌ترین قیمت را قیمت برتر می‌داند.
شما با ضرب کردن حداکثر تعداد خرید سهام در بالاترین قیمت پیشنهادی مبلغ مورد نیاز برای عرضه اولیه را می­توانید محاسبه کنید.
حالا در قسمت خرید، قیمت خرید (که حتما سقف قیمت عرضه اولیه است) را وارد کنید.
خرید کنید و تعداد برگه سهام را در قسمت حجم به صورت اتوماتیک وارد می­کند.
و پس از تمام شدن ساعت سفارش گیری برای شما عرضه اولیه خرید خواهد شد.
برخی از فعالان بازار سرمایه اقدام به خرید عرضه اولیه در روز دوم می‌کنند.
به طور ساده خرید در روز دوم عرضه اولیه تقریبا غیر ممکن است و سهام داران قصد فروش ندارند و تمام راه‌های گفته شده صرفا فرضیه هستند.
شخصی که قصد خرید عرضه اولیه در روز دوم و روز‌های بعدی را دارد باید راس ساعت ۸۰: ۳۰: ۰۰ درخواست خرید خود را ارسال کند.
هرچند بیشتر فعالان بازار در این ساعت درخواست خرید ارسال می‌کنند.
زمان فروش عرضه اولیه به دو علت برای سهام داران اهمیت بالایی دارد.
در واقع تا زمانی که خریداران سهام عرضه اولیه برای خرید سهام این چنین در صف قرار گرفته‌اند بهتر است به فکر فروش سهام نباشد.
پس در این زمان بهتر است اقدام به فروش عرضه اولیه کنیم.
به خاطر همین است که خیلی‌ها پس از بین رفتن صف خرید عرضه اولیه سریع اقدام به فروش می‌کنند.
به علت محدود بودن سقف خرید در عرضه اولیه برخی­ها برای خرید بیشتر سهام تصمیم می‌گردند از چند کارگزاری کد ­بورسی دریافت کنند
اما نکته قابل توجه این است عرضه اولیه با کد ملی اختصاص می­یابد و شخص فقط از یک کارگزاری می­تواند اقدام به خرید عرضه اولیه کند.
حتی ممکن است اگر از چند کارگزاری درخواست ارسال کند درخواست‌های او لغو شوند و در هیچ کارگزاری برای او خرید انجام نشود.
پس به هیچ عنوان از چند کارگزاری درخواست خرید یک عرضه اولیه را ثبت نکنید
آموختیم که شرکت‌ها برای به فروش رساندن سهام خود ابتدا باید صورت حساب‌های مالی را به سازمان بورس ارائه دهند و شرط پذیرفتن این سازمان هم سودآور بودن شرکت در چندسال اخیر خود بوده.
در این مقاله فراگرفتیم که افراد با کدملی برای ثبت نام کارگزاری‌ها اقدام میکنند پس اگر از چند کارگزاری برای خرید سهام استفاده کنید ممکن است تمام درخواست‌های شما لغو شود.</description></item><item><title>۲۰ افزونه برتر وردپرس در ۲۰۲۰</title><link>https://ecosystem.ir/blog/104799/</link><description>اینطور می‌توانید برای هر عملکرد یا قابلیتی که در سایتتان می‌خواهید، یک افزونه پیدا کنید.
تنها کافی است افزونه مناسب خود را پیدا و آن را نصب کنید.
وردپرس افزونه‌های رایگان و پولی دارد، اما بیشتر آنها اصطلاحا Freemium هستند.
یک افزونه Freemium، رایگان است، اما می‌توانید با پرداخت هزینه‌ای به نسخه‌ی پولی آپگرید و از قابلیت‌های پیشرفته‌ی آن استفاده کنید.
این لیست شامل بهترین افزونه‌های وردپرس برای SEO، امنیت (Security)، 
این افزونه‌ها به شما کمک می‌کنند سایتی خوب و امن داشته باشید.
بهترین افزونه‌های امنیت وردپرس (WordPress Security Plugin) 
. با استفاده از افزونه‌هایی که در این قسمت معرفی می‌کنیم، می‌توانید با هکرها، اسپم‌ها و هر تهدید دیگری مقابله کنید.
افزونه‌های امنیت بسیاری برای وردپرس داریم که می‌توانید از آنها برای امن کردن سایت خود استفاده کنید.
به‌علاوه، این افزونه دارای یک اپلیکیشن فایروال است که جلوی هک شدن سایت را می‌گیرد.
برای بالا بردن امنیت ورود کاربران، از Two Factor Authentication استفاده و قدرت رمزعبور تمام کاربران و ادمین‌های سایت را نیز بررسی می‌کند.
خلاصه اینکه، Wordfence Security یک افزونه بسیار خوب برای وردپرس است.
این افزونه، یک افزونه پیش‌فرض است که با نصب وردپرس قابل استفاده است.
این افزونه به شما یک تاریخچه از هر کامنت می‌دهد که با استفاده از آن می‌توانید بفهمید که چه کامنت‌هایی از نظر Akismet یا همان Moderator اسپم بوده‌اند.
این افزونه برای سایت‌ها و وبلاگ‌های شخصی رایگان است، اما برای استفاده از آن در سایت‌های تبلیغاتی باید یکی از طرح‌های ماهیانه را خریداری کنید.
Akismet یک افزونه مفید برای محافظت از امنیت سایت WP شماست.
آموزش ساخت یک سایت کامل با استفاده از وردپرس
آموزش ساخت یک سایت کامل با استفاده از وردپرس
برترین افزونه‌های سئو وردپرس (WordPress SEO Plugin) 
یک پلاگین‌ی وردپرس خوب می‌تواند در این زمینه همراه شما باشد.
برای افزایش ثبات، تعداد کاربران اینترنتی‌ای که از موتورهای جست‌وجو استفاده می‌کنند، گزارش می‌شود و این مسئله اهمیت بهینه‌سازی موتورهای جست‌وجو را پررنگ‌تر می‌کند.
Yoast SEO شما را در مسیر تولید محتوای بهتر همراهی و کمکتان می‌کند تا رتبه‌ی بهتری در موتورهای جست‌وجو داشته باشید.
با استفاده از این پلاگین می‌توانید محتوایی تولید کنید که هم برای کاربران مفید باشد و هم اصول سئو در آن به خوبی رعایت شده باشند.
سپس از شما می‌خواهد که متن و تصاویر را به خوبی تعیین کنید تا قابلیت استفاده و مشاهده‌ی بهتری را برای موتورهای جست‌وجو فراهم کنید.
به‌علاوه به شما کمک می‌کند که ظاهر صفحه/پست را با استفاده از یک Snippet Preview در موتورهای جست‌وجو بهتر کنید.
این پلاگین قابلیت Readability را نیز اضافه کرده است که با استفاده از آن می‌توانید محتوایی ساده و قابل فهم تولید کنید.
در پایان نیز، می‌توانید از پلاگین‌ی دیگری به نام All in One SEO Pack نیز استفاده کنید که تقریبا عمکلردی مشابه دارد.
آموزش کامل افزونه Yoast برای وردپرس
Google XML Sitemaps پلاگین‌ی مفید دیگری برای وردپرس است.
این پلاگین با استفاده از یک XML sitemap ویژه، به موتورهای جست‌وجویی مثل گوگل (Google)، بینگ (Bing)، یاهو (Yahoo) و … کمک می‌کند تا بهتر سایت شما را در فهرست جست‌وجو نمایش دهند.
این پلاگین به محض فعال شدن به صورت خودکار یک XML sitemap از سایت شما می‌سازد و ایندکس‌دهی به آن را ساده‌تر می‌کند.
بهترین افزونه‌های تحلیلی وردپرس (WordPress Analytics Plugin) 
یک پلاگین‌ی تحلیلی وردپرس، با استفاده از موارد آماری مختلف به شما کمک می‌کند تا رشد سایت خود را پیگیری کنید.
با استفاده از این پلاگین‌ها و برای بهتر کردن سایت خود می‌توانید مطالب زیادی درباره‌ی سایت خود بفهمید.
برای سایت وردپرسی خود استفاده کنید و ابزار Google Analytics از شرکت MonsterSights یکی از بهترین پلاگین‌های موجود در این زمینه است.
این پلاگین به شما کمک می‌کند تا آمارهای مختلف لحظه‌ای وب سایت خود را ببینید.
Google Adsense نیز در این پلاگین قرار دارد که به کمک آن می‌توانید عملکرد تبلیغاتی خود را نیز ملاحظه کنید.
بهترین افزونه‌های وردپرس برای بهبود سرعت و کارایی (WordPress Plugin for Optimization and Performance) 
خب، خبر خوب این است که می‌توانید تصاویر را فشرده کنید.
به‌علاوه، با این پلاگین می‌توانید تعداد زیادی داده را (تا ۵۰ فایل پیوست) با هم Smush کنید.
این WP Smush پلاگین‌ای بسیار مفید است و می‌توانید با استفاده از آن سایتی جذاب و سریع داشته باشید.
این کار زمان لود مجدد صفحه را به شدت کاهش می‌دهد و به بهبود سرعت کلی سایت کمک می‌کند.
در کنار این قابلیت‌ها به شما این امکان را می‌دهد که برای کاهش زمان لود صفحه، از سرویس‌های CDN در سایت استفاده کنید.
WP-Optimize ابزاری بسیار خوب برای پاک کردن پایگاه داده‌ی وردپرس و بهینه‌سازی آن است.
با این پلاگین می‌توانید برای داشتن کارایی بهتر، پایگاه داده‌ای بهینه داشته باشید.
اگر سایت شما تصاویر زیادی در خود داشته باشد، ممکن است لود شدنش ساعت‌ها طول بکشد.
اگر سایت شما دارای تصاویر زیادی است، می‌توانید برای لود سریع‌تر آن از Lazy Loading (لود تنبل) استفاده کنید.
برای افزودن قابلیت Lazy Loading تنها کافی است از یک پلاگین مثل BJ Lazy Load استفاده کنید.
به‌علاوه، این پلاگین برای Text Widgetها و ویدئوهایی از YouTube و Vimeo، که در سایت قرار می‌دهید، نیز مفید است.
BJ Lazy Load ابزاری مفید برای بهتر کردن سرعت و SEO سایت است.
بهترین افزونه‌های بک ‌آپ گیری وردپرس (WordPress Backup Plugin) 
خوب است بدایند که افزونه‌های بک آپ گیری برای وردپرس موجودند.
با VaultPress می‌توانید به صورت مداوم از وب سایت خود بک آپ بگیرید و با تنها یک کلیک آن را ذخیره کنید.
این افزونه قابلیت کشف اسپم نیز دارد و از Akismet کمک می‌گیرد.
با ترکیب قابلیت‌های این دو افزونه، می‌توانید راه‌کارهایی عالی برای حفاظت از سایت خود داشته باشید.
افزونه‌های ریدایرکت وردپرس (WordPress Redirection Plugin) 
می‌توانید تمام URLها را ریدایرکت کنید و برای تمامی URLهای ریدایرکت شده نیز Full Log داشته باشید.
بهترین افزونه‌های ساخت فرم وردپرس (WordPress Form Builder Plugin) 
در این موارد افزونه‌های ساخت فرم وردپرس بسیار مفیدند.
خب، باید بگوییم که برای ساخت فرم، می‌توانید از افزونه Everest Forms استفاده کنید.
Everest Forms یک افزونه مدرن برای طراحی صفحه‌ی «تماس با ما» است که واسط Drag-and-Drop دارد.
این افزونه دارای مجموعه‌ای از General Fieldها و Advanced Fieldها است که می‌توانید با چند Drag-and-Drop ساده، از آنها برای ساخت فرم استفاده کنید.
با این افزونه می‌توانید به صورت نامحدود فرم‌های وردپرس بسازید و از آنها در قالب‌های طراحی مختلف استفاده کنید.
این افزونه رایگان است و می‌توانید از مجموعه‌ی قابلیت‌های آن برای ساخت فرم‌هایی کامل استفاده کنید.
در مجموع، یک افزونه بی‌نظیر برای طراحی صفحه‌ی «تماس با ما» وردپرسی است.
بهترین افزونه‌های عضویت کاربر وردپرس (WordPress User Registration Plugin) 
با عضویت کاربر وردپرس می‌توانید فرم‌هایی برای ورود کاربر (Login)، ثبت‌نام (Signup)، پرداخت و ….
برای ساخت فرم عضویت می‌توانید از یک افزونه استفاده کنید.
قابلیت «Register» به صورت پیش‌فرض در نصب وردپرس موجود است و می‌توانید با طی کردن مراحل زیر در داشبورد WP آن را فعال کنید.
همان‌طور که در شکل بالا می‌بینید، تنها کافی است گزینه‌ی «Anyone can register» را انتخاب کنید تا قابلیت عضویت یا ثبت‌نام وردپرس فعال شود.
User Registration یک افزونه Drag-and-Drop رایگان برای وردپرس است.
این افزونه قابلیت‌های جذاب بسیاری دارد که با استفاده از آنها به سادگی می‌توانید تنها در چند دقیقه یک فرم عضویت کاربری زیبا بسازید.
بهترین افزونه‌های ایمیل و خبرنامه‌ی ایمیلی (نیوزلتر) وردپرس (WordPress Email and Newsletter Plugin) 
خوشبختانه پلاگین‌های وردپرسی بسیاری برای کمک به شما در این زمینه وجود دارند.
MailChimp یکی از معروف‌ترین خدمات بازاریابی ایمیلی است که به شما در مدیریت حجم زیادی از مشترکین، ارسال ایمیل و پیگیری نتایج کمک می‌کند.
بی‌شک این پلاگین یکی از بهترین ابزارهای بازاریابی برای وبمسترها (
با استفاده از پلاگین‌ی MailChimp وردپرس در سایتتان، به راحتی می‌توانید از قابلیت‌های آن استفاده کنید.
MailChimp رایگان است و به شما این امکان را می‌دهد که فرم‌های اشتراک (Subscription) زیبا به بلاگ وردپرسی خود اضافه کنید.
اگر هم قصد استفاده از آن را برای اهداف تبلیغاتی دارید، می‌توانید نسخه‌ی پولی آن را خریداری کنید.
با کمک این پلاگین می‌توانید فرم‌های Opt-in زیبا بسازید تا مشترکین بیشتری به لیست ایمیل‌تان اضافه کنید.
به‌علاوه، می‌توانید از این پلاگین در فرم‌های دیگر سایت مثل فرم «تماس با ما»، کامنت یا پرداخت استفاده کنید.
بهترین افزونه‌های تجارت الکترونیک وردپرس (WordPress eCommerce Plugin) 
اگر می‌خواهید چیزی برای فروش در سایت خود داشته باشید، افزونه WooCommerce بهترین گزینه است.
با کمک یک فروشگاه آنلاین و قابلیت‌های بسیار زیاد این افزونه می‌توانید رشد خوبی داشته باشید.
می‌توانید در فروشگاه آنلاین خود گزینه‌های متعددی برای خریدارانتان فراهم کنید.
تنها کافی است این افزونه را دانلود و نصب و Setup Wizard را اجرا کنید.
بهترین افزونه‌های شبکه‌های اجتماعی وردپرس (WordPress Social Media Plugin) 
برای این کار تنها به یک پلاگین نیاز دارید.
برای سرعت بخشیدن به بازاریابی شبکه‌های اجتماعی، می‌توانید از پلاگین‌ای مثل Social Icons استفاده کنید.
Social Icons یک پلاگین‌ی وردپرس رایگان است که با استفاده از آن می‌توانید به سادگی آیکون‌های شبکه‌های اجتماعی معروف را به وب سایت خود اضافه کنید.
افزونه‌های معروف و بسیار مفید وردپرس (Popular WordPress Plugin) 
افزونه وردپرس Jetpack امکاناتی را برای مدیریت امنیت، سرعت و ظاهر وب سایت، رشد ترافیک، بهینه‌سازی تصاویر و … برایتان فراهم می‌کند.
Nivo Slider یکی از بهترین و معروف‌ترین پلاگین‌هایی است که می‌توانید پیدا کنید.
با استفاده از این پلاگین به سادگی می‌توانید Post Slider، Image Carousel یا حتی Slideshow به سایت خود اضافه کنید.
این پلاگین به صورت خودکار برای دریافت قابلیت‌های جدید آپدیت می‌شود و خدمات پشتیبانی آن مشابه پلاگین‌های پولی است.
آنها دارای اطلاعات اضافه‌ای درباره‌ی پست/صفحه هستند که ممکن است برای کاربر جذاب باشند.
org Rich Snippets برای ایجاد ریچ اسنیپت‌ها در وردپرس استفاده کنید.
فقط کافی است که پلاگین‌ی Broken Link Checker را نصب و با خیال آسوده استراحت کنید، چون این پلاگین تمام کارها را به صورت خودکار انجام می‌دهد.
با استفاده از این افزونه می‌توانید کامنت‌ها را در کل سایت یا پست‌هایی خاص غیرفعال کنید.
همان طور که قبلا هم به آن اشاره کردیم، این افزونه‌ها دارای قابلیت‌های اولیه هستند، SEO سایت را بالا می‌برند، سرعت را بهینه، امنیت سایت را قوی و به بازاریابی بهتر محتوا و محصولات کمک می‌کنند.
در صورتی که مطلب افزونه‌های ضروری وردپرس برای شما مفید بوده است: </description></item><item><title>گیت چیست و Git چه کاربردی دارد؟</title><link>https://ecosystem.ir/blog/104581/</link><description>آموزش گیت یا Git
با داشتن دانش مناسب، به راحتی می‌توانید ماهرانه از گیت استفاده کنید.
این آموزش گیت چه فرقی با آموزش‌های موجود دیگر دارد؟ 
«آموزش‌های گیت» بسیاری هستند که می‌توانید از آنها استفاده کنید، اما بیشتر آنها فقط کپی/پیست (Copy/Paste) کردن برخی دستورات را به شما یاد می‌دهند تا بتوانید کارتان را پیش ببرید.
اما اگر می‌خواهید واقعا بفهمید گیت چگونه کار می‌کند و چه کمکی می‌تواند به شما بکند، باید کمی بیشتر درباره‌ی آن بخوانید.
اما در این آموزش قصد داریم به زبانی بسیار ساده شما را با دستورات و عباراتی آشنا کنیم که بسیار با آنها سروکار خواهید داشت.
اولین چیزی که باید بدانید این است که گیت (Git) با گیت ‌هاب (GitHub) فرق دارد.
است که با آن می‌توانید تغییرات اعمال شده در فایل‌ها را ساده‌تر پیگیری کنید.
گیت برای هماهنگ کردن وظایف میان اشخاص مختلفی که، روی یک پروژه کار می‌کنند، مفید است.
می‌توانید از گیت برای نوشتن یک مقاله استفاده کنید، یا وقتی که می‌خواهید تغییرات اعمال شده را، در یک فایل هنری یا طراحی، پیگیری کنید.
در پروژه‌های پیچیده اشخاص بسیاری به صورت همزمان فایل‌های پروژه را تغییر می‌دهند و این مسئله می‌تواند گیج‌کننده باشد.
اگر اساس گیت را درک کنید، می‌توانید به سادگی علت وقوع این Conflictها را بفهمید و آنها را برطرف کنید.
گیت به صورت پیش‌فرض روی بسیاری از سیستم‌ها نصب شده است.
می‌توانید واسط خط فرمان ((Command-Line Interface (CLI) گیت را از این لینک دانلود کنید.
اگر دوست دارید از واسط کاربری گرافیکی زیباتری استفاده کنید، نرم‌افزار GitHub Desktop را امتحان کنید (برای ویندوز و مک).
در پایان نیز یک مثال کاربردی را می‌بینید که شامل لیستی از دستورات است و می‌توانید یکجا همه‌شان را امتحان کنید.
می‌توانید توضیحاتی بیشتر درباره‌ی آنها را در Git Glossary یا Reference Guide پیدا کنید.
با این دستور یک پوشه‌ی.
حالا می‌توانید فایل‌های موجود در پوشه‌ی اصلی را تغییر دهید و این تغییرات را پیگیری کنید.
شما فایل‌ها را در Working Directory تغییر می‌دهید و در این پوشه کار می‌کنید.
git Repository از اینترنت (گیت هاب) دانلود و در کامپیوتر شما ذخیره می‌شود و آخرین
تمام فایل‌ها به صورت پیش‌فرض در پوشه‌ای هم‌نام با Repo ذخیره می‌شوند (مثلا در مثال بالا پوشه‌ای با نام emoji-commit-messages).
✨ URLای که در این دستور مشخص می‌کنید، 
در ادامه‌ی این آموزش گیت از این اصطلاح استفاده خواهیم کرد.
در ادامه‌ی این آموزش گیت، از نام Branchای که انتخاب می‌کنید، در دستورات دیگر استفاده می‌کنیم.
✨ این درواقع عملکرد اصلی گیت است: ذخیره‌ی چک پوینت‌ها (Revisionها) و اشتراک گذاری آنها با بقیه‌ی اشخاص گروه.
git دست نخورده باقی بماند، می‌توانید به آن رجوع کنید.
Branch کردن یکی از موضوعات پیچیده و بزرگ گیت است.
</description></item><item><title>داستان سرایی داده محور برند : ۶ گام تا روایت یک داستان برند معتبر</title><link>https://ecosystem.ir/blog/104552/</link><description>Storytelling یا داستان سرایی بهترین راه برای به یاد سپردن نام افراد یا برند است، این مقاله کمک میکند تا محتوایی قوی و به یادموندنی ایجاد کنید.
تصور می‌کنید اگر تمرکز اصلی استراتژی محتوایی شما روی داده‌ها و اطلاعات باشد، داستان برندتان تا چه اندازه گیرایی خواهد داشت؟ 
سازمان‌ها و شرکت‌ها می‌توانند از این داده‌های در دسترس برای خلق داستان‌هایی معتبر که از بینش، اهمیت و الهام‌بخشی برخوردارند، بهره بگیرند.
پس باید دانست که یک برند چگونه می‌تواند داستان‌هایی داده‌محور خلق کند؟ در ادامه یک فرآیند شش مرحله‌ای برای داستان سرایی برندها آورده شده و به شما کمک می‌کند دست به کار شوید: 
پرسش‌هایی از قبیل این‌که بزرگترین نارضایتی آنان یا چالش‌های کسب‌وکارشان چیست؟ اگر پرسش‌هایی که مطرح می‌کنید، دارای وجوهی قابل اندازه‌گیری باشند احتمال این‌که بتوان از آن‌ها برای خلق یک داستان داده‌محور خوب بهره برد، بسیار زیاد است.
برای مثال، بیایید تصور کنیم که شما در یک مرکز مراقبت‌های بهداشتی و درمانی هستید و می‌دانید که مخاطب شما به دنبال این است که اطلاعات درمانی دقیق و قابل اعتمادی را به صورت اینترنتی پیدا کند.
می‌توانید داستانی درباره‌ی نحوه‌ی استفاده‌ی بیماران از سوابق اینترنتی مراقبت‌های بهداشتی در شهر و میزان دسترسی آنان به این اطلاعات روایت کنید.
به محض این‌که پرسشی را تعریف کردید تا محتوای خود را بر مبنای آن خلق نمایید، لازم است که سوابق اطلاعاتی موجودی را که می‌توانید برای پاسخ دادن به آن پرسش مورد استفاده قرار دهید، تعیین نمایید.
به این منظور، باید فرآیندی را در نظر بگیرید که برای گردآوری، فیلتر کردن و تجسم بخشیدن به داده‌ها استفاده می‌کنید تا بتوانید ینشی عمیق‌تر ایجاد نمایید و به این ترتیب داستان‌ خود را بهتر منتقل کنید.
با این‌حال اگر مشکل مورد بحث دارای اجزای قابل سنجشی باشد، احتمال زیادی وجود دارد که بتوان اطلاعات کافی (از طریق اینترنت) برای رسیدن به یک پاسخ قاطعانه پیدا کرد.
یافتن داده‌های کافی برای تایید پاسخی که ارائه می‌دهید از اهمیت زیادی برخوردار است چرا که نمی‌توان داستانی داده‌محور روایت کرد که قابل اجرا نیست.
مثلا درباره‌ی مثال مراقبت‌های بهداشتی که در بالا ذکر شد، شما باید داده‌هایی را بیابید که بیانگر تعداد بیمارانی باشد که به صورت آنلاین درخواست سوابق بهداشتی و درمانی‌شان را داشته‌اند؛ یا تعداد پزشکان و تسهیلاتی که فناوری لازم جهت رسیدگی به چنین درخواستی را دارند یا تعداد افرادی که واقعا به چنین درخواستی رسیدگی کرده‌اند.
می‌توانید از منابع زیر برای جستجوی این داده‌ها استفاده کنید: 
هدف از به کارگیری داده‌ها و اطلاعات، افزایش اعتبار محتوای شما و اعتباربخشی به داستان سرایی برندتان است.
بنابراین، هنگامی‌که داده‌ها و اطلاعات کافی را پیدا کردید و مشخص کردید که کدام اطلاعات به پرسش آغازین شما پاسخ خواهد داد و موجب تحکیم داستانتان خواهد شد؛ حالا وقت آن است که به نحوه‌ی بیان آن‌ها به شکل بصری بیاندیشید.
از چند نمونه‌ی بصری مختلف استفاده کنید و ببینید کدام یک برای مخاطبانتان جذاب‌تر است، و سپس کار را با همان ادامه دهید.
استفاده از داده و اطلاعات به معنای ایجاد ارزش افزوده برای محتوایتان است.
آیا داستان از دید آن‌ها منطقی است؟ آیا جذاب است یا باعث سردرگمی‌شان می‌شود؟ این نظرات و بازخوردهای سازنده‌ها را دریافت کنید و برای کنار زدن لایه‌های بی‌ارزش داستان از آن‌ها بهره بگیرید.
شاید لازم باشد که داده‌ها و یا نمودهای بصری را ساده‌سازی کنید یا لغات متفاوتی برای روایت داستانتان بیابید (یا حتی شاید باید همه‌ی این‌کارها را انجام دهید!).</description></item><item><title>بهترین اندیکاتورها در تحلیل تکنیکال و بورس</title><link>https://ecosystem.ir/blog/104284/</link><description>تحلیل تکنیکال یک روش نموداری تحلیل بازار و تحلیل قیمت سهام است.
در تحلیل تکنیکال قیمت سهام، وظیفه اصلی بر عهده اندیکاتورها است.
شاخص حرکت جهت‌دار یک نمونه از اندیکاتورهایی است که روند صعودی و نزولی را مشخص می‌کند.
مووینگ اوریج یک اندیکاتور دنبال کننده روند است به این منظور که بر روی چارت تکنیکال سهم پیاده می‌شوند.
اندیکاتور میانگین متحرک هم گفته می‌شود.
همانطور که در تصویر مشخص است وقتی موینگ‌ها به سمت بالا حرکت می‌کنند، نشان دهنده رشد سهام است، پس سهام شپنا (پالاشگاه نفت اصفهان) به طور میانگین روند صعودی داشته است چون حالت اندیکاتور‌ها به سمت بالا است.
باند بولینگر، جزو اندیکاتورهای قدرتمند تکنیکال می‌باشد که توسط جان بولینگر به وجود آمده است.
اندیکاتور باند بولینگر بر اساس میانگین متحرک می‌باشد که روند میان مدت سهام را
این اندیکاتور به عنوان باند میانه روند شناخته شده است.
اکثر نمودارهای معاملاتی از میانیگن متحرک با دوره زمانی ۲۰ برای تنظیمات پیش فرض باند بولینگر استفاده می‌کنند.
متحرک، میانگینی از قیمت سهم در طول یک بازه زمانی (که معمولا ۲۰ روزه می‌باشد) است.
منظور از متحرک بودن میانگین این است که
باند بالایی: با استفاده از ۲ انحراف معیاری تخمین زده می‌شود که از میانگین متحرک ساده بیشتر هستند.
باند پایینی: با استفاده از ۲ انحراف معیاری تخمین زده می‌شود که از میانگین متحرک ساده
باریک می‌شود به این معنا می‌باشد که نوسانات در قیمت سهم در حال کاهش یافتن هستند، همچنین وقتی که
این موضوع به این صورت تفسیر می‌شود که نوسانات در قیمت سهم در حال افزایش پیدا کردن می‌باشد.
در همین قسمت دانستن این موضوع می‌تواند جالب باشد که وقتی باند بولینگر فشرده می‌شود از جهت دیگری (که منظور خطوط روند که شامل میانگین متحرک و خطوط بالا و پایین آن است) 
نوع سیگنال محسوب می‌شود مبنی بر اینکه روند سهم در حال تغییر کردن می‌باشد.
به صورت ساده می‌توان گفت زمانی که قیمت پایانی سهم، به سمت باند بالایی حرکت کند به این معنی است که بازار در وضعیت اشباع خرید قرار دارد
و امکان تغییر روند غریب الوقوع می‌باشد و هرگاه که قیمت پایانی، به سمت باند پایینی حرکت کنند اشباع فروش در بازار را نمایان می‌کند.
در این قسمت این موضوع که تحلیلگران تغییر نوسانات در باند بولینگر به موقع در نظر داشته باشند بسیار ضروری است.
این ابزار برای معامله گرانی که به دنبال فرصت‌های مناسب در رنج بازار، در نقاط اشباع خرید و اشباع فروش هستند هم کمک بسیاری می‌کند.
اشباع خرید (Bought Over) و اشباع فروش (Sold Over) تشکیل می‌شوند و زمانی که قیمت یا اندیکاتور از این ناحیه‌ها خروج کرد بعنوان
اندیکاتور RSI یکی دیگر از اندیکاتورهای پرکاربرد در تحلیل تکنیکال می‌باشد.
این اندیکاتور کمک می‌کند که محدوده‌های کلیدی اشباع خرید و اشباع فروش را به سادگی تشخیص دهیم و از آن استفاده کنیم.
زمانی که خط ار اس ای به زیر ۳۰ رفت باید منتظر باشیم که از آن قسمت خارج شود، حالا زمانی که خط ار اس ای ۳۰ را به سمت بالا قطع کرد سیگنال خرید صادر کرده است
سپس در آن قسمت ما وارد معامله میشویم و خرید خود را انجام میدهیم، اما نکته این است چه زمانی بفروشیم!
اما این فقط گوشه‌ای از قدرت اندیکاتور ار اس ای است.
همانطور که در این شکل دیده می‌شود می‌توانیم یک خط روند صعودی را برای
در این مقاله اندیکاتورها در تحلیل تکنیکال به هر آنچه که از اسیلاتور استوکاستیک نیاز است بیاموزید، می‌پردازیم.
عموما بازه‌ای که این اندیکاتور در آن نوسان می‌کند ۲۰ تا ۸۰ است.
(البته بازه اصلی که در آن نوسان دارد بین ۰ تا ۱۰۰ است اما
که باید در نقطه اشباع خرید (خریدافراطی) مد نظر داشت این است که احتمال کاهش قیمت و شروع روند نزولی در سهم وجود دارد.
همچنین در زمانی که در نقطه اشباع فروش (فروش افراطی) قرار داریم منتظر افزایش قیمت و تغییر روند سهم به حالت صعودی
نیست، بلکه این محاسبات نشان دهنده دقت به کارگرفته شده در اندیکاتور می‌باشد.
استوکاستیک به شما این امکان را می‌دهد که قیمت در چه زمانی موقعیت اشباع خرید و اشباع فروش را به خودش می‌گیرد و باید زمانی که در نقطه اشباع خرید قرار دارد، اقدام به فروش سهم و هنگامی که در نقطه اشباع فروش هست، اقدام به خرید سهم نمایید.
نکته‌ای که باید در این قسمت مد نظر بگیرد این است که بعد از نقطه اشباع خرید باید منتظر تغییر روند به سمت
برای تسلط بیشتر به مطالب مقاله آموزش اندیکاتورها در تحلیل تکنیکال: 
این اندیکاتور امکان اینکه نقاط حمایتی و مقاومتی در روند سهم را شناسایی کنیم مورد استفاده قرار می‌گیرد و در همین محدوده است که به شناسایی نقاط
زمانی که تایم فریم کوتاه مدت را انتخاب می‌کنیم، نوسانات زیادی را در نقاط اشباع (خرید و فروش) مشاهده می‌کنیم.
آنچه باعث مفید بودن این اندیکاتور می‌شود ترکیب برخی از اصول اسیلاتورها با تفسیر عبور یک میانگین متحرک دوگانه می‌باشد.
در اندیکاتور مکدی کلاسیک دو خط دیده می‌شود، در صورتی که در حقیقت در محاسبات از ۳ خط استفاده شده است.
دوره‌های زمانی این دو خط میانگین متحرک به صورت رایج ۱۲ و ۲۶ می‌باشند که البته در صورت نیاز توسط تحلیل گران قابل تغییر است.
خط کندتر که خط اخطار نامیده می‌شود معمولا یک میانگین متحرک نمایی ۹ دوره‌ای از خط MACD است.
زمانی که خطوط اندیکاتور MACD در تراز مثبت باشند و خط سریع‌تر در بالای خط کند باشد، هیستوگرام بالای خط صفر قرار می‌گیرد.
البته باید توجه داشته باشید که رنگ‌های دو خط MACD و اخطار و همچنین هیستوگرام، در نرم افزارهای مختلف تحلیل تکنیکال متفاوت و حتی توسط کاربران نیز قابل تغییر می‌باشند.
ارزش واقعی هیستوگرام زمانی مشخص می‌شود که فاصله بین دو خط MACD و اخطار در حال بازتر یا بسته‌تر شدن است.
قرار می‌گیرد اما شروع به کاهش به سمت پایین می‌کند، روند صعودی در حال تضعیف است.
برعکس زمانی که هیستوگرام در زیر خط صفر قرار دارد و شروع به بالا رفتن به سمت خط صفر می‌کند، روند نزولی در حال از دست دادن پتانسیل‌اش می‌باشد.
سیگنال خرید زمانی صادر می‌شود که خط MACD که سریعتر وحساس‌تر است از خط اخطار دهنده عبور کند و به بالای آن برود و سیگنال فروش وقتی صادر می‌شود که خط MACD به زیر خط اخطار دهنده برود.
در مستطیل بعدی که با رنگ قرمز مشخص شده است خط آبی رنگ خط قرمز را به سمت پایین قطع کرده و میله‌های هیستوگرام وارد فاز منفی شده‌اند و این نشان از سیگنال فروش می‌باشد.
هرچقدر میله‌های هیستوگرام درجه بالاتر و بزرگتری داشته باشد نشان از خریدهای هیجانی است در نتیجه باید مراقب خریدهایمان باشیم و همچنین هر چقدر نمودار macd در درجه پایین‌تر از صفر و منفی قرار داشته باشد نشان از فروش هیجانی و باید در این زمان‌ها از فروش‌های هیجانی اجتناب کرد زیرا ممکن است نمودار قیمت تغییر روند دهد.
همان طور که در تصویر بالا می‌بینید مکدی به صورت عالی سیگنال خرید و فروش داده است، و بهترین نقطه‌ها برای ورود و خروج مشخص کرده است
با تجزیه و تحلیل حجم معاملات (volume) امکان اینکه قوی بودن یا ضعیف بودن روند توسط معامله‌گر تخمین زده بشود، وجود دارد.
اگر این دو فاکتور مهم بالا رعایت شده باشد می‌توان گفت که ورود پول به سهم اتفاق افتاده است و خریداران وارد سهم شده‌اند که گزینه بسیار مثبتی است.
در این روز خاص مشاهده میکنید که سهام شپنا حجم معاملات زیادی را داشته است که این حجم به صورت میله در اندیکاتور ولوم
کاملا مشخص است اما گفتیم باید مثبت بودن سهم نیز چک شود که آیا سهام شرکت مثبت معامله می‌شود یا منفی چون در تشخیص ورود و خروج سهم موثر است.
در تاریخچه معاملات سهم شپنا نشان میدهد روزی که سهام حجم بسیار بالای خورده است علاوه بر مثبت بودن در بالا‌ترین حد مجاز روزانه (
در روزهای آخر صعود سهام والبر می‌بینید که حجم معاملات سهام به شدت بالا رفته است که این یکی از دو اخطار خروج پول از سهم می‌باشد.
اما جالب است بدانید پس از مشاهده خروج پول در سهام دالبر این شرکت به سرعت ریزش کرد و به طور تقریبی ۷۰ درصد سهام شرکت افت داشت.
در صورتی که مطلب اندیکاتورها در تحلیل تکنیکال برای شما مفید بوده است: </description></item></channel></rss>