Pastebin.viniciuscordeiro.com
Coloquei no ar meu Pastebin particular, e estou abrindo-o para os leitores do blog, assim posso ajudá-los com códigos que vocês colarem pra mim… basta acessar http://pastebin.viniciuscordeiro.com e colocar o código lá e colocar nos comentários o endereço que o sistema retornar, por enquanto tá em inglês, mas um dia traduzo pro português…
Se te ajudei em alguma coisa, e você quiser retribuir, pague-me uma cerveja... ;) No commentsTradutor simultâneo on-line
Um tradutor simultâneo on-line que pode lhe ajudar com pequenas traduções para vários idiomas:
Nice Translator - The fast, easy to use online translator
Asterisk no seu Ubuntu/Debian
Já se imaginou falando de graça com várias pessoas através do seu próprio servidor VoIP? O Asterisk permite isso para você… Com ele você pode ter inúmeras pessoas (vai depender do seu link) conversando entre si, linhas de fax, voicemail, secretária eletrônica, etc etc etc.
Vamos aprender a instalar de uma forma bem simples para a criação de apenas 2 ramais, primeiro instalaremos os pacotes:
# apt-get install asterisk asterisk-config asterisk-sounds-main
Agora vamos configurar o asterisk, edite o arquivo /etc/asterisk/sip.conf como root e adicione os 2 “friends” abaixo:
[100] username=100 type=friend secret=minha_senha_que_usarei_no_softfone qualify=no port=5060 nat=yes host=dynamic dtmfmode=rfc2833 context=meuvoip callerid=100 <100@meuvoip> [101] username=101 type=friend secret=minha_senha_que_usarei_no_softfone qualify=no port=5060 nat=yes host=dynamic dtmfmode=rfc2833 context=meuvoip callerid=101 <101@meuvoip>
Após criarmos as 2 contas, vamos dizer ao Asterisk o que fazer com elas, editando o arquivo /etc/asterisk/extensions.conf e adicionando as seguintes linhas ao final do arquivo:
[meuvoip] exten => 100,1,Dial(SIP/100,20) exten => 100,2,Hangup exten => 101,1,Dial(SIP/100,20) exten => 101,2,Hangup
Essas linhas dizem ao Asterisk que ele chame durante 20 segundos quando alguém ligar para os ramais 100 e/ou 101 e após isso ele desligue.
Para os sistemas baseados no Ubuntu/Debian precisamos editar mais um arquivo que é o /etc/defaults/asterisk para que o Asterisk se inicie automaticamente após o reboot, para isso basta localizar #RUNASTERISK=no e trocar para:
RUNASTERISK=yes
Após isso execute como root:
# /etc/init.d/asterisk restart
Seu servidor VoIP está rodando e pronto para ser usado. Vale lembrar que se você quer liberar acesso externo você deve abrir a porta 5060 no firewall.
Se te ajudei em alguma coisa, e você quiser retribuir, pague-me uma cerveja... ;) No commentsExt Gui Builder - Um criador de interfaces para o extjs
No endereço acima você pode acessar um ótimo criador de interfaces para o extjs, com ele você obtém o código .js utilizando somente o mouse, no melhor estilo drag-and-drop, para criar suas interfaces web 2.0.
Se te ajudei em alguma coisa, e você quiser retribuir, pague-me uma cerveja... ;) No commentsMeu Gmail foi atualizado! Agora tenho 4gb!
You are currently using 2801 MB (67%) of your 4120 MB.
Meu Gmail estava quase explodindo a capacidade, mas agora está tudo tranquilo, pelo menos por enquanto…
Se te ajudei em alguma coisa, e você quiser retribuir, pague-me uma cerveja... ;) No commentsComparando datas com JavaScript
<script language="javascript"> /* Autor.......: Kenneth R. B. Carletto Contato.....: MSN(keno_brow@msn.com) E-Mail(chorao.info@gmail.com) Data........: 20/08/07 Finalidade..: Função que retorna qual das duas datas (passadas como parametro) é maior, baseada no objeto Date e sua funcao getTime(); */ // gE('idElemento'): Simplesmente retorna uma referencia ao objeto 'idElemento' function gE(idElemento){ return document.getElementById(idElemento); } function dataMaior(dt1,dt2){ // dt1 e dt2: Devem ser tipo String, para evitar confusao de tipos if(typeof dt1 != "string" || typeof dt2 != "string"){ alert("As datas devem ser passadas como strings"); return false; } // dt1 e dt2: Alem de strings, dt1 e dt2 devem obedecer aos formatos de data do Brasil (dd/mm/aa ou dd/mm/aaaa) padrao = /d{2}/d{2}/(?:d{2}|d{4})/; if(!padrao.test(dt1) || !padrao.test(dt2)){ alert("Formato de data invalido.nUtilize dd/mm/aa ou dd/mm/aaaa"); return false; } // Instanciamos as datas, para poder usar getTime(); data1 = new Date(dt1); data2 = new Date(dt2); if(!data1 || !data2){ alert("Erro ao criar objetos"); return false; } // milliSegundos1: irá conter a quantidade de segundos corridos desde 1/1/1970 0h ate dt1 milliSegundos1 = data1.getTime(); // milliSegundos2: irá conter a quantidade de segundos corridos desde 1/1/1970 0h ate dt2 milliSegundos2 = data2.getTime(); // Comparando millisegundos para retornar a conclusão de quem é maior que quem... if(milliSegundos1 == milliSegundos2){ alert("As datas são iguais"); return true; } else if(milliSegundos1 > milliSegundos2){ alert("Data 1 maior que data 2"); return true; } else if(milliSegundos1 < milliSegundos2){ alert("Data 2 maior que data 1"); return true; } else return false; } </script> <input name="tdt1" value="10/01/07" type="text" /> <input name="tdt2" value="10/02/07" type="text" /> <input value="Maior" onclick="dataMaior(gE('tdt1').value,gE('tdt2').value)" type="button" />