<?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>Phaneronsoft</title>
	<atom:link href="http://www.phaneronsoft.com/phaneronsoft/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phaneronsoft.com/phaneronsoft</link>
	<description>Desenvolvimento Web</description>
	<lastBuildDate>Mon, 26 Mar 2012 13:12:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Expressão Regular para slug, permalinks ou url amigaveis usando pluggin meiomask</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2012/03/21/expressao-regular-para-slug-permalinks-ou-url-amigaveis/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2012/03/21/expressao-regular-para-slug-permalinks-ou-url-amigaveis/#comments</comments>
		<pubDate>Thu, 22 Mar 2012 01:23:06 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[Expressões Regulares]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[mascaras]]></category>
		<category><![CDATA[meiomask]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[slug]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=528</guid>
		<description><![CDATA[Eu uso o plugin meio mask para gerar mascaras nos meus forms faz mais de 2 anos. Gosto deste plugin pq é muito fácil de aplicar regras para criar novos formatos e usa JQuery. Outra coisa boa é que este plugin é de um brasileiro. Você pode dar uma conferida na documentação em http://www.meiocodigo.com/projects/meiomask/ Eu [...]]]></description>
			<content:encoded><![CDATA[<p>Eu uso o <strong>plugin</strong> meio mask para gerar <strong>mascaras</strong> nos meus forms faz mais de 2 anos. Gosto deste plugin pq é muito fácil de aplicar regras para criar novos formatos e usa <strong>JQuery</strong>. Outra coisa boa é que este plugin é de um brasileiro. Você pode dar uma conferida na documentação em <a href="http://www.meiocodigo.com/projects/meiomask/">http://www.meiocodigo.com/projects/meiomask/</a></p>
<p>Eu precisei criar uma mascara para um campo do tipo slug que não possui acentos, caracteres especiais e espaços em branco. A <strong>ER</strong> para isso é <strong>/[a-z0-9_-]/</strong></p>
<p>Para adicionar a nova mascara com a regra abra o arquivo <strong> jquery.meio.mask.js</strong>  procure</p>
<pre class="brush: php">

rules : {

&#039;z&#039;: /[a-z]/,

&#039;Z&#039;: /[A-Z]/,

&#039;a&#039;: /[a-zA-Z]/,

&#039;*&#039;: /[0-9a-zA-Z]/,

&#039;@&#039;: /[0-9a-zA-ZçÇáàãâéèêíìóòôõúùü]/,

&#039;x&#039;: /[a-z0-9_-]/

}
</pre>
<p>Um detalhe curioso foi que não se pode criar uma regra com o nome maior que um char que não funciona. Quando adicionei a regra para permitir o uso do hífen <strong>“-“</strong> vi que tinha uma outra regra limitando o uso deste char no bloco options onde tinha <strong>fixedChars : ‘[(),.:/ -]’ </strong>como configuração default do plugin. Então na ER onde eu colocava o “-” ele tinha o comportamento de uma mascara fixa.<br />
Para resolver vc tem que adicionar no options <strong> fixedChars:null </strong>para fazer um overwrite da config padrão.</p>
<p>Veja como ficou a config para usar a mascara.</p>
<pre class="brush: php">

$(&#039;input.slug&#039;).setMask({ mask : &#039;x&#039;, type:&#039;repeat&#039; , fixedChars:null});
</pre>
<p><a href="http://www.phaneronsoft.com/phaneronsoft/wp-content/uploads/2012/03/jquery.meio_.mask_.com_.mascara.para_.slug_.zip">Plugin Jquery meio mask com mascara para slug</a></p>
<p>Caso tenha alguma duvida deixe um comentário que terei pra­zer em aju­dar.</p>
<p>Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2012/03/21/expressao-regular-para-slug-permalinks-ou-url-amigaveis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sistema e manual para Calcular Frete SEDEX, e-SEDEX e PAC dos Correios  (versão 1.2)</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2012/03/14/sistema-para-calcular-frete-sedex-e-pac-1-1-pac-esta-funcionando/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2012/03/14/sistema-para-calcular-frete-sedex-e-pac-1-1-pac-esta-funcionando/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 14:01:33 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[Ferramentas]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[calculo de frete]]></category>
		<category><![CDATA[CEP]]></category>
		<category><![CDATA[correios]]></category>
		<category><![CDATA[Frete]]></category>
		<category><![CDATA[manual]]></category>
		<category><![CDATA[PAC]]></category>
		<category><![CDATA[Sedex]]></category>
		<category><![CDATA[webservice]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=427</guid>
		<description><![CDATA[Esta semana meu sistema para calcular frete parou de funcionar descobri que teve alteração no codigo de serviço de SEDEX que estava usando. Adicionei nesta versão uma consulta com ajax usando prototype. Código Serviço 40010 SEDEX sem contrato 40045 SEDEX a Cobrar, sem contrato 40126 SEDEX a Cobrar, com contrato 40215 SEDEX 10, sem contrato [...]]]></description>
			<content:encoded><![CDATA[<p>Esta semana meu sistema para calcular frete parou de funcionar descobri que teve alteração no codigo de serviço de SEDEX que estava usando.<br />
Adicionei nesta versão uma consulta com ajax usando prototype.</p>
<p>Código Serviço<br />
40010 SEDEX sem contrato<br />
40045 SEDEX a Cobrar, sem contrato<br />
40126 SEDEX a Cobrar, com contrato<br />
40215 SEDEX 10, sem contrato<br />
40290 SEDEX Hoje, sem contrato<br />
40096 SEDEX com contrato<br />
40436 SEDEX com contrato<br />
40444 SEDEX com contrato<br />
40568 SEDEX com contrato<br />
40606 SEDEX com contrato<br />
41106 PAC sem contrato<br />
41068 PAC com contrato<br />
81019 e-SEDEX, com contrato<br />
81027 e-SEDEX Prioritário, com conrato<br />
81035 e-SEDEX Express, com contrato<br />
81868 (Grupo 1) e-SEDEX, com contrato<br />
81833 (Grupo 2) e-SEDEX, com contrato<br />
81850 (Grupo 3) e-SEDEX, com contrato</p>
<p>Documentação para utilizar o webservice dos Correios para efetuar o calculo de forma personalizada.</p>
<p><a title="Documentação" href="http://www.correios.com.br/webServices/PDF/SCPP_manual_implementacao_calculo_remoto_de_precos_e_prazos.pdf" target="_blank">SCPP_Manual_Implementacao_Calculo_Remoto_de_Precos_e_Prazos</a></p>
<p>Abaixo segue o código para manipular os dados do webservice usando o PHP.</p>
<p><a title="Webservice Correios" href="http://www.phaneronsoft.com/exemplos/correio/correio.php" target="_blank">Segue o exemplo do código abaixo funcionando.</a></p>
<p>Para usar os código abaixo crie um arquivo index.php e adicione o fonte. Coloque em um servidor com suporte a PHP.</p>
<pre class="brush: php">

&lt;?php
if($_POST) {

function frete($cod_servico,$cep_origem,$cep_destino,$peso,$comprimento=0,$altura=0,$largura=0) {

$cep_destino = eregi_replace(&quot;([^0-9])&quot;,&quot;&quot;,$cep_destino);
$cep_origem = eregi_replace(&quot;([^0-9])&quot;,&quot;&quot;,$cep_origem);

// Crio um objeto para manipular o XML.
$doc = new DomDocument;

// Carrega o arquivo XML com um arquivo DOMDocument

$doc-&gt;Load(&quot;http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?StrRetorno=xml&amp;amp;amp;amp;amp;amp;nCdServico=&quot; . $cod_servico . &quot;&amp;amp;amp;amp;amp;amp;nVlPeso=&quot; . $peso . &quot;&amp;amp;amp;amp;amp;amp;sCepOrigem=&quot; . $cep_origem . &quot;&amp;amp;amp;amp;amp;amp;sCepDestino=&quot; . $cep_destino . &quot;&amp;amp;amp;amp;amp;amp;nCdFormato=1&amp;amp;amp;amp;amp;amp;nVlComprimento=&quot; . $comprimento . &quot;&amp;amp;amp;amp;amp;amp;nVlAltura=&quot; . $altura . &quot;&amp;amp;amp;amp;amp;amp;nVlLargura=&quot; . $largura . &quot;&amp;amp;amp;amp;amp;amp; sCdMaoPropria=n&amp;amp;amp;amp;amp;amp;nVlValorDeclarado=0.50&amp;amp;amp;amp;amp;amp;sCdAvisoRecebimento=n&quot;);

// Defino o nome do elemento pai (root).
$root = $doc-&gt;getElementsByTagName(&#039;cServico&#039;);

// Defino o nome dos elementos filhos no arquivo XML que eu desejo.

$children = array(&#039;Valor&#039;,&#039;PrazoEntrega&#039;);

// Faço um loop para pegar todos os elementos pai (root) encontrados.
$valor = array();
for ($i=0; $i &lt; $root-&gt;length; $i++) {
// Pega o valor do atributo do elemento pai (root).
$id = $root-&gt;item($i)-&gt;getElementsByTagName(&#039;Codigo&#039;)-&gt;item(0)-&gt;nodeValue;

if($root-&gt;item($i)-&gt;getElementsByTagName(&#039;Erro&#039;)-&gt;item(0)-&gt;nodeValue &gt; 0) {
echo $root-&gt;item($i)-&gt;getElementsByTagName(&#039;MsgErro&#039;)-&gt;item(0)-&gt;nodeValue;
die;
}

// Busca por elementos filhos (child) definidos no array
foreach ($children as $child) {
$valor[$id][$child] = $root-&gt;item($i)-&gt;getElementsByTagName($child)-&gt;item(0)-&gt;nodeValue;
}
}

return $valor;
}

// Código do Serviço que deseja calcular, veja tabela acima:
if ($_POST[&#039;cep-destino&#039;]) {
//$cod_servico = $_POST[&#039;servico&#039;];
$cep_origem = &#039;81010210&#039;;// CEP de Origem, em geral o CEP da Loja
$cep_destino = $_REQUEST[&#039;cep-destino&#039;];// CEP de Destino, você pode passar esse CEP por GET ou POST vindo de um formulário
$peso = &#039;0.300&#039;;// Peso total do pacote em Quilos, caso seja menos de 1Kg, ex.: 300g, coloque 0.300
// COMPRIMENTO: comprimento do volume em centímetros - somente número de 16 a 60
$comprimento = 16;
// ALTURA: altura do volume em centímetros - somente número de 2 a 60
$altura = 5;
// LARGURA: largura do volume em centimetros - somente número de 5 a 60
$largura = 11;
$fretes = frete(&#039;41106,40010&#039;,$cep_origem,$cep_destino,$peso,$comprimento,$altura,$largura);

if ($_GET[&#039;frase&#039;] == true) {
echo &quot;Olá, como vai?&lt;br/&gt;&quot;;
}

foreach ($fretes as $servico =&gt; $campos ) {
$valor = str_replace(&quot;,&quot;, &quot;.&quot;, $campos[&#039;Valor&#039;]);

if($_POST[&#039;pequeno&#039;] != &#039;true&#039;) {
$valor = $valor + 3.00;
} else {
$valor = $valor + 1.00;
}
$valor = number_format($valor,2, &#039;,&#039;, &#039;&#039;);
if($servico == &#039;41106&#039;) {
echo &quot; Valor PAC &quot; . $valor . &quot; prazo de entrega {$campos[&#039;PrazoEntrega&#039;]} dia(s).&lt;br/&gt;&quot;;
} elseif ($servico == &#039;40010&#039;) {
echo &quot; Valor SEDEX &quot; . $valor . &quot; prazo de entrega {$campos[&#039;PrazoEntrega&#039;]} dia(s).&lt;br/&gt;&quot;;
}
}

if ($_GET[&#039;frase&#039;] == true) {
echo &quot;Qualquer dúvida entre em contato.&lt;br/&gt; Boas compras.&lt;br/&gt;&quot;;
}
}

} else {
?&gt;
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
&lt;link href=&quot;favicon.ico&quot; rel=&quot;shortcut icon&quot; type=&quot;image/x-icon&quot; /&gt;
&lt;title&gt;DealShop - Sistema para Calcular Frete SEDEX e PAC a partir de CEP informado. | Phaneronsoft&lt;/title&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function submitForm() {
/*
usa método request() da classe Form da prototype, que serializa os campos
do formulário e submete (por POST como default) para a action especificada no form
*/
function mostrarLoading(){
$(&#039;loading&#039;).style.display = &#039;block&#039;;
$(&#039;value&#039;).innerHTML = &#039; &#039;;
}

$(&#039;form-pesquisa-repasse&#039;).request({
onLoading:mostrarLoading,
onComplete: function(transport){
/*
se o retorno for diferente de -1, entende-se que não houve problemas, então apaga-se
os campos do formulário usando o método reset() da classe Form
*/
if(transport.responseText !=-1) {
$(&#039;loading&#039;).style.display = &#039;none&#039;;
$(&#039;value&#039;).innerHTML = transport.responseText;
} else {
$(&#039;form-pesquisa-repasse&#039;).reset();
$(&#039;loading&#039;).style.display = &#039;none&#039;;
$(&#039;value&#039;).innerHTML = &#039;Erro ao consultar&#039;;
}
}

});
return false;
}
&lt;/script&gt;
&lt;style type=&quot;text/css&quot;&gt;

* {
font-family:&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:12px;
font-style:normal;
font-variant:normal;
font-weight:normal;
line-height:normal;
}

.red{color:red !important;
}

body {
background:#FFFFFF none repeat scroll 0 0;
height:100%;
margin:0;
margin-top:20px;
width:100%;
}

div#wrapper {
margin:auto;
position:relative;
width:450px;
z-index:0;
}

.select {
text-transform:uppercase;
width:99%;
border:1px solid #B6B6B6;
display:block;
}

.formSearch fieldset {
border:1px solid #CCCCCC;
margin:0;
padding:0 10px;
}

label {
display:block;
/*float:left;*/
margin-right:4px;
padding-bottom:5px !important;
}

legend {
color:#1E398D;
font-family:&quot;Legacy Sans ITC TT Bold&quot;,&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
padding:10px 5px;
}

.button {
background:#F5EED3;
border:1px solid #CCCCCC;
color:#666666;
cursor:pointer;
font-size:12px;
font-weight:bold;
letter-spacing:1px;
margin:10px 0 0;
overflow:visible;
text-transform:uppercase;
width:150px;
}

.formMain .inline {
margin:15px 0 0 !important;
}

.text, .select, .textarea, .password {
border:1px solid #B6B6B6;
display:block;
text-transform:uppercase;
}

fieldset span.nameField {
color:#666666;
text-transform:uppercase;
}

h3 {
border-bottom:1px solid #F58220;
margin:0;
padding:0;
}

h3 span {
-x-system-font:none;
color:#1E398D;
font-family:&quot;Legacy Sans ITC TT Bold&quot;,&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;
}

#value {
-x-system-font:none;
color:#9B0000;
font-family:&quot;Legacy Sans ITC TT Bold&quot;,&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;

}

#rastrear {
padding-top:30px;
}

#loading {
display:none;
color:#9B0000;
font-family:&quot;Legacy Sans ITC TT Bold&quot;,&quot;Trebuchet MS&quot;,&quot;Lucida Grande&quot;,Verdana,Tahoma,Helvetica,Arial,sans-serif;
font-size:1.5em;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:normal;
text-transform:capitalize;
}
&lt;/style&gt;

&lt;/head&gt;
&lt;body&gt;

&lt;div id=&quot;wrapper&quot;&gt;

&lt;span&gt;Pesquisa valor de frete&lt;/span&gt;

&lt;/h3&gt;
&lt;form id=&quot;form-pesquisa-repasse&quot; action=&quot;&quot; method=&quot;post&quot; onsubmit=&quot;submitForm(); return false;&quot; class=&quot;formMain formSearch wsizep100&quot;&gt;
&lt;input type=&quot;hidden&quot; name=&quot;pequeno&quot; value=&quot;&lt;?php echo $_REQUEST[&#039;pequeno&#039;]; ?&gt;&quot; /&gt;
&lt;fieldset&gt;
&lt;legend&gt;Filtrar Referência&lt;/legend&gt;
&lt;!--label for=&quot;servico&quot; class=&quot;wsize015&quot;&gt;
&lt;span class=&quot;nameField&quot;&gt;Envio&lt;/span&gt;

&lt;select id=&quot;servico&quot; name=&quot;servico&quot; title=&quot;Serviços dos Correios&quot; class=&quot;select&quot; tabindex=&quot;1&quot;&gt;
&lt;option value=&quot;41106&quot;&gt;PAC&lt;/option&gt;
&lt;option value=&quot;40010&quot;&gt;SEDEX&lt;/option&gt;
&lt;/select&gt;
&lt;/label--&gt;
&lt;label class=&quot;wsize010&quot; for=&quot;cep-destino&quot;&gt;
&lt;span class=&quot;nameField&quot;&gt;CEP Destino&lt;/span&gt;
&lt;input id=&quot;cep-destino&quot; class=&quot;text&quot; type=&quot;text&quot; value=&quot;&quot; maxlength=&quot;9&quot; title=&quot;CPF destino&quot; name=&quot;cep-destino&quot; tabindex=&quot;2&quot;/&gt;
&lt;/label&gt;
&lt;label for=&quot;pesquisar&quot; class=&quot;wsize010&quot;&gt;
&lt;input type=&quot;button&quot; onclick=&quot;submitForm(); return false;&quot; value=&quot;pesquisar&quot; class=&quot;button inline&quot;/&gt;
&lt;/label&gt;
&lt;/fieldset&gt;
&lt;/form&gt;
&lt;span&gt;* Digitar somente número no CEP&lt;/span&gt;
&lt;br /&gt;
&lt;span id=&quot;value&quot;&gt;&lt;/span&gt;
&lt;span id=&#039;loading&#039;&gt;Pesquisando...&lt;/span&gt;

&lt;div id=&quot;rastrear&quot;&gt;
&lt;h3&gt;
&lt;span&gt;Rastrear objetos no correio &lt;/span&gt;
&lt;/h3&gt;

&lt;form target=&quot;_blank&quot; method=&quot;GET&quot; action=&quot;http://websro.correios.com.br/sro_bin/txect01$.Inexistente?&quot; name=&quot;rastreamentohome&quot;&gt;
&lt;fieldset&gt;
&lt;legend&gt;Identificador do objeto:&lt;/legend&gt;
&lt;input type=&quot;hidden&quot; value=&quot;001&quot; name=&quot;P_LINGUA&quot;/&gt;
&lt;input type=&quot;hidden&quot; value=&quot;002&quot; name=&quot;P_TIPO&quot;/&gt;
&lt;label for=&quot;P_COD_LIS&quot; class=&quot;wsize010&quot;&gt;
&lt;textarea size=&quot;50&quot; cols=&quot;48&quot; rows=&quot;3&quot; class=&quot;text&quot; name=&quot;P_COD_LIS&quot;&gt;&lt;/textarea&gt;
&lt;/label&gt;
&lt;label for=&quot;pesquisar&quot; class=&quot;wsize010&quot;&gt;
&lt;input type=&quot;button&quot; onclick=&quot;document.forms[1].submit();&quot; value=&quot;pesquisar&quot; tabindex=&quot;3&quot; class=&quot;button&quot; /&gt;
&lt;/label&gt;
&lt;/fieldset&gt;
&lt;/form&gt;
&lt;span&gt;
&lt;p&gt;Entre com as 13 posições do identificador do objeto.&lt;br/&gt;
Ex: SS123456789BR&lt;/p&gt;
&lt;p&gt;Ou vários identificadores separados por ponto-e-vírgula.&lt;br/&gt;
EX: SS123456789BR;SE987654321BR&lt;/p&gt;
&lt;/span&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
&lt;?php
} // fim else

?&gt;
</pre>
<p>Caso tenha alguma duvida deixe um comen­tá­rio que terei pra­zer em aju­dar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2012/03/14/sistema-para-calcular-frete-sedex-e-pac-1-1-pac-esta-funcionando/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como descompactar arquivo zipado no Dreamhost</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2011/07/15/como-descompactar-arquivo-zipado-no-dreamhost/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2011/07/15/como-descompactar-arquivo-zipado-no-dreamhost/#comments</comments>
		<pubDate>Fri, 15 Jul 2011 20:13:09 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[arquivo]]></category>
		<category><![CDATA[descompactar]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[unzip]]></category>
		<category><![CDATA[zip]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=515</guid>
		<description><![CDATA[Faz muito tempo que tenho problema com o Dreamhost para descompactar arquivos. Já que o genreciador de arquivos da Dreamhost não funciona. Tentei usar SSH e dar comandos mas tambem não conseguir fazer ao meu gosto. Depois de muito pensar veio uma solução simples. Crie um arquivo chamado unzip.php e coloque o conteudo trocando o [...]]]></description>
			<content:encoded><![CDATA[<p>Faz muito tempo que tenho problema com o Dreamhost para descompactar arquivos. Já que o genreciador de arquivos da Dreamhost não funciona. Tentei usar SSH e dar comandos mas<br />
tambem não conseguir fazer ao meu gosto.<br />
Depois de muito pensar veio uma solução simples.<br />
Crie um arquivo chamado unzip.php e coloque o conteudo trocando o nome do arquivo.zip para o nome do seu arquivo.zip.</p>
<pre class="brush: javascript">

&lt;? exec(&quot;unzip arquivo.zip&quot;); ?&gt;
</pre>
<p>Depois basta subir unzip.php no mesmo diretorio do arquivo zipado e executar ele pela url www.dominio.com/unzip.php.<br />
Só felicidade agora <img src='http://www.phaneronsoft.com/phaneronsoft/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2011/07/15/como-descompactar-arquivo-zipado-no-dreamhost/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Usando Prototype para consulta AJAX com JSON</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2010/08/09/usando-prototype-para-consulta-ajax-usando-json/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2010/08/09/usando-prototype-para-consulta-ajax-usando-json/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 21:18:28 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Prototype]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[SOAP]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=505</guid>
		<description><![CDATA[Hoje irei dar um exemplo de como usar JSON com Prototype  em uma chamada via Ajax. Não estou muito acostumado com o Prototype mas comecei a usar por ser um especificação de um projeto que estou trabalhando atualmente. O JSON é um acrônimo para “JavaScript Object Notation” e é um padrão para a troca de [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje irei dar um exemplo de como usar <strong>JSON </strong>com Prototype  em uma chamada via Ajax. Não estou muito acostumado com o <strong>Prototype </strong>mas comecei a usar por ser um especificação de um projeto que estou trabalhando atualmente.</p>
<p>O JSON é um acrônimo para “<strong>J</strong>ava<strong>S</strong>cript <strong>O</strong>bject <strong>N</strong>otation” e é um padrão para a troca de mensagens. JSON é muito usado em chamadas Ajax por ser mais simples e mais leve que <strong>SOAP </strong>que usa <strong>XML</strong>.</p>
<p>Abaixo segue um exemplo de um objeto JSON que irei usar neste tutorial.<br />
Crie um arquivo chamado conteudo.htm e insira o código abaixo.</p>
<pre class="brush: javascript">
{ &quot;jogos&quot; : [
{ &quot;nome&quot;: &quot;World of Warcraft&quot;, &quot;preco&quot;: &quot;49,90&quot; },
{ &quot;nome&quot;: &quot;Diablo 3&quot;, &quot;preco&quot;: &quot;89,90&quot; },
{ &quot;nome&quot;: &quot;StarCraft 2&quot;, &quot;preco&quot;: &quot;49,90&quot; }
]
}</pre>
<p>Agora basta criar um arquivo com o nome index.htm e inserir o conteúdo abaixo.</p>
<pre class="brush: javascript">
&lt;html&gt;
&lt;head&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/prototype/1.6.1.0/prototype.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;input type=&quot;button&quot; name=&quot;pesquisar&quot; onclick=&quot;pesquisar();&quot; value=&quot;pesquisar&quot;/&gt;
&lt;script&gt;
function pesquisar () {
var request = new Ajax.Request(&#039;conteudo.htm&#039;, {
&#039;method&#039; : &#039;post&#039;,
&#039;parameters&#039; : {
&#039;codigo&#039; : &#039;1&#039;
},
&#039;onComplete&#039; : function(response) {
var text = response.responseText.stripTags();
// Transformo o texto em objeto
var objeto = text.evalJSON();
var jogos = objeto.jogos;
var str = &quot;&quot;;

jogos.each(function(jogo) {
str += jogo.nome + &#039; &#039;;
str += jogo.preco + &#039;\n&#039;;
});
alert(str);
}
});
}
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Agora é necessário que os dois arquivos estejam no mesmo diretório para que o exemplo funcione.<br />
Clicando no botão pesquisar será feita uma consulta via Ajax para conteudo.htm retornando os valores do arquivo.</p>
<p>Caso tenha alguma duvida uma outro opinião sobre o Post deixe um comen­tá­rio que terei pra­zer em ajudar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais e Posts aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2010/08/09/usando-prototype-para-consulta-ajax-usando-json/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Padrão de nomenclatura para classes usadas em JavaScript evita problemas</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2010/06/28/criar-alias-para-classes-usadas-em-javascript-evita-problemas/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2010/06/28/criar-alias-para-classes-usadas-em-javascript-evita-problemas/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 21:50:20 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Padrões]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[padrão]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=473</guid>
		<description><![CDATA[Esta semana descobri um problema em se usar nome da classes de estilo para identificação em funções javascript. A situação foi que outro programador ao migrar o layout do sistema  apagou o nome de  classes que estavam sendo usadas no JS via Prototype para validação de campos.  Como não existia um padrão para o nome das classes minha [...]]]></description>
			<content:encoded><![CDATA[<p>Esta semana descobri um problema em se usar nome da classes de estilo para identificação em funções javascript. A situação foi que outro programador ao migrar o layout do sistema  apagou o nome de  classes que estavam sendo usadas no JS via Prototype para validação de campos.  Como não existia um padrão para o nome das classes minha solução para evitar futuros problemas foi criar um <strong>padrão de nomenclatura “jsNomeDaClasse”</strong> assim quando alguem ver o <strong>“js” na frente do nome da classe indica uma referencia para uma funcao JS.<br />
</strong>No exemplo abaixo eu usei o padrão jsNomeDoBotao para que se algum programador ver o nome dessa classe saiba que tem uma função JS atribuida e não apague ou altere o nome<br />
da classe em uma manutenção ou troca de layout do sistema.</p>
<pre class="brush: javascript">
&lt;html&gt;
&lt;head&gt;
&lt;title&gt;Validar&lt;/title&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;form&gt;
&lt;input class=&quot;jsNomeDoBotao&quot; type=&quot;button&quot; name=&quot;botao_1&quot; value=&quot;botao 1&quot; /&gt;&lt;br/&gt;
&lt;input class=&quot;jsNomeDoBotao&quot; type=&quot;button&quot; name=&quot;botao_2&quot; value=&quot;botao 2&quot;/&gt;&lt;br/&gt;
&lt;input class=&quot;jsNomeDoBotao&quot; type=&quot;button&quot; name=&quot;botao_3&quot; value=&quot;botao 3&quot;/&gt;&lt;br/&gt;
&lt;input class=&quot;jsNomeDoBotao&quot; type=&quot;button&quot; name=&quot;botao_4&quot; value=&quot;botao 4&quot;/&gt;&lt;br/&gt;
&lt;input class=&quot;jsNomeDoBotao&quot; type=&quot;button&quot; name=&quot;botao_4&quot; value=&quot;botao 5&quot;/&gt;
&lt;/form&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
// Adiciono um alert para todos os inputs com o nome de class jsNomeDoBotao.
$(&quot;.jsNomeDoBotao&quot;).bind(&quot;click&quot;, function(event) {
alert(this.name);
});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Caso tenha alguma duvida uma outro opinião sobre o Post deixe um comen­tá­rio que terei pra­zer em ajudar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais e Posts aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2010/06/28/criar-alias-para-classes-usadas-em-javascript-evita-problemas/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Atualizar Dashboard Xbox360 usando PenDrive (Destrava HD de console Banido)</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2010/04/16/atualizar-dashboard-xbox360-usando-pendrive-destrava-hd-de-console-banido/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2010/04/16/atualizar-dashboard-xbox360-usando-pendrive-destrava-hd-de-console-banido/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 03:38:41 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[Sites]]></category>
		<category><![CDATA[Dashboard]]></category>
		<category><![CDATA[PenDrive]]></category>
		<category><![CDATA[Xbox 360]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=470</guid>
		<description><![CDATA[Mudando um pouco do foco do Blog achei importante compartilhar esta informação sobre a nova Dashboard do Xbox 360 que saiu esta semana que libera o uso de PenDrive USB para gravar jogos e que também liberou a instalação de jogos no HD dos consoles banidos da Live. A atualização é simples e pode ser [...]]]></description>
			<content:encoded><![CDATA[<p>Mudando um pouco do foco do Blog achei importante compartilhar esta informação sobre a nova Dashboard do Xbox 360 que saiu esta semana que libera o uso de PenDrive USB para gravar jogos e que também liberou a instalação de jogos no HD dos consoles banidos da Live. A atualização é simples e pode ser feita via PenDrive. Basta o pendrive estar formatado como FAT32 e baixar este <a href="http://download.microsoft.com/download/1/D/8/1D8C09BE-278E-41CD-98BE-EB9188128227/$SystemUpdate9199.zip">arquivo</a> e descompactar na raiz do drive USB. Coloque o Pendrive na porta USB traseira do seu Xbox 360 com ele desligado. Quando ligar o console ele irá reconhecer o dispositivo e irá começar a atualização.  Ou se preferir conecte o pendrive no console ligado e vá nos arquivos do sistema e clique no dispositivo USB  que ele tambem irá fazer o Update.</p>
<p>Segue o <a href="http://www.xbox.com/en-US/support/systemuse/xbox360/console/systemupdates.htm">link do site da MS</a> de onde peguei a atualização.</p>
<p>Caso tenha alguma dúvida deixe um comen­tá­rio que terei pra­zer em ajudar.</p>
<p>Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos  tuto­ri­ais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2010/04/16/atualizar-dashboard-xbox360-usando-pendrive-destrava-hd-de-console-banido/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Número primos em Java</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2010/04/10/numero-primos-em-java/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2010/04/10/numero-primos-em-java/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 15:41:19 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[Sites]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[NumerosPrimos]]></category>
		<category><![CDATA[UTFPR]]></category>
		<category><![CDATA[Yahoo! Respostas]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=465</guid>
		<description><![CDATA[Faz um bom tempo que não posto nada mas agora estou voltando e irei criar tutoriais básicos sobre Java. Eu a pouco tempo parei de trabalhar com PHP para começar com Java. Não estou deixando o PHP de lado apenas mudei de linguagem para melhorar meu salário. AS vagas de PHP aqui em Curitiba estão [...]]]></description>
			<content:encoded><![CDATA[<p>Faz um bom tempo que não posto nada mas agora estou voltando e irei criar tutoriais básicos sobre Java.</p>
<p>Eu a pouco tempo parei de trabalhar com PHP para começar com Java. Não estou deixando o PHP de lado apenas mudei de linguagem para melhorar meu salário. AS vagas de PHP aqui em Curitiba estão com salários menores que as de Java. Continuo trabalhando com Web e os tutoriais de PHP irão continuar.</p>
<p>Comecei a fazer Pos em Java na UTFPR e na aula de nivelamento foi pedido para criar um algoritmo para números primos.</p>
<p>Encontrei uma boa explicação da lógica dos números primos no <a href="http://br.answers.yahoo.com/question/index?qid=20060706173831AAe0OPQ" target="_blank">Yahoo! Respostas</a> e fiz o código baseado nele.</p>
<pre class="brush: java">
import java.io.IOException;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

/**
*
* @author Marcelo Korjenioski
*/
public class NumerosPrimos {

public static void main(String[] args) {
System.out.println(&quot;Entre com valor&quot;);
byte[] b = new byte[10]; //buffer
try {
System.in.read(b);
int numero = Integer.parseInt(new String(b).trim());
for (int i = 0; i &lt;= numero; i++) {
if (primo(i)) {
System.out.println(i);

}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

public static boolean primo(int numero) {
boolean resultado = true;
// numero 1 não é primo pois é divisivel apenas por ele mesmo
if(numero &lt;= 1) {
resultado = false;
} else if(numero % 2 == 0 &amp;amp;amp;&amp;amp;amp; numero &gt; 2) {
// Feita a verificacao apenas para otimizar o codigo
// aqui eu descarto todos os numero pares divisiveis por 2 maior que 2 assim so vai sobrar os impares
resultado = false;
} else if(numero % 3 == 0 &amp;amp;amp;&amp;amp;amp; numero &gt; 3) {
// Feita a verificacao apenas para otimizar o codigo
// agora eu tiro todos os numero impares divisiveis por 3 maior que 3.
resultado = false;
}else {
// numero com raiz exata não é primo.
int raiz = (int)Math.sqrt(numero) + 1;
// verifico se o numero é divisivel por algum outro numero menor que ele.
for(int i=3;i&lt;raiz;i+=2) {
// caso divida com algum numero ele não é primo e paro o loop.
if(numero % i ==0) {
resultado = false;
break;
}
}
}
return resultado;
}
}
</pre>
<p>Caso tenha alguma duvida deixe um comentário que terei prazer em ajudar.</p>
<p>Comentários são bem vindos assim posso melhorar a qualidade dos tutoriais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2010/04/10/numero-primos-em-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Adicionar HTML no ZEND Form de maneira rapida e limpa</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2010/02/11/adicionar-html-no-zend-form-de-maneira-rapida-e-limpa/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2010/02/11/adicionar-html-no-zend-form-de-maneira-rapida-e-limpa/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 17:13:27 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Form]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Zend]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=445</guid>
		<description><![CDATA[Criei uma solução para adicionar HTML no form do Zend é simples e eficiente. O código foi melhorado com a ajuda do Marcaum54 que deu a ideia de fazer um overwrite no metodo isValid. Basta criar um classe no diretório library/ com o nome Htmlform.php e adicionar o código &#60;?php /** * Adiciona conteudo HTML no ZendForm * [...]]]></description>
			<content:encoded><![CDATA[<p>Criei uma solução para adicionar HTML no form do Zend é simples e eficiente. O código foi melhorado com a ajuda do Marcaum54 que deu a ideia de fazer um overwrite no metodo isValid.<br />
Basta criar um classe no diretório library/ com o nome Htmlform.php e adicionar o código</p>
<pre class="brush: php">

&lt;?php
/**
* Adiciona conteudo HTML no ZendForm
* @copyright Phaneronsoft
* @author Marcelo Korjenioski - korjenioski@gmail.com
* @see www.phaneronsoft.com
* @filesource Htmlform.php
* @version 1.0
* @since 11/02/2010
* @category library
* @package library
*/
class Htmlform extends Zend_Form_Element_Xhtml
{
/**
* View helper padrão para rederizar
* @var string
*/
public $helper = &#039;formNote&#039;;
/**
* Faço o Overwrite do metodo para não perder o conteudo na validação.
* @see Zend_Form_Element::isValid()
*/
public function isValid($value, $context = null) {
return true;
}

}</pre>
<p>Agora no Formulário você irá chamar ela usando.</p>
<pre class="brush: php">
$html = new Htmlform(&#039;nome_do_elemento&#039;);
$html-&gt;setValue(&#039;&lt;strong&gt;teste&lt;/strong&gt;&#039;);
$this-&gt;addElement($html);
</pre>
<p>Caso tenha alguma duvida deixe um comen­tá­rio que terei pra­zer em aju­dar.<br />
Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apresentados.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2010/02/11/adicionar-html-no-zend-form-de-maneira-rapida-e-limpa/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Shell Script (Linux)</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/11/25/shell-script-linux/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/11/25/shell-script-linux/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 16:16:10 +0000</pubDate>
		<dc:creator>J. C.</dc:creator>
				<category><![CDATA[Sites]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[shell]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=420</guid>
		<description><![CDATA[—————————— #!/bin/bash echo “Fala ae Mundo!” —————————— Está ai o seu primeiro Shell Script, vou explicar de forma mais detalhada: Abra seu terminal de comando e nele vamos navegar até a pasta /tmp (caso não tenha a pasta tmp, você pode criar ela no diretório /home, usando o comando mkdir tmp Agora que estamos na [...]]]></description>
			<content:encoded><![CDATA[<p>——————————</p>
<p>#!/bin/bash</p>
<p>echo “Fala ae Mundo!”</p>
<p>——————————</p>
<p>Está ai o seu primeiro Shell Script, vou explicar de forma mais detalhada:</p>
<p>Abra seu terminal de comando e nele vamos navegar até a pasta <em>/tmp</em> (caso não tenha a pasta tmp, você pode criar ela no diretório <em>/home</em>, usando o comando <em><strong>mkdir tmp</strong></em></p>
<p>Agora que estamos na pasta <em>/home/tmp</em>, vamos criar um arquivo chamado: <strong>1shell.sh</strong>, para criar um arquivo vazio basta usar o comando <em><strong>touch</strong></em> “nomedoarquivoeextensão” (sem as aspas).</p>
<p>Utilize o comando <em><strong>ls</strong></em> para exibir os arquivos que estão na pasta <em>/home/tmp</em> para certificar-se que seu <strong>1shell.sh</strong> foi criado corretamente.</p>
<p>Vamos para a edição deste novo shellscript, mas antes uma pequena comparação para facilitar a vida de todos, o que é um shellscript se não um <strong>.bat</strong> do linux <img src='http://www.phaneronsoft.com/phaneronsoft/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> , ok voltando a edição: abra seu arquivo shell com o editor de texto vi, para isso digite: <em><strong>vi 1shell.sh</strong></em>.</p>
<p>Dentro do editor aperte a tecla i para incluir seu texto e digite como está la em cima no começo do post.</p>
<p>A linha <em><strong>#!/bin/bash</strong></em> é o que indica para o linux que seu arquivo é um shellscript. Depois de digitar o texto, precione ESC para parar de incluir e digite <em><strong>:wq</strong></em>, esse ultimo comando é salvar e sair. Certo antes de executar seu shell você deve dar as permissões necessarias para ele rodar como um executavel.</p>
<p>Para isso você deve usar o comando <em><strong>chmod +x “nomedoarquivo”</strong></em>. Fazendo isso você vai alterar a permissão dele para que possa ser executavel.</p>
<p>Agora vamos ao teste <img src='http://www.phaneronsoft.com/phaneronsoft/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  digite: <strong><em>./1shell.sh</em></strong> e veja o resultado na tela!!!</p>
<blockquote><p>root@intranet:/home# mkdir tmp</p>
<p>root@intranet:/home# cd tmp</p>
<p>root@intranet:/home/tmp# ls</p>
<p>root@intranet:/home/tmp# touch 1shell.sh</p>
<p>root@intranet:/home/tmp# ls</p>
<p>1shell.sh</p>
<p>root@intranet:/home/tmp# vi 1shell.sh</p>
<p>reading 1shell.sh</p>
<p>root@intranet:/home/tmp# chmod +x 1shell.sh</p>
<p>root@intranet:/home/tmp# ./1shell.sh</p>
<p>Fala ae Mundo!</p>
<p>root@intranet:/home/tmp#</p></blockquote>
<div></div>
<p>Logo vou explicar mais comandos e com eles você podera incrementar seu shell, e até mesmo programar nele!</p>
<p>Abraços e até a proxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/11/25/shell-script-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Descobrir ID de elemento através de uma Class usando JQuery</title>
		<link>http://www.phaneronsoft.com/phaneronsoft/2009/11/20/descobrir-id-de-elemento-atraves-de-uma-class-usando-jquery/</link>
		<comments>http://www.phaneronsoft.com/phaneronsoft/2009/11/20/descobrir-id-de-elemento-atraves-de-uma-class-usando-jquery/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 12:42:29 +0000</pubDate>
		<dc:creator>Marcelo Korjenioski</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Sites]]></category>
		<category><![CDATA[Descobrir]]></category>
		<category><![CDATA[Listas]]></category>

		<guid isPermaLink="false">http://www.phaneronsoft.com/phaneronsoft/?p=411</guid>
		<description><![CDATA[Descobrir ID de elemento através de uma Class usando JQuery é o tema de hoje. Eu não sou o tipo do programador que fica se preocupando com a quantidade de linhas por arquivo. Gosto mesmo é de criar um código simples e de fácil manutenção. Esta semana estava querendo colocar um efeito “slide” em algumas [...]]]></description>
			<content:encoded><![CDATA[<p>Descobrir ID de elemento através de uma Class usando JQuery é o tema de hoje.<br />
Eu não sou o tipo do programador que fica se preocupando com a quantidade de linhas por arquivo.<br />
Gosto mesmo é de criar um código simples e de fácil manutenção. Esta semana estava querendo colocar<br />
um efeito “slide” em algumas listas porem não queria criar uma função para cada lista. Então resolvi<br />
criar uma classe comum para elas e atribuir IDs para os botões e para as listas. Desta maneira foi simples<br />
resolver meu problema pois posso identificar os IDs dos elementos através da classe.<br />
Segue o código abaixo para explicar melhor a situação.</p>
<p>Segue o<a href="http://www.phaneronsoft.com/exemplos/jquery/"> exemplo funcionando</a></p>
<pre class="brush: php">

&lt;head&gt;
&lt;title&gt;Descobrir id de elemento usando uma classe com JQuery&lt;/title&gt;
&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=ISO-8859-1&quot;&gt;
&lt;style type=&quot;text/css&quot;&gt;
ul {list-style:none;}
* {margin:0;padding:0;border:0px;}
html {height:100%;}
.agrupa_programacao {float:left;display:inline;width:970px;margin-top:30px;}
.divisao_programacao {float:left;display:inline;width:230px;margin-right:10px;}
.lista_programacao,.lista_programacao2 {float:left;display:inline;width:228px;margin-top:5px;background:#fff;border:1px solid #bbb;}
.lista_programacao2 {margin-top:0px;border-top:0px}
.tit_programacao, .tit_programacao2, .tit_programacao3 {float:left;display:inline;width:198px;height:20px;background:#acbcc0 url(../img/seta.jpg) no-repeat 9px 16px;padding:12px 0 12px 30px;text-align:left;font:14px Verdana, Arial, Helvetica, sans-serif;font-weight:bold;color:#fff;border-bottom:1px solid #fff;}
.tit_programacao2 {color:#133c8b;background:#f4f1f1;}
.tit_programacao3 {background:#d9eff3 url(../img/seta2.gif) no-repeat 9px 7px;padding:5px 0 5px 30px;color:#133c8b;font:bold 12px Verdana, Arial, Helvetica, sans-serif;}
h3.tit_programacao3{border-left:1px solid #BBBBBB;border-right:1px  solid #BBBBBB;cursor:pointer;}
.txt_programacao, .txt_programacao2, .txt_programacao3 {float:left;display:inline;width:198px;padding:10px 15px 10px 15px;background:#f4f1f1;font:11px Verdana, Arial, Helvetica, sans-serif;color:#5e5e5e;border-bottom:1px solid #fff;}
.txt_programacao2 {background:#d7d7d7;}
.txt_programacao3 {background:#fff;}
&lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div&gt;
&lt;h3 id=&quot;frutas&quot;&gt;Frutas&lt;/h3&gt;
&lt;ul id=&quot;frutas_lista&quot;&gt;
&lt;li id=&quot;1&quot;&gt;Abacaxi&lt;/li&gt;
&lt;li id=&quot;2&quot;&gt;Pera&lt;/li&gt;
&lt;li id=&quot;3&quot;&gt;Maça&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&quot;verduras&quot;&gt;Legumes&lt;/h3&gt;
&lt;ul id=&quot;verduras_lista&quot;&gt;
&lt;li id=&quot;1&quot;&gt;Alface&lt;/li&gt;
&lt;li id=&quot;2&quot;&gt;Couve&lt;/li&gt;
&lt;li id=&quot;3&quot;&gt;Cenoura&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script language=&quot;javascript&quot; type=&quot;text/javascript&quot;&gt;
$(document).ready(function(){ // Inicio o script apenas quando toda a pagina estiver carregada.
// Atribuo a função onclick em todos os elementos com a classe informada
$(&quot;.tit_programacao3&quot;).click(function () {
//Pego o ID do elemento.
var id = $(this).attr(&#039;id&#039;);
// Como defini os ids para o titulo e lista, apenas faço uma
// concatenação para identificar a lista para receber a ação.
if ($(&quot;#&quot; + id + &quot;_lista&quot;).is(&quot;:hidden&quot;)) {
$(&quot;#&quot; + id + &quot;_lista&quot;).slideDown(&quot;normal&quot;);
} else {
$(&quot;#&quot; + id + &quot;_lista&quot;).slideUp(&quot;normal&quot;);
}
});
});
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Associando a classe com id é possível reduzir a quantidade de código facilitando a manutenção e agilizando o desenvolvimento.</p>
<p>Comen­tá­rios são bem vin­dos assim posso melho­rar a qua­li­dade dos tuto­ri­ais aqui apre­sen­ta­dos.<br />
É isso pes­soal uma ótima semana e até o próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phaneronsoft.com/phaneronsoft/2009/11/20/descobrir-id-de-elemento-atraves-de-uma-class-usando-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

