<?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>maliboo blog &#187; fms</title>
	<atom:link href="http://maliboo.pl/blog/category/fms/feed/" rel="self" type="application/rss+xml" />
	<link>http://maliboo.pl</link>
	<description>Po prostu kulsko!</description>
	<lastBuildDate>Fri, 30 Apr 2010 10:18:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>jQuery + FMS = Kind of magic</title>
		<link>http://maliboo.pl/blog/2009/07/08/jquery-fms-kind-of-magic/</link>
		<comments>http://maliboo.pl/blog/2009/07/08/jquery-fms-kind-of-magic/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 10:30:01 +0000</pubDate>
		<dc:creator>maliboo</dc:creator>
				<category><![CDATA[fms]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://maliboo.pl/?p=72</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->application.allowDebug = true; document = navigator = application; navigator.userAgent = application.server; document.getElementById = function () {return null}; document.documentElement = {removeChild: function(){}, insertBefore: function(){}}; document.createComment = function () {}; document.createElement = function () { return { style : {display: ""}, innerHTML: "", insertBefore: function () {}, appendChild: function() {}, getElementsByTagName: function () {return []} } }; [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p><code><br />
application.allowDebug = true;</p>
<p>document = navigator = application;<br />
navigator.userAgent = application.server;<br />
document.getElementById = function () {return null};<br />
document.documentElement = {removeChild: function(){}, insertBefore: function(){}};<br />
document.createComment = function () {};<br />
document.createElement = function ()<br />
{<br />
	return {<br />
		style : {display: ""},<br />
		innerHTML: "",<br />
		insertBefore: function () {},<br />
		appendChild: function() {},<br />
		getElementsByTagName: function () {return []}<br />
	}<br />
};<br />
location = {href: "localhost"};</p>
<p>trace("Starting jQuery...");<br />
load("jquery-1.3.2.js");<br />
trace("jQuery started!");</p>
<p></code></p>
<p>Teraz trzeba tylko nauczyć się jQuery i znaleźć zastosowanie ;o)</p>
]]></content:encoded>
			<wfw:commentRss>http://maliboo.pl/blog/2009/07/08/jquery-fms-kind-of-magic/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Adobe otwiera protokół RTMP</title>
		<link>http://maliboo.pl/blog/2009/01/21/adobe-otwiera-protokol-rtmp/</link>
		<comments>http://maliboo.pl/blog/2009/01/21/adobe-otwiera-protokol-rtmp/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 07:50:04 +0000</pubDate>
		<dc:creator>maliboo</dc:creator>
				<category><![CDATA[adobe]]></category>
		<category><![CDATA[fms]]></category>

		<guid isPermaLink="false">http://maliboo.pl/?p=68</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Inou się ucieszy. W pierwszej połowie (czyli pewnie pod jej koniec) 2009 Adobe opublikuje specyfikację protokołu RTMP. jak do tej pory był to format zamknięty, a wszystkie serwery (m.in. Red5), które z niego korzystały były pisane w oparciu o reverse engineering i dokumentacje tworzoną przez społeczność flashową. Notka prasowa.]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p><a href="http://inou.pl">Inou</a> się ucieszy. W pierwszej połowie (czyli pewnie pod jej koniec) 2009 <a href="http://www.adobe.com">Adobe</a> opublikuje specyfikację <a href="http://pl.wikipedia.org/wiki/Protokoły_komunikacyjne">protokołu</a> <a href="http://www.adobe.com/devnet/rtmp/">RTMP</a>. jak do tej pory był to format zamknięty, a wszystkie serwery (m.in. <a href="http://osflash.org/red5">Red5</a>), które z niego korzystały były pisane w oparciu o <a href="http://pl.wikipedia.org/wiki/Inżynieria_odwrotna">reverse engineering</a> i dokumentacje tworzoną przez społeczność flashową.</p>
