Posts Tagged linux

راه‌اندازی wireless بعد از خواب زمستانی

مدتی بود که وقتی سیستم را به حالت Hibernate می‌بردم پس از روشن کردن سیستم دیگر نمی‌توانستم از wireless استفاده کنم و NetworkManager غیر فعال می‌شد و معمولا سیستم را در چینن مواقعی دوباره راه‌اندازی می‌کردم. به دلیل اینکه لینوکس معمولا به هیچ عنوان نیاز به راه‌اندازی مجدد سیستم برای فعال کردن قطعات سخت‌افزاری نداره تصمیم گرفتم راه حلی برای این موضوع پیدا کنم:

هر وقت چینن مشکلی براتون پیش آمد دو فرمان زیر را اجرا کنید.

sudo service networking restart
sudo service NetworkManager restart

Comments (3)

نصب TexLive 2008 در لینوکس

بالاخره تصمیم گرفتم وارد دنیای TeXnician‌ها شوم و حداقل چند صفحه‌ای را با TeX ایجاد کنم. خیلی وقت پیش با FarsiTeX آشنا شدم. سعی کردم اون را روی لینوکس نصب کنم اما به اون صورت نتونستم با اون کار کنم روزها گذشت تا همین چند روز پیش فرصت کردم توزیع‌های دیگر TeX را بررسی کنم. به پروژه‌ی XeTeX برخورد کردم که فارسی را پشتیبانی می‌کند. بعد از نصب اون روی Ubuntu 9.04 متوجه شدم که با بسته‌ی نرم‌افزاری TeX Live 2007ی که در مخازن Ubuntu 9.04 موجود هست تداخل دارد و مشکل درست عمل نمی‌کند. مجبور شدم که Tex Live 2007 را پاک کنم و نسخه‌ی به روزتر آن را به صورت دستی نصب کنم. برای نصب TeX Live 2008 به صورت دستی دو روش وجود دارد.

روش اول: بسته‌ی install-tl-unx.tar.gz را بارگیری کنید و پس از خارج کردن آن از حالت فشرده فرمان زیر را اجرا کنید:

cd /your/download/directory
sudo perl install-t
d (directory settings)
1 /usr/local/texlive/2008 (your installation directory)
2 /usr/local/texlive/texmf-local (your local hierarchy)
r (return to main menu)
i (install)

در صورتی که نصب از طریق خط فرمان را نمی‌پسندید می‌توانید نصاب را با install-tl -gui اجرا کنید. در این صورت باید بسته‌ی Perl/TK را نصب کرده باشید:

sudo apt-get install perl-tk

در ضمن در صورتی که minorی را می‌شناسید که به شما نزدیک‌تر است و سرعت بهتری دارد می‌توانید از فرمانی شبیه فرمان زیر استفاده کنید:

sudo perl install-tl –location http://mirror.example.org/its/ctan/path/texlive/tlnet/2008

پس اجرای مراحل بالا نصاب TeX Live شروع به بارگیری بسته‌های مورد نیاز خود می‌کند. این عمل بسته به سرعت شبکه‌ی اینترنت شما متفاوت می‌باشد.
پس از نصب TeX Live باید متغیر‌های زیر را به پرونده‌ی ~./profile اضافه کنید:

PATH=/usr/local/texlive/2008/bin/i386-linux:$PATH; export PATH
MANPATH=/usr/local/texlive/2008/texmf/doc/man:$MANPATH; export MANPATH
INFOPATH=/usr/local/texlive/2008/texmf/doc/info:$INFOPATH; export INFOPATH

حال یک بار Logout/login کنید و جهت اطمینان از نصب TeX Live در خط فرمان وارد کنید:

$ tex –version
TeX 3.1415926 (Web2C 7.5.7)
kpathsea version 3.5.7
Copyright 2008 D.E. Knuth.
Kpathsea is copyright 2008 Karl Berry and Olaf Weber.
There is NO warranty. Redistribution of this software is
covered by the terms of both the TeX copyright and
the Lesser GNU General Public License.
For more information about these matters, see the file
named COPYING and the TeX source.
Primary author of TeX: D.E. Knuth.
Kpathsea written by Karl Berry, Olaf Weber, and others.

