<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" 	xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
<channel>
<title>blog.efazati.org :: محمد افاضاتی</title>
<link>http://blog.efazati.org/</link>
<description>دیده ها، شنیده ها و علاقه مندی های یک برنامه نویس</description>
<language>fa</language>
<generator>http://blog.ir</generator>
	<image>
		<url>http://bayanbox.ir/blog/efazati/avatar.jpg</url>
		<title>blog.efazati.org :: محمد افاضاتی</title>
		<link>http://blog.efazati.org/</link>
	</image>
	<lastBuildDate>Thu, 10 May 2012 14:09:37 +0430</lastBuildDate>
	<item>
	<title>ذخیره تصاویر دیده شده از طریق شبکه</title>
	
	<link>http://blog.efazati.org/post/%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1-%D8%AF%DB%8C%D8%AF%D9%87-%D8%B4%D8%AF%D9%87-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-%D8%B4%D8%A8%DA%A9%D9%87</link>
		<description><![CDATA[<p>
	یکی از کارهایی که دوست داشتم انجام بدهم، نوشتن اسکریپتی بود که تمام تصاویری که از طریق browser های مختلف می بینم را در جایی ذخیره کند.</p>
<p>
	در حقیقت ایده از سایت 500PX اومد که من در فید های Reader م داشتم، عکس ها رو نکرده بودند ذره ای کوچک کنند :D با خودم می گفتم من که دارم می بینم، حداقل جایی ذخیره شوند که بتوانم بعدا نیز ببینمشون یا حداقل از بینشون تصویر background را به صورت اتفاقی انتخاب کنم.</p>
<p>
	دنبال ابزار های مختلفی رفتم</p>
<p>
	</p>
<p>
	از جمله tcpDump و Squid و ... حتی <a href="http://unix.stackexchange.com/questions/38203/how-to-capture-images-transferred-via-http">اینجا</a> هم سوال کردم و در نهایت یک بنده خدایی در یک کامنتی اسم <a href="http://www.ex-parrot.com/~chris/driftnet/">driftnet</a> رو گفت که بعد از تحقیقات و ... دیدم دقیقا چیزی هست که من می خواهم.</p>
<p>
	البته مشکلاتی هم دارد. از قبیل اینکه تصاویر به صورت tmp هستند و بعد از بستن برنامه پاک می شوند و باید خودتان همه را مدیریت کنید.</p>
<p>
	یا اینکه معلوم نیست این تصویر واقعا از کجا گرفته شده است. البته فیلتر هایی مثل حجم و ... هم ندارد (که فکر می کنم با فیلتر می شود اعمال کرد.)</p>
<p>
	در کل ManFile بسیار ساده ای دارد و خیلی راحت می شود با آن کار کرد.</p>
<p>
	 </p>
<pre>
% sudo driftnet -i eth0 -a -d ./browserPic</pre>
<p>
	این نمونه اجرای من هست.</p>
<p>
	به زودی یه برنامه کوچک با python یا bash هم براش درست میکنم که تصاویر کوچک تر رو پاک کنه و بقیه تصاویر رو به جای درستی منتقل کند.</p>
<p>
	 </p>
<p>
	پانوشت: این بسته تقریبا ۱۰ سالی می شه که توسعه پیدا نکرده و باز نویسیش می تونه خیلی خوب باشه. الان با C هست.</p>]]></description>
	<pubDate>Wed, 05 Oct 2011 13:38:20 +0330</pubDate>
	<lastBuildDate>Thu, 10 May 2012 14:10:11 +0430</lastBuildDate>
	<comments>http://blog.efazati.org/post/%D8%B0%D8%AE%DB%8C%D8%B1%D9%87-%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1-%D8%AF%DB%8C%D8%AF%D9%87-%D8%B4%D8%AF%D9%87-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-%D8%B4%D8%A8%DA%A9%D9%87#comments</comments>
	<dc:creator>محمد افاضاتی</dc:creator>
	<guid isPermaLink="false">http://blog.ir/blogs/--TGGPRUgKQ/posts/hZnTtcnzU9Q</guid>
	<slash:comments>1</slash:comments>
		<category>کامپیوتر/برنامه نویسی</category>
		<category>کامپیوتر/برنامه نویسی/application</category>
		<category>کامپیوتر/لینوکس</category>
		<category>driftnet</category>
		<category>pic</category>
		<category>squid</category>
		<category>tcpdump</category>
		<category>تصاویر</category>
		<category>چه می بینیم</category>
	</item>
	<item>
	<title>لیست کتابهای نمایشگاه سال ۹۱</title>
	
	<link>http://blog.efazati.org/post/%D9%84%DB%8C%D8%B3%D8%AA-%DA%A9%D8%AA%D8%A7%D8%A8%D9%87%D8%A7%DB%8C-%D9%86%D9%85%D8%A7%DB%8C%D8%B4%DA%AF%D8%A7%D9%87-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B1</link>
		<description><![CDATA[<p>
	هر سال قبل از نمایشگاه کلی دلم را صابون می زنم که امسال چه می خواهم بخرم ... امسال هم از عید نوروز لیست می نوشتم و فکر می کردم چه چیزی باید بخرم و ... ولی درست دو روز مانده به نمایشگاه فهمیدم که آخر هفته کلی کار دارم و هفته بعد هم سفری در پیش دارم.</p>
<p>
	همه چیز وقتی خراب تر شد که پنجشنبه با حال خرابی شرکت و ترک کردم و به سمت خانه رفتم. واقعا بی هیچ امیدی خوابیدم و صبح جمعه بارون سنگینی منو بیدار کرد :D ... گفتیم گل بود به سبزه نیز آراسته شد. حالم بهتر شده بود ولی دیگر تاب و تحمل باران را نداشتم ... خدا خدا کردیم، با قطع شدن باران با دوستی هماهنگ کردیم و از خانه زدیم بیرون.</p>
<p>
	برنامه نمایشگاه امساله ما هم اینگونه شروع شد.</p>
<p>
	</p>
<p>
	لیستی که در ذهن داشتم چه بود؟</p>
<ul><li dir="rtl">
		ایران بین دو انقلاب  نویسنده:یرواند آبراهامیان مترجم:احمد گل‌محمدی <span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377">. نشر نی، نشر مرکز</span></span></li>
	<li dir="rtl">
		مازیار بهروز. شورشیان آرمانخواه. ترجمهٔ مهدی پرتوی. چاپ اول. ققنوس، ۱۳۸۰.</li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color: rgb(255, 0, 0);">خاستگاه آگاهی در فروپاشی ذهن دوجایگاهی (کتاب های یکم، دوم و سوم) - نشر آگه</span></span></span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color: rgb(255, 0, 0);">عصر ماشین‌های معنوی (وقتی رایانه‌ها از هوش انسان پیشی می‌گیرند) - ناشر: پیکان</span></span></span></span></li>
	<li dir="rtl">
		<span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377">پروست چگونه می‌تواند زندگی شما را دگرگون کند - نیلوفر</span></span></li>
	<li dir="rtl">
		<span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377">دموکراسی در برابر بی عدالتی - علم</span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span style="background-color: rgb(255, 0, 0);">در جستجوی زمان از دست رفته ۲ جلد اول</span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color: rgb(255, 0, 0);">دن آرام 1 (4 جلدی)-ناشر: فردوس</span></span></span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color: rgb(255, 0, 0);">سوسیالیسم و آزادی (چند بحث و نظر) - دیگر</span></span></span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color: rgb(255, 0, 0);">امپراتوری خورشید - جی . جی . بالارد - لی اصغر بهرامی -انتشارات چشمه</span></span></span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color: rgb(255, 0, 0);">بلور - جهان نو - بالارد</span></span></span></span></li>
	<li dir="rtl">
		<span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377">مجموعه اشعار حسین منزوی - نگاه</span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color: rgb(255, 0, 0);">کافکا در کرانه - نشر نیلوفر</span></span></span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color: rgb(255, 0, 0);">قمارباز - نیلوفر</span></span></span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color: rgb(255, 0, 0);">"جوان خام"  - اختران</span></span></span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color: rgb(255, 0, 0);">"دیوان ناصرخسرو"   - نگاه</span></span></span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color: rgb(255, 0, 0);">کلیات سعدی - هرمس</span></span></span></span></li>
	<li dir="rtl">
		<span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377">"تنگسیر"  - نگاه</span></span></li>
	<li dir="rtl">
		<span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377">داستان کوتاه جیمز آگوستین جویس - احمد گلشیری(مترجم - نگاه</span></span></li>
	<li dir="rtl">
		<span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377">تسخیر شدگان - نگاه</span></span></li>
	<li dir="rtl">
		<span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377">آخرین کتاب جهان - تندیس </span></span></li>
	<li dir="rtl">
		<span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="color:#ffffff;"><span style="background-color: rgb(255, 0, 0);">آهن پتاسیم نیکل - تندیس</span></span></span></span></li>
	<li dir="rtl">
		<span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377">اصلاح یا انقلاب؟ - رزا لوکزامبورگ – ترجمه:اسدالله کشاورزی- نشر آزادمهر – چاپ اول ۱۳۸۱ </span></span></li>
	<li dir="rtl">
		  آبروی از دست رفته کاترینا بلوم - هاینریش بل (نیلوفر)</li>
	<li dir="rtl">
		ژرمینال - امیل زولا (نیلوفر)</li>
	<li dir="rtl">
		6<span style="color:#ffffff;"><span style="background-color:#ff0000;">   3030651     9780672329784   Python Essential Reference  David Beazley   Katibeh 800000  RLS</span><br><br><span style="background-color:#ff0000;">2009</span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span style="background-color:#ff0000;">    3030875     9780672329463   Linux Kernel Development    Robert Love Katibeh 965000  RLS 2010</span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span class="reference-text"><span class="citation" id="CITEREF.DB.8C.D8.B1.D9.88.D8.A7.D9.86.D8.AF_.D8.A2.D8.A8.D8.B1.D8.A7.D9.87.D8.A7.D9.85.DB.8C.D8.A7.D9.861377"><span style="background-color:#ff0000;">سانسور و آزادی مطبوعات، ترجمه‌ٔ حسن مرتضوی، چاپ اول: ۱۳۸۴، نشر اختران.</span></span></span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span style="background-color:#ff0000;">  سیمای زنی در میان جمع - هاینریش بول (آگاه)</span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span style="background-color:#ff0000;">  آیا آدم مصنوعی‌ها خواب گوسفند برقی می‌بینند؟ - فیلیپ ک. دیک (روشنگران)</span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span style="background-color:#ff0000;"> اگر شبی از شبهای زمستان مسافری - ایتالو کالوینو (آگاه)</span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span style="background-color:#ff0000;">- نام من قرمز است، نوشته‌ اورهان پاموک نشر</span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><span style="background-color:#ff0000;"> جنگ دنیاها نوشته‌ی اچ جی ولز نشر</span></span></li>
	<li dir="rtl">
		<span style="color:#ffffff;"><u><span style="background-color:#ff0000;">زندگی در پیش و رو </span></u><span style="background-color:#ff0000;"> نشر بازتاب نگار</span></span></li>
	<li dir="rtl">
		جلد اول مجموعه آثار - شامل علل گرایش به مادی گرایی- عدل الهی - مطهری</li>
</ul><p>
	این همه قرمزی که می بینید لیست چیز هایی که نتونستم بخرم ... نشرهای چشمه، آگاه، اختران، دیگر و روشنگران شرکت نکرده بودند و همین خیلی هایشون رو توجیه می کنه البته در بعضی موارد واقعا بی پولی و قیمت گران باعث شد بگذرم... در مورد اورهان پاموک پیداش نکردم. کتاب آهن پتاسیم و ... را هم خریدم ولی فروشنده به اشتباه کتاب سه نفر را در پلاستیک گذاشت و ...</p>
<p>
	خب همه این اتفاقات طبیعی است :D نمایشگاه امسال مثل همیشه وجودم و تحریک می کردم کتاب های دیگری هم بخرم</p>
<ul><li>
		از دموکراسی تا مرد سالاری دینی - روزنه</li>
	<li>
		دل تاریکی - نیلوفر</li>
	<li>
		نوشتن مادام بوواری - نیلوفر</li>
	<li>
		اگزیستانیسالیسم و اصالت بشر - نیلوفر</li>
	<li>
		مرد پوزیترونی - قطره</li>
	<li>
		پتک آسمان - قطره</li>
	<li>
		وحشت در امیتی ویل - قطره</li>
	<li>
		قیدار - افق</li>
	<li>
		سازمان مجاهدین خلق - مطالعات سیاسی</li>
	<li>
		انتری که لوطی اش مرده بود - نگاه</li>
	<li>
		بررسی نقش مطبوعات در بستر سازی کودتای ۲۸ مرداد - مطالعات سیاسی</li>
</ul><p>
	 </p>
<p>
	چند تا از دوستان قدیمی را دیدم که باعث خوشحالی بیشتر ما شد. دکتر حسین زاده، سید حبیب گوهری راد، آقای اقبال زاده و ...</p>
<p>
	نمایشگاه مثل هر سال بی برنامه و نا مشخص بود :D نشر های دوست داشتنی ای نیامده بودند. نشر افق در سرای عمومی یک غرفه ۹ متری داشت، قدیانی چیز جدیدی نداشت و درست از ساعت ۱۲ ۱۳ دیگه حالم خراب شده بود و آفتاب زدگی و چیزهای دیگر راه رفتن را برایم سخت تر می کرد.</p>
<p>
	به خانه که رسیدم، همین که در را بستم باران گرفت :D که خوش شانسی ما هوایمان را داشت.</p>
<p>
	 </p>
<p>
	در مورد کتاب های خارجی نه حالش را پیدا کردم که بروم و سری بزنم و نه واقعا از ته قلب علاقه ای به خرید داشتم. همچنان بین خرید کتاب کاغذی و خواندن Ebook مانده ام.</p>
<p>
	 </p>
<p>
	 </p>]]></description>
	<pubDate>Wed, 05 Oct 2011 13:38:20 +0330</pubDate>
	<lastBuildDate>Thu, 10 May 2012 14:10:11 +0430</lastBuildDate>
	<comments>http://blog.efazati.org/post/%D9%84%DB%8C%D8%B3%D8%AA-%DA%A9%D8%AA%D8%A7%D8%A8%D9%87%D8%A7%DB%8C-%D9%86%D9%85%D8%A7%DB%8C%D8%B4%DA%AF%D8%A7%D9%87-%D8%B3%D8%A7%D9%84-%DB%B9%DB%B1#comments</comments>
	<dc:creator>محمد افاضاتی</dc:creator>
	<guid isPermaLink="false">http://blog.ir/blogs/--TGGPRUgKQ/posts/FbPZojwNWPw</guid>
	<slash:comments>5</slash:comments>
		<category>زندگی/ادبیات</category>
		<category>book fair 91</category>
		<category>لیست خرید</category>
		<category>نمایشگاه کتاب</category>
		<category>کتاب ۹۱</category>
	</item>
	<item>
	<title>خروجی firebug را رنگی کنید</title>
	
	<link>http://blog.efazati.org/post/%D8%AE%D8%B1%D9%88%D8%AC%DB%8C-firebug-%D8%B1%D8%A7-%D8%B1%D9%86%DA%AF%DB%8C-%DA%A9%D9%86%DB%8C%D8%AF</link>
		<description><![CDATA[<p>
	<a href="http://bayanbox.ir/blog/efazati/images/firebug-large.png?view" target="_blank"><img a="" src="http://bayanbox.ir/blog/efazati/images/firebug-large.png?thumb" style="float: right; margin-left: 5px; margin-right: 5px; border-width: 0pt; border-style: solid; height: 79px; width: 100px;" title="firebug"></a>Firebug یکی از قدرت مند ترین ابزار توسعه وب است که قابلیت بسیار خوبی به عنوان log گیری در javascript دارد. کافیست که با api مربوطه ... console.log خروجی های خود را بنویسید.</p>
<p>
	به طور مثال:</p>
<pre class="code">
console.log("The %s jumped over %d tall buildings", animal, count);</pre>
<p>
	خیلی وقت ها log ی که با console.log میگیرید در بین تعداد زیادی log گم می شود. مشکلی که خیلی خودم را اذیت کرد. بهترین راه حلی که دیدم از صفحه<a href="http://getfirebug.com/wiki/index.php/Console_API"> api firebug </a>بود</p>
<pre class="code">
console.log('%cThis is red text on a green background', 'color:white; background-color:green');</pre>
<p>
	شما با %c می توانید css مربوطه را برای خط log خود اعمال کنید. که خیلی نتیجه خوبی می تواند داشته باشد.</p>
<p>
	</p>
<p style="text-align: center;">
	<a href="http://bayanbox.ir/blog/efazati/images/firebug2.png?view" target="_blank"><img a="" src="http://bayanbox.ir/blog/efazati/images/firebug2.png?image_preview"></a></p>]]></description>
	<pubDate>Wed, 05 Oct 2011 13:38:20 +0330</pubDate>
	<lastBuildDate>Thu, 10 May 2012 14:10:11 +0430</lastBuildDate>
	<comments>http://blog.efazati.org/post/%D8%AE%D8%B1%D9%88%D8%AC%DB%8C-firebug-%D8%B1%D8%A7-%D8%B1%D9%86%DA%AF%DB%8C-%DA%A9%D9%86%DB%8C%D8%AF#comments</comments>
	<dc:creator>محمد افاضاتی</dc:creator>
	<guid isPermaLink="false">http://blog.ir/blogs/--TGGPRUgKQ/posts/qGfZKJNgTOM</guid>
	<slash:comments>1</slash:comments>
		<category>کامپیوتر/برنامه نویسی/web</category>
		<category>کامپیوتر/برنامه نویسی</category>
		<category>colrize</category>
		<category>firebug</category>
		<category>log</category>
		<category>logging</category>
	</item>
	<item>
	<title>replace کردن کلمه ای در تمام فایل های یک پوشه از طریق emacs</title>
	
	<link>http://blog.efazati.org/post/replace-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%D9%84%D9%85%D9%87-%D8%A7%DB%8C-%D8%AF%D8%B1-%D8%AA%D9%85%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%DB%8C%DA%A9-%D9%BE%D9%88%D8%B4%D9%87-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-emacs</link>
		<description><![CDATA[<p>
	<a href="http://bayanbox.ir/blog/efazati/images/3499045613_990302baf5.jpg?view" target="_blank"><img a="" src="http://bayanbox.ir/blog/efazati/images/3499045613_990302baf5.jpg?image_preview" style="float: right; margin-left: 5px; margin-right: 5px;"></a>برای refactor کردن کد یکی از کارهایی که معمولا انجامش ضروری است تغییر اسم متغییری در کل پروژه است. در emacs چگونه این کار انجام می شود؟ با ابزاری مثل rgrep باید همه چیز را در پوشه ها پیدا کرد و دانه دانه ویرایش کرد؟</p>
<p>
	روش درست استفاده از (dired (emacs file manager است. در این روش خیلی ساده با استفاده از دستور find-dired همه ی فایل های مربوط به پروژه را لیست می کنید. سپس با m می توانید فایل هایی که مایل به جستجو هستید را mark کنید. البته ابزار با دستور % m می توانید برای mark کردن در صفحه از regex استفاده کنید که سرعت عمل بیشتری دارد . به طور مثال من همه ی فایل ها را می خواهم mark کنم پس در regex مربوطه "." می زنم و همه mark می شوند.</p>
<p>
	</p>
<p>
	حالا با استفاده از دستور dired-do-query-replace-regexp می توانم دو متغییر بدهم که اولی مقدار جستجو و دومی مقدار تغییر هست. سپس در همه فایل ها نتیجه را بر می گردانند با y می توانم ویرایش هر کدام را تایید کنم و با n هم رد کنم. برای اینکه یک فایل را کلا replace کند می توانم از "!" استفاده کنم. از طرفی اگر خواستم به نتیجه قبلی برگردم "^" به من کمک می کند</p>]]></description>
	<pubDate>Wed, 05 Oct 2011 13:38:20 +0330</pubDate>
	<lastBuildDate>Thu, 10 May 2012 14:10:11 +0430</lastBuildDate>
	<comments>http://blog.efazati.org/post/replace-%DA%A9%D8%B1%D8%AF%D9%86-%DA%A9%D9%84%D9%85%D9%87-%D8%A7%DB%8C-%D8%AF%D8%B1-%D8%AA%D9%85%D8%A7%D9%85-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7%DB%8C-%DB%8C%DA%A9-%D9%BE%D9%88%D8%B4%D9%87-%D8%A7%D8%B2-%D8%B7%D8%B1%DB%8C%D9%82-emacs#comments</comments>
	<dc:creator>محمد افاضاتی</dc:creator>
	<guid isPermaLink="false">http://blog.ir/blogs/--TGGPRUgKQ/posts/3z56bxAhUrQ</guid>
	<slash:comments>2</slash:comments>
		<category>کامپیوتر/برنامه نویسی</category>
		<category>کامپیوتر</category>
		<category>کامپیوتر/لینوکس</category>
		<category>dired</category>
		<category>emacs</category>
		<category>find-dired</category>
		<category>regex</category>
		<category>replace</category>
		<category>ایمکس</category>
	</item>
	<item>
	<title>چند بار دکمه های کیبردتان را فشرده اید؟</title>
	
	<link>http://blog.efazati.org/post/%DA%86%D9%86%D8%AF-%D8%A8%D8%A7%D8%B1-%D8%AF%DA%A9%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%DB%8C%D8%A8%D8%B1%D8%AF%D8%AA%D8%A7%D9%86-%D8%B1%D8%A7-%D9%81%D8%B4%D8%B1%D8%AF%D9%87-%D8%A7%DB%8C%D8%AF%D8%9F</link>
		<description><![CDATA[<p>
	<a href="http://bayanbox.ir/blog/efazati/images/adv-keylogger-icon.jpg?view" target="_blank"><img a="" src="http://bayanbox.ir/blog/efazati/images/adv-keylogger-icon.jpg?image_preview" style="float: right; margin-left: 10px; margin-right: 10px;" title="کیبردتان را مانیتور کنید"></a>چند وقت پیش <a href="http://bayazee.blog.ir/">مهدی</a> مقاله ای را به من نشان داد که<a href="http://blog.stephenwolfram.com/2012/03/the-personal-analytics-of-my-life/"> stephen wolfram </a>اومده بود تعداد ایمیل هایی که زده گرفته ساعاتی که پشت سیستم بوده یا تعداد دکمه هایی که هر روز زده را روی نمودار برده است.</p>
<p>
	ایده گیکانه ای بود (اینجا صفته :D) چیزی مثل ایمیل رو به نظرم رسید بعدا می شود روی نمودار برد و همه چیزش را بیرون کشید ولی چیزی مثل دکمه زدن را چه می کنیم؟</p>
<p>
	کمی تحقیقات کردم دیدم در /dev/event/event0 تمام اتفاقات کیبرد وجود دارد یعنی با مانیتور کردنش می شود به راحتی فهمید چند بار دکمه های کیبردتان را فشرده اید. </p>
<p>
	خب یک اسکریپت کوچیک نوشتم</p>
<pre>
#!/usr/bin/python

report_file = '/opt/keycount'


def keycounter(count):
    f = open(report_file, 'w')
    f.write(str(count))
    f.close()

f = open(report_file, 'r')
try:
    count = int(f.readline())
except:
    count = 0
f.close()
#here event0 should be changed to the eventn, where eventn is the keyboard.
input = open('/dev/input/event0', 'rb')
while True:
    input.read(96)
    count += 1
    if (count):
        keycounter(count)
</pre>
<p>
	و بعد این فایل رو در /usr/local/bin می گذارم و در ~/.xinitrc اسم فایل را می گذارم و به راحتی هر دفعه که دکمه ای زده شود یکی به keycount اضافه می کند.</p>
<p>
	 </p>
<p>
	نکته: باید /opt/keycount با سطح دسترسی write و read باشد. اگر این فایل وجود ندارد باید بسازید.</p>
<p>
	نکته ۲: ممکن است آدرس event ها چیزی که گفتم نباشد بررسی کنید بگویید من هم کامل کنم. این اسکریپت بر روی ArchLinx و Debian sid امتحان شده است</p>
<p>
	 </p>
<p>
	البته این اسکریپت تنها کاری که می کنه فقط می شماره ولی معلوم نیست چه روزی چقدر اینکارو کردید موس چی؟ یا حتی پراکندگی دکمه های کیبرد چگونه است؟ می شود جای اینکه در فایل بنویسیم در یک دیتابیس مثلا sqlite3 بنویسیم که جالب تر می شود. اگر روزی حوصله اش را داشتم اونم می نویسم.</p>]]></description>
	<pubDate>Wed, 05 Oct 2011 13:38:20 +0330</pubDate>
	<lastBuildDate>Thu, 10 May 2012 14:10:11 +0430</lastBuildDate>
	<comments>http://blog.efazati.org/post/%DA%86%D9%86%D8%AF-%D8%A8%D8%A7%D8%B1-%D8%AF%DA%A9%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%DB%8C%D8%A8%D8%B1%D8%AF%D8%AA%D8%A7%D9%86-%D8%B1%D8%A7-%D9%81%D8%B4%D8%B1%D8%AF%D9%87-%D8%A7%DB%8C%D8%AF%D8%9F#comments</comments>
	<dc:creator>محمد افاضاتی</dc:creator>
	<guid isPermaLink="false">http://blog.ir/blogs/--TGGPRUgKQ/posts/UxYqNDT11jM</guid>
	<slash:comments>2</slash:comments>
		<category>کامپیوتر/لینوکس</category>
		<category>keylogger</category>
		<category>monitoring</category>
		<category>python</category>
		<category>کیبرد</category>
	</item>
	<item>
	<title>چگونه رمز فراموش شده مدیر django را عوض کنیم؟</title>
	
	<link>http://blog.efazati.org/post/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%B1%D9%85%D8%B2-%D9%85%D8%AF%DB%8C%D8%B1-django-%D8%B1%D8%A7-%D8%B9%D9%88%D8%B6-%DA%A9%D9%86%DB%8C%D9%85%D8%9F</link>
		<description><![CDATA[<p>
	<a href="http://bayanbox.ir/blog/efazati/images/forgot_password.png?info" target="_blank"><img a="" src="http://bayanbox.ir/blog/efazati/images/forgot_password.png?image_preview" style="float: right; margin-left: 5px; margin-right: 5px; height: 191px; width: 150px;" title="رمز عبورتان را فراموش کردید؟"></a>وقتی با فریم ورک django برنامه نویسی می کنید پیش می آید که رمز admin را فراموش می کنید. معمولا کاری که می کنید این است که دیتابیس را پاک می کنید و دوباره build می کنید و اگر در فاز deploy باشید معمولا قضیه بیشتر بیخ پیدا می کند یا چیزی مثل forget password دارید و از آن مسیر پیش می روید یا اینکه یک کاربر جدید درست می کنید</p>
<pre>
$ python manage.py createsuperuser
</pre>
<p>
	با این روش می شود کار خودمون رو پیش ببریم ولی آیا راه درستی هست؟</p>
<p>
	راه بهتر چیست؟</p>
<p>
	</p>
<p>
	با دستور زیر وارد shell django می شویم</p>
<pre>
$ python manage.py shell</pre>
<p>
	مدل مربوط به user را وارد می کنیم.</p>
<pre>
&gt;&gt;&gt; from django.contrib.auth.models import User</pre>
<p>
	کاربر مورد نظرمون را select می کنیم</p>
<pre>
&gt;&gt;&gt; u = User.objects.get(username='efazati')
&gt;&gt;&gt; u.set_password('mohammad')
&gt;&gt;&gt; u.save()</pre>
<p>
	و به همین راحتی رمز جدید اعمال می شود.</p>]]></description>
	<pubDate>Wed, 05 Oct 2011 13:38:20 +0330</pubDate>
	<lastBuildDate>Thu, 10 May 2012 14:10:11 +0430</lastBuildDate>
	<comments>http://blog.efazati.org/post/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%B1%D9%85%D8%B2-%D9%85%D8%AF%DB%8C%D8%B1-django-%D8%B1%D8%A7-%D8%B9%D9%88%D8%B6-%DA%A9%D9%86%DB%8C%D9%85%D8%9F#comments</comments>
	<dc:creator>محمد افاضاتی</dc:creator>
	<guid isPermaLink="false">http://blog.ir/blogs/--TGGPRUgKQ/posts/kNU7YLhh8AY</guid>
	<slash:comments>1</slash:comments>
		<category>کامپیوتر/پایتون/django</category>
		<category>django</category>
		<category>djangoadmin</category>
		<category>lost password</category>
		<category>جنگو</category>
		<category>رمز عبور</category>
	</item>
	<item>
	<title>geddy nodejs web framework</title>
	
	<link>http://blog.efazati.org/post/geddy-nodejs-web-framework</link>
		<description><![CDATA[<p>
	<a href="http://bayanbox.ir/blog/efazati/images/geddy.png?view" target="_blank"><img a="" src="http://bayanbox.ir/blog/efazati/images/geddy.png?image_preview" style="margin-left: 5px; margin-right: 5px; float: right; height: 49px; width: 150px;"></a><a href="http://efazati.blog.ir/post/NodeJs">nodejs</a> آچار فرانسه ای که هر روز بیشتر خبری درباره اش می شنویم امروزه تبدیل به یکی از ابزار های بسیار جذاب شده است. یکی از این چیز ها که توجهم را به خودش جلب کرد یک فریم ورک وب است که امکانات خوبی دارد.</p>
<p>
	<a href="http://geddyjs.org/">geddy</a> فریم ورکی است که امکانات جالبی دارد. این فریم ورک از الگوی معماری <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">mvc</a> تبعیت می کند.</p>
<p>
	 </p>
<p>
	<strong>model:</strong></p>
<p>
	ساختار منعطف به همراه validation</p>
<pre class="code-box prettyprint">
<span class="kwd">var</span><span class="pln"> </span><span class="typ">User</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> </span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">property</span><span class="pun">(</span><span class="str">'login'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'string'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln">required</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">});</span><span class="pln">
  </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">property</span><span class="pun">(</span><span class="str">'password'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'string'</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln">required</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">});</span><span class="pln">

  </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">validatesPresent</span><span class="pun">(</span><span class="str">'login'</span><span class="pun">);</span><span class="pln">
  </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">validatesConfirmed</span><span class="pun">(</span><span class="str">'password'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'confirmPassword'</span><span class="pun">);</span><span class="pln">

  </span><span class="com">// You can define methods for instances like this</span><span class="pln">
  </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">someMethod </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> </span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="com">// Do some stuff</span><span class="pln">
  </span><span class="pun">};</span><span class="pln">
</span><span class="pun">};</span><span class="pln">

</span><span class="typ">User</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> geddy</span><span class="pun">.</span><span class="pln">model</span><span class="pun">.</span><span class="pln">registerModel</span><span class="pun">(</span><span class="str">'User'</span><span class="pun">,</span><span class="pln"> </span><span class="typ">User</span><span class="pun">);</span></pre>
<p>
	همانطور که می بیند که فیلد ها می تواند از type های اولیه تعریف شوند همینطور با validator ها چک شوند و شما می توانید متد برای مدل تعریف کنید.</p>
<p>
	 </p>
<p>
	<strong>view:</strong></p>
<p>
	برای مدیریت view از <a href="http://embeddedjs.com/">ejs</a> استفاده می شود.</p>
<pre class="code-box prettyprint">
<span class="com">// view logic</span><span class="pln">
</span><span class="pun">&lt;%</span><span class="pln"> </span><span class="kwd">if</span><span class="pln"> </span><span class="pun">(</span><span class="pln">localVar</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="pun">%&gt;</span><span class="pln">
  </span><span class="com">// do some stuff with that local variable</span><span class="pln">
</span><span class="pun">&lt;%</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="pun">%&gt;</span><span class="pln">

</span><span class="com">// display the value of a variable</span><span class="pln">
</span><span class="pun">&lt;%=</span><span class="pln"> user</span><span class="pun">.</span><span class="pln">login </span><span class="pun">%&gt;</span><span class="pln">

</span><span class="com">// just use regular js</span><span class="pln">
</span><span class="pun">&lt;%</span><span class="pln"> </span><span class="kwd">for</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">var</span><span class="pln"> i </span><span class="kwd">in</span><span class="pln"> user</span><span class="pun">.</span><span class="pln">posts</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> </span><span class="pun">%&gt;</span><span class="pln">
  </span><span class="pun">&lt;%=</span><span class="pln"> user</span><span class="pun">.</span><span class="pln">posts</span><span class="pun">[</span><span class="pln">i</span><span class="pun">].</span><span class="pln">title </span><span class="pun">%&gt;</span><span class="pln">
</span><span class="pun">&lt;%</span><span class="pln"> </span><span class="pun">}</span><span class="pln"> </span><span class="pun">%&gt;</span></pre>
<p>
	قبلا چیز هایی مثل <a href="https://github.com/janl/mustache.js/">mustache</a> را بررسی کرده بودم یکی از معایبی که از <a href="http://embeddedjs.com/">ejs</a> دیدم این بود که کامپایل نمی شد (جایی چیزی ازش ندیدم) و احتمال سرعت کمتری به نسبت بقیه دارد.</p>
<p>
	 </p>
<p>
	<strong>Controller:</strong></p>
<p>
	به صورت پیشفرض با ساخت مدل crud را jeddy برای شما درست درست می کند. متد های دیگر را می توانید با استفاده از controller اضافه کنید.</p>
<pre class="code-box prettyprint">
<span class="kwd">var</span><span class="pln"> </span><span class="typ">User</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> </span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">index </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">function</span><span class="pln"> </span><span class="pun">(</span><span class="pln">req</span><span class="pun">,</span><span class="pln"> resp</span><span class="pun">,</span><span class="pln"> </span><span class="kwd">params</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
    </span><span class="kwd">this</span><span class="pun">.</span><span class="pln">respond</span><span class="pun">(</span><span class="kwd">params</span><span class="pun">,</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
      format</span><span class="pun">:</span><span class="pln"> </span><span class="str">'html'</span><span class="pln">
    </span><span class="pun">,</span><span class="pln"> </span><span class="kwd">template</span><span class="pun">:</span><span class="pln"> </span><span class="str">'app/views/main/index'</span><span class="pln">
    </span><span class="pun">});</span><span class="pln">
  </span><span class="pun">};</span><span class="pln">
</span><span class="pun">};</span><span class="pln">

