<?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>Code.ge Blog</title>
	<atom:link href="http://code.ge/feed" rel="self" type="application/rss+xml" />
	<link>http://code.ge</link>
	<description>კიდევ ერთი WordPress საიტი</description>
	<lastBuildDate>Wed, 25 Apr 2012 17:13:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19672</generator>
		<item>
		<title>Collection.next+JSON Hypermedia Format</title>
		<link>http://code.ge/posts/collection-nextjson-hypermedia-format</link>
		<comments>http://code.ge/posts/collection-nextjson-hypermedia-format#comments</comments>
		<pubDate>Fri, 20 Apr 2012 18:11:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[კატეგორიის გარეშე]]></category>

		<guid isPermaLink="false">http://code.ge/?p=595</guid>
		<description><![CDATA[სულ რამდენიმე წუთის წინ IANA.org &#8211; მა დაასრულა ჩემს მიერ შექმნილი ჰიპერმედია ფორმატის სპეციფიკაციის რეგისტრაცია. სრული სპეციფიკაცია: Collection.next+JSON ჩანაწერი IANA.org &#8211; ზე ამ მომენტისთვის სულ ეს არის. დეტალებს, მაგალითებს, და ა.შ. შემოგთავაზებთ მოგვიანებით! B-)]]></description>
			<content:encoded><![CDATA[<p>სულ რამდენიმე წუთის წინ IANA.org &#8211; მა დაასრულა ჩემს მიერ შექმნილი ჰიპერმედია ფორმატის სპეციფიკაციის რეგისტრაცია. </p>
<ul>
<li>სრული სპეციფიკაცია: <a href="http://code.ge/media-types/collection-next-json/" title="Collection.next+JSON - Document Format">Collection.next+JSON</a></li>
<li>ჩანაწერი <a href="http://www.iana.org/assignments/media-types/application/index.html">IANA.org</a> &#8211; ზე</li>
</ul>
<p>ამ მომენტისთვის სულ ეს არის. დეტალებს, მაგალითებს, და ა.შ. შემოგთავაზებთ მოგვიანებით! B-) </p>
]]></content:encoded>
			<wfw:commentRss>http://code.ge/posts/collection-nextjson-hypermedia-format/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>script ტეგის სასარგებლო დეტალები 2</title>
		<link>http://code.ge/posts/script-tag-details-2</link>
		<comments>http://code.ge/posts/script-tag-details-2#comments</comments>
		<pubDate>Thu, 02 Dec 2010 09:59:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JavaScript DOM]]></category>
		<category><![CDATA[JavaScript WTF]]></category>

		<guid isPermaLink="false">http://www.code.ge/?p=570</guid>
		<description><![CDATA[წინა პოსტში ლაპარაკი მქონდა script ტეგის id ატრიბუტისა და მისი გამოყენების შესახებ. ცოტაოდენი ექპსერიმენტების შემდეგ კიდევ ერთი სასარგებლო გამოყენება ვუპოვე ამ ატრიბუტს. მაგალითისათვის განვიხილოთ რეალური კოდი: 1234&#60;script type=&#34;text/javascript&#34; id=&#34;widget&#34;&#62; &#160; var script = document.getElementById&#40;&#34;widget&#34;&#41;; &#160; console.log&#40;script&#41;; &#60;/script&#62; კოდის შესრულების შედეგად კონსოლი გამოგვიტანს DOM ობიექტს რომელიც რეალურად არის ის script ელემენტი რომლის შიგნითაც სრულდება ნაჩვენები კოდი. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.ge/posts/script-tag-details">წინა პოსტში </a> ლაპარაკი მქონდა <strong>script</strong> ტეგის <strong>id</strong> ატრიბუტისა და მისი გამოყენების შესახებ. ცოტაოდენი ექპსერიმენტების შემდეგ კიდევ ერთი სასარგებლო გამოყენება ვუპოვე ამ ატრიბუტს.</p>
<p>მაგალითისათვის განვიხილოთ რეალური კოდი:</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;widget&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; <span style="color: #003366; font-weight: bold;">var</span> script <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;widget&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; console.<span style="color: #660066;">log</span><span style="color: #009900;">&#40;</span>script<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p>კოდის შესრულების შედეგად კონსოლი გამოგვიტანს DOM ობიექტს რომელიც რეალურად არის ის <strong>script</strong> ელემენტი რომლის შიგნითაც სრულდება ნაჩვენები კოდი.</p>
<p>ერთი შეხედვით ბანალური კოდია&#8230; თუმცა მიაქციეთ ყურადღება რომ <strong>script</strong> ტეგის შიგნით კოდიდან &#8220;მშობელ&#8221; ელემენტზე წვდომა ხდება <strong>getElementById()</strong> მეთოდის მეშვეობით, რადგან, სხვა ალტერნატიული გზა არ არსებობს(მაგ. this ან სხვა რაიმე გასაღები სიტყვა). რა პრაქტიკული დანიშნულება აქვს ამ მცირე აღმოჩენას?<br />
<span id="more-570"></span><br />
წარმოვიდგინოთ რომ ვწერთ ვიდჯეტს, რომელიც, მომხმარებლებმა უნდა ჩასვან თავიანთ საიტებზე. დაახლოებით მსგავსი კოდის მეშვეობით:</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://widget.vendor.com/weather.js&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p>ასეთ შემთხვევაში გარე სკრიპტის ევალება მომხმარებლის გვერდზე სკრიპტის ადგილას გამოიტანოს/დახატოს რაიმე სახის ინფორმაცია(ამ შემთხვევაში ამინდის პროგნოზი). ის რეალიზაციები რაც ძირითადად მინახავს ასეთ შემთხვევაში იყენებენ <strong>document.write(&#8230;)</strong> მეთოდს, რომელიც, სკრიპტის შესრულების თანავე იწყებს კონტენტის გენერაციას და დოკუმენტში გამობეჭდვას. ასეთ მიდგომას უამრავი მინუსი აქვს(თუნდაც ბლოკირების ეფექტი) თუმცა ამ თემის განვრცობას ამ პოსტში არ ვაპირებ <img src='http://code.ge/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>ნაცვლად აღნიშნული მეთოდისა შესაძლებელია ზუსტად პოსტის დასაწყიში ნაჩვენები შესაძლებლობის გამოყენება. მაგალითად თუ სკრიპტ ტეგს შევცვლით და დავამატებთ ორ ატრიბუტს <strong>id</strong> და <strong>defer</strong>:</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span> src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://widget.vendor.com/weather.js&quot;</span> id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;widget&quot;</span> defer<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;defer&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span></div></td></tr></tbody></table></div>
<p>მივიღებთ შემდეგ ეფექტს ა) defer ატრიბუტის დამსახურებით არ შეაფერხდება გვერდის რენდერი და ავიცილებთ ე.წ. ბლოკირების ეფექტს; 2) გარე სკრიპტს შესაძლებლობა ექნება მოპოვოს მშობელი DOM ელემენტი და განახორციელოს საჭირო მანიპულაციები რომელიც ნაჩვენებია ქვემოთ;</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #003366; font-weight: bold;">var</span> div <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'div'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
div.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'Good sunny weather! B-)'</span><span style="color: #339933;">;</span><br />
<span style="color: #003366; font-weight: bold;">var</span> script <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'widget'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
script.<span style="color: #660066;">parentNode</span>.<span style="color: #660066;">insertBefore</span><span style="color: #009900;">&#40;</span>div<span style="color: #339933;">,</span> script<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>შედეგად ბრაუზერში ზუსტად იმ ადგილას რა ადგილასაც ჩავსვით გარე სკრიპტი script ტეგის მეშვეობით დაიხატება ამინდის პროგნოზი(პირობითად) და მივიღებთ ასეთ DOM სტრუქტურას:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span>Good sunny weather! B-)<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;http://widget.vendor.com/weather.js&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;widget&quot;</span> <span style="color: #000066;">defer</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;defer&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>და ეს ყველაფერი მოხდება ბრაუზერის ბლოკირების გარეშე!</p>
<p>მარტივია ხო? <img src='http://code.ge/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://code.ge/posts/script-tag-details-2/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>script ტეგის სასარგებლო დეტალები</title>
		<link>http://code.ge/posts/script-tag-details</link>
		<comments>http://code.ge/posts/script-tag-details#comments</comments>
		<pubDate>Wed, 24 Nov 2010 21:35:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JavaScript DOM]]></category>
		<category><![CDATA[JavaScript WTF]]></category>

		<guid isPermaLink="false">http://www.code.ge/?p=552</guid>
		<description><![CDATA[იცოდით თუ არა, რომ, script ტეგს შესაძლებელია განვუსაზღვროთ id ატრიბუტი? ის თუ იცოდით, რომ, ამავე ტეგის type ატრიბუტის მნიშვნელობა შესაძლებელია იყოს text/html გარდა ცნობილი text/javascript და text/vbscript ცნობილი მნიშვნელობებისა? რაში შეიძლება დაგვჭირდეს აღნიშნული ტეგის ეს შესაძლებლობები? პასახად რეალურ მაგალითს მოვიყვან! JavaScript აპლიკაციებზე მუშაობისას HTML დოკუმენტში ხშირად გვიწევს ისეთი ვიზუალური კომპონენტების გამოყენება რომლებიც რეალურად ატარებენ დამხმარე [...]]]></description>
			<content:encoded><![CDATA[<p>იცოდით თუ არა, რომ, <strong>script</strong> ტეგს შესაძლებელია განვუსაზღვროთ <strong>id</strong> ატრიბუტი? ის თუ იცოდით, რომ, ამავე ტეგის <strong>type</strong> ატრიბუტის მნიშვნელობა შესაძლებელია იყოს <strong>text/html</strong> გარდა ცნობილი <strong>text/javascript</strong> და <strong>text/vbscript</strong> ცნობილი მნიშვნელობებისა?</p>
<p>რაში შეიძლება დაგვჭირდეს აღნიშნული ტეგის ეს შესაძლებლობები? პასახად რეალურ მაგალითს მოვიყვან!</p>
<p>JavaScript აპლიკაციებზე მუშაობისას HTML დოკუმენტში ხშირად გვიწევს ისეთი ვიზუალური კომპონენტების გამოყენება რომლებიც რეალურად ატარებენ დამხმარე ხასიათს და სინამდვილეში არ უნდა განეკუთვნებოდნენ ძირითად HTML დოკუმენტს. ყველაზე მარტივ მაგალითად შეგვიძლია განვიხილოთ არასტანდარტული შეტყობინების დიალოგური ფანჯრები. განსხვავებით JavaScript &#8211; ის მშობლიური <strong>alert()</strong> ფუნქციისა რომელიც გვიჩვენებს სისტემური შეტყობინების ფანჯარას. მსგავს სისტემურ შეტყობინების ფანჯრებზე არ გაგვაჩნია არანაირი ვიზუალური კონტროლის მექანიზმები რაც იწვევს არასტანდარტული ვიზუალური კომპონენტების გამოყენების აუცილებლობას.<br />
<span id="more-552"></span></p>
<p>ახლა წარმოვიდგინოთ სცენარი სადაც ერთი დოკუმენტის ფარგლებში, მომხმარებელთან ურთიერთქმედებისათვის გვესაჭიროება არასტანდარტული შეტყობინების რამდენიმე ფანჯარა, ერთი და იგივე ვიზუალური მახასიათებლებითა და განსხვავებული შეტყობინების ტექსტებით.</p>
<p>სერვერის მხარეს პროგრამირებისას ბუნებრივი იქნებოდა შაბლონების გამოყენება, თუმცა, ბრაუზერშიც არსებობს ამის შესაძლებლობა სწორედ პოსტის დასაწყისში ნახსენები <strong>script</strong> ტეგის თვისებების მეშვეობით. კერძოდ კი, თუ <strong>script</strong> ტეგის <strong>type</strong> ატრიბუტის მნიშვნელობად გამოვიყენებთ <strong>text/html</strong> &#8211; ტეგს შიგნით მოთავსებული ნებისმიერი HTML კოდი აღქმული იქნება როგორც ჩვეულებრივი ტექსტი რომელიც ა) არ ჩანს ვიზუალურად ბრაუზერში; ბ) არ ხდება ამ ტექსტის ინტერპრეტირება JavaScript &#8211; ის სახით; გ) არ ვაბინძურებთ დოკუმენტის ძირითად DOM სტრუქტურას არასაჭირო ტეგებით; დ) არ გვესაჭიროება CSS ტექსტის დასამალად; ე) საძიებელი სისტემები როგორც წესი იგნორირებას უკეთებენ script ტეგებს; შაბლონის გამოყენების რეალური მაგალითი ნაჩვენებია ქვემოთ:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/html&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;tpl-alert&quot;</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;alert&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;alert&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;alert-title&quot;</span>&gt;</span>{title}<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;alert-message&quot;</span>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a>&gt;</span>{message}<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>ნაჩვენებ მაგალითში, script ტეგის შიგნით განთავსებული HTML კოდი არის ტიპიური შაბლონი რომელიც შესაძლებელია გამოვიყენოთ მრავალჯერ სხვადასხვა შემთხვევაში.</p>
<div class="codecolorer-container javascript blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br /></div></td><td><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #006600; font-style: italic;">//template placeholder values</span><br />
<span style="color: #003366; font-weight: bold;">var</span> texts <span style="color: #339933;">=</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; title<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Test Title!&quot;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; message<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;Test Message!&quot;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//template text</span><br />
<span style="color: #003366; font-weight: bold;">var</span> tpl <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'tpl-alert'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//placeholders replacement</span><br />
<span style="color: #003366; font-weight: bold;">var</span> result <span style="color: #339933;">=</span> tpl.<span style="color: #660066;">replace</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/{(w+)}/gi</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>match<span style="color: #339933;">,</span> key<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">return</span> key <span style="color: #000066; font-weight: bold;">in</span> texts <span style="color: #339933;">?</span> texts<span style="color: #009900;">&#91;</span>key<span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #3366CC;">''</span><span style="color: #339933;">;</span><br />
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #006600; font-style: italic;">//do something with result</span></div></td></tr></tbody></table></div>
<p>კოდის შესრულების შედეგად მივიღებთ შემდეგ რეზულტატს:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;alert&quot;</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;alert&quot;</span>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;alert-title&quot;</span>&gt;</span>Test Title!<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a> <span style="color: #000066;">class</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;alert-message&quot;</span>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a>&gt;</span>Test Message!<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/p.html"><span style="color: #000000; font-weight: bold;">p</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span><br />
<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/div.html"><span style="color: #000000; font-weight: bold;">div</span></a>&gt;</span></div></td></tr></tbody></table></div>
]]></content:encoded>
			<wfw:commentRss>http://code.ge/posts/script-tag-details/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Apple vs Adobe and why Adobe SUCKS</title>
		<link>http://code.ge/posts/apple-vs-adobe-and-why-adobe-sucks</link>
		<comments>http://code.ge/posts/apple-vs-adobe-and-why-adobe-sucks#comments</comments>
		<pubDate>Mon, 03 May 2010 14:19:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.code.ge/?p=546</guid>
		<description><![CDATA[ერთადერთი მიზეზი რამაც ამ პოსტის დაწერსკენ მიბიძგა გახლავთ ვიდეო რომელიც გამომამზეურა Adobe &#8211; მ Flash &#8211; ის თაჩსკრინიანი მოწყობილობებისათვის მზაობის დასამტკიცებლად, მაგრამ, ჩემის აზრით მათ მხოლოდ თავის მორიგ უსუსურობას გაუსვეს ხაზი. სულ ეს იყო სტივ ჯობსის ღია წერილისადმი პასუხი? ამონარიდი აღნიშნული გვერდიდან: Everyone who actually programs in Flash knows that there is now full multi-touch [...]]]></description>
			<content:encoded><![CDATA[<p>ერთადერთი მიზეზი რამაც ამ პოსტის დაწერსკენ მიბიძგა გახლავთ <a href="http://theflashblog.com/?p=1975">ვიდეო</a> რომელიც გამომამზეურა Adobe &#8211; მ Flash &#8211; ის თაჩსკრინიანი მოწყობილობებისათვის მზაობის დასამტკიცებლად, მაგრამ, ჩემის აზრით მათ მხოლოდ თავის მორიგ უსუსურობას გაუსვეს ხაზი. სულ ეს იყო <a href="http://www.apple.com/hotnews/thoughts-on-flash/">სტივ ჯობსის ღია წერილისადმი პასუხი</a>?</p>
<p>ამონარიდი აღნიშნული <a href="http://theflashblog.com/?p=1975">გვერდიდან</a>:</p>
<blockquote><p>Everyone who actually programs in Flash knows that there is now full multi-touch and gesture support available. Unfortunately, some people still like to make claims to the contrary in an effort to make Flash appear behind the times. It is fortunately very easy to prove them wrong. Below is a great example built by StruckAxiom that showcases the new APIs that we have made available in <strong>Flash Player 10.1</strong>.</p></blockquote>
<p>ჩემი განრისხება(:D) გამოიწვია ფლეშ პლეიერის ვერსიამ &#8211; 10.1. რა არის ასეთი უცნაური ამ ვერსიაში და რატომ იმოქმედა ამ ვიდეო რგოლმა ასე უარყოფითად? პასუხი მარტივია: რადგან დღეს არის <strong>2010 წლის 3 მაისი</strong> და სტივ ჯობსის ღია წერილის პასუხად ადობი მსგავსი უსუსური დემო ვიდეოებით ცდილობს თავის მართლებასა და პასუხის გაცემას, მაშინ, როდესაც ადობის მსგავსი დემო(და შესაბამისად დასრულებული პროდუქტიც) უნდა დაედო არაუგვიანეს 2007 წლისა რადგან პირველი iPhone &#8211; ს პრეზენტაცია შედგა <strong>2006 წლის დეკემბერში</strong>.</p>
<p>3.5 წელი არის უზარმაზარი დრო რომელსაც რატომღაც არავინ(ძირითადად Flash და ე.წ. Open ტექნოლოგიების ქომაგები) არ აქცევს დიდ ყურადღებას და თურმე სტივ ჯობსი არის &#8220;ბუა&#8221; რომელმაც აკრძალა ფლეში iTouch(iPode Touch/iPhone/iPad) ოჯახის მოწყობილობებზე.</p>
<p>მათთვის ვისაც არ გახსოვთ(ან არ იცით, ან არ გინდათ რომ გახსოვდეთ, ან არ გინდათ დანახვა და ა.შ.) რამდენიმე მნიშვნელოვან ფაქტს(ძირითადად კრიტიკას) შეგახსენებთ რომელიც iPhone &#8211; ს გამოჩენას სდევდა თან:</p>
<ul>
<li><strong>Java</strong> დეველოპერთა და ქომაგთა ურიცხვმა არმიამ ეფლი და მისი მესვეურნი მონათლეს სულელებად მობილურ მოწყობილობებში უკვე &#8220;გამოცდილი&#8221; პლატფორმის იგნორირებისათვის. მიზეზი გახლდათ ეფლის მიერ მისივე საკუთარ ტექნოლოგიებზე &#8211; ObjectiveC + Cocoa Touch გაკეთებული ფსონი. იყო უამრავი ცინიკური გამონათქვამი რომ ამ ტექნოლოგიების მეშვეობით არავინ არ დაწერდა აპლიკაციებს, არავინ აპირებდა ამ ეფლის მიერ ძალით &#8220;შემოგდებული&#8221; ტექნოლოგიების ათვისებას და ა.შ და ა.შ. შედეგი? <strong>დღევანდელი მონაცემებით უკვე 200000 &#8211; მდე აპლიკაციაა დაწერილი სწორედ ამ ტექნოლოგიების მეშვეობით</strong>.</li>
<li>Flash &#8211; ის იგნორირების გამო ამ ტექნოლოგიის ქომაგებმა ცხადია შეაჩვენეს ეფლი, რამეთუ, ფლეშის ურიცხვი დეველოპერები დაკარგა თურმე ეფლმა.  შედეგი? <strong>დღევანდელი მონაცემებით უკვე 200000 &#8211; მდე აპლიკაციაა დაწერილი სწორედ ამ ტექნოლოგიის გამოყენების გარეშე</strong>. </li>
<li>აპლიკაციების დამოწმების კაბალური პროცესი(ეს მართლაც ასეა და ამის უარყოფას აზრი არ აქვს) ასევე წინასწარ გამოცხადდა ეფლის ფიასკოდ. შედეგი? ისევ და ისევ დაახლოვებით 200000 აპლიკაცია. </li>
</ul>
<p>3.5 წელი საკმარისზე მეტი დროა რათა გავაკეთოთ გარკვეული ანალიზი და ვთქვათ(დავინახოთ და ვაღიაროთ?), რომ:</p>
<ul>
<li>Flash &#8211; ის არ არსებობა iTouch პლატფორმაზე სინამდვილეში არავითარი დანაკლისი არ არის.</li>
<li>თურმე Flash &#8211; ის გარეშეც იწერება კარგი აპლიკაციები.</li>
<li>თურმე ვიდეოს ყურება ონლაინ რეჟიმში არ საჭიროებს Flash &#8211; ს.</li>
<li>&#8230;</li>
<li>და თურმე ძალიან ბევრი რაღაცის გაკეთება შიძლება Flash &#8211; ის გარეშე.</li>
</ul>
<p>სად იყო ადობი მთელი ამ წლების მანძილზე? რატომ არ მოახდინა სათანადო რეაგირება ტექნოლოგიურ ცვლილებებსა და ძვრებზე? თუ რადგან იმ პერიოდისთვის რეალური ალტერნატივა არ გააჩნდა ჰქონდა მოდუნების საფუძველი? <strong>რამდენადაც უარყოფითი არ უნდა იყოს ეფლის როლი ამ დრამაში ერთადერთი დამნაშავე არის ზუსტად ადობი თავისი უმოქმედობის გამო</strong>. მოთქმა გოდება იმ პლატფორმის მხარდაჭერის უარყოფაზე რომელიც რეალურად არ არსებობს და არ არსებობს უკვე მეოთხე წელია არის უბრალოდ სასაცილო და საკუთარი შეცდომებისა და უუნარობის სხვაზე გადაბრალების მცდელობა. თავისი უმოქმედობით ადობიმ: ა) დაკარგა ეფლის მობილური მოწყობილობების ბაზარი; და ბ) დაკარგა ეს M$ &#8211; ის ფონზე რომელსაც გააჩნია ფლეშის რეალური ალტერნატივა და დიდი ალბათობით Windows Mobile 7 &#8211; ზე ფლეშს ვერასოდეს ვერ ვიხილავთ.</p>
<p>ახლა რაც შეეხება სტივ ჯობსის მიერ ფლეშის ალტერნატივად გამოცხადებულ HTML5 &#8211; ს რომელიც ერთის მხრივ ეფლის პროდუქტების &#8220;ექსპერტებმა&#8221; მძაფრად დაიხვიეს ხელზე და აღტაცებულები გაიძახიან ამ ბაზვორდად ქცეულ აბრევიატურას რადგან ეს თქვა სტივმა(იმჰოტეპმა?) ხოლო მეორეს მხრივ ფლეშის გულდათუთქული ქომაგნი რომელიც წარმადობას უწუნებენ HTML5 &#8211; ს(ცხადია ამ შემთხვევაში მოიაზრება HTML5/CSS/JavaScript კომპლექსურად) &#8211; <strong>. მაგრამ არცერთი მხარე არ უშვებს იმ აზრს რომ HTML5 არ არის Flash &#8211; ის რეალური ალტერნატივა, არა!</strong> და შეუძლებელია რომ გახდეს უახლოვეს მომავალში. <strong>ეს არის რაციონალური კომპრომისი</strong> რომელიც გაცილებით უფრო ნატურალურია ბრაუზერის კონტექსტში ვიდრე სხვა(Flash, Silverlight, Java FX) არსებული ტექნოლოგიები თუმცა გარკვეულწილად ნაკლებეფექტური. მიუხედავად ამისა არსებობს უამრავი დეტალი რაც ამ &#8220;ტექნოლოგიას&#8221; მეტად ეფექტურად გამოყენების საშუალებას იძლევა(რაც სხვათაშორის დიდწილად მხოლოდ Webkit &#8211; ის დამსახურებაა):</p>
<ul>
<li>ტეგების მდიდარი სემანტიკური და სტრუქტურული არსენალი </li>
<li>ვებ ფორმები</li>
<li>CSS3 + CSS3 Transformations &#038; Animations</li>
<li>Canvas 2D გრაფიკასთან სამუშაოდ </li>
<li>SVG ინტერაქტიული 2D გრაფიკისთვის</li>
<li>შედარებით დახვეწილი და საკმარისად სწრაფი JavaScript</li>
<li>ვიდეო და აუდიო</li>
<li>&#8230;</li>
<li>და დაამატეთ ამას კონტენტის ინტეროპერაბელურობის ხარისხი არა მხოლოდ ბრაუზერების დონეზე(!)</li>
</ul>
<p>არ უვარგა HTML5 &#8211; ს წარმადობა? არ არის პრობლემა&#8230; როგორც აქამდე არ არსებობდა Java და Flash ამ პლატფორმისთვის და მიუხედავად ამისა უამრავი შესანიშნავი პროდუქტი შეიქმნა ასევე შეიქმნება უამრავი შესანიშნავი პროდუქტი სწორედ დაბალი წარმადობის მქონე HTML5 &#8211; ის მეშვეობით(იხ. თუნდაც iAd დემოები ამის დასამტკიცებლად).</p>
<p>დარწმუნებული ვარ ამ პოსტის წამკითხავი ანტი ეფლისტები ტროლინგში და ეფლის ფანბოიზმში დამდებენ ბრალს თუმცა ცოტა საკითხისადმი რაციონალური მიდგომა და დამოკიდებულება არც თქვენ გაწყენთ რადგან მეორე მხრიდან თქვენ არ აღმოჩნდეთ იგივე როლში <img src='http://code.ge/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://code.ge/posts/apple-vs-adobe-and-why-adobe-sucks/feed</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>git log &#8211; მცირე მიმოხილვა</title>
		<link>http://code.ge/posts/git-log-%e1%83%9b%e1%83%aa%e1%83%98%e1%83%a0%e1%83%94-%e1%83%9b%e1%83%98%e1%83%9b%e1%83%9d%e1%83%ae%e1%83%98%e1%83%9a%e1%83%95%e1%83%90</link>
		<comments>http://code.ge/posts/git-log-%e1%83%9b%e1%83%aa%e1%83%98%e1%83%a0%e1%83%94-%e1%83%9b%e1%83%98%e1%83%9b%e1%83%9d%e1%83%ae%e1%83%98%e1%83%9a%e1%83%95%e1%83%90#comments</comments>
		<pubDate>Mon, 15 Mar 2010 22:29:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>

		<guid isPermaLink="false">http://www.code.ge/?p=438</guid>
		<description><![CDATA[არც კი ვიცი როგორ დავიწყო პოსტის წერა მოკლედ მოცემული პოსტი არ ატარებს არავითარ შემეცნებით ხასიათს და მას ვწერ მხოლოდ და მხოლოდ იმისათვის რომ GIT &#8211; ის კონკრეტულ ბრძანებათა კომბინაციები არ დამავიწყდეს და საჭიროების შემთხვევაში მეც და სხვა დაინტერესებულმა GIT &#8211; ის მომხმარებლებსაც ისარგებლონ (პირველრიგში გეხება შენ @ირაკლი ). პროექტში შეტანილი ცვლილების რეპოზიტარიუმში ფუშის გაკეთებამდე აკრიფე: [...]]]></description>
			<content:encoded><![CDATA[<p>არც კი ვიცი როგორ დავიწყო პოსტის წერა <img src='http://code.ge/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  მოკლედ მოცემული პოსტი არ ატარებს არავითარ შემეცნებით ხასიათს და მას ვწერ მხოლოდ და მხოლოდ იმისათვის რომ GIT &#8211; ის კონკრეტულ ბრძანებათა კომბინაციები არ დამავიწყდეს და საჭიროების შემთხვევაში მეც და სხვა დაინტერესებულმა GIT &#8211; ის მომხმარებლებსაც ისარგებლონ (პირველრიგში გეხება შენ <a href="http://twitter.com/inadarei">@ირაკლი</a> <img src='http://code.ge/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>
<p>პროექტში შეტანილი ცვლილების რეპოზიტარიუმში ფუშის გაკეთებამდე აკრიფე:</p>
<p><strong>$ git log origin/master.. &#8211;name-status</strong> &#8211; ბოლო ფუშის შემდეგ გაკეთებული ყველა კომიტის სანახავად. რეზულტატი:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">commit 2ae4ee6bcad8fd0d507c54872772789ff1225f06<br />
Author: Ioseb Dzmanashvili &lt;ioseb.dzmanashvili@*****.com&gt;<br />
Date: &nbsp; Thu Mar 11 12:00:16 2010 +0400<br />
<br />
&nbsp; &nbsp; changed exception handling logic<br />
<br />
M &nbsp; &nbsp; &nbsp; uroute.lib.php</div></td></tr></tbody></table></div>
<p>თუ <strong>&#8211;name-status</strong> ოპციას შეცვლი <strong>&#8211;stat</strong> &#8211; ით:</p>
<p><strong>$ git log origin/master.. &#8211;stat</strong> &#8211; მიიღებ იგივე შედეგს სხვა ფორმატირებით:</p>
<div class="codecolorer-container text blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">commit 2ae4ee6bcad8fd0d507c54872772789ff1225f06<br />
Author: Ioseb Dzmanashvili &lt;ioseb.dzmanashvili@gmail.com&gt;<br />
Date: &nbsp; Thu Mar 11 12:00:16 2010 +0400<br />
<br />
&nbsp; &nbsp; changed exception handling logic<br />
<br />
&nbsp;uroute.lib.php | &nbsp; &nbsp;8 ++++----<br />
&nbsp;1 files changed, 4 insertions(+), 4 deletions(-)</div></td></tr></tbody></table></div>
<p>ასევე <strong>&#8211;since</strong> ოპციის მეშვეობით შესაძლებელია დროის შუალედითის მითითება:</p>
<p><strong>$ git log &#8211;since=&#8221;2 days ago&#8221;</strong> &#8211; ბოლო ორი დღის განმავლობაში გაკეთებული ცვლილებების ნახვა.</p>
<p>ეს არის და ეს &#8220;ფუშის&#8221; და &#8220;კომიტის&#8221; გამო მომიტევეთ სხვა უკეთესი შესატყვის არ მომდის თავში <img src='http://code.ge/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://code.ge/posts/git-log-%e1%83%9b%e1%83%aa%e1%83%98%e1%83%a0%e1%83%94-%e1%83%9b%e1%83%98%e1%83%9b%e1%83%9d%e1%83%ae%e1%83%98%e1%83%9a%e1%83%95%e1%83%90/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>STL: Simple Template Language Preview</title>
		<link>http://code.ge/posts/stl-simple-template-language-preview</link>
		<comments>http://code.ge/posts/stl-simple-template-language-preview#comments</comments>
		<pubDate>Wed, 02 Dec 2009 08:41:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[RegExp]]></category>
		<category><![CDATA[stl]]></category>
		<category><![CDATA[template language]]></category>

		<guid isPermaLink="false">http://www.code.ge/?p=428</guid>
		<description><![CDATA[დიდი ხნის პაუზის შემდეგ მინდა წარმოგიდგინოთ ერთი ახალი პროექტი რომელზეც გარკვეული პერიოდია ვმუშაობ. ჯერჯერობით ეს არის პრივიუ რელიზი რომელიც მალე საბოლოო ფაზაში შევა და სრულ დოკუმენტაციასა და მაგალითებს შესაბამისად წარმოგიდგენთ. მანამდე კი მისი ნახვა და გადმოწერა შეგიძლიათ შემდეგი მისამართიდან: STL Library. რა არის STL? როგორც სათაურმა მიგანიშნათ ეს არის PHP &#8211; ზე დაწერილი მარტივი და [...]]]></description>
			<content:encoded><![CDATA[<p>დიდი ხნის პაუზის შემდეგ მინდა წარმოგიდგინოთ ერთი ახალი პროექტი რომელზეც გარკვეული პერიოდია ვმუშაობ. ჯერჯერობით ეს არის პრივიუ რელიზი რომელიც მალე საბოლოო ფაზაში შევა და სრულ დოკუმენტაციასა და მაგალითებს შესაბამისად წარმოგიდგენთ. მანამდე კი მისი ნახვა და გადმოწერა შეგიძლიათ შემდეგი მისამართიდან: <a href="http://github.com/ioseb/STL/blob/master/stl.lib.php">STL Library</a>.</p>
<p>რა არის STL? როგორც სათაურმა მიგანიშნათ ეს არის PHP &#8211; ზე დაწერილი მარტივი და მოქნილი შაბლონების ენა და ამ ენის პროცესორი. STL არის მარტივად გამოყენებადი შაბლონების ენა რომელიც არის საკმაოდ მარტივად ასათვისებელი თუ თქვენ გაგაჩნიათ ნებისმიერ მსგავს შაბლონების ენასთან  სულ მცირედი მუშაობის გამოცდილებაც კი. მისი სინტაქსი წააგავს Django, Jinja2, Smarty და სხვა მსგავსი შაბნოლენბის ენებს.</p>
<p>ბიბლიოთეკას არ აქვს არანაირი დამოკიდებულება სხვა გარე ბიბლიოთეკებზე და PHP &#8211; ს სპეციფიურ მოდულებზე. კი არის სრულად ე.წ. standalone და მისი გამოყენება შეგიძლიათ ნებისმიერ PHP პროექტში. <span id="more-428"></span></p>
<p>რა არის საჭირო მისი გამოყენებისთვის? სულ მცირედი: 1) თქვენს პროექტში უნდა ჩატვირთოთ <strong>stl.lib.php</strong> რომლის გადაწერაც შეგიძლიათ ზემოთ მითითებული მისამართიდან; 2) შექმნათ შაბლონი ნებისმიერ ტექსტურ ფორმატში(html, txt, xml და ა.შ); 3) შექმნათ STL_template კლასის ობიექტი, გადასცეთ მას საჭირო ტექსტური შაბლონი და კონტესტური ცვლადები და შეასრულოთ. სულ ეს არის და ეს. როგორ? მაგალითი იხილეთ ქვემოთ:</p>
<p><strong>HTML შაბლონი &#8211; test.html</strong></p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{if students}<br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a>&gt;</span>This is students list<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a>&gt;</span><br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
&nbsp; {for student in students}<br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/h2.html"><span style="color: #000000; font-weight: bold;">h2</span></a>&gt;</span>{fn:ucfirst(strtolower(%student.name%))}<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/h2.html"><span style="color: #000000; font-weight: bold;">h2</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; {for friend in student.friends}<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span>%friend.name%<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; &nbsp; &nbsp; {/for}<br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/li.html"><span style="color: #000000; font-weight: bold;">li</span></a>&gt;</span><br />
&nbsp; {/for}<br />
&nbsp; <span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/ul.html"><span style="color: #000000; font-weight: bold;">ul</span></a>&gt;</span><br />
{else}<br />
&nbsp; <span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a>&gt;</span>The students list is empty :(<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/h1.html"><span style="color: #000000; font-weight: bold;">h1</span></a>&gt;</span><br />
{/if}</div></td></tr></tbody></table></div>
<p>ნაჩვენები შაბლონის მეშვეობით ხდება სტუდენტებისა და შესაბამისად ცალკეული სტუდენტის მეგობრების სიის გამობეჭდვა. ქვემოთ ნაჩვენებია შაბლონის ინიციალიზაციის კოდი:</p>
<div class="codecolorer-container php blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//შაბლონის ობიექტის შექმნა</span><br />
<span style="color: #000088;">$tpl</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> STL_template<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'test.html'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;">//შაბლონში მონაცემების დამატება</span><br />
<span style="color: #000088;">$tpl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">put</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'students'</span><span style="color: #339933;">,</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'John'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'friends'</span> <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Ann'</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Suzan'</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Tom'</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#41;</span><br />
&nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Tom'</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">'friends'</span> <span style="color: #339933;">=&gt;</span> <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'David'</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><br />
&nbsp; &nbsp; &nbsp; <a href="http://www.php.net/array"><span style="color: #990000;">array</span></a><span style="color: #009900;">&#40;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">'name'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'Mary'</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#41;</span><br />
&nbsp; <span style="color: #009900;">&#41;</span><br />
<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #666666; font-style: italic;">//შაბლონის პროცესინგი, შესრულება და გამობეჭდვა</span><br />
<span style="color: #b1b100;">echo</span> <span style="color: #000088;">$tpl</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">process</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>ნაჩვენები კოდის შესრულების შედეგად მიიღებთ სურათზე ნაჩვენებ შედეგს:</p>
<p><a href="http://www.code.ge/wp-content/uploads/Picture-28.png"><img src="http://www.code.ge/wp-content/uploads/Picture-28.png" alt="Picture 28" title="Picture 28" width="454" height="466" class="aligncenter size-full wp-image-431" /></a></p>
<p>რაც შეეხება თავად ენის სინტაქსს როგორც მაგალითიდან ჩანს იგი საკმაოდ მარტივია, თუმცა ყურადღებას შეფაჩერებ რამდენიმე დეტალზე.</p>
<p><strong>if/elseif/else ოპერატორი</strong><br />
ეს არის ერთერთი ყველაზე ხშირად გამოყენებადი ოპერატორი და შესაბამისად მაქსიმუმი გავაკეთე იმისთვის რომ მისი გამოყენება მაქსიმალურად ეფექტურად იყოს შესაძლებელი. მაგალითში ნაჩვენები კოდის ფრაგმენტი &#8220;{if students}&#8221; უბრალოდ ამოწმებს არის თუ არა აღწერილი ცვლადი სახელით &#8220;students&#8221; და აქვს თუ არა მას მინიჭებული საწყისი მნიშვნელობა. თუმცა პირობა შესაძლებელია იყოს გაცილებით უფრო კომპლექსური. ქვემოთ ნაჩვენებია ამ ოპერატორის გამოყენების ნიმუშები:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{if students <span style="color: #ddbb00;">&amp;&amp; someOtherVariable==&quot;some test value&quot; || testValue in someCollection}</span><br />
<span style="color: #ddbb00;">Do something</span><br />
<span style="color: #ddbb00;">{elseif !students &amp;&amp; !someOtherVariable}</span><br />
<span style="color: #ddbb00;">Do something else</span><br />
<span style="color: #ddbb00;">{else}</span><br />
<span style="color: #ddbb00;">UPS :D</span><br />
<span style="color: #ddbb00;">{/if}</span></div></td></tr></tbody></table></div>
<p>გარდა if/elseif/else ოპერატორისა ასევე შეგიძლიათ პოპულარული და უმნიშვნელოვანი foreach ოპერატორის გამოყენება, მაგ:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{for student in students}<br />
%student.name%<br />
{/for}</div></td></tr></tbody></table></div>
<p>ნაჩვენებ მაგალითში მოხდება &#8220;students&#8221; კოლექციის იტერაცია ხოლო ყოველი მომდევნო ელემენტის ახალ &#8220;student&#8221; ცვლადზე მინიჭება. მოგვიანებით კი შეგიძლიათ ახალი &#8220;student&#8221; ობიექტისა და მისი თვისებების გამოყენება.</p>
<p>ცვლადების გამობეჭდვა ხდება სპეციალური ფორმატის მეშვეობით, კერძოდ კი ცვლადი უნდა განათავსოთ პროცენტის(%) სიმბოლოებში.</p>
<p>ამ მომენტისათვის ასევე უკვე არსებობს ფუნქციების გამოძახების საშუალება, მაგალითში ნჩვენები ფრაგმენტი:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">{fn:ucfirst(strtolower(%student.name%))}</div></td></tr></tbody></table></div>
<p>ფრაგმენტიდან ჩანს რომ ხდება ორი ფუნქციის გამოძახება: 1) strtolower() PHP ფუნქცია რომელიც მნიშვნელობას გადაიყვანს ქვედა რეგისტრის სიმბოლოებში; 2) ucfirst PHP ფუნქცია რომელიც სტრიქონის პირველ სიმბოლოს გადაიყვანს ზედა რეგისტრის სიმბოლოში.</p>
<p>ასევე STL &#8211; ს აქვს მოდულების მხარდაჭერა თუმცა ამაზე ოდნავ მოგვიანებით შეგატყობინებთ პროექტის დარელიზების შემდეგ.</p>
<p>ამ მომენტისათვის სულ ეს არის, დოკუმენტაციასა და უფრო ვრცელ მაგალითებს შემოგთავაზებთ სულ მალე <img src='http://code.ge/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://code.ge/posts/stl-simple-template-language-preview/feed</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Google Code Jam 2009 და ქართველი ფინალისტი!</title>
		<link>http://code.ge/posts/google-code-jam-2009-%e1%83%93%e1%83%90-%e1%83%a5%e1%83%90%e1%83%a0%e1%83%97%e1%83%95%e1%83%94%e1%83%9a%e1%83%98-%e1%83%a4%e1%83%98%e1%83%9c%e1%83%90%e1%83%9a%e1%83%98%e1%83%a1%e1%83%a2%e1%83%98</link>
		<comments>http://code.ge/posts/google-code-jam-2009-%e1%83%93%e1%83%90-%e1%83%a5%e1%83%90%e1%83%a0%e1%83%97%e1%83%95%e1%83%94%e1%83%9a%e1%83%98-%e1%83%a4%e1%83%98%e1%83%9c%e1%83%90%e1%83%9a%e1%83%98%e1%83%a1%e1%83%a2%e1%83%98#comments</comments>
		<pubDate>Sat, 14 Nov 2009 11:03:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Google Code Jam]]></category>
		<category><![CDATA[პროგრამირება]]></category>

		<guid isPermaLink="false">http://www.code.ge/?p=421</guid>
		<description><![CDATA[მაშ ასე დასრულდა Google Code Jam 2009. წლევანდელი წელი იმით იყო აღსანიშნავი, რომ, 25 ფინალისტს შორის მოხვდა ქართველი პროგრამისტი ნიკა ჯიმშელეიშვილი. პირველ რიგში თავად ეს ფაქტი იმსახურებს დიდი ყურადღებას და უდავოდ დიდი წარმატებაა, თუმცა, კიდევ ერთი სასიამოვნო ფაქტი არის ის რომ გუშინ შედგა ეს ფინალი და ნიკა მეექვსე ადგილზე გავიდა! ეს ჩემის აზრით ძალიან ძალიან [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://code.ge/wp-content/uploads/2009/11/logo_image4.gif" alt="" title="logo_image4" width="150" height="56" class="alignleft size-full wp-image-586" />მაშ ასე დასრულდა Google Code Jam 2009. წლევანდელი წელი იმით იყო აღსანიშნავი, რომ, <a href="http://www.giolekva.com/gcj-2009"><em>25 ფინალისტს შორის მოხვდა ქართველი პროგრამისტი ნიკა ჯიმშელეიშვილი</em></a>.</p>
<p>პირველ რიგში თავად ეს ფაქტი იმსახურებს დიდი ყურადღებას და უდავოდ დიდი წარმატებაა, თუმცა, კიდევ ერთი სასიამოვნო ფაქტი არის ის რომ გუშინ შედგა ეს ფინალი და ნიკა მეექვსე ადგილზე გავიდა! ეს ჩემის აზრით ძალიან ძალიან ძალიან მნიშვნელოვანი ფაქტი იმსახურებს სათანადო ყურადღებასა და დაფასებას. ვულოცავ ამ უზარმაზარ წარმატებას ნიკას და ვუსურვებ სხვა უფრო ბრწყინვალე გამარჯვებებს ამ სფეროში და არა მარტო!</p>
<p><strong>კიდევ ერთხელ ვულოცავ ნიკას!</strong></p>
<p>იხ: <a href="http://code.google.com/codejam/contest/scoreboard?c=311101">წლევანდელი ფინალის რეზულტატები</a></p>
]]></content:encoded>
			<wfw:commentRss>http://code.ge/posts/google-code-jam-2009-%e1%83%93%e1%83%90-%e1%83%a5%e1%83%90%e1%83%a0%e1%83%97%e1%83%95%e1%83%94%e1%83%9a%e1%83%98-%e1%83%a4%e1%83%98%e1%83%9c%e1%83%90%e1%83%9a%e1%83%98%e1%83%a1%e1%83%a2%e1%83%98/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>WebKit Patch: ჩემი მცირე წვლილი ბრაუზერების განვითარების ისტორიაში</title>
		<link>http://code.ge/posts/webkit-javascript-string-trim-patch</link>
		<comments>http://code.ge/posts/webkit-javascript-string-trim-patch#comments</comments>
		<pubDate>Tue, 13 Oct 2009 09:55:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.code.ge/?p=414</guid>
		<description><![CDATA[რამდენიმე თვის წინ აღმოვაჩინე რომ FireFox &#8211; ის მორიგ განახლებაში დაუმატებიათ ახალი ფუნქციონალობა. კერძოდ კი JavaScript &#8211; ის String ობიექტს დაამატეს trim(), trimLeft() და trimRight() მეთოდები. ნებისმიერი პროგრამისტისთვის ცნობილია ამ მეთოდების დანიშნულება და მათი აუცილებლობა სტრიქონული ტიპის მონაცემებთან სამუშაოდ, შესაბამისად არც მე შეგაწყენთ მათი დეტალური განხილვით თავს ECMAScript 5 სპეციფიკაციში განსაზღვრულია ახალი trim() მეთოდი, თუმცა [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://localhost/codege/wp-content/uploads/2009/10/icon-gold.png" alt="" title="icon-gold" width="215" height="174" class="alignleft size-full wp-image-572" />რამდენიმე თვის წინ აღმოვაჩინე რომ FireFox &#8211; ის მორიგ განახლებაში დაუმატებიათ ახალი ფუნქციონალობა. კერძოდ კი JavaScript &#8211; ის String ობიექტს დაამატეს trim(), trimLeft() და trimRight() მეთოდები. ნებისმიერი პროგრამისტისთვის ცნობილია ამ მეთოდების დანიშნულება და მათი აუცილებლობა სტრიქონული ტიპის მონაცემებთან სამუშაოდ, შესაბამისად არც მე შეგაწყენთ მათი დეტალური განხილვით თავს <img src='http://code.ge/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>ECMAScript 5 <a href="http://wiki.ecmascript.org/doku.php?id=es3.1:targeted_additions_to_array_string_object_date">სპეციფიკაციში</a> განსაზღვრულია ახალი <a href="https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String/Trim">trim()</a> მეთოდი, თუმცა Mozilla &#8211; ს გუნდი უფრო შორს წავიდა და დაამატა ორი ახალი, არასტანდარტული მეთოდი: <a href="https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String/TrimLeft">trimLeft()</a> და <a href="https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Global_Objects/String/TrimRight">trimRight()</a>.</p>
<p>ამ მეთოდების აღმოჩენისა და გარჩევის შემდეგ შევეცადე მეპოვნა იგივე მეთოდები სხვა ბრაუზერებში და აღმოვაჩინე, რომ, იმ მომენტისათვის სხვა არცერთ ბრაუზერში მსგავსი რამ არ არსებობდა მათ შორის არც WebKit &#8211; ზე დაფუძნებულ ბრაუზერებში(Safari, Chrome). გამომდინარე იქედან რომ WebKit მიმაჩნია საუკეთესო ბირთვად დავინტერესდი შევძლებდი თუ არა ჩემით მსგავსი ფუნქციონალობის რეალიზებას. რამდენიმე საათიანი წვალების შემდეგ მივაღწიე იმას რომ უკვე ხელთ მქონდა WebKit &#8211; ის ე.წ. custom build რომელიც აღჭურვილი იყო მოზილას მსგავსი ფუნქციონალობით.</p>
<p>ამ ფაქტით გამხნევებულმა გავარჩიე დოკუმენტაცია მოვამზადე პატჩი და გავუგზავნე WebKit &#8211; ის გუნდს. რა თქმა უნდა ამ ფაქტს მოყვა შესაბამისი განხილვა და კოდის უამრავი მოდიფიკაცია, საბოლოო ჯამში მივიღეთ სრულებით სახეცვლილი კოდი რომელიც რამდენიმე თვის დაგვიანების შემდეგ როგორც იქნა ჩადეს WebKit &#8211; ის ძირითად კოდში. მართალია ჩემი უყურადღებობისა თუ სხვა მიზეზების გამო კოდის ამ განახლებაში ჩემი სახელი და გვარი არ ფიგურირებს თუმცა ცვლილებას თნ აქვს დართული მთელი დისკუსია შესაბამისი კოდებით რაც მაძლევს იმის თქმის უფლებას რომ WebKit &#8211; ში ამ ფუნქციონალობის დამატება ჩემი დამსახურებაა და ნამდვილად არ მეთაკილება ამის თქმა <img src='http://code.ge/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>ამ ფაქტმა ძალიან გამახარა იმიტომ, რომ, აქედან მოყოლებული ნებისმიერი ბრაუზერი რომელიც იყენებს აღნიშნულ ბირთვს(Safari, Chrome, iPhone Safari, Android Browser და სხვა) ყველა აღჭურვილი იქნება იმ ფუნქციონალობით რომელშიც წვლილი მიმიძღვის, ჩემთვის როგორც დეველოპერისთვის ეს ფაქტი ძალიან  მნიშვნელოვანია და იმედია არ დამზრახავთ ამ სიხარულისთვის! <img src='http://code.ge/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>კოდში შეტანილი ცვლილებები:</strong> <a href="http://trac.webkit.org/changeset/49423">http://trac.webkit.org/changeset/49423</a><br />
<strong>დისკუსია პატჩის გარშემო:</strong> <a href="https://bugs.webkit.org/show_bug.cgi?id=26590">https://bugs.webkit.org/show_bug.cgi?id=26590</a><br />
<strong>WebKit &#8211; ის ბილდი აღწერილი ფუნქციონალობით:</strong> <a href="http://nightly.webkit.org/">http://nightly.webkit.org/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://code.ge/posts/webkit-javascript-string-trim-patch/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Code.ge Presents: Internet Explorer 6 Must Die!</title>
		<link>http://code.ge/posts/code-ge-presents-internet-explorer-6-must-die</link>
		<comments>http://code.ge/posts/code-ge-presents-internet-explorer-6-must-die#comments</comments>
		<pubDate>Sun, 27 Sep 2009 10:17:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.code.ge/?p=398</guid>
		<description><![CDATA[კიდევ ერთხელ მოგესალმებით ყველას. ამჯერად წარმოგიდგენთ ერთ მინი პროექტს რომლის განცხორციელებაც დაგეგმილი მქონდა გასული წლის დეკემბერში მაგრამ გარკვეულ თუ გაურკვეველ მიზეზთა გამო ვერ გამოვნახო სულ რამდენიმე საათი რათა ამ იდეისთვის ხორცი შემესხა . თუმცა რამდენიმე დღის წინ არსაიდან აღმოცენებულმა Google &#8211; ს პროექტმა Chrome Frame კვლავ გამიღვიძა ამის სურვილი. პროექტი Internet Explorer 6 Must Die! [...]]]></description>
			<content:encoded><![CDATA[<p>კიდევ ერთხელ მოგესალმებით ყველას. ამჯერად წარმოგიდგენთ ერთ მინი პროექტს რომლის განცხორციელებაც დაგეგმილი მქონდა გასული წლის დეკემბერში მაგრამ გარკვეულ თუ გაურკვეველ მიზეზთა გამო ვერ გამოვნახო სულ რამდენიმე საათი რათა ამ იდეისთვის ხორცი შემესხა <img src='http://code.ge/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . თუმცა რამდენიმე დღის წინ არსაიდან აღმოცენებულმა Google &#8211; ს პროექტმა <strong>Chrome Frame</strong> კვლავ გამიღვიძა ამის სურვილი.</p>
<p>პროექტი <strong>Internet Explorer 6 Must Die!</strong> მიმართულია ინტერნეტის მომხმარებელთა შორის Internet Explorer 6.0 &#8211; ის შემცირებისა და ამ ბრაუზერის სიკვდილის( <img src='http://code.ge/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ) დასაჩქარებლად. მიუხედავად ყველაფაფრისა ამ ბრაუზერს ინტერნეტ ბაზრის 25% უკავია რაც ყოვლად დაუშვებელი და მიუღებელია, მითუფრო რომ Microsoft &#8211; მა ბოლო წლების მანძილზე გამოუშვა ორი, გაცილებით უკეთესი ბრაუზერი Internet Explorer 7 და Internet Explorer 8.</p>
<p><strong>Internet Explorer 6 Must Die!</strong> არის მცირე ზომის სკრიპტი, რომელიც უნდა ჩასვათ თქვენს ვებ გვერდში. ხოლო თუ მომხმარებელი თქვენს გვერდს გახსნის Internet Explorer 6 &#8211; ის მეშვეობით დაინახავს მსგავს შეტყობინებას:</p>
<p><a href="http://www.code.ge/wp-content/uploads/Picture-16.png"><img src="http://www.code.ge/wp-content/uploads/Picture-16-300x169.png" alt="Picture 16" title="Picture 16" width="300" height="169" class="aligncenter size-medium wp-image-399" /></a></p>
<p>ნაჩვენები შეტყობინება მთლიანად დაფარავს გვერდს ისე რომ მომხმარეელი მხოლოდ გამჭვირვალე ფონის მიღმა შეძლებს გვერდის კონტენტის დანახავს. მომხმარებელს შეუძლია არჩევანი გააკეთოს და ძირითადი 6 ბრაუზერიდან აირჩიოს ერთერთი.</p>
<p>ჩემის აზრით თითოეული ჩვენგანის აქტიურობა და მცდელობა იმისა რომ თუნდაც რამდენიმე ერთეულით შევამციროთ Internet Explorer 6 გარკვეული დროის შემდეგ მნიშნველოვან შედეგს გამოიღებს. ეს კი პირველ რიგში იმ ადამიანებისთვის არის მნიშნვნელოვანი რომლებიც ქმნიან ვებ საიტებს/აპლიკაციებს და რომლებიც უამრავ დროს ხარჯავენ Internet Explorer 6 &#8211; თან გაუთავებელ ბრძოლაში.</p>
<p>პროექტის საწყისი კოდი განთავსებულია <a href="http://github.com/ioseb/ie6mustdie">GitHUB</a> &#8211; ზე. მისი გამოყენებისათვის საკმარისია გადმოწეროთ სკრიპტის ბოლო ვერსიის zip არქივი შემდეგი მისამართიდან: <a href="http://github.com/ioseb/ie6mustdie/downloads">http://github.com/ioseb/ie6mustdie/downloads</a>.<br />
გახსნათ არქივი თქვენთვის სასურველ დირექტორიაში ხოლო თქვენს ვებ გვერდში BODY ტეგის დახურვამდე მიუთითოთ შემდეგი JavaScript კოდი:</p>
<div class="codecolorer-container html4strict blackboard" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="html4strict codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;">&lt;<a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a> <span style="color: #000066;">type</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;text/javascript&quot;</span> <span style="color: #000066;">src</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;path/to/ie6mustdiefolder/ie6mustdie.js&quot;</span>&gt;&lt;<span style="color: #66cc66;">/</span><a href="http://december.com/html/4/element/script.html"><span style="color: #000000; font-weight: bold;">script</span></a>&gt;</span></div></td></tr></tbody></table></div>
<p>დანარჩენს კი სკრიპტი თავად გააკეთებს! </p>
]]></content:encoded>
			<wfw:commentRss>http://code.ge/posts/code-ge-presents-internet-explorer-6-must-die/feed</wfw:commentRss>
		<slash:comments>40</slash:comments>
		</item>
		<item>
		<title>LinGEO &#8211; Now on iTunes!</title>
		<link>http://code.ge/posts/lingeo-now-on-itunes</link>
		<comments>http://code.ge/posts/lingeo-now-on-itunes#comments</comments>
		<pubDate>Sat, 26 Sep 2009 09:33:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[LinGEO]]></category>
		<category><![CDATA[Objective-C/Cocoa]]></category>

		<guid isPermaLink="false">http://www.code.ge/?p=390</guid>
		<description><![CDATA[აღესრულა! დღეს დილიდან ლაშამ ძალიან კარგი ამბავი შემატყობინა, ჩვენმა აპლიკაციამ Apple &#8211; ს კაბალური შემოწმების პროცესი წარმატებით გაიარა და დღეიდან უკვე LinGEO ოფიციალურად არის დამატებული Apple AppStore &#8211; ში, შესაბამისად ვისაც გაქვთ iTunes ანგარიში თამამად შეგიძლიათ გადმოწეროთ აპლიკაცია და დააინსტალიროთ თქვენს iPhone &#8211; ზე. კიდევ ერთხელ განასკუთრებული მადლობა ლაშას აპლიკაციის დასრულებისა და მისი გაუმჯობესებისათვის, ასევე [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://code.ge/wp-content/uploads/2009/09/mza_8933167310794176921.320x480-75-208x300.jpg" alt="LinGEO Dictionary Initial View" title="mza_8933167310794176921.320x480-75" width="208" height="300" class="alignleft size-medium wp-image-576" /> აღესრულა! დღეს დილიდან ლაშამ ძალიან კარგი ამბავი შემატყობინა, ჩვენმა აპლიკაციამ Apple &#8211; ს კაბალური შემოწმების პროცესი წარმატებით გაიარა და დღეიდან უკვე <a href="http://www.code.ge/lingeo">LinGEO</a> ოფიციალურად არის დამატებული Apple AppStore &#8211; ში, შესაბამისად ვისაც გაქვთ iTunes ანგარიში თამამად შეგიძლიათ გადმოწეროთ აპლიკაცია და დააინსტალიროთ თქვენს iPhone &#8211; ზე. კიდევ ერთხელ განასკუთრებული მადლობა ლაშას აპლიკაციის დასრულებისა და მისი გაუმჯობესებისათვის, ასევე იმ რთული პროცესის წარმატებით გავლისათვის რასაც აპლიკაციის AppStore &#8211; ში განთავსებას ახლავს თან! ასევე დიდი მადლობა Toto &#8211; ს შესანიშნავი რჩევებისა და გაუმჯობესებებისათვის და გიორგი(Flyer) კვიჟინაძეს ლოგოს შექმნისათვის!</p>
]]></content:encoded>
			<wfw:commentRss>http://code.ge/posts/lingeo-now-on-itunes/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

