بایگانی

Archive for the ‘برنامه نویسی’ Category

پوسته Oulipo برای وردپرس پارسی

نوامبر 4, 2011 4 دیدگاه

پوسته‌ی Oulipo با مشخصاتی مانند سادگی و سادگی و سادگی‌اش نظرم را به خودش جلب کرد‌. من هم پس از ترجمه و استفاده از آن در وبلاگ شخصی‌ام‌، تصمیم گرفتم که آن را طبق قوانین لیسانس این پوسته‌ (GPL) ، آزادانه منتشرش کنم 😉 برای دیدن پیش‌نمایشی از نتیجه‌ی استفاده‌ی این تم‌، می‌توانید همین وبلاگ رو ببینید‌، و برای دانلود‌اش از لینک زیر اقدام کنید!

لینک دانلود (‌Dropbox)

اولین تجربه با LaTeX (‌کتاب آموزش ‎(C‎+‎+‎

سپتامبر 15, 2011 3 دیدگاه

در پستی که قبلا ارسال کرده بودم (‌چرا باید LaTeX را دوست داشت‌) گفته بودم که دارم LaTeX یاد می‌گیرم‌! دلایلی هم برای این کارم آورده بودم‌. حالا از آن‌جایی که اعتقاد دارم Sometimes you gotta run to can walk!‎  برای یاد گرفتن بیشتر این ابزار‌، تصمیم گرفتم که متنی حجیم (‌دقیقا جیزی که LaTeX برایش طراحی شده‌) را به این شکل آماده کنم‌.

منبع این کتاب‌، سایت CProgramming است‌، که به نظرم یکی از کامل‌ترین منابع آموزش C‎+‎+‎ است که به صورت رایگان در سطح اینترنت قابل دسترسی است‌. در این PDF که با استفاده از LaTeX آماده شده‌، مجموعه پنج فصل از مطالب منتشر شده‌، روی سایت CProgramming در کنار هم قرار گرفته‌اند‌. در این پست قصد ندارم بیشتر از این به معرفی مطالب کتاب بپردازم و بیشتر به دنبال اشتراک گذاری تجربیاتم در آماده کردن این کتاب هستم‌. (‌این کتاب را می‌توانید از لینک پایان همین متن دریافت کنید‌)

اول از همه باید به ابزاری بپردازم که در آماده کردن این کتاب کمکم کرد‌! در واقع بدون این ابزار‌، کار عاقلانه‌ای به نظر نمی‌رسید که من تازه‌کار دست به آماده کردن چنین فایل بزرگی به زبان TeX بزنم. این نرم‌افزار TeXmaker نام دارد و اسلکور کاران عزیز می‌توانند با این Slackbuild آن را نصب کنند‌.

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

به طور کلی چیز‌های زیادی از کار با LaTeX در این پروژه‌ی شخصی یاد گرفتم‌، اما این PDF هنوز هم مشکلاتی دارد. آن‌هایی را که شناختم در زیر لیست می‌کنم‌:

  • فایل TeX آماده شده‌، بسیار حجیم هست‌، و در واقع اگر از TeXmaker استفاده نمی‌کردم محال بود که بتوانم آن را راحت مدیریت کنم‌. با توجه به این که LaTeX قابلیت تقسیم کردن پروژه به فایل‌های کوچک‌تر را دارد‌، باید از آن بهره بگیرم‌.
  • در مثال‌های کتاب که به زبان C‎++‎ بود‌، بسیاری از علامت‌ها نظیر #, &, >, < باید با علایم ویژه‌ی TeX نگاشته می‌شد‌. با این حساب دوست نداشتم که قوانین نوشتن پاراگرف هم در این مثال‌ها لحاظ شود‌، چون جز زیاد کردن مشقت خواندنشان‌ فایده‌ی دیگری نداشتند. به همین دلیل آن‌ها را در بلوک verbatim قرار می‌دادم‌. ولی متاسفانه این بلوک خطوط را نمی‌شکست و همین باعث بی‌نظمی در بعضی مثال‌ها شده است‌! ‌(‌باید به دنبال چاره‌ای برایش باشم‌)
  • تا جایی که توانستم ارجاعات متن را به مکان مربوطه لینک کردم‌، ولی ممکن است باز جاهایی از دستم در رفته باشد‌. این مشکلات و وجود علایمی مانند «‌>‌» که در لاتک به صورت علامت سوال سر و ته چاپ می‌شوند و برای رفع ایرادشان باید به روش‌هایی متوسل شد‌، بیشتر روی این نکته تاکید دارد که کسی که با لاتک کار می‌کند باید بداند چه متنی را تایپ می‌کند و مثل من یک دفعه متنی نا آشنا و نخوانده را به لاتک فشار ندهد‌!
  • برای ایجاد لینک‌هایی که کار کنند و رنگشان متفاوت باشد‌، از بسته‌ی url استفاده کردم‌. کار با آن فوق‌العاده آسان است‌، اما باز هم متاسفانه لاتک لینک‌ها را نمی‌شکست‌! ‌(‌نمی‌دانم عبارت «‌متاسفانه‌» در اینجا درست است یا نه‌) پس باید دستی این کار را می‌کردم و باز هم ممکن است جایی در متن نا همگونی رخ داده باشد‌.

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

دریافت بسته‌ی کامل کتاب ‌(‌فایل TeX به همراه خروجی‌ها اعم از PDF‌)

دسته‌ها:LaTeX, برنامه نویسی برچسب‌ها: ,

چرا باید LaTeX را دوست داشت‌؟

سپتامبر 5, 2011 8 دیدگاه

همین دیروز بود که به دوستم علی می‌گفتم «اگر هر جایی و به هر دلیلی به کلمهٔ LaTeX برخوردی‌، گوشهات رو بگیر و در رو‌!». خوشبختانه‌، لاتک با تمام سختی‌ها و پیچیدگی‌های لعنتی‌اش‌، اینقدر برایم گیرا بود که کار با آن را ادامه دهم تا برایم اثبات کند که نه‌، جز لاتک با هر حروف‌چین دیگری کار کردن‌، حرام است‌!

تازه تجربهٔ خروجی گرفتن از یک فایل tex را از سر گذرانده‌ام و خیلی خیلی زود است که بخواهم دلیل و مدرک سنگینی بیاورم که «آره آقا‌، از فردا هر کس با لاتک مطلب ننوشت‌، و یا کار با لاتک را ندانست‌، از ما نیست‌!». اما می‌خواهم برای فعلا و ثبت در خاطراتم‌، اینجا بنویسم که چگونه کفهٔ ترازو به نفع لاتک برایم پایین رفت‌:

  • انگلیسی نوشتن‌، و ساده نوشتن در لاتک‌، فوق‌العاده آسان است‌! اما وای به حالتان اگر بخواهید فارسی بنویسید‌، در این صورت باید یک دورهٔ کامل برنامه‌نویسی بسته‌هایش را بگذرانید (‌به این شوری‌ها هم که گفتم نیست‌، در آینده بیشتر در این مورد می‌نویسم‌) ‌.
  • آسان‌ترین کار ممکن در لاتک‌، پانویس نوشتن است‌، که خوب من هنوز هم بلد نیستم که در هیچ کدام از ورد پرسسور‌های رایج انجامش دهم‌!
  • فهرست کردن مطالب در لاتک فقط زحمت نوشتن tableofcontent/ را می‌طلبد‌!
  • تمام سخت‌گیری‌های لاتک در مورد پاراگراف‌ها‌، خطوط‌، علامت‌های مختلف‌ و قابلیت‌هایش برای تعیین کردن سر فصل‌، و بخش‌ها‌ نتیجه‌ای فوق‌العاده زیبا و خوانا را به شما باز می‌گرداند (‌ولی آن‌چنان دهانی از شما… که…) ‌!
  • افزودن تصویر در لاتک به قدری سخت هست‌، که هنوز جرات نکرده‌ام نزدیکش شوم‌!
  • همهٔ تجربیات بالا را اضافه کنید‌، به درد و خونریزی شدیدی که باید برای افزودن قابلیت‌های تایپ فارسی بدون درد و خونریزی در لاتک متحمل شوید‌!
  • نوشتن مقاله در لاتک‌، عملا حکم یک برنامه‌نویسی تمام عیار را دارد‌!

در کل پس از سبک سنگین کردن قضایای بالا من هم به این نتیجه رسیدم که اگر حرف از با سواد بودن در جامعهٔ امروزی می‌زنید‌، و برای مهندس مهندس شنیدن‌، آب دهانتان سر ریز می‌شود‌، حداقلش این است که مقالاتتان را با LaTeX آماده کنید‌، نه مثل استاد گرامیمان‌، ‌ به مسلط بودن به مجموعه نرم‌افزار آفیس افتخار ورزید‌! ‌ (‌گفتم «‌من هم‌» ‌، چون آرش آبادپور و امین ثابتی عزیز در این مورد قبلا سخن‌ها رانده‌اند‌) ‌.

فعلا می‌توانید برای منبع‌، به این‌ها که امین عزیز نشان داده است مراجعه کنید‌، البته‌ تگ لاتک وبلاگ هر دوی این عزیزان (‌آرش و امین‌) خواندنش خالی از لطف نیست‌.

در ضمن دلتان را هم به این خوش نکنید‌ که لاتک را در وب فارسی جستجو کنید‌، چون نتیجه‌اش انواع کاندوم است که نثارتان می‌شود‌ 😉

دسته‌ها:معرفی منبع, اسلکور, تاریخچه, حل مشکل برچسب‌ها: ,

یوتیوب‌؟ یا دانشگاه‌؟ پرده دوم

ژوئیه 19, 2011 ۱ دیدگاه

توی پرده‌ی اول این سری از پست‌ها به معرفی یک منبع عالی برای آموزش برنامه‌نویسی به خصوص برای c++ در محیط Qt پرداختم‌. اما همانطور که گفتم‌، آموزش خود زبان C++ موجود در اون مجموعه برای کسانی که به عنوان اولین زبان دارند C++ یاد می‌گیرند منبع مناسبی نیست‌. در جستجو‌های بعدی در این زمینه به بهشتی واقعی برای عاشقان یادگیری کامپیو‌تر روی اینترنت رسیدم‌. قصد یادگیری کدام یک از مباحث برنامه‌سازی زیر را دارید‌؟

باکی ریموند‌، کسی که بیشتر این مجموعه عظیم رو آماده و ارائه کرده‌، این‌طور که خودش می‌گه عاشق علم کامپیوتره‌. ولی بعد از رفتن به دانشگاه و مشاهده اینکه توی اون محیط بیشتر چیز‌هایی رو امتحان می‌ده که ربطی به علایقش نداره‌، بی‌خیالش شده و تصمیم گرفته از اینترنت یاد بگیره‌. اما دیده که همهٔ آموزش‌های خوب یا پولین‌، و یا اینکه مشخصه‌های یه آموزش درست رو پوشش نمی‌ده‌. بنابراین خودش دست به کار شده و تصمیم گرفته یه همچین منبعی رو آماده کنه‌. تمامی این آموزش‌ها همونطور که از لیست بالا معلومه هم از سایت Thenewboston در دسترسه و هم روی کانال یوتیوب این سایت قابل مشاهده هست‌.

مجموعه آموزش C++ این مجموعه که من خودم در حال گذروندن آموزش‌هاش هستم‌، فوق‌العاده کامله و به جزئیات به زیبایی هر چه تمام‌تر پرداخته شده‌. نکتهٔ خیلی قشنگ دربارهٔ آموزش‌های باکی این هست که اصلا دوست نداره مسائل رو خسته کننده تحویل مخاطب بده‌، بلکه از کوچک‌ترین فرصتی برای وارد کرده جک‌هاش به آموزش استفاده می‌کنه‌. باکی دوست نداره مدت زمان ویدیو‌هاش بیشتر از ۶-۷ دقیقه بشه و این یکی دیگه از دلایل علاقهٔ من به باکی هست‌! سری اول آموزش C++ داری ۷۳ قسمت هست و از قرار قراره در آینده‌ای نه چندان دور شاهد سری جدیدی از این مجموعه باشیم‌.

مجموعه آموزش پایتون که به دو بخش python (‌اصول برنامه نویسی پایتون و برنامه نویسی تحت خط فرمان‌) و wxpython (‌برنامه نویسی دارای رابط کاربری) تقسیم که کثرت مسائل آموزشی موجود در این زمینه اون رو به مجموعه‌ای فوق‌العاده تبدیل کرده‌.. همینطور مجموعه آموزش زبان جاوا که احتمالا یه روزی از این آموزش برای یادگیریش استفاده می‌کنم‌.

مجموعه آموزش PHP موجود در این سایت که با همکاری گروه phpacademy آماده شده هم می‌تونه یه مجموعه عالی برای یادگیری این زبان محبوب باشه‌. البته پیشنهاد می‌کنم مجموعه Beginner PHP رو قبل از مجموعهٔ فوق بگذرونید تا با اصول پایه‌ای نحو این زبان کاملا آشنا بشید‌.

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

پی‌نوشت‌: چقدر زندگی لذت‌بخش‌تره وقتی می‌بینی که همچین آدمایی توی دنیا هستن که برای آموزش دادن بهت‌، هیچ چشم‌داشت مالی‌ای بهش ندارن‌!

یوتیوب‌؟ یا دانشگاه‌؟ پرده اول

ژوئیه 11, 2011 2 دیدگاه

یه استادی داریم‌، که یه روز یه حرف خوبی زد (‌فکر کنم‌، اولین و آخرین بارش بود‌). گفتش که: اینترنت خیلی بزرگه و خیلی چیز‌ها می‌شه ازش یاد گرفت‌، ولی مهم‌ترین نکته‌اش اینجاست که خیلی راحت‌تر می‌شه توش وقت تلف کرد. منم که بچه حرف گوش کن‌، این حرفش رو هیچ‌وقت یادم نرفت‌!

حالا من می‌گم تو دانشگاه‌ها (‌حد‌اقل تو ایرانش‌) هم بیشتر از اون چیزی که یاد می‌گیری وقت تلف می‌کنی‌؟ پس چی کار کنیم‌؟ آره درسته‌، باس خودمون آستینا رو بالا بزنیم‌. رو همین حساب از این به بعد توی پست‌هایی با این عنوان منابع آموزشی خوبی که روی Youtube پیدا می‌کنم معرفی می‌کنم تا شما هم استفاده ببرین‌. این‌جوری حداقل تونستم دین خودم رو به تولید‌کننده‌های این آموزش‌ها ادا کنم‌.

تو این قسمت قصد معرفی کانال VoidRealm’s رو دارم. توی این کانال که مدیریتش رو آقای برایان بر عهده دارن‌، آموزش‌های برنامه نویسی در محیط‌هایی نظیر Visual Studio و Qt و زبان‌های مختلف نظیر C++، Java، C# ارائه می‌شه که با توجه به تصویری بودن آموزش‌ها و توضیحات خوب جناب برایان‌، به منابع خیلی به درد بخوری برای یاد‌گیری این زبان‌ها تبدیل شده‌.

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

آموزش‌هایی که بیشتر از همه توجه من رو به خودشون جلب کردن‌، بیست و خرده‌ای آموزش زبان C++ بود که من در محیط لینوکس (‌متفاوت با آقای برایان‌) از اون‌ها خیلی استفاده بردم‌، و آموزش Qt C++ که با رسیدن شماره قسمت‌هاش به ۷۸ نوید یه آموزش کامل و خوب رو برای این محیط توسعه به آدم می‌ده‌. من هنوز دارم روی یاد گرفتن C++ تمرکز می‌کنم‌، و قصد دارم بعد از اون به سراغ Qt برم‌.

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

فقط به ایننکته توجه داشته باشید‌، اگر هنوز به هیچ زبان دیگه‌ای برنامه نویسی نکردین و یا با مفاهیم اولیه برنامه نویسی‌، نظیر شروط‌، حلقه‌ها و غیره آشنا نیستین‌، آموزش‌های C++ این مجموعه به درد شما نمی‌خوره‌. بهتره یا از یه منبع دیگه استفاده کنید‌، و یا یه زبان دیگه مثل جاوا رو یاد بگیرید‌.

وقتی هم که زبان مورد علاقتون رو یاد گرفتید می‌تونید از سایت voidrealms.com به تعدادی سورس و نرم‌افزار که جناب برایان آماده کردن دسترسی داشته باشید که می‌تونه کمک خوبی به یاد‌گیری‌تون باشه‌.

دسته‌ها:معرفی منبع, برنامه نویسی, دوره برچسب‌ها: , , ,

چطور از خودمان برنامه نویسی بیاموزیم‌؟‌ دو


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

اسکریپت نویسی سمت سرور‌:
PHP:
خوب بعد از این‌که توانستید صفحه‌های وبی بسازید که کار‌های ساده را انجام دهد و اطلاعات خاصی رو از کاربر دریافت کند‌، شاید بخواهید برنامه‌هایی بنویسید که روی سرورتان اجرا شود‌، مثلا شاید بخواهید یک برنامه ارسال ایمیل بنویسید که اطلاعات کاربر را دریافت کند و به آدرس ایمیل دلخواه ارسال کند‌، و یا برنامه‌ای که بتواند با یک پایگاه داده ارتباط بر‌قرار کند‌. اینجاست که PHP، Perl، Python، Ruby و چند نمونهٔ دیگر وارد عمل می‌شوند‌. در مورد روبی که قبلا مفصلا توضیح داده‌ام‌. برای PHP هم می‌توانید به «‌آموزش PHP برای تازه‌کاران‌» از وبلاگ Webmonkey استفاده کنید‌. وقتی هم که به قدر کافی با پایه‌ها آشنا شدید می‌توانید برای یادگیری چطور ارتباط برقرار کردن با پایگاه داده‌تان از این قسمت‌، که دوباره کاری از همین وبلاگ است استفاده کنید‌.

Web Framework:
اگر برای مدتی برنامه نویسی کرده باشید‌، متوجه می‌شوید که مدتی است که دارید برای پروژه‌های متفاوت کار‌های تکراری زیادی انجام می‌دهید‌. و یا برنامه‌نویسان متفاوتی را ببینید که دارند روی پروژه‌های مختلف کار می‌کنند ولی یک نوع مشکل را دارند در پروژه‌شان حل می‌کنند‌. این‌جاست که Framework‌ها وارد عمل می‌شوند‌. این ابزار‌ها وظیفهٔ انجام بسیاری از اعمال پیچیده و تکراری را در برنامه‌نویسی را برایتان بر عهده می‌گیرند‌. برای شروع می‌توانید به این مطلب از لایف هکر مراجعه کنید‌. همچینین زیادند فریم‌ورک‌هایی نظیر CakePHP و Django و JQuery که می‌توانید برای یاد گرفتنشان به بخش مستندات سایت مربوط به آن فریم‌ورک مراجعه کنید‌. فقط یادتان باشد که زیادی به فریم‌ورک‌ها عادت نکنید‌. چون به قول برنامه‌نویسان واقغی‌، برنامه‌نویسی که برنامه‌نویسی را با فریم‌ورک یاد بگیرد‌، نمی‌تواند برنامه‌نویس خوبی باشد‌.

اسکریپت‌نویسی خط فرمان‌:

Python:

پایتون یک زبان خیلی دوست داشتنی می‌شود برایتان‌، وقتی اراده کنید شروع کنید‌. باور کنید‌، این را از روی تجربه شخصی می‌گویم‌. پایتون با وجود سطح بالا بودنش‌، واقعا نرم و انعطاف پذیر است‌. کد‌های تولیدی‌اش‌، فوق‌العاده قابل خواندن‌ و فهم هستند‌. برای پایتون یک منبع فارسی عالی سراغ دارم که در نوع خود و به زبان فارسی بی‌نظیر است‌. سایت Pylearn دو کتاب ترجمه شده را در فضایی کاملا پویا و یک انجمن کاربردی در کنار هم جمع‌آوری کرده است‌. پیشنهاد می‌کنم برای شروع کار با این زبان کتاب «‌یک بایت از پایتون‌» نوشته‌: Swaroop C H که ترجمهٔ این تیم است را دانلود و استفاده کنید‌. کتاب عالیست‌. ولی در بعضی از مواقع ضعف‌های باور نکردنی در ترجمه دارد که امیدوارم در آینده حل شود‌.

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

ادامه دارد‌…

لیست تصادفی پست‌ها در وردپرس


حتما دیده‌اید در بسیاری از وبلاگ‌های اصولا وردپرسی چند پست آخر را در سایدبار یا فو‌تر لیست می‌کنند‌. بنده با این کار ذره‌ای مخالفم‌! خوب از آنجایی که اصولا در صفحهٔ اول وبلاگ معمولا – در ۹۵ در صد مواقع – پست‌های جدید نمایش داده می‌شوند‌، دیگر عملا نیازی به یک لیست مجزا نیست‌. اما می‌توان لیستی داشت که به شناساندن وبلاگمان کمک بیشتری کند‌. در زیر کدی را برای وردپرس می‌آورم که از بین مستنداتش پیدا کردم‌. این کد از پایگاه دادهٔ وبلاگ تعداد دلخواه از پست‌های وبلاگ را به صورت اتفاقی لیست می‌کند و به نمایش می‌گذارد‌:
[php]
<?php
$args = array( ‹numberposts› => 7, ‹posts_per_page› => 5, ‹orderby› => ‹rand› );
$rand_posts = get_posts( $args );
foreach( $rand_posts as $post ) : ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endforeach; ?>[/php]
بدیهی است که با تغییر مقدار روبروی عبارت numberposts می‌توانید تعداد عناوین داخل لیست را جابجا کنید‌.

دسته‌ها:برنامه نویسی, طراحی وب برچسب‌ها: , ,