domingo, 24 de agosto de 2008

MySQL Workbench

Quando a Sun Microsystems comprou a empresa do banco de dados MySQL, uma das primeiras providências foi desenvolver uma ferramenta para modelagem de dados. Popularmente denominada de sucessora do DBDesigner 4 (gratuita), estou falando da MySQL Workbench. Excelente ferramenta. Vale a pena experimentá-la. Estão disponíveis para download, uma versão gratuita e outra paga (hoje, custando US$ 99,00).

Geração de scripts: O DBDesginer tinha um plugin que gera script para vários bancos de dados, de acordo com a escolha do usuário. Ainda não encontrei um plugin para
o MySQL Workbench que suporte geração de scripts para outras bases.

quarta-feira, 20 de agosto de 2008

LWUIT: Evolução das interfaces gráficas Java ME

A biblioteca LWUIT (Lightweight User Interface Tools) é uma API que tem o objetivo de melhorar a interface gráfica e o processo de desenvolvimento de aplicações JME. Foi desenvolvida pela própria Sun e possui uma licença que permite sua utilização mesmo em aplicações fechadas e/ou comerciais. A biblioteca traz alguns recursos que não são nativos no Java ME, mas melhoram muito a usabilidade e a qualidade da interface gráfica. Dentre seus recursos, destaco: telas com abas que podem ser posicionadas nos quatro cantos da tela; separação de ComboBox, CheckBox e RadioButton; uso de layouts e contêiners; e tratamento de eventos em botões inseridos no corpo da tela da aplicação. Acredito que é um salto interessante na evolução das interfaces gráficas de aplicações JME. Para mais informações: http://lwuit.dev.java.net .

sexta-feira, 15 de agosto de 2008

Documentação em .NET Framework 2.0

Passei alguns dias pesquisando como gerar documentação (formato HTML ou help compilado), através do XML que o Visual Studio 2005 gera. As primeiras versões do NDoc não funcionam para o XML gerado. Finalmente encontrei uma solução para tal problema, lendo o artigo "Visual Studio 2005 - Documentation Generation Using NDoc 2005" [1], indicado pelo colega Alfredo Falcone. Uma das formas disponíveis no artigo, é o uso do NDoc2005 [2]. Este aplicativo, desenvolvido em C#, gera documentação em HTML e/ou help compilado. Caso tenha interesse em gerar a documentação em help compilado, será necessário instalar o Microsoft HTML Help Workshop [3][4], e informar no NDoc2005 a pasta onde o mesmo foi instalado. Segui uma dica mencionada no artigo, e a recomendo: "Ao invés de baixar os binários do NDoc, baixar os fontes, compilá-los e executar src\Gui\bin\Debug\NDocGui.exe".

[1] http://geekswithblogs.net/sudheersblog/archive/2006/07/24/86146.aspx
[2] http://prdownloads.sourceforge.net/ndoc05/
[3] http://msdn.microsoft.com/en-us/library/ms669985.aspx
[4] http://go.microsoft.com/fwlink/?linkid=14188

sábado, 26 de abril de 2008

Dica C#: Entendo os tipos Nullable


using System;
using System.Collections.Generic;
using System.Text;

