«نظرات شما» برنامه‌نویسی را با چه زبانی و چطور شروع کنیم؟

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

مجوز مطالب و محتوا ۳۱ شهریور ۹۹ ، ۱۱:۵۴ ۷ نظر موافقین ۳ مخالفین ۱
فاروق کریمی زاده

صفحه «هدیه بدهید» وبلاگ

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

صفحه «هدیه بدهید»

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

زمان اشکال‌یابی برنامه حواستون به بافر و فلاش کردنش باشه

تکه کد زیر که به زبان سی‌پلاس‌پلاس را در نظر بگیرید:

#include <iostream>
using namespace std;

int main() {
    char *s;
    s = NULL;
    cout << "Hello";
    *s = 'H';
    return 0;
}

انتظار داریم که اول Hello چاپ شود و سپس با توجه به اینکه میخواهیم قسمتی از حافظه که نامربوط به برنامه‌ی ماست دسترسی پیدا کنیم،باید خطای Segmentation fault داده شود و برنامه خاتمه پیدا کند.اما وقتی کد را کامپایل و اجرا می‌کنیم می‌بینیم که اینطور نیست

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

نظرات (۱)

علیرضا آهنی

چطور کاری کنیم لیسپ سریع‌تر از سی اجرا شود؟

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

دریافت با حجم ۹۰ کیلوبایت از بیتکوین‌شل

دریافت از وب‌سایت فاروق

دریافت از «سیب‌زمینی تخم‌مرغ» فاروق

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

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

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

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

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

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

همین اول باید بگم طبق بحثی که با دوستان (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

کنترل از راه دور بلوتوثی برای لپ‌تاپ با استفاده از ریموت مونوپاد

ریموت بلوتوثی

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

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

نظرات (۸)

علیرضا آهنی
علیرضا آهنی
علیرضا آهنی
علیرضا آهنی
علیرضا آهنی
علیرضا آهنی

چند کلید میانبر ساده در بش و zsh و fish

رفتن به اول خط

هرچند که کلید Home همین کار را انجام می‌دهد اما معمولا این کلید در جای مناسبی قرار ندارد و علاوه بر آن در هر تخته کلید در مکان متفاوتی قرار دارد. Ctrl+A همین کار را برای شما انجام می‌دهد و در مکان مناسب و ثابتی قرار دارد.

رفتن به پایان خط

کلید End همین کار را می‌کند اما کلید Ctrl+E در مکان مناسبی می‌باشد.

حذف کل یا قسمتی از خط

کلید Ctrl+K هر چه در موقعیت فعلی تا پایان خط وجود دارد را حذف می‌میکند. میتوانید با Ctrl+A به اول خط بروید سپس با Ctrl+K کل خط را حذف کنید.

پاک کردن کل صفحه

دستور clear همین کار را انجام می‌دهد اما Ctrl+L همین کار را با تایپ کلید‌های کمتری انجام داده و حتی زمانی که دارید دستور دیگری نیز می‌نویسید نیز قابل استفاده است بدون آنکه چیزی که می‌نویسید پاک شود.

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

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

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

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

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

نکاتی اندر کامن لیسپ مصطلح(Idiomatic Common Lisp)

این مطلب به تدریج کامل‌تر می‌شود پس در آینده دوباره به آن سر بزنید :)

مبتدی‌های یک زبان برنامه نویسی مخصوصا اگر قبل از فراگیری زبان جدید یک زبان دیگر را یاد گرفته باشند، کد هایی به زبان جدید اما با روشی نادرست(و با روش زبان قبلی اگر داشته باشند) می‌نویسند. این کد‌ها معمولا به درستی کار می‌کنند اما به روش زبان جدید نوشته نشده‌اند. یک مثال معروف در زبان پایتون استفاده از range(len(somelist)) برای دسترسی به اعضای یک لیست است.کامن لیسپ نیز بین زبان‌ها برنامه نویسی استثنا نیست.در ادامه برای حل کردن هر مسئله در کامن لیسپ حداقل دو تکه کد یکی روش اشتباه حل کردن مسئله در کامن لیسپ و دیگری روش درست آن‌را ارائه میکنم.

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

کنترل ورودی در 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

نظرات (۱)

علیرضا آهنی

پیاده‌سازی الگوریتم مرتب سازی حبابی در کامن لیسپ

(defun bubble-sort (vector)
  (loop for swapped = nil
     do (loop for i from 0 below (1- (length vector))
	   when (> (aref vector i) (aref vector (1+ i)))
	   do (rotatef (aref vector i) (aref vector (1+ i)))
	     (setf swapped t))
     unless swapped return vector))

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

از ما چه می خواهید؟

چه تغییراتی باید روی وبلاگ اعمال کنیم تا عملکرد و مطالب آن بهبود یابد؟

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

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

نظرات (۱۰)

علیرضا آهنی
علیرضا آهنی
علیرضا آهنی
علیرضا آهنی
علیرضا آهنی
علیرضا آهنی
علیرضا آهنی
علیرضا آهنی
فرهاد حسن پور

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

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

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

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

نظرات (۱)

علیرضا آهنی