Zend Framework: layout e views – dicas

Algumas dicas rápidas sobre renderização de layout (Zend_Layout) e views no ZF:

Desabilitar o layout (a partir de um controller):

$this->getHelper('layout')->disableLayout();

Renderizar outro arquivo de layout (a partir de um controller):

$this->getHelper('layout')->setLayout('alternativo');
// alternativo = /applications/layouts/scripts/alternativo.phtml

Renderizar outro arquivo de layout (a partir de uma view):

<?php $this->layout()->setLayout('alternativo'); ?>
// alternativo = /applications/layouts/scripts/alternativo.phtml

Não renderizar a view do respectivo controller:

$this->getHelper('viewRenderer')->setNoRender(true);

Renderizar a view de outro module e/ou controller:

$this->getHelper('viewRenderer')->renderBySpec('cadastro', array(
    'module'      => $module,
    'controller'  => 'ajax'
));
Posted in Artigos | Tagged , | Leave a comment

Limpando os logs no Ubuntu

Para limpar os arquivos de log existentes na pasta /var/log/, basta executar o seguinte comando:

sudo find /var/log -type f -exec rm {} \;

Após reiniciar, os arquivos serão novamente criados.

Para limpar o histórico:

history -c

Lembrando que o histórico será excluído apenas para o usuário autenticado.

Posted in Artigos | Tagged , , | 3 Comments

Detalhes do hardware no Ubuntu Linux 10.04 Lucid Lynx

Preciso fazer um upgrade de memória no meu PC, e para consultar detalhes do hardware, sem abrir o gabinete, utilizei o comando lshw (list hardware), disponível nativamente no Ubuntu Linux 10.04 Lucid Lynx:

Comando:

 
# lshw -short -sanitize

Resultado:

H/W path               Device      Class       Description
==========================================================
                                   system      P5K SE
/0                                 bus         P5K SE
/0/0                               memory      64KiB BIOS
/0/4                               processor   Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz
/0/4/5                             memory      32KiB L1 cache
/0/4/6                             memory      6MiB L2 cache
/0/30                              memory      4GiB System Memory
/0/30/0                            memory      2GiB DIMM DDR2 Synchronous 800 MHz (1.2 ns)
/0/30/1                            memory      DIMM [empty]
/0/30/2                            memory      2GiB DIMM DDR2 Synchronous 800 MHz (1.2 ns)
/0/30/3                            memory      DIMM [empty]
/0/100                             bridge      82G33/G31/P35/P31 Express DRAM Controller
/0/100/1                           bridge      82G33/G31/P35/P31 Express PCI Express Root Port
/0/100/1/0                         display     G84 [GeForce 8600GT]
/0/100/1a                          bus         82801I (ICH9 Family) USB UHCI Controller #4
/0/100/1a.1                        bus         82801I (ICH9 Family) USB UHCI Controller #5
/0/100/1a.2                        bus         82801I (ICH9 Family) USB UHCI Controller #6
/0/100/1a.7                        bus         82801I (ICH9 Family) USB2 EHCI Controller #2
/0/100/1b                          multimedia  82801I (ICH9 Family) HD Audio Controller
/0/100/1c                          bridge      82801I (ICH9 Family) PCI Express Port 1
/0/100/1c.4                        bridge      82801I (ICH9 Family) PCI Express Port 5
/0/100/1c.4/0          scsi4       storage     88SE6121 SATA II Controller
/0/100/1c.4/0/0.1.0    /dev/cdrom  disk        DVDRAM GSA-H42N
/0/100/1c.5                        bridge      82801I (ICH9 Family) PCI Express Port 6
/0/100/1c.5/0          eth0        network     L1 Gigabit Ethernet Adapter
/0/100/1d                          bus         82801I (ICH9 Family) USB UHCI Controller #1
/0/100/1d.1                        bus         82801I (ICH9 Family) USB UHCI Controller #2
/0/100/1d.2                        bus         82801I (ICH9 Family) USB UHCI Controller #3
/0/100/1d.7                        bus         82801I (ICH9 Family) USB2 EHCI Controller #1
/0/100/1e                          bridge      82801 PCI Bridge
/0/100/1f                          bridge      82801IB (ICH9) LPC Interface Controller
/0/100/1f.2            scsi0       storage     82801IB (ICH9) 2 port SATA IDE Controller
/0/100/1f.2/0.0.0      /dev/sda    disk        500GB ST3500630AS
/0/100/1f.2/0.0.0/1    /dev/sda1   volume      48GiB Windows NTFS volume
/0/100/1f.2/0.0.0/2    /dev/sda2   volume      7632MiB EXT3 volume
/0/100/1f.2/0.0.0/2/5  /dev/sda5   volume      7632MiB Linux swap / Solaris partition
/0/100/1f.2/0.0.0/3    /dev/sda3   volume      21GiB EXT3 volume
/0/100/1f.2/0.0.0/4    /dev/sda4   volume      387GiB Windows NTFS volume
/0/100/1f.3                        bus         82801I (ICH9 Family) SMBus Controller
/0/100/1f.5                        storage     82801I (ICH9 Family) 2 port SATA IDE Controller
/1                     vboxnet0    network     Ethernet interface

