quarta-feira, julho 08, 2009

Spam Americanas

Mais uma vez, chega pelo e-mail essas coisas...

Prezado(a) cliente,

Recebemos seu pedido
sua compra será debitada em sua conta bancária,
dentro de 24 horas.

CLIQUE AQUI PARA VER SEU PEDIDO OU CANCELAR !!

VEJA O RESUMO DO SEU PEDIDO.

Desde já agradecemos pela sua preferência.

Silvia Lira-Atendimento a Clientes
Sac.atendimento@americanas.com
www.americanas.com.br

Tem gente que acha qua a Americanas iria mandar alguma coisa assim. E ao clicar nos links (que estão em azul) você acessa http://fly2.??/??????. Por isso, se tivere alguma dúvida, olhe para onde o link vai lhe levar e suspeite de tudo que chegar sem sua solicitação.

terça-feira, maio 12, 2009

Montar E-mail via HTML/JavaScript

Minha ex estava precisando enviar um formulário por e-mail, mas não podia usar nenhuma linguagem de servidor (PHP, ASP etc). Como é para a empresa e sei que todos usam uma aplicação desktop para ferenciamento de e-mails (Outlook ou Thunderbird), sugeri usar o "mailto" (normalmente usado nos links de contato) para abrir a aplicação e formatar os campos do e-mail.
A função é bem simples e lista no corpo do e-mail os campos e seus valores... e só.


function montaEmail(form) {
var str = 'mailto:seuemail@email.com?';
str += 'cc=copia1@email.com, copia2@email.com&';
str += 'bcc=copiaoculta@email.com&';
str += 'subject=Assunto do E-mail&';
str += 'body=';
for (i=0;i<form.elements.length-1;i++) {
str += '%0A' + form.elements[i].name + ' = ' + form.elements[i].value;
}
window.location.href = str;
}

E no form, ao invés de usar "submit", usar um "button" chamando essa função:

<input type="button" onclick="montaEmail(this.form)" value="Enviar">
Lembre-se que os parâmetros do "mailto" são:
  • destinatários: após o "mailto:" separados por vírgula;
  • cópia: "cc=" e os destinatários separados por vírgula;
  • cópia oculta: "bcc=" e os destinatários separados por vírgula;
  • assunto: "subject=" e o texto do assunto
  • corpo do email: "body=" e o conteúdo.
Como é uma URL, a separação dos parâmetros é feita por "?" após o(s) destinatário(s) principal(is) e depois "&" a cada parâmetro usado. Pelo mesmo motivo, os caracteres especiais devem ser formatados seguindo o padrão URL. Exemplo: Quebra de linha é %0A.

sexta-feira, abril 17, 2009

Spam "Uni Leve"

Olha só o que mandaram:

Comprovante de Deposito
Segunda-feira, 30 de Março de 2009 4:15
De: "unilevesa@ubbi.com.br"
Para:

Comprovante Depósito-30032009 (244kb)

Segue em anexo o comprovante de depósito em conta.

Pedimos que confira seus dados e extrato e verifique se todas as informações estão corretas.

Uni Leve Ltda

Marcos C. Barros

Atenciosamente, Departamento Jurídico.

Pô... Uni Leve! O link para o anexo aponta uma DLL.
Alguém acha que deve clicar? Uni Leve!

quarta-feira, abril 15, 2009

Gestão de Projetos com Tecnologia Livre

Hoje em dia temos muitas aplicações que agilizam nossas atividades e controlam para nós informações preciosas. Isso acontece em quase todas as áreas e em gestão de projetos também. O problema que o custo de ferramentas para GP, que nos auxiliam no gerenciamento, acompanhamento de um projeto, controle de custo e prazo, entre outras coisas, normalmente é pago.... e bem pago. Sempre fuçando tecnologias livres, me deparei com algumas ferramentas que não conhecia e confrontei com algumas já sabidas para fazer uma análise.
Eu dou muito valor às aplicações web, pois independem de plataforma e podem ser acessadas de qualquer lugar, mas sei que os recursos são restritos. O problema maior é a abrangência e supercialidade de recursos principalmente gráficos que aplicações disponíveis em PHP (ou qualquer uma outra linguaegm web) possuem, pois detêm o conceito do trabalho em grupo, contendo fórum, wiki, gerenciamento de arquivos e envio de tickets para execução das tarefas, enquanto as aplicações desktops tem mais o foco da gestão e acompanhamento.
Em PHP destaco o PHProjekt e o dotProject que são muito bons e possuem recursos similares citados acima: são groupwares.
Já para desktop, destaco estas 2 ferramentas desenvolvidas em Java, que são multiplataformas:
XMind - Projeto similar ao FreeMind, também feito em Java, mas na minha concepção muito mais organizado e amigável. Ele permite escolher o tipo de exibição do diagrama, enquenato o FreeMind apenas trabalha com o de idéias livres. Com o XMind você consegue montar uma EAP, organizar um brainstorming, espinha de peixe, por exemplo, entre outros. 
OpenProj - Também feito em Java, mas muito parecido com o MS Project. É como um pedacinho do software da Microsoft, mas tem tudo que se precisa para gerenciar um projeto: recursos, custos, prazo, gera relatórios, gráficos e uma coisa que o Project não faz: EAP. É leve, fácil e lembra muito, mas muito mesmo o MS Project. Muito melhor que o GanttProject que não tinha nada além de atividades e o gráfico de Gantt.

