Aeee.. quarta-feira adquiri um ps3.. hje fiz o cadastro na PNS (PlasyStationNetwork) Americana. Já até peguei meu Portable ID.. falta soh colocar uns troféus nele
.
Entrando na PSN xD
Postado em Game em 10 10UTC setembro 10UTC 2010 por alexandremsClasse AutoComplete com Scriptaculous
Postado em Ajax, Dicas, JavaScript, Orientação a Objetos, PHP com as tags Ajax, autocomplete, prototype, scriptaculous, sujest em 6 06UTC abril 06UTC 2010 por alexandremsVou mostrar como criar uma classe em PHP para gerar campos do tipo autocomplete com AJAX ou do estilo do famoso google sujest. Esta classe irá utilizar o prototype js e o scriptaculous.
Scriptaculous
Prototype
Criando a classe AutoComplete
Esta classe terá somente uma função estática para facilitar a criação de vários campos no mesmo formulário.
autocomplete.php
<?php
class AutoComplete {
/**
* $id = id do campo text
* $valor = valor padrão para o campo
* $url = arquivo que irá retornar os dados para o campo
*/
public static function getCampo($id, $valor='', $url){
$retorno .= '<input id="'.$id.'" name="'.$id.'" type="text" value="'.$valor.'" />';
$retorno .= '<div id="'.$id.'update" style="display:none;border:1px solid #666;background-color:white;height:100px;overflow:auto;"></div>';
$retorno .= '<script>';
$retorno .= ' new Ajax.Autocompleter("'.$id.'","'.$id.'update","'.$url.'",{select:"selectme"});';
$retorno .= '</script>';
return $retorno;
}
}
?>
Criando o arquivo que retornará os dados em AJAX para o autocomplete
O retorno deste arquivo deverá ser uma lista, nesse exemplo vou colocar a lista direto, mas pode ser o retorno de uma consulta no banco.
retorno.html
<ul style='list-style: none;'> <li><span class="selectme">Valor 1</span></li> <li><span class="selectme">Valor 2</span></li> <li><span class="selectme">Valor 3</span></li> <ul>
Incluindo na página HTML
Nesta página deverá ser incluído os scripts para o prototype e scriptaculous.
<?php include 'autocomplete.php'; ?>
<html>
<head>
<title>Exemplo Autocomplete</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src="prototype.js" type="text/javascript"></script>
<script src="scriptaculous.js" type="text/javascript"></script>
<style type="text/css" media="screen">
.selectme { padding:5px;cursor:pointer;}
.selected { background-color: #004286; color:#FFF }
</style>
</head>
<body>
<label> Exemplo 1 : <?php echo AutoComplete::getCampo('exp1','','retorno.html'); ?> </label> <br/>
<label> Exemplo 2: <?php echo AutoComplete::getCampo('exp2','','ajax.php'); ?></label> <br/>
</body>
</html>
Espero ter ajudado..
Para saber mais sobre Ajax.Autocompleter do Scriptaculous clique aqui.
Editor de Texto Web com Gerenciador de Imagem
Postado em Ajax, JavaScript, PHP com as tags ckeditor, ckfinder, editor, web em 31 31UTC março 31UTC 2010 por alexandremsVou mostrar como criar um editor de texto web que tenha gerenciador de imagem com upload.
Para isso vou utilizar o CKEditor e o CKFinder:
CKEditor, editor de texto para internet : baixar
CKFinder, gerenciador de arquivos (escolha a versão em PHP) : baixar
CKEditor tem sua versão básica OpenSource, já o CKFinder tem uma versão demo que fica à mostra uma mensagem, mas funciona normal.
1º Incluir os scripts para CKEditor e CKFinder
2º Criar um formulário com o textarea
- Vou enviar este formulário por AJAX, pode ser por POST ou GET tanto faz. Mas por AJAX tem uma particularidade.
- funcao.enviaFormAjax() pode ser qualquer função para enviar formulários por AJAX.
<html> <head></head> <script type='text/javascript' src='http://localhost/teste/ckeditor/ckeditor.js'></script> <script type='text/javascript' src='http://localhost/teste/ckfinder/ckfinder.js'></script> </pre> <body> <form onSubmit="funcao.enviaFormAjax()"> <textarea id="idtextarea" name="idtextarea"></textarea> <input type="submit" id="idbotao" value="Enviar" /> </form> </body> </html>
3º Depois do formulário com o TEXTAREA deverá ter a criação do objeto para o CKEDITOR.
<script type='text/javascript'>
/*
Padronizar as configurações para o TEXTAREA que tenha o ID "idtextarea"
*/
var editor = CKEDITOR.replace( 'idtextarea',
{
/*Tipo do template */
extraPlugins : 'uicolor',
/* Opção que irão aparecer no editor, aqui esta full, poderá ser personalizado*/
toolbar :
[
['Source','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print', 'SpellChecker', 'Scayt'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Form', 'Checkbox', 'Radio', 'TextField', 'Textarea', 'Select', 'Button', 'ImageButton', 'HiddenField'],
'/',
['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
'/',
['Styles','Format','Font','FontSize'],
['TextColor','BGColor'],
['Maximize', 'ShowBlocks','-','About']
],
/* Habilita a opção para escolher uma imagem de um diretório do site*/
filebrowserImageBrowseUrl : 'http://localhost/teste/ckfinder/ckfinder.html?Type=Images'
});
/* Vincula o CKFinder com o 'editor' referente ao CKEditor */
CKFinder.SetupCKEditor( editor, 'http://localhost/teste/ckfinder/' );
/* Esta função (utiliza PrototypeJS) serve para enviar os dados por AJAX
As informações ficam apenas no CKEditor, assim eu passo o valor dele para o campo idtextarea e pode ser mandado sem problemas no FORM
*/
Event.observe(window,'load',function(){
Event.observe('idbotao','click',function(){
$('idtextarea').value = CKEDITOR.instances.idtextarea.getData();
},false);
});
</script>
CKFinder irá abrir esta janelinha.

por padrão ele irá buscar as imagens do diretório
./ckfinder/userfiles/
Para mudar o diretório abra o arquivo
./ckfinder/config.php
e mude o valor das variaveis $baseUrl e $baseDir para o caminho de onde estará suas imagens.
Documentação para o CKEditor aqui.
Documentação para o CKFinder aqui.
Espero ter ajudado =)
Problemas com entrada de dados em C
Postado em C, Dicas com as tags buffer, C, dados em 12 12UTC março 12UTC 2010 por alexandremsEsse é um problema que ocorre para os iniciantes em C.
Quando é feito entrada de dados pelo teclado, uma variável poderá receber os dados de outra entrada ou simplesmente pular a próxima entrada. Isso ocorre porque o buffer do teclado não é limpo entre uma entrada e outra. Existem algumas funções para limpar o buffer, mas são específicas para o sistema operacional.
Abaixo segue um código que irá gerar o problema.
#include <stdlib.h>
int main(){
char nome[80],fone[15];
int idade;
printf("Digite o nome \n");
gets(nome);
printf("Digite a idade \n");
scanf("%d",&idade);
printf("Digite o fone\n");
gets(fone);
printf("%s, %d anos , %s",nome,idade,fone);
getch();
return 0;
}
Neste caso, após digitar a idade, irá direto para o printf final, ignorando a entrada do fone, Imagem abaixo.

Bom, ja da para identificar que o problema está logo após a entrada da idade, então precisamos limpar o buffer para poder receber a próxima entrada.
Uma forma de fazer isso é utilizar a função getchar(), essa função limpa o buffer do teclado para receber um caracter.
Vamos coloca-la logo após a entrada da idade (linha 9).
#include <stdlib.h>
int main(){
char nome[80],fone[15];
int idade;
printf("Digite o nome \n");
gets(nome);
printf("Digite a idade \n");
scanf("%d",&idade);
getchar();
printf("Digite o fone\n");
gets(fone);
printf("%s, %d anos , %s",nome,idade,fone);
getch();
return 0;
}
Com isso, após a inserção da idade, vai ser possível inserir o telefone.

Espero ter ajudado =)
Integração entre bases diferentes
Postado em Dicas, SQL com as tags banco de dados, firebird, integração, mysql em 10 10UTC março 10UTC 2010 por alexandremsEstou tendo que integrar dados de dois sistemas, um sistema Web com banco MySQL, e outro desktop com Firebird.
Nesta primeira etapa o sistema Web irá receber atualizações sobre clientes e representantes do sistema desktop.
Esta atualização será feita uma vez por dia automaticamente, ou qualquer horário manualmente.
Para isso criei a seguinte estrutura no MySQL.
Base “sistemaWeb” contendo as tabelas do sistema web.
Base “sistemaDesk” contento as tabelas com os dados de clientes e representantes do Firebird.
Nesta base é praticamente uma réplica das tabelas e relacionamentos que estão no Firebird, mas somente as tabelas que vou precisar no sistema web.
Na base “sistemaWeb” criei uma visão para trazer os dados dos clientes que estão na base “sistemaDesk”, a principio estes dados com quase 5.000 registros estavam demorando 35 segundos para serem carregados na grid do sistema. Para diminuir esse tempo, fiz duas coisas:
1) Criei um indice para as chaves das tabelas da base “sistemaDesk”, que antes não tinha; o tempo da consulta caiu para 19 segundos.
2) Criei uma tabela na base “sistemaWeb” que contem todas as colunas e registros da visão dos clientes. Como a atualização da base “sistemaDesk” não é em tempo real, essa tabela não terá inconsistencia de dados pois sempre que atualizar a base “sistemaDesk” atualizarei ela também; com isso o tempo de listar os 5.000 registros na grid do sistema caiu drasticamente para 65 milisegundos.
Espero ter ajudado alguem com esse caso, se alguem tiver outras soluções podem mandar.
Agradecendo battisti e weber que juntos chegamos a uma solução parecida em um outro projeto
Expressão Regular no Notepad++
Postado em Dicas, Expressão Regular com as tags Expressão Regular, notepad++ em 9 09UTC março 09UTC 2010 por alexandremsBom que o Notepad++ é um excelente editor de texto, todos que usam ele sabem disso. Tive que fazer uma importação em SQL de uma base no Firebird para o Mysql, com estruturas de tabelas beeem diferentes. Invés de fazer um script em PHP para deixar a SQL “compatível” resolvi arrumar ela pelo Notepad++, com isso tive que utilizar expressões regulares em alguns casos. Vamos la:
Baixar o Notepad++ aqui
Primeiramente apertar CTRL + F ou menu Localicar > Localizar, ele irá abrir a janela abaixo, depois clique na aba Substituir.
Seguindo as marcações em vermelho:
Localizar : Expressão que será utilizada para localizar um trecho no código
Substituir: Expressão ou conteúdo que irá substituir o conteúdo encontrado
Modo de busca: Deverá estar marcado a opção Expressão regular
Algumas expressões úteis. Se quiser conhecer mais sobre expressões regulares clique aqui.
Mudar data de 2010-02-10 para 10/02/2010
Buscar por ([0-2][0-9][0-9][0-9])-([01][0-9])-([0-3][0-9])
Cada ( … ) é uma região de rotulação, ou seja, ai dentro terá as instruções para a expressão, neste exemplo temos 3 regiões.
Os [ ... ] são usados para informar os caracteres, neste exemplo serão somente números.
Imagine que a expressão fará o seguinte
(2010)-(02)-(10) e cada [...] será referente a um caractere
- [0-2] o primeiro caractere do ano poderá ser 0,1 ou 2
- [0-9] o segundo, terceiro e quarto caractere do ano, poderão ser de 0 até 9
- [01] o primeiro caractere do mes, poderá ser 0 ou 1
- [0-9] o segundo caractere do mes poderá ser de 0 até 9
- [0-3] o primeiro caractere do dia poderá ser de 0 até 3
- [0-9] o segundo caractere do ano poderá ser de 0 até 9
Substituir por \3/\2/\1
Bom, temos três rótulos
- 1º ([0-2][0-9][0-9][0-9]) é referente ao \1
- 2º ([01][0-9]) é referente ao \2
- 3º ([0-3][0-9]) é referente ao \3
Assim a expressão de substituição irá colocar o conteúdo do 3º rótulo no inicio, depois vai trocar o – por /,
dai irá colocar o conteúdo do 2º rótulo e trocar o – por / e por fim coloca o conteúdo do 1º rótulo no final.
Tirar as aspas de um conteúdo, por exemplo “15425″
Buscar por “([0-9]+)”
O + indica que esta mesma expressão será utilizada “n” vezes na sequência, pois o número poderá ter dois caracteres (32) ou cinco (15425) ou mais.
As aspas deverão ficar fora da rotulação, pois deverá permanecer somente os números, a idéia é tirar as aspas
Trocar por \1
A expressão fará “(15425)” como eu vou subtituir por \1 ou seja, por (15425), como as aspas estão fora elas
não irão continuar.
Espero que com esse post possa ajudar alguem =)
Qualquer coisa só entrar em contato
CLIENTEC – Cadastro On-Line de Clientes
Postado em Geral com as tags cadastro de clientes, clientec em 16 16UTC dezembro 16UTC 2009 por alexandremsIntrodução
Um número significativo de micro e pequenas empresas possuem pouco ou nenhum controle sobre dados de seus próprios clientes, e é neste tipo de ambiente onde o CLIENTEC pode ser utilizado. O CLIENTEC é um software WEB cujo objeto é gerenciar cadastro de clientes, emitir relatórios e etiquetas para mala direta.
O Sofware
O Software conta com mecanismos de importação e exportação de dados no formato XLS e CSV o que facilita a migração de quem já possui algum tipo de cadastro ou ainda para empresas que utilizaram o CLIENTEC e devido ao seu crescimento acabaram por adquirir outro software.
Para acessar o CLIENTE basta ir ao endereço http://clientec.com.br, o software é livre até 20 clientes registrados.
“Dr.” Gari
Postado em Sociedade com as tags brasil, doutorado, gari em 5 05UTC novembro 05UTC 2009 por alexandremsA prefeitura do Rio de Janeiro abriu algumas vagas para Gari com sálarios de R$700,00 mais alguns benefícios, só que ” Entre os inscritos mais de mil universitários, 86 estão fazendo pós-graduação, 24, mestrado e mais de 50 já terminaram o doutorado.” (Bom Dia Brasil).
Segundo a matéria, que poderá ser lida na íntegra no link acima, não se sabem ao certo por que isso está acontecendo, falta de vagas em suas áreas? prazer em ajudar para que a cidade fique limpa? ou entrar no serviço público, para que depois um “padrinho” o coloque como chefe de gabinete “legalmente”, pois é um concursado.
Na minha humilde opinião, isso é culpa das instituições, que hoje fazem qualquer coisa para não perderem as mensalidades os alunos, algumas utilizam média 5.0, nem escola pública tem essa média. Imaginem os profissionais que estão se formando, isso acontece também porque a “peneira” que antigamente era feita la no vestibular, onde só entrava os melhores alunos do colegial e os mais dedicados. Na “peneira” de hoje passam os que tem dinheiro.
MESTRE Vicente, meu MESTRE de artes marciais, um dia me disse algo que é mais ou menos assim ” O verdadeiro mestre nunca irá cair do caminho, ele tem todo seu conhecimento na sua mente, ele e seu conhecimento são um só”.
Existem mestres em várias áreas, eles são decididos e sabem o caminho que estão trilhando, o conhecimento adquirido por eles é utilizado para o crescimento e aperfeiçoamento do caminho que resolveram trilhar.
Se uma instituição aceita alunos indecisos, e não mostra o caminho, irá formar também profissionais indecisos, sem rumo a seguir e terão que pegar estradas muito distantes do caminho que “gostariam” de seguir.
Jornada Acadêmica UNIPAN
Postado em Geral com as tags Ajax, computação, java, json, unipan, xml em 27 27UTC outubro 27UTC 2009 por alexandremsOntem iniciou a primeira jornada acadêmica da UNIPAN, com artigos e mini-cursos para os alunos de Ciências da Computação. Apresentei meu artigo de conclusão da Pós em Tecnologias JAVA, Comparativo sobre XML e JSON como retorno de uma requisição em AJAX.
Depois da apresentação fui correndo para o laboratório, eu e o @battisti fizemos um mini-curso sobre AJAX. Hoje finaliza a jornada, a noite minha parte termina com o mini-curso =)