<p><a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200901/012009RTMP.html">Notka prasowa</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://maliboo.pl/blog/2009/01/21/adobe-otwiera-protokol-rtmp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>FMS Eclipse IDE</title>
		<link>http://maliboo.pl/blog/2007/08/06/fms-eclipse-ide/</link>
		<comments>http://maliboo.pl/blog/2007/08/06/fms-eclipse-ide/#comments</comments>
		<pubDate>Mon, 06 Aug 2007 18:26:36 +0000</pubDate>
		<dc:creator>maliboo</dc:creator>
				<category><![CDATA[fms]]></category>

		<guid isPermaLink="false">http://maliboo.pl/blog/2007/08/06/fms-eclipse-ide/</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Nie mam pytań. Przy ciut większym nakładzie pracy (wygenerowanie interfejsów klas, etc.) dałoby się coś podobnego uzyskać przy pomocy Aptany, albo JSEclipse, ale import z AS2.0 mnie rozwalił. Ssać tu. Eclipse 3.2+ wymagany. (Via FlashComGuru)]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p><a href="http://fczone.com/eclipse/demo/">Nie mam pytań</a>. Przy ciut większym nakładzie pracy (wygenerowanie interfejsów klas, etc.) dałoby się coś podobnego uzyskać przy pomocy <a href="http://aptana.com/">Aptany</a>, albo <a href="http://labs.adobe.com/technologies/jseclipse/">JSEclipse</a>, ale import z AS2.0 mnie rozwalił. <a href="http://fczone.com/eclipse/">Ssać tu</a>. <a href="http://www.eclipse.org/">Eclipse</a> 3.2+ wymagany. (Via <a href="http://www.flashcomguru.com/index.cfm/2007/8/6/fms-ide">FlashComGuru</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://maliboo.pl/blog/2007/08/06/fms-eclipse-ide/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Getter/setter w FMS2</title>
		<link>http://maliboo.pl/blog/2007/06/28/gettersetter-w-fms2/</link>
		<comments>http://maliboo.pl/blog/2007/06/28/gettersetter-w-fms2/#comments</comments>
		<pubDate>Thu, 28 Jun 2007 12:51:59 +0000</pubDate>
		<dc:creator>maliboo</dc:creator>
				<category><![CDATA[fms]]></category>

		<guid isPermaLink="false">http://maliboo.pl/blog/2007/06/28/gettersetter-w-fms2/</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Oczywiście tak naprawdę FMS2 to wykastrowany JavaScript1.5 na sterydach, zatem większość myków z dokumentacji przejdzie jak pocisk z magnum przez wczorajsze wydanie Faktu. Co jest, a czego nie ma można wykminić przez proste trace'y: PLAIN TEXT Actionscript: trace&#40;Number.prototype.toPrecision&#41;; A to próbka dodawania akcesorów do prototypu: PLAIN TEXT Actionscript: function Testuj &#40;&#41;&#123;&#125; Testuj.prototype.dawaj getter = function [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p><abbr title="Nic nowego...">Oczywiście</abbr> tak naprawdę <a href="http://www.adobe.com/go/fms" aiotitle="FMS2">FMS2</a> to <a href="http://maliboo.pl/blog/2006/11/13/tamarin-inaczej/" aiotitle="wykastrowany JavaScript1.5">wykastrowany JavaScript1.5</a> na sterydach, zatem większość myków <a href="http://developer.mozilla.org/pl/docs/Dokumentacja_j%C4%99zyka_JavaScript_1.5" aiotitle="z dokumentacji">z dokumentacji</a> przejdzie jak pocisk z <abbr title="Magnum, nie o ciebie chodzi ;-)">magnum</abbr> przez wczorajsze wydanie <a href="http://efakt.pl/" aiotitle="Faktu"><em aiotitle="Faktu">Faktu</em></a>. Co jest, a czego nie ma można wykminić przez proste trace'y:</p>