روش دوم در این روش می‌توانید ابتدا دی‌وی‌دی توزیع TeX Live را از اینجا دانلود کنید. پس از باز کردن آن از حالت فشرده فرمان زیر را جهت اتصال آن به سی‌دی‌رام اجرا کنید:

sudo mount -o loop  texlive2008.iso /media/cdrom

حال مثل روش اول می‌توانید TeX Live را نصب کنید.

Comments (5)

راهنمای جامع کامپایل برنامه‌های C و C++

اگر به دنبال یک راهنمای سریع، مختصر و مفید هستید پیشنهاد می‌کنم ابتدا نوشتار «راهنمای کوچک برنامه‌نویسی با CODEBLOCK» مطالعه کنید، اما اگر از درد و سر خوشتان می‌آید پس بفرمایید:

برای کامپایل برنامه‌های C++ نیاز به یک کامپایلر می‌باشد. لیست بزرگی از کامپایلر‌های موجود برای C++ و دیگر زبان‌ها را می‌توانید در این مقاله از ویکی‌پدیا ببینید. خیلی از اساتید دانشگاهی برای شروع درس برنامه سازی پیشرفته در همان روزهای اول بدون توضیح در مورد کامپایلرها و تنوع آنها به دانشجویان کامپایلر‌های Turbo C++ یا Borland C++ و در نهایت Visual Studio را پیشنهاد می‌کنند.

کمی دست نگه دارید تا بیشتر در مورد کامپایلر‌ها آشنا شویم، سپس انتخاب با خودتان. دوباره به لیست همگردان‌های C++ در ویکی‌پدیا نگاهی بیاندازید.

قبل از هر چیز در مورد دو واژه‌ی مهم توضیح بسیار مختصری بدهم:

  • Compiler: كامپایلر برنامه یا مجموعه‌ای از برنامه‌های كامپیوتری است كه متنی از زبان برنامه نویسی سطح بالا (زبان مبدا) را به زبانی سطح پایین (زبان مقصد)، مثل اسمبلی یا زبان سطح ماشین، تبدیل می‌كند. خروجی این برنامه ممكن است برای پردازش شدن توسط برنامه دیگری مثل پیونددهنده مناسب باشد یا فایل متنی باشد كه انسان نیز بتواند آنرا بخواند.
  • IDE: مخفف عبارت انگلیسی Integrated Development Environment است و عبارت است از محیطی عمدتاً گرافیکی که تمام یا شماری از ابزارهای لازم برای توسعهٔ نرم‌افزار (بخش‌هایی یا تمام زنجیره ابزار توسعه) را خود دارد. در IDE دسترسی به ابزارها و اعمال آن‌ها در پروژهٔ جاری تسهیل شده‌است.

۱-تفاوت بین IDE و Compiler در چیست؟

کامپایلرها بر دو نوع اند. کامپایلر‌های خط فرمان و کامپایلر‌های همراه با IDE. کامپایلر‌های خط فرمان هیچ گونه محیط کاربری (GUI) ندارند و تمامی مراحل کامپایل از طریق خط فرمان سیستم عامل انجام می‌شود. اما در کامپایلرهای همراه با IDE اکثرا کار کامپایل و Link و Builld را ساده کرده‌اند و تمامی مراحل را به طور خودکار برای کاربر انجام می‌دهند. برای مثال کاربر کافیست پس از نوشتن برنامه در ویرایشگر کامپایلر، کلید F6 را فشار دهد.

البته یک IDE (محیط توسعه‌ی مجتمع) در اصل یک نرم‌افزار گرافیکی می‌باشد که با ابزارهای برنامه نویسی از جمله پیوند دهنده‌ها (Linker)، همگردان‌ها و نرم‌افزارهای کنترل نسخه (Version Control Software) و … ارتباط برقرار می‌کند و یک محیط بسیار راحت را برای برنامه‌نویسان ایجاد می‌کند.

