هر آنچه به شما نمی‌آموزند...

آردوینو چیست؟

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

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

ادامه مطلب...
۲۰ تیر ۹۵ ، ۰۱:۴۸ ۳ نظر موافقین ۲ مخالفین ۰

رمزگشایی پکت‌های WPA PSK

Pre-Shared Key که بطور اختصار PSK خوانده میشود یکی از دو متد موجود برای اعتبارسنجی شبکه‌های WPA و WPA2 است. این متد با استفاده از یک رمز عبور که میتواند تا 133 کاراکتر انگلیسی طول داشته باشد، برای هر کلاینت، کلید رمزنگاری یکتایی را تولید میکند.

مدتی بود که میخواستم در مورد امنیت شبکه‌های وایرلس مطلب بنویسیم که بالاخره امروز همت کردم و بعد از پیاده‌سازی سرویس آنلاین WPA PSK ساز روی آیس کت، شروع به نوشتن این مطلب کردم.

در این مطلب به آموزش رمزگشایی پکت‌های WPA/WPA2 با استفاده از ساخت PSK مربوط به اون شبکه میپردازیم. این موضوع بسیار ساده بوده و به شما در درک مقاله‌های آینده ما در مورد امنیت شبکه‌های وایرلس کمک خواهد کرد؛ پس در بدون وقت تلف کردن به مراحل انجام اینکار میپردازیم.

ادامه مطلب...
۲۷ خرداد ۹۵ ، ۱۶:۴۰ ۴ نظر موافقین ۲ مخالفین ۰

تفاوت میکروپروسسور و میکروکنترلر

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

اگر راه را بدانید، برای شما به عنوان یک برنامه نویس، تحقق این تصورات بسیار ساده خواهد بود.

همونطور که قبلاً گفته بودم، قصد داریم در آیس کت علاوه بر مسائل کامپیوتری، به مسائل الکترونیکی نیز بپردازیم و برای اولین پست قصد داریم شما را با میکروکنترلرها و میکروپروسسورها آشنا کنیم.

ادامه مطلب...
۱۳ خرداد ۹۵ ، ۰۱:۰۰ ۳ نظر موافقین ۲ مخالفین ۰

چگونه مجریان قانون قادر به ردیابی گوشی ما هستند؟

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

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

ادامه مطلب...
۰۳ خرداد ۹۵ ، ۱۵:۰۵ ۱ نظر موافقین ۳ مخالفین ۰

اشتباه رایج در مقداردهی اولیه توسط کانستراکتور

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

امروز میخواهیم یکی از رایج‌ترین اشتباهات برنامه‌نویسان ++C (بخصوص برنامه‌نویسانی که از زبان دیگری به این زبان روی آورده‌اند) را به هنگام ایجاد کانستراکتور یک کلاس تشریح کنیم. فرض کنید کلاسی به نام شخص (Person) داریم که Member Variableهای آن عبارتند از: نام(firstname)، نام خانوادگی (lastname) و سن (age).

این کلاس را به صورت زیر مینویسیم:

class Person
{
private:
std::string firstname;
std::string lastname;
int age;
public:
Person (std::string pFirstname, std::string pLastname, int pAge)
{
firstname = pFirstname;
lastname = pLastname;
age = pAge;
}
};

شما کد را کامپیایل و اجرا میکنید، هیچ خطا یا هشداری داده نمیشود و کد هم به درستی و بدون کوچکترین مشکلی اجرا میشود. اما اگر این نمونه کد را به یک برنامه‌نویس خبره در زبان ++C نشان دهید به شما خواهد گفت این کد درست نیست.

اون موقع هست که از خودتون میپرسید وقتی کد داره به درستی اجرا میشه مشکل من کجاست؟

ادامه مطلب...
۲۴ ارديبهشت ۹۵ ، ۲۳:۴۴ ۰ نظر موافقین ۲ مخالفین ۰

محاسبه ظرفیت واقعی پاوربانک

