<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Weblog for am4computers.com</title>
	<atom:link href="http://am4computers.com/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://am4computers.com/wordpress</link>
	<description>- Weblog for am4computers.com -</description>
	<pubDate>Thu, 02 Sep 2010 02:06:15 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>RTL support in OpenERP 5.0.11 and openSuSE 11.1 64 bits server.</title>
		<link>http://am4computers.com/wordpress/archives/258</link>
		<comments>http://am4computers.com/wordpress/archives/258#comments</comments>
		<pubDate>Thu, 02 Sep 2010 02:03:34 +0000</pubDate>
		<dc:creator>am4computers</dc:creator>
		
		<category><![CDATA[How-To]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Arabic]]></category>

		<category><![CDATA[openERP]]></category>

		<category><![CDATA[openSuSE 11.1]]></category>

		<category><![CDATA[ReportLap]]></category>

		<category><![CDATA[RTL]]></category>

		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://am4computers.com/wordpress/?p=258</guid>
		<description><![CDATA[Today, we managed to implement a solution that allows RTL Arabic support for OpenERP 5.0.11 reporting engine on our openSuSE 11.1 64 bits server.
It has to do with enabling RTL in ReportLab, which is used by OpenERP to produce PDF reports. Also, OpenERP server code has to be patched to allow it to identify RTL [...]]]></description>
			<content:encoded><![CDATA[<p>Today, we managed to implement a solution that allows RTL Arabic support for OpenERP 5.0.11 reporting engine on our openSuSE 11.1 64 bits server.</p>
<p>It has to do with enabling RTL in ReportLab, which is used by OpenERP to produce PDF reports. Also, OpenERP server code has to be patched to allow it to identify RTL and LTR test direction. OpenERP reporting engine is by default recognizes LTR only. </p>
<p>Support for unicode characters has to be enabled to allow the display of Arab and Hebrew characters.</p>
<p>No more details can be provided as although the solution is open source, we don&#8217;t have the permission from the author to publish it.</p>
]]></content:encoded>
			<wfw:commentRss>http://am4computers.com/wordpress/archives/258/feed</wfw:commentRss>
		</item>
		<item>
		<title>COPY - Enabling Arabic Support in OpenERP Reports - COPY</title>
		<link>http://am4computers.com/wordpress/archives/246</link>
		<comments>http://am4computers.com/wordpress/archives/246#comments</comments>
		<pubDate>Sun, 08 Aug 2010 07:46:10 +0000</pubDate>
		<dc:creator>am4computers</dc:creator>
		
		<category><![CDATA[How-To]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Arabic]]></category>

		<category><![CDATA[LTR]]></category>

		<category><![CDATA[openERP]]></category>

		<category><![CDATA[ReportLap]]></category>

		<category><![CDATA[RTL]]></category>

		<category><![CDATA[Unicode]]></category>

		<guid isPermaLink="false">http://am4computers.com/wordpress/?p=246</guid>
		<description><![CDATA[Below post is just a copy of http://brain.centrivision.com/enterprise_applications/openerp/arabic_support :

OpenERP 5.0 relies on ReportLab 2.3 to create PDF reports. However, ReportLab 2.3 does not support  RTL languages, and thus OpenERP does not support them as well. The  following steps fix the issue in both ReportLab 2.3 and OpenERP 5.0.
Fixing ReportLab

To enable RTL language support [...]]]></description>
			<content:encoded><![CDATA[<p>Below post is just a copy of <a href="http://brain.centrivision.com/enterprise_applications/openerp/arabic_support">http://brain.centrivision.com/enterprise_applications/openerp/arabic_support</a> :<a id="enabling_arabic_support_in_openerp_reports" name="enabling_arabic_support_in_openerp_reports"></a></p>
<div class="level1">
<p><span style="color: #000000;"><strong style="color: black; background-color: #ffff66;">OpenERP</strong> 5.0 relies on ReportLab 2.3 to create <acronym title="Portable Document  Format">PDF</acronym> reports. However, ReportLab 2.3 does not support  RTL languages, and thus <strong style="color: black; background-color: #ffff66;">OpenERP</strong> does not support them as well. The  following steps fix the issue in both ReportLab 2.3 and <strong style="color: black; background-color: #ffff66;">OpenERP</strong> 5.0.</span></div>
<h2><a id="fixing_reportlab" name="fixing_reportlab">Fixing ReportLab</a></h2>
<div class="level2">
<p>To enable RTL language support in ReportLab 2.3, we need to modify some  of its code, and build two supporting libraries, namely FriBiDi2 and  PyFribidi2.</p></div>
<h3><a id="building_dependencies" name="building_dependencies">Building  Dependencies</a></h3>
<div class="level3">
<p>The following steps were tested on Ubuntu 9.04 (Jaunty). First, remove  older libraries and install libraries necessary for building the new  sources.</p>
<pre class="code bash"><span class="kw2">sudo</span> <span class="kw2">apt-get</span> purge libfribidi0 python-pyfribidi <span class="sy0">&amp;&amp;</span> <span class="kw2">sudo</span> <span class="kw2">apt-get</span> <span class="kw2">install</span> <span class="kw2">autoconf</span> <span class="kw2">gcc</span></pre>
<p>Second, download <a class="urlextern" title="http://www.fribidi.org/" rel="nofollow" href="http://www.fribidi.org/">FriBiDi2</a> (the latest  at the time of writing is <code><a class="urlextern" title="http://fribidi.org/download/fribidi-0.19.2.tar.gz" rel="nofollow" href="http://fribidi.org/download/fribidi-0.19.2.tar.gz">fribidi-0.19.2</a></code>),  extract it, open a shell in the extracted directory and execute the  following command:</p>
<pre class="code bash">.<span class="sy0">/</span>configure <span class="sy0">&amp;&amp;</span> <span class="kw2">make</span> <span class="sy0">&amp;&amp;</span> <span class="kw2">sudo</span> <span class="kw2">make</span> <span class="kw2">install</span></pre>
<p>Next, download <a class="urlextern" title="http://pyfribidi.sourceforge.net/" rel="nofollow" href="http://pyfribidi.sourceforge.net/">PyFribidi2</a> (the latest at the time of writing is <code><a class="urlextern" title="http://sourceforge.net/projects/pyfribidi/files/pyfribidi2/pyfribidi2-0.8.0/pyfribidi2-0.8.0.tar.gz/download" rel="nofollow" href="http://sourceforge.net/projects/pyfribidi/files/pyfribidi2/pyfribidi2-0.8.0/pyfribidi2-0.8.0.tar.gz/download">pyfribidi2-0.8.0</a></code>), extract it, open a shell  in the extracted directory and execute the following command:</p>
<pre class="code bash"><span class="kw2">sed</span> <span class="re5">-i</span> <span class="re5">-r</span> <span class="st0">'s/<span class="es0">\b</span>fribidi2(<span class="es0">\b</span>|_)/fribidi<span class="es0">\1</span>/g'</span> configure.in configure setup.py

<span class="br0">[</span> <span class="sy0">`</span>python <span class="re5">-c</span> <span class="st0">'import sys; print sys.version[:3]'</span><span class="sy0">`</span> == <span class="st0">'2.6'</span> <span class="br0">]</span>
<span class="sy0">&amp;&amp;</span> <span class="kw2">sed</span> <span class="re5">-i</span> <span class="re5">-r</span> <span class="st0">'s/<span class="es0">\b</span>site-packages<span class="es0">\b</span>/dist-packages/g'</span> configure configure.in

.<span class="sy0">/</span>configure <span class="sy0">&amp;&amp;</span> <span class="kw2">make</span> <span class="sy0">&amp;&amp;</span> <span class="kw2">sudo</span> <span class="kw2">make</span> <span class="kw2">install</span></pre>
<p>Finally, verify the installation by opening a shell, changing to the  home directory, starting the Python interpreter and importing <code>pyfribidi2</code>:</p>
<pre class="code python"><span class="kw3">cd</span>
python
<span class="sy0">&gt;&gt;&gt;</span> <span class="kw1">import</span> pyfribidi2</pre>
<p><em><strong>Note:</strong> If you get an error about <code>libfribidi.so.0</code> not being found, try to reboot your machine. If the error still  persists, you may need to edit <code>”/etc/ld.so.conf”</code>, adding  the following line at the end of the file: ”<code>/usr/local/lib</code>”  (without the quotes). Then run <code>`sudo ldconfig`</code>.</em></div>
<h3><a id="modifying_the_code" name="modifying_the_code">Modifying the  code</a></h3>
<div class="level3">
<p>Three files need to be modified in ReportLab&#8217;s code. The default  installation of ReportLab in Ubuntu with Python 2.6 places it in the  directory ”<code>/usr/lib/python2.6/dist-packages/reportlab/</code>”. We  will need to modify the files there using an editor that is run in  super user mode (e.g. <code>`sudo vim`</code>). I will refer to the  files below using the relative path in ReportLab&#8217;s director.</div>
<h4><a id="rl_config.py" name="rl_config.py">rl_config.py</a></h4>
<div class="level4">
<p>We need to modify the search path that ReportLab uses to search for  fonts to include the default path on Ubuntu.</p>
<p>In the variable <code>T1SearchPath</code>, add the following value as  the last element in the tuple (approximately at line 67):</p>
<pre class="code python"><span class="st0">'/usr/share/fonts/type1'</span>,</pre>
<p>Do the same for <code>TTFSearchPath</code>, adding the following value  as the last element in the tuple (approximately at line 85):</p>
<pre class="code python"><span class="st0">'/usr/share/fonts/truetype'</span>,</pre>
<p>And do the same for <code>CMapSearchPath</code>, adding the following  value as the last element in the tuple (approximately at line 113):</p>
<pre class="code python"><span class="st0">'/usr/share/fonts/cmap'</span>,</pre>
</div>
<h4><a id="pdfgentextobject.py" name="pdfgentextobject.py">pdfgen/textobject.py</a></h4>
<div class="level4">
<p>We need to import PyFribidi2 and call it before text is output to the <acronym title="Portable Document Format">PDF</acronym>.</p>
<p>Add the following lines after the import statements (approximately at  line 19):</p>
<pre class="code python"><span class="co1"># try to import pyfribidi</span>
<span class="kw1">try</span>:
    <span class="kw1">import</span> pyfribidi2 as pyfribidi
    log2vis = pyfribidi.<span class="me1">log2vis</span>
    DIR_ON = pyfribidi.<span class="me1">ON</span>
    DIR_LTR = pyfribidi.<span class="me1">LTR</span>
    DIR_RTL = pyfribidi.<span class="me1">RTL</span>
<span class="kw1">except</span>:
    <span class="kw1">import</span> <span class="kw3">warnings</span>
    <span class="kw3">warnings</span>.<span class="me1">warn</span><span class="br0">(</span><span class="st0">'pyfribidi is not installed - RTL not supported'</span><span class="br0">)</span>
    log2vis = <span class="kw2">None</span>
    DIR_ON = DIR_LTR = DIR_RTL = <span class="kw2">None</span></pre>
<p>Add a parameter to specify direction in <code>PDFTextObject.<em class="u">init</em></code> (approximately at line 135), so that the  method declaration becomes as follows:</p>
<pre class="code python">    <span class="kw1">def</span> <span class="kw4">__init__</span><span class="br0">(</span><span class="kw2">self</span>, canvas, x=0,y=0, direction = <span class="st0">'LTR'</span><span class="br0">)</span>:
        <span class="kw2">self</span>.<span class="me1">direction</span> = direction</pre>
<p>Finally, add a call to PyFribidi2 at the top of <code>PDFTextObject._formatText</code> (approximately at line 314), so that it becomes like this:</p>
<pre class="code python">    <span class="kw1">def</span> _formatText<span class="br0">(</span><span class="kw2">self</span>, text<span class="br0">)</span>:
        <span class="st0">"Generates PDF text output operator(s)"</span>
        <span class="co1"># Use pyfribidi to write the text in the correct visual order.</span>
        directions = <span class="br0">{</span> <span class="st0">'LTR'</span>: DIR_LTR, <span class="st0">'RTL'</span>: DIR_RTL <span class="br0">}</span>
        text = log2vis<span class="br0">(</span>text, directions.<span class="me1">get</span><span class="br0">(</span><span class="kw2">self</span>.<span class="me1">direction</span>, DIR_ON<span class="br0">)</span><span class="br0">)</span></pre>
</div>
<h4><a id="platypusparagraph.py" name="platypusparagraph.py">platypus/paragraph.py</a></h4>
<div class="level4">
<p>Right before the comment ”<code>#now the font for the rest of the  paragraph</code>”, add the following lines (approximately at line 1337):</p>
<pre class="code python">                <span class="co1"># set the paragraph direction</span>
                <span class="kw1">if</span> <span class="kw2">self</span>.<span class="me1">style</span>.<span class="me1">wordWrap</span> == <span class="st0">'RTL'</span>:
                    tx.<span class="me1">direction</span> = <span class="st0">'RTL'</span></pre>
</div>
<h2><a id="fixing_openerp" name="fixing_openerp">Fixing <strong style="color: black; background-color: #ffff66;">OpenERP</strong></a></h2>
<div class="level2">
<p>The fixes below have been adapted from the <a class="urlextern" title="http://openobject.com/wiki/index.php/Developers:Developper's_Book/Reports/ReportsUnicode" rel="nofollow" href="http://openobject.com/wiki/index.php/Developers:Developper%27s_Book/Reports/ReportsUnicode">ReportsUnicode</a> wiki on OpenObject&#8217;s website.  However, the code in the wiki does not work correctly, so I have fixed a  few things in it (and will hopefully fix the wiki soon). Only two files  need to be changed: <code>”[bin/]<strong style="color: black; background-color: #99ff99;">report</strong>/render/rml2pdf/<em class="u">init</em>.py”</code> and <code>”[bin/]<strong style="color: black; background-color: #99ff99;">report</strong>/render/rml2pdf/trml2pdf.py”</code>.</div>
<h4><a id="reportrenderrml2pdfinit_.py" name="reportrenderrml2pdfinit_.py"><strong style="color: black; background-color: #99ff99;">report</strong>/render/rml2pdf/__init__.py</a></h4>
<div class="level4">
<p>Replace the code in this file by the following code:</p>
<pre class="code python"><span class="kw1">import</span> <span class="kw3">os</span>, <span class="kw3">stat</span>
<span class="kw1">from</span> tools.<span class="me1">misc</span> <span class="kw1">import</span> debug
<span class="kw1">from</span> reportlab <span class="kw1">import</span> rl_config
<span class="kw1">from</span> reportlab.<span class="me1">pdfbase</span> <span class="kw1">import</span> pdfmetrics
<span class="kw1">from</span> reportlab.<span class="me1">pdfbase</span> <span class="kw1">import</span> ttfonts
<span class="kw1">from</span> reportlab.<span class="me1">lib</span>.<span class="me1">fonts</span> <span class="kw1">import</span> addMapping

<span class="kw1">def</span> rl_isreg<span class="br0">(</span>filename, dirname<span class="br0">)</span>:
    <span class="kw1">try</span>:
        st = <span class="kw3">os</span>.<span class="kw3">stat</span><span class="br0">(</span><span class="kw3">os</span>.<span class="me1">path</span>.<span class="me1">join</span><span class="br0">(</span>dirname, filename<span class="br0">)</span><span class="br0">)</span>
    <span class="kw1">except</span> <span class="kw2">OSError</span>, reason:
        <span class="kw1">if</span> reason.<span class="kw3">errno</span> == <span class="nu0">2</span>:
            <span class="kw1">return</span> <span class="kw2">False</span>
        <span class="kw1">raise</span>
    <span class="kw1">return</span> <span class="kw3">stat</span>.<span class="me1">S_ISREG</span><span class="br0">(</span>st.<span class="me1">st_mode</span><span class="br0">)</span> <span class="kw1">or</span> <span class="kw3">stat</span>.<span class="me1">S_ISLNK</span><span class="br0">(</span>st.<span class="me1">st_mode</span><span class="br0">)</span>

<span class="kw1">for</span> dirname <span class="kw1">in</span> rl_config.<span class="me1">TTFSearchPath</span>:
    <span class="kw1">for</span> root, dirs, files <span class="kw1">in</span> <span class="kw3">os</span>.<span class="me1">walk</span><span class="br0">(</span>dirname<span class="br0">)</span>: <span class="co1">#@UnusedVariable</span>
        <span class="kw1">for</span> <span class="kw2">file</span> <span class="kw1">in</span> <span class="br0">[</span>x <span class="kw1">for</span> x <span class="kw1">in</span> files
                     <span class="kw1">if</span> x.<span class="me1">lower</span><span class="br0">(</span><span class="br0">)</span>.<span class="me1">endswith</span><span class="br0">(</span><span class="st0">'.ttf'</span><span class="br0">)</span> <span class="kw1">and</span> rl_isreg<span class="br0">(</span>x, root<span class="br0">)</span>
                     <span class="br0">]</span>:
            filename = <span class="kw3">os</span>.<span class="me1">path</span>.<span class="me1">join</span><span class="br0">(</span>root, <span class="kw2">file</span><span class="br0">)</span>
            <span class="kw1">try</span>:
                face = ttfonts.<span class="me1">TTFontFace</span><span class="br0">(</span>filename<span class="br0">)</span>
                face.<span class="me1">extractInfo</span><span class="br0">(</span><span class="nu0">1</span><span class="br0">)</span>
                pdfmetrics.<span class="me1">registerFont</span><span class="br0">(</span>ttfonts.<span class="me1">TTFont</span><span class="br0">(</span>face.<span class="me1">name</span>, filename, asciiReadable=0<span class="br0">)</span><span class="br0">)</span>
                addMapping<span class="br0">(</span>face.<span class="me1">familyName</span>, face.<span class="me1">bold</span>, face.<span class="me1">italic</span>, face.<span class="me1">name</span><span class="br0">)</span>
            <span class="kw1">except</span>:
                <span class="kw1">pass</span>

<span class="kw1">from</span> trml2pdf <span class="kw1">import</span> parseString, parseNode</pre>
</div>
<h4><a id="reportrenderrml2pdftrml2pdf.py" name="reportrenderrml2pdftrml2pdf.py"><strong style="color: black; background-color: #99ff99;">report</strong>/render/rml2pdf/trml2pdf.py</a></h4>
<div class="level4">
<p>Right before the <code>parseNode</code> function, add the following  function (approximately at line 777). It replaces a number of standard <acronym title="Portable Document Format">PDF</acronym> fonts with alternatives  that support Unicode characters. I haven&#8217;t tried all of them, but  Helvetica –&gt; DejaVuSans works for me.</p>
<pre class="code python"><span class="kw1">def</span> changeFonts<span class="br0">(</span>data<span class="br0">)</span>:
    fontmap = <span class="br0">{</span>
        <span class="st0">'Times-Roman'</span>:                   <span class="st0">'DejaVuSerif'</span>,
        <span class="st0">'Times-BoldItalic'</span>:              <span class="st0">'DejaVuSerif-BoldItalic'</span>,
        <span class="st0">'Times-Bold'</span>:                    <span class="st0">'DejaVuSerif-Bold'</span>,
        <span class="st0">'Times-Italic'</span>:                  <span class="st0">'DejaVuSerif-Italic'</span>,

        <span class="st0">'Helvetica'</span>:                     <span class="st0">'DejaVuSans'</span>,
        <span class="st0">'Helvetica-BoldItalic'</span>:          <span class="st0">'DejaVuSans-BoldOblique'</span>,
        <span class="st0">'Helvetica-Bold'</span>:                <span class="st0">'DejaVuSans-Bold'</span>,
        <span class="st0">'Helvetica-Italic'</span>:              <span class="st0">'DejaVuSans-Oblique'</span>,

        <span class="st0">'Courier'</span>:                       <span class="st0">'DejaVuSansMono'</span>,
        <span class="st0">'Courier-Bold'</span>:                  <span class="st0">'DejaVuSansMono-Bold'</span>,
        <span class="st0">'Courier-BoldItalic'</span>:            <span class="st0">'DejaVuSansMono-BoldOblique'</span>,
        <span class="st0">'Courier-Italic'</span>:                <span class="st0">'DejaVuSansMono-Oblique'</span>,

        <span class="st0">'Helvetica-ExtraLight'</span>:          <span class="st0">'DejaVuSans-ExtraLight'</span>,

        <span class="st0">'TimesCondensed-Roman'</span>:          <span class="st0">'DejaVuSerifCondensed'</span>,
        <span class="st0">'TimesCondensed-BoldItalic'</span>:     <span class="st0">'DejaVuSerifCondensed-BoldItalic'</span>,
        <span class="st0">'TimesCondensed-Bold'</span>:           <span class="st0">'DejaVuSerifCondensed-Bold'</span>,
        <span class="st0">'TimesCondensed-Italic'</span>:         <span class="st0">'DejaVuSerifCondensed-Italic'</span>,

        <span class="st0">'HelveticaCondensed'</span>:            <span class="st0">'DejaVuSansCondensed'</span>,
        <span class="st0">'HelveticaCondensed-BoldItalic'</span>: <span class="st0">'DejaVuSansCondensed-BoldOblique'</span>,
        <span class="st0">'HelveticaCondensed-Bold'</span>:       <span class="st0">'DejaVuSansCondensed-Bold'</span>,
        <span class="st0">'HelveticaCondensed-Italic'</span>:     <span class="st0">'DejaVuSansCondensed-Oblique'</span>,
    <span class="br0">}</span>
    <span class="kw1">for</span> old, <span class="kw3">new</span> <span class="kw1">in</span> fontmap.<span class="me1">iteritems</span><span class="br0">(</span><span class="br0">)</span>:
        data = data.<span class="me1">replace</span><span class="br0">(</span><span class="st0">'"'</span>+old+<span class="st0">'"'</span>, <span class="st0">'"'</span>+<span class="kw3">new</span>+<span class="st0">'"'</span><span class="br0">)</span>
    <span class="kw1">return</span> data</pre>
<p>Then, put the following line at the very top of each of <code>parseNode</code> and <code>parseString</code> (approximately at lines 812 and 820),  before the call <code>eTree.<acronym title="Extensible Markup Language">XML</acronym>(rml)</code>:</p>
<pre class="code python">    rml = changeFonts<span class="br0">(</span>rml<span class="br0">)</span></pre>
</div>
<h4><a id="reportrenderrml2pdftrml2pdf.py1" name="reportrenderrml2pdftrml2pdf.py1"><strong style="color: black; background-color: #99ff99;">report</strong>/render/rml2pdf/trml2pdf.py</a></h4>
<div class="level4">
<p>(Tested on <strong style="color: black; background-color: #ffff66;">OpenERP</strong> Server 5.0.5 only)</p>
<p>In the method <code>_rml_flowable._textual</code>, modify the line that  reads <code>rc1 += etree.tostring(txt_n, encoding=unicode)</code> (approximately at line 460) to become:</p>
<pre class="code python">                rc1 += etree.<span class="me1">tostring</span><span class="br0">(</span>txt_n, encoding=<span class="kw2">unicode</span><span class="br0">)</span></pre>
<p>That should be all. <strong style="color: black; background-color: #ffff66;">OpenERP</strong> should be all set and ready for creating <strong style="color: black; background-color: #a0ffff;">Arabic</strong> reports.</div>
]]></content:encoded>
			<wfw:commentRss>http://am4computers.com/wordpress/archives/246/feed</wfw:commentRss>
		</item>
		<item>
		<title>HP IPG Laserjet printing supplies packaging changes</title>
		<link>http://am4computers.com/wordpress/archives/244</link>
		<comments>http://am4computers.com/wordpress/archives/244#comments</comments>
		<pubDate>Sat, 31 Jul 2010 09:32:41 +0000</pubDate>
		<dc:creator>am4computers</dc:creator>
		
		<category><![CDATA[IT News]]></category>

		<category><![CDATA[HP]]></category>

		<category><![CDATA[laserjet]]></category>

		<guid isPermaLink="false">http://am4computers.com/wordpress/?p=244</guid>
		<description><![CDATA[HP will roll the packaging of HP LaserJet print cartridges to a new design to align IPG portfolio for consistent premium brand communication via a consistent packaging identity and retail experience.
All HP LaserJet monochrome AND colour print cartridge packaging will include a new selectability number. Monochrome has a 2-digit number &#038; Colour a 3-digit number.
First [...]]]></description>
			<content:encoded><![CDATA[<p>HP will roll the packaging of HP LaserJet print cartridges to a new design to align IPG portfolio for consistent premium brand communication via a consistent packaging identity and retail experience.</p>
<p>All HP LaserJet monochrome AND colour print cartridge packaging will include a new selectability number. Monochrome has a 2-digit number &#038; Colour a 3-digit number.</p>
<p>First new packaging for monochrome already is shipping (July 2010), first colour cartridges scheduled to start as of August 2010.</p>
]]></content:encoded>
			<wfw:commentRss>http://am4computers.com/wordpress/archives/244/feed</wfw:commentRss>
		</item>
		<item>
		<title>Can a purchased domain’s history affect its trust with search engines ?</title>
		<link>http://am4computers.com/wordpress/archives/236</link>
		<comments>http://am4computers.com/wordpress/archives/236#comments</comments>
		<pubDate>Thu, 15 Jul 2010 23:56:21 +0000</pubDate>
		<dc:creator>am4computers</dc:creator>
		
		<category><![CDATA[Webmasters Tools]]></category>

		<category><![CDATA[domain]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[search engines]]></category>

		<category><![CDATA[spam]]></category>

		<guid isPermaLink="false">http://am4computers.com/wordpress/?p=236</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><object width="470" height="300" data="http://www.youtube.com/v/iKDlEKnT1Ko&amp;hl=en_US&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/iKDlEKnT1Ko&amp;hl=en_US&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://am4computers.com/wordpress/archives/236/feed</wfw:commentRss>
		</item>
		<item>
		<title>Batch converting audio files :</title>
		<link>http://am4computers.com/wordpress/archives/232</link>
		<comments>http://am4computers.com/wordpress/archives/232#comments</comments>
		<pubDate>Sat, 15 May 2010 23:38:00 +0000</pubDate>
		<dc:creator>am4computers</dc:creator>
		
		<category><![CDATA[How-To]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[media]]></category>

		<category><![CDATA[mp3]]></category>

		<category><![CDATA[ogg]]></category>

		<category><![CDATA[rm]]></category>

		<category><![CDATA[wav]]></category>

		<guid isPermaLink="false">http://am4computers.com/wordpress/?p=232</guid>
		<description><![CDATA[This script may be of interest and value :



File: convertomp3




#!/bin/bash
#
# Usage: convertomp3 fileextention
#
if [ $1 = "" ];then
  echo 'Please give a audio file extention as argument.'
  exit 1
fi

for i in *.$1
do
  if [ -f "$i" ]; then
  rm -f "$i.wav"
  mkfifo "$i.wav"
  mplayer \
   -quiet \
 [...]]]></description>
			<content:encoded><![CDATA[<p>This script may be of interest and value :</p>
<table style="background-color: #ffffe0; border: 1px solid #fffc20;" border="0" cellspacing="0" cellpadding="0" width="95%">
<tbody>
<tr>
<td style="background-color: #fffc20; border-bottom: 1px solid #a7a526;"><span><strong>File:</strong> convertomp3</span></td>
</tr>
<tr>
<td>
<div class="scroll">
<pre>#!/bin/bash
#
# Usage: convertomp3 fileextention
#
if [ $1 = "" ];then
  echo 'Please give a audio file extention as argument.'
  exit 1
fi

for i in *.$1
do
  if [ -f "$i" ]; then
  rm -f "$i.wav"
  mkfifo "$i.wav"
  mplayer \
   -quiet \
   -vo null \
   -vc dummy \
   -af volume=0,resample=44100:0:1 \
   -ao pcm:waveheader:file="$i.wav" "$i" &amp;
  dest=`echo "$i"|sed -e "s/$1$/mp3/"`
  lame -V0 -h -b 160 --vbr-new "$i.wav" "$dest"
  rm -f "$i.wav"
fi
done</pre>
</div>
</td>
</tr>
</tbody>
</table>
<p>Running <strong>convertomp3 wma</strong> will covert every .wma file in the  current folder to .mp3.</p>
]]></content:encoded>
			<wfw:commentRss>http://am4computers.com/wordpress/archives/232/feed</wfw:commentRss>
		</item>
		<item>
		<title>Oracle Outlines Strategy for MySQL</title>
		<link>http://am4computers.com/wordpress/archives/230</link>
		<comments>http://am4computers.com/wordpress/archives/230#comments</comments>
		<pubDate>Thu, 13 May 2010 22:45:36 +0000</pubDate>
		<dc:creator>am4computers</dc:creator>
		
		<category><![CDATA[IT News]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://am4computers.com/wordpress/?p=230</guid>
		<description><![CDATA[Edward Screven, Oracle&#8217;s Chief Corporate Architect, discussed the current and future state of MySQL in his keynote at the MySQL Conference &#38; Expo.
Watch this video on youtube :

]]></description>
			<content:encoded><![CDATA[<p>Edward Screven, Oracle&#8217;s Chief Corporate Architect, discussed the current and future state of MySQL in his keynote at the MySQL Conference &amp; Expo.</p>
<p>Watch this video on youtube :</p>
<p><object width="470" height="300"><param name="movie" value="http://www.youtube.com/v/C0OkjtlbqVs&#038;hl=en_US&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/C0OkjtlbqVs&#038;hl=en_US&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="470" height="300"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://am4computers.com/wordpress/archives/230/feed</wfw:commentRss>
		</item>
		<item>
		<title>Latest HP anti-counterfeit printing supplies report in Egypt</title>
		<link>http://am4computers.com/wordpress/archives/218</link>
		<comments>http://am4computers.com/wordpress/archives/218#comments</comments>
		<pubDate>Sat, 20 Mar 2010 00:01:44 +0000</pubDate>
		<dc:creator>am4computers</dc:creator>
		
		<category><![CDATA[IT News]]></category>

		<category><![CDATA[counterfeit]]></category>

		<category><![CDATA[Egypt]]></category>

		<category><![CDATA[HP]]></category>

		<guid isPermaLink="false">http://am4computers.com/wordpress/?p=218</guid>
		<description><![CDATA[Local authorities in Egypt has confiscated more than 70000 counterfeit HP product from the local market in the past few months. Find detailed report in Arabic here.
]]></description>
			<content:encoded><![CDATA[<p>Local authorities in Egypt has confiscated more than 70000 counterfeit HP product from the local market in the past few months. Find detailed report in Arabic <a href="http://am4computers.com/wordpress/wp-content/uploads/2010/03/rsu-egypt-arabic-february-20101.pdf">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://am4computers.com/wordpress/archives/218/feed</wfw:commentRss>
		</item>
		<item>
		<title>No more Internet Explorer 6</title>
		<link>http://am4computers.com/wordpress/archives/205</link>
		<comments>http://am4computers.com/wordpress/archives/205#comments</comments>
		<pubDate>Sat, 06 Mar 2010 05:41:00 +0000</pubDate>
		<dc:creator>am4computers</dc:creator>
		
		<category><![CDATA[IT News]]></category>

		<category><![CDATA[Microsoft]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Security]]></category>

		<category><![CDATA[Web Browsers]]></category>

		<category><![CDATA[IE6]]></category>

		<category><![CDATA[Internet Explorer]]></category>

		<guid isPermaLink="false">http://am4computers.com/wordpress/?p=205</guid>
		<description><![CDATA[As of March 1st, 2010, Google has dropped support for Microsoft longest standing web browser, the IE6. Meaning that Google docs, Google Apps, Gmail and all other Google services will no longer support the ageing browser in an effort to introduce new features to these services.
]]></description>
			<content:encoded><![CDATA[<p>As of March 1st, 2010, Google has dropped support for Microsoft longest standing web browser, the IE6. Meaning that Google docs, Google Apps, Gmail and all other Google services will no longer support the ageing browser in an effort to introduce new features to these services.</p>
]]></content:encoded>
			<wfw:commentRss>http://am4computers.com/wordpress/archives/205/feed</wfw:commentRss>
		</item>
		<item>
		<title>How to win against your competitors in the search engines war ??</title>
		<link>http://am4computers.com/wordpress/archives/198</link>
		<comments>http://am4computers.com/wordpress/archives/198#comments</comments>
		<pubDate>Fri, 19 Feb 2010 02:50:29 +0000</pubDate>
		<dc:creator>am4computers</dc:creator>
		
		<category><![CDATA[How-To]]></category>

		<category><![CDATA[google]]></category>

		<category><![CDATA[msn]]></category>

		<category><![CDATA[search engines]]></category>

		<category><![CDATA[yahoo]]></category>

		<guid isPermaLink="false">http://am4computers.com/wordpress/?p=198</guid>
		<description><![CDATA[Getting your website ranking as high as possible with major search engines is crucial for your business. It also gives you winning advantage against your competition. We will discuss in this article several factors that contribute to how high you can go on a search engine query result.
Please realize there is no such thing as [...]]]></description>
			<content:encoded><![CDATA[<p>Getting your website ranking as high as possible with major search engines is crucial for your business. It also gives you winning advantage against your competition. We will discuss in this article several factors that contribute to how high you can go on a search engine query result.</p>
<p>Please realize there is no such thing as a magic silver bullet that will vault you to the top of the search engines – if there were, everyone would know it, they would do it, and it would cease to work because of saturation.</p>
<p>Several strategies contribute to this, as you can see from the following. First, we will discuss the general strategies and techniques used with all major search engine. Then we will discuss the specific the specifics of what is currently working on each of the major search engines.</p>
<h3>Part One : General Guidelines</h3>
<h4>Choosing your domain name :</h4>
<p style="padding-left: 30px;">One of the most basic, yet critically important, strategies is to use your best keywords in your domain address. An example would look like&#8230;</p>
<p style="padding-left: 30px;">http://www.laptopshome.com<br />
http://www.notebooksforsale.com</p>
<p style="padding-left: 30px;">The reason for doing this is because search engines and directories assume the domain to be relevant to the keyword. It&#8217;s something that, in practicality, can&#8217;t be faked.</p>
<p style="padding-left: 30px;">Getting your keywords into your domain name is strategically critical and chances are it will only become even more important in the future. Remember, by registering all possible keyword combination domain names you can think of you not only have them available to your company when needed but you&#8217;ve also prevented your competition from securing them and using them against you.</p>
<p style="padding-left: 30px;">If your company name is your domain name, then that&#8217;s fine but you should still register all relevant keyword-rich domain names pertaining to your goods and services. This will give you the option of setting up specialized sites that place your services into the paths of the engines and directories.</p>
<h4>Getting Your Web Page Titles Right :</h4>
<p style="padding-left: 30px;">This is all about your pages &lt;TITLE&gt; tag. Note in mind that Title is the most important aspect of web page design in respects to scoring well on most search engines.</p>
<p style="padding-left: 30px;">Always make sure every word in your title is one that is likely to be used by a person when doing a keyword search for your business or service. AND, keep in mind that unless the name of your business is prominently recognized or likely to be used in a keyword search – something like &#8220;SONY cameras&#8221;, it does NOT belong in the Title tags.</p>
<h4>Keyword Selection Techniques :</h4>
<p style="padding-left: 30px;">Make a list of every possible search word (keyword) and search phrase (keyphrase) that your potential customers<br />
might use when looking for your information, product or service. Remember to include synonyms as well as the common misspellings of your keywords and pay particular attention to noun phrases. Next, use these keywords and keyphrases to find your competition on the top search engines.</p>
<h4>Keyword Relevancy :</h4>
<p style="padding-left: 30px;">Simply put, your keywords must be relevant to the contents, or theme of your web page.</p>
<h4>Keyword Density :</h4>
<p style="padding-left: 30px;">By this I mean the number of times your keyword(s) appear in relation to the other words on your web page.  Theoretically, a webpage that said only &#8220;Chicago&#8221; verses the &#8220;Eat at Chicago&#8217;s&#8230;&#8221; page would be given a higher score for the keyword Chicago due to a higher keyword density.</p>
<h4>Description Meta Tag :</h4>
<p style="padding-left: 30px;">The meta description tag is used by many engines as the summary for your site when listed in the search results. It&#8217;s what tells a real person whether or not your site is relevant to their search. You should view it as a sales presentation for your link. If the meta description tag entices the searcher they will, theoretically, click your link and visit your site. Obviously that&#8217;s the purpose for being listed in the search engine in the first place.</p>
<p style="padding-left: 30px;">Most search engines place a limit on the number of characters that a meta tag can contain. Once the limit is reached they typically ignore the rest of the tag contents. In general, 250 characters – including spaces and commas – is a good rule of thumb that falls within the guidelines of most engines.</p>
]]></content:encoded>
			<wfw:commentRss>http://am4computers.com/wordpress/archives/198/feed</wfw:commentRss>
		</item>
		<item>
		<title>FireFox 3.6 is finally here</title>
		<link>http://am4computers.com/wordpress/archives/194</link>
		<comments>http://am4computers.com/wordpress/archives/194#comments</comments>
		<pubDate>Fri, 22 Jan 2010 19:17:54 +0000</pubDate>
		<dc:creator>am4computers</dc:creator>
		
		<category><![CDATA[IT News]]></category>

		<category><![CDATA[Open Source]]></category>

		<category><![CDATA[Web Browsers]]></category>

		<category><![CDATA[Firefox]]></category>

		<category><![CDATA[mozi]]></category>

		<category><![CDATA[web-browser]]></category>

		<guid isPermaLink="false">http://am4computers.com/wordpress/?p=194</guid>
		<description><![CDATA[Firefox 3.6 has finally landed. Now you can try the latest web browser from Mozilla. The new version comes with some new features: speed, detection of outdated plugins and graphics personas. Most important feature of all is the added securities that makes it the safest browser to use.
You can try it for yourself after you [...]]]></description>
			<content:encoded><![CDATA[<p>Firefox 3.6 has finally landed. Now you can try the latest web browser from Mozilla. The new version comes with some new features: speed, detection of outdated plugins and graphics personas. Most important feature of all is the added securities that makes it the safest browser to use.</p>
<p>You can try it for yourself after you download it from here : <a href="www.getfirefox.com" target="_blank">www.getfirefox.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://am4computers.com/wordpress/archives/194/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
