meysampg

از چیزهایی که یاد می‌گیرم، می‌نویسم… :)

۴ مطلب در آبان ۱۳۹۳ ثبت شده است

جمعه, ۳۰ آبان ۱۳۹۳، ۰۵:۱۸ ب.ظ میثم پورگنجی
ساخت پشته در متلب یا «چگونه با سلول‌ها کار کنیم؟»

ساخت پشته در متلب یا «چگونه با سلول‌ها کار کنیم؟»

چند وقت پیش، در راستای پیاده‌سازی یه ایده، به الگوریتمی رسیدم که ایده‌ش به صورت بازگشتی پیاده‌سازی میشد، اما مشکلی که این وسط وجود داشت این بود که هزینه‌بر بودن پیاده‌سازی الگوریتم، بیش از حد تحمل من بود. یادم نمیاد از کجا ولی فهمیدم که میشه برنامه‌ی بازگشتی رو با شبیه‌سازی اون کاری که CPU در پردازش این برنامه‌ها انجام میده، به صورت یک برنامه‌ی تکراری (استفاده از حلقه‌ی تکرار به جای صدا زدن تابع) نوشت، این لینک و یک سری آموزشی در این لینک به خوبی ایده و شیوه‌ی این تبدیل رو توضیح میدن. ایده‌ی کلی اینه: «CPU متغیر‌های محلی و وضعیت فعلی تابع رو در یک استک ذخیره میکنه و این کار رو تا زمان رسیدن به نتیجه‌ی نهایی تابع، در تکرارهای بعد ادامه میده.». بنابراین
  1. یه پشته بساز.
  2. صدا زدن تابع رو پوش۱ معنی کن.
  3. برگردوندن مقدار توسط تابع رو پاپ۲ معنی کن.
  4. محاسبات اصلی رو بذار داخل یه حلقه و اول هر حلقه، مقادیر مورد نیازت رو از پشته پاپ کن.

شروع داستان!

اما داستان این پست از اونجا شروع میشه که در متلب پشته نداریم! :)

ادامه مطلب...
۳۰ آبان ۹۳ ، ۱۷:۱۸ ۷ نظر موافقین ۰ مخالفین ۰
میثم پورگنجی
جمعه, ۲۳ آبان ۱۳۹۳، ۰۲:۱۵ ب.ظ میثم پورگنجی
pomodoro یا چگونه [آا-ی۰-۹/ ]* باشیم؟

pomodoro یا چگونه [آا-ی۰-۹/ ]* باشیم؟

عنوان اول قرار بود «pomodoro یا چگونه کمتر گشاد باشیم؟» باشه، ولی چندتا دلیل باعث شد این کار رو انجام ندم! اول اینکه مرز «من ِ در این وبلاگ» با من برام روشن نیست، اینجا جزئی از رسمی بودن من‌ه یا محاوره‌ای بودن من؟ دوم اینکه بحث فراتر از گشادی‌ه، این پست یه تکنیک مدیریت زمان‌ه و احتمالا به درد تنگ‌ها هم میخوره! این شد که ترجیح دادم به جای اون کلمه، هر کی هر چی میخواد بذاره.

ایده‌ی اصلی تکنیک مدیریت زمان Pomodoro از این دوتا گزاره میاد: الف) «هر چیزی که کران بالا نداشته باشه، یحتمل کار رو به کران پایین میرسونه.» و ب) «اگه سر میز غذا، لقمه‌ها رو به صورت مناسب، کوچک برداری، شاید ابتدا تصور کنی سرعت خوردنت پایین‌ه، ولی در نهایت بیشتر میتونی بخوری!». با استفاده از این دوتا ایده، زمان رو اینطور مدیریت می‌کنیم: «من نباید برای انجام کاری، تصور کنم که به اندازه‌ی کاملا کافی زمان دارم، پس کارهام رو به جای اینکه در طول x ساعت متمادی انجام بدم، در طول y زیربازه‌ی z دقیقه‌ای از x انجام میدم.». فارسی ِ خودمونیش اینکه «به جای دو ساعت پشت سر هم کار کردن، کارهام رو در ۴تا ۲۵ دقیقه انجام میدم.».
ادامه مطلب...
۲۳ آبان ۹۳ ، ۱۴:۱۵ ۷ نظر موافقین ۱ مخالفین ۰
میثم پورگنجی
جمعه, ۱۶ آبان ۱۳۹۳، ۰۵:۳۶ ب.ظ میثم پورگنجی
چنتا پکیج کاربردی لاتک

چنتا پکیج کاربردی لاتک

عنوان میتونه این سوال رو ایجاد کنه که مگه پکیج غیرکاربردی هم داریم؟ جوابش احتمالا «نه» هست، ولی منظور من هم، پکیج کاربردی لاتک برای من‌ه، همه‌ی پکیج‌های لاتک که به درد من نمیخورن، هوم؟

