خانه / ۱۳۹۷ / مهر

بایگانی ماهانه: مهر ۱۳۹۷

درک ترکیب در ریاضی با استفاده از مفهوم ضرب — به زبان ساده

ضرب یک عمل ریاضی ساده و جالب محسوب می‌شود. بسته به این که در چه زمینه‌ای از این عمل استفاده می‌کنید، معنی این عمل ریاضی می‌تواند متفاوت باشد: افزایش مقیاس یا بزرگ‌تر کردن یک عدد چرخش یک بردار بدون نیاز به سینوس یا کسینوس در این نوشته یکی دیگر از کارکردهای عمل ضرب یعنی ترکیب فهرست‌بندی‌ها را بررسی می‌کنیم. این تغییر زاویه نگاه به عمل ضرب چند کاربرد دارد: از بخش‌های دیگر ریاضی نیز رمزگشایی می‌کند. درک قضیه دوجمله‌ای، جبر بولی (که در مدارهای رایانه کاربرد دارد)، و حتی بخش‌هایی از حسابان با داشتن چنین تفسیری از «ضرب» آسان‌تر خواهد بود. ذهن ما روشن‌تر می‌شود. ریاضیات مدل‌هایی در اختیار ما قرار می‌دهد و خوب است که ببینیم یک مدل چطور می‌تواند کاربردهای مختلفی داشته باشد. زمانی که ماهیت واقعی یک چکش را شناخته باشید، حتی از یک آچار می‌توانید برای کوبیدن میخ استفاده کنید. روش ضرب چندرقمی که در دوران دبستان آموخته‌ایم کاملاً مفید است. برای مثال به وسیله آن می‌توانیم احتمال‌های مختلف برای پرتاب چندباره سکه را محاسبه کنیم. ما همیشه مشغول استفاده از ترکیب هستیم. حاصلضرب ۳۴ × ۱۲ را چطور می‌توان ..

توضیحات بیشتر »

بند WHERE در دستورات MySQL — راهنمای جامع

در بخش‌های قبلی سلسله آموزش‌های MySQL با دستور SELECT برای دریافت داده‌ها از پایگاه داده آشنا شدیم و دیدیم که هنگام استفاده از این دستور می‌توانیم از بند WHERE برای فیلتر کردن نتایج استفاده کنیم. با استفاده از بند WHERE می‌توانیم یک معیار انتخاب برای گزینش رکوردهای مورد تقاضا از یک جدول تعیین کنیم. ساختار کد زیر ساختار معمول یک دستور SQL برای انتخاب را به همراه بند WHERE جهت دریافت داده‌ها از یک جدول MysQL نشان می‌دهد. SELECT field1, field2,...fieldN table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2..... این بند خصوصیاتی دارد که در ادامه برخی از آن‌ها را فهرست کرده‌ایم: می‌توانید از یک یا چند جدول که با کاما از هم جدا شده‌اند، برای تعیین شرایط مختلف با استفاده از بند WHERE استفاده کنید؛ اما بند WHERE بخش اختیاری دستور SELECT است. می‌توانید هر شرایطی را با استفاده از بند WEHRE تعیین کنید. می‌توانید بیش از یک شرط را با استفاده از عملگرهای AND یا OR تعیین کنید. بند WHERE می‌تواند به همراه دستورهای SQL برای DELETE یا UPDATE نیز استفاده شود. بند WHERE مانند دستور شرطی i..

توضیحات بیشتر »

تولید کد میانی (Intermediate Code) در طراحی کامپایلر – راهنمای جامع

یک کد منبع را می‌توان به صورت مستقیم به کد ماشین مقصد ترجمه کرد. در این صورت شاید این سؤال پیش بیاید که دلیل ترجمه کد منبع به یک کد میانی که در ادامه باید به کد مقصد ترجمه شود، چیست؟ در ادامه دلایل تولید کد میانی توضیح داده شده است. اگر کامپایلر زبان منبع را بدون گزینه‌ای برای تولید کد میانی به زبان ماشین مقصد ترجمه کند، در این صورت برای هر ماشین جدید می‌بایست یک کامپایلر بومی جدید استفاده شود. کد میانی نیاز به کامپایلر جدید را برای هر ماشین منحصر به فرد جدید حذف می‌کند و بخش تحلیلی کد را برای همه کامپایلرها یکسان خواهد بود. بخش دوم کامپایلر که بخش سنتز است بر اساس ماشین مقصد تغییر می‌یابد. بدین ترتیب اعمال تغییرات کد منبع برای بهینه‌سازی عملکرد از طریق به‌کارگیری تکنیک‌های بهینه‌سازی کد روی کد میانی آسان‌تر خواهد بود. بازنمایی میانی کدهای میانی را می‌توان به چندین روش نمایش داد که هر کدام مزایای خاص خود را دارند: نمایش سطح بالا (High Level IR) – نمایش سطح بالای کد میانی بسیار به خود زبان نزدیک است. این نمایش را به سادگی می‌توان از روی کد منبع ایجاد کرد و امکان تغییرات کد برای ب..

