<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>دست نوشته‌های یک دانشجوی آی‌تی</title>
	<atom:link href="http://blog.itnotes.info/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.itnotes.info</link>
	<description>مطالبی که ترجیح می‌دهم شما هم از آن‌ها باخبر باشید</description>
	<lastBuildDate>Sun, 07 Mar 2010 15:54:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>درایور پرینترهای کانن Canon LBP برای openSUSE x86_64</title>
		<link>http://blog.itnotes.info/archives/292</link>
		<comments>http://blog.itnotes.info/archives/292#comments</comments>
		<pubDate>Sun, 07 Mar 2010 15:54:07 +0000</pubDate>
		<dc:creator>بهرام</dc:creator>
				<category><![CDATA[سیستم‌عامل]]></category>
		<category><![CDATA[گنو/لینوکس]]></category>

		<guid isPermaLink="false">http://blog.itnotes.info/?p=292</guid>
		<description><![CDATA[من به شخصه پرینترهای Canon رو خیلی دوست دارم. به خاطر اینکه اولا خیلی با کیفیت هستن و دیگه اینکه برای پرینترهاش درایور اوپن سورس رو منتشر می‌کنه. شما هر سیستمی داشته باشید می‌تونید روی اون کامپایل کنید. 
مثلا در این آدرس درایور لینوکس برای پرینترهای نوع LBP موجود هست. اما وقتی پکیج رو ببینید [...]]]></description>
			<content:encoded><![CDATA[<p>من به شخصه پرینترهای Canon رو خیلی دوست دارم. به خاطر اینکه اولا خیلی با کیفیت هستن و دیگه اینکه برای پرینترهاش درایور اوپن سورس رو منتشر می‌کنه. شما هر سیستمی داشته باشید می‌تونید روی اون کامپایل کنید. <a href="http://blog.itnotes.info/wp-content/uploads/2010/03/canon_lbp2900_1.jpg"><img class="alignleft size-full wp-image-293" title="canon_lbp2900_1" src="http://blog.itnotes.info/wp-content/uploads/2010/03/canon_lbp2900_1.jpg" alt="" width="200" height="200" /></a></p>
<p>مثلا <a href="http://software.canon-europe.com/products/0010461.asp" target="_blank"><strong>در این آدرس</strong></a> درایور لینوکس برای پرینترهای نوع LBP موجود هست. اما وقتی پکیج رو ببینید ، بسته‌ی باینری فقط برای معماری‌های i386 اینتل وجود داره. اگه شما یک سیستم ۶۴ بیتی اینتل ( و یا AMD ) داشته باشید این درایور اصلا کار نمی‌کنه !! ولی مشکلی نیست. در همین پکیج سورس درایور هم موجوده و می‌تونید کامپایل کنید.</p>
<p><a href="http://forums.opensuse.org/hardware/410015-canon-lbb5100-capt-driver-x86_64-a.html#post1957353" target="_blank"><strong>در این پست خیلی عالی</strong></a> نحوه‌ی کامپایل این درایور رو توضیح داده. با نصب تعدادی بسته‌های glib2-devel و cups-devel این سورس به راحتی کامپایل میشه و می‌تونید براش RPM درست کنید.</p>
<p>اگه کامپایل کردنش براتون خیلی سخته ، من این کار رو براتون کردم و می‌تونید دانلود کنید.</p>
<p style="text-align: center;"><a href="http://blog.itnotes.info/wp-content/uploads/2010/03/Canon_LBP-x86_64.tar" target="_self"><strong>دانلود درایور ۶۴ بیتی پرینترهای Canon سری LBP</strong></a></p>
<p>خواستم اون رو در همون فروم بذارم اما مثل اینکه ثبت اشتراک فعلا مشکل داره. اگه کسی تونست ، اونجا هم آپلود کنه.</p>
<p>موفق باشید.</p>
<p>پ.ن : عکسی که گذاشتم همین پرینتری هست که دارم استفاده می‌کنم (LBP2900)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnotes.info/archives/292/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>من ، لپ‌تاپ VAIO و یک توزیع بی‌نظیر به نام openSUSE 11.2 amd64</title>
		<link>http://blog.itnotes.info/archives/288</link>
		<comments>http://blog.itnotes.info/archives/288#comments</comments>
		<pubDate>Sun, 07 Mar 2010 10:36:59 +0000</pubDate>
		<dc:creator>بهرام</dc:creator>
				<category><![CDATA[KDE]]></category>
		<category><![CDATA[سیستم‌عامل]]></category>
		<category><![CDATA[گنو/لینوکس]]></category>

		<guid isPermaLink="false">http://blog.itnotes.info/?p=288</guid>
		<description><![CDATA[تا حالا فکر می‌کردم که ابونتو بهترین توزیع برای من تا آخر عمرم خواهد بود. اما با خرید یک لپ‌تاپ سونی فهمیدم که واقعا حتی یک بار هم توزیع ۶۴ بیتی ابونتو رو با VAIO تست نزدن ( چون با هر روشی که شما بشناسید رفتم اما وسط نصب مشکل داشت و نمی‌شد که نصب [...]]]></description>
			<content:encoded><![CDATA[<p>تا حالا فکر می‌کردم که ابونتو بهترین توزیع برای من تا آخر عمرم خواهد بود. اما با خرید یک لپ‌تاپ سونی فهمیدم که واقعا حتی یک بار هم توزیع ۶۴ بیتی ابونتو رو با VAIO تست نزدن ( چون با هر روشی که شما بشناسید رفتم اما وسط نصب مشکل داشت و نمی‌شد که نصب بشه ) <a href="http://blog.itnotes.info/wp-content/uploads/2010/03/opensuse.png"><img class="alignleft size-full wp-image-289" title="opensuse" src="http://blog.itnotes.info/wp-content/uploads/2010/03/opensuse.png" alt="" width="200" height="125" /></a></p>
<p>اما قبلا هم <a href="http://www.opensuse.org" target="_blank">openSUSE</a> رو به عنوان یک گزینه‌ی جایگزین عالی در نظر داشتم ( چون ۳۲ بیتیش رو داشتم و تست کرده بودم ) و وقتی <a href="http://linuxshop.ir/product_info.php?products_id=487" target="_blank">سفارش دادم</a> و بدستم رسید واقعا عالی نصب شد و همه‌چیز تموم بود.فقط یه مشکل کوچیک بود و اونم نصب کارت گرافیک <a href="http://www.nvidia.com">nVidia</a> بود. البته نه خود نصبش بلکه تنظیماتش. چون به راحتی نصب می‌شد ولی وقتی سیستم رو Restart می‌کردم روی مانیتور هیچ خروجی‌ای نداشتم.</p>
<p>با یک سری جستجوی نه‌چندان حرفه‌ای (!! <img src='http://blog.itnotes.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ) فهمیدم که این یه مشکل رایچ در لپ‌تاپ‌های VAIO هستش. به همین دلیل راه حل رو براتون اینجا می‌نویسم تا کسانی که مثل بنده مشکل دارن ، دیگه نداشته باشن :</p>
<p>۱- قبل از هر چیز بایستی آخرین درایور nVidia که <a href="ftp://download.nvidia.com/XFree86/Linux-x86_64/195.30/" target="_blank">از این آدرس</a> قابل دانلود هست رو دانلود کنید. برای نصب این درایور باید یه سری بسته‌های اضافی رو از طریق YaST ( که واقعا عالیه ) نصب کنید ( مثل make ، autoconf, kernel-source-devel, gcc, )</p>
<p>۲- بعد از ریست کردن سیستم در صورتی که صدای ورود به سیستم رو شنیدید و هیچ خروجی نداشتید ، مراحل زیر رو انجام بدید.</p>
<p>۳- <a href="http://www.entechtaiwan.com/files/softmccs.exe" target="_blank">این نرم افزار</a> را دانلود کنید. اون رو اجرا کنید (در ویندوز البته !! ) . حال باید EDID خودتون که در ویندوز قابل شناسایی هست رو ذخیره کنید ( file -&gt; Save EDID as ). اسم فایل زیاد مهم نیست ولی میتونید اون رو با اسم edid.bin ذخیره کنید.</p>
<p>( بقیه در ادامه نوشته )</p>
<p><span id="more-288"></span></p>
<p>۴- سیستم رو ریست کنید و به جای محیط اصلی وارد Fail Safe بشید. حالا اگه به سیستم Login کرده‌اید Logout کنید و از Session گزینه‌ی Console Login رو انتخاب کنید ( و یا به راحتی Ctrl+Alt+F1 رو بزنید )</p>
<p>۵- فایل edid.bin رو به مسیر /etc/X11 کپی و یا انتقال بدید. (mv /path/to/your/edid.bin /etc/X11)</p>
<p>۶- از فایل xorg.conf در همین مسیر بکاپ بگیرید. (sudo cp xorg.conf xorg.conf_backup)</p>
<p>۷- حالا xorg.conf رو ویرایش کنید ( قبلا nano رو نصب کنید اگه نصب نیست )</p>
<p>قسمتی از فایل که شامل این قسمت هست رو پیدا کنید :</p>
<blockquote>
<p style="text-align: left;">Section &#8220;Device&#8221;<br />
Identifier     &#8220;Device0&#8243;<br />
Driver         &#8220;nvidia&#8221;<br />
VendorName     &#8220;NVIDIA Corporation&#8221;<br />
EndSection</p>
</blockquote>
<p style="text-align: right;">حالا این دو خط رو به شکل زیر بهش اضافه کنید :</p>
<blockquote>
<p style="text-align: left;">Section &#8220;Device&#8221;<br />
Identifier     &#8220;Device0&#8243;<br />
Driver         &#8220;nvidia&#8221;<br />
VendorName     &#8220;NVIDIA Corporation&#8221;<br />
<strong>Option    &#8221;ConnectedMonitor&#8221;    &#8221;DFP-0&#8243;<br />
Option    &#8221;CustomEDID&#8221;    &#8221;DFP-0:/etc/X11/edid.bin&#8221;</strong><br />
EndSection</p>
</blockquote>
<p style="text-align: right;">بعد فایل رو ذخیره کنید. و کار تمومه ! بعد از ریست باید لوگوی nVidia رو قبل از ورود به محیط گرافیکی ببینید.</p>
<p style="text-align: right;">__________________________________________________________________</p>
<p style="text-align: right;">پ.ن۱: این کار ها رو در همون محیط گرافیکی Fail Safe میتونید انجام بدید ( البته با Dolphin Super User که توی قسمت System از Application در KDE وجود داره.</p>
<p style="text-align: right;">پ.ن۲: DFP مخفف Default Flat Panel هست که مثل اینکه فعلا این توزیع‌ها نمی‌تونن کامل شناساییش کنند برای همین ما خودمون دستی بهش شناسوندیم.</p>
<p style="text-align: right;">پ.ن۳: لینک منبع این آموزش رو یادم رفته ( پاک شده ! ) اگه پیداش کردم حتما اضافه می‌کنم.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnotes.info/archives/288/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>وقفه چندین روزه !!</title>
		<link>http://blog.itnotes.info/archives/284</link>
		<comments>http://blog.itnotes.info/archives/284#comments</comments>
		<pubDate>Wed, 24 Feb 2010 18:40:58 +0000</pubDate>
		<dc:creator>بهرام</dc:creator>
				<category><![CDATA[اخبار جدید]]></category>
		<category><![CDATA[سیستم‌عامل]]></category>

		<guid isPermaLink="false">http://blog.itnotes.info/?p=284</guid>
		<description><![CDATA[به روز شد : بالاخره موفق شدم که openSUSE amd64 رو با موفقیت بر روی سیستمم نصب کنم. به زودی پستی در مورد نحوه‌ی نصب اون بر روی لپ‌تاپ‌های VAIO خواهم نوشت. پس فعلا !
از همه ی خوانندگان وبلاگ این حقیر به خاطر بروز نکردن چندین روزه ی وبلاگ عذرخواهی می کنم.
یک سیستم Sony VAIO [...]]]></description>
			<content:encoded><![CDATA[<p><strong>به روز شد : </strong><em>بالاخره موفق شدم</em> که openSUSE amd64 رو با موفقیت بر روی سیستمم نصب کنم. به زودی پستی در مورد نحوه‌ی نصب اون بر روی لپ‌تاپ‌های VAIO خواهم نوشت. پس فعلا !</p>
<p>از همه ی خوانندگان وبلاگ این حقیر به خاطر بروز نکردن چندین روزه ی وبلاگ عذرخواهی می کنم.</p>
<p>یک سیستم Sony VAIO گرفتم به امید اینکه بتونم بهتر روش گنو/لینوکس نصب کنم اما متاسفانه تا حالا موفق نشدم هیچ توزیع ۶۴ بیتی رو روش نصب کنم. و نوشتن مطلب هم بدون گنو/لینوکس اصلا نمی چسبه به همین دلیل فعلا تا وقتی که یه توزیع رو روی این سیستم جدید بالا بیارم منتظر پست جدید نباشید.</p>
<p>فعلا که مجبورم این سیستم ضد انسانیت ( ویندوز !!) رو تحمل کنم.</p>
<p>ایشالله پست بعدیم روی یه توزیع ۶۴ بیتی خوب خواهد بود. اگه دوستان هم تجربه ای در این زمینه دارن ، ممنون میشم بگن.</p>
<p>فعلا.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnotes.info/archives/284/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>وب سایت ITLPoll.CoM بر خط شد</title>
		<link>http://blog.itnotes.info/archives/276</link>
		<comments>http://blog.itnotes.info/archives/276#comments</comments>
		<pubDate>Wed, 10 Feb 2010 17:13:45 +0000</pubDate>
		<dc:creator>بهرام</dc:creator>
				<category><![CDATA[ITLPoll]]></category>
		<category><![CDATA[اخبار جدید]]></category>
		<category><![CDATA[پاسخ به سوالات]]></category>

		<guid isPermaLink="false">http://blog.itnotes.info/archives/276</guid>
		<description><![CDATA[خودم اصلا راضی نبودم که برای یه اسکریپت ساده‌ی نظرسنجی یه سایت و دامین راه‌اندازی کنیم. اما فشار مدیر تیم TrilexNET وادارم کرد که امروز بشینم و یک سایت رو مونتاژ (!) کنم و برخط کنم. هرچی که گفتم من اصلا طراح گرافیک نیستم و دست به قلمم خوب نیست ، گوش نکرد که نکرد [...]]]></description>
			<content:encoded><![CDATA[<p>خودم اصلا راضی نبودم که برای یه اسکریپت ساده‌ی نظرسنجی یه سایت و دامین راه‌اندازی کنیم. اما فشار مدیر تیم <a title="TrilexNET Inc" href="http://www.trilexnet.com" target="_blank">TrilexNET</a> وادارم کرد که امروز بشینم و یک سایت رو مونتاژ (!) کنم و برخط کنم. هرچی که گفتم من اصلا طراح گرافیک نیستم و دست به قلمم خوب نیست ، گوش نکرد که نکرد !!</p>
<p><img class="alignleft" title="ITLPoll Website" src="http://blog.itnotes.info/wp-content/uploads/2010/02/itlpoll_website.jpeg" alt="" /></p>
<p>به هر حال این سایت رو بیشتر به خاطر فرومش راه‌اندازی کردم تا افراد سوالات خودشون رو در مورد مسائل مختلف از نصب گرفته تا استفاده در اون بپرسند.</p>
<p>برای دیدن سایت <a title="ITLPoll Website" href="http://www.itlpoll.com" target="_blank">اینجا را کلیک کنید</a>.</p>
<p>برای رفتن به انجمن پشتیبانی ITLPoll <a title="ITLPoll Support Forums" href="http://forums.itlpoll.com" target="_blank">اینجا را کلیک کنید</a>. ( از عزیزان توسعه دهنده وب که می‌تونن من رو کمک کنند ، تماس بگیرن تا مدیرشون کنم ! )</p>
<p>ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ</p>
<p>بعضی از دوستان هم که سوال می‌کنند مثل اینکه لینک ورود به مدیریت کمتر به چشم می‌خوره که در اینجا دوباره می‌زارم.</p>
<ul>
<li><a title="صفحه اصلی" href="http://itlpoll.trilexnet.com" target="_blank">صفحه کاربر نهایی</a></li>
</ul>
<ul>
<li><a title="ورود به مدیریت" href="http://itlpoll.trilexnet.com/admin" target="_blank">صفحه ورود به مدیریت</a></li>
</ul>
<p>نام کاربری : demo</p>
<p>رمز عبور : demo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnotes.info/archives/276/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>مسئله اینشتین : آیا جزو ۲ درصد مردم هوشمند جهان هستید ؟!!</title>
		<link>http://blog.itnotes.info/archives/265</link>
		<comments>http://blog.itnotes.info/archives/265#comments</comments>
		<pubDate>Tue, 09 Feb 2010 18:03:01 +0000</pubDate>
		<dc:creator>بهرام</dc:creator>
				<category><![CDATA[برنامه‌نویسی]]></category>
		<category><![CDATA[هوش مصنوعی]]></category>
		<category><![CDATA[گنو/لینوکس]]></category>

		<guid isPermaLink="false">http://blog.itnotes.info/archives/265</guid>
		<description><![CDATA[این ترم برای هوش مصنوعی ، استادمون چندتا مسئله داده بود که یکیشون مسئله‌ی اینشتین (Einstein) بود. اینشتین ادعا کرده که ۹۸ درصد مردم جهان نمی‌تونن این مسئله رو حل کنن! حالا صرف‌نظر از روش‌های حل مسئله در هوش مصنوعی اگه می‌خواید هوش خودتون رو آزمایش کنید ، بفرمایید. البته من تا حالا افراد زیادی [...]]]></description>
			<content:encoded><![CDATA[<p>این ترم برای هوش مصنوعی ، استادمون چندتا مسئله داده بود که یکیشون مسئله‌ی اینشتین (Einstein) بود. اینشتین ادعا کرده که ۹۸ درصد مردم جهان نمی‌تونن این مسئله رو حل کنن! حالا صرف‌نظر از روش‌های حل مسئله در هوش مصنوعی اگه می‌خواید هوش خودتون رو آزمایش کنید ، بفرمایید. البته من تا حالا افراد زیادی رو دیدم که این مسئله رو حل کردن و تا جایی که علمم قد بده ، بیشتر از ۲ درصد میشن (!!). به هر حال اگر کامپیوتر رو با انسان مقایسه کنیم و اون رو یک عامل هوشمند در نظر بگیریم ، پس باید بتونه اون رو حل بکنه ( چون به قدر کافی سریع و با دقت هست و هوش رو هم ما که هوشمند‌ترین عامل‌ها هستیم ، بهش داده‌ایم )</p>
<p><img class="alignleft" title="Albert Einstein" src="http://blog.itnotes.info/wp-content/uploads/2010/02/AlbertEinstein.jpg" alt="" /></p>
<p>به هر حال شروع می‌کنیم: ۵ عدد خانه‌ی منحصربفرد داریم که دارای رنگ‌های مختلف و غیریکسان هستند، در هر کدام از این خانه‌ها ، ۵ نفر با پنج ملیت جداگانه زندگی می‌کنند. این ۵ نفر هرکدام نوشیدنی متفاوت می‌نوشند ، حیوان متفاوت نگهداری می‌کنند و سیگار متفاوت می‌کشند. <strong>ماهی در کدام خانه زندگی می‌کند ؟</strong></p>
<p>راهنمایی‌ها :</p>
<p>۱- مرد بریتانیایی در خانه قرمز زندگی می‌کند.</p>
<p>۲- مرد سوئدی سگ نگه می‌دارد.</p>
<p>۳- دانمارکی چای می‌نوشد.</p>
<p>۴- خانه سبز در سمت چپ خانه سفید قرار دارد.</p>
<p>۵- صاحب خانه سبز قهوه می‌نوشد.</p>
<p>۶- مردی که سیگار PallMall می‌کشد ، پرنده نگه می‌دارد.</p>
<p>۷- صاحب خانه زرد رنگ سیگار DunHill می‌کشد.</p>
<p>۸- مردی که در خانه وسطی زندگی می‌کند ، شیر می‌نوشد.</p>
<p>۹- مرد نروژی در خانه اول زندگی می‌کند.</p>
<p>۱۰- مردی که سیگار Blends می‌کشد در کنار مردی که گربه نگه می‌دارد زندگی می‌کند.</p>
<p>۱۱- مردی که اسب نگه می‌دارد ، در کنار مردی که سیگار DunHill می‌کشد زندگی می‌کند.</p>
<p>۱۲- صاحب خانه‌ای که سیگار BlueMaster می‌کشد ، آبجو می‌نوشد.</p>
<p>۱۳- مرد آلمانی سیگار Prince می‌کشد.</p>
<p>۱۴- مرد نروژی در کنار خانه‌ی آبی زندگی می‌کند.</p>
<p>۱۵- مردی که سیگار ‌Blends می‌کشد ، همسایه‌ای دارد که آب می‌نوشد.</p>
<p>قبل از نگاه کردن به حل مسئله ، ابتدا سعی کنید با هر روشی که می‌تونید دستی اون رو حل کنید. ( بهتره که یک ماتریس از خانه‌ها و ملیت‌ها یا عناصر دیگه بکشید و بوسیله‌ی اون ، مسئله رو حل کنید )</p>
<p>( حل مسئله و توضیحات در ادامه‌ی نوشته )</p>
<p><span id="more-265"></span></p>
<p>خوب به حل مسئله می‌پردازیم. ابتدا بایستی تشخصی بدهید که تعدادی از جملات <strong>فقط</strong> وابسته به یک عنصر هستند. برای مثال جمله‌ی ۴ را در نظر بگیرید. در این جمله ما فقط با رنگ‌ها سر و کار داریم. اگر این کار را نکنید ( یعنی جدا کردن جملات و اعمال شرط‌ها به صورت مرحله به مرحله) ، بایستی ۵*۵*۵*۵*۵ حالت رو بررسی کنید که زمان خیلی زیادی &#8211; در حدود روزها &#8211; خواهد برد.</p>
<p>قبل از شروع به مسئله در صورتی که ساختمان داده‌ها رو پاس کرده باشید ( امیدوارم ! <img src='http://blog.itnotes.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ) بایستی با تابع Perm آشنا باشید. این تابع در واقع جایگشت یک لیست کاراکتری رو برامون حساب می‌کنه. این تابع به صورت زیر هست :</p>
<blockquote>
<p style="text-align: left;" dir="ltr">void perm(char *list, int i, int n)<br />
{<br />
int j;</p>
<p style="text-align: left;">if(i == n)<br />
{<br />
for ( j=0; j &lt;= n; j++)<br />
cout &lt;&lt; list[j];<br />
cout &lt;&lt; &#8220;[" &lt;&lt; ++count &lt;&lt; "]   &#8220;;<br />
}</p>
<p style="text-align: left;">else<br />
{<br />
for ( j = i; j &lt;= n; j++)<br />
{<br />
SWAP(&amp;list[i], &amp;list[j]);<br />
perm(list, i+1, n);<br />
SWAP(&amp;list[i], &amp;list[j]);<br />
}<br />
}<br />
}</p>
</blockquote>
<p>این تابع به اندازه‌ی کافی ساده هست. کافیه که به پارامتر list یک آرایه‌ی کاراکتری ( مثلا {&#8216;a&#8217;, &#8216;b&#8217;, &#8216;c&#8217;} ) رو بدید تا تمامی جایگشت‌های اون رو براتون حساب کنه. البته تابع SWAP هم رو خودتون بنویسید که خیلی راحته و جای دو متغیر رو با هم عوض می‌کنه ( به صورت Macro هم می‌تونید بنویسید ) خوب حالا کاری که بنده کرده‌ام اینه که پنج‌تا تابع تو در توی شبیه Perm نوشتم که حالات رو با بررسی شرط‌ها در هر مرحله تست می‌کنند.<br />
قبل از همه برای هریک از عناصر مسئله Enumeration تعریف کردم :</p>
<blockquote>
<p style="text-align: left;" dir="ltr">enum COLOR { RED, GREEN, WHITE, YELLOW, BLUE, NONE_COLOR };</p>
<p style="text-align: left;" dir="ltr">enum NATION { SWEDEN, DENMARK, NORWEJ, GERMAN, BRITAN, NONE_NATION};</p>
<p style="text-align: left;" dir="ltr">enum DRINK { TEA, COFFEE, MILK, BEER, WATER, NONE_DRINK };</p>
<p style="text-align: left;" dir="ltr">enum SIGAR { PALLMALL, DUNHILL, BLENDS, BLUEMASTER, PRINCE, NONE_SIGAR };</p>
<p style="text-align: left;" dir="ltr">enum ANIMAL { BIRD, CAT, HORSE, DOG, FISH, NONE_ANIMAL };</p>
</blockquote>
<p>بعد یک کلاس House تعریف کردم که پنج خانه رو به راحتی بتونیم از روی اون درست کنیم. کلاس House به صورت زیر هست :</p>
<blockquote>
<p style="text-align: left;" dir="ltr">class House</p>
<p style="text-align: left;" dir="ltr">{</p>
<p style="text-align: left;" dir="ltr">COLOR h_color;</p>
<p style="text-align: left;" dir="ltr">NATION p_nation;</p>
<p style="text-align: left;" dir="ltr">DRINK p_drink;</p>
<p style="text-align: left;" dir="ltr">SIGAR p_sigar;</p>
<p style="text-align: left;" dir="ltr">ANIMAL p_animal;</p>
<p style="text-align: left;" dir="ltr">public:</p>
<p style="text-align: left;" dir="ltr">House();</p>
<p style="text-align: left;" dir="ltr">void SetVar(COLOR );</p>
<p style="text-align: left;" dir="ltr">void SetVar(NATION );</p>
<p style="text-align: left;" dir="ltr">void SetVar(DRINK );</p>
<p style="text-align: left;" dir="ltr">void SetVar(SIGAR );</p>
<p style="text-align: left;" dir="ltr">void SetVar(ANIMAL );</p>
<p style="text-align: left;" dir="ltr">COLOR GetVar(COLOR);</p>
<p style="text-align: left;" dir="ltr">NATION GetVar(NATION);</p>
<p style="text-align: left;" dir="ltr">DRINK GetVar(DRINK);</p>
<p style="text-align: left;" dir="ltr">SIGAR GetVar(SIGAR);</p>
<p style="text-align: left;" dir="ltr">ANIMAL GetVar(ANIMAL);</p>
<p style="text-align: left;" dir="ltr">void PrintColor();</p>
<p style="text-align: left;" dir="ltr">void PrintNation();</p>
<p style="text-align: left;" dir="ltr">void PrintDrink();</p>
<p style="text-align: left;" dir="ltr">void PrintSigar();</p>
<p style="text-align: left;" dir="ltr">void PrintAnimal();</p>
<p style="text-align: left;" dir="ltr">};</p>
</blockquote>
<p>همون طور که می‌بینید . برای هر خانه ، رنگ اون ، ملیت شخصی که زندگی می‌کنه ، حیوانی که نگه می‌داره ، سیگاری که می‌کشه و نوشیدنی که می‌نوشه رو به عنوان اعضای کلاس House تعریف کردیم. تعدادی تابع سربار گذاری شده هم داریم که کارمون رو راحت می‌کنه برای گرفتن و ست کردن عناصر مختلف هر خانه ( به پیاده‌سازی اون‌ها در برنامه‌ی اصلی دقت کنید. )</p>
<p>کلاس اصلی که کار اصلی را در برنامه انجام می‌دهد ، کلاس Einstein هست به صورت زیر :</p>
<blockquote>
<p style="text-align: left;" dir="ltr">class Einstein</p>
<p style="text-align: left;" dir="ltr">{</p>
<p style="text-align: left;" dir="ltr">int house_numbers;</p>
<p style="text-align: left;" dir="ltr">int HouseList[5];</p>
<p style="text-align: left;" dir="ltr">House Houses[5];</p>
<p style="text-align: left;" dir="ltr">public:</p>
<p style="text-align: left;" dir="ltr">Einstein();</p>
<p style="text-align: left;" dir="ltr">void Initialize();</p>
<p style="text-align: left;" dir="ltr">bool PromisingHouse(int );</p>
<p style="text-align: left;" dir="ltr">void HouseSeq(int );</p>
<p style="text-align: left;" dir="ltr">bool PromisingNation(int );</p>
<p style="text-align: left;" dir="ltr">void NationSeq(int );</p>
<p style="text-align: left;" dir="ltr">bool PromisingDrink(int );</p>
<p style="text-align: left;" dir="ltr">void DrinkSeq(int );</p>
<p style="text-align: left;" dir="ltr">bool PromisingSigar(int );</p>
<p style="text-align: left;" dir="ltr">void SigarSeq(int );</p>
<p style="text-align: left;" dir="ltr">bool PromisingAnimal(int );</p>
<p style="text-align: left;" dir="ltr">void AnimalSeq(int );</p>
<p style="text-align: left;" dir="ltr">void SWAPHouse(int *, int *);</p>
<p style="text-align: left;" dir="ltr">void SWAPNation(int , int );</p>
<p style="text-align: left;" dir="ltr">void SWAPDrink(int , int );</p>
<p style="text-align: left;" dir="ltr">void SWAPSigar(int , int );</p>
<p style="text-align: left;" dir="ltr">void SWAPAnimal(int , int );</p>
<p style="text-align: left;" dir="ltr">};</p>
</blockquote>
<p>همان طور که احتمالا حدس زده‌اید ، بنده پنج‌تا متد Perm به نام‌های HouseSeq برای جایگشت رنگ‌ها ، NationSeq برای جایگشت ملیت‌ها ، DrinkSeq برای جایگشت نوشیدنی‌ها ، SigarSeq برای جایگشت سیگارها ! نوشتم که هرکدام از این‌ها تابع امیدبخش (Promising) خودشون رو دارن که برای هر سطح از گره بررسی می‌کنن ببین آیا امیدبخش هست یا نه. لازم به ذکر هست که این توابع در بخش if دوم تابع perm ها کاربرد داره به این خاطر که اکثر شرط‌ها طوری هستند که نیاز دارند هر ۵ خانه اول قرار بگیرن و بعد شرط بررسی بشه.</p>
<p>برای مثال به متد بررسی امیدبخش بودن قسمت رنگ خانه‌ها بپردازیم ، به صورت زیر است :</p>
<blockquote>
<p style="text-align: left;" dir="ltr">bool Einstein::PromisingNation(int i)</p>
<p style="text-align: left;" dir="ltr">{</p>
<p style="text-align: left;" dir="ltr">bool promise = true;</p>
<p style="text-align: left;" dir="ltr">for(int j=0; j &lt; i; j++)</p>
<p style="text-align: left;" dir="ltr">{</p>
<p style="text-align: left;" dir="ltr">if( j &gt; 0 &amp;&amp; (Houses[HouseList[0]].GetVar(NONE_NATION) != NORWEJ) )</p>
<p style="text-align: left;" dir="ltr">promise = false;</p>
<p style="text-align: left;" dir="ltr">else if(Houses[HouseList[1]].GetVar(NONE_COLOR) != BLUE)</p>
<p style="text-align: left;" dir="ltr">promise = false;</p>
<p style="text-align: left;" dir="ltr">else</p>
<p style="text-align: left;" dir="ltr">if(Houses[HouseList[j]].GetVar(NONE_NATION) == BRITAN &amp;&amp; Houses[HouseList[j]].GetVar(NONE_COLOR) != RED)</p>
<p style="text-align: left;" dir="ltr">promise = false;</p>
<p style="text-align: left;" dir="ltr">}</p>
<p style="text-align: left;" dir="ltr">return promise;</p>
<p style="text-align: left;" dir="ltr">}</p>
</blockquote>
<p>قبل از بررسی این متد این رو بگم که آرایه‌ی HouseList رو در کلاس Einstein برای این تعریف کردم که هر بار به جای عوض کردن جای واقعی خانه‌ها فقط شماره‌ی اونها رو در این آرایه عوض کنیم.</p>
<p>در این متد بررسی شده است که آیا مرد نروژی در خانه اول زندگی می‌کند یا نه ؟! (بوسیله‌ی Houses[HouseList[0]].GetVar(NONE_NATION) != NORWEJ) اگر این طور نبود ، پس این سطح از درخت امیدبخش نیست. یا اینکه مرد بغلی‌اش در خانه آبی زندگی می‌کند یا خیر ؟! (Houses[HouseList[1]].GetVar(NONE_COLOR) != BLUE) یادآوری می‌کنم که برای متدهای سربارگذاری شده‌ی GetVar و SetVar باید یک enum از نوع چیزی که می‌خوایم بگیریم می‌فرستیم. مثلا برای گرفتن ملیت NONE_NATION رو می‌فرستم.</p>
<p><strong>ترتیب بررسی شرط‌ها در کل کلاس Einstein به این صورت است : </strong></p>
<p>۱- آیا ترتیب رنگ‌ خانه‌ها در شرط‌ها صدق می‌کند ؟! اگر بله بعد برو به مرحله ۲ در غیر اینصورت یک ترتیب دیگر را تولید کن</p>
<p>۲- آیا ترتیب ملیت مردها در شرط‌ها صدق می‌کند ؟! به همین صورت مانند مرحله ۱</p>
<p>۳- ترتیب نوشیدنی‌ها و به همین ترتیب</p>
<p>۴- ترتیب حیوان‌ها و در صورتی که همه‌ی شرط‌ها صدق کرد ، پس جواب پیدا شده و جواب چاپ می‌شود.</p>
<p>به نظر من توضیح بیشتر از این فقط باعث گیج شدن بیشتر میشه. <strong>پس کد رو بخونید</strong> و در صورتی که بازهم متوجه نشدید ، درخدمت هستم برای رفع ابهامات.</p>
<p><strong>پ.ن۱ :</strong> بسته‌ای که دانلود می‌کنید ، شامل سورس کد ، <strong>فایل کامپایل‌شده برای ویندوز و گنو/لینوکس ۳۲ بیتی</strong> هست. اگه می‌خواید اون رو خودتون کامپایل کنید ، از GCC نسخه‌ی ۴ به بالا استفاده کنید ( البته ۳ هم باید کار کنه ! <img src='http://blog.itnotes.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  )</p>
<p><strong>پ.ن۲:</strong> این مسئله یکی از سخت‌ترین مسئله‌ها و برنامه‌هایی بود که نوشتم و حدود ۲ روزکاری (!) رو براش صرف کردم. پس لطفا خدا رو از یاد نبرید !! <img src='http://blog.itnotes.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h2 style="text-align: center;"><a href="http://blog.itnotes.info/wp-content/uploads/2010/02/Einstein_Prob_ITNotes.zip" target="_self">دانلود پکیج حل مسئله اینشتین</a></h2>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>آرزوی موفقیت.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnotes.info/archives/265/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>مقاله : در پشت صحنه‌ی دنیای پست الکترونیک چه می‌گذرد ؟</title>
		<link>http://blog.itnotes.info/archives/256</link>
		<comments>http://blog.itnotes.info/archives/256#comments</comments>
		<pubDate>Fri, 05 Feb 2010 10:18:39 +0000</pubDate>
		<dc:creator>بهرام</dc:creator>
				<category><![CDATA[شبکه]]></category>
		<category><![CDATA[گنو/لینوکس]]></category>

		<guid isPermaLink="false">http://blog.itnotes.info/?p=256</guid>
		<description><![CDATA[به نظر شما علاقه به گنو/لینوکس میتونه به چه حد باشه ؟! به این حد که استادتون رو متقاعد کنید که برای درس شبکه در مورد IMAP در گنو/لینوکس مقاله بنویسید و ارائه کنید ؟!  
متاسفانه در خیلی از وبلاگ‌های ( حتی گنویی )‌ می‌بینم که درک درستی از پروتکل‌های ارسال و دریافت ایمیل [...]]]></description>
			<content:encoded><![CDATA[<p>به نظر شما علاقه به گنو/لینوکس میتونه به چه حد باشه ؟! به این حد که استادتون رو متقاعد کنید که برای درس شبکه در مورد IMAP در گنو/لینوکس مقاله بنویسید و ارائه کنید ؟! <img src='http://blog.itnotes.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>متاسفانه در خیلی از وبلاگ‌های ( حتی گنویی )‌ می‌بینم که درک درستی از پروتکل‌های ارسال و دریافت ایمیل ندارند. در این مقاله به بررسی مقدماتی تئوری پست‌الکترونیک و سپس بررسی عملی پروتکل‌های SMTP ، POP و IMAP می‌پردازیم و یاد می‌گیریم که چگونه از آن‌ها در خط فرمان با استفاده از کلاینت telnet کار کنیم.<img class="alignleft" title="courier-imap" src="http://blog.itnotes.info/wp-content/uploads/2010/02/courier-imap.png" alt="" width="163" height="62" /></p>
<p>عنوان این مقاله این هست ( ببخشید یکمی طولانیه ! <img src='http://blog.itnotes.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ) :</p>
<p><strong>« پروتکل IMAP و نحوه‌ی استفاده از آن در سرویس‌دهنده‌ی Courier و گذری بر پروتکل SMTP در سرویس‌دهنده‌ی Postfix در سیستم‌عامل گنو/لینوکس » </strong></p>
<p>موضوعات و بخش‌های این مقاله :</p>
<ul>
<li>روز‌های اولیه‌ی ایمیل</li>
<li>توضیحی در مورد RFC</li>
<li>ورود به دنیای عملی Email</li>
<li>پشت‌صحنه‌ی ایمیل</li>
<li>فرمت پیام‌ها در استاندارد RFC 8222</li>
<li>MIME &#8211; راهی برای جهانی سازی</li>
<li>پروتکل Telnet</li>
<li>پروتکل SMTP</li>
<li>کار با SMTP در telnet و نصب Postfix</li>
<li>پروتکل‌های POP و IMAP چرا دو پروتکل ؟!</li>
<li>نصب سرویس‌دهنده‌ی Courier در گنو/لینوکس</li>
<li>پروتکل IMAP</li>
<li>یک جلسه IMAP نمونه</li>
<li>بررسی مبسوط انواع دستورات IMAP</li>
<li>خلاصه‌ی لیست کامل دستورات IMAP</li>
</ul>
<p>(دانلود مقاله در ادامه‌ی نوشته )</p>
<p><span id="more-256"></span></p>
<p>منابع این مقاله در انتهای آن آورده شده است. بخش‌هایی از مقاله عینا از منابع نقل شده‌است به همین جهت از همین حالا پوزش می‌طلبم !</p>
<p>امیدوارم که مورد استفاده‌ی دوستان و عزیزان قرار بگیره. تمامی مثال‌هایی که از دستورات IMAP آمده است به طور کامل تست شده و مشکلی ندارن.</p>
<h2 style="text-align: center;"><strong><a href="http://blog.itnotes.info/wp-content/uploads/2010/02/lecture_IMAP.pdf" target="_self">دانلود مقاله</a> </strong></h2>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnotes.info/archives/256/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>انتشار نسخه‌ی ۳٫۰٫۲ سیستم نظرسنجی آنلاین ITLPoll</title>
		<link>http://blog.itnotes.info/archives/245</link>
		<comments>http://blog.itnotes.info/archives/245#comments</comments>
		<pubDate>Thu, 28 Jan 2010 20:23:12 +0000</pubDate>
		<dc:creator>بهرام</dc:creator>
				<category><![CDATA[ITLPoll]]></category>
		<category><![CDATA[اخبار جدید]]></category>
		<category><![CDATA[برنامه‌نویسی]]></category>
		<category><![CDATA[گنو/لینوکس]]></category>

		<guid isPermaLink="false">http://blog.itnotes.info/archives/245</guid>
		<description><![CDATA[بعد از حدود ۲ روز کار بر روی نسخه‌ی ITLPoll 3.0.1 حالا این نسخه‌ رو به همراه ویژگی‌های بسیار جدید تقدیمتان می‌کنم. تمام شدن ترم هم مزیت‌های خوبی داره که از جمله‌ی آن انتشار این نسخه از ITLPoll هست.
ویژگی‌ها و تغییرات اصلی در این نسخه به صورت زیر هستند :
۱- امکان انتخاب چندین گزینه به [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.itnotes.info/wp-content/uploads/2009/09/itlpoll3-updated.png"><img class="alignleft size-full wp-image-104" title="itlpoll3-updated.png" src="http://blog.itnotes.info/wp-content/uploads/2009/09/itlpoll3-updated.png" alt="" width="200" height="215" /></a>بعد از حدود ۲ روز کار بر روی نسخه‌ی ITLPoll 3.0.1 حالا این نسخه‌ رو به همراه ویژگی‌های بسیار جدید تقدیمتان می‌کنم. تمام شدن ترم هم مزیت‌های خوبی داره که از جمله‌ی آن انتشار این نسخه از ITLPoll هست.</p>
<p>ویژگی‌ها و تغییرات اصلی در این نسخه به صورت زیر هستند :</p>
<p><strong>۱- امکان انتخاب چندین گزینه به طور همزمان برای هر نظرسنجی</strong></p>
<p><strong> </strong></p>
<p><strong>۲- کنترل بیشتر بر روی کوکی‌ها و امکان شرکت در نظرسنجی‌های جدید</strong></p>
<p><strong> </strong></p>
<p><strong>۳- اصلاح مشکل لینکر صفحه‌ی خانگی (include_itlpoll.php)</strong></p>
<p><strong> </strong></p>
<p><strong>۴- بهبود سازی قالب‌ها و پالایش بهتر بر روی متغیرهای ورودی و خروجی</strong></p>
<p>توضیحی مختصر :</p>
<p><strong>مورد اول</strong> که روشنه. مدیر سیستم می‌تونه در قسمت مدیریت برای هر نظرسنجی گزینه‌ی « نظرسنجی چندگانه » رو انتخاب کنه تا هر کاربر در هر بار شرکتش در نظرسنجی بتواند به جای تنها یک گزینه ، چند گزینه ( یک ، چند و یا همه‌ی گزینه‌ها ) را انتخاب کند.</p>
<p><strong>مورد دوم</strong> شاید یک کمی گنگ باشه. در نسخه‌های قبلی هنگامی که مدیر یک نظرسنجی را فعال می‌کرد ، کاربران نظرهای خودشان را ثبت می‌کردند و دیگر امکان شرکت در نظرسنجی ( حتی در صورت فعال شدن یک نظرسنجی جدید دیگر ) را نداشتند. اما در این نسخه به محض فعال‌شدن یک نظرسنجی جدید ، کاربرانی که در نظرسنجی‌های قبلی شرکت کرده بودند ، کوکی‌های مرورگرشان ریست شده و مجددا می‌توانند ( فقط برای یکبار ) در نظرسنجی جدید شرکت کنند ( که طبعا می‌تواند چندگانه یا تکی باشد )</p>
<p><strong>مورد سوم</strong> مشکلی بود که دوستان بهم اطلاع دادن ( متاسفانه خودم متوجهش نشده بودم ! ) وقتی که کاربر سیستم را از طریق لینکر صفحه‌ی خانگی (include_itlpoll.php) در صفحه‌ی اول سایتش قرار می‌داد ، لینک‌های نتایج و آرشیو و کلید ثبت نتایج به همین صفحه‌ی جاری خانگی ( به جای پوشه‌ی اصلی ITLPoll ) اشاره می‌کردند که در این صورت در صفحه‌ی Pop-Up بازشده کل Home Page باز می‌شد که در این نسخه رفع شد.</p>
<p>(لینک دانلود در ادامه نوشته )<span id="more-245"></span></p>
<p><strong>در مورد مورد چهارم</strong> تعدادی ناهماهنگی و عدم اعمال strip_slashes بر روی یک سری خروجی ها باعث بد شکل شدن خروجی می‌شد که درست شد.</p>
<p><strong>در نهایت اینکه این نسخه را </strong><a title="تست آخرین نسخه از تریلکس‌لب" href="http://itlpoll.trilexnet.com" target="_blank"><strong>هم اکنون می‌توانید تست کنید</strong></a><strong>. </strong></p>
<p><strong>یا اینکه اون رو </strong><a title="دانلود" href="http://sourceforge.net/projects/itlpoll/files/itlpoll/ITLPoll%20Version%203/ITLPoll-V3.0.2-Final.zip/download" target="_blank"><strong>از SourceForge دانلود کنید</strong></a><strong>. </strong></p>
<p><strong>و اگر در ایران هستید </strong><a title="دانلود برای ایرانیان" href="http://itlpoll.itnotes.info/ITLPoll-V3.0.2-Final.zip" target="_blank"><strong>از این لینک دانلود کنید</strong></a><strong>. ( متاسفانه تحریم شده‌ایم !! )</strong></p>
<p><strong>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</strong></p>
<p><strong>به روز شد : </strong>وب سایت <a title="به زودی" href="http://www.itlpoll.com" target="_blank">ITLPoll.CoM</a> هم به زودی جهت رفع اشکال و ایجاد جامعه‌ی ITLPoll برخط خواهد شد.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnotes.info/archives/245/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>اشتراک اینترنت از ویندوز مهمان به لینوکس میزبان در VirtualBox</title>
		<link>http://blog.itnotes.info/archives/239</link>
		<comments>http://blog.itnotes.info/archives/239#comments</comments>
		<pubDate>Mon, 25 Jan 2010 19:16:48 +0000</pubDate>
		<dc:creator>بهرام</dc:creator>
				<category><![CDATA[سیستم‌عامل]]></category>
		<category><![CDATA[شبکه]]></category>
		<category><![CDATA[گنو/لینوکس]]></category>

		<guid isPermaLink="false">http://blog.itnotes.info/archives/239</guid>
		<description><![CDATA[این مطلب به درد کسانی می‌خوره که درایور درست و حسابی برای مودمشون پیدا نمی‌کنن یا اینکه راه‌انداختن اونها از راه‌انداختن تریلی هم براشون سخت‌تره. خوب کار رو براشون راحت می‌کنیم! اینترنت رو در ویندوز مهمان راه بیاندازید و در لینوکس استفاده کنید. 

مقدمات : 
۱- شما باید VirtualBox بر روی سیستمتون نصب شده داشته [...]]]></description>
			<content:encoded><![CDATA[<p>این مطلب به درد کسانی می‌خوره که درایور درست و حسابی برای مودمشون پیدا نمی‌کنن یا اینکه راه‌انداختن اونها از راه‌انداختن تریلی هم براشون سخت‌تره. خوب کار رو براشون راحت می‌کنیم! <strong>اینترنت رو در ویندوز مهمان راه بیاندازید و در لینوکس استفاده کنید. </strong></p>
<p><img class="alignleft" src="http://blog.itnotes.info/wp-content/uploads/2010/01/virtualbox.png" alt="" /></p>
<p><strong>مقدمات : </strong></p>
<p>۱- شما باید <a title="می‌تونید دانلود کنید !" href="http://www.virtualbox.org" target="_blank">VirtualBox</a> بر روی سیستمتون نصب شده داشته باشید.</p>
<p>۲- یک ویندوز به دلخواه خودتون نصب کنید ( الان یه ویندوز ۹۸ توی هر آشغال‌دونی پیدا میشه ! <img src='http://blog.itnotes.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  )</p>
<p>حالا رابط گرافیکی ویرچوال باکس رو باز کنید ( اما قبل از هر کار عجولانه‌ای یعنی زدن دکمه‌ی Start ) بر روی نوار ویندوز نصب شده خودتون کلیک کرده و Settings رو بزنید و سپس در نوار کناری Network را انتخاب کنید. در کادر پایین پنجره راست Host Only Adapter رو بزنید.</p>
<p>حالا این پنجره رو ببندید و از منوی File گزینه‌ی Preferences رو بزنید.</p>
<p>حالا بر طبق تصویر زیر عمل کنید ( یعنی IP را به ۱۹۲٫۱۶۸٫۰٫۱۰ ست کنید. البته قبل از اون گزینه‌ی ویرایش vboxnet0 رو بزنید )</p>
<p>(بقیه آموزش در ادامه مطلب )</p>
<p><span id="more-239"></span></p>
<p style="text-align: center;"><img class="aligncenter" src="http://blog.itnotes.info/wp-content/uploads/2010/01/01.jpeg" alt="" /></p>
<p>سپس به سربرگ DHCP Server بروید و تیک Enable Server رو بردارید ( چون IP ها رو استاتیک ست می‌کنیم )</p>
<p>حالا با احتیاط (:D ) می‌توانید بر روی نوار ویندوز نصب شده کلیک کرده و از منوی بالا Start را بزنید تا ویندوز بالا بیاد.</p>
<p>ویندوزی که بنده استفاده کرده‌ام ویستا می‌باشد ولی سعی کنید اگه رم کمی دارید از یه ویندوز سبک‌تر مثل XP و یا حتی ۹۸ استفاده کنید.</p>
<p>حالا کانکشن اینترنت خودتون رو بسازید ( این رو دیگه همتون استادید ! ) و به قسمت Control Panel بروید و در قسمت Network Connections ارتباط LAN که قبلا با Host Only Adapter فعال کردیم رو پیدا کنید. روی اون راست کلیک کنید و IP استاتیک ۱۹۲٫۱۶۸٫۰٫۱ رو بهش بدید.</p>
<p>می‌دونم توی این مورد هم استادید ولی دیدن یک تصویر ضرری که نداره ! (DNS های جدید گوگول رو گذاشتیم !! )</p>
<p style="text-align: center;"><img class="aligncenter" src="http://blog.itnotes.info/wp-content/uploads/2010/01/02.jpeg" alt="" /></p>
<p>حالا باید امکان Share شدن برای کانکشن اینترنتتون رو فعال کنید. روی اون راست کلیک و در تب Sharing تیک کذایی رو بزنید. ( عکس زیر )</p>
<p style="text-align: center;"><img class="aligncenter" src="http://blog.itnotes.info/wp-content/uploads/2010/01/03.jpeg" alt="" /></p>
<p>حالا می‌تونید ( اگه فعال نکردید ) کانکشن Local Area Connection رو فعال کنید و سپس با کانکشن اینترنت وصل بشید.</p>
<p><strong>نکته :</strong> بعضی موارد لازم است که فایروال ویندوز رو غیرفعال کنید. برای اینکه بدونید لازمه یا نه یک ping به آدرس ۱۹۲٫۱۶۸٫۰٫۱ بزنید و در صورتی که echo نگرفتید ، باید فایروال رو خاموش کنید و یا http و پورت ۸۰ رو باز کنید.</p>
<p>حالا پنجره‌ی ویرچوال باکس را کمینه (!) کرده و Console رو باز کنید. بایستی آدرس ۱۹۲٫۱۶۸٫۰٫۱ رو به عنوان آدرس اصلی برای route به لینوکستون معرفی کنید. این کار به راحتی و با دستور زیر انجام می‌پذیره :</p>
<blockquote>
<p dir="rtl">sudo route add default gw 192.168.0.1</p>
</blockquote>
<p>حالا یه ping به مثلا گوگل بزنید و باید جواب بگیرید.</p>
<p>بعد از هربار وصل شدن باید این route پیشفرض رو اضافه کنید. یا اینکه می‌تونید اون رو به صورت اسکریپت در بیارید و در rc.local قرار بدید.</p>
<p><strong>تجربه شخصی :</strong> دلیلش رو نمی‌دونم اما کانکشن اینترنت بعد از مدتی ( مثلا نیم ساعت ) قطع می‌شه ! شاید مشکل از سرویس‌دهنده‌ی من باشه. هرکی فهمید خبرش رو بهم بده. ( مشکل از ویندوز نیست ! چون با چندین ویندوز تست کردم )</p>
<p>منبع : <a href="http://forums.virtualbox.org/viewtopic.php?f=7&amp;t=23823&amp;start=0" target="_blank">http://forums.virtualbox.org/viewtopic.php?f=7&amp;t=23823&amp;start=0</a></p>
<p>( در این منبع اسکریپت مورد نیاز قرار داده شده )</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnotes.info/archives/239/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>XPud یا کوچک قدرتمند را آزادانه دانلود کنید!</title>
		<link>http://blog.itnotes.info/archives/231</link>
		<comments>http://blog.itnotes.info/archives/231#comments</comments>
		<pubDate>Fri, 15 Jan 2010 18:47:45 +0000</pubDate>
		<dc:creator>بهرام</dc:creator>
				<category><![CDATA[اخبار جدید]]></category>
		<category><![CDATA[گنو/لینوکس]]></category>

		<guid isPermaLink="false">http://blog.itnotes.info/archives/231</guid>
		<description><![CDATA[در وبلاگ ۷ سال مطلب جالبی در مورد سریعترین توزیع‌های گنو/لینوکس آمده که همین‌جا ازشون تشکر می‌کنم.

یکی از توزیع‌های جالبی که نظرم بهش جلب شد ، XPud است که دارای ویژگی‌های فوق‌العاده جالبی هست :

فقط دارای حجم ۶۴ مگابایت
در کمتر از ۱۰ ثانیه بوت می‌شود
فقط ۲۵۶ مگابایت رم نیاز دارد
اکثر کدک‌های مالتی‌مدیا بر روی آن [...]]]></description>
			<content:encoded><![CDATA[<p>در وبلاگ ۷ سال <a href="http://www.7sal.com/1388/10/24/7-of-fast-booting-linux-distros/" target="_blank">مطلب جالبی</a> در مورد سریعترین توزیع‌های گنو/لینوکس آمده که همین‌جا ازشون تشکر می‌کنم.</p>
<p><img class="alignleft" title="XPud" src="http://blog.itnotes.info/wp-content/uploads/2010/01/xpud2.png" alt="" /></p>
<p>یکی از توزیع‌های جالبی که نظرم بهش جلب شد ، <a href="http://www.xpud.org/">XPud</a> است که دارای ویژگی‌های فوق‌العاده جالبی هست :</p>
<ul>
<li><strong>فقط دارای حجم ۶۴ مگابایت</strong></li>
<li><strong>در کمتر از ۱۰ ثانیه بوت می‌شود</strong></li>
<li><strong>فقط ۲۵۶ مگابایت رم نیاز دارد</strong></li>
<li><strong>اکثر کدک‌های مالتی‌مدیا بر روی آن نصب است ( به همراه پخش‌کننده gnome-mplayer )</strong></li>
<li><strong>نصب پیشفرض درایورهای وایرلس</strong></li>
<li><strong>شناسایی خودکار پارتیشن‌های ویندوز (Fat, NTFS)</strong></li>
<li><strong>مرورگر فایرفاکس و برنامه‌های کاربردی دیگر</strong></li>
</ul>
<p>می‌دونم ! غیرقابل باوره ولی باور کنید و همین الان دست به کار بشید و اون رو دانلود کنید.</p>
<p>البته مشکلی وجود داره و این پروژه بر روی گوگل کد قرار داره که طبق معمول از مشکل مشترکان گرامی (!) هم سخت‌تره !</p>
<p>برای همین کار رو براتون راحت کردم و اون رو در ۴Shared آپلود کردم تا درسی باشد برای همه‌ی گوگولیان ! <img src='http://blog.itnotes.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h2 style="text-align: center;"><a title="همین الان دست به کار بشوید !" href="http://www.4shared.com/file/197844793/c243de7a/xpud-092.html" target="_blank"><strong>دانلود آخرین نسخه‌ی توزیع XPud</strong></a></h2>
<p>پ‌ن : دستم هم درد نکنه برای راحت کردن کارتون ! <img src='http://blog.itnotes.info/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnotes.info/archives/231/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>مقدمه‌ای بر OpenGL در ++C</title>
		<link>http://blog.itnotes.info/archives/220</link>
		<comments>http://blog.itnotes.info/archives/220#comments</comments>
		<pubDate>Fri, 01 Jan 2010 07:14:22 +0000</pubDate>
		<dc:creator>بهرام</dc:creator>
				<category><![CDATA[برنامه‌نویسی]]></category>
		<category><![CDATA[گرافیک]]></category>

		<guid isPermaLink="false">http://blog.itnotes.info/archives/220</guid>
		<description><![CDATA[با عرض پوزش به دلیل مشکلات سرور سایت تمامی نظرات و پست‌ها از تاریخ دهم دی حذف شده‌اند !
ترم چهار که داشتیم گرافیک کامپیوتری رو می‌خواندیم ، استادمون گفت که مجبوریم برنامه‌نویسی OpenGL رو تحت Visual Basic آموزش بدیم. دلیلش هم اینه که منابع فارسی آزاد فارسی برای OpenGL در ++C وجود نداره. و این [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><span style="color: #ff0000;"><strong>با عرض پوزش به دلیل مشکلات سرور سایت تمامی نظرات و پست‌ها از تاریخ دهم دی حذف شده‌اند !</strong></span></p>
<p><a href="http://blog.itnotes.info/wp-content/uploads/2010/01/OpenGL_Logo.gif"><img class="alignleft size-full wp-image-222" title="OpenGL_Logo" src="http://blog.itnotes.info/wp-content/uploads/2010/01/OpenGL_Logo.gif" alt="" width="220" height="110" /></a>ترم چهار که داشتیم گرافیک کامپیوتری رو می‌خواندیم ، استادمون گفت که مجبوریم برنامه‌نویسی OpenGL رو تحت Visual Basic آموزش بدیم. دلیلش هم اینه که منابع فارسی آزاد فارسی برای OpenGL در ++C وجود نداره. و این شده بود یک مشکل بزرگ برای دانشجوهایی که اکثرا C و یا ++C خوانده بودن. برای همین با پیشنهاد استاد تصمیم گرفتم که یک ماه از تابستانم رو برای این کار بزارم ( در واقع حدود ۲ هفته به طور موثر ) و به صورت مقدمه‌ای هم که شده مقاله‌ای بنویسم.</p>
<p>نتیجه شد این که<strong> ۳۰ صفحه در مورد راه‌اندازی OpenGL و شروع برنامه‌نویسی در ویندوز XP به همراه Visual Studio 2005</strong> . درسته ! خودمم خیلی دوست نداشتم روی این پلتفرم بنویسم ولی پیش خودم فکر کردم که اول باید چند فصل بنویسم که بچه‌ها کار با گنو/لینوکس رو یاد بگیرن. ولی خوشبختانه در این جزوه از کتابخانه‌ی قابل انتقال GLUT استفاده شده که کدها را بدون هیچ‌گونه تغییری می‌توانید در گنو/لینوکس به کار ببرید.</p>
<p>تنها چیزی که برای برنامه‌نویسی OpenGL بوسیله‌ی ++C در گنو لینوکس دارید این است که بسته‌ی freeglut را دانلود و نصب کنید. برای دبیان یا ابونتو کافی است که از سایت مخازن اون رو جستجو کنید تا به نام دقیق برسید ( برای مثال هم‌اکنون برای آخرین نسخه‌ی ابونتو باید این پکیج را نصب کنید freeglut3 و به همراه freeglut3-dev )</p>
<p>دلیل اینکه در گنو/لینوکس GLUT اصلی را نداریم ، آزاد نبودن کد اصلی آن است. ( این قضیه برای خود OpenGL هم صدق می‌کند که در گنو/لینوکس شبیه‌سازی آن یعنی Mesa 3D را داریم )</p>
<p>این جزوه به طور کامل تست شده و برای هر کدی که قرار داده شده ، خروجی آن نیز به صورت شکل آمده است.</p>
<p>شما را به خواندن مقدمه‌ی آن جلب می‌کنم :</p>
<p><span id="more-220"></span></p>
<blockquote><p><strong>OpenGL چیست ؟ </strong><br />
مخفف عبارت Open Graphic Library است و همان طور که از نامش پیداست یک کتابخانه جهت دستیابی ساده به سخت افزار گرافیکی شماست. برای کاربران عادی نام OpenGL با نام بازی های سه بعدی گره خورده است. قبل از نوشتن OpenGL برنامه نویسان گرافیکی مجبور بودند که مستقیما با سخت افزارهای گرافیکی کار کنند و برای سخت افزارها برنامه های اختصاصی بنویسند. اما با گسترش روز افزون تکنولوژی و سخت افزارهای مختلف این رویه ی برنامه نویسی کاربرد خود را از دست داد. چرا که برنامه نویسان برای انتقال یک برنامه ی ساده از یک سخت افزار به سخت افزار دیگر مجبور بودند ده ها ( بلکه هزاران ) خط کد را ویرایش و اصلاح کنند تا با سخت افزار موجود جواب بگیرند. حتی بعد از برطرف شدن مشکل با سیستم عامل های نسل جدید ، مشکل خود را به گونه ای دیگر نشان داد : « عدم توانایی حمل در سیستم های عامل مختلف ». بنابراین نیاز به وجود یک API واحد که بتواند قدرتمند ، قابل انتقال و سطح پایین باشد به شدت احساس می شد. OpenGL این نیازها را به طور کامل برطرف کرده و خواهد کرد.<br />
<strong>سیر تاریخی OpenGL</strong><br />
در این کتاب سعی بیشتر بر استفاده ی کاربردی از OpenGL است تا مباحث نظری و تاریخچه ی آن. اما آشنایی با سیر تکاملی OpenGL بسیار مفید خواهد بود.<br />
OpenGL در دهه ۱۹۹۰ توسط شرکت Silicon Grapihcs متولد شد. اما کار استاندارد سازی و تکمیل آن توسط گروه ARB (OpenGL Architecture Review Board) انجام شد. این گروه متشکل از شرکت های بزرگی همچون مایکروسافت ، ۳DLabs ، SGI ، ATI ، Intel ، IBM ، Sun ، NVIDIA ، Dell و غیره بودند که البته مایکروسافت جهت تولید محصول انحصاری خود ( یعنی DirectX ) از سال ۲۰۰۳ این گروه را ترک کرد. نسخه ی اول OpenGL توسط شرکت SGI در سال ۱۹۹۲ منتشر شد. نسخه ی دوم آن نیز توسط شرکت ۳DLabs توسعه داده شد. هم اکنون ( در زمان نگارش این کتاب ) OpenGL در نسخه ی ۳٫۱ به سر می برد که با توجه به توسعه ی سریع این سیستم پیش بینی می شود تا زمان انتشار کتاب به نسخه های بسیار جدیدتری برسد.<br />
<strong>هدف اصلی توسعه ی OpenGL</strong><br />
OpenGL در اصل برای دو هدف اصلی توسعه داده شده و می شود :<br />
۱-پنهان کردن پیچیدگی کار با سخت افزارهای مختلف گرافیکی با یک رابط سطح پایین<br />
۲-ساده کردن کارهای گرافیکی خصوصا سه بعدی با ایجاد یک رابط استاندارد واحد</p></blockquote>
<p>ادامه را در مقاله‌ی اصلی بخوانید.</p>
<h2 style="text-align: center;"><a href="http://blog.itnotes.info/wp-content/uploads/2010/01/OpenGLInCPP.pdf" target="_self">برای دانلود اینجا را کلیک کنید.</a></h2>
<p>پ.ن۱: هرگونه کپی‌برداری با ذکر منبع کاملا آزاد است.</p>
<p>پ.ن۲: در صورت تمایل شاید بتونم ادامه بدم. چون مباحث جذاب مثل texture مانده !</p>
<p>پ.ن۳: منبع اصلی این مقاله در انتها آورده شده است.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.itnotes.info/archives/220/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