A opção -short retorna uma síntese dos recursos da máquina, e a opção -sanitize remove os seriais de fabricação dos hardwares listados.

É possível ainda emitir o retorno em HTML ou XML, com as opções -html e -xml respectivamente. Além disso, pode-se especificar que classe de hardware deseja exibir:

Exemplo com a opção sanitize, retorno em XML e especificando para exibir apenas detalhes referentes à memória:

Comando:

 
# lshw -sanitize -xml -c memory

Resultado:

<?xml version="1.0" standalone="yes" ?>
<!-- generated by lshw-B.02.14 -->
<!-- GCC 4.4.3 -->
<!-- Linux 2.6.32-23-generic #37-Ubuntu SMP Fri Jun 11 08:03:28 UTC 2010 x86_64 -->
<!-- GNU libc 2 (glibc 2.11.1) -->
  <node id="firmware" claimed="true" class="memory" handle="">
   <description>BIOS</description>
   <vendor>American Megatrends Inc.</vendor>
   <physid>0</physid>
   <version>1104 (07/07/2008)</version>
   <size units="bytes">65536</size>
   <capacity units="bytes">983040</capacity>
   <capabilities>
    <capability id="isa" >ISA bus</capability>
    <capability id="pci" >PCI bus</capability>
    <capability id="pnp" >Plug-and-Play</capability>
    <capability id="apm" >Advanced Power Management</capability>
    <capability id="upgrade" >BIOS EEPROM can be upgraded</capability>
    <capability id="shadowing" >BIOS shadowing</capability>
    <capability id="escd" >ESCD</capability>
    <capability id="cdboot" >Booting from CD-ROM/DVD</capability>
    <capability id="bootselect" >Selectable boot path</capability>
    <capability id="socketedrom" >BIOS ROM is socketed</capability>
    <capability id="edd" >Enhanced Disk Drive extensions</capability>
    <capability id="int13floppy1200" >5.25" 1.2MB floppy</capability>
    <capability id="int13floppy720" >3.5" 720KB floppy</capability>
    <capability id="int13floppy2880" >3.5" 2.88MB floppy</capability>
    <capability id="int5printscreen" >Print Screen key</capability>
    <capability id="int9keyboard" >i8042 keyboard controller</capability>
    <capability id="int14serial" >INT14 serial line control</capability>
    <capability id="int17printer" >INT17 printer control</capability>
    <capability id="int10video" >INT10 CGA/Mono video</capability>
    <capability id="acpi" >ACPI</capability>
    <capability id="usb" >USB legacy emulation</capability>
    <capability id="ls120boot" >Booting from LS-120</capability>
    <capability id="zipboot" >Booting from ATAPI ZIP</capability>
    <capability id="biosbootspecification" >BIOS boot specification</capability>
   </capabilities>
  </node>
  <node id="cache:0" claimed="true" class="memory" handle="DMI:0005">
   <description>L1 cache</description>
   <physid>5</physid>
   <slot>L1-Cache</slot>
   <size units="bytes">32768</size>
   <capacity units="bytes">32768</capacity>
   <capabilities>
    <capability id="internal" >Internal</capability>
    <capability id="write-back" >Write-back</capability>
    <capability id="data" >Data cache</capability>
   </capabilities>
  </node>
  <node id="cache:1" claimed="true" class="memory" handle="DMI:0006">
   <description>L2 cache</description>
   <physid>6</physid>
   <slot>L2-Cache</slot>
   <size units="bytes">6291456</size>
   <capacity units="bytes">6291456</capacity>
   <capabilities>
    <capability id="internal" >Internal</capability>
    <capability id="write-back" >Write-back</capability>
    <capability id="data" >Data cache</capability>
   </capabilities>
  </node>
  <node id="memory" claimed="true" class="memory" handle="DMI:0030">
   <description>System Memory</description>
   <physid>30</physid>
   <slot>System board or motherboard</slot>
   <size units="bytes">4294967296</size>
    <node id="bank:0" claimed="true" class="memory" handle="DMI:0032">
     <description>DIMM DDR2 Synchronous 800 MHz (1.2 ns)</description>
     <product>PartNum0</product>
     <vendor>Manufacturer0</vendor>
     <physid>0</physid>
     <serial>[REMOVED]</serial>
     <slot>DIMM0</slot>
     <size units="bytes">2147483648</size>
     <width units="bits">64</width>
     <clock units="Hz">800000000</clock>
    </node>
    <node id="bank:1" claimed="true" class="memory" handle="DMI:0034">
     <description>DIMM [empty]</description>
     <product>PartNum1</product>
     <vendor>Manufacturer1</vendor>
     <physid>1</physid>
     <serial>[REMOVED]</serial>
     <slot>DIMM1</slot>
    </node>
    <node id="bank:2" claimed="true" class="memory" handle="DMI:0036">
     <description>DIMM DDR2 Synchronous 800 MHz (1.2 ns)</description>
     <product>PartNum2</product>
     <vendor>Manufacturer2</vendor>
     <physid>2</physid>
     <serial>[REMOVED]</serial>
     <slot>DIMM2</slot>
     <size units="bytes">2147483648</size>
     <width units="bits">64</width>
     <clock units="Hz">800000000</clock>
    </node>
    <node id="bank:3" claimed="true" class="memory" handle="DMI:0038">
     <description>DIMM [empty]</description>
     <product>PartNum3</product>
     <vendor>Manufacturer3</vendor>
     <physid>3</physid>
     <serial>[REMOVED]</serial>
     <slot>DIMM3</slot>
    </node>
  </node>
