<?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>m1chu.eu - another devblog &#187; CodeTwister</title>
	<atom:link href="http://m1chu.eu/category/ogolne/codetwister/feed/" rel="self" type="application/rss+xml" />
	<link>http://m1chu.eu</link>
	<description>we live, as we dream... alone - another devblog</description>
	<lastBuildDate>Sun, 14 Nov 2010 11:07:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>CodeTwister (#2) &#8211; nadszedł czas prostych zagadek programistycznych!</title>
		<link>http://m1chu.eu/2010/09/10/codetwister-2-nadszedl-czas-prostych-zagadek-programistycznych/</link>
		<comments>http://m1chu.eu/2010/09/10/codetwister-2-nadszedl-czas-prostych-zagadek-programistycznych/#comments</comments>
		<pubDate>Fri, 10 Sep 2010 09:57:02 +0000</pubDate>
		<dc:creator>m1chu</dc:creator>
				<category><![CDATA[CodeTwister]]></category>
		<category><![CDATA[Webhosting]]></category>
		<category><![CDATA[arytmetyka]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webmastering]]></category>
		<category><![CDATA[zagadka]]></category>

		<guid isPermaLink="false">http://m1chu.eu/?p=1858</guid>
		<description><![CDATA[Po niespełna dwóch latach pora na kontynuację zabawy. Tym razem poziom wyżej i mieszanka: jedno zadanie dotyczące języka kompilowanego, a drugie skryptowego. A przed tym, rozwiązanie poprzedniej zagadki&#8230; CodeTwister (#1) &#8211; rozwiązanie W listopadzie 2008 roku zamieściłem prosty quiz dotyczący kodu XHTML, CSS i JavaScript. Rozwiązanie opierało się na poprawieniu czterech błędów: W przypadku użycia [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="iborder" src="http://images.m1chu.eu/index.php?res=MTBfMDlfMTBfY29kZXR3aXN0ZXIyO2NvZGV0d2lzdGVyMl9wb3N0X2hlYWRlci5wbmc=" style="width: 538px; height: 119px;" alt="brak pluginu Flash" /></p>
<p>Po niespełna dwóch latach pora na kontynuację zabawy. Tym razem poziom wyżej i mieszanka: jedno zadanie dotyczące języka kompilowanego, a drugie skryptowego. A przed tym, rozwiązanie poprzedniej zagadki&#8230;</p>
<p><span id="more-1858"></span></p>
<h2>CodeTwister (#1) &#8211; rozwiązanie</h2>
<p>W listopadzie 2008 roku <a href="http://m1chu.eu/2008/11/04/codetwister-1-nadszedl-czas-prostych-zagadek-programistycznych" >zamieściłem</a> prosty quiz dotyczący kodu <strong>XHTML</strong>, <strong>CSS</strong> i <strong>JavaScript</strong>. Rozwiązanie opierało się na poprawieniu czterech błędów:</p>
<ol>
<li>W przypadku użycia negatywnego komentarza warunkowego <a href="http://m1chu.eu/2008/12/22/haki-css-dla-niepokornego-internet-explorera/" >strona przestaje być prawidłowym dokumentem XHTML</a>. Tym bardziej wewnątrz arkusza stylów. Style przeznaczone dla Internet Explorera powinny więc być umieszczone w ukrytych komentarzach warunkowych lub za pomocą odpowiednich haków.
<pre class="brush: css; title: ;">&lt;![if !IE]&gt;
div#container p {
    color: #ccc;
}
&lt;![endif]&gt;</pre>
</li>
<li>Znacznik <code>comment</code> <a href="http://m1chu.eu/2008/12/22/haki-css-dla-niepokornego-internet-explorera/" >nie jest elementem XHTML</a>.
<pre class="brush: xml; title: ;">&lt;comment&gt;Nie używasz&lt;/comment&gt;</pre>
</li>
<li>Nie można w poniższy sposób dodać elementu z zawartością do jakiegokolwiek potomka <code>body</code> ponieważ kod JavaScript wykonywany jest przed załadowaniem dokumentu XHTML. W celu rozwiązania problemu można wykorzystać m.in. możliwości frameworków, elementu <code>onload</code> albo zdarzeń <code>DOMContentLoaded</code> lub <code>window.onload</code>.
<pre class="brush: jscript; title: ;">&lt;script type=&quot;text/javascript&quot;&gt;
&lt;!--
if ( navigator.appName == &quot;Microsoft Internet Explorer&quot; &amp;&amp; navigator.appVersion.indexOf(&quot;MSIE 7&quot;) &gt; -1 )
{
    var p = document.createElement('p');
    p.appendChild(document.createTextNode(&quot;Wersja silnika IE: &quot; + navigator.appVersion));
    document.body.firstChild.appendChild(p);
}
--&gt;
&lt;/script&gt;</pre>
</li>
<li>Brak wymaganego znacznika title.</li>
</ol>
<p>Najbliżej rozwiązania był więc <a href="http://m1chu.eu/2008/11/04/codetwister-1-nadszedl-czas-prostych-zagadek-programistycznych/#comment-3848" ><strong>gruch4</strong></a>. Gratulacje!</p>
<p>A w nowym pakiecie&#8230;</p>
<h2>Zadanie 1 w PHP: problem ze zwracanym wynikiem</h2>
<p>Wykonujemy poniższy kod PHP:</p>
<pre class="brush: php; title: ;">$zmienna_poczatkowa = 10;
$zmienna_wynikowa = ((~$zmienna_poczatkowa)^(1+8)) &lt;&lt; 2;
var_dump($zmienna_poczatkowa, $zmienna_wynikowa);</pre>
<p>Dlaczego poniższy kod w wyniku zwraca wartość ujemną (int(10) int(-16))? Jak powinna wygląda poprawnie skonstruowana składnia? Jaki będzie wtedy wynik?</p>
<h2>Zadanie 2 w C/C++: błędny kod</h2>
<p>Znajdź błędy w poniższym kodzie C/C++. Czego w nim brakuje?</p>
<pre class="brush: cpp; title: ;">#include &lt;stdio.h&gt;
#include &lt;windows.h&gt; 

#define SIZE 200 

int main()
{
    int *m = malloc(SIZE*sizeof(int)), i;
    char small = 'x', large = 'y';

    for (i = 0; i &lt; SIZE; ++i) {
        if ( !(i % 2) )
            printf(&quot;%s: %d\n&quot;, small, (*(m + i) = i * i));
        else
            printf(&quot;%s: %d\n&quot;, large, (*(m + i) = i * i));
    }

    free(m);

    return 0;
}</pre>
<p>Życzę wszystkim powodzenia! :]</p>
]]></content:encoded>
			<wfw:commentRss>http://m1chu.eu/2010/09/10/codetwister-2-nadszedl-czas-prostych-zagadek-programistycznych/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>CodeTwister (#1) &#8211; nadszedł czas prostych zagadek programistycznych!</title>
		<link>http://m1chu.eu/2008/11/04/codetwister-1-nadszedl-czas-prostych-zagadek-programistycznych/</link>
		<comments>http://m1chu.eu/2008/11/04/codetwister-1-nadszedl-czas-prostych-zagadek-programistycznych/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 14:43:50 +0000</pubDate>
		<dc:creator>m1chu</dc:creator>
				<category><![CDATA[CodeTwister]]></category>
		<category><![CDATA[Webhosting]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[Webmastering]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[zagadka]]></category>

		<guid isPermaLink="false">http://m1chu.eu/?p=514</guid>
		<description><![CDATA[&#8222;Głupia stałość jest ulubieńcem ciasnych umysłów.&#8221; &#8211; Ralph Waldo Emerson Żeby stanąć naprzeciw temu aforyzmowi wpisem tym rozpoczynam serię łamigłówek, bądź jak ktoś woli zagadek o tematyce programistycznej. Zabawa polegać będzie na tym, że raz na jakiś czas będę tworzył posty z kodem w treści&#8230; który oczywiście w pewnym stopniu będzie niepoprawny. Waszym zadaniem będzie [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="iborder" src="http://images.m1chu.eu/index.php?res=MDRfMTFfMDhfY29kZXR3aXN0ZXIxO2NvZGV0d2lzdGVyMV9wb3N0X2hlYWRlci5wbmc=" style="width: 538px; height: 119px;" alt="brak pluginu Flash" /></p>
<blockquote><p><strong>&#8222;Głupia stałość jest ulubieńcem ciasnych umysłów.&#8221;</strong> &#8211; Ralph Waldo Emerson</p></blockquote>
<p>Żeby stanąć naprzeciw temu aforyzmowi wpisem tym rozpoczynam serię łamigłówek, bądź jak ktoś woli zagadek o tematyce programistycznej. Zabawa polegać będzie na tym, że raz na jakiś czas będę tworzył posty z kodem w treści&#8230; który oczywiście w pewnym stopniu będzie niepoprawny. Waszym zadaniem będzie znalezienie błędu :D<br />
<span id="more-514"></span><br />
Pewnie wielu z Was ucieszy fakt, że tym razem na swojej drodze nie ujrzycie tekstu długości kilometra, a jedynie podstawowe informacje o tym &#8222;pojedynku&#8221;.</p>
<h2>Zasady?!</h2>
<ul>
<li><strong>1.</strong> Kod niekoniecznie musi mieć błąd, niekoniecznie musi być to jeden błąd, a już tym bardziej niekoniecznie musi go limitować jakakolwiek liczba błędów &#8211; czytaj, wolna amerykanka w ilości pomyłek do znalezienia.</li>
<li><strong>2.</strong> Odpowiedzi udzielajcie w komentarzach. Wygrywa ten kto pierwszy wskaże wszystkie omyłki w kodzie (o ile takowe tam będą). Pamiętajcie, że pierwszy Wasz komentarz na tym blogu musi być zmoderowany. Nie zniechęcać się więc, jeśli to nie będzie spam na pewno to zrobię (a i z kolejki też nie wylecicie ;]).</li>
<li><strong>3.</strong> Problematyka błędów najprawdopodobniej opierać się będzie na wyznaczonych wg. specyfikacji standardach. W tym pod uwagę należy brać różnorodne stosowane obejścia dla przeglądarek nie do końca działających wg. tychże standardów o ile z kodu wynika, że takowe mogły być użyte. Chyba, że w zadaniu będzie podane inaczej.</li>
<li><strong>4.</strong> Pytania będę starał się tworzyć o różnych stopniach trudności, ale bez skrajności ani w jedną, ani w drugą stronę. Oczywiście będą limitowane moim stopniem umiejętności i wiedzy (<em>gdzieś pomiędzy lame, a newbie</em>, przypisało&#8230; Alter Ego?).</li>
</ul>
<h2>Miało być krótko!!!</h2>
<p>Faktycznie, przepraszam&#8230; proszę nie bić ;] Łamigłówką na dzień dzisiejszy jest następujący kod <strong>XHTML + CSS + JS</strong>:</p>
<pre class="brush: xml; title: ;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
   &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;

&lt;html xml:lang=&quot;pl&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
	&lt;!-- wyslany jako application/xhtml+xml --&gt;
	&lt;meta http-equiv=&quot;Content-type&quot; content=&quot;application/xhtml+xml; charset=utf-8&quot; /&gt;
	&lt;style type=&quot;text/css&quot;&gt;
	body {
		font: bold 10px Helvetica, Arial;
		background-color: #000;
		color: #fff;
	}
	div#container {
		margin: 100px;
		width: 300px;
		height: 15px;
	}
	&lt;![if !IE]&gt;
	div#container p {
		color: #ccc;
	}
	&lt;![endif]&gt;
	&lt;/style&gt;

	&lt;script type=&quot;text/javascript&quot;&gt;
	&lt;!--
	if ( navigator.appName == &quot;Microsoft Internet Explorer&quot; &amp;&amp; navigator.appVersion.indexOf(&quot;MSIE 7&quot;) &gt; -1 )
	{
		var p = document.createElement(&quot;p&quot;);
		p.appendChild(document.createTextNode(&quot;Wersja silnika IE: &quot; + navigator.appVersion));
		document.body.firstChild.appendChild(p);
	}
	--&gt;
	&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
	&lt;div id=&quot;container&quot;&gt;
		&lt;h1&gt;Przeglądarka!&lt;/h1&gt;
		&lt;p&gt;&lt;comment&gt;Nie używasz&lt;/comment&gt;&lt;!--[if IE]&gt;Używasz&lt;![endif]--&gt; IE!&lt;/p&gt;
	&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p><strong>CodeTwister</strong>, podejście <strong>pierwsze</strong> czas zacząć!</p>
]]></content:encoded>
			<wfw:commentRss>http://m1chu.eu/2008/11/04/codetwister-1-nadszedl-czas-prostych-zagadek-programistycznych/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