توضیحات بیشتر »

محیط Run-Time (زمان اجرا) در طراحی کامپایلر — راهنمای جامع

یک برنامه به عنوان کد منبع صرفاً مجموعه‌ای از نوشته‌ها شامل کد، عبارت‌ها، توضیحات و غیره است. برای این که این برنامه زنده شود، نیازمند برخی اقدامات است که باید بر روی ماشین مقصد اجرا شود. یک برنامه به منابع حافظه برای اجرای دستورالعمل‌های خود نیاز دارد. هر برنامه‎ای شامل نام‌هایی برای رویه‌ها، شناسه‌ها و موارد دیگر است که نیازمند نگاشت با موقعیت حافظه واقعی در زمان اجرا است. منظور از زمان اجرا (run-time) یک برنامه در وضعیت اجرایی است. محیط زمان اجرا وضعیتی در ماشین مقصد است که می‌تواند شامل کتابخانه‌های نرم‌افزاری، متغیرهای محیطی و موارد دیگر برای ارائه سرویس به پردازش‌های اجرایی روی سیستم باشد. سیستم پشتیبانی زمان اجرا یک بسته است که به طور غالب به همراه خود برنامه اجرایی ایجاد می‌شود و فرایند ارتباط بین پردازش و محیط زمان اجرا را تسهیل می‌کند. این سیستم موارد تخصیص حافظه و آزادسازی آن را هنگام اجرای برنامه بر عهده می‌گیرد. درخت‌های فعال‌سازی (Activation Trees) هر برنامه یک توالی از دستورالعمل‌هایی محسوب می‌شود که در چند روال ترکیب شده‌اند. دستورالعمل‌ها در یک روال به طور متوالی اج..

توضیحات بیشتر »

جدول نماد (Symbol Table) در طراحی کامپایلر — راهنمای جامع

جدول نماد، ساختمان داده مهمی است که به وسیله کامپایلرها برای ذخیره‌سازی اطلاعاتی در مورد رخداد گزاره‌های مختلف مانند نام متغیرها، نام تابع‌ها، اشیا، کلاس‌ها، رابط‌ها و مواردی از این دست استفاده می‌شود. جدول نماد هم از سوی بخش‌های تجزیه‌ای و هم توسط بخش‌های ترکیبی کامپایلر مورد استفاده قرار می‌گیرد. یک جدول نماد بسته به زبان مورد استفاده برای مقاصد زیر استفاده می‌شود: ذخیره‌سازی نام‌های همه گزاره‌ها دریک محل، به شکل ساخت‌یافته تأیید این که متغیری اعلان شده است یا نه پیاده‌سازی بررسی نوع که تأیید می‌کند انتساب و عبارت‌ها در کد منبع از نظر معناشناختی صحیح هستند تعیین دامنه نام (تحلیل دامنه) یک جدول نماد به طور ساده جدولی است که می‌تواند خطی یا جدول هش (hash) باشد. این جدول همه نام‌ها را به شکل زیر ذخیره می‌کند: برای نمونه اگر بخواهیم از یک جدول نماد برای ذخیره‌سازی اطلاعاتی در مورد اعلان‌های متغیرهای زیر استفاده کنیم: در این صورت باید هر مدخل را به صورت زیر ذخیره کنیم: static int interest; بند خصوصیت شامل مدخل‌هایی در ارتب..

توضیحات بیشتر »

پیکربندی Bind به عنوان سرور DNS برای درخواست های Authoritative-Only — به زبان ساده

