<?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>Pythonified Life</title>
	<atom:link href="https://ahmedyoussef.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://ahmedyoussef.wordpress.com</link>
	<description>Yet another weblog</description>
	<lastBuildDate>Thu, 22 Sep 2016 21:34:52 +0000</lastBuildDate>
	<language>ar</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<site xmlns="com-wordpress:feed-additions:1">2815336</site><cloud domain='ahmedyoussef.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s2.wp.com/i/webclip.png</url>
		<title>Pythonified Life</title>
		<link>https://ahmedyoussef.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://ahmedyoussef.wordpress.com/osd.xml" title="Pythonified Life" />
	<atom:link rel='hub' href='https://ahmedyoussef.wordpress.com/?pushpress=hub'/>
	<item>
		<title>كيف تبدأ في أستخدام i3</title>
		<link>https://ahmedyoussef.wordpress.com/2016/09/22/learn-i3/</link>
					<comments>https://ahmedyoussef.wordpress.com/2016/09/22/learn-i3/#comments</comments>
		
		<dc:creator><![CDATA[Ahmed Youssef]]></dc:creator>
		<pubDate>Thu, 22 Sep 2016 21:29:54 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://ahmedyoussef.wordpress.com/?p=819</guid>

					<description><![CDATA[ناس كتير عندي في الشغل بتحب تستخدم i3 وهو window manager نوعا ما أخف وبتكون more productive من خلاله هو tiling window manager بمعنى أن الشاشة بتتقسم في صورة tiles 🙂 التنصيب sudo apt-get install i3 اخرج من ال session اللي انت فيها وrelogin من خلال i3 (لاحظ مينفعش يكون في أكتر من window manager [&#8230;]]]></description>
										<content:encoded><![CDATA[<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">ناس كتير عندي في الشغل بتحب تستخدم </span></span>i3 <span style="font-family:DejaVu Sans;"><span lang="ar-EG">وهو </span></span>window manager <span style="font-family:DejaVu Sans;"><span lang="ar-EG">نوعا ما أخف وبتكون </span></span>more productive <span style="font-family:DejaVu Sans;"><span lang="ar-EG">من خلاله </span></span></p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">هو </span></span>tiling window manager <span style="font-family:DejaVu Sans;"><span lang="ar-EG">بمعنى أن الشاشة بتتقسم في صورة </span></span>tiles <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">التنصيب</span></span></p>
<p dir="rtl" align="right">sudo apt-get install i3</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">اخرج من ال </span></span>session <span style="font-family:DejaVu Sans;"><span lang="ar-EG">اللي انت فيها و</span></span>relogin <span style="font-family:DejaVu Sans;"><span lang="ar-EG">من خلال </span></span>i3 (<span style="font-family:DejaVu Sans;"><span lang="ar-EG">لاحظ مينفعش يكون في أكتر من </span></span>window manager <span style="font-family:DejaVu Sans;"><span lang="ar-EG">فعال في نفس الوقت</span></span>)</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">لاتتعجل </span></span>(<span style="font-family:DejaVu Sans;"><span lang="ar-EG">أقرأ للنهاية قبل أن تدخل في </span></span>i3 <span style="font-family:DejaVu Sans;"><span lang="ar-EG">ولاتعلم كيفية الخروج منه بعد</span></span>)</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">ستقوم بأختيار </span></span>MOD <span style="font-family:DejaVu Sans;"><span lang="ar-EG">لتستخدمه مع أوامر </span></span>i3 <span style="font-family:DejaVu Sans;"><span lang="ar-EG">وغالبا سيكون هو </span></span>Alt (<span style="font-family:DejaVu Sans;"><span lang="ar-EG">تأكد من أختيارك في أول مرة تدخل فيها إلى </span></span>i3)</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">يهمنا جدا ال </span></span>terminals <span style="font-family:DejaVu Sans;"><span lang="ar-EG">تستطيع فتح واحدة جديدة من خلال </span></span>MOD+Enter</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">قم بإنشاء عدة </span></span>terminals <span style="font-family:DejaVu Sans;"><span lang="ar-EG">بنفس الأمر </span></span>MOD + ENTER (<span style="font-family:DejaVu Sans;"><span lang="ar-EG">جميل ماتراه أليس كذلك؟</span></span>) <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">لغلق نافذة اضغط على </span></span>MOD + SHIFT + q</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">لعرض شاشة في ال </span></span>full screen <span style="font-family:DejaVu Sans;"><span lang="ar-EG">قم بضغط </span></span>MOD + f</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">تريد زيادة أو تصغير حجم الشاشة الظاهرة؟ تستطيع ذلك عبر </span></span>MOD + R <span style="font-family:DejaVu Sans;"><span lang="ar-EG">ثم يمين أو يسار </span></span></p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">افتراضيا يتم وضع النوافذ الجديدة بقسمة مساحة الشاشة بينهم ولكن تستطيع تغيير ذلك السلوك بأن تستخدم </span></span>tabs <span style="font-family:DejaVu Sans;"><span lang="ar-EG">عن طريق </span></span>MOD + w <span style="font-family:DejaVu Sans;"><span lang="ar-EG">او تضعهم في </span></span>stack <span style="font-family:DejaVu Sans;"><span lang="ar-EG">عن طريق </span></span>MOD + s</p>
<p dir="rtl" align="right"><a href="https://i3wm.org/docs/modes.png"><img src="https://i3wm.org/docs/modes.png" style="max-width:100%;" /></a></p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">تستطيع الأنتقال ل </span></span>workspace <span style="font-family:DejaVu Sans;"><span lang="ar-EG">عن طريق </span></span>MOD + 0-9</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">وتستطيع نقل نافذة إلى </span></span>workspace <span style="font-family:DejaVu Sans;"><span lang="ar-EG">عن طريق </span></span>MOD + shift + 0-9</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">كيف أفتح تطبيق؟ بكل بساطة تستطيع استخدام </span></span>launcher <span style="font-family:DejaVu Sans;"><span lang="ar-EG">وفي حالتنا هنا سيكون </span></span>dmenu <span style="font-family:DejaVu Sans;"><span lang="ar-EG">عن طريق </span></span>MOD + d</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">قمت بتعديل إعدادات </span></span>i3<span style="font-family:DejaVu Sans;"><span lang="ar-EG">؟ تستطيع اعلام </span></span>i3 <span style="font-family:DejaVu Sans;"><span lang="ar-EG">بذلك عبر </span></span>MOD + shift + c</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">إعادة تشغيل </span></span>i3? <span style="font-family:DejaVu Sans;"><span lang="ar-EG">وذلك عبر </span></span>MOD + shift + r</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">للخروج من </span></span>i3 <span style="font-family:DejaVu Sans;"><span lang="ar-EG">قم بالضغط على </span></span>MOD + shift + e</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">لإضافة </span></span>layout <span style="font-family:DejaVu Sans;"><span lang="ar-EG">والتبديل عبر </span></span>alt+shift <span style="font-family:DejaVu Sans;"><span lang="ar-EG">تستطيع إضافة التالي في ملف اعدادات </span></span>i3 <span style="font-family:DejaVu Sans;"><span lang="ar-EG">غالبا سيكون تحت المسار </span></span></p>
<p align="left">
<pre class="brush: plain; title: ; notranslate">~/.config/i3/config</pre>
<p align="left">
<pre class="brush: plain; title: ; notranslate">exec --no-startup-id &quot;setxkbmap -option grp:switch,grp:alt_shift_toggle us,ar&quot;</pre>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">لزيادة وخفض درجة الصوت </span></span></p>
<p align="left">
<pre class="brush: plain; title: ; notranslate">bindsym XF86AudioRaiseVolume exec amixer -q set Master 2dB+ unmute

&lt;p align=&quot;left&quot;&gt;bindsym XF86AudioLowerVolume exec amixer -q set Master 2dB- unmute&lt;/p&gt;
&lt;p align=&quot;left&quot;&gt;bindsym XF86AudioMute exec amixer -q set Master toggle</pre>
</p>
<p dir="rtl" align="right"><span style="font-family:DejaVu Sans;"><span lang="ar-EG">روابط مفيدة </span></span></p>
<p align="left"><a href="https://i3wm.org/">https://i3wm.org/</a></p>
<p align="left"><a href="https://i3wm.org/docs/userguide.html">https://i3wm.org/docs/userguide.html</a></p>
<p align="left"><a href="https://i3wm.org/docs/refcard.html">https://i3wm.org/docs/refcard.html</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ahmedyoussef.wordpress.com/2016/09/22/learn-i3/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">819</post-id>
		<media:content url="https://1.gravatar.com/avatar/40146561ac818674df134ae25874e6da2a841394b8c650fd7cc958bc08a7d4ef?s=96&#38;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Striky</media:title>
		</media:content>
	</item>
		<item>
		<title>Introduction to Screen</title>
		<link>https://ahmedyoussef.wordpress.com/2016/09/13/introduction-to-screen/</link>
					<comments>https://ahmedyoussef.wordpress.com/2016/09/13/introduction-to-screen/#respond</comments>
		
		<dc:creator><![CDATA[Ahmed Youssef]]></dc:creator>
		<pubDate>Tue, 13 Sep 2016 21:16:42 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://ahmedyoussef.wordpress.com/?p=808</guid>

					<description><![CDATA[هنتكلم النهاردة عن GNU Screen السؤال: ليه أستخدم terminal multiplexer انا عندي tabs وأقدر أفتح كذا terminal صح؟ الجواب: مش دايما عندك الرفاهية دي من خلال remote connection يوجد العديد من ال terminal multiplexers مثل screen و tmux و byobu ، قطعا tmux أشهرهم حاليا، ستجد screen غالبا في مستودعات التوزيعة خاصتك ابدأ بتشغيل screen [&#8230;]]]></description>
										<content:encoded><![CDATA[<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">هنتكلم النهاردة عن </span></span>GNU Screen</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">السؤال</span></span>: <span style="font-family:FreeSans;"><span lang="ar-EG">ليه أستخدم </span></span>terminal multiplexer <span style="font-family:FreeSans;"><span lang="ar-EG">انا عندي </span></span>tabs <span style="font-family:FreeSans;"><span lang="ar-EG">وأقدر أفتح كذا </span></span>terminal <span style="font-family:FreeSans;"><span lang="ar-EG">صح؟</span></span></p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">الجواب</span></span>: <span style="font-family:FreeSans;"><span lang="ar-EG">مش دايما عندك الرفاهية دي من خلال </span></span>remote connection</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">يوجد العديد من ال </span></span>terminal multiplexers <span style="font-family:FreeSans;"><span lang="ar-EG">مثل </span></span>screen <span style="font-family:FreeSans;"><span lang="ar-EG">و </span></span>tmux <span style="font-family:FreeSans;"><span lang="ar-EG">و </span></span>byobu <span style="font-family:FreeSans;"><span lang="ar-EG">، قطعا </span></span>tmux <span style="font-family:FreeSans;"><span lang="ar-EG">أشهرهم حاليا، ستجد screen غالبا في مستودعات التوزيعة خاصتك<br />
</span></span></p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">ابدأ بتشغيل </span></span>screen</p>
<p dir="rtl" align="right"> screen</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">تستطيع استخدام </span></span>-S <span style="font-family:FreeSans;"><span lang="ar-EG">لتحديد اسم ال </span></span>session</p>
<p dir="rtl" align="right">screen -S sessionname</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">أضغط </span></span>Enter <span style="font-family:FreeSans;"><span lang="ar-EG">لتجاهل تلك الرسالة الترحيبية</span></span></p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">لنتفق عندما تجد كلمة PREFIX أن ال</span></span>PREFIX <span style="font-family:FreeSans;"><span lang="ar-EG">هو </span></span>Ctrl+a <span style="font-family:FreeSans;"><span lang="ar-EG">او أختصارا </span></span>^a</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">وهو يعني كل أوامرك يجب أن تبدأ بال </span></span>PREFIX <span style="font-family:FreeSans;"><span lang="ar-EG">ليفهم </span></span>screen <span style="font-family:FreeSans;"><span lang="ar-EG">أنك توجه أمر خاص له</span></span></p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">لأطلاع سريع على الأوامر المتاح أضغم </span></span>PREFIX <span style="font-family:FreeSans;"><span lang="ar-EG">ثم علامة استفهام ؟ </span></span></p>
<p dir="rtl" align="right">~&gt; PREFIX ?</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">لمحو الكتابة على الشاشة اضغط </span></span>PREFIX + C</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">أكتب مثلا أمر </span></span>top</p>
<p dir="rtl" align="right">~&gt; top</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">ماذا نفعل الآن؟ هل أصبحت عالقا؟ أريد أن أكتب أوامر أخرى</span></span></p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">بكل بساطة تستطيع إنشاء نافذة جديدة </span></span></p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">لتنشئ نافذة جديدة اضغط </span></span>PREFIX + c</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">لعرض أسماء النوافذ المفتوحة تستطيع كتابة </span></span>PREFIX + w <span style="font-family:FreeSans;"><span lang="ar-EG">ستظهر لك </span></span>menubar <span style="font-family:FreeSans;"><span lang="ar-EG">بأرقام وأسماء النوافذ </span></span>.. <span style="font-family:FreeSans;"><span lang="ar-EG">هل لاحظت أن جميعها مسماه </span></span>bash<span style="font-family:FreeSans;"><span lang="ar-EG">؟ </span></span></p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">لعرض اسماء النوافذ كقائمة اكتب </span></span>PREFIX + &#8220;</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">لتغيير الأسم للنافذة تستطيع تنفيذ أمر </span></span>PREFIX + A</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">لتستطيع التنقل بينها بسهولة عن طريق </span></span></p>
<p dir="rtl" align="right">PREFIX + windowNumber</p>
<p dir="rtl" align="right">PREFIX + &#8216;windowName</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">للدوران على النوافذ المتاحة تستطيع تنفيذ </span></span>PREFIX + p <span style="font-family:FreeSans;"><span lang="ar-EG">او </span></span>PREFIX +n</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">لتقسيم النافذة لعدة مناطق تستطيع استخدام </span></span>PREFIX + S <span style="font-family:FreeSans;"><span lang="ar-EG">للقسمة افقيا أو </span></span>PREFIX + | <span style="font-family:FreeSans;"><span lang="ar-EG">للقسمة رأسيا وتستطيع التنقل بينهم عن طريق </span></span>PREFIX + tab <span style="font-family:FreeSans;"><span lang="ar-EG">ولغلق أحدها أضغط </span></span>PREFIX + X</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">لنخرج من هذه الجلسة عن طريق </span></span>PREFIX + d</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">نستطيع أن نعرف الجلسات الموجودة ب </span></span>screen <span style="font-family:FreeSans;"><span lang="ar-EG">عن طريق </span></span>screen -ls</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">وللعودة إلى جلسة ما نستخدم </span></span>screen -r <span style="font-family:FreeSans;"><span lang="ar-EG">ثم أسم الجلسة او سيتم الدخول للمتاحة </span></span></p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">لأغلاق الجميع تستطيع تنفيذ </span></span>PREFIX + \</p>
<p dir="rtl" align="right">*<span style="font-family:FreeSans;"><span lang="ar-EG">يوجد الكثير من الأوامر للتعامل مع </span></span>screen <span style="font-family:FreeSans;"><span lang="ar-EG">ونفس الكيفية لأدوات مثل </span></span>tmux, terminator, byobu</p>
<p dir="rtl" align="right"><span style="font-family:FreeSans;"><span lang="ar-EG">تسجيل لجلسة تعامل مع </span></span>screen <span style="font-family:FreeSans;"><span lang="ar-EG">بالأوامر المذكورة</span></span></p>
<p dir="rtl" align="right"><a href="https://asciinema.org/a/1uwwhh4l9jabrj2krfhgmx0e4" rel="nofollow">https://asciinema.org/a/1uwwhh4l9jabrj2krfhgmx0e4</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ahmedyoussef.wordpress.com/2016/09/13/introduction-to-screen/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">808</post-id>
		<media:content url="https://1.gravatar.com/avatar/40146561ac818674df134ae25874e6da2a841394b8c650fd7cc958bc08a7d4ef?s=96&#38;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Striky</media:title>
		</media:content>
	</item>
		<item>
		<title>Life.resume()</title>
		<link>https://ahmedyoussef.wordpress.com/2016/05/07/life-resume/</link>
					<comments>https://ahmedyoussef.wordpress.com/2016/05/07/life-resume/#respond</comments>
		
		<dc:creator><![CDATA[Ahmed Youssef]]></dc:creator>
		<pubDate>Sat, 07 May 2016 02:42:43 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://ahmedyoussef.wordpress.com/?p=803</guid>

					<description><![CDATA[خلاص خلصت جيش ، وبدأت شغل جديد بتستخدم فيه لغات Python ,Go بكثافة وفي حاجة كتير بتعلمها/اتعلمتها في شوق أن أشارككم بيها حاليا شغال على REST microservice مكتوبة بلغة Go/Gin framework الناس الي كانت بتسأل على كتاب بايثون فهو محطوط على مستودع https://bitbucket.org/xmonader/pyguide وبالنسبة لباقي المصادر الي كانت على الموقع طيب الذكر programming-fr34ks فاحنا نقلناها [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>خلاص خلصت جيش ، وبدأت شغل جديد بتستخدم فيه لغات Python ,Go بكثافة وفي حاجة كتير بتعلمها/اتعلمتها في شوق أن أشارككم بيها</p>
<p>حاليا شغال على REST microservice مكتوبة بلغة Go/Gin framework<br />
الناس الي كانت بتسأل على كتاب بايثون فهو محطوط على مستودع<br />
<a href="https://bitbucket.org/xmonader/pyguide" rel="nofollow">https://bitbucket.org/xmonader/pyguide</a><br />
وبالنسبة لباقي المصادر الي كانت على الموقع طيب الذكر programming-fr34ks فاحنا نقلناها إلى<br />
<a href="http://tuxcoders.sourceforge.net/dokuwiki/doku.php?id=pythonguide&#038;do=index" rel="nofollow">http://tuxcoders.sourceforge.net/dokuwiki/doku.php?id=pythonguide&#038;do=index</a></p>
<p>استنوني <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ahmedyoussef.wordpress.com/2016/05/07/life-resume/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">803</post-id>
		<media:content url="https://1.gravatar.com/avatar/40146561ac818674df134ae25874e6da2a841394b8c650fd7cc958bc08a7d4ef?s=96&#38;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Striky</media:title>
		</media:content>
	</item>
		<item>
		<title>مقدمة في برولوج وكيف تحل لعبة سودكو</title>
		<link>https://ahmedyoussef.wordpress.com/2015/01/13/%d9%85%d9%82%d8%af%d9%85%d8%a9-%d9%81%d9%8a-%d8%a8%d8%b1%d9%88%d9%84%d9%88%d8%ac-%d9%88%d9%83%d9%8a%d9%81-%d8%aa%d8%ad%d9%84-%d9%84%d8%b9%d8%a8%d8%a9-%d8%b3%d9%88%d8%af%d9%83%d9%88/</link>
					<comments>https://ahmedyoussef.wordpress.com/2015/01/13/%d9%85%d9%82%d8%af%d9%85%d8%a9-%d9%81%d9%8a-%d8%a8%d8%b1%d9%88%d9%84%d9%88%d8%ac-%d9%88%d9%83%d9%8a%d9%81-%d8%aa%d8%ad%d9%84-%d9%84%d8%b9%d8%a8%d8%a9-%d8%b3%d9%88%d8%af%d9%83%d9%88/#respond</comments>
		
		<dc:creator><![CDATA[Ahmed Youssef]]></dc:creator>
		<pubDate>Tue, 13 Jan 2015 23:49:14 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[logic]]></category>
		<category><![CDATA[prolog]]></category>
		<category><![CDATA[sudoku]]></category>
		<guid isPermaLink="false">http://ahmedyoussef.wordpress.com/?p=796</guid>

					<description><![CDATA[لعبة سودكو الشهيرة، تعتمد في حلها على عدم تكرار نفس الرقم في نفس الصف او في نفس العمود او في نفس المربع سنقوم بعمل برنامج لحل اللعبة بإستخدام لغة برولوج وعلى نموذج مصغر 4&#215;4 ولكن بنفس القواعد. والأرقام المقبولة هي 1,2,3,4 كيف نقوم بحل ذلك السؤال؟ انظر على حلول لغات مثل سي هنا http://rosettacode.org/wiki/Sudoku يوجد [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>لعبة سودكو الشهيرة، تعتمد في حلها على عدم تكرار نفس الرقم في نفس الصف او في نفس العمود او في نفس المربع</p>
<p><a href="http://static.guim.co.uk/sys-images/Guardian/Pix/pictures/2013/5/8/1368009788549/Sudoku2499medium.gif"><img src="https://i0.wp.com/static.guim.co.uk/sys-images/Guardian/Pix/pictures/2013/5/8/1368009788549/Sudoku2499medium.gif" style="max-width:100%;" /></a><br />
سنقوم بعمل برنامج لحل اللعبة بإستخدام لغة برولوج وعلى نموذج مصغر 4&#215;4 ولكن بنفس القواعد. والأرقام المقبولة هي 1,2,3,4</p>
<pre class="brush: plain; title: ; notranslate">?- solve(1,4, _, _, _, _, 4, _, 2, _, _,_, _, _, _, 3).
1 4 3 2
3 2 4 1
2 3 1 4
4 1 2 3</pre>
<p>كيف نقوم بحل ذلك السؤال؟<br />
انظر على حلول لغات مثل سي هنا<br />
<a href="http://rosettacode.org/wiki/Sudoku" rel="nofollow">http://rosettacode.org/wiki/Sudoku</a><br />
يوجد اتجاه او اسلوب برمجي اخر يسمى ال declarative programming &#8230; كل ماعلينا هو أن نقوم بوصف الحل لا الخطوات للحل..</p>
<p>طريق سريع لبرولوج</p>
<p>1-التنصيب<br />
<a href="http://www.swi-prolog.org/Download.html" rel="nofollow">http://www.swi-prolog.org/Download.html</a></p>
<p>مستخدمي لينكس موجود لديكم في مدير الحزم</p>
<pre class="brush: plain; title: ; notranslate">striky@localhost ~/m/prolog&amp;gt; touch hello.pl master
striky@localhost ~/m/prolog&amp;gt; swipl master?
Welcome to SWI-Prolog (Multi-threaded, 64 bits, Version 6.6.6)
Copyright (c) 1990-2013 University of Amsterdam, VU Amsterdam
SWI-Prolog comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
Please visit http://www.swi-prolog.org for details.

For help, use ?- help(Topic). or ?- apropos(Word).

?- write('Hello, World!').
Hello, World!
true.
?- write('Hello,'), nl, write('world').
Hello,
world
true.
?- X is 3*4 + 2.
X = 14.
</pre>
<p>لاحظ أي امر في برولوج ينتهي بال نقطة .<br />
write يستخدم لطباعة نص<br />
nl<br />
تستخدم لطباعة سطر جديد<br />
البرنامج في برولوج عبارة عن قاعدة معرفة knowledge base وفيه يتم ادراج الحقائق facts وقواعد الأستنباط rules</p>
<pre class="brush: plain; title: ; notranslate">friend(john, julia).
friend(john, jack).
friend(julia, sam).
friend(julia, molly).

loves(john, julia).
loves(julia, sam).
loves(sam, julia).

male(brad).
male(john).
male(jim).
male(alfred).
female(marry).
child(brad, alfred).
child(john, jim).
child(john, marry).
</pre>
<p>هذا ملف KB يشمل مجموعة من الحقائق &#8230; برولوج ستساعدنا كثيرا لإجابة الكثير من الاسئلة .. لنرى!</p>
<pre class="brush: plain; title: ; notranslate">
?- [hello].
% hello compiled 0.00 sec, 3 clauses
true.

?- listing(friend).
friend(john, julia).
friend(john, jack).
friend(julia, sam).
friend(julia, molly).

true.

?- listing(loves).
loves(john, julia).
loves(julia, sam).
loves(sam, julia).

true.

?- listing(parent).
ERROR: toplevel: procedure `parent' does not exist (DWIM could not correct goal)</pre>
<p>نستطيع استخدام listing لعرض الحقائق</p>
<pre class="brush: plain; title: ; notranslate">
?- friend(john, julia).
true .

?- friend(john, jack).
true.

?- loves(john, julia).
true.

?- loves(john, sam).
false.</pre>
<p>استعلامات بسيطة على الحقائق التي لدينا</p>
<pre class="brush: plain; title: ; notranslate">
?- friend(john, Who).
Who = julia ;
Who = jack.
</pre>
<p>هذا الاستعلام يعني &#8230; ماهي قيمة المتغير Who التي تجعل العلاقة friend(john, Who) صحيحة؟<br />
نجد في ال KB قيم مثل julia وتقوم برولوج بإخبارنا بذلك .. ولكن يوجد قيم اخرى نستطيع الوصول اليها بالضغط على ;<br />
*لاحظ ان المتغيرات تبدأ بحرف capital</p>
<p>الواد john دا ابن مين</p>
<pre class="brush: plain; title: ; notranslate">?- listing(child).
child(brad, alfred).
child(john, jim).
child(john, marry).

true.

?- child(john, X).
X = jim ;
X = marry.
</pre>
<p>الأستنباط</p>
<p>يوجد الكثير من الأسئلة والأجابات<br />
مثلا هل العلاقات</p>
<pre class="brush: plain; title: ; notranslate">friend(julia, john)</pre>
<p>صحيحة؟<br />
هل john is friendzoned؟<br />
<img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f600.png" alt="😀" class="wp-smiley" style="height: 1em; max-height: 1em;" /><br />
هل فلان ابو فلان؟<br />
لنقوم بإضافة بعض القواعد</p>
<pre class="brush: plain; title: ; notranslate">rule :- stmt1, stmt2,...</pre>
<p>تنطق ال rule محققة اذا كان ( :- ) stmt1, stmt2 محققين</p>
<pre class="brush: plain; title: ; notranslate">parent(X, Y) :- child(Y,X).</pre>
<p>فلان X هو أبو Y في حال اذا كان Y هو ابن ل X</p>
<pre class="brush: plain; title: ; notranslate">father(X, Y) :- child(Y,X), male(X).</pre>
<p>فلان X هو اب ل Y في حال اذا كان Y هو ابن X وX هو male</p>
<pre class="brush: plain; title: ; notranslate">mother(X, Y) :- child(Y,X), female(X).</pre>
<p>فلان X هي ام ل Y في حال اذا كان Y هو ابن ل X و X تكون female</p>
<pre class="brush: plain; title: ; notranslate">friend(X, Y) :- friend(Y,X).</pre>
<p>فلان X صديق Y .. اذا كان في ال kB معروف ان Y صديق X</p>
<pre class="brush: plain; title: ; notranslate">friendzoned(X) :- loves(X, Y), \+ loves(Y,X).</pre>
<p>فلان X في ال friendzone اذا كان X بيحب Y وفي نفس الوقت Y لاتحب X</p>
<pre class="brush: plain; title: ; notranslate">?- friend(julia, john).
true .
?- male(jim).
true.

?- parent(jim,X).
X = john.

?- father(jim, X).
X = john.

?- mother(X, john).
X = marry.

?- mother(marry,X).
X = john.

?- mother(marry, john).
true.
</pre>
<p>قصة قصيرة حزينة&#8230;</p>
<p>جون بيحب جوليا، ولكن جوليا وسام بيحبوا بعض</p>
<pre class="brush: plain; title: ; notranslate">?- loves(julia, X).
X = sam.

?- friendzoned(julia).
false.

?- friendzoned(john).
true.
</pre>
<p>الكود</p>
<p>اولا نقوم بتعريف ال domain .. وهو القيم المقبولة للمتغيرات</p>
<pre class="brush: plain; title: ; notranslate">num(1). num(2).
num(3). num(4).
</pre>
<p>التأكد من أن القيم فريدة بين 4 متغيرات</p>
<pre class="brush: plain; title: ; notranslate">%create unique values of A,B,C,D based.
uniq(A,B,C,D) :-
num(A), num(B), num(C), num(D), \+ A=B, \+ A=C, \+ A=D, \+ B=C, \+ B=D, \+ C=D.
</pre>
<p>هنا نقول ان A لايساوي B ولايساوي C ولايساوي D وكذلك B لايساوي C ولا يساوي D وكذلك C لايساوي D وكل منهم عبارة عن رقم قد يكون 1 او 2 او 3 او 4</p>
<p>الحصول على الحل</p>
<pre class="brush: plain; title: ; notranslate">
%find solution to sudoku 4x4 based on constraints.
solution(C11, C12, C13, C14,
C21, C22, C23, C24,
C31, C32, C33, C34,
C41, C42, C43, C44) :-
%rows (every row is uniq).
uniq(C11, C12, C13, C14), uniq(C21, C22, C23, C24), uniq(C31, C32, C33, C34), uniq(C41, C42, C43, C44),
%columns (every column is uniq).
uniq(C11, C21, C31, C41), uniq(C12, C22, C32, C42), uniq(C13, C23, C33, C43), uniq(C14, C24, C34, C44),
%blocks (every block (2x2) cells is uniq).
uniq(C11, C12, C21, C22), uniq(C31, C32, C41, C42), uniq(C13, C14, C23, C24), uniq(C33, C34, C43, C44).</pre>
<p>لاتنزعج!<br />
اولا الboard او لوحة السودكو عبارة عن 16 خانة .. 4 صفوف و 4 أعمدة<br />
قم بتسميتهم من C11 الى C44<br />
C21 تعني الخلية في الصف الثاني والعمود الأول</p>
<p>الآن لنصف الحل ..</p>
<p>الحل يعتمد على<br />
1-تفرد القيم في كل صف ..</p>
<pre class="brush: plain; title: ; notranslate">uniq(C11, C12, C13, C14)</pre>
<p>هنا نقول ان القيم C11, C12, C13,C14 المكونة للصف الأول يجب ان يتم اسناد قيمة مختلفة لها من 1 ل 4 وهذا ماوضحناه في uniq<br />
وبالمثل مع الخلايا المكونة لباقي الصفوف الثاني والثالث والرابع</p>
<p>2- تفرد الفيم في كل عمود ..</p>
<pre class="brush: plain; title: ; notranslate">uniq(C11, C21, C31, C41)</pre>
<p>وبالمثل مع الخلايا المكونة لباقي الأعمدة<br />
3- تفرد القيم في كل مربع<br />
لدينا ٤ مربعات (C11, C12, C21, C22) (C31, C32, C41, C42)(C13, C14, C23, C24)(C33, C34, C43, C44)</p>
<p>يجب ان تكون الأرقام مختلفة داخل المربع</p>
<pre class="brush: plain; title: ; notranslate">uniq(C11, C12, C21, C22)</pre>
<p>لقد أنتهينا!<br />
الآن برولوج ستقوم بالبحث عن القيم اللتي تتفق مع وصفنا لتلك المشكلة</p>
<p>الآن لنقوم بعرض القيم</p>
<pre class="brush: plain; title: ; notranslate">
solve(C11, C12, C13, C14,
C21, C22, C23, C24,
C31, C32, C33, C34,
C41, C42, C43, C44) :-

solution(C11, C12, C13, C14,
C21, C22, C23, C24,
C31, C32, C33, C34,
C41, C42, C43, C44),
showrow(C11, C12, C13, C14), showrow(C21, C22, C23, C24), showrow(C31, C32, C33, C34), showrow(C41, C42, C43, C44),nl.</pre>
<p>كان من الممكن دمجهم في الكود السابق<br />
فقط نقوم بطباع كل 4 خلايا المكونين لصف عن طريق showrow المعرف كالتالي</p>
<pre class="brush: plain; title: ; notranslate">showspace :- write(' ').
%row representation.
showrow(A, B, C, D) :-
showspace, write(A), showspace, write(B), showspace, write(C), showspace, write(D), nl.
</pre>
<p>*لاحظ showspace تقوم بطباعة مسافة فارغة فقط لاأكثر</p>
<p>الكود كامل</p>
<pre class="brush: plain; title: ; notranslate">
%based on thinking as computation example

%domain
num(1). num(2).
num(3). num(4).
showspace :- write(' ').
%row representation.
showrow(A, B, C, D) :-
showspace, write(A), showspace, write(B), showspace, write(C), showspace, write(D), nl.

%create unique values of A,B,C,D based.
uniq(A,B,C,D) :-
num(A), num(B), num(C), num(D), \+ A=B, \+ A=C, \+ A=D, \+ B=C, \+ B=D, \+ C=D.

%find solution to sudoku 4x4 based on constraints.
solution(C11, C12, C13, C14,
C21, C22, C23, C24,
C31, C32, C33, C34,
C41, C42, C43, C44) :-
%rows (every row is uniq).
uniq(C11, C12, C13, C14), uniq(C21, C22, C23, C24), uniq(C31, C32, C33, C34), uniq(C41, C42, C43, C44),
%columns (every column is uniq).
uniq(C11, C21, C31, C41), uniq(C12, C22, C32, C42), uniq(C13, C23, C33, C43), uniq(C14, C24, C34, C44),
%blocks (every block (2x2) cells is uniq).
uniq(C11, C12, C21, C22), uniq(C31, C32, C41, C42), uniq(C13, C14, C23, C24), uniq(C33, C34, C43, C44).
solve(C11, C12, C13, C14,
C21, C22, C23, C24,
C31, C32, C33, C34,
C41, C42, C43, C44) :-

solution(C11, C12, C13, C14,
C21, C22, C23, C24,
C31, C32, C33, C34,
C41, C42, C43, C44),
showrow(C11, C12, C13, C14), showrow(C21, C22, C23, C24), showrow(C31, C32, C33, C34), showrow(C41, C42, C43, C44),nl.</pre>
<p><a href="https://github.com/xmonader/prolog-rands/blob/master/sudoku.pl" rel="nofollow">https://github.com/xmonader/prolog-rands/blob/master/sudoku.pl</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ahmedyoussef.wordpress.com/2015/01/13/%d9%85%d9%82%d8%af%d9%85%d8%a9-%d9%81%d9%8a-%d8%a8%d8%b1%d9%88%d9%84%d9%88%d8%ac-%d9%88%d9%83%d9%8a%d9%81-%d8%aa%d8%ad%d9%84-%d9%84%d8%b9%d8%a8%d8%a9-%d8%b3%d9%88%d8%af%d9%83%d9%88/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">796</post-id>
		<media:content url="https://1.gravatar.com/avatar/40146561ac818674df134ae25874e6da2a841394b8c650fd7cc958bc08a7d4ef?s=96&#38;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Striky</media:title>
		</media:content>
	</item>
		<item>
		<title>كيف تستخدم الأمر bc</title>
		<link>https://ahmedyoussef.wordpress.com/2014/10/25/%d9%83%d9%8a%d9%81-%d8%aa%d8%b3%d8%aa%d8%ae%d8%af%d9%85-%d8%a7%d9%84%d8%a3%d9%85%d8%b1-bc/</link>
					<comments>https://ahmedyoussef.wordpress.com/2014/10/25/%d9%83%d9%8a%d9%81-%d8%aa%d8%b3%d8%aa%d8%ae%d8%af%d9%85-%d8%a7%d9%84%d8%a3%d9%85%d8%b1-bc/#respond</comments>
		
		<dc:creator><![CDATA[Ahmed Youssef]]></dc:creator>
		<pubDate>Sat, 25 Oct 2014 12:17:53 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[bc]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[Linux]]></category>
		<guid isPermaLink="false">http://ahmedyoussef.wordpress.com/?p=794</guid>

					<description><![CDATA[كيف تستخدم BC؟ ماهي BC؟ هي لغة موجه للعمليات الحسابية وتعريف الدوال بالإضافة لمكتبة رياضية قياسية، تتشابه مع لغة سي في طريقة كتابتها تأخد تعليماتها من ال stdin العناصر الأساسية 1- الأرقام (تعبر عنها كأرقام عشرية) مصطلح length يعني عدد الخانات الموجودة في الرقم مصطلح scale المقصود به عدد الخانات بعد العلامة العشرية 2-المتغيرات يوجد [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>كيف تستخدم BC؟<br />
ماهي BC؟<br />
هي لغة موجه للعمليات الحسابية وتعريف الدوال بالإضافة لمكتبة رياضية قياسية، تتشابه مع لغة سي في طريقة كتابتها<br />
تأخد تعليماتها من ال stdin<br />
العناصر الأساسية</p>
<p>1- الأرقام (تعبر عنها كأرقام عشرية)<br />
مصطلح length يعني عدد الخانات الموجودة في الرقم<br />
مصطلح scale المقصود به عدد الخانات بعد العلامة العشرية<br />
2-المتغيرات<br />
يوجد نوعين من المتغيرات، متغيرات بسيطة ومصفوفات (يجب ان تسمى بأسماء تبدأ بحرف صغير يليه حروف صغيرة او ارقام)</p>
<p>-يوجد متغيرات محجوزة منها<br />
last يعبر عن آخر قيمة<br />
scale يعبر عن عدد الخانات المقبولة بعد العلامة العشرية</p>
<p>التعليقات<br />
لإضافة ملاحظات على التعبيرات تستطيع استخدام<br />
/* */ كما في لغة سي</p>
<p>لتشغيل البرنامج اكتر الأمر bc<br />
وللخروج منه اكتب quit<br />
حاسبة بسيطة<br />
تستطيع استخدام المعاملات المعروفة كالجمع + والطرح &#8211; والضرب * والقسمة / ومعامل الباقي ٪ وكذلك عملية الأس ^ وكذلك استخدام المعاملات العلائقية<br />
&gt;, &lt;, ==, !=, &gt;=, =&lt; وكذلك المعاملات المنطقية ك &amp;&amp; (and) و ||(or) و ! (للنفي)</p>
<pre class="brush: plain; title: ; notranslate">

striky@localhost ~&gt; bc                                                                                 20
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'. 
1
1
1+2
3
3*4
12
4/2
2
4%3
1
3^2
9
5-7
-2
-3 + 48
45


3&gt;5
0
5&gt;3
1
5==5
1
7 &gt;= 5
1
6 != 4
1

3 &amp;&amp; 5
1
3 || 0
1
!0
1
!1
0

</pre>
<p>استخدام المتغيرات</p>
<p>لتعريف متغير فالأمر بسيط كل ماعليك هو</p>
<pre class="brush: plain; title: ; notranslate">
varname = expr
</pre>
<pre class="brush: plain; title: ; notranslate">
x=4
y=6
x+y
10
x++
4
x
5
x *= 2
x
10
</pre>
<p>تستطيع ان تفرض اولوية تحقيق اي تعبير بوضعه بين قوسين</p>
<p>يوجد تعبيرات خاصة مثل length و scale (عدد الخانات وعدد الخانات بعد العلامة)<br />
كذلك الأمر read لقراءة مدخل من المستخدم<br />
ودالة sqrt للحصول على الجذر التربيعي لتعبير ما</p>
<pre class="brush: plain; title: ; notranslate">
length(1234)
4
length(1234.2421)
8
scale(.33)
2
scale(.3300)
4
scale(4121.3300)
4
sqrt(4)
2
read()
4
4
</pre>
<p>الأمر limits<br />
للحصول على معلومات عن حدود إصدار bc الخاص بك</p>
<pre class="brush: plain; title: ; notranslate">
limits
BC_BASE_MAX     = 2147483647
BC_DIM_MAX      = 16777215
BC_SCALE_MAX    = 2147483647
BC_STRING_MAX   = 2147483647
MAX Exponent    = 9223372036854775807
Number of vars  = 32767
</pre>
<p>الدوال<br />
لتعريف دالة</p>
<pre class="brush: plain; title: ; notranslate">
define FUNCTION_NAME(PARAMS) {
	/* auto VARIABLES */
	/* code */
	
}
</pre>
<pre class="brush: plain; title: ; notranslate">
define get3() { 
return 3
}
</pre>
<p>هنا قمنا بتعريف دالة تعيد دائما الرقم 3</p>
<pre class="brush: plain; title: ; notranslate">
z=get3()
z
3
</pre>
<pre class="brush: plain; title: ; notranslate">
define dbl(n){
return 2*n
}
</pre>
<p>هنا قمنا بتعريف دالة تضاعف المدخل n</p>
<pre class="brush: plain; title: ; notranslate">
dbl(3)
6
dbl(20)
40

</pre>
<p>لإستخدام المكتبة الرياضية القياسية يجب ان تشغل bc مع إضافة الأمر -l</p>
<pre class="brush: plain; title: ; notranslate">
bc -l
</pre>
<p>يوجد الدوال</p>
<pre class="brush: plain; title: ; notranslate">
s -&gt; sin
c -&gt; cos
a -&gt; arctan
l -&gt; natural logarithm
e -&gt; exponential
</pre>
<p>لطباعة جملة -بين علامتي تنصيص- يوجد الأمر print</p>
<pre class="brush: plain; title: ; notranslate">
print &quot;SOMETHING&quot;
</pre>
<p>الشروط<br />
تستطيع اختبار شرط عبر جملة if/else</p>
<p>لدينا متغيرين x,y ونريد ان نسند قيمة الأكبر منهما إلى z</p>
<pre class="brush: plain; title: ; notranslate">
z=0
x=19
y=24
if (x&gt;y) {
	z=x
}else{
	z=y
}
z
24

</pre>
<p>الحلقات<br />
تدعم كذلك while, for, break, continue</p>
<p>مثلا نريد الحصول على مجموع الأرقام من 0 إلى 6</p>
<pre class="brush: plain; title: ; notranslate">

total = 0
for (i=0; i&lt;6; i++) {
  total +=i
  total
}

0
1
3
6
10
15

total
15
</pre>
<p>دالة المضروب factorial</p>
<pre class="brush: plain; title: ; notranslate">

define fact(x) {
  if (x &lt; 2) {
     return (1);
   } else {
     return ( x*fact(x-1) );
   }
}


fact(3)
6
f(5)
120
</pre>
<p>سنقوم بعمل دالتين لحساب المحيط والمساحة للدائرة</p>
<pre class="brush: plain; title: ; notranslate">
pi = 3.14
define perim(radius) {

    return (2*pi*radius);
}

perim(3)
18.84

define circle_area(radius) {
    auto area	      
    area = radius * pi * pi
    return (area);
}
circle_area(4)
39.4384
</pre>
<p>مصادر<br />
<a href="https://www.gnu.org/software/bc/manual/html_mono/bc.html" rel="nofollow">https://www.gnu.org/software/bc/manual/html_mono/bc.html</a><br />
/</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ahmedyoussef.wordpress.com/2014/10/25/%d9%83%d9%8a%d9%81-%d8%aa%d8%b3%d8%aa%d8%ae%d8%af%d9%85-%d8%a7%d9%84%d8%a3%d9%85%d8%b1-bc/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">794</post-id>
		<media:content url="https://1.gravatar.com/avatar/40146561ac818674df134ae25874e6da2a841394b8c650fd7cc958bc08a7d4ef?s=96&#38;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Striky</media:title>
		</media:content>
	</item>
		<item>
		<title>VLC-Subtrack</title>
		<link>https://ahmedyoussef.wordpress.com/2014/10/05/vlc-subtrack/</link>
					<comments>https://ahmedyoussef.wordpress.com/2014/10/05/vlc-subtrack/#comments</comments>
		
		<dc:creator><![CDATA[Ahmed Youssef]]></dc:creator>
		<pubDate>Sun, 05 Oct 2014 01:25:32 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://ahmedyoussef.wordpress.com/?p=791</guid>

					<description><![CDATA[ازيكم؟ مش عارف في حد لسه بيتابع البلوج ولا ﻷ على كل الأحوال كتبت اداة لتشغيل جزء من مقطع مرة او عدد ما من المرات او عدد لانهائي، مناسب جدا للناس اللي بتحاول تحفظ قرآن ومعندهاش مصاحف تحفيظ كل اللي عليه يحدد فترة البداية والنهاية وعدد المرات وخلاص ^_^ طريقة الأستخدام python subtrack.py -t &#8220;/home/striky/hawa.mp3&#8221; [&#8230;]]]></description>
										<content:encoded><![CDATA[<p align="right"><span style="font-family:'DejaVu Sans';"><span lang="ar-EG">ازيكم؟ مش عارف في حد لسه بيتابع البلوج ولا ﻷ</span></span></p>
<p dir="rtl" align="right"><span style="font-family:'DejaVu Sans';"><span lang="ar-EG">على كل الأحوال كتبت اداة لتشغيل جزء من مقطع مرة او عدد ما من المرات او عدد لانهائي، مناسب جدا للناس اللي بتحاول تحفظ قرآن ومعندهاش مصاحف تحفيظ كل اللي عليه يحدد فترة البداية والنهاية وعدد المرات وخلاص </span></span>^_^</p>
<p dir="rtl" align="right">
<p dir="rtl" align="right"><span style="font-family:'DejaVu Sans';"><span lang="ar-EG">طريقة الأستخدام</span></span><br />
python subtrack.py -t &#8220;/home/striky/hawa.mp3&#8221; -s 150 -e 280 -r 3</p>
<p dir="rtl" align="right"><span style="font-family:'DejaVu Sans';"><span lang="ar-EG">التطبيق بيستخدم </span></span>python bindings <span style="font-family:'DejaVu Sans';"><span lang="ar-EG">ل </span></span>vlc <span style="font-family:'DejaVu Sans';"><span lang="ar-EG">مرفقة في المستودع</span></span></p>
<p dir="rtl" align="right">
<p dir="rtl" align="right"><a href="https://bitbucket.org/xmonader/vlc-subtrack">https://bitbucket.org/xmonader/vlc-subtrack</a></p>
<p dir="rtl" align="right">
]]></content:encoded>
					
					<wfw:commentRss>https://ahmedyoussef.wordpress.com/2014/10/05/vlc-subtrack/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">791</post-id>
		<media:content url="https://1.gravatar.com/avatar/40146561ac818674df134ae25874e6da2a841394b8c650fd7cc958bc08a7d4ef?s=96&#38;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Striky</media:title>
		</media:content>
	</item>
		<item>
		<title>Bottle-quickstart</title>
		<link>https://ahmedyoussef.wordpress.com/2013/05/02/bottle-quickstart/</link>
					<comments>https://ahmedyoussef.wordpress.com/2013/05/02/bottle-quickstart/#comments</comments>
		
		<dc:creator><![CDATA[Ahmed Youssef]]></dc:creator>
		<pubDate>Thu, 02 May 2013 21:59:42 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://ahmedyoussef.wordpress.com/?p=789</guid>

					<description><![CDATA[الكثير من تطبيقات الويب حاليا تعتمد على bootstrap وكذلك jQuery فبدلا من إعداد تطبيقك كل مرة وتعديل الملفات وخلافه ، وفرت مشروع bottle-quickstart لتسريع تلك المهمة.   تحصل مباشرة على   تفعيل bootstrap تفعيل jQuery مجلد للقوالب templates مجلد عام للملفات الستاتيكية (الصور، السمات، ملفات الجافاسكربت) بالإضافة لملف إعدادات عام -تم فيه إعداد القوالب بكل [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>الكثير من تطبيقات الويب حاليا تعتمد على bootstrap وكذلك jQuery فبدلا من إعداد تطبيقك كل مرة وتعديل الملفات وخلافه ، وفرت مشروع bottle-quickstart لتسريع تلك المهمة.</p>
<p> </p>
<p>تحصل مباشرة على</p>
<p> </p>
<p>تفعيل bootstrap</p>
<p>تفعيل jQuery</p>
<p>مجلد للقوالب templates</p>
<p>مجلد عام للملفات الستاتيكية (الصور، السمات، ملفات الجافاسكربت)</p>
<p>بالإضافة لملف إعدادات عام -تم فيه إعداد القوالب بكل بساطة-</p>
<p> </p>
<p><a href="https://bitbucket.org/xmonader/bottle-quickstart/wiki/Home">https://bitbucket.org/xmonader/bottle-quickstart/wiki/Home</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ahmedyoussef.wordpress.com/2013/05/02/bottle-quickstart/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">789</post-id>
		<media:content url="https://1.gravatar.com/avatar/40146561ac818674df134ae25874e6da2a841394b8c650fd7cc958bc08a7d4ef?s=96&#38;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Striky</media:title>
		</media:content>
	</item>
		<item>
		<title>كيف تستخدم virtualenv</title>
		<link>https://ahmedyoussef.wordpress.com/2013/04/26/%d9%83%d9%8a%d9%81-%d8%aa%d8%b3%d8%aa%d8%ae%d8%af%d9%85-virtualenv/</link>
					<comments>https://ahmedyoussef.wordpress.com/2013/04/26/%d9%83%d9%8a%d9%81-%d8%aa%d8%b3%d8%aa%d8%ae%d8%af%d9%85-virtualenv/#respond</comments>
		
		<dc:creator><![CDATA[Ahmed Youssef]]></dc:creator>
		<pubDate>Fri, 26 Apr 2013 14:34:25 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[virtualenv]]></category>
		<guid isPermaLink="false">http://ahmedyoussef.wordpress.com/?p=785</guid>

					<description><![CDATA[&#160; لتجربة أفضل في القراءة فضلا تابع الموضوع هنا http://arabteam2000-forum.com/index.php/topic/277534-%D9%83%D9%8A%D9%81-%D8%AA%D9%86%D8%B4%D8%A6-%D8%A8%D9%8A%D8%A6%D8%A7%D8%AA-%D8%AA%D8%B7%D9%88%D9%8A%D8%B1-%D9%85%D8%B9%D8%B2%D9%88%D9%84%D8%A9-%D9%84%D9%85%D8%B4%D8%B1%D9%88%D8%B9%D9%83-%D8%B9%D8%A8%D8%B1-virtualenv/ &#160; كتبت مشروع ب Django 1.0 وسارت الأمور جيدا ولكن أحببت أن تكتب مشروع آخر ب Django 1.5 ويوجد تغييرات كثيرة ، فقد تقوم بعمل عدة أشياء تعتمد على إصدارات مختلفة من نفس الحزمة وهنا تحدث المشكلة. كيف يمكن تنصيب Django 1.0 و Django 1.5 [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>&nbsp;</p>
<p>لتجربة أفضل في القراءة فضلا تابع الموضوع هنا</p>
<p><a href="http://arabteam2000-forum.com/index.php/topic/277534-%D9%83%D9%8A%D9%81-%D8%AA%D9%86%D8%B4%D8%A6-%D8%A8%D9%8A%D8%A6%D8%A7%D8%AA-%D8%AA%D8%B7%D9%88%D9%8A%D8%B1-%D9%85%D8%B9%D8%B2%D9%88%D9%84%D8%A9-%D9%84%D9%85%D8%B4%D8%B1%D9%88%D8%B9%D9%83-%D8%B9%D8%A8%D8%B1-virtualenv/">http://arabteam2000-forum.com/index.php/topic/277534-%D9%83%D9%8A%D9%81-%D8%AA%D9%86%D8%B4%D8%A6-%D8%A8%D9%8A%D8%A6%D8%A7%D8%AA-%D8%AA%D8%B7%D9%88%D9%8A%D8%B1-%D9%85%D8%B9%D8%B2%D9%88%D9%84%D8%A9-%D9%84%D9%85%D8%B4%D8%B1%D9%88%D8%B9%D9%83-%D8%B9%D8%A8%D8%B1-virtualenv/</a></p>
<p>&nbsp;</p>
<p>كتبت مشروع ب Django 1.0 وسارت الأمور جيدا ولكن أحببت أن تكتب مشروع آخر ب Django 1.5 ويوجد تغييرات كثيرة ، فقد تقوم بعمل عدة أشياء تعتمد على إصدارات مختلفة من نفس الحزمة وهنا تحدث المشكلة. كيف يمكن تنصيب Django 1.0 و Django 1.5 في نفس الوقت ؟<br />
أو حتى غير متاح لك عبر الصلاحيات إضافة حزم على مستوى النظام ؟</p>
<p>system-wide installation<br />
المقصود بها هو التنصيب لتصبح مع المكتبات المعلومة على مستوى النظام ، ستجدها على سبيل المثال في مسار مثل<br />
/usr/lib64/python/site-packages<br />
وهذا مايتم فعله عندما تستخدم easy_install او pip</p>
<p>كالعادة يوجد لدينا حل ذكي وهو virtualenv وهي آداة تقوم بإنشاء بيئات مستقلة قائمة بذاتها لبايثون</p>
<p>أذهب الآن إلى سطر الأوامر وقم بتنفيذ</p>
<p>easy_install virtualenv<br />
easy_install pip</p>
<p>الآن بعض العمل</p>
<pre class="brush: python; title: ; notranslate">&lt;br /&gt;[striky@localhost mywspace]$ virtualenv sniply&lt;br /&gt;New python executable in sniply/bin/python&lt;br /&gt;Installing setuptools............done.&lt;br /&gt;Installing pip...............done.&lt;br /&gt;[striky@localhost mywspace]$ cd sn&lt;br /&gt;snapboard-read-only/ sniply/ &lt;br /&gt;[striky@localhost mywspace]$ cd sniply/&lt;/p&gt;&lt;p&gt;</pre>
<p>قمنا بإنشاء بيئة عمل جديدة بإسم sniply -المفترض إسم مشروع مشابه ل gist ويقوم بتصغير الرابط كذلك- عبر الأمر virtualenv<br />
لاحظ وجود setuptools إفتراضيا إذا أردت أن تستخدم distribute فقم بتمرير معامل &#8211;distribute للأمر virtualenv او قم بتعريف متغير<br />
$export VIRTUALENV_DISTRIBUTE=true</p>
<p>فلنظر لهيكلية البيئة التي تم إنشائها</p>
<pre class="brush: python; title: ; notranslate">&lt;br /&gt;[striky@localhost sniply]$ tree .&lt;br /&gt;.&lt;br /&gt;├── bin&lt;br /&gt;│   ├── activate&lt;br /&gt;│   ├── activate.csh&lt;br /&gt;│   ├── activate.fish&lt;br /&gt;│   ├── activate_this.py&lt;br /&gt;│   ├── easy_install&lt;br /&gt;│   ├── easy_install-2.7&lt;br /&gt;│   ├── pip&lt;br /&gt;│   ├── pip-2.7&lt;br /&gt;│   └── python&lt;br /&gt;├── include&lt;br /&gt;│   └── python2.7 -&amp;gt; /usr/include/python2.7&lt;br /&gt;├── lib&lt;br /&gt;│   └── python2.7&lt;br /&gt;│   ├── _abcoll.py -&amp;gt; /usr/lib64/python2.7/_abcoll.py&lt;br /&gt;│   ├── _abcoll.pyc&lt;br /&gt;│   ├── abc.py -&amp;gt; /usr/lib64/python2.7/abc.py&lt;br /&gt;│   ├── abc.pyc&lt;br /&gt;│   ├── codecs.py -&amp;gt; /usr/lib64/python2.7/codecs.py&lt;br /&gt;│   ├── codecs.pyc&lt;br /&gt;│   ├── config -&amp;gt; /usr/lib64/python2.7/config&lt;br /&gt;│   ├── copy_reg.py -&amp;gt; /usr/lib64/python2.7/copy_reg.py&lt;br /&gt;│   ├── copy_reg.pyc&lt;br /&gt;│   ├── distutils&lt;br /&gt;│   │   ├── distutils.cfg&lt;br /&gt;│   │   ├── __init__.py&lt;br /&gt;│   │   └── __init__.pyc&lt;br /&gt;│   ├── encodings -&amp;gt; /usr/lib64/python2.7/encodings&lt;br /&gt;│   ├── fnmatch.py -&amp;gt; /usr/lib64/python2.7/fnmatch.py&lt;br /&gt;│   ├── fnmatch.pyc&lt;br /&gt;│   ├── genericpath.py -&amp;gt; /usr/lib64/python2.7/genericpath.py&lt;br /&gt;│   ├── genericpath.pyc&lt;br /&gt;│   ├── lib-dynload -&amp;gt; /usr/lib64/python2.7/lib-dynload&lt;br /&gt;│   ├── linecache.py -&amp;gt; /usr/lib64/python2.7/linecache.py&lt;br /&gt;│   ├── linecache.pyc&lt;br /&gt;│   ├── locale.py -&amp;gt; /usr/lib64/python2.7/locale.py&lt;br /&gt;│   ├── no-global-site-packages.txt&lt;br /&gt;│   ├── ntpath.py -&amp;gt; /usr/lib64/python2.7/ntpath.py&lt;br /&gt;│   ├── orig-prefix.txt&lt;br /&gt;│   ├── os.py -&amp;gt; /usr/lib64/python2.7/os.py&lt;br /&gt;│   ├── os.pyc&lt;br /&gt;│   ├── posixpath.py -&amp;gt; /usr/lib64/python2.7/posixpath.py&lt;br /&gt;│   ├── posixpath.pyc&lt;br /&gt;│   ├── re.py -&amp;gt; /usr/lib64/python2.7/re.py&lt;br /&gt;│   ├── re.pyc&lt;br /&gt;│   ├── site-packages&lt;br /&gt;│   │   ├── easy-install.pth&lt;br /&gt;│   │   ├── pip-1.2.1-py2.7.egg&lt;br /&gt;│   │   │   ├── EGG-INFO&lt;br /&gt;│   │   │   │   ├── dependency_links.txt&lt;br /&gt;│   │   │   │   ├── entry_points.txt&lt;br /&gt;│   │   │   │   ├── not-zip-safe&lt;br /&gt;│   │   │   │   ├── PKG-INFO&lt;br /&gt;│   │   │   │   ├── SOURCES.txt&lt;br /&gt;│   │   │   │   └── top_level.txt&lt;br /&gt;│   │   │   └── pip&lt;br /&gt;│   │   │   ├── backwardcompat.py&lt;br /&gt;│   │   │   ├── backwardcompat.pyc&lt;br /&gt;│   │   │   ├── basecommand.py&lt;br /&gt;│   │   │   ├── basecommand.pyc&lt;br /&gt;│   │   │   ├── baseparser.py&lt;br /&gt;│   │   │   ├── baseparser.pyc&lt;br /&gt;│   │   │   ├── commands&lt;br /&gt;│   │   │   │   ├── bundle.py&lt;br /&gt;│   │   │   │   ├── bundle.pyc&lt;br /&gt;│   │   │   │   ├── completion.py&lt;br /&gt;│   │   │   │   ├── completion.pyc&lt;br /&gt;│   │   │   │   ├── freeze.py&lt;br /&gt;│   │   │   │   ├── freeze.pyc&lt;br /&gt;│   │   │   │   ├── help.py&lt;br /&gt;│   │   │   │   ├── help.pyc&lt;br /&gt;│   │   │   │   ├── __init__.py&lt;br /&gt;│   │   │   │   ├── __init__.pyc&lt;br /&gt;│   │   │   │   ├── install.py&lt;br /&gt;│   │   │   │   ├── install.pyc&lt;br /&gt;│   │   │   │   ├── search.py&lt;br /&gt;│   │   │   │   ├── search.pyc&lt;br /&gt;│   │   │   │   ├── uninstall.py&lt;br /&gt;│   │   │   │   ├── uninstall.pyc&lt;br /&gt;│   │   │   │   ├── unzip.py&lt;br /&gt;│   │   │   │   ├── unzip.pyc&lt;br /&gt;│   │   │   │   ├── zip.py&lt;br /&gt;│   │   │   │   └── zip.pyc&lt;br /&gt;│   │   │   ├── download.py&lt;br /&gt;│   │   │   ├── download.pyc&lt;br /&gt;│   │   │   ├── exceptions.py&lt;br /&gt;│   │   │   ├── exceptions.pyc&lt;br /&gt;│   │   │   ├── index.py&lt;br /&gt;│   │   │   ├── index.pyc&lt;br /&gt;│   │   │   ├── __init__.py&lt;br /&gt;│   │   │   ├── __init__.pyc&lt;br /&gt;│   │   │   ├── locations.py&lt;br /&gt;│   │   │   ├── locations.pyc&lt;br /&gt;│   │   │   ├── log.py&lt;br /&gt;│   │   │   ├── log.pyc&lt;br /&gt;│   │   │   ├── __main__.py&lt;br /&gt;│   │   │   ├── __main__.pyc&lt;br /&gt;│   │   │   ├── req.py&lt;br /&gt;│   │   │   ├── req.pyc&lt;br /&gt;│   │   │   ├── runner.py&lt;br /&gt;│   │   │   ├── runner.pyc&lt;br /&gt;│   │   │   ├── status_codes.py&lt;br /&gt;│   │   │   ├── status_codes.pyc&lt;br /&gt;│   │   │   ├── util.py&lt;br /&gt;│   │   │   ├── util.pyc&lt;br /&gt;│   │   │   └── vcs&lt;br /&gt;│   │   │   ├── bazaar.py&lt;br /&gt;│   │   │   ├── bazaar.pyc&lt;br /&gt;│   │   │   ├── git.py&lt;br /&gt;│   │   │   ├── git.pyc&lt;br /&gt;│   │   │   ├── __init__.py&lt;br /&gt;│   │   │   ├── __init__.pyc&lt;br /&gt;│   │   │   ├── mercurial.py&lt;br /&gt;│   │   │   ├── mercurial.pyc&lt;br /&gt;│   │   │   ├── subversion.py&lt;br /&gt;│   │   │   └── subversion.pyc&lt;br /&gt;│   │   ├── setuptools-0.6c11-py2.7.egg&lt;br /&gt;│   │   └── setuptools.pth&lt;br /&gt;│   ├── site.py&lt;br /&gt;│   ├── site.pyc&lt;br /&gt;│   ├── sre_compile.py -&amp;gt; /usr/lib64/python2.7/sre_compile.py&lt;br /&gt;│   ├── sre_compile.pyc&lt;br /&gt;│   ├── sre_constants.py -&amp;gt; /usr/lib64/python2.7/sre_constants.py&lt;br /&gt;│   ├── sre_constants.pyc&lt;br /&gt;│   ├── sre_parse.py -&amp;gt; /usr/lib64/python2.7/sre_parse.py&lt;br /&gt;│   ├── sre_parse.pyc&lt;br /&gt;│   ├── sre.py -&amp;gt; /usr/lib64/python2.7/sre.py&lt;br /&gt;│   ├── stat.py -&amp;gt; /usr/lib64/python2.7/stat.py&lt;br /&gt;│   ├── stat.pyc&lt;br /&gt;│   ├── types.py -&amp;gt; /usr/lib64/python2.7/types.py&lt;br /&gt;│   ├── types.pyc&lt;br /&gt;│   ├── UserDict.py -&amp;gt; /usr/lib64/python2.7/UserDict.py&lt;br /&gt;│   ├── UserDict.pyc&lt;br /&gt;│   ├── warnings.py -&amp;gt; /usr/lib64/python2.7/warnings.py&lt;br /&gt;│   ├── warnings.pyc&lt;br /&gt;│   ├── _weakrefset.py -&amp;gt; /usr/lib64/python2.7/_weakrefset.py&lt;br /&gt;│   └── _weakrefset.pyc&lt;br /&gt;└── lib64 -&amp;gt; ./lib&lt;/p&gt;&lt;p&gt;16 directories, 122 files&lt;/p&gt;&lt;p&gt;</pre>
<p>الآن ماذا ؟<br />
كما ترى في مجلد bin يوجد عدة ملفات تنفيذية مثل activate, easy_install, pip, python<br />
فكما خمنت قم بتفعيل تلك البيئة الإفتراضية المعزولة عبر activate</p>
<pre class="brush: python; title: ; notranslate">&lt;br /&gt;[striky@localhost sniply]$ source bin/activate&lt;br /&gt;(sniply)[striky@localhost sniply]$&lt;/p&gt;&lt;p&gt;</pre>
<p>لاحظ هنا وجود كلمة (sinply) اما مؤشر المستخدم لتشير إلى أنك داخل البيئة الإفتراضية sniply</p>
<p>للخرو ج من بيئة sniply بكل بساطة إستدعي الأمر deactivate</p>
<pre class="brush: python; title: ; notranslate">&lt;br /&gt;(sniply)[striky@localhost sniply]$ deactivate &lt;br /&gt;[striky@localhost sniply]$&lt;/p&gt;&lt;p&gt;</pre>
<p>قم بتنصيب ماتشاء</p>
<pre class="brush: python; title: ; notranslate">&lt;br /&gt;(sniply)[striky@localhost sniply]$ pip install flask&lt;br /&gt;</pre>
<p>مثلا سأقوم بتنصيب flask لكون النسخة التي تم تنصيبها على النظام قديمة قليلا</p>
<p>الناتج</p>
<pre class="brush: python; title: ; notranslate">&lt;br /&gt;(sniply)[striky@localhost sniply]$ ls lib64/python2.7/site-packages/&lt;br /&gt;easy-install.pth pip-1.2.1-py2.7.egg&lt;br /&gt;flask setuptools-0.6c11-py2.7.egg&lt;br /&gt;Flask-0.9-py2.7.egg-info setuptools.pth&lt;br /&gt;jinja2 werkzeug&lt;br /&gt;Jinja2-2.6-py2.7.egg-info Werkzeug-0.8.3-py2.7.egg-info&lt;/p&gt;&lt;p&gt;</pre>
<p>لاحظ أن تم تنصيب flask و الحزم المتعلقة بها على مستوى بيئة sniply وليست على مستوى النظام<br />
لنا لقاء آخر عن virtualenvwrapper</p>
<p><a href="http://www.virtualenv.org/en/latest/" rel="nofollow">http://www.virtualenv.org/en/latest/</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ahmedyoussef.wordpress.com/2013/04/26/%d9%83%d9%8a%d9%81-%d8%aa%d8%b3%d8%aa%d8%ae%d8%af%d9%85-virtualenv/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">785</post-id>
		<media:content url="https://1.gravatar.com/avatar/40146561ac818674df134ae25874e6da2a841394b8c650fd7cc958bc08a7d4ef?s=96&#38;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Striky</media:title>
		</media:content>
	</item>
		<item>
		<title>تحذير من بعض الجهلة والعنصريين في موقع مجتمع لينكس العربي</title>
		<link>https://ahmedyoussef.wordpress.com/2013/03/18/%d8%aa%d8%ad%d8%b0%d9%8a%d8%b1-%d9%85%d9%86-%d8%a8%d8%b9%d8%b6-%d8%a7%d9%84%d8%ac%d9%87%d9%84%d8%a9-%d9%88%d8%a7%d9%84%d8%b9%d9%86%d8%b5%d8%b1%d9%8a%d9%8a%d9%86-%d9%81%d9%8a-%d9%85%d9%88%d9%82%d8%b9/</link>
					<comments>https://ahmedyoussef.wordpress.com/2013/03/18/%d8%aa%d8%ad%d8%b0%d9%8a%d8%b1-%d9%85%d9%86-%d8%a8%d8%b9%d8%b6-%d8%a7%d9%84%d8%ac%d9%87%d9%84%d8%a9-%d9%88%d8%a7%d9%84%d8%b9%d9%86%d8%b5%d8%b1%d9%8a%d9%8a%d9%86-%d9%81%d9%8a-%d9%85%d9%88%d9%82%d8%b9/#comments</comments>
		
		<dc:creator><![CDATA[Ahmed Youssef]]></dc:creator>
		<pubDate>Mon, 18 Mar 2013 16:11:05 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://ahmedyoussef.wordpress.com/?p=766</guid>

					<description><![CDATA[وصلني هذا الرابط يتساءل فيه أحد الأشخاص عن مشاركات المرأة في ذلك الموقع   الغريب وجود ردود من بعض الساقطة لاتعبر إلا على مستوى كبير من العنصرية والجهل وللأسف من إدارين في هذا الموقع مثل   ان كنت إمراه فهذا السؤال لا رأس له ولا رجلين وان كنت رجلا فما حاجتك تبحث في امور النساء [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>وصلني هذا<a href="http://www.linuxac.org/forum/threads/62911-%D8%A7%D9%8A%D9%86-%D9%85%D8%B4%D8%A7%D8%B1%D9%83%D8%A9-%D8%A7%D9%84%D9%85%D8%B1%D8%A3%D8%A9-%D9%81%D9%89-%D9%85%D8%AC%D8%AA%D9%85%D8%B9-%D9%84%D9%8A%D9%86%D9%83%D8%B3-%D8%A7%D9%84%D8%B9%D8%B1%D8%A8%D9%89"> الرابط</a> يتساءل فيه أحد الأشخاص عن مشاركات المرأة في ذلك الموقع</p>
<p> </p>
<p>الغريب وجود ردود من بعض الساقطة لاتعبر إلا على مستوى كبير من العنصرية والجهل وللأسف من إدارين في هذا الموقع مثل</p>
<p> </p>
<p>ان كنت إمراه فهذا السؤال لا رأس له ولا رجلين وان كنت رجلا فما حاجتك تبحث في امور النساء ؟</p>
<p>&#8212;-</p>
<p>وأحد الساقطين ممن لانعلم له رأس من قدم كتب</p>
<p>&#8220;أنا معترض على المرأة ، فما الفائدة من العمل إذا كان الزوج متكفل بالبيت على أتم وجه ؟ <br />ولا أريد أن يظهر لنا قاسم أمين أخر في المنتدى ، رجاءً&#8221;</p>
<p>وأحد الساقطين الآخرين</p>
<p>&#8220;لم يبق للمرأة إلا أن تعمل مكانك&#8221;</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p> </p>
<p>وعلى ذلك فأنا أحذر من ذلك الموقع وأعضائه العنصريين مادام القائمين عليه متساهلين مع هذا التمييز  والعنصرية من بعض أشباه الرجال خاصة الإداريين منهم</p>
]]></content:encoded>
					
					<wfw:commentRss>https://ahmedyoussef.wordpress.com/2013/03/18/%d8%aa%d8%ad%d8%b0%d9%8a%d8%b1-%d9%85%d9%86-%d8%a8%d8%b9%d8%b6-%d8%a7%d9%84%d8%ac%d9%87%d9%84%d8%a9-%d9%88%d8%a7%d9%84%d8%b9%d9%86%d8%b5%d8%b1%d9%8a%d9%8a%d9%86-%d9%81%d9%8a-%d9%85%d9%88%d9%82%d8%b9/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">766</post-id>
		<media:content url="https://1.gravatar.com/avatar/40146561ac818674df134ae25874e6da2a841394b8c650fd7cc958bc08a7d4ef?s=96&#38;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Striky</media:title>
		</media:content>
	</item>
		<item>
		<title>تنصيب Ocaml و OPAM</title>
		<link>https://ahmedyoussef.wordpress.com/2013/01/29/%d8%aa%d9%86%d8%b5%d9%8a%d8%a8-ocaml-%d9%88-opam/</link>
					<comments>https://ahmedyoussef.wordpress.com/2013/01/29/%d8%aa%d9%86%d8%b5%d9%8a%d8%a8-ocaml-%d9%88-opam/#respond</comments>
		
		<dc:creator><![CDATA[Ahmed Youssef]]></dc:creator>
		<pubDate>Tue, 29 Jan 2013 10:27:47 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<category><![CDATA[ocaml]]></category>
		<category><![CDATA[opam]]></category>
		<guid isPermaLink="false">http://ahmedyoussef.wordpress.com/?p=764</guid>

					<description><![CDATA[لغة Ocaml لغة Functional (تدعم البرمجة الكائنية&#8211;هل سمعت عن F# لغة مايكروسوفت؟ استنسخت العديد من صفات Ocaml وأضافت إليها بعض التحسينات-)شهيرة جدا في نطاقها مثل Haskell و Lisp   سنتحدث اليوم عن كيفية التنصيب  ستجد Ocaml موجودة في مدير الحزم لديك وهذا ماكنت أستخدمه حتى فترة قريبة وأقوم بإضافة الحزم التي أريدها من مدير الحزم [&#8230;]]]></description>
										<content:encoded><![CDATA[<p dir="RTL" align="RIGHT"><span style="font-family:'Lohit Devanagari';">لغة </span>Ocaml <span style="font-family:'Lohit Devanagari';">لغة </span>Functional (<span style="font-family:'Lohit Devanagari';">تدعم البرمجة الكائنية</span>&#8211;<span style="font-family:'Lohit Devanagari';">هل سمعت عن </span>F# <span style="font-family:'Lohit Devanagari';">لغة مايكروسوفت؟ استنسخت العديد من صفات </span>Ocaml <span style="font-family:'Lohit Devanagari';">وأضافت إليها بعض التحسينات</span>-)<span style="font-family:'Lohit Devanagari';">شهيرة جدا في نطاقها مثل </span>Haskell <span style="font-family:'Lohit Devanagari';">و </span>Lisp</p>
<p dir="RTL" align="RIGHT"> </p>
<p dir="RTL" align="RIGHT"><span style="font-family:'Lohit Devanagari';">سنتحدث اليوم عن كيفية التنصيب</span></p>
<p dir="RTL" align="RIGHT"> <span style="font-family:'Lohit Devanagari';">ستجد </span>Ocaml <span style="font-family:'Lohit Devanagari';">موجودة في مدير الحزم لديك وهذا ماكنت أستخدمه حتى فترة قريبة وأقوم بإضافة الحزم التي أريدها من مدير الحزم بدون وجع دماغ ولكن سريعا ستجد أن بعض الحزم غير موجودة وعلى كل حال </span>Ocaml <span style="font-family:'Lohit Devanagari';">تقدم مدير حزم مثل </span>Gems <span style="font-family:'Lohit Devanagari';">او </span>Cabal <span style="font-family:'Lohit Devanagari';">لتقوم بإضافة وتحديث الحزم كما تشاء من مستودعات </span>ocaml</p>
<p dir="RTL" align="RIGHT"> </p>
<p dir="RTL" align="RIGHT"><span style="font-family:'Lohit Devanagari';">فقط كل ماعليك </span></p>
<pre><code><span style="color:#333333;"><span style="font-family:Monaco, Menlo, Consolas, 'Courier New', monospace;"><span style="font-size:small;">wget http://www.ocamlpro.com/pub/opam_installer.sh</span></span></span></code>
<code><span style="color:#333333;"><span style="font-family:Monaco, Menlo, Consolas, 'Courier New', monospace;"><span style="font-size:small;">sh ./opam_installer.sh /usr/local/bin</span></span></span></code></pre>
<p align="LEFT"> </p>
<p align="LEFT"> </p>
<p align="LEFT"> </p>
<p dir="RTL" align="RIGHT"><span style="font-family:'Lohit Devanagari';">بعد الإنتهاء هناك العديد من الأوامر مثل </span></p>
<p dir="RTL" align="RIGHT">opam info xxx</p>
<p dir="RTL" align="RIGHT">opam search xxx</p>
<p dir="RTL" align="RIGHT">opam install xxx</p>
<p dir="RTL" align="RIGHT">opam update</p>
<p dir="RTL" align="RIGHT">opam list</p>
<p dir="RTL" align="RIGHT"> </p>
<p dir="RTL" align="RIGHT">xxx <span style="font-family:'Lohit Devanagari';">هو إسم الحزمة التي تريدها</span></p>
<p dir="RTL" align="RIGHT"><span style="font-family:'Lohit Devanagari';">تستطيع كذلك إدارة عدد من الإصدارات ل </span>Ocaml <span style="font-family:'Lohit Devanagari';">عبر </span>opam switch &#8211;<span style="font-family:'Lohit Devanagari';">إستخدم دائما آخر إصدار</span>&#8211;</p>
<p dir="RTL" align="RIGHT"> </p>
<p dir="RTL" align="RIGHT"><a href="http://opam.ocamlpro.com/doc/Quick_Install.html">http://opam.ocamlpro.com/doc/Quick_Install.html</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://ahmedyoussef.wordpress.com/2013/01/29/%d8%aa%d9%86%d8%b5%d9%8a%d8%a8-ocaml-%d9%88-opam/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">764</post-id>
		<media:content url="https://1.gravatar.com/avatar/40146561ac818674df134ae25874e6da2a841394b8c650fd7cc958bc08a7d4ef?s=96&#38;d=https%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=G" medium="image">
			<media:title type="html">Striky</media:title>
		</media:content>
	</item>
	</channel>
</rss>