یک محیط توسعه‌ی مجتمع معمولا امکانات زیر را در اختیار برنامه‌نویسان قرار می‌دهد:

اما به نظر من استفاده از IDE برای تازه‌واردان برای توسعه‌ی نرم‌افزار و برنامه‌نویسی بسیار اشتباه است. بهتر است ابتدا سعی کنید با مفاهیم کامپایلر آشنایی پیدا کنید. خطاها و پارامترهای آن را به خوبی بشناسید و چند هفته (چند ماهی) از IDE دوری کنید و سعی کنید تمام مراحل کامپایل یک برنامه را به روش های گوناگون به خوبی یاد بگیرید. برای مثال ابتدا سعی کنید از برنامتان یک فایل Object درست کنید سپس با Linker آن را با دیگر کتابخانه‌های سیستمی پیوند دهید و فایل اجرایی را تولید کنید.

سعی کنید با ساختار فایل‌های Makefile و هنچنین کتابخانه‌های دینامیک و استاتیک آشنا شوید و همه‌ی این مراحل را بدون استفاده از IDE با یک ویرایشگر ساده و خط فرمان اجرا کنید. پس از یادگیری این مفاهیم به سراغ SCM و همچنین VCS یا همان سیستم کنترل نسخه (Version Control System) بروید. پس از اینکه با تمامی این مفاهیم آشنا شدید می‌توانید به سراغ یک IDE مناسب بروید و طراحی نرم‌افزار را با آن تجربه کنید.

در ضمن برای مقایسه و بررسی لیستی از IDEهای مختلف می‌توانید از این پیوند استفاده کنید.

۲- برنامه نویسی C++ با مجموعه کامپایلر گنو

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

GCC از ابتدا مخفف Gnu C Compiler بود ولی از زمانی که توانست زبانهای دیگری غیر از C از قبیل C++,Ada,Java,Objective C و Fortran را کامپایل کند به Gnu Compiler Collection تغییر نام داد. پدید آورنده اصلی GCC ریچارد استالمن است کسی که بنیانگذار پروژه Gnu محسوب می شود. نخستین نسخه GCC در سال 1987 انتشار یافت که یک پیشرفت مهم محسوب می شد زیرا محصول جدید اولین کامپایلر بهینه سازی شده قابل حمل ANSI C به عنوان یک نرم افزار آزاد محسوب می شد. در سال 1992 نسخه 2.0 کامپایلر GCC عرضه شد. نسخه جدید قابلیت کامپایل کدهای ++C را نیز داشت. در سال 1997 یک انشعاب آزمایشی در GCC به نام EGCC به منظور بهینه سازی کامپیایلر و پشتیبانی کامل تر از ++C ایجاد شد. در ادامه EGCC به عنوان نسل بعدی کامپایلر GCC پذیرفته شد و تکامل آن باعث انتشار نسخه سوم GCC در سال 2004 گردید. چهارمین نسخه از کامپایلر GCC در سال 2005 عرضه شد.

۲.۱ -کامپایل برنامه‌های C و C++ در سیستم‌عامل Linux

در صورتی که از سیستم‌عامل لینوکس مبتنی بر توزیع Debian استفاده می‌کنید وارد خط فرمان سیستم عاملتان شوید.

برای اطمینان از نصب کامپایلر GNU C++ فرمان زیر را در خط فرمان وارد کنید:

$ g++ –version

g++ (GCC) 4.2.3 (Ubuntu 4.2.3-2ubuntu7)

Copyright (C) 2007 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

پیغام بالا به منزله نصب بودن g++ بر روی سیستم‌عامل می‌باشد. در صورتی که g++ بر روی Linux شما نصب نمی‌باشد فرمان زیر را اجرا کنید:

$ sudo apt-get install g++ build-essential

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

۱. کامپایل برنامه‌های C

#include <stdio.h>

int main(){

printf(«Hello World!\n»);

return 0;

}

برنامه‌ی بالا را با نام hello.c ذخیره کرده و با فرمان زیر کامپایل کنید:

$ gcc hello.c -o hello

