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

رفتن به اول خط

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

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

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

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

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

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

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

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

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

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

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

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

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

نظرات (۱)

علیرضا آهنی

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

(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 برای اندروید هم استفاده کرد.

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

نظرات (۱)

علیرضا آهنی

پایتون ۳.۸ و عملگر :=

در پایتون ۳.۸ یک عملگر جدید برای انتصاب معرفی شده است.این عملگر جهت انتصاب در عبارات بزرگتر استفاده می‌شود. مثلا:

a = 10
if (b := a) == 10:
...

در تکه کد بالا هم‌زمان مقدار b برابر مقدار a می‌شود و هم مقایسه انجام می‌شود.

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

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

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

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

سایت هواشناسی برای گیک‌ها

wttr.in

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

نظرات (۲)

فرهاد حسن پور

پنج سال وبلاگ نویسی

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

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

نظرات (۳)

فرهاد حسن پور
فاروق کریمی زاده
فرهاد حسن پور

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

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

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

اکثر ما بابت جاسوس هایی که بسیار دوستشان داریم و با خودمان همه جا می بریم مقادیر زیادی پول خرج کردیم. یک پیشنهاد؛ یک سری به دسترسی نرم افزار های سیستمی مخصوصا نرم افزار های گوگل (برای گوشی های اندرویدی) بزنید. اکثر برنامه ها از جمله گوگل پلی به میکروفون، دوربین و مخاطبین دسترسی دارند. اصلا متوجه بخش Recommended for you در برنامه گوگل پلی شده اید؟ این بخش بر اساس سابقه جست و جو برنامه هایی که می تواند برای شما جذاب باشد را لیست می کند.

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

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

Image hijack

این اتفاق یعنی Image hijacking در ویندوز زمانی رخ می دهد که کاربر یا یک بدافزار در رجیستری به آدرس زیر تغییراتی به وجود بیاورد.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

اگر آدرس بالا کلیدی با نام برنامه مورد نظر مانند taskmgr.exe ساخته شود و در آن مقداری از نوع رشته با نام Debugger ایجاد کنید می توانید در آن آدرس یک برنامه را بنویسید تا با برنامه اصلی جاییگزین شود و به جای آن اجرا شود و یا با خالی گذاشتن این مقدار مانع از اجرا شدن آن شوید. (در این مثال می توانید تر اجرا شدن برنامه Task manager تغییرات ایجاد کنید.)

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

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

ایجاد تغییرات در رجیستری ویندوز با استفاده از کد

اغلب برنامه ها در ایجاد تغییرات در رجیستری ویندوز مخصوصا کلید های حساس رجیستری مجاز به دسترسی نیستند و با خطای Access denied مواجه می شوند. در این مطلب می خواهم در خصوص چگونگی دور زدن این منع دسترسی توضیحاتی بدهم.

از آن جا که رجیستری ویندوز می تواند ابزار مخربی برای بدافزار ها باشد و تغییرات انجام شده در آن می تواند برای کاربران فاجعه بار باشد، لزا در بعضی کلید ها دسترسی های خاصی نیاز است؛ مخصوصا اگر با یک زبان تحت دات نت فریم ورک سر و کار داشته باشید (مانند سی شارپ). حال برای تغییرات می توانید از یک برنامه مورد اطمینان ویدوز به نام Reg.exe استفاده کنید. وجود این نرم افزار باعث شده تا بسیاری از نرم افزار ها به سادگی بتوانند حتی به جا های حساس ویندوز آسیب زده و مشکلاتی بوجود بیاورند. این برنامه درواقع یک واسط خط فرمان برای تغییر در رجیستری هست که توسط مایکروسافت نوشته شده و در آدرس "C:\Windows\System32\reg.exe" قرار دارد. برای استفاده از این برنامه لازم است با چگونگی دادن دستورات به آن آشنا شوید که توضیح آن در این مطلب نمی گنجد و پیشنهاد می کنم در خط فرمان توسط دستور reg help با چگونگی استفاده از آن آشنا شوید. برای انجام تغییرات کافیست از طریق کد های برنامه خود این نرم افزار را اجرا و دستورات لازم را به آن بدهید.

توجه این برنامه می تواند به شما دسترسی بیشتری در ویرایش رجیستری بدهد، پس این شما هستید که تصمیم می‌گیرید از این ترفند برای کار های خوب استفاده کنید یا بد!

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

نظرات (۱)

فرهاد حسن پور

پاسخ چالش ترک عملگر ها

مهلت ارسال پاسخ به چالش تمام شد و این هم کد من برای جواب چالش ترک عملگر ها

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