Calculadora de ErlangB – Agora em Adobe Flex

Alguns dias atrás descobri através do MeioBit que a Adobe estava fazendo uma campanha para popularizar o Adobe Flex (aqui). A idéia da campanha “Adobe® Flex™ Builder 3 Professional for unemployed developers” é distribuir uma licença para pessoas desempregadas ou não trabalhando com desenvolvimento. Já tinha lido alguma coisa sobre o Flex, mas nunca tinha pensando em utiliza-lo. Como não estou desempregado (UFA!!), estou à 4 dias utilizando a versão trial (60 dias) para ver o poder desta solução.

Como qualquer um que está começando a aprender uma nova linguagem de computação, parti a procura de fontes de informação e referência. Como todo programador de PHP, sofri um pouco com a documentação (sou só eu que considero a documentação do PHP ótima?). Procurando no Oráculo encontrei algumas referências interessantes, que indico abaixo:

  • msdevstudio.com: Um blog pessoal, com várias informações sobre Flex, AIR, ActionScript, … Todo conteúdo em pt_PT, e para aqueles que ficaram com medo do ms do nome do blog, ele vem de Mário Santos. Como tem muita informação no blog, recomendo a série de 5 tutoriais sobre como trabalhar com o Flex (profissional).
  • Flex Style Explorer: Uma ótima ferramenta (em Flex) para construção de estilos CSS para suas aplicações;
  • Adobe Flex 3: Página oficial do Flex;
  • Flex Showcase: Várias aplicações em Flex, demostrando o potencial da ferramenta;
  • Adobe Air Marketplace: Um local onde os desenvolvedores podem distribuir suas aplicações.

Depois de seguir o tutorial do Mário Santos (link acima), resolvi colocar a mão na massa de fazer alguma coisa. Nada melhor que fazer algo que já fiz em outra linguagem, permitindo assim as inevitáveis perguntas: Foi mais fácil? Ficou mais bonito? É mais intuitivo?

Continue lendo: Calculadora de ErlangB – Agora em Adobe Flex

MySQL – Melhorando o desempenho com tabelas MEMORY

Quem já teve que trabalhar com grandes volumes de dados no MySQL, já se perguntou como melhorar o desempenho de consultas longas e repetivas. E sabe como é difícil.

Este post nasceu de várias perguntas que me fiz enquanto procurava o gargalo em um sistema de verificação de inconsistências que gastava 5 horas analisando as mesmas tabelas. Fiz algumas contas e constatei que gastava menos de 0,1 segundos em cada QUERY (nada mal). Mas algo tinha que ser feito!

Imaginar como melhorar o desempenho de um JOIN de campos CHAR entre três tabelas, uma com 200k linhas, outra com 5k linhas e outra com 50 linhas não é fácil. A primeira saída é otimizar o banco, com a criação de índices e adequação dos campos ao conteúdo (INT, CHAR, VARCHAR, …). Mas mesmo assim não estava funcionando no meu caso. Nada que uma visita na documentação do MySQL não resolva os problemas.

Na documentação descobri que exatamente para estes casos o MySQL possui um tipo especial de tabela, o MEMORY. Ela possui algumas limitações, porém é imcomparável quando o assunto é velocidade.

Algumas limitações:

  • Não suporta campos do tipo BLOB e TEXT (mais uma desculpa para otimizar o banco);
  • Os registros ocupam um tamanho fixo na memória. Assim, um campo INT vai sempre ocupar 4 bytes de memória, mesmo que você o use como um TINYINT;
  • Você precisa de muita memória RAM disponível no servidor (devido ao caso acima);

Como você pode precisar de uma quantidade de memoria RAM absurda, o MySQL limita a quantidade de memória até o valor definido na variável max_heap_table_size. O valor default é 16Mb, mas o céu é o limite.

Apesar de possível, não é recomendada a utilização de uma tabela MEMORY para armazenar dados pois as informações serão perdidas em caso de falta de energia. Considere sua utilização apenas em casos onde:

  • você tenha muitas pesquisas em um curto espaço de tempo;
  • Os dados sejam estáticos, sem variações (nada de UPDATES)

É uma boa pedida para uma STORE PROCEDURE que replica algumas informalções de uma tabela normal (MYSAM, por exemplo) para uma MEMORY, melhorando o desempenho daquela QUERY complexa.

Ainda neste semana, vou apresentar um tutorial de como criar uma tabela MEMORY com o PHP, replicando as informações de outra tabela. Não percam!!!

PHP – Classe para calcular Erlang B

No dia a dia do meu trabalho, me deparo sempre com a necessidade de calcular a capacidade (Erlg) de tráfego de uma interface. Assim, acabo sempre recaindo na necessidade de saber quantos Erlangs determinada interface possui, ou mesmo saber quanto terá depois de alguma atividade.

