<?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>Хрониките на един Цветомир</title>
	<atom:link href="http://ceco.botspot.org/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://ceco.botspot.org</link>
	<description>Live like you were going to die tomorrow; learn like you will live forever. — Gandhi</description>
	<lastBuildDate>Thu, 26 Nov 2009 15:49:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Khan Academy</title>
		<link>http://ceco.botspot.org/?p=175</link>
		<comments>http://ceco.botspot.org/?p=175#comments</comments>
		<pubDate>Wed, 19 Aug 2009 09:17:43 +0000</pubDate>
		<dc:creator>tsurko</dc:creator>
				<category><![CDATA[ALL]]></category>

		<guid isPermaLink="false">http://ceco.botspot.org/?p=175</guid>
		<description><![CDATA[Цитат от сайта на Khan Academy:
&#8220;Khan Academy е некомерсиална организация, чиято цел е да предоставя висококачествено образование за всеки, навсякъде.&#8221;
На сайта им има линкове към YouTube с кратки лекции на много разнообразна тематика. Записани са от Salman Khan и са свободно достъпни. Академията има и канал в YouTube.
Експертите в областта едва ли ще открият нови [...]]]></description>
			<content:encoded><![CDATA[<p>Цитат от сайта на <a href="http://www.khanacademy.org/">Khan Academy</a>:<br />
&#8220;Khan Academy е некомерсиална организация, чиято цел е да предоставя висококачествено образование за всеки, навсякъде.&#8221;<br />
На сайта им има линкове към YouTube с кратки лекции на много разнообразна тематика. Записани са от Salman Khan и са свободно достъпни. Академията има и <a href="http://www.youtube.com/khanacademy">канал в YouTube</a>.<br />
Експертите в областта едва ли ще открият нови тайни познания, но сайтът е полезен за всеки, който иска да научи нещо ново на научно-популярно ниво.</p>
]]></content:encoded>
			<wfw:commentRss>http://ceco.botspot.org/?feed=rss2&amp;p=175</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>X Server под Windows</title>
		<link>http://ceco.botspot.org/?p=171</link>
		<comments>http://ceco.botspot.org/?p=171#comments</comments>
		<pubDate>Tue, 18 Aug 2009 07:57:15 +0000</pubDate>
		<dc:creator>tsurko</dc:creator>
				<category><![CDATA[ALL]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[Xorg]]></category>

		<guid isPermaLink="false">http://ceco.botspot.org/?p=171</guid>
		<description><![CDATA[Пренасочването на X сесия през SSH позволява графични приложения за Linux да се изпълняват на отдалечен компютър, като използват X сървъра на локалната машина. Т.е. крайния ефект е приложение, което виждаме на нашия монитор, но реално работи на отдалечената машина. Аналогичен ефект може да се постигне и с Windows &#8211; да стартираме графично Linux приложение, [...]]]></description>
			<content:encoded><![CDATA[<p>Пренасочването на X сесия през SSH позволява графични приложения за Linux да се изпълняват на отдалечен компютър, като използват X сървъра на локалната машина. Т.е. крайния ефект е приложение, което виждаме на нашия монитор, но реално работи на отдалечената машина. Аналогичен ефект може да се постигне и с Windows &#8211; да стартираме графично Linux приложение, което да се визуализира на Windows базирана машина.<br />
За целта е необходимо под Windows да има инсталиран X сървър. Аз използвам <a href="http://x.cygwin.com">Cygwin-X</a>. Ето линк до <a href="http://cygwin.com/setup.exe">самото бинари</a> и <a href="http://x.cygwin.com/docs/ug">потребителската документация</a>. Самата инсталация е изключително праволинейна &#8211; няма да се спирам на нея. След инсталацията старитраме сървъра така:</p>
<blockquote><p>
C:\cygwin\bin\XWin.exe -multiwindow
</p></blockquote>
<p>Параметъра multiwindow указва всяко приложение да се стартира в собствен прозорец. Повече информация за параметрите на XWin има <a href="http://x.cygwin.com/docs/ug/configure-cygwin-x-options.html">тук</a>.<br />
Освен X сървър ни е нужен и ssh клиент, който поддържа пренасочване на X сесии. Аз използвам putty, но предполагам има и много други опции. Пренасочването се активира от Connection -> SSH -> X11 -> Enable X11 forwarding. За да работи това сървъра трябва да има следната опция в /etc/ssh/sshd_config:</p>
<blockquote><p>
X11Forwarding yes
</p></blockquote>
<p>В Ubuntu тя е включена по подразбиране. Когато всичко това е готово просто се свързваме с машината и стартираме приложението. То ще се появи на десктопа все едно работи на локалната машина. Естествено при проблеми със свързаността може да има забавяне при работа с прозореца. Но какво да се прави &#8211; няма безплатен обяд:)</p>
<p>P.S. С гореописаната конфигурация не може да се пише на кирилица в приложенията. Това е настройка на локалния сървър. Като го пусна при мен ще актуализирам поста.</p>
]]></content:encoded>
			<wfw:commentRss>http://ceco.botspot.org/?feed=rss2&amp;p=171</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>prostotia.c</title>
		<link>http://ceco.botspot.org/?p=162</link>
		<comments>http://ceco.botspot.org/?p=162#comments</comments>
		<pubDate>Tue, 28 Jul 2009 09:23:54 +0000</pubDate>
		<dc:creator>tsurko</dc:creator>
				<category><![CDATA[ALL]]></category>
		<category><![CDATA[fun]]></category>

		<guid isPermaLink="false">http://ceco.botspot.org/?p=162</guid>
		<description><![CDATA[
tsurko@bastila:~/work$ cat porno.c
#include&#8221;
int porn_a()
{
        printf(&#8221;in porn_a()\n&#8221;);
        goto PORNO;
        return 2;
}
char* porn_b(char* str)
{
        printf(&#8221;in porn_b()\n&#8221;);
PORNO:
        return str;
}
int main()
{
    [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>
tsurko@bastila:~/work$ cat porno.c<br />
#include&#8221;<stdio.h></p>
<p>int porn_a()<br />
{<br />
        printf(&#8221;in porn_a()\n&#8221;);<br />
        goto PORNO;<br />
        return 2;<br />
}</p>
<p>char* porn_b(char* str)<br />
{<br />
        printf(&#8221;in porn_b()\n&#8221;);<br />
PORNO:<br />
        return str;<br />
}</p>
<p>int main()<br />
{<br />
        int res;</p>
<p>        printf(&#8221;Let the pr0n begin&#8230;\n&#8221;);<br />
        res = porn_a();</p>
<p>        printf(&#8221;RESULT: %d\n&#8221;, res);</p>
<p>        return 0;<br />
}</p>
<p>tsurko@bastila:~/work$ gcc porno.c<br />
porno.c: In function porn_a:<br />
porno.c:6: error: label PORNO used but not defined<br />
tsurko@bastila:~/work$
</p></blockquote>
<p>В един идеален свят за страна, в чиито флаг преобладават синьо, бяло и червено, това би се компилирало&#8230;<br />
P.S. Всъщност в С това е възможно с setjump() и lonjump() <img src='http://ceco.botspot.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://ceco.botspot.org/?feed=rss2&amp;p=162</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My lair &#8211; reloaded</title>
		<link>http://ceco.botspot.org/?p=158</link>
		<comments>http://ceco.botspot.org/?p=158#comments</comments>
		<pubDate>Sun, 29 Mar 2009 21:26:29 +0000</pubDate>
		<dc:creator>tsurko</dc:creator>
				<category><![CDATA[ALL]]></category>
		<category><![CDATA[fun]]></category>

		<guid isPermaLink="false">http://ceco.botspot.org/?p=158</guid>
		<description><![CDATA[По време на странстването ми в Малта бях написал един тъжен пост за т. нар. работно място тогава. В случай, че някой се е уплашил за моя уют и комфорт ще публикувам актуална снимка от бърлогата ми:

Както казва една моя дружка &#8220;Когато сме най-зле &#8211; така да сме!&#8221;.
]]></description>
			<content:encoded><![CDATA[<p>По време на странстването ми в Малта бях написал един <a href="http://ceco.botspot.org/?p=19">тъжен пост</a> за т. нар. работно място тогава. В случай, че някой се е уплашил за моя уют и комфорт ще публикувам актуална снимка от бърлогата ми:</p>
<p><img src="http://ceco.botspot.org/wp-content/uploads/IMG_0963.JPG" alt="new lair" /></p>
<p>Както казва една моя дружка &#8220;Когато сме най-зле &#8211; така да сме!&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://ceco.botspot.org/?feed=rss2&amp;p=158</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Кредитната криза нагледно</title>
		<link>http://ceco.botspot.org/?p=148</link>
		<comments>http://ceco.botspot.org/?p=148#comments</comments>
		<pubDate>Sat, 07 Mar 2009 16:12:38 +0000</pubDate>
		<dc:creator>tsurko</dc:creator>
				<category><![CDATA[ALL]]></category>
		<category><![CDATA[други]]></category>

		<guid isPermaLink="false">http://ceco.botspot.org/?p=148</guid>
		<description><![CDATA[The Crisis of Credit Visualized from Jonathan Jarvis on Vimeo.
]]></description>
			<content:encoded><![CDATA[<p><object width="400" height="225"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=3261363&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=3261363&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="225"></embed></object><br /><a href="http://vimeo.com/3261363">The Crisis of Credit Visualized</a> from <a href="http://vimeo.com/jonathanjarvis">Jonathan Jarvis</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ceco.botspot.org/?feed=rss2&amp;p=148</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>qemu + nohup = голям load</title>
		<link>http://ceco.botspot.org/?p=146</link>
		<comments>http://ceco.botspot.org/?p=146#comments</comments>
		<pubDate>Sat, 07 Mar 2009 13:51:23 +0000</pubDate>
		<dc:creator>tsurko</dc:creator>
				<category><![CDATA[ALL]]></category>
		<category><![CDATA[daemonize]]></category>
		<category><![CDATA[freebsd]]></category>
		<category><![CDATA[qemu]]></category>

		<guid isPermaLink="false">http://ceco.botspot.org/?p=146</guid>
		<description><![CDATA[Имам едно виртуално FreeBSD, което понякога използвах дистанционно и стартирах с nohup. Идеята ми беше да се логна в host машината, да стартирам процеса и да изляза. Всичко работеше много добре, но забелязах, че след като стартирам qemu процеса host машината качваше много приличен load &#8211; около 1 &#8211; 1.5. В същото време обаче guest [...]]]></description>
			<content:encoded><![CDATA[<p>Имам едно виртуално FreeBSD, което понякога използвах дистанционно и стартирах с nohup. Идеята ми беше да се логна в host машината, да стартирам процеса и да изляза. Всичко работеше много добре, но забелязах, че след като стартирам qemu процеса host машината качваше много приличен load &#8211; около 1 &#8211; 1.5. В същото време обаче guest OS-а не правеше нищо &#8211; имаше load average клонящ към 0. Това естествено е супер дразнещо:)</p>
<p>След кратки тестове забелязах, че това се случва само като стартирам процеса с nohup (nohup ./fireup.sh &amp;). Нямам логично обяснение, но явно това не е добра идея. qemu има опция -daemonize, която върши много добра работа. Единствената особеност, която забелязах е, че трябва да се подаде пълния път до image файла.</p>
]]></content:encoded>
			<wfw:commentRss>http://ceco.botspot.org/?feed=rss2&amp;p=146</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>New look and feel</title>
		<link>http://ceco.botspot.org/?p=144</link>
		<comments>http://ceco.botspot.org/?p=144#comments</comments>
		<pubDate>Thu, 26 Feb 2009 13:05:56 +0000</pubDate>
		<dc:creator>tsurko</dc:creator>
				<category><![CDATA[ALL]]></category>

		<guid isPermaLink="false">http://ceco.botspot.org/?p=144</guid>
		<description><![CDATA[Блогът ми се сдоби с нова тема:). Казва се Composito и неин автор е Elena Gafita. Подробно ревю на темата може да намерите в SmashingMagazine.
]]></description>
			<content:encoded><![CDATA[<p>Блогът ми се сдоби с нова тема:). Казва се Composito и неин автор е <a href="http://designdisease.com/" target="_blank">Elena Gafita</a>. Подробно ревю на темата може да намерите в <a href="http://www.smashingmagazine.com/2009/02/18/compositio-clean-beautiful-and-free-wordpress-theme/">SmashingMagazine</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ceco.botspot.org/?feed=rss2&amp;p=144</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Месечни дарения за SOS Детски селища България</title>
		<link>http://ceco.botspot.org/?p=138</link>
		<comments>http://ceco.botspot.org/?p=138#comments</comments>
		<pubDate>Wed, 25 Feb 2009 12:30:24 +0000</pubDate>
		<dc:creator>tsurko</dc:creator>
				<category><![CDATA[ALL]]></category>
		<category><![CDATA[sos]]></category>

		<guid isPermaLink="false">http://ceco.botspot.org/?p=138</guid>
		<description><![CDATA[Разбрах за тази кампания от блога на Йовко Ламбрев. Той е написал много хубав пост по темата, озаглавен &#8220;Приказка без край&#8221;.Накратко ще преразкажа за какво стада въпрос.
Всеки, който желае може да се регистрира от тук (регистрация за частни лица) и всеки месец според възможностите си да направи дарение за кампанията. Всичко това става много бързо [...]]]></description>
			<content:encoded><![CDATA[<p>Разбрах за тази кампания от <a title="yovko in a nutshell" href="http://yovko.net">блога на Йовко Ламбрев</a>. Той е написал много хубав <a title="Приказка без край" href="http://yovko.net/archives/1945">пост</a> по темата, озаглавен &#8220;Приказка без край&#8221;.Накратко ще преразкажа за какво стада въпрос.</p>
<p style="margin-bottom: 0in;"><span lang="bg-BG">Всеки, който желае може да се регистрира от <a href="http://sosbg.org/family_donors_private.php">тук</a> (регистрация за частни лица) и всеки месец според възможностите си да направи дарение за кампанията. Всичко това става много бързо – дарението може да се регистрира като месечно плащане в e-pay, да се използва електронно банкиране и т.н. Размера на дарението се определя изцяло от вас &#8211; кой колкото може и иска. Целта на кампанията е да се осигори системен приход от средства, с който да се посрещат нуждите на децата. Пожелавам успех на организаторите!</span></p>
]]></content:encoded>
			<wfw:commentRss>http://ceco.botspot.org/?feed=rss2&amp;p=138</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SSH сесии от BASH шел скрипт</title>
		<link>http://ceco.botspot.org/?p=135</link>
		<comments>http://ceco.botspot.org/?p=135#comments</comments>
		<pubDate>Fri, 05 Dec 2008 23:32:54 +0000</pubDate>
		<dc:creator>tsurko</dc:creator>
				<category><![CDATA[ALL]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://ceco.botspot.org/?p=135</guid>
		<description><![CDATA[Bash има опция, която ако не се лъжа се нарича &#8220;пренасочване на входа&#8221;. Т.е. нещо подобно на това:

#!/bin/sh
mysql -u tsurko -p mydb ]]></description>
			<content:encoded><![CDATA[<p>Bash има опция, която ако не се лъжа се нарича &#8220;пренасочване на входа&#8221;. Т.е. нещо подобно на това:</p>
<blockquote><p>
#!/bin/sh</p>
<p>mysql -u tsurko -p mydb <<EOF<br />
SELECT * FROM test_table;<br />
SELECT * FROM other_table;<br />
quit<br />
EOF<br />
exit
</p></blockquote>
<p>Този скрипт ще се свърже с MySQL, ще поиска парола, ще изпълни 2-те заявки и ше излезе. По аналогичен начин обаче може да се направи и ssh сесия към сървър в bash скрипт. Ето един пример:</p>
<blockquote><p>
#!/bin/sh</p>
<p>ssh example.com <<EOF<br />
touch test_file<br />
exit<br />
EOF<br />
exit
</p></blockquote>
<p>Така от шел скрипта могат да се изпълнят произволни команди на сървъра. При стартирането на скрипта се появяват следните грешки:</p>
<blockquote><p>
Warning: no access to tty (Bad file descriptor).<br />
Thus no job control in this shell.
</p></blockquote>
<p>До колкото си спомням това е общоизвестен проблем, но не съм се задълбавал за да видя как се решава. Ако някой знае нещо по въпроса, ще се радвам да го сподели.<br />
Това е полезно, но би било хубаво да се използват и шел променливи, за по-голяма гъвкавост. Всъщност това не е проблем. Ето например следния скрипт:</p>
<blockquote><p>
#!/bin/sh</p>
<p>TEST_VAR=sample_file</p>
<p>ssh example.com <<EOF<br />
touch $TEST_VAR<br />
exit<br />
EOF</p>
<p>echo "I'm back"<br />
exit
</p></blockquote>
<p>В този случай променливата TEST_VAR се &#8220;взима&#8221; от environment-а, където се изпълнява скрипта (т.е. локалната машина) и като резултат на отдалечената машина се изпълнява командата &#8220;touch sample_file&#8221;.<br />
Друг интересен въпрос е, какво може да се направи ако искаме да използваме шел променливите на машината, в която се логваме? Ето един пример:</p>
<blockquote><p>
#!/bin/sh</p>
<p>TEST_VAR=sample_file</p>
<p>ssh example.com <<EOF<br />
touch \$TEST_VAR<br />
exit<br />
EOF</p>
<p>echo "I'm back"<br />
exit
</p></blockquote>
<p>Да приемем, че на сървъра имаме сетната променливата TEST_VAR. В този случай, понеже $ е escape-нат то &#8220;$TEST_VAR&#8221; се третира като обикновен стринг, а не като променлива. В резултат на това командата, която реално се изпълнява на отдалечената машина е &#8220;touch $TEST_VAR&#8221; и променливата $TEST_VAR се взима от environment-a на отдалечената машина, а не от тази на нашия скрипт.<br />
И още нещо като за финал. Понякога се налага да се изпълнят едни и същи команди на няколко машини. В този случай трябва да ги въведем поотделно за всяка. Аз не успях да измисля как могат да се използват функции, за да се реши този проблем, затова прилагам следния метод. СЪздавам текстов файл с командите и използвам `cat <filename>` за да ги изпълня на сървъра. На мястото на &#8220; се замества изхода от командата, която е заградена в апострофите. Отбелязвам, че това е апострофа до 1-цата, а не до enter-a.</p>
<blockquote><p>
#!/bin/sh</p>
<p>ssh example.com <<EOF<br />
`cat test.cmd`<br />
exit<br />
EOF</p>
<p>ssh example2.com <<EOF<br />
`cat test.cmd`<br />
exit<br />
EOF</p>
<p>exit
</p></blockquote>
<p>Също така файла трябва да съдържа само команди &#8211; така както биха се написали на отдалечената машина. Никакви, специфични за bash, неща няма да бъдат отработени.<br />
Това е от мен &#8211; надявам се да съм бил полезен. Ще се радвам да чуя всякакви мнения и препоръки:)</p>
]]></content:encoded>
			<wfw:commentRss>http://ceco.botspot.org/?feed=rss2&amp;p=135</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>VirtualBox Spawning session</title>
		<link>http://ceco.botspot.org/?p=129</link>
		<comments>http://ceco.botspot.org/?p=129#comments</comments>
		<pubDate>Mon, 27 Oct 2008 23:16:42 +0000</pubDate>
		<dc:creator>tsurko</dc:creator>
				<category><![CDATA[ALL]]></category>
		<category><![CDATA[virtualbox]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://ceco.botspot.org/?p=129</guid>
		<description><![CDATA[След ъпгрейд на кернела VirtualBox изненадващо спира да пуска виртуални машини. Излиза едно прозорче с надпис Spawning session и &#8220;това е всичко приятели!&#8221;. Проблемът се решава лесно:
/etc/init.d/vboxdrv setup
Така се прекомпилира кернел модула на VirtualBox и след това всичко би трябвало да е наред. Естествено, желателно е по време на тази манипулация VirtualBox да не работи.
]]></description>
			<content:encoded><![CDATA[<p>След ъпгрейд на кернела VirtualBox изненадващо спира да пуска виртуални машини. Излиза едно прозорче с надпис Spawning session и &#8220;това е всичко приятели!&#8221;. Проблемът се решава лесно:</p>
<blockquote><p>/etc/init.d/vboxdrv setup</p></blockquote>
<p>Така се прекомпилира кернел модула на VirtualBox и след това всичко би трябвало да е наред. Естествено, желателно е по време на тази манипулация VirtualBox да не работи.</p>
]]></content:encoded>
			<wfw:commentRss>http://ceco.botspot.org/?feed=rss2&amp;p=129</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