exports</span><span class="pun">.</span><span class="typ">User</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="typ">User</span><span class="pun">;</span></pre>
<p>
	 </p>
<p>
	نوع content format را می توانید مشخص کنید</p>
<pre class="code-box prettyprint">
<span class="kwd">this</span><span class="pun">.</span><span class="pln">respondsWith </span><span class="pun">=</span><span class="pln"> </span><span class="pun">[</span><span class="str">'js'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'json'</span><span class="pun">];</span><span class="pln">
</span></pre>
<p>
	از حالا .json را می توانید در آدرس هایتان استفاده کنید.</p>
<p>
	 </p>
<p>
	با jeddy نیازی به نگرانی درباره clustering ندارید. به راحتی می توانید از cluster استفاده کنید. تعداد worker ها را می گویید.</p>
<pre class="code-box prettyprint">
<span class="com">// just set the number of workers in your config</span><span class="pln">
</span><span class="str">"workers"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">1</span><span class="pln">

</span><span class="com">// Geddy also handles process rotation</span><span class="pln">
</span><span class="str">"rotateWorkers"</span><span class="pun">:</span><span class="pln"> </span><span class="kwd">true</span><span class="pun">,</span><span class="pln">
</span><span class="str">"rotationWindow"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">7200000</span><span class="pun">,</span><span class="pln">
</span><span class="str">"rotationTimeout"</span><span class="pun">:</span><span class="pln"> </span><span class="lit">300000</span><span class="pun">,</span></pre>
<p>
	 </p>
