<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://www.blogger.com/navbar.g?targetBlogID\x3d7477502\x26blogName\x3djSMS\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dBLACK\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://jsms.blogspot.com/search\x26blogLocale\x3dpt_BR\x26v\x3d2\x26homepageUrl\x3dhttp://jsms.blogspot.com/\x26vt\x3d2558718862538480322', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

segunda-feira, agosto 29, 2005

jSMS disponível no Baixaki

O jSMS está disponível no Baixaki, sendo aceito em menos de 24h! Não deixem de entrar e comentar sobre o software.

Além disso, estou pensando em migrar o jSMS para o SourceForge, porém cogitei a possibilidade de colocá-lo no CódigoLivre... A questão é muito simples: o primeiro oferece a melhor infra-estrutura, enquanto o segundo é "nosso". É mais uma questão política: apoiar a iniciativa no nosso país ou mover o projeto para o local que oferece melhor estrutura? Seria interessante fazer uma enquete e tal. Por favor, deixem os seus comentários.

Postado por renatoc às 11:14 PM - 18 comentários

sexta-feira, agosto 26, 2005

Ícone

Não há dúvidas de que o jSMS cresceu. Há pouco mais de um ano eu trabalhei naquele que podemos chamar de esboço do programa: uma versão em linha de comando que funcionava apenas em Linux e Mac OS X. Era feito em C++ e tinha até mesmo agenda!

Embora na época existisse o campo de confirmação (números) no envio pelo site da operadora, pela minha versão não... Era possível, caindo nas mãos erradas, enviar um grande número de mensagens para qualquer um. Naquela época mesmo surgiu a necessidade de uma interface gráfica, que se confirmou quando as operadoras passaram a exigir o código de verificação.

Então o jSMS ganhou a sua forma em Java. O projeto passou a ser liderado por um amigo e dele sairam todas as versões do que hoje conhecemos por "jSMS". Na verdade acho que nada do que eu havia feito é aproveitado no código dele. Da época só a motivação mesmo.

Bom, o que importa é que o projeto saiu do papel, foi para a linha de comando e agora está no desktop de todos com uma bela interface gráfica. O que falta? Um ícone legal, como comentou o kamuZ nos comentários do post anterior.

Peço, então, a todos os que tiverem dons artísticos para criar ícones do jSMS. Basta criar uma imagem de 32x32 pixels (em .png ou .gif de preferência) e colocar para download em algum lugar e deixar o link nos comentários.

Para quem não tem onde deixar o ícone, aconselho o Image Shack. Depois de fazer o upload ele retorna uma URL para onde guardou a imagem. Basta copiá-la e deixar nos comentários deste post.

Não existe um prazo, e não se trata de uma promoção. Apenas contamos com a colaboração dos usuários para fazer o programa melhor e mais amigável. O nome daquele que tiver o ícone escolhido virá para a página e constará como colaborador do projeto.

Obrigado!

Postado por Anônimo às 2:19 PM - 12 comentários

quinta-feira, agosto 25, 2005

Ícone para página

Gostou do programa e quer mostrar a novidade para os amigos? Use o ícone do jSMS com um link para o projeto em seu site ou blog.



Basta copiar o código abaixo e colar no seu HTML.

<a href="http://www.jsms.com.br/">
<img
src="http://tinyurl.com/dsghx"
border="0"
alt="jSMS - Java Short Message Sender" />
</a>

Postado por Anônimo às 6:14 PM - 24 comentários

jSMS 2 - Estável

Apesar da operadora Vivo estar mudando seu sistema e da Brasil Telecom estar com problemas técnicos (basta acessar o site para ver a mensagem de timed out no gateway), o jSMS versão 2 está sendo declarado estável!

  • Histórico: o cancelamento do envio de mesangens durante o intervalo de espera entre envios não estava sendo previsto. Além disso, o envio fora de ordem, que acontecia após um cancelamento, não está mais ocorrendo;

  • Foi adicionado outro estado de envio: conexão recusada. Esse será o status resultante do envio durante horários de pico das operadoras.

Postado por renatoc às 1:11 PM - 16 comentários

segunda-feira, agosto 22, 2005

jSMS à venda?!

É um absurdo!

Há uma "empresa" comercializando o jSMS no mercado livre. O jSMS está sob a licença GPL, que permite que o software seja modificado/vendido, contanto que o código-fonte esteja disponível e seja feita menção à origem do programa (copyright). Além disso, permite que seja cobrado o envio físico de programas GPL, porém, como está escrito no mercado livre, não há custo, pois eles enviam via email!
Essa situação é típica de países de terceiro-mundo como o nosso, onde não há respeito algum pelo software livre!

Notícia publicada no Terra Notícias, seção Tecnologia

Eu venho por meio desse post pedir ao pessoal para enviar emails para o mercado livre, exigindo que o leilão de tal item seja removido e os responsáveis pela venda sejam banidos do serviço!

Postado por renatoc às 12:05 PM - 28 comentários

sábado, agosto 13, 2005

jSMS 2.00 alpha

