کلیدهای میانبری که شما را تبدیل به یک اسب بالدار می کند

2 هفته پیش | 87 مشاهده شده
کلید های میانبر

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

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

گردش در انتخاب ها

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

کلید ویندوز

با فشار کردن کلید Win منوی استارت برای شما نمایش داده می شود. فشار دادن کلید های Win+E برنامه پیش فرض مدیریت فایل ها(در ویندوز File explorer) باز خواهد شد. کلید های Win+D باعث ماکسیمایز(فارسی اش بزرگ کردن پنجره) و مینیمایز شدن(کوچک کردن پنجره) پنجره می شود. کلیدهای Win+R برنامه Run را برای شما اجرا می کند. کلید های Win+L باعث لاگ اف شدن سیستم می شود.

بسته شدن پنجره ها

برای بسته شدن نرم افزای که باز است کافی است کلید های Alt+F4 را فشار دهید. برای خاموش کردن سیستم کافی است Alt+F4 را در دسکتاپ(میز کار) فشار دهید. پنجره شامل لاگ اف کردن، هایبرنیت کردن و غیره باز می شود، شما با کلید Tab قادر به انتخاب آنها هستید. فشار دادن کلید های Ctrl+Alt+Shift+H باعث هایبرنیت شدن سیستم شما می شود.

تذکر:کلید Enter نقش کلیک چپ موس را ایفا می کند. در صفحه کلید ها کلید Shift+F10 هم نقش کلیک راست را برای شما ایفا می کند. برای تمام صفحه کردن پنجره از کلید F11 استفاده کنید. اگر برنامه نویس هستید برای کامپایل کردن کد Ctrl+F5 استفاده کنید.

کلیدهای میانبر شخصی سازی شده برای باز کردن نرم افزارهای پر کاربرد

نرم افزارهای مانند گوگل کروم، نوت پد پلاس پلاس، پی اچ پی استورم، گیت و تاندربرد از پر استفاده ترین ها برای من است. برای باز کردن این نرم افزار ها از کلید های Alt+Ctrl+نام اول نرم افزار استفاده می کنم. مثلا برای باز کردن گیت از کلید ترکیبی Alt+Ctrl+G استفاده می کنم. برای باز کردن گوگل کروم از Alt+Ctrl+C استفاه می کنم.



ادامه خواندن


دانلود کتابخانه های شماتیک و فوت پرینت قطعات برای PCB

1 ماه پیش | 506 مشاهده شده
کتاب خانه ها برای پی سی بی

در طراحی PCB مدارهای الکترونیکی، به فایل کتابخانه برای قطعات الکترونیکی( به کار رفته در طراحی تان) نیاز دارید. فایل کتابخانه قطعات الکترونیکی معمولا شامل مدل های شماتیک(سمبل)، فوتپرینت و مدل سه بعدی قطعات می باشد. برای قطعات مطرح و معروف تر این فایل های کتابخانه ای طراحی شده اند. شما با مراجعه به سایت های مرجع مانند Snapeda و Samacsys مدل های قطعات مختلف را خواهید یافت. نمونه ایرانی این مراجع، سایت 3ِDFootprint است. اما گوناگونی قطعات الکترونیکی انکار ناپذیر است. هزاران شرکت در طول دهه ها قطعات مختلفی طراحی و عرضه کرده اند. در طراحی ها شما اگر خوش شانس باشید 60 تا 70 درصد قطعات مدل های از پیش آماده شده داشته باشند. برای بقیه قطعات باید دست به کار شوید، خودتان مدل های آن ها را طراحی کنید. طراحی مدل های قطعات من را یاد کلاس نقاشی می اندازد. اما این نقاشی کردن کمی متفاوت است، حالت دیجیتالی پیدا کرده است.

طراحی مدل قطعات زمان بر است

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