<p>
	<strong>app metric:</strong></p>
<p>
	برای محاسبه زمان و تست برنامه فقط metric را در تنظیمات فعال کنید و به /metric بروید</p>
<pre class="code-box prettyprint">
<span class="com">// counters</span><span class="pln">
</span><span class="kwd">var</span><span class="pln"> counter </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> geddy</span><span class="pun">.</span><span class="pln">metrics</span><span class="pun">.</span><span class="typ">Counter</span><span class="pun">;</span><span class="pln">
counter</span><span class="pun">.</span><span class="pln">inc</span><span class="pun">(</span><span class="lit">1</span><span class="pun">);</span><span class="pln">

</span><span class="com">// timers</span><span class="pln">
</span><span class="kwd">var</span><span class="pln"> timer </span><span class="pun">=</span><span class="pln"> </span><span class="kwd">new</span><span class="pln"> geddy</span><span class="pun">.</span><span class="pln">metrics</span><span class="pun">.</span><span class="typ">Timer</span><span class="pun">;</span><span class="pln">
timer</span><span class="pun">.</span><span class="pln">mark</span><span class="pun">();</span></pre>
<p>
	 </p>
<p>
	کلا command line خوبی دارد</p>
<pre class="code-box prettyprint">
<span class="com">// generate an app</span><span class="pln">
$</span><span class="pun">&gt;</span><span class="pln"> geddy app test_app