اگر هیچ خطایی از فرمان بالا صادر نشد و هیچ پیغامی صادر نشد فرمان زیر را اجرا کنید تا برنامه ی hello اجرا شود:

$ ./hello

پیغام Hello World! در پایانه چاپ می‌شود.

۲. همگردانی برنامه‌های ++C

برنامه‌ی زیر نوشته و با نام hello.cpp ذخیره کنید:

#include <iostream>

int main(){

std::cout << «Hello World!» << std::endl;

return 0;

}

برنامه‌ی بالا را با فرمان زیر کامپایل کنید:

$ g++ hello.cpp -o hellocpp

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

$ ./hellocpp

توضیحات:

۱. کامپایلر زبان C، برنامه‌ی gcc می‌باشد.

2. کامپایلر زبان C++ برنامه‌ی g++ می‌باشد.

۳. واضح است که بیان hello.c در فرمان gcc یا g++ به معنای کامپایل hello.c می‌باشد. در صورتی که همراه با این پرونده نیاز به کامپایل پرونده‌های دیگری از جمله کلاس‌ها و توابع دیگر می‌باشید. نام آنها را به صورت پارامتر لیست کنید.

فرض کنید برنامه‌ی شما از فایل‌های main.cpp math.h math.cpp تشکلیل شده باشد برای کامپایل این برنامه باید از خط فرمان زیر استفاده کنید:

$ g++ main.cpp math.cpp -o main

۴. در فرمان‌ بالا کامپایلر ابتدا برنامه‌ی شما را به پرونده‌ی Object تبدیل می‌کند و سپس آن را توسط پیوند دهنده (Linker) به پرونده‌ی اجرایی تبدیل می‌کند. که در حقیقت کامپایلر مرحله‌ی میانی را به صورت خودکار برای شما انجام می‌دهد. برای تبدیل یک برنامه به پرونده‌ی Object فرمان زیر را اجرا کنید:

$ g++ -c main.cpp

۶- Wall: این option به معنی all warnings است و تمامی اخطار ها را به شما نشان می دهد. توجه کنیدکه اخطار با خطا فرق داره! مثلا اگر شما به جای استفاده از == از = استفاده کرده باشید یا متغیری از نوع لوکال رو مقدار دهی اولیه(initiaze)نکرده باشید یا موارد مشابه اون رو به شما گزارش می دهد. توصیه می شود که همیشه از این option استفاده کنید. چون واقعا سرعت شما را در debug کردن افزایش می دهد.

$ g++ -Wall main.cpp

۷- با فرمان زیر می‌توانید برنامتان را به کد Assembly تبدیل کنید.

$ g++ -S main.cpp

۲.۲- کامپایل برنامه‌های C و C++ در Microsoft Windows

مجموعه‌ی کامپایلر‌های gnu در ابتدا برای سیستم‌عامل GNU/Linux نوشته شد اما پس مدتی پروژه‌ی Cygwin شروع به port کردن کامپایلر gnu به سیستم‌عامل Windows نمود. هدف پروژه‌ی Cygwin از همان ابتدا پیاده‌سازی تمامی System Callهای Unix در Windows، بر اساس استاندارد Posix بود و تا به حال نرم‌افزارهای بسیاری در Linux با استفاده از Cygwin به نسخه‌ی Windowsی تبدیل شده اند. برای مثال نرم‌افزارهای OpenOffice.org و Mozilla Firefox و sshd و TeX و Apache و … با استفاده از Cygwin از نسخه‌ی linuxی به نسخه‌ی windowsی تبدیل شده اند.

MinGW از نسخه‌ی1.3.3 نرم‌افزار Cygwing جدا (fork) شد و به دلیل اینکه MinGW از Win32-API استفاده می‌کند، نمی‌تواند تمام استاندارد‌های Posix را پیاده‌سازی کند. وقتی MinGW را با MySYS ترکیب کنیم یک محیط بسیار راحت شبیه محیط های Unix برای کار با خط فرمان ایجاد می‌شود و به دلیل داشتن این ویژگی کار با MinGW راحتتر از Cygwign می‌باشد.

