<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2" -->
<rss version="2.0">
    <channel>
        <title>LVEngine Dev Blog</title>
        <description><![CDATA[News about PHP, technology, Web and LVEngine]]></description>
        <link>http://blog.lvengine.com/EN/rss/blog</link>
        <lastBuildDate>Wed, 08 Sep 2010 01:46:08 GMT</lastBuildDate>
        <generator>FeedCreator 1.7.2</generator>
        <item>
            <title>PS3 BD Remote in Linux for XBMC (on Gentoo)</title>
            <link>http://blog.lvengine.com/articles/ps3-bd-remote-in-linux-for-xbmc</link>
            <description><![CDATA[<p>
	A few weeks ago I started updating my gentoo Linux and all hell broke loose when emerge updated libpng to a new version not binary compatible with the old one. Libjpeg was also updated again and to join the party a new glibc. So all the system was recompiled (and a new kernel installed) and after some days of fixing things, the Bluetooth ps3 remote stopped working, as I suspected.</p>
<p>
	The problem relies on a good working solution for the ps3 bd remote. There are currently 2 methods:</p>
<ul>
	<li>
		using the bdremote (<a href="http://code.google.com/p/bdremote-ng/" rel="external">bdremote-ng</a> now)</li>
	<li>
		using the <a href="http://wiki.xbmc.org/index.php?title=HOW-TO_Setup_PS3_BD_Remote" rel="external">bluez HID</a> (with fake hid patch)</li>
</ul>
<p>
	Both methods have their advantages and disadvantages. I had a working setup with the first method for almost a year. I was using the old bdremote-ng 0.2 (before the fork in google code) - this needed the old bluez stack (version 4.41 I think) and after the update the bdremote stopped working. I started playing with the bdremote-ng 0.5 release but I couldn&#39;t get it to work. I then started playing with the second method and after one month I think I figured it out. It must vary according to the Bluetooth adapter (but I must say I didn&#39;t require any of it with the old bluez mode).</p>
<h2>
	Installing bluez for the ps3 bd remote on gentoo</h2>
<p>
	I&#39;m going to try to explain how to make this work in gentoo Linux. I&#39;m assuming xbmc is already installed and working.</p>
<p>
	For installing the bd remote I started with the <a href="http://wiki.xbmc.org/index.php?title=HOW-TO_Setup_PS3_BD_Remote" rel="external">wiki page</a> on this subject because it now contains all the pertinent information. If you have ubuntu or xbmclive check it out, these first instructions here are for gentoo users. Also, <a href="http://forum.xbmc.org/showthread.php?t=50717" rel="external">this</a> thread has a lot of information on the subject, but it&#39;s extensive.</p>
<p>
	First you need to make a patch in the default bluez ebuild. That&#39;s because if you don&#39;t you won&#39;t have all the buttons and the timeout patch (see <a href="http://kitlaan.twinaxis.com/projects/bluez-ps3remote/" rel="external">this</a> page). In order to build the things the gentoo way, you need to add a new portage overlay and make your new ebuild:</p>
<div style="font: 11px courier,courier new,verdana; background: none repeat scroll 0% 0% rgb(207, 207, 207); padding: 10px; margin: 10px 0pt;">
	# mkdir -p /usr/local/portage/net-wireless/bluez/files<br />
	# cd /usr/local/portage/net-wireless/bluez/files<br />
	# cp /usr/portage/net-wireless/bluez/files/* /usr/local/portage/net-wireless/bluez/files<br />
	# wget http://kitlaan.twinaxis.com/projects/bluez-ps3remote/bluez_ps3remote_4.69.diff<br />
	<br />
	Now you have the files from the original repo (they aren&#39;t all needed but it doesn&#39;t matter)<br />
	Now we need to copy and make the patch<br />
	<br />
	# cd /usr/local/portage/net-wireless/bluez<br />
	# cp /usr/portage/net-wireless/bluez/bluez-4.69.ebuild ./<br />
	Or copy whatever version you have currently available now<br />
	# nano bluez-4.69.ebuild<br />
	<br />
	Now you need to add the line<br />
	# epatch &quot;${FILESDIR}/bluez_ps3remote_4.69.diff&quot;<br />
	Before the &quot;eautoreconf&quot; in the configure section. It&#39;s line 61 in the 4.69 version.<br />
	<br />
	After that, save and quit and then execute this<br />
	# ebuild bluez-4.69.ebuild digest</div>
<p>
	This will make the proper manifests and &quot;make the ebuild ready for portage&quot;.<br />
	Now you need to add the overlay in make.conf :</p>
<div style="font: 11px courier,courier new,verdana; background: none repeat scroll 0% 0% rgb(207, 207, 207); padding: 10px; margin: 10px 0pt;">
	# nano /etc/make.conf</div>
<p>
	Add this line to the end of the edited file</p>
<div style="font: 11px courier,courier new,verdana; background: none repeat scroll 0% 0% rgb(207, 207, 207); padding: 10px; margin: 10px 0pt;">
	PORTDIR_OVERLAY=&quot;/usr/local/portage&quot;</div>
<p>
	Now try &quot;emerge -pv bluez&quot; and see if the bluez package is being installed from the unknown repository. If it is, emerge it. (you should be able to see the patch being applied before the autoconf runs)</p>
<p>
	After this is done, you should have a patched bluez installed! (restart bluetooth daemon first, /etc/init.d/bluetooth restart) Be aware, if a new version is released you need to patch it as well! That&#39;s why I put the bluez package masked in /etc/portage/package.mask for versions &gt;4.69.</p>
<h2>
	Connecting the remote</h2>
<p>
	Now we need to actually make the remote connect and work. At first I used the hidd (old Bluetooth hid daemon), but now it doesn&#39;t really work (it connects but the hcidump does weird things). So you need to use the <a href="http://kitlaan.twinaxis.com/projects/bluez-ps3remote/ps3pair.tar.gz" rel="external">ps3_pair</a> python script or use the blueman-applet .<br />
	For the ps3_pair.py script you just need to run it, press enter+start on the remote and see if it connects, if not try again.<br />
	For the blueman-applet you need to hit the search button and then press enter+start on the remote and see if it appears. If the remote is in the list, right click on it and click &quot;trust&quot; and then hit &quot;input services&quot;. After you do this the remote should be connected and working.<br />
	To see if it worked, cat /proc/bus/input/devices and see if the bd remote is there. Also see if the &quot;Handlers&quot; says &quot;kbd eventX&quot;. (The hidd program only connected the event and not the kbd so it doesn&#39;t work for this method, but it does work for the bdremote-ng method). If this doesn&#39;t work, see if you have the uinput module loaded, or compiled in the kernel.</p>
<p>
	To know if it really is working, use the hcidump utility. Emerge bluez-hcidump and the run &quot; hcidump -V -X &quot; and see if pressing the remote buttons sends commands to the Bluetooth adapter (the hcidump should start displaying data with dots and some sort of letter in between them). If it doesn&#39;t you start having problems, try messing with the hciconfig command (see below). Also try putting the bluetoothd in debug mode. Try this:</p>
<div style="font: 11px courier,courier new,verdana; background: none repeat scroll 0% 0% rgb(207, 207, 207); padding: 10px; margin: 10px 0pt;">
	&nbsp;# /etc/init.d/bluetooth stop<br />
	&nbsp;# ps aux | grep bluetooth<br />
	Check to see if the bluetoothd daemon is loaded, if it is kill it:<br />
	# killall bluetoothd<br />
	# bluetoothd -nd</div>
<p>
	This will start the bluetooth daemon in debug mode, you can now see a lot of usefull messages, connecting messages, event codes, etc. You can also use the hcidump -V -X in parallel with this.</p>
<p>
	For things to start working with xbmc, you need to know if the kernel has the &quot;event&quot; driver compiled or loaded as a module (modprobe uinput). Add &quot;modprobe uinput&quot; to /etc/conf.d/local.start and it should do the trick (this module should be auto-loaded by bluez, but better be sure it&#39;s there).<br />
	Also you need to make sure xf86-input-evdev is installed otherwise X will not recognize the remote (use &quot;emerge xf86-input-evdev&quot;) !<br />
	Xbmc should now receive the commands, try with the arrows that work out of the box. You should now try to configure the buttons to your liking.</p>
<h2>
	Configuring the BD Remote buttons</h2>
<p style="margin: 0px 0px 8px;">
	Now you need to configure the input.conf. This is the part where it&#39;s no longer gentoo specific. You can use my input.conf or you can configure your own input.conf. Also, in order to know what keys you are mapping you could need to make adjustments in the xbmc keymap. The new xbmc releases use a different path for the keymap.XML than the old ones. Now there&#39;s no keymap, you need to create a directory named keymaps and inside stick whatever .xml files you want.</p>
<p style="margin: 0px 0px 8px;">
	Here&#39;s my <a href="http://blog.lvengine.com/Imgs/articles/article_14/ps3.xml">ps3.xml</a> and my <a href="http://blog.lvengine.com/Imgs/articles/article_14/input.conf">input.conf</a>.<br />
	Input.conf should be in /etc/bluetooth and the ps3.xml should be in USER_DIR/.xbmc/userdata/keymaps/ . For example, I have a &quot;xbmc&quot; user that auto-logins and runs xbmc, so my xbmc settings are in /home/xbmc/.xbmc/userdata.</p>
<p style="margin: 0px 0px 8px;">
	The <a href="http://wiki.xbmc.org/index.php?title=HOW-TO_Setup_PS3_BD_Remote">wiki page</a> talks a little bit more on this input.conf and for the keyboard.xml so read this wiki page.</p>
<h2>
	Important final fix for my Bluetooth adapter</h2>
<p>
	One final thing, after my remote disconnected it did not auto-connect again. After endlessly trying to search for a solution, I discovered that doing</p>
<div style="font: 11px courier,courier new,verdana; background: none repeat scroll 0% 0% rgb(207, 207, 207); padding: 10px; margin: 10px 0pt;">
	hciconfig hdi0 lm ACCEPT,MASTER<br />
	hciconfig hci0 reset&nbsp;</div>
<p>
	solved this issue! Adding this command to the local.start solved the problems for me and the remote now always connects. Note that others say that doing &quot;hcidump hci0 reset&quot; solves this problem for them, but for me the adapter always starts in slave mode, and master mode seems to be the correct one. My friend&#39;s setup didn&#39;t need any of this, so it must vary between Bluetooth adapters.</p>
<h2>
	Final notes</h2>
<p>
	Hope this helps someone trying to install the PlayStation Bluetooth Remote. If you still can&#39;t make it work use lirc and a irda remote. My batteries only last for 3-4 weeks and that&#39;s a real pain (you can try with timeouts and stuff, but it will never get up to 1 year of usage with a &quot;legacy&quot; remote).</p>
<p>
	I&#39;m looking for a universal remote, but the prices don&#39;t justify for what I have already spent on this (also, it kinda works now =) ).<br />
	&nbsp;</p>
]]></description>
            <author>Luís Fernandes</author>
            <pubDate>Tue, 20 Jul 2010 17:02:40 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/ps3-bd-remote-in-linux-for-xbmc</guid>
        </item>
        <item>
            <title>E-Stat dashboard</title>
            <link>http://blog.lvengine.com/articles/e-stat-dashboard</link>
            <description><![CDATA[<p>
	Today I&#39;ve made a few changes on the e-stat dashboard, trying to correct a very elusive issue causing slow performance, specially found on clients accessing the backoffice with 3G connections.</p>
<p>
	The flash graphics tend to be very heavy working on transparent mode, I know this for a fact but is still a question of performance versus style, and I tend to go with the second.</p>
<p>
	<img alt="" src="http://blog.lvengine.com/Imgs/articles/article_12/beta_lvengine_com-2010-6-9-16-36.jpg" style="width: 650px; height: 377px;" /></p>
<p>
	The complete black background is interesting. I think I&#39;ll use it more in the future.</p>
]]></description>
            <author>Hugo Costa</author>
            <pubDate>Wed, 09 Jun 2010 15:37:13 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/e-stat-dashboard</guid>
        </item>
        <item>
            <title>Closing left navigation</title>
            <link>http://blog.lvengine.com/articles/closing-left-navigation</link>
            <description><![CDATA[<p>
	For quite some time I was planning on creating a simple open/close left navigation.</p>
<p>
	This is particularly useful when on very low resolution output devices. Luis had already warn me about a nasty issue on our forms when doing presentation events using a wall projector.</p>
<p>
	<img alt="" src="http://blog.lvengine.com/Imgs/articles/article_13/p1.jpg" style="width: 600px; height: 396px;" /></p>
<p>
	Left navigation on</p>
<p>
	<img alt="" src="http://blog.lvengine.com/Imgs/articles/article_13/p2.jpg" style="width: 600px; height: 396px;" /></p>
<p>
	Left navigation off</p>
]]></description>
            <author>Hugo Costa</author>
            <pubDate>Tue, 08 Jun 2010 17:25:39 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/closing-left-navigation</guid>
        </item>
        <item>
            <title>The magic of regexps</title>
            <link>http://blog.lvengine.com/articles/the-magic-of-regexps</link>
            <description><![CDATA[<p>
	Regular expressions are one of those wonders that usually programmers bitch about, mostly because to make extreme regexps you need to know what you are doing. I&#39;m no expert, although I did my fair share of regexps in&nbsp;<span class="short_text" id="result_box"><span style="background-color: rgb(255, 255, 255);" title="faculdade">college</span></span>, I don&#39;t consider myself a know-how person in this regexp matter and to add more problems with this regexp stuff, there&#39;s differences between the implementations (PHP, Perl,... but I&#39;m not going to talk about that here).&nbsp;But I do like to use it when it&#39;s needed and one of those places is finding stuff between &quot;tags&quot;.</p>
<p>
	There&#39;s <a href="http://www.catswhocode.com/blog/15-php-regular-expressions-for-web-developers" class="external">some</a> <a href="http://immike.net/blog/2007/04/06/5-regular-expressions-every-web-programmer-should-know/" class="external">blog</a> posts with some &quot;standard&quot; regexp that you can use, and the most notable one:</p>
<div style="font: 11px courier,courier new,verdana; background: none repeat scroll 0% 0% rgb(207, 207, 207); padding: 10px; margin: 10px 0pt;">
	function get_tag( $tag, $xml ) {<br />
	&nbsp;&nbsp;$tag = preg_quote($tag);<br />
	&nbsp;&nbsp;preg_match_all(&#39;{&lt;&#39;.$tag.&#39;[^&gt;]*&gt;(.*?).&#39;}&#39;,<br />
	&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $xml,<br />
	&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $matches,<br />
	&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PREG_PATTERN_ORDER); &nbsp;&nbsp;<br />
	&nbsp;&nbsp;return $matches[1];<br />
	}<br />
	&nbsp;</div>
<p>
	The issue you need to worry about with regexp in PHP is the modifiers, as explained in <a href="http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php" style="">this</a> page.<br />
	The flags that I use are:</p>
<ul>
	<li>
		u - I&#39;m a utf-8 developer now :p</li>
	<li>
		i - case insensitive is normally good</li>
	<li>
		m - the most important flag, eat newlines! This one is the reason I&#39;m making this post</li>
	<li>
		s - the S modifier makes the .*? eat all the chars including newlines!</li>
</ul>
<p>
	The default behaviour is to not ignore the newlines and that causes a lot of problems with source HTML that you may want to parse, because normally you add newlines at will.<br />
	So, my function to find text between 2 tags is:</p>
<div style="font: 11px courier,courier new,verdana; background: none repeat scroll 0% 0% rgb(207, 207, 207); padding: 10px; margin: 10px 0pt;">
	function get_between( $html, $tag_before, $tag_after ) {&nbsp;&nbsp;<br />
	&nbsp;&nbsp;$tag_before = preg_quote($tag_before);<br />
	&nbsp;&nbsp;$tag_after = preg_quote($tag_after);<br />
	&nbsp;&nbsp;$match = &#39;&#39;;<br />
	&nbsp;&nbsp;preg_match_all(&quot;/$tag_before(.*?)$tag_after/uis&quot;, $html, $match);<br />
	&nbsp;&nbsp;return $match[1];<br />
	}</div>
<p>
	Hope this helps someone, not wasting 2 hours trying to find out why the regexp does not work the way it should :)</p>
<p>
	EDIT: I was saying the &quot;m&quot; modifier was important, but I really use the &quot;s&quot; modifier witch, in my case, does the same behavior as the &quot;m&quot;.&nbsp;</p>
]]></description>
            <author>Luís Fernandes</author>
            <pubDate>Tue, 27 Apr 2010 11:24:20 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/the-magic-of-regexps</guid>
        </item>
        <item>
            <title>If your answer is unsolicited email campaigns then you are asking the wrong question!</title>
            <link>http://blog.lvengine.com/articles/if-your-answer-is-unsolicited-email-campaigns-then-you-are-asking-the-wrong-question</link>
            <description><![CDATA[<p>
	Most company&#39;s look at rogue email marketing like some kind of magical solution for gathering new clients and generating new income, this is of course, completely wrong.</p>
<p>
	First, quick facts:</p>
<ul>
	<li>
		having a list of 27000 emails doesn&#39;t mean 27000 persons, a big slice of this emails probably don&#39;t even exist, so you end up just sending blanks.</li>
	<li>
		27000 emails is certain for 27000 acquired emails from obscured sources with no respect for confirmation or rights of use, and believe me, even if you purchase from god itself, doesn&#39;t make using these emails legal.</li>
	<li>
		sending an email promoting your company&#39;s products and/or services to someone that hasn&#39;t asked for it, is spam, and everybody that says the contrary is a lyer.</li>
	<li>
		if you receive a spam email and don&#39;t like it, why do you think other people would like?</li>
</ul>
<p>
	When a person receives an email from some company informing them of their offerings, which they never signed up for, that person is probably going to resent the company and their offer. The name of that company is going to be associated with spam. Do you want your clients to know that you promote the use of spam?</p>
<p>
	Another reason is the relevance, even if you receive a newsletter with killer looks and great presentation, the chance you would be interested in it is very thin. And even if by a long shot the person is somewhat interested, he wouldn&#39;t trust to the point of business interaction.</p>
<p>
	But don&#39;t get me wrong, I don&#39;t hate newsletters. I receive newsletters, with information from company&#39;s and products that are interesting and relevant to me. I subscribed to receive and I like receiving them. Every day I work and develop software that can send these kind of campaigns. Campaigns that are directed to real persons that have consented and want to receive. Campaigns to persons that wrote their email in a subscribe box, and later confirmed their willingness to receive. And at any time can unsubscribe. For any reason.</p>
<p>
	Every day millions of spam emails flood the internet and our mailboxes, and we blame the senders. They are guilty for this of course, but they are also just like the dealer, they only exist because the junkie pays for them. What has to be changed is these company&#39;s way of thinking and their misguided illusions.</p>
<p>
	<img alt="" src="http://blog.lvengine.com/Imgs/articles/article_9/dilbert_spam.gif" style="width: 600px; height: 191px;" /></p>

]]></description>
            <author>Hugo Costa</author>
            <pubDate>Fri, 16 Apr 2010 14:51:06 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/if-your-answer-is-unsolicited-email-campaigns-then-you-are-asking-the-wrong-question</guid>
        </item>
        <item>
            <title>XBMC, the best media center available</title>
            <link>http://blog.lvengine.com/articles/xbmc-the-best-media-center-available</link>
            <description><![CDATA[<p>
	<a href="http://xbmc.org" rel="external">Xbmc</a>&nbsp;is one of the best open source softwares and the best endeavor at a media center software. It started as <a href="http://en.wikipedia.org/wiki/Xbox_Media_Player" rel="external">xbmp</a> in the xbox, and it could only be run if the xbox was hacked. It was one of the true benefits of having a hacked xbox because it was a cheap solution to bring media onto a TV. The most useful feature was the network connectivity and specially the use of <a href="http://www.samba.org/" rel="external">samba</a> to allow windows shares to seamlessly work out of the box. Xbmp then became XBMC when it was entirely re-written with a new skinning engine, that essentially would glue all the open source projects that make up xbmc.</p>
<p>
	The only problem back then was that Xbmc was based on the Microsoft XDK (witch is not public domain) and it only ran on the xbox. With the emerging MPEG-4 and HD resolutions, the XBOX cpu was going to cut it and the linux port started. The linux port then became the official xbmc release, and then came the ports <a href="http://wiki.xbmc.org/index.php?title=Installing_XBMC_for_Mac" rel="external">for</a> <a href="http://wiki.xbmc.org/index.php?title=XBMC_for_Mac_on_Apple_TV" rel="external">other</a> <a href="http://wiki.xbmc.org/index.php?title=Installing_XBMC_for_Windows" rel="external">systems</a>&nbsp;and also a <a href="http://wiki.xbmc.org/index.php?title=XBMC_Live" rel="external">live cd</a>.&nbsp;</p>
<p style="text-align: center; ">
	<img alt="" src="http://xbmc.org/wp-content/gallery/confluence/screenshot000.jpg" style="width: 320px; height: 180px; " />&nbsp;&nbsp;&nbsp;<img alt="" src="http://www.aeonproject.com/images/alaska/alaska_tvshowsroot.jpg" style="width: 320px; height: 180px; " /><br />
	XBMC Main Page - &quot;Confluence&quot; Skin and TV Shows in &quot;Alaska&quot; Skin</p>
<p>
	It&#39;s really one of the best open source projects because not only it uses a lot of other open source software, it also brings all the software into one beautiful package. It has an insane number of <a href="http://wiki.xbmc.org/index.php?title=XBMC_Features_and_Supported_Formats/Codecs#Supported_video_codecs:" rel="external">supported codecs</a>, <a href="http://wiki.xbmc.org/index.php?title=XBMC_Features_and_Supported_Formats/Codecs#Features_available_for_video_playback:" rel="external">network connectivity</a>, python scripts, libraries to organize your media and if it doesn&#39;t support something, just do <a href="http://wiki.xbmc.org/index.php?title=Basic_overview_of_the_XBMC_source_code" rel="external">a patch</a> and <a href="http://wiki.xbmc.org/index.php?title=HOW-TO_submit_a_patch" rel="external">submit it</a> !</p>
<p>
	It&#39;s got a bunch of spin-off, the most important one, <a href="http://www.boxee.tv/" rel="external">Boxee</a>&nbsp;witch tries to bring the social networks and internet streaming onto xbmc and it even as an official box coming from D-link called the <a href="http://www.boxee.tv/box" rel="external">Boxee Box</a>&nbsp;(the remote looks really cool! I wonder if we could buy it separately ...)&nbsp;</p>
<p>
	I&#39;ll be talking a bit about this piece of software because it became part of my everyday life. For now i&#39;m just going to talk about my last xbmc setup.</p>
<h2>
	Acer Revo with Xbmc Live</h2>
<p>
	A friend of mine tipped me that Jumbo (one of Portugal&#39;s super market&#39;s) wanted to clear stock of Acer Revo 3600 and was selling them for 200&euro; witch is a really nice price for a Nvidia ION PC. You could also try eBay or try to build your own HTPC like <a href="http://forum.zwame.pt/showthread.php?t=546163" rel="external">my friend&#39;s setup</a> witch I lend a hand in the software part. The thing about this Acer Revo is that it&#39;s already built, small and ready to go. The only drawback in this nettop pc is that it lacks the SPDIF or Optical output (fixed in the 3610). It would be a real shame not to have one of those. But if I had to pay the full price (300&euro;) I would build my own for a lot less.&nbsp;</p>
<p>
	The only thing I needed for this install is that XBMC could boot fast, shutdown fast and only needed XBMC and nothing more. The obvious choice is to use the XBMC Live CD and install it to the hard drive. There are a lot of scripts and howto&#39;s in the <a href="http://forum.xbmc.org/forumdisplay.php?f=110" rel="external">xbmc forums</a> with tips and guides on how to build linux installs but I wanted to see what the xbmc team was doing with live.</p>
<p>
	The nightlies of the xbmc live didn&#39;t work for me, after failing to install them I went with the <a href="http://xbmc.org/download/" rel="external">stable 9.11 iso</a>&nbsp;and it installed flawlessly. The Acer comes with windows vista, a recovery partition and another 120gb partition. As I don&#39;t need the hard disk space (this xbmc will use the network resources only) I decided to install in the separate partitions.</p>
<p>
	Installing was easy, just burn the iso (or make a bootable usb flash drive of the iso, with <a href="http://unetbootin.sourceforge.net/unetbootin-windows-latest.exe">this</a> utility) and boot it (either by going to the bios or by the boot selection of the drive). For this acer revo I had to go to the bios and select 512MB of ram for the GPU to use (ION uses only 256mb by default, 512mb is better).<br />
	After booting, select the &quot;Install to Hard drive&quot;. The ubuntu text install will shortly appear and you only need to select the hard drive you want to install it to. For me I deleted the third partition, added a extended partition and 2 logical: one for the &quot;/&quot; and the other for swap. If you don&#39;t know what this partition stuff is just use the &quot;Guided - use all disk&quot; and let the software format all your hard drive and make things simple.</p>
<p>
	After the installation was complete, the system rebooted right into xbmc. I liked the startup time, although few things can beat the startup time of the XBOX that this pc was going to replace. After I had it booting it was time to make the remote work. You can use a <a href="http://wiki.xbmc.org/index.php?title=Remote_Control_Reviews" rel="external">lot of remotes</a>&nbsp;that work out of the box, but for this setup I wanted to use the XBOX remote that I already had. The XBOX was going to be replaced so I don&#39;t need to use it anymore and as a plus, the users of the remote didn&#39;t had to learn an all new remote! So I <a href="http://wiki.xbmc.org/?title=HOW-TO_wire_your_XBOX_DVD-Remote_for_USB" rel="external">followed this steps</a>&nbsp;in order to make a USB cable out of the xbox irda adapter. With that done, I only needed to make the remote work following <a href="http://wiki.xbmc.org/?title=Lirc_Config_for_Xbox_DVD_Remote" rel="external">this steps</a>. After replacing 2 files, adding a line in the third one (over an ssh connection) and rebooting, the remote was working as it worked in the xbox.&nbsp;</p>
<p>
	The final step was adding a external DVD drive. This was because &quot;the user&quot; of this system wanted to read his burned dvds, that he could do with the xbox but not with this new HD ready pc. So I had a 5&quot; 1/4 external casing laying around, inserted there my old DVD burner and connected it over USB. This is also a downside of the acer pc in comparison to a HTPC that you could build. The case could be bigger but it could have an internal dvd (or blu-ray although xbmc does not support decrypting or playing the blu-ray menus). Also, the DVD&#39;s auto-mount automatically, as well as the memory card reader! Didn&#39;t test the eSata port but it should work as well.</p>
<p>
	After doing the usual configuration for xbmc, I had a fully working xbox replacement with little work at all!&nbsp;</p>
<h2>
	The final setup</h2>
<p>
	This is what the final setup looks like. I don&#39;t like the DVD drive but I&#39;m not complaining a lot. Also the spdif output is not a real issue for this system.</p>
<p style="text-align: center; ">
	<img alt="" src="http://blog.lvengine.com/Imgs/articles/article_8/xbmc_acer.jpg" /></p>
<p>
	I also made a little video in a hurry (with my crappy iphone video camera :D) that I posted on youtube.</p>
<p style="text-align: center; ">
	<object height="385" width="480"><param name="movie" value="http://www.youtube.com/v/f8cgOBbZXxM&amp;hl=en_US&amp;fs=1&amp;rel=0" /><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><embed allowfullscreen="true" allowscriptaccess="always" height="385" src="http://www.youtube.com/v/f8cgOBbZXxM&amp;hl=en_US&amp;fs=1&amp;rel=0" type="application/x-shockwave-flash" width="480"></embed></object></p>
<p>
	Expect more XBMC related posts soon!</p>
]]></description>
            <author>Luís Fernandes</author>
            <pubDate>Sat, 10 Apr 2010 13:23:46 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/xbmc-the-best-media-center-available</guid>
        </item>
        <item>
            <title>Windows Phone 7, IEMobile and jQTouch</title>
            <link>http://blog.lvengine.com/articles/windows-phone-7-iemobile-and-jqtouch</link>
            <description><![CDATA[<p>
	I've been watching the <a href="http://live.visitmix.com/Videos" rel="external">mix videos</a>, and it's really a great oportunity to learn, for most of us who don't have resources to go to these conferences.</p>
<p>
	I've watched the <a href="http://live.visitmix.com/MIX10/Sessions/CL23" rel="external">ie mobile presentation</a> and decided to start to understand why our mobile app wouldn't even work. <br />
	IE support for jqtouch is <a href="http://groups.google.com/group/jqtouch/browse_thread/thread/33d26716fd713cf1" rel="external">nil</a>, and the developer only cares about iPhone (and that's ok, it's suposed to), but I wanted it to at least work the basic functionality. </p>
<p>
	<img alt="" src="http://blog.lvengine.com/Imgs/articles/article_7/wp7_1.jpg" style="width: 320px; height: 534px; " /></p>
<p>
	IEmobile now displays more sites correctly using jquery and other js libs as well, so I didn't quite understand why it wouldn't work with jQTouch. IE mobile User-Agent reports as using Trident 3.1 rendering engine, witch seams something between ie7 and ie8, so I launched ie8, put the document standards in ie7 mode and tried to debug the JavaScript. I noticed IE just ignored the js file if the type was application/x-javascript. After I changed to the normal text/JavaScript, jqtouch started to work. It does works in IEmobile after all!</p>
<p>
	<img alt="" src="http://blog.lvengine.com/Imgs/articles/article_7/wp7_3.jpg" style="width: 320px; height: 534px; " /> <img alt="" src="http://blog.lvengine.com/Imgs/articles/article_7/wp7_4.jpg" style="width: 320px; height: 534px; " /></p>
<p>
	But it's still ie7, so the css and animations are all screwed up. I set up a different css so I can hack it up, but there are two css3 properties needed for jqtouch css to display correctly: <a href="http://www.css3.info/preview/border-image/" rel="external">border-image</a> and <a href="http://www.css3.info/preview/rounded-border/" rel="external">border-radius</a>. The border-radius is not important, but the border-image is really important for the "buttons".</p>
<p>
	So we can't have buttons, but the interface for windows phone 7 is really different from the standard "apple" look that other phones tend to copy. So people using a windows phone would feel uncorfortable using a webapp that looks like an iPhone app. That's an issue I need to address, and my first thought is to try and make a css file that looks like the default native phone7 UI.</p>
<p>
	<img alt="" src="http://blog.lvengine.com/Imgs/articles/article_7/wp7_2.jpg" style="width: 320px; height: 534px; " /></p>
<p>
	Going to more intensive Javascript sites, like our BackOffice (it's not formatted for a mobile experience, it's just an example of a oversized jquery app), IE mobile seems to work ok, although we don't know about the real speed until we have some hardware in our hands, but overall it doesn't look that bad after all. Also, the IEmobile isn't finished yet, so we can always hope for some of these things implemented, and also the touch events and a JS console =)</p>
]]></description>
            <author>Luís Fernandes</author>
            <pubDate>Thu, 25 Mar 2010 13:50:36 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/windows-phone-7-iemobile-and-jqtouch</guid>
        </item>
        <item>
            <title>About the jQuery 1.4 and delegate</title>
            <link>http://blog.lvengine.com/articles/about-the-jquery-14-</link>
            <description><![CDATA[<p>
	Yesterday I remembered something that I saw on the list of new stuff of jQuery 1.4, called <a class="external" href="http://api.jquery.com/delegate/"><em>delegate()</em></a>, this attaches a handler to events on one or more elements, that propagates to the future, which is particularly usefull on html called with ajax calls.</p>
<div style="font: 11px courier,courier new,verdana; background: none repeat scroll 0% 0% rgb(207, 207, 207); padding: 10px; margin: 10px 0pt;">
	$(&quot;table&quot;).delegate(&quot;td&quot;, &quot;hover&quot;, function(){<br />
	$(this).toggleClass(&quot;hover&quot;);<br />
	});</div>
<p>
	This method is new, only for jquery 1.4 but I saw that a similar method called <a class="external" href="http://api.jquery.com/live/"><em>live()</em></a> exists even in 1.3:</p>
<div style="font: 11px courier,courier new,verdana; background: none repeat scroll 0% 0% rgb(207, 207, 207); padding: 10px; margin: 10px 0pt;">
	$(&#39;.clickme&#39;).bind(&#39;click&#39;, function() {<br />
	&nbsp; // Bound handler called.<br />
	});</div>
<p>
	I tested to see the engine2 backoffice using the jquery 1.4 but it was a disaster on all the current plugins in use. I will have to go trough each one. There could the case that their use wont be required. jQuery 1.4 brings some new stuff like autocomplete and buttons that i intend to test. Nonetheless, the upgrade is schedule to the near future.</p>
]]></description>
            <author>Hugo Costa</author>
            <pubDate>Thu, 25 Mar 2010 11:13:45 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/about-the-jquery-14-</guid>
        </item>
        <item>
            <title>Installing ZendDebugger for PHP in Mac OS X Snow Leopard (Memcache and PostgreSQL also)</title>
            <link>http://blog.lvengine.com/articles/installing-zenddebugger-in-mac-os-x-snow-leopard</link>
            <description><![CDATA[<p>
	By now you should know that we have this project, LVEngine, that uses PostgreSQL, Memcache and PHP. I have a 64bits iMac with Snow Leopard and by default it brings PHP 5.3.0 installed. That's great! But it doesn't come with all the extensions... but Apple was kind enough to bundle the php dev utilities as well. So we can build our own extensions.</p>
<p>
	Previously on Leopard I used the PHP pack by entropy.ch, but it's not compatible anymore and I wanted php 5.3.0 also. So with a little googling I found <a href="http://www.gnegg.ch/2009/08/snow-leopard-and-php/">this</a> article explaining how to build and compile the postgresql extension. But i also needed memcache. This was not a problem because I just followed what we allways do, ( phpize, configure, make , make install) and it works.</p>
<p>
	But today a new problem arises. I want ZendDebugger working again! So i've made a few modifications and now i'm writing this so I can remember it in the feature. The first problem about zenddebbuger is that the .so file is only available in ZendStudio 7 (I can't find the link for the 5.3.0 .so file in the normal place, there's only support for 5.2). But if we download zendstudio 7 trial, install it, we can find the file we are looking for under /Applications/Zend/Zend Studio -7.0.2/plugins/org.zend.php.debug.debugger.macosx_5.2.26.v20090817/resources/php53/ZendDebugger.so . We just need to copy it to somewhere in our filesystem and remember where it is. I just copied it to /Applications/Zend for the time being. Also another big problem with ZendDebugger.so is that it's a 32bits .so library! We need to make some changes in order for this to work... So now we begin:</p>
<h2>
	Installing pgsql.so extensions</h2>
<p>
	Based on <a href="http://www.gnegg.ch/2009/08/snow-leopard-and-php/">this</a> article, i'll write my own instructions now:</p>
<ol>
	<li>
		Download the sources for PostgreSQL version you want to support, in my case 8.4.0 is just fine</li>
	<li>
		Open terminal and use the following commands:</li>
	<li>
		<div class="code">
			$ tar zxf postgresql-[version].tar.bz2<br />
			$ cd postgresql-[version]<br />
			$ CFLAGS="-arch i386 -arch x86_64" ./configure --prefix=/usr/local/mypostgres<br />
			// make will fail sooner or later because postgres build scripts can't handle building an universal binary server, but the compile will progress enough for us to now build libpq. <br />
			$ make -C src/interfaces<br />
			$ sudo make -C src/interfaces install<br />
			$ make -C src/include<br />
			$ sudo make -C src/include install<br />
			$ make -C src/bin<br />
			$ sudo make -C src/bin install</div>
	</li>
	<li>
		<p>
			Now we download the php 5.3.0 source code, from php.net</p>
	</li>
	<li>
		<p>
			Open Terminal and type the following commands:</p>
	</li>
	<li>
		<div class="code">
			$ tar -zxf php-5.3.0.tar.bz2<br />
			$ cd php-5.3.0/ext/pgsql<br />
			$ phpize<br />
			$ CFLAGS="-arch i386 -arch x86_64" ./configure --with-pgsql=/usr/local/mypostgres<br />
			$ make -j4<br />
			$ sudo make install<br />
			$ cd /etc<br />
			$ cp php.ini-default php.ini</div>
	</li>
	<li>
		<p>
			Now edit the php.ini file and add extension=pgsql.so</p>
	</li>
</ol>
<p>
	 </p>
<p>
	The files should live in /usr/lib/php/extensions/no-debug-non-zts-20090626/ . A little digging with "file" command and we can see a different thing different that I did:</p>
<p>
	 </p>
<div class="code">
	/usr/lib/php/extensions/no-debug-non-zts-20090626/pgsql.so: Mach-O universal binary with 2 architectures<br />
	/usr/lib/php/extensions/no-debug-non-zts-20090626/pgsql.so (for architecture i386):<span class="Apple-tab-span" style="white-space:pre"> </span>Mach-O bundle i386<br />
	/usr/lib/php/extensions/no-debug-non-zts-20090626/pgsql.so (for architecture x86_64):<span class="Apple-tab-span" style="white-space:pre"> </span>Mach-O 64-bit bundle x86_64</div>
<p>
	We now have a 32bit and 64bit pgsql.so extension! Without this, ZendDebugger will not work.</p>
<h2>
	Installing memcache.so extension</h2>
<p>
	We have the memcached pecl extension, but we need the older memcache pecl extension because of the 32bits/64bits thing. So off we go, this one is faster:</p>
<ol>
	<li>
		Download the stable 2.2.5 pecl memcache extension from <a href="http://pecl.php.net/package/memcache">here</a></li>
	<li>
		Type the following commands:</li>
	<li>
		<div class="code">
			$ tar -zxf memcache-2.2.5.tgz<br />
			$ cd memcache-2.2.5<br />
			$ phpize<br />
			$ CFLAGS="-arch i386 -arch x86_64" ./configure<br />
			$ make<br />
			$ make install</div>
	</li>
	<li>
		<p>
			Now you need to add extension=memcache.so to the /etc/php.ini file once again</p>
	</li>
</ol>
<p>
	Now you should verify that you have the two extensions loaded in PHP. Just call the normal phpinfo() and check it the extensions are loaded.</p>
<h2>
	Striping the fat out of Apache</h2>
<p>
	The problem now lies with the 32bits side of ZendDebugger. If you don't want ZendDebugger, then you at least have 2 extensions compiled for universal support. But if you do want ZendDebugger working you need to run Apache in 32bit mode. You have 2 choices:</p>
<ol>
	<li>
		You run httpd in 32bit mode</li>
	<li>
		You strip the 64bit part of the binary and leave only the 32bits</li>
</ol>
<p>
	The first method is more unobtrusive, but you need to start apache manually (or make a startup script). In order to run it you need to issue the following command:</p>
<div class="code">
	$ <span class="Apple-style-span" style="font-family: Helvetica, tahoma, sans-serif; font-size: 12px; ">sudo arch -i386 /usr/sbin/httpd</span></div>
<p>
	This will run httpd in 32bits mode (and any other binary as well). But I don't want to do this all the time. So I just strip the 64bits part of httpd. </p>
<p>
	So if you want to do the second method you issue the following commands in terminal:</p>
<div class="code">
	$ <span class="Apple-style-span" style="font-family: monospace, tahoma, sans-serif; font-size: 12px; line-height: 18px; white-space: pre; ">sudo lipo /usr/sbin/httpd -thin i386 -output /usr/sbin/httpd.i386<br />
	$ sudo mv /usr/sbin/httpd /usr/sbin/httpd.ub<br />
	$ sudo ln -s /usr/sbin/httpd.i386 /usr/sbin/httpd</span></div>
<p>
	Now you can un-tick and tick the "Web Sharing" in System Preferences and check if apache is running. Remember, if you update Apache, the symlink will be destroyed. You need to issue the 3 commands again for ZendDebugger to start working again.</p>
<h2>
	Installing ZendDebugger.so</h2>
<p>
	Now we can go for the more difficult part, making Zend Debugger work with eclipse. For now lets try make it run in Apache.</p>
<p>
	First you need to download ZendStudio, install it and copy the .so file to whatever you like, like i said in the beginning of the post.</p>
<p>
	You need to edit the php.ini and add the following lines near the end:</p>
<div class="code">
	[Zend]<br />
	; Zend Debugger madness<br />
	zend_extension=/Applications/Zend/ZendDebugger.so<br />
	zend_debugger.allow_hosts=127.0.0.1,192.168.169.1, 192.168.1.23, 172.16.62.1<br />
	zend_debugger.expose_remotely=always<br />
	zend_debugger.connector_port = 10013<br />
	; Zend Debugger madness end<br />
	 </div>
<p>
	Add the appropriate IP addresses to allow_hosts and the correct path for ZendDebugger.so . Now restart "Web Sharing" and see if ZendDebugger is running. You can check the version information, it should display something like this:</p>
<div class="code">
	This program makes use of the Zend Scripting Language Engine:<br />
	Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies<br />
	    with Zend Debugger v5.2, Copyright (c) 1999-2009, by Zend Technologies</div>
<p>
	If you see this line, all is well and you have ZendDebugger installed. You just need to configure Eclipse now!</p>
<h2>
	Configuring Eclipse for Zend Debugger</h2>
<p>
	I use Eclipse PDT.<br />
	The ZendDebugger says to copy dummy.php in the root of the webserver, but it doesn't seem to affect me much, but it doesn't hurt so copy it. In Eclipse you just need to hit "Debug Configurations", create a new PHP Web Page configuration, select Zend Debugger for the "server debugger" and select the file you want to debug. Also check the PHP Server Configuration menu. My "Default PHP Web Server" has a Path Mapping mapped to a local project (so eclipse knows what's the root of the project, check screenshot).</p>
<p>
	<img alt="" src="http://dev.lvengine.net/Imgs/articles/article_5/Screen shot 2010-03-24 at 2.51.09 PM.png" style="width: 605px; height: 396px; " /></p>
<p>
	Auto-generate normally works for most of the PHP websites, but LVEngine 2 has a special .htaccess trickery so I need to change the parameters.</p>
<p>
	Here's a screenshot of my Debug Configuration. You just need to set some breakpoints and hit debug!</p>
<p>
	<img alt="" src="http://dev.lvengine.net/Imgs/articles/article_5/Screen shot 2010-03-24 at 2.49.58 PM.png" style="width: 800px; height: 645px; " /></p>
<p>
	And here's me trying to debug a infinite loop somewhere in the code....</p>
<p>
	<img alt="" src="http://dev.lvengine.net/Imgs/articles/article_5/Screen shot 2010-03-24 at 2_53_32 PM.png" style="width: 800px; height: 578px; " /></p>
<p>
	Happy Mac PHP / PostgreSQL / Memcache Coding/Debugging ! =)</p>
]]></description>
            <author>Luís Fernandes</author>
            <pubDate>Wed, 24 Mar 2010 10:28:33 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/installing-zenddebugger-in-mac-os-x-snow-leopard</guid>
        </item>
        <item>
            <title>Rants, complaints and more rants</title>
            <link>http://blog.lvengine.com/articles/rants-complaints-and-more-rants</link>
            <description><![CDATA[<h2>
	Windows Phone 7</h2>
<p>
	First things first: windows phone 7. When I heard about this mythical new version three years ago I was skeptical that microsoft would in fact just dump all their third party software and start over (as they should). They throw version 6.0, 6.1, 6.5 and said that the new version would be the one they were waiting for. I was afraid it would be another iPhone copy but hoped for something new... And they delivered. At first glance the new user interface is a real refresh over what we&#39;ve been seeing in phones so far, it&#39;s fresh, looks and feels &quot;cool&quot; (like the iPhone three years ago). The other important factor is games. Microsoft has a good development kit for the xbox and they want to bring merge it with the mobile industry. Smart as there are allready a lot of programmers and companies who know how to do that, it&#39;s only a matter of time now.<br />
	However, we have more details about the specifics of this new operating system:<br />
	- xna and silverlight based apps. So all of the former apps that people built for windows mobile (sorry, I meant &quot;mobile classic&quot;) are useless, witch means apple now has a 3 year advantage over third party apps, and what about all those business apps? Guess they don&#39;t really matter now huh? (I&#39;m sorry truewind, pocket pc phc, Moving 2 U and all)<br />
	- no copy paste support. Really? I mean, after Microsoft mocked apple about now being able to cut and paste and how &quot;crucial&quot; that was for a smartphone?<br />
	- no multitasking. I should laugh really hard about this one... Allthough I don&#39;t think multitasking is really that important and it makes the phone experience more confusing and worse (battery for one thing, and a phone is not a device that NEEDS various apps open at the same time in 90% of the cases, but that&#39;s another rant for another post)<br />
	- Internet explorer<br />
	We finally got to the point that really bugs me. For two things: xna and silverlight development means that there won&#39;t be an opera / firefox or some webkit based browser running on phone7 ( but I hope someone proves me wrong, maybe opera in xna?) and that means we are stuck with ie. I&#39;ve downloaded the development kit for windows, and it comes with a IE build. Websites look a lot better thankfully, but it still lags <strike>way</strike> behind other mobile browsers. <strike>We&#39;re developing this little app called mobile uplink that uses jQuery / jQtouch and alltough it&#39;s only for iPhone we&#39;ve managed to get it working with android, palm pre, opera (in nokias and windows mobile) and maemo&#39;s firefox. All of those platforms worked out of the box (minus Css things) without any fuss in the JavaScript code, but IE just doesn&#39;t do anything.</strike> I need to look further into this but I&#39;m hoping that I&#39;m wrong and it could be easely fixed, but I feel that&#39;s not the case and it will be more of a pain...</p>
<h2>
	Internet explorer 9</h2>
<p>
	Finnaly some good news! It seems ie9 will support HTML5 video, css3 selectors and a new JavaScript engine that works! Too bad that it still crashes in our backoffice but that&#39;s another battle. Altough this is good news in the &quot;war against flash&quot;, and that leads me thinking where silverlight comes into play...<br />
	<br />
	And why does Mozilla want to push ogg so badly? I know about the H.264 patents,free codecs and what that could mean for them, but for the time being they could very well implement H.264 support and leave ogg support as well!<br />
	This could be the last thing to overcome for mass html5 video adoption and the end of flash video.<br />
	<br />
	But the second last thing that we need to fight is IE6 and windows xp. The thing just won&#39;t die!! Those who upgraded to ie7, chances are they are allready at ie8 and will be in ie9 (courtesy of windows updates), but ie6 is the last piece missing (altough not for the html5 video, because we can allways revert to the flash player for ie6 users). I&#39;m talking about making a website that doesn&#39;t take twice the time to design because ie doesn&#39;t want to play ball. Specially those round corners and email clients rendering engine whose-name-we-shall-not-speak (I know it&#39;s not really ie, but it can be even worse than ie).</p>
<p>
	&nbsp;</p>
<p>
	EDIT: IEmobile is advancing after all, it was just a little annoyance, but it still not up to mobile browsers <em>top</em> standards, hopefully it&#39;s getting there. And btw, about copy &amp; paste and multitasking: it&#39;s better that microsoft wants to do something right and not jump the gun, than throw something bad into the mix.</p>
]]></description>
            <author>Luís Fernandes</author>
            <pubDate>Wed, 17 Mar 2010 10:27:44 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/rants-complaints-and-more-rants</guid>
        </item>
        <item>
            <title>Website de Documentação</title>
            <link>http://blog.lvengine.com/articles/website-de-documentacao---primeiro-post</link>
            <description><![CDATA[<p>
	Nas próximas semanas vamos começar a introduzir mais conteudos sobre como programar um website no <a href="http://www.lvengine.com">LV Engine</a>.</p>
<p>
	Neste momento a documentação automatica está funcional e com um novo template extjs (cortesia de <a href="http://zymengine.com/dev/news/30-phpdoc-extjs-converter-template">Zym</a>). A documentação automática vai ser muito util para quem tiver de programar na framework LV, ou em layouts com PHP. Esta documentação pode ser vista no <a href="http://dev.lvengine.net/docs/frontengine-api ">FrontEngine API</a>.</p>
<p>
	 </p>
<p>
	E já agora, em comemoração do meu primeiro post, aqui vai um comic meu favorito do Dilbert:</p>
<p>
	<img alt="" src="http://dev.lvengine.net/Imgs/articles/article_3/dilbert20071832630111.gif" style="width: 600px; height: 210px;" /></p>
]]></description>
            <author>Luís Fernandes</author>
            <pubDate>Fri, 26 Feb 2010 10:27:18 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/website-de-documentacao---primeiro-post</guid>
        </item>
        <item>
            <title>Novos icons do site</title>
            <link>http://blog.lvengine.com/articles/novos-icons-do-site</link>
            <description><![CDATA[<p>
	Hoje alterei os "favicons" tanto do site público como o Backoffice, que estavam a usar o mesmo icon, e que por acaso já contavam com mais de 1 ano.<img alt="" src="http://dev.lvengine.net/Imgs/articles/article_2/favicons.png" style="float: left; margin: 0pt 10px 10px 0pt;" /></p>
<p>
	O LV continua com o tipo de letra oficial, cortei o "v" para lhe dar algum dinamismo. O do site tem um gradiente em azul claro, o BO é o mesmo gradiente mas invertido e azuis numa escala mais escura.</p>
]]></description>
            <author>Hugo Costa</author>
            <pubDate>Mon, 22 Feb 2010 10:18:37 GMT</pubDate>
            <guid>http://blog.lvengine.com/articles/novos-icons-do-site</guid>
        </item>
    </channel>
</rss>