</span><span class="com">// generate a new resource</span><span class="pln">
$</span><span class="pun">&gt;</span><span class="pln"> geddy resource user

</span><span class="com">// start your app</span><span class="pln">
$</span><span class="pun">&gt;</span><span class="pln"> geddy</span></pre>
<p>
	 </p>
<p>
	<strong><span class="pln">router:</span></strong></p>
<pre class="code-box prettyprint" style="font-size: 90%">
<span class="com">// standard main route</span><span class="pln">
router</span><span class="pun">.</span><span class="pln">match</span><span class="pun">(</span><span class="str">'/'</span><span class="pun">).</span><span class="pln">to</span><span class="pun">({</span><span class="pln">controller</span><span class="pun">:</span><span class="pln"> </span><span class="str">'Main'</span><span class="pun">,</span><span class="pln"> action</span><span class="pun">:</span><span class="pln"> </span><span class="str">'index'</span><span class="pun">});</span><span class="pln">

</span><span class="com">// a custom route</span><span class="pln">
router</span><span class="pun">.</span><span class="pln">match</span><span class="pun">(</span><span class="str">'/moving/pictures/:id'</span><span class="pun">).</span><span class="pln">to</span><span class="pun">({</span><span class="pln">controller</span><span class="pun">:</span><span class="pln"> </span><span class="str">'Moving'</span><span class="pun">,</span><span class="pln"> action</span><span class="pun">:</span><span class="pln"> </span><span class="str">'pictures'</span><span class="pun">});</span><span class="pln">

</span><span class="com">// a restful resource route</span><span class="pln">
router</span><span class="pun">.</span><span class="pln">resource</span><span class="pun">(</span><span class="str">'users'</span><span class="pun">);</span></pre>
<p>
	شما با تعریف router یک url handler دارید که در نهایت controller شما را اجرا می کند.</p>
<p>
	 </p>
<p>
	<strong>logging:</strong></p>
<pre class="code-box prettyprint" style="font-size: 90%">
<span class="com">// info</span><span class="pln">
geddy</span><span class="pun">.</span><span class="pln">log</span><span class="pun">.</span><span class="pln">info</span><span class="pun">(</span><span class="str">'Some info for you'</span><span class="pun">);</span><span class="pln">

</span><span class="com">// warning</span><span class="pln">
geddy</span><span class="pun">.</span><span class="pln">log</span><span class="pun">.</span><span class="pln">warn</span><span class="pun">(</span><span class="str">'A warning!'</span><span class="pun">);</span><span class="pln">

</span><span class="com">// error</span><span class="pln">
geddy</span><span class="pun">.</span><span class="pln">log</span><span class="pun">.</span><span class="typ">Error</span><span class="pun">(</span><span class="str">'An error occurred'</span><span class="pun">);</span></pre>
<p>
	شما از طریق می تونید Log داشته باشید و همه چیز را بنویسید.</p>
<p>
	 </p>
<p>
	<strong>نصب:</strong></p>
<p>
	برای نصب کردن از طریق npm دستور زیر ر امی زنید</p>
<pre class="prettyprint">
<span class="pln">$</span><span class="pun">&gt;</span><span class="pln"> npm install </span><span class="pun">-</span><span class="pln">g jake geddy</span></pre>
<p>
	<span class="pln">حالا می توانید از طریق geddy بگویید که من یک برنامه می خواهم</span></p>
<pre class="prettyprint">
<span class="pln">$</span><span class="pun">&gt;</span><span class="pln"> geddy app todo_app</span></pre>
<p>
	<span class="pln">و با وارد شدن به پوشه todo_app می توانید پروژه را اجرا کنید</span></p>
<pre class="prettyprint">
<span class="pln">$</span><span class="pun">&gt;</span><span class="pln"> cd todo_app
$</span><span class="pun">&gt;</span><span class="pln"> geddy
</span></pre>
<p>
	از طریق <a href="http://localhost:4000/">http://localhost:4000</a> می توانید application خودتان را ببینید</p>