<div class="igBar"><span id="lactionscript-3"><a href="#" onclick="javascript:showPlainTxt('actionscript-3'); return false;">PLAIN TEXT</a></span></p>
</div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-3">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Number</span>.<span style="color: #0066CC;">prototype</span>.<span style="color: #006600;">toPrecision</span><span style="color: #66cc66;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
A to próbka dodawania akcesorów do prototypu:</p>
<div class="igBar"><span id="lactionscript-4"><a href="#" onclick="javascript:showPlainTxt('actionscript-4'); return false;">PLAIN TEXT</a></span></p>
</div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-4">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">function</span> Testuj <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#123;</span><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Testuj.<span style="color: #0066CC;">prototype</span>.<span style="color: #006600;">dawaj</span> getter = <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">return</span> <span style="color: #ff0000;">"Zawsze 3"</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">Testuj.<span style="color: #0066CC;">prototype</span>.<span style="color: #006600;">dawaj</span> setter = <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span>n<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">"Zawsze "</span>+n<span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">a = <span style="color: #000000; font-weight: bold;">new</span> Testuj<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">trace</span><span style="color: #66cc66;">&#40;</span>a.<span style="color: #006600;">dawaj</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">a.<span style="color: #006600;">dawaj</span> = <span style="color: #cc66cc;color:#800000;">10</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Ciekawe kiedy zaskoczą nas trójeczką?</p>
]]></content:encoded>
			<wfw:commentRss>http://maliboo.pl/blog/2007/06/28/gettersetter-w-fms2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bezpieczeństwo aplikacji FMS</title>
		<link>http://maliboo.pl/blog/2007/06/22/bezpieczenstwo-aplikacji-fms/</link>
		<comments>http://maliboo.pl/blog/2007/06/22/bezpieczenstwo-aplikacji-fms/#comments</comments>
		<pubDate>Fri, 22 Jun 2007 20:30:14 +0000</pubDate>
		<dc:creator>maliboo</dc:creator>
				<category><![CDATA[fms]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://maliboo.pl/blog/2007/06/22/bezpieczenstwo-aplikacji-fms/</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Tekst jest skierowany do osób zajmujących się poważniej FMS i rozumiejących ideę frameworka server-side Flash Media Servera 2. Jak znajdę trochę czasu to może coś więcej o tym napiszę, bo widzę, że w naszym pięknym kraju mało kto lubi dzielić się wiedzą. A ci co się już decydują sa hackowani ;) Póki co polecam ten [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>Tekst jest skierowany do osób zajmujących się poważniej <a href="http://www.adobe.com/products/flashmediaserver/">FMS</a> i rozumiejących ideę frameworka server-side Flash Media Servera 2. Jak znajdę trochę czasu to może coś więcej o tym napiszę, bo widzę, że w naszym pięknym kraju <a href="http://flashmediaserver.pl/blog/">mało kto</a> lubi dzielić się wiedzą. A ci co się już decydują sa hackowani ;) Póki co polecam <a href="http://www.adobe.com/devnet/flashcom/articles/framework.html">ten</a> artykuł. Jest stary jak <a href="http://pl.wikipedia.org/wiki/%C5%9Awiat_Dysku">świat</a>, ale też jak dobre wino. Bardziej to z racji samego FMS, który w wersji drugiej nadal oparty jest na <a href="http://www.mozilla.org/">mozillowym</a> <a href="http://www.mozilla.org/js/spidermonkey/">SpiderMonkey</a>. Adobiu! Czas na <a href="http://www.mozilla.org/projects/tamarin/">Tamarina</a> w <a href="/blog/2006/11/13/tamarin-inaczej/">FMS3</a>...</p>
<p>Przyszło mi rozszerzyć funkcjonalność wideoczata o moderację wypowiedzi. Moderowanie działa na zasadzie kolejkowania wiadomości w SharedObject. Moderator może się podłączyć do takiego obiektu i zarządzać listą wypowiedzi. Zawsze możemy sobie zhardkodować taki obiekt po stronie serwera i tylko ktoś posiadający wersję moderatorską czata będzie wiedział gdzie się podłączać. Ale po co cokolwiek hardkodować, jeśli można wszystko zrobić prostą metodą znaną chociażby z ciasteczek przeglądarki.</p>
<p>Jak wiadomo komponenty po stronie serwera mogą być dynamicznie tworzone. To dzięki temu najbardziej oporny z <strong>tfu</strong>rców będzie potrafił sklecić czata. Magia dzieje się z pomocą dynamicznej instancjacji (<a href="http://www.adobe.com/devnet/flashcom/articles/framework_4.0.html">facade.asc</a>). Zblokować to możemy łatwo ustawiając naszą klasę do zarządzania moderowaniem na niedynamiczną. Dzięki temu nikt niepowołany nie stworzy własnej instancji komponentu moderowania po stronie serwera. Ok, mamy już bezpieczeństwo, nie rezygnując z zalet jakie daje nam koncepcja frejmłorku. Teraz wypadałoby stworzyć obiekt. I tu przechodzimy do clue. Chat posiada publiczną metodę <code>turnOnModeration</code>, która zwraca nazwę obiektu "moderatora". Dzięki tej nazwie możemy dokonywać magii po stronie serwera. Oczywiście wąskim gardłem jest takie zabezpieczenie metody <code>turnOnModeration</code>, żeby nie zwracała tej nazwy niepożądanym użyszkodnikom. Ale to temat na inny wpis.</p>
<p>Teraz wystarczy tylko stworzyć obiekt o losowej nazwie i zwrócić ją <strong>uprawnionemu</strong> użytkownikowi. Pomysł jest podobny do tego w jaki sposób przechowuje profile <a href="http://www.adobe.com/products/flashplayer/">Adobe Flash Player</a>, czy <a href="http://www.thunderbird.pl/">Thunderbird</a>. Jeśli nie znam nazwy katalogu (tu: obiektu), to znając jego strukturę (tu: <a href="http://pl.wikipedia.org/wiki/API_%28informatyka%29">API</a>)  po stronie klienta, czy nawet serwera serwera nic nie wskóram. Tym sposobem możemy (chociaż nie musimy) załączyć API do moderowania w zwykłym, uniwersalnym kliencie. Teraz każdy domorosły chakier, nawet wyposażony w ostatnią wersję <a href="http://buraks.com/asv/">ASV</a>, może nam nafiukać.</p>
<div class="igBar"><span id="lactionscript-6"><a href="#" onclick="javascript:showPlainTxt('actionscript-6'); return false;">PLAIN TEXT</a></span></p>
</div>
<div class="syntax_hilite"><span class="langName">Actionscript:</span>
<div id="actionscript-6">
<div class="actionscript">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">function</span> NameGenerator <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">length</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//Dlugosc podstawowej nazwy:</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">length</span> = <span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">length</span> &amp;lt;= <span style="color: #cc66cc;color:#800000;">0</span> || <span style="color: #0066CC;">length</span> == <span style="color: #0066CC;">undefined</span> || length&amp;gt; <span style="color: #cc66cc;color:#800000;">31</span><span style="color: #66cc66;">&#41;</span>? <span style="color: #cc66cc;color:#800000;">8</span> : <span style="color: #0066CC;">length</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> now = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Date</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">this</span>.<span style="color: #006600;">weeks</span> = <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Date</span><span style="color: #66cc66;">&#40;</span>now.<span style="color: #0066CC;">getYear</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>+<span style="color: #cc66cc;color:#800000;">1900</span>, now.<span style="color: #0066CC;">getMonth</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, now.<span style="color: #0066CC;">getDate</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>, now.<span style="color: #0066CC;">getHours</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//Podstawowe, dozwolone znaki w nazwie:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">NameGenerator.<span style="color: #006600;">CHARS</span> = <span style="color: #ff0000;">"ABCDEFGHIJLMNOPQRSTUVWXYZabcdefghjklmnopqrstuvwxz"</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">NameGenerator.<span style="color: #0066CC;">prototype</span>.<span style="color: #006600;">getName</span> = <span style="color: #000000; font-weight: bold;">function</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> <span style="color: #0066CC;">name</span> = <span style="color: #ff0000;">""</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> i = <span style="color: #0066CC;">this</span>.<span style="color: #0066CC;">length</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000; font-weight: bold;">var</span> rl = NameGenerator.<span style="color: #006600;">CHARS</span>.<span style="color: #0066CC;">length</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">while</span> <span style="color: #66cc66;">&#40;</span>i--<span style="color: #66cc66;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0066CC;">name</span> += NameGenerator.<span style="color: #006600;">CHARS</span>.<span style="color: #0066CC;">charAt</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">floor</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>*rl<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #808080; font-style: italic;">//Zwracamy nazwe z malym timestampem pomniejszanym o losowa wartosc:</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #b1b100;">return</span> <span style="color: #0066CC;">name</span>+<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> <span style="color: #0066CC;">Date</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>-<span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">floor</span><span style="color: #66cc66;">&#40;</span><span style="color: #0066CC;">Math</span>.<span style="color: #0066CC;">random</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>*1e4<span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>-<span style="color: #0066CC;">this</span>.<span style="color: #006600;">weeks</span><span style="color: #66cc66;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #66cc66;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>NameGeneratora używam do tradycyjnego tworzenia komponentów po stronie serwera, a następnie informuję klienta-moderatora "gdzie" jest instancja. Potem zabawa wygląda tak jak przy każdym innym komponencie. Tworzymy po stronie klienta obiekt tej klasy z otrzymaną nazwą i hasanko! Zatem <a href="http://pl.wikipedia.org/wiki/Krzywa_zapominania" title=";-)">krzywa uczenia się</a> dla rozumiejących temat jest prawie płaska. Oczywiście, jeśli ktoś w trakcie sesji przechwyci tę nazwę to amba. Ale jeśli komuś się to uda, to znaczy, że może przechwycić dużo więcej niemiłych rzeczy. A nazwa obiektu moderatora to będzie wtedy pikuś.</p>
]]></content:encoded>
			<wfw:commentRss>http://maliboo.pl/blog/2007/06/22/bezpieczenstwo-aplikacji-fms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dzień kobiet, dzień kobiet, niech każdy się dowie&#8230;</title>
		<link>http://maliboo.pl/blog/2007/03/09/dzien-kobiet-dzien-kobiet-niech-kazdy-sie-dowie/</link>
		<comments>http://maliboo.pl/blog/2007/03/09/dzien-kobiet-dzien-kobiet-niech-kazdy-sie-dowie/#comments</comments>
		<pubDate>Fri, 09 Mar 2007 21:15:36 +0000</pubDate>
		<dc:creator>maliboo</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[fms]]></category>

		<guid isPermaLink="false">http://www.maliboo.pl/blog/2007/03/09/dzien-kobiet-dzien-kobiet-niech-kazdy-sie-dowie/</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Kobity dostały kwiatki (obywatelki IV RP pończoch nie dostają), a ja prezent dla prawdziwego faceta: Aż chce się powiedzieć: "Uwielbiam zapach świeżej instrukcji o poranku". Długo nie pisałem, więc dla dwóch osób parę słów wyjaśnień. niechemisienawetwstawiacspacji Generalnie stan taki utrzymuje się od świąt ;-). Jesienno-zimowa depresja, mimo braku tej drugiej pory, w powiązaniu z nadmiarem [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>Kobity dostały kwiatki (obywatelki IV RP pończoch nie dostają), a ja prezent dla prawdziwego faceta:<br />
