sexta-feira, 24 de setembro de 2010

Como percorrer um array em PHP sem usar foreach

A função foreach utiliza muito espaço em memória e pode até dar estouro de memória se o array for muito grande. Este problema acontece quando alteramos valores do array dentro do foreach.
Uma alternativa para percorrer um array grande é movimentar o ponteiro interno do array.


    $registro = reset($listaDeRegistros);
    while ($registro !== false) {  //foreach estoura memória
      $i = key($listaDeRegistros);
      //faça o que quiser....   var_dump($listaDeRegistros[$i]);
      $registro = next($listaDeRegistros);
    }

sexta-feira, 25 de junho de 2010

Instalação do Subversion (integrado com Apache)

Basta seguir este tutorial: http://ubuntuforums.org/showthread.php?t=51753&page=2

Algumas ressalvas:
  • O comando "apache2-ssl-certificate" não existe. Ao invés disso deve ser feito:
    • sudo mkdir /etc/apache2/ssl
    • sudo /usr/sbin/make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem
  • Ao editar o dav_svn.conf, adicione as seguintes linhas após o AuthUserFile
    • Require valid-user
    • SSLRequireSSL

quinta-feira, 20 de maio de 2010

Validação XML usando XSD

Visando padronizar o uso da validação XML utilizando arquivo XSD, publicarei aqui alguns problemas que passei e a respectiva solução.
  • Para facilitar o trabalho de criar o XSD, é possível transformar um XML em XSD?

Sim, basta acessar http://www.flame-ware.com/Products/XML-2-XSD/

  • Como validar uma lista enumerada no XSD?
<xs:simpleType name="tAmbiente"> <xs:restriction base="xs:string"> <xs:enumeration value="Desenvolvimento" /> <xs:enumeration value="Testes" /> <xs:enumeration value="Produção" /> </xs:restriction> </xs:simpleType>
  • Como ter um elemento inteiro (ou qualquer outro tipo) que aceite vazio no XSD?
<xs:simpleType name="tVazio"> <xs:restriction base="xs:string"> <xs:length value="0" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="tInteiroOuVazio"> <xs:union memberTypes="xs:integer tVazio" /> </xs:simpleType>
  • Como validar e-mail no XSD?
<xs:simpleType name="tEmail"> <xs:restriction base="xs:string"> <xs:pattern value="^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="tEmailOuVazio"> <xs:union memberTypes="tEmail tVazio" /> </xs:simpleType> <xs:simpleType name="tVariosEmails"> <xs:restriction base="xs:string"> <xs:pattern value="\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*([,;]\s*\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*)*" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="tVariosEmailsOuVazio"> <xs:union memberTypes="tVariosEmails tVazio" /> </xs:simpleType>

quarta-feira, 28 de abril de 2010

Membro do NSA selecionado para projeto da Google

Leonardo Sápiras, membro do NSA e aluno do curso de Sistemas de Informação da FACCAT, concorrendo com estudantes graduandos, mestrandos, doutorandos e pós-doutorandos de universidades do mundo todo, foi um dos selecionados para trabalhar em projeto do Google Summer of Code (GSoC), programa da empresa Google que oferece bolsas a estudantes programadores de softwares. A lista dos selecionados foi divulgado no dia 26 de abril, no site específico do GSoC [http://socghop.appspot.com/].



Os alunos selecionados passam três meses trabalhando no desenvolvimento de algum dos projetos patrocinados pela Google. Especificamente, o Leonardo irá trabalhar em melhoramentos da ergonomia do software phpPgAdmin (famoso sistema Software Livre da área de Bancos de Dados). Esse projeto foi aceito pela Google, pela própria phpPgAdmin e pela organização mantenedora do PostgreSQL, um dos mais reconhecidos sistemas gerenciadores de banco de dados e que será a organização “mentora” da proposta do Leonardo.

segunda-feira, 19 de abril de 2010

sexta-feira, 16 de abril de 2010

Software a ser instalado após formatação

Pacotes a serem instalados

Atenção! Alguns pacotes não estão mais no repositório padrão do Ubuntu a partir da versão 10.04. Para eles estarem disponíveis siga estes passos:
  1. Synaptic->Configuração->Repositórios->Outro software
  2. Selecione o repositório "partner" e clique em Fechar
  3. Clique em Recarregar. Agora o sun-java6-jdk irá aparecer.
Pacotes
  • build-essentials
  • rpl
  • guake
  • acroread
  • openssh-server
  • apache2
  • php5

    • php5-gd
    • php5-cli
    • php5-ldap
    • php5-mysql
    • php5-pgsql
    • php5-xdebug
    • php5-curl
  • postgresql
  • mysq-server
  • sun-java6-jdk

    • Rodar o comando "sudo update-alternatives --config java" para escolher o Java da SUN
  • subversion
  • vim
  • alien

    • Pacote opcional para instalar pacotes RPM (Red Hat). Para usar o alien faça: sudo alien -i pacote.rpm

Ferramentas NSA (encontrados no "docs/ferramentas")

  • Billfish
  • Astah
  • DbDesigner Fork
  • Eclipse PDT

    • Plugin SubVersive (SvnKit connector)
    • Plugin SmartyPDT

segunda-feira, 12 de abril de 2010

Instalação do PostgreSQL 8.2 no Ubuntu 9.04 ou superior

Para instalar o PostgreSQL 8.2.x no Ubuntu 9.04 ou superior, os seguintes passos devem ser seguidos:

1) Entrar no gerenciador de pacotes Synaptic;
2) Entrar em 'Configurações', e depois em 'Repositórios';
3) Na aba 'Programas de terceiros', clicar em 'Adicionar' e preencher com:

deb http://cz.archive.ubuntu.com/ubuntu hardy main universe

ou o mirror brasileiro

deb http://sft.if.usp.br hardy main universe

4) Confirmar inclusão do repositório;
5) Verificar se o repositório novo está selecionado na aba 'Programas de terceiros';
6) Na tela principal do Synaptic clicar em 'Recarregar';

7) Após os Synaptic recarregar as informações dos pacotes, pesquisa por PostgreSQL;
8) Selecione a opção 'postgresql-8.2';
9) Clique em 'Aplicar';

10) Após a instalação do ocorrer, entre novamente na tela de configuração de repositórios (Passo 2);
11) Desmarque o repositório do Ubuntu Hardy;
12) Recarregue os pacotes novamente;

13) Fim.

sexta-feira, 21 de agosto de 2009

Ubuntu: Usar SSMTP ao invés de Sendmail

Desinstalar o Sendmail e começar a utilizar o SSMTP. Instrucoes:
1) Desmarcar todos pacotes com o NOME sendmail*
2) Instalar o pacote SSMTP.
3) Editar o arquivo /etc/ssmtp/ssmtp.conf e mexer nas seguintes linhas:
mailhub=correio.intra.faccat.br
FromLineOverride=YES (apenas descomentar)
4) Reiniciar a máquina.

quinta-feira, 25 de setembro de 2008

Primeiros passos após a instalação do Apache

Adicione os alias para os projetos do NSA:

$ sudo gedit /etc/apache2/sites-available/default
#Exemplo de alias:
Alias /sagaproducao "/projetos/sagaproducao/sistema/web"


Feito isto reinicie o Apache:
$ sudo /etc/init.d/apache2 restart

Fim.

terça-feira, 23 de setembro de 2008

Primeiros passos após a instalação do PostgreSQL

ATENÇÃO! Antes de configurar o PostgreSQL faça a configuração do Locale!

# entra no psql com o usuário[SO] "postgres"
$ sudo su postgres -c psql template1

# altera senha do usuário[SGBD] "postgres"
template1=# ALTER USER postgres WITH PASSWORD 'novaSenha';
template1=# \q

# altera senha do usuário[SO] "postgres"
$ sudo passwd -d postgres
$ sudo su postgres -c passwd

# cria usuário local e seu banco de dados
$ sudo su postgres -c "createuser -P --superuser --createdb novousuario"
$ createdb novousuario


Pronto, agora você já pode digitar somente "psql" no terminal com seu próprio usuário e usar o PostgreSQL.

segunda-feira, 12 de maio de 2008

Usando ISO-8859-1 no Ubuntu Hardy

O Ubuntu Hardy vem por padrão com UTF-8. Para usá-lo em ISO-8859-1 faça:

sudo /usr/share/locales/install-language-pack pt_BR
sudo update-locale LANG="pt_BR.ISO-8859-1" LC_COLLATE="C"
# Reiniciar computador...

sudo dpkg-reconfigure locales

# Caso você utiliza PostgreSQL, depois de instalar o PostgreSQL deve ser executado os comandos abaixo: (ATENÇÃO, você vai perder todas as bases de dados!)
sudo pg_dropcluster --stop 8.2 main
sudo pg_createcluster --start 8.2 main


Foi utilizado LC_COLLATE="C" por causa do problema de ordenação do Linux (libc) que ignora espaços em branco (mais informações).

Início

Blog do Núcleo de Sistemas Administrativos da FACCAT.