<pre class="prettyprint">
<span class="pln">geddy resource todo</span></pre>
<p>
	<span class="pln">با این دستور geddy برایتان برنامه اولیه تان را می نویسد. چه می نویسد؟</span></p>
<ul><li dir="rtl">
		It generated a todo model</li>
	<li dir="rtl">
		It generated a todos controller</li>
	<li dir="rtl">
		It generated views for:
		<ul><li>
				an index of todo's</li>
			<li>
				a single todo</li>
			<li>
				creating a todo</li>
			<li>
				editing a todo</li>
		</ul></li>
	<li dir="rtl">
		It generated these routes:
		<ul><li>
				/todos (GET)</li>
			<li>
				/todos (POST)</li>
			<li>
				/todos/add (GET)</li>
			<li>
				/todos/:id/edit (GET)</li>
			<li>
				/todos/:id (GET)</li>
			<li>
				/todos/:id (PUT)</li>
			<li>
				/todos/:id (DELETE)<br>
				 </li>
		</ul></li>
</ul><p>
	حالا با اجرای سرور می توانید از آدرس <a href="http://localhost:4000/todos">http://localhost:4000/todos</a> برنامه تان را ببینید</p>
<p>
	در هر فایل می توانید با اجرای تغییرات برنامه تان را کامل تر کنید.</p>
<p>
	 </p>
<p>
	راهنمای geddy:</p>