نکته ی مهم: حتی اگر مدل ها را دانلود یا خرید کردید، حتما با دیتاشیت قطعه تطابق دهید. در صورت یک اشتباه کوچک در هریک از مدل ها شما باید برای بازطراحی PCB دوباره هزینه کنید.

دانلود مدل های مختلفی که طراحی کردم

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

آموش طراحی مدل در آلتیوم دیزاینر

1- طراحی فوت پرینت

طراحی مدل با کمک آلتیوم دیزاینر (برای قطعات مختلف) بسیار ساده است. مراحل ایجاد یک فوت پرینت در زیر لیست شده است. برای آموزش سعی در طر احی LCD PG128128-A از شرکت POWERTIP دارم.

دانلود دیتاشیت قطعه

ابتدا دیتا شیت قطعه را دانلود کنید. به بخشی از دیتا شیت که ابعاد کلی LCD و پین های آن ارائه می کند، تمرکز کنید. تمام واحدها بر حسب میلی متر می باشد. در طراحی PCB و مدل ها در آلتیوم دیزاینر با دو واحد میلی متر(یک هزارم متر) و میل(یک هزارم اینچ) سروکار دارید. توصیه می کنم شما واحد میلی متر را به عنوان واحد پیش فرض در آلتیوم دیزانر انتخاب کنید.

ابعاد کلی LCD 128128-A
نام و کاربرد پایه های مختلف LCD

پدها را ایجاد کنید

از قسمت File>New>Library>PCB library یک فایل برای طراحی فوت پرینت قطعه خود بسازید. معمولا نام فایل را، نام قطعه مورد نظر انتخاب می کنند مثلا در این جا من نام فایل pg128128a گذاشته ام. شما باید موقعیت هندسی پد ها را محاسبه کنید. سپس با استفاده از Place>Pad پد ها را در صفحه ایجاد کنید.

بخش String و Line

Place>Line برای خط کشی در PCB برای گوشه ها و خط های مهم قطعه استفاده می شود. Place>String برای اضافه کردن نوشته به فوت پرینت قطعه به کار برده می شود. نوشته های روی پی سی بی با نام چاپ مارکاژ(Silk Screen) هم خوانده می شود. مثلا همان طور که در طرح دیتا شیت مشاهده می کنید، بر روی صفحه LCD نوشته 128×128 Dots وجود دارد. در طراحی فوت پرینت دقیقا همین نوشته آورده شده است.

فایل فوت پرینت خود را ذخیره کنید

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

طراحی فوت پرینت LCD در آلتیوم دیزاینر

2-طراحی مدل شماتیک LCD

برای طراحی فایل شماتیک قطعه ابتدا باید از منوی File>New>Library>Schematic library یک فایل شماتیک ایجاد کنید. روند ها مشابه طراحی فوت پرینت است. به جای بحث پد ما در شماتیک بحث پین داریم. شما باید با استفاده از ابزارهای Place یک طرح ساده که نماد LCD در شماتیک است، بسازید. بعد روی این طرح پین ها (Place>Pin) را قرار دهید. Designator پین ها در شماتیک و پد ها در فوت پرینت باید یکی باشد.

طراحی شماتیک LCD

نکته ی مهم:Designator در التیوم دیزاینر حکم یک نوع id منحصر به فرد دارد. هر اتصال مانند پد یا پین یا پایه های قطعه یک نام منحصر به فرد دارند. برای ارتباط بین شماتیک و PCB از این id استفاده می شود.

3- طراحی مدل یک پارچه