namespace Estudos_TiposNullable {
/* Autor: Leonardo Melo Santos (leonardomelosantos@gmail.com)
* Data: 26/04/2008
* Descrição: Estudos iniciais sobre "Nullable Types" do .NET 2.0
* Objetivo: Ver tipos primitivos recebendo NULL
*/
class Program {
     static void Main(string[] args) {

         int? i = null; // A interrogação faz parte da sintaxe
         int j = 10;

         Console.WriteLine("i=" + i);
         Console.WriteLine("j=" + j);

         // Vai dar FALSE
         Console.WriteLine("(i == j) " + (i == j));

         // Vai dar FALSE
         Console.WriteLine("(i > j) " + (i > j));

         // Vai dar FALSE
         Console.WriteLine("(i < j) " + (i < j));

         // Usando o "hasValue" para evitar exceções, pois se usarmos
         // "xxx.Value" sem fazer o teste antes, uma exceção é levantada
         if (i.HasValue) {
             Console.WriteLine("'i' não é nulo");
         } else {
             Console.WriteLine("'i' é nulo");
         }

         // Usando o o operador "??"
         int? y;
         y = i ?? 10; //Retorna 10 se "i" for NULL, senão retorna o valor de "i"
         Console.WriteLine("y=" + y.ToString());

         // K será igual a NULL
     int? k = i + j;
         Console.WriteLine("k=i+j");
         Console.WriteLine("k=" + k.ToString());

         // Se "i" for NULL, será retornado o valor default do "int"
         // Senão, retorna o valor atribuído a "i"
         int x = i.GetValueOrDefault();
         Console.WriteLine("x=" + x.ToString());
     }
}
}

domingo, 30 de março de 2008

Citix - Excelente ferramenta fez C.E.S.A.R. receber voto de aplauso

Pernambuco mais uma vez surpreendendo com inovação! Web2 de boa qualidade! Com o Citix, basta marcar um ponto no mapa, contar sua história e ajudar a construir um cenário real sobre a cidade em que vivemos. Existem 5 tipos de marcações no mapa: Segurança/Prevenção de Crimes , Serviços Públicos , Infra-estrutura , Entretenimento e Instituições . Já existem vários tipos de relatos informados, sejam de instituições, de crimes, elogios a bares e restaurantes, etc. O sistema foi criado pelo C.E.S.A.R, contando com apoio decisivo do Ministério Público Federal (MPF) em Pernambuco. A Câmara Municipal do Recife concedeu voto de aplauso ao C.E.S.A.R pela criação do Citix - inovação baseada em conceitos Web 2.0 que reúne ferramentas de georeferenciamento e redes sociais a serviço da utilidade pública, prevenção do crime e cultura, entre outros aspectos. A iniciativa do voto de aplauso foi do vereador Henrique Leite.
Acesse: http://www.citix.net/

quinta-feira, 6 de março de 2008

TI é a área mais estressante do mundo

É a pura Pesquisa norte-americana aponta que 97% dos profissionais de TI relatam estresse diário com seu ambiente de trabalho, à frente de médicos, engenheiros e vendedores. Profissionais da área de tecnologia da informação estão mais propensos a sofrer com o estresse do que os de outras áreas. Isso é o que aponta uma pesquisa da consultoria SWNS com 3 mil pessoas ao redor do mundo.De acordo com o levantamento, 97% dos profissionais de TI alegam sofrer de estresse diariamente em seu ambiente de trabalho. Quatro dos cinco consultores de TI sentem-se estressados antes mesmo de entrar em seu local de trabalho. Tal sensação de mal estar é uma forma de antecipação às pressões e reclamações a serem sofridas ao longo do dia.

Fontes:
http://computerworld.uol.com.br/gestao/2006/05/26/idgnoticia.2006-05-26.3429630181/
http://www.istf.com.br/vb/showthread.php?t=9056

quarta-feira, 26 de dezembro de 2007

Cuidado nas compras on-line

Existem muitos sites falsos que aparentam ter credibilidade. É preciso ter muito cuidado! Ter selos que outros sites famosos têm, ter figuras que indicam parcerias com bancos, conceito altamente positivo em sites de leilão virtual, etc, não garantem a credibilidade de uma loja virtual. Antes do Natal, fraudes relacionadas às compras online foram tema de muitos jornais e tele-jornais. As dicas baixo ajudam você a não ser uma próxima vítima:
  • Desconfie de preços muito baixos.
  • O site tem que oferecer uma compra segura, garantir que ninguém mais tenha acesso a seus dados pessoais. Para isso, na hora da compra, deve aparecer um cadeado na barra inferior no navegador. Cuidado: muitos sites copiam essa imagem e inserem dentro da página. Outro detalhe muito importante é o endereço que aparece na hora de fazer a compra. Se a página for segura tem que começar com https. Se for só http, cuidado.
  • Atenção para a forma de pagamento. Não utilize sites que recebem apenas por boleto bancário.
  • Faça uma pesquisa na própria internet sobre a loja em que onde você pretende. Ao menor cheiro de golpe, os próprios internets avisam.