شاید برای شما پیش اومده باشه که پاوربانک مثلاً 10.000 میلی آمپری خریدید و انتظار دارید باتری گوشی 1500 میلی آمپری شما رو رو حداقل 6 بار بطور کامل از صفر تا 100 پر کنه، اما چیزی که در عمل مشاهده میکنید رقمی پایین تر از حد انتظار شماست.

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

ادامه مطلب...
۱۶ ارديبهشت ۹۵ ، ۱۰:۰۰ ۳۳ نظر موافقین ۲ مخالفین ۰

چرا کتابخانه استاندارد iostream در ++C بدرستی خطاها را نمایش نمیدهد؟

یکی از مواردی که برنامه‌نویسان ++C بخصوص برنامه‌نویسانی که تازه به این زبان روی آورده‌اند با آن مواجه هستند این است که به هنگام کار کردن با کتابخانه iostream نمیتوانند به درستی خطاها (Exception) را پوشش دهند. بطور مثال در کد زیر قصد داریم فایلی که وجود ندارد را باز کنیم و با استفاده از بلاک Try...Catch خطاهای احتمالی را پوشش دهیم:

#include <iostream>
#include <fstream>
using namespace std;

int main() {
ifstream file;
try {
file.open("IceCat.ir");
while (!file.eof()) {
cout << file.get();
}
}
catch (...) {
cout << "Error openning file..." << endl;
return 1;
}
file.close();
return 0;
}

اما با اجرای کد بالا با اینکه از بلاک Try...Catch برای هندل کردن Exceptionهای احتمالی استفاده کرده‌ایم،  مشاهده میکنیم که در صورت بوجود آمدن خطا (مانند وجود نداشتن فایل) بطور پی در پی عدد 1- در کنسول چاپ خواهد شد.

در این پست به علت بروز این امر و نحوه حل آن خواهیم پرداخت.

ادامه مطلب...
۰۶ ارديبهشت ۹۵ ، ۲۳:۴۰ ۲ نظر موافقین ۲ مخالفین ۰

وی‌بی دات نت یا سی شارپ؟

یکی از مواردی که بنده خودم زیاد با اون مواجه بودم اینه که بسیاری از برنامه‌نویسان ایرانی، زبان وی بی دات را زبانی کم قدرت میداند. اگر شما نیز جز آن دسته از دوستان هستید باید به صراحت به شما بگویم که سخت در اشتباه هستید! چراکه هر آنچه که در #C قابل پیاده‌سازی باشد در VB.Net هم قابل پیاده‌سازیست و قدرت این دو زبان به دلیل استفاده از یک Framework مشترک عملاً تفاوتی ندارد.

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

ادامه مطلب...
۰۱ ارديبهشت ۹۵ ، ۰۱:۰۰ ۴ نظر موافقین ۴ مخالفین ۰

چرا ظرفیت هارد دیسک‌ها کمتر از ظرفیت ادعا شده آنهاست؟

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

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

همه اینها سوالاتی است که در این مقاله اختصاصی به آنها پاسخ میدهیم، پس در ادامه مطلب با ما همراه باشید.

ادامه مطلب...
۲۷ فروردين ۹۵ ، ۱۴:۰۰ ۱ نظر موافقین ۳ مخالفین ۰

بخش‌های جدید در سایت

ما در آیس کت همیشه در تلاشیم تا بهترین‌ها را برای مخاطبان خود فراهم کنیم. به همین جهت تصمیم گرفته‌ایم تا 3 بخش جدید را به زودی در سایت اضافه کنیم. این بخش‌ها عبارتند از:

  • آموزش برنامه‌نویسی به زبان اسمبلی
  • آموزش شل کد نویسی در لینوکس
  • الکترونیک، میکروکنترلر و آردوئینو

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

۲۷ فروردين ۹۵ ، ۰۳:۴۴ ۰ نظر موافقین ۰ مخالفین ۰