<?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>SqUe</title>
	<atom:link href="http://blogs.kmfa.net/sque/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.kmfa.net/sque</link>
	<description>&#34;Think free speech, not free beer&#34;</description>
	<lastBuildDate>Fri, 02 Apr 2010 01:37:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Simply perfect popcorn</title>
		<link>http://blogs.kmfa.net/sque/2010/03/simply-perfect-popcorn/</link>
		<comments>http://blogs.kmfa.net/sque/2010/03/simply-perfect-popcorn/#comments</comments>
		<pubDate>Tue, 23 Mar 2010 16:02:16 +0000</pubDate>
		<dc:creator>sque</dc:creator>
				<category><![CDATA[Party]]></category>
		<category><![CDATA[food]]></category>
		<category><![CDATA[guide]]></category>

		<guid isPermaLink="false">http://blogs.kmfa.net/sque/?p=245</guid>
		<description><![CDATA[You want perfect popcorn with all kernels popped and none of them burned? You hate biting hard kernels or popped ones that stuck in your teeth? I found the best method for your problems, Enjoy!
	
	
		
			
			
			
			
			
		
	www.youtube.com/watch?v=-qJT0yRVfEk

And for those not working in a circus!

If you are just a geek who wants a big bowl of perfect popcorns [...]]]></description>
			<content:encoded><![CDATA[<p>You want perfect popcorn with all kernels popped and none of them burned? You hate biting hard kernels or popped ones that stuck in your teeth? I found the best method for your problems, Enjoy!</p>
<p style="text-align: center">	<!-- Smart Youtube -->
	<span class="youtube">
		<object width="425" height="355">
			<param name="movie" value="http://www.youtube.com/v/-qJT0yRVfEk&amp;rel=1&amp;color1=3a3a3a&amp;color2=999999&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" />
			<param name="allowFullScreen" value="true" />
			<embed wmode="transparent" 
				src="http://www.youtube.com/v/-qJT0yRVfEk&amp;rel=1&amp;color1=3a3a3a&amp;color2=999999&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0" 
				type="application/x-shockwave-flash" 
				allowfullscreen="true" 
				width="425" 
				height="355">
			</embed>
			<param name="wmode" value="transparent" />
		</object>
	</span><a href="http://www.youtube.com/watch?v=-qJT0yRVfEk">www.youtube.com/watch?v=-qJT0yRVfEk</a></p>
<p style="text-align: center">
<h2>And for those not working in a circus!</h2>
<h2><a href="http://blogs.kmfa.net/sque/files/2010/03/popcorn71.jpg"><img title="popcorn71" src="http://blogs.kmfa.net/sque/files/2010/03/popcorn71.jpg" alt="" width="800" height="283" /></a></h2>
<p>If you are just a geek who wants a big bowl of perfect popcorns and a beer to enjoy the movie then there is an easier way for you. Some of you will think &#8220;Yes microwave popcorn!&#8221;; Well if you want popcorn with engine oil or if you are unaware of the toxics in butter and on the surface of the bags <a href="http://www.google.com/search?q=microwave+popcorn+health&amp;btnG=Google+Search">search google</a> and come back again later.</p>
<p>For the rest you I have found the best recipe on Internet that just worked(tm) for me. It is very very simple and all that it demands is timing.</p>
<p><span id="more-245"></span></p>
<h2><strong>Ingredients</strong></h2>
<div id="recipe-ingredients">
<ul>
<li>3 Tbsp canola, peanut or grapeseed oil (high smoke point oil)</li>
<li>1/3 cup of high quality popcorn kernels</li>
<li>1 3-quart covered saucepan</li>
<li>2 Tbsp or more (to taste) of  butter</li>
<li>Salt to taste</li>
</ul>
</div>
<div id="recipe-method">
<h3>Method</h3>
<p><strong>1</strong> Heat the oil in a 3-quart saucepan on medium high heat.</p>
<p><strong>2</strong> Put 3 or 4 popcorn kernels into the oil and cover the pan.</p>
<p><strong>3</strong> When the kernels pop, add the rest of the 1/3 cup of popcorn kernels in an even layer.  Cover, <strong>remove from heat</strong> and count 30 seconds. This method first heats the oil to the right temperature, then waiting 30 seconds brings all of the other kernels to a near-popping temperature so that when they are put back on the heat, they all pop at about the same time.</p>
<p><strong>4</strong> Return the pan to the heat. The popcorn should begin popping soon, and all at once. Once the popping starts in earnest, gently shake the pan by moving it back and forth over the burner. Try to keep the lid slightly ajar to let the steam from the popcorn release (the popcorn will be drier and crisper). Once the popping slows to several seconds between pops, remove the pan from the heat, remove the lid, and dump the popcorn immediately into a wide bowl.</p>
<p>With this technique, nearly all of the kernels pop (I counted 4 unpopped kernels in my last batch), and nothing burns.</p>
<p><strong>5</strong> If you are adding butter, you can easily melt it by placing the butter in the now empty, but hot pan.</p>
<p><strong>6</strong> Salt to taste.</p>
<p>Makes 2 quarts, a nice amount for two people, or for one hungry one.</p>
<p><strong>Additional tips:</strong></p>
<p><strong>a</strong> If you add salt to the oil in the pan before popping, when the popcorn pops, the salt will be well distributed throughout the popcorn.</p>
<p><strong>b</strong> Fun toppings for the popcorn -- Spanish smoked paprika, nutritional yeast, cayenne powder, chili pepper, curry powder, cumin, grated Parmesan cheese.</p>
<p>Credits for the recipe to <a href="http://simplyrecipes.com/recipes/perfect_popcorn/">Elise</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blogs.kmfa.net/sque/2010/03/simply-perfect-popcorn/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Radeon R600/R700 with KMS+3D on Karmic 9.10</title>
		<link>http://blogs.kmfa.net/sque/2010/03/radeon-r600r700-with-kms3d-on-karmic-9-10/</link>
		<comments>http://blogs.kmfa.net/sque/2010/03/radeon-r600r700-with-kms3d-on-karmic-9-10/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 17:34:14 +0000</pubDate>
		<dc:creator>sque</dc:creator>
				<category><![CDATA[Geeking]]></category>
		<category><![CDATA[driver]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://blogs.kmfa.net/sque/?p=167</guid>
		<description><![CDATA[Open-source attack!
Are you bored off that crappy closed-source fglrx (AMD&#8217;s official linux driver)? Or you just can&#8217;t stand having Unidentified Flying Object in your RAM? If you own an R6xx/R7xx gpu based card then good news for you, there is finally 3d support for you! Not finished yet but at very good stage.
Let&#8217;s try to [...]]]></description>
			<content:encoded><![CDATA[<h2>Open-source attack!</h2>
<p>Are you bored off that crappy closed-source fglrx (AMD&#8217;s official linux driver)? Or you just can&#8217;t stand having Unidentified Flying Object in your RAM? If you own an R6xx/R7xx gpu based card then good news for you, there is finally 3d support for you! Not finished yet but at very good stage.</p>
<p>Let&#8217;s try to explain something before we start, there is one &#8220;new&#8221; technology that this new driver is based on, the KMS.</p>
<p><span id="more-167"></span></p>
<h3>Mode-setting</h3>
<p>Is setting up the screen resolution and depth mode for the graphics card. Modern mode setting software support multiple monitors (&#8220;multi-head&#8221;) and hot plugging. In linux there are two ways to do it the old one <strong>U</strong>ser<strong> M</strong>ode <strong>S</strong>etting (UMS) and <strong>K</strong>ernel <strong>M</strong>ode <strong>S</strong>etting.</p>
<p><strong>UMS </strong>is the old one and it was done by the X-server driver at the start of X session. For this to work, the X server needed to run as root so that it could access the resources of graphics card. Further-more switching to console involved freeing resources from graphics card and giving gpu back to the kernel. Switching back to X session from console, the driver had to reinitialize hardware from the scratch and lock it again.</p>
<p><strong>KMS</strong> is the new one and the mode-setting is done by the kernel its self without the need of X server. Kernel modules has been written for some cards and are being developped for the rest, that are capable of controlling gpu mode-setting in-kernel. X server driver does not need to access GPU in low-level anymore but requests mode changes from the kernel&#8217;s KMS API which sends commands to GPU. Advantages are numerous, like switching to console and back does not involve releasing/locking card and reinitializing it each time. Kernel can detect monitors and console is run at the screens optimal resolution (no more 640&#215;480 console). Also x server drivers does not need any more to run under &#8220;root&#8221; to access gpu, (this has been accomplished with changes in others areas of X-server stack too). To work in KMS mode you need the appropriate modules in kernel that will implement KMS for your GPU, and the new X server driver that will access graphics card through KMS and not directly.</p>
<p>There are more stuff involved in the new X server stack like DRM/DRI2, vga_switcheroo (vga switching). There are plenty of information out-there to read.</p>
<h2>Latest R600/R700 stack on Karmic 9.10</h2>
<p><span style="color: #ff0000"><strong>WARNING</strong></span>: <strong>You will run experimental software, that may have serious bugs and make your system unstable. To perform the following steps you must be familiar with linux terminal and deb packages. If you don&#8217;t know what are these, don&#8217;t even try it. In any way the process may result in broken X session.</strong></p>
<p>You want open-source radeon driver with 3D, compiz, KMS support right now? You have to update to the latest unreleased code of drm-next source tree (yes you have to pull 2.6.34 DRM code for proper support), and to the latest MESA-DRI-Xorg radeon driver.</p>
<p>Get latest kernel with drm-next tree from the kernel mainline</p>
<p>Visit <a href="http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-next/current/">http://kernel.ubuntu.com/~kernel-ppa/mainline/drm-next/current/</a> and download 3 files on folder that you will create on the <strong>Desktop</strong> named <strong>drmnext</strong></p>
<pre>linux-headers-[VERSION]_<strong>all</strong>.deb
linux-headers-[VERSION]_<strong>{ARCH}</strong>.deb
linux-image-[VERSION]_<strong>{ARCH}</strong>.deb</pre>
<p>For example for my i386 I downloaded the following files:</p>
<pre>linux-headers-2.6.33-996_2.6.33-996.201003011149_all.deb
linux-headers-2.6.33-996-generic_2.6.33-996.201003011149_i386.deb
linux-image-2.6.33-996-generic_2.6.33-996.201003011149_i386.deb</pre>
<p>Then open-terminal and CD to the folder where you downloaded them, and install them</p>
<pre>cd ~/Desktop/drmnext
sudo dpkg -i linux-*2.6.33*.deb</pre>
<p>Kernel misses some firmware files R600_rlc.bin and R700_rlc.bin that you have to download manually and install them in your linux installation.</p>
<pre>sudo wget -O /lib/firmware/2.6.33-996-generic/radeon/R600_rlc.bin http://people.freedesktop.org/~agd5f/radeon_ucode/R600_rlc.bin
sudo wget -O /lib/firmware/2.6.33-996-generic/radeon/R700_rlc.bin http://people.freedesktop.org/~agd5f/radeon_ucode/R700_rlc.bin</pre>
<p>You have to update initramfs because this firmware is needed early at kernel load. You will also need to enable the experimental &#8220;power management&#8221; code of the module otherwise your GPU will work at full speed even when idle, resulting in heat and fan working continuously.</p>
<pre>sudo bash -c "echo \"options radeon dynpm=1\" &gt; /etc/modprobe.d/radeon.conf"<strong> </strong>
sudo update-initramfs -u -k 2.6.33-996-generic</pre>
<p>Now you have to update your xorg stack to the latest. This can be done easily using xorg-edgers ppa.</p>
<pre>sudo add-apt-repository ppa:xorg-edgers/ppa
sudo apt-get update
sudo apt-get upgrade</pre>
<p>Ok you are ready! Cross your fingers and reboot, select kernel 2.6.33 on grub and good luck <img src='http://blogs.kmfa.net/sque/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h2>F*$% that crap! I want to go back</h2>
<p>If you are not a satisfied client then you can always return back to default ubuntu packages with the following commands</p>
<pre>sudo apt-get install ppa-purge
sudo ppa-purge xorg-edgers</pre>
<p>Reboot and select 2.6.31 kernel. After that you can use synaptic and remove all *2.6.33* kernels from repository, if you think that you will never need it again.</p>
<p>Please write back your experience or comments in comments section. <img src='http://blogs.kmfa.net/sque/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span style="color: #ff0000"><strong>Updates</strong></span></p>
<ul>
<li>The command to add module options missed sudo prefix, and resulted in &#8220;permission denied&#8221;. Kudos to <a href="http://www.facebook.com/bluefoxox">Patric</a>!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogs.kmfa.net/sque/2010/03/radeon-r600r700-with-kms3d-on-karmic-9-10/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Why cloud computing is not safe</title>
		<link>http://blogs.kmfa.net/sque/2010/02/why-cloud-computing-is-not-safe/</link>
		<comments>http://blogs.kmfa.net/sque/2010/02/why-cloud-computing-is-not-safe/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 17:08:20 +0000</pubDate>
		<dc:creator>sque</dc:creator>
				<category><![CDATA[Geeking]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[security]]></category>

		<guid isPermaLink="false">http://blogs.kmfa.net/sque/?p=196</guid>
		<description><![CDATA[	
	
		
			
			
			
			
			
		
	www.youtube.com/watch?v=VjfaCoA2sQk
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center">	<!-- Smart Youtube -->
	<span class="youtube">
		<object width="480" height="360">
			<param name="movie" value="http://www.youtube.com/v/VjfaCoA2sQk&amp;rel=1&amp;color1=3a3a3a&amp;color2=999999&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;hd=1" />
			<param name="allowFullScreen" value="true" />
			<embed wmode="transparent" 
				src="http://www.youtube.com/v/VjfaCoA2sQk&amp;rel=1&amp;color1=3a3a3a&amp;color2=999999&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;hd=1" 
				type="application/x-shockwave-flash" 
				allowfullscreen="true" 
				width="480" 
				height="360">
			</embed>
			<param name="wmode" value="transparent" />
		</object>
	</span><a href="http://www.youtube.com/watch?v=VjfaCoA2sQk&fmt=18">www.youtube.com/watch?v=VjfaCoA2sQk</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.kmfa.net/sque/2010/02/why-cloud-computing-is-not-safe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mon Chat</title>
		<link>http://blogs.kmfa.net/sque/2010/02/mon-chat/</link>
		<comments>http://blogs.kmfa.net/sque/2010/02/mon-chat/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 22:39:54 +0000</pubDate>
		<dc:creator>sque</dc:creator>
				<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://blogs.kmfa.net/sque/?p=169</guid>
		<description><![CDATA[Comments : OFF
Geek mode: OFF
Having fun with my camera&#8230;

Edit: I added a gallery browser to make it easier to browse photos
]]></description>
			<content:encoded><![CDATA[
<a href="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/dsc05127.jpg" title="Give me 4!" class="shutterset_singlepic3" >
	<img class="ngg-singlepic ngg-left" src="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/cache/3__320x240_dsc05127.jpg" alt="" title="" />
</a>

<p>Comments : <strong><span style="color: #ff0000">OFF</span></strong></p>
<p>Geek mode: <span style="color: #ff0000"><strong>OFF</strong></span></p>
<p>Having fun with my camera&#8230;</p>
<p><span id="more-169"></span></p>

<div class="ngg-galleryoverview" id="ngg-gallery-1-169">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://blogs.kmfa.net/sque/2010/02/mon-chat/?show=slide">
			[Show as slideshow]		</a>
	</div>

	<!-- Piclense link -->
	<div class="piclenselink">
		<a class="piclenselink" href="javascript:PicLensLite.start({feedUrl:'http://blogs.kmfa.net/sque/wp-content/plugins/nextgen-gallery/xml/media-rss.php?gid=1&amp;mode=gallery'});">
			[View with PicLens]		</a>
	</div>
	
	<!-- Thumbnails -->
		
	<div id="ngg-image-5" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/dsc05120.jpg" title="*snif* *snif*" class="shutterset_set_1" >
								<img title=" " alt=" " src="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/thumbs/thumbs_dsc05120.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-6" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/dsc05112.jpg" title="Pure little crocodile..." class="shutterset_set_1" >
								<img title=" " alt=" " src="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/thumbs/thumbs_dsc05112.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-3" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/dsc05127.jpg" title="Give me 4!" class="shutterset_set_1" >
								<img title=" " alt=" " src="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/thumbs/thumbs_dsc05127.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-4" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/dsc05123.jpg" title="White on white..." class="shutterset_set_1" >
								<img title=" " alt=" " src="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/thumbs/thumbs_dsc05123.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-7" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/dsc05128.jpg" title="Leave me alone" class="shutterset_set_1" >
								<img title=" " alt=" " src="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/thumbs/thumbs_dsc05128.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-8" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/dsc05126.jpg" title="*slourp*" class="shutterset_set_1" >
								<img title=" " alt=" " src="http://blogs.kmfa.net/sque/wp-content/blogs.dir/2/files/mon-chat/thumbs/thumbs_dsc05126.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<p><em>Edit: I added a gallery browser to make it easier to browse photos</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.kmfa.net/sque/2010/02/mon-chat/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Code quality measurement</title>
		<link>http://blogs.kmfa.net/sque/2010/02/code-quality-measurement/</link>
		<comments>http://blogs.kmfa.net/sque/2010/02/code-quality-measurement/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 16:41:49 +0000</pubDate>
		<dc:creator>sque</dc:creator>
				<category><![CDATA[Geeking]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[funny]]></category>

		<guid isPermaLink="false">http://blogs.kmfa.net/sque/?p=158</guid>
		<description><![CDATA[I was looking for the best way to measure code quality and I found it. Here is the scientific presentation of the formula.


I think many coders out there will agree that this is definitely a good way!
]]></description>
			<content:encoded><![CDATA[<p style="text-align: left">I was looking for the best way to measure code quality and I <a href="http://phpkitchen.com/2009/04/how-to-measure-code-quality/">found it</a>. Here is the scientific presentation of the formula.</p>
<p style="text-align: center"><img class="aligncenter size-full wp-image-159" title="WTFs/Minute" src="http://blogs.kmfa.net/sque/files/2010/02/wtfspermin1.jpg" alt="" width="500" height="471" /></p>
<p style="text-align: center">
<p style="text-align: left">I think many coders out there will agree that this is definitely a good way!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.kmfa.net/sque/2010/02/code-quality-measurement/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Repair Apple MagSafe cable</title>
		<link>http://blogs.kmfa.net/sque/2010/02/repair-apple-magsafe-cable/</link>
		<comments>http://blogs.kmfa.net/sque/2010/02/repair-apple-magsafe-cable/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 02:16:32 +0000</pubDate>
		<dc:creator>sque</dc:creator>
				<category><![CDATA[Geeking]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[guide]]></category>

		<guid isPermaLink="false">http://blogs.kmfa.net/sque/?p=75</guid>
		<description><![CDATA[Another victim
A frayed cable is not a rare case for Apple&#8217;s MagSafe power supplier, and I am proud to be part of this statistical failure. After a quick search I found out that the cable that connects the MagSafe and MacBook is prone to fraying in both ends, near magsafe and near magnetic socket. There [...]]]></description>
			<content:encoded><![CDATA[<h3>Another victim</h3>
<p>A frayed cable is not a rare case for Apple&#8217;s MagSafe power supplier, and I am proud to be part of this statistical failure. After a quick search I found out that the cable that connects the MagSafe and MacBook is prone to fraying in both ends, near magsafe and near magnetic socket. There are many users complaining for the quality of this product even in <a href="http://store.apple.com/1-800-MY-APPLE/WebObjects/AppleStore.woa/wa/RSLID?pn=MA538LL/B&amp;revw=MA538LL/B">Apple&#8217;s store</a>.</p>
<p style="text-align: center">	<!-- Smart Youtube -->
	<span class="youtube">
		<object width="425" height="355">
			<param name="movie" value="http://www.youtube.com/v/nbUxBI8-flY&amp;rel=1&amp;color1=3a3a3a&amp;color2=999999&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;feature=related" />
			<param name="allowFullScreen" value="true" />
			<embed wmode="transparent" 
				src="http://www.youtube.com/v/nbUxBI8-flY&amp;rel=1&amp;color1=3a3a3a&amp;color2=999999&amp;border=0&amp;fs=1&amp;hl=en&amp;autoplay=0&amp;showinfo=0&amp;iv_load_policy=3&amp;showsearch=0&amp;feature=related" 
				type="application/x-shockwave-flash" 
				allowfullscreen="true" 
				width="425" 
				height="355">
			</embed>
			<param name="wmode" value="transparent" />
		</object>
	</span><a href="http://www.youtube.com/watch?v=nbUxBI8-flY">www.youtube.com/watch?v=nbUxBI8-flY</a></p>
<p>Apple has <a href="//support.apple.com/kb/TS1713?viewlocale=en_US">acknowledged</a> that some of the power adapters that came with MacBooks and MacBook Pros have a flaw making them fray at the base of the plug.</p>
<div id="attachment_79" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06862.jpg"><img class="size-medium wp-image-79" title="DSC06862" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06862-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">My frayed cable</p></div>
<p style="text-align: left">For me plugging power to MacBook and finding out that it didn&#8217;t charge it, was an uncomfortable situation that had to be solved. At first I went to buy a new MagSafe but 80 euros seemed too much for a frayed cable. So I decided to give it a try and fix it.</p>
<p><span id="more-75"></span></p>
<h3>You can do this!</h3>
<p>With a close look at MagSafe, you get to understand that it will not be easy to open it. The MagSafe has no screw or clips rather than it consists of two plastic plates that are stuck with epoxy glue. To open it you have to &#8220;break&#8221; it. Depending on how much gentle you are, the breakage will or not have aesthetic impact on the final result.</p>
<p><strong>DISCLAIMER: I have no photos from the separation process as I didn&#8217;t thought to blog it until I heard the cracking sound.</strong></p>
<p>You will probably only need one or two screwdrivers with a thin head. The idea is to use screwdrivers to crack the glue between the two plastic covers. You can do this by putting the screwdriver head in the indenture of the MagSafe and use it as a lever to force the edge of one cover away from the others cover edge. The best is to start from the place where the power cable clips in.</p>
<div id="attachment_125" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/cracking.jpg"><img class="size-medium wp-image-125" title="cracking" src="http://blogs.kmfa.net/sque/files/2010/02/cracking-300x277.jpg" alt="" width="300" height="277" /></a><p class="wp-caption-text">Crack the glue of external cover with a skrewdriver</p></div>
<p style="text-align: center">
<p>This process demands a lot of patient otherwise if you press it too much you will injure the external surface. If you are patient and gentle enough you will unstick covers with minimal deformation.</p>
<h4>MagOnion</h4>
<p>MagSafe consists of multiple layers, you start by cracking the outer plastic cover and unfolding two protection shields till you see the actual circuit.</p>
<div id="attachment_90" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06853.jpg"><img class="size-medium wp-image-90 " title="Plastic Cover" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06853-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">MagSafe&#39;s plastic cover opened in 2 piecies</p></div>
<p>The magnetic shield is 3 or 4 metal leaves that are taped with an electrical conductive tape of bronze colour. One of this leaves is short circuited with the main board of the adapter. You have to unsolder this leaf from the board before you unfold it. You also have to unscrew it from the chassis.  Finally you can untape one edge of the shield so that the shield can be removed completely from the circuit.</p>
<div id="attachment_91" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06855.jpg"><img class="size-medium wp-image-91" title="DSC06855" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06855-300x225.jpg" alt="Internal magnetic protection of circuit " width="300" height="225" /></a><p class="wp-caption-text">Internal magnetic protection of circuit</p></div>
<p>There is also a plastic shield that is short-circuit protector. This shield is glued on the circuit using silicon. You can cut the silicon with a knife or use extra force but take care not to destroy the circuit.</p>
<div id="attachment_92" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06856.jpg"><img class="size-medium wp-image-92" title="DSC06856" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06856-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Electrical short-circuit protection</p></div>
<p>Here you are! Naked!</p>
<div id="attachment_111" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06858.jpg"><img class="size-medium wp-image-111" title="DSC06858" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06858-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">The actual circuit of MagSafe</p></div>
<h4 style="text-align: left">The constructive part</h4>
<p>After the complete demolition you are ready to rebuild. At first you unsolder the cable from the board.</p>
<div id="attachment_93" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06860.jpg"><img class="size-medium wp-image-93" title="DSC06860" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06860-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">The edge of the cable that was solder on the board of MagSafe</p></div>
<p style="text-align: left">Then use any of your preferred tool to cut the damaged cable.</p>
<div id="attachment_96" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06869.jpg"><img class="size-medium wp-image-96" title="DSC06869" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06869-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">The edge of the cable cut out</p></div>
<p>With a blade strip the cable and separate the outer and inner cables.</p>
<div id="attachment_95" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06868.jpg"><img class="size-medium wp-image-95" title="DSC06868" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06868-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Cable prepared to re-solder it on the board</p></div>
<p>Although we could just solder the cable back on the board, it would not be mechanically supported and with minimal force, the cable could be cut off of the board. To prevent this damage I have to reuse the supporting plastic but first we have to trim it a bit. Using a blade you cut it in half.</p>
<div id="attachment_97" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06870.jpg"><img class="size-medium wp-image-97" title="DSC06870" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06870-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Split the supporting plastic so that can be cleaned and reused</p></div>
<p>Using any tool you believe it best fits, extract the black plastic part from the hole of the supporting plastic.</p>
<div id="attachment_98" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06872.jpg"><img class="size-medium wp-image-98" title="DSC06872" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06872-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Ready for use!</p></div>
<div id="attachment_99" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06874.jpg"><img class="size-medium wp-image-99" title="DSC06874" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06874-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Fit the cable again inside the supporting plastic</p></div>
<p>You can now use the soldering tool to resolder cable back in the board.</p>
<div id="attachment_100" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06875.jpg"><img class="size-medium wp-image-100" title="DSC06875" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06875-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">The MagSafe with replaced cable</p></div>
<p>At this point the electric circuit should be working again.</p>
<h4 style="text-align: left">Reassemble it!</h4>
<p>You need to reassemble it so that it looks like a MagSafe (or something like that). You need to rebuild all the parts that you previously removed. Starting with the plastic protection.</p>
<div id="attachment_101" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06876.jpg"><img class="size-medium wp-image-101" title="DSC06876" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06876-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Apply short circuit protection on board again</p></div>
<p>After managing the plastic protection you should put back the metal protection. This will not be that easy as the plastic one. At first you can place back all leaves together and with a tape make it steady. You must use soldering tool to resolder protection on the board, as it was in the first place. And don&#8217;t forget the two screws.</p>
<div id="attachment_102" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06879.jpg"><img class="size-medium wp-image-102" title="DSC06879" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06879-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Magnetic shield refited on MagSafe</p></div>
<p>We need to add a mechanical &#8220;stop&#8221; on the cable so that if someone tries to pull it jerkily, it will not unsolder from the board. I used two tire-ups which I placed them between the supporting plastic and the board.</p>
<div id="attachment_103" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06880.jpg"><img class="size-medium wp-image-103" title="DSC06880" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06880-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Tire-ups protecting from pulling the cable off the board</p></div>
<p>Trim tire-ups so that they are able to fit inside the case of MagSafe.</p>
<div id="attachment_104" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06882.jpg"><img class="size-medium wp-image-104" title="DSC06882" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06882-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Tire-ups trimmed to fit inside the case</p></div>
<p>You can now put the circuit back in the plastic cover,though you will probably have to push a bit the cable supporter to place it back in its proper place on the external cover. Before reasempling the external parts you can use a sewage to fix possible deformation of the edges caused at cracking process.</p>
<div id="attachment_105" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06883.jpg"><img class="size-medium wp-image-105" title="DSC06883" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06883-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Board placed back in the cover</p></div>
<p>Finally you can also use epoxy glue to glue the two external parts together. You can also use duct tape for extra protection of the crack.</p>
<h3>You made it!</h3>
<p>It was not trivial but hey you have a working MagSafe again at no extra cost!</p>
<div id="attachment_106" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC06887.jpg"><img class="size-medium wp-image-106" title="DSC06887" src="http://blogs.kmfa.net/sque/files/2010/02/DSC06887-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">MagSafe GT V16 Turbo! <img src='http://blogs.kmfa.net/sque/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p></div>
<p>And here it is my MacBook and MagSafe working again!</p>
<div id="attachment_141" class="wp-caption aligncenter" style="width: 310px"><a href="http://blogs.kmfa.net/sque/files/2010/02/DSC074731.jpg"><img class="size-medium wp-image-141" title="DSC07473" src="http://blogs.kmfa.net/sque/files/2010/02/DSC074731-300x225.jpg" alt="" width="300" height="225" /></a><p class="wp-caption-text">Maybe a bit open-source enthusiast</p></div>
<p style="text-align: center">
<p style="text-align: center">
]]></content:encoded>
			<wfw:commentRss>http://blogs.kmfa.net/sque/2010/02/repair-apple-magsafe-cable/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Tinkering with Tags</title>
		<link>http://blogs.kmfa.net/sque/2009/12/tinkering-with-tags/</link>
		<comments>http://blogs.kmfa.net/sque/2009/12/tinkering-with-tags/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 17:22:20 +0000</pubDate>
		<dc:creator>sque</dc:creator>
				<category><![CDATA[PHPLibs]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[htmltag]]></category>
		<category><![CDATA[phplibs]]></category>

		<guid isPermaLink="false">http://blogs.kmfa.net/sque/?p=43</guid>
		<description><![CDATA[PHPLibs has an HTML module which contains the HTMLTag and HTMLDoc class. Those two classes have many commons with DOM&#8217;s element and document specification, but they are actually complete different and dont try to use it for DOM parsing and manipulation.
PHPLib&#8217;s html module was designed to generate html source and not parse one. It is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://phplibs.kmfa.net">PHPLibs</a> has an HTML module which contains the <a href="http://phplibs.kmfa.net/api/HTMLTag">HTMLTag</a> and <a href="http://phplibs.kmfa.net/api/HTMLDoc">HTMLDoc</a> class. Those two classes have many commons with DOM&#8217;s element and document specification, but they are actually complete different and dont try to use it for DOM parsing and manipulation.</p>
<p>PHPLib&#8217;s html module was designed to generate html source and not parse one. It is the opposite of php&#8217;s native DOM usage, where most of the times is used to parse xhtml/html source. This is because creating elements using the DOM specification could be very painfull and you will probably loose hours of writing while you could just dump static html code or generate dynamic code using a home-made string concatenation function like &#8220;my_html_tag&#8221;.</p>
<p><span id="more-43"></span></p>
<h3>The birth of HTML module</h3>
<pre class="brush: php;">
$dom = new DOMDocument('1.0', 'iso-8859-1');
$element = $dom-&gt;appendChild(new DOMElement('root'));
$element_ns = new DOMElement('pr:node1', 'thisvalue', 'http://xyz');
$element-&gt;appendChild($element_ns);
echo $dom-&gt;saveXML(); /* &lt;?xml version=&quot;1.0&quot; encoding=&quot;iso-8859-1&quot;?&gt;
&lt;root&gt;&lt;pr:node1 xmlns:pr=&quot;http://xyz&quot;&gt;thisvalue&lt;/pr:node1&gt;&lt;/root&gt; */
</pre>
<p>Imagine using the above format to create numerous nested elements&#8230; like nightmare. The first time I wanted to create dynamic html I realized that there were only two ways for me, either template engine or string crafting in source. However we know very well that as web is evolving we are heading towards micro-formats and CSS for styling, and using template engines nowadays is like using rock to cut a potato.</p>
<p>So for me the only was to start echo this and concat that to create html code. Instantly, the door bell rings and some old friends came to visit me. Mr. Mess, Mrs Insecurity with their ugly kids which I still haven&#8217;t learned their names. I realized that this is dead-end for me, I slammed the door and started thinking how on heck can I have simple dynamic html, in a secure, easy, portable, html version independant and fast way to use.</p>
<p>This was the start of HTMLTag, which is still missing many many things, but it is usable, safe and quite fast. Lets see how can this module help us to ease our path to successful programming. HTMLTag has almost the same usage like DOMElement, you have to create it by instantiating the class and append it to parent element, so to create a 2&#215;2 table you have to do something like this:</p>
<pre class="brush: php;">
// A 2x2 table creation
 $table = new HTMLTag('table',
     new HTMLTag('tr',
         new HTMLTag('td', 'row 1 col 1'),
         new HTMLTag('td', 'row 1 col 2')
     ),
     new HTMLTag('tr',
         new HTMLTag('td', 'row 2 col 1'),
         new HTMLTag('td', 'row 2 col 2')
     )
 );</pre>
<p>You will start thinking that I am idiot to create something that has the same disadvantages of what I am whining for. Well object instantiation process is not the best and there are some plans to improve it, but there is a faster way to do the same by using shortcut functions like <strong>tag()</strong>.</p>
<pre class="brush: php;">
// A 2x2 table using tag() shortcut
 $table = tag('table,
     tag('tr',
         tag('td', 'row 1 col 1'),
         tag('td', 'row 1 col 2')
     ),
     tag('tr',
         tag('td', 'row 2 col 1'),
         tag('td', 'row 2 col 2')
     )
 );
</pre>
<p>The above example showed how to created nested tags. It was done in the same and less number of characters that you would need to write html, so we are on the right direction. Apart from this, <strong>all</strong> the data are <strong>implicitly</strong> escaped preventing any script injections techniques or unwanted disformation of the output. There is off course an easy way to explicitly inject html code.</p>
<h3>Show me some magic</h3>
<p>You are probably expecting to see a miracle or something, but you will not find one here. However there are some tricks that should be mentioned. In the next paragraphs I will show you what HTMLTag is capable to do at the moment and how it can help you in development.</p>
<h4>Automatic rendering</h4>
<p>HTMLTag supports automatic rendering of tags by casting them to strings. When php demands the string format of the object it will render itself and all childs and return the html code.</p>
<p>Continuing with the above example, the following code will echo the html.</p>
<pre class="brush: php;">echo $table; // $table will call render() automatically and return html code</pre>
<p>There is also another shortcut function named <strong>etag()</strong> which is a shortcut of &#8220;<strong>echo tag()</strong>&#8221; so if you wanted to create the table and sent it to output buffer you could do:</p>
<pre class="brush: php;">etag('table,
     tag('tr',
         tag('td', 'row 1 col 1'),
         tag('td', 'row 1 col 2')
     ),
     tag('tr',
         tag('td', 'row 2 col 1'),
         tag('td', 'row 2 col 2')
     )
 );</pre>
<h4>Render in HTML or XHTML</h4>
<p>HTMLTag is capable to render HTML and XHTML compliant code depending on what it will be asked to do. Rendering mode can be controlled globally or per tag. By default HTMLTag renders in html mode, this can be changed by changing the <em>static</em> property <a href="http://phplibs.kmfa.net/api/HTMLTag/$default_render_mode">$default_render_mode</a> to &#8220;xhtml&#8221;.</p>
<p>So if you wanted to render table in xhtml it can be done like this</p>
<pre class="brush: php;">HTMLTag::$default_render_mode = 'xhtml';
echo $table;</pre>
<p>You will probably decide your rendering mode in one place and this must be done before any rendering occurs. You could even use different output modes depending on the agent that client is using.</p>
<p>Note that HTMLDoc is also checking HTMLTag::$default_render_mode for selecting document type.</p>
<h4>Automatic appending &#8211; <em>looking for better name</em> -</h4>
<p>HTMLTag supports a way to automatic append new tags without explicit telling them to append to a parent. This is controlled through a stack where you can push and pop parents and by using <strong>etag</strong> the tag is appended in the last pushed parent. The concept and api are simple, but can help a lot when creating dynamic number of elements.</p>
<p>So let&#8217;s see how can this be help full when creating a table of something</p>
<pre class="brush: php;">
tag('table')-&amp;gt;push_parent(); // This make tag table the active parent

foreach($products as $product)
{   etag('tr')-&amp;gt;push_parent();  // We use etag to append it to current
                                // parent and then push this to make it active parent
    etag('td', $product-&amp;gt;id);
    etag('td', $product-&amp;gt;name);
    etag('td', $product-&amp;gt;price);
    HTMLTag::pop_parent();      // Pop tr parent
}
echo HTMLTag::pop_parent();  // Pop table and echo it
</pre>
<p>This can be very helpful when creating nested formats, permitting to change parent or child structure without need to rewrite code of the affected ones. The source is also much cleaner and smaller than moving around variables and using append() for each tag.</p>
<h3>I have a dream&#8230;</h3>
<p>HTMLTag is more useful for me than the other solutions, but it is not what I really want and there is a lot of work before it is complete. What I am still missing is DOM features, although HTMLTag is DOM-like it misses all the good stuff like XPath etc. There is also a project named <a href="http://code.google.com/p/phpquery/">phpquery</a> which can work on DOM trees to select nodes using CSS3 rules, very much like jQuery, this however can&#8217;t work with HTMLTag unless it is converted to really DOMElement objects.</p>
<p>There are also sometimes that you want pure static html but it needs to interact with dynamic html like appending it to a object. The only way to do it is by creating static html using HTMLTag objects element by element, and this is an overkill. There should be a way to parse small chunks of html or even complete documents, like DOM does.</p>
<p>What I am thinking is make HTMLTag a wrapper arround DOMElement so that can have all features of HTMLTag and all features of DOMElement. This can be improved by implementing a way for even simpler dynamic object creation something like</p>
<pre class="brush: php;">$.TABLE(
     $.TR(
         $.TD('row 1 col 1'),
         $.TD(td', 'row 1 col 2')
     ),
     $.TR(
         $.TD('row 2 col 1'),
         $.TD('row 2 col 2')
     )
 );</pre>
<p>I am dreaming for HTML module that is a complete output device, injecting data directly from output buffer to html elements, or even directly parsing output buffer and creating trees. Searching replacing and modifying should be really trivial.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.kmfa.net/sque/2009/12/tinkering-with-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Honly.gr is here!</title>
		<link>http://blogs.kmfa.net/sque/2009/12/honly-gr-is-here/</link>
		<comments>http://blogs.kmfa.net/sque/2009/12/honly-gr-is-here/#comments</comments>
		<pubDate>Mon, 07 Dec 2009 12:40:19 +0000</pubDate>
		<dc:creator>sque</dc:creator>
				<category><![CDATA[Web Implementations]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[portfolio]]></category>

		<guid isPermaLink="false">http://blogs.kmfa.net/sque/?p=21</guid>
		<description><![CDATA[The past two weeks we started a rapid development on HONLY, a place for greek players of Heroes of Newerth game. The initial goal was to design a site from the scratch, create a user database and integrate SimpleMachines forums in it. Well we did it, in record time!
Dewfall did a great job designing a [...]]]></description>
			<content:encoded><![CDATA[<p>The past two weeks we started a rapid development on <a href="http://www.honly.gr">HONLY</a>, a place for greek players of <a href="http://www.heroesofnewerth.com/">Heroes of Newerth</a> game. The initial goal was to design a site from the scratch, create a user database and integrate SimpleMachines forums in it. Well we did it, in record time!</p>
<div id="attachment_26" class="wp-caption alignleft" style="width: 236px"><img class="size-medium wp-image-26" src="http://blogs.kmfa.net/sque/files/2009/12/honly1-226x300.png" alt="Screenshot from the honly.gr website" width="226" height="300" /><p class="wp-caption-text">Screenshot from the honly.gr website</p></div>
<p><em>Dewfall</em> did a great job designing a gamish style that reminds a lot of HoN but still has its own personality. The style is based on dark colors which suits more for this game.</p>
<p>This was the first time I was focusing only on translating raster image to CSS properties, without worrying about style itself. I must admit that it was a lot easier and I had all the time that I needed to tweak more CSS files, and not bother trying to figure which colors fits better using my untalented mind.</p>
<p>Apart from design there is a big part of development. <a href="http://www.honly.gr">HONLY</a> will not be just a forum but it will be a set of applications that will help players, like the ladder, mods repository, signature etc. At first I though to implement everything with <a href="http://phplibs.kmfa.net">PHPLibs</a> but then it seemed an overkill to create a forum from the scratch. So I grabbed the latest SimpleMachines forum (2.0 RC2) and started working on integrating it.</p>
<p>There were many issues to solve, like url routing, authentication realm, search, theme etc. Although not all of them were implemented, it is now clear to me how to set up them. The first thing I did was to solve url routing and with phplibs <a href="http://phplibs.kmfa.net/api/@0.2/Stupid">Stupid system</a> it was like one line of code. Next I had to figure out how would be the UI consistent in forum and in the rest of the site, and this was the hard part for me. I search around on internet and nothing helped me, so I made a copy of the default &#8220;Curve&#8221; SMF Theme and starting playing with it.</p>
<p>SMF has a very simple template system, no mysterious markup language or files with unknown format, it was straight forward PHP, which for me was easy to read and change. I started from changing the CSS files and after changing over 150 rules the site started looking in proper colors. Then I focused on rewriting the header from the scratch, I reimplemented a much richer but more minimal login form, powered by jquery for some simple effects. The final website was exactly what <em>Dewfall</em> had designed and this made us happy with this work.</p>
<p><em>Bite</em> is the domain name inventor and will be the main moderator of the forum too. He has already started creating groups, boards , and testing any side of the forum. Friends of us have registered their self on the site and the user base started growing.</p>
<p>We hope greek HoN players to love it and use it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.kmfa.net/sque/2009/12/honly-gr-is-here/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Hello world!</title>
		<link>http://blogs.kmfa.net/sque/2009/11/hello-world/</link>
		<comments>http://blogs.kmfa.net/sque/2009/11/hello-world/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 16:52:11 +0000</pubDate>
		<dc:creator>sque</dc:creator>
				<category><![CDATA[KmFa]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Although this is the default title of the first example post, it describes in the best laconic way the start of a blog about computer art. I prefer the term art because you don't just built things mechanically, you create new things and inspiration is a prerequisite just like art. There is also the consuming part which is a verification on this art but we will not discuss it here, there are a lot of blogs out there if you are interested on.
]]></description>
			<content:encoded><![CDATA[<p>Although this is the default title of the first example post, it describes in the best laconic way the start of a blog about computer art. I prefer the term <em>art</em> because you don&#8217;t just built things mechanically, you create new things and inspiration is a prerequisite just like art. There is also the consuming part which is a verification on this art but we will not discuss it here, there are a lot of blogs out there if you are interested on.</p>
<p>In this very tiny blog, posts will come about this art. Posts that will cover new technologies, every day problems, mistakes, tutorials and any other subject that must be touched. I will also try to define through your comments (I hope there will be some) the existence of KmFa, which is a project with no goals, no target, just a place to calm down the creative part of me.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.kmfa.net/sque/2009/11/hello-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