domingo, 25 de novembro de 2007

Melhores aplicações para o Android ganharão US$ 10 milhões

A Google anunciou nesta segunda-feira (12/11) um concurso para desenvolvedores que dará US$ 10 milhões em prêmios para os profissionais que criarem os melhores aplicativos para o Android, plataforma móvel aberta lançada recentemente pela companhia. As premiações individuais do chamado Android Developer Challenge variam de US$ 25 mil a US$ 275 mil.
"Construímos algumas aplicações interessantes para o Android, mas as melhores ainda não estão aqui, porque elas ainda serão criadas pelos desenvolvedores", disse o co-fundador e presidente da Google, Sergey Brin. "Gostaríamos de recompensar esses desenvolvedores e dar o nosso reconhecimento tanto quanto for possível".

Os interessados em participar do concurso poderão se inscrever de 2 de janeiro a 3 de março de 2008, para ter seus trabalhos avaliados por um júri formado por especialistas de tecnologia e membros da recém-formada Open Handset Alliance, de acordo com o site Ars Technica.
Simultaneamente ao concurso, a aliança - que inclui além da Google, empresas como Motorola, Sprint e T-Mobile - anunciou ainda o lançamento do kit de desenvolvimento de software (SDK, na sigla em inglês) inicial para o Android, que oferece suporte aos sistemas operacionais Windows, Mac e Linux (i386), acrescentou o site Daily Tech.