دو راه برای نصب MinGW وجود دارد.

۱. می‌توانید آن را از پایگاه رسمی‌اش دریافت کرده و نصب کنید.

۲. MinGW به همراه بسته‌ی نرم‌افزاری CodeBlock نصب می‌شود.CodeBlock یک IDE قدزتمند برای C++ می‌باشد و به دلیل آنکه در آینده به این IDE نیاز پیدا می‌کنیم بهتر است از روش دوم استفاده کنیم.

نسخه‌ی CodeBlcok به همراه MinGW را از اینجا دریافت و نصب کرده و سپس MySYS را از این پیوند دریافت و نصب کنید. پس از اینکه نصب MySYS تمام می‌شود یک پنجره‌ی cmd باز می‌شود چندین سوال می‌پرسد.

ابتدا از شما می‌پرسد که آیا به ادامه‌ی نصب نرم‌افزار راضی هستید؟ کلید y را فشار داده و سپس Enter را بزنید.

سوال بعد می‌پرسد که آیا شما MinGW را نصب کرده‌اید؟ کلید y را فشار داده و سپس Enter را بزنید.

محل نصب بسته‌ی نرم‌افزاری MinGW را می‌پرسد. جواب این سوال آدرسی است به صورت زیر:

C:\Program Files\CodeBlocks\MinGW

پس از طی مراحل بالا یک Shortcut روی Desktop شما به نام MYSYS ایجاد می‌شود. با اجرای MYSYS شما وارد یک محیط خط فرمان شبیه خط فرمان‌ Linux می‌شوید و می‌توانید همانند قسمت ۲.۱ همین راهنما برنامه‌های C و C++ خود را کامپایل و اجرا کنید.

حال پس از مدتی که با فرمان‌ها و هشدارهای کامپایلرهای GCC و g++ آشنا شدید می‌توانید یک IDE مناسب به سلیقتان نصب کرده و برنامه‌هایتان را در آن نوشته و کامپایل کنید. هم اکنون محیط توسعه مجتمع CodeBlock روس سیستم شما نصب می‌باشد. می‌توانید با اجرای این IDE و کار با آن از برنامه‌نویسی لذت ببرید.

در برای مقایسه‌ی IDEهای موجود در دنیای برنامه‌نویسی می‌توانید به این آدرس در ویکی‌پدیا مراجعه کنید.

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

سعی کنید از ویکی‌پدیا که یک دانشنامه‌ی آزاد می‌باشد استفاده و حتی به گسترش آن نیز کمک کنید.

Comments (17)

Linux 2.6.27 has been released

در این انتشار Linux فایل سیستم Ext4 یکی از مهمترین ویژگیهاش را منتشر کرد: Delayed allocation
این جوری که فهمیدم بعد از این که یک نرم‌افزار شروع به نوشتن اطلاعات روی disk می‌کنه این اطلاعات با کمی تاخیر نوشته مبشه. یعنی قبل از نوشته شدن روی disk روی RAM ذخیره میشه. یکی از مزایای این روش ذخیره سازی این هست که disk سخت نیاز کم تری به disk fragmentation پیدا می‌کنه.

دوم اینکه یک FileSystem دیگه به نام UBIFS و OMFS برای flash deviceها که توسط Nokia توسعه یافته، به FileSystem های دیگر Linux اضافه شد.
توضیح اینکه این FileSystem بر خلاف بقیه‌ی فایل سیستم ها با حافظه‌های بلوکی کار نمی کند بلکه تنها برای حافظه‌های flash ساخته شده است.
به اضافه‌ی خیلی از تغییرات سخت افزاری دیگه که در حیطه‌ی کاری من نبود منم بررسی نکردم.اطلاعات بیشتر

نوشتن دیدگاه

تغییر اندازه‌ی عکس‌ها با یک اشاره

