tag:blogger.com,1999:blog-17432143228305337942024-03-05T04:20:36.658-08:00Luiz Henrique DapieveProgramador e Analista de Infraestrutura<br><br>
<i><b>Compartilhando um pouco dos desafios do dia a dia...</b></i>Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.comBlogger19125tag:blogger.com,1999:blog-1743214322830533794.post-42870489576844017572017-08-05T10:05:00.001-07:002017-08-05T10:17:16.310-07:00Chaveamento entre PHP 5.6 e 7.0 no Linux<p>Por algum motivo você precisa fazer downgrade de versão do seu PHP, e por isso a melhor forma é ter os dos pacotes instalados na sua máquina e fazer o chaveamento entre as duas versões.</p>
<p>Encaramos que você já possui todos os pacotes que precisa em suas devidas versões e as duas versões do PHP devidamente instaladas, então basta fazer o seguinte:</p>
<pre>
DE "php5.6" PARA "php7.0":
Apache:
*Desabilita módulo*
$ sudo a2dismod php5.6;
*Habilita módulo*
$ sudo a2enmod php7.0;
*Reinicia serviço do apache2*
$ sudo service apache2 restart
CLI:
*Seta PHP para a versão 7.0*
$ sudo update-alternatives --set php /usr/bin/php7.0
VERSÃO ATUAL:
$ php -v
DE php7.0 para php5.6:
Apache:
*Desabilita módulo*
$ sudo a2dismod php7.0;
*Habilita módulo*
$ sudo a2enmod php5.6;
*Reinicia serviço do apache2*
$ sudo service apache2 restart
CLI:
*Seta PHP para a versão 5.6*
$ sudo update-alternatives --set php /usr/bin/php5.6
VERSÃO ATUAL:
$ php -v
</pre>
<p>Links de referência:<br>
<a href="https://lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu">https://lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu</a><p>
<p>
<a href="https://askubuntu.com/questions/761713/how-can-i-downgrade-from-php-7-to-php-5-6-on-ubuntu-16-04">https://askubuntu.com/questions/761713/how-can-i-downgrade-from-php-7-to-php-5-6-on-ubuntu-16-04</a></p>Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-67980752664950434422017-03-14T08:17:00.000-07:002017-03-14T08:17:30.743-07:00Android progressDialog - Problema com rotação de telaEstou utilizando em uma aplicação Android o <b>progressDialog</b> para exibir uma mensagem de <i>carregando/aguarde</i>, até que toda a minha aplicação seja carregada para o usuário.<br />
<br />
Porém quando você <b>rotaciona</b> o aparelho, rotacionando a tela também em quanto a progressDialog esteja em execução é fechado a aplicação e exibido o erro de <b>Unfortunately APP has stopped</b> com o log do console:<br />
<br />
<span style="color: #e06666;"><span style="font-size: x-small;"><b><i>E/AndroidRuntime: FATAL EXCEPTION: main
Process: br.com.company.appname, PID: 2925
java.lang.IllegalArgumentException:</i></b></span></span><br />
<span style="color: #e06666;"><span style="font-size: x-small;"><b><i> View=com.android.internal.policy.impl.PhoneWindow$DecorView{9d3787a0 V.E..... R......D 0,0-1166,288} not attached to window manager
at android.view.WindowManagerGlobal.findViewLocked(WindowManagerGlobal.java:370)
at android.view.WindowManagerGlobal.removeView(WindowManagerGlobal.java:299)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:84)
at android.app.Dialog.dismissDialog(Dialog.java:329)
at android.app.Dialog.dismiss(Dialog.java:312)
at br.com.company.appname.MainActivity$1.onPageFinished(MainActivity.java:48)
at com.android.webview.chromium.WebViewContentsClientAdapter.onPageFinished(WebViewContentsClientAdapter.java:449)
at com.android.org.chromium.android_webview.AwContentsClient$AwWebContentsObserver$1.run(AwContentsClient.java:73)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
at dalvik.system.NativeStart.main(Native Method) </i></b></span></span><br />
<br />
<br />
<i><b><span style="color: #e06666;"><span style="font-size: x-small;"> </span></span>Para que o problema seja resolvido basta adicionar no arquivo "AndroidManifest.xml" o trecho<span style="color: #660e7a;"> android</span><span style="color: blue;">:configChanges=</span><span style="color: green;">"orientation|screenSize"</span> conforme exemplo a baixo: </b></i><br />
<br />
<b><<span style="color: navy;">application</span></b><br />
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b><span style="color: navy;"> </span><span style="color: #660e7a;">android</span><span style="color: blue;">:allowBackup=</span><span style="color: green;">"true"</span></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b><span style="color: green;"></span><span style="color: #660e7a;">android</span><span style="color: blue;">:icon=</span><span style="color: green;">"@mipmap/ic_launcher"</span></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b><span style="color: green;"> </span><span style="color: #660e7a;">android</span><span style="color: blue;">:label=</span><span style="color: green;">"@string/app_name"</span></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b><span style="color: green;"> </span><span style="color: #660e7a;">android</span><span style="color: blue;">:supportsRtl=</span><span style="color: green;">"true"</span></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b><span style="color: green;"> </span><span style="color: #660e7a;">android</span><span style="color: blue;">:theme=</span><span style="color: green;">"@style/AppTheme"</span>></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b> <<span style="color: navy;">activity </span><span style="color: #660e7a;">android</span><span style="color: blue;">:name=</span><span style="color: green;">".MainActivity"</span></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b><span style="color: green;"> </span><span style="color: #660e7a;">android</span><span style="color: blue;">:configChanges=</span><span style="color: green;">"orientation|screenSize"</span>></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b> <<span style="background-color: #e4e4ff; color: navy;">intent-filter</span>></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b> <<span style="color: navy;">action </span><span style="color: #660e7a;">android</span><span style="color: blue;">:name=</span><span style="color: green;">"android.intent.action.MAIN" </span>/></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b> <<span style="color: navy;">category </span><span style="color: #660e7a;">android</span><span style="color: blue;">:name=</span><span style="color: green;">"android.intent.category.LAUNCHER" </span>/></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b> </<span style="background-color: #e4e4ff; color: navy;">intent-filter</span>></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b> </<span style="color: navy;">activity</span>></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b></<span style="color: navy;">application</span>></b></pre>
<pre style="background-color: white; color: black; font-family: 'DejaVu Sans Mono'; font-size: 9,0pt;"><b> </b></pre>
<b>Dessa forma você pode rotacionar sua tela ao mesmo tempo de execução do progressDialog sem que a aplicação trave e apresente o erro.</b><br/><br/>
Outros links:<br />
<a href="https://developer.android.com/guide/topics/resources/runtime-changes.html?hl=pt-br">https://developer.android.com/guide/topics/resources/runtime-changes.html?hl=pt-br</a><br />
<br />
<a href="http://stackoverflow.com/questions/1111980/how-to-handle-screen-orientation-change-when-progress-dialog-and-background-thre">http://stackoverflow.com/questions/1111980/how-to-handle-screen-orientation-change-when-progress-dialog-and-background-thre</a>
Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-82975597289339369552017-02-21T08:29:00.000-08:002017-02-21T08:29:38.208-08:00Init Script Required-Start Required-Stop Service Linux<pre style="background-color: white; font-size: 11px; padding: 0px;"><b>Dica Rápida:</b><b> </b></pre>
- No geral os scripts dos serviços linux são encontrados em: <b>/etc/init.d/...</b><br />
- Caso você necessita que um serviço seja iniciado ou terminado antes de outro serviço basta incluir no script de execução do serviço o seguinte trecho:<br />
<br />
Levamos em consideração que temos o serviço denominado <b>primeiroServico </b>no script do serviço<i> <b>/etc/init.d/primeiroServico</b></i> deve-se adicionar o seguinte trecho no cabeçalho: <br />
<pre style="background-color: white; font-size: 11px; padding: 0px;"></pre>
<pre style="background-color: white; padding: 0px;"><span style="font-size: 11px;">#!/bin/sh</span></pre>
<pre style="background-color: white; font-size: 11px; padding: 0px;"></pre>
<pre style="background-color: white; font-size: 11px; padding: 0px;"></pre>
<pre style="background-color: white; font-size: 11px; padding: 0px;">### BEGIN INIT INFO
# Provides: <b><span style="color: red;"><span style="background-color: white;">primeiroServico</span></span></b>
# <b>Required-Start:</b> $network
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: 2 3 5
# Default-Stop:
# Description: Descrição Serviço
### END INIT INFO</pre>
<pre style="background-color: white; font-size: 11px; padding: 0px;"></pre>
<pre style="background-color: white; font-size: 11px; padding: 0px;">{trecho seu serviço}</pre>
Este primeiro trecho basicamente denomina seu serviço como <b>primeiroServiço</b> e diz que primeiro deve ser iniciado o serviço denominado <b>"network" </b>para que posteriormente ele inicie o serviço "<b>primeiroServico</b>". Onde <b>Required-Start</b> deve ser preenchido com o nome do seu "script/serviço" que você deseja que seja iniciado anteriormente.<br />
<br />
Levamos em consideração agora que possuímos o serviço denominado <b>segundoServiço (<i>/etc/init.d/segundoServiço</i>)</b> o mesmo deve ser iniciado após o <i>start</i> dos serviços "<b>network</b>" e "<b>primeiroServico</b>" conforme trecho abaixo: <br />
<pre style="background-color: white; font-size: 11px; padding: 0px;"></pre>
<pre style="background-color: white; padding: 0px;"><span style="font-size: 11px;">#!/bin/sh</span></pre>
<pre style="background-color: white; font-size: 11px; padding: 0px;"><pre style="padding: 0px;">### BEGIN INIT INFO
# Provides: segundoServico
# <b>Required-Start:</b> $network <span style="color: red;"><b><span style="background-color: white;">$primeiroServico</span></b></span>
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start: 2 3 5
# Default-Stop:
# Description: Descrição Serviço
### END INIT INFO</pre>
<pre style="padding: 0px;">{trecho seu serviço}</pre>
</pre>E para que o serviço seja terminado depois que outro serviço basta adicionar na linhas <b>Required-Stop</b> adicionando os serviços conforme exemplos a cima.<br />
<br />
Alguns links para mais detalhes:
<a href="https://wiki.debian.org/LSBInitScripts">https://wiki.debian.org/LSBInitScripts</a>
<div>
</div>
Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-47880350566247989992017-02-21T05:06:00.000-08:002017-02-21T08:04:23.882-08:00Zend_Paginator com Doctrine HYDRATE_SCALAR e Zend_Paginator_Adapter_ArrayEstava construindo uma query bem complexa e com alguns innnerJoins e
para facilitar (<i>recuperar os dados das colunas informadas no SELECT t1.column1, t2.column1...</i>) eu precisava utilizar o “<b><i>Doctrine::HYDRATE_SCALAR</i></b>”, mas o
paginator não conseguia fazer a contagem dos resultados (<i>por utilizar HIDRATE_SCALAR</i>) então após algumas pesquisas minha solução para resolver o problema foi a seguinte:<br />
<b>Obs: Utilizando Zend 2.</b>
<br />
<pre>$query = UserTable::getInstance()->list($options); (Retorna a Query)
$query->setHydrationMode(<b>Doctrine::HYDRATE_SCALAR</b>);
//Criação do Adapter para funcionar o Paginator com HYDRATE_SCALAR
$adapter = new <b>Zend_Paginator_Adapter_Array</b>($query->execute());
$paginator = new <b>Zend_Paginator</b>($adapter, $page);
</pre>
Espero que esse trecho também ajude quem precise.<br />
<div>
<br />
Mais informações no link abaixo:<br />
<a href="http://doctrine.readthedocs.io/en/latest/en/manual/data-hydrators.html">http://doctrine.readthedocs.io/en/latest/en/manual/data-hydrators.html</a>
<a href="http://www.diogomatheus.com.br/blog/zend-framework/trabalhando-com-paginacao-usando-zend_paginator/">http://www.diogomatheus.com.br/blog/zend-framework/trabalhando-com-paginacao-usando-zend_paginator/</a>
</div>
<div>
<br /></div>
Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-352528901455586552016-06-02T06:39:00.000-07:002016-06-02T06:44:55.664-07:00Ionic Cordova AngularJS NodeJS e NPMO <b>Ionic Framework </b>é um conceito de desenvolvimento de aplicações híbridas, ou seja sem preocupar-se com o a plataforma em questão para desenvolvimento. Ionic possui componentes de desenvolvimento do <b>Cordova</b> (Componentes de integrações de recursos nativos dos dispositivos) e <b>AngularJS</b> (Componentes Web e JS), para execução do mesmo é necessário ter instalado o <b>NodeJS</b> (Server de execução) e NPM (Node Package Manager (Gerenciador de Pacotes do Node)).<br />
<br />
Para instalar o Cordova e o Ionic no Linux64 basta rodar os seguintes comandos:<br />
<br />
<i><b>$ sudo apt-get install curl<br />$ curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -<br />$ sudo apt-get install -y nodejs<br />$ npm install -g cordova ionic</b></i><br />
<br />
Ao tentar intalar o Ionic (último comando (<i>$ npm install -g cordova ionic</i>)) obtive o seguinte erro de instalação :<br />
<br />
<span style="color: #e06666;"><span style="font-size: x-small;"><b><i>make: g++: Command not found<br />src/libsass.target.mk:134: recipe for target 'Release/obj.target/libsass/src/libsass/src/ast.o' failed<br />make: *** [Release/obj.target/libsass/src/libsass/src/ast.o] Error 127<br />make: Leaving directory '/usr/lib/node_modules/ionic/node_modules/node-sass/build'<br />gyp ERR! build error <br />gyp ERR! stack Error: `make` failed with exit code: 2<br />gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/ionic/node_modules/node-gyp/lib/build.js:276:23)<br />gyp ERR! stack at emitTwo (events.js:106:13)<br />gyp ERR! stack at ChildProcess.emit (events.js:191:7)<br />gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:204:12)<br />gyp ERR! System Linux 4.4.0-22-generic<br />gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/ionic/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="<br />gyp ERR! cwd /usr/lib/node_modules/ionic/node_modules/node-sass<br />gyp ERR! node -v v6.2.0<br />gyp ERR! node-gyp -v v3.2.1<br />gyp ERR! not ok <br />Build failed<br />/usr/lib<br />└── cordova@6.1.1 <br /><br />npm ERR! Linux 4.4.0-22-generic<br />npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "cordova" "ionic"<br />npm ERR! node v6.2.0<br />npm ERR! npm v3.8.9<br />npm ERR! code ELIFECYCLE<br /><br />npm ERR! node-sass@3.4.2 postinstall: `node scripts/build.js`<br />npm ERR! Exit status 1<br />npm ERR! <br />npm ERR! Failed at the node-sass@3.4.2 postinstall script 'node scripts/build.js'.<br />npm ERR! Make sure you have the latest version of node.js and npm installed.<br />npm ERR! If you do, this is most likely a problem with the node-sass package,<br />npm ERR! not with npm itself.<br />npm ERR! Tell the author that this fails on your system:<br />npm ERR! node scripts/build.js<br />npm ERR! You can get information on how to open an issue for this project with:<br />npm ERR! npm bugs node-sass<br />npm ERR! Or if that isn't available, you can get their info via:<br />npm ERR! npm owner ls node-sass<br />npm ERR! There is likely additional logging output above.<br /><br />npm ERR! Please include the following file with any support request:<br />npm ERR! /home/{$USER}/npm-debug.log</i></b></span></span><br />
<br />
Para solucionar o problema bastou executar o seguinte comando:<br />
<br />
<i><b>$ sudo apt-get install node-gyp</b></i><br />
<br />
Após a instalação sem erros, o Ionic disponibiliza por default 3 layout pré prontos das aplicações, basta acessar a pasta local onde você pretende ter os fontes do Ionic, e rodar os comandos abaixo listados, esses comendos irão criar uma estrutura de pasta dentro do diretorio selecionadosão elas:<br />
<br />
#Layout em Branco<br />
<i><b>$ ionic start myApp blank</b></i><br />
<br />
#Layout em Abas<br />
<b><i>$ ionic start myApp tabs</i></b><br />
<br />
<br />
#Layout de Menu Laterais<br />
<i><b>$ ionic start myApp sidemenu </b></i><br />
<br />
Após a criação da estruta de seu layout você deve acessar a pasta e rodar o seguinte comando :<br />
<br />
#Inicia o server com seu template selecionado: <br />
<i><b>$ ionic serve </b></i><br />
<br />
#Inicia o server para exibir no modelo de celular: <br />
<i><b>$ ionic serve --lab </b></i><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY8k2CBAj7PEGTMOlGR0JZsrx4ME1hkPgzvWG0kOBmNZvkaUKdqH4GfKgnISY6opLJV0Rx1a3a2q-sS0pNURk5wPBAL0lBDN_oOPYyyo0eqEHtGxmXQEsP9APAFaiQjcgMmozvVvKbSCo/s1600/IonicMenu2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhY8k2CBAj7PEGTMOlGR0JZsrx4ME1hkPgzvWG0kOBmNZvkaUKdqH4GfKgnISY6opLJV0Rx1a3a2q-sS0pNURk5wPBAL0lBDN_oOPYyyo0eqEHtGxmXQEsP9APAFaiQjcgMmozvVvKbSCo/s320/IonicMenu2.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Imagem execução server (NodeJS) com layout (<b>sidemenu</b>)</td></tr>
</tbody></table>
<br />
<br />
Fontes utilizadas:<br />
http://ionicframework.com/ (Acessado em 02/06/2016) <br />
http://nodebr.com/o-que-e-a-npm-do-nodejs/ (Acessado em 02/06/2016);<br />
http://tableless.com.br/introducao-ao-ionic-framework/ (Acessado em 02/06/2016);Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-89339794723900381022016-05-20T11:25:00.001-07:002016-05-20T11:25:57.335-07:00JPA HIBERNATE e CARREGAMENTO FetchType.LAZY<div>
Este post tem por objetivo demonstrar como é feito o carregamento de um objeto(Endereco) mapeado com o LAZY para um objeto (Usuario). <br />
<br />
Abaixo trecho do fonte em Java (Usuario.java) de um mapeamento LAZY, digamos que o mapeamento da sua "Entity" por questões de performance ou até mesmo por padrão do projeto foi mapeado com o carregamento do tipo LAZY <b>(<i>fetch = FetchType.LAZY</i>)</b><br />
<br />
<b>Usuario.java</b> <br />
<pre>@Entity
@Table(name = "usuario")
public class Usuario {
@Column
private String nome;</pre>
<br />
<pre> @ManyToOne(<span style="color: red;">fetch = FetchType.LAZY</span>)
@JoinColumn(name = "id_endereco")
private Endereco endereco;</pre>
<pre> </pre>
<pre> public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
} </pre>
</div>
<div>
<pre> public Endereco getEndereco() {
return endereco;
}
public void setEndereco(Endereco endereco) {
this.endereco = endereco;
}</pre>
<pre>} </pre>
</div>
<div>
<br />
Este trecho demonstra o carregamento da entidade "<i>Endereco</i>" sendo executado via código Java, anteriormente conforme mapeado na classe "<i>Usuario.java</i>", podemos observar o mapeamento LAZY para o atributo "<b>endereco</b>", que ao capturar os usuários por sua vez não é carregado a não ser que seja feito o fonte conforme trecho abaixo (<b>Hibernate.initialize(</b><b>usuario.<wbr></wbr>getEndereco())</b>;) :</div>
<div>
private List<Usuario> obterUsuarios(Query query) {</div>
<div>
<span style="white-space: pre-wrap;"> </span></div>
<div>
<span style="white-space: pre-wrap;"> </span>List<Usuario> usuarios = (List<Usuario>) query.getResultList();</div>
<div>
<span style="white-space: pre-wrap;"> </span>for (Usuario usuario : usuarios){</div>
<div>
<span style="white-space: pre-wrap;"> </span><b>Hibernate.initialize(</b><b>usuario.<wbr></wbr>getEndereco())</b>;</div>
<div>
<span style="white-space: pre-wrap;"> </span>}</div>
<div>
<span style="white-space: pre-wrap;"> </span></div>
<div>
<span style="white-space: pre-wrap;"> </span>return usuarios;</div>
<div>
<span style="white-space: pre-wrap;"> </span>}<br />
<br />
Após utilizar <b>Hibernate.initialize</b> sua lista terá seus objetos carregados, com seus respectivos endereço.</div>
Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-36238005750615129232016-02-18T17:55:00.000-08:002016-02-18T17:55:41.316-08:00Android - Transição de tela entre Activities<br />
Neste exemplo prático estarei exibindo nos fontes como é feito um transição entre duas telas a <i><b>MainActivity.java</b></i> e a <i><b>SecondActivity.java.</b></i><br />
<br />
Funcionalidade:<br />
Clicar em qualquer lugar da tela e trocar para segunda tela.<br />
<br />
1) Passo: Adicione no seu layout no meu caso é o RelativeLayout o "<b>android:onClick</b>" do arquivo (activity_main.xml) para que tenhamos o evento de clique. Obtendo um trecho de xml semelhante ao seguinte:<br />
<br />
<pre style="background-color: white; font-family: 'Courier New';"><span style="font-style: italic;"><?</span><span style="color: blue; font-weight: bold;">xml version=</span><span style="color: green; font-weight: bold;">"1.0" </span><span style="color: blue; font-weight: bold;">encoding=</span><span style="color: green; font-weight: bold;">"utf-8"</span><span style="font-style: italic;">?></span></pre>
<pre style="background-color: white; font-family: 'Courier New';"><<span style="color: navy; font-weight: bold;">RelativeLayout </span><span style="color: blue; font-weight: bold;">xmlns:</span><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">=</span><span style="color: green; font-weight: bold;">"http://schemas.android.com/apk/res/android" </span><span style="color: blue; font-weight: bold;">xmlns:</span><span style="color: #660e7a; font-weight: bold;">tools</span><span style="color: blue; font-weight: bold;">=</span><span style="color: green; font-weight: bold;">"http://schemas.android.com/tools" </span></pre>
<pre style="background-color: white; font-family: 'Courier New';"><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:layout_width=</span><span style="color: green; font-weight: bold;">"match_parent" </span></pre>
<pre style="background-color: white; font-family: 'Courier New';"><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:layout_height=</span><span style="color: green; font-weight: bold;">"match_parent" </span></pre>
<pre style="background-color: white; font-family: 'Courier New';"><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:paddingLeft=</span><span style="color: green; font-weight: bold;">"@dimen/activity_horizontal_margin" </span></pre>
<pre style="background-color: white; font-family: 'Courier New';"><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:paddingRight=</span><span style="color: green; font-weight: bold;">"@dimen/activity_horizontal_margin"</span></pre>
<pre style="background-color: white; font-family: 'Courier New';"><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:paddingTop=</span><span style="color: green; font-weight: bold;">"@dimen/activity_vertical_margin"</span></pre>
<pre style="background-color: white; font-family: 'Courier New';"><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:paddingBottom=</span><span style="color: green; font-weight: bold;">"@dimen/activity_vertical_margin"</span></pre>
<pre style="background-color: white; font-family: 'Courier New';"><span style="color: #660e7a; font-weight: bold;">tools</span><span style="color: blue; font-weight: bold;">:context=</span><span style="color: green; font-weight: bold;">".MainActivity"</span></pre>
<pre style="background-color: white; font-family: 'Courier New';"><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:onClick=</span><span style="color: green; font-weight: bold;">"choiceScreen"</span></pre>
<pre style="background-color: white; font-family: 'Courier New';"><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:background=</span><span style="color: green; font-weight: bold;">"@color/backgroudapp"</span>></pre>
<pre style="background-color: white; font-family: 'Courier New';">
</pre>
<pre style="background-color: white; font-family: 'Courier New';">...</pre>
<br />
2) Crie sua próxima classe Java com seu respectivo layout, neste caso criamos a SecondActivity.java e o layout <b>second_activity.xml</b>;<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: navy; font-family: 'Courier New'; font-weight: bold;">public class </span><span style="background-color: white; font-family: 'Courier New';">SecondActivity </span><span style="color: navy; font-family: 'Courier New'; font-weight: bold;">extends </span><span style="background-color: white; font-family: 'Courier New';">AppCompatActivity {</span><br />
<pre style="background-color: white; font-family: 'Courier New';">
<span style="color: olive;">@Override</span><span style="color: olive;"> </span><span style="color: navy; font-weight: bold;">protected void </span>onCreate(Bundle savedInstanceState) {
<span style="color: navy; font-weight: bold;">super</span>.onCreate(savedInstanceState);
setContentView(R.layout.<span style="color: #660e7a; font-style: italic; font-weight: bold;">second_activity</span>);
}
}</pre>
<br />
3) Passo: Adicione sua tela no arquivo <b>AndroidManifest.xml </b>conforme exemplo abaixo:<br />
<br />
<pre style="background-color: white; font-family: 'Courier New';"> <<span style="color: navy; font-weight: bold;">activity </span><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:name=</span><span style="color: green; font-weight: bold;">".MainActivity" </span>>
<<span style="color: navy; font-weight: bold;">intent-filter</span>>
<<span style="color: navy; font-weight: bold;">action </span><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:name=</span><span style="color: green; font-weight: bold;">"android.intent.action.MAIN" </span>/>
<<span style="color: navy; font-weight: bold;">category </span><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:name=</span><span style="color: green; font-weight: bold;">"android.intent.category.LAUNCHER" </span>/>
</<span style="color: navy; font-weight: bold;">intent-filter</span>>
</<span style="color: navy; font-weight: bold;">activity</span>>
<<span style="color: navy; font-weight: bold;">activity </span><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:name=</span><span style="color: green; font-weight: bold;">".SecondActivity"</span>>
<<span style="color: navy; font-weight: bold;">intent-filter</span>>
<<span style="color: navy; font-weight: bold;">action </span><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:name=</span><span style="color: green; font-weight: bold;">"android.intent.action.MAIN" </span>/>
<<span style="color: navy; font-weight: bold;">category </span><span style="color: #660e7a; font-weight: bold;">android</span><span style="color: blue; font-weight: bold;">:name=</span><span style="color: green; font-weight: bold;">"android.intent.category.LAUNCHER" </span>/>
</<span style="color: navy; font-weight: bold;">intent-filter</span>>
</<span style="color: navy; font-weight: bold;">activity</span>></pre>
<pre style="background-color: white; font-family: 'Courier New';"><span class="Apple-tab-span" style="background-color: transparent;"> </span></pre>
4) Passo: Na MainActivity.java escreva um método com nome definido no passo anterior neste caso android:onClick="<b>choiceScreen</b>". Obtendo um método semelhante a esse :<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span> <span style="color: navy; font-family: 'Courier New'; font-weight: bold;">public class </span><span style="background-color: white; font-family: 'Courier New';">MainActivity </span><span style="color: navy; font-family: 'Courier New'; font-weight: bold;">extends </span><span style="background-color: white; font-family: 'Courier New';">AppCompatActivity {</span><br />
<pre style="background-color: white; font-family: 'Courier New';">
<span style="color: olive;">@Override</span><span style="color: olive;"> </span><span style="color: navy; font-weight: bold;">protected void </span>onCreate(Bundle savedInstanceState) {
<span style="color: navy; font-weight: bold;">super</span>.onCreate(savedInstanceState);
setContentView(R.layout.<span style="color: #660e7a; font-style: italic; font-weight: bold;">activity_main</span>);
}
<span style="color: navy; font-weight: bold;">public void </span>choiceScreen(View view){
Intent intent = <span style="color: navy; font-weight: bold;">new </span>Intent(MainActivity.<span style="color: navy; font-weight: bold;">this</span>, SecondActivity.<span style="color: navy; font-weight: bold;">class</span>);
MainActivity.<span style="color: navy; font-weight: bold;">this</span>.startActivity(intent);
}
}</pre>
<br />
Basta rodar a aplicação e você terá a transição da tela MainActivity para a SecondActivity.<br />
<br />
BÔNUS : Dica rápida e fácil, cadastrar um cor padrão para o sistema, basta adicionar no arquivo <b>colors.xml </b>a tag <span style="background-color: white; font-family: 'Courier New';"><</span><span style="color: navy; font-family: 'Courier New'; font-weight: bold;">color </span><span style="color: blue; font-family: 'Courier New'; font-weight: bold;">name=</span><span style="color: green; font-family: 'Courier New'; font-weight: bold;">"backgroudapp"</span><span style="background-color: white; font-family: 'Courier New';">>#</span><span style="background-color: white; font-family: 'Courier New';">303F9F</span><span style="background-color: white; font-family: 'Courier New';"></</span><span style="color: navy; font-family: 'Courier New'; font-weight: bold;">color</span><span style="background-color: white; font-family: 'Courier New';">> </span>depois de feito isso basta usa-la desta maneira <span style="color: #660e7a; font-family: 'Courier New'; font-weight: bold;">android</span><span style="color: blue; font-family: 'Courier New'; font-weight: bold;">:background=</span><span style="color: green; font-family: 'Courier New'; font-weight: bold;">"@color/backgroudapp"</span><span style="background-color: white; font-family: 'Courier New';">></span><br />
<br />Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-53642837900840695992015-06-30T18:50:00.002-07:002015-06-30T18:53:10.546-07:00Read-Only Root Filesystem - Raspberry Pi<br />
<span style="font-family: Georgia, Times New Roman, serif;"> O Raspberry Pi, na maioria dos casos é utilizado em televisores e alimentado via USB do mesmo, sofre inúmeras interrupções no funcionamento e pode ocasionar no corrompimento dos dados no "HD" que seria nosso famoso e conhecido Memory Card.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span><span style="font-family: Georgia, Times New Roman, serif;"> Para "amenizar" essa quebra de dados do cartão de memória deve-se realizar algumas configurações nas partições do seu SD. Segue procedimentos a serem feito :</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<span style="font-family: Georgia, Times New Roman, serif;">Edite o arquivo "/etc/fstab" e adicione nas partições de seu SD a sigla "RO".</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<span style="font-family: Georgia, Times New Roman, serif;">Tendo uma tabela semelhante a essa:</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<span style="height: inherit; outline: 0px;">
</span><br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184; width: 576px;">
<tbody>
<tr>
<td style="border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 63.65pt;" valign="top" width="85"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">proc<o:p></o:p></span></div>
</td>
<td style="border-left: none; border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-themecolor: text1; mso-border-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 87.1pt;" valign="top" width="116"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">/proc<o:p></o:p></span></div>
</td>
<td style="border-left: none; border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-themecolor: text1; mso-border-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 73.4pt;" valign="top" width="98"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">proc<o:p></o:p></span></div>
</td>
<td style="border-left: none; border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-themecolor: text1; mso-border-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 141.95pt;" valign="top" width="189"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span class="crayon-v"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">defaults</span></span><span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;"><o:p></o:p></span></div>
</td>
<td style="border-left: none; border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-themecolor: text1; mso-border-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 49.7pt;" valign="top" width="66"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">0<o:p></o:p></span></div>
</td>
<td style="border-left: none; border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-themecolor: text1; mso-border-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 16.4pt;" valign="top" width="22"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">0<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 63.65pt;" valign="top" width="85"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">/dev/</span><i><span style="font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: PT-BR;"> mmcblk0p1</span></i><span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 87.1pt;" valign="top" width="116"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">/boot<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 73.4pt;" valign="top" width="98"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">vfat<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 141.95pt;" valign="top" width="189"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">ro<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 49.7pt;" valign="top" width="66"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">0<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 16.4pt;" valign="top" width="22"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">2<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 63.65pt;" valign="top" width="85"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">/dev/</span><i><span style="font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-fareast-font-family: "Times New Roman"; mso-fareast-language: PT-BR;"> mmcblk0p2</span></i><span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 87.1pt;" valign="top" width="116"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">/<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 73.4pt;" valign="top" width="98"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">ext4<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 141.95pt;" valign="top" width="189"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">ro<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 49.7pt;" valign="top" width="66"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">0<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 16.4pt;" valign="top" width="22"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">1<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 63.65pt;" valign="top" width="85"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">tmpfs<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 87.1pt;" valign="top" width="116"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">/tmp<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 73.4pt;" valign="top" width="98"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">tmpfs<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 141.95pt;" valign="top" width="189"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span class="crayon-v"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">defaults</span></span><span class="crayon-sy"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">,</span></span><span class="crayon-v"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">noatime</span></span><span class="crayon-sy"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">,</span></span><span class="crayon-v"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">mode</span></span><span class="crayon-o"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">=</span></span><span class="crayon-cn"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">1777</span></span><span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;"><o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 49.7pt;" valign="top" width="66"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">0<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 16.4pt;" valign="top" width="22"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">0<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 63.65pt;" valign="top" width="85"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">tmpfs<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 87.1pt;" valign="top" width="116"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">/var/log<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 73.4pt;" valign="top" width="98"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">tmpfs<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 141.95pt;" valign="top" width="189"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span class="crayon-v"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">defaults</span></span><span class="crayon-sy"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">,</span></span><span class="crayon-v"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">noatime</span></span><span class="crayon-sy"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">,</span></span><span class="crayon-v"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">mode</span></span><span class="crayon-o"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">=</span></span><span class="crayon-cn"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;"><span style="height: inherit; outline: 0px;">0755</span></span><span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;"><o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 49.7pt;" valign="top" width="66"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">0<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 16.4pt;" valign="top" width="22"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">0<o:p></o:p></span></div>
</td>
</tr>
<tr>
<td style="border-top: none; border: solid black 1.0pt; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 63.65pt;" valign="top" width="85"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">tmpfs<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 87.1pt;" valign="top" width="116"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">/var/lock<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 73.4pt;" valign="top" width="98"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">tmpfs<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 141.95pt;" valign="top" width="189"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span class="crayon-v"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">defaults</span></span><span class="crayon-sy"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">,</span></span><span class="crayon-v"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">noatime</span></span><span class="crayon-sy"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">,</span></span><span class="crayon-v"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">mode</span></span><span class="crayon-o"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;">=</span></span><span class="crayon-cn"><span style="border: none windowtext 1.0pt; font-family: "Arial","sans-serif"; font-size: 10.0pt; mso-border-alt: none windowtext 0cm; padding: 0cm;"><span style="height: inherit; outline: 0px;">0755</span></span><span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;"><o:p></o:p></span></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 49.7pt;" valign="top" width="66"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">0<o:p></o:p></span></div>
</td>
<td style="border-bottom: solid black 1.0pt; border-left: none; border-right: solid black 1.0pt; border-top: none; mso-border-alt: solid black .5pt; mso-border-bottom-themecolor: text1; mso-border-left-alt: solid black .5pt; mso-border-left-themecolor: text1; mso-border-right-themecolor: text1; mso-border-themecolor: text1; mso-border-top-alt: solid black .5pt; mso-border-top-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 16.4pt;" valign="top" width="22"><div align="center" class="MsoNormal" style="margin-bottom: 0.0001pt; text-align: center;">
<span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">0<o:p></o:p></span></div>
</td>
</tr>
</tbody></table>
<br />
<span style="font-family: Georgia, Times New Roman, serif;">Para que o Xorg crie seus logs pasta criar uma nova partição para alocar o <b>/home/pi, </b>está </span><br />
<span style="font-family: Georgia, Times New Roman, serif;">partição não deve ser em Read-Only.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<span style="font-family: Georgia, Times New Roman, serif;">Reinicie e seu SD estará em Read-Only.</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<span style="font-family: Georgia, Times New Roman, serif;">Para conseguir alterar os arquivos caso necessário basta rodar o seguinte comando:</span><br />
<span style="font-family: Georgia, Times New Roman, serif;"><br /></span>
<br />
<table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: none; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-yfti-tbllook: 1184; width: 198px;">
<tbody>
<tr style="height: 11.75pt; mso-yfti-firstrow: yes; mso-yfti-irow: 0; mso-yfti-lastrow: yes;">
<td style="border: solid black 1.0pt; height: 11.75pt; mso-border-alt: solid black .5pt; mso-border-themecolor: text1; mso-border-themecolor: text1; padding: 0cm 5.4pt 0cm 5.4pt; width: 148.35pt;" valign="top" width="198"><div align="center" style="margin-bottom: .0001pt; margin: 0cm; text-align: center;">
<i><span style="font-family: "Arial","sans-serif"; font-size: 10.0pt;">mount<span class="apple-converted-space"> </span>/<span class="apple-converted-space"> </span>-o<span class="apple-converted-space"> </span>remount,rw</span></i></div>
</td></tr>
</tbody></table>
<pre class="tw-data-text vk_txt tw-ta tw-text-small" data-fulltext="" data-placeholder="Tradução" dir="ltr" id="tw-target-text" style="background-color: white; border: none; color: #212121; font-family: inherit; font-size: 16px !important; height: 696px; line-height: 24px !important; overflow: hidden; padding: 0px 0.14em 0px 0px; position: relative; resize: none; unicode-bidi: -webkit-isolate; white-space: pre-wrap; width: 237.5px; word-wrap: break-word;"></pre>
Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-12139770979389010902014-09-12T19:12:00.001-07:002014-09-12T19:12:02.086-07:00ORDER BY FIELD - Doctrine 2Digamos que você tem uma ordenação em uma coluna no banco de dados, o qual seria necessário fazer uma listagem nessa ordem, exemplo uma string de ids algo como "122,150,152,129", e usando apenas o <b>ORDER BY </b>isso não ira funcionar, precisamos então usar o <b>FIELD</b>, veja no exemplo como ele ajuda nessa questão.<br />
<br />
A variável $listPages, possui uma STRING com a minha ordenação , $listPages = "122,150,152,129" a qual eu preciso que venha os resultados da query, então fizemos assim :<br />
<br />
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
public function getPagesByPackage($listPages, $entidade)</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
{</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
$query = self::getInstance()-><wbr></wbr>createQuery('p')</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
->where('<a href="http://p.id/" style="color: #1155cc;" target="_blank">p.id</a> in (' . $listPages . ')')</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
->andwhere('p.entidade = ?', $entidade)</div>
<div style="background-color: white; font-family: arial, sans-serif; font-size: 13px;">
<span style="color: #222222;"> </span><span style="color: #cc0000;">-</span><span style="color: red;">>orderBy('FIELD(id, ' . $listPages . ')');</span></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
return $query;</div>
<span style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;"> }</span>Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-87190400935079424182014-09-11T20:06:00.001-07:002014-09-11T20:08:35.665-07:00Using HTML in a Zend_Form_Element (Zend 1.12)<div style="text-align: left;">
<span style="font-family: Arial, Helvetica, sans-serif;">Para utilizar HTML na label de um Zend_Form_Element basta definir a </span><b style="font-family: Arial, Helvetica, sans-serif;">option escape para false</b><span style="font-family: Arial, Helvetica, sans-serif;"> dessas duas maneiras:</span></div>
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">A primeira é setando diretamente nas options do elemento na construção do mesmo.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">Ou utilizando os métodos getDecorator e setOption(), válidos também para quando já se tem o elemento criado e é necessário essa alteração.</span></li>
</ul>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
$this->form->addElement('<wbr></wbr>button', 'salvar', array(</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<span style="white-space: pre-wrap;"> </span>'label' => '<br style="clear:both">Salvar conteúdo',</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<span style="white-space: pre-wrap;"> </span>'class'<span style="white-space: pre-wrap;"> </span>=> 'botao',</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<span style="white-space: pre-wrap;"> </span>'type'<span style="white-space: pre-wrap;"> </span>=> 'submit',</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
'escape' => false,</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<span style="white-space: pre-wrap;"> </span>'style' => 'margin-top:25px;',</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
'decorators' => $this->form-><wbr></wbr>getButtonDecorators()</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<span style="white-space: pre-wrap;"> </span>));</div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<br /></div>
<div style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;">
<div>
$responsavel = new Zend_Form_Element_Text('<wbr></wbr>responsavel', array(</div>
<div>
'label' => '<span style="color:red">*</span><wbr></wbr>Resposável:',</div>
<div>
'size' => 50,</div>
<div>
'decorators' <span style="white-space: pre-wrap;"> </span>=> $this->_elementDecorators,</div>
<div>
'max_length' => 50 )</div>
<div>
);</div>
<div>
</div>
<div>
$responsavel->getDecorator('<wbr></wbr>Label')->setOption('escape', false);</div>
<div>
$this->addElement($<wbr></wbr>responsavel);</div>
</div>
Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-65013326839537281592014-01-10T03:10:00.000-08:002014-01-10T04:04:04.914-08:00ERROR: ABORTING BOOT (Sending SIGTERM to parent!) {FreeBSD 9}Ao iniciar a máquina o seguinte erro era exibido:<br />
<pre><b>ERROR: ABORTING BOOT (Sending SIGTERM to parent!)
init:/bin/sh or /etc/rc terminated abnormally, going to single user mode
Enter full pathname of shell or return for /bin/sh: PRESS ENTER</b>
</pre>
Comandos a serem digitados para fazer uma verificação de consistência do sistema de arquivos manual, e remontar suas partições:<br />
<pre>
<b># fsck -y
# mount -u /
# mount -a -t ufs</b>
</pre>
Após a execução dos comandos dar um 'reboot' na máquina<br />
<pre>
<b># shutdown -r now</b>
</pre>
#Fontes acessada dia 10-01-2014<br />
<a href="https://forums.freebsd.org/viewtopic.php?&t=10499http://">https://forums.freebsd.org/viewtopic.php?&t=10499</a>Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-47403460358507347892013-09-03T13:50:00.000-07:002013-09-03T13:53:02.599-07:00Configurar porta de acesso SSH no CentOs 6# Acesse o arquivo de configuração do SSH
<pre><b>vi /etc/ssh/sshd_config</b></pre>
# Descomente a linha <b>'# Port 22'</b> e adicione a porta que deseja liberar
<pre><b>Port 9022</b></pre>
# Reinicie o serviço
<pre><b>/etc/init.d/sshd restart</b></pre>
Para que funcione o acesso a nova porta você tem que adicionar a porta em questão (9022) na regra de Firewall<br />
# Acesse o arquivo de configuração do Firewall
<pre><b>vi /etc/sysconfig/iptables</b></pre>
# Adicione a linha
<pre><b>-A INPUT -m state --state NEW -m tcp -p tcp --dport 9022 -j ACCEPT</b></pre>
# Reinicie o serviço
<pre><b>/etc/init.d/iptables restart</b></pre>
Fontes acessadas em 03/09/2013<br />
<a href="http://wiki.centos.org/HowTos/Network/SecuringSSH">http://wiki.centos.org/HowTos/Network/SecuringSSH</a><br />
<a href="http://mmaiacupofcoffee.blogspot.com.br/2012/11/como-liberar-uma-porta-pelo-iptables.html">http://mmaiacupofcoffee.blogspot.com.br/2012/11/como-liberar-uma-porta-pelo-iptables.html</a>Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-41360791485895964892013-07-10T15:28:00.000-07:002013-07-10T15:30:52.941-07:00RDP (Remote Desktop Protocol) Oracle VirtualBoxPara realizar uma conexão remota em uma máquina virtual do VirtualBox via RDP usando Ubuntu 12.04 faça os seguintes passos:
<pre>
Na VM que desejas conectar vá em "Configurações" - "Monitor" - "Tela Remota"
Marque a checkbox "Habilitar Servidor"
</pre>
Abra o shell e digite o seguinte comando:
<pre>
$ rdesktop -a 16 -N 192.168.192.168:3389
Onde 192.168.192.168 é o IP da máquina onde está sendo rodada a VM
</pre>
Caso não funcionar certifique de que o pacote de extensão "Oracle_VM_VirtualBox_Extension_Pack-4.2.16-86992.vbox-extpack" esta instalado em
<pre>
"Arquivo" - "Preferências" -"Extensões"
</pre>
Caso não esteja instalado realizar o download <a href="http://www.downloadcrew.com/article/20279-virtualbox_extension_pack">aqui</a> e adicione esta extensão e repetir o comando
<pre>
$ rdesktop -a 16 -N 192.168.192.168:3389
</pre>
Fontes acessada em 10/07/2013<br />
<a href="http://www.downloadcrew.com/article/20279-virtualbox_extension_pack">http://www.downloadcrew.com/article/20279-virtualbox_extension_pack</a>Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-60279636521215421392013-06-25T06:02:00.002-07:002013-06-25T06:02:28.418-07:00Zabbix - Monitoramento de Servidores [Instalação]Realize o download do package Zabbix 2.0.6 em :<br />
<a href="http://www.zabbix.com/download.php">http://www.zabbix.com/download.php</a><br /><br />
No terminal acesse o MySQL
<pre>
$ mysql -uusuario -psenha
mysql> create database zabbix;
mysql> exit
</pre>
Entre no diretório do package Zabbix:
<pre>$ cd /home/desenv/zabbix-2.0.6/database/mysql</pre>
Importe os sqls:
<pre>
$ mysql -uusuario -psenha zabbix < schema.sql
$ mysql -uusuario -psenha zabbix < images.sql
$ mysql -uusuario -psenha zabbix < data.sql
</pre>
Após configure a ativação dos modulos do Zabbix:
<pre>$ ./configure --enable-server --enable-agent --with-mysql
--enable-ipv6 --with-net-snmp --with-libcurl</pre>
E compile:
<pre>$ sudo make install</pre>
Crie um arquivo com o nome zabbix em <b>/etc/apache2/conf.d/</b>:
<pre>$ sudo nano /etc/apache2/conf.d/zabbix</pre>
E acrescente isso:
<pre>
php_value max_execution_time 300
php_value memory_limit 128M
php_value post_max_size 16M
php_value upload_max_filesize 2M
php_value max_input_time 300
php_value date.timezone America/Sao_Paulo
</pre>
Aponte seu apache para o package do Zabbix.
<pre>home/desenv/zabbix-2.0.6/frontends/php/</pre>
Restart o apache:
<pre>$ sudo service apache2 restart</pre>
Agora siga os passos do instalação via browser ou se preferir acesse o manual em :<br />
<a href="https://www.zabbix.com/documentation/doku.php?id=2.0/manual/installation/install">https://www.zabbix.com/documentation/doku.php?id=2.0/manual/installation/install</a><br /><br />
Um passo do final da instalação terás algo como :<br />
<pre>Press the "Download configuration file" button, download
the configuration file and save it as "/home/desenv/zabbix-2.0.6/frontends/php/conf/zabbix.conf.php"</pre>
Faça o donwload e jogue o arquivo em <b>home/desenv/zabbix-2.0.6/frontends/php/conf/</b>.<br /><br />
Depois é só se logar no sistema e pronto Zabbix instalado.<br /><br />
Fontes acessadas em 25/06/2013:<br />
<a href="https://www.zabbix.com/documentation/doku.php?id=2.0/manual/installation/install">https://www.zabbix.com/documentation/doku.php?id=2.0/manual/installation/install</a><br />
<a href="http://www.zabbix.com/download.php">http://www.zabbix.com/download.php</a>
Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com1tag:blogger.com,1999:blog-1743214322830533794.post-46029777638057514322013-06-17T04:53:00.001-07:002013-06-17T05:27:52.007-07:00Script Munin/FreeBSD - Monitoramento de temperaturaVerifique se o módulo de monitoramento de temperatura foi inicializado:
<pre> # kldstat </pre>
<pre> Id Refs Address Size Name
1 12 0xc0400000 972234 kernel
2 1 0xc0d73000 164e8 geom_mirror.ko
3 1 0xc0d8a000 58e0 if_vlan.ko
4 1 0xc0d90000 36d6c pf.ko
<b> 5 1 0xc0dc7000 295c coretemp.ko</b>
6 1 0xc0dca000 6a32c acpi.ko
7 1 0xc67fa000 22000 linux.ko
</pre>
Caso o módulo já esteja em execução, utilize <b>'sysctl'</b> para verificar a temperatura:
<pre># sysctl -a | grep temperature
<b>dev.cpu.0.temperature: 68</b></pre>
Se o modulo <b>'NÃO'</b> está carregado edit o arquivo <b>'/boot/loader.conf'</b> acrescentando:
<pre> coretemp_load="YES" </pre>
Reinicie a máquina e rode novamente o comando:
<pre># sysctl -a | grep temperature</pre>
Para fazer o script para o Munin faça o seguinte:<br />
Como <b>'root'</b> acesse <b>'/usr/local/etc/munin/plugins/'</b> e crie o seguinte script:
<pre> #!/usr/local/bin/bash
case $1 in
config)
echo "graph_title CPU Temperatures";
echo "graph_vtitle Celsius";
echo "graph_args --base 1000 -l 0";
echo "graph_category sensors";
for n in $(eval echo "{0..$(expr $(sysctl -n hw.ncpu) - 1)"})
do
echo "core${n}.label Core ${n}";
done
exit 0;;
esac
for n in $(eval echo "{0..$(expr $(sysctl -n hw.ncpu) - 1)"})
do
echo -n "core${n}.value $(sysctl -n dev.cpu.${n}.temperature).0"
done
</pre>
Salve o script como por exemplo <b>'cpu_temp'</b>.<br />
Rode o seguinte comando:<br />
<pre> # chmod + x cpu_temp </pre>
Para obter a temperatura execute<br />
<pre> # ./cpu_temp</pre>
Para obter as informações de configuração execute<br />
<pre> # ./cpu_temp config</pre>
O resultado com o Munin é algo como:<br />
<div class="separator" style="clear: both;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu9WBqHSYdnGbIHQrTtT7z4qSuUv8LmeKDdXLDQ-hHIofZLkgtles-imJAG92UOkC5S2fRLgnOcsT04tVdiApGqvLMKaQ__9tIeIL9RNJNGUNSdNzf3azb6ZTlcuuwXtluK_gb6LE3YeE/s1600/BLOGCaptura+de+tela+de+2013-06-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhu9WBqHSYdnGbIHQrTtT7z4qSuUv8LmeKDdXLDQ-hHIofZLkgtles-imJAG92UOkC5S2fRLgnOcsT04tVdiApGqvLMKaQ__9tIeIL9RNJNGUNSdNzf3azb6ZTlcuuwXtluK_gb6LE3YeE/s320/BLOGCaptura+de+tela+de+2013-06-1.png" /></a></div>Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-40411209557914818842013-06-12T04:27:00.001-07:002013-06-17T05:07:53.968-07:00Munin - Monitoramento de temperatura para servidores LinuxMunin é uma ferramenta de monitoramento de recursos de rede que podem ajudar a analisar as tendências e recursos. A instalação padrão fornece uma grande quantidade de gráficos.<br />
<br />
Caso não tenha os plugins do Munin instalados em sua máquina digite:<br />
<p>
<pre><i>$ sudo apt-get install munin-plugins-extra
$ sudo apt-get install lm-sensors<br /></i></pre>
</p>
Como ''root'' rode:<br />
<pre><i><p>$ sensors<br /></p></i></pre>
Caso nenhum resultado exibido suba o modulo "coretemp"<br />
<pre><i><p>$ modprobe coretemp<br /></p></i></pre>
Faça um link simbólico<br />
<pre><i><p>$ ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_temp<br /></p></i></pre>
Acesse /etc/munin/plugins e rode<br />
<pre><i><p>$ sudo ./sensors_temp<br /></p></i></pre>
A saida é algo semelhante a :
<pre><i><p>temp1.value 40.0
temp2.value 40.0
temp3.value 39.0</pre>
</p></i>
Pronto terás as informações de temperatura do seu server no Munin.
<br />
Link relacionado :<br />
<a href="http://wiki.kartbuilding.net/index.php/Munin_Statistics">http://wiki.kartbuilding.net/index.php/Munin_Statistics</a>Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-39352350855337265172013-05-16T23:23:00.000-07:002013-05-16T23:27:08.527-07:00FIND e REPLACE com SEDSed significa "Stream EDitor" como o próprio nome diz "editor de fluxo", é um editor NÃO "convencional" pois não usa interatividade em tela com o arquivo a ser editado e é executado via linha de comando utilizando o "shell"(linux).<br />
Utilizado para editar arquivos de extensão ".txt",".php",".html" dentre outros.<br />
<br />
O meu problema era alterar mais de 200 arquivos em PHP trocando os links absolutos por links relativos, e a grande solução para não alterar um por um foi a utilização do SED.<br />
<br />
Exemplo de comando utilizado:<br />
<br />
<span style="color: #999999;"><i>$ find /home/user/projetos/ -type f -exec sed -i 's/ANTIGO/NOVO/g' {} \;</i></span><br />
<br />
Você consegui alterar todos os arquivos que estão dentro do diretório "/home/user/projetos/" e que possuir a palavra "ANTIGO" por "NOVO".<br />
<br />
Caso precisa alterar apenas um arquivo use:<br />
<br />
<span style="color: #999999;"><i>$ sed -i 's/ANTIGO/NOVO/g' /home/user/projetos/arquivo.txt</i></span><br />
<br />
Para mais opções de utilização do SED digite:<br />
<span style="background-color: white;"><br /></span>
<span style="background-color: white;"><span style="color: #999999;"><i>$ man sed</i></span></span><br />
<br />
Fontes acessadas em 17/05/2013:<br />
<a href="http://www.blogger.com/goog_450851200"> http://www.brunolinux.com/02-The_Terminal/Find_and%20Replace_with_Sed.html</a><br />
<a href="http://pt.kioskea.net/faq/8760-sed-introducao-ao-sed-part-i">http://pt.kioskea.net/faq/8760-sed-introducao-ao-sed-part-i</a><br />
<br />
<br />Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-1734597531668872572013-01-17T21:07:00.000-08:002013-01-17T21:07:24.446-08:00The xdebug extension is not loaded. No code coverage will be generated.<span style="font-size: small;">Após ter instalado o framework PHPUnit para realizar os teste unitários dos códigos desenvolvidos, houve a necessidade de se ter um melhor controle ou visualização do que já havia testado e o que ainda faltava testar, onde o PHPUnit disponibiliza de dashboard interativo de visualização de seus testes.</span><br />
<br />
<span style="font-size: small;">Através do parâmetro [--coverage-html] passado para o phpunit é possível ter acesso a esse "painel" através do browser.</span><br />
<span style="font-size: small;"><br /></span>
<span style="font-size: small;">O comando para geração desse dashboard é:</span><br />
<span style="font-size: small;"><br /></span>
<span style="background-color: #999999;"><i><span style="font-size: small;">root@Notebook: /home/desenv/site/TesteUnit$ phpunit --colors --coverage-html ./reports CadastroAdminTest</span></i></span><br />
<span style="font-size: small;"><br /></span>
<span style="font-size: small;">Onde meu retorno era algo como :</span><br />
<span style="font-size: small;"><br /></span>
<span style="background-color: #999999;"><i><span style="font-size: small;">PHPUnit 3.7.13 by Sebastian Bergmann.</span></i></span><br />
<span style="background-color: #999999;"><i><span style="font-size: small;"><br /></span></i></span><span style="background-color: #999999;"><i><span style="font-size: small;">The xdebug extension is not loaded. No code coverage will be generated.</span></i></span><br />
<span style="background-color: #999999;"><i><span style="font-size: small;"><br /></span></i></span>
<span style="background-color: #999999;"><i><span style="font-size: small;">....</span></i></span><br />
<span style="background-color: #999999;"><i><span style="font-size: small;"><br /></span></i></span>
<span style="background-color: #999999;"><i><span style="font-size: small;">Time: 0 seconds, Memory: 4.75Mb</span></i></span><br />
<span style="background-color: #999999;"><i><span style="font-size: small;"><br /></span></i></span>
<span style="background-color: #999999;"><i><span style="font-size: small;">OK (4 tests, 6 assertions)</span></i></span><br />
<span style="font-size: small;"><br /></span>
<span style="font-size: small;">No qual não era possível gerar o dashboard.</span><br />
<span style="font-size: small;"><br /></span>
<span style="font-size: small;">A solução para esse problema foi encontrada no site abaixo acessado em (18/01/2013): <a href="http://blog.mac2k3.be/2010/05/upgrading-ubuntu-9-10-to-10-4-php-and-xdebug-problems/">http://blog.mac2k3.be/2010/05/upgrading-ubuntu-9-10-to-10-4-php-and-xdebug-problems/</a></span><br />
<span style="font-size: small;"><br /></span>
<span style="font-size: small;">Onde no meu caso precisou-se instalar php5-xdebug com o comando:</span><br />
<span style="background-color: #999999;"><span style="font-size: small;"><i>sudo apt-get install php5-xdebug</i></span></span><br />
<span style="font-size: small;"><br /></span>
<span style="font-size: small;">Adicionar a linha:</span><br />
<div class="codecolorer-container bash dawn" style="overflow: auto; white-space: nowrap; width: 550px;">
<div class="bash codecolorer">
<span style="background-color: #999999;"><span style="font-size: small;"><i><span class="re2">zend_extension</span>=<span class="st0">"/usr/lib/php5/20060613/xdebug.so"</span></i></span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0"> </span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0">No arquivo </span><span class="st0"><em>:</em></span></span></div>
<div class="bash codecolorer">
<span style="background-color: #999999;"><span style="font-size: small;"><span class="st0"><em>/etc/php5/apache2/php.ini</em></span></span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0"><em> </em></span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0">Pois possui-a <em><span style="background-color: #999999;">php-pear</span> e<br /><span style="background-color: #999999;">php5-dev</span> </em>em uma versão mais nova.<em> </em></span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0"><em> </em></span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0">Após a adição da linha realizei o restart do servidor apache2</span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0">e rodei novamente o comando:</span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0"><em><span style="background-color: #999999;"><span style="font-size: small;">phpunit --c<span style="font-size: small;">olors --<span style="font-size: small;">covera<span style="font-size: small;">ge-html ./repo<span style="font-size: small;">rts CadastroAdminTest</span></span></span></span></span></span></em></span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0"><em> </em></span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0">E meu retorno agora é :</span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0"> </span></span><span style="font-size: small;"><span style="color: #999999;"><span style="color: black;"><span style="background-color: #999999;"><span class="st0"><i> </i></span></span></span></span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0"><em><span style="background-color: #999999;">PHPUnit 3.7.13 by Sebastian Bergmann.<br /><br />....<br /><br />Time: 0 seconds, Memory: 4.75Mb<br /><br />OK (4 tests, 6 assertions)<br /><br />Generating code coverage report in HTML format ... done</span></em></span></span></div>
<div class="bash codecolorer">
<span style="font-size: small;"><span class="st0"><em><br /></em></span></span></div>
<div class="bash codecolorer">
<span class="st0"><span style="font-size: small;">Conforme o esperado.</span></span></div>
</div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0tag:blogger.com,1999:blog-1743214322830533794.post-13712952078903526482012-12-19T15:11:00.000-08:002012-12-19T15:11:29.781-08:00Problema na identificação das portas serial no Arduino com o Ubuntu 12.04<br />
Tive algumas experiência de desenvolver aplicações em Arduino no Ubuntu 11.04, mas nunca havia desenvolvido no 12.04, quando fui utilizar tive um grande problema na identificação das portas serial usb,não conseguia configurar pela IDE qualquer porta usb, estava desabilitada a opção no menu "Tools->Serial Port", impossibilitando de realizar qualquer teste com o Arduino quanto menos desenvolver algo.<br />
<br />
Pelo terminal verifiquei usando o seguinte comando:<br />
<span style="color: #cccccc;"><span style="font-size: small;"><i>$ dmesg</i></span></span><br /><br />
E meu problema era algo como :<br />
<br />
<span style="color: #cccccc;"><span style="font-size: small;"><i>usb 1-1.3: new full-speed USB device number 18 using ehci_hcd</i></span></span><br />
<span style="color: #cccccc;"><span style="font-size: small;"><i>usb 1-1.3: device not accepting address 18, error -32</i></span></span><br />
<span style="color: #cccccc;"><span style="font-size: small;"><i>usb 1-1.3: new full-speed USB device number 19 using ehci_hcd</i></span></span><br />
<span style="color: #cccccc;"><span style="font-size: small;"><i>usb 1-1.3: device not accepting address 19, error -32</i></span></span><br />
<span style="color: #cccccc;"><span style="font-size: small;"><i>hub 1-1:1.0: unable to enumerate USB device on port 4</i></span></span><br />
<br />
Solução:<br />
<br />
<span style="color: #cccccc;"><span style="font-size: small;"><i><span style="font-family: Arial,Helvetica,sans-serif;">sudo usermod -a -G tty name_user</span></i></span></span> <br />
<span style="color: #cccccc;"><span style="font-size: small;"><i><span style="font-family: Arial,Helvetica,sans-serif;"></span></i></span></span><span style="color: #cccccc;"><span style="font-size: small;"><i><span style="font-family: Arial,Helvetica,sans-serif;">sudo usermod -a -G dialout name_user </span></i></span></span><br />
<br />
Após feito isso reiniciei e funcionou.<br />
<br />Luiz Henriquehttp://www.blogger.com/profile/06795267815819654992noreply@blogger.com0