بعد از طراحی شماتیک و فوت پرینت شما می توایند مدل سه بعدی قطعه هم طراحی کنید. در این آموزش فقط دو مورد اول بررسی کردم. شما تمام مدل های طراحی شده را می توانید در یک کتابخانه با پسوند Intlib قرار دهید. کافی است بعد از آن کتابخانه یکپارچه (Intlib) را به پروژه اضافه کنید، آنگاه شماتیک، فوت پرینت و حتی مدل سه بعدی قطعه به پروژه اضافه خواهد شد. از منوی Project>Design Workspace>Add New Project>Integrated Library یک پروژه فایل یکپارچه ایجاد کنید. بر رروی آن کلیک راست کرده از طریق Add Existing to Project فایل های شماتیک و PCB را به آن اضافه کنید. در نهایت بر روی پروژه یکپارچه کلیک راست کلیک کنید، گزینه Compile Integrated Library بزنید. کمی صبر کنید. تبریک کتابخانه یکپارچه شما به پروژه شما اضافه شده است. شما می توانید LCD PG128128-A را به پروژه خود اضافه کرده و از آن استفاده کنید.

اضافه کردن LCD به پروژه برای طراحی مدار الکترونیکی

1- خرید کتابخانه ی شماتیک و فوت پرینت lcd pg128128a

کتابخانه pg128128a
RIAL 250,000 – خرید


راهنمای خرید و استفاده از کد پروژه های آرم LPC2138

2 ماه پیش | 740 مشاهده شده
پروژه های lpc2138

ویژگی های کلی فریم ورک یونیورسال lpc2000

• کابرد آسان فایل ها در پروژه و ماژولار بودن فریم ورک
• استفاده از دیتا تایپ منطبق با stdint
• داشتن شماتیک پروتئوس در فریم ورک برای کمک به راه اندازی پروژه خود
• رعایت استاندارد MISRA با کمک افزونه های PC-lint و CPP-Check
• داکیومنتینگ و کامنتینگ با استفاده از doxygen
• انتشار رایگان فریم ورک تحت مجوز GPLv3
• در نسخه های اولیه فعلا بر روی lpc2138 کار شده است، در آینده سری های دیگرlpc2000 اضافه خواهد شد.
• امکان خرید پروژه های مختلف که با استفاده از این فریم ورک ساخته شده است.

نرم افزارهای مورد نیاز