sexta-feira, março 13, 2009

MIME Type

Segue uma tabela de MYM Types... sempre útil quando você precisa trabalhar com verificação de arquivos (retirada de http://www.w3schools.com/media/media_mimeref.asp):

Mime Types por Extensão de Arquivo

Extension Type/sub-type
application/octet-stream
323 text/h323
acx application/internet-property-stream
ai application/postscript
aif audio/x-aiff
aifc audio/x-aiff
aiff audio/x-aiff
asf video/x-ms-asf
asr video/x-ms-asf
asx video/x-ms-asf
au audio/basic
avi video/x-msvideo
axs application/olescript
bas text/plain
bcpio application/x-bcpio
bin application/octet-stream
bmp image/bmp
c text/plain
cat application/vnd.ms-pkiseccat
cdf application/x-cdf
cer application/x-x509-ca-cert
class application/octet-stream
clp application/x-msclip
cmx image/x-cmx
cod image/cis-cod
cpio application/x-cpio
crd application/x-mscardfile
crl application/pkix-crl
crt application/x-x509-ca-cert
csh application/x-csh
css text/css
dcr application/x-director
der application/x-x509-ca-cert
dir application/x-director
dll application/x-msdownload
dms application/octet-stream
doc application/msword
dot application/msword
dvi application/x-dvi
dxr application/x-director
eps application/postscript
etx text/x-setext
evy application/envoy
exe application/octet-stream
fif application/fractals
flr x-world/x-vrml
gif image/gif
gtar application/x-gtar
gz application/x-gzip
h text/plain
hdf application/x-hdf
hlp application/winhlp
hqx application/mac-binhex40
hta application/hta
htc text/x-component
htm text/html
html text/html
htt text/webviewhtml
ico image/x-icon
ief image/ief
iii application/x-iphone
ins application/x-internet-signup
isp application/x-internet-signup
jfif image/pipeg
jpe image/jpeg
jpeg image/jpeg
jpg image/jpeg
js application/x-javascript
latex application/x-latex
lha application/octet-stream
lsf video/x-la-asf
lsx video/x-la-asf
lzh application/octet-stream
m13 application/x-msmediaview
m14 application/x-msmediaview
m3u audio/x-mpegurl
man application/x-troff-man
mdb application/x-msaccess
me application/x-troff-me
mht message/rfc822
mhtml message/rfc822
mid audio/mid
mny application/x-msmoney
mov video/quicktime
movie video/x-sgi-movie
mp2 video/mpeg
mp3 audio/mpeg
mpa video/mpeg
mpe video/mpeg
mpeg video/mpeg
mpg video/mpeg
mpp application/vnd.ms-project
mpv2 video/mpeg
ms application/x-troff-ms
mvb application/x-msmediaview
nws message/rfc822
oda application/oda
p10 application/pkcs10
p12 application/x-pkcs12
p7b application/x-pkcs7-certificates
p7c application/x-pkcs7-mime
p7m application/x-pkcs7-mime
p7r application/x-pkcs7-certreqresp
p7s application/x-pkcs7-signature
pbm image/x-portable-bitmap
pdf application/pdf
pfx application/x-pkcs12
pgm image/x-portable-graymap
pko application/ynd.ms-pkipko
pma application/x-perfmon
pmc application/x-perfmon
pml application/x-perfmon
pmr application/x-perfmon
pmw application/x-perfmon
pnm image/x-portable-anymap
pot, application/vnd.ms-powerpoint
ppm image/x-portable-pixmap
pps application/vnd.ms-powerpoint
ppt application/vnd.ms-powerpoint
prf application/pics-rules
ps application/postscript
pub application/x-mspublisher
qt video/quicktime
ra audio/x-pn-realaudio
ram audio/x-pn-realaudio
ras image/x-cmu-raster
rgb image/x-rgb
rmi audio/mid
roff application/x-troff
rtf application/rtf
rtx text/richtext
scd application/x-msschedule
sct text/scriptlet
setpay application/set-payment-initiation
setreg application/set-registration-initiation
sh application/x-sh
shar application/x-shar
sit application/x-stuffit
snd audio/basic
spc application/x-pkcs7-certificates
spl application/futuresplash
src application/x-wais-source
sst application/vnd.ms-pkicertstore
stl application/vnd.ms-pkistl
stm text/html
svg image/svg+xml
sv4cpio application/x-sv4cpio
sv4crc application/x-sv4crc
swf application/x-shockwave-flash
t application/x-troff
tar application/x-tar
tcl application/x-tcl
tex application/x-tex
texi application/x-texinfo
texinfo application/x-texinfo
tgz application/x-compressed
tif image/tiff
tiff image/tiff
tr application/x-troff
trm application/x-msterminal
tsv text/tab-separated-values
txt text/plain
uls text/iuls
ustar application/x-ustar
vcf text/x-vcard
vrml x-world/x-vrml
wav audio/x-wav
wcm application/vnd.ms-works
wdb application/vnd.ms-works
wks application/vnd.ms-works
wmf application/x-msmetafile
wps application/vnd.ms-works
wri application/x-mswrite
wrl x-world/x-vrml
wrz x-world/x-vrml
xaf x-world/x-vrml
xbm image/x-xbitmap
xla application/vnd.ms-excel
xlc application/vnd.ms-excel
xlm application/vnd.ms-excel
xls application/vnd.ms-excel
xlt application/vnd.ms-excel
xlw application/vnd.ms-excel
xof x-world/x-vrml
xpm image/x-xpixmap
xwd image/x-xwindowdump
z application/x-compress
zip application/zip

sexta-feira, janeiro 09, 2009

Campanha para eliminar navegadores antigos

Há um tempo vi uns sites que forneciam scripts para que se um visitante acessasse seu site através de um navegador antigo, avisasse de um potencial problema. Destes, 2 em inglês e 1 em português. Essa semana recebi da iMasters um e-mail da campanha brasileira encabeçada por eles com apoio da Fundação Mozilla e obviamente com foco no Firefox. Tudo isso para acabarem de vez com o bendito Interner Explorer 6.
Este navegador além de antigo (lançado em 2001), não segue em muitas situações os padrões para interpretação das tags e estilos das páginas, o que causa um problemão para quem desenvolve, pois deve preparar as páginas para essas situações. Não que todos os navegadores sigam os padrões corretamente, mas o IE6 é o mais problemático.
Seguem os links dos sites que promovem essa revolução! Eles exibem uma barra de alerta informando que o navegador é antigo e pode causar problemas para a visualização.
  • http://www.stopie6.org - baixe o script, coloque junto aos outros e simplesmente chame-o na página do seu site. Só isso.
  • http://www.end6.org - baixe o script, coloque junto aos outros e chame-o na página do seu site, ou simplesmente cole a chamada publicada e utilize o arquivo direto do site.
  • http://updateyourbrowser.net - copie e cole o código informado e pronto (barra limpa e simples, mas com link para a página do site com os navegadores novos ).
  • http://imasters.uol.com.br/crossbrowse - copie e cole o código informado e pronto (barra com imagens, porém com os links diretos para os sites dos navegadores).
Abraço!

terça-feira, novembro 25, 2008

Register Globals no PHP

Esses dias senti na pele o problema do register_globals = on.
No site do PHP diz o que e porque a diretiva foi abolido da versão 6, e sempre concordei. Era facilidade demais e tornou-se perigosa.
Quando ON, ela faz com que eu possa acessar a variável $_POST['nome'] diretamente de $nome, por exemplo, ou ainda $_SESSION['id'] através de $id ou $_GET['act'] de $act. O problema de segurança exsite porque ao perguntar $id (querendo me referir à sessão) se for passado na URL, por exemplo, ...pagina.php?id=2, $id vai assumir o valor 2, se anteriormente não tiver sido atribuido nada para essa variável. Este é o clássico exemplo do site:
O que aconteceu comigo seria isso, se não tivesse acontecido algo antes. em um projeto meu, carrego as variáveis antes de tudo. Até aí... beleza. Mas cometi um erro pois não estava acostumado com a diretiva ligada: usei sessão com o mesmo nome.
...$nome = (isset($_POST['nome']) ? $_POST['nome'] : '';
if ($_SESSION['nome']!='') ...
...

Isso fez com que toda hora eu limpasse a sessão.
Verifiquei no phpinfo(); e a benedita tava ligada; tentei mudar para "off" no próprio script e nada. Solução: mudei os nomes das variáveis de sessão para, por exemplo, sess_nomeoriginal.
Lição aprendida 1: Não usar os nomes iguais nas variáveis principalmente de sessão.
Lição aprendida 2: Não confiar em servidores de clientes; por causa de aplicações que necessitam da diretiva register_globals = on, muitas vezes é assim que fica configurado.
Pela teoria eu poderia mudá-la através do script php com
ini_set('register_globals','off');
mas não consegui.
Depois de fazer minha alteração, é que eu descobri porque não funcionou o ini_set: esta diretiva não tem efeito no script: deve ser colocada no arquivo .htaccess, já que ela só pode ser alterada no php.ini, .htaccess e no httpd.conf.
php_flag register_globals off
Você pode ver a lista completa de diretivas e onde alterá-las através do site.
Minha solução não foi ideal, mas agora vou prestrar mais atenção nos nomes das variáveis. Mesmo com a versão 6 chegando, tem lugares que usam ainda a 4.

Abraço!

quinta-feira, novembro 13, 2008

PHP Conference Brasil 2008

De 27 a 29 de novembro (quinta a sábado) acontecerá na UNIFIEO em Osasco o PHP Conferece Brasil 2008. O evento busca atingir 1000 profissionais de desenvolvimento com palestras, mini-cursos, debates e install fest, tudo voltado para PHP, claro. Meu colega Flávio Lisboa falará do Zend Framework. Para maiores informações, acesse o site do evento: http://www.phpconf.com.br.



Abraço

sexta-feira, outubro 31, 2008

Select ignorando acento

Quando se faz algum sistema que realize uma busca a partir de uma string do usuário, temos que levar em conseideração as letras maiúsculas e minúsculas e a acentuação.
Andei pesquisando e encontrei como fazer nos bancos mais usados. É assim:

Supondo que possuo a tabela 'tabela' com o campo 'campo' com os seguintes valores:
CAMPO
---------
Maca
Maçã
Macaco
Amanhã
Jaca
Maçaneta

Oracle 10g:
alter session set nls_comp=linguistic;
alter session set nls_sort=binary_ai;

Pronto. O Select desta sessão pegará ignorando o acento e ordenando sem considerá-lo.
select campo from tabela where campo like '%aca%';
ou
select campo from tabela where campo like '%açÃ%';
CAMPO
---------
Jaca
Maca
Maçã
Macaco
Maçaneta


MySQL:
select campo from `tabela`
where `campo` like _utf8 '%aca%' collate utf8_unicode_ci;

ou
select campo from `tabela`
where `campo` like _utf8 '%açÃ%' collate utf8_unicode_ci;

CAMPO
---------
Maca
Maçã
Macaco
Jaca
Maçaneta


PostgreSQL:
select campo from tabela
where lower(to_ascii(campo)) like lower(to_ascii('%açÃ%'));

ou
select campo from tabela
where lower(to_ascii(campo)) like lower(to_ascii('%aca%'));

CAMPO
---------
Maca
Maçã
Macaco
Jaca
Maçaneta


Para ordenar basta usar a cláusula 'order by'; no Oracle foi pré-estabelecida a maneira para a sessão.

quarta-feira, outubro 29, 2008

OpenOffice 3

A nova versão do OpenOffice.org já está disponível para download.
O OpenOffice é uma suite de escritório gratuita que utiliza o ODF e vem com processador de texto, planilha de cálculos, base de dados (simples), criação de apresentações e ferramenta para cálculos matemáticos.
As notas da versão podem ser vistas no próprio site da organização. Este Release conta com suporte ao novo formato de documentos da Microsoft OpenXML (com ressalva de alguns itens avançados), redistribuição de itens dos menus deixando-os mais intuitivo, mudanças nos ícones (sempre fazem isso), importação nativa de PDF (!), templates e maior facilidade para iniciar seu trabalho (eu não gosto muito, mas sentiram falta disso nas versões anteriores).
Pra baixá-lo, basta acessar a págiona de downloads do OpenOffice.org. São menos de 150mb com o JRE incluso, e ainda pode baixar extensões para a aplicação. A organização brasileira já disponibilizou a versão 3.0 bo BrOffice com 125mb para Windows.
Apesar de funcionar com 256mb de RAM, recomenda-se no mínimo 512. Para um bom trabalho não recomenda-se menos de 500mb de espaço no HD e resolução da tela com menos de 1024x768. O Java é necessário para a utilização do Base (banquinho de dados que vem no pacote); as outras ferramentas usam somente para funcionalidades específicas.

O jornal português Metro anunciou em primeira página no dia 27 deste mês.
Outra matéria que achei comentando o lançamento foi a do blog da ComputerWorld.

Coloque um selo no seu site para promover o OpenOffice!

 Use OpenOffice.org

Abraço!

sexta-feira, setembro 19, 2008

Microsoft Live Mail / Hotmail barra Chrome

Estou postando usando o Chrome. Nada deu errado por enquanto.
Mas quanto tento acessar o Hotmail (mail.live.com):
Atualize o seu navegador da Web
É recomendável atualizar seu navegador da web para obter o melhor do Windows Live Hotmail. A atualização levará apenas alguns minutos. Para começar, escolha um dos navegadores a seguir:
Microsoft Internet Explorer
Mozilla Firefox
Apple Safari
Se você não deseja atualizar agora, você ainda pode Continuar no Windows Live Hotmail, mas talvez algumas partes não funcionem ou não sejam exibidas adequadamente.

Depois, insistindo:
Esta é a versão clássica do Windows Live Hotmail
Essa versão funciona melhor com seu navegador. A versão completa do Windows Live Hotmail é executada no Internet Explorer 6.0 e superior (verifique os requisitos do sistema antes de instalá-la). A versão completa também funciona com o Firefox 2.0.

O que eles querem dizer com isso? O iE6 é melhor? Estão com medo do Chrome? Fazer uma média com a comunidade colocando links para Firefox e Safari?
Vai entender a Microsoft...

terça-feira, setembro 09, 2008

Permitir somente index.php pelo .htaccess

Apesar de haver vários frameworks, tem coisa que faço sem a utilização deles. Acho que isso é comum para desenvolvedores. É legal proibir o acesso direto do usuário aos arquivos do seu site, como uma imagem ou até mesmo um script que faça algo mais delicado como excluir_usuario.php, por exemplo. No Apache é fácil fazer isso usando o arquivo .htaccess.

Vamos lá:

Crie um arquivo .htaccess. Se for Windows, copie de um diretório que já exista e pague seu conteúdo, ou baixe um exemplo da internet. O Windows não deixa criar arquivo assim que ele considera sem nome (somente com extensão).

O Conteúdo dele seria assim:

# htaccess do Daniel - testando e evoluindo - v0.1

IndexIgnore *

Options +FollowSymlinks

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule !^index.php(.*)$ index.php$1 [L]
</IfModule>

<Files .htaccess>
order deny,allow
deny from all
</Files>


A primeira linha com IndexIgnore não deixa listar o conteúdo do diretório.
A linha do Options +FollowSymlinks é para o funcionamento do módulo de rescritra.
Se o módulo de escrita estiver ativado, usa ele para substituir qualquer chamada de arquivo diferente de index.php e chama o index.php com a querystring usada inicialmente, ou seja, se eu chamar daniel.php?a=ddd, chama o caminho index.php?a=ddd.
Depois ele proíbe o acess odireto ao .htaccess. Só isso.

É simples e atende minhas necessidades. Claro que pode ser que eu melhore (com sua ajuda inclusive), mas já é um começo para evitar surpresas desagradáveis.

Esse arquivo faz efeito para os subdiretórios também. Se você quiser alterar as regras deles, basta criar um .htaccess com elas. Em caso de não criar, deve-se criar um arquivo index.php que não faz nada, pois sempre haverá redirecionamento para o index.php de cada diretório. Ou então na regra do .htaccess, basta colocar para redirecionar não apra o index.php, mas para /index.php ou /site/index.php para sempre ir para o mesmo arquivo.

Abraço!!

terça-feira, agosto 26, 2008

Spam no MSN de usuários desconhecidos

Uma coisa chata que vem acontecendo é receber mensagem de alguém que não conheço dizendo para visitar sites estranhos. Ninguém precisa dizer para não acessar esses sites, mas sim como isso está acontecendo? São usuários com vírus, worm ou algo assim? E como chegam até mim, ou você? Se alguém souber, me avise!!!!

Falha do MySQL como serviço na instalação do XAMPP no Windows XP

Sempre usei o Apache, PHP e MySQL em instalações a parte, mas no meu note eu instalei o XAMPP e rodou legal (Vista). No trabalho a estação é XP e resolvi fazer o teste.
Baixei a última versão do XAMPP e instalei tudo como serviço (para iniciar junto com o Windows). Aparentemente deu tudo certo, até ver que o MySQL não subia. Pequisei, desistalei e reinstalei 3 vezes e nada. Solução: Executei o .bat que desistala o serviço do MySQL (xampp/mysql/mysql_uninstallservice.bat) e depois instalei novamente o serviço (xampp/mysql/mysql_installservice.bat). Pronto. Funcionou. Agora me pergunto: Por quê? Resposta: Sei lá! A instalação da versão que usei não deve estar 100% para o MySQL como serviço. Na data desta postagem, a instalação foi executada e reexecutada a partir desse arquivo 'xampp-win32-1.6.7-installer.exe'. Talvez a versão 1.6.8 já tenham corrigido esse problema.
Bom, se acontecer com você, tente isso!
Abraço!

sexta-feira, agosto 01, 2008

Ativar Módulo Rewrite no Apache

Para muitos pode ser meio manjado, mas com o surgimento de diversos frameworks e ferramentas PHP que utilizam o módulo de reescrita de endereço a necessidade de sua utilização vem crescendo. Para ativar o módulo basta ir no arquivo de configuração httpd.conf na pasta conf do Apache e retirar o caractere de comentário do início da linha que manda o apache carregar o bendito.

De
#LoadModule rewrite_module modules/mod_rewrite.so
para
LoadModule rewrite_module modules/mod_rewrite.so

E depois ache AllowOverride None e mude para AllowOverride All. Deve ter duas vezes essa declaração. Ex:

[Directory /]
Options FollowSymLinks
AllowOverride None (altere para All)
Order deny,allow
Deny from all
[/Directory]


Na minha instalação do xampp em casa, o arquivo de configuração está em C:\xampp\apache\conf\.

Após fazer a alteração é preciso reiniciar o Apache. Para isso basta executar C:\xampp\xampp_restart.exe ou então ir em Computador/Gerenciar/Serviços e clicar com o botão direito do mouse e escolher a opção Reiniciar.

Até! :D

segunda-feira, julho 07, 2008

Spam do orkut.com.BR

Recebi em um e-mail que não é um dos cadastrados no orkut um convite para amizade no site. Tudo igualzinho, daria até para enganar, mas o pior detalhe e que mais me chamou atenção: .com.br. Os links aliás levam para este domínio, mas eu não vou entrar e espero que você também não entre.


Olá, dj daniel,

danielle souza (dannysouzza@hotmail.com) o convidou para ser seu amigo no orkut.

Para confirmar ou rejeitar essa solicitação, clique em http://www.orkut.com.br/FriendAdd.aspx?accept=true&uid=14704134884054860026
Para ver o perfil de danielle, clique em: http://www.orkut.com.br/Profile.aspx?uid=14704134884054860026


* * *

Para controlar os e-mails de notificação, acesse as suas Configurações da conta: http://www.orkut.com.br/NotificationSettings.aspx

Se você quiser ignorar danielle, visite o perfil de danielle e clique em “ignorar”: http://www.orkut.com.br/Profile.aspx?uid=14704134884054860026

Se você não for usuário do orkut e quiser impedir que todos os usuários do orkut enviem e-mails para você, visite: http://www.orkut.com.br/Block.aspx

quarta-feira, julho 02, 2008

Spam - Lojas Americanas

Bizarro... chegou um e-mail das "lojas americanas" como se meu e-mail tivesse algum cadastro lá.



Prezado(a) cliente,

Recebemos seu pedido
sua compra será debitada em sua conta bancária,
dentro de 24 horas.

CLIQUE AQUI PARA VER SEU PEDIDO OU CANCELAR !!

VEJA O RESUMO DO SEU PEDIDO.

Desde já agradecemos pela sua preferência.

Silvia Lira-Atendimento a Clientes
Sac.atendimento@americanas.com
www.americanas.com.br





O link desta página leva e este link: http://fly2.ws/SUCtvtE . Não entrem.. eu não entrei
O remetente mascarado da mensagem é AdministracaoCDP@lojasamericanas.com.br.

Tem gente que cai nessa. Por isso, se puderem, avisem.
Abraço!

sexta-feira, maio 30, 2008

Testando CMS Made Simple

Hardware: P4, 1Gb de RAM
Software: Win2K, Apache2, PHP5

Instalando passo a passo
  • Extraí o arquivo baixado do site http://www.cmsmadesimple.org/ e descompactei no diretório.
  • Ao acessar, fui redirecionado para a instalação onde me é mostrada uma página amigável com testes realizados sobre meu PHP, módulos, permissões e funções: No meu caso o único problema foi que eu não tinha um arquivo config.php, e ele pediu para o criar manualmente (vazio mesmo) - Poderia já vir por padrão um arquivo em branco.
  • Criei o arquivo e ele identificou. Reclamou de outras configurações do Apache, mas foi só um alerta. CONTINUE.
  • Usuário administrador, e-mail e senha (coloquei admin/admin). CONTINUE.
  • O nome do site e os dados para conexão (MySQL, PqSQL ou SQLLite, banco, usuário, senha, prefixo das tabelas etc). Criei manualmente um banco para esse teste e deixei marcadas as opções para criar as tabelas (apaga os dados se já existir) e colocar um exemplo de conteúdo. CONTINUE.
  • É exibida uma lista de tudo que ele fez com relação ao banco, e pede para eu terminar de configurar a aplicação com o caminho do servidor, físico e qual variável será usada para passagens via URL (GET - QueryString). Deixei tudo como já vem prenchido, com exceção da variável que era 'page' e mudei para 'pagina'. CONTINUE.
  • Mensagem de Sucesso. Pergunta se quer ir para o site ou instalar módulos adicionais.
  • Em uma outra janela vi como ficou o site. O exemplo instalado contém informações de como personalizar o site.
  • Na mesma janela da instalação escolhi a opção de instalar módulos adicionais, o que me jogou para a administração.
Administração
  • Design intuitivo com links no na parte superior.
  • Como escolhi anteriormente a opção de adicionar módulos, é exibida uma lista de vários módulos separados por ordem alfabética. Existem as opções de baixar e instalar. Não instalei nada.
  • No 'home', é mostrada uma página com a explicação de cada item principal de menu. Gostei bastante do que vi: administração de usuários e grupos, layout, módulos, arquivos, preferências, e notícias que já vem instalado junto com outros módulos.
Instalando um módulo
  • Agora decidi que vou instalar alguns módulos (Module Manager).
  • Não encontrei nenhuma wiki de cara... Blog achei um 'Blogs' (tudo isso no gerenciador de módulos). Bastou eu clicar em 'Download & install' e pronto. A próxima tela foi uma mensagem de sucesso.
  • O Cart Made Simple deu pau.
  • O Chat Made Simple foi OK.
  • Tem uma porrada de módulos... para tudo que você imagina, até de backup, jobs, editores diversos.
  • Coloquei agora o Polls Made Simple (pesquisa)
  • Como o Cart Made Simple deu pau, tentei agora o Shop Made Simple e deu certo.
  • Coloquei um fórum também.
  • Fiquei chateado de não ter encontrado uma wiki.
  • Configurei o Shop e o Blogs, mas não consigo fazer chamar do menu.
  • Achei. Não há uma maneira visual como no WordPress. Para incluir um módulo na página, deve tudo ser feito manualmente através de linha de comando. As instruções estão na página principal do módulo em específico. Depois é só formatar.
Gostei. Apesar de não saber de inicio como fazer para incluir o módulo na página, achei simples mesmo. Acho que poderiam evitar de fazer com que a pessoa precisasse criar manualmente o arquivo config.php. Nota 8,5, por não dar para inserir visualmente os módulos.

segunda-feira, maio 26, 2008

Testando eZ Publish

Hardware: P4, 1Gb de RAM
Software: Win2K, Apache2, PHP5

Instalando passo a passo
  • Logo de cara ao instalar já reclamou das funções strftime() e strtotime() por não ser uma função segura. Encheu minha tela de reclamações. Todas as telas.
  • Lá embaixo (tinha muitos warnings), escolhi o idioma e cliquei em NEXT.
  • Pediu para eu criar um diretório para o upload (?) chamado C:\WINNTTEMP. Criei e então NEXT.
  • Configuração de e-mail. Como não tenho o servidor ativo na minha máquina deixei em branco. NEXT.
  • Selecionei MySQL como banco a utilizar. NEXT.
  • Servidor, usuário e senha do MySQL. NEXT.
  • Idioma de suporte (português Brasil). NEXT.
  • Aí veio uma tela para escolher entre Plain Site (Stripped install. Contains no special toolbar or menu choices), Website Interface (Website Interface is a web based CMS solution based on eZ Publish. It contains templates and settings that meets the most common requirements for content management systems) e ez Flow (The eZ Flow extension to eZ Publish enables editors to build complex page layouts and pre-plan the publication schedule to ensure a constant flow of rich content). Para esse teste selecionei a segunda opção, pois vou testá-lo como CMS. NEXT.
  • Mostrou-me essa mensagem de erro:
    Fatal error: Maximum execution time of 30 seconds exceeded in ...\ezpublish4\kernel\setup\steps\ezstep_site_types.php on line 108
    Fatal error: Maximum execution time of 30 seconds exceeded in ...\ezpublish4\lib\ezutils\classes\ezexecution.php on line 144
  • Voltei a tela e escolhei o Plan Site. NEXT.
  • Deu certo. Importou ou instalou esse pacote. NEXT.
  • Mapeei o idioma para Português do Brasil. NEXT.
  • Método de acesso escolhi URL (como recomendado). NEXT.
  • É exibida uma tela com os detalhes do site (UR e administrador) e um combo para eu escolher o banco de instalação. Criei um banco ezpublish e o escolhi. NEXT.
  • Deu erro. Esse meu banco é iso-8859-1 e o ez Publish exige que seja UTF-8. Mudei o charset do banco (ALTER DATABASE `ezpublish` DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci). Tá enchendo o saco. NEXT.
  • Nome e senha do administrador. NEXT.
  • Me mandou copiar o arquivo .htaccess_root como .htaccess no diretório rais do site. O Windows reclama de um arquivo começar com ponto. Copiei via linha de comando (copy .htaccess_root .htacess). NEXT.
  • Pergunta se quer enviar os dados da instalação para o site http://ez.no. Desmarquei. NEXT.
  • Está demorando para carregar a página...
  • Terminou. Me mostra uma mensagem de finalização e link para administração e para o site em si.
Essa fase foi estressante e traumatizante. Nunca mais quero ver a palavra NEXT, nem as funções strftime() e strtotime(). Achei muito estranho ter que criar um diretório no C:\ e copiar na mão o arquivo de acesso do servidor. Vamos vê-lo funcionando.

Mão na massa
  • Tentar logar como Admin/admin e deu timeout. Me registrei. Não consegui me logar com o novo usuário , pois acho que tem que ativar. Tentei logar como admin/admin e deu certo.
  • Na área adminsitrativa, há possibilidades de gerenciar usuários e grupos, um loja virtual, o design do site, gerenciar pacotes. O normal para qualquer CMS. Não vi nada de diferencial para essa instalação básica. Só estou achando lento demais.
  • O interessante é a estrutura por diretórios/pastas, mas isso às vezes confunde um pouco (muita hierarquia). A edição das páginas é feita com um editor WYSIWYG. O gerenciamento de arquivo parece ser um ponto forte.
  • Não consegui habilitar meu novo usuário. A única maneira deve ser através do e-mail, mas como não tenho como enviar, não consegui.
Achei meio confuso mas tem tudo que um CMS precisa ter. Pela instalação, não recomendo. Posso estar sendo precipitado, mas não me agradou. Vou usá-lo mais tarde e ver se essa primeira impressão é desfeita. Nota.... 5 está de bom tamanho (tem tudo, mas é lento assim como a instalação.)

CMS em PHP

CMS significa Content Manager System, ou seja, Sistema Gerenciador de Conteúdo, ótimos para sites com bastante manutenção de conteúdo e portais. Para o dessenvolvedor e para o cliente, é ideal utilizar um que seja fácil de customizar e de usar. Esse é um grande problema. Qual CMS usar??? Para nós, pobres desenvolvedores que gostam, ou precisam, usar um CMS com resultado em XHTML limpo, é uma dúvida cruel. Ainda mais tendo que unir esse fato à simplicidade de administração e ao poder da personalização. Tenho 3 nomes que particularmente aprovei em situações que utilizei.
  • Drupal - o mais simples e fácil de administrar, porém a edição/diagramação das páginas é um pouco restrita (PHP+MySQL|PgSQL).
  • Wordpress - criado para ser um sistema de blog fácil e robusto com diversos recursos para personalização e controle, possui plugins que fazem dessa poderosa ferramenta um gerenciador de conteúdo muito bom (PHP+MySQL).
  • CMSMadeSimple - realmente simples e poderoso, com templates e módulos para o site, porém falha pelo português inexistente no site oficial (PHP+MySQL|PgSQL).
Hoje, depois de muita reflexão, prefiro o Wordpress devido a grande gama de templates, plugins, idiomas e facilidade na administração e diagramação das páginas.

Mas minha última necessidade foi usar um que pudesse ser usado com diversos bancos. Encontrei estes outros CMS interessantes em PHP e que utilizam os maiores e mais usados bancos de dados do mercado (MySQL, PostgreSQL, Oracle e MS SQLServer)
Já sem utilização de banco de dados, ou seja, armazena os dados em arquivos texto (flat file), encontrei esses:
Vale a pena testá-los. Publicarei meus testes um a um aqui no blog.

Abraço!