Posted in Artigos | Tagged , , | Leave a comment

svn: Checksum mismatch

É um tanto frequente esse erro na nossa equipe aqui no G10, e a solução que adotávamos antes era fazer um backup do nosso working copy, excluí-lo e fazer um novo SVN Checkout.

Uma possível explicação para o problema talvez se dê pelo fato de nossos working copies estarem montados/mapeados na máquina local a partir de um servidor.

Porém existe uma solução bem mais prática, desde que o problema não ocorra em arquivos na pasta raíz do projeto: basta remover a pasta do arquivo que apresentou o erro.

Atenção: esta exclusão deve ser feita por fora do teu controlador de versão. No nosso caso, usamos plugins nos editores Eclipse e Netbeans, então fazemos a exclusão pelo console, por exemplo. Não excluir pelo próprio SVN.

Depois de excluir a pasta que contém o problema, basta dar um SVN Update no projeto.

A mensagem de erro é similar:

svn: Checksum mismatch for
'/home/wcomnisky/projeto/apps/rgp/modules/solicitar/actions/actions.class.php';
expected: '4d5177ca0a5e8bde43a55b04f12ecaea',
actual: 'b5881fb7d777aa8e27c1214fa611ab57'

Nesse caso, o problema ocorreu no arquivo “actions.class.php” da pasta “actions” no módulo “solicitar”.

Posted in Artigos | Tagged , | 2 Comments

Instalando rapidamente o PHP 5.3.1 no Ubuntu 9.10 Karmic Koala

Dica encontrada no site NotMyIdea.org para instalar o PHP 5.3.1 no Ubuntu:

sudo su
cd /tmp && mkdir php53 && cd php53 && wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb && wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb && dpkg -i *.deb && echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list && aptitude update && aptitude install libapache2-mod-php5=5.3.1 apache2

Para ambientes 64bits:

sudo su
cd /tmp && mkdir php53 && cd php53 && wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_amd64.deb && wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_amd64.deb && dpkg -i *.deb && echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list && aptitude update && aptitude install libapache2-mod-php5=5.3.1 apache2
Posted in Genérico | Tagged , , | Leave a comment