• (PCB Design & VSM Simulation Suite 8 (Proteus
• (MDK Version 5 (Keil
• Git for CVS is used

لینک های فریم ورک یونیورسال lpc2000

لینک دانلود فریم ورک

راهنمای فریم ورک یونیورسال lpc2000

چرا ARM؟

ممکن است قبلا متوجه شده‌باشید که پردازنده‌های ARM در همه جا وجود دارند. وقتی به اطرافم (مودم، ال سی دی ها، ال ای دی ها، لب تاپ، تلفن، موبایل، تبلت و غیره) نگاه می‌کنم، می‌توانم دستگاه‌های  بی شماری مشاهده کنم که حداقل یک پردازنده ARM در آن ها به کار رفته است. فکر می کنم که پردازنده ARM یکی از گسترده‌ترین هسته‌های CPU در جهان شده‌است.

این برنامه آموزشی برای افرادی مناسب است که می‌خواهند برنامه نویسی میکروکنترلرهای ARM  را یاد بگیرند. به خصوص کسانی که با برنامه نویسی رجیستر ها مشکل دارند. تجربه داشتن در میکرو کنترلرهای AVR و PIC در سرعت یادگیری برنامه نویسی آرم بسیار تاثیر گذار خواهد بود. شما با این فریم ورک به راحتی قادر به کنترل کردن قسمت های مختلف میکروکنترلر  خواهید بود. اگر از کهنه کارهای برنامه نویسی آرم باشید  حتما اسم  های CMSIS, Std driver وHAL driver  شنیده اید. در این فریم ورک سعی شده لایبرری مشابه  ,CMSIS Std driver و HAL driver شرکت ST (اما کوچک و جمع  وجور) برای میکروکنترلرهای فیلیپس سری 2000 (lpc2000)  پیاده سازی شود. با این وجود چون هدف آموزش و آشنا کردن افراد با میکرو کنترلر های آرم فیلیپس سری 2000 است، ساده بودن هم از اهداف این فریم ورک بوده است.

چرا LPC2000؟

با توجه به اینکه اکثر مبتدی ها، برنامه نویسی میکروکنترلرها را در محیط پروتئوس و با میکروکنترلر های AVR  شروع کرده اند، مزیتی که این سری میکروکنترلرهای شرکت فیلیپس دارد( شبیه سازی آن در پروتئوس) کار را برای آموزش برای مدرس راحت می کند. بنابراین میکروکنترلر های آرم فیلیپس سری 2000 برای اهداف آموزشی و دانشگاه ها بهترین انتخاب است.  من هم در این وبلاگ بر روی این خانواده تاکید خاصی خواهم داشت.

فریم ورک یونیورسال lpc2000

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

نحوه راه اندای فریم ورک

این فریم ورک شامل دو فولدر inc و src می باشد. کافی است شما در محیط برنامه نویسی Keil فولدر inc که شامل هدر فایل ها است به پروژه اضافه کنید. علاوه بر هدر فایل ها، تمام سورس های مختلف فریم ورک که در پوشه src قرار دارد، یک بار برای همیشه به پروژه خود اضافه کنید. بعد از آن آماده اید میکروکنترلر ها را به کار بگیرید.

افزودن هدر فایل ها به پروژه
افزودن هدر فایل ها به پروژه
افزودن سورس ها به پروژه
افزودن سورس ها به پروژه
افزودن سورس ها به پروژه
افزودن سورس ها به پروژه

سخنی با کاربران

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

نکته مهم: لازم به ذکر است توسعه دهنده  گان وظیفه ای بابت آموزش مباحث زبان های برنامه نویسی  سی و مباحث سطح پایین و غیره ندارد و موارد توضیح داده شده (استفاده از فریم ورک) ضروری بوده اند.

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

برای خرید پروژه های این فریم ورک به این لینک مراجعه کنید.



ادامه خواندن


راهنمای خرید، استفاده و فعالسازی قالب بوت استرپ فارسی

2 ماه پیش | 809 مشاهده شده
راهنمای خرید، استفاده و فعالسازی قالب بوت استرپ فارسی

ویژگی های کلی قالب:

  • کاملا واکنش گرا بودن
  • استفاده از بوت استرپ فارسی در طراحی قالب
  • داشتن شخصی سازی حرفه ای برای تغییر استایل قالب
  • داشتن بخش های مختلف برای اضافه کردن ویجت ها
  • داشتن فرم ارتباط با ما با گوگل کپچا کد
  • فونت های ساحل، وزیر، ایرانیان سنس، دروید سان، ب یکان
  • اضافه کردن خودکار گوگل آنالیتیک به سایت با اضافه کردن کد  رهگیری  سایت در آن
  • داشتن نرخ text/html  بالا( با اضافه کردن متن مناسب نرخ text/html  به آسانی بالای 40 درصد و حتی بیشتر می رسد ) و بهینه سازی شده برای سئو
  • داشتن امکان نسبی کردن(کوتاه کردن) آدرس های وب سایت
  • داشتن بسته نصب آسان
  • داشتن امکان استخراج/وارد کردن تنظیمات با خروجی جی سان
  • داشتن بیش از بیست طرح و دموی مختلف

افزونه های مورد استفاده در قالب بوت استرپ فارسی

  • Google Captcha (reCAPTCHA) by BestWebSoft
  • Stack Design Social Profile Widget

لینک های قالب

دموی قالب

دانلود فایل راهنمای قالب

اسکرین شات از قالب

دمو های قالب  و فایل های از پیش تنظیم شده

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

استخراج/واردکردن پارامترها

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



ادامه خواندن


داده هایت را مراقبت کن، به شخص سوم نسپار(هر خطای ممکن رخ خواهد داد)

2 ماه پیش | 1014 مشاهده شده
داده هایت را مراقبت کن

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

شروع یک تراژدی

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

Due to U.S. trade controls law restrictions, your GitHub account has been restricted. This means we have suspended access to private repository services and paid services for your account. For free individual accounts, you still have access to free GitHub public repository services (such as public repositories for open source projects and associated GitHub Pages and Gists). If you believe your account has been flagged in error, and you are not located in or resident in a sanctioned region, please file an appeal. Please read about GitHub and Trade Controls for more information.

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

تلاش برای رقم زدن یک پایان خوب

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

و اما کلام آخر

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

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

اما کلام آخر چه ربطی به نوشته هایم دارد. متاسفانه ما با گذر زمان به جای نزدیک شدن به اینترنت آزاد و رعایت حقوق کاربران و حفظ کردن همین سطح از مفید بودن اینترنت دچار عقب گرد شده ایم(هر چند کاربران ایرانی از هر دو طرف مورد کم لطفی قرار گرفته اند). شرایط استفاده از خدمات (Terms of Service) اینترنتی کاملا انحصار طلبانه و حالت ارباب برده (Master/Slave) پیدا کرده است. داستان هنگامی غم انگیز تر می شود که سرویس های وفادار و مستقل یکی بعد از دیگری در حال فروپاشی هستند. پس با شرایط استفاده از خدمات بی چون و چرای سرویس های اینترنتی توصیه می کنم به هیچ سرویسی شخص سومی (داخلی و خارجی) اعتماد نکنید. خلاصه کلام داده هایت را مراقبت کن. چیزی که برای آن ها مهم نیست حقوق کاربران است. شاید اینترنت دوران سال های 2000 و قبل از آن و اوج یاهو و یاهو مسنجر و غیره بهترین دوران اینترنت( بخوانید زیباترین دوران) برای من بود. اینترنت آینده برای من دیگر دوست داشتنی نیست، بلکه رعب آور است.

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



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

2 ماه پیش | 343 مشاهده شده
یادگیری بهتر با کتاب

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

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

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

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

تنظیم سرعت خواندن

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

فهم عمیق تر

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

جامع بودن در کنار ایجاز

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

جستجوی راحت

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

سند بودن

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

واقع گرایی

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

تذکر: این بحث در مورد کتاب های ترجمه هم وجود دارد. برای اینکه به هدف یادگیری بهتر با کتاب به طور کامل دست یابید زبان انگلیسی خود را قوی کنید، سعی کنید کتاب ها را زبان اصلی بخوانید. در غیر این صورت بدون شک در یک سری مفاهیم (در کتاب های ترجمه) دچار کج فهمی خواهید شد.

منظورت این است که از کتاب ها استفاده کنیم از ویدیو ها استفاده نکنیم؟

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



تفاوت میکروکنترلرها و DSPها

4 ماه پیش | 904 مشاهده شده
دی اس پی

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

میکروکنترلر و میکروپروسسورهای معمولی

اغلب دستگاه‌های الکترونیکی مدرن شامل یک یا چند میکروکنترلر هستند. در حقیقت، میکروکنترلرها ها همه جا حاضر هستند: آن‌ها در تلفن‌های همراه، لپ تاپ ها، تلویزیون ، یخچال ها و بیشتر وسایل خانگی هستند. آن‌ها چراغ‌های چشمک‌زن در اسباب‌بازی‌های کودکان را کنترل می‌کنند. کاری که میکروکنترلرها و میکروپروسسورها در این وسایل انجام می دهند دقیقا چیست؟ پاسخ ساده است میکروکنترلرها ورودی‌ها را از دکمه‌ها، سوییچ‌ها، حسگرها و اجزای مشابه دریافت می‌کند؛ و مدار جانبی مانند موتورها و البته خروجی ها مانند نمایشگرها مطابق با یک برنامه از پیش تنظیم‌شده را کنترل می‌کند که به آن‌ها می‌گوید چه کار کنیم و چگونه واکنش نشان دهیم. از جمله میکروکنترلرهای معروف در ایران PIC،AVR،ST و NXP می توان نام برد.

میکروکنترلرها

شکل 1: شمای کلی از واحدهای میکروکنترلرها



ادامه خواندن


اپن سی وی و سیستم های امبدد

4 ماه پیش | 232 مشاهده شده
پردازش تصویر

OpenCV یک کتابخانه از توابع برنامه نویسی است که عمدتا جهت پیاده سازی بینایی کامپیوتر در زمانی بلادرنگ طراحی شده است. در ابتدا توسط اینتل توسعه داده شد، بعدا توسط Willow Garage و سپس Iteez پشتیبانی شد. این کتابخانه چندسکویی است و برای استفاده( تحت مجوز BSD) به صورت اپن سورس عرضه گشته است. سیستم امبدد یک کنترل‌کننده با یک کاربرد اختصاصی در سیستم های مکانیکی یا الکتریکی بزرگ‌تر(اغلب با محدودیت‌های زمانی و سرعت ) است. این دستگاه به عنوان بخشی از یک دستگاه کامل، شامل سخت‌افزار و قطعات مکانیکی و غیره می باشد. امروزه از سیستم های امبدد در بسیاری از وسایل متداول زندگی روزمره استفاده می شود. در سال های اخیر بر روی ساخت سیستم های امبدد  با قابلیت بینایی ماشین کار شده است، علی رغم تلاش های زیادی که انجام شده، پردازش بلادرنگ تصویر در سیستم های امبدد هنوز مسئله نو و حل نشده (از نظر کاهش قیمت و سادگی کار) است. در این پست راهکارهایی که در سال های اخیر ارائه شده است مرور خواهیم کرد.

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



ادامه خواندن



دانلود اپلیکشن وبلاگ

4 ماه پیش | 143 مشاهده شده
اپلیکشن اندروید استک دیزاین

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

 

ادامه خواندن


مهاجرت به اندروید ایکس

5 ماه پیش | 131 مشاهده شده

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

تا قبل از معرفی اندروید ایکس و تغییر نیم اسپیس مخازن maven گوگل برای فراخوانی لایببرری های گوگل در فایل گریدل از سینتکس com.android.support:libraryname-v1.1 استفاده می کردیم.

com.android.support:cardview-v7

com.android.support:appcompat-v7

اما با انتقال لایببرری هایی از گوگل به جت پک نامگذاری آن ها در گریدل به صورت زیر تغییر پیدا کرده است. یعنی باید به ابتدای آن ها androidx اضافه گرد. برای جزییات بیشتر بهاین لینک مراجعه شود.

androidx.cardview:cardview:1.0.0

androidx.appcompat:appcompat:1.0.0



ادامه خواندن


ESR چیست

5 ماه پیش | 131 مشاهده شده

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

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



ادامه خواندن



کنترلر درایور ال سی دی چیست؟

5 ماه پیش | 136 مشاهده شده

ال سی دی های گرافیکی با توجه به تراشه پردازنده خود، که به آنها راه انداز یا درایور می گویند معرفی می شوند. اکثر تکنولوژی ها شامل TFT, OLED, Character, Graphical, UWVD و FSC ها  ای سی راه انداز آنها درون خود ال سی دی  و یا همراه  آن تعبیه می شود. راه انداز های LCD گرافیکی معمولا یا از نوع تراشه های T6963 ساخت شرکت توشیبا و یا KS0108 ساخت شرکت سامسونگ هستند. از طرفی پنج سال اخیر ال سی دی های چینی که از نظر قیمت بسیار ارزان تر هستند با کنترلرهای ST7920  وارد بازار شده است  درایورهای SSD1289 هم مطرح هستند. به زودی تصمیم دارم مثال های از ال سی دی ها با کنترلر سامسونگ و توشبیا در پروژهای LPC سری 2000 ارائه کنم. در این پست  به کنترلر درایور ال سی دی ها خواهم پرداخت.

آی سی کنترلر ال سی دی چیست؟

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

آی سی کنترلر ال سی دی کجا تعبیه شده است؟

معمولا خود ال سی دی به یک برد حاوی COB متصل است، که همین COB (به شکل لکه سیاه رنگ) آی سی کنترلر ال سی دی است، بسته به نوع ال سی دی می تواند چند تا از آن ها بر روی برد تعبیه شده باشد.

آی سی کنترلر ال سی دی
شکل 1: تصویر COB بر روی یک نوع ال سی دی


ادامه خواندن


متریال دیزاین در اندروید

5 ماه پیش | 155 مشاهده شده

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

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

داشتن طراحی کمپونت های آماده برای سه پلتفرم وب، اندروید، ای او اس

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

داشتن ویو زیبا و شیک

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

 

Material Design Lite
Materialize
Material-UI
MUI CSS
Polymer
Ionic Material
Material Foundation
Surface
Essence
LumX
Paper
Material Design for Bootstrap
Angular Material
Material
Phonon
Framework7



وبلاگ چیت شیت

1 سال پیش | 187 مشاهده شده

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



ادامه خواندن



مفهوم اف اسکیت در اندروید

1 سال پیش | 111 مشاهده شده

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

معکوس مهندسی برنامه های آندروید

ماهیت جاوا (زبان برنامه نویسی غالب برای برنامه های آندروید، به استثنای کد بومی) این است که کد به کد ماشین کامپایل نمی شود؛ آن را به یک فرمت متوسط که آماده است بر روی انواع سیستم عامل های سخت افزاری اجرا شود. در حالی که این اجازه می دهد تا قابل حمل  برای روی سخت افزارهای مختلف باشد،  در حال حاضر در APK این امکان برای استخراج فایل ها و بررسی فایل ها شامل xml و dex فایل ها و منابع مورد استفاده  برنامه های اندرویدی را میدهد.

در حالی که من این مباحث را پوشش نخواهم داد، ابزارهایی برای تجزیه فایل DEX (بایگانی کد) از APK به یک آرشیو JAR به طور گسترده در دسترس هستند. من پیشنهاد می کنم به APK خود خود نگاه کنید تا ببینید چه چیزی می تواند استخراج شود. این کمی شگفت آور است که می تواند  منابع تصویر به آسانی در آرشیو APK قابل مشاهده است و تنها با چند ثانیه کار، کد اصلی نیز دیده می شود، با نام متغیر و متدهای که استفاده شده  است.

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



نحوه توصیف الگوهای طراحی

1 سال پیش | 115 مشاهده شده

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

اطلاعات در اسناد الگوی طراحی به شرح زیر خواهد بود:

نام و طبقه بندی الگو:

نام الگوی دقیقا ماهیت الگو را مشخص می کند. یک نام خوب یک کلید است زیرا آن کلید بخشی از واژگان طراحی ما خواهد شد. طبقه بندی نوع الگو را مشخص می کند.

قصد:

یک بیانیه کوتاه که به ما می گوید که الگوی انجام شده چیست و کدام  مشکل طراحی را رفع می کند.

همچنین به عنوان نام دیگر شناخته شده برای الگو، اگر وجود داشته باشد.

انگیزه:

یک سناریو که یک مشکل طراحی را نشان می دهد و نحوه ساختار کلاس و شیء آن مشکل را حل می کند. این سناریو به ما در درک تعریف الگوی انتزاعی کمک می کند.

کاربرد:

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

ساختار:

نمایش گرافیکی از کلاس های درگیر در الگوی با استفاده از  تکنیک مدل سازی شی (OMT). ما همچنین از نمودارهای تعامل برای نشان دادن توالی درخواست ها و همکاری بین اشیا استفاده می کنیم.

شركت كنندگان:

کلاس ها و / یا اشیاء شرکت کننده در الگوی و مسئولیت های آنها.

همکاری:

چگونه طبقات و اشیاء همکاری می کنند تا مسئولیت های خود را انجام دهند.

عواقب:

به ما می گوید که هزینه ها و مزایای استفاده از الگو چیست. همچنین به ما می گوید که بخشی از سیستم را می توان مستقل تغییر داد.

پیاده سازی:

مشخص می کند چه تکنیک هایی باید در هنگام اجرای الگوریتم از آن آگاه باشیم و همچنین در مورد مسائل خاص زبان صحبت می کند.

کد نمونه:

قطعه کد که ما را به چگونگی اجرای الگوی در جاوا یا زبانهای دیگر می دهد.

استفاده های شناخته شده:

مثال استفاده از الگوها در دنیای واقعی

الگوهای مرتبط:

مشخص می کند که الگوهای دیگر مربوط به این الگو هستند و تفاوت بین آنها چیست.

 



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

1 سال پیش | 106 مشاهده شده

در مهندسی نرم‌افزار، الگوی طراحی (به انگلیسی: Design Pattern) یک راه‌حل عمومی قابل تکرار برای مشکلات متداول در زمینه طراحی نرم‌افزار است. الگوی طراحی، یک طراحی تمام‌شده نیست که به صورت مستقیم بتواند تبدیل به کد منبع یا ماشین شود؛ بلکه، یک توضیح یا قالب برای حل یک مسئله در شرایط مختلف است.

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

بحث Design Pattern برای اولین بار در دنیای نرم‌افزار توسط GoF صورت گرفت. یک گروه چهار نفره شامل: Erich Gamma ،Richard Helm ،Ralph Johnson و John Vlissides ملقب به Gang of Four یا GoF هستند.

این گروه در ۲۱ اکتبر سال ۱۹۹۴ کتابی را تحت عنوان Design Patterns: Elements of Reusable Object-Oriented Software منتشر کردند. (این کتاب تا تاریخ آوریل ۲۰۰۷، سی و ۶ بار تجدید چاپ شده است)

آنها در این کتاب ۲۳ الگوی طراحی کلاسیک را با زبان‌های شی گرا مطرح در آن زمان (++C و Smalltalk) برای اولین بار مورد بحث قرار دادند

برای یادگیری الگوهای طراحی یکی از بهترین کتاب ها برای شروع همین کتاب GoF است، که بنده هم این کتاب را مطالعه کرده ام. الگوهای طراحی در این کتاب از دو نظر دسته بندی شده است.بیشتر الگوهای طراحی را با استفاده از دو معیار طبقه بندی کنید:  هدف(purpose) و دامنه(Scope). هدف منعکس‌کننده آنچه یک الگو انجام می دهداست. دامنه مشخص می کند الگوهای کلاس با رابطه بین کلاس ها و زیر کلاس های آنها ارتباط دارد. روابط از طریق ارث بری آغاز می شود. هدف الگوهای طراحی را به دسته های زیر تقسیم بندی می کند.



ادامه خواندن



تکه تکه (گرانولی) در شی گرایی

1 سال پیش | 116 مشاهده شده

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

اشیا تکه تکه  (Granularity) یا  اشیا گرانولی بودن  در طراحی شی گرا به معنی این است که  اشیایی   که معمولا تکه تکه و تعداد آنها زیاد است. اشیاء این طراحی  گرانولی، آنهایی هستند که جزئیات کمتری در برنامه شما دارند. در نظر گرفتن:

درختان در چشم انداز بازی
شخصیت ها در سند
صندلی در سینما
نقاط قدرت در برنامه CAD

معمولا شما در برنامه کاربردی بسیاری از اشیاء گرانولی دارید. اگر شما یک شی جداگانه برای هر درخت / کاراکتر / صندلی / CAD ایجاد کنید، این امر می تواند بسیار حافظه مصرف کند. این مشکل است که توسط الگوی  Flyweight حل  شده است.