Tradicionalmente recorremos à alguma tabela de referência (exatamente como faziam na década de 60) ou utilizamos um dos inúmeros softwares que fazem este trabalho para você (para acesso web, indico o site www.erlang.com). Mas eu queria mais. Queria controlar esta atividade, podendo:

  • Fazer o cálculo dentro do meu próprio código;
  • Popular uma tabela de um banco de dados,
  • Mostrar o código no meu blog ;-)

Então, como um bom engenheiro que sou ;-) , criei um código (uma classe) em PHP para calcular Erlang B…
Continue lendo: PHP – Classe para calcular Erlang B

Complementos para o Firefox – Os indicados pelo tauscheck.com ;-)

Já fiz outro artigo aqui no site sobre complementos para o Firefox, porém era específico apenas ao Allpeers.
Continuo indicando este complemento à todos, pois é o mais incrível que já vi, pois transforma o navegador em MUITO mais que apenas um navegador…

Hoje decidi criar uma lista de Complementos que utilizo diariamente em meu Firefox.
Continue lendo: Complementos para o Firefox – Os indicados pelo tauscheck.com ;-)

Sofrendo com um Philips SE4351 (Parte IV e Final)

Concluindo a novela do caso Philips SE4351 x eu e minha esposa, posso afirmar que um pouco de pressão resolveu o caso. Meu último post sobre o caso foi no dia 20/09/2007 – quinta-feira. Na segunda-feira consegui enviar um e-mail para o suporta da Philips com a argumentação que coloquei na parte III da novela. No e-mail fiz a mesma ameaça de processar a empresa caso não obtivesse uma resposta naquela semana. Como argumentação utilizei o Código de Defesa do Consumidor, exatamente como no blog.

Continue lendo: Sofrendo com um Philips SE4351 (Parte IV e Final)

Pesquisa nacional de compatibilidade

 Durante todo mês de junho de 2007, o BR-Linux.org promoveu uma extensa pesquisa com seus usuário, procurando identificar em que estágio se encontra a compatibilidade de equipamentos, componentes e serviços com as distribuições mais populares de Linux.

Durante este período o BR-Linux.org contabilizou mais de 12000 registros, representando uma importante parcela dos usuários.  Porém esta grande quantidade de informação de nada vale nada sem que todos tenham acesso à eles. Assim, o Br-Linux.org criou uma campanha para incentivar a divulgação dos resultados da pesquisa…

Ajude a divulgar a lista brasileira de equipamentos e serviços compatíveis com Linux 

…e concorra a MP4 e MP3 players, mochilas Targus, períodos de VoIP grátis e até a ventiladores USB – além de contribuir automaticamente para doações para a Wikipedia e o Wordpress! O BR-Linux coletou mais de 12.000 registros de compatibilidade de equipamentos e serviços (webcams, scanners, notebooks, …) na sua Pesquisa Nacional de Compatibilidade 2007, e agora convida a comunidade a ajudar a divulgar o resultado. Veja as regras da promoção no BR-Linux e ajude a divulgar – quanto mais divulgação, maior será a doação do BR-Linux à Wikipedia e ao Wordpress.

Além de ajudar a divulgar o Linux e o Wordpress (minha escolha) ainda concorremos aos vários brindes oferecidos pelo Br-Linux. Participe você também…

Sofrendo com um Philips SE4351 (Parte III)

Continuando nossa novela ;-) , já estamos à 23 dias (desde o dia 27/08/2007) com o telefone Philips SE4351 de posse da Philips para uma análise minunciosa do caso (eu não escrevi errado não, é assim que os atendentes da Philips falam).

Neste período já me solicitaram três vezes o prazo de 48 horas úteis para a análise minunciosa da equipe técnica da referida empresa. Atualmente estou aguardando um prazo de 71 horas (até o final do dia 21/09/2007) pois solicitaram urgência pra o tratamento do meu caso (solicitação feia pela 4ª vez).

Para que ninguém fale que não sou consumidor da Philips, eis a lista de equipamentos que tenho em casa:

  • Uma TV 25″ tela plana – particularmente ela tem o péssimo costume de demorar 25 segundos para ligar;-p
  • Um Home Theather com DVD e
  • Uma batedeira super invocada.

Além destes ainda tenho (pelo menos a nota fiscal está aqui comigo) um telefone SE4351.

Continue lendo: Sofrendo com um Philips SE4351 (Parte III)

Sofrendo com um Philips SE4351 (Parte II)