Além do download do SDK, o site do Android (http://code.google.com/android) oferece um tutorial para o desenvolvimento de aplicações, dicas, vídeos e outras informações. Já mais detalhes sobre o Android Developer Challenge podem ser lidos no atalho http://tinyurl.com/27mqwx. Ambos em inglês.


Por Mylène Neno
www.yahoo.com.br

TV Digital: Tire suas dúvidas

Quando vão começar as transmissões de TV digital? No dia 2 de dezembro, em São Paulo. Segundo o Ministro das Comunicações, Hélio Costa, a partir de janeiro de 2008 a transmissão começa em Brasília, Belo Horizonte e Rio de Janeiro. Em julho, a TV digital deve chegar às demais capitais e a partir de dezembro de 2008, às cidades-pólo no Brasil inteiro. Em 2009, o sinal digital deve chegar ao resto do Brasil.
Eu vou ter de trocar a minha TV por uma nova? Não. Você poderá adquirir um conversor, conhecido como set-top box, que permitirá que a TV que você tem em casa receba o sinal digital, utilizando uma antena UHF. Qualquer televisor será compatível com o aparelho, desde que tenha entrada para DVD ou aparelho de videocassete. Porém, se você quiser assistir à TV digital em alta definição, que exige mais linhas de resolução, terá que adquirir um novo aparelho compatível com HDTV (High Definition Television).
Minha antena de TV vai para o lixo? Não se ela for UHF. O sistema brasileiro foi desenvolvido de forma a aproveitar as antenas externas e internas para a recepção do sinal UHF. Já as parabólicas vão continuar recebendo o apenas o sinal analógico.
Quando vai custar o set-top box? O preço do set-top box é um dos assuntos mais polêmicos. O Ministro das Comunicações, Hélio Costa, prometia conversores por 150 reais a 180 reais, mas à véspera da estréia os modelos previstos para chegar ao mercado custam entre 700 reais e 1 mil reais. Costa afirmou que se a indústria não ceder nos preços, o governo vai importar modelos de outros países para chegar ao preço prometido.
O que é mais vantajoso: comprar uma TV digital com receptor interno ou um conversor para TV digital? Além de trazer o receptor, as TVs digitais poderão oferecer vantagens como alta definição. Porém, se os aparelhos utilizarem a mesma tecnologia (LCD, por exemplo) e oferecerem recursos similares, não faz diferença comprar uma TV com receptor embutido ou usar conversor externo.

Eu acabei de comprar uma TV de plasma ou uma TV LCD. Elas estão prontas para a TV digital? Não necessariamente. As TVs de LCD e plasma, em geral, possuem a definição mais adequada para a TV digital, o que significa que a imagem será melhor. Mas para receber o sinal digital será preciso adquirir o conversor ou set-top box. Além disso, para receber conteúdo em alta definição, o aparelho deve ser compatível com HDTV (High Definition Television), ou seja, trazer 1.080 linhas de resolução.
Existem televisões à venda no mercado que já estão prontos para a TV digital? Ainda não. Os aparelhos disponíveis no mercado vendidos como “prontos para a TV digital” são aqueles que oferecem alta definição (HDTV). Embora tenham a resolução necessária para garantir a melhor qualidade de imagem oferecida pelo sistema digital, os aparelhos não trazem receptores internos. Os fabricantes prometem colocar produtos nas prateleiras antes da estréia, mas correm contra o relógio, já que falta menos de um mês para a estréia e nenhum produto chegou de fato às lojas.
Vou poder usar o meu adaptador de TV a cabo digital para receber a TV digital aberta? Por enquanto não, mas já estão sendo desenvolvidos aparelhos compatíveis tanto com a TV digital paga quanto com a TV digital aberta. Os assinantes de TV paga digital (cabo ou satélite) já assistem a canais da TV aberta com qualidade digital, mas não em alta definição. Os provedores de TV por assinatura deverão oferecer set-top boxes compatíveis com alta definição.
Vou poder assistir à TV digital no meu computador? Sim. Fabricantes vão oferecer receptores para notebooks e desktops. A Tectoy prometeu um modelo de receptor que pode ser ligado à porta USB do computador até a estréia da TV digital.
Vou poder assistir à TV digital no meu celular? Vai ser paga? Sim e sem nenhum custo, pois a TV aberta é gratuita e o sistema adotado pelo Brasil prevê a transmissão para aparelhos portáteis - tanto celulares quanto TVs móveis. Porém, antes será necessário adquirir um aparelho com receptor, o que ainda não está disponível no mercado.
Vou poder acessar a internet pela TV digital? Tecnicamente sim, mas mais uma vez o modelo de negócio ainda não está definido. A tecnologia, contudo, permite utilizar a TV para fazer compras, acessar serviços e navegar pela web.
A TV digital será interativa? Sim. Os aparelhos receptores contarão com o um software desenvolvido no País, o Ginga, que permitirá a interação do aparelho com as emissoras. A interatividade permitirá ao usuário enviar informações à emissora, possibilitando, por exemplo, responder enquetes, opinar sobre a programação ou mesmo fazer compras pela TV. A interatividade dependerá, contudo, da disponibilidade de recursos no set-top box - os primeiros aparelhos devem ser mais limitados - e de aplicações desenvolvidas pelas emissoras, portanto, em um primeiro momento, as possibilidades devem ser restritas. Além disso, será necessário um canal de retorno para enviar as informações de volta à emissora - como uma conexão telefônica ou de banda larga.
Todos os canais disponíveis na TV aberta hoje vão estar disponíveis de imediato em sinal digital? Não necessariamente. Para migrar para o sistema digital, as emissoras terão que investir na troca de equipamentos, portanto provavelmente as empresas com mais recursos migrarão primeiro. Entre as emissoras que já estão transmitindo o sinal digital em caráter experimental estão a Rede Globo, a Record, a Bandeirantes e a Gazeta. A nova televisão pública do país, a TV Brasil, também estréia junto com o sinal digital.
Toda a programação vai ser em alta definição? Não. As emissoras poderão transmitir alguns conteúdos em alta definição e outros em definição padrão.
A programação poderá ser gravada? Esta é mais uma indefinição, por enquanto. Segundo porta-vozes da indústria, as gravações em alta definição deverão ser restritas a um número de vezes para evitar a pirataria, mas a resposta definitiva à questão do bloqueio ainda paira no ar.
Se eu não comprar o conversor, não vou mais poder assistir a TV aberta? Você poderá assistir normalmente a programação aberta na sua TV atual, pois a previsão de tempo para migração do sistema analógico para o digital é de 10 anos. Até lá, as emissoras são obrigadas a manter a transmissão analógica.


Fonte: http://www.idgnow.com.br

domingo, 4 de novembro de 2007

IBM avança no mercado de Colaboração em 2007

São Paulo, 30 de outubro de 2007 – Neste ano, a IBM reforça sua atuação no mercadomundial de Colaboração e amplia seu portfólio da linha Lotus. Entre os novos produtos, destaque para o Lotus Notes 8, Symphony e Connections. Em outubro, a empresa também inaugurou sua loja virtual no Second Life para oferecer informações das soluções em formato 3D.

No Brasil, a área de Lotus cresceu 221% no terceiro trimestre de 2007 em relação ao mesmo período no ano anterior. “Estamos vivendo um cenário positivo para o mercado de colaboração.Ampliamos a experiência do usuário, com a integração de sistemas de produtividade baseados no padrão Open Document Format” – disse Ricardo Rossi, gerente da área de Lotus da IBM Brasil – “Além disso, somos pioneiros na oferta de funcionalidades baseadas em tecnologia Web 2.0, como blogs corporativos, wikis, painel de atividades, mensagens instantâneas, redes sociais, e tudo isso integrado” - completa.

Segundo Marco Bravo, diretor da área de Software da IBM Brasil, Colaboração é um processo natural da integração entre pessoas e ferramentas. “Cada vez mais este mercado deixa de ser uma tendência e torna-se prioritário às empresas. Por isso, nosso foco no desenvolvimento alinhado à estratégia de padrões abertos da IBM permite ampliarmos nossa atuação neste mercado” – finaliza o executivo.

IBM Lotus Notes 8
Com mais de 125 milhões de usuários no mundo, o Lotus Notes 8 foi lançado em agosto no Brasil. O software é baseado em padrões abertos e oferece gratuitamente ferramentas de escritório básicas (planilha, editor de texto e apresentação). Também inclui um editor Real Simple Syndication (RSS). Esta versão do Notes 8 disponibiliza melhorias de e-mail para ajudar a aumentar a produtividade e evitar sobrecarga de informações. O recurso “ contatos recentes ”, por exemplo, possibilita aos usuários visualizarem no painel os e-mails enviados recentemente e os bate-papos realizados, permitindo localizar rapidamente um contato importante. Na função rechamada de mensagensé possível cancelar uma mensagem de e-mail após ter sido enviada por engano. A IBM também anunciou, em conjunto com a Totvs, parceiro de negócios da companhia, o TNI (Totvs Notes Integration). Essa solução é indicada para pequenas e médias empresas e traz o ERP da Totvs integrado com o IBM Lotus Notes 8. A integração com o Lotus Notes será feita na versão Protheus 10 ERP, da Microsiga, e no Logix 10, ERP da Logocenter, marcas do Grupo TOTVS.

IBM Symphony
No dia 18 de setembro, a IBM anunciou o Symphony, programa que oferece aos usuáriosferramentas de produtividade para apresentação, editor de texto e planilhas. A solução écompatível com os formatos do Microsoft Office (DOC, XLS e PPT) e é capaz de exportar arquivos em PDF. O projeto foi baseado no OpenOffice.org. Na primeira semana de lançamento, a companhia registrou mais de 100 mil downloads do programa e obteve cerca de 1 milhão de visitantes em seu website. Para realizar o download gratuito do Symphony é preciso ter o plugin do Java instalado no computador e realizar um cadastro no site da IBM(
http://symphony.lotus.com/software/lotus/symphony/home.jspa).

IBM Lotus Connections
O Lotus Connections é uma plataforma de software social que traz para as empresas osbenefícios do conceito Web 2.0. A solução é composta por cinco ferramentas: perfis,comunidades, blogs, favoritos e atividades.
Com o software é possível que funcionários de uma companhia reúnam conteúdos necessários para a execução de tarefas (sejam e-mails ou apresentações), listem e busquem perfis de colegas, seus sites favoritos e blogs, entre outros recursos. A opção "Activities" do Lotus Connections permite aos usuários vincular um aplicativo que organiza e compartilha e-mail, mensagens instantâneas, documentos e outros itens relacionados a uma atividade ou um projeto específico. Activities usa tecnologias da Web 2.0 como Backpack, Atom, Tagging, REST, Ajax e JSON para entregar uma oferta de colaboração baseada na Web.

Mais informações
Sobre a IBM, consulte http://www.ibm.com.br
Lotus Store, acesse http://slurl.com/secondlife/IBM

sábado, 27 de outubro de 2007

Modelo de Contrato de Escopo Negociável

A ImproveIT é uma empresa especializada em desenvolvimento de software, consultoria e treinamento utilizando Extreme Programming (XP). No seu site, foi publicada uma matéria falando sobre Contrato de Escopo Negociável. Interessante mesmo é o fato de estar disponível para download, um Modelo de Contrato de Escopo Negociável. Para ler a matéria completa clique aqui.

Apple passa a valer mais que IBM, Intel e Nokia

Por MacWorld/Reino Unido
Publicada em 24 de outubro de 2007 às 14h20

Londres - Com resultado do quarto trimestre, empresa passa a valer US$ 160 bilhões, abaixo apenas de Microsoft, Google e Cisco. A Apple se tornou a fabricante de computadores mais valiosa do mundo com um valor de mercado por volta de 160 bilhões de dólares. Ela é maior que a IBM, que vale 155 bilhões de dólares, Intel (156 bilhões de dólares), Nokia (150 bilhões de dólares).

A Apple está atrás apenas de Microsoft (290 bilhões de dólares), Google (208 bilhões de dólares) e Cisco (189 bilhões de dólares). As ações da empresa estavam cotadas 183 dólares no começo desta tarde (24/10), na bolsa eletrônica Nasdaq, nos Estados Unidos. Elas se valorizaram em razão do desempenho de seu quarto trimestre fiscal, cujos lucros, acima da previsão dos analistas de Wall Street, surpreendeu os mercados. Os analistas estão chamando esse crescimento da Apple de ‘iPod Halo”, numa referência ao jogo Halo, da Microsoft.

Os usuários que compraram um iPod, e gostaram da experiência com o produto, agora estão comprando Macs e o celular iPhone (veja fotos do iPhone). Outros analistas do mercado acreditam que o sucesso da Apple pode ser atribuído à Microsoft, que falhou no lançamento do seu novo sistema operacional, o Windows Vista. Muitos usuários do Windows estão agora migrando os computadores Macs, da Apple. A empresa confirmou que 50% dos Macs vendidos nas suas lojas foram para pessoas que compravam pela primeira vez um produto da empresa.

Jonny Evans, editor da MacWorld, no Reino Unido

sábado, 20 de outubro de 2007

Dica C#: desenhando uma curva de Bèzier no browser


Com C#, podemos facilmente desenhar dinamicamente uma curva de Bèzier. O trecho de código-fonte abaixo, pode ser inserido, por exemplo, no evento Click de qualquer botão de um WebForm.


// Criando o objeto (através da classe Bitmap), que representa
// a imagem gerada dinamicamente pela aplicação.
Bitmap imagem = new Bitmap(400, 400);

// Obtendo uma referência da Classe Graphics apartir da imagem recém instanciada.
// Esse objeto possui métodos que lhe permite formar na memória todo o conteúdo do bitmap.
Graphics g = Graphics.FromImage(imagem);

// Criando o objeto Pen. O construtor está recebendo a cor da linha e sua espessura
Pen canetaPreta = new Pen(Color.Black, 3);

// Criando os pontos para a formação da curva
PointF start = new PointF(100.0F, 100.0F);
PointF control1 = new PointF(200.0F, 10.0F);
PointF control2 = new PointF(350.0F, 50.0F);
PointF end1 = new PointF(500.0F, 100.0F);
PointF control3 = new PointF(600.0F, 150.0F);
PointF control4 = new PointF(650.0F, 250.0F);
PointF end2 = new PointF(500.0F, 300.0F);
PointF[] pontosDeBezier = { start, control1, control2, end1,
control3, control4, end2 };

// Desenhando a curva de Bèzier
g.FillRectangle(Brushes.White, 0, 0, 400, 400);
g.DrawBeziers(canetaPreta, pontosDeBezier);
imagem.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
g.Dispose();
imagem.Dispose();


Dica C#: Gerando dinamicamente imagens no browser


Com muita facilidade, podemos gerar imagens dinamicamente no browser com C#.NET. O trecho de código-fonte abaixo, pode ser inserido por exemplo, no evento Click de qualquer botão de um WebForm.

// Criando o objeto (através da classe Bitmap), que representa
// a imagem gerada dinamicamente pela aplicação.
Bitmap imagem = new Bitmap(250, 50);

// Obtendo uma referência da Classe Graphics apartir da imagem recém instanciada.
// Esse objeto possui métodos que lhe permite formar na memória todo o conteúdo
// do bitmap.
Graphics g = Graphics.FromImage(imagem);

// A partir de agora, você deve usar os recursos que
// a classe Graphics dispõe, que são muitos.
g.FillRectangle(Brushes.Brown, 0, 0, 250, 50); //Desenha um retângulo preenchido com cinza g.DrawRectangle(Pens.Black, 0, 0, 249, 49); // Desenha o contorno de um retângulo

//Obtendo uma imagem externa
System.Drawing.Image imagemExterna = System.Drawing.Image.FromFile(Server.MapPath("exemploImagemGif.gif"));
g.DrawImageUnscaled(imagemExterna, 2, 2); // Adicionando a imagem externa

Font fonte = new Font("Rockwell Extra Bold", 10, FontStyle.Regular);
g.DrawString("Gerando imagem", fonte, Brushes.White, 60, 20);

// Cria a imagem para no HTML via stream
imagem.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);
g.Dispose();
imagem.Dispose();

quarta-feira, 10 de outubro de 2007

II EBTS 2007 - Segundo dia do evento

Participei do segundo e último dia do II Encontro Brasileiro de Testes de Software (EBTS 2007), organizado pelo C.E.S.A.R e pela Qualiti, em Recife-PE. O dia foi realmente bastante produtivo.

Como era de se esperar, os temas abordados também foram de extrema relevância para os processos de Teste de Software. Durante a manhã, os seguintes temas foram abordados: "Um caso prático de implementação de processo de testes", "Anti-patterns de Testes", "Desenvolvimento de Plug-ins Orientado a Testes", "A Tool to Translate CSP Models into English Requirements" e "Injecção de falhas para validação de software". A tarde, dois mini-cursos foram realizados: "Testando as falhas mais comuns em aplicações WEB: Uma abordagem prática" e "Técnicas avançadas de testes caixa preta".

Destacou-se nesse dia o assunto da palestra de Glaucia Peres, que apresentou uma ferramenta que converte Modelos CSP em casos de teste em inglês, no template da Motorola. Esta ferramenta foi desenvolvida pelo Centro de Informática da Universidade Federal de Pernambuco em parceria com a Motorola.

Como era de se esperar, Rodrigo Assad (consultor do C.E.S.A.R e doutorando da UFPE), com sua autenticidade, ministrou um mini-curso de segurança em aplicações web.

domingo, 7 de outubro de 2007

II EBTS 2007 - Primeiro dia do evento

Participei do primeiro dia do II Encontro Brasileiro de Testes de Software (EBTS 2007), organizado pelo C.E.S.A.R e pela Qualiti, em Recife-PE. Foi simplesmente sensacional. Participantes vieram de todo Brasil prestigiar. O evento foi realizado na sede do Porto Digital, com total estrutura física e técnica para receber os participantes.

Os temas abordados foram de extrema importância e necessidade, no contexto de Teste de Software. Não achem que, por se tratar de um evento voltado para a área de testes de software, foi deixado de lado a área de desenvolvimento de software. "Análise de Cobertura de Código", "Implantação de Testes em Pequenas e Médias Empresas de Software", "Design de Testes" e "Metodologia de Geração de Teste para software Embarcado", foram os temas abordados durante a manhã. A tarde, dois mini-cursos foram realizados: "TMM: Práticas e aplicações" e "TDD - Um curso prático".

Acredito que o segundo dia será tão interessante quanto o segundo. Um dos palestrantes é de Portugal. Uma das palestras abordará "Desenvolvimento de Plug-ins Orientado a Testes"; tema bastante atraente para os desenvolvedores e testadores.

domingo, 11 de dezembro de 2005

Dica Java - Casting de tipos primitivos

Casting, no que diz respeito às linguagens de programação, tem o sentido moldar um objeto ou tipo primitivo em um outro molde. Normalmente chamamos de conversão. Este artigo focará os tipos primitivos usando no Java. Apresentemos os tipos primitivos do Java:

Descrição
Declaração
Detalhes
Lógico
boolean variavel = true;
Aceita true ou false.
Caracter
char variavel = 'a';
char variavel = 97;
É possível atribuir um único caractere dentro de dois apóstrofos ou simplemente o seu código ASCII
Byte
byte variavel = 100;
Tipo númerico que aceita números entre -128 e 127
Short
short variavel = 2000;
Suporta números entre -32.768 e 32.767
Inteiro
int variavel = 400050;
Aceita números que variam de -2.147.483.648 até 2.147.483.647
Longo
long variavel = 100780000;
Número longo que suporta valores entre
-9.223.372.036.854.775.808 e
9.223.372.036.854.775.807
Ponto Flutuante
float variavel = 5.789f;
Simples precisão (7 casas decimais)
Duplo
double variavel = 0.789;
Dupla presição (15 casas decimais)

O diagrama abaixo representa a "hierarquia" de conversão.




Vemos neste diagrama que somente os tipos byte, short e char podem ser convertidos para o tipo int. Vemos também que todos os tipos podem ser convertidos para o double. O diagrama torna-se agora compreensível para os demais tipos. Tanta definição, tanto "decoreba"... mas como converter? Existe a possibilidade de ocorrerem erros? Vejamos um exemplo:


Início do arquivo casting.java

public class casting {

   public static void main(String[] args) {

      char c;
      byte b;
      short s;
      int i;

      // Conversão de Short para Byte
      s = 200;
      b = (byte)s; // ocorrerá perda de dados
      System.out.println(b);

      // Conversão de Byte para Short
      b = 100;
      s = (short)b;
      System.out.println(s);

      // Conversão de Char para Int
      c = 'a'; // código ASCII = 97
      i = (int)c; // utilizará o código ASCII
      System.out.println(i);

   }

}
Fim do arquivo casting.java

Quando fazemos (short)b , estamos convertendo a variável b em short. Caso não existe a obediência da hierarquia mostrada neste artigo, haverá perda de dados (inconsistência de dados). Um detalhe interessante em casting de tipos primitivos é a conversão utilizando o tipo CHAR, é utilizado o seu código ASCII no processo.

Existe a possibilidade de convertermos objetos. Neste caso, poderíamos tratar não simplesmente de uma conversão e sim de um novo molde ao objeto convertido. É como se pudéssemos moldar um objeto CachorroDeGuarda para um objeto CachorroJaTreinado. Existe a necessidade de haver semelhança entre essas classes (objetos).

Afinal, quais benefícios são obtidos com o SOLID?

Não se trata de um padrão. É um fundamento da orientação a objetos.  Os princípios SOLID devem ser aplicados para se obter os benefícios da ...