<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>مدونة سيف التقنية</title>
	<atom:link href="http://0xsife.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://0xsife.wordpress.com</link>
	<description>مدونة تهتم بالبرمجة و الأنظمة مفتوحة المصدر</description>
	<lastBuildDate>Fri, 25 Nov 2011 18:47:27 +0000</lastBuildDate>
	<language>ar</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='0xsife.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>مدونة سيف التقنية</title>
		<link>http://0xsife.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://0xsife.wordpress.com/osd.xml" title="مدونة سيف التقنية" />
	<atom:link rel='hub' href='http://0xsife.wordpress.com/?pushpress=hub'/>
		<item>
		<title>التعامل مع ملفات bin/iso/cue في FreeBSD</title>
		<link>http://0xsife.wordpress.com/2011/04/30/mount-iso-bin-cue-files-in-freebsd/</link>
		<comments>http://0xsife.wordpress.com/2011/04/30/mount-iso-bin-cue-files-in-freebsd/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 23:10:14 +0000</pubDate>
		<dc:creator>سيف عبدالرزاق</dc:creator>
				<category><![CDATA[أنظمة يونكس]]></category>
		<category><![CDATA[FreeBSD iso-file bin-file cue-file bin-to-iso]]></category>

		<guid isPermaLink="false">http://0xsife.wordpress.com/?p=424</guid>
		<description><![CDATA[السلام عليكم و رحمة الله الكل منا تصادف مع ملفات من نوع iso bin cue، كنا نستخدم برنامج Virtual Driver على ال windows، في FreeBSD هناك طريقة لفتح ملفات ال iso كالآتي: الحيلة تعتمد على إنشاء قرص وهمي على القرص الصلب، بعدها نقوم بإستخراج محتوى ملف iso و كأنه فعلا قرص فيزيائي. بالنسبة للملفات من [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=424&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>السلام عليكم و رحمة الله<br />
الكل منا تصادف مع ملفات من نوع iso bin cue، كنا نستخدم برنامج Virtual Driver على ال windows، في FreeBSD هناك طريقة لفتح ملفات ال iso كالآتي:</p>
<p><pre class="brush: bash;">
mdconfig -a -t vnode -f  my-iso-file.iso -u 0
mount -t cd9660 /dev/md0 /home/SIFE/mount
</pre></p>
<p><span id="more-424"></span><br />
الحيلة تعتمد على إنشاء قرص وهمي على القرص الصلب، بعدها نقوم بإستخراج محتوى ملف iso و كأنه فعلا قرص فيزيائي.<br />
بالنسبة للملفات من نوع bin فإنه للأسف لايتوفر دعم حالي لهم في FreeBSD على عكس Linux، لذا كل ما يمكننا فعله هو تحويل ملف bin إلى iso بإستخدام البرنامج bchunk كالآتي:</p>
<p><pre class="brush: bash;">
cd /usr/ports/sysutils/bchunk
make install clean
</pre></p>
<p>الآ نقوم بتحويل ملف bin إلى iso كالآتي:</p>
<p><pre class="brush: bash;">
bchunk my-new-iso-file.iso my-bin-file.bin my-bin-file.cue
</pre></p>
<p style="text-align:right;">
عادة ملفات bin تأتي معها ملفات بنفس الإسم تنتهي بلاحقة cue.<br />
<strong>مصادر:</strong></p>
<p style="text-align:left;">
<a href="http://www.freebsddiary.org/iso-mount.php">http://www.freebsddiary.org/iso-mount.php</a><br />
<a href="http://sleepyhead.de/howto/?href=filesystem#mountimg">http://sleepyhead.de/howto/?href=filesystem#mountimg</a><br />
<a href="http://www.ubuntugeek.com/how-to-convert-bincue-files-to-iso-in-ubuntu.html">http://www.ubuntugeek.com/how-to-convert-bincue-files-to-iso-in-ubuntu.html</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/0xsife.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/0xsife.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/0xsife.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/0xsife.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/0xsife.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/0xsife.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/0xsife.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/0xsife.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/0xsife.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/0xsife.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/0xsife.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/0xsife.wordpress.com/424/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/0xsife.wordpress.com/424/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/0xsife.wordpress.com/424/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=424&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://0xsife.wordpress.com/2011/04/30/mount-iso-bin-cue-files-in-freebsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">سيف عبدالرزاق</media:title>
		</media:content>
	</item>
		<item>
		<title>إظهار و إخفاء محتوى بإستخدام jQuery</title>
		<link>http://0xsife.wordpress.com/2011/04/21/show-hide-content-with-jquery/</link>
		<comments>http://0xsife.wordpress.com/2011/04/21/show-hide-content-with-jquery/#comments</comments>
		<pubDate>Thu, 21 Apr 2011 18:32:40 +0000</pubDate>
		<dc:creator>سيف عبدالرزاق</dc:creator>
				<category><![CDATA[برمجة]]></category>
		<category><![CDATA[jQuery slideToggle]]></category>

		<guid isPermaLink="false">http://0xsife.wordpress.com/?p=415</guid>
		<description><![CDATA[‫السلم عليكم و رحمة ال و بركاته‬ ‫من منا لم يرى صفحة السئلة المتكررة، أظن الشيء الجذاب فيها كان طريقة إظهار النص و إخفائه عند الضغط‬ ‫على سؤال ما، هناك طريقة بسيطة لفعل هذا الشيء مع مع ‪ jQuery‬كل ما يلزمك أسطر خفيفة و يكون لديك‬ ‫المثل.‬ في السطر الثاني عند الحدث ‪ click‬للعنصر المرفق [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=415&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>‫السلم عليكم و رحمة ال و بركاته‬<br />
‫من منا لم يرى صفحة السئلة المتكررة، أظن الشيء الجذاب فيها كان طريقة إظهار النص و إخفائه عند الضغط‬<br />
‫على سؤال ما، هناك طريقة بسيطة لفعل هذا الشيء مع مع ‪ jQuery‬كل ما يلزمك أسطر خفيفة و يكون لديك‬<br />
‫المثل.‬<br />
<pre class="brush: jscript;">

‫$(document).ready(function() {
$(&quot;#control&quot;).click(function() {
$(&quot;#mytext&quot;).slideToggle(function() {
if ($(this).is(&quot;:visible&quot;)) {
$(&quot;#control&quot;).text(&quot;\u25b2 إخفاء النص&quot;);
}
else {
$(&quot;#control&quot;).text(&quot;\u25bc إظهار النص&quot;);
}
});
});
});

</pre></p>
<p>في السطر الثاني عند الحدث ‪ click‬للعنصر المرفق ب ‪ control id‬نقوم بإخفاء ال ‪ div‬بإستخدام الدالة‬<br />
‫‪ slideToggle‬إذا كان هذا العنصر أصل ظاهرا )أنظر إلى السطر 4، إذا كان الشرط ‫ محققا يعني النص الن‬<br />
‫ظاهر(، إن لم يكن الشرط محقق نقوم بإظهار المثلث المقلوب كما هو موضح في السطر 8.‬<br />
<a href="http://jsfiddle.net/de4FE/45/">مثال حي</a>.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/0xsife.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/0xsife.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/0xsife.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/0xsife.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/0xsife.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/0xsife.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/0xsife.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/0xsife.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/0xsife.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/0xsife.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/0xsife.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/0xsife.wordpress.com/415/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/0xsife.wordpress.com/415/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/0xsife.wordpress.com/415/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=415&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://0xsife.wordpress.com/2011/04/21/show-hide-content-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">سيف عبدالرزاق</media:title>
		</media:content>
	</item>
		<item>
		<title>تغيير لون خلفية الخلية الحالية في جدول بإستخدام jQuery</title>
		<link>http://0xsife.wordpress.com/2011/04/16/%d8%aa%d8%ba%d9%8a%d9%8a%d8%b1-%d9%84%d9%88%d9%86-%d8%ae%d9%84%d9%81%d9%8a%d8%a9-%d8%a7%d9%84%d8%ae%d9%84%d9%8a%d8%a9-%d8%a7%d9%84%d8%ad%d8%a7%d9%84%d9%8a%d8%a9-%d9%81%d9%8a-%d8%ac%d8%af%d9%88%d9%84/</link>
		<comments>http://0xsife.wordpress.com/2011/04/16/%d8%aa%d8%ba%d9%8a%d9%8a%d8%b1-%d9%84%d9%88%d9%86-%d8%ae%d9%84%d9%81%d9%8a%d8%a9-%d8%a7%d9%84%d8%ae%d9%84%d9%8a%d8%a9-%d8%a7%d9%84%d8%ad%d8%a7%d9%84%d9%8a%d8%a9-%d9%81%d9%8a-%d8%ac%d8%af%d9%88%d9%84/#comments</comments>
		<pubDate>Sat, 16 Apr 2011 08:53:32 +0000</pubDate>
		<dc:creator>سيف عبدالرزاق</dc:creator>
				<category><![CDATA[برمجة]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://0xsife.wordpress.com/?p=400</guid>
		<description><![CDATA[السلام عليكم و رحمة الله و بركاته و تعالى لنفرض مثلا أنه لديك جدول مكون من 5 حقول و أعمدة، و أنت تريد أن يتغير لون خلية التي فوقها مؤشر الفأرة، كيف ذلك؟ الأمر بسيط، سنستخدم jQuery لذلك، لدينا الطريقة (method في البرمجة الكائنية) hover التي تعني متى يكون مؤشر الفأرة فوق شيء ما، و [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=400&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p dir="RTL" align="RIGHT"><span style="font-family:Tahoma;">السلام عليكم و رحمة الله و بركاته و تعالى</span></p>
<p dir="RTL" align="RIGHT"><span style="font-family:Tahoma;">لنفرض مثلا أنه لديك جدول مكون من </span>5 <span style="font-family:Tahoma;">حقول و أعمدة، و أنت تريد أن يتغير لون خلية التي فوقها مؤشر الفأرة، كيف ذلك؟</span></p>
<p dir="RTL" align="RIGHT"><span style="font-family:Tahoma;">الأمر بسيط، سنستخدم </span>jQuery <span style="font-family:Tahoma;">لذلك، لدينا الطريقة </span>(method <span style="font-family:Tahoma;">في البرمجة الكائنية</span>) hover <span style="font-family:Tahoma;">التي تعني متى يكون مؤشر الفأرة فوق شيء ما، و الطريقة </span>addClass <span style="font-family:Tahoma;">لعمل تغيير الخلفية و ما إلى ذلك</span>.</p>
<p dir="RTL" align="RIGHT"><span id="more-400"></span></p>
<p><pre class="brush: jscript;">

&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
&lt;title&gt;&lt;/title&gt;
&lt;style type=&quot;text/css&quot;&gt;

.highlight {
font-weight: bold;
color: #FF9933;
background-color: #99FF00;
}

&lt;/style&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery-1.5.2.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function(){
$('td').hover(
function() {
$(this).addClass('highlight');
},
function () {
$(this).removeClass('highlight');
}) ;
});
&lt;/script&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;table border=&quot;1&quot; bordercolor=&quot;#FFCC00&quot; style=&quot;background-color:#FFFFCC&quot; width=&quot;400&quot; cellpadding=&quot;3&quot; cellspacing=&quot;3&quot;&gt;
&lt;tr&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;td&gt;Table Cell&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p style=&quot;font-family:verdana,arial,sans-serif;font-size:10px;&quot;&gt;&lt;a href=&quot;http://www.quackit.com/html/html_table_tutorial.cfm&quot; target=&quot;_top&quot;&gt;HTML Tables&lt;/a&gt;&lt;/p&gt;
&lt;/body&gt;
&lt;/html&gt;

&lt;code&gt;</pre></p>
<p>في السطر 18 قمنا بعمل select للوسم td، هذا يعني أننا نستهدف الخلايا، بعدها قمنا بمنادات الطريقة hover التي تأخذ وسيطين، الأول عندما يكون مؤشر الفأرة فوق العنصر و الثاني عندما نغير مؤشر الفأرة من العنصر.</p>
<p>السطر 20 قمنا بتغيير الخلية بإستخدام الكلاس <code>highlight المعرف سابقا في السطر 8، this تعني العنصر الحالي الذي نحن فيه، في السطر 23 قمنا بحذف تأثير الكلاس على العنصر الحالي.</code></p>
<p>مصادر:</p>
<p><code></code><a href="http://api.jquery.com/hover/">jQuery hover</a></p>
<p><a href="http://www.quackit.com/html/html_table_generator.cfm">Table generator</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/0xsife.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/0xsife.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/0xsife.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/0xsife.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/0xsife.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/0xsife.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/0xsife.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/0xsife.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/0xsife.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/0xsife.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/0xsife.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/0xsife.wordpress.com/400/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/0xsife.wordpress.com/400/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/0xsife.wordpress.com/400/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=400&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://0xsife.wordpress.com/2011/04/16/%d8%aa%d8%ba%d9%8a%d9%8a%d8%b1-%d9%84%d9%88%d9%86-%d8%ae%d9%84%d9%81%d9%8a%d8%a9-%d8%a7%d9%84%d8%ae%d9%84%d9%8a%d8%a9-%d8%a7%d9%84%d8%ad%d8%a7%d9%84%d9%8a%d8%a9-%d9%81%d9%8a-%d8%ac%d8%af%d9%88%d9%84/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">سيف عبدالرزاق</media:title>
		</media:content>
	</item>
		<item>
		<title>باب الإنضمام للمدنة مفتوح</title>
		<link>http://0xsife.wordpress.com/2011/04/05/%d8%a8%d8%a7%d8%a8-%d8%a7%d9%84%d8%a5%d9%86%d8%b6%d9%85%d8%a7%d9%85-%d9%84%d9%84%d9%85%d8%af%d9%86%d8%a9-%d9%85%d9%81%d8%aa%d9%88%d8%ad/</link>
		<comments>http://0xsife.wordpress.com/2011/04/05/%d8%a8%d8%a7%d8%a8-%d8%a7%d9%84%d8%a5%d9%86%d8%b6%d9%85%d8%a7%d9%85-%d9%84%d9%84%d9%85%d8%af%d9%86%d8%a9-%d9%85%d9%81%d8%aa%d9%88%d8%ad/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 21:29:35 +0000</pubDate>
		<dc:creator>سيف عبدالرزاق</dc:creator>
				<category><![CDATA[عام]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Join]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[إنضمام]]></category>
		<category><![CDATA[شارك]]></category>

		<guid isPermaLink="false">http://0xsife.wordpress.com/?p=396</guid>
		<description><![CDATA[السلام عليكم و رحمة الله و بركاته بما أن مدونة سيف التقنية هي ملككم فقد إرتأيت أنه من الأفضل فتح باب المساهمة للجميع، الشروط بسيطة كالآتي: 1 _ الكتابة باللغة العربية الفصحى. 2 _ الكتابة بلغة بسيطة، تقنية حيث يمكن كتابة المصطلحات بالإنجليزية إن لم تتوفر لها مرادفات بالعربية. 3 _ المواضيع التي يمكن الكتابة [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=396&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>السلام عليكم و رحمة الله و بركاته<br />
بما أن مدونة سيف التقنية هي ملككم فقد إرتأيت أنه من الأفضل فتح باب المساهمة للجميع، الشروط بسيطة كالآتي:<br />
1 _ الكتابة باللغة العربية الفصحى.<br />
2 _ الكتابة بلغة بسيطة، تقنية حيث يمكن كتابة المصطلحات بالإنجليزية إن لم تتوفر لها مرادفات بالعربية.<br />
3 _ المواضيع التي يمكن الكتابة فيها:<br />
4 _ كل مايخص FreeBSD و أنظمة unix-like سواء أكان شرحا، خبرا أو حلا لمشكلة ما.<br />
5 _ الويب بما فيه PHP, JS. أو حتى jQuery.<br />
6 _ دروس في لغة سي.<br />
7 _ ما يفضل ألا تكتبه:<br />
<span id="more-396"></span> * كل شيء تم كتابته في أغلب المنتديات.<br />
* ما لايبت بأي صلة إلى ماوضع في البند الرابع بكل إختصار.<br />
8 _ ما يفضل أن تكتبه:<br />
* كل شيء جديد و حصري.<br />
* ما يبت بأي صلة إلى ماوضع في البند الرابع بكل إختصار.<br />
* لابأس بترجمة مقالة مفيدة مثل ما هو موضح في البند الرابع.<br />
9 _ شارك برنامجك أو أي قطعة برمجية قمت بكتابتها فأكيد نحن سنحتاجها.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/0xsife.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/0xsife.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/0xsife.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/0xsife.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/0xsife.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/0xsife.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/0xsife.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/0xsife.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/0xsife.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/0xsife.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/0xsife.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/0xsife.wordpress.com/396/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/0xsife.wordpress.com/396/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/0xsife.wordpress.com/396/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=396&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://0xsife.wordpress.com/2011/04/05/%d8%a8%d8%a7%d8%a8-%d8%a7%d9%84%d8%a5%d9%86%d8%b6%d9%85%d8%a7%d9%85-%d9%84%d9%84%d9%85%d8%af%d9%86%d8%a9-%d9%85%d9%81%d8%aa%d9%88%d8%ad/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">سيف عبدالرزاق</media:title>
		</media:content>
	</item>
		<item>
		<title>تنصيب VirtualBox في FreeBSD</title>
		<link>http://0xsife.wordpress.com/2011/04/04/installing-virtualboox4-on-freebsd/</link>
		<comments>http://0xsife.wordpress.com/2011/04/04/installing-virtualboox4-on-freebsd/#comments</comments>
		<pubDate>Mon, 04 Apr 2011 14:10:51 +0000</pubDate>
		<dc:creator>سيف عبدالرزاق</dc:creator>
				<category><![CDATA[أنظمة يونكس]]></category>
		<category><![CDATA[cvsup]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[FreeBSD 8]]></category>
		<category><![CDATA[VirtualBox]]></category>
		<category><![CDATA[VirtualBox 4]]></category>

		<guid isPermaLink="false">http://0xsife.wordpress.com/?p=381</guid>
		<description><![CDATA[السلام عليكم و رحمة الله و بركاته و تعالى منذ عدة أسابيع ظهر VirtualBox بإصدارته الرابعة حملت عدة تغييرات كان أهمها دعم usb في الأنظمة المستضافة (guest)، حاليا في ال ports الخاص ب FreeBSD توجد الإصدارة 3.2.12 لأن الإصدارة الرابعة مازالت لم تدخل مرحلة التجربة عندهم. لكي نستطيع تنصيب الإصدارة 4 علينا أن نقوم بتثبيتها [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=381&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 0.79in } 		PRE.cjk { font-family: "Bitstream Vera Sans", monospace } 		P { margin-bottom: 0.08in } --><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">السلام عليكم و رحمة الله و بركاته و تعالى</span></span></p>
<p><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">منذ عدة أسابيع ظهر </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">VirtualBox </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">بإصدارته الرابعة حملت عدة تغييرات كان أهمها دعم </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">usb </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">في الأنظمة المستضافة </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">(guest)</span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">، حاليا في ال </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">ports </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">الخاص ب </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">FreeBSD </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">توجد الإصدارة </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">3.2.12 </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">لأن الإصدارة الرابعة مازالت لم تدخل مرحلة التجربة عندهم</span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">.</span></span></p>
<p><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">لكي نستطيع تنصيب الإصدارة </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">4 </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">علينا أن نقوم بتثبيتها من </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">svn </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">كالآتي</span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">:</span></span></p>
<p><pre class="brush: bash;">svn http://svn.bluelife.at/index.cgi/blueports
cd  blueports/emulators/virtualbox-ose
make install clean</pre></p>
<p><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">virtualbox </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">يطلب تحديث الشفرة المصدرية للنواة لأن الوحدة الخاصة به </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">(kernel module) </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">تطلب ذلك، سنقوم بتحديثها بإستخدام </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">cvsup</span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">، أولا نقوم بإنشاء ملف فارغ يحتوي على الآتي</span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">:</span></span></p>
<p><span id="more-381"></span></p>
<p><pre class="brush: bash;">
*default host=cvsup5.de.FreeBSD.org
*default base=/var/db
*default prefix=/usr
*default release=cvs tag=RELENG_8
*default delete use-rel-suffix
*default compress
src-all
</pre></p>
<p><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">الآن نقوم بحفظ الملف بأي إسم </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">(</span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">في حالتي إستخدمت </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">) </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">و من سطر الأوامر</span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">:</span></span></p>
<p><pre class="brush: bash;">
cvsup stable-supfile
</pre></p>
<p><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">بعد إنتهاء تحديث الشيفرة نقوم الآن ببناء النواة</span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">:</span></span></p>
<p><pre class="brush: bash;">
cd /usr/src
make buildkernel
make installkernel
</pre></p>
<p><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">الآن نقوم ببناء الوحدات الخاصة ب </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">VirtualBox:</span></span></p>
<p><pre class="brush: bash;">
cd /path/to/blueports/emulators/virtualbox-ose-kmod
make install clean
</pre></p>
<p><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">path/to </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">تعني المسار الذي يحتوي المجلدات التي قمت بتحميلها بإستخدام </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">svn.</span></span> <span style="font-family:Arabic Transparent;"><span style="font-size:medium;">الآن لتفعيل ال </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">usb </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">في الأنظمة الضيف علينا أولا تعطي صلاحية القراءة و الكتابة للمجموعة </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">operator </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">لأجهزة </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">usb </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">المربوطة بنظامنا كالآتي</span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">:</span></span></p>
<p><pre class="brush: bash;">
ee /etc/devfs.rules
[localrules=10]
add path 'usb/*' mode 0660 group operator
</pre></p>
<p><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">الآن علينا أن نضيف إسم حسابنا إلى المجموعة </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">operator </span></span><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">كونهم يملكون الصلاحيات الكافية على أجهزة ال </span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">usb:</span></span></p>
<p><pre class="brush: bash;">
pw groupmod -n operator -m SIFE
</pre></p>
<p><!-- 		@page { margin: 0.79in } 		PRE.cjk { font-family: "Bitstream Vera Sans", monospace } 		P { margin-bottom: 0.08in } --><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">لجعل هذه الإعدادات تنفذ عند كل بداية تشغيل للنظام نضيف الآتي إلى</span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">:</span></span></p>
<p><pre class="brush: bash;">
echo 'devfs_system_ruleset=&quot;system&quot;' &gt;&gt; /etc/rc.conf
echo 'vbox_load=”YES”' &gt;&gt; /boot/loader.conf
</pre></p>
<p><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">إن كنت تريد الوصول إلى قارئ الأقراص من النظام الضيف عدل الآتي</span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">:<br />
</span></span></p>
<p><pre class="brush: bash;">
ee /etc/devfs.rules
add path 'acd*' mode 0660 group operator
add path 'cd*' mode 0660 group operator
add path 'usb/*' mode 0660 group operator
</pre><br />
و<br />
<pre class="brush: bash;">
ee /etc/devfs.conf

link acd0 cd0
own acd* SIFE:wheel
perm acd* 0660
own cd* SIFE:wheel
perm cd* 0660
perm xpt* 0660
perm pass* 0660
</pre><br />
أخيرا:<br />
<pre class="brush: bash;">
echo 'atapicam_load=&quot;YES&quot;' &gt;&gt; /boot/loader.conf
</pre></p>
<p><span style="font-family:Arabic Transparent;"><span style="font-size:medium;">الآن قم بإعادة تشغيل نظامك و ستجد كل شيء إن شاء الله يعمل</span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:medium;">.</span></span> </p>
<p><span style="font-family:Arabic Transparent;"><span style="font-size:large;"><strong>مصادر</strong></span></span><span style="font-family:Times New Roman,serif;"><span style="font-size:large;"><strong>:</strong></span></span></p>
<p><!-- 		@page { margin: 0.79in } 		PRE.cjk { font-family: "Bitstream Vera Sans", monospace } 		P { margin-bottom: 0.08in } 		A:link { so-language: zxx } --><br />
<span style="font-family:Times New Roman,serif;"><span style="font-size:medium;"><strong><a href="http://wiki.freebsd.org/VirtualBox">http://wiki.freebsd.org/VirtualBox</a></strong></span></span><br />
<span style="font-family:Times New Roman,serif;"><span style="font-size:medium;"><strong><a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html">http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html</a></strong></span></span><br />
<span style="font-family:Times New Roman,serif;"><span style="font-size:medium;"><strong><a href="http://www.freebsd.org/doc/handbook/kernelconfig-building.html">http://www.freebsd.org/doc/handbook/kernelconfig-building.html</a></strong></span></span><br />
<span style="font-family:Times New Roman,serif;"><span style="font-size:medium;"><strong><a href="http://artis.imag.fr/%7EXavier.Decoret/resources/svn/index.html">http://artis.imag.fr/~Xavier.Decoret/resources/svn/index.html</a></strong></span></span></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/0xsife.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/0xsife.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/0xsife.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/0xsife.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/0xsife.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/0xsife.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/0xsife.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/0xsife.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/0xsife.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/0xsife.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/0xsife.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/0xsife.wordpress.com/381/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/0xsife.wordpress.com/381/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/0xsife.wordpress.com/381/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=381&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://0xsife.wordpress.com/2011/04/04/installing-virtualboox4-on-freebsd/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">سيف عبدالرزاق</media:title>
		</media:content>
	</item>
		<item>
		<title>تغيير لون خلفية الحقل الفعال</title>
		<link>http://0xsife.wordpress.com/2011/01/22/change-background-color-active-field/</link>
		<comments>http://0xsife.wordpress.com/2011/01/22/change-background-color-active-field/#comments</comments>
		<pubDate>Sat, 22 Jan 2011 13:09:41 +0000</pubDate>
		<dc:creator>سيف عبدالرزاق</dc:creator>
				<category><![CDATA[برمجة]]></category>
		<category><![CDATA[Background]]></category>
		<category><![CDATA[Color]]></category>
		<category><![CDATA[Field]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JS]]></category>

		<guid isPermaLink="false">http://0xsife.wordpress.com/?p=369</guid>
		<description><![CDATA[السلام عليكم و رحمة الله و بركاته أحيانا عندما يملئ المستخدم نموذج ثم يتوقف قليلا قد ينسى اين كان أقصد هنا في أي حقل (input text)، هنا لنساعده قليلا نقوم بتغيير لون الخلفية للحقل الذي يكون فيه، حتى إذا نسى نفسه فإنه سيلاحظ اللون المتغير لذاك الحقل عن أخواته. الدلة ActiveField تقوم أولا بالإحتفاظ باللون [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=369&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>السلام عليكم و رحمة الله و بركاته<br />
أحيانا عندما يملئ المستخدم نموذج ثم يتوقف قليلا قد ينسى اين كان <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  أقصد هنا في أي حقل (input text)، هنا لنساعده قليلا نقوم بتغيير لون الخلفية للحقل الذي يكون فيه، حتى إذا نسى نفسه فإنه سيلاحظ اللون المتغير لذاك الحقل عن أخواته.<br />
الدلة ActiveField تقوم أولا بالإحتفاظ باللون الحالي للخلفية بعدها تغير لون الخلفية أثناء الحدث onfocus، أما الدالة ResetColor فهي ترجع اللون الأصلي للحقل عند الحدث onblur، يعني هذا ليس بشيء كبير.</p>
<p><span id="more-369"></span></p>
<p><pre class="brush: jscript;">
&lt;html&gt;
&lt;head&gt;

  &lt;script type=&quot;text/javascript&quot;&gt;

   var BGc;

   function ActiveField(field)
    {
         if(navigator.appName == &quot;Microsoft Internet Explorer&quot;)
          BGc = x.currentStyle;
         else
         // Other surfer's, must be compatible, I tested only in FireFox 3.6
          BGc = window.getComputedStyle(field,null).getPropertyValue(&quot;backgroundcolor&quot;);
     field.style.background = '#228B22';
    }
   function ResetColor(field)
    {
         field.style.background = BGc;
        }
  &lt;/script&gt;

  &lt;style type=&quot;text/css&quot;&gt;
   input.text
    {
     background-color: 000000;
     color:#FFFFFF;
    }
  &lt;/style&gt;

&lt;/head&gt;
&lt;body&gt;

&lt;form method=&quot;post&quot; name=&quot;form1&quot; action=&quot;&quot;&gt;
  &lt;fieldset&gt;
    &lt;label&gt;Password:&lt;/label&gt;
    &lt;input type=&quot;password&quot; name=&quot;password&quot; id=&quot;password&quot; class=&quot;text&quot; size=&quot;32&quot; onfocus=&quot;ActiveField(password)&quot; onblur=&quot;ResetColor(password)&quot;/&gt;&lt;br&gt;
    &lt;label&gt;Re-Enter Password:&lt;/label&gt;
    &lt;input type=&quot;password&quot; name=&quot;repassword&quot; id=&quot;repassword&quot; size=&quot;32&quot; onfocus=&quot;ActiveField(repassword)&quot; onblur=&quot;ResetColor(repassword)&quot; /&gt;&lt;br&gt;
    &lt;input type=&quot;submit&quot; value=&quot;Submit&quot; id=&quot;submit&quot; &gt;
  &lt;/fieldset&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;

</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/0xsife.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/0xsife.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/0xsife.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/0xsife.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/0xsife.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/0xsife.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/0xsife.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/0xsife.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/0xsife.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/0xsife.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/0xsife.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/0xsife.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/0xsife.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/0xsife.wordpress.com/369/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=369&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://0xsife.wordpress.com/2011/01/22/change-background-color-active-field/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">سيف عبدالرزاق</media:title>
		</media:content>
	</item>
		<item>
		<title>مقدمة إلى PDO</title>
		<link>http://0xsife.wordpress.com/2011/01/14/introduction-to-pdo/</link>
		<comments>http://0xsife.wordpress.com/2011/01/14/introduction-to-pdo/#comments</comments>
		<pubDate>Fri, 14 Jan 2011 10:55:19 +0000</pubDate>
		<dc:creator>سيف عبدالرزاق</dc:creator>
				<category><![CDATA[برمجة]]></category>
		<category><![CDATA[OOP 5]]></category>
		<category><![CDATA[PDO]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP PDO]]></category>

		<guid isPermaLink="false">http://0xsife.wordpress.com/?p=360</guid>
		<description><![CDATA[السلام عليكم و رحمة الله و بركاته سيكون درس اليوم إن شاء الله عن إستخدام PDO. محتويات الدرس: مقدمة لماذا PDO مميزات PDO القواعد البيانات المدعومة تنصيب PDO الإتصال بقاعدة البيانات معالجة الإستثناءات تحديد الخيارات لإتصال إستخدام bindValue و تحضير الإستعلام تنفيذ الإستعلام بإستخدام execute الفرق بين execute، exec و query إستخدام fetch، fetchAll قطع [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=360&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>السلام عليكم و رحمة الله و بركاته<br />
سيكون درس اليوم إن شاء الله عن إستخدام PDO.<br />
<strong>محتويات الدرس:</strong><br />
مقدمة<br />
لماذا PDO<br />
مميزات PDO<br />
القواعد البيانات المدعومة<br />
تنصيب PDO<br />
الإتصال بقاعدة البيانات<br />
معالجة الإستثناءات<br />
تحديد الخيارات لإتصال<br />
إستخدام bindValue و تحضير الإستعلام<br />
تنفيذ الإستعلام بإستخدام execute<br />
الفرق بين execute، exec و query<br />
إستخدام fetch، fetchAll<br />
قطع الإتصال بقاعدة البيانات</p>
<p><span id="more-360"></span></p>
<p><strong>مقدمة:</strong> ماهو معروف في عالم قواعد البيانات أن MySQL هو الرائج في هذا المجال مما جعل أغلب المبرمجين يتبنونه في تطبيقاتهم، حتى أنك لو فتحت مصدر سكريبت ما سترى mysql_* منتشرة في كل مكان، ماذا لو كان من سيستخدم السكربت يستعمل محرك قواعد بيانات غير MySQL، هذا بالتأكيد سيتطلب إعادة كتابة أجزاء كبيرة من السكريبت، هنا ظهرت بعض الكائنات بال PHP تدعم أكثر من محرك قواعد بيانات و توفر واجهة دوال محمولة، يمكنك إستخدامها مع أي محرك مدعوم من طرف الكائن، كمثال على ذلك ADOdb و PDO.<br />
<strong>لماذا PDO:</strong><br />
PDO أصبحت الكائن أكثر إستعمالا حاليا لأنها الأحدث، و دعم لقواعد بيانات كبيرة مع كثرة الإختيارات، لا ننسى قابيلة إضافة قواعد من طرف المستخدم في حال كنت مطور.<br />
<strong>مميزات PDO:</strong><br />
_ دعم لعدد قواعد بيانات كبيرة.<br />
_ إستخدام OOP.<br />
_ قابلية الإضافة مما يتيح دعم نوع جديد من القواعد البيانات.<br />
_ نفس الدوال تقريبا لجميع قواعد البيانات، مما يكسب سكربتك تعدد القواعد البيانات(cross databases).<br />
_ تعدد الخيارات على حسب قاعدة البيانات.<br />
_ حماية من SQL injection إلى درجة ما.<br />
<strong>القواعد البيانات المدعومة:</strong><br />
حاليا القواعد المدعومة هي:<br />
FreeTDS / Microsoft SQL Server / Sybase<br />
Firebird/Interbase 6<br />
IBM DB2<br />
IBM Informix Dynamic Server<br />
MySQL 3.x/4.x/5.x<br />
Oracle Call Interface<br />
ODBC v3 (IBM DB2, unixODBC and win32 ODBC)<br />
PostgreSQL<br />
4D<br />
SQLite 3 and SQLite 2<br />
<strong>تنصيب PDO:</strong><br />
بالنسبة لأنظمة unix-like فإن تنصيبها يأتي عند تنصيب PHP كالآتي:</p>
<p><pre class="brush: bash;">
tar -xjf php-5.3.4.tar.bz2
cd php-5.3.4
./configure --with-pdo-mysql=shared –with-pdo-pgsql=shared
</pre></p>
<p>في حالتي هذه قمت بدعم MySQL و PostgreSQL.<br />
بالنسبة لمستخدمي أنظمة Windows فإنه يتوجب التعديل على الملف php.ini و تفعيل PDP و القواعد البيانات التي نريد إستخدامها بحذف الفاصلة المنقوطة قبل كل إضافة في قسم extension كالآتي:</p>
<p><pre class="brush: bash;">
extension=php_pdo.so
extension=php_pdo_pgsql.so
extension=php_pdo_mysql.so
;extension=php_pdo_sqlite.so
</pre></p>
<p>بعدها نعيد تشغيل السيرفر.<br />
<strong>الإتصال بقاعدة البيانات:</strong><br />
كما قلنا سابقا أن PDO تستخدم OOP، لهذا فإن عند إستخدامها في PHP علينا أولا إستدعاء الكائن PDO كالآتي:</p>
<p><pre class="brush: php;">
&lt;?php
$host = &quot;localhost&quot;;
$db = &quot;test&quot;;
$user = &quot;dev&quot;;
$pass = &quot;pass&quot;;
$db = new PDO(&quot;mysql:host=$host;dbname=$db&quot;, $user, $pass);
?&gt;
</pre></p>
<p>عند إستدعاء الكائن فإنه يقبل 3 وسائط و 4 إختياري، الوسيط الأول نحدد فيه نوع قاعدة البيانات التي نريد إستخدامها، في حالتنا هذه كانت MySQL، مع عنوان السيرفر الذي يحتوي على قاعدة البيانات و لا ننسى إسم قاعدة البيانات التي نريد إستخدامها.<br />
الوسيط الثاني يكون إسم المستخدم لقاعدة البيانات المستعملة، و الوسيط كلمة السر للمستخدم، أما الوسيط الرابع فهو مصفوفة تحتوي مجموعة من الخيارات التي نريد تطبيقها على إتصال ما.<br />
<strong>معالجة الإستثناءات:</strong><br />
في حالة عدم نجاح الإتصال بقاعدة بيانات، سيكون من الجيد معرفة السبب، الكود سيكون كالآتي:</p>
<p><pre class="brush: php;">
&lt;?php
$host = &quot;localhost&quot;;
$db = &quot;test&quot;;
$user = &quot;dev&quot;;
$pass = &quot;pass&quot;;
 try
  {
   $db = new PDO(&quot;mysql:host=$host;dbname=$db&quot;, $user, $pass);
  }

 catch(PDOException $err)
  {
   die('Error : ' . $err-&gt;getMessage());
  }
?&gt;
</pre></p>
<p>في السطر 8 سنقوم بمحاولة الإتصال داخل الحاجز try، في حالة خطأ ما ستلتطقه PDOException في المتغير err$، بعدها نقوم بإنهاء عمل السكربت في السطر 13 و إظهار رسالة الخطأ بإستخدام ال method getMessage.<br />
<strong>تحديد الخيارات لإتصال:</strong><br />
تتيح لك ال method setAttribute تحديد خيارات على مقبض إتصال، بعض الخيارات تكون متاحة في كل محركات قواعد البيانات المدعومة و بعضها الآخر يكون خاص فقط ببعض المحركات.<br />
مثلا نريد أن نحدد طريقة تتبع الأخطاء بإستخدام Exceptions، بهذا سيكون إستخدام setAttribute كالآتي:</p>
<p><pre class="brush: php;">
&lt;?php
$host = &quot;localhost&quot;;
$db = &quot;test&quot;;
$user = &quot;dev&quot;;
$pass = &quot;pass&quot;;
 try
  {
   $db = new PDO(&quot;mysql:host=$host;dbname=$db&quot;, $user, $pass);
   $db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  }
 catch(Exception $err)
  {
   die('Error : ' . $err-&gt;getMessage());
  }
?&gt;
</pre></p>
<p>في السطر التاسع، getAttribute تأخذ وسيطين، الأول يكون نوع الخيار و الثاني قيمة الإختيار.<br />
<strong>إستخدام bindValue و تحضير الإستعلام:</strong><br />
توفر PDO دالة ممتازة إسمها ()prepare، مهمتها توفير لك إستعلام مترجم تقوم بالإحتفاظ به ايضا في حالة إستخدمته مرة أخرى، مما يوفر لك هذا وقتا، و لن يبقى سوى الإرسال إلى السيرفر.<br />
BindValue مهمتها توفير لك متغيرات داخل إستعلامك، مثال على ما سبق:</p>
<p><pre class="brush: php;">
&lt;?php
$host = &quot;localhost&quot;;
$db = &quot;test&quot;;
$user = &quot;dev&quot;;
$pass = &quot;pass&quot;;
 try
  {
   $db = new PDO(&quot;mysql:host=$host;dbname=$db&quot;, $user, $pass);
   $db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  }
 catch(Exception $err)
  {
   die('Error : ' . $err-&gt;getMessage());
  }
$uid = $_GET['user'];
$tid = $_GET['travel'];
$db-&gt;prepare(&quot;SELECT * FROM Orders where id_travel =:tid and id_user =:uid&quot;);
$db-&gt;bindValue(':uid', (int)$uid, PDO::PARAM_INT);
$db-&gt;bindValue(':tid', (int)$tid, PDO::PARAM_INT);
?&gt;
</pre></p>
<p>نقوم أولا بإستقبال رقم المستخدم و رقم رحلته مثلا من نموذج ملئ الرحلة، بعدها في السطرين 18 و 19 نقوم بإستخدام bindValue ال تي تساعدنا بتضمين متغيراتنا داخل ال method prepare، الفائدة الجلية هنا سيكون لك إستعلام محضر سابقا في حالة إستخدامه لاحقا، و الفائدة الأخرى أننا سنتجنب مشكل ال SQL injection.<br />
BindValue عادة تأخذ 3 وسائط، الأول يكون بمثابة متغير نستخدمه داخل ال method prepare، هذا المتغير يكون داخل &#8221; أو &#8216; و يبتدأ ب نقطتين مزدوجتين.<br />
الوسيط الثاني يكون القيمة التي سنضمنها للمتغير الخاص ب ال method prepare، الوسيط الأخير نحدد فيه نوع المتغير هل هو عدد أم حروف (PDO::PARAM_STR)، الوسيط الرابع في حال إستخدمناه يكون حجم المتغير في حالة كان من نوع PDO::PARAM_STR.<br />
<strong>تنفيذ الإستعلام بإستخدام execute:</strong><br />
آخر شيء بقي هو تنفيذ الإستعلام:</p>
<p><pre class="brush: php;">
&lt;?php
$host = &quot;localhost&quot;;
$db = &quot;test&quot;;
$user = &quot;dev&quot;;
$pass = &quot;pass&quot;;
 try
  {
   $db = new PDO(&quot;mysql:host=$host;dbname=$db&quot;, $user, $pass);
   $db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  }
 catch(Exception $err)
  {
   die('Error : ' . $err-&gt;getMessage());
  }
$uid = $_GET['user'];
$tid = $_GET['travel'];
$db-&gt;prepare(&quot;SELECT * FROM Orders where id_travel =:tid and id_user =:uid&quot;);
$db-&gt;bindValue(':uid', (int)$uid, PDO::PARAM_INT);
$db-&gt;bindValue(':tid', (int)$tid, PDO::PARAM_INT);
$db-&gt;execute();
echo &quot;Number of row returned are: &quot;.$db-&gt;rowCount();
?&gt;
</pre></p>
<p>السطر 21 أضفناه لكي نرى عدد الحقول التي تم إعادتها من الإستعلام.<br />
<strong>الفرق بين execute، exec و query:</strong><br />
PDO توفر 3 طرق لتنفيذ إستعلام SQL، كل واحدة لها محل من الإعراب أقصد في الإستخدام كالآتي:<br />
execute: تقوم بتنفيذ إستعلام SQL بإستخدام ال method prepare، هذا يوفر حماية من SQL injection مع الإحتفاظ بالإستعلام من طرف PDO في حالة إستخدامه لاحقا.<br />
في حالة فشلها تعود لنا ب FALSE أما في النجاح تعيد TRUE، إن أردنا أن نعرف عدد الحقول نستخدم ال() method rowCount.<br />
exec: تنفذ إستعلام SQL مباشرة من دون الإعتماد على ال method prepare، خطر الإصابة ب ال SQL injection كبير ما لم يقم المطور بتنقيح مدخلات المستخدم.<br />
تعيد FALSE في حالة الفشل، 0 في حالة لم يكن هناك أي حقل معاد أو عدد الحقول المعادة في حال وجدت.<br />
query: نفس سابقتها exec غير ان القيمة المعادة هنا تكون عبارة عن كائن يحتوي على أسماء الحقول المعادة.<br />
<em>مثال:</em></p>
<p><pre class="brush: php;">
&lt;?php
$host = &quot;localhost&quot;;
$db = &quot;test&quot;;
$user = &quot;dev&quot;;
$pass = &quot;pass&quot;;
 try
  {
   $db = new PDO(&quot;mysql:host=$host;dbname=$db&quot;, $user, $pass);
   $db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  }
 catch(Exception $err)
  {
   die('Error : ' . $err-&gt;getMessage());
  }
$uid = $_GET['user'];
$tid = $_GET['travel'];
foreach($db-&gt;query(&quot;SELECT FROM Orders&quot;) as $row)
 {
  $row['id_user'].&quot;\t&quot;;
  $row['id_travel'].&quot;\t&quot;;
  $row['name_travel'].&quot;\n&quot;;
 }
?&gt;
</pre></p>
<p>يمكنك أن تدعو ال method query بـ mysql_fetch_row.<br />
<strong>إستخدام fetch، fetchAll:</strong><br />
توفر PDO عدة أشكال لإعادة البيانات من قاعدة البيانات، مما يتيح لك الإختيار في كيفية الوصول إلى حقول القاعدة، المثال الآتي يوضح المقصود:</p>
<p><pre class="brush: php;">
&lt;?php
$host = &quot;localhost&quot;;
$db = &quot;test&quot;;
$user = &quot;dev&quot;;
$pass = &quot;pass&quot;;
 try
  {
   $db = new PDO(&quot;mysql:host=$host;dbname=$db&quot;, $user, $pass);
   $db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  }
 catch(Exception $err)
  {
   die('Error : ' . $err-&gt;getMessage());
  }
$uid = $_GET['user'];
$tid = $_GET['travel'];
$db-&gt;prepare(&quot;SELECT * FROM Orders where id_travel =:tid and id_user =:uid&quot;);
$db-&gt;bindValue(':uid', (int)$uid, PDO::PARAM_INT);
$db-&gt;bindValue(':tid', (int)$tid, PDO::PARAM_INT);
$db-&gt;execute();
$row = $db-&gt;fetch(PDO::FETCH_ASSOC);
echo $row['user'].&quot;\t&quot;.$row['email'].&quot;\t&quot;.$row['address'].&quot;\n&quot;;
?&gt;
</pre></p>
<p>بالنظر إلى السطر 21 نرى ال method fetch، هي تأخذ 3 وسائط لكن عادة نحتاج الوسيط الأول فقط الذي يكون طريقة إستخراج البيانات من القاعدة، هل ستكون على شكل مصفوفة تكون مفهرسة بأسماء الحقول في الجدول، أم مفهرسة على شكل أرقام إبتداءا من 0، هذه بعض القيم من الممكن أن تأخذها ال method fetch:<br />
PDO::FETCH_ASSOC: إعادة نتيجة الإستعلام على شكل مصفوفة مفهرسة بأسماء الحقول الموجودة.<br />
PDO::FETCH_NUM: إعادة نتيجة الإستعلام على شكل مصفوفة مفهرسة بأرقام إبتداءا من 0.<br />
PDO::FETCH_BOTH: إعادة نتيجة الإستعلام على شكل مصفوفة مفهرسة بأسماء الحقول و أرقام.<br />
توجد أشكال أخرى مذكورة في php manual يمكنكم الإطلاع عليها.<br />
ال method fetchAll مهمتها إرجاع جميع القيم الموجودة في حقل ما على شكل مصفوفة، الوسيط الأول نفس سابقتها ال method fetch، أما الوسيطين الآخرين فعادة لانحتاجهما.</p>
<p><pre class="brush: php;">
&lt;?php
$host = &quot;localhost&quot;;
$db = &quot;test&quot;;
$user = &quot;dev&quot;;
$pass = &quot;pass&quot;;
 try
  {
   $db = new PDO(&quot;mysql:host=$host;dbname=$db&quot;, $user, $pass);
   $db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  }
 catch(Exception $err)
  {
   die('Error : ' . $err-&gt;getMessage());
  }
$uid = $_GET['user'];
$tid = $_GET['travel'];
$db-&gt;prepare(&quot;SELECT * FROM Orders where id_travel =:tid and id_user =:uid&quot;);
$db-&gt;bindValue(':uid', (int)$uid, PDO::PARAM_INT);
$db-&gt;bindValue(':tid', (int)$tid, PDO::PARAM_INT);
$db-&gt;execute();
$row = $db-&gt;fetchAll(PDO::FETCH_ASSOC);
foreach($row as $res)
 foreach($res as $result)
   echo $result['user'].&quot;\t&quot;.$result['email'].&quot;\t&quot;.$result['address'].&quot;\n&quot;;
?&gt;
</pre></p>
<p>ال method fetchAll تعيد مصفوفة ذات بعدين، البعد الأول يكون مفهرس بشكل أرقام و البعد الثاني يكون على حسب ما تم تحديده في الوسيط الأول لها، حيث هذا البعد على قيمة حقل أو حقول من إستعلام تم تنفيذه.<br />
في السطر 22 نقوم كل مرة بإستخراج عنصر الذي هو في الحقيقة مؤشر لمصفوفة تحتوي على القيم المعادة، بعدها في السطر 23 نقوم بإستخراج القيم من المصفوفة التي تحتوي على القيم(أي أننا في البعد الثاني للمصفوفة)، أخيرا في السطر 23 نقوم بطباعة القيم.<br />
<strong>قطع الإتصال بقاعدة البيانات:</strong><br />
آخر شيء يبقى لنا هو قطع الإتصال مع قاعدة بينات قمنا بالإتصال معها:</p>
<p><pre class="brush: php;">
&lt;?php
$host = &quot;localhost&quot;;
$db = &quot;test&quot;;
$user = &quot;dev&quot;;
$pass = &quot;pass&quot;;
 try
  {
   $db = new PDO(&quot;mysql:host=$host;dbname=$db&quot;, $user, $pass);
   $db-&gt;setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  }
 catch(Exception $err)
  {
   die('Error : ' . $err-&gt;getMessage());
  }
$db = NULL;
?&gt;
</pre></p>
<p>بكل بسطاة نقوم بتضمين NULL إلى المتغير الذي كان يحمل حدث إنشاء الإتصال.<br />
<strong>ملاحظة:</strong><br />
هذه المقالة تحتاج إلى تعديل و تنقيح في اللغة لمن يريد التعديل فهو مرحب به.<br />
<strong>مراجع:</strong><br />
<a href="http://www.php.net/manual/en/book.pdo.php">http://www.php.net/manual/en/book.pdo.php</a><br />
<a href="http://www.phpeveryday.com/articles/PDO-Error-Handling-P544.html">http://www.phpeveryday.com/articles/PDO-Error-Handling-P544.html</a><br />
<a href="http://codeassembly.com/Are-you-still-worried-about-sql-injection-?/">http://codeassembly.com/Are-you-still-worried-about-sql-injection-?/</a><br />
<a href="http://stackoverflow.com/questions/134099/are-pdo-prepared-statements-sufficient-to-prevent-sql-injection">http://stackoverflow.com/questions/134099/are-pdo-prepared-statements-sufficient-to-prevent-sql-injection</a><br />
<a href="http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/">http://net.tutsplus.com/tutorials/php/why-you-should-be-using-phps-pdo-for-database-access/</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/0xsife.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/0xsife.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/0xsife.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/0xsife.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/0xsife.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/0xsife.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/0xsife.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/0xsife.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/0xsife.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/0xsife.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/0xsife.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/0xsife.wordpress.com/360/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/0xsife.wordpress.com/360/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/0xsife.wordpress.com/360/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=360&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://0xsife.wordpress.com/2011/01/14/introduction-to-pdo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">سيف عبدالرزاق</media:title>
		</media:content>
	</item>
		<item>
		<title>التحقق من تطابق حقلين و قوة كلمة السر بإستخدام الجافا سكربت</title>
		<link>http://0xsife.wordpress.com/2011/01/11/check-two-field-match-and-password-strenght/</link>
		<comments>http://0xsife.wordpress.com/2011/01/11/check-two-field-match-and-password-strenght/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 22:42:48 +0000</pubDate>
		<dc:creator>سيف عبدالرزاق</dc:creator>
				<category><![CDATA[برمجة]]></category>
		<category><![CDATA[Field match]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[Password]]></category>
		<category><![CDATA[Password Match]]></category>
		<category><![CDATA[Strenght]]></category>

		<guid isPermaLink="false">http://0xsife.wordpress.com/?p=353</guid>
		<description><![CDATA[السلام عليكم و رحمة الله و بركاته دالتان واحدة للتحقق من تطابق كلمة السر مثلا و الأخرى لتنبيهك لمدى قوة كلمة السر لديك. مثال:<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=353&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>السلام عليكم و رحمة الله و بركاته<br />
دالتان واحدة للتحقق من تطابق كلمة السر مثلا و الأخرى لتنبيهك لمدى قوة كلمة السر لديك.</p>
<p><span id="more-353"></span></p>
<p><pre class="brush: jscript;">
   function PasswordMatch(pass, repass, field)
    {
     if(pass.value != repass.value)
      field.innerHTML = 'Password does not match!';
         else
          field.innerHTML = '';
    }

    function PasswordStrength(password, attention)
    {
	 var passlen = password.value.length;
	 var level = new Array();
	 level[0] = &quot;Very weak&quot;;
	 level[1] = &quot;weak&quot;;
	 level[2] = &quot;Medium&quot;;
	 level[3] = &quot;Strong&quot;;
	 level[4] = &quot;Very strong&quot;;
	 if((document.getElementById(&quot;password&quot;).value.match(/\d+/)) || (document.getElementById(&quot;password&quot;).value.match(/[a-zA-Z]+/) &amp;&amp; passlen &lt; 9))
	  attention.innerHTML = level[0];
	 if(document.getElementById(&quot;password&quot;).value.match(/[a-zA-Z]+/))
	  attention.innerHTML = level[1];
	 if(document.getElementById(&quot;password&quot;).value.match(/[a-zA-Z]+/) &amp;&amp; passlen &gt; 12)
	  attention.innerHTML = level[2];
	 if((document.getElementById(&quot;password&quot;).value.match(/.[!,@,#,$,%,^,&amp;,*,?,_,~,-,(,),+,[,],|,=,\/,.,;,{,},&lt;,&gt;,\',\&quot;,,]+/))
	 || (document.getElementById(&quot;password&quot;).value.match(/[a-zA-Z]+[0-9]+/) &amp;&amp; passlen &gt; 9)
	 || (document.getElementById(&quot;password&quot;).value.match(/.[!,@,#,$,%,^,&amp;,*,?,_,~,-,(,),+,[,],|,=,\/,.,;,{,},&lt;,&gt;,\',\&quot;,,]+[0-9]+[a-zA-Z]+/)))
	  attention.innerHTML = level[3];
	 if(document.getElementById(&quot;password&quot;).value.match(/.[!,@,#,$,%,^,&amp;,*,?,_,~,-,(,),+,[,],|,=,\/,.,;,{,},&lt;,&gt;,\',\&quot;,,]+[a-zA-Z]+[0-9]+/) &amp;&amp; passlen &gt; 11)
	  attention.innerHTML = level[4];
    }
</pre></p>
<p><strong>مثال:</strong></p>
<p><pre class="brush: jscript;">
&lt;html&gt;
&lt;head&gt;
  &lt;script type=&quot;text/javascript&quot;&gt;
   function PasswordMatch(pass, repass, field)
    {
     if(pass.value != repass.value)
      field.innerHTML = 'Password does not match!';
         else
          field.innerHTML = '';
    }

     function PasswordStrength(password, attention)
    {
	 var passlen = password.value.length;
	 var level = new Array();
	 level[0] = &quot;Very weak&quot;;
	 level[1] = &quot;weak&quot;;
	 level[2] = &quot;Medium&quot;;
	 level[3] = &quot;Strong&quot;;
	 level[4] = &quot;Very strong&quot;;
	 if((document.getElementById(&quot;password&quot;).value.match(/\d+/)) || (document.getElementById(&quot;password&quot;).value.match(/[a-zA-Z]+/) &amp;&amp; passlen &lt; 9))
	  attention.innerHTML = level[0];
	 if(document.getElementById(&quot;password&quot;).value.match(/[a-zA-Z]+/))
	  attention.innerHTML = level[1];
	 if(document.getElementById(&quot;password&quot;).value.match(/[a-zA-Z]+/) &amp;&amp; passlen &gt; 12)
	  attention.innerHTML = level[2];
	 if((document.getElementById(&quot;password&quot;).value.match(/.[!,@,#,$,%,^,&amp;,*,?,_,~,-,(,),+,[,],|,=,\/,.,;,{,},&lt;,&gt;,\',\&quot;,,]+/))
	 || (document.getElementById(&quot;password&quot;).value.match(/[a-zA-Z]+[0-9]+/) &amp;&amp; passlen &gt; 9)
	 || (document.getElementById(&quot;password&quot;).value.match(/.[!,@,#,$,%,^,&amp;,*,?,_,~,-,(,),+,[,],|,=,\/,.,;,{,},&lt;,&gt;,\',\&quot;,,]+[0-9]+[a-zA-Z]+/)))
	  attention.innerHTML = level[3];
	 if(document.getElementById(&quot;password&quot;).value.match(/.[!,@,#,$,%,^,&amp;,*,?,_,~,-,(,),+,[,],|,=,\/,.,;,{,},&lt;,&gt;,\',\&quot;,,]+[a-zA-Z]+[0-9]+/) &amp;&amp; passlen &gt; 11)
	  attention.innerHTML = level[4];
    }
  &lt;/script&gt;
  &lt;style type=&quot;text/css&quot;&gt;
&lt;/style&gt;

&lt;/head&gt;
&lt;body&gt;
&lt;form method=&quot;post&quot; name=&quot;form1&quot; id=&quot;form-password&quot; action=&quot;&quot;&gt;
  &lt;fieldset&gt;
    &lt;label&gt;Password:&lt;/label&gt;
    &lt;input type=&quot;password&quot; name=&quot;password&quot; id=&quot;password&quot; value=&quot;&quot; size=&quot;32&quot; onkeyup=&quot;PasswordStrength(password, attention);PasswordMatch(password, repassword, error)&quot;/&gt;&lt;span id=&quot;attention&quot;&gt;&lt;/span&gt;&lt;br&gt;
    &lt;label&gt;Re-Enter Password:&lt;/label&gt;
    &lt;input type=&quot;password&quot; name=&quot;repassword&quot; id=&quot;repassword&quot; size=&quot;32&quot; onkeyup=&quot;PasswordMatch(password, repassword, error)&quot;/&gt;&lt;span id=&quot;error&quot;&gt;&lt;/span&gt;
    &lt;br&gt;
    &lt;input type=&quot;submit&quot; value=&quot;Submit&quot; id=&quot;submit&quot; &gt;
  &lt;/fieldset&gt;
&lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/0xsife.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/0xsife.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/0xsife.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/0xsife.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/0xsife.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/0xsife.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/0xsife.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/0xsife.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/0xsife.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/0xsife.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/0xsife.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/0xsife.wordpress.com/353/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/0xsife.wordpress.com/353/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/0xsife.wordpress.com/353/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=353&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://0xsife.wordpress.com/2011/01/11/check-two-field-match-and-password-strenght/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">سيف عبدالرزاق</media:title>
		</media:content>
	</item>
		<item>
		<title>المدونة ضمن القائمة المرشحة لجائزة هديل</title>
		<link>http://0xsife.wordpress.com/2010/12/31/my-blog-in-the-list-of-nomination-of-hadil-award/</link>
		<comments>http://0xsife.wordpress.com/2010/12/31/my-blog-in-the-list-of-nomination-of-hadil-award/#comments</comments>
		<pubDate>Fri, 31 Dec 2010 13:24:20 +0000</pubDate>
		<dc:creator>سيف عبدالرزاق</dc:creator>
				<category><![CDATA[عام]]></category>
		<category><![CDATA[ترشيح ،جائزة هديل]]></category>

		<guid isPermaLink="false">http://0xsife.wordpress.com/?p=349</guid>
		<description><![CDATA[السلام عليكم و رحمة الله و بركاته كنت منذ مدة قد ترشحت في جائزة هديل العالمية للإعلام الجديد (لا أعرف إن كان إسما هذا أو عنوان ) لكن مع الوقت نسيت أني ترشحت فيها، اليوم و أنا أزور المجلة التقنية للأخ Djug لاحظت أنه يضع إعلان لترشيح المجلة فزرت الصفحة و وجدت نفسي أيضا (بإسم [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=349&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>السلام عليكم و رحمة الله و بركاته<br />
كنت منذ مدة قد ترشحت في <a href="http://www.hadeelprize.org">جائزة هديل العالمية للإعلام الجديد</a> (لا أعرف إن كان إسما هذا أو عنوان <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ) لكن مع الوقت نسيت أني ترشحت فيها، اليوم و أنا أزور <a href="http://www.it-scoop.com/">المجلة التقنية</a> للأخ Djug لاحظت أنه يضع إعلان لترشيح المجلة فزرت <a href="http://www.hadeelprize.org/?p=320">الصفحة</a> و وجدت نفسي أيضا (بإسم سيف التقنية)و الحمد لله.<br />
لاتنسوا أن ترشحوا مدونتكم المفضلة <img src='http://s0.wp.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  .</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/0xsife.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/0xsife.wordpress.com/349/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/0xsife.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/0xsife.wordpress.com/349/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/0xsife.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/0xsife.wordpress.com/349/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/0xsife.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/0xsife.wordpress.com/349/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/0xsife.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/0xsife.wordpress.com/349/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/0xsife.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/0xsife.wordpress.com/349/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/0xsife.wordpress.com/349/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/0xsife.wordpress.com/349/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=349&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://0xsife.wordpress.com/2010/12/31/my-blog-in-the-list-of-nomination-of-hadil-award/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">سيف عبدالرزاق</media:title>
		</media:content>
	</item>
		<item>
		<title>مشكلة metadata corrupt أثناء تحديث ال Ports</title>
		<link>http://0xsife.wordpress.com/2010/12/11/%d9%85%d8%b4%d9%83%d9%84%d8%a9-metadata-corrupt-%d8%a3%d8%ab%d9%86%d8%a7%d8%a1-%d8%aa%d8%ad%d8%af%d9%8a%d8%ab-%d8%a7%d9%84-ports/</link>
		<comments>http://0xsife.wordpress.com/2010/12/11/%d9%85%d8%b4%d9%83%d9%84%d8%a9-metadata-corrupt-%d8%a3%d8%ab%d9%86%d8%a7%d8%a1-%d8%aa%d8%ad%d8%af%d9%8a%d8%ab-%d8%a7%d9%84-ports/#comments</comments>
		<pubDate>Sat, 11 Dec 2010 11:16:30 +0000</pubDate>
		<dc:creator>سيف عبدالرزاق</dc:creator>
				<category><![CDATA[أنظمة يونكس]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[ports]]></category>
		<category><![CDATA[portsnap]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://0xsife.wordpress.com/?p=342</guid>
		<description><![CDATA[السلام عليكم و رحمة الله و بركاته أثناء قيامي بتحديث نظام ال POrts ظهرت لي هذه الرسالة: الظاهر أن الملفات الموجودة تحت var/db/portsnap/ أحدها معطوبة لذا قمت بالبحث و وجدت حلا في منتدى FreeBSD كالآتي: مصدر: http://forums.freebsd.org/showthread.php?t=901<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=342&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>السلام عليكم و رحمة الله و بركاته<br />
أثناء قيامي بتحديث نظام ال POrts ظهرت لي هذه الرسالة:</p>
<p><span id="more-342"></span></p>
<p><pre class="brush: bash;">#portsnap fetch update
Looking up portsnap.FreeBSD.org mirrors... 5 mirrors found.
Fetching snapshot tag from portsnap5.FreeBSD.org... done.
Fetching snapshot metadata... done.
Updating from Thu Nov 18 12:12:38 CET 2010 to Sat Dec 11 10:44:20 CET 2010.
Fetching 3 metadata patches. done.
Applying metadata patches... done.
Fetching 3 metadata files... gunzip: (stdin): unexpected end of file
metadata is corrupt.</pre></p>
<p>الظاهر أن الملفات الموجودة تحت var/db/portsnap/ أحدها معطوبة لذا قمت بالبحث و وجدت حلا في منتدى FreeBSD كالآتي:</p>
<p><pre class="brush: bash;">rm -Rf /var/db/portsnap/
mkdir /var/db/portsnap
portsnap fetch extract</pre></p>
<p><strong>مصدر:</strong><br />
<a href="http://forums.freebsd.org/showthread.php?t=901">http://forums.freebsd.org/showthread.php?t=901</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/0xsife.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/0xsife.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/0xsife.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/0xsife.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/0xsife.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/0xsife.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/0xsife.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/0xsife.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/0xsife.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/0xsife.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/0xsife.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/0xsife.wordpress.com/342/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/0xsife.wordpress.com/342/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/0xsife.wordpress.com/342/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=0xsife.wordpress.com&amp;blog=6531054&amp;post=342&amp;subd=0xsife&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://0xsife.wordpress.com/2010/12/11/%d9%85%d8%b4%d9%83%d9%84%d8%a9-metadata-corrupt-%d8%a3%d8%ab%d9%86%d8%a7%d8%a1-%d8%aa%d8%ad%d8%af%d9%8a%d8%ab-%d8%a7%d9%84-ports/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">سيف عبدالرزاق</media:title>
		</media:content>
	</item>
	</channel>
</rss>
