Solução para o 9º dígito no Symbian

(Última atualização: 10/08/2012 11:47: Nova versão! Confira o changelog! https://gist.github.com/3195031)

(29/07/2012 23:33: Achei importante dizer que este procedimento é agnóstico ao Symbian apesar de ter sido criado com foco nele. Qualquer sistema que permita que você exporte seus contatos como VCF / vCards [Outlook por exemplo] pode ter o auxílio do script.)

Então a Anatel decidiu que todos os celulares da região metropolitana teriam 9 dígitos, aumentando o número de combinações de cerca de 44 milhões para 90 milhões.

Até aí tudo bem. Acho até chique falar “999-999-999” como os norte-americanos falam.

O problema é que sou usuário Symbian e não encontrei nenhuma app que faça isso pra mim. Até entendo os motivos: programar para Symbian dá preguiça e no meu caso, a preguiça envolve até abrir a IDE pra isso. Sem falar que hoje em dia, ou é Android ou é iOS. Maemo e Windows Phone só vão entrar na disputa por um golpe de sorte, essa é a real. Escolha um de cada lado sabendo que um vai encher sua barriga e outro será seu hobby.

Voltando ao artigo.

Lembro-me que há alguns anos, quando da entrada da Oi em São Paulo, foi decidido que todos os números residenciais de prefixo 6xxx se tornariam 2xxx e os 6xxx seriam da Oi. Na época eu tinha um Nokia 6275. Imaginem a preguiça que me deu ao pensar que eu teria que editar todos os contatos naquele teclado. Sorte que o Nokia PC Suite exportava os contatos em formato CSV. Um script simples em PHP verificava os números e aplicava a mudança de acordo com a regra.

Agora eu tenho um 5800 e preciso fazer essa adição do nono dígito (aposto que se você chegou aqui, precisa também). Mesmo com esse plus que é ter touch screen e um teclado moderadamente confortável na tela, ainda dá  uma baita preguiça pensar em varrer todos os contatos e fazer as alterações.

Symbian… Sem app “9dígito.sisx”… Sem suporte da Nokia pra dar uma mãozinha. Acho que é aí que deve entrar a gambiarra. Digo, tenho certeza.

Mão na massa!

Você vai precisar de:

  • Nokia Suite atualizado
  • Ruby1.9.3 (download)
  • O script mágico sym9.rb (download)

Uma vez instalado o ruby e atualizado o Nokia Suite, conecte seu celular ao Nokia Suite – seja via cabo USB ou Bluetooth – e faça a sincronização dos contatos. Se houver conflitos (dados diferentes no PC e no celular por conta de sincronizações anteriores), esse é o momento para resolvê-los.

Exporte os contatos  (você deve clicar em Todas, clicar na lista e pressionar Ctrl+A antes). Para cada contato será criado um arquivo VCF com todas as informações dele e o mais importante, seus números. Escolha uma pasta qualquer e salve. Também faça uma cópia de backup desta pasta para outro lugar – para caso algo dê errado, sabe?

Copie o conteúdo do script e salve nessa pasta. Abra um console (Iniciar > Executar > cmd <enter>). Digite cd <caminho da pasta>.

Digite gem install vcard (isso irá instalar um componente que não é da minha autoria, mas necessário para o funcionamento do script).

Chegado o momento, execute ruby sym9.rb no console. Ele vai te fazer algumas perguntas como o modo como você prefere que sejam feitas as alterações, seu DDD e qual o formato de saída do número.

Se você escolher o DDD 11, ele também te pergunta se você quer prefixar (11) nos números locais. Se você escolher outro DDD, ele te pergunta se deseja inserir um código de operadora de longa distância (0xx11). Neste caso, respondendo 0 ou não respondendo, ele somente vai manter o código dos números que já possuem. É importante que você digite o DDD correto, porque o script assume que os números sem DDD são do seu DDD.

Para o modo são 3 opções:

  • 1 – Totalmente automática – atualiza todos os contatos com prefixos 5xxx a 9xxx
  • 2 – Semi-automática – atualiza todos os contatos com prefixos 6xxx a 9xxx mas pergunta o que fazer com os 5xxx e 78xx (ainda existem telefones fixos com esse prefixo; o 78xx é usado pela Nextel e Oi)
  • 3 – Manual – pergunta o que fazer para todos os contatos com prefixos 5xxx a 9xxx

Para o formato, outras 5 opções:

  • 1 – Não alterar
  • 2 – 98765-4321
  • 3 – 9876-54321
  • 4 – 987-654-321
  • 5 – 9-8765-4321

Observação sobre os formatos: o meu 5800 não aceita parênteses e hífens de contatos importados, apesar deles aparecerem formatados no gerenciador do Nokia Suite e eu ter alguns contatos no aparelho com estes caracteres. Não sei dizer se a formatação é suportada por  outros aparelhos.

Finalizada a varredura, os vCards foram atualizados de acordo com suas preferências. Você agora pode importar os vCards no Nokia Suite e fazer uma verificação visual. Tudo certo? Hora de aplicar as mudanças no celular através da sincronização.

Caso haja duplicação de contatos, apague os contatos do celular e do Nokia Suite e refaça a importação/sincronização. Não gostou do resultado? Importe os contatos da pasta de backup.

Por ser um procedimento experimental, não me responsabilizo se houver algum erro e você corromper seus contatos, por isso a recomendação do backup.

Funcionou direitinho? Rolou algum bug? Erros estranhos? Dúvidas? O script não reconheceu algum número? Comente!

Fique de olho nas atualizações deste post. Quando houver uma atualização, a recomendação é que você refaça o procedimento usando uma cópia do seu backup.

Anúncios

Twitter-Twoofer

Não que eu seja um ótimo desenvolvedor. Ainda escorrego bastante. Até demais, eu diria.

O caso é que vejo críticas diárias de colegas desenvolvedores no Twitter e pela aleatoriedade e quase total ausência de contexto que o Twitter proporciona, fica difícil absorver o valor dela e o embasamento que levou a pessoa a criticar.

Nesse ritmo de eterna aprendizagem que o mundo do desenvolvimento é, não ajuda muito ler comentários esparsos, superficiais e sem linearidade. Eu prefiro que o comentário seja somente um convite à descoberta da crítica seguido de um link de um artigo em que lá haja começo, meio, fim, argumentos e uma verbalização mais detalhada da visão e dos questionamentos que motivaram a crítica.

Cito desenvolvimento e desenvolvedores porque isso faz parte da minha vida. Mas obviamente vale para qualquer assunto e profissão.

(e eu também preciso aprender a me embasar melhor antes de falar)

Categorias:Desenvolvimento

Social Media Prepotency

Da série “perigos da social media pirralha”, a história começa assim, ou pior, termina assim:

Dois indivíduos tem uma idéia e decidem criar um espaço em uma rede social qualquer para divulgar um determinado conteúdo. Num dia desses, um indivíduo publica algum conteúdo ligeiramente relacionado ao tema que os outros dois indivíduos escolheram para seu trabalho porém com um comentário que de alguma forma ataca o tema, não o espaço. Ao entenderem isso como um ataque indireto ao espaço, uma discussão se inicia, levada para o lado pessoal e muita merda é jogada no ventilador. Quando termina, alguns anos de amizade levaram Shift-Del.

Detalhe importantíssimo  que dá título ao post: os dois indivíduos de alguma forma acharam que o terceiro indivíduo sabia da existência de tal espaço e de que tal espaço era de autoria deles, sem saberem que nessa mesma rede social, o conteúdo gerado por eles já não era observado pelo terceiro indivíduo, graças ao tal do “unfollow” ou “unsubscribe”. Como ele saberia, já que não se interessa pelo assunto e muito menos estava vendo-os falarem sobre o assunto?

O que justifica o título do post é que nesse e outros casos, os criadores de conteúdo foram prepotentes em achar que seu conteúdo de fato atinge a todos. É como se eu postasse algo de um determinado tema no meu blog e puxasse papo com alguém do metrô sobre esse tema, recebendo uma opinião contrária a minha sobre ele e entendendo que a pessoa não gosta do meu blog, lançando-a sobre os trilhos logo após.

Não é porque apareceu na sua timeline que isso vai ter espaço no jornal das 8. Em específico sobre o Facebook, não é porque você postou que vai aparecer na timeline do seu colega, já que seu amigo e subscriber tem a opção de manter a amizade no Facebook mesmo não querendo saber nada do que você fala. A pegadinha está aí, com os botões “Hide all from …” e “Unsubscribe” e com ferramentas como o FB Filter, que bloqueia conteúdo de acordo com palavras-chave. Em específico sobre o Twitter, um follower pode te colocar em uma lista de mute ou no filtro do seu cliente preferido porque você fez flood de algum conteúdo que de alguma forma o incomoda e daí para a frente, seu conteúdo não chega a ele.

Concluindo: a desinformação que leva a esse cenário constrangedor se cura estudando as ferramentas, o modo como as ferramentas podem ou não entregar o conteúdo a quem você quer e o modo como seu público-alvo pode se engajar em discutir e repercutir sobre seu conteúdo, mesmo que você só queira um boca-a-boca preliminar antes de partir para o marketing pesado.

Agora eu vou lá encontrar meus ex-colegas do jardim de infância e perguntar a eles o que acham disso.

Categorias:internet

Crônica do Lixo

Lixo a gente coloca no saco preto, tira de casa, deixa na calçada e espera o lixeiro levar.

Por mais que ele tente se expressar através do fedor e por mais que você se incomode por ter largado ali, o lixo não deixará de ser lixo e nesse ponto ele não traz nada de útil que valha a pena cogitar abrir o saco e tentar trazer algo de volta pra dentro de casa.

Possívelmente o volume seja grande pela quantidade de insumos que você deu a ele, possívelmente ele vá incomodar outras pessoas com seu fedor, possívelmente ele se rasgue e deixe cair algo pesado no seu pé, mas pode ter certeza: o lixeiro irá levá-lo para um lugar distante conhecido como aterro sanitário e de lá ele não poderá incomodar ninguém enquanto se dissolve em chorume. Talvez incomode alguns lixeiros no seu percurso, talvez ele caia na rua, sendo levado por uma enxurrada e entrando na casa de quem não tem nada a ver com a história, mas enquanto isso não acontecer até os lixeiros sabem que logo mais aquele peso sem valor que de nada adianta fazer algo será enterrado e deixado inócuo pela eternidade.

Coitados dos acumuladores, aqueles com compulsão em manter o lixo dentro de casa, amarrados de forma cruel ao que é descartável; desses é a dura pena de sentir dor quando ouvem o ruído do motor do caminhão.

Categorias:Divagações

A língua a serviço da sociedade

Nesse artigo da Revista Globo, os seguintes dizeres:

Assim como a sociedade, a língua é uma entidade viva e está em constante modificação – não se encontra estática em um livro de gramática. A língua tem que estar a serviço da sociedade, e não o contrário. A norma dos cultos, que, hoje, é considerada a padrão, amanhã, pode não o ser mais.

Quer dizer, sendo uma entidade viva, parece que por ela falhar em impor suas regras formais – ou em ter suas regras impostas por pais, professores e sociedade – de tempos em tempos tem seu rigor aliviado e deve se adequar às regras informais, coloquiais, incentivada pela infinidade de momentos em que a expressão se torna mais importante do que suas restrições.

Pensando pelo lado “maldita inclusão digital que nem sabe escrever e já sai escrevendo no Face”, isso é péssimo, mas, pensando no dia-a-dia, quando lemos dezenas de artigos e escrevemos outras dezenas, seja na internet, na redação, ou mesmo mentalmente, vemos que tudo está a favor de uma linguagem flexível e compreensível, tanto para o cidadão de pensamento simples como para um doutor. Isso se repete sempre e dada sua ciclicidade não tão óbvia – a não ser que você tenha lido dezenas de edições de livros de gramática da língua portuguesa – talvez muito do que consumimos e produzimos já fora considerado gramaticalmente errado.

Portanto, pode parecer estranho, mas em um futuro bem próximo – observada a forma como os brasileiros estão escrevendo – as seguintes mudanças na língua portuguesa poderão ser mais aceitas, senão oficializadas:

Desobrigação do R ao final do verbo através da transformação da palavra em oxítona

Vamos lá toma umas cervejas e conversa um pouco

Aceitação do pronome oblíquo “mim” antes de um verbo

Antes eu não conjugava os verbos de forma correta. Agora mim pode conjugar

Flexibilização da concordância nominal

Eu fui comprar uns jogo no Centro

Advérbio de intensidade mais como conjunção adversativa mas

Escrevo assim mais nem ligo

Nesse momento eu penso em… “cruzes!”, mas não importa. Eu estou longe de escrever bem, portanto, longe de ter razão em criticar quem não escreve seguindo todas as normas.

Apresentando: HaavokIPC

Então você pega um projeto de sistema feito em PHP 4 (um dos ~7% de sites que ainda usam essa versão) e precisa usar algum componente que só funciona no PHP 5. Você pensou em um web service local em uma segunda instância do Apache rodando PHP 5, mas dadas as características do ambiente onde a aplicação roda e da dificuldade de fazer o deploy do segundo servidor, você foi proibido pelo chefe de fazer isso. Você pode também executar código entre diferentes versões de PHP ou mesmo na mesma versão, mantendo uma parte da sua aplicação em uma sandbox.

Para isso há várias soluções, dependendo dos requisitos. O HaavokIPC dá conta destes: chamadas síncronas a funções ou métodos de objetos/classes; uso dos dados retornados através de callbacks; uso em parte da aplicação que não exige alta performance. Ele não usa servidores ou conexões, ele executa o binário do PHP e se comunica com ele através de um arquivo serializado ou persistência. Os objetos responsáveis pela persistência e serialização são plugáveis e novos objetos podem ser desenvolvidos sem perda de tempo, apenas respeitando a interface. Por enquanto estão disponíveis os seguintes objetos de persistência, chamados de Drivers: File, Memcache e Shm, que usam, respectivamente, um arquivo, um servidor do memcache ou shared memory de ambientes *nix. Para a serialização, estão disponívels os Serializers Default, que usa as funções serialize e unserialize nativas do PHP e Msgpack, que usa a extensão msgpack.

Ele foi desenvolvido para ser compatível com boa parte das versões de PHP entre 4 e 5.

A documentação ainda não está madura e há muito a se fazer no código em termos de performance e arquitetura, como todo bom projeto experimental.

O código está disponível no GitHub -> HaavokIPC/PHP

Update 25/11/2011
Estou portando o HaavokIPC para Ruby e isso me obrigou a fazer mudanças na arquitetura, a fim de tornar a configuração e a conversa entre front end e back end mais fácil, seja de PHP para PHP, PHP para Ruby ou de Ruby para PHP. Criei um novo repositório para este port, disponível em HaavokIPC/Ruby. Mais pra frente espero portá-lo para outras linguagens.

Update 30/11/2011
O desenvolvimento do HaavokIPC em Ruby está congelado enquanto trabalho no refactoring da versão em PHP, com alterações mais profundas do que simplesmente tornar sua configuração mais flexível.

Provocações + Gabações

Vou parar de me gabar por ter um smartphone, um bom computador, um bom trabalho com um nobre título. Espero que todos que possuem um bom tênis, um bom carro, o melhor smartphone ou o melhor sonho material façam o mesmo. Vou começar a me gabar por ter um teto, água potável, esgoto encanado, comida na mesa e a oportunidade de sair de casa sem medo de levar um tiro de lugar nenhum. Porque, afinal, o sentido da “gabação” é se sentir superior ao indivíduo ao lado por ele não ter o que você não tem. Mas ora, vejo todos os dias pessoas no metrô com seus bons tênis e smartphones doentemente se comparando aos que já tem, sendo esse ato correspondido pelo indivíduo ao lado. Portanto, não há mais sentido em tal tipo de gabação. Todos já chegaram ao topo com seus bons computadores e bons trabalhos de nobre título. Agora chegou a hora de fazer a gabação valer a pena. Vamos nos gabar para os que vivem abaixo da linha da pobreza, para os que comem palma todos os dias e consideram um raro calango uma iguaria chique para seus padrões. Vamos nos gabar para quem tem que fazer suas necessidades fisiológicas em um buraco no meio da terra – junto a outras 100, 200 pessoas. Vamos nos gabar para aquele garoto obrigado pela mãe a pedir uns trocados no farol e pra sua irmãzinha que está se prostituindo a duas quadras.

Mais importa exibir nosso mundinho cada vez mais fechado em uma vitrine mentirosa.

Doentes.

Categorias:Divagações
%d blogueiros gostam disto: