<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>corelist.net</title>
	
	<link>http://weblog.corelist.net</link>
	<description>وبلاگ شخصی علی ستاری</description>
	<lastBuildDate>Tue, 06 Dec 2011 16:53:12 +0000</lastBuildDate>
	<language>fa</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/corelist" /><feedburner:info uri="corelist" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>WaSP: در نبرد برای استانداردها</title>
		<link>http://feedproxy.google.com/~r/corelist/~3/2Y5AfHswP3k/</link>
		<comments>http://weblog.corelist.net/archives/1388/03/21/wasp-mission/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 04:30:37 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[استانداردهای وب]]></category>
		<category><![CDATA[translation]]></category>
		<category><![CDATA[w3c]]></category>
		<category><![CDATA[wasp]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/?p=91</guid>
		<description><![CDATA[این متن ترجمه بخش Mission از سایت Web Standards Project است. کنسرسیوم جهانی وب (W3C)، همراه سایر گروه‌ها و بدنه‌های استاندارد، فناوری‌هایی برای ایجاد و تفسیر محتوای تحت وب پایه‌گذاری کرده است. این فناوری‌ها، که ما آنها را «استانداردهای وب» می‌خوانیم، با دقت طراحی شده‌اند تا بزرگترین فایده را به بیشترین تعداد کاربران وب برسانند [...]]]></description>
			<content:encoded><![CDATA[<p><em>این متن ترجمه بخش <a href="http://www.webstandards.org/about/mission/">Mission</a> از سایت <a href="http://www.webstandards.org">Web Standards Project</a> است.</em></p>
<p>کنسرسیوم جهانی وب (<a title="World Wide Web Consortium home" href="http://www.w3.org/">W3C</a>)، همراه سایر گروه‌ها و بدنه‌های استاندارد، فناوری‌هایی برای ایجاد و تفسیر محتوای تحت وب پایه‌گذاری کرده است. این فناوری‌ها، که ما آنها را «استانداردهای وب» می‌خوانیم، با دقت طراحی شده‌اند تا بزرگترین فایده را به بیشترین تعداد کاربران وب برسانند در حالی‌که زیست‌پذیری هر سند منتشر شده در وب را در طولانی مدت تضمین می‌کنند. لطفا برای جزییات ستون کناری را ببینید.</p>
<p>طراحی و ساخت با این استانداردها تولید را ساده‌تر کرده و هزینه آن را کاهش می‌دهد، در حالی‌که سایت‌هایی تحویل میدهد که برای افراد بیشتری قابل دسترسی است و انواع بیشتری از دستگاه‌های اینترنتی را پشتیبانی میکند. سایت‌هایی که در این مسیر توسعه یافته باشند کماکان کارایی خود را به درستی ادامه می‌دهند در حالی‌که مرورگرهای رومیزی تکامل می‌یابند و تجهیزات اینترنتی جدید به بازار می‌آیند.</p>
<p>بسیار سر راست و معقول به نظر می‌رسد، پس مشکل کجاست؟ چرا یک پروژه استانداردهای وب وجود دارد؟</p>
<h3>مشکل</h3>
<p>اگرچه عمده سازندگان مرورگرها از زمان تشکیل W3C در ایجاد استانداردهای وب نقش داشتند، برای سال‌های بسیار تطابق با استانداردها رعایت نشد. با انتشار مرورگرهایی که در پشتیبانی یکسان از  استانداردها ناموفق بودند، تولیدکنندگان بدون آن‌که نیاز باشد، وب را تکه تکه کردند، که به طراحان، توسعه‌دهندگان، کاربران و حرفه‌های مشابه آسیب وارد کردند.</p>
<p>فقدان پشتیبانی یکسان برای استانداردهای کلیدی W3C مصرف‌کنندگان را ناامید رها کرد: وقتی‌که از مرورگر «نادرست» استفاده می‌کردند، بسیاری نمی‌توانستند محتوا را مشاهده کنند یا تراکنش‌های مورد نظرشان را انجام دهند. در میان آنها بیشترین آسیب‌دیدگانِ مکرر افراد ناتوان یا با نیازهای خاص بودند.</p>
<h4>سرگردانی‌ها و هزینه‌ها</h4>
<p>در همان ایام، فقدان پشتیبانی یکسان استانداردهای کلیدی W3C طراحان، توسعه‌دهندگان و مالکان سایت‌ها را در یک سردرگمی وحشتناک رها کرد: آیا می‌توانستند از عهده‌ی پیاده‌کردن چندین نسخه از هر صفحه وب برآیند به این منظور که مرورگرهای ناسازگار را همساز کنند؟ اگر نه، از کدام مرورگر باید غافل شوند، و چند میلیون بازدیدکننده بالقوه را می‌خواهند پس بزنند؟ در هر دو راه، هزینه بیش از حد زیاد بود، هنوز هم هست.</p>
<p>بازار از هم گسیخته مرورگرها حداقل ۲۵٪ به هزینه توسعه همه سایت‌ها افزود. بخاطر نبود بودجه، بسیاری از توسعه‌دهندگان سایت‌هایی ارایه دادند که مانع مشتری‌های بالقوه می‌شدند. بسیاری از توسعه‌دهندگانی که استانداردها را می‌شناختند هیچ امتیازی در توسعه سایت‌هایی برای مرورگرهایی که آنها را پشتیبانی نمی‌کرند ندیدند. دیگران استانداردها را اندک می‌شناختند یا اصلا نمی‌شناختند—و بسیاری هنوز نمی‌شناسند، شامل آنهایی در بنگاه‌های چند میلیون دلاری که به نظر میرسد ASP، جاوا، Flash MX و .Net را فهمیده‌اند، هنوز تقریبا هیچ چیزی از نشانه‌گذاری ساختاری و معنایی، شیوه نامه‌ها و اهمیت جداسازی ساختار از نمایش نمی‌فهمند.</p>
<p>بعضی طراحان، که با ناسازگاری مرورگر به مانع خورده بودند، عمدا همه به جز قدیمی‌ترین و فراگیرترین فناوری‌های وب را از سایت‌هایشان کنار گذاشتند. چنین سایت‌هایی اغلب در کارایی در همه‌ی مرورگرهای رومیزی موفق بودند، اما به قیمت کاربری و جاذبه‌ی مصرفی محدود.</p>
<p>دیگران بر ویرایشگرهای بصری و ابزار انتشار تکیه کردند تا چندین لایه از کد و نشانه‌گذاری که برای خصوصیات مرورگرهای محبوب گوناگون بهینه‌شده بودند تولید کنند. این پول را به همان نسبت پهنای‌باند به هدر داد، و اغلب سایت‌هایی تولید شد که در نسل بعدی مرورگرها از کار باز ایستاد (و هرگز اصلا در مرورگرهای جایگزین یا تجهیزات، از صفحه‌خوانها گرفته تا Lynx تا دستگاه‌های جیبی تا مروگرهای کمتر محبوب مانند Opera کار نکردند). وب مملو از زباله شده با جنازه‌ی سایت‌هایی که زمانی جذاب بودند و نمی‌توانند در تجهیزات یا مرورگرهای معاصر کارایی داشته باشند،  چنان سایت‌هایی هنوز هر روزه در حال ایجاد هستند که موضوع را وخیم‌تر می‌کند.<br />
<span id="more-91"></span><br />
بعضی طراحان چنان ناامید شدند که کاملا به استانداردهای وب پشت کردند، و شروع کردند به توسعه فقط در محیط‌های اختصاصی. اگرچه غنی در خلاقیت بالقوه، این قبیل فناوری‌ها از نبود دسترس‌پذیری پهناور رنج می‌برند، و در فراهم کردن نیازهای عمومی مانند علامت‌گذاری، چاپ، نسخه‌برداری و سایر کارهایی که کاربران وب باید در سایت‌های اطلاعاتی و تراکنشی انجام دهند ناموفق هستند.</p>
<h4>زایش ضرورت</h4>
<p>در پاسخ به این مشکلات، پروژه استانداردهای وب (WaSP) در سال ۱۹۹۸ با هدف ترویج هسته استانداردهای وب و تشویق سازندگان مرورگر به ترویج استانداردها تشکیل شد، به موجب آن تضمین دسترسی ساده و میسر برای همه.</p>
<p>اگرچه پیام ما در ابتدا با مقاوت روبرو شد (بخصوص از سوی بخشهای بازاریابی و روابط عمومی شرکت‌های مرورگر)، سرانجام ما غالب شدیم – در بخشی، چون مهندس‌ها در بسیاری از شرکت‌های مرورگر با ما موافق بودند و  WaSP را به عنوان یک متحد در درگیری داخلی خود با مدیریت دیدند.</p>
<p>با شروع در سال ۲۰۰۰، یک مرورگر برجسته پس از دیگری به وعده‌های بسیاری از استانداردهایی که ما ترویج می‌کردیم (بعضی وقتها با فریاد) رسیدند. مرورگرهای پیشتاز در بازار فعلی، همراه چندین تن از رقبایشان، پشتیبانی بسیار خوبی برای HTML 4، XHTML 1.0 سازگار، CSS سطح 1، ECMAscript (نسخه استاندارد JavaScript) و DOM ارایه میکنند – یا در راه رسیدن به چنین تطبیقی هستند.</p>
<p>با سپاس از این مرورگرها، طراحان و توسعه‌دهندگان سرانجام آزادند که با XHTML و CSS کار کنند، و در اغلب موارد می‌توانند ساختار را از نمایش برای حداکثر قابلیت انتقال و دسترس‌پذیری جدا کنند. با مواظبت، طراحان و توسعه‌دهندگان همچنین قادر هستند از استاندارد W3C، سطح 1 DOM استفاده کنند تا رفتاری سطح بالا و پیچیده به سایت‌هایشان اضافه کنند.</p>
<p>پس مشکل کجاست و چرا هنوز یک پروژه استانداردهای وب وجود دارد؟</p>
<h3>مبارزات پیش‌ِرو</h3>
<p>اگرچه مرورگرهای امروز استانداردها را پشتیبانی میکنند، ده‌ها از صدها طراح و توسعه‌دهنده به استفاده از روش‌های منسوخ ادامه می‌دهند که ساختار را به ظاهر گره می‌زند، در برخی موارد کاملا از ساختار معنایی دور شده و از XHTML/HTML به عنوان یک ابزار طراحی استفاده نادرست می‌کنند. حرفه‌ای‌هایی با هزینه‌های بالا به ایجاد سایتهایی ادامه میدهند: نامعتبر و غیر قابل دسترسیِ پرشده از نشانه‌گذاری بی‌معنا از نظر ساختاری، نقشه‌های تصویر بزرگ، جداول تودرتوی بیش از اندازه، و اسکریپت‌های کشف منسوخی که مشکلات فراوان کاربری که در اصل بنا بود رفع کنند ایجاد می‌کنند.</p>
<p>بسیاری از کتاب‌های توسعه وب هنوز روش‌های منسوخ تعلیم می‌دهند، و بسیاری از شاغلان افتخار می‌کنند به تحویل سایت‌هایی که در مرورگرهای منطبق و غیر منطبق یکسان دیده شده و کار می‌کنند، به قیمت دسترس‌پذیری، زیست‌پذیری دراز مدت، سازگاری بعدی و نبود پشتیبانی برای تجهیزات جایگزین. دیگران کدهای اختصاصی توسعه می‌دهند که فقط در مشتی از مرورگرهای محبوب کار می‌کنند.</p>
<p>بنابراین یکی از اهداف اصلی WaSP فراهم آوردن منابع آموزشی است که می‌تواند به همتایانمان برای یادگیری روش‌های سازگار با استانداردها کمک کند که این در راستای منافع خودشان، مشتری‌هایشان و کاربران سایتشان است.</p>
<p>بسیاری از حرفه‌ای‌ها کارشان را با مفهوم محیط‌های ویرایش بصری که در بحبوحه‌ی جنگهای مرورگرها توسعه یافته اجرا می‌کنند. همانطور که در بالا اشاره شد، چنان ابزارهایی به طور پیش‌فرض سایت‌هایی نامعتبر و غیر معنایی ایجاد میکنند که برای حالت تناقضی مرورگرها بهینه شده و نه حالت استاندارد. در سال ۲۰۰۲، دو ویرایشگر بصری پیشتاز به طور زیادی پشتیبانی‌شان از استانداردهای وب و دسترس‌پذیری را بهبود بخشیدند (یکی از آنها با کمک پروژه استانداردهای وب بود). اما برای استفاده از این پیشرفت‌ها، حرفه‌ای‌ها باید مبانی و مزایای طراحی و ساخت با استانداردهای وب را بیاموزند. این مجددا به نیاز برای آموزش توسعه‌دهنده اشاره می‌کند.</p>
<p>مشتری‌ها و مدیران سایت‌ها نیز این اطلاعات را لازم دارند اگر در پی ایجاد سایت‌هایی هستند که در مرورگرهای امروز و تجهیزات قابل دسترسی است و در حالی که مرورگرها و تجهیزات رشد میکنند زنده می‌مانند. این امید WaSP است که، به محض اینکه از منافعی که استانداردها فراهم می‌کنند آگاهی یابند، مالکان سایت‌ها از دیدن سایت‌هایشان به عنوان گونه‌ای از تبلیغات چاپی که باید در همه‌ی محیط‌ها یکسان دیده شود باز ایستند. و به جای آن بر روی تحویل محتوای مناسب و کارایی در زمینه نمایش تمرکز کنند که ممکن است بر اساس نیازها و قابلیت‌های مرورگرهای مختلف اندکی متفاوت باشد.</p>
<img src="http://feeds.feedburner.com/~r/corelist/~4/2Y5AfHswP3k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1388/03/21/wasp-mission/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://weblog.corelist.net/archives/1388/03/21/wasp-mission/</feedburner:origLink></item>
		<item>
		<title>چگونه با Bash شاد کام باشیم (۲)</title>
		<link>http://feedproxy.google.com/~r/corelist/~3/dGAyOSiP7mQ/</link>
		<comments>http://weblog.corelist.net/archives/1387/07/16/bash-special-characters/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 18:01:04 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[لینوکس]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[pipe]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/?p=86</guid>
		<description><![CDATA[یا علایم خاص در Bash در قسمت قبل به بحث completion در Bash پرداختیم. این بار بحث شیرین Special Characters را خواهیم داشت. کاراکترهای خاص برای ایجاد قابلیتها و کاربردهای خاصی طراحی شدند که در امور روزمره کار با shell و همچنین در داشتن shell scriptهای بهینه‌تر به ما کمک میکنند. Pipe (&#124;) این کاراکتر [...]]]></description>
			<content:encoded><![CDATA[<p>یا <strong><abbr title="Special Characters">علایم خاص</abbr> در Bash</strong></p>
<p>در قسمت قبل به بحث <a href="http://weblog.corelist.net/archives/1386/06/01/bash-completion/">completion در Bash</a> پرداختیم. این بار بحث شیرین Special Characters را خواهیم داشت. کاراکترهای خاص برای ایجاد قابلیتها و کاربردهای خاصی طراحی شدند که در امور روزمره کار با shell و همچنین در داشتن shell scriptهای بهینه‌تر به ما کمک میکنند.</p>
<p><a title="Pipe in Unix" href="http://en.wikipedia.org/wiki/Pipe_(Unix)"><strong>Pipe (|)</strong></a><br />
این کاراکتر (که با Shift+\ قابل دسترسیه) همونطور که از اسمش پیداست کار ارتباطی انجام میده، به این شکل که با استفاده از pipe میشه خروجی (stdout) یک دستور رو به دستور بعدش فرستاد. کاربرد این موضوع زمانی هست که بخواید داده‌ای رو با استفاده از چند دستور یا برنامه پردازش کنید و خروجی فیلتر شده یا متفاوتی داشته باشید.<br />
مثال ساده: برای دیدن یک پروسه خاص از لیست پروسه‌ها:</p>
<blockquote><p><code>ps aux | grep apache2</code></p></blockquote>
<p>دستور ps با پارامترهای داده شده فهرستی از پروسه‌های فعال در سیستم به ما میده. این فهرست معمولا طولانی هست. دستور grep هم عبارت داده شده رو داخل خطوط یک فایل یا ورودی پیدا میکنه و کل خط رو برمیگدونه. حالا نتیجه ترکیب این دو دستور با pipe اینه که خطوط حاوی عبارت apache2 از بین لیست طولانی پروسه‌ها جدا میشه و نمایش داده میشه. Pipe میتونه به تعداد نامحدودی در یک دستور خطی استفاده بشه:</p>
<blockquote><p><code>cd /home; du --max-depth=1 ./ | sort -nr | head | awk '{ print $2 }' | cut -d/ -f2</code></p></blockquote>
<p>که این دستور لیست 10 شاخه‌ای که بیشترین فضا رو در شاخه home اشغال کردند نمایش میده.</p>
<p><a title="Redirections in Unix shell" href="http://en.wikipedia.org/wiki/Redirection_(Unix)#Redirecting_standard_input_and_standard_output"><strong>ًRedirections (&gt;,&lt;,&gt;&gt;)</strong></a><br />
این کاراکترها برای تغییر مسیر ورودی (stdin) و خروجی (stdout) و یا حتی خطاها (stderr) کاربرد دارند. برای مثال میتونید از یک فایل حاوی داده به عنوان ورودی استفاده کنید و بعد از پردازش لازم نتیجه رو در فایل دیگه‌ای ذخیره کنید یا به انتهاش اضافه (append) کنید.<br />
کاراکتر &gt; برای استفاده از محتویات یک فایل (معمولا متنی) به عنوان ورودی (stdin) استفاده میشه. کاراکتر &lt; برای ذخیره خروجی (stdout) یک دستور در یک فایل و کاراکتر &lt;&lt; برای append کردن خروجی به انتهای فایل استفاده میشه.<br />
برای مثال از فایلی به نام &#8216;results&#8217; حاوی لیست نمرات و اسامی دانش‌آموزان سطرهایی حاوی عبارت ali را جدا کرده و در فایل list ذخیره میکنیم:</p>
<blockquote><p><code>sort -nr &lt; results | grep -in ali &gt; list</code></p></blockquote>
<p>از این کاراکترها برای تغییر مسیر stdout به stderr و بالعکس هم میشه استفاده کرد، مثلا برای دستوراتی که به طور خودکار (مثلا cron) اجرا میشند گاهی این کار انجام میشه:</p>
<blockquote><p><code>some_command 2&gt;&amp;1 &gt;&gt; /var/log/command_output</code></p></blockquote>
<p><a title="Tilde Expansion" href="http://www.faqs.org/docs/bashman/bashref_28.html"><strong>Tilde (~)</strong></a><br />
این کاراکتر همواره به شاخه خانگی (home directory) کاربر فعلی (که شما دارید باهاش کار میکنید یا دستور به نام اون اجرا میشه) اشاره میکنه. در مسیر دادن به کار میاد:</p>
<blockquote><p><code>cd ~/projects → cd /home/ali/projects</code></p></blockquote>
<p><span id="more-86"></span><br />
<a title="Command Substitution" href="http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_03_04.html#sect_03_04_04"><strong>Backticks (`)</strong></a><br />
وقتی عبارتی داخل این دو تا backtick قرار بگیره اجرا میشه و خروجیش مثل یک string به محیط bash برگردونده میشه. خاصیتش برای حالتیه که میخواید یک دستور (یا دستوراتی) اجرا بشه و نتیجه رو در دستور دیگه‌ای استفاده کنید. (بیشتر ممکنه برای shell scriptها کاربرد داشته باشه)<br />
مثلا تمام فایلهایی که با temp شروع میشند رو حذف میکنیم:</p>
<blockquote><p><code>rm -f `ls /home/ali/temp*`</code></p></blockquote>
<p>اینجا اول دستور ls اجرا میشه و لیست فایلها به صورت یک رشته به دستور rm برمیگرده.</p>
<p><strong>Semicolon (;)</strong><br />
برای جدا کردن دستورات از semicolon استفاده میشه. به این شکل که زمانی که میخواید چند دستور رو پشت سر هم در یک خط اجرا کنید باید انتها هر دستور یک semicolon بگذارید.<br />
مثلا بعد از وارد کردن این دستور با تاخیر 7 ثانیه دستور import برای تصویربرداری بخشی از صفحه اجرا میشه:</p>
<blockquote><p><code>sleep 7; import ~/screenshot_`date "+%Y-%m-%d"`.png; echo 'screenshot saved!'</code></p></blockquote>
<p><strong>Ampersand (&amp;)</strong><br />
این کاراکتر در انتهای دستور باعث میشه دستور بعد از اجرا به Background بره و کارشو ادامه بده. (به Job Control مربوط میشه) مثلا زمانی که میخواید یک پروسه طولانی مدت اجرا کنید که نیاز به تعامل نداره میتونید به Background بفرستید و به کارتون ادامه بدید:</p>
<blockquote><p><code>scp -rq /backup/daily/ user@server2:/media/backup &amp;</code></p></blockquote>
<p>مواردی که در این مقاله بهشون اشاره شده پرکاربردترین کاراکترهای خاص در کاربرد عمومی bash هستند. برای مطالعه بیشتر و مشاهده لیست کاملی از کاراکترهای خاص و کاربردشون به اینجا مراجعه کنید:<br />
<a title="از سایت فخیمه‌ی tldp.org" href="http://tldp.org/LDP/abs/html/special-chars.html">Advanced Bash-Scripting Guide: Chapter 3. Special Characters</a><br />
در این مطلب به مسایلی مثل <a title="Job Control in UNIX" href="http://en.wikipedia.org/wiki/Job_control_(Unix)">Job Control</a>، Shell Script و <a title="Standard streams" href="http://en.wikipedia.org/wiki/Standard_streams">Standard Streams</a> و همچنین دستوراتی مثل awk، date، scp و &#8230; اشاره شد که چون ربطی به موضوع اصلی نداشتند توضیح بیشتری داده نشد. بله، میدونم که اغلب این موارد منحصر به bash نیست و در خیلی از shellهای دیگه هم کاربرد داره. ولی shell پایه اینجا bash فرض شده.</p>
<p>پ.ن: با تشکر از تذکر آیین‌نامه‌ای برادر <a href="http://oxygenws.com/blog/">متقی</a>، And به Ampersand تغییر کرد. <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/corelist/~4/dGAyOSiP7mQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1387/07/16/bash-special-characters/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://weblog.corelist.net/archives/1387/07/16/bash-special-characters/</feedburner:origLink></item>
		<item>
		<title>خلاصه‌نویسی CSS</title>
		<link>http://feedproxy.google.com/~r/corelist/~3/WlPoUh2OQ24/</link>
		<comments>http://weblog.corelist.net/archives/1387/02/17/css-shorthands/#comments</comments>
		<pubDate>Tue, 06 May 2008 16:37:44 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[shorthands]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/?p=85</guid>
		<description><![CDATA[ممکنه تا به حال کدهای CSS زیادی دیده باشید که خیلی کوتاه و مفید نوشته شدند و شاید گاهی هم ازشون سر در نیاورده باشید. اکثر طراحان بعد از پشت سر گذاشتن مراحل اولیه یادگیری کدنویسی و بعد از تسلط نسبی، سعی میکنند به کارشون سرعت بیشتری بدهند و کدهای کوتاه‌تر و تمیزتری بنویسند. به [...]]]></description>
			<content:encoded><![CDATA[<p>ممکنه تا به حال کدهای CSS زیادی دیده باشید که خیلی کوتاه و مفید نوشته شدند و شاید گاهی هم ازشون سر در نیاورده باشید. اکثر طراحان بعد از پشت سر گذاشتن مراحل اولیه یادگیری کدنویسی و بعد از تسلط نسبی، سعی میکنند به کارشون سرعت بیشتری بدهند و کدهای کوتاه‌تر و تمیزتری بنویسند. به این علت خلاصه نویسی دستورات اهمیت پیدا میکنه. استفاده از کدهای خلاصه، کد شما رو ساده‌تر، کوتاه‌تر و تمیزتر میکنه. [از نظر من] نگهداری این نوع کد ساده‌تر هست و اگر مسلط باشید حتی خوندنش هم سریعتر خواهد بود!</p>
<p><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719/box.html#margin-properties"><strong>Margin/Padding</strong></a><br />
margin و padding برای هر عنصر از چهار جهت قابل تعریف هستند و صورت پیش فرض مقادیر به این شکل هست:</p>
<blockquote><p><code>margin-top: 1px;<br />
margin-right: 3px;<br />
margin-bottom: 6px;<br />
margin-left: 8px;</code></p></blockquote>
<p>همین مقادیر رو میشه به این شکل نوشت:</p>
<blockquote><p><code>margin: 1px 3px 6px 8px;</code></p></blockquote>
<p>که در واقع ترتیب به صورت ساعتگرد از بالا هست. تمام صورتهای کوتاه‌نویسی margin و padding به این شکل هست:</p>
<blockquote><p><code>margin: top right bottom left;<br />
margin: top right/left bottom;<br />
margin: top/bottom right/left;</code></p></blockquote>
<p>مورد دوم حالتی هست که سه مقدار برای margin نوشته شده. که اولی برای بالا، دومی برای چپ و راست و سومی برای پایین هست و مورد سوم هم حالتی هست که دو مقدار نوشته میشه و اولی برای بالا و پایین و دومی برای راست و چپ هست. در نهایت هم اگر تنها یک مقدار نوشته بشه به هر چهار جهت اعمال میشه.</p>
<p><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719/colors.html#background-properties"><strong>Background</strong></a><br />
background مقادیر و حالات زیادی میتونه داشته باشه. به طور مثال:</p>
<blockquote><p><code>background-color: #f00;<br />
background-image: url(background.png);<br />
background-repeat: no-repeat;<br />
background-attachment: fixed;<br />
background-position: 0 0;</code></p></blockquote>
<p>که صورت کوتاه شده‌ به شکل زیر هست:</p>
<blockquote><p><code>background: color image repeat attachment position;</code></p></blockquote>
<p>که حالت خلاصه مثال بالا به این شکل میشه:</p>
<blockquote><p><code>background: #f00 url(background.png) no-repeat fixed 0 0;</code></p></blockquote>
<p><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719/box.html#border-properties"><strong>Border</strong></a><br />
border خصوصیتهای نسبتا کمی داره: رنگ، قطر و نوع.  اما میتونه حالات زیادی داشته باشه. ساده‌ترین حالت زمانی هست که به هر چهار طرف کادر border یکسانی داشته باشه:</p>
<blockquote><p><code>border: 1px solid #000;</code></p></blockquote>
<p>مقدار اول قطر (width) حاشیه، مقدار دوم نوع حاشیه (مثل dashed یا double) و مقدار سوم رنگ حاشیه  رو مشخص میکنه.<br />
اگر لازم باشه borderهای متفاوتی برای جهت‌های مختلف یک کادر داشته باشید میتونید از border-top، border-bottom، border-right یا border-left استفاده کنید. که باز هم طرز نوشتن مقادیرش به شکل بالا هست: قطر نوع رنگ.<span id="more-85"></span><br />
خلاصه‌نویسی فقط به معنی استفاده از صورت خلاصه دستورات نیست. با کمی خلاقیت میشه کدهای کوتاه‌تر و بهتری داشت. مثلا اگر شما برای کادری border در نظر گرفتید و میخواید فقط حاشیه سمت راستی کادر قطر بیشتری داشته باشه میتونید به این شکل کد بنویسید:</p>
<blockquote><p><code>border: 1px solid #fafafa;<br />
border-right-width: 3px;<br />
</code></p></blockquote>
<p><a href="http://www.w3.org/TR/2007/CR-CSS21-20070719/fonts.html#font-shorthand"><strong>Font</strong></a><br />
font هم یکی از موارد نسبتا پر کاربرد هست. Font خصوصیاتی مانند نوع، اندازه، توپری، کجی و ارتفاع خط داره:</p>
<blockquote><p><code>font-family: tahoma, verdana, sans-serif;<br />
font-size: 12px;<br />
font-weight: normal;<br />
font-style: italic;<br />
line-height: 120%;</code></p></blockquote>
<p>که صورت خلاصه به این شکل است:</p>
<blockquote><p><code>font: style weight size/line-height family;<br />
font: italic normal 12px/120% tahoma, verdana, sans-serif;</code></p></blockquote>
<p>دقت کنید که فقط در صورت تعریف line-height لازم هست از / (اسلش) به همراه size استفاده کنید و اگر فقط یک مقدار (پیکسلی یا درصدی) باشه به عنوان font-size در نظر گرفته میشه.</p>
<p><strong>نکات اضافی</strong><br />
صورت خلاصه نویسی که برای margin گفته شد تقریبا برای تمامی مواردی که با ابعاد (dimension) سر و کار داره صدق میکنه. مثلا برای border-width.<br />
همونطور که در مورد border با مثالی اشاره کردم، خلاصه نویسی با کمی خلاقیت نتیجه خوبی میده، شما میتونید با استفاده از ترکیبی از صورت خلاصه و گسترده دستورات در مجموع کد کوتاه‌تری داشته باشید.<br />
اگر فکر میکنید موارد و مقادیری لازم هست به دفعات توسط فردی ناآشنا با طراحی وب تغییر بکنه، بهتره از صورت خلاصه استفاده نکنید یا با یک comment ترتیب و شکل نوشتن مقادیر رو توضیح بدید.</p>
<p>مطلب مرتبط: <a href="http://weblog.alvanweb.com/2005/08/17/css-shorthand">http://weblog.alvanweb.com/2005/08/17/css-shorthand</a></p>
<p>امیدوارم این مطلب کوتاه و نه چندان مهم، هم به شما برای خوندن و نوشتن بهتر کدهای CSS کمک کنه و هم کمی وبلاگ گریزی من رو بهتر کنه! <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/corelist/~4/WlPoUh2OQ24" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1387/02/17/css-shorthands/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://weblog.corelist.net/archives/1387/02/17/css-shorthands/</feedburner:origLink></item>
		<item>
		<title>نشانی‌هایی بدون www</title>
		<link>http://feedproxy.google.com/~r/corelist/~3/SEBmwDNwwWo/</link>
		<comments>http://weblog.corelist.net/archives/1386/10/22/no-www/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 16:40:05 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[اينترنت]]></category>
		<category><![CDATA[no-www]]></category>
		<category><![CDATA[url]]></category>
		<category><![CDATA[بهینه سازی]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/archives/1386/10/22/no-www/</guid>
		<description><![CDATA[آیا تا به حال به این اندیشیده‌اید که این سه دبلیو در ابتدای نشانی سایتتان چقدر مضر است؟ دلایلی هست که بنده و خیلی‌های دیگر نشانی‌هایی بدون www را ترجیح میدهیم. اول اینکه به خاطر سپردن و رجوع مجدد به نشانی با 4 حرف کمتر ساده‌تر است! خیلی‌ها شاید ندانند که احتمالا سایت شما بدون [...]]]></description>
			<content:encoded><![CDATA[<p>آیا تا به حال به این اندیشیده‌اید که این سه دبلیو در ابتدای نشانی سایتتان چقدر مضر است<abbr title="خودمانیم، آنقدرها هم مضر و مهلک نیست!">؟</abbr><br />
دلایلی هست که بنده و خیلی‌های دیگر نشانی‌هایی بدون www را ترجیح میدهیم. اول اینکه به خاطر سپردن و رجوع مجدد به نشانی با <abbr title="نه خیر! شمارش بلدم! منظورم سه تا دبلیو و یک نقطه بود!">4 حرف</abbr> کمتر ساده‌تر است! خیلی‌ها شاید ندانند که احتمالا سایت شما بدون www اول هم درست کار میکند. خیلی‌ها هم شاید به طور حسی &#8211; غریزی &#8211; همینجوری نشانی‌ها را همانطور که هست به خاطر میسپارند! در نتیجه حذف www از نشانی، آنرا کوتاه‌تر کرده و از اشغال چند بیت اضافه از حافظه مردم جلوگیری میکند! غیر از این حتما تا به حال بارها تلاش بی‌وقفه و دلیرانه و بعضا مفتضحانه مجریان صدا و سیما را برای خواندن نشانی‌های www دار شنیده‌اید. واقعا ملال آور نیست که هربار عبارت &#8220;دبلیو دبلیو دبلیو <abbr title="یا نهایتا دات">نقطه</abbr>&#8221; را اول هر نشانی بشنویم؟ تازه به فرض اینکه زبان گوینده در بین دبلیوها گره نخورد! علاوه بر اینها، فعال بودن همزمان دو نشانی سایت شما، با www و بدون www برای ranking شما در موتورهای جستجو هم نسبتا مضر است. چون برخی لینکها با www و برخی بدون آن ثبت میشود و در نهایت در اغلب موتورهای جستجو به عنوان دو نشانی جدا ثبت شده و rank جداگانه‌ای خواهند داشت. در واقع rank شما بین نشانی‌های با www و بدون www تقسیم میشود.</p>
<p><strong>اصلا این wها از کجا آمده‌اند؟</strong><br />
در عهد عتیق اینترنت، www مهم بود و از قسمتهای اساسی یک نشانی به شمار میرفت. چون شما را به سرور درست هدایت میکرد. در واقع در گذشته نیاکان ما از www در ابتدای نشانی برای اشاره به web server استفاده میکردند. همانطور که از ftp برای اشاره به سرور ftp و از mail برای سرور mail. شاید در اوایل عهد اینترنت، IP یک چیز فله‌ای به شمار میرفته و به وفور در دسترس بوده است. در نتیجه هر کدام از این سرورها به طور جداگانه IP مخصوصی داشتند و این پیشوند در ابتدای نشانی‌ها در سرور DNS به IP هر یک از این سرورها تفسیر میشد. در واقع نیاکان ما IP based کار میکردند و ما الان معمولا به دلیل ذیق منابع، Name based کار میکنیم.<br />
در عهد حاضر، همانطور که شرحش رفت اغلب همه سرویس‌هایمان روی یک IP و سرور است و از این مهمتر، الان در اغلب سرورها به طور پیش‌فرض، domain به web server هدایت میشود. (حتی معمولا پیشوندهای ftp و mail نیز کشک بوده و مستقیما در dns zone مربوطه به IP مشترک اشاره میکنند. یعنی همانجایی که www اشاره میکند!). پس اغلب به لحاظ فنی نشانی‌های با www و بی www هردو یک کار را میکنند و به یکجا اشاره میکنند و مساوی هستند، مگر اینکه خودتان نخواسته باشید و تغییری در تنظیمات مربوطه داده باشید.</p>
<p><span style="font-weight: bold">حالا که چی؟</span><br />
زرشک! بعد از اینهمه توضیح؟ واقعا که چی؟! تصمیمتان را بگیرید، یا اینوری (بی www) یا آنوری (با www) باشید. ولی یکی باشید. همین انتخاب هم راه و رسمی دارد. یک نوع دسته بندی بر اساس همین wwwها هست (چون طولانی است، خودتان جداگانه <a href="http://en.wikipedia.org/wiki/No-www#Compliance_Classes">مطالعه کنید</a>). توصیه بنده (با توجه به <abbr title="Search Engine Optimization">SEO</abbr>) این است که برای نمایش سایتتان هر دو نشانی با www و بدون www قابل دسترسی باشد. منتها یکی را -بسته به انتخاب- به دیگری <a href="http://en.wikipedia.org/wiki/URL_redirection">Redirect</a> کنید. البته توصیه میکنم wwwها را به نشانی بی www بفرستید<abbr title="اصلا همه هدف این مطلب هم همینست!">!</abbr> در اینکه بهتر است سایتتان از هر دو طریق قابل دسترسی باشد که <abbr title="حداقل من ندارم!">بحثی نداریم</abbr>. اما برای انتخاب چرا! <a href="http://no-www.org/">مخالفان www</a> به دلایلی که گفته شد مثل اضافه و بیهوده بودن اشاره میکنند و <a href="http://www.hm2k.com/articles/yes-www">موافقانش</a> با دلایلی که اغلب (به نظر من) منسوخ و غیر معمول است بر لزوم استفاده از www پافشاری میکنند.<br />
اما در نهایت، این به شما و تا حدی سلیقه شما بستگی دارد که کدام را انتخاب کنید.</p>
<p><strong>چگونه؟</strong><br />
شما به روشهای مختلفی میتوانید بازدیدکنندگان را redirect کنید. روش بهتر و معمول، استفاده از امکانات web server برای redirect است که سرعت بیشتر و مصرف منابع کمتری نسبت به  روشهای دیگر دارد. برای کاربران <a href="http://en.wikipedia.org/wiki/Apache_HTTP_Server">Apache</a> کافیست یکی از کدهای زیر را در فایلی با نام .htaccess در شاخه اصلی سایتشان قرار دهند:</p>
<p>برای تغییر مسیر نشانی با www به نشانی بدون www:</p>
<blockquote><p><code>RewriteEngine on<br />
# no-www<br />
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]<br />
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]<br />
</code></p></blockquote>
<p>و برای تغییر مسیر از نشانی بدون www به نشانی با www:</p>
<blockquote><p><code>RewriteEngine on<br />
# yes-www<br />
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]<br />
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]<br />
</code></p></blockquote>
<p>بدیهی است که باید دامنه خود را به جای example.com بنویسید!<br />
پ.ن: <a href="http://farhadi.ir/blog">آقای فرهادی</a> در قسمت <a href="#comment-10421">نظرات</a> کد بهینه‌تر و کامل‌تری معرفی کردند که در <a href="http://www.cakephp.nu/quick-tip-generic-nonwww-www-vice-versa-301-redirect-htaccess">این نشانی</a> توضیح داده شده.</p>
<p><strong>در نهایت</strong><br />
بیایید به فکر keyboard هایمان باشیم، به انگشتانمان فکر کنیم، به فکر مردم باشیم، به فکر گویندگان صدا و سیما باشیم و به فکر نشانی‌های تمیزتری باشیم (همه اینها یعنی no-www باشیم!). من خودم تا جایی که دستم برسد wwwها را بر میدارم. از سایتها و از نشانی‌هایی که مینویسم.<br />
این مطلب کمی با طنز، نظر غیر بی‌طرفانه و no-www دوستانه من را به دوش میکشد! نخواستم فقط بنویسم no-www! گفتم حداقل چشمتان با حقایق دنیای هستی آشنا کنم و بعد بگم no-www! همین!</p>
<p>در این روزهای برفی، برای همه آرزوی سلامت و موفقیت دارم!</p>
<img src="http://feeds.feedburner.com/~r/corelist/~4/SEBmwDNwwWo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1386/10/22/no-www/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		<feedburner:origLink>http://weblog.corelist.net/archives/1386/10/22/no-www/</feedburner:origLink></item>
		<item>
		<title>IE8 و استانداردهای وب</title>
		<link>http://feedproxy.google.com/~r/corelist/~3/MRyxM4OS2HM/</link>
		<comments>http://weblog.corelist.net/archives/1386/10/13/ie8-and-web-standards/#comments</comments>
		<pubDate>Thu, 03 Jan 2008 09:23:18 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[استانداردهای وب]]></category>
		<category><![CDATA[طراحی وب]]></category>
		<category><![CDATA[browser war]]></category>
		<category><![CDATA[compatibility]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/archives/1386/10/13/ie8-and-web-standards/</guid>
		<description><![CDATA[این روزها خبر (تقریبا) مسرت بخشی برای طراحان و توسعه دهندگان وب منتشر شده. خبر اجرای موفقیت آمیز آزمون Acid2 در IE8! اما آیا واقعا برای همه مسرت بخشه؟ سازگاری کامل با استانداردها و Backward Compatibility اول اینکه ادعای تیم توسعه IE مبنی بر اجرای درست آزمون، به این معنی نیست که همه مشکلات IE [...]]]></description>
			<content:encoded><![CDATA[<p>این روزها خبر (تقریبا) مسرت بخشی برای طراحان و توسعه دهندگان وب منتشر شده. <a href="http://blogs.msdn.com/ie/archive/2007/12/19/internet-explorer-8-and-acid2-a-milestone.aspx" title="Internet Explorer 8 and Acid2: A Milestone" target="_blank">خبر اجرای موفقیت آمیز آزمون Acid2 در IE8</a>! اما آیا واقعا برای همه مسرت بخشه؟</p>
<p><strong>سازگاری کامل با استانداردها و Backward Compatibility</strong><br />
اول اینکه ادعای تیم توسعه IE مبنی بر اجرای درست آزمون، به این معنی نیست که همه مشکلات IE برطرف شده باشه. همونطور که خودشون اشاره کردند، <a href="http://www.webstandards.org/action/acid2/" title="آزمونی برای آزمایش پشتیبانی مرورگرها از استانداردها">آزمون Acid2</a> همه جوانب استانداردهای وب رو پوشش نداده و اجرای صحیحش نمیتونه تضمینی برای انطباق کامل با استانداردها باشه.<br />
IE مشکلات ریز و درشت بسیاری در <a href="http://en.wikipedia.org/wiki/Trident_(layout_engine)" title="Trident">موتور Rendering</a> خودش داره که اصلاح برخی از این مشکلات به معنی از دست دادن Backward Compatibility هست که توسعه‌دهندگانش با امیدواری خبرش رو میدند.<br />
مشکل IE فقط عدم پشتیبانی از استانداردها نیست. که این موارد به خودی خود مشکل آفرین نیستند. چون با اضافه شدن امکاناتی جدید به مرورگر، سایتهایی که قبلا بدون در نظر گرفتن این امکان طراحی شدند تغییری نخواهند کرد. مشکل، درست جایی شکل میگیره که IE طرز تفسیر و نمایش غلط و متضاد با استانداردها داره. این موارد (که کم هم نیستند) برای رفع شدن، Backward Compatibility را زیر سوال میبرند. چون سایتی که سابق بر این به اشتباه و غیر استاندارد، تنها متکی بر نمایش صحیح در IE از شکل خاصی از کدنویسی استفاده کرده، در نسخه جدید با تغییر رویه تفسیر و نمایش اون کد (استاندارد شدن تفسیر) به شکل دیگه‌ای نمایش داده میشه و باعث میشه به هم بریزه.<br />
برای مثال، در IE نسخه 6 و قدیمی‌تر، قابلیت hover فقط برای عنصر لینک (a) تعریف شده بود. در حالی که در CSS2 برای هر عنصری میشه hover (و سایر pseudo selectorها) را تعریف کرد.<br />
این قابلیت در IE7 اضافه شد. سایتهایی که قبل از انتشار IE7 طراحی شدند یا از hover برای عناصر غیر از لینک استفاده نکردند. یا در صورت استفاده جزئی و تزئینی بوده. همین سایتها با IE7 -که این قابلیت تازه اضافه شده را داره- اغلب مشکلی نخواهند داشت و شاید کمی بهتر هم به نظر برسند. اما همه موارد به این شکل نیست. خیلی از مشکلات IE نظیر <a href="http://en.wikipedia.org/wiki/Internet_Explorer_box_model_bug" title="Internet Explorer box model bug">box model</a>، <a href="http://www.positioniseverything.net/explorer/escape-floats.html" title="یکی از چندین مشکل float">تفسیرهای نادرست float</a> و <a href="http://www.positioniseverything.net/explorer.html" title="The weird and wonderful world of Internet Explorer">موارد</a> <a href="http://www.brunildo.org/test/" title="CSS tests and experiments">متعدد</a> <a href="http://www.quirksmode.org/css/quirksmode.html" title="Quirks mode and strict mode">دیگری</a> هستند که به سادگی و با حفظ سازگاری با نسخه‌های قبلی قابل اصلاح نیستند.<br />
ممکنه بازهم توسعه دهندگان IE دست به شیرین‌کاری‌هایی مثل <a href="http://haslayout.net/haslayout">hasLayout</a> یا <a href="http://meiert.com/en/blog/20070201/why-conditional-comments-are-bad-repeat-bad/" title="Why “Conditional Comments” Are Bad, Repeat: Bad">Conditional Comments</a> بزنند. اما به هر حال سایتهای غیر استاندارد قدیمی، (همونطور که با تغییرات اندک IE7 دیده شد) اغلب بدون تغییر، درست نمایش داده نمیشوند.</p>
<p><strong>روند توسعه روبه‌جلو یا بازی تبلیغاتی؟</strong><br />
اما از جنبه دیگه‌ای هم میشه به این موضوع نگاه کرد. مایکروسافت طی سالهای اخیر به خاطر انحصار نسبی در بازار مرورگرها (سهم حدودا 90 درصدی) نیاز چندانی به رقابت و نوآوری در مرورگر قدیمی و کهنه و خارج از رده خودش (IE6) نمیدید.  با ظهور فایرفاکس و فشارهای بیشتر شرکتهایی مثل Opera، مایکروسافت IE7 را به عنوان یک مُسکن موضعی منتشر کرد. چیزی که تقریبا میشه بهش مجموعه patchهای IE6 گفت! اما طی چند ماه اخیر اتفاقات دیگه‌ای افتاده که باعث شده مایکروسافت مجددا خودش را وارد <a href="http://en.wikipedia.org/wiki/Browser_wars">جنگ مرورگرها</a> بکنه و به هر ترفندی جایی بین رقبا باز کنه.<br />
در نیمه نوامبر 2007 شرکت Apple <a href="http://webkit.org/blog/122/webkit-3-10-new-things/" title="Ten New Things in WebKit 3">نسخه جدید</a> موتور Rendering مرورگر Safary، یعنی Webkit را معرفی کرد. با امکانات جدید و پیشرفت‌های زیادی در زمینه کیفیت و امنیت و انطباق با استانداردهای وب. در همین روزها <a href="http://www.mozilla.com/en-US/firefox/3.0b1/releasenotes/" title="Firefox 3 Beta 1 Release Notes">اولین نسخه بتا</a> از نسخه جدید مرورگر Firefox بنیاد Mozilla منتشر میشه. که همراه خودش امکانت جدید و بهبود چشمگیری در بازده و کیفیت داشته و همچنین موتور Renderingش را ارتقا داده. بعد از اینها به <a href="http://www.opera.com/pressreleases/en/2007/12/13/" title="Opera files antitrust complaint with the EU">شکایت</a> شرکت Opera از مایکروسافت میرسیم که درست چند روز قبل از اعلام خبر IE8 و Acid2 طرح شده.<br />
شرکت Opera شکایتی در اتحادیه اروپا علیه مایکروسافت طرح کرده که به دو موضوع اصلی اشاره میکنه. یکی همان دعوای قدیمی برای جدا کردن IE از ویندوز یا حذف IE به عنوان مرورگر پیش‌فرض سیستم عامل مایکروسافت. و دیگری اعتراض به استاندارد نبودن مرورگر IE. هر چند که Opera مورد دوم (استانداردهای وب) را بهانه و دست آویزی برای پافشاری بر ادعای اول خودش قرار داده. ولی به هر حال عامل تحریک کننده مایکروسافت هست.<br />
عده‌ای انتشار این خبر از جانب <abbr title="Dean Hachamovitch">مدیر تیم توسعه IE</abbr> را واکنشی مستقیم به شکایت Opera میدونند. که باعث میشه مایکروسافت در این دعوا در جایگاه بهتری قرار بگیره. ولی منهم مثل <a href="http://www.microsoft-watch.com/content/web_services_browser/ie_8_and_the_new_browser_war.html" title="IE 8 and the New Browser War">Joe Wilcox</a>، عقیده دارم این اقدام مایکروسافت پاسخی به همه عوامل ریز و درشت جنگ مرورگرها بوده. در واقع ممکنه این ادعای تیم توسعه IE در حد یک بازی تبلیغاتی باشه یا حداقل در خوشبینانه ترین حالت منجر به تغییرات نه چندان اصولی مثل IE7 بشه. من قصدم این نیست که کل این موضوع را زیر سوال ببرم، بلکه فکر میکنم این ادعا (یا واکنش) کمی اغراق شده و آرمانیه، تا اجرا شده و دست یافتنی!</p>
<p>از IE8 هنوز هیچ جزئیاتی منتشر نشده و انتشار اولین نسخه بتای IE8 در نیمه اول سال 2008 وعده داده شده، چیزی که با توجه به سابقه مایکروسافت ممکنه به اواخر 2008 هم برسه. به همین خاطر هنوز نمیشه اطمینان داشت ادعای پشتیبانی از استانداردهای وب (یا حتی ادعای اجرای موفقیت آمیز Acid2)  به واقعیت نزدیک باشه.<br />
به هر حال آرزوی تمام طراحان وتوسعه دهندگان وب اینه که استانداردهای وب به طور گسترده در مرورگرها و ابزارهای طراحی پشتیبانی بشه تا مدت زمانی که همواره صرف رفع ایراد طراحی در مرورگرهای مختلف میشه، صرف پرداختن به خلاقیتها و نوآوری‌های طراح بشه.<br />
من هم به امید اون روز، چشم به جنگ مرورگرها دارم. شاید روند کاهش کاربران IE یا شکایتها، قلقلکی به مایکروسافت بده. <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/corelist/~4/MRyxM4OS2HM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1386/10/13/ie8-and-web-standards/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://weblog.corelist.net/archives/1386/10/13/ie8-and-web-standards/</feedburner:origLink></item>
		<item>
		<title>بازی گیکی؟!</title>
		<link>http://feedproxy.google.com/~r/corelist/~3/6-5JsWNymTA/</link>
		<comments>http://weblog.corelist.net/archives/1386/10/02/geeky-game/#comments</comments>
		<pubDate>Sun, 23 Dec 2007 18:25:21 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[اينترنت]]></category>
		<category><![CDATA[عمومی]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[geek]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[لینوکس]]></category>
		<category><![CDATA[web standards]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/archives/1386/10/02/geeky-game/</guid>
		<description><![CDATA[تا به حال توی جو و جریان وبلاگ بازی نبودم و از این کارها نکردم. اما حداقل به عنوان بهانه‌ای برای نوشتن و خلاص کردن شما از باغم! بد ندیدم زورکی هم که شده به بازی geekها بپیوندم کلمه geek به فردی میگند که خوره یک چیز باشه! یعنی اول علاقه داشته بعد خوره شده! [...]]]></description>
			<content:encoded><![CDATA[<p>تا به حال توی جو و جریان وبلاگ بازی نبودم و از این کارها نکردم. اما حداقل به عنوان بهانه‌ای برای نوشتن و خلاص کردن شما از<a href="http://weblog.corelist.net/archives/1386/07/01/baghe-man/" title="مطلب قبلی وبلاگ"> باغم!</a> بد ندیدم زورکی هم که شده به بازی geekها بپیوندم <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>کلمه geek به فردی میگند که خوره یک چیز باشه! یعنی اول علاقه داشته بعد خوره شده! البته نه از نوع علاقه‌ای که مثلا خیلی‌ها به یانگوم دارندها! نه! بیشتر علاقه به فناوری و امور تکنولوژیک منظور بوده! <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  البته لازم به تذکر نیست که من geek نیستم ولی geekهارو یکمی دوست دارم!</p>
<ul>
<li>همیشه آرزوم بوده روزی برسه که لازم نباشه یک پنجم زمان طراحی پروژه‌ها رو برای رفع ایراد مرورگرهای مختلف (خصوصا ie) به هدر بدم! یا خیلی از ایده‌ها و خلاقیتهای طراحیم به گِل بشینه وقتی نتونم به راحتی با همه مرورگرها نمایشش بدم! واقعا آروزی دور از دسترسیه؟ واقعا خواسته زیادیه رعایت و اجرای استانداردهای وب در مرورگرها؟ (در همین راستا مطلبی در دست تهیه دارم!)</li>
<li>چقدر آرزو دارم سطح اطلاعات و دانش مردم و (خصوصا) مسئولین از IT و مسائل مرتبط ارتقا پیدا کنه و لازم نباشه برای مسئول مربوطه توضیح داد 128 کیلوبیت خیلی نیست! یا اینترنت فقط سایت غیر اخلاقی و بی ناموسی نیست یا دیگران بفهمند کامپیوتر وسیله جدید بازی مثل آتاری و میکرو نیست و ایضا نیاز به توضیح نباشه کسب درآمد از اینترنت همون شبکه‌های هرمی نیست یا &#8230; میدونم که حداقل این آروزی بزرگیه!</li>
<li>آرزو دارم درک و شناخت مردم از open source بیشتر بشه. هم از این نظر که استفاده از برنامه‌های بازمتن به جای برنامه‌های پولی کرک شده رایج بشه و هم اینکه <abbr title="روحیه همکاری، همیاری، کمک برای به کمال رسیدن دیگران و کمی از خود گذشتگی">روحیه و اخلاق open sourceی</abbr> کمی در جو نرم‌افزار و IT ما بیشتر بشه.</li>
<li>آرزو دارم روزی همه با لینوکس کار کنند و سیستم عامل مایکروسافت رو کلا به لای باقالی‌ها بفرستیم! در نتیجه دیگه هر از گاهی یکی از دوستان و آشنایان رو با یک کیس زیر بقل نبینم که با چهره آشفته و فرتوتی به سمتم میاد و میخواد ویندوزش رو عوض کنم! (مطمئنا منظورم از لینوکس همون لینوکس ملی و اینها نیست ها! همین اوبونتوی خودمون یا شایدم پارسیکس!)</li>
</ul>
<p>ولی بزرگترین آرزوی جدی و حقیقیم با <a href="http://www.freekeyboard.net/spip.php?article365" title="آرزوهای گیکی یک گیک اجتماعی">جادی</a> مشترکه! آه که چقدر آرزو دارم هویت و شخصیت پذیرفته شده‌ای در دنیا داشته باشم! البته حداقل الان دنیای من از دریچه محیط مجازی اینترنت هست. جایی که بارها و بارها، فقط به خاطر ایرانی بودن، ازش صدمه خوردم، از بخشهاییش رونده شدم و گاهی اوقات (به ندرت البته) مورد آزار و توهین قرار گرفتم. <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>من به دعوت دوست عزیز <a href="http://www.moniri.com/2007/12/blog-post_5265.html">آقای منیری</a> به این بازی <abbr title="باور کنید اغفال شدم! :}">کشیده شدم</abbr>! اما به دلایلی ترجیح میدم در ادامه کسی رو دعوت نکنم. شاید نمیدونم چه کسی رو چطور انتخاب کنم یا &#8230;</p>
<img src="http://feeds.feedburner.com/~r/corelist/~4/6-5JsWNymTA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1386/10/02/geeky-game/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		<feedburner:origLink>http://weblog.corelist.net/archives/1386/10/02/geeky-game/</feedburner:origLink></item>
		<item>
		<title>باغ من</title>
		<link>http://feedproxy.google.com/~r/corelist/~3/z4UP1FYGafA/</link>
		<comments>http://weblog.corelist.net/archives/1386/07/01/baghe-man/#comments</comments>
		<pubDate>Sun, 23 Sep 2007 06:39:14 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[عمومی]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/archives/1386/07/01/baghe-man/</guid>
		<description><![CDATA[آسمانش را گرفته تنگ در آغوش ابر، با آن پوستینِ سردِ نمناکش. باغ بی برگی، روز و شب تنهاست، با سکوت پاک غمناکش. سازِ او باران، سرودش باد. جامه‌اش شولای عریانی‌ست. ور جز اینش جامه‌ای باید، بافته بس شعله‌ی زر تارِ پودش باد. گو بروید، یا نروید، هر چه در هر کجا که خواهد، یا [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zooomr.com/photos/emilyelizabeth/980299/" title="Photo Sharing"><img src="http://static.zooomr.com/images/980299_30baf2b99a.jpg" alt="autumn" class="imgleft" width="220" /></a>آسمانش را گرفته تنگ در آغوش<br />
ابر، با آن پوستینِ سردِ نمناکش.<br />
باغ بی برگی،<br />
روز و شب تنهاست،<br />
با سکوت پاک غمناکش.<br />
سازِ او باران، سرودش باد.<br />
جامه‌اش شولای عریانی‌ست.<br />
ور جز اینش جامه‌ای باید،<br />
بافته بس شعله‌ی زر تارِ پودش باد.<br />
گو بروید، یا نروید، هر چه در هر کجا که خواهد، یا نمی‌خواهد؛<br />
باغبان و رهگذاری نیست.<br />
باغ نومیدان،<br />
چشم در راه بهاری نیست.<br />
گر ز چشمش پرتوِ گرمی نمی‌تابد،<br />
ور به رویش برگِ لبخندی نمی‌روید؛<br />
باغ بی‌برگی که می گوید که زیبا نیست؟<br />
داستان از میوه‌هایِ سر به گردونسایِ اینک خفته در تابوتِ<br />
<span style="padding: 0pt 200px 0pt 0pt">[پستِ خاک می‌گوید.</span><br />
باغ بی‌برگی<br />
خنده‌اش خونیست اشک‌آمیز.<br />
جاودان بر اسبِ یال افشانِ زردش، می‌چمد در آن<br />
پادشاه فصلها، پاییز.</p>
<p style="text-align: left; width: 65%">م‌.امّید &#8211; تهران، خرداد‌ ماه ۱۳۳۵</p>
<img src="http://feeds.feedburner.com/~r/corelist/~4/z4UP1FYGafA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1386/07/01/baghe-man/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://weblog.corelist.net/archives/1386/07/01/baghe-man/</feedburner:origLink></item>
		<item>
		<title>OpenDNS</title>
		<link>http://feedproxy.google.com/~r/corelist/~3/4FBm1Sk37UI/</link>
		<comments>http://weblog.corelist.net/archives/1386/06/21/opendns/#comments</comments>
		<pubDate>Wed, 12 Sep 2007 18:33:57 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[اينترنت]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/archives/1386/06/21/opendns/</guid>
		<description><![CDATA[امروز میخوام یک سرویس نسبتا خاص رو بهتون معرفی کنم. سرویسی که من مدتهاست ازش استفاده میکنم و به تازگی ازش شگفت زده شدم! OpenDNS طبق تعریف خودشون، یک روش سریعتر، امن‌تر و قابل اطمینان‌تر برای گشت و گذار در اینترنت است! OpenDNS یک سرویس DNS رایگان به ما ارائه میکنه، با استفاده از این [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://opendns.com"><img src="http://www.opendns.com/img/logo_home.gif" alt="OpenDNS Logo" class="imgleft" /></a>امروز میخوام یک سرویس نسبتا خاص رو بهتون معرفی کنم. سرویسی که من مدتهاست ازش استفاده میکنم و به تازگی ازش شگفت زده شدم!<br />
OpenDNS طبق تعریف خودشون، یک روش سریعتر، امن‌تر و قابل اطمینان‌تر برای گشت و گذار در اینترنت است! OpenDNS یک سرویس DNS رایگان به ما ارائه میکنه، با استفاده از این خدمات علاوه بر سرعت و اطمینان بیشتر، امکانات مختلف و مفصلی خواهید داشت.</p>
<p><strong>امن‌تر</strong><br />
این سرویس به طور پیش فرض سایتهای <a href="http://en.wikipedia.org/wiki/Phishing">Phishing</a> رو بلاک میکنه و با پیغام واضحی به شما هشدار میده. Phishing به سایتهایی اطلاق میشه که با استفاده از روشهای مختلف مهندسی احتماعی بعد از گمراه کردن کاربران اطلاعات مهم و حیاتی از قبیل مشخصات و نشانی افراد، نام‌کاربری و کلمه عبورها، اطلاعات حسابهای بانکی و کارتهای اعتباری و .. میدزدند.<br />
OpenDNS این کار رو با استفاده از یک بانک اطلاعاتی مشترک به نام <a href="http://en.wikipedia.org/wiki/Phishtank">Phishtank</a> انجام میده که شرکتی مثل یاهو هم ازش استفاده میکنه.</p>
<p>این سرویس با ثبت نام به طور رایگان، امکان بلاک کردن سایتهایی با محتوای <a href="http://www.opendns.com/start/features/adult/">غیر اخلاقی</a> رو داره. این کار هم توسط سیستم iGuard انجام میشه. این قابلیت میتونه توسط والدین برای کنترل دسترسی فرزندانشون و یا توسط مدیران شبکه برای کنترل دسترسی کاربران شبکه داخلی استفاده بشه.</p>
<p>همچنین، امکان بلاک کردن سایتها با فهرستی دلخواه توسط شما وجود داره.</p>
<p><strong>باهوش‌تر</strong><br />
به گفته خودشون: این سرویس نوار نشانی مرورگر (Address bar) شما رو هوشمندتر میکنه.</p>
<p>قابلیت اول تصحیح غلط املایی زمان تایپ نشانی‌های اینترنتیه، مثلا اگر شما نشانی yahoo.com رو به شکل yahoo.cmo بنویسید این سرویس نشانی رو برای شما درست میکنه. اتفاقی که ممکنه روزانه بارها برای شما بیفته و باعث اتلاف وقتتون بشه.</p>
<p>قابلیت بعدی امکان ایجاد <a href="http://www.opendns.com/start/features/shortcuts/">میانبر یا Shortcut</a> برای نشانی‌های دلخواه شماست. شما میتونید برای نشانی های مهم و شاید طولانی که در طول روز استفاده میکنید، میانبر تعریف کنید.<br />
مثلا برای چک کردن ایمیل‌های یاهو، میانبر mail رو تعریف کنید که OpenDNS این عبارت رو به http://mail.yahoo.com تبدیل کنه. بعد از این برای دسترسی به این آدرس کافیه کلمه mail رو در نوار نشانی مرورگرتون بنویسید.</p>
<p>در نهایت امکان تغییر تنظیمات موارد بالا، قراردادن پیغام و لوگوی دلخواه برای صفحات OpenDNS و فعال کردن/مشاهده آمار سایتهای دیده شده در قسمت کنترل پنل اعضا وجود داره.</p>
<p>برای استفاده پیشرفته از خدمات بالا و همچینین امکانات جانبی بیشتر باید <a href="https://www.opendns.com/account/create/">عضو سایت</a> بشید و IPتون رو ثبت کنید. اگر IP شما Dynamic باشه، ابزارهایی برای سیستم عاملهای مختلف وجود داره که همیشه IP شمارو در این سیستم به روز نگه داره. برای تنظیم DNSها داخل سیستم عاملهای مختلف راهنمای تصویر وجود داره.</p>
<p>با استفاده از این DNSها شما تغییرات سایتهارو به طور زنده و لحظه‌ای میبینید و در صورت انتقال یک  سایت به سرور جدید و تغییر DNSهای اون، نیازی نیست ساعتها منتظر تغییر IP اون نشانی بمونید.</p>
<p>من بعد با استفاده از این سرویس تغییر نسبتا محسوسی در سرعت مشاهده سایتها حس میکنم و از به روز رسانی سریعشون لذت میبرم. امیدوارم برای شما هم به همین اندازه مفید باشه. <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/corelist/~4/4FBm1Sk37UI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1386/06/21/opendns/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://weblog.corelist.net/archives/1386/06/21/opendns/</feedburner:origLink></item>
		<item>
		<title>Regexxer</title>
		<link>http://feedproxy.google.com/~r/corelist/~3/Ndge7LSEU_8/</link>
		<comments>http://weblog.corelist.net/archives/1386/06/05/regexxer/#comments</comments>
		<pubDate>Mon, 27 Aug 2007 07:36:16 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[لینوکس]]></category>
		<category><![CDATA[برنامه‌های مفید]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/archives/1386/06/05/regexxer/</guid>
		<description><![CDATA[امروز مجددا از طریق فیدهای سایت Fedora Package A Day با برنامه‌ای آشنا شدم که دقیقا چند روز پیش به شدت بهش نیازمند بودم! مواقعی پیش میاد که توی یک فایل متنی، اعم از کد برنامه‌ای یا فایل تنظیمات یا &#8230; نیاز دارید تا چیزی رو Find &#038; Replace کنید. ولی همیشه هم اون String [...]]]></description>
			<content:encoded><![CDATA[<p>امروز مجددا از طریق فیدهای سایت <a href="http://dailypackage.fedorabook.com">Fedora Package A Day</a> با برنامه‌ای آشنا شدم که دقیقا چند روز پیش به شدت بهش نیازمند بودم!<br />
مواقعی پیش میاد که توی یک فایل متنی، اعم از کد برنامه‌ای یا فایل تنظیمات یا &#8230; نیاز دارید تا چیزی رو Find &#038; Replace کنید. ولی همیشه هم اون String خاص ثابت نیست که به طور معمول این کارو انجام بدید. اینجا لازمه از <a href="http://en.wikipedia.org/wiki/Regex">Regular Expression</a> کمک بگیرید و با کمک برنامه ای که هم برای Find و هم برای Replace یا Substitute از Regex پشتیبانی کنه این کارو انجام بدید. به این شکل میتونید با pattern مناسب اون عبارتی که میخواید از داخل فایل بیرون بکشید و تغییرش بدید.<br />
من چند روز پش برای تغییر کلی لیست استانهای ایران به این موضوع نیاز داشتم. هر چند 30 خط بیشتر نبود. ولی شدیدا ترجیح میدادم که با Regex انجام بدم. ولی نشد. امروز که این برنامه رو دیدم خیلی خوشحال شدم. از این به بعد زیاد به کارم میاد. <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>برنامه <a href="http://regexxer.sourceforge.net/">Regexxer</a> با یک محیط نسبتا ساده امکان جستجو و بازنشانی یک pattern خاص رو در بین چندین فایل در یک شاخه میده. برای انتخاب فایل هم امکان مشخص کردن pattern هست.<br />
<a href='http://weblog.corelist.net/wp-content/uploads/2007/08/screenshot-regexxer.png' title='تصویر Regexxer'><img class ="centered" src='http://weblog.corelist.net/wp-content/uploads/2007/08/screenshot-regexxer.png' alt='تصویر Regexxer' /></a></p>
<p>همونطور که داخل عکس مشخصه، دو فیلد برای pattern جستجو و یکی هم برای ترکیب replace سمت راست هست. زیرش بخشی از فایل و نمونه متنی که match میشه هست و در پایین هم کادر کوچیکی نمونه از متن بعد از replace رو نمایش میده.</p>
<p>اگر کاربر اوبونتو هستید، از طریق Synaptic یا apt-get میتونید برنامه رو نصب کنید. برای سایرین هم سورس و نسخه rpm برنامه داخل سایتش هست.</p>
<p>امیدوارم این برنامه همونطور که برای من مفید بود، به درد شما هم بخوره. <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/corelist/~4/Ndge7LSEU_8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1386/06/05/regexxer/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://weblog.corelist.net/archives/1386/06/05/regexxer/</feedburner:origLink></item>
		<item>
		<title>چگونه با Bash شاد کام باشیم (۱)</title>
		<link>http://feedproxy.google.com/~r/corelist/~3/SenAXvk5wVI/</link>
		<comments>http://weblog.corelist.net/archives/1386/06/01/bash-completion/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 05:10:46 +0000</pubDate>
		<dc:creator>علی ستاری</dc:creator>
				<category><![CDATA[Bash]]></category>
		<category><![CDATA[لینوکس]]></category>

		<guid isPermaLink="false">http://weblog.corelist.net/archives/1386/06/01/%da%86%da%af%d9%88%d9%86%d9%87-%d8%a8%d8%a7-bash-%d8%b4%d8%a7%d8%af-%da%a9%d8%a7%d9%85-%d8%a8%d8%a7%d8%b4%db%8c%d9%85-1/</guid>
		<description><![CDATA[یا completion در Bash اصولا webmaster یا sysadminهای لینوکسی روزانه سر و کار زیادی با shell دارند. یکی از shellهای پرکاربرد و محبوب و نسبتا کامل برای خاندان یونیکس bash هست. bash مخفف born again shell یا shell خیلی باحال میشه! اطلاعات بیشتر راجع به bash اینجا هست: http://en.wikipedia.org/wiki/Bash کار کردن با شل قلق ها [...]]]></description>
			<content:encoded><![CDATA[<p>یا <strong>completion در Bash</strong></p>
<p>اصولا webmaster یا sysadminهای لینوکسی روزانه سر و کار زیادی با shell دارند. یکی از shellهای پرکاربرد و محبوب و نسبتا کامل برای خاندان یونیکس bash هست. bash مخفف born again shell یا shell خیلی باحال میشه! <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
اطلاعات بیشتر راجع به bash اینجا هست: <a href="http://en.wikipedia.org/wiki/Bash">http://en.wikipedia.org/wiki/Bash<br />
</a><br />
کار کردن با شل قلق ها و ترفندها و به قولی short handهای زیادی داره، که اگر بدونیم خیلی شیرین و لذت بخش و سریع خواهد بود! اغلب علت اینکه تازه کارهای بی تجربه از شل و ترمینال و &#8230; بدشون میاد (یا حتی میترسند) وارد نبود به این ریزه کاریها و نکته هاست.</p>
<p>یکی از نکات کنکوری کار کردن با اکثر ترمینال ها استفاده از قابلیت completion هست. این قابلیت کما بیش توی اکثر محیطهای متنی دیده میشه&#8230; حتی cmd ویندوز هم داره .. ولی خیلی ناقص و فقط در حد شاخه‌ها و اسم فایلها! این قابلیت برای تکمیل عبارات و کلمات مربوط به دستورها یا نام شاخه ها عموما به کار میره (میتونه فراتر از اینها هم باشه!)<br />
کلیدی که عموما کار کامل کردن رو انجام میده TAB هست. مثلا شما فایل هایی به این شکل در یک شاخه دارید:</p>
<blockquote><p><code>.<br />
..<br />
linux-2.0-5.2.687.tar.gz<br />
linux-3.0-5.2.687.tar.gz<br />
linux-2.1-5.2.687.tar.gz<br />
linux-2.5-5.2.687.tar.gz<br />
linux-4.0-5.2.687.tar.gz<br />
ali.tar.gz</code>
</p></blockquote>
<p>حالا مثلا میخواید با دستور cp یکی از اینها (فرضا linux-2.5-5.2.687.tar.gz) رو کپی کنید، به این شکل میتونید از completion استفاده کنید:</p>
<blockquote><p><code>cp l(TAB)<br />
که میشه<br />
cp linux-</code><br />
<code><br />
cp linux-2(TAB)<br />
که میشه<br />
cp linux-2.</code><br />
<code><br />
cp linux-2.5(TAB)<br />
که اینبار کامل میشه:<br />
cp linux-2.5-5.2.687.tar.gz</code></p></blockquote>
<p>مرحله اول ما دستور cp رو تایپ کردیم و بعد از حرف &#8220;L&#8221; کلید TAB رو یکبار زدیم، bash چک میکنه و میبینه توی این شاخه 5 تا فایل هست که با &#8220;L&#8221; شروع میشند که وجه اشتراک همشون <code>-linux</code> هست. پس خودش تا کاراکتر &#8220;-&#8221; که بین همه L دارها مشترکه پیش میره. بعد که ما عدد 2 رو هم وارد کردیم چک کرد و دید 3 تا گزینه مونده و اشتراکشون &#8220;.&#8221; هست. اینهم کامل کرد. وقتی ما عدد 5 رو وارد کردیم دیگه مورد مشابهی که با linux-2.5 شروع بشه وجود نداشت.. در نتیجه کل نام فایل رو برامون آورد. به این میگند completion!<br />
حالا اگر بخواید فایل ali.tar.gz رو انتخاب کنید کافیه حرف a رو تایپ کنید و TAB رو بزنید! اسم فایل کامل میشه! چون دیگه هیچ فایلی با a شروع نشده.</p>
<p>حالا این روال برای دستورات هم وجود داره. میتونید کامندهای طولانی رو هم اینطوری کوتاه کنید. مثلا برای دستور traceroute (مثلا) کافیه tra و TAB و بعد ro و TAB رو بزنید&#8230; کامل میشه! برای دیدن لیست فایلها یا دستورات که با عبارت وارد شده شما شروع میشند باید دوبار TAB رو بزنید.</p>
<p>استفاده از همین تکنیک کوچیک توی کارهای روزانه و خصوصا برای کار در شاخه های مختلف با اسمهای نسبتا طولانی خیلی دستمون رو باز میکنه.</p>
<p>این دو مقاله در همین مورد هست:<br />
<a href="http://www.debian-administration.org/articles/316">http://www.debian-administration.org/articles/316</a><br />
<a href="http://www.debian-administration.org/articles/317">http://www.debian-administration.org/articles/317</a></p>
<p>توی مقاله دوم میتویند ببینید که این قابلیت چقدر انعطاف پذیره و میتونید برای خودتون قوانین و توابع completion دلخواه داشته باشید!</p>
<p>پ.ن: تیتر مطلب از نشریات زرد الهام گرفته شده، جدی نگیرید! <img src='http://weblog.corelist.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/corelist/~4/SenAXvk5wVI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://weblog.corelist.net/archives/1386/06/01/bash-completion/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://weblog.corelist.net/archives/1386/06/01/bash-completion/</feedburner:origLink></item>
	</channel>
</rss>

