<?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;IT Stuff&#8236;</title>	<atom:link href="http://traum.org.il/feed/" rel="self" type="application/rss+xml" />
	<link>http://traum.org.il</link>
	<description>&#8235;&#8236;</description>	<lastBuildDate>Wed, 25 Jan 2012 21:21:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>&#8235;להבין את ממוצע העומס (Load Average)&#8236;</title>		<link>http://traum.org.il/2012/01/%d7%9c%d7%94%d7%91%d7%99%d7%9f-%d7%90%d7%aa-%d7%9e%d7%9e%d7%95%d7%a6%d7%a2-%d7%94%d7%a2%d7%95%d7%9e%d7%a1-load-average/</link>
		<comments>http://traum.org.il/2012/01/%d7%9c%d7%94%d7%91%d7%99%d7%9f-%d7%90%d7%aa-%d7%9e%d7%9e%d7%95%d7%a6%d7%a2-%d7%94%d7%a2%d7%95%d7%9e%d7%a1-load-average/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 21:21:27 +0000</pubDate>
		<dc:creator>&#8235;כתריאל&#8236;</dc:creator>				<category><![CDATA[linux]]></category>
		<category><![CDATA[load average]]></category>
		<category><![CDATA[top]]></category>
		<category><![CDATA[uptime]]></category>

		<guid isPermaLink="false">http://traum.org.il/?p=393</guid>
		<description><![CDATA[&#8235;בודאי יצא לכם להיתקל באנשי IT או תמיכה פולטים &#34;המכונה עמוסה, תסתכל על ה-Load Average!&#34;, או לראות את ה-Load Average על המחשב הביתי שלכם, ולא בדיוק להבין מה משמעות המספרים. אם לא שמעתם על Load Average מעולם, אלה הם אותם &#8230; <a href="http://traum.org.il/2012/01/%d7%9c%d7%94%d7%91%d7%99%d7%9f-%d7%90%d7%aa-%d7%9e%d7%9e%d7%95%d7%a6%d7%a2-%d7%94%d7%a2%d7%95%d7%9e%d7%a1-load-average/">Continue reading <span class="meta-nav">&#8594;</span></a>&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>בודאי יצא לכם להיתקל באנשי IT או תמיכה פולטים &quot;המכונה עמוסה, תסתכל על ה-Load Average!&quot;, או לראות את ה-Load Average על המחשב הביתי שלכם, ולא בדיוק להבין מה משמעות המספרים. אם לא שמעתם על Load Average מעולם, אלה הם אותם שלושה מספרים שמתקבלים כפלט לפקודה &quot;uptime&quot;:</p>
<pre dir="ltr">$ uptime
 00:46:59 up 15:39,  2 users,  load average: 0.24, 0.12, 0.10</pre>
<p>בודאי תהיתם, או ידעתם חלקית מה הם אומרים, ושיש לשים לב אם הם גבוהים מדי, ולחפש את הסיבה, שבודאי מאיטה את המערכת.</p>
<p>אז מה זה בעצם Load Average? ממה מורכבים הערכים? כדי להבין את זה, קודם צריך להבין מה מחזירה הפקודה. שלושת הערכים הם ממוצע העומס בפרקים של דקה, 5 דקות ו-15 דקות בהתאמה.</p>
<p>משתנה העומס מחושב כממוצע התהליכים שהם ברי הרצה (מחכים לזמן CPU), תהליכים שבריצה כרגע ותהליכים שמחכים לסיום פעולת כלשהיא (Uninterpretable sleep), בד&quot;כ פעולת IO (דיסק או רשת). חשוב לדעת, כי לחישוב לא נכנסים כמות המעבדים במערכת. כלומר, שרת עם Load Average של 1, אומר שמעבד אחד (בממוצע) פעיל כל הזמן. בשרת עם מעבד אחד, זו מערכת עמוסה, בשרת עם 4 מעבדים, המערכת עובדת ב-75% (בממוצע כמובן)</p>
<p>מה זה אומר אם יש לשרת Load Average גבוהה? בכלליות, זהו סימן שהשרת לא מצליח להתמודד עם דרישת התהליכים הרצים עליו לזמן CPU. הגורמים יכולים להיות רבים: יותר מדי תהליכים רעבי CPU, יותר מדי IO, למשל בגישה ל-swap ועוד.</p>
<p>כדי ל&quot;אבחן&quot; את סיבת העומס, ניתן להשתמש בפקודה <strong>top</strong>. רוב המידע שנצטרך נמצא בראש המסך:</p>
<pre dir="ltr">top - 08:56:53 up 41 min,  2 users,  load average: 0.09, 0.10, 0.15
Tasks: 166 total,   1 running, 165 sleeping,   0 stopped,   0 zombie
Cpu(s):  3.2%us,  0.9%sy,  0.0%ni, 92.3%id,  3.0%wa,  0.2%hi,  0.4%si,  0.0%st
Mem:   5966228k total,  4111868k used,  1854360k free,    67016k buffers
Swap:  8060924k total,        0k used,  8060924k free,  2916392k cached</pre>
<p>באופן כללי, אם הערכים של <strong>us</strong> או <strong>sy</strong> גבוהים, המערכת כנראה עמוסה בתהליכים רעבי CPU. במידה והערך <strong>wa</strong> גבוהה באופן קבוע, כנראה שמערכת עסוקה בהרבה <strong>I/O</strong>. את המשך האבחון אפשר לעשות בעזרת:</p>
<ol>
<li>שאר המידע ב-top</li>
<li>כלים כמו iostat, vmstat</li>
<li>ps</li>
</ol>
<p>על נושא הכלים לניתוח מצב המערכת  ארחיב בפוסט נפרד.</p>
<p>לסיכום, ממוצע העומס במערכת הוא נתון חשוב, שיכול, במבט חטוף, להעיד על מצב בריאות המערכת. זהו נתון ששווה לעקוב אחריו, ולא סתם זהו נתון שרוב מערכות הניטור בודקות כברירת מחדל.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</div>]]></content:encoded>			<wfw:commentRss>http://traum.org.il/2012/01/%d7%9c%d7%94%d7%91%d7%99%d7%9f-%d7%90%d7%aa-%d7%9e%d7%9e%d7%95%d7%a6%d7%a2-%d7%94%d7%a2%d7%95%d7%9e%d7%a1-load-average/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8235;LDAP: חיפוש objectClass ללא Attribute&#8236;</title>		<link>http://traum.org.il/2011/11/ldap-%d7%97%d7%99%d7%a4%d7%95%d7%a9-objectclass-%d7%9c%d7%9c%d7%90-attribute/</link>
		<comments>http://traum.org.il/2011/11/ldap-%d7%97%d7%99%d7%a4%d7%95%d7%a9-objectclass-%d7%9c%d7%9c%d7%90-attribute/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 14:18:57 +0000</pubDate>
		<dc:creator>&#8235;כתריאל&#8236;</dc:creator>				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://traum.org.il/?p=374</guid>
		<description><![CDATA[&#8235;לאחרונה נתקלתי בצורך לחפש ב-LDAP של הרבה (יותר מ50K) משתמשים, קבוצה שאין לה attribute מסויים. במקרה הזה, מדובר ב-sAMAcountName (מישהו יכול לנחש את סוג שרת ה-LDAP?) (&#38;(objectclass=group)(!(sAMAccountName=*))) (&#38;(objectclass=person)(objectclass=user)(!(objectclass=computer)) \ (!(sAMAccountName=*))) (שבירת השורה השניה היא לצורך תצודה בלבד) 2 הדוגמאות הנ&#34;ל &#8230; <a href="http://traum.org.il/2011/11/ldap-%d7%97%d7%99%d7%a4%d7%95%d7%a9-objectclass-%d7%9c%d7%9c%d7%90-attribute/">Continue reading <span class="meta-nav">&#8594;</span></a>&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>לאחרונה נתקלתי בצורך לחפש ב-LDAP של הרבה (יותר מ50K) משתמשים, קבוצה שאין לה attribute מסויים. במקרה הזה, מדובר ב-sAMAcountName (מישהו יכול לנחש את סוג שרת ה-LDAP?)</p>
<pre dir="ltr">(&amp;(objectclass=group)(!(sAMAccountName=*)))

(&amp;(objectclass=person)(objectclass=user)(!(objectclass=computer)) \
(!(sAMAccountName=*)))</pre>
<p>(שבירת השורה השניה היא לצורך תצודה בלבד)</p>
<p>2 הדוגמאות הנ&quot;ל יחפשו קבוצות (objectClass=group)  או משתמשים (objectClass=person/user), כאשר התוספת של ! לפני sAMAccountName מוסיפה שלילה למשפו חיפוש על ה-Attribute.</p>
<p>השורות הנ&quot;ל הפ בפורמט סטנדרטי של LDAP. שימוש לדוגמא הוא עם הכלי ldapsearch:</p>
<pre dir="ltr">ldapsearch -Y GSSAPI '(&amp;(objectclass=group)(!(sAMAccountName=*)))'</pre>
<p>שימו לב לשימוש בגרש בודד. שימוש בגרשיים יגרום ל-shell שמדובר ב-&amp; רגיל, ושעליו להריץ את השאילתה (עד ה-&amp;) ברקע.</p>
</div>]]></content:encoded>			<wfw:commentRss>http://traum.org.il/2011/11/ldap-%d7%97%d7%99%d7%a4%d7%95%d7%a9-objectclass-%d7%9c%d7%9c%d7%90-attribute/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8235;סידור XML מתוך VIM&#8236;</title>		<link>http://traum.org.il/2011/09/%d7%a1%d7%99%d7%93%d7%95%d7%a8-xml-%d7%9e%d7%aa%d7%95%d7%9a-vim/</link>
		<comments>http://traum.org.il/2011/09/%d7%a1%d7%99%d7%93%d7%95%d7%a8-xml-%d7%9e%d7%aa%d7%95%d7%9a-vim/#comments</comments>
		<pubDate>Tue, 13 Sep 2011 07:24:27 +0000</pubDate>
		<dc:creator>&#8235;כתריאל&#8236;</dc:creator>				<category><![CDATA[כללי]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xmllint]]></category>

		<guid isPermaLink="false">http://traum.org.il/?p=381</guid>
		<description><![CDATA[&#8235;מכירים את זה שאתם פותחים קובץ XML, רק כדי לגלות שמי שיצר אותו, לא טרח ליצור קובץ שקריא (עד כמה ש-XML קריא) גם לבני אדם? שורות רציפות, בלי Indentation ומה לא. אל חשש, vim ו-xmllint לעזרה. הוסיפו את השורה הבאה &#8230; <a href="http://traum.org.il/2011/09/%d7%a1%d7%99%d7%93%d7%95%d7%a8-xml-%d7%9e%d7%aa%d7%95%d7%9a-vim/">Continue reading <span class="meta-nav">&#8594;</span></a>&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>מכירים את זה שאתם פותחים קובץ XML, רק כדי לגלות שמי שיצר אותו, לא טרח ליצור קובץ שקריא (עד כמה ש-XML קריא) גם לבני אדם? שורות רציפות, בלי Indentation ומה לא.</p>
<p>אל חשש, vim ו-xmllint לעזרה. הוסיפו את השורה הבאה ל- ~/.vimrc שלכם:</p>
<pre dir="ltr">command! Px %!xmllint --format -</pre>
<p>ובכל פעם שתפתחו XML סורר, פשוט הקלידו</p>
<pre dir="ltr">:Px</pre>
<p>ותקבלו XML מפורמט, מסודר וקריא (יותר)</p>
</div>]]></content:encoded>			<wfw:commentRss>http://traum.org.il/2011/09/%d7%a1%d7%99%d7%93%d7%95%d7%a8-xml-%d7%9e%d7%aa%d7%95%d7%9a-vim/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8235;ביצוע commit לשינוי הרשאה של קובץ ב-subversion&#8236;</title>		<link>http://traum.org.il/2011/09/%d7%91%d7%99%d7%a6%d7%95%d7%a2-commit-%d7%9c%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%94%d7%a8%d7%a9%d7%90%d7%94-%d7%a9%d7%9c-%d7%a7%d7%95%d7%91%d7%a5-%d7%91-subversion/</link>
		<comments>http://traum.org.il/2011/09/%d7%91%d7%99%d7%a6%d7%95%d7%a2-commit-%d7%9c%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%94%d7%a8%d7%a9%d7%90%d7%94-%d7%a9%d7%9c-%d7%a7%d7%95%d7%91%d7%a5-%d7%91-subversion/#comments</comments>
		<pubDate>Mon, 12 Sep 2011 09:22:40 +0000</pubDate>
		<dc:creator>&#8235;כתריאל&#8236;</dc:creator>				<category><![CDATA[כללי]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://traum.org.il/?p=376</guid>
		<description><![CDATA[&#8235;ניסיתם פעם לשנות הרשאה של קובץ, למשל להוסיף הרשאת הרצה לסקריפט בספריה שמנוהלת ע&#34;י SVN? הוא (subversion) לא ישים לב לזה בכלל, ולא יראה זאת כשינוי. $ chmod u+x file.sh $ svn status אז איך קובעים קובץ כבר-הרצה דרך svn? &#8230; <a href="http://traum.org.il/2011/09/%d7%91%d7%99%d7%a6%d7%95%d7%a2-commit-%d7%9c%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%94%d7%a8%d7%a9%d7%90%d7%94-%d7%a9%d7%9c-%d7%a7%d7%95%d7%91%d7%a5-%d7%91-subversion/">Continue reading <span class="meta-nav">&#8594;</span></a>&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>ניסיתם פעם לשנות הרשאה של קובץ, למשל להוסיף הרשאת הרצה לסקריפט בספריה שמנוהלת ע&quot;י SVN? הוא (subversion) לא ישים לב לזה בכלל, ולא יראה זאת כשינוי.</p>
<pre dir="ltr">$ chmod u+x file.sh
$ svn status</pre>
<p>אז איך קובעים קובץ כבר-הרצה דרך svn?</p>
<pre dir="ltr">$ svn propset svn:executable on file.sh
property 'svn:executable' set on 'file.sh'

$ svn status
M file.sh</pre>
</div>]]></content:encoded>			<wfw:commentRss>http://traum.org.il/2011/09/%d7%91%d7%99%d7%a6%d7%95%d7%a2-commit-%d7%9c%d7%a9%d7%99%d7%a0%d7%95%d7%99-%d7%94%d7%a8%d7%a9%d7%90%d7%94-%d7%a9%d7%9c-%d7%a7%d7%95%d7%91%d7%a5-%d7%91-subversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8235;git מעל https עם lighttpd&#8236;</title>		<link>http://traum.org.il/2011/08/git-%d7%9e%d7%a2%d7%9c-https-%d7%a2%d7%9d-lighttpd/</link>
		<comments>http://traum.org.il/2011/08/git-%d7%9e%d7%a2%d7%9c-https-%d7%a2%d7%9d-lighttpd/#comments</comments>
		<pubDate>Fri, 26 Aug 2011 06:21:55 +0000</pubDate>
		<dc:creator>&#8235;כתריאל&#8236;</dc:creator>				<category><![CDATA[linux]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[lighttpd]]></category>
		<category><![CDATA[ssl]]></category>

		<guid isPermaLink="false">http://traum.org.il/?p=340</guid>
		<description><![CDATA[&#8235;אני משתמש ב-git כבר לא מעט זמן. בבית עבור פרויקטים אישיים וסתם שמירת קונפיגורציות, בעבודה (הקודמת, עכשיו יש SVN)עבור פרויקטים שונים ומשונים. תמיד הייתי משתמש די ממוצא, בלי merges, branches וכו. את הגיבוי שלי שמרתי בצורת remote repository מבוסס SSH. תמיכה &#8230; <a href="http://traum.org.il/2011/08/git-%d7%9e%d7%a2%d7%9c-https-%d7%a2%d7%9d-lighttpd/">Continue reading <span class="meta-nav">&#8594;</span></a>&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>אני משתמש ב-git כבר לא מעט זמן. בבית עבור פרויקטים אישיים וסתם שמירת קונפיגורציות, בעבודה (הקודמת, עכשיו יש SVN)עבור פרויקטים שונים ומשונים. תמיד הייתי משתמש די ממוצא, בלי merges, branches וכו. את הגיבוי שלי שמרתי בצורת remote repository מבוסס SSH. תמיכה ב-http/s  לא הייתה חשובה לי כל כך עד שהעברתי את השרת שלי ל-amazon, וגישת ssh נעשתה פחות נוחה. בנוסף, רציתי לאפשר גישה נוחה היכן שאין ssh.</p>
<p>עד לגרסה 1.6 של git, תמיכה ב-http הייתה מוגבלת, ונקראה dumb http. השימוש העיקרי שנעשה ב-remote repository היה מעל פרוטוקול native git או ssh. בגרסה 1.7 שופרה הגישה מעל http (ו-https), בעזרת cgi script שנקרא git-http-backend. תפקידו לספק גישה ל-repositories מקומיים(או מרוחקים, תלוי איך מסתכלים על זה).</p>
<p>כברירת מחדל, לא תהיה גישה כלל ל-repositories שלא מכילים את הקובץ &quot;git-daemon-export-ok&quot;. ניתן להעביר את משתנה הסביבה GIT_HTTP_EXPORT_ALL לסקריפט בקונפיגורציה של שרת ה-web, ואז תהיה גישה לכל ה-repositories.</p>
<p>אז סביבת העבודה שלי מבוססת micro ec2 instance, debian ו-lighttpd. גישה ל-repository מאופשרת רק מעל https.</p>
<p>כדי להתקין את החבילות הנדרשות יש להריץ את הפקודה</p>
<pre lang="bash" dir="ltr">apt-get install lighttpd git apache2-utils</pre>
<p>להלן הקונפיגורציה הרלוונטית של lighttpd. טעינת המודולים הרלוונטיים</p>
<pre lang="bnf" dir="ltr">server.modules = ( "mod_setenv",
                   "mod_rewrite",
                   "mod_cgi" )</pre>
<p>כדי לאפשר SSL. אני משתמש בתעודות של CACert</p>
<pre lang="bnf" dir="ltr">$SERVER["socket"] == ":443" {
    ssl.engine = "enable"
    ssl.pemfile = "/etc/ssl/certs/server.crt"
    ssl.ca-file = "/etc/ssl/certs/ca-chain.pem"
    server.document-root = "/srv/www/"</pre>
<p>החלק הבא מאפשר את הגישה ל-repository בעזרת git-http-backend. שימו לב למשתנה GIT_HTTP_EXPORT_ALL, הוא יאפשר גישה לכל ה-repositories. במידה ורוצים לחשוף רק את חלקם, יש להוריד אותו.</p>
<pre lang="bnf" dir="ltr">    alias.url += ( "/git" =&gt; "/usr/lib/git-core/git-http-backend")
    url.rewrite-once = ( "^/git$" =&gt; "/git/" )

    $HTTP["url"] =~ "^/git" {
        cgi.assign = ( "" =&gt; "" )
        setenv.add-environment = (
            "GIT_PROJECT_ROOT" =&gt; "/srv/git",
            "GIT_HTTP_EXPORT_ALL" =&gt; ""
        )
    }
}</pre>
<p>יש לדאוג שהספריה שבה ישבו ה-git repositories תהיה בבעלות המשתמש אשר מריץ את lighttpd. המקרה שלי, זהו www-data</p>
<pre lang="bash" dir="ltr">chown -R www-data.www-data /srv/git</pre>
<p>כברירת מחדל, ה-repositories יהיה לקריאה בלבד, כדי לאפשר כתיבה, מאלץ אותנו git-http-backend להזדהות מול השרת. בחרתי להשתמש ב digest, כדי לא לשמור על הדיסק ולשלוח סיסמא שהיא לא hashed.</p>
<pre lang="bnf" dir="ltr">server.modules += ( "mod_auth" )
auth.backend = "htdigest"
auth.backend.htdigest.userfile = "/etc/lighttpd/lighttpd.user"

auth.require = ( "/git" =&gt;
    (
        "method" =&gt; "digest",
        "realm" =&gt; "git",
        "require" =&gt; "valid-user"
    )
)</pre>
<p>כדי לצור את הקובץ lighttpd.user, השתמשתי בפקודה htdigest</p>
<pre dir="ltr">htdigest -c /etc/lighttpd/lighttpd.user git myusername</pre>
<p>עכשיו ניתן למשוך repository מהשרת, ולבצע  push אליו כדי לסנכרן שינויים.</p>
<pre lang="bash" dir="ltr">$ git clone https://myserver.com/git/myrepo
Cloning into myrepo...
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
Unpacking objects: 100% (5/5), done.
remote: Total 5 (delta 0), reused 0 (delta 0)

$ cd myrepo
$ touch newfile
$ git add newfile
$ git commit -m "added new file"
[master 161d975] added new file
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 newfile
$ git push
Username:
Password:
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 214 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
To https://myserver.com/git/myrepo
   161d975..6040789  master -&gt; master</pre>
<p>במידה ורוצים לשמור את שם המשתמש וססמה, כך שלא נתבקש להזין אותו בכל push, ניתן לצור את הקובץ ~/.netrc אשר יכיל שם שרת, משתמש וססמה בצורה הבאה:</p>
<pre dir="ltr">machine myserver.com
login myusername
password mypassword</pre>
<p>כמובן, לא לשכוח לשנות את ההרשאות של הקובץ .netrc כך שיהיה קריא רק ע&quot;י המשתמש שלכם</p>
<pre lang="bash" dir="ltr">chmod 600 ~/.netrc</pre>
<p>לא הכי אלגנטי בעולם. שמירת ססמה, בקובץ, בצורה לא מוצפנת זה לא להיט, אבל עושה את העבודה. למי שלא מוכן להתפשר על הנושא, אתם קוראים את הפוסט הלא נכון, חפשו אחד על git מעל SSH (תמצאו אותו כנראה בעתיד הקרוב בבלוג הזה)</p>
<p>זה כל מה נדרש. כעת אפשר לעבור מול ה-repository כמו היה git native או ssh.</p>
</div>]]></content:encoded>			<wfw:commentRss>http://traum.org.il/2011/08/git-%d7%9e%d7%a2%d7%9c-https-%d7%a2%d7%9d-lighttpd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8235;שימוש ב-incron&#8236;</title>		<link>http://traum.org.il/2011/08/%d7%a9%d7%99%d7%9e%d7%95%d7%a9-%d7%91-incron/</link>
		<comments>http://traum.org.il/2011/08/%d7%a9%d7%99%d7%9e%d7%95%d7%a9-%d7%91-incron/#comments</comments>
		<pubDate>Sat, 20 Aug 2011 16:56:31 +0000</pubDate>
		<dc:creator>&#8235;כתריאל&#8236;</dc:creator>				<category><![CDATA[linux]]></category>
		<category><![CDATA[incron]]></category>
		<category><![CDATA[inotify]]></category>

		<guid isPermaLink="false">http://traum.org.il/?p=294</guid>
		<description><![CDATA[&#8235;incron הוא מנגנון, מבוסס inotify, שבדומה ל-cron, מבצע פעולה כאשר הוא מקבל trigger. ב-cron, ה-trigger הוא שעה מסויימת, עבור incron ה-trigger הוא שינוי בקובץ כלשהוא. incron מאפשר &#34;להאזין&#34; לספריה או קובץ, ולבצע פעולה כאשר יש בהם שינוי: הוספת קובץ, מחיקה, &#8230; <a href="http://traum.org.il/2011/08/%d7%a9%d7%99%d7%9e%d7%95%d7%a9-%d7%91-incron/">Continue reading <span class="meta-nav">&#8594;</span></a>&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>incron הוא מנגנון, מבוסס inotify, שבדומה ל-cron, מבצע פעולה כאשר הוא מקבל trigger. ב-cron, ה-trigger הוא שעה מסויימת, עבור incron ה-trigger הוא שינוי בקובץ כלשהוא. incron מאפשר &quot;להאזין&quot; לספריה או קובץ, ולבצע פעולה כאשר יש בהם שינוי: הוספת קובץ, מחיקה, עריכה, שינוי הרשאות וכו.</p>
<p>הניהול של icron דומה לניהול של cron, בעזרת הפקודה incrontab ניתן לערוך (בעזרת incrontab -e) את הגדרות עבור כל משתמש, או לשים קבצים ב-/etc/incron.d בפורמט הדומה מאוד ל-cron</p>
<p>אז השם דומה, הניהול כמעט אותו הדבר, לֶמה בכל זאת נשתמש ב-incron? להלן כמה דוגמאות:</p>
<ul>
<li>כאשר רוצים לגרום לשינוי קונפיגורציה לטעון מחדש daemon</li>
<li>גיבוי קונפיגורציה אוטומאטי</li>
<li>הרצת build בצורה אוטומאטית ברגע שמעתיקים קובץ לספריה (מישהו אמר <a href="http://en.wikipedia.org/wiki/Continuous_integration">CI</a>? נושא לפוסט אחר)</li>
</ul>
<p>כמו בכל כלי unix-י טוב, האפשרויות הן אין סופיות.</p>
<p>הפורמט לכתיבת קובץ incrontab מתואר (ניחשתם נכון) ב man 5 incrontab. אבל אם אפנה אתכם לשם, על מה יהיה לי לכתוב? אז הפורמט של incron הוא די פשוט:</p>
<p dir="ltr"><code><br />
&lt;path&gt; &lt;mask&gt; &lt;command&gt;<br />
</code></p>
<p>כאשר &lt;path&gt; הוא הנתיב עליו יאזין incrond לשינויים, &lt;mask&gt; הוא מספר אשר מתאר את סוג הפעולה שיש להאזין עליה, כאשר ישנן חלופות נוחות יותר בשבילנו בני האדם:</p>
<p dir="ltr"><code><br />
IN_ACCESS File was accessed (read) (*)<br />
IN_ATTRIB Metadata changed (permissions, timestamps, extended attributes, etc.) (*)<br />
IN_CLOSE_WRITE File opened for writing was closed (*)<br />
IN_CLOSE_NOWRITE File not opened for writing was closed (*)<br />
IN_CREATE File/directory created in watched directory (*)<br />
IN_DELETE File/directory deleted from watched directory (*)<br />
IN_DELETE_SELF Watched file/directory was itself deleted<br />
IN_MODIFY File was modified (*)<br />
IN_MOVE_SELF Watched file/directory was itself moved<br />
IN_MOVED_FROM File moved out of watched directory (*)<br />
IN_MOVED_TO File moved into watched directory (*)<br />
IN_OPEN File was opened (*)</code></p>
<p>ו-<command></command> &lt;command&gt; היא הפקודה שנריץ כאשר יהיה שינוי. לפקודה שנריץ ניתן להעביר פרמטרים בעזרת כמה wild cards שמוגדרים מראש ב-incron</p>
<p dir="ltr"><code><br />
$$ dollar sign<br />
$@ watched filesystem path (see above)<br />
$# event-related file name<br />
$% event flags (textually)<br />
$&amp; event flags (numerically)<br />
</code></p>
<p>להלן כמה דוגמאות:</p>
<p dir="ltr"><code><br />
/etc/lighttpd/conf-enabled IN_CREATE /etc/init.d/lighttpd restart<br />
/etc/passwd IN_ACCESS /usr/local/bin/email-admin "file $@/$# has been accessed"<br />
</code></p>
<p>זהו. נסו ותהנו.</p>
<p>למידע נוסף, ניתן לבקר <a href="http://inotify.aiken.cz/?section=incron&amp;page=about&amp;lang=en">באתר הבית של הפרויקט</a></p>
</div>]]></content:encoded>			<wfw:commentRss>http://traum.org.il/2011/08/%d7%a9%d7%99%d7%9e%d7%95%d7%a9-%d7%91-incron/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>&#8235;הוספת alternative ל-vi &#8211; המשך&#8236;</title>		<link>http://traum.org.il/2011/08/%d7%94%d7%95%d7%a1%d7%a4%d7%aa-alternative-%d7%9c-vi-%d7%94%d7%9e%d7%a9%d7%9a/</link>
		<comments>http://traum.org.il/2011/08/%d7%94%d7%95%d7%a1%d7%a4%d7%aa-alternative-%d7%9c-vi-%d7%94%d7%9e%d7%a9%d7%9a/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 20:11:10 +0000</pubDate>
		<dc:creator>&#8235;כתריאל&#8236;</dc:creator>				<category><![CDATA[linux]]></category>
		<category><![CDATA[alternatives]]></category>
		<category><![CDATA[vi]]></category>

		<guid isPermaLink="false">http://traum.org.il/?p=309</guid>
		<description><![CDATA[&#8235;אחרי הפוסט הקודם על alternatives, הבנתי שיש מקום להרחיב על מנגנון ה-alternatives ב-RHEL\Fedora. בפוסט הקודם דיברתי על איך להוסיף alternative חדש, וכיצד לבחון את מצבו. עכשיו שיש alternative מוגדר עבור VI, ייתכן ונרצה להחליף אותו לאחת מהאפשרויות האחרות. כדי לבצע שינוי &#8230; <a href="http://traum.org.il/2011/08/%d7%94%d7%95%d7%a1%d7%a4%d7%aa-alternative-%d7%9c-vi-%d7%94%d7%9e%d7%a9%d7%9a/">Continue reading <span class="meta-nav">&#8594;</span></a>&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>אחרי <a title="הוספת alternative ל-VI" href="http://traum.org.il/2011/08/%d7%94%d7%95%d7%a1%d7%a4%d7%aa-alternative-%d7%9c-vi/">הפוסט הקודם על alternatives</a>, הבנתי שיש מקום להרחיב על מנגנון ה-alternatives ב-RHEL\Fedora. בפוסט הקודם דיברתי על איך להוסיף alternative חדש, וכיצד לבחון את מצבו.</p>
<p>עכשיו שיש alternative מוגדר עבור VI, ייתכן ונרצה להחליף אותו לאחת מהאפשרויות האחרות. כדי לבצע שינוי זה יש 2 אפשרויות</p>
<ul>
<li>שימוש ב- set: מאפשר החלפה ל-alternative מסויים, למשל<br />
<strong>sudo alternatives &#8211;set vi /bin/vi.minimal</strong><br />
יחזיר את ההפניה של vi ל-vim-minimal המקורי</li>
<li>שימוש ב- config<br />
<strong>sudo alternatives &#8211;config vi</strong><br />
יפתח לנו תפריט קטן שיאפשר בחירה נוחה בין כל האפשרויות הקיימות alternatives &#8211;auto</li>
</ul>
<p>במידה ונרצה להחזיר את ה-alternative למצב ברירת מחדל</p>
<ul>
<li>שימוש ב- auto: כדי להחזיר את ה-alternative לתצורה אוטומאטית, כלומר שימוש במשקל ה-alternative כדי לקבוע את הקישור הפעיל, נשתמש בפקודה:<br />
<strong><br />
sudo alternatives &#8211;auto vi </strong></li>
</ul>
<p>להלן דוגמה קצרה שמסכמת את הפקודות</p>
<p dir="ltr"><code><br />
$ sudo alternatives --config vi<br />
There are 2 programs which provide 'vi'<br />
Selection Command<br />
-----------------------------------------------<br />
1 /bin/vim.minimal<br />
*+ 2 /usr/bin/vim<br />
Enter to keep the current selection[+], or type selection number: 1<br />
$ alternatives --display vi<br />
vi - status is manual.<br />
link currently points to /bin/vim.minimal<br />
/bin/vim.minimal - priority 100<br />
/usr/bin/vim - priority 200<br />
Current `best' version is /usr/bin/vim.<br />
$ sudo alternatives --auto vi<br />
$ alternatives --display vi<br />
vi - status is auto.<br />
link currently points to /usr/bin/vim<br />
/bin/vim.minimal - priority 100<br />
/usr/bin/vim - priority 200<br />
Current `best' version is /usr/bin/vim.</code></p>
<p>אגב, מערכת ה-alternatives זמינה גם ההפצות מבוססות דביאן, עם הפקודה update-alternatives. רק שבדביאן, vi הוא alternative בברירת מחדל.</p>
</div>]]></content:encoded>			<wfw:commentRss>http://traum.org.il/2011/08/%d7%94%d7%95%d7%a1%d7%a4%d7%aa-alternative-%d7%9c-vi-%d7%94%d7%9e%d7%a9%d7%9a/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8235;הוספת alternative ל-VI&#8236;</title>		<link>http://traum.org.il/2011/08/%d7%94%d7%95%d7%a1%d7%a4%d7%aa-alternative-%d7%9c-vi/</link>
		<comments>http://traum.org.il/2011/08/%d7%94%d7%95%d7%a1%d7%a4%d7%aa-alternative-%d7%9c-vi/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 10:39:24 +0000</pubDate>
		<dc:creator>&#8235;כתריאל&#8236;</dc:creator>				<category><![CDATA[linux]]></category>
		<category><![CDATA[alternatives]]></category>
		<category><![CDATA[vi]]></category>

		<guid isPermaLink="false">http://traum.org.il/?p=289</guid>
		<description><![CDATA[&#8235;לפני שבוע התקנתי פדורה 15 על הלפטופ החדש שלי. כשניסיתי לערוך קובץ XML, התפלאתי לראות ש-Syntax Highlighting לא עובד. גם כאשר ניסיתי ידנית להפעיל highlighting (למרות שהוא מופעל דרך .vimrc) ולקבוע את ה-syntax כ-XML, לא קרה כלום. לאחר בירור קצר, &#8230; <a href="http://traum.org.il/2011/08/%d7%94%d7%95%d7%a1%d7%a4%d7%aa-alternative-%d7%9c-vi/">Continue reading <span class="meta-nav">&#8594;</span></a>&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>לפני שבוע התקנתי פדורה 15 על הלפטופ החדש שלי. כשניסיתי לערוך קובץ XML, התפלאתי לראות ש-Syntax Highlighting לא עובד. גם כאשר ניסיתי ידנית להפעיל highlighting (למרות שהוא מופעל דרך .vimrc) ולקבוע את ה-syntax כ-XML, לא קרה כלום.</p>
<p>לאחר בירור קצר, מסתבר כי כברירת מחדל מותקן vim-minimal, שמפנה ל /bin/vi. אין בעיה חשבתי, אתקין את vim-enhanced, ואקבל את היכולות של vim. לאחר ההתקנה שוב התאכזבתי, vim-enhanced הותקן כ /usr/bin/vim.</p>
<p><strong>שאני אכתוב vim במקום vi לערוך קובץ?</strong> זה כמו שפתאום יחליטו במדינת ישראל לנהוג בצד ימן של הכביש. נתרגל בסוף, אבל כמה סבל וכמה תאונות נצטרך לעבור עד שזה יקרה&#8230;</p>
<p>הפתרון הקל, אני יודע, הוא פשוט ליצור alias  שיפנה את vi ל-vim. אבל כאיש System, חיפשתי פתרון יותר &quot;מערכתי&quot;. למען האמת, מראש התפלאתי שפדורה לא השתמשו ב-alternatives, אז החלטתי לקחת את העניינים לידיים וליישם alternatives ל-vi בעצמי.</p>
<p>מנגנון alternatives מאפשר התקנה של כמה חבילות שמספקות את אותה הפונקציונאליות במערכת, ולנתב ביניהם, בד&quot;כ ע&quot;פי משקל. דוגמה קלאסית היא java. במערכת יכולים להיות מותקנים java-1.6 ו-java-1.5 בו זמנית, כאשר ל-java-1.6 יהיה משקל רב יותר, והוא יופעל כברירת מחדל. כפועל יוצא, בכל פעם מריצים את הפקודה &quot;java&quot;, מופנים ע&quot;י symbolic link ל- java-1.6. אז איך מכניסים את vim תחת ניהול של alternatives?</p>
<p dir="ltr"><code> sudo yum install vim-enhanced<br />
sudo mv /bin/vi /bin/vim.minimal<br />
sudo alternatives --install /bin/vi vi /bin/vim.minimal 100<br />
sudo alternatives --install /bin/vi vi /usr/bin/vim 200</code></p>
<p>אז מה יש לנו פה. הפקודה הראשונה היא כמובן התקנה של vim-enhanced.<br />
בפקודה השניה נזיז את /bin/vi ל- /bin/vim.minimal כדי שנוכל להוסיף אותו כ-alternative עבור /bin/vi.</p>
<p>2 השורות הבאות יוצרות את ה-alternatives, פורמט הפקודה הוא</p>
<p dir="ltr"><code>&lt;alternatives --install &lt;link&gt; &lt;name&gt; &lt;path&gt; &lt;priority&gt;</code></p>
<p><strong></strong>כלומר, צור alternative חדש, שהנתיב שלו הוא /bin/vi, שמו הוא vi, והקובץ המקורי נמצא ב /usr/bin/vim.minimal, עם עדיפות 100.</p>
<p>לאחר הרצת הפקודות, ניתן להריץ את הפקודה <strong>alternatives &#8211;display vi </strong>כדי לראות את מצב ה-alternative</p>
<p dir="ltr"><code> $ alternatives --display vi<br />
vi - status is auto.<br />
link currently points to /usr/bin/vim<br />
/bin/vim.minimal - priority 100<br />
/usr/bin/vim - priority 200<br />
Current `best' version is /usr/bin/vim.</code></p>
<p>דוגמאות לכלים נוספים שנמצאים תחת alternatives הם mkisofs, cdrecord, lpr, sendmail</p>
</div>]]></content:encoded>			<wfw:commentRss>http://traum.org.il/2011/08/%d7%94%d7%95%d7%a1%d7%a4%d7%aa-alternative-%d7%9c-vi/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>&#8235;התקנת מכונה וירטואלית עם libvirt על שרת ללא מסך&#8236;</title>		<link>http://traum.org.il/2011/08/%d7%94%d7%aa%d7%a7%d7%a0%d7%aa-%d7%9e%d7%9b%d7%95%d7%a0%d7%94-%d7%95%d7%99%d7%a8%d7%98%d7%95%d7%90%d7%9c%d7%99%d7%aa-%d7%a2%d7%9d-libvirt-%d7%a2%d7%9c-%d7%a9%d7%a8%d7%aa-%d7%9c%d7%9c%d7%90-%d7%9e/</link>
		<comments>http://traum.org.il/2011/08/%d7%94%d7%aa%d7%a7%d7%a0%d7%aa-%d7%9e%d7%9b%d7%95%d7%a0%d7%94-%d7%95%d7%99%d7%a8%d7%98%d7%95%d7%90%d7%9c%d7%99%d7%aa-%d7%a2%d7%9d-libvirt-%d7%a2%d7%9c-%d7%a9%d7%a8%d7%aa-%d7%9c%d7%9c%d7%90-%d7%9e/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 18:56:03 +0000</pubDate>
		<dc:creator>&#8235;כתריאל&#8236;</dc:creator>				<category><![CDATA[kvm]]></category>
		<category><![CDATA[virtualization]]></category>
		<category><![CDATA[anaconda]]></category>
		<category><![CDATA[fedora]]></category>
		<category><![CDATA[libvirt]]></category>

		<guid isPermaLink="false">http://traum.org.il/?p=273</guid>
		<description><![CDATA[&#8235;עם הגרסאות החדשות של פדורה\RHEL\Ubuntu (ובעצם כל הפצה מודרנית) מגיע גירסה של virt-manager. למי שלא מכיר, virt-manager הוא כלי ניהול גראפי שמאפשר התקנה של מכונה וירטואלית עם אמולציה של מסך, מקלדת ועכבר. בנוסף, הוא מאפשר ניהול של כל החומרה הקשורה ל-VM, &#8230; <a href="http://traum.org.il/2011/08/%d7%94%d7%aa%d7%a7%d7%a0%d7%aa-%d7%9e%d7%9b%d7%95%d7%a0%d7%94-%d7%95%d7%99%d7%a8%d7%98%d7%95%d7%90%d7%9c%d7%99%d7%aa-%d7%a2%d7%9d-libvirt-%d7%a2%d7%9c-%d7%a9%d7%a8%d7%aa-%d7%9c%d7%9c%d7%90-%d7%9e/">Continue reading <span class="meta-nav">&#8594;</span></a>&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>עם הגרסאות החדשות של פדורה\RHEL\Ubuntu (ובעצם כל הפצה מודרנית) מגיע גירסה של virt-manager. למי שלא מכיר, virt-manager הוא כלי ניהול גראפי שמאפשר התקנה של מכונה וירטואלית עם אמולציה של מסך, מקלדת ועכבר. בנוסף, הוא מאפשר ניהול של כל החומרה הקשורה ל-VM, החל בדיסק וכלה בכמות המעבדים שנקצה ל-VM. אבל מה עושים כשצריך להתקין שרת וירטואלי, על מכונה מרוחקת אליה אין גישה פיזית? בשביל זה יש את virt-install</p>
<p>virt-install הוא החלופה הטקסטואלית של virt-manager, הוא מאפשר התקנה של מכונה וירטואלית, דרך שורת הפקודה, בצורה גמישה מאוד.</p>
<p>אז איך מתקינים:</p>
<p dir="ltr"><code><br />
virt-install --name="test" --ram=512 --vcpus=1 --graphics none --disk path=/tmp/test.img,size=5 --network network=default --location=http://example.com/iso --extra-args "console=ttyS0,115200 headless text"</code></p>
<p>הפקודה הנ&quot;ל, תגרום ליצירת מכונה וירטואלית חדשה, ששמה test (ראה &#8211;name=&quot;test&quot;), עם מעבד אחד ו-512M של RAM. המכונה הוירטואלית מחוברת לרשת ברירת המחדל (network:default) שמספקת DHCP\NAT ותותקן על דיסק בגודל 5G (ראה &#8211;disk path=/tmp/test.img,size=5)</p>
<p>ההתקנה תתבצע מעל הרשת, כך יש צורך בגישה מקומית (אני משתמש ב lighttpd) או מרוחקת (למשל אתר מראה של פדורה) לקבצי ההתקנה. ניתן לבצע גם התקנה מ-ISO מקומי ע&quot;י אמולציה של CDROM, הבעיה שאז לא ניתן להעביר פרמטרים ל-installer  בעזרת extra-args</p>
<p>אפשרות נוספת, במידה ויש גישה מעל VNC למכונה, היא להשתמש באופציה &quot;vnc&quot; תחת &quot;extra-args&quot;. אפשרות זו תגרום ל-installer להריץ שרת VNC, ולספק את כתובת ה-IP שניתן להתחבר אליה כדי להמשיך את ההתקנה.</p>
<p>תוספת אחרונה, במידה וכבר מבצעים התקנה מרחוק, ניתן לבצע התקנה אוטומאטית מלאה ע&quot;י שימוש ב-<a title="לבעוט במערכת (KickStart)" href="http://traum.org.il/2010/11/%d7%9c%d7%91%d7%a2%d7%95%d7%98-%d7%91%d7%9e%d7%a2%d7%a8%d7%9b%d7%aa-kickstart/">Kickstart</a></p>
</div>]]></content:encoded>			<wfw:commentRss>http://traum.org.il/2011/08/%d7%94%d7%aa%d7%a7%d7%a0%d7%aa-%d7%9e%d7%9b%d7%95%d7%a0%d7%94-%d7%95%d7%99%d7%a8%d7%98%d7%95%d7%90%d7%9c%d7%99%d7%aa-%d7%a2%d7%9d-libvirt-%d7%a2%d7%9c-%d7%a9%d7%a8%d7%aa-%d7%9c%d7%9c%d7%90-%d7%9e/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8235;מכרו אותי&#8236;</title>		<link>http://traum.org.il/2011/07/%d7%9e%d7%9b%d7%a8%d7%95-%d7%90%d7%95%d7%aa%d7%99/</link>
		<comments>http://traum.org.il/2011/07/%d7%9e%d7%9b%d7%a8%d7%95-%d7%90%d7%95%d7%aa%d7%99/#comments</comments>
		<pubDate>Thu, 14 Jul 2011 20:38:10 +0000</pubDate>
		<dc:creator>&#8235;כתריאל&#8236;</dc:creator>				<category><![CDATA[כללי]]></category>
		<category><![CDATA[bookmarks]]></category>
		<category><![CDATA[delicious]]></category>

		<guid isPermaLink="false">https://traum.org.il/?p=269</guid>
		<description><![CDATA[&#8235;חלק מהעבודה של איש סיסטם, לדעתי, היא לימוד: לימוד של טכנולוגיות חדשות, שיטות חדשות, כלים חדשים ועוד. חלק חשוב של תהליך זה אצלי הוא שמירת המידע לעיון חוזר או קריאה עתידית. אני כבר די הרבה שנים משתמש ב-del.ici.us, לימים delicious.com. &#8230; <a href="http://traum.org.il/2011/07/%d7%9e%d7%9b%d7%a8%d7%95-%d7%90%d7%95%d7%aa%d7%99/">Continue reading <span class="meta-nav">&#8594;</span></a>&#8236;]]></description>			<content:encoded><![CDATA[<div dir="rtl"><p>חלק מהעבודה של איש סיסטם, לדעתי, היא לימוד: לימוד של טכנולוגיות חדשות, שיטות חדשות, כלים חדשים ועוד. חלק חשוב של תהליך זה אצלי הוא שמירת המידע לעיון חוזר או קריאה עתידית. אני כבר די הרבה שנים משתמש ב-del.ici.us, לימים delicious.com.</p>
<p>לאחרונה הודיע Yahoo על <a href="http://blog.delicious.com/blog/2011/05/youtube-founders-acquire-delicious.html">מכירתה של delicious.com</a> לחברה שבבעלות מיסדי youtube (כאילו שזה אמור להרשים אותי). בהודעתם אומרים Yahoo כי ימשיכו להפעיל את האתר עד &quot;בערך יולי&quot;, ואז מבקשים את אישורי להעביר את כל המידע שצברתי, את כל אותם הקישורים ששמרתי במהלך השנים, לחברה החדשה.</p>
<p>מכיוון שעל Yahoo אני לא ממש סומך עם המידע שלי, ואת החברה החדשה אני בכלל לא מכיר, חשבתי לעבור לשירות אחר, או לחלופין, למשהו מקומי.</p>
<p>אשמח לשמוע באיזה תוכנות \ אתרים אתם משתמשים כדי לשמור קישורים חשובים ולגלות קישורים חדשים</p>
</div>]]></content:encoded>			<wfw:commentRss>http://traum.org.il/2011/07/%d7%9e%d7%9b%d7%a8%d7%95-%d7%90%d7%95%d7%aa%d7%99/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

