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

<channel>
	<title>&#8235;ליאור שיאון - קיים משמע אני חושב.&#8236;</title>	<atom:link href="http://lior.sion.co.il/feed/" rel="self" type="application/rss+xml" />
	<link>http://lior.sion.co.il</link>
	<description>&#8235;קוד, טכנולוגיה, מחשבות.&#8236;</description>	<lastBuildDate>Thu, 11 Aug 2011 07:33:22 +0000</lastBuildDate>
	<language>he</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>&#8235;פייראפ ישראל עלה לאויר &#8211; פרוייקט קהילתי&#8236;</title>		<link>http://lior.sion.co.il/2011/08/11/%d7%a4%d7%99%d7%99%d7%a8%d7%90%d7%a4-%d7%99%d7%a9%d7%a8%d7%90%d7%9c-%d7%a2%d7%9c%d7%94-%d7%9c%d7%90%d7%95%d7%99%d7%a8-%d7%a4%d7%a8%d7%95%d7%99%d7%99%d7%a7%d7%98-%d7%a7%d7%94%d7%99%d7%9c%d7%aa%d7%99/</link>
		<comments>http://lior.sion.co.il/2011/08/11/%d7%a4%d7%99%d7%99%d7%a8%d7%90%d7%a4-%d7%99%d7%a9%d7%a8%d7%90%d7%9c-%d7%a2%d7%9c%d7%94-%d7%9c%d7%90%d7%95%d7%99%d7%a8-%d7%a4%d7%a8%d7%95%d7%99%d7%99%d7%a7%d7%98-%d7%a7%d7%94%d7%99%d7%9c%d7%aa%d7%99/#comments</comments>
		<pubDate>Thu, 11 Aug 2011 07:33:22 +0000</pubDate>
		<dc:creator>&#8235;ליאור&#8236;</dc:creator>				<category><![CDATA[django]]></category>
		<category><![CDATA[אינטרנט]]></category>
		<category><![CDATA[טכני]]></category>
		<category><![CDATA[פייתון]]></category>
		<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[תכנות]]></category>
		<category><![CDATA[junction]]></category>
		<category><![CDATA[pairup]]></category>
		<category><![CDATA[פייראפ]]></category>

		<guid isPermaLink="false">http://lior.sion.co.il/?p=585</guid>
		<description><![CDATA[&#8235;כשהייתי בjunction התפתח לו נוהג לפני כל פגישה לשאול אנשים אם הם מחפשים שותפים לסטארטפ, או מחפשים להצטרף כשותפים. המשפטים היו די ברורים: אני כך וכך, המיזם שלי עושה כך וכך, ואני חפש כך וכך. לא עבר זמן רב ונפתח אקסל משותף בגוגל שערך את כל הנתונים. הבעיה באקסל היתה שלא היתה דרך לנהל את התוכן, לראות [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>כשהייתי <a href="http://thejunction.co.il/" target="_blank">בjunction</a> התפתח לו נוהג לפני <a href="http://www.meetup.com/The-Junction/" target="_blank">כל פגישה</a> לשאול אנשים אם הם מחפשים שותפים לסטארטפ, או מחפשים להצטרף כשותפים. המשפטים היו די ברורים: אני כך וכך, המיזם שלי עושה כך וכך, ואני חפש כך וכך. לא עבר זמן רב ונפתח אקסל משותף בגוגל שערך את כל הנתונים.</p>
<p>הבעיה באקסל היתה שלא היתה דרך לנהל את התוכן, לראות ולהסיר פוסטים ישניםף לחפש בקלות וכו. בטיסה חזרה שלי מארה&quot;ב לפני שבועיים החלטתי לשנות את זה &#8211; ולפני שבוע העלתי לאויר את <a href="http://pairup.org.il/" target="_blank">pairup israel</a> - שמטרתו לעזור ליזמים ישראלים למצא שותפים &#8211; או סטארטפים להצטרף אליהם. כמובן שהאתר די מוגבל, כיאה לאתר שנכתב ב12 שעות טיסה (פחות שתי ארוחות וסרט) &#8211; אבל הפטנקציונליות הבסיסית נמצאת שם ואפשר לשפר בהמשך.</p>
<p>בנוסף העלתי את הפרוייקט כ<a href="https://github.com/liorsion/Pairup-Israel" target="_blank">קוד פתוח בגיטהב</a> - אם אתם מתכנתי פייטון ורוצים לתרום או לשפר את מוזמנים. את רובו כתבתי בצורה הכי דג'נגואית שיכולתי תוך שימוש בקלאסים בסיסים ככל האפשר &#8211; אני מקווה שיהיה אפשר ללמוד הרבה מהפרוייקט אם אתם מתכנתים מתחילים.</p>
<p>כולם מוזמנים..</p>
</div>]]></content:encoded>			<wfw:commentRss>http://lior.sion.co.il/2011/08/11/%d7%a4%d7%99%d7%99%d7%a8%d7%90%d7%a4-%d7%99%d7%a9%d7%a8%d7%90%d7%9c-%d7%a2%d7%9c%d7%94-%d7%9c%d7%90%d7%95%d7%99%d7%a8-%d7%a4%d7%a8%d7%95%d7%99%d7%99%d7%a7%d7%98-%d7%a7%d7%94%d7%99%d7%9c%d7%aa%d7%99/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8235;סטטיסטיקות דפדפנים, העולם וישראל, יולי 2011&#8236;</title>		<link>http://lior.sion.co.il/2011/08/07/%d7%a1%d7%98%d7%98%d7%99%d7%a1%d7%98%d7%99%d7%a7%d7%95%d7%aa-%d7%93%d7%a4%d7%93%d7%a4%d7%a0%d7%99%d7%9d-%d7%94%d7%a2%d7%95%d7%9c%d7%9d-%d7%95%d7%99%d7%a9%d7%a8%d7%90%d7%9c-%d7%99%d7%95%d7%9c%d7%99-2/</link>
		<comments>http://lior.sion.co.il/2011/08/07/%d7%a1%d7%98%d7%98%d7%99%d7%a1%d7%98%d7%99%d7%a7%d7%95%d7%aa-%d7%93%d7%a4%d7%93%d7%a4%d7%a0%d7%99%d7%9d-%d7%94%d7%a2%d7%95%d7%9c%d7%9d-%d7%95%d7%99%d7%a9%d7%a8%d7%90%d7%9c-%d7%99%d7%95%d7%9c%d7%99-2/#comments</comments>
		<pubDate>Sun, 07 Aug 2011 18:26:30 +0000</pubDate>
		<dc:creator>&#8235;ליאור&#8236;</dc:creator>				<category><![CDATA[טכני]]></category>
		<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[דפדפנים]]></category>
		<category><![CDATA[כרום]]></category>
		<category><![CDATA[פיירפוקס]]></category>

		<guid isPermaLink="false">http://lior.sion.co.il/?p=575</guid>
		<description><![CDATA[&#8235;העולם אקסלפורר ממשיך בירידה האיטית אך קבועה, ירידה של 43.5% ל41.8 מסך כל הדפדפנים. פיירפוקס עדיין במקום השני אך עם ירידה מזערית של 0.2%, בעוד כרום ממשיך להתחזק מ20.6% 22.7%. סאפארי נשאר מאחור עם 5%, ועוד קצת לאופרה. לא בשינוי גדול. מבחינת תתי-גרסאות, חשוב לראות שIE8 מתחיל לרדת, הרבה כנראה לטובת IE9 (מאבד מעל שני [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><h2><a href="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-mobile_browser-IL-monthly-201106-201108.jpg"><img class="aligncenter size-full wp-image-582" title="StatCounter-mobile_browser-IL-monthly-201106-201108" src="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-mobile_browser-IL-monthly-201106-201108.jpg" alt="" width="854" height="500" /></a>העולם</h2>
<p>אקסלפורר ממשיך בירידה האיטית אך קבועה, ירידה של 43.5% ל41.8 מסך כל הדפדפנים. פיירפוקס עדיין במקום השני אך עם ירידה מזערית של 0.2%, בעוד כרום ממשיך להתחזק מ20.6% 22.7%. סאפארי נשאר מאחור עם 5%, ועוד קצת לאופרה. לא בשינוי גדול.</p>
<p style="text-align: center;"><a href="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-browser-ww-monthly-201106-201108.jpg"><img class="size-full wp-image-577 aligncenter" title="StatCounter-browser-ww-monthly-201106-201108" src="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-browser-ww-monthly-201106-201108.jpg" alt="" width="854" height="500" /></a></p>
<p>מבחינת תתי-גרסאות, חשוב לראות שIE8 מתחיל לרדת, הרבה כנראה לטובת IE9 (מאבד מעל שני אחוזים מול גדל באחוז וחצי), כשפיירפוקס 5 תופס את מקומו הטבעי בראש דפדפני הפיירפוקס, רגע לפני שגירסה 6 יוצאת לאויר.</p>
<p>בגלישה המובילית בעולם, אופרה (שמופיע בהרבה טלפונים ישנים) עדיין מוביל אבל הבכורה הולכת ונעלמת בירידה מ22.8% ל21.6, בעוד אנדרואיד עולה 17.25% ל19.5 (!). שאר מערכות ההפעלה נשארות פחות או יותר אותו הדבר, כשאייפון מראה ירידה (!) קלה מ15.2 ל14.6%.</p>
<p><a href="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-mobile_browser-ww-monthly-201106-201108.jpg"><img class="aligncenter size-full wp-image-576" title="StatCounter-mobile_browser-ww-monthly-201106-201108" src="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-mobile_browser-ww-monthly-201106-201108.jpg" alt="" width="854" height="500" /></a></p>
<h2>ארה&quot;ב וצפון אמריקה</h2>
<p>כאן הסיפור קצת שונה ואולי קצת מסביר למה הסיפורים ששומעים באתרי חדשות מובילים שונים מהסטטיסטיקות למעלה. במובייל האנדוריד מוביל וקופץ הרבה מאוד מ29.5% ל33.9%, והאייפון במקום השני עם עלייה של 1.5% (24 לערך ל25.5%). מענין לראות את המשך הנפילה של הבלקברי, כשרים פשוט לא מוצאים תשובה למה שוקרה בעולם שלהם, ויורדים הלאה מ16.2% ל14.2%, ומתחילים להתקרב למקום הרביעי של האייפוד טץ'.</p>
<p><a href="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-mobile_browser-na-monthly-201106-201108.jpg"><img class="aligncenter size-full wp-image-578" title="StatCounter-mobile_browser-na-monthly-201106-201108" src="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-mobile_browser-na-monthly-201106-201108.jpg" alt="" width="854" height="500" /></a></p>
<p>בדפדפנים הסיפור יותר דומה למה שקורה בעולם עם מספרים שונים. אקספלורר עדיין מאוד פופולרי, יותר מאשר באופן כללי בעולם, אבל גם הוא יורד (46.6% ל44.8%). פיירפוקס שומר פלוס מינוס על יציבות, וכרום לוקח את כל מה שמייקרוסופט יכולה לתת מ16.9% ל18.6%). סאפארי פופולרי הרבה יותר בארה&quot;ב עם 10% מסך הגולשים.</p>
<p><a href="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-browser-na-monthly-201106-201108.jpg"><img class="aligncenter size-full wp-image-580" title="StatCounter-browser-na-monthly-201106-201108" src="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-browser-na-monthly-201106-201108.jpg" alt="" width="854" height="500" /></a></p>
<h2>בישראל</h2>
<p>המצב ממשיך להיות מדכא למפתחי ומעצבי אתרים כשאקספלורר עדיין שולט ביד רמה עם כי עם ירידה של 1.5% ל56.7%. בישראל כרום הוא דווקא הדפדפן השני הפופולרי, בעלייה של 2% מ27 ל29%, כשירידה של אחוז בפיירפוקס תורמת גם היא לעלייה הזו. פיירפוקס פשוט לא תופס כאן והוא יושב על 11.4% בלבד.</p>
<p><a href="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-browser-IL-monthly-201106-201108.jpg"><img class="aligncenter size-full wp-image-581" title="StatCounter-browser-IL-monthly-201106-201108" src="http://lior.sion.co.il/wp-content/uploads/2011/08/StatCounter-browser-IL-monthly-201106-201108.jpg" alt="" width="854" height="500" /></a></p>
<p>בעולם המובייל בישראל האייפון שולט בגדול עם עלייה מ43.3% ל46.2 אחוזים מסך כל הגלישה הסלולרית בארץ. מדהים פשוט. האנדרואיד מתחיל לקבל תאוצה עם עליה מ29.5 ל34, כשנוקייה, שחקנית עבר חשובה כאן, ממשיכה לאבד גובה ו3% שלמים.</p>
</div>]]></content:encoded>			<wfw:commentRss>http://lior.sion.co.il/2011/08/07/%d7%a1%d7%98%d7%98%d7%99%d7%a1%d7%98%d7%99%d7%a7%d7%95%d7%aa-%d7%93%d7%a4%d7%93%d7%a4%d7%a0%d7%99%d7%9d-%d7%94%d7%a2%d7%95%d7%9c%d7%9d-%d7%95%d7%99%d7%a9%d7%a8%d7%90%d7%9c-%d7%99%d7%95%d7%9c%d7%99-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8235;מתכנת מעל גיל 45? הסתבכת&#8236;</title>		<link>http://lior.sion.co.il/2011/06/18/%d7%9e%d7%aa%d7%9b%d7%a0%d7%aa-%d7%9e%d7%a2%d7%9c-%d7%92%d7%99%d7%9c-45-%d7%94%d7%a1%d7%aa%d7%91%d7%9b%d7%aa/</link>
		<comments>http://lior.sion.co.il/2011/06/18/%d7%9e%d7%aa%d7%9b%d7%a0%d7%aa-%d7%9e%d7%a2%d7%9c-%d7%92%d7%99%d7%9c-45-%d7%94%d7%a1%d7%aa%d7%91%d7%9b%d7%aa/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 03:20:10 +0000</pubDate>
		<dc:creator>&#8235;ליאור&#8236;</dc:creator>				<category><![CDATA[מחשבות]]></category>
		<category><![CDATA[עולם וחדשות]]></category>
		<category><![CDATA[תכנות]]></category>
		<category><![CDATA[גילי נחום]]></category>
		<category><![CDATA[משה קפלן]]></category>
		<category><![CDATA[רברסים]]></category>
		<category><![CDATA[רוורסים]]></category>

		<guid isPermaLink="false">http://lior.sion.co.il/?p=572</guid>
		<description><![CDATA[&#8235;פודקסט טוב נוסף של רברסים (האמת, המחלקה הסגורה, אבל מאיזו סיבה לא ברורה החליטו לא להפריד בין השניים) התחיל דיון מענין על מתכנתים מבוגרים יחסית (גילי קבע את הגיל 45 כמספר החשוב, אבל זה פחות משנה), והוביל אותי לפוסט הזה של משה קפלן, ומשהו בו הטריד אותי מאוד. משה בחור חכם שכותב יפה. הוא אוהב [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p><a href="http://www.reversim.com/2011/06/102-final-class-7.html#comments" target="_blank"><a href="http://lior.sion.co.il/wp-content/uploads/2011/06/old-man-thoughts.jpg"><img class="alignright size-full wp-image-573" style="margin: 20px; border: 1px solid black;" title="old-man-thoughts" src="http://lior.sion.co.il/wp-content/uploads/2011/06/old-man-thoughts.jpg" alt="" width="234" height="350" /></a>פודקסט טוב נוסף של רברסים</a> (האמת, המחלקה הסגורה, אבל מאיזו סיבה לא ברורה החליטו לא להפריד בין השניים) התחיל דיון מענין על מתכנתים מבוגרים יחסית (<a href="http://gilinachum.com/wp/" target="_blank">גילי</a> קבע את הגיל 45 כמספר החשוב, אבל זה פחות משנה), והוביל אותי ל<a href="http://blogs.microsoft.co.il/blogs/vprnd/archive/2011/05/26/837752.aspx?utm_source=feedburner&amp;utm_medium=feed&amp;utm_campaign=Feed%3A+vprndhandbook+%28%D7%94%D7%91%D7%9C%D7%95%D7%92+%D7%94%D7%A4%D7%AA%D7%95%D7%97+%D7%9C%D7%9E%D7%A0%D7%94%D7%9C+%D7%94%D7%A4%D7%99%D7%AA%D7%95%D7%97%29" target="_blank">פוסט הזה </a>של משה קפלן, ומשהו בו הטריד אותי מאוד.</p>
<p>משה בחור חכם שכותב יפה. הוא אוהב את שיטת הפוסטים הרשימתית (<a href="http://www.problogger.net/archives/2005/12/30/tens-tips-for-writing-a-blog-post/" target="_blank">כי ככה צריך לכתוב פוסטים טובים</a>), ואני חייב לציין שלרוב אני אוהב לקרא את הרשימות האלה, הן מדוייקות, מעניינות ומוסיפות לי ידע. אבל הפעם משהו לא הקליק לי נכון, ניסיתי להבין מה ולכן החלטתי לכתוב את הפוסט הזה.</p>
<p>הבעיה עם אנשי תוכנה מבוגרים לא פשוטה. היא קשורה, בין השאר, לעובדה שהתחום שלנו כולו הוא צעיר, משתנה מאוד, וחוקים כללים עדיין לא ברורים בו. האם נסיון של עשרות שנים רלוונטי תמיד בעולם של פרדיגמות משתנות? מהי החשיבות של עדכנות מיידית בטכנולוגיות חדשות, ומהי החשיבות (במיוחד בעולם הווב) של שימוש אישי בשירותים חדשים (האם תוכל להיות מתכנת טוב אם אתה לא משתמש בפייסבוק? אם לא ראית את טרנטייבל?) &#8211; ואולי החשוב ביותר: בעולם הסטארטאפים המשתנה הדגש על חברתיות, כיף בעבודה ושיטות ניהול חדשות הוא גדול מאוד &#8211; האם באמת התירוץ הקבוע של &quot;חוסר התאמה לאופי החברה&quot; הוא כל כך לא רלוונטי?</p>
<p>יש הרבה תשובות טובות לשאלות האלה, יש מספר דיונים שיכולים לצאת מהן. יש אנשים שתמיד נשארים מעודכנים, פשוט כי הם אוהבים את מה שהם עושים. יש אנשים שבודקים כל דבר חדש שיוצא, ויכולים לספר לך לא רק מה חדש שם, אלא מי עשה את זה בעבר, טוב יותר או רע יותר, מה ההבדלים ולמה זה עבד וההוא לא. כאן הנסיון של השנים מתחיל לעבוד חזק, ומצאתי שאנשים כאלה נתקלים פחות בבעיה של &quot;חוסר התאמה&quot;, אולי משום שהם יותר מתאימים גם ברוחם לאנשים צעירים? &#8211; מה שמגדיל את החשד שלי שחוסר ההתאמה הזו מוצדקת לעיתים ואינה קשורה ישירות לגיל &#8211; אלא לתרגיל.</p>
<p>הבעיה בפוסט של משה שהוא לא מסביר את האתגר בצורה נכונה אלא רק נותן את הפתרון, ומי שיעשה את מה שהוא אומר בצורה עיוורת לא יקבל תוצאות טובות מספיק. רן מזכיר את זה בפודקאסט בצורה יותר כללית: אם אתה אוהב מה שאתה עושה, קורא כל הזמן, נשאר מעודכן, תהיה בסדר. אני מסכים עם הגישה הזו. מישהו שואל שם (לא זיהיתי את הקול, אני חושב שזה גילי) אם זה לא מתיש עם הזמן &#8211; ועונים לו שלא. לזה אני לא מסכים: לפעמים זה מתיש. לפעמים אתה רוצה קצת לנוח ולתת חתיכת קוד טובה ולא לחשוב מעבר, אבל זה לא המקצוע שלנו. המקצוע שלנו דורש עדכון מתמיד. לפעמים זה מרגיש כמו רדיפה, אבל זה מה שאנחנו עושים. קוד פתוח משתנה מהר, תאהבו את זה או תשנאו את זה.</p>
<p>מה שחשוב זה להבין את העולם הזה, לקבל אותו ולרוץ איתו. זמן ונסיון בלבד לא הופכים אותך למתכנת טוב. אולי זו פרדיגמה שעבדה במקומות אחרים, אולי גם זה מעולם לא היה נכון, אבל אם אתם מתכנתים ורואים עצמכם עובדים במקצוע בעתיד &#8211; עשו לעצמכם טובה והפנימו את הדבר ה&quot;קטן&quot; הזה. אתם חייבים להתקרב לעולם התכנות כל יום מחדש כאילו הוא היום הראשון. לבדוק, להתעדכן, ללמוד. להשתתף.</p>
</div>]]></content:encoded>			<wfw:commentRss>http://lior.sion.co.il/2011/06/18/%d7%9e%d7%aa%d7%9b%d7%a0%d7%aa-%d7%9e%d7%a2%d7%9c-%d7%92%d7%99%d7%9c-45-%d7%94%d7%a1%d7%aa%d7%91%d7%9b%d7%aa/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>&#8235;Django Unit Test על דאטהבייס חלופי&#8236;</title>		<link>http://lior.sion.co.il/2011/06/11/django-unit-test-%d7%a2%d7%9c-%d7%93%d7%90%d7%98%d7%94%d7%91%d7%99%d7%99%d7%a1-%d7%97%d7%9c%d7%95%d7%a4%d7%99/</link>
		<comments>http://lior.sion.co.il/2011/06/11/django-unit-test-%d7%a2%d7%9c-%d7%93%d7%90%d7%98%d7%94%d7%91%d7%99%d7%99%d7%a1-%d7%97%d7%9c%d7%95%d7%a4%d7%99/#comments</comments>
		<pubDate>Sat, 11 Jun 2011 14:12:37 +0000</pubDate>
		<dc:creator>&#8235;ליאור&#8236;</dc:creator>				<category><![CDATA[django]]></category>
		<category><![CDATA[טכני]]></category>
		<category><![CDATA[פייתון]]></category>
		<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[תכנות]]></category>
		<category><![CDATA[postgres]]></category>
		<category><![CDATA[unit test]]></category>
		<category><![CDATA[בדיקות]]></category>

		<guid isPermaLink="false">http://lior.sion.co.il/?p=567</guid>
		<description><![CDATA[&#8235;הפוסט הזה הוא מעין פוסט למתקדמים &#8211; למרות שרציתי לכתוב פוסט למתחילים על בדיקות עצמיות ויוניט טסטס, לא מצאתי את הזמן לצערי, ואפילו את הפוסט הזה כבר תכננתי לכתוב לפני שלושה חודשים כמעט, ורק היום כשאני מחכה לסיום בדיקות של גירסה חדשה של האתר, וכן להעלאת קבצים באתר אחר, החלטתי להתיישב על זה. למרות שהפוסט [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>הפוסט הזה הוא מעין פוסט למתקדמים &#8211; למרות שרציתי לכתוב פוסט למתחילים על בדיקות עצמיות ויוניט טסטס, לא מצאתי את הזמן לצערי, ואפילו את הפוסט הזה כבר תכננתי לכתוב לפני שלושה חודשים כמעט, ורק היום כשאני מחכה לסיום בדיקות של גירסה חדשה של האתר, וכן להעלאת קבצים באתר אחר, החלטתי להתיישב על זה. למרות שהפוסט מדבר על שלוש שיטות אני כותב את הראשונה ומקווה לכתוב את השאר בעתיד הקרוב (שבוע שבועיים).</p>
<p>רציתי לתאר שלוש שיטות שונות שמתגברות על בעיות מאוד ספציפיות בדיקות unit test בdjango הקשורות לסביבות שאתם עובדים בהן. אלה לא בהכרח בעיות שכולם נתקלים בהן, ומתי שכן הפתרון הוא חד פעמי, ועדיין, חשוב לכתוב אותו ואולי לשמוע דעות של אחרים על הפתרון ועל אלטרנטיבות אחרות.</p>
<h2>בדיקות על POSTGRES</h2>
<p>Django מגיע עם דאטהבייס sqlite המיועד לפיתוח בלבד, עובד חזק בזכרון ולא תומך כל כך טוב בכמה משתמשים בו זמנית &#8211; אבל הוא קל ומהיר. הבעיה מתחילה שבעולם האמיתי אתם משתמשים במוצר אחר (אני משתמש כרגע בpostgres) ויש חוסר תאימות בחלק מהמוצרים או בביצועים. אני לא אכנס להחלטה האם כדאי לפתח על אותה סביבה של המוצר, עד כמה רחוק ללכת וכו. רק אציין שאצלי אכן עברתי מsqlite לpostgres בפיתוח, ואז מתקלתי בבעיה: בכל תחילת ריצה מנוע הבדיקות של django מבקש למחוק את בסיס הנתונים כדי להתחיל נקי.. אופס! לא רציתי את זה כי בסיס הנתונים מכיל מידע שאני אוהב לבדוק איתו בבדיקות הידניות.. אבל אני רוצה גם וגם!</p>
<p><strong>הפתרון</strong>: קובץ קונפיגורציה שונה (או נוסף) לבדיקות. ממילא היו לי שני קבצים (local, production) החלטתי להוסיף קובץ שלישי שכל מטרתו לקנפג בסיס נתונים חדש:</p>
<p>במקרה שלי מכל מיני סיבות החלטתי שהקובץ ירש מהקובץ המקומי (קובץ הproduction) מקבל כל מיני נתונים שלא תלויים בי ולא רציתי לשמור את התלות הזו), ואז פשוט להוסיף את השורות הבאות שמשנות את הנתונים שחשובים לי:</p>
<pre dir="ltr">try:
from settings import *
except ImportError:
pass

<code dir="ltr">EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'</code>

<code dir="ltr">DATABASES = {
'default': {
# Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'ENGINE': 'django.db.backends.sqlite3',
'NAME': project/dev.db',                      # Or path to database file if using sqlite3.
'USER': '',                      # Not used with sqlite3.
'PASSWORD': '',                  # Not used with sqlite3.
'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
'PORT': '',
},
}</code></pre>
<p dir="ltr"><code dir="ltr">&lt;p style="text-align: right;"&gt;&lt;code dir="ltr"&gt; </code><br />
בשילוב עם <a href="http://lior.sion.co.il/2011/03/16/%D7%93%D7%92%D7%A0%D7%92%D7%95-%D7%9C%D7%94%D7%A8%D7%99%D7%A5-%D7%91%D7%93%D7%99%D7%A7%D7%95%D7%AA-%D7%A8%D7%A7-%D7%A2%D7%9C-%D7%94%D7%97%D7%9C%D7%A7%D7%99%D7%9D-%D7%A9%D7%9C%D7%9A/">הרצה של הבדיקות רק על החלקים שלי</a>, פקודת הבדיקה תהיה:</p>
<pre dir="ltr">./manage.py test_watook --settings test-settings</pre>
<p style="text-align: right;">בעיה שנייה</p>
<p></code></p>
</div>]]></content:encoded>			<wfw:commentRss>http://lior.sion.co.il/2011/06/11/django-unit-test-%d7%a2%d7%9c-%d7%93%d7%90%d7%98%d7%94%d7%91%d7%99%d7%99%d7%a1-%d7%97%d7%9c%d7%95%d7%a4%d7%99/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>&#8235;סטטיסטיקות דפדפנים, העולם וישראל, מאי 2011&#8236;</title>		<link>http://lior.sion.co.il/2011/06/04/%d7%a1%d7%98%d7%98%d7%99%d7%a1%d7%98%d7%99%d7%a7%d7%95%d7%aa-%d7%93%d7%a4%d7%93%d7%a4%d7%a0%d7%99%d7%9d-%d7%94%d7%a2%d7%95%d7%9c%d7%9d-%d7%95%d7%99%d7%a9%d7%a8%d7%90%d7%9c-%d7%9e%d7%90%d7%99-2011/</link>
		<comments>http://lior.sion.co.il/2011/06/04/%d7%a1%d7%98%d7%98%d7%99%d7%a1%d7%98%d7%99%d7%a7%d7%95%d7%aa-%d7%93%d7%a4%d7%93%d7%a4%d7%a0%d7%99%d7%9d-%d7%94%d7%a2%d7%95%d7%9c%d7%9d-%d7%95%d7%99%d7%a9%d7%a8%d7%90%d7%9c-%d7%9e%d7%90%d7%99-2011/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 03:54:01 +0000</pubDate>
		<dc:creator>&#8235;ליאור&#8236;</dc:creator>				<category><![CDATA[טכני]]></category>
		<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[chrome]]></category>
		<category><![CDATA[explorer]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[דפדפנים]]></category>
		<category><![CDATA[כרום]]></category>
		<category><![CDATA[פיירפוקס]]></category>

		<guid isPermaLink="false">http://lior.sion.co.il/?p=559</guid>
		<description><![CDATA[&#8235;אתר הסטטיסטיקות statcounter מפרסם בזמן אמת מספרים שונים על מה באמת משתמשים האנשים בעולם ובכל מדינה מבחינת דפדפנים. לרובכם זה אולי מענין ואולי לא, תלוי אם אתם טכנולוגיים או סתם חובבי מספרים, אבל אם אתם מפתחי אתרים הידיעה של מה משתמשים אנשים, בעיקר בשביל לדעת איזה אפשרויות עומדות בפניכם (html5?), ומהם הטרנדים &#8211; חשובה ביותר. [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>אתר הסטטיסטיקות <a href="http://gs.statcounter.com/" target="_blank">statcounter</a> מפרסם בזמן אמת מספרים שונים על מה באמת משתמשים האנשים בעולם ובכל מדינה מבחינת דפדפנים. לרובכם זה אולי מענין ואולי לא, תלוי אם אתם טכנולוגיים או סתם חובבי מספרים, אבל אם אתם מפתחי אתרים הידיעה של מה משתמשים אנשים, בעיקר בשביל לדעת איזה אפשרויות עומדות בפניכם (html5?), ומהם הטרנדים &#8211; חשובה ביותר. שאלה שעולה בפורומים שוב ושוב היא מתי אפשר להתחיל לפתח בhml5 לרשת &#8211; כשבעיקרה השאלה היא: מתי כבר לא יהיה אינטרנט אקספלורר מתחת גירסה 9 (התשובה: לא בקרוב, בגלל שגירסה 9 לא תומכת בפחות מווינדוס 7).</p>
<h2>בעולם</h2>
<p>אקספלורר שולט (טטטת) עדיין וכמעט ללא שינוי בגירסה 8 &#8211; מסתובב סביב 30%. בגלל הבעיה של גירסת הווינדוס של אקספלורר 9, המספר הזה ירד לאט לאט (כשאנשים ישדרגו מערכת הפעלה או יעברו לדפדפנים מתקדמים אחרים) אבל לא מהר.  ישר אחריו פיירפוקס 3.6 שנופל נפילה רצינית בחודשיים האחרונים ממ24% ל12%, כשפיירפוקס 4 מקבל קפיצה מ3% ל14%, מה שאומר שפחות או יותר, פיירפוקס לא איבד משתמשים אלא רק קיבל שדרוגים.</p>
<p><a href="http://lior.sion.co.il/wp-content/uploads/2011/06/StatCounter-browser-ww-monthly-201005-201105.jpg"><img class="alignright size-full wp-image-561" title="StatCounter-browser-ww-monthly-201005-201105" src="http://lior.sion.co.il/wp-content/uploads/2011/06/StatCounter-browser-ww-monthly-201005-201105.jpg" alt="" width="854" height="500" /></a></p>
<p><!-- You may change the values of width and height above to resize the chart --></p>
<p>Source: <a href="http://gs.statcounter.com/#browser_version-ww-monthly-201005-201105">StatCounter Global Stats &#8211; Browser Version Market Share</a></p>
<p><script src="http://www.statcounter.com/js/FusionCharts.js" type="text/javascript"></script><script src="http://gs.statcounter.com/chart.php?browser_version-ww-monthly-201005-201105" type="text/javascript"></script></p>
<p>הבעיה בטבלה באופן כללי היא שכרום מקבלת שידרוגים אוטומטיים כל 6 שבועות בערך, וכמעט כולם משדרגים, כך שמספרי הגרסאות לאורך חודש מאוד ספוראדיים. אם נסתכל במספרים ללא גירסאות, כרום נמצא במקום השלישי  ומתחיל להראות סגירה על אקספלורר ופיירפוקס יחד:</p>
<p><a href="http://lior.sion.co.il/wp-content/uploads/2011/06/StatCounter-browser_version-ww-monthly-201005-201105.jpg"><img class="alignright size-full wp-image-562" title="StatCounter-browser_version-ww-monthly-201005-201105" src="http://lior.sion.co.il/wp-content/uploads/2011/06/StatCounter-browser_version-ww-monthly-201005-201105.jpg" alt="" width="854" height="500" /></a></p>
<p><!-- You may change the values of width and height above to resize the chart --></p>
<p>Source: <a href="http://gs.statcounter.com/#browser-ww-monthly-201005-201105">StatCounter Global Stats &#8211; Browser Market Share</a></p>
<h2>בישראל</h2>
<p>כאן המצב שונה קצת, כשכרום במקום השני הבטוח והולך וסוגר על אקספלורר, שעדיין מחזיק ב59% מהשוק (הרבה יותר מאשר בעולם). הקמפיין נגד אקספלורר 6 (והעובדה שאולי כאן משדרגים ווינדוס, נו, טיפה יותר מהר) הוריד את המספר הממוצע לפחות מ4%, כך שאפשר לומר באופן כללי שאפשר להסיר תמיכה בדפדפן הזה (באתרים שלי, דרך אגב, המספרים קצת שונים אבל עדיין מדברים על בין 4-6%, תלוי בקהל).</p>
<p><a href="http://lior.sion.co.il/wp-content/uploads/2011/06/StatCounter-browser_version-IL-monthly-201005-201105.jpg"><img class="alignright size-full wp-image-564" title="StatCounter-browser_version-IL-monthly-201005-201105" src="http://lior.sion.co.il/wp-content/uploads/2011/06/StatCounter-browser_version-IL-monthly-201005-201105.jpg" alt="" width="854" height="500" /></a></p>
<p>&nbsp;</p>
<p><!-- You may change the values of width and height above to resize the chart --></p>
<p>Source: <a href="http://gs.statcounter.com/#browser_version-IL-monthly-201005-201105">StatCounter Global Stats &#8211; Browser Version Market Share</a></p>
<p><script src="http://www.statcounter.com/js/FusionCharts.js" type="text/javascript"></script><script src="http://gs.statcounter.com/chart.php?browser_version-IL-monthly-201005-201105" type="text/javascript"></script><br />
מענין לראות שie9 עדיין לא פעיל בכלל בשוק המקומי.</p>
<p>עוד נקודה קטנה: בשוק הישראלי iphone שולט (אולי עם קצת עזרה מהipad) בתחום הסלולרי. נוקייה (מיקרוסופט?) רגע אחרי, ורק אז אנדרואיד. בעולם נוקייה ראשונה, אח&quot;כ ios, blackberry ורק אז אנדרויד.</p>
<p><a href="http://lior.sion.co.il/wp-content/uploads/2011/06/StatCounter-mobile_os-IL-monthly-201005-201105-bar.jpg"><img class="alignright size-full wp-image-563" title="StatCounter-mobile_os-IL-monthly-201005-201105-bar" src="http://lior.sion.co.il/wp-content/uploads/2011/06/StatCounter-mobile_os-IL-monthly-201005-201105-bar.jpg" alt="" width="774" height="500" /></a></p>
<p><script src="http://www.statcounter.com/js/FusionCharts.js" type="text/javascript"></script><script src="http://gs.statcounter.com/chart.php?browser-ww-monthly-201005-201105" type="text/javascript"></script></p>
</div>]]></content:encoded>			<wfw:commentRss>http://lior.sion.co.il/2011/06/04/%d7%a1%d7%98%d7%98%d7%99%d7%a1%d7%98%d7%99%d7%a7%d7%95%d7%aa-%d7%93%d7%a4%d7%93%d7%a4%d7%a0%d7%99%d7%9d-%d7%94%d7%a2%d7%95%d7%9c%d7%9d-%d7%95%d7%99%d7%a9%d7%a8%d7%90%d7%9c-%d7%9e%d7%90%d7%99-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8235;היום האחרון בjunction 32&#8236;</title>		<link>http://lior.sion.co.il/2011/05/30/%d7%94%d7%99%d7%95%d7%9d-%d7%94%d7%90%d7%97%d7%a8%d7%95%d7%9f-%d7%91junction-32/</link>
		<comments>http://lior.sion.co.il/2011/05/30/%d7%94%d7%99%d7%95%d7%9d-%d7%94%d7%90%d7%97%d7%a8%d7%95%d7%9f-%d7%91junction-32/#comments</comments>
		<pubDate>Mon, 30 May 2011 10:39:38 +0000</pubDate>
		<dc:creator>&#8235;ליאור&#8236;</dc:creator>				<category><![CDATA[Kidous]]></category>
		<category><![CDATA[יזמות]]></category>
		<category><![CDATA[genesis partners]]></category>
		<category><![CDATA[junction]]></category>

		<guid isPermaLink="false">http://lior.sion.co.il/?p=555</guid>
		<description><![CDATA[&#8235;די, שלושה חודשים עברו להם מהר, כתבתי הרבה פחות פוסטים אבל קידוס באויר (אמנם עדיין תחת בדיקות מעמיקות אבל באויר), והיםו האחרון שלנו בג'נקשן32 הגיע. הרבה אנשים שואלים אותי מה זה ולא בדיוק מבינים.. הצומת היא חלל אורבני שנוצר ע&#34;י קרן הון הסיכון ג'נסיס לסטארטאפיסטים תחת הרדר ותחת הוצאות כספיות גדלות, ומאפשר לנו לקבל משרד משלנו [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>די, שלושה חודשים עברו להם מהר, כתבתי הרבה פחות פוסטים אבל <a href="http://kidous.com" target="_blank">קידוס</a> באויר (אמנם עדיין תחת בדיקות מעמיקות אבל באויר), והיםו האחרון שלנו בג'נקשן32 הגיע.</p>
<p><a href="http://lior.sion.co.il/wp-content/uploads/2011/05/Junction_W11_jump.gif"><img class="alignright size-medium wp-image-556" style="margin: 20px; border: 1px solid black;" title="Junction_W11_jump" src="http://lior.sion.co.il/wp-content/uploads/2011/05/Junction_W11_jump-300x200.gif" alt="" width="300" height="200" /></a>הרבה אנשים שואלים אותי מה זה ולא בדיוק מבינים.. הצומת היא חלל אורבני שנוצר ע&quot;י <a href="http://www.genesispartners.com/" target="_blank">קרן הון הסיכון ג'נסיס</a> לסטארטאפיסטים תחת הרדר ותחת הוצאות כספיות גדלות, ומאפשר לנו לקבל משרד משלנו (מקום קבוע שאפשר להשאיר בו ציוד כמו מסך וכו), רשת וקפה &#8211; והכל ב200 ש&quot;ח בחודש, שזה יותר דמי רצינות מכל דבר אחר. בנוסף, השהות עם אנשים שמתמודדים עם אותם דברים כמוך, עם עליות ומורדות בחיי המיזם, עם מתחרים שבאים והולכים, רצון וצורך לגייס, ליצור מוצר, לשווק &#8211; אנשים מכל הסוגים והמקצועות, מנוסים או חדשים &#8211; מעניקה הרבה מאוד, ולי אישית נתנה הרבה יותר ממה שחשבתי לפני שהכל התחיל.</p>
<p>שלושה חודשים אחרי המיזם שינה שם, שינה מראה, נוצר. הרבה מזה בזכות הjunction, המקום, האנשים שנמצאים כאן, וגנסיס (כולל מיקה ובן שעזרו לנו כל הזמן, אירגנו אירועים ונתנו את חוות דעתם).</p>
<p>אז תודה, ואני מקווה שאוכל לתרום בצורה דומה בעתיד..</p>
<p>&nbsp;</p>
</div>]]></content:encoded>			<wfw:commentRss>http://lior.sion.co.il/2011/05/30/%d7%94%d7%99%d7%95%d7%9d-%d7%94%d7%90%d7%97%d7%a8%d7%95%d7%9f-%d7%91junction-32/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8235;קצרצר: לאתחל את סיסמת המנהל (admin) בדג&#039;נגו&#8236;</title>		<link>http://lior.sion.co.il/2011/03/29/%d7%a7%d7%a6%d7%a8%d7%a6%d7%a8-%d7%9c%d7%90%d7%aa%d7%97%d7%9c-%d7%90%d7%aa-%d7%a1%d7%99%d7%a1%d7%9e%d7%aa-%d7%94%d7%9e%d7%a0%d7%94%d7%9c-admin-%d7%91%d7%93%d7%92%d7%a0%d7%92%d7%95/</link>
		<comments>http://lior.sion.co.il/2011/03/29/%d7%a7%d7%a6%d7%a8%d7%a6%d7%a8-%d7%9c%d7%90%d7%aa%d7%97%d7%9c-%d7%90%d7%aa-%d7%a1%d7%99%d7%a1%d7%9e%d7%aa-%d7%94%d7%9e%d7%a0%d7%94%d7%9c-admin-%d7%91%d7%93%d7%92%d7%a0%d7%92%d7%95/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 16:11:13 +0000</pubDate>
		<dc:creator>&#8235;ליאור&#8236;</dc:creator>				<category><![CDATA[django]]></category>
		<category><![CDATA[טיפים טכניים]]></category>
		<category><![CDATA[טכני]]></category>
		<category><![CDATA[פייתון]]></category>
		<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[אדמין]]></category>
		<category><![CDATA[איתחול]]></category>
		<category><![CDATA[מנהל]]></category>
		<category><![CDATA[סיסמה]]></category>

		<guid isPermaLink="false">http://lior.sion.co.il/?p=546</guid>
		<description><![CDATA[&#8235;משהו שקורה לי כל כמה זמן &#8211; אני שוכח את הסיסמה לאדמין שלי. יש שיטה קלה יחסית להחליף אותה, וזה ע&#34;י כניסה לdatabase: הכנסו לshell החביב עליכם. לרוב אני משתמש בshell_plus של הdjango extensions שהוא shell רגיל (כמו django shell רק שהוא מעלה אוטומטית את כל המודולים שלכם): from django.contrib.auth.models import User us = User.objects.get(username="{{ [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>משהו שקורה לי כל כמה זמן &#8211; אני שוכח את הסיסמה לאדמין שלי. יש שיטה קלה יחסית להחליף אותה, וזה ע&quot;י כניסה לdatabase:</p>
<p>הכנסו לshell החביב עליכם. לרוב אני משתמש בshell_plus של ה<a href="https://github.com/django-extensions/django-extensions" target="_blank">django extensions</a> שהוא shell רגיל (כמו django shell רק שהוא מעלה אוטומטית את כל המודולים שלכם):</p>
<pre dir="ltr"><code>from django.contrib.auth.models import User

us = User.objects.get(username="{{ your username }}")

us.set_password('{{ your password}}')

us.save()
</code></pre>
<p>פשוט, לא?</p>
</div>]]></content:encoded>			<wfw:commentRss>http://lior.sion.co.il/2011/03/29/%d7%a7%d7%a6%d7%a8%d7%a6%d7%a8-%d7%9c%d7%90%d7%aa%d7%97%d7%9c-%d7%90%d7%aa-%d7%a1%d7%99%d7%a1%d7%9e%d7%aa-%d7%94%d7%9e%d7%a0%d7%94%d7%9c-admin-%d7%91%d7%93%d7%92%d7%a0%d7%92%d7%95/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8235;חשיבות הכיסוי (coverage) בבדיקות התוכנה &#8211; ואיך עושים את זה בד&#039;נגו&#8236;</title>		<link>http://lior.sion.co.il/2011/03/19/%d7%97%d7%a9%d7%99%d7%91%d7%95%d7%aa-%d7%94%d7%9b%d7%99%d7%a1%d7%95%d7%99-coverage-%d7%91%d7%91%d7%93%d7%99%d7%a7%d7%95%d7%aa-%d7%94%d7%aa%d7%95%d7%9b%d7%a0%d7%94-%d7%95%d7%90%d7%99%d7%9a-%d7%a2/</link>
		<comments>http://lior.sion.co.il/2011/03/19/%d7%97%d7%a9%d7%99%d7%91%d7%95%d7%aa-%d7%94%d7%9b%d7%99%d7%a1%d7%95%d7%99-coverage-%d7%91%d7%91%d7%93%d7%99%d7%a7%d7%95%d7%aa-%d7%94%d7%aa%d7%95%d7%9b%d7%a0%d7%94-%d7%95%d7%90%d7%99%d7%9a-%d7%a2/#comments</comments>
		<pubDate>Sat, 19 Mar 2011 09:13:52 +0000</pubDate>
		<dc:creator>&#8235;ליאור&#8236;</dc:creator>				<category><![CDATA[django]]></category>
		<category><![CDATA[טיפים טכניים]]></category>
		<category><![CDATA[טכני]]></category>
		<category><![CDATA[פייתון]]></category>
		<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[תכנות]]></category>
		<category><![CDATA[coverage]]></category>
		<category><![CDATA[unit test]]></category>
		<category><![CDATA[בדיקות]]></category>
		<category><![CDATA[כיסוי]]></category>

		<guid isPermaLink="false">http://lior.sion.co.il/?p=533</guid>
		<description><![CDATA[&#8235;בפוסט הקודם (על בדיקות תוכנה חלקיות בdjango) כתבתי על היכולת לבדוק רק מה שאתה כותב בתוך הפרוייקט. השלב הבא ההגיוני הוא להבין עד כמה הבדיקות האלה טובות. מכיוון שעדיין לא נתקלתי במישהו שחושב שבדיקות coverage חשובות כמו שאני חושב, אני רוצה לעצור כאן רגע ולדבר על הקונספט עצמו לרגע. מהן בדיקות כיסוי (coverage) פירוט והסבר [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>בפוסט הקודם (על <a href="http://lior.sion.co.il/2011/03/16/%D7%93%D7%92%D7%A0%D7%92%D7%95-%D7%9C%D7%94%D7%A8%D7%99%D7%A5-%D7%91%D7%93%D7%99%D7%A7%D7%95%D7%AA-%D7%A8%D7%A7-%D7%A2%D7%9C-%D7%94%D7%97%D7%9C%D7%A7%D7%99%D7%9D-%D7%A9%D7%9C%D7%9A/">בדיקות תוכנה חלקיות בdjango</a>) כתבתי על היכולת לבדוק רק מה שאתה כותב בתוך הפרוייקט. השלב הבא ההגיוני הוא להבין עד כמה הבדיקות האלה טובות.</p>
<p>מכיוון שעדיין לא נתקלתי במישהו שחושב שבדיקות coverage חשובות כמו שאני חושב, אני רוצה לעצור כאן רגע ולדבר על הקונספט עצמו לרגע.</p>
<h2>מהן בדיקות כיסוי (coverage)</h2>
<p>פירוט והסבר מלא אפשר למצא <a href="http://he.wikipedia.org/wiki/%D7%9E%D7%93%D7%93%D7%99_%D7%9B%D7%99%D7%A1%D7%95%D7%99_%D7%A7%D7%95%D7%93" target="_blank">בוויקיפדיה</a> (או כרגיל, בגרסה הטובה בהרבה <a href="http://en.wikipedia.org/wiki/Code_coverage" target="_blank">באנגלית</a>). הרעיון הוא פשוט: מריצים בדיקות אוטומטית או ידיניות, ובמקביל לגמרי, בלי קשר לבדיקות, בודקים <strong>מה</strong> בדיוק מורץ. אפשר לבדוק מדדים שונים (קוד, שורות, מסלולים ועוד) &#8211; אבל הרעיון דומה: בסופו של התהליך זוהי הדרך היחידה לדעת עד כמה הבדיקות שלכם מקיפות &#8211; ולכן להסיק עד כמה הן טובות. בצורה מפתיעה, אנשים רבים מבינים את חשיבות הבדיקות האוטומטיות (וגם זה שיפור לטובה) &#8211; אבל לא מבינים שללא הבנה של הכיסוי, ייתכן שהבדיקות שלכם לא שוות כלום.</p>
<p>חשוב לציין כמה נקודות קטנות בקשר לבדיקות האלה:</p>
<ul>
<li>קשה מאוד להגיע ל100% בדיקות, ומעט מאוד אנשים חושבים שזה היעד. יש תלות מסויימת בקוד הספציפי שלכם, אבל קטנה מאוד &#8211; אני ממליץ לנסות להגיע לפחות ל70% כיסוי, ולא לנסות להלחם יותר מדי על ה10% האחרונים.</li>
<li>בדיקות קוד צד לקוח בעתיות יותר ואני לא הולך להתיחס אליהן בפוסט הזה (במיוחד כי הדגש כרגע הוא על django)</li>
<li>התירוץ החוזר הוא ש&quot;הקוד שלנו שונה כי xyz, ולכן קשה בהרבה להגיע לכיסוי טוב&quot;. החליפו את xyz בדברים כמו &quot;הוא מערב הרבה מודולים שונים&quot;, &quot;אי אפשר להגיע לבדיקה של כל פינה&quot;, &quot;יש לנו הרבה יותר נקודות קצה&quot;, והחביב עלי: &quot;הקוד שלנו מאוד שונה כי הוא פועל על שילוב מחלקות שונות וקריאות מסובכות, תלויות חצוניות ודברים דומים&quot;. יש עוד הרבה כאלה. אל תקשיבו &#8211; עוד לא פגשתי קוד שבלתי אפשרי להגיע לאחוזים גבוהים של כיסוי &#8211; אם כי פגשתי קוד שהיה צריך לכתוב כמה mockups, נקודות קצה וירוטאליות ועוד משחקים שונים ומשונים.</li>
</ul>
<h2>בדיקות כיסוי בdjango</h2>
<p>בדיקות הכיסוי בdjango במוססות על <a href="http://nedbatchelder.com/code/coverage/" target="_blank">בדיקות כיסוי של נד בצ'לדר</a> (Ned Batchelder) שנמצאות גם <a href="http://pypi.python.org/pypi/coverage" target="_blank">כאן</a> או <a href="https://bitbucket.org/ned/coveragepy" target="_blank">כאן</a>. בחרו את הדרך הנוחה לכם להתקנה:</p>
<pre dir="ltr">pip install hg+https://bitbucket.org/ned/coveragepy</pre>
<p>או</p>
<pre dir="ltr">easy_install coverage</pre>
<p>וכדומה. בצורה דומה אפשר לחבר את החבילה לbuildout.</p>
<p>לאחר מכן התקינו את התוסף לdjango:</p>
<pre dir="ltr">https://bitbucket.org/kmike/django-coverage/src</pre>
<p>יש מספר תוספים אבל אני מחבב אותו. הופיעו שם כמה בעיות בחלק מהטמפלטים, אני מקווה שמתישהו אמצא זמן לשבת ולתקן &#8211; בנתיים, אפשר להשתמש בטמפלטים הרגילים.</p>
<p>לאחר שהתקנתם, הוספתם את django_coverage לsettingsINSTALLED_APPS, אתם כמעט מוכנים, ויכולים לבדוק את ההתקנה ע&quot;י הרצה של</p>
<p>python manage.py test_coverage</p>
<p>אני ממליץ ללכת שלב נוסף, כמו שהזכרתי בפוסט הקודם, וליצור בדיקות רק לקוד שלכם:</p>
<p>בתוך management-&gt;commands (<a href="http://lior.sion.co.il/2011/03/16/%D7%93%D7%92%D7%A0%D7%92%D7%95-%D7%9C%D7%94%D7%A8%D7%99%D7%A5-%D7%91%D7%93%D7%99%D7%A7%D7%95%D7%AA-%D7%A8%D7%A7-%D7%A2%D7%9C-%D7%94%D7%97%D7%9C%D7%A7%D7%99%D7%9D-%D7%A9%D7%9C%D7%9A/">הפוסט הקודם</a> מסביר את זה):</p>
<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Inconsolata} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Inconsolata; min-height: 14.0px} span.s1 {color: #3e00ff} span.s2 {text-decoration: underline} span.s3 {color: #00c100} span.s4 {color: #a00000} -->from django.core.management.base import AppCommand, BaseCommand</p>
<pre>
[python]
from django.core.management.base import AppCommand, BaseCommand
from django.core.management import call_command

from django.conf import settings

class Command(BaseCommand):

    def handle(self, *args, **options):
        test_app_path = ()
        for app in settings.MY_INSTALLED_APPS:
            test_app = app.split('.')
            if len(test_app) &gt; 1:
                test_app = (test_app[-1],)
            else:
                test_app = (app,)
            test_app_path += test_app
        call_command(&quot;test_coverage&quot;,*test_app_path, **options)

[/python]
</pre>
<p>הוסיפו בsettings שלכם את מיקום יצירת הhtml:</p>
<p>COVERAGE_REPORT_HTML_OUTPUT_DIR כדי לבחור את הספריה ליצירת תוצאות הHTML</p>
</div>]]></content:encoded>			<wfw:commentRss>http://lior.sion.co.il/2011/03/19/%d7%97%d7%a9%d7%99%d7%91%d7%95%d7%aa-%d7%94%d7%9b%d7%99%d7%a1%d7%95%d7%99-coverage-%d7%91%d7%91%d7%93%d7%99%d7%a7%d7%95%d7%aa-%d7%94%d7%aa%d7%95%d7%9b%d7%a0%d7%94-%d7%95%d7%90%d7%99%d7%9a-%d7%a2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8235;דג&#039;נגו &#8211; להריץ בדיקות רק על החלקים שלך&#8236;</title>		<link>http://lior.sion.co.il/2011/03/16/%d7%93%d7%92%d7%a0%d7%92%d7%95-%d7%9c%d7%94%d7%a8%d7%99%d7%a5-%d7%91%d7%93%d7%99%d7%a7%d7%95%d7%aa-%d7%a8%d7%a7-%d7%a2%d7%9c-%d7%94%d7%97%d7%9c%d7%a7%d7%99%d7%9d-%d7%a9%d7%9c%d7%9a/</link>
		<comments>http://lior.sion.co.il/2011/03/16/%d7%93%d7%92%d7%a0%d7%92%d7%95-%d7%9c%d7%94%d7%a8%d7%99%d7%a5-%d7%91%d7%93%d7%99%d7%a7%d7%95%d7%aa-%d7%a8%d7%a7-%d7%a2%d7%9c-%d7%94%d7%97%d7%9c%d7%a7%d7%99%d7%9d-%d7%a9%d7%9c%d7%9a/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 20:28:36 +0000</pubDate>
		<dc:creator>&#8235;ליאור&#8236;</dc:creator>				<category><![CDATA[django]]></category>
		<category><![CDATA[טיפים טכניים]]></category>
		<category><![CDATA[טכני]]></category>
		<category><![CDATA[פייתון]]></category>
		<category><![CDATA[קוד פתוח]]></category>
		<category><![CDATA[תכנות]]></category>
		<category><![CDATA[unit test]]></category>
		<category><![CDATA[בדיקות]]></category>
		<category><![CDATA[דג'נגו]]></category>
		<category><![CDATA[פקודות django]]></category>

		<guid isPermaLink="false">http://lior.sion.co.il/?p=526</guid>
		<description><![CDATA[&#8235;כחלק מפיתוח תוכנה רגילה בdjango אנשים מעודדים להשתמש (בתקווה גם לתרום) לקוד פתוח דרך ספריות מתוך pypi, github' bitbucket וכדומה. כל זה טוב ויפה, אבל מה קורה שאתה אוסף לך רשימה די ארוכה של אפליקציות, שרק חלק קטן מהן שלך, ואתה רוצה להריץ את הבדיקות שכתבת לעצמך (כי כולנו כותבים unit tests, נכון?)? הבעיה דג'נגו [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>כחלק מפיתוח תוכנה רגילה בdjango אנשים מעודדים להשתמש (בתקווה גם לתרום) לקוד פתוח דרך ספריות מתוך pypi, github' bitbucket וכדומה. כל זה טוב ויפה, אבל מה קורה שאתה אוסף לך רשימה די ארוכה של אפליקציות, שרק חלק קטן מהן שלך, ואתה רוצה להריץ את הבדיקות שכתבת לעצמך (כי כולנו כותבים unit tests, נכון?)?</p>
<h2>הבעיה</h2>
<p>דג'נגו תומך בפקודה manage.py test, שמריצה את כל הבדיקות מהאפליקציות המותקנות. אבל זה כולל בדיקות רבות שלא קשורות אליך, במקרה הטוב זה לוקח הרבה זמן, במקרה הרע חלק מהבדיקות לא עוברות משום שהן דורשות סביבה מיוחדת (במיוחד הבדיקות של django עצמה), ובמקרה הרע מאוד &#8211; הן פשוט לא עוברות.</p>
<p>הפקודה הנ&quot;ל גם מאפשרת להריץ חלק מהבדיקות &#8211; של אפליקציה אחת, או קבוצה אחת של אפליקציות, או אפילו בדיקה אחת. פרטים מלאים אפשר למצא ב<a href="http://docs.djangoproject.com/en/dev/topics/testing/#running-tests" target="_blank">מסמכים הרשמיים</a>.. אבל אי אפשר לבדוק רק את האפליקציות שלך, וזה מאוד מפריע לי</p>
<h2>הפתרון</h2>
<p>הפתרון קשור לדרך ולפרמטרים שהפקודה הנ&quot;ל כן תומכת בהם: אפשר להריץ בדיקות על מספר אפליקציות ע&quot;י קריאה לרשימת אפליקציות מופרדות ברווח:</p>
<p style="padding-left: 30px; text-align: left;">python manage.py test app1 app2 app3</p>
<p style="padding-left: 30px; text-align: right;">וכן מהיכולת להפריד את האפליקציות המותקנות לשתי רשימות, בלי לפגוע בעבודה היום יומית. לקחתי את הINSTALLED_APPS הרגיל שנמצא בsettings.py והפכתי אותו לשתי רשימות:</p>
<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Inconsolata} --></p>
<p dir="ltr">MY_INSTALLED_APPS = ( app1, app2 )</p>
<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Inconsolata} --></p>
<p dir="ltr">INSTALLED_APPS = MY_INSTALLED_APPS+( app3 )</p>
<p>בצורה הזו עדיין כל האפליקציות נמצאות בקובץ הsettings אחת ליד השניה, אין כפילות ואין בעיה לשמור על הסדר.</p>
<p>עכשיו רק צריך ליצור פקודה שרצה על MY_INSTALLED_APPS ומריצה על כל אחת מהן פקודת test. בשביל זה יצרתי <a href="http://docs.djangoproject.com/en/dev/howto/custom-management-commands/" target="_blank">פקודת שליטה</a>: בתוך הספרייה management-&gt;commands יצרתי קובץ test_apps, שבו הקוד:</p>
<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Inconsolata} p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Inconsolata; min-height: 14.0px} span.s1 {color: #3e00ff} span.s2 {text-decoration: underline} span.s3 {color: #00c100} span.s4 {color: #a00000} --></p>
<pre dir="ltr">
[python]
from django.core.management.base import AppCommand, BaseCommand
from django.core.management import call_command

from django.conf import settings

class Command(BaseCommand):

    def handle(self, *args, **options):
        test_app_path = ()
        for app in settings.MY_INSTALLED_APPS:
            test_app = app.split('.')
            if len(test_app) &gt; 1:
                test_app = (test_app[-1],)
            else:
                test_app = (app,)
            test_app_path += test_app
        call_command(&quot;test&quot;,*test_app_path, **options)

[/python]
</pre>
<p>ועכשיו כשאני רוצה להריץ רק את הבדיקות שלי, אני פשוט מריץ python manage.py test_apps</p>
<p dir="ltr">&nbsp;</p>
<p style="padding-left: 30px; text-align: right;">&nbsp;</p>
<p>&nbsp;</p>
</div>]]></content:encoded>			<wfw:commentRss>http://lior.sion.co.il/2011/03/16/%d7%93%d7%92%d7%a0%d7%92%d7%95-%d7%9c%d7%94%d7%a8%d7%99%d7%a5-%d7%91%d7%93%d7%99%d7%a7%d7%95%d7%aa-%d7%a8%d7%a7-%d7%a2%d7%9c-%d7%94%d7%97%d7%9c%d7%a7%d7%99%d7%9d-%d7%a9%d7%9c%d7%9a/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>&#8235;דנקן סטיוארט מדליוט על תחזיות לשנת 2011&#8236;</title>		<link>http://lior.sion.co.il/2011/03/11/%d7%93%d7%a0%d7%a7%d7%9f-%d7%a1%d7%98%d7%99%d7%95%d7%90%d7%a8%d7%98-%d7%9e%d7%9c%d7%93%d7%99%d7%95%d7%98-%d7%a2%d7%9c-%d7%aa%d7%97%d7%96%d7%99%d7%95%d7%aa-%d7%9c%d7%a9%d7%a0%d7%aa-2011/</link>
		<comments>http://lior.sion.co.il/2011/03/11/%d7%93%d7%a0%d7%a7%d7%9f-%d7%a1%d7%98%d7%99%d7%95%d7%90%d7%a8%d7%98-%d7%9e%d7%9c%d7%93%d7%99%d7%95%d7%98-%d7%a2%d7%9c-%d7%aa%d7%97%d7%96%d7%99%d7%95%d7%aa-%d7%9c%d7%a9%d7%a0%d7%aa-2011/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 16:10:20 +0000</pubDate>
		<dc:creator>&#8235;ליאור&#8236;</dc:creator>				<category><![CDATA[טכני]]></category>
		<category><![CDATA[יזמות]]></category>
		<category><![CDATA[מדע]]></category>
		<category><![CDATA[עולם וחדשות]]></category>
		<category><![CDATA[duncan strwart]]></category>
		<category><![CDATA[דנקן סטיוארט]]></category>
		<category><![CDATA[הצומת]]></category>

		<guid isPermaLink="false">http://lior.sion.co.il/?p=523</guid>
		<description><![CDATA[&#8235;הצומת היא מקום מושבי החדש. זה נשמע קצת יותר גרוע ממש שזה באמת &#8211; הצומת, מבית ג'נסיס, היא חלל יזמי המושכר לסטארטאפיסטים בבוטסטארפ (לפני שגויס כסף) ומספק מקום עבודה נוח, אינטרנט, קפה, מקום לפגישות, וסביבה יזמית טובה לאינטראקציות עם יזמים אחרים &#8211; בנושאים טכניים, כללים, מוצר ואסטרטגיה. סה&#34;כ &#8211; פתרון נהדר לכולם. בין השאר, יש [...]&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>ה<a href="http://thejunction.co.il/" target="_blank">צומת</a> היא מקום מושבי החדש. זה נשמע קצת יותר גרוע ממש שזה באמת &#8211; הצומת, מבית <a href="http://www.genesispartners.com/" target="_blank">ג'נסיס</a>, היא חלל יזמי המושכר לסטארטאפיסטים בבוטסטארפ (לפני שגויס כסף) ומספק מקום עבודה נוח, אינטרנט, קפה, מקום לפגישות, וסביבה יזמית טובה לאינטראקציות עם יזמים אחרים &#8211; בנושאים טכניים, כללים, מוצר ואסטרטגיה. סה&quot;כ &#8211; פתרון נהדר לכולם.</p>
<p>בין השאר, יש בצומת פגישה שבועית פתוחה לקהל בנושאים מגוונים (מהקמת סטארטאפ עד כיצד מעצבים ui) &#8211; אם אתם מעוניינים להגיע צריך להרישם ב<a href="http://www.meetup.com/The-Junction/" target="_blank">מיטאפ</a>. הפגישה האחרונה אירחה את<a href="http://twitter.com/#!/dunstewart" target="_blank"> דנקן סטיוארט</a> (Duncan Stewart) מדלויט קנדה, שדיבר על התחזיות שלו לעתיד הטכנולוגי.</p>
<p>אז לרוב אני לא אוהב מפגשים על תחזיות. או שהן ברורות למדי, או שהן חסרות בסיס לגמרי. או שהן כלליות ברמה כזו שלא משנה מה יקרה תמיד אפשר לומר שצדקת. מה שאהבתי בתחזיות של דנקן שהן היו מאוד מנומקות &#8211; גם אם חלקן היו די ברורות וזו לא הפעם הראשונה שאני שומע אותן, הסיבות היו מקוריות, הלוגיקה מאחוריהן בריאה ויכולתי מאוד להתחבר. הדנקן הזה בחור חכם. ומצחיק.</p>
<p>המצגת נשלחה אבל התבקשנו לא לחלוק אותה, אבל אל דאגה, אתם יכולים למצא אותה <a href="http://www.deloitte.com/assets/Dcom-Canada/Local%20Assets/Documents/TMT/ca_en_TMT_Canadian_Predictions_2011_011811.pdf" target="_blank">כאן</a>.</p>
<ul>
<li>יותר מחצי מהמחשבים אינם מחשבים כבר. אפילו לא לפטופים. רוב האנשים משתמשים במחשב ל5 דברים: גלישה באינטרנט, אימיילים, משחקים, וידיאו ורשתות חברתיות. בשביל זה לא צריך מחשב, והפתרונות של טלפונים חכמים ובעיקר טבלטים (ipad וכו) &#8211; קטנים, לא יקרים, בעלי בטריה חזקה ומסך מצויין &#8211; נותנים פתרון שאינו רק משתווה אלא אפילו עדיף.  התחזית אינה ששוק המחשבים ייפול, אלא ששוק הטבלטים יגדל מעליו. כולם זוכים.</li>
<li>לא יהיה מנצח בזירת מערכות ההפעלה. כשמיקרוסופט קמה לא היו לה מתחרים אמיתיים, זה אינו המצב עכשיו. מיקרוסופט ונוקיה הם שחקן חזק מאוד בתוכנה וחומרה. אנדרויד כבר חזק מאוד ולאפל יש כוח שלא יעלם במהרה. אפילו בלקברי לא יכול להעלם &#8211; היתרונות שלו במקומות מסויימים גדולים מדי. בסופו של דבר אנחנו הולכים לקראת פילוג של מערכות שלכולן חלק גדול מדי מכדי שנוכל להתעלם ממנו. במילים אחרות: היו מוכנים לתמוך בכמה מערכות הפעלה.</li>
<li>אם אתם חושבים לפתור את הבעיה הקודמת ע&quot;י פתרונות ווב (אפילקציות ווב מוכנות לטלפונים) &#8211; תחשבו שוב. הרמה שלהן לא מתקרבת לאפליקציות אמיתיות המותקנות על המכשירים.</li>
<li>מכירת הטבלטים תבלוט במיוחד בתחום באנטרפריז, איפה שעד כה מחשבים קטנים וטלפונים לא באמת הצליחו לחדור. במיוחד כדאי לשים לב לתחומי הרפואה (איפה שקל יותר להסתובב עם טבלט, לחלוק מידע ו&#8230; כן.. לנקות את המסך אחרי שכולם נוגעים בו), תחומי הריטייל (חנויות שתספקנה פתרונות קיוסק, הסברים ועוד למי שנכנס לחנות) וככלי עבודה שימושי לאנשי שטח.</li>
<li>טלויזיה כאן להשאר &#8211; האינטרנט לא הורג אותה אלא משלים אותה. אנשים לא אוהבים מיזוג של מידע לתוך הטלויזיה שלהם אלא מעדיפים אותו זורם בצד, ולכן אנחנו רואים גידול בגלישה תוך כדי צפיה. שאלתי האם תרגום בגוף הסרט לא מוכיח אחרת (דוברי האנגלית תמיד לא מודעים לעולם החיצון..) והוא לא ממש ענה לי על השאלה הזו, אז לא בדיוק ברור לי על מה הוא מתבסס, אבל ככה זה נשאר.</li>
<li>וופי (wifi) חודש לרתות ריטייל. אם פעם הם ראו בגלישה בחנות איום (השוואת מחירים וכו) וניסו לחסום את הגלישה, היום הם מבינים שחסימת הגלישה רק גורמת לאנשים לצאת החוצה מהחנות כדי לקבל קליטה, ולקוח שיוצא פיזית מהחנות שלך זה הדבר הרע ביותר שתוכל לעשות. במקום זה הם מגבירים את השימוש בwifi ונותנים פיצ'רים משלימים: מציאת דברים בחנות, השוואת מחירים (ממילא רוב המחירים דומים ואם לא, זה לרוב לא שווה לצאת מהחנות ולחפש במקום אחר) &#8211; וכן המלצות, הצעות ומבצעים. בקשר למידע על פריטים דנקן אומר שכנראה הפתרון יהיה nfc כי wifi לא מדויק מספיק.</li>
</ul>
<p>&nbsp;</p>
<h1></h1>
</div>]]></content:encoded>			<wfw:commentRss>http://lior.sion.co.il/2011/03/11/%d7%93%d7%a0%d7%a7%d7%9f-%d7%a1%d7%98%d7%99%d7%95%d7%90%d7%a8%d7%98-%d7%9e%d7%9c%d7%93%d7%99%d7%95%d7%98-%d7%a2%d7%9c-%d7%aa%d7%97%d7%96%d7%99%d7%95%d7%aa-%d7%9c%d7%a9%d7%a0%d7%aa-2011/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.497 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-05 11:36:27 -->

