۶۹ مطلب توسط «BSimjoo» ثبت شده است

آموزش مقدماتی git

گیت چیست؟

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

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

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

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

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

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

ربات تلگرامی وبلاگ

@PCworms_Bot

ربات وبلاگ هم مجددا راه اندازی شد. این دفعه خودم نوشتمش و می تونید در github.com/bsimjoo/Telegram-RSS-Bot سورسش رو ببینید.

مجوز مطالب و محتوا ۰۶ فروردين ۰۰ ، ۲۱:۴۸ ۰ نظر موافقین ۱ مخالفین ۰
BSimjoo

راه های ارتباطی ما

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

مجوز مطالب و محتوا ۳۰ اسفند ۹۹ ، ۱۱:۰۰ ۰ نظر
BSimjoo

شمارنده تک رقمی با ATmega8 و 7-seg

سون سگمنت (Seven-segment) یک قطعه برای نمایش ارقام و بعضی حروف خاص هست. حتما سون سگمنت ها رو تو آسانسور یا محافظ کولر (اونایی که ولت سنج دارن) یا روی بعضی کولر ها برای نمایش دما دیدید. این قطعه دارای هفت LED اصلی برای نمایش ارقام و ... و یک LED اختیاری برای نقطه هست که در واقع برای کامل شدن یک بایت (8 بیت) اضافه می شود. از آن جا که این قطعه از LED ها تشکیل شده دارای دو نوع کاتد مشترک (com-cathode) و آند مشترک (com-anode) که در آن ها به ترتیب پایه های منفی آن ها یا مثبت آن ها به هم وصل شده اند. البته که این تفاوت در ظاهر و کارکرد فرقی نخواهد داشت اما در زمان برنامه نویسی تفاوت هایی هست.

همانطور که می بینید بخش های اصلی یک سون سگمنت با حروف A تا G نام گذاری شده اند و نقطه که اختیاری است با حرف DP که مخفف Decimal point است نام گذاری می شود.

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

مبانی عددی

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

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

نظرات (۱)

سیدمهدی موسویان

چشمک زن هشتایی با ATmega8

همون طور که قبل تر گفته بودم به عنوان اولین پروژه یک چشمک زن هشتایی می سازیم.

کد برنامه

/*
 * 8-LED-flasher.c
 *
 * Created: 08/11/1399 10:24:35 ب.ظ
 * Author : bsimjoo
 */
#define F_CPU 1000000

#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
    DDRD=0xff;
    PORTD=0xff;
    while (1)
    {
        for(uint8_t i=1;1;i*=2){
            _delay_ms(300);
            PORTD=i;
            if(i>=128) break;
        }
    }
}

تفسیر کد...

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

گیت هاب ایران را از تحریم خارج کرد

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

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

نظرات (۱)

محمدصالح کامیاب

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

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

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

شروع کار با AVR

مقدمه

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

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

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

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

VPN چیست؟

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

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

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

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

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

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

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

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

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

نظرات (۱)

علیرضا آهنی

رمزش شکست؟!

طی یک اتفاق متوجه شدم که سیستم عامل اوبونتویم (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) کردم و دیدم رمز عوض شد. به همین سادگی رمز عوض شد بدون این که ازم رمز قبلی رو بپرسه. البته که من هنوز تو استفاده از لینوکس تازه واردم ولی خیلی ساده رمزش شکسته شد.

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

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

نظرات (۷)

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

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

System information panel

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

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

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

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

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

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

کنترل ورودی در 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))
مجوز مطالب و محتوا ۰۷ دی ۹۸ ، ۱۸:۵۹ ۱ نظر موافقین ۳ مخالفین ۰
BSimjoo

نظرات (۱)

علیرضا آهنی