چند روز پیش یک جشن برزگی تو اصفهان داشتیم، روز آزادی نرم‌افزار. عکسای زیادی گرفتم و وقتی میخواستم اونها را برای گزارش روی وب نوشتم upload کنم با یک مشکل اساسی برخورد کردم و اون هم حجم بالای عکس ها بود. حوصله‌ی تغییر اندازه‌ی تک تک اونها را با Gimp نداشتم (خوب حق بدید دقیقا یک فاجعه هست).
اما یک مطلب را همیشه درنظر دارم و اون اینه که تو GNU/Linux برای هر کاری حداقل n راه و حداکثر n^n راه وجود داره!) پست دست به کار شدیم و توی google به جست‌وجوی روش های دیگه. اما نتیجه:

1- Nautilus Image Convertor
یک برنامه ی 24 کیلو بایتی! باورتون میشه! برای دوستان GNU/Linuxی که جز بدیهیات هست. بله با همین برنامه ی کم حجم به راحتی عکسهام را select کردم و کلیک سمت راست و resize و انتخاب اندازه ی عکس و تمام!
برای نصب روی توزیع‌های مبتنی بر Debian:

sudo apt-get install nautilus-image-converter

2- Nautilus Image Script

اما برای دوست داران Kde:

-3 kim

باز هم در نتایج google جا داشت که به جست و جو بپردازم اما به همون اولی کارم را راه انداخت.

Comments (4)

گزارش جشن روز آزادی نرم‌افزار-اصفهان 2008

بلاخره انتظارها به پایان رسید و دیروز ساعت 4 بعد از ظهر جشن آزادی‌ نرم‌افزار در سالن اهل البیت اصفهان واقع در خیابان فرشادی برگزار شد. یک گزارش کوتاه! ببینید:
ساعت 2 بعد از ظهر:
از پیش از ظهر تا ساعت 2 دنبال یکی از کارهای جشن بودم. خسته و کوفته وارد سالن اهل البیت شدم. بهراد و روزبه و امیر و میثم خضرلو و … داشتند یکی یکی روی CDهای جشن برچسب جشن آزادی نرم‌افزار روی CDها می چسباندند. قضیه‌ی این CDها چیه؟ OpenCD. چی هست؟ یک سری نرم‌افزار آزاد برای سکوی Windows مثل 7zip و OpenOffice و gimp و… به چه دردی می‌خورند؟ خوب این نرم‌افزارها به بچه ها کمک می کنه که تفاوت کیفیت نرم‌افزارهای آزاد و انحصاری را از نزدیک اون هم بدون درد و سر با نصب روی Microsoft Windows درک کنند. مطمئنا خودشون تفاوت را درک خواهند کرد. خوب بگذریم. چی داشتم می گفتم؟! آهان ما هم بیکار ننشستیم. شروع کردیم به کمک و زدن برچسب ها روی CDها. جا داره همین جا از سجاد بارودکو بابت تمام طراحی های جشن تشکر کنم. از پوسترها و بنرهای تبلیغاتی گرفته تا همین برچسب‌ها و stickerها و غیره.
از شانس بد ما دوربین همرام نبود. حیف شد. چند صحنه‌ی زیبا و قشنگ از همکاری بچه ها را از دست دادم. حدود ساعت 2:45 دقیقه بود که دست از کار کشیدم و رفتم دوربینم را بیارم. تا اومدم برم و آماده بشم و برگردم یه یک ساعتی طول کشید.

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

داخل ساختمان، ستاد استقبال:
سمت چپ وردی ستاد استقبال پذیرای مهمانان عزیر هستند. یکی نفر مسئول کسانی که ثبت نام نکرده اند و دیگری (روزبه را میگم) مسئول افرادی که ثبت نام کرده اند. روزبه در حال برسی و تطبیق نام ثبت نام کنندگان با laptop می‌باشد.

میثم خضرلو(سمت راست) هم در حال راهنمایی میهمانان برای ثبت نام و دریافت OpenCd و ورود به سالن همایش:

مرحله‌ی بعدی هم هدیه‌ی OpenCD هست:

خوب این راهرو را طی می کنیم و وارد سالن دیگری می شویم. وسط سالن یک میز مزین به بادکنک‌های SFD مشاهده می شود:

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