<p dir="ltr">
	Geddy - A Structured Node.js Framework -&gt; <a href="http://geddyjs.org/tutorial.html">http://geddyjs.org/tutorial.html</a></p>]]></description>
	<pubDate>Wed, 05 Oct 2011 13:38:20 +0330</pubDate>
	<lastBuildDate>Thu, 10 May 2012 14:10:11 +0430</lastBuildDate>
	<comments>http://blog.efazati.org/post/geddy-nodejs-web-framework#comments</comments>
	<dc:creator>محمد افاضاتی</dc:creator>
	<guid isPermaLink="false">http://blog.ir/blogs/--TGGPRUgKQ/posts/fjA2_sAFSXQ</guid>
	<slash:comments>0</slash:comments>
		<category>کامپیوتر/وب سرور/nodejs</category>
		<category>application</category>
		<category>framework</category>
		<category>geddy</category>
		<category>javascript</category>
		<category>node</category>
		<category>nodejs</category>
		<category>web</category>
		<category>webframework</category>
	</item>
	<item>
	<title>NodeJs</title>
	
	<link>http://blog.efazati.org/post/NodeJs</link>
		<description><![CDATA[<p>
	<a href="http://bayanbox.ir/blog/efazati/images/nodejs__1.png?info" target="_blank"><img a="" dir="rtl" src="http://bayanbox.ir/blog/efazati/images/nodejs__1.png?image_preview" style="width: 176px; height: 90px; float: right; margin-left: 5px; margin-right: 5px;"></a>در<a href="http://efazati.blog.ir/post/Nginx"> معرفی Nginx</a> توضیح دادم که event-driven, non-blocking یعنی چه... ساختاری که با event که همان درخواست هست جوابگوی درخواست ها هست.</p>
<p>
	ایده ای جذاب که با ایده جذاب دیگری ترکیب شده است.</p>
<p>
	اجرای کد های جاوا اسکریپت در پروژه هایی همچون <a href="http://commonjs.org/">CommonJs</a> دیده شده بود ولی با اینکه javaScript زبانی مجزا از مرورگر بود (با اینکه به مدیریت نت اسکیپ طراحی شد ولی کاملا مجزا بود ولی با دادن LiveScript توسط netscape یا jScript توسط IE خیلی به عنوان زبانی که فقط برای مرورگر است دیده شده است) کمی غریب دیده میشدند. ایده کلی این بود که جاوا اسکریپت مختص مرورگر نیست.</p>
<p>
	<a href="http://www.nodejs.org/">Nodejs</a> در حقیقت با استفاده از <a href="http://code.google.com/p/v8/">V8</a> که engine مربوط به chrome است کار می کند.</p>
<p>
	<a href="http://www.nodejs.org/">Nodejs</a> پلتفرمی است بر مبنای <a href="http://code.google.com/p/v8">موتور جاوا اسکریپت کروم</a> که به منظور ایجاد برنامه های سریع و گسترش پذیر به وجود آمده است. <a href="http://www.nodejs.org/">Nodejs</a> از مدل رویدادگرا و non-blocking برای انجام عملیات I/O بهره می برد. از این‌رو <a href="http://www.nodejs.org/">Nodejs</a> یک پلتفرم سبک و کارا برای پیاده سازی برنامه های Real-time و مبتنی بر داده است که می توانند به راحتی در سرورهای نامتمرکز اجرا شوند.</p>
<p>
	 </p>
<p>
	<strong>طریقه نصب:</strong></p>
<p>
	در کل در اکثر دیسترو ها package مربوطه وجود دارد و خیلی راحت می توانید نصب کنید. به طور مثال در Archlinux اینگونه خواهد بود</p>
<pre>
efazati@KaraOS ~ % sudo pacman -S nodejs

resolving dependencies...
looking for inter-conflicts...

Targets (1): nodejs-0.6.14-1

Total Download Size:    2.79 MiB
Total Installed Size:   14.21 MiB

Proceed with installation? [Y/n]
:: Retrieving packages from community...
 nodejs-0.6.14-1-x86_64                         2.8 MiB  42.5K/s 01:07 [#######################################] 100%
(1/1) checking package integrity                                       [#######################################] 100%
(1/1) loading package files                                            [#######################################] 100%
(1/1) checking for file conflicts                                      [#######################################] 100%
(1/1) checking available disk space                                    [#######################################] 100%
(1/1) installing nodejs                                                [#######################################] 100%
Optional dependencies for nodejs
    openssl: TLS support
</pre>
<p>
	 </p>
<p>
	به طور مثال شما با کد زیر می توانید <a href="http://www.nodejs.org/">Nodejs</a> را راه اندازی کنید و به همه درخواست Hello To Efazati Blog بگویید.</p>
<pre class="sh_sourceCode">
<span class="sh_keyword">var</span> http <span class="sh_symbol">=</span> <span class="sh_function">require</span><span class="sh_symbol">(</span><span class="sh_string">'http'</span><span class="sh_symbol">);</span>
http<span class="sh_symbol">.</span><span class="sh_function">createServer</span><span class="sh_symbol">(</span><span class="sh_keyword">function</span> <span class="sh_symbol">(</span>req<span class="sh_symbol">,</span> res<span class="sh_symbol">)</span> <span class="sh_cbracket">{</span>
  res<span class="sh_symbol">.</span><span class="sh_function">writeHead</span><span class="sh_symbol">(</span><span class="sh_number">200</span><span class="sh_symbol">,</span> <span class="sh_cbracket">{</span><span class="sh_string">'Content-Type'</span><span class="sh_symbol">:</span> <span class="sh_string">'text/plain'</span><span class="sh_cbracket">}</span><span class="sh_symbol">);</span>
  res<span class="sh_symbol">.</span><span class="sh_function">end</span><span class="sh_symbol">('</span>Hello To Efazati Blog<span class="sh_specialchar">\n</span><span class="sh_string">'</span><span class="sh_symbol">);</span>
<span class="sh_cbracket">}</span><span class="sh_symbol">).</span><span class="sh_function">listen</span><span class="sh_symbol">(</span><span class="sh_number">1337</span><span class="sh_symbol">,</span> <span class="sh_string">'127.0.0.1'</span><span class="sh_symbol">);</span>
console<span class="sh_symbol">.</span><span class="sh_function">log</span><span class="sh_symbol">(</span><span class="sh_string">'Server running at http://127.0.0.1:1337/'</span><span class="sh_symbol">);</span></pre>
<p>
	<span class="sh_symbol">کافی است</span> در یک فایل مثلا test.js بگذارید و با دستور زیر اجرایش کنید.</p>
<pre class="sh_none">
% node example.js
Server running at http://127.0.0.1:1337/</pre>
<p>
	حالا صفحه شما اجرا می شود<br>
	شما توانستید اولی برنامه <a href="http://www.nodejs.org/">Nodejs</a> خودتون را بنویسید.</p>
<p>
	 </p>
<p>
	<strong>NPM:</strong></p>
<p>
	<a href="http://www.nodejs.org/">Nodejs</a> به علت جذابیت هایی که دارد طرفدارن زیادی را جذب کرده و همین باعث شد کلا کد های زیادی با node نوشته شود. یکی از نتایج این قضیه ساخت یک package manager است که با استفاده از آن می توانید برنامه هایی که توسط node نوشته است را پیدا کرده و نصب کنید.</p>
<p>
	اسم این package manger خوب <a href="http://npmjs.org/">Npm</a> است.</p>
<p>
	به طور مثال package بسیار جالب mysql رو با هم نصب می کنیم</p>
<pre>
<code>npm install mysql</code></pre>
<p>
	 </p>
<p>
	بعد از نصب یک فایل mysql.js درست کنیم و کد زیر را بزنیم</p>
<pre>
<span class="kd">var</span> <span class="nx">mysql</span> <span class="o">=</span> <span class="nx">require</span><span class="p">(</span><span class="s1">'mysql'</span><span class="p">);</span>
<span class="kd">var</span> <span class="nx">TEST_DATABASE</span> <span class="o">=</span> <span class="s1">'nodejs_mysql_test'</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">TEST_TABLE</span> <span class="o">=</span> <span class="s1">'test'</span><span class="p">;</span>
<span class="kd">var</span> <span class="nx">client</span> <span class="o">=</span> <span class="nx">mysql</span><span class="p">.</span><span class="nx">createClient</span><span class="p">({</span>
  <span class="nx">user</span><span class="o">:</span> <span class="s1">'root'</span><span class="p">,</span>
  <span class="nx">password</span><span class="o">:</span> <span class="s1">'root'</span><span class="p">,</span>
<span class="p">});</span>

<span class="nx">client</span><span class="p">.</span><span class="nx">query</span><span class="p">(</span><span class="s1">'CREATE DATABASE '</span><span class="o">+</span><span class="nx">TEST_DATABASE</span><span class="p">,</span> <span class="kd">function</span><span class="p">(</span><span class="nx">err</span><span class="p">)</span> <span class="p">{</span>
  <span class="k">if</span> <span class="p">(</span><span class="nx">err</span> <span class="o">&amp;&amp;</span> <span class="nx">err</span><span class="p">.</span><span class="nx">number</span> <span class="o">!=</span> <span class="nx">mysql</span><span class="p">.</span><span class="nx">ERROR_DB_CREATE_EXISTS</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">throw</span> <span class="nx">err</span><span class="p">;</span>
  <span class="p">}</span>
<span class="p">});</span>

<span class="c1">// If no callback is provided, any errors will be emitted as `'error'`</span>
<span class="c1">// events by the client</span>
<span class="nx">client</span><span class="p">.</span><span class="nx">query</span><span class="p">(</span><span class="s1">'USE '</span><span class="o">+</span><span class="nx">TEST_DATABASE</span><span class="p">);</span>

<span class="nx">client</span><span class="p">.</span><span class="nx">query</span><span class="p">(</span>
  <span class="s1">'INSERT INTO '</span><span class="o">+</span><span class="nx">TEST_TABLE</span><span class="o">+</span><span class="s1">' '</span><span class="o">+</span>
  <span class="s1">'SET title = ?, text = ?, created = ?'</span><span class="p">,</span>
  <span class="p">[</span><span class="s1">'super cool'</span><span class="p">,</span> <span class="s1">'this is a nice text'</span><span class="p">,</span> <span class="s1">'2010-08-16 10:00:23'</span><span class="p">]</span>
<span class="p">);</span>

<span class="nx">client</span><span class="p">.</span><span class="nx">query</span><span class="p">(</span>
  <span class="s1">'SELECT * FROM '</span><span class="o">+</span><span class="nx">TEST_TABLE</span><span class="p">,</span>
  <span class="kd">function</span> <span class="nx">selectCb</span><span class="p">(</span><span class="nx">err</span><span class="p">,</span> <span class="nx">results</span><span class="p">,</span> <span class="nx">fields</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">if</span> <span class="p">(</span><span class="nx">err</span><span class="p">)</span> <span class="p">{</span>
      <span class="k">throw</span> <span class="nx">err</span><span class="p">;</span>
    <span class="p">}</span>

    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">results</span><span class="p">);</span>
    <span class="nx">console</span><span class="p">.</span><span class="nx">log</span><span class="p">(</span><span class="nx">fields</span><span class="p">);</span>
    <span class="nx">client</span><span class="p">.</span><span class="nx">end</span><span class="p">();</span>
  <span class="p">}</span>
<span class="p">);</span>
</pre>
<p>
	 </p>
<p>
	<strong>بعضی کتابخانه های استاندارد Node:</strong></p>
<ul><li>
		<a href="http://www.nodejs.org/api/synopsis.html">Synopsis</a></li>
	<li>
		<a href="http://www.nodejs.org/api/globals.html">Globals</a></li>
	<li>
		<a href="http://www.nodejs.org/api/stdio.html">STDIO</a></li>
	<li>
		<a href="http://www.nodejs.org/api/timers.html">Timers</a></li>
	<li>
		<a href="http://www.nodejs.org/api/modules.html">Modules</a></li>
	<li>
		<a href="http://www.nodejs.org/api/addons.html">C/C++ Addons</a></li>
	<li>
		<a href="http://www.nodejs.org/api/process.html">Process</a></li>
	<li>
		<a href="http://www.nodejs.org/api/util.html">Utilities</a></li>
	<li>
		<a href="http://www.nodejs.org/api/events.html">Events</a></li>
	<li>
		<a href="http://www.nodejs.org/api/buffer.html">Buffer</a></li>
	<li>
		<a href="http://www.nodejs.org/api/stream.html">Stream</a></li>
	<li>
		<a href="http://www.nodejs.org/api/crypto.html">Crypto</a></li>
	<li>
		<a href="http://www.nodejs.org/api/tls.html">TLS/SSL</a></li>
	<li>
		<a href="http://www.nodejs.org/api/string_decoder.html">String Decoder</a></li>
	<li>
		<a href="http://www.nodejs.org/api/fs.html">File System</a></li>
	<li>
		<a href="http://www.nodejs.org/api/path.html">Path</a></li>
	<li>
		<a href="http://www.nodejs.org/api/net.html">Net</a></li>
	<li>
		<a href="http://www.nodejs.org/api/dgram.html">UDP/Datagram</a></li>
	<li>
		<a href="http://www.nodejs.org/api/dns.html">DNS</a></li>
	<li>
		<a href="http://www.nodejs.org/api/http.html">HTTP</a></li>
	<li>
		<a href="http://www.nodejs.org/api/https.html">HTTPS</a></li>
	<li>
		<a href="http://www.nodejs.org/api/url.html">URL</a></li>
	<li>
		<a href="http://www.nodejs.org/api/querystring.html">Query Strings</a></li>
	<li>
		<a href="http://www.nodejs.org/api/readline.html">Readline</a></li>
	<li>
		<a href="http://www.nodejs.org/api/repl.html">REPL</a></li>
	<li>
		<a href="http://www.nodejs.org/api/vm.html">VM</a></li>
	<li>
		<a href="http://www.nodejs.org/api/child_process.html">Child Processes</a></li>
	<li>
		<a href="http://www.nodejs.org/api/assert.html">Assertion Testing</a></li>
	<li>
		<a href="http://www.nodejs.org/api/tty.html">TTY</a></li>
	<li>
		<a href="http://www.nodejs.org/api/zlib.html">ZLIB</a></li>
	<li>
		<a href="http://www.nodejs.org/api/os.html">OS</a></li>
	<li>
		<a href="http://www.nodejs.org/api/debugger.html">Debugger</a></li>
	<li>
		<a href="http://www.nodejs.org/api/cluster.html">Cluster</a></li>
</ul><p>
	 </p>
<p>
	 </p>
<p>
	<strong>همچنین ببینید:</strong></p>
<p dir="ltr">
	node.js -&gt; <a href="http://www.nodejs.org/">http://www.nodejs.org/</a></p>
<p dir="ltr">
	node.js کاربران ایرانی nodejs -&gt; <a href="http://nodejs.ir/">http://nodejs.ir/</a></p>
<p dir="ltr">
	The Node Beginner Book » A comprehensive Node.js tutorial -&gt; <a href="http://www.nodebeginner.org/">http://www.nodebeginner.org/</a></p>
<p dir="ltr">
	node node -&gt; <a href="http://nodenode.com/">http://nodenode.com/</a></p>
<p dir="ltr">
	nodejs-fa | Google Groups -&gt; h<a href="http://ttp://groups.google.com/group/nodejs-fa?pli=1">ttp://groups.google.com/group/nodejs-fa?pli=1</a></p>
<p dir="ltr">
	Streaming file uploads with node.js » Debuggable - Node.js Consulting -&gt; <a href="http://debuggable.com/posts/streaming-file-uploads-with-node-js:4ac094b2-b6c8-4a7f-bd07-28accbdd56cb">http://debuggable.com/posts/streaming-file-uploads-with-node-js:4ac094b2-b6c8-4a7f-bd07-28accbdd56cb</a></p>
<p dir="ltr">
	 </p>]]></description>
	<pubDate>Wed, 05 Oct 2011 13:38:20 +0330</pubDate>
	<lastBuildDate>Thu, 10 May 2012 14:10:11 +0430</lastBuildDate>
	<comments>http://blog.efazati.org/post/NodeJs#comments</comments>
	<dc:creator>محمد افاضاتی</dc:creator>
	<guid isPermaLink="false">http://blog.ir/blogs/--TGGPRUgKQ/posts/NF_PaAe4ALM</guid>
	<slash:comments>6</slash:comments>
		<category>کامپیوتر/برنامه نویسی</category>
		<category>کامپیوتر/وب سرور/nodejs</category>
		<category>commonjs</category>
		<category>javascript</category>
		<category>node</category>
		<category>nodejs</category>
		<category>npm</category>
		<category>v8</category>
		<category>نود</category>
	</item>
	<item>
	<title>سال جدید</title>
	
	<link>http://blog.efazati.org/post/%D8%B3%D8%A7%D9%84-%D8%AC%D8%AF%DB%8C%D8%AF</link>
		<description><![CDATA[<p>
	سال جدید را با کوله باری از کتاب (<a href="http://efazati.blog.ir/post/%D8%B9%DB%8C%D8%AF-%D9%86%D9%88%D8%B1%D9%88%D8%B2-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%DB%8C-%DA%AF%D8%B0%D8%B1%D8%A7%D9%86%DB%8C%D9%85%D8%9F">اینجا</a>) شروع کردم. با خودم فکر می کردم شاید بهتر باشد که درباره اهداف بلند مدت ترم هم فکر کنم.</p>
<p>
	۹۱ سالیست که دوست دارم آدم بهتری باشم. کار های بیشتری بکنم. کارهایی که تاثیرات بیشتری داشته باشد.</p>
<p>
	از اولین اتفاقاتی که افتاد این بود که <a href="http://www.archlinux.org/">ArchLinux</a> نصب کردم و مجموعه ای ماجراجویی های جدید رو بهم نشون خواهد داد.</p>
<p>
	 </p>
<p>
	<strong>اهداف:</strong></p>
<ul><li>
		دوست دارم در سال ۹۱ از این وزن به نسبت زیادم فاصله بگیرم و بیشتر ورزش کنم شاید انرژی ام بیشتر شود. شاید کوه نوردی یا باشگاه ورزش های رزمی یا چیز هایی مثل تنیس :D راه بردی باشند اما مهمتر از همه ی اینها پیوسته بودنست که می خواهم در سال ۹۱ رعایت کنم. البته تلاش می کنم حداقل ماهی یک بار استخر هم بروم. قدیم تر هر هفته می رفتیم ولی به علت بد قولی های استخر دانشگاه شریف دیگه نمی رویم.</li>
	<li>
		هر هفته حداقل یک کتاب باید بخوانم. قدیم تر ها شاید روزانه این کار را می کردم ولی مشغله های امروزه مانع می شوند، به مشخص کردن مرز حداقلی اکتفا می کنم.</li>
	<li>
		امسال دوست دارم حداقل ۱۲ سفر داشته باشم که همان ماهی یک بار بشود... سال پیش هم همین حدود ها سفر داشتم اما انشالله امسال بیشتر با ماشین شخصی می روم ( لیست اولیه سفر ها : مشهد، شیراز، اصفهان، زنجان، اهواز، چالوس و شاید زاهدان )</li>
	<li>
		امسال تلاشم را می کنم شناسنامه ام را بگیرم :D شاید دو سالی بشود که شناسنامه ندارم و همیشه برایم مشکلی عظیم بوده</li>
	<li>
		می خواهم در گروهی شرکت کنم که بیشتر اطلاعات فنی در آن رد و بدل می شود و فقط یک برنامه ساده دید و بازدید نیست ... امسال به دنبال همچین گروهی می گردم.</li>
</ul><p>
	 </p>
<p>
	<strong>مطالعه ها ویادگیری های بلند مدت:</strong></p>
<ul><li>
		linux architecture</li>
	<li>
		clean programming</li>
	<li>
		Javascript</li>
	<li>
		ٰCss ( دیگر حتی desktop application ها هم به سمت css می روند و من باز هم اطلاعات کافی نیست. باید بیشتر مطالعه و تجربه کنم )<br>
		البته ادبیات و اخلاق چیز هاییست که نا گفته در لیست هر سالم خواهد بود. امسال نمایشگاه می تواند مرهمی بر نیاز روزانه مان باشد ;) شاید بعد تر ها برنامه مطالعاتی فصلی نوشتم ببینیم چه پیش می آید</li>
	<li>
		یادگیری بیشتر <a href="http://www.nodejs.org/">NodeJs</a> و شاید فریم ورک هایی مثل <a href="http://geddyjs.org/">geddy</a></li>
	<li>
		تست و راه اندازی <a href="https://wiki.archlinux.org/index.php/Kvm">kvm</a></li>
</ul><p>
	 </p>
<p>
	<strong>چه می نویسم؟</strong></p>
<ul><li>
		یک lyrics finder که تا جای ممکن همه چیز را crawl کند و به صورت offline search کند. ( البته این نیاز به صحبت هایی دارد که بعدا از صحت انجامش مطلع می شویم :D )</li>
	<li>
		Choqondar اسم برنامه خیلی ساده ای است که کارایی اش در هاله ای از ابهام خواهد بود</li>
	<li>
		یک todolist دارم که باید بهبود ببخشمش</li>
</ul><p>
	 </p>
<p>
	تا به حال deskShot نداشتم می خواهم این رو هم به عنوان یک رسم سالانه اینجا بگذارم.</p>
<p style="text-align: center;">
	<a href="http://bayanbox.ir/blog/efazati/images/1391/DeskShot91-1.png?info" target="_blank"><img a="" src="http://bayanbox.ir/blog/efazati/images/1391/DeskShot91-1.png?image_preview"></a></p>
<p style="text-align: center;">
	<a href="http://bayanbox.ir/blog/efazati/images/1391/DeskShot91-2.png?info" target="_blank"><img a="" src="http://bayanbox.ir/blog/efazati/images/1391/DeskShot91-2.png?image_preview"></a></p>
<p style="text-align: center;">
	dwm with ArchLinux in noroz 91</p>]]></description>
	<pubDate>Wed, 05 Oct 2011 13:38:20 +0330</pubDate>
	<lastBuildDate>Thu, 10 May 2012 14:10:11 +0430</lastBuildDate>
	<comments>http://blog.efazati.org/post/%D8%B3%D8%A7%D9%84-%D8%AC%D8%AF%DB%8C%D8%AF#comments</comments>
	<dc:creator>محمد افاضاتی</dc:creator>
	<guid isPermaLink="false">http://blog.ir/blogs/--TGGPRUgKQ/posts/6vyhL-T6tvQ</guid>
	<slash:comments>2</slash:comments>
		<category>زندگی</category>
		<category>داخلی</category>
		<category>کامپیوتر</category>
		<category>برنامه ریزی</category>
		<category>سال ۹۱</category>
		<category>۹۱</category>
	</item>
	<item>
	<title>عید نوروزم را چگونه می گذارنم؟</title>
	
	<link>http://blog.efazati.org/post/%D8%B9%DB%8C%D8%AF-%D9%86%D9%88%D8%B1%D9%88%D8%B2-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%DB%8C-%DA%AF%D8%B0%D8%B1%D8%A7%D9%86%DB%8C%D9%85%D8%9F</link>
		<description><![CDATA[<p>
	<a href="http://bayanbox.ir/blog/efazati/images/noroz.jpg?info" target="_blank"><img src="http://bayanbox.ir/blog/efazati/images/noroz.jpg?image_preview" style="float: right; margin-left: 10px; margin-right: 10px; height: 215px; width: 150px;"></a></p>
<p>
	در یک تصویر ذهنی خاطرات گذشته ام و انشا های دوران کودکی چنان درخشید که تصمیم گرفتم نوشته ای در باب عید نوروز بنویسم. البته انشای امروزم پیش درآمدی بر عید است... کارهایی که دوست دارم بکنم و به آنها فکر می کنم.</p>
<p>
	 </p>
<p>
	هر سال عید نوروز یکی از مهمترین فرصت های زندگیم هست که در وقت زیادی که دارم کارهایی که هر روز عقب می انداختم را سر و سامانی می دهم و معمولا خلاصه می شود به کارهایی که دوست دارم.</p>
<p>
	امسال برنامه کتاب خوانی و فیلم بینی دارم...</p>
<p>
	 </p>
<p>
	<strong>لیست کتاب هایی که می خواهم بخوانم:</strong></p>
<p>
	<br><strong>گزارش محرمانه (<a href="http://en.wikipedia.org/wiki/The_Secret_Speech_%28book%29">The Secret Speech</a>)</strong> ( <span style="color:#006400;">خوانده شد </span>)<br>
	نوشته: تام راب‌اسمیت (Tom Rob Smith)<br>
	ترجمه: نادر قبله‌ای<br>
	ناشر: مروارید<br>
	سال نشر: 1390 (چاپ اول)<br>
	قیمت: 8900 تومان<br>
	تعداد صفحات: 441 صفحه<br>
	شابک: 978-964-191-141-8</p>
<p>
	توضیحات: کتاب اولی که از راب اسمیت خواندم کوک ۴۴ بود و فضای بسیار گیرایی داشت .. خیلی مرا یاد کتاب جزایر The Gulag Archipelago می انداخت بسیار دوست دارم ببینم اثر دوم چگونه بوده است.</p>
<p>
	</p>
<p>
	<strong>عطر سنبل، عطر کاج</strong> (<a href="http://en.wikipedia.org/wiki/Funny_in_Farsi">Funny in Farsi</a>) ( <span style="color:#006400;">خوانده شد </span>)<br>
	نویسنده: فیروزه جزایری دوما<br>
	مترجم: محمد سلیمانی‌نیا<br>
	ناشر: نشر قصه<br>
	تعداد صفحات: 192<br>
	قیمت: 2000 تومان<br>
	چاپ: اول، 1384</p>
<p>
	توضیحات: تا به حال عده ی زیادی از این کتاب که نویسنده ایرانی دارد تعریف کرده اند و هر سال نمایشگاه می گویم بخرم ولی به علت کم اولویت بودن بی خیال می شوند</p>
<p>
	 </p>
<p>
	<strong>شما که غریبه نیستید</strong> ( <span style="color:#006400;">خوانده شد </span>)<br>
	نویسنده: هوشنگ مرادی کرمانی<br>
	ناشر: معین<br>
	تعداد صفحات: 348<br>
	قیمت: 3700 تومان<br>
	چاپ: چهارم، 1384</p>
<p>
	توضیحات: قصه های مجید داستان روالی بود که خاطرات زیادی در ذهنم گذاشته... دوست دارم تجربه مجدد داشته باشم.</p>
<p>
	 </p>
<p>
	<strong>آدمکش کور</strong> (<a href="http://en.wikipedia.org/wiki/The_Blind_Assassin">The Blind Assassin</a>)<br><a href="http://en.wikipedia.org/wiki/Margaret_Atwood">مارگارت النور اتوود</a>، شهین آسایش (مترجم)<br>
	قیمت پشت جلد:      120000 ریال<br>
	تعداد صفحه: 658<br>
	نشر: ققنوس (25 اسفند، 1388)<br>
	شابک: 978-964-311-385-8<br>
	قطع کتاب: رقعی<br>
	وزن: 1350 گرم</p>
<p>
	توضیحات: کتاب جالب خاطرات یک ندیمه با فضایش مرا واداشت اثری که در جاهای مختلف بهترین اثر آتوود شناخته می شود را در لیست کتابهای عیدانه خودم قرار بدهم</p>
<p>
	 </p>
<p>
	<strong>جاناتان، مرغ دریایی</strong> (<a href="http://en.wikipedia.org/wiki/Jonathan_Livingston_Seagull">Jonathan Livingston Seagull</a>) ( <span style="color:#006400;">خوانده شد </span>)<br><a href="http://en.wikipedia.org/wiki/Richard_Bach">ریچارددیوید باخ</a>، لادن جهانسوز (مترجم)، محسن مدیری (ویراستار)، راسل مانسون (عکاس)<br>
	قیمت پشت جلد:      15000 ریال<br>
	تعداد صفحه: 112<br>
	نشر: کاروان (26 اسفند، 1387)<br>
	شابک: 978-964-175-033-8<br>
	قطع کتاب: جیبی<br>
	توضیحات: تا به حال تجربه از باخ نداشته ام و فقط شنیده ام که برای اولین کتابهای خوانندگان جاناتان مرغ دریایی توصیه شده است. البته این دلیل اصلی ام برای خواندنش نیست. بیشتر قرار داشتن در ۱۰۰۰ کتاب برتری که باید خوانده شود مجابم کرد.</p>
<p>
	 </p>
<p>
	 </p>
<p>
	<strong>Hex and the City (Nightside, Book 4)</strong> ( <span style="color:#006400;">خوانده شد </span>)</p>
<p>
	<a href="http://en.wikipedia.org/wiki/Simon_R._Green">Simon R. Green</a></p>
<p>
	Reading level: Ages 18 and up<br>
	Mass Market Paperback: 256 pages<br>
	Publisher: Ace (February 22, 2005)<br>
	Language: English</p>
<p>
	 </p>
<p>
	<strong> Paths Not Taken (Nightside, Book 5)</strong>( <span style="color:#006400;">خوانده شد </span>)</p>
<p>
	<a href="http://en.wikipedia.org/wiki/Simon_R._Green">Simon R. Green</a></p>
<p>
	Reading level: Ages 18 and up<br>
	Mass Market Paperback: 272 pages<br>
	Publisher: Ace (August 30, 2005)<br>
	Language: English</p>
<p>
	 </p>
<p>
	<strong>A Clash of Kings (A Song of Ice and Fire, Book 2)</strong></p>
<p>
	<a href="http://en.wikipedia.org/wiki/George_R._R._Martin">George R. R. Martin</a></p>
<p>
	Paperback: 784 pages<br>
	Publisher: Bantam; First Edition edition (May 28, 2002)<br>
	Language: English</p>
<p>
	 </p>
<p>
	<strike><strong>امپراتوری خورشید</strong>(<a href="http://en.wikipedia.org/wiki/Empire_of_the_Sun">Empire of the Sun</a>)</strike><br><a href="http://en.wikipedia.org/wiki/J._G._Ballard">جیمزگراهام بالارد</a>، علی اصغر بهرامی (مترجم)<br>
	قیمت پشت جلد:      70000 ریال<br>
	مشخصات کتاب<br>
	تعداد صفحه: 432<br>
	نشر: نشر چشمه (29 مهر، 1388)<br>
	شابک: 978-964-362-144-5<br>
	قطع کتاب: رقعی<br>
	توضیحات: کتاب فوق العاده برج و ترجمه های خوب بهرامی ( سلاخانه شماره ۵ ) این کتاب را به لیستم افزود</p>
<p>
	 </p>
<p>
	<strike><strong>آیا آدم مصنوعی ها خواب گوسفند برقی می بینند؟</strong> (<a href="http://en.wikipedia.org/wiki/Do_Androids_Dream_of_Electric_Sheep%3F">Do Androids Dream of Electric Sheep?)</a></strike><br><a href="http://en.wikipedia.org/wiki/Philip_K._Dick">فیلیپ کیندر دیک</a>، محمدرضا باطنی (مترجم)<br>
	قیمت پشت جلد:      32000 ریال<br>
	مشخصات کتاب<br>
	تعداد صفحه: 304<br>
	نشر: روشنگران و مطالعات زنان (18 مهر، 1385)<br>
	شابک: 964-8564-56-6<br>
	قطع کتاب: رقعی</p>
<p>
	توضیحات: فلیپ دیک را به عنوان یک علمی تخیلی نویس دوست دارم و حس می کردم که واقعا لیستم از آثار علمی تخیلی خالیست برای همین این را هم اضافه کردم</p>
<p>
	 </p>
<p>
	<strong>HTML5: The Missing Manual</strong><br>
	Paperback: 450 pages<br>
	Publisher: O'Reilly Media; 1 edition (August 26, 2011)<br>
	Language: English<br>
	ISBN-10: 1449302394<br>
	توضیحات: هنوز نشده بررسی کاملی بر روی html5 بکنم.<br><br><strong>CSS: The Missing Manual</strong><br>
	Paperback: 538 pages<br>
	Publisher: O'Reilly Media; Second Edition edition (August 31, 2009)<br>
	Language: English<br>
	ISBN-10: 0596802447<br>
	توضیحات: هنوز نشده بررسی کاملی بر روی css3 بکنم.</p>
<p>
	<br><br><strong>Even Faster Web Sites: Performance Best Practices for Web Developers</strong> ( <span style="color:#006400;">خوانده شد </span>)<br>
	Paperback: 256 pages<br>
	Publisher: O'Reilly Media; Original edition (June 17, 2009)<br>
	Language: English<br>
	ISBN-10: 0596522304<br><br><br><br><strong>High Performance JavaScript (Build Faster Web Application Interfaces)    </strong><br>
	Paperback: 240 pages<br>
	Publisher: Yahoo Press; 1 edition (March 30, 2010)<br>
	Language: English<br>
	ISBN-10: 059680279X<br>
	توضیحات: چند وقتی می شود که کتاب های js را می خوانم چون حسم بر این است که آینده کامپیوتر خیلی گره خورده با js است.<br><br><strong>JavaScript: The Good Parts</strong> ( <span style="color:#006400;">خوانده شد </span>)<br>
	Paperback: 176 pages<br>
	Publisher: Yahoo Press; 1 edition (May 2008)<br>
	Language: English<br>
	ISBN-10: 0596517742<br>
	توضیحات: این کتاب را نصفه نیمه خوانده ام ولی باید تمامش کنم. برایم سوال است که نویسنده jslint چه چیز های دیگری دارد که بگوید D:</p>
<p>
	 </p>
<p>
	<strong>Developing Large Web Applications</strong>( <span style="color:#006400;">خوانده شد </span>)<br>
	By Kyle Loudon<br>
	Publisher: O'Reilly Media / Yahoo Press<br>
	Released: February 2010<br>
	Pages: 304<br>
	 </p>
<p>
	توضیحات: همچنان مهمترین عضو طراحی web application ها scaling &amp; optimizing است و همین باعث شد در برنامه ام داشته باشمش</p>
<p>
	 </p>
<p>
	کتابهای دیگری که نصفه نیمه خوانده ام را نیز به اتمام میرسانم ... آثاری مثل A Clash of King</p>
<p>
	 </p>
<p>
	<strong>فیلم هایی که می خواهم ببینم:</strong></p>
<p>
	به لیست imdb اکتفا می کنم... البته فیلم هایی مثل god father را دیده ام ولی فیلم با کیفیت بیشتر و زنده شدن خاطرات بیشتر کمک کرده تا دوباره ببینمشان</p>
<p>
	 </p>
<ul><li dir="ltr">
		The Godfather (1972) - IMDb -&gt; http://www.imdb.com/title/tt0068646/</li>
	<li dir="ltr">
		12 Angry Men (1957) - IMDb -&gt; http://www.imdb.com/title/tt0050083/</li>
	<li dir="ltr">
		Seven Samurai (1954) - IMDb -&gt; http://www.imdb.com/title/tt0047478/</li>
	<li dir="ltr">
		Paths of Glory (1957) - IMDb -&gt; http://www.imdb.com/title/tt0050825/ (<span style="color:#008000;">دیده شد</span>)</li>
	<li dir="ltr">
		The Artist (2011) - IMDb -&gt; http://www.imdb.com/title/tt1655442/</li>
	<li dir="ltr">
		Groundhog Day (1993) - IMDb -&gt; http://www.imdb.com/title/tt0107048/ (<span style="color:#008000;">دیده شد</span>)</li>
	<li dir="ltr">
		Network (1976) - IMDb -&gt; http://www.imdb.com/title/tt0074958/</li>
	<li dir="ltr">
		8½ (1963) - IMDb -&gt; http://www.imdb.com/title/tt0056801/</li>
	<li dir="ltr">
		Sympathy for Mr. Vengeance (2002) - IMDb -&gt; http://www.imdb.com/title/tt0310775/ (<span style="color:#008000;">دیده شد</span>)</li>
	<li dir="ltr">
		Lady Vengeance (2005) - IMDb -&gt; http://www.imdb.com/title/tt0451094/ (<span style="color:#008000;">دیده شد</span>)</li>
	<li dir="ltr">
		Rio (2011) - IMDb -&gt; http://www.imdb.com/title/tt1436562/ (<span style="color:#008000;">دیده شد</span>)</li>
	<li dir="ltr">
		X-Men (2000) - IMDb -&gt; http://www.imdb.com/title/tt0120903/ (<span style="color:#008000;">دیده شد</span>)</li>
	<li dir="ltr">
		X2 (2003) - IMDb -&gt; http://www.imdb.com/title/tt0290334/ (<span style="color:#008000;">دیده شد</span>)</li>
	<li dir="ltr">
		X-Men: The Last Stand (2006) - IMDb -&gt; http://www.imdb.com/title/tt0376994/ (<span style="color:#008000;">دیده شد</span>)</li>
	<li dir="ltr">
		X-Men Origins: Wolverine (2009) - IMDb -&gt; http://www.imdb.com/title/tt0458525/ (<span style="color:#008000;">دیده شد</span>)</li>
	<li dir="ltr">
		 </li>
</ul><p>
	 </p>
<p>
	<span style="color:#ff0000;">ویرایش یک:</span></p>
<p>
	کتاب شما که غریبه نیستید هوشنگ مرادی کرمانی را خواندم و فیلم ها را دانلود کردم... ebook reader t1 م رسید و همین باعث شد کتاب نایت ساید جلد 4 را آغاز کنم فکر کنم امشب تموم بشود و همین مورد احتمالا باعث می شود کتاب های امپراتوری خورشید و آدم مصنوعی ها را نرسم. الان هم اوایل کتاب High Performance JavaScript هستم.</p>
<p>
	 </p>
<p>
	<span style="color:#ff0000;">ویرایش دوم: ۲۹ اسفند ۹۰</span></p>
<p>
	تقریبا نیمی از کتاب ها را خواندم و فیلم ها را دیدم ... امشب به عنوان شب عید باید با خوانده باشم ولی فضای جذاب کتاب گزارش محرمانه رهایم نمی کند.</p>
<p>
	another brick in the wall حالم را دگرگون کرده شاید سال دیگر فرهنگ موسیقیایی هم به لیستم افزودم.</p>
<p>
	 </p>
<p>
	<span style="color:#ff0000;">ویرایش سوم: ۵ اسفند ۹۱</span></p>
<p>
	کتاب های فارسی به جز آدمکش کور همه را خوانده ام و جز ۲ ۳ کتاب که تا ۱۳ ام می خوانم چیزی نمانده است... نمی دانم چه شد که به جای سری godFather مجموعه StarWars رو دیدم که از سری ۶ گانه ۲ قسمت هنوز مانده است.</p>
<p>
	 </p>]]></description>
	<pubDate>Wed, 05 Oct 2011 13:38:20 +0330</pubDate>
	<lastBuildDate>Thu, 10 May 2012 14:10:11 +0430</lastBuildDate>
	<comments>http://blog.efazati.org/post/%D8%B9%DB%8C%D8%AF-%D9%86%D9%88%D8%B1%D9%88%D8%B2-%D8%AE%D9%88%D8%AF-%D8%B1%D8%A7-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D9%85%DB%8C-%DA%AF%D8%B0%D8%B1%D8%A7%D9%86%DB%8C%D9%85%D8%9F#comments</comments>
	<dc:creator>محمد افاضاتی</dc:creator>
	<guid isPermaLink="false">http://blog.ir/blogs/--TGGPRUgKQ/posts/91qypU3epF0</guid>
	<slash:comments>6</slash:comments>
		<category>زندگی/ادبیات</category>
		<category>عید ۹۱</category>
		<category>فیلم بینی</category>
		<category>نوروز</category>
		<category>کتاب خوانی</category>
		<category>۱۳۹۱</category>
	</item>
</channel>
</rss>