A versão 2.0 do jSMS está quase estável! Nessa nova release, foram feitas três pequenas modificações:

  • Grupos de contatos: a adição de contatos a grupos foi melhorada, não permitindo usuários repetidos e ordenando os contatos alfabeticamente;

  • Foi adicionado um tempo de espera entre tentativas de envio de mensagens, ajustável através da propriedade "Operator.attempt_waiting_time", que possui valor-padrão de 3 segundos;

  • Por fim, a verificação automática de atualização está ativada por padrão, podendo ser ajustada através da propriedade "Startup.update_check".

Postado por renatoc às 1:39 PM - 45 comentários

quarta-feira, agosto 10, 2005

jSMS 2.0 (bug fix)

Hoje (10/08) é uma data especial para o jSMS: faz aniversário a pessoa para a qual eu dediquei meu trabalho na ferramenta. Não há mais nada, porém vale a pena lembrar.
Essa versão está longe de ser a final, porém, até o presente momento só me foi reportado um erro. Vamos lá pessoal, vamos testar e comentar!

Correções:

  • O cancelmanto do envio de mensagens não estava funcionando corretamente. Além disso, havia um pequeno problema de sincronização entre o processamento do histórico e a adição de novas mensagens ao mesmo.

Postado por renatoc às 12:01 AM - 35 comentários

domingo, agosto 07, 2005

jSMS 2.0

Buenas!
Bom, parece mentira, mas o jSMS está chegando perto da sua versão 2.0. Agradeço a todos que contribuíram para o projeto, que enviaram sugestões, encontraram erros e aos que apenas o utilizaram!


Modificações:

  • A primeira modificação perceptível é a diminuição no número de menus... as opções que foram removidas do menu já se encontravam espalhadas ao longo da UI e, portanto, não havia necessidade de mantê-las no menu também;

  • Como foi pedido por alguém nos comentários, agora é possível indicar, no arquivo de propriedades do jSMS, o caminho para o arquivo de perfis, de contatos, de grupos e do histórico. Para visualizar essas modificações, basta iniciar o jSMS e terminá-lo normalmente. Então, no arquivo de propriedades serão encontradas as seguintes novas propriedades: History.filepath, Profiles.filepath, Groups.filepath e Contacts.filepath;

  • Já foi implementado e está funcionando o verificador de atualização automático. A partir dessa versão, quando o jSMS é aberto, é efetuada uma verificação de atualização. Nota: o código está comentado nessa versão específica;

  • O cancelamento do envio de mensagens finalmente está ao alcance do usuário! Se durante o envio de uma mensagem a caixa que pede o código for fechada, o mesmo será cancelado. Além disso, é possível remover uma mensagem que está sendo enviada do histórico. Nesse caso, a mensagem é removida imediatamente do histórico, podendo demorar um pouco para ser efetivamente cancelada. Sinto muito, mas não tenho como mexer nisso, uma vez que a gerencia do socket é feita pela biblioteca HTTPClient;

  • As mensagens da barra de progresso, sobre o status de envio de mensagens, foram reescritas. A partir de agora, a mensagem final (depois do último estágio de envio), que indica se o envio foi ou não bem-sucedido, é apresentada de forma diferente;

  • A operadora TIM foi removida temporariamente, uma vez que não está funcionando. Assim que possível resolverei o problema;

  • Da mesma forma que a tecla 'delete' remove uma linha do histórico, é possível remover as linhas da lista de contatos também! Falando na lista de contatos, agora não há mais diferenciação entre maiúsculas e minúsculas na ordenação da coluna de nomes de contatos;

  • Falando em histórico, pode-se perceber que a coluna de horário foi fundida com a de data e que a ordenação dessa coluna é feita de forma correta em ambas as direções (ascendente e descendente). Além disso, o status das mensagens já enviadas é salvo, ao invés de substituído por um '-'. Se uma mensagem estiver sendo enviada ou aguardando para tal, seu status é salvo como 'envio cancelado';

  • Quando contatos são inseridos em um grupo, a árvore de grupos não é mais fechada completamente. A seleção não é mantida, mas os grupos onde os novos contatos foram inseridos continuarão visíveis após a inserção;

  • Foi adicionado um pequeno intervalo entre o envio de mensagens, cujo valor padrão é 5 segundos. Para alterá-lo, basta modificar a propriedade Operator.waiting_time. O objetivo disso é evitar que a operadora descarte mensagens enviadas de forma muito rápida (tive vários problemas desse tipo com a Claro);

  • Internamente houve várias otimizações no código, com uma pequena diminuição no tamanho de algumas classes e uma melhor "generalização" das mesmas;

  • Bá, é tanta coisa que com certeza me esqueci de algo.


Correções:

  • O cálculo do número de segmentos nos quais a mensagem a ser enviada é quebrada foi reescrito há um tempo atrás. Desde então, eu tenho percebido que, para alguns casos especiais, o cálculo não estava sendo feito corretamente. E, às vezes, as mensagens estavam sendo cortadas... maldito copiar e colar... hehehe. Bom, agora foi concertado definitivamente;

  • A operadora Vivo modificou as strings que indicavam os erros no envio. Uma pessoa que enviou um comentário percebeu que o código dessa operadora é considerado de forma case-sensitive, ou seja, coloca tudo em maiúsculo e pronto! ;-D

Postado por renatoc às 6:57 PM - 18 comentários