<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>frontend &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://en.wordpress.com/tag/frontend/</link>
	<description>Feed of posts on WordPress.com tagged "frontend"</description>
	<pubDate>Thu, 03 Dec 2009 11:45:22 +0000</pubDate>

	<generator>http://en.wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Ajax vs. Flex - making the choice]]></title>
<link>http://ricardo.getgears.com/2009/11/16/ajax-vs-flex-making-the-choice/</link>
<pubDate>Mon, 16 Nov 2009 11:31:54 +0000</pubDate>
<dc:creator>ricardo</dc:creator>
<guid>http://ricardo.getgears.com/2009/11/16/ajax-vs-flex-making-the-choice/</guid>
<description><![CDATA[Back when I joined Flumotion, my team was given the choice between implementing a HTML/JavaScript or]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Back when I joined Flumotion, my team was given the choice between implementing a HTML/JavaScript or a Flex powered back office. Most developers I know would immediately turn down the later for a number of reasons:</p>
<ul>
<li> Platform portability, notably turning down mobile users.</li>
<li> Flash plugin sometimes appears to only work properly on Windows machines, raising performance issues.</li>
<li> Commitment to a proprietary technology.</li>
<li> Smaller choice of developers and community resources.</li>
<li> What is it with Adobe and their beloved RIA buzzword anyway? I don&#8217;t see anyone else using it!</li>
<li> Obviously not as trendy as Ajax.</li>
</ul>
<p>among others that spiced up the discussion.</p>
<p>But there were some particular reasons to strongly consider it in our specific case. For one, we would be working with media management, editing and playback of video, a technology closely tied with Flash at the moment, so it was really about going with Ajax with some Flex components or just Flex alone. Truth is I already had my share of pain working on projects with a heavy Ajax interface, from what our Product Manager expectations of the product, I could see those memories coming to light again. Furthermore, and more on a personal perspective, I felt tempted to give it a try and only afterward draw my conclusions. Based on that, I handed my vote out to Flex.</p>
<p>A few months later, I have a better shaped opinion, I had some nice surprises, as well as really disappointing ones!</p>
<p>I need to give credit to <a title="PyAMF" href="http://pyamf.org/" target="_blank">PyAMF</a> for the achievement of making Python and Django integration the easiest possible. On very few occasions I had to step out of my backend bubble and worry about issues regarding frontend. The AMF protocol itself helped here, a little but nice example feature I recall is that datetimes are always passed in UTC, being the Flash plug-in responsible of handling the offset, based on the client timezone system setting. Not having to worry about details such as these was a joy and made the development process faster, allowing me to focus on backend performance. In the end I was developing a Python request handler, very far from your regular Django application, using little more than the ORM and URL handlers.</p>
<p>But there was a few downturns along the way. First, only the fact that code was compiled made me feel in a strange place a lot of times. Every small fix implies a full build and update on production code. I believe that hot fixing should be avoided at all cost, but it is still needed sometimes and this only made it harder, heavier and even more dangerous. Then of course there were the problems of the Flash plugin on Linux, it is really frustrating for a guy that stays 80% of his time on a console having to deal with Firefox taking away all system resources the minute you open something Flash making it virtually impossible to test without booting up a virtual machine. On AMF itself, I never quite understand for the data transferred to come &#8220;encrypted&#8221; in a weird format, it certainly didn&#8217;t made it feel safer or smaller. Also, the fact that each messaged carried a message ID and time, made it harder to smart cache responses. Although I came up with a interesting cache decorator for AMF requests that I will post in the future, I would have preferred to do it on a lower level so that I wouldn&#8217;t have to waste time decoding the AMF requests (yes, as fast as it is it&#8217;s always unneeded overhead).</p>
<p>But the one thing that really annoyed me was the cross domain sandbox issue. As the project architect, it was very frustrating being forced to spread several copies of a crossdomain.xml file that makes very little sense to me. To date, no one as yet succeeded in properly justifying it and proving me wrong, but I will get into this issue on a following post, don&#8217;t worry.</p>
<p>As a conclusion, in the context of this specific project, I believe we made the right choice. Still, I very much doubt that we will see Adobe&#8217;s &#8220;Rich Internet Applications&#8221; taking over Ajax anytime soon. The new media support on HTML5 is here to confirm that. Rare examples like Google Wave make me believe that given the right developers (I presume), it is possible to make very nice JavaScript powered applications.</p>
<p>That said, on a future decision, my vote would again depend on the project details and target audience, but in most cases I can think of at the moment I would have to go with Ajax.</p>
<p>If you have a similar experience with a different outcome, I would very much like to hear you!</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[The Default theme]]></title>
<link>http://cmsdev.wordpress.com/2009/11/04/the-default-theme/</link>
<pubDate>Wed, 04 Nov 2009 16:03:17 +0000</pubDate>
<dc:creator>LHK07</dc:creator>
<guid>http://cmsdev.wordpress.com/2009/11/04/the-default-theme/</guid>
<description><![CDATA[Just like evry other CMS has a default theme which is the first page the user sees after installing ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Just like evry other CMS has a default theme which is the first page the user sees after installing the CMS on the server, we also needed a default theme.</p>
<p>A default theme must be very simple to use and has minimal requirements on the part of the end user.We prefered to have a more shiny theme instead of a totally vanilla theme.So I searched the net and found a cool theme named<a href="http://www.ndesign-studio.com/resources/wp-themes/glossyblue/"> Glossy Blue </a>by ndesign-studio.After some tweaking of the theme,here is what we got:</p>
<p style="text-align:center;">
<p style="text-align:center;"><img class="aligncenter" title="screenshot" src="http://cmsdev.wordpress.com/files/2009/11/screenshot.png" alt="screenshot" width="300" height="225" /></p>
<p style="text-align:center;">
<p style="text-align:center;">
<p style="text-align:center;">
<p style="text-align:center;">
<p>There are a lot of other themes which will be made for the project and my team is working on themes.We plan to build theme for photoblogs,video/podcasts , magazine etc&#8230;All suggestions are welcome.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Немного javascript: измерение времени загрузки скрипта]]></title>
<link>http://appengine.com.ua/2009/11/03/and-finally-javascript/</link>
<pubDate>Tue, 03 Nov 2009 09:33:10 +0000</pubDate>
<dc:creator>dchaplinsky</dc:creator>
<guid>http://appengine.com.ua/2009/11/03/and-finally-javascript/</guid>
<description><![CDATA[По ходу разработки проекта столкнулся с необходимостью замерять чистое время загрузки скрипта с CDN ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>По ходу разработки проекта столкнулся с необходимостью замерять чистое время загрузки скрипта с CDN средствами javascript.</p>
<p>Загрузка <strong>и исполнение</strong> скрипта меряется довольно легко:</p>
<pre style='color:#000020;background:#f6f8ff;'><span style='color:#200080;font-weight:bold;'>function</span> loadAndExecuteScript<span style='color:#308080;'>(</span>url<span style='color:#308080;'>,</span> callback<span style='color:#308080;'>)</span><span style='color:#406080;'>{</span>
      <span style='color:#200080;font-weight:bold;'>var</span> script <span style='color:#308080;'>=</span> document<span style='color:#308080;'>.</span>getElementsByTagName<span style='color:#308080;'>(</span><span style='color:#1060b6;'>'script'</span><span style='color:#308080;'>)</span><span style='color:#308080;'>[</span><span style='color:#008c00;'>0</span><span style='color:#308080;'>]</span><span style='color:#406080;'>;</span>

      script<span style='color:#308080;'>.</span>type <span style='color:#308080;'>=</span> <span style='color:#1060b6;'>"text/javascript"</span><span style='color:#406080;'>;</span>

      <span style='color:#200080;font-weight:bold;'>if</span> <span style='color:#308080;'>(</span>script<span style='color:#308080;'>.</span>readyState<span style='color:#308080;'>)</span><span style='color:#406080;'>{</span>  <span style='color:#595979;'>//IE</span>
          script<span style='color:#308080;'>.</span>onreadystatechange <span style='color:#308080;'>=</span> <span style='color:#200080;font-weight:bold;'>function</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#406080;'>{</span>
              <span style='color:#200080;font-weight:bold;'>if</span> <span style='color:#308080;'>(</span>script<span style='color:#308080;'>.</span>readyState <span style='color:#308080;'>==</span> <span style='color:#1060b6;'>"loaded"</span> <span style='color:#308080;'>&#124;&#124;</span>
                      script<span style='color:#308080;'>.</span>readyState <span style='color:#308080;'>==</span> <span style='color:#1060b6;'>"complete"</span><span style='color:#308080;'>)</span><span style='color:#406080;'>{</span>
                  script<span style='color:#308080;'>.</span>onreadystatechange <span style='color:#308080;'>=</span> <span style='color:#0f4d75;'>null</span><span style='color:#406080;'>;</span>
                  callback<span style='color:#308080;'>(</span><span style='color:#007d45;'>Number</span><span style='color:#308080;'>(</span><span style='color:#200080;font-weight:bold;'>new</span> <span style='color:#007d45;'>Date</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#308080;'>)</span> <span style='color:#308080;'>-</span> t<span style='color:#308080;'>)</span><span style='color:#406080;'>;</span>
              <span style='color:#406080;'>}</span>
          <span style='color:#406080;'>}</span><span style='color:#406080;'>;</span>
      <span style='color:#406080;'>}</span> <span style='color:#200080;font-weight:bold;'>else</span> <span style='color:#406080;'>{</span>  <span style='color:#595979;'>//Others</span>
          script<span style='color:#308080;'>.</span>onload <span style='color:#308080;'>=</span> <span style='color:#200080;font-weight:bold;'>function</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#406080;'>{</span>
              callback<span style='color:#308080;'>(</span><span style='color:#007d45;'>Number</span><span style='color:#308080;'>(</span><span style='color:#200080;font-weight:bold;'>new</span> <span style='color:#007d45;'>Date</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#308080;'>)</span> <span style='color:#308080;'>-</span> t<span style='color:#308080;'>)</span><span style='color:#406080;'>;</span>
          <span style='color:#406080;'>}</span><span style='color:#406080;'>;</span>
      <span style='color:#406080;'>}</span>

      <span style='color:#200080;font-weight:bold;'>var</span> t <span style='color:#308080;'>=</span> <span style='color:#007d45;'>Number</span><span style='color:#308080;'>(</span><span style='color:#200080;font-weight:bold;'>new</span> <span style='color:#007d45;'>Date</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#308080;'>)</span><span style='color:#406080;'>;</span>
      script<span style='color:#308080;'>.</span>src <span style='color:#308080;'>=</span> url<span style='color:#406080;'>;</span>
  <span style='color:#406080;'>}</span>
</pre>
<p>Чтобы замерять только загрузку, приходится выкручиваться примерно вот так:</p>
<pre style='color:#000020;background:#f6f8ff;'><span style='color:#200080;font-weight:bold;'>function</span> loadScript<span style='color:#308080;'>(</span>url<span style='color:#308080;'>,</span> callback<span style='color:#308080;'>)</span> <span style='color:#406080;'>{</span>
      <span style='color:#200080;font-weight:bold;'>if</span> <span style='color:#308080;'>(</span>navigator<span style='color:#308080;'>.</span>userAgent<span style='color:#308080;'>.</span><span style='color:#200080;font-weight:bold;'>toLowerCase</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#308080;'>.</span><span style='color:#200080;font-weight:bold;'>indexOf</span><span style='color:#308080;'>(</span><span style='color:#1060b6;'>'msie'</span><span style='color:#308080;'>)</span> <span style='color:#308080;'>!==</span> <span style='color:#308080;'>-</span><span style='color:#008c00;'>1</span><span style='color:#308080;'>)</span> <span style='color:#406080;'>{</span>
          <span style='color:#200080;font-weight:bold;'>var</span> xhr <span style='color:#308080;'>=</span> window<span style='color:#308080;'>.</span><span style='color:#007d45;'>ActiveXObject</span> <span style='color:#406080;'>?</span> <span style='color:#200080;font-weight:bold;'>new</span> <span style='color:#007d45;'>ActiveXObject</span><span style='color:#308080;'>(</span><span style='color:#1060b6;'>"Microsoft.XMLHTTP"</span><span style='color:#308080;'>)</span> <span style='color:#406080;'>:</span> <span style='color:#200080;font-weight:bold;'>new</span> XMLHttpRequest<span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#308080;'>,</span>
              time <span style='color:#308080;'>=</span> <span style='color:#0f4d75;'>false</span><span style='color:#406080;'>;</span>

          xhr<span style='color:#308080;'>.</span>onreadystatechange <span style='color:#308080;'>=</span> <span style='color:#200080;font-weight:bold;'>function</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span> <span style='color:#406080;'>{</span>
            <span style='color:#200080;font-weight:bold;'>if</span> <span style='color:#308080;'>(</span>xhr<span style='color:#308080;'>.</span>readyState<span style='color:#308080;'>==</span><span style='color:#008c00;'>1</span> <span style='color:#308080;'>&#38;&#38;</span> !time<span style='color:#308080;'>)</span>
              time <span style='color:#308080;'>=</span> <span style='color:#007d45;'>Number</span><span style='color:#308080;'>(</span><span style='color:#200080;font-weight:bold;'>new</span> <span style='color:#007d45;'>Date</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#308080;'>)</span><span style='color:#406080;'>;</span>

            <span style='color:#200080;font-weight:bold;'>if</span> <span style='color:#308080;'>(</span>xhr<span style='color:#308080;'>.</span>readyState<span style='color:#308080;'>==</span><span style='color:#008c00;'>4</span><span style='color:#308080;'>)</span>
              callback<span style='color:#308080;'>(</span><span style='color:#007d45;'>Number</span><span style='color:#308080;'>(</span><span style='color:#200080;font-weight:bold;'>new</span> <span style='color:#007d45;'>Date</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#308080;'>)</span> <span style='color:#308080;'>-</span> time<span style='color:#308080;'>)</span><span style='color:#406080;'>;</span>
          <span style='color:#406080;'>}</span>

          xhr<span style='color:#308080;'>.</span>open<span style='color:#308080;'>(</span><span style='color:#1060b6;'>"GET"</span><span style='color:#308080;'>,</span> url<span style='color:#308080;'>,</span> <span style='color:#0f4d75;'>true</span><span style='color:#308080;'>)</span><span style='color:#406080;'>;</span>
          xhr<span style='color:#308080;'>.</span>send<span style='color:#308080;'>(</span><span style='color:#0f4d75;'>null</span><span style='color:#308080;'>)</span><span style='color:#406080;'>;</span>
      <span style='color:#406080;'>}</span>
      <span style='color:#200080;font-weight:bold;'>else</span>
      <span style='color:#406080;'>{</span>
        <span style='color:#200080;font-weight:bold;'>var</span> iframe <span style='color:#308080;'>=</span> document<span style='color:#308080;'>.</span>getElementsByTagName<span style='color:#308080;'>(</span><span style='color:#1060b6;'>'iframe'</span><span style='color:#308080;'>)</span><span style='color:#308080;'>[</span><span style='color:#008c00;'>0</span><span style='color:#308080;'>]</span><span style='color:#308080;'>,</span>
            time <span style='color:#308080;'>=</span> <span style='color:#007d45;'>Number</span><span style='color:#308080;'>(</span><span style='color:#200080;font-weight:bold;'>new</span> <span style='color:#007d45;'>Date</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#308080;'>)</span><span style='color:#406080;'>;</span>

        iframe<span style='color:#308080;'>.</span>onload <span style='color:#308080;'>=</span> <span style='color:#200080;font-weight:bold;'>function</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#406080;'>{</span>
            callback<span style='color:#308080;'>(</span><span style='color:#007d45;'>Number</span><span style='color:#308080;'>(</span><span style='color:#200080;font-weight:bold;'>new</span> <span style='color:#007d45;'>Date</span><span style='color:#308080;'>(</span><span style='color:#308080;'>)</span><span style='color:#308080;'>)</span> <span style='color:#308080;'>-</span> time<span style='color:#308080;'>)</span><span style='color:#406080;'>;</span>
        <span style='color:#406080;'>}</span><span style='color:#406080;'>;</span>

        iframe<span style='color:#308080;'>.</span>src <span style='color:#308080;'>=</span> url<span style='color:#406080;'>;</span>
      <span style='color:#406080;'>}</span>
  <span style='color:#406080;'>}</span>
</pre>
<p>Если в нормальных браузерах можно просто загрузить файл js в iframe и померять время его загрузки, то у IE, как обычно, свой путь. Увидев непривычный mime IE предложит пользователю сохранить его. Попытки загрузить JS в картинку (а также FRAME, OBJECT, и еще полдесятка тэгов) к позитивному результату также не приводит — он либо видит неожиданный mime в неожиданном месте либо не дает замерять, как в случае с BGSOUND (помните такой? <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ).<br />
Я выкрутился через XHR–запрос. При попытке выполнить XHR–запрос к другому домену все браузеры обычно делают вид, как–будто ничего и не случилось (и не выполняют его), ИЕ же выдает confirmation на обращение к внешнему ресурсу. Не очень секьюрно с его стороны, но, по–крайней мере, позволяет решить мою задачу хоть как–то (без привлечения Flash через Flex).</p>
<p>Не исключено, впрочем, что проблема эта уже тысячу раз была кем–то решена, а я просто не смог найти решение. Впрочем, еще поищу <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>P.S.<br />
А посоветуйте хороший HTTP сниффер под Mac OS X, который умеет замерять время выполнения запросов? Хочу проверить точность результатов.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Jeg tester Wordpress]]></title>
<link>http://helgest.wordpress.com/2009/10/09/jeg-tester-wordpress/</link>
<pubDate>Fri, 09 Oct 2009 23:00:01 +0000</pubDate>
<dc:creator>helgest</dc:creator>
<guid>http://helgest.wordpress.com/2009/10/09/jeg-tester-wordpress/</guid>
<description><![CDATA[Burde sove snart]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><img class="size-full wp-image-5 alignleft" title="Koala" src="http://helgest.wordpress.com/files/2009/10/koala.jpg" alt="Koala" width="360" height="270" />Burde sove snart</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[MAME Front End for Mac OSX]]></title>
<link>http://macemulators.wordpress.com/2009/10/06/front-end-for-mac-osx/</link>
<pubDate>Tue, 06 Oct 2009 06:57:40 +0000</pubDate>
<dc:creator>Mac Emulators</dc:creator>
<guid>http://macemulators.wordpress.com/2009/10/06/front-end-for-mac-osx/</guid>
<description><![CDATA[Just found this link in the SDL MAME website today and thought I&#8217;d make a full post about it. ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Just found this link in the SDL MAME website today and thought I&#8217;d make a full post about it. It is a front end you can use on Mac OSX for SDL MAME. Makes SDL MAME easy for the rest of us folks. If you don&#8217;t feel comfortable using terminal on your Mac but you still want to use the latest version of MAME and not just the last version of MAME OSX. The Windows users aren&#8217;t the only people who can use the latest version of MAME, so can you.</p>
<p><a href="http://brpg.hp.infoseek.co.jp/mame_tunes/">MameTunes (Frontend)</a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Diskless frontend on a Dell Inspiron 8200]]></title>
<link>http://kilokat7.wordpress.com/2009/10/03/diskless-frontend-on-a-dell-inspiron-8200/</link>
<pubDate>Sat, 03 Oct 2009 16:57:42 +0000</pubDate>
<dc:creator>kilokat7</dc:creator>
<guid>http://kilokat7.wordpress.com/2009/10/03/diskless-frontend-on-a-dell-inspiron-8200/</guid>
<description><![CDATA[One reason that I chose MythTV early on was for its ability to interface with other &#8220;satellite]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>One reason that I chose MythTV early on was for its ability to interface with other &#8220;satellite&#8221; frontend machines that I could place around the house in various locations where I have already installed hardwired Ethernet jacks.  Unless I wish to stream demanding high definition content, the frontend machines do not need to be equipped with expensive or modern hardware.</p>
<p>Here&#8217;s a case in point example.  I&#8217;ve had an old Dell Inspiron 8200 kicking around for a while that has a bad IDE controller.  It refuses to boot from the hard disk or the optical drive.  By most consequences, this machine is pretty much useless as is.  Enter PXE booting.  A BIOS setting in the 8200 allows for network booting.</p>
<p><span style="font-weight:normal;">I</span> have experimented with linux and network booting in the past and have had joy using <a href="http://drbl.sourceforge.net/" target="_blank"><span style="color:#000000;text-decoration:none;"><span style="color:#000000;text-decoration:none;">Diskless Remote Boot in Linux</span></span></a> (DRBL) to network boot a <a href="http://www.damnsmalllinux.org/" target="_blank"><span style="color:#000000;text-decoration:none;"><span style="color:#000000;text-decoration:none;">DSL</span></span></a> iso file from my Linux server to other computers around the house.  NFSRoot is a popular alternative and requires a dedicated box running a DHCP &#38; TFTP servers and PXELINUX to boot a root filesystem over NFS.  My experience with this method has been frustrating and I never did get it working correctly using Debian.</p>
<p>I thought I would give it another shot and attempt to create a diskless frontend using the Inspiron.  I skipped all the manual configuration and opted to use a script available with the Knoppmyth distro to create a diskless frontend.  Basically the script sets up and configures the DHCP and TFTP servers on the myth backend and does all the hard work.  The Knoppmyth wiki has a good entry on how to get this going:</p>
<p><a href="http://www.knoppmythwiki.org/index.php?page=DisklessFrontend"><span style="color:#000000;text-decoration:none;"><span style="color:#000000;text-decoration:none;">http://www.knoppmythwiki.org/index.php?page=DisklessFrontend</span></span></a></p>
<p>One thing that must be considered is that your frontend hardware will most likely be different from the backend hardware where the script was executed.  In my situation, from the backend, I had to reconfigure /nfsroot/dell8200/etc/X11/xorg.conf to get it play nicely with the Inspiron.  After a lot of googling and trial and error, I came up with a working xorg.conf that was compatible with the Inspiron&#8217;s 1600&#215;1200 display.  Once changed, I had a diskless frontend working on the Inspiron with recorded programs available and live TV from the Motorola 6200 cable box.</p>
<p>Below is my xorg.conf for the Dell Inspiron 8200.  Note that I haven&#8217;t been successful getting an updated Nvidia driver installed for the older Nvidia graphics in the 8200.  One other issue involves navigating menus on the frontend.  When cycling through the menu using the arrow keys on the keyboard, it seems that two button clicks are being registered causing the menu to skip ahead one extra level &#8211; an annoying issue.  More time needed but it&#8217;s a good start&#8230;</p>
<p># File generated by xorgconfig.</p>
<p>#</p>
<p># Copyright 2004 The X.Org Foundation</p>
<p>#</p>
<p># Permission is hereby granted, free of charge, to any person obtaining a</p>
<p># copy of this software and associated documentation files (the &#8220;Software&#8221;),</p>
<p># to deal in the Software without restriction, including without limitation</p>
<p># the rights to use, copy, modify, merge, publish, distribute, sublicense,</p>
<p># and/or sell copies of the Software, and to permit persons to whom the</p>
<p># Software is furnished to do so, subject to the following conditions:</p>
<p>#</p>
<p># The above copyright notice and this permission notice shall be included in</p>
<p># all copies or substantial portions of the Software.</p>
<p>#</p>
<p># THE SOFTWARE IS PROVIDED &#8220;AS IS&#8221;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR</p>
<p># IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</p>
<p># FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL</p>
<p># The X.Org Foundation BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,</p>
<p># WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF</p>
<p># OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE</p>
<p># SOFTWARE.</p>
<p>#</p>
<p># Except as contained in this notice, the name of The X.Org Foundation shall</p>
<p># not be used in advertising or otherwise to promote the sale, use or other</p>
<p># dealings in this Software without prior written authorization from</p>
<p># The X.Org Foundation.</p>
<p>#</p>
<p># **********************************************************************</p>
<p># Refer to the xorg.conf(5x) man page for details about the format of</p>
<p># this file.</p>
<p># **********************************************************************</p>
<p># **********************************************************************</p>
<p># Module section &#8212; this  section  is used to specify</p>
<p># which dynamically loadable modules to load.</p>
<p># **********************************************************************</p>
<p>#</p>
<p>Section &#8220;Module&#8221;</p>
<p># Alps Touchpad</p>
<p>#    Load   &#8220;synaptics&#8221;</p>
<p># This loads the DBE extension module.</p>
<p>Load        &#8220;dbe&#8221;  # Double buffer extension</p>
<p># This loads the miscellaneous extensions module, and disables</p>
<p># initialisation of the XFree86-DGA extension within that module.</p>
<p>SubSection  &#8220;extmod&#8221;</p>
<p>Option    &#8220;omit xfree86-dga&#8221;   # don&#8217;t initialise the DGA extension</p>
<p>EndSubSection</p>
<p># This loads the font modules</p>
<p>#    Load        &#8220;type1&#8243;</p>
<p>Load        &#8220;speedo&#8221;</p>
<p>Load        &#8220;freetype&#8221;</p>
<p>#    Load        &#8220;xtt&#8221;</p>
<p># This loads the GLX module</p>
<p>Load       &#8220;glx&#8221;</p>
<p># This loads the DRI module</p>
<p>#    Load       &#8220;dri&#8221;</p>
<p>EndSection</p>
<p># **********************************************************************</p>
<p># Files section.  This allows default font and rgb paths to be set</p>
<p># **********************************************************************</p>
<p>Section &#8220;Files&#8221;</p>
<p># The location of the RGB database.  Note, this is the name of the</p>
<p># file minus the extension (like &#8220;.txt&#8221; or &#8220;.db&#8221;).  There is normally</p>
<p># no need to change the default.</p>
<p>RgbPath &#8220;/usr/X11R6/lib/X11/rgb&#8221;</p>
<p># Multiple FontPath entries are allowed (which are concatenated together),</p>
<p># as well as specifying multiple comma-separated entries in one FontPath</p>
<p># command (or a combination of both methods)</p>
<p>#</p>
<p>#</p>
<p>FontPath   &#8220;/usr/share/fonts/misc/&#8221;</p>
<p>FontPath   &#8220;/usr/share/fonts/TTF/&#8221;</p>
<p>FontPath   &#8220;/usr/share/fonts/Type1/&#8221;</p>
<p>#    FontPath   &#8220;/usr/share/fonts/CID/&#8221;</p>
<p>FontPath   &#8220;/usr/share/fonts/75dpi/&#8221;</p>
<p>FontPath   &#8220;/usr/share/fonts/100dpi/&#8221;</p>
<p>FontPath   &#8220;/usr/share/fonts/local/&#8221;</p>
<p>#    FontPath   &#8220;/usr/share/fonts/Speedo/&#8221;</p>
<p>#    FontPath   &#8220;/usr/share/fonts/TrueType/&#8221;</p>
<p>#    FontPath   &#8220;/usr/share/fonts/freefont/&#8221;</p>
<p># The module search path.  The default path is shown here.</p>
<p>#    ModulePath &#8220;/usr/X11R6/lib/modules&#8221;</p>
<p>EndSection</p>
<p># **********************************************************************</p>
<p># Input devices</p>
<p># **********************************************************************</p>
<p># **********************************************************************</p>
<p># Core keyboard&#8217;s InputDevice section</p>
<p># **********************************************************************</p>
<p>Section &#8220;InputDevice&#8221;</p>
<p>Identifier    &#8220;Keyboard1&#8243;</p>
<p>Driver  &#8220;kbd&#8221;</p>
<p>Option &#8220;AutoRepeat&#8221; &#8220;500 30&#8243;</p>
<p>Option &#8220;XkbRules&#8221;   &#8220;xorg&#8221;</p>
<p>Option &#8220;XkbModel&#8221;   &#8220;pc101&#8243;</p>
<p>Option &#8220;XkbLayout&#8221;  &#8220;us&#8221;</p>
<p>EndSection</p>
<p># **********************************************************************</p>
<p># Core Pointer&#8217;s InputDevice section</p>
<p># **********************************************************************</p>
<p>Section &#8220;InputDevice&#8221;</p>
<p>Driver            &#8220;mouse&#8221;</p>
<p>Identifier  &#8220;USB-Mouse&#8221;</p>
<p>Option            &#8220;Device&#8221;    &#8220;/dev/input/mice&#8221;</p>
<p>Option            &#8220;Emulate3Buttons&#8221; &#8220;true&#8221;</p>
<p>Option            &#8220;ZAxisMapping&#8221;    &#8220;4 5&#8243;</p>
<p>EndSection</p>
<p>#Section &#8220;InputDevice&#8221;</p>
<p>#  Driver  &#8220;synaptics&#8221;</p>
<p>#  Identifier     &#8220;Alps&#8221;</p>
<p>#  Option   &#8220;Device&#8221;          &#8220;/dev/psaux&#8221;</p>
<p>#  Option   &#8220;Protocol&#8221;        &#8220;auto-dev&#8221;</p>
<p>#  Option   &#8220;LeftEdge&#8221;        &#8220;120&#8243;</p>
<p>#  Option   &#8220;RightEdge&#8221;       &#8220;830&#8243;</p>
<p>#  Option   &#8220;TopEdge&#8221;         &#8220;120&#8243;</p>
<p>#  Option   &#8220;BottomEdge&#8221;            &#8220;650&#8243;</p>
<p>#  Option   &#8220;FingerLow&#8221;       &#8220;14&#8243;</p>
<p>#  Option   &#8220;FingerHigh&#8221;            &#8220;15&#8243;</p>
<p>#  Option   &#8220;MaxTapTime&#8221;            &#8220;180&#8243;</p>
<p>#  Option   &#8220;MaxTapMove&#8221;            &#8220;110&#8243;</p>
<p>#  Option   &#8220;EmulateMidButtonTime&#8221;  &#8220;75&#8243;</p>
<p>#  Option   &#8220;VertScrollDelta&#8221; &#8220;20&#8243;</p>
<p>#  Option   &#8220;HorizScrollDelta&#8221;      &#8220;20&#8243;</p>
<p>#  Option   &#8220;MinSpeed&#8221;        &#8220;0.4&#8243;</p>
<p>#  Option   &#8220;MaxSpeed&#8221;        &#8220;0.8&#8243;</p>
<p>#  Option   &#8220;AccelFactor&#8221;           &#8220;0.02&#8243;</p>
<p>#  Option   &#8220;EdgeMotionMinSpeed&#8221;    &#8220;15&#8243;</p>
<p>#  Option   &#8220;EdgeMotionMaxSpeed&#8221;    &#8220;15&#8243;</p>
<p>#  Option   &#8220;UpDownScrolling&#8221; &#8220;1&#8243;</p>
<p>#  Option   &#8220;CircularScrolling&#8221;     &#8220;1&#8243;</p>
<p>#  Option   &#8220;CircScrollDelta&#8221; &#8220;0.1&#8243;</p>
<p>#  Option   &#8220;CircScrollTrigger&#8221;     &#8220;2&#8243;</p>
<p>#EndSection</p>
<p>#######################This is old touchpad</p>
<p>#Section &#8220;InputDevice&#8221;</p>
<p>#    Identifier   &#8220;Mouse1&#8243;</p>
<p>#    Driver &#8220;mouse&#8221;</p>
<p>#    Option &#8220;Protocol&#8221;    &#8220;GlidePointPS/2&#8243;</p>
<p>#    Option &#8220;Device&#8221;      &#8220;/dev/input/mouse0&#8243;</p>
<p>#    Option &#8220;Emulate3Buttons&#8221;</p>
<p>#EndSection</p>
<p># **********************************************************************</p>
<p># Monitor section</p>
<p># **********************************************************************</p>
<p># Any number of monitor sections may be present</p>
<p>Section &#8220;Monitor&#8221;</p>
<p>Identifier  &#8220;Monitor0&#8243;</p>
<p># HorizSync is in kHz unless units are specified.</p>
<p># HorizSync may be a comma separated list of discrete values, or a</p>
<p># comma separated list of ranges of values.</p>
<p># NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR&#8217;S</p>
<p># USER MANUAL FOR THE CORRECT NUMBERS.</p>
<p>HorizSync   31.5 &#8211; 90.0</p>
<p>#    HorizSync    30-64         # multisync</p>
<p>#    HorizSync    31.5, 35.2    # multiple fixed sync frequencies</p>
<p>#    HorizSync    15-25, 30-50  # multiple ranges of sync frequencies</p>
<p># VertRefresh is in Hz unless units are specified.</p>
<p># VertRefresh may be a comma separated list of discrete values, or a</p>
<p># comma separated list of ranges of values.</p>
<p># NOTE: THE VALUES HERE ARE EXAMPLES ONLY.  REFER TO YOUR MONITOR&#8217;S</p>
<p># USER MANUAL FOR THE CORRECT NUMBERS.</p>
<p>VertRefresh 59.0 &#8211; 85.0</p>
<p>EndSection</p>
<p># **********************************************************************</p>
<p># Graphics device section</p>
<p># **********************************************************************</p>
<p># Device configured by xorgconfig:</p>
<p>Section &#8220;Device&#8221;</p>
<p>Identifier  &#8220;Card0&#8243;</p>
<p>Driver      &#8220;nv&#8221;</p>
<p># unsupported card</p>
<p>#VideoRam    65536</p>
<p># Insert Clocks lines here if appropriate</p>
<p>EndSection</p>
<p># **********************************************************************</p>
<p># Screen sections</p>
<p># **********************************************************************</p>
<p># Any number of screen sections may be present.  Each describes</p>
<p># the configuration of a single screen.  A single specific screen section</p>
<p># may be specified from the X server command line with the &#8220;-screen&#8221;</p>
<p># option.</p>
<p>Section &#8220;Screen&#8221;</p>
<p>Identifier  &#8220;Screen 1&#8243;</p>
<p>Device      &#8220;Card0&#8243;</p>
<p>Monitor     &#8220;Monitor0&#8243;</p>
<p>DefaultDepth 24</p>
<p>Subsection &#8220;Display&#8221;</p>
<p>Depth       8</p>
<p>Modes       &#8220;1600&#215;1200&#8243; &#8220;1280&#215;1024&#8243; &#8220;1024&#215;768&#8243; &#8220;800&#215;600&#8243;</p>
<p>&#8220;640&#215;480&#8243;</p>
<p>ViewPort    0 0</p>
<p>EndSubsection</p>
<p>Subsection &#8220;Display&#8221;</p>
<p>Depth       16</p>
<p><span style="font-size:10pt;font-family:&#34;"> Modes       &#8220;1600&#215;1200&#8243; &#8220;1280&#215;1024&#8243; &#8220;1024&#215;768&#8243; &#8220;800&#215;600&#8243; </span><span style="font-size:10pt;font-family:&#34;">&#8220;640&#215;480&#8243;</span></p>
<p>ViewPort    0 0</p>
<p>EndSubsection</p>
<p>Subsection &#8220;Display&#8221;</p>
<p>Depth       24</p>
<p>Modes       &#8220;1280&#215;1024&#8243; &#8220;1024&#215;768&#8243; &#8220;800&#215;600&#8243; &#8220;640&#215;480&#8243;</p>
<p>ViewPort    0 0</p>
<p>EndSubsection</p>
<p>EndSection</p>
<p># **********************************************************************</p>
<p># ServerLayout sections.</p>
<p># **********************************************************************</p>
<p># Any number of ServerLayout sections may be present.  Each describes</p>
<p># the way multiple screens are organised.  A specific ServerLayout</p>
<p># section may be specified from the X server command line with the</p>
<p># &#8220;-layout&#8221; option.  In the absence of this, the first section is used.</p>
<p># When now ServerLayout section is present, the first Screen section</p>
<p># is used alone.</p>
<p>Section &#8220;ServerLayout&#8221;</p>
<p># The Identifier line must be present</p>
<p>Identifier  &#8220;Simple Layout&#8221;</p>
<p># Each Screen line specifies a Screen section name, and optionally</p>
<p># the relative position of other screens.  The four names after</p>
<p># primary screen name are the screens to the top, bottom, left and right</p>
<p># of the primary screen.  In this example, screen 2 is located to the</p>
<p># right of screen 1.</p>
<p>Screen &#8220;Screen 1&#8243;</p>
<p># Each InputDevice line specifies an InputDevice section name and</p>
<p># optionally some options to specify the way the device is to be</p>
<p># used.  Those options include &#8220;CorePointer&#8221;, &#8220;CoreKeyboard&#8221; and</p>
<p># &#8220;SendCoreEvents&#8221;.</p>
<p>#InputDevice &#8220;Mouse1&#8243; &#8220;CorePointer&#8221;</p>
<p>#InputDevice &#8220;Alps&#8221; &#8220;CorePointer&#8221;</p>
<p>InputDevice &#8220;USB-Mouse&#8221; &#8220;AlwaysCore&#8221;</p>
<p>InputDevice &#8220;Keyboard1&#8243; &#8220;CoreKeyboard&#8221;</p>
<p>EndSection</p>
<p># Section &#8220;DRI&#8221;</p>
<p>#    Mode 0666</p>
<p># EndSection</p>
<p style="padding-left:30px;">
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[jQuery:hooking form submit and making it ajax request]]></title>
<link>http://hasin.wordpress.com/2009/10/01/jqueryhooking-form-submit-and-making-it-an-ajax-request/</link>
<pubDate>Thu, 01 Oct 2009 16:20:51 +0000</pubDate>
<dc:creator>hasin</dc:creator>
<guid>http://hasin.wordpress.com/2009/10/01/jqueryhooking-form-submit-and-making-it-an-ajax-request/</guid>
<description><![CDATA[modern javascript frameworks are big blessings to every front end developer. they made our life so m]]></description>
<content:encoded><![CDATA[modern javascript frameworks are big blessings to every front end developer. they made our life so m]]></content:encoded>
</item>
<item>
<title><![CDATA[Facebook如何做设计]]></title>
<link>http://danielwang.wordpress.com/2009/09/09/facebook%e5%a6%82%e4%bd%95%e5%81%9a%e8%ae%be%e8%ae%a1/</link>
<pubDate>Wed, 09 Sep 2009 02:36:00 +0000</pubDate>
<dc:creator>wangdayu</dc:creator>
<guid>http://danielwang.wordpress.com/2009/09/09/facebook%e5%a6%82%e4%bd%95%e5%81%9a%e8%ae%be%e8%ae%a1/</guid>
<description><![CDATA[Facebook的设计团队分享了他们的设计理念，以及他们是如何为2.5亿用户设计产品的。特别的是，他们强调了以下几点： 自己动手，亲历亲为（get your hands dirty） 尽早且频繁地分享]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><span class="Apple-style-span" style="border-collapse:collapse;font-family:arial;font-size:13px;"></span><br />Facebook的设计团队分享了他们的设计理念，以及他们是如何为2.5亿用户设计产品的。特别的是，他们强调了以下几点：
<ul>
<li>自己动手，亲历亲为（get your hands dirty）</li>
<li>尽早且频繁地分享设计（share early &#38; often）</li>
<li>设计过程要从项目开始延续到结束（be there from start to finish）</li>
<li>不要爱上你的设计（don’t fall in love）</li>
</ul>
<p>尤其重要的是确保设计师有足够的技术能力来写很多代码。<br />其他一些信息：
<ul>
<li>Facebook设计团队的工作包括产品设计、市场营销、UI模式、品牌和前端开发。整个团队由15个产品设计师、5个UI工程师、5个用户体验研究员、4个交互设计师和1个内容架构师。在这个约有1000个员工的公司中，设计团队总共有25人。</li>
</ul>
<ul>
<li>通过撰写从前端到后端代码全部代码，将设计和技术融合进整个公司的文化。</li>
</ul>
<p><strong>1）设计师需要参与整个过程：从战略到发布。这不同于其他公司。</strong>
<ul>
<li>Facebook花费了很多时间和精力来保证设计师能参与到整个产品开发流程。</li>
<li>例如：3月的主页改版发布，精简信息架构和提高页面信息的流动速度。这样的改变需要同时涉及数据结构和视觉结构。</li>
<li>在确定视觉风格后，开始写代码来制作原型。设计师通过写代码来了解真实的数据如何在页面布局中工作。</li>
<li>不断地平衡取舍，通过不断地迭代交互设计和视觉设计来做很多尝试。</li>
<li>给管理层和其他团队展示静态的产品原型并做交互演示。</li>
<li>让设计师写代码能发现细节问题并快速执行修改。</li>
</ul>
<p><strong>2）尽早且频繁地分享想法。了解用户能帮助实现更好的设计。</strong>
<ul>
<li>在Facebook没有创意总监，取而代之的是自下而上的设计团队组织架构。这对于团队能分享他们的创意至关重要。</li>
<li>开发相应工具来实现高效地分享。其中一个工具叫Pixelcloud，类似于一个带评论功能的在线图库。自从在3月发布了这个工具后，大约每天有15张创意图片通过这个网站得到分享。</li>
<li>整个工作组涵盖视觉设计和前端开发，这确保了Facebook的设计保持一贯的风格。所有的工作组都有固定的时间来给设计师提供反馈。</li>
<li>例如：隐私向导的设计。在项目立项阶段（kickoff phase），召集12个用户并向他们展示30个原型，以此来决定产品的开发方向。在产品开发阶段，再次召集相对较少的用户，向他们展示7个原型来决定具体的设计。</li>
<li>反馈是有效的。尽可能多的和早的获取反馈，这有助于节约项目时间。</li>
</ul>
<p><strong>3）勤动手，最重要的是理解代码是如何运行的。所有的设计师都要写一些HTML，CSS，甚至PHP。</strong>
<ul>
<li>模糊设计和技术的区别。设计师也能调试代码和创建快速原型。</li>
<li>设计师往往错在设计过于简洁，而工程师则错在提供过多功能。</li>
<li>理解你所为之工作的媒介类型，然后不断反思你的设计。</li>
<li>快速行动。Facebook在许多领域有很多竞争对手，而用户使用网络的习惯也在持续改变，所以快速地迭代更新产品很重要。</li>
<li>最核心的是，Facebook相信最有效的方式是快速发布产品，然后看看用户是如何使用的。</li>
<li>原型在说谎。它们通常缺乏内容和上下文联系。因此需要使用真实的内容和页面设计来理解具体的设计是如何工作的。</li>
<li>为了快速反应，我们需要快速地制作原型。例如：评论的UI首先在内部测试并修改，然后才发布给用户。新的设计打破了原有的信息流里的视觉线路。</li>
<li>设计师一般每周大约会提交40个版本的代码。</li>
</ul>
<p><strong>4）不要爱上你的设计。软件的生命是短暂的，它总是在变化，你需要接受这个事实。</strong>
<ul>
<li>你的目的是确保设计工作正常并能持续改进。</li>
<li>不要怀念今天的成就，要永远向前看。作为一个设计师，你需要预测并思考在下一年事情将发生怎样的变化。</li>
<li>在Facebook，设计存在时间最长的是首页，从2004年发布，历时18个月。</li>
<li>例如：全局导航的改版。在数月里尝试了无数的想法。甚至在昨天网站的头部又变了。</li>
<li>相比以往任何时候，我们的工作都远没有完成。</li>
<li>对大多数功能都做A/B测试。清晰地定义度量效果的标准并进行测量，但切忌不要让度量标准来驱动设计。</li>
</ul>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[How to optimize frontend in Symfony (CSS &amp; JavaScript)]]></title>
<link>http://ksojkotech.wordpress.com/2009/09/06/how-to-optimize-frontend-in-symfony-css-javascript/</link>
<pubDate>Sun, 06 Sep 2009 10:12:27 +0000</pubDate>
<dc:creator>Karol Sójko</dc:creator>
<guid>http://ksojkotech.wordpress.com/2009/09/06/how-to-optimize-frontend-in-symfony-css-javascript/</guid>
<description><![CDATA[What ? If you&#8217;re looking forward to optimize the frontend in your Symfony project or to introd]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><h3 style="text-align:center;"><img class="aligncenter" title="Minify" src="http://www.webpage-designer.net/wp-content/uploads/2009/06/minify-javascript2.jpg" alt="" width="300" height="200" /></h3>
<h3 style="text-align:justify;">What ?</h3>
<p style="text-align:justify;">If you&#8217;re looking forward to optimize the frontend in your Symfony project or to introduce different CSS or JavaScript versions to each language in your application there&#8217;s a nice plugin that will help you with that. It&#8217;s called <a title="sfMinifyTSPlugin" href="http://www.symfony-project.org/plugins/sfMinifyTSPlugin">sfMinifyTSPlugin</a> and it integrates Google&#8217;s <a title="minify" href="http://code.google.com/p/minify">minify library</a> so you know it&#8217;s good stuff <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<h3 style="text-align:justify;">Why ?</h3>
<p style="text-align:justify;">What makes it stand out from the rest of Symfony minify plugins is the fact that you don&#8217;t need to change anything in your .htaccess file or any other server stuff, just an out-of-the-box cool plugin.</p>
<p style="text-align:justify;">The other nice thing about it is that you can implement it either as a filter or with a helper.</p>
<p style="text-align:justify;">The fun part is also that the authors implemented some symfony tasks to help you clear-cache and fix permissions.</p>
<p style="text-align:justify;">The cache files names are generated with a date so you&#8217;ve got all the usefull info about it and speeds up your web application just like that.</p>
<p style="text-align:justify;">So don&#8217;t hesitate to experiment with this cool plugin in your future Symfony applications.</p>
<p style="text-align:justify;"><a href="//static.addtoany.com/js/wordpress_com.js';s.type='text/javascript';void(document.getElementsByTagName('head')[0].appendChild(s));"></a></p>
<p style="text-align:center;"><a href="http://www.addtoany.com/share_save?linkurl=http%3A%2F%2Fksojkotech.wordpress.com%2F2009%2F09%2F06%2Fsymfony-javascript-and-css-optimization%2F&#38;linkname=How%20to%20optimize%20frontend%20in%20Symfony%20(CSS%20%26%20JavaScript)"><img style="border:none;" class="aligncenter" src="http://static.addtoany.com/buttons/share_save_256_24.png" alt="Share" /></a></p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Front End Developer Knowledge Map]]></title>
<link>http://danielwang.wordpress.com/2009/08/31/front-end-developer-knowledge-map/</link>
<pubDate>Mon, 31 Aug 2009 03:08:00 +0000</pubDate>
<dc:creator>wangdayu</dc:creator>
<guid>http://danielwang.wordpress.com/2009/08/31/front-end-developer-knowledge-map/</guid>
<description><![CDATA[If you are a front-end developer, come back and look at this skills map weekly, to see what skills y]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>If you are a front-end developer, come back and look at this skills map weekly, to see what skills you have already, and what skills you are missing.</p>
<div class="separator" style="clear:both;text-align:center;"><a href="http://lh6.ggpht.com/_ukA5Ln2cXIc/SWxC8OTBgHI/AAAAAAAAAE8/sngodrsdV-k/r2008121716388.jpg" style="margin-left:1em;margin-right:1em;"><img border="0" height="323" src="http://lh6.ggpht.com/_ukA5Ln2cXIc/SWxC8OTBgHI/AAAAAAAAAE8/sngodrsdV-k/r2008121716388.jpg" width="420" /></a></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Steps to allowing an additional MythTV frontend]]></title>
<link>http://cowboy3398.wordpress.com/2009/08/06/steps-to-allowing-an-additional-mythtv-frontend/</link>
<pubDate>Thu, 06 Aug 2009 20:58:17 +0000</pubDate>
<dc:creator>Cowboy</dc:creator>
<guid>http://cowboy3398.wordpress.com/2009/08/06/steps-to-allowing-an-additional-mythtv-frontend/</guid>
<description><![CDATA[First you need to set up the backend to allow it to communicate You first need to stop the mythtv ba]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>First you need to set up the backend to allow it to communicate</p>
<p>You first need to stop the mythtv backend which is currently running, at the root prompt enter:</p>
<pre>/etc/init.d/mythtv-backend stop</pre>
<p>You can also stop the mysql server, enter:</p>
<pre><tt>/etc/init.d/mysql stop

</tt></pre>
<p><tt>You need to edit the my.cnf file and add a  '#' symbol in front of the line 'bind address' to allow the front end to access the mysql database:</tt></p>
<pre><tt>nano /etc/mysql/my.cnf</tt></pre>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Web 2.0 Revolusi Baru Internet ]]></title>
<link>http://mongtuh.wordpress.com/2009/07/13/web-2-0-revolusi-baru-internet/</link>
<pubDate>Mon, 13 Jul 2009 23:13:17 +0000</pubDate>
<dc:creator>mongtuh</dc:creator>
<guid>http://mongtuh.wordpress.com/2009/07/13/web-2-0-revolusi-baru-internet/</guid>
<description><![CDATA[Dengan adanya teknologi web 2.0 dan perkembangannya,&#8230;. saya yakin dimasa yang akan datang past]]></description>
<content:encoded><![CDATA[Dengan adanya teknologi web 2.0 dan perkembangannya,&#8230;. saya yakin dimasa yang akan datang past]]></content:encoded>
</item>
<item>
<title><![CDATA[Magento: Frontend and Backend Tour]]></title>
<link>http://rajenjani.wordpress.com/2009/07/01/magento-frontend-and-backend-tour/</link>
<pubDate>Wed, 01 Jul 2009 14:50:13 +0000</pubDate>
<dc:creator>Rajen Jani</dc:creator>
<guid>http://rajenjani.wordpress.com/2009/07/01/magento-frontend-and-backend-tour/</guid>
<description><![CDATA[Magento is a new open source eCommerce platform. A quick tour of Magento&#8217;s front-end  and back]]></description>
<content:encoded><![CDATA[Magento is a new open source eCommerce platform. A quick tour of Magento&#8217;s front-end  and back]]></content:encoded>
</item>
<item>
<title><![CDATA[La piel de Nhopkg]]></title>
<link>http://elsimpicuitico.wordpress.com/2009/05/18/la-piel-de-nhopkg/</link>
<pubDate>Mon, 18 May 2009 14:18:00 +0000</pubDate>
<dc:creator>cargabsj175</dc:creator>
<guid>http://elsimpicuitico.wordpress.com/2009/05/18/la-piel-de-nhopkg/</guid>
<description><![CDATA[¿Que hay de nuevo? Yo por aquí en la única biblioteca de la ciudad donde se usa GNU/Linux, específic]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><div style="text-align:justify;">¿Que hay de nuevo?</p>
<p>Yo por aquí en la única biblioteca de la ciudad donde se usa GNU/Linux, específicamente Debian cosa muy rara por estos lados <span class="blsp-spelling-error" id="SPELLING_ERROR_0">XD</span>. La razón es que estoy sin Internet hasta nuevo aviso. Bien vamos a lo que vamos y ¡Valla que he tardado con esto!</p>
<p>Resulta que que apenas 2 días después del <a href="http://el-simpicuitico.blogspot.com/2009/05/nhopkg-05-ya-esta-aqui.html">lanzamiento de <span class="blsp-spelling-error" id="SPELLING_ERROR_1">Nhopkg</span></a> nuestro amigo <span class="blsp-spelling-error" id="SPELLING_ERROR_2">mrcomputer</span> ha lanzado a la red <a href="http://nhopkg-fe.sourceforge.net/index-sp.html"><span class="blsp-spelling-error" id="SPELLING_ERROR_3">nhopkg</span>-fe</a>, que es una intuitiva interfaz <span class="blsp-spelling-error" id="SPELLING_ERROR_4">grafica</span> para el nuevo <span class="blsp-spelling-error" id="SPELLING_ERROR_5">Nhopkg</span> 0.5, su apariencia es similar al <span class="blsp-spelling-error" id="SPELLING_ERROR_6">synaptic</span> de los Debian e hijos, tiene como objetivo principal realizar la mayoría de las tareas que realiza <span class="blsp-spelling-error" id="SPELLING_ERROR_7">nhopkg</span> desde sus entrañas de una manera más amigable para el usuario final, entre estas podemos resaltar:
<ul>
<li><strong>Instalar paquetes desde el repositorio</strong>.</li>
<li><strong>Instalar paquetes locales</strong>(es decir desde un fichero .<span class="blsp-spelling-error" id="SPELLING_ERROR_8">nho</span> o .src.nho).</li>
<li><strong>Desinstalar paquetes</strong>.</li>
<li><strong>L</strong><strong><span class="blsp-spelling-error" id="SPELLING_ERROR_9">istar</span> los ficheros que contiene un paquete</strong>(este instalado o no).</li>
<li><strong>Mostrar la información del paquete.</strong></li>
<li><strong>Buscar entre todos los paquetes o entre los paquetes filtrados con el menú lateral.</strong></li>
<li><strong>Comprobar la integridad de los paquetes instalados.</strong></li>
<li><strong>Actualizar el repositorio.</strong></li>
<li><strong>Crear paquetes de forma desatendida</strong>(desde un .<span class="blsp-spelling-error" id="SPELLING_ERROR_10">tar</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_11">gz</span> con código fuente, esto es experimental en el propio <span class="blsp-spelling-error" id="SPELLING_ERROR_12">nhopkg</span>).</li>
<li><strong>Crear paquetes a partir de uno binario de Slackware.</strong></li>
</ul>
<p>En cuanto a detalles técnicos, <a href="http://nhopkg-fe.sourceforge.net/index-sp.html"><span class="blsp-spelling-error" id="SPELLING_ERROR_13">nhopkg</span>-fe</a> está escrito en Gambas, que es un entorno integrado de desarrollo de software libre similar a Visual <span class="blsp-spelling-error" id="SPELLING_ERROR_14">Basic</span> de Microsoft, es importante notar que Gambas no es un clon de éste último.</p>
<p>Aquí un par de captura que he tomado prestadas <span class="blsp-spelling-error" id="SPELLING_ERROR_15">XD</span> desde <a href="http://pillateunlinux.wordpress.com/"><span class="blsp-spelling-error" id="SPELLING_ERROR_16">pillateunlinux</span></a> y el blog de <a href="http://mrcomputer.es/blog/"><span class="blsp-spelling-error" id="SPELLING_ERROR_17">mrcomputer</span></a> respectivamente.</p>
<p><a href="http://elsimpicuitico.wordpress.com/files/2009/05/nhopkg-fe.png"><img src="http://elsimpicuitico.wordpress.com/files/2009/05/nhopkg-fe.png?w=300" alt="" border="0" /></a><a href="http://elsimpicuitico.wordpress.com/files/2009/05/nhopkg-fe-01-alfa.png"><img src="http://elsimpicuitico.wordpress.com/files/2009/05/nhopkg-fe-01-alfa.png?w=300" alt="" border="0" /></a><br />¿Cómo instalo <span class="blsp-spelling-error" id="SPELLING_ERROR_18">nhopkg</span> y <span class="blsp-spelling-error" id="SPELLING_ERROR_19">nhopkg</span>-fe? Bien, los amigos de <a href="http://putolinux.wordpress.com/"><span class="blsp-spelling-error" id="SPELLING_ERROR_20">putolinux</span></a>, nuevamente han hecho un excelente trabajo en explicárnoslo, he <span class="blsp-spelling-error" id="SPELLING_ERROR_21">aqui</span> el enlace:
<ul>
<li><a href="http://putolinux.wordpress.com/2009/05/07/como-instalar-el-puto-instalador-de-paquetes-universal-nhopkg-05-y-su-interfaz-grafico/">http://putolinux.wordpress.com/2009/05/07/como-instalar&#8230;</a></li>
</ul>
<p>Enhorabuena por <span class="blsp-spelling-error" id="SPELLING_ERROR_22">mrcomputer</span>!</p>
<p>Un saludo a todos, hasta luego <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Nate Koechley: Professional Frontend Engineering]]></title>
<link>http://danielwang.wordpress.com/2009/04/08/nate-koechley-professional-frontend-engineering/</link>
<pubDate>Wed, 08 Apr 2009 23:36:00 +0000</pubDate>
<dc:creator>wangdayu</dc:creator>
<guid>http://danielwang.wordpress.com/2009/04/08/nate-koechley-professional-frontend-engineering/</guid>
<description><![CDATA[Nate Koechley&nbsp;a senior frontend engineer at YUI Team Yahoo!, he gave a presentation on &#8220;P]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p><a href="http://nate.koechley.com/" style="color:#2244bb;" target="_blank">Nate Koechley&#160;</a>a senior frontend engineer at YUI Team Yahoo!, he gave a presentation on &#8220;Professional Frontend Engineering.&#8221;</p>
<p>It covers the foundations of the discipline, some of its core ideas, and some of of its best practices. If you are looking to reset your own assumptions about &#8220;web development&#8221; or &#8220;frontend work&#8221;; If you are new to the discipline, or backend engineers transitioning to the frontend, this is also a fantastic resource to you.</p>
<p>Video can be watched <a href="http://video.yahoo.com/watch/4671445/12486762" target="_blank">here</a>
<div id="__ss_459731" style="text-align:left;width:425px;"><span style="color:#0000ee;font-family:Helvetica;font-size:14px;text-decoration:underline;"><br /></span></div>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Serie: Open-Source CMS]]></title>
<link>http://rikkox.wordpress.com/2009/03/31/serie-open-source-cms/</link>
<pubDate>Tue, 31 Mar 2009 13:59:45 +0000</pubDate>
<dc:creator>rikkox</dc:creator>
<guid>http://rikkox.wordpress.com/2009/03/31/serie-open-source-cms/</guid>
<description><![CDATA[Ich habe beschlossen den Fokus wieder stärker auf Web / Web 2.0 zu setzen, möchte mir aber offen hal]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Ich habe beschlossen den Fokus wieder stärker auf Web / Web 2.0 zu setzen, möchte mir aber offen halten trotzdem andere Themen zu behandeln. Wer näheres über die Ausrichtung des Blogs wissen will kann dies unter <a href="http://rikkox.wordpress.com/about/" target="_blank">About</a> nachlesen.</p>
<p>Zurzeit muss ich mich für ein Projekt intensiv mit einem meiner Web-Lieblingsthemen beschäftigen: Content-Management-Systeme (kurz CMS). CMS-Systeme dienen dazu den Inhalt (Content) von Webseiten besser zu verwalten. Dabei herrscht meist eine strikte Trennung zwischen dem sogenannten Frontend (die Website ansich, die der Webseitenbesucher sieht) und dem Backend (der Bereich in dem der Inhalt der Webseite verwaltet wird). Man kann dies durchaus mit dem Blogging System von WordPress vergleichen: Man loggt sich in das „Backend“ ein, schreibt/ändert/löscht dort einen Artikel und die Änderungen werden im &#8220;Frontend&#8221; (bei WordPress der Blog) sichtbar.</p>
<p><!--more--></p>
<p>Jedoch sind CMS-Systeme um einiges Komplexer als etwas WordPress. Bei der Gestaltung von Webseiten gibt es ja individuelle Bedürfnisse, die von diesen <a href="http://rikkox.wordpress.com/files/2009/03/open-source_cms.png"><img class="alignright size-full wp-image-288" title="open-source_cms" src="http://rikkox.wordpress.com/files/2009/03/open-source_cms.png" alt="open-source_cms" width="134" height="647" /></a>Systemen abgedeckt werden sollen. So gibt es für die meisten CMS-Systeme sogenannte Extensions. Das sind „Plugins“, welche die Funktionalitäten des CMS-Systems erweitern. So gibt es zb. Extensions für ein News-System, Webshop… Ein CMS System muss also viele Bereiche abdecken, die über eine herkömmliche Blogging Software hinausgehen.  Solche Bereiche sind zum Beispiel:</p>
<ul>
<li>Rechteverwaltung für Backend-Benutzer</li>
<li>Mehrsprachigkeit</li>
<li>Multi-Site-Management</li>
<li>ausgereifte Redaktionssysteme</li>
<li>Workflow-Management</li>
<li>verschachtelte, dynamische Menüs</li>
<li>Erweiterbarkeit mit Extensions (wie zb. Webshop)</li>
<li>…</li>
</ul>
<p>Am Markt gibt es unzählige CMS-Systeme. Die meisten Systeme sind zu bezahlen. Es gibt jedoch auch einige Open-Source CMS-Systeme, die immer ausgereifter werden und immer mehr an Bedeutung gewinnen. Ich möchte versuchen den Lesern das Thema CMS näherzubringen, indem ich ab jetzt jede Woche 1-2 wichtige Open-Source CMS-Systeme  kurz vorstelle, die ich vorher in einem Testsystem teste. Diese Artikel veröffentliche ich unter der Serie &#8220;Open-Source CMS&#8221;.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Windows XP packed with virus? Ubuntu does the trick]]></title>
<link>http://linuxd.wordpress.com/2009/03/24/windows-xp-packed-with-virus-ubuntu-does-the-trick/</link>
<pubDate>Tue, 24 Mar 2009 22:34:00 +0000</pubDate>
<dc:creator>anonymousbloke</dc:creator>
<guid>http://linuxd.wordpress.com/2009/03/24/windows-xp-packed-with-virus-ubuntu-does-the-trick/</guid>
<description><![CDATA[I have temporarely defected to using windows xp since I&#8217;m having a lot of problems with ubuntu]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>I have temporarely defected to using windows xp since I&#8217;m having <strong>a lot</strong> of problems with ubuntu&#8217;s performance.</p>
<p>Everything was going sweet, blazing fast performance, but since I haven&#8217;t used windows seriously in like a year and a half I kinda lost sensitivity for it. I had no antivirus whatsoever and naturally I downloaded a crack that turned out not be a crack and now windows is completely fucked. *sigh* good old times.</p>
<p>Surprisingly enough, the antivirus I was familiar with in windows, Avast! and AVG, all have linux versions. There&#8217;s also this linux antivirus called ClamAV.It&#8217;s a command line antivirus. Can you see my boner? Right, you know why? Because it&#8217;s <strong>not</strong> there. There&#8217;s this other thing called clamtk in the repositories which is a graphical frontend for clamav. It has a lot of talk about signatures which I suspect is maybe the antivirus database, and starts with a warning saying your distro may or may not have them preconfigured. By them I mean two configuration files. You know, the ones that end in .conf and need to be handwritten. Right. Anyway, I tried to update the signatures and what do you know?, everything is up to date. Then I notice this</p>
<div id="attachment_284" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.wordpress.com/files/2009/03/clamav.png"><img class="size-medium wp-image-284" title="clamav" src="http://linuxd.wordpress.com/files/2009/03/clamav.png?w=300" alt="Still no boner" width="300" height="220" /></a><p class="wp-caption-text">Still no boner</p></div>
<p>Think I&#8217;m gonna waste another second of my life with this just because it&#8217;s released under the GPL? Think again.</p>
<p>To install avast!, just <a href="http://www.avast.com/eng/download-avast-for-linux-edition.html" target="_blank">go to the website</a> and download and install the deb. Don&#8217;t forget you need to register with them to have a valid key. You will find it in the accessories menu and it kinda looks like this:</p>
<div id="attachment_285" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.wordpress.com/files/2009/03/avast.png"><img class="size-medium wp-image-285" title="avast" src="http://linuxd.wordpress.com/files/2009/03/avast.png?w=300" alt="Strange ain't it?" width="300" height="187" /></a><p class="wp-caption-text">Strange ain&#39;t it?</p></div>
<p>AVG you can get <a href="http://free.avg.com/download?prd=afl" target="_blank">here</a>. Nothing to point out, also appears in accessories. Now when you try to update it says &#8220;No permission to run whatever&#8221;. For a while there I thought they didn&#8217;t really mean permission, but turns out they do. You need to run it as root to update. Damn fine work AVG, real good. Fuckin assholes. Run sudo avggui in the console, or, alternatevely, right click the applications menu and go to &#8220;edit menus&#8221;. There, find avg, right click properties. Then on the command instead of &#8220;avggui&#8221; put &#8220;gksu avggui&#8221; and you&#8217;ll never have to think about this again. Here&#8217;s the screen.</p>
<div id="attachment_287" class="wp-caption aligncenter" style="width: 310px"><a href="http://linuxd.wordpress.com/files/2009/03/avg.png"><img class="size-medium wp-image-287" title="avg" src="http://linuxd.wordpress.com/files/2009/03/avg.png?w=300" alt="Good thing you warn me of that shit on every single fuckin start" width="300" height="187" /></a><p class="wp-caption-text">Good thing you warn me of that shit on every single fuckin start</p></div>
<p>What&#8217;s the conclusion? I&#8217;m dying to go back to linux and get away from 2h30m worth of throughout anti virus and spyware scans, but I need hired geeks to make my laptop run sweet agai<strong>n.</strong></p>
<p><strong><br />
</strong></p>
<p><strong>Follow-up</strong>: Linux Format <a href="http://www.tuxradar.com/content/bitdefender-antivirus-unices" target="_blank">recommends BitDefender</a>. Looks ok, probably worth a shot.</p>
</div>]]></content:encoded>
</item>
<item>
<title><![CDATA[Erro LAST_UPDATED2]]></title>
<link>http://eduaranha.wordpress.com/2009/03/05/erro-last_updated2/</link>
<pubDate>Thu, 05 Mar 2009 00:05:35 +0000</pubDate>
<dc:creator>Eduardo Aranha</dc:creator>
<guid>http://eduaranha.wordpress.com/2009/03/05/erro-last_updated2/</guid>
<description><![CDATA[Se você atualizou seu Joomla! provalvelmente deve ter notado uma string “LAST_UPDATED2″ no frontend ]]></description>
<content:encoded><![CDATA[<div class='snap_preview'><p>Se você atualizou seu Joomla! provalvelmente deve ter notado uma string  “<strong>LAST_UPDATED2</strong>″ no frontend no lugar onde deveria aparecer a data da última  atualização.</p>
<p>Para resolver este problema é muito simples.<br />
Abra o arquivo <strong>pt-BR.ini</strong> na pasta <strong>language/pt-BR</strong> e adicione a string:</p>
<p><strong>- LAST_UPDATED2=última atualização em %s</strong> abaixo de <strong>LAST UPDATED=última atualização</strong></p>
<p>Deve aparecer assim:</p>
<p><strong>LAST UPDATED=última atualização<br />
LAST_UPDATED2=última atualização  em %s</strong></p>
</div>]]></content:encoded>
</item>

</channel>
</rss>