Continuando a história iniciada no post Sofrendo com um Philips SE4351 (Parte I), depois de 52 dias esperando pelo nosso aparelho novo, recebemos pelos correios no dia 24/08/2007 a peça depois da troca (UFA!).

Alegria, alívio e mais um monte de sentimentos se somam à este momento, porém toda euforia é substiuida pelo sentimento de impotência e, porque não chamar assim, de raiva. Em nosso primeiro teste já observamos que os dois problemas reportados se mantinham. Em princípio acreditamos que era uma brincadeira e que haviam enviado por engano o mesmo aparelho. Mas não. O aparelho veio em uma nova caixa com todos os decalques que o anterior apresentava (talvez até mais).

Continue lendo: Sofrendo com um Philips SE4351 (Parte II)

Sofrendo com um Philips SE4351 (Parte I)

Não costumo utilizar este espaço (muito menos o tempo de todo mundo) com reclamações, até porque todo mundo já tem seus próprios problemas para se preocupar.

Em vez disto, vou usar este passo apenas para contar um caso pelo qual tenho passado e que realmente não desejo que ninguém passe também.

Tudo começa no dia 26/06/2007 quando eu e minha esposa compramos o telefone sem fio SE4351 com identificador de chamadas, viva voz, secretária eletrônica e leitor de chip de celular, marca Philips, no site da Americanas.com por R$299,00. O aparelho era perfeito para potencializar o ótimo pacote de serviços que havíamos contratado junto à GVT.

A compra

Continue lendo: Sofrendo com um Philips SE4351 (Parte I)

Mania Drive

Uma deficiência do Linux (e dos BSDs também) que sempre é observada pelos que estão migrando do mundo MS-Windows é a falta de grandes títulos de jogos (percebam que não falei de bons jogos).

Aos poucos o cenário está mudando, mas ainda estamos muito longe do que temos no Windows. Podemos citar alguns nomes de destaque que não deram as caras no mundo do pinguim:

  • The Sims;
  • SimCty ;
  • Fifa Soccer (e damais títulos esportivos da EA);
  • Need4Speed (qualquer um);
  • Half-Life (e suas variantes);
  • Halo (e todos os demais jogos lançados para o X-Box);
  • GTA’s;

Diversão Garantida

Continue lendo: Mania Drive

Complementos do Firefox – AllPeers

Todo blog que se preze tem um post sobre algum complemento legal do Firefox!!! Como quero que isto aqui pareça um blog (um dia quem sabe) resolvi postar alguma coisa sobre um complemento diferente:

AllPeers

O próprio slogan do complemento explica a funcionalidade dela:
Compartilhe exatamente o que você quer com exatamente quem você quer!
Continue lendo: Complementos do Firefox – AllPeers

Princí­pios, Protocolos e Arquitetura de Redes TCP/IP

Muito se fala sobre estes protocolos ultimamente (sim, são 2 e não 1), mas a maior parte das pessoas não conhece o funcionameto e as características deles. Pensando nisso, estou disponibilizando um trabalho sobre TCP/IP.
Continue lendo: Princí­pios, Protocolos e Arquitetura de Redes TCP/IP

PHP – Como Dividir um Quadrado em 4 Partes Iguais??!!

Como dividir um quadrado em 4 partes idênticas?

Esta é a proposta de programa escrito em php. A idéia é particularmente simples e fécil de ser implementada, porem é um bom exercéio para que quer aprender a trabalhar com a lib_gd junto com o PHP. Vale a pena também para quem gosta de trigonimetria e de célculos.

Como o programa é totalmente ligado com minha página, estou apenas disponiblizando o arquivo que faz os desenhos, mas com ele já dá pra se divertir bastante.

Para copiar os arquivos, clique aqui! (os códigos estão disponí­veis na licença GNU GPLv2).

Para ver o programa, clique AQUI!

PHP – Integração com o VBA (COM)

Vivemos em um mundo onde:

  • 90% das informações que temos estão em uma planilha em Excel;
  • 8% em algum arquivo Word e
  • 2% em um Banco de Dados (dos quais 50% são arquivos MDB ) ;-)

Como então aproveitar todos estes arquivos e ainda trabalhar com PHP?
Continue lendo: PHP – Integração com o VBA (COM)

Som AC’97 e Modem Pctel – 100%

Um dos maiores problemas dos usuários que acabam de chegar ao Linux, assim como um grande problemas daquele que trocam de computador por um com todo o sistema on-board, são os famigerados fax-modens.

Apesar dos vários modelos existentes no mercado (Pctel, Lucent, Us-Robotics, …), aqui procurarei me ater à um modelo específico, o SiS7013 56k, que apresenta alguns problemas com o driver tradicional.

Continue lendo: Som AC’97 e Modem Pctel – 100%