ساعت 4:07:
آقای فکار با امید و بهراد در حال تنظیم مراسم جشن. اینم یه عکس از روی لیست تنظیم شده‌ی مراسم امروز:

ساعت 4:27:
از دور همراه تکان دادن دست‌ها. سلام آقای ادیب. نزدیک تر می‌شویم تا با جزئیات کار ایشان آشنا شوی. آهان، دارند persent مربوط به سمینارشون را آماده می کنند. اقای ادیب منو نگاه کنید: اینم از عکس:

ساعت 4:47:
بعد از شروع مراسم و تلاوت قرآن و معرفی موسسه‌ی اهل‌البیت و … نوبت میرسه به سمینار آقای ادیب با محوریت معارفه‌ی گروه کاربران لینوکس اصفهان و تاریخچه و سابقه‌ی آن:

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

مجید سلامت، استاد جلوه های ویژه و میزکار سه بعدی لینوکس در حال معرفی میزکار سه بعدی لینوکس می باشد:

بعد از اون هم آقای ناصر (امید) غانم‌زاده طبق معمول در مورد کسب و کار نرم‌افزار آزاد/متن‌باز صحبت کردند. موضوع داغی که همیشه طرفداران نرم‌افزار های انحصاری در این مبحث متحیرند.


روزبه و امیر هم که آنلاین شدند و روزبه در حال گزارش مراسم جشن به صورت آنلاین در وبلاگش:

سپس در جلسه‌ی پرس‌وپاسخ آقایان غانم‌زاده و ادیب و اسلامی فر به سوالات میهمانان پاسخ می‌دادند.

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

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

عکس یادگاری از تمام افراد شرکت کننده در جشن:

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

در این باره:
کمی بی ربط به مراسم امروز
جشن روز آزادی نرم‌افزار در اصفهان برگزار شد

Comments (10)

ایجاد partition Swap برای گوشی Motorola A1200

توی GNU/Linux یک روشی وجود دارد که می‌توان یک Partition مجازی داخل یک Partition ایجاد کرد. و حتی این Partition را با ابزارهای mkfs.ext3 و mkfs.msdos و mkswap و … اون Patition را Format کرد.

خوب گوشی Motorola A1200 هم از این قاعده مثتثنی نیست. پس ابتدا سعی می کنیم داخل Memory Card یک Partition مجازی Swap ایجاد کنیم. سپس با استفاده از فرمان swapon اونو فعالش می‌کنیم.

خوب برای شروع باید بگم که نیاز دارید برنامه ی ekonsole را روی گوشیتون نصب کنید تا به خط فرمان Linux دسترسی پیدا کنید.
حال مراحل زیر را اجرا کنید. (مراحل زیر را در یک رایانه‌ی مجهز به Linux انجام دهید زیرا فرمان mkswap در A1200 موجود نمی‌باشد.)

dd if=/dev/zero of=/swp bs=1 count=32M
mkswap swp

فایل swp ایجاد شده را به Memory Card گوشیتان منتقل کنید.
سپس وارد برنامه‌ی ekosole شوید و فرمان زیر را اجرا کنید:

swapon /mmc/mmca1/swp

برای حصول اطمینان از اینکه Patition Swap فعال شده یا نه فرمان زیر را اجرا کنید:

cat /proc/meminfo

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

Comments (2)

abbreviation ها در Vim

در ویرایشگر Vim مبحثی داریم به نام abbreviationها. فرض کنید در یک کد جاوا شما بخواهید از چندین بار از System.out.println استفاده کنید مجبور خواهید شد که این عبارت را چندین بار تکرار کنید البته Vim با خصوصیت auto-complete خودش این مشکل را هم حل کرده اما راه ساده تر اینه که ما بیاییم و عبارات طولانی ای که بیشتر مورد استفاده قرار میگیرد را اختصار سازی کنیم. برای مثال توی vim می تونید عبارت زیر را وارد کنید:

:ab sysout System.out.println