DNS یا «سیستم نام دامنه» معمولاً یکی از اجزایی است که پیکربندی آن در وب‌سایت‌ها و سرورها با دشواری‌هایی همراه است. با این که اغلب افراد از سرورهای DNS-ی استفاده می‌کنند که شرکت میزبان وب‌سایت یا ثبت کننده دامنه‌شان تنظیم کرده است؛ اما شما می‌توانید سرورهای DNS خودتان را پیکربندی کنید که قطعاً مزیت‌های زیادی دارد. در این راهنما شیوه نصب و پیکربندی سرور DNS با استفاده از Bind9 را به صورت Authoritative-Only روی سرورهای اوبونتو آموزش می‌دهیم. بدن ترتیب ما دو سرور Bind به صورت ارباب (master) و برده (slave) در دامنه خود راه‌اندازی می‌کنیم. پیش‌نیازها و اهداف برای ادامه این راهنما در ابتدا باید با برخی اصطلاح‌های DNS آشنایی داشته باشید. بدین منظور می‌توانید از مقاله «راهنمای جامع DNS» استفاده کنید. همچنین شما به دو سرور نیاز دارید. یکی از این سرورها به عنوان سرور DNS ارباب (master) خواهد بود که فایل‌های منطقه برای دامنه شما روی آن قرار می‌گیرند و دیگری سرور برده (Slave) است که داده‌های منطقه را از طریق انتقال از سرور ارباب دریافت می‌کند و در مواردی که آن سرور از کار بیفتد، روی این سرور در ..

توضیحات بیشتر »

۵ افزونه ووکامرس برای کسب و کارهای آنلاین

WooCommerce یک افزونه منبع باز برای وردپرس است؛ که برای تجارت آنلاین کوچک تا بزرگ از وردپرس استفاده می‌کنند طراحی شده‌است. راه اندازی ووکامرس در ۲۷ سپتامبر ۲۰۱۱ انجام شد.ووکامرس به دلیل سادگی در نصب و سفارشی سازی و محصول اصلی رایگان به سرعت محبوب شد.در این مقاله می خواهیم به معرفی ۵ افزونه ووکامرس برای کسب و کارهای آنلاین بپردازیم. ۱.YITH WooCommerce Wishlist تا به حال با لیست های علاقه مندی رو به رو شده اید. مثلا در بعضی فروشگاه ها لیستی برای علاقه مندی های مشتری وجود دارد و مشتری می تواند ببیند که چه مواردی را انتخاب کرده و قصد خرید کدام یک را دارد و فروشنده ی فروشگاه نیز می تواند متوجه شود که مشتریان معمولا چه محصولاتی را انتخاب می کنند و به آن ها علاقه دارد تا بتواند محصولات خود را هدفدار انتخاب کرده و به فروش برساند. با کمک افزونه ی YITH WooCommerce Wishlist می توانیم برگه ای با شورت کد لیست علاقه مندی ها به فروشگاه ووکامرسی خود اضافه کنیم و در اختیار مشتریان خود قرار دهیم. ۲.WooCommerce PDF Invoices & Packing Slips یکی از موارد مورد نیاز برای کسانی که فروشگاه اینترنتی یا سایت..

توضیحات بیشتر »

جدول نماد (Symbol Table) در طراحی کامپایلر — راهنمای جامع

جدول نماد، ساختمان داده مهمی است که به وسیله کامپایلرها برای ذخیره‌سازی اطلاعاتی در مورد رخداد گزاره‌های مختلف مانند نام متغیرها، نام تابع‌ها، اشیا، کلاس‌ها، رابط‌ها و مواردی از این دست استفاده می‌شود. جدول نماد هم از سوی بخش‌های تجزیه‌ای و هم توسط بخش‌های ترکیبی کامپایلر مورد استفاده قرار می‌گیرد. یک جدول نماد بسته به زبان مورد استفاده برای مقاصد زیر استفاده می‌شود: ذخیره‌سازی نام‌های همه گزاره‌ها دریک محل، به شکل ساخت‌یافته تأیید این که متغیری اعلان شده است یا نه پیاده‌سازی بررسی نوع که تأیید می‌کند انتساب و عبارت‌ها در کد منبع از نظر معناشناختی صحیح هستند تعیین دامنه نام (تحلیل دامنه) یک جدول نماد به طور ساده جدولی است که می‌تواند خطی یا جدول هش (hash) باشد. این جدول همه نام‌ها را به شکل زیر ذخیره می‌کند: برای نمونه اگر بخواهیم از یک جدول نماد برای ذخیره‌سازی اطلاعاتی در مورد اعلان‌های متغیرهای زیر استفاده کنیم: در این صورت باید هر مدخل را به صورت زیر ذخیره کنیم: static int interest; بند خصوصیت شامل مدخل‌هایی در ارتب..

توضیحات بیشتر »

انواع نمودار — ریاضیات به زبان ساده

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

توضیحات بیشتر »

تنظیم سرورهای محیط توزیع نهایی (production) برای یک اپلیکیشن‌ وب — راهنمای مقدماتی

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

توضیحات بیشتر »