۱- زی‌پرشین: شاید کاربردی‌ترین پکیج لاتک که برای یک فارسی‌نویس در حال حاضر موجوده، زی‌پرشین (XePersian) باشه. لاتک بصورت پیش‌فرض از زبان‌های غیر اسکی پشتیبانی نمیکنه و این زبان‌ها، برای استفاده از امکانات لاتک، مجبورن اون رو با وصله پینه استفاده کنن. با این توضیح، زی‌پرشین مجموعه‌ای از ماکروهای آماده‌ست که امکانات خوب لاتک رو به خدمت فارسی‌نویسی در میاره. این بسته رو آقای دکتر وفا کارن‌پهلو در سال ؟ تحت مجوز LPPL منتشر کردند. توضیحات بیشتر، طریقه‌ی استفاده از این بسته و یک جامعه‌ی کاربری خوب از لاتک کاران فارسی‌زبان رو میشه در سایت پارسی‌لاتک دید.

۲- listings: این بسته برای وارد کردن کد به فایل لاتک و های‌لایت کردن اون در متن استفاده میشه. برای استفاده از اون پکیج رو لود کنید:

\usepackage{listings}
ادامه مطلب...
۱۶ آبان ۹۳ ، ۱۷:۳۶ ۳ نظر موافقین ۰ مخالفین ۰
میثم پورگنجی
سلام دنیا!

سلام دنیا!

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

مطالب این وبلاگ در دسته‌‌های زیر قرار می‌گیرن:
  • «نرم‌افزارها»یی که استفاده می‌کنم،
  • «من++»، افزایشی در فهم من از زندگی، با نکاتی که در مورد زندگی یاد می‌گیرم،
  • «ریاضیات»، شامل روزمرگی‌های زندگی حرفه‌ای من،
  • «include <tips>‎#» هم نکته‌هایی هستن که از برنامه‌نویسی با زبان‌هایی که استفاده میکنم، یاد می‌گیرم.
  • «۳۰ نما» طبقه‌بندی‌ای هست که در اون در مورد چیزهایی که از دیدن فیلم‌ها و سریال‌های مختلف یاد گرفتم و یا به ذهنم خطور کرده، می‌نویسم.

چندتا نکته که در انتشار این وبلاگ، سعی میکنم مدنظرم باشن، به شرح زیرن:

  1. سعی میکنم حداقل هر جمعه، یک پست منتشر کنم. احتمالا در طول هفته، تایتل‌ها رو بصورت پیش‌نویس ذخیره کنم و جمعه روشون کار کنم و پست ازشون بکشم بیرون.
  2. همونطور که در توضیح وبلاگ هم اومده، اینجا چیزهایی رو که «یاد می‌گیرم» می‌نویسم. این یعنی ممکن‌ه چیزهایی که یاد گرفتم غلط باشن! اگه اینطور چیزی رو احساس کردین و یا نکته‌ی تکمیلی به ذهنتون رسید، حتما نظر بذارین. بالاخره یکی‌مون یه چی یاد میگیره :).
  3. شکلک‌ها معنای خاصی دارن اینجا. یه لیست از اونا به عبارت زیره:
    • :) که معنیش یکی از ایناس: «القای آرامش به خواننده، من خیلی خفنم!، تموم کردن جمله وقتی چیزی به ذهنم نمیرسه که چطور تموم کنم، خلاصه اینجوریاس!».
    • :] که معنیش میشه «اووووووووف! لامصب!، فوقع ما وقع (همان اسمایلی معروف در عربی دوم راهنمایی زمان ما)، به به! چه کردم!».
    • :)) که به صورت یکی از عبارت‌های «خلاصه اینجوری شد!، خیلی آسون بود که!، من خیلی الان اکشنم!، از فهمیدنش کیف کردم!» تفسیر می‌شود.
    • =)) که معنیش «آی دلم! پُکیدم از خنده» می‌باشد.
    • :س یعنی «گند زدم!، چه کنیم یا مولا؟، تو را چه شده است؟، یا حضرت عباس!».
    • :دی که همون D: تفسیر میشه، شاید برای جلب نظر مخاطب به منظور توجه بیشتر هم مورد استفاده قرار بگیره.
    • -ــــ- که همون «خیلی خفنم!، بیمار آماده است.» و یا «مشکل اینه! دوشواری داره!» می‌باشد.
  4. من هیچ چارچوبی برای نوشتن ندارم. کلا هدفم هم نوشتن نیست، هدفم منتشر کردن چیزی‌ه که به درد خودم و احتمالا یه نفر دیگه بخوره. مسلما هم از اینکه ببینم مفید واقع شدم، حس خوبی بهم دست میده و خوشحال میشم!

در کل خوش اومدم :) سلام دنیا!

۲ نظر