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

<channel>
	<title>Silveira Neto &#187; PHP</title>
	<atom:link href="http://silveiraneto.net/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://silveiraneto.net</link>
	<description></description>
	<lastBuildDate>Fri, 09 Mar 2012 04:13:27 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Elgg metadata performance issue</title>
		<link>http://silveiraneto.net/2011/05/09/elgg-metadata-performance-issue/</link>
		<comments>http://silveiraneto.net/2011/05/09/elgg-metadata-performance-issue/#comments</comments>
		<pubDate>Mon, 09 May 2011 15:14:56 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[Elgg]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Social Network]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=3749</guid>
		<description><![CDATA[<a href="http://silveiraneto.net/2011/05/09/elgg-metadata-performance-issue/" title="Elgg metadata performance issue"></a>Elgg is a open source social networking framework. In my Elgg instance (1.7.2) I have some entities with a metadata called tags. One entity can have zero, one or many tags. Tags are strings. I&#8217;m trying to retrieve the last &#8230;<p class="read-more"><a href="http://silveiraneto.net/2011/05/09/elgg-metadata-performance-issue/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://silveiraneto.net/2011/05/09/elgg-metadata-performance-issue/" title="Elgg metadata performance issue"></a><p><img src="http://silveiraneto.net/wp-content/uploads/2011/05/gears_flickr_cc_by_wwarby.jpg" alt="" title="picture by William Warby http://www.flickr.com/photos/wwarby/4782904694/" width="640" height="480" class="aligncenter size-full wp-image-3754" /></p>
<p><a href="http://elgg.org">Elgg</a> is a open source social networking framework.</p>
<p>In my Elgg instance (1.7.2) I have some entities with a metadata called tags. One entity can have zero, one or many tags. Tags are strings.</p>
<p>I&#8217;m trying to retrieve the last updated files with the tags <em>tagA</em>, <em>tagB</em>, &#8230; <em>tagI</em> in a profile widget using this query like this:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$options</span> <span style="color: #339933;">=</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span>
    <span style="color: #0000ff;">&quot;types&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;object&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">&quot;subtypes&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;file&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">&quot;limit&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #cc66cc;">10</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">&quot;full_view&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">&quot;order_by&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;time_updated DESC&quot;</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">&quot;pagination&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">,</span>
    <span style="color: #0000ff;">&quot;metadata_name_value_pairs&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #990000;">Array</span> <span style="color: #009900;">&#40;</span>
                <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span> <span style="color: #339933;">=&gt;</span> tags<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;value&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;tagA&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;operands&quot;</span><span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;contains&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span> <span style="color: #339933;">=&gt;</span> tags<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;value&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;tagB&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;operands&quot;</span><span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;contains&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span> <span style="color: #339933;">=&gt;</span> tags<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;value&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;tagC&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;operands&quot;</span><span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;contains&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span> <span style="color: #339933;">=&gt;</span> tags<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;value&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;tagD&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;operands&quot;</span><span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;contains&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span> <span style="color: #339933;">=&gt;</span> tags<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;value&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;tagE&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;operands&quot;</span><span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;contains&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span> <span style="color: #339933;">=&gt;</span> tags<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;value&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;tagF&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;operands&quot;</span><span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;contains&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span> <span style="color: #339933;">=&gt;</span> tags<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;value&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;tagG&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;operands&quot;</span><span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;contains&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span> <span style="color: #339933;">=&gt;</span> tags<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;value&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;tagH&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;operands&quot;</span><span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;contains&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                <span style="color: #990000;">Array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;name&quot;</span> <span style="color: #339933;">=&gt;</span> tags<span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;value&quot;</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;tagI&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;operands&quot;</span><span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">&quot;contains&quot;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #b1b100;">echo</span> elgg_list_entities_from_metadata<span style="color: #009900;">&#40;</span><span style="color: #000088;">$options</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>This is enough to put MySQL at 100% of processor use and make Elgg to stop.</p>
<p><a href="http://silveiraneto.net/wp-content/uploads/2011/05/mysql-at-full-cpu.png"><img src="http://silveiraneto.net/wp-content/uploads/2011/05/mysql-at-full-cpu.png" alt="" title="mysql at full cpu" width="700" height="66" class="aligncenter size-full wp-image-3751" /></a></p>
<p>I&#8217;m using <a href="http://www.phpmyadmin.net/">phpMyAdmin</a> to monitor the database and <a href="http://www.wireshark.org/">Wireshark</a> to monitor the communication between Elgg and MySQL. I came to this SQL query:</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> <span style="color: #993333; font-weight: bold;">COUNT</span><span style="color: #66cc66;">&#40;</span><span style="color: #993333; font-weight: bold;">DISTINCT</span> e<span style="color: #66cc66;">.</span>guid<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> total
<span style="color: #993333; font-weight: bold;">FROM</span> elgg_entities e
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metadata n_table <span style="color: #993333; font-weight: bold;">ON</span> e<span style="color: #66cc66;">.</span>guid <span style="color: #66cc66;">=</span> n_table<span style="color: #66cc66;">.</span>entity_guid
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metadata n_table1 <span style="color: #993333; font-weight: bold;">ON</span> e<span style="color: #66cc66;">.</span>guid <span style="color: #66cc66;">=</span> n_table1<span style="color: #66cc66;">.</span>entity_guid
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msn1 <span style="color: #993333; font-weight: bold;">ON</span> n_table1<span style="color: #66cc66;">.</span>name_id <span style="color: #66cc66;">=</span> msn1<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msv1 <span style="color: #993333; font-weight: bold;">ON</span> n_table1<span style="color: #66cc66;">.</span>value_id <span style="color: #66cc66;">=</span> msv1<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metadata n_table2 <span style="color: #993333; font-weight: bold;">ON</span> e<span style="color: #66cc66;">.</span>guid <span style="color: #66cc66;">=</span> n_table2<span style="color: #66cc66;">.</span>entity_guid
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msn2 <span style="color: #993333; font-weight: bold;">ON</span> n_table2<span style="color: #66cc66;">.</span>name_id <span style="color: #66cc66;">=</span> msn2<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msv2 <span style="color: #993333; font-weight: bold;">ON</span> n_table2<span style="color: #66cc66;">.</span>value_id <span style="color: #66cc66;">=</span> msv2<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metadata n_table3 <span style="color: #993333; font-weight: bold;">ON</span> e<span style="color: #66cc66;">.</span>guid <span style="color: #66cc66;">=</span> n_table3<span style="color: #66cc66;">.</span>entity_guid
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msn3 <span style="color: #993333; font-weight: bold;">ON</span> n_table3<span style="color: #66cc66;">.</span>name_id <span style="color: #66cc66;">=</span> msn3<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msv3 <span style="color: #993333; font-weight: bold;">ON</span> n_table3<span style="color: #66cc66;">.</span>value_id <span style="color: #66cc66;">=</span> msv3<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metadata n_table4 <span style="color: #993333; font-weight: bold;">ON</span> e<span style="color: #66cc66;">.</span>guid <span style="color: #66cc66;">=</span> n_table4<span style="color: #66cc66;">.</span>entity_guid
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msn4 <span style="color: #993333; font-weight: bold;">ON</span> n_table4<span style="color: #66cc66;">.</span>name_id <span style="color: #66cc66;">=</span> msn4<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msv4 <span style="color: #993333; font-weight: bold;">ON</span> n_table4<span style="color: #66cc66;">.</span>value_id <span style="color: #66cc66;">=</span> msv4<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metadata n_table5 <span style="color: #993333; font-weight: bold;">ON</span> e<span style="color: #66cc66;">.</span>guid <span style="color: #66cc66;">=</span> n_table5<span style="color: #66cc66;">.</span>entity_guid
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msn5 <span style="color: #993333; font-weight: bold;">ON</span> n_table5<span style="color: #66cc66;">.</span>name_id <span style="color: #66cc66;">=</span> msn5<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msv5 <span style="color: #993333; font-weight: bold;">ON</span> n_table5<span style="color: #66cc66;">.</span>value_id <span style="color: #66cc66;">=</span> msv5<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metadata n_table6 <span style="color: #993333; font-weight: bold;">ON</span> e<span style="color: #66cc66;">.</span>guid <span style="color: #66cc66;">=</span> n_table6<span style="color: #66cc66;">.</span>entity_guid
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msn6 <span style="color: #993333; font-weight: bold;">ON</span> n_table6<span style="color: #66cc66;">.</span>name_id <span style="color: #66cc66;">=</span> msn6<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msv6 <span style="color: #993333; font-weight: bold;">ON</span> n_table6<span style="color: #66cc66;">.</span>value_id <span style="color: #66cc66;">=</span> msv6<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metadata n_table7 <span style="color: #993333; font-weight: bold;">ON</span> e<span style="color: #66cc66;">.</span>guid <span style="color: #66cc66;">=</span> n_table7<span style="color: #66cc66;">.</span>entity_guid
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msn7 <span style="color: #993333; font-weight: bold;">ON</span> n_table7<span style="color: #66cc66;">.</span>name_id <span style="color: #66cc66;">=</span> msn7<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msv7 <span style="color: #993333; font-weight: bold;">ON</span> n_table7<span style="color: #66cc66;">.</span>value_id <span style="color: #66cc66;">=</span> msv7<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metadata n_table8 <span style="color: #993333; font-weight: bold;">ON</span> e<span style="color: #66cc66;">.</span>guid <span style="color: #66cc66;">=</span> n_table8<span style="color: #66cc66;">.</span>entity_guid
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msn8 <span style="color: #993333; font-weight: bold;">ON</span> n_table8<span style="color: #66cc66;">.</span>name_id <span style="color: #66cc66;">=</span> msn8<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msv8 <span style="color: #993333; font-weight: bold;">ON</span> n_table8<span style="color: #66cc66;">.</span>value_id <span style="color: #66cc66;">=</span> msv8<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metadata n_table9 <span style="color: #993333; font-weight: bold;">ON</span> e<span style="color: #66cc66;">.</span>guid <span style="color: #66cc66;">=</span> n_table9<span style="color: #66cc66;">.</span>entity_guid
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msn9 <span style="color: #993333; font-weight: bold;">ON</span> n_table9<span style="color: #66cc66;">.</span>name_id <span style="color: #66cc66;">=</span> msn9<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">JOIN</span> elgg_metastrings msv9 <span style="color: #993333; font-weight: bold;">ON</span> n_table9<span style="color: #66cc66;">.</span>value_id <span style="color: #66cc66;">=</span> msv9<span style="color: #66cc66;">.</span>id
<span style="color: #993333; font-weight: bold;">WHERE</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>msn1<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tags'</span>
         <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #993333; font-weight: bold;">BINARY</span> msv1<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tagA'</span>
         <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
              <span style="color: #993333; font-weight: bold;">AND</span> n_table1<span style="color: #66cc66;">.</span>enabled<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'yes'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>msn2<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tags'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #993333; font-weight: bold;">BINARY</span> msv2<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tagB'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
                  <span style="color: #993333; font-weight: bold;">AND</span> n_table2<span style="color: #66cc66;">.</span>enabled<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'yes'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>msn3<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tags'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #993333; font-weight: bold;">BINARY</span> msv3<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tagC'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
                  <span style="color: #993333; font-weight: bold;">AND</span> n_table3<span style="color: #66cc66;">.</span>enabled<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'yes'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>msn4<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tags'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #993333; font-weight: bold;">BINARY</span> msv4<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tagD'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
                  <span style="color: #993333; font-weight: bold;">AND</span> n_table4<span style="color: #66cc66;">.</span>enabled<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'yes'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>msn5<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tags'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #993333; font-weight: bold;">BINARY</span> msv5<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tagE'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
                  <span style="color: #993333; font-weight: bold;">AND</span> n_table5<span style="color: #66cc66;">.</span>enabled<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'yes'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>msn6<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tags'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #993333; font-weight: bold;">BINARY</span> msv6<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tagF'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
                  <span style="color: #993333; font-weight: bold;">AND</span> n_table6<span style="color: #66cc66;">.</span>enabled<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'yes'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>msn7<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tags'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #993333; font-weight: bold;">BINARY</span> msv7<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tagG'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
                  <span style="color: #993333; font-weight: bold;">AND</span> n_table7<span style="color: #66cc66;">.</span>enabled<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'yes'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>msn8<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tags'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #993333; font-weight: bold;">BINARY</span> msv8<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tagH'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
                  <span style="color: #993333; font-weight: bold;">AND</span> n_table8<span style="color: #66cc66;">.</span>enabled<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'yes'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
        <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>msn9<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tags'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #993333; font-weight: bold;">BINARY</span> msv9<span style="color: #66cc66;">.</span>string <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'tagI'</span>
             <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
                  <span style="color: #993333; font-weight: bold;">AND</span> n_table9<span style="color: #66cc66;">.</span>enabled<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'yes'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span>e<span style="color: #66cc66;">.</span><span style="color: #993333; font-weight: bold;">TYPE</span> <span style="color: #66cc66;">=</span> <span style="color: #ff0000;">'object'</span>
        <span style="color: #993333; font-weight: bold;">AND</span> e<span style="color: #66cc66;">.</span>subtype <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span>e<span style="color: #66cc66;">.</span>site_guid <span style="color: #993333; font-weight: bold;">IN</span> <span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
  <span style="color: #993333; font-weight: bold;">AND</span> <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span> <span style="color: #66cc66;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #66cc66;">&#41;</span>
       <span style="color: #993333; font-weight: bold;">AND</span> e<span style="color: #66cc66;">.</span>enabled<span style="color: #66cc66;">=</span><span style="color: #ff0000;">'yes'</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>A special thanks to the SQL formatting service <a href="http://sqlformat.appspot.com/">SQLformat.appspot.com</a>.</p>
<p>When I try to retrieve up to 4 tags I can get a response fairly quickly but more than that the response time seems to exponentially grow.</p>
<p>Any clues?</p>
<p>The workaround I&#8217;ll try now is to retrieve entities by each tag and them sort by myself.</p>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2011/05/09/elgg-metadata-performance-issue/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP: array, all elements but first</title>
		<link>http://silveiraneto.net/2011/03/09/php-array-all-elements-but-first/</link>
		<comments>http://silveiraneto.net/2011/03/09/php-array-all-elements-but-first/#comments</comments>
		<pubDate>Wed, 09 Mar 2011 15:52:13 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[array]]></category>
		<category><![CDATA[array_shift]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=3694</guid>
		<description><![CDATA[<a href="http://silveiraneto.net/2011/03/09/php-array-all-elements-but-first/" title="PHP: array, all elements but first"></a>$bric = array&#40;&#34;Brazil&#34;, &#34;Russia&#34;, &#34;India&#34;, &#34;China&#34;&#41;; $ric = $bric; // array copy $br = array_shift&#40;$ric&#41;; // left shift at $ric. $br stores &#34;Brazil&#34; print_r&#40;$bric&#41;; // $bric remains the same print_r&#40;$ric&#41;; // $ric lost &#34;Brazil&#34; Output: Array &#40; &#91;0&#93; =&#62; Brazil &#8230;<p class="read-more"><a href="http://silveiraneto.net/2011/03/09/php-array-all-elements-but-first/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://silveiraneto.net/2011/03/09/php-array-all-elements-but-first/" title="PHP: array, all elements but first"></a>
<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000088;">$bric</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Brazil&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;Russia&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;India&quot;</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">&quot;China&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #000088;">$ric</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$bric</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// array copy</span>
<span style="color: #000088;">$br</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array_shift</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ric</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// left shift at $ric. $br stores &quot;Brazil&quot; </span>
<span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$bric</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// $bric remains the same</span>
<span style="color: #990000;">print_r</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$ric</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// $ric lost &quot;Brazil&quot;</span></pre></div></div>

<p>Output:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">Array</span>
<span style="color: #009900;">&#40;</span>
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Brazil
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Russia
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> India
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> China
<span style="color: #009900;">&#41;</span>
<span style="color: #990000;">Array</span>
<span style="color: #009900;">&#40;</span>
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> Russia
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> India
    <span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=&gt;</span> China
<span style="color: #009900;">&#41;</span></pre></div></div>

<p>Reference: <a href="http://php.net/manual/en/function.array-shift.php">PHP array_shift at php.net</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2011/03/09/php-array-all-elements-but-first/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Free Zend Framework Poster</title>
		<link>http://silveiraneto.net/2009/11/21/free-zend-framework-poster/</link>
		<comments>http://silveiraneto.net/2009/11/21/free-zend-framework-poster/#comments</comments>
		<pubDate>Sat, 21 Nov 2009 12:23:03 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[free stuff]]></category>
		<category><![CDATA[Mayflower]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=2954</guid>
		<description><![CDATA[<a href="http://silveiraneto.net/2009/11/21/free-zend-framework-poster/" title="Free Zend Framework Poster"></a>Hi guys from Mayflower! Thanks for the free Zend Framework poster. It&#8217;s great.]]></description>
			<content:encoded><![CDATA[<a href="http://silveiraneto.net/2009/11/21/free-zend-framework-poster/" title="Free Zend Framework Poster"></a><p><a title="poster zend by Silveira Neto, on Flickr" href="http://www.flickr.com/photos/silveiraneto/4121237499/"><img class="aligncenter" src="http://farm3.static.flickr.com/2707/4121237499_5bf6d69599.jpg" alt="poster zend" width="500" height="375" /></a></p>
<p>Hi guys from <a title="Mayflower" href="http://blog.thinkphp.de/archives/399-Mayflower-loves-Zend-Framework.html">Mayflower</a>! Thanks for the free Zend Framework poster. It&#8217;s great.</p>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2009/11/21/free-zend-framework-poster/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>1º Encontro CEJUG/CEPUG em Iguatu</title>
		<link>http://silveiraneto.net/2008/11/03/1%c2%ba-encontro-cejugcepug-em-iguatu/</link>
		<comments>http://silveiraneto.net/2008/11/03/1%c2%ba-encontro-cejugcepug-em-iguatu/#comments</comments>
		<pubDate>Mon, 03 Nov 2008 14:58:53 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[português]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[CEJUG]]></category>
		<category><![CDATA[CEPUG]]></category>
		<category><![CDATA[Christiano Milfont]]></category>
		<category><![CDATA[Fernando Chucre]]></category>
		<category><![CDATA[FirePHP]]></category>
		<category><![CDATA[Jefferson Girão]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XDebug]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=1645</guid>
		<description><![CDATA[<a href="http://silveiraneto.net/2008/11/03/1%c2%ba-encontro-cejugcepug-em-iguatu/" title="1º Encontro CEJUG/CEPUG em Iguatu"></a>Dessa vez foi em Iguatu que o CEJUG marcou presença no Ceará. Foi o primeiro encontro PHP+Java realizado pelas comunidades CEJUG e CEPUG. Olha só um mapinha das viagens do CEJUG esse ano, só aqui no Ceará. :) Eu fiz &#8230;<p class="read-more"><a href="http://silveiraneto.net/2008/11/03/1%c2%ba-encontro-cejugcepug-em-iguatu/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://silveiraneto.net/2008/11/03/1%c2%ba-encontro-cejugcepug-em-iguatu/" title="1º Encontro CEJUG/CEPUG em Iguatu"></a><p>Dessa vez foi em <a title="Wikipédia, português" href="http://pt.wikipedia.org/wiki/Iguatu_(Cear%C3%A1)">Iguatu</a> que o <a href="http://www.cejug.org">CEJUG</a> marcou presença no Ceará. Foi o primeiro encontro <a title="Site do Evento" href="http://cejug.org/display/cejug/Apresentando+o+CEJUG+e+o+poder+do+Java+e+Frameworks+AJAX+em+Iguatu+-+01.11.08">PHP+Java</a> realizado pelas comunidades CEJUG e <a title="Ceará PHP User Group" href="http://cepug.org/">CEPUG</a>.</p>
<p>Olha só um mapinha das viagens do CEJUG esse ano, só aqui no Ceará. :)</p>
<p style="text-align: center;"><img class="size-full wp-image-1646 aligncenter" title="CEJUG no Ceará" src="http://silveiraneto.net/wp-content/uploads/2008/11/ceara_cejug.png" alt="" width="320" height="358" /></p>
<p>Eu fiz a apresentação <em>Apresetando o CEJUG e o Poder do Java</em> que tradicionalmente é feita pelo <a title="Rafael Carneiro" href="http://www.rafaelcarneiro.org/blog/">Rafael Carneiro</a>. O <a title="Milfont" href="http://www.milfont.org/tech/">Christiano Milfon</a> apresentou <em>Frameworks AJAX</em>, o <a title="Fernando Chucre" href="http://www.horizontesdigitais.com/">Fernando Chucre</a> apresentou <em>PHP Orientado a Objetos</em> e o <a title="Blog dele" href="http://www.jefferson.eti.br/">Jefferson Girão</a> apresentou <em>Depurando Aplicações PHP com XDebug e FirePHP</em>. Foram apresentações ótimas, valiosíssimas. Eu espero que todos tenham gostado como eu gostei.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm4.static.flickr.com/3064/2997839524_cb14c4dbf8.jpg" alt="Viagem Iguatu" /></p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm4.static.flickr.com/3235/2996972099_6bf21cb46b.jpg" alt="Viagem Iguatu" /></p>
<p style="text-align: center;"><img class="aligncenter" src="http://farm4.static.flickr.com/3060/2997919870_937c462ab4.jpg" alt="Viagem Iguatu" /></p>
<p>Você pode conferir o restante das fotos se encontra <a title="Álbum do Flickr" href="http://flickr.com/photos/silveiraneto/sets/72157608607361149/">nesse álbum</a>. Como prometido, aqui estão os slides da minha apresentação:</p>
<p><center>
<div style="width:425px;text-align:left" id="__ss_715320"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/silveiraneto/apresentando-o-cejug-e-o-poder-do-java-presentation-715320?type=powerpoint" title="Apresentando o CEJUG e o poder do Java">Apresentando o CEJUG e o poder do Java</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=cejugeopoderdojava-1225676967306418-9&#038;stripped_title=apresentando-o-cejug-e-o-poder-do-java-presentation-715320" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=cejugeopoderdojava-1225676967306418-9&#038;stripped_title=apresentando-o-cejug-e-o-poder-do-java-presentation-715320" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View SlideShare <a style="text-decoration:underline;" href="http://www.slideshare.net/silveiraneto/apresentando-o-cejug-e-o-poder-do-java-presentation-715320?type=powerpoint" title="View Apresentando o CEJUG e o poder do Java on SlideShare">presentation</a> or <a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint">Upload</a> your own. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/java">java</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/cejug">cejug</a>)</div>
</div>
<p></center></p>
<p><strong>Downloads:</strong></p>
<ul>
<li><a title="Slides em versão ODF" href="http://silveiraneto.net/downloads/cejug_e_o_poder_do_java.odp">cejug_e_o_poder_do_java.odp</a></li>
<li><a href="http://silveiraneto.net/downloads/cejug_e_o_poder_do_java.pdf">cejug_e_o_poder_do_java.pdf</a></li>
</ul>
<p>Os vídeos que eu passei na apresentação (indicados em slides com um ícone no canto inferior esquedo) são estes:</p>
<ul>
<li><a href="http://br.youtube.com/watch?v=mXMf9GOzzOA">Power of Java</a></li>
<li><a href="http://br.youtube.com/watch?v=guXCmQDy9Es">Java is Everywhere</a></li>
<li><a href="http://br.youtube.com/watch?v=VBp347dE0qw">Java is Everywhere 2</a></li>
<li><a href="http://br.youtube.com/watch?v=ZPEDaRj8lzE">Prêmio Universitário Java 2008</a></li>
</ul>
<p>Os slides dos demais palestrantes você pode encontrar nos seus respectivos blogs ou em breve no site do evento.</p>
<p>Eu reforço o convite para participar do CEJUG e entrar na lista de discussão seguindo <a title="Tutorial CEJUG" href="https://cejug.dev.java.net/files/documents/859/49894/tutorialInscricaoLista.pdf">esses passos</a>.</p>
<p>Eu agradeço a todos que estiveram envolvidos na organização do evento, aos que compareceram, <a title="Patrocínio do evento em Iguatu" href="http://cepug.org/wp-content/uploads/2008/10/patrocinio-1-novembro-sobral-260x300.jpg">aos patrocinadores</a>, ao CEJUG, ao CEPUG e ao Jefferson é claro, por seu empenho em fazer acontecer. Um encontro conjunto como esse demonstra um elevado grau de maturidade destas comunidades, que deixaram de lado as tão comuns briguinhas que eu observo entre algumas comunidades, para fazer um evento legal. A comunidade de desenvolvedores, estudantes e empresas do estado só se beneficia.</p>
<p>E quando você estiver em Iguatu, não deixe de ir naquele restaurante que tem em frente a rodoviária. Tem uma ótima picanha argentina. ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2008/11/03/1%c2%ba-encontro-cejugcepug-em-iguatu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Criando Imagens Dinâmicas em Java na Web</title>
		<link>http://silveiraneto.net/2008/10/15/criando-imagens-dinamicas-em-java-na-web/</link>
		<comments>http://silveiraneto.net/2008/10/15/criando-imagens-dinamicas-em-java-na-web/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 20:16:55 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[português]]></category>
		<category><![CDATA[CEJUG]]></category>
		<category><![CDATA[GD]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Java2D]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[libGD]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/?p=1450</guid>
		<description><![CDATA[<a href="http://silveiraneto.net/2008/10/15/criando-imagens-dinamicas-em-java-na-web/" title="Criando Imagens Dinâmicas em Java na Web"></a>Durante a apresentação do Tarso Bessa em Sobral alguém na platéia perguntou sobre um equivalente a biblioteca GD no PHP. O GD é uma biblioteca para manipulação de imagens comumente usado para criação de imagens dinâmicas (como gráficos) ou miniaturização &#8230;<p class="read-more"><a href="http://silveiraneto.net/2008/10/15/criando-imagens-dinamicas-em-java-na-web/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://silveiraneto.net/2008/10/15/criando-imagens-dinamicas-em-java-na-web/" title="Criando Imagens Dinâmicas em Java na Web"></a><p>Durante a apresentação do <a title="Viagem a Sobral" href="http://silveiraneto.net/2008/10/13/viagem-a-sobral/">Tarso Bessa em Sobral</a> alguém na platéia perguntou sobre um equivalente a biblioteca <a title="LibGD" href="http://www.libgd.org">GD</a> no <a href="http://php.net">PHP</a>. O GD é uma biblioteca para manipulação de imagens comumente usado para criação de imagens dinâmicas (como gráficos) ou miniaturização de imagens. A libGD está disponível para <a title="Binders" href="http://www.libgd.org/Binders">várias linguagens</a> além do PHP.</p>
<p>A respostá para a pergunta é bem simples, você pode usar todo o suporte para imagens disponível no Java SE (inclusive toda a API de <a title="Java 2D" href="http://java.sun.com/products/java-media/2D/">Java2D</a>).</p>
<p>Alguns links que podem ajudar:</p>
<ul>
<li><a title="artigo" href="http://www.javaworld.com/javaworld/jw-05-2000/jw-0505-servlets.html?page=1">Create dynamic images in Java servlets</a>.</li>
<li><a title="Java 2D" href="http://www.javaworld.com/javaworld/jw-09-1998/jw-09-media.html">Image processing with Java 2D</a>.</li>
<li><a title="Java 2D" href="http://java.sun.com/products/java-media/2D/samples/suite/index.html">Coleção de programas exemplos de Java2D</a>.</li>
<li><a title="Java 2D API" href="http://java.sun.com/products/java-media/2D/">Java 2D API</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2008/10/15/criando-imagens-dinamicas-em-java-na-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ilex Paraguariensis</title>
		<link>http://silveiraneto.net/2008/03/15/ilex-paraguariensis/</link>
		<comments>http://silveiraneto.net/2008/03/15/ilex-paraguariensis/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 20:20:37 +0000</pubDate>
		<dc:creator>Silveira</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[Brazil]]></category>
		<category><![CDATA[Chimarrão]]></category>
		<category><![CDATA[FISL]]></category>
		<category><![CDATA[Java ME]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Opensolaris]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Porto Alegre]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Rio Grande do Sul]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[travel]]></category>

		<guid isPermaLink="false">http://silveiraneto.net/2008/03/15/ilex-paraguariensis/</guid>
		<description><![CDATA[<a href="http://silveiraneto.net/2008/03/15/ilex-paraguariensis/" title="Ilex Paraguariensis"></a>Creative Commons image from Flickr. From days 15 to 20 from April, I&#8217;ll be in Porto Alegre. I&#8217;ll participate on FISL (an old dream) with the presentation &#8220;Netbeans: beyond Java&#8221;. I&#8217;d like to talk about how you can use Netbeans &#8230;<p class="read-more"><a href="http://silveiraneto.net/2008/03/15/ilex-paraguariensis/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://silveiraneto.net/2008/03/15/ilex-paraguariensis/" title="Ilex Paraguariensis"></a><p style="text-align: center"><img src="http://farm3.static.flickr.com/2136/2215619998_4696ac1c4b.jpg" alt="Chimarrão Gaúcho" /><br />
<small>Creative Commons image from <a href="http://flickr.com/photos/gdgoulart/2215619998/">Flickr</a>.</small></p>
<p>From days 15 to 20 from April, I&#8217;ll be in <a href="http://en.wikipedia.org/wiki/Porto_Alegre" title="Wikipedia, english">Porto Alegre</a>. I&#8217;ll participate on <a href="http://fisl.softwarelivre.org/9.0/www/" title="FISL">FISL</a> (an old dream) with the presentation <em>&#8220;Netbeans: beyond Java&#8221;</em>. I&#8217;d like to talk about how you can use Netbeans as a great IDE for languages others than Java like Ruby, PHP, JavaFX, Javascript, Python, etc.</p>
<p>Probably I&#8217;ll be able to participate also on two events before FISL (about Opensolaris and Java ME). :)</p>
<p>So &#8230; how chimarrão tastes?</p>
]]></content:encoded>
			<wfw:commentRss>http://silveiraneto.net/2008/03/15/ilex-paraguariensis/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