<a href="http://www.flickr.com/photos/maliboo/414539757/" title="Photo Sharing"><img src="http://farm1.static.flickr.com/117/414539757_c03674fd0c_m.jpg" width="240" height="160" alt="DSC_7661" /></a><br />
Aż chce się powiedzieć: "Uwielbiam zapach świeżej instrukcji o poranku".</p>
<p>Długo nie pisałem, więc dla <a href="http://www.inou.pl/?p=121">dwóch</a> <a href="http://maw.bblog.pl/wpis,przywolany;do;tablicy;5;faktow,2910.html">osób</a> parę słów wyjaśnień.</p>
<p><em>niechemisienawetwstawiacspacji</em></p>
<p>Generalnie stan taki utrzymuje się od świąt ;-). Jesienno-zimowa depresja, mimo braku tej drugiej pory, w powiązaniu z nadmiarem pracy owocuje nicniechceniem. Z rzeczy ciekawszych ostatnio siedzę w <a href="http://www.adobe.com/go/fms">FMS</a>. Przy porządnym frameworku client-side i mniej porządnym server-side da się w tym całkiem miło robić cuda na kiju. Jeśli ktoś jeszcze nie wie, to deweloperska wersja umożliwia korzystanie z serwera również komercyjnie do 10 połączeń. Mimo istnienia <a href="http://osflash.org/red5">RED5</a>, czy <a href="http://www.wowzamedia.com/" aiotarget="false" aiotitle="Wowza Media Server">Wowza Media Server</a>, mnie jakoś bardziej leży programowanie w tak zwanym server-side ActionScript, czyli w rzeczywistości jakiejś tam mutacji JS. Całe to javowanie, robienie durnych przelotek, rekompilacji, etc. na darmowych i mniej-płatnych alternatywach jakoś mnie nie jara. Owszem, jeśli ktoś chce "tylko" strumieniować media, to będzie w niebo, lub dwa wzięty. Ale <em>to co moje, jest moje, co jara mnie, </em>to przede wszystkim łatwe (czytaj szybkie) programowanie po stronie serwera.</p>
<p>A teraz parę słów o zamawianiu Flexa. Jak już pisał inou, czego niestety znaleźć nie mogę, jest problem z zamówieniem towaru w Polsce bezpośrednio ze sklepu Adobe. Zamówiliśmy więc towar u dealera. Czas oczekiwania jak na takie deficytowe i lukratywne cudo długi nie był - raptem pełen cykl kobiety. To co mnie i naszego sprzedawcę zdziwiło, to oświadczenie jakie musiała wypełnić moja firma. Na oświadczeniu o sposobie wykorzystania produktu, oprócz pełnych danych firmy (użytkownika produktu) i danych sprzedawcy trzeba było również wyjaśnić sposób użycia produktu i zobligować się do tego, czy produkt będzie wykorzystywany do przetwarzania i przesyłania informacji niejawnych. Całe szczęście e-learning, to nie teczki IPN, więc obyło się bez zaznaczania tego punktu. Jeśli jednak tak by było, dowiedziałem się, ze trzeba by było załatwiać dodatkowe papiery z MSW. Trochę sporo jak na program za 500$. W dodatku oparty o otwartoźródłowego <a href="http://www.eclipse.org/">Eclipse'a</a> i <a href="http://www.adobe.com/products/flex/sdk/">darmowe SDK</a>. Całe to zamieszane podczepione jest ponoć do:</p>
<blockquote><p>art.21c ust.1 ustawy „o obrocie z zagranicą towarami, technologiami i usługami o znaczeniu strategicznym dla bezpieczeństwa państwa, a także dla utrzymania międzynarodowego pokoju i bezpieczeństwa oraz o zmianie niektórych ustaw” (Dz. U. z dnia 28 grudnia 2000 r.)</p></blockquote>
<p>i brzmi groźnie ;-). W każdym razie pamiętajcie o zdjęciu turbana, przed zamówieniem. Jeśli ktoś zamawiał po nowym roku (ponoć w 2k6 nie było takich problemów) to prosiłbym o jakiś komentarz.</p>
<p>Jeśli chodzi o <a href="http://www.inou.pl/?p=121">pięć faktów</a>, to będą, kiedy będą. Muszę je najpierw stworzyć ;-).</p>
]]></content:encoded>
			<wfw:commentRss>http://maliboo.pl/blog/2007/03/09/dzien-kobiet-dzien-kobiet-niech-kazdy-sie-dowie/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tamarin w FMS3?</title>
		<link>http://maliboo.pl/blog/2006/11/13/tamarin-inaczej/</link>
		<comments>http://maliboo.pl/blog/2006/11/13/tamarin-inaczej/#comments</comments>
		<pubDate>Mon, 13 Nov 2006 10:52:37 +0000</pubDate>
		<dc:creator>maliboo</dc:creator>
				<category><![CDATA[ecma]]></category>
		<category><![CDATA[fms]]></category>

		<guid isPermaLink="false">http://www.maliboo.pl/blog/2006/11/13/tamarin-inaczej/</guid>
		<description><![CDATA[<!-- matched  --><!-- final 0 -->Oczywiście wszyscy już wiedzą o projekcie Tamarin, więc rozpisywać się więcej nie ma sensu. Zastanawia mnie natomiast jedna rzecz. Jeśli Tamarin ma się zajmować javascriptową robotą w kolejnych wersjach mozillopochodnego softu, to jak będzie wyglądać FMS3? Jak wiadomo server-side ActionScript to nic innego jak wykastrowana biblioteka JS od Netcscape'a. A więc ECMA, a więc zwykły [...]]]></description>
			<content:encoded><![CDATA[<!-- matched  --><!-- final 0 --><p>Oczywiście wszyscy już wiedzą o projekcie <a href="http://www.mozilla.org/projects/tamarin/">Tamarin</a>, więc rozpisywać się więcej nie ma sensu. Zastanawia mnie natomiast jedna rzecz. Jeśli Tamarin ma się zajmować javascriptową robotą w kolejnych wersjach mozillopochodnego softu, to jak będzie wyglądać <a href="http://www.adobe.com/products/flashmediaserver/">FMS</a>3? Jak wiadomo server-side ActionScript to nic innego jak wykastrowana biblioteka JS od Netcscape'a. A więc ECMA, a więc zwykły JS rozszerzony o natywne klasy FMS.</p>
<p>Faktem jest, że z punktu widzenia kodera FMS2 pozostał nadal bólem w dupie. Dziedziczenie oparte o prototypy nie jest tym co tygrysy lubią najbardziej... A co nowego może dać nam FMS3 jeśli nie coś opartego na JS2/ECMA4? Czy tamaryna pojawi się i w FMS3, trzeba nam poczekać ;-).</p>
]]></content:encoded>
			<wfw:commentRss>http://maliboo.pl/blog/2006/11/13/tamarin-inaczej/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