این کار باعث میشه که در هنگام تایپ برنامه هر گاه کلمه ی sysout را تایپ کنید به طور خودکار به System.out.println تبدیل بشه:

sysout[space] > System.out.println
sysout( > System.out.println(

اما یک نکته ای که یادم رفت بگم اینه که وقتی از برنامه ی Vim خارج شوید تمام abbreviation ها پاک می شوند پس برای اینکه هر دفعه نخواهیم این آنها را تعریف کنیم همگی را در فایل ~.vimrc ذخیره کنید.

Comments (3)

با Negative شب را به صبح برسانید

اگر مثل من به سرتون زده و مثل من که ساعت 3:30 شبه و اومدم پشت کامپیوتر نشستم هستید. شاید یه دو سه ساعت که شبانه با رایانه کار کنید با خودتون افسوس بخورید که چرا بیخودی وقتتون تلف کردید و الانم چشاتون آنچنان درد می کنه که نمیدونید چجوری برید سراغ رخت خواب.
همون طور که میدونید خدا شب ها را قرار داده برای اینکه ماها آرامش بگیریم و بخوابیم ولی حالا اگه دوست دارید بیدار بمونید که به صلاح نیست یه نکته ی ظریف را حتما گوش کنید. اولش ممکنه براتون سخت و ناخوشایند باشه اما بعدش عادت می کنید.

خلاصه بگم شبها هر چقدر هم چراغ ها را روشن کنید بازم روشنایی اتاق به حد روشنایی در روز نمیرسه و نتیجه این میشه که نور صفحه ی نمایش شمارا اذیت می کنه. پس حتما از Negative در compiz استفاده کنید.

Comments (1)

کتاب The Cathedral and The Bazaar

امروز یه وقتی پیدا کردم تا این کتاب را که مدت ها بود می خواستم بخونم را مطالعه کنم. این کتاب نوشته Eric S. Raymond هست و دو مدل ایجاد نرم افزار را تحلیل می کند:

  • مدل کلیسا: مدلی که بیانگر اکثر پروژه ها کنونی تجاری جهان هست
  • مدل بازار: مدل پروژه های باز متن در دنیای لینوکس

نویسنده خود یک برنامه نویس حرفه ای می باشد و در یکی از پروژه های باز متن خود به نام fetchmail به آزمایش تيوری مدل بازار می پردازد و این کتاب مدل بازار را به شرح می دهد و به اثبات قضیه ی «با وجود چندین نگاه جست و جو گر، تمامی خطاها برطرف می شود.» می پردازد. (می تونید این نرم افزار را در توزیع های Debian base نصب کنید: sudo apt-get install fetchmail)

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

  • ‫ شروع هر نرم افزار خوب از مشکلات شخصی برنامه نویسان آن است‬.
  • برنامه نویسان خوب می دانند که چطور برنامه بنویسند. اما برنامه نویسان خبره، می دانند که چطور برنامه ها را بازنویسی کنند (و دوبازه به کار بگیرند)
  • همکار پنداشتن کاربران، راحت ترین روش برای تسریع پیشرفت برنامه نویسی و کاراترین روش برای عیب یابی نرم افزار است.
  • برنامه ایت را زود و به تناوب منتشر کن و به مشتریانت گوش بده
  • قانون لینوکس: با وجود چندین نگاه جست و جو گر، تمامی خطاها برطرف می شوند.
  • اگر شما با تست کننده های نسخه ی بتای برنامه تان، چنان که آنها با ارزش ترین منبع شما هستند، برخورد کنید، آنها به عنوان با ارزش ترین منیع شما به شما پاسخ خواهند داد.
  • روش کارای بعدی برای داشتن ایده های خوب، کسب ایده های خوب از کاربرانتان است.
  • رسیدن به حد کمال (در طراخی) در حالتی که چیز دیگری برای اضافه کردن وجود ندارد، به دست نمی آید، بلکه این مهم زمانی حاصل می شود که نتوان چیزی را از طرح مورد نظر کم کرد.

download ترجمه ی فارسی کتاب: The Cathedral And The Bazaar

نوشتن دیدگاه

Older Posts »