۷۲ مطلب توسط «بهنام سیم جو» ثبت شده است

شروع برنامه نویسی AVR

تو برنامه نویسی AVR ساختن یه فلاشر هشتایی عین Hello world میمونه و اکثر tutorial ها اولین پروژه شون همینه! منم در آینده نزدیک از همین پروژه شروع می کنم ولی برای شروع باید چنتا نرم افزار رو نصب و راه اندازی کرد. با ما همراه باشید که کلی کار داریم!

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

شروع کار با AVR

مقدمه

همونطور که پیش تر در پستی با گذاشتن مطالبی در حوضه میکروکنترلر AVR موافقت شد با این پست مطالب با این موضوع را شروع می کنم.

همون طور که قبلا هم نقل قول کردم میکروکنترلر ها در واقع دسته ای از تراشه های IC هستند که امکان برنامه نویسی و کنترل مدارات الکتریکی رو به ما می دهند. این تراشه ها درواقع چیزی شبیه به یک رایانه در ابعاد بسیار کوچک هستند که درون خود دارای بخش هایی مانند CPU, RAM, ROM و چند نوع حافظه هستند. این تراشه های از خانواده های مخلف و با معماری ها و ویژگی ها مختلفی هستند که به جرئت میشه گفته خانواده AVR بهترین و پرکاربرد ترین خانواده این دسته از تراشه ها هستند. در ادامه کمی بیشتر در مورد AVR ها آشنا خواهیم شد.

ادامه مطلب...
مجوز مطالب و محتوا ۰۳ بهمن ۹۹ ، ۱۳:۲۶ ۲ نظر موافقین ۲ مخالفین ۰
بهنام سیم جو

هنگام استفاده از VPN مراقب باشد

VPN چیست؟

Virtual Private Network پدیده ای نسبتا پیچیده در شبکه هست و می تونید با سرچ تو گوگل بیشتر در موردش بدونید ولی مردم اکثرا اون رو فقط به عنوان یک ابزار برای رفع محدودیت شبکه می شناسن. در واقع VPN ها کاربرد ها و پیچیدگی های خیلی بیشتری نسبت به رفع محدودیت داره.

ادامه مطلب...
مجوز مطالب و محتوا ۲۴ دی ۹۹ ، ۲۱:۰۴ ۰ نظر موافقین ۲ مخالفین ۰
بهنام سیم جو

پروژه های تجاری می توانند متن باز باشند؟

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

چرا باید پروژه های متن باز بنویسیم؟

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

چه طور میشه از پروژه های متن باز پول در آورد؟

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

  • می توانید همانند پروژه هایی مانند wordpress کل پروژه رایگان باشد اما بسته هایی از امکانات را آماده و برای فروش بگزارید. برای نمونه پیام رسان سروش رایگان است ولی امکاناتی مانند تم و استیکر را برای فروش گذاشته.
  • می توانید از پشتیبانی کسب درآمد کنید.
  • تمام پروژه را متن باز نکنید. هر چند که این مورد زیاد دوست داشتنی نیست ولی خب اینم یک راه حله! اگر اسرار دارید تا از فروش نرم افزار متن بازتون کسب درآمد کنید همش رو لو ندید. اگر نرم افزارتون مورد مشابه داره امتیازاتی به آن اضافه کنید تا ارزش خرید داشته باشه و اون ها رو لو ندید!
مجوز مطالب و محتوا ۲۳ خرداد ۹۹ ، ۱۳:۰۰ ۱ نظر موافقین ۲ مخالفین ۰
بهنام سیم جو

نظرات (۱)

علیرضا آهنی

رمزش شکست؟!

طی یک اتفاق متوجه شدم که سیستم عامل اوبونتویم (Ubuntu mate 16.04) کاملا نا امن هست!

از اونجایی که من از دو سیستم عامل روی سیستمم استفاده می کنم از یک بوت لودر گراب (Grub boot loader) استفاده می کنم که در منوی بوت یک گزینه به نام:

Ubuntu GNU/Linux, with Linux 3.8.0-26-generic (recovery mode)

وجود داره. طی یک اتفاق مجبور شدم به این گزینه یک سری بزنم که به گزینه ی "Drop to root shell prompt" بر خوردم. کنجکاو شدم ببینم تا چه حد دسترسی بهم میده رفتم توش و نوشتم passwd [my-username] که دیدم ازم رمز جدید می خواد. طبق روال عادی رمز رو وارد کردم و قبول شد، ریبوت (Reboot) کردم و دیدم رمز عوض شد. به همین سادگی رمز عوض شد بدون این که ازم رمز قبلی رو بپرسه. البته که من هنوز تو استفاده از لینوکس تازه واردم ولی خیلی ساده رمزش شکسته شد.

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

مجوز مطالب و محتوا ۲۰ خرداد ۹۹ ، ۱۳:۰۰ ۸ نظر موافقین ۲ مخالفین ۰
بهنام سیم جو

نظرات (۸)

علیرضا آهنی
علیرضا آهنی
فاروق کریمی زاده
علیرضا آهنی
فاروق کریمی زاده
فاروق کریمی زاده

افزودن و ویرایش اطلاعات سازنده در ویندوز

System information panel

اگر می خواهید اطلاعات خود را به صورت دلخواه همانند بالا در مشخصات ویندوز وارد کنید این مطلب را دنبال کنید

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

نظرات (۱)

سواد رسانه‌ای در مقابله با مهمان ناخوانده این روز‌ها

در روزگاری که همه جا صحبت از این بیماری ناخوانده یعنی کرونا (Covid-19) هست ما هم کمی به این موضوع از بعد رسانه ای می پردازیم.

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

ادامه مطلب...
مجوز مطالب و محتوا ۲۷ اسفند ۹۸ ، ۱۳:۰۰ ۲ نظر موافقین ۱ مخالفین ۰
بهنام سیم جو

کنترل ورودی در Python

def controllInput(func:callable, prompt = '>'):
  while True:
    try:
      inputValue = input(prompt)
      value = func(inputValue)
      if type(value) == bool:
        if value:
          return inputValue;
        else:
          print('!!INVALID INPUT!!')
      else:
        return value, inputValue
    except:
      print('!!INVALID INPUT!!')
      
a = controllInput(str.isdigit, 'digit: ')
print(a, type(a))
b = controllInput(int, 'int: ')[0]
print(b, type(b))
c = controllInput(str.isalpha, 'alpha: ')
print(c, type(c))
d = controllInput(lambda x: x.isalpha() and len(x)==5, '5 alpha:')
print(d, type(d))
مجوز مطالب و محتوا ۰۷ دی ۹۸ ، ۱۸:۵۹ ۱ نظر موافقین ۳ مخالفین ۰
بهنام سیم جو

نظرات (۱)

علیرضا آهنی

افزودن پایتون 3 به اندروید (نیاز به دسترسی روت)

از آنجا که به تازگی دارم پایتون کار می کنم می خواستم تا به هسته اندروید تبلتم پایتون رو اضافه کنم تا بتونم براش اسکریپت پایتونی هم بنویسم. پس جست و جو کردم تا چطور می تونم این کار رو انجام بدم؛ تا این که یافتم چطور می تونم پایتون 3.4.2 رو به اندروید اضافه کنم. البته برای استفاده از پایتون بر روی اندروید راه های دیگری مانند استفاده از برنامه QPython هم هست که به روت هم فکر نکنم نیاز باشه ولی در این جا شما می تونید کد ها و اسکریپت ها را از شل اجرا کنید و حتی اسکریپت هایی برای سیستم بنویسید که به سادگی اجرا می شوند.

قبل از هر چیز باید بگم که این دستورالعمل نیاز به دسترسی روت داره و طبق گفته ی منبع فقط روی پردازشگر های ARM جواب میده. من این کار رو انجام دادم و به خوبی روی تبلت سامسونگ به مدل GT-P3100 جواب داد. استفاده از ARM هم برای سادگی کار پیشنهاد می شه که البته میشه از یک terminal emulator برای اندروید هم استفاده کرد.

ادامه مطلب...
مجوز مطالب و محتوا ۰۵ آذر ۹۸ ، ۱۳:۰۰ ۱ نظر موافقین ۱ مخالفین ۰
بهنام سیم جو

نظرات (۱)

علیرضا آهنی

استفاده از نوع ها در سی شارپ به گونه ای دیگر!

در سی شارپ شما می توانید نوع (type) ها را در قالب یک متغییر برگرداند و جا به جا کرد. این نوع ها می توانند انواع متغیر ها و یا کلاس ها و در کل هر شئ موجود باشند. به طور مثال اگر کلاس های مشتقی دارید می تواند کلاس پایه و تمامی کلاس های مشتق را به گونه ای بنویسید که توع خود را در غالب یک متغیر اعلام کنند

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