Tive um bocado de trabalho com o Glassfish V3 Prelude tentando fazer o deploy de uma aplicação que usa intensamente componentes de tabelas para mostrar o resultado de uma consulta ao banco de dados MySQL.
Durante uns dois dias fiz de tudo pra contornar o seguinte erro quando iniciava a aplicação:
java.lang.NoClassDefFoundError: com/sun/sql/rowset/CachedRowSetX
Coloquei a biblioteca sqlx.jar em tudo quanto foi lugar, a qual contém a bendita classe CachedRowSetX que o V3 insistia reclamar que não existia, mas nada de solucionar o problema.
Resolvi apelar: desinstalei tudo e parti para o Glassfish V2... magica, funcionou tudo magnificamente bem com alguns poucos cliques. Que coisa linda de se ver.
Ainda estou tentando entender direito o porque disso, lendo alguns foruns pelo mundo, qualquer coisa comentem ai, vamos descobrindo juntos.
Links:
http://markmail.org/message/gmzyyx2dzle7zws6?q=NoClassDefFoundError+CachedRowSetX&page=1
sábado, 29 de novembro de 2008
domingo, 17 de agosto de 2008
Amor e Ódio
Uma coisa não posso negar: o mundo é Microsoft. Como profissional de TI, tudo que faço tem alguma ligação direta ou indireta com esta empresa, portanto, meu ganha pão depende da "nossa" M$. Ops! MS.
No entanto, lendo a respeito de discussões como a "guerra dos padrões", veja links abaixo, me fez sentir profundamente indignado coma gigante do vale do silício. Além de poderosa, ela é ditadora, implacável, oportunista, sem escrúpulo algum, megalomaníaca e até criminosa... Isso tem cara de mais um daqueles processos milionários. Vamos parar por aqui, vamos economizar espaço.
Dê uma olhada nos links, são sites de pessoas sérias e bastante competentes. De forma alguma deixem de assistir o vídeo na íntegra que dai compreenderá toda a história. Duvido que não fique indignado também.
Links:
ODF
Office Open XML
http://homembit.com
http://homembit.com/2008/08/padroes-abertos-na-comunicacao-em-rede-odf-e-openxml.html
http://homembit.com/2008/08/openxml-fim-da-historia-apelos-recusados.html
Este vídeo esta no link acima, mas pra você economizar alguns cliques coloquei aqui:
Fonte: http://homembit.com - Jomar Silva
Deixa eu ir ali... tem um monte de código VBA me esperando em algumas aplicações Excel. Blarg!
Errata (20/10/2008):
Segundo um leitor de altíssimo nível do nosso humilde blog, se um dia ele autorizar revelo quem se trata, a MS não tem sede no "Vale do Silício", a famosa região da California. Sua sede fica em Redmond, adoro a pronúncia dessa palavra, localizada perto de Seatle, maior cidade de Washigton, noroeste dos EUA.
No entanto, lendo a respeito de discussões como a "guerra dos padrões", veja links abaixo, me fez sentir profundamente indignado com
Dê uma olhada nos links, são sites de pessoas sérias e bastante competentes. De forma alguma deixem de assistir o vídeo na íntegra que dai compreenderá toda a história. Duvido que não fique indignado também.
Links:
ODF
Office Open XML
http://homembit.com
http://homembit.com/2008/08/padroes-abertos-na-comunicacao-em-rede-odf-e-openxml.html
http://homembit.com/2008/08/openxml-fim-da-historia-apelos-recusados.html
Este vídeo esta no link acima, mas pra você economizar alguns cliques coloquei aqui:
Fonte: http://homembit.com - Jomar Silva
Deixa eu ir ali... tem um monte de código VBA me esperando em algumas aplicações Excel. Blarg!
Errata (20/10/2008):
Segundo um leitor de altíssimo nível do nosso humilde blog, se um dia ele autorizar revelo quem se trata, a MS não tem sede no "Vale do Silício", a famosa região da California. Sua sede fica em Redmond, adoro a pronúncia dessa palavra, localizada perto de Seatle, maior cidade de Washigton, noroeste dos EUA.
quinta-feira, 14 de agosto de 2008
VBA - Visual Basic for Application
Nos últimos tempos tenho estado envolvido com o desenvolvimento de aplicações utilizando VBA no Excel 2003.
VBA permite a construção de rotinas (algorítmos, chamado então de Macros) que facilita o manuseio de dados, incremento de recursos gráficos, validações de entradas de dados do usuario, etc. Além de tudo é hiper divertido programar com VBA
Por exemplo, tem um caso que com um clique em um botão conectei no banco de dados Sql Server do ERP da empresa, listei um conjunto de informações, gravei em uma sheet do excel e na sequencia, ainda com puro VBA, montei dinamicamente um Pivot Tabel, tudo acontecendo assim de forma dinamica e rápida na frente do usuário como mágica. É realmente o Excel em um nível mais elevado, coisa que só é possível utilizando VBA.
De forma simplista VBA é o Visual Basic mais limitado em funções e a geração de executáveis, alias o resultado do desenvolvimento VBA são funções (macros) que não existem fora do contexto Micosoft Office (Excel, Word, Power Point, Access, Outlook) , enquanto que o Visual Basic gera arquivos .exe ou até .dll.
Bom, minha idéia com esse post é apenas uma introdução rápida de fato, to preparando outros com exemplos mais práticos voltado pro Excel onde botaremos a mão na massa e mostrarei como se constroi interessante aplicação VBA.
Links:
VBA - Microsoft
VBA - Wikipedia
Tutorial do Julio Battisti usando VBA com Access
VBA permite a construção de rotinas (algorítmos, chamado então de Macros) que facilita o manuseio de dados, incremento de recursos gráficos, validações de entradas de dados do usuario, etc. Além de tudo é hiper divertido programar com VBA
Por exemplo, tem um caso que com um clique em um botão conectei no banco de dados Sql Server do ERP da empresa, listei um conjunto de informações, gravei em uma sheet do excel e na sequencia, ainda com puro VBA, montei dinamicamente um Pivot Tabel, tudo acontecendo assim de forma dinamica e rápida na frente do usuário como mágica. É realmente o Excel em um nível mais elevado, coisa que só é possível utilizando VBA.
De forma simplista VBA é o Visual Basic mais limitado em funções e a geração de executáveis, alias o resultado do desenvolvimento VBA são funções (macros) que não existem fora do contexto Micosoft Office (Excel, Word, Power Point, Access, Outlook) , enquanto que o Visual Basic gera arquivos .exe ou até .dll.
Bom, minha idéia com esse post é apenas uma introdução rápida de fato, to preparando outros com exemplos mais práticos voltado pro Excel onde botaremos a mão na massa e mostrarei como se constroi interessante aplicação VBA.
Links:
VBA - Microsoft
VBA - Wikipedia
Tutorial do Julio Battisti usando VBA com Access
quinta-feira, 10 de julho de 2008
Favoritos SCWCD
Segue alguns links para quem esta interessado na obtenção da certificação Web Component da SUN:
- Objetivos da Prova
- Servlet Specifications
- JavaRanch SCWCD Links
- Simulados 1 - Super Lista
- Simulados 2 - j2ee certificate
- Simulados 3 - Ethuware
- Simulados 4 - Whizlabs
- Javaprepare
- del.icio.us-rafael.nunes-SCWCD
- Javacamp.org
- web.xml_Detalhado
- Mundo das taglibs

domingo, 20 de abril de 2008
Favoritos UML
Tava dando uma geral nos meus favoritos e vi que tinha uma boa lista de sites referentes a UML, então os postarei aqui para que façam bom proveito.
Antes gostaria de tratar a sobre uma discursão que tive com colegas a respeito de atores, obviamente que não são os do teatro. Percebi que o pessoal tinha um pouquinho de dúvida do que pode ou não pode ser ator em um use case.
Bom, na literatura especializada se faz menção a apenas três possíveis candidatos a atores:
Esse último causa estranheza por não ser muito comum, no entanto um sensor de colisão por exemplo, pode perfeitamente fazer interface com um sistema complexo de telemetria ou algo do tipo que em contendo determinado valor pode disparar reativamente uma enormidade de outras tarefas.
Veja na figura abaixo o exemplo de um carro e a quantidade de sensores enviando dados para a unidade de processamento central:

Fonte: M.Shimizu
Então vamos a lista de favoritos:
UML Quick Reference Card Certificação UML 2.0 OMG - Episódio 1 Como se preparar (Javaranch) UML Quick Reference Free Computer Books Especificação UML Stereotype (Wikipedia) Referências de Estereótipos Stereotype by Stephen R. Palmer Um tutorial ai OMG Available Specification UML 2 Certification Guide... Uml Guia do Usuário Classificadores - Wikipedia UML 2 in a Nutshell Espaço de Nomes - Wikipedia (Traduçãozinha fraca essa, viu.)
Antes gostaria de tratar a sobre uma discursão que tive com colegas a respeito de atores, obviamente que não são os do teatro. Percebi que o pessoal tinha um pouquinho de dúvida do que pode ou não pode ser ator em um use case.
Bom, na literatura especializada se faz menção a apenas três possíveis candidatos a atores:
- Pessoas;
- Outros Sistemas;
- Sensores.
Esse último causa estranheza por não ser muito comum, no entanto um sensor de colisão por exemplo, pode perfeitamente fazer interface com um sistema complexo de telemetria ou algo do tipo que em contendo determinado valor pode disparar reativamente uma enormidade de outras tarefas.
Veja na figura abaixo o exemplo de um carro e a quantidade de sensores enviando dados para a unidade de processamento central:
Fonte: M.Shimizu
Então vamos a lista de favoritos:
terça-feira, 8 de abril de 2008
Que o mundo seja dos espertos
Tem dia que certos acontecimentos parecem ter sido providencialmente planejados pra nos fazer refletir sobre a natureza humana, sobre como tem pessoas que não poupam nenhuma energia para levar vantagem em tudo...
Foi por causa disso que me lembrei de um pensamento, o qual dizem pertencer a Indira Ghandi:
"Há dois tipos de pessoas: As que fazem as coisas, e as que dizem que
fizeram as coisas. Tente ficar no primeiro tipo. Há menos competição".
É isso, desculpem o desabafo, é que eu queria alerta-los que as vezes de tanto conviver com máquinas e sistemas tem gente que acaba ficando tão frias e sem sentimentos quantos os seus Windows, suas IDE´s, seus Pentium´s...
Foi por causa disso que me lembrei de um pensamento, o qual dizem pertencer a Indira Ghandi:

fizeram as coisas. Tente ficar no primeiro tipo. Há menos competição".
É isso, desculpem o desabafo, é que eu queria alerta-los que as vezes de tanto conviver com máquinas e sistemas tem gente que acaba ficando tão frias e sem sentimentos quantos os seus Windows, suas IDE´s, seus Pentium´s...
terça-feira, 1 de abril de 2008
Certificação UML 2 OMG - Sucesso
Deu tudo certo na prova que fiz hoje de manhã.
Como não poderia deixar de ser, essa é mais uma daquelas provas de TI que se tem que estudar e realmente entender o assunto, pois na hora da contagem regressiva do reloginho, quando se diz valendo, quanto mais souber, quanto mais seguro, menos se enrola com todo aquele linguajar peculiar da prova.
Tudo que li sobre UML foi muito útil, mas eu poderia ter lido algo com uma abordagem mais direcionada, algo como UML 2 Certification Guide.
É aquela velha questão: é sempre melhor concentrar nossos esforços no que realmente é necessário para se atingir o objetivo, como bem sabemos o objetivo é passar na prova, então não é uma boa ficar dedicando muito estudo com definições muito extensas de técnicas de como se levantar requisitos, ou de como fazer uma boa entrevista o cliente, isso de forma alguma cai na prova, a menos que se queira aprofundar mais do que se pede em uma prova UML.
Tem uma coisa que me chamou bastante a atenção e levei um bom tempo pra compreender, tem questões a respeito de digramas de sequencia, sobre troca mensagens, que diz que levando em consideração uma mensagem como sendo y, o envio dessa mensagem como sendo !y e o seu recebimento como sendo ?y, julgue o diagrama e coisa e tal... é por isso que volto a frisar devia ter lido o livro UML 2 Certification Guide, pois em nenhum outro lugar li a respeito da troca de mensagens que mostra o assunto por esse angulo.
Mas lá pela 4º questão tratando do mesmo assunto e muitos minutos perdidos pensando, comecei a usar aquela velha técnica que tanto nos familiarizamos nas provas de certificação Java, por exemplo, quando perguntam se tal trecho de código roda ou não roda e dai se é obrigado a compilar o código mentalmente ali mesmo. Nesse caso comecei a ver o momento em que a mensagem é enviada por um objeto, sua possível tragetória no tempo e, finalmente, seu recebimento pelo outro objeto. Ai as questões acabam ficando mais simples.
Preciso parar por aqui, melhor não me empolgar e não falar mais que devo.
Um abraço a todos
Como não poderia deixar de ser, essa é mais uma daquelas provas de TI que se tem que estudar e realmente entender o assunto, pois na hora da contagem regressiva do reloginho, quando se diz valendo, quanto mais souber, quanto mais seguro, menos se enrola com todo aquele linguajar peculiar da prova.
Tudo que li sobre UML foi muito útil, mas eu poderia ter lido algo com uma abordagem mais direcionada, algo como UML 2 Certification Guide.
É aquela velha questão: é sempre melhor concentrar nossos esforços no que realmente é necessário para se atingir o objetivo, como bem sabemos o objetivo é passar na prova, então não é uma boa ficar dedicando muito estudo com definições muito extensas de técnicas de como se levantar requisitos, ou de como fazer uma boa entrevista o cliente, isso de forma alguma cai na prova, a menos que se queira aprofundar mais do que se pede em uma prova UML.
Tem uma coisa que me chamou bastante a atenção e levei um bom tempo pra compreender, tem questões a respeito de digramas de sequencia, sobre troca mensagens, que diz que levando em consideração uma mensagem como sendo y, o envio dessa mensagem como sendo !y e o seu recebimento como sendo ?y, julgue o diagrama e coisa e tal... é por isso que volto a frisar devia ter lido o livro UML 2 Certification Guide, pois em nenhum outro lugar li a respeito da troca de mensagens que mostra o assunto por esse angulo.
Mas lá pela 4º questão tratando do mesmo assunto e muitos minutos perdidos pensando, comecei a usar aquela velha técnica que tanto nos familiarizamos nas provas de certificação Java, por exemplo, quando perguntam se tal trecho de código roda ou não roda e dai se é obrigado a compilar o código mentalmente ali mesmo. Nesse caso comecei a ver o momento em que a mensagem é enviada por um objeto, sua possível tragetória no tempo e, finalmente, seu recebimento pelo outro objeto. Ai as questões acabam ficando mais simples.
Preciso parar por aqui, melhor não me empolgar e não falar mais que devo.
Um abraço a todos
domingo, 30 de março de 2008
UML - Estereótipos
Na UML tem um tópico chamado mecanismos, entenda como sendo tipos de elementos que aparecem eventualmente para agregar mais informações aos diversos diagramas utilizados em uma modelagem UML ou para explicitar tecnicas como reuso, quando ocorre um extend, por exemplo.
Os mecanismos são divididos em quarto partes:
Especificações
Adornos
Divisões comuns
Extensibilidade
Vamos tratar aqui de Extensibilidade, que por sua vez é dividida em:
Atribuição de valores
Restrições
Estereótipos
Como diz o título do post, trataremos específicamente de Estereótipos.
"Estereótipo amplia o vocabulário da UML, permitindo a criação de novos tipos de blocos de construção, derivados de outros já existentes, mas específico a determinado problema."
Pra entender melhor, já reparou que quando uma classe inclui ou extende uma outra, as setas para os dois relacionamentos são idênticas? Esse é um bom exemplo para demonstrar que ao utilizar um estereótipo extend, você está querendo dizer que o elemento cliente possui todas as funcionalidades do fornecedor, ou seja, ele acaba de fato se tornando como o próprio fornecedor.
Fica claro no exemplo anterior que não se trata de um include ou outro qualquer, pois foi dito exatamente do que se trata a relação. Além disso palavras reservadas extend, include, use, etc., possui todo um conceito que é de conhecimento comun, tanto que ao utiliza-la qualquer pessoa que analisar o diagrama saberá de imediato do que se trata esse e em que implica.
Observe a figura, sem os estereótipos seria muito difícil saber do que se trata e como se comportaria cada uma das dependências:

Nunca se esqueça que estereótipo não foi feito pro plural, ou seja, nunca se usa extends, includes, uses...
Você vai acabar por perceber que utilizar um estereótipo não é somente recurso que rotula o relacionamento visualmente, ele vai muito além disso e aplica também uma série de regras nele contidas que pode dar todo um novo sentido para os elementos envolvidos.
Acessa a especificação para UML da OMG aqui, e dê uma olhada na página 693, cujo título é Annex C: Standard Stereotypes, lá podemos constatar que a UML por padrão vem com um razoável conjunto de estereótipos pré definidos para os mais diverros fins.
Links:
Stereotype (Wikipedia)
Referências de Estereótipos
Stereotype by Stephen R. Palmer
Um tutorial ai
OMG Available Specification
Os mecanismos são divididos em quarto partes:
Vamos tratar aqui de Extensibilidade, que por sua vez é dividida em:
Como diz o título do post, trataremos específicamente de Estereótipos.
"Estereótipo amplia o vocabulário da UML, permitindo a criação de novos tipos de blocos de construção, derivados de outros já existentes, mas específico a determinado problema."
Pra entender melhor, já reparou que quando uma classe inclui ou extende uma outra, as setas para os dois relacionamentos são idênticas? Esse é um bom exemplo para demonstrar que ao utilizar um estereótipo extend, você está querendo dizer que o elemento cliente possui todas as funcionalidades do fornecedor, ou seja, ele acaba de fato se tornando como o próprio fornecedor.
Fica claro no exemplo anterior que não se trata de um include ou outro qualquer, pois foi dito exatamente do que se trata a relação. Além disso palavras reservadas extend, include, use, etc., possui todo um conceito que é de conhecimento comun, tanto que ao utiliza-la qualquer pessoa que analisar o diagrama saberá de imediato do que se trata esse e em que implica.
Observe a figura, sem os estereótipos seria muito difícil saber do que se trata e como se comportaria cada uma das dependências:

Nunca se esqueça que estereótipo não foi feito pro plural, ou seja, nunca se usa extends, includes, uses...
Você vai acabar por perceber que utilizar um estereótipo não é somente recurso que rotula o relacionamento visualmente, ele vai muito além disso e aplica também uma série de regras nele contidas que pode dar todo um novo sentido para os elementos envolvidos.
Acessa a especificação para UML da OMG aqui, e dê uma olhada na página 693, cujo título é Annex C: Standard Stereotypes, lá podemos constatar que a UML por padrão vem com um razoável conjunto de estereótipos pré definidos para os mais diverros fins.
Links:
Stereotype (Wikipedia)
Referências de Estereótipos
Stereotype by Stephen R. Palmer
Um tutorial ai
OMG Available Specification
sábado, 29 de março de 2008
Jornais do mundo inteiro
Aqui um interessante aplicativo em flash de uma instituição chamada Newseum que mostra jornais impresso do mundo inteiro em tempo real.
Se não tiver funcionando corretamente, clica aqui
segunda-feira, 24 de março de 2008
Certificação UML 2 OMG - Quanto Custa
Este post parece fora de propósito, no entanto, por incrível que pareça, tem muita gente que realmente quer saber quanto se precisa gastar para obter a certificação UML.
Então vamos ao que interessa, vou listar mais adiante os gasto que este que vos fala teve até o momento:
Voucher........................... R$ 344,00 - $ 200.00
UML Guia do Usuário..... R$ 99,00
UML 2 Rápido e Prático.. R$ 49.90
Total ................................... R$ 492,90
Contabiliza ai também algumas centenas de horas de estudo, feriados e fins de semana enclausurado em bibliotecas, sim feriados, as vezes a da UNB funciona nos feriados.
Se estiver interessado em um estudo mais direcionado pra prova, então então soma mais esse livro também:
UML 2 CERTIFICATION GUIDE FUNDAMENTAL & INTERMEDIATE EXAMS..... R$ 110,65
Isso faria com que nossas fossem para R$ 603,55
Não se esqueça que se trabalha em uma boa empresa de TI, passando na prova recebe o valor do voucher de volta. Então não perca tempo, maos a obra e bons estudos.
goto ;)
Então vamos ao que interessa, vou listar mais adiante os gasto que este que vos fala teve até o momento:
Voucher........................... R$ 344,00 - $ 200.00
UML Guia do Usuário..... R$ 99,00
UML 2 Rápido e Prático.. R$ 49.90
Total ................................... R$ 492,90
Contabiliza ai também algumas centenas de horas de estudo, feriados e fins de semana enclausurado em bibliotecas, sim feriados, as vezes a da UNB funciona nos feriados.
Se estiver interessado em um estudo mais direcionado pra prova, então então soma mais esse livro também:
UML 2 CERTIFICATION GUIDE FUNDAMENTAL & INTERMEDIATE EXAMS..... R$ 110,65
Isso faria com que nossas fossem para R$ 603,55
Não se esqueça que se trabalha em uma boa empresa de TI, passando na prova recebe o valor do voucher de volta. Então não perca tempo, maos a obra e bons estudos.
goto ;)
domingo, 23 de março de 2008
Classificadores
Definição
Na UML se fala muito em classificadores ou classifier, em inglês. A princípio a gente até pensa se tratar de um novo conceito, de algum novo componente para o qual ainda não fomos apresentados. Se esse for o seu caso, continue lendo, pois ele lhe será apresentado em detalhes.
Classificador é um mecanismo que descreve características estruturais e comportamentais na UML, transcrevendo aqui com exatamente o que diz o livro Uml Guia do Usuário. Mecanismos esses que são compostos por classes, interfaces, tipos de dados, sinais, nós, casos de uso e susbsistemas.
Pra continuar, tenha em mente que praticamente tudo na modelagem de um sistema utilizando UML é um objeto e que mais cedo o mais tarde acaba sendo instanciado. Eu disse praticamente tudo porque somente dois elementos nunca terão instancias, são eles: relacionamentos de generalizações e os pacotes.
Então a melhor definição para classificadores é a de que qualquer elemento que possa ser instanciado é um classificador.
Imagens são sempre melhores para exemplificar, logo abaixo algumas que demonstram classificadores.








Como visto, classificador é quase todos os componentes que já utilizamos normalmente no dia a dia em modelagens UML. O principal classificador, o mais falado, são as classes.
Visibilidade
A visibilidade de um classificador serve para dizer quais são os seu limites de exposição em relação a outros elementos internos ou externos a aplicação. Sua visibilidade pode ser:
• public (+)
Visível a qualquer outro classificado
• protected (#)
Visível a qualquer descendente do classificador
• private (-)
Para uso somente o próprio classificador
• package (~)
Para somente classificadores do mesmo pacote
Escopo
Não poderia deixar de falar do escopo, como já deve estar apto a compreender o que é um classificador, deve saber também que eles possuem escopo, isto é, tem escopo de instancia e de classificador ou classe.
1 – Escopo de instancia – pertence a toda instancia do objeto
2 – Escopo de Classificador – Também chamado de escopo de classe ou ainda de estático.
A imagem abaixo mostra a grafia dos dois tipo de escopo em uma classe.

Bibliografia
Uml Guia do Usuário
Wikipedia
Vamos finalizar por aqui, não que o assunto tenha se esgotado, muito longe disso, é só para não deixar o bate papo muito cansativo.
goto ;)
Na UML se fala muito em classificadores ou classifier, em inglês. A princípio a gente até pensa se tratar de um novo conceito, de algum novo componente para o qual ainda não fomos apresentados. Se esse for o seu caso, continue lendo, pois ele lhe será apresentado em detalhes.
Classificador é um mecanismo que descreve características estruturais e comportamentais na UML, transcrevendo aqui com exatamente o que diz o livro Uml Guia do Usuário. Mecanismos esses que são compostos por classes, interfaces, tipos de dados, sinais, nós, casos de uso e susbsistemas.
Pra continuar, tenha em mente que praticamente tudo na modelagem de um sistema utilizando UML é um objeto e que mais cedo o mais tarde acaba sendo instanciado. Eu disse praticamente tudo porque somente dois elementos nunca terão instancias, são eles: relacionamentos de generalizações e os pacotes.
Então a melhor definição para classificadores é a de que qualquer elemento que possa ser instanciado é um classificador.
Imagens são sempre melhores para exemplificar, logo abaixo algumas que demonstram classificadores.








Como visto, classificador é quase todos os componentes que já utilizamos normalmente no dia a dia em modelagens UML. O principal classificador, o mais falado, são as classes.
Visibilidade
A visibilidade de um classificador serve para dizer quais são os seu limites de exposição em relação a outros elementos internos ou externos a aplicação. Sua visibilidade pode ser:
• public (+)
Visível a qualquer outro classificado
• protected (#)
Visível a qualquer descendente do classificador
• private (-)
Para uso somente o próprio classificador
• package (~)
Para somente classificadores do mesmo pacote
Escopo
Não poderia deixar de falar do escopo, como já deve estar apto a compreender o que é um classificador, deve saber também que eles possuem escopo, isto é, tem escopo de instancia e de classificador ou classe.
1 – Escopo de instancia – pertence a toda instancia do objeto
2 – Escopo de Classificador – Também chamado de escopo de classe ou ainda de estático.
A imagem abaixo mostra a grafia dos dois tipo de escopo em uma classe.

Bibliografia
Uml Guia do Usuário
Wikipedia
Vamos finalizar por aqui, não que o assunto tenha se esgotado, muito longe disso, é só para não deixar o bate papo muito cansativo.
goto ;)
domingo, 16 de março de 2008
UML 2 Rápido e Prático
UML 2 Rápido e Prático representa a tradução do livro UML 2 in a Nutshell. O original é bastante útil (em inglês), principalmente por causa dos conceitos resumidos e práticos, de fato. Para quem está se preparando para a certificação UML é ua boa ajuda. Já a versão traduzida tem lá sua utilidade para aqueles que não conseguem estudar com livros no idioma inglês, mas apresenta alguns incovenientes, como veremos a seguir.
Em alguns trechos a leitura do livro traduzido é bem dificil, eu diria até "engarranchada", típica de traduções ao pé da letra. Tem muitas frases que possuem erros grosseiros, como deixar o adjetivo na frente do substantivo, traduzir termos que já são de uso corrente no meio técnico e, portanto não justifica a tradução, etc.
Pra quem consegue entender um pouco de inglês, é sempre melhor a leitura da versão em inglês, pois é rápido e por isso o resumido(Nutshel).
Em alguns trechos a leitura do livro traduzido é bem dificil, eu diria até "engarranchada", típica de traduções ao pé da letra. Tem muitas frases que possuem erros grosseiros, como deixar o adjetivo na frente do substantivo, traduzir termos que já são de uso corrente no meio técnico e, portanto não justifica a tradução, etc.
Pra quem consegue entender um pouco de inglês, é sempre melhor a leitura da versão em inglês, pois é rápido e por isso o resumido(Nutshel).
Certificação UML 2.0 OMG - SD
INTRODUÇÃO
A UML 2.0 se propõe a capturar mais do que somente relacionamentos estruturais entre os objetos. Ela tem a intenção de mostrar também processos e fluxos de eventos.
Com esse propósito existem uma serie de diagramas, os chamados diagramas de interação, que fundamentalmente exibem a comunicação entre os objetos.
Então os diagramas de interação foca em uma mensagem específica e em como essa mensagem vem a se tornar uma funcionalidade no sistema. Logo, esses diagramas se concentram no “COMO”.
Esse post representa as anotações da leitura dos livros UML 2 In Nutshell e UML Guia do Usuário.
INTERAÇÕES
Há diversas formas de se mostrar uma interação, entretanto os diagramas de seqüência são disparados o principal meio. Futuramente mostraremos aqui outros diagramas de interação. O diagrama de seqüencia foca na comunicação entre as linhas da vida
A figura 1, mostra um diagrama de seqüência padrão.

Figura 1
PARTICIPANTES
O diagrama é composto por um grande retângulo com um pentágono na canto superior esquerdo, tendo dentro a palavra reservada sd, que significa sequence diagram, obviamente, seguida do nome da interação. Authenticate User.
A interação é mostrada utilizando um retângulo, chamado linha da vida (lifeline), tem esse nome porque o objeto, ou a instancia do objeto, uma vez que esses dois termos são até considerados sinônimos nesse momento, existem enquanto a linha tracejada seguir na direção vertical de cima para baixo.
O nome dos elementos no retângulo segue o seguinte padrão de nome:
nome_objeto[ seletor ] : nome_classe ref decomposição
Onde:
nome_objeto
Nome da instância envolvida
Em Java seria algo como:
MinhaClasse nomeInstancia = new MinhaClasse();
Seletor
É opcional e está relacionado a identificação de elementos multivalorados, um array, por exemplo. Assim seletor seria a identificação de uma das instancias em particular.
nome_classe
É identificação da classe propriamente, no exemplo dado anteriormente seria MinhaClasse.
decomposição
É opcional também e quando aparece significa que esse digrama faz referencia a um outro diagrama de seqüência do sistema.
Para finalizar um diagrama pode se usar o símbolo stop, mas ele se tornou deprecated quando se envia uma mensagem com um estereótipo <>, o que não é estritamente necessário. Normalmente o que acontece é colocar um grande X no final de uma linha da vida, como mostra a figura 2.

Figura 2
Os diagramas de sequencia podem inclusive exibir variáveis locais para capturar o cmportamento do sistemas com mais fidelidade. Variáveis locais podem retornar valores, informações de loop, ou somente dados que se precisa para o processamente.
MENSAGENS
A comunicação entre as linhas da vida pode se dar de diversas formas: chamando um métodos, enviando um sinal, criando uma instância, destruindo um objeto, etc. Todas essas ações são chamadas de mensagens, como bem sabemos uma mensagem precisa de um remetente e um receptor para ocorrer.
As mensagens podem ser da seguite forma:
Síncronas
Assíncronas
Retorno
Quando a messagem representa a criação de um objeto então é usada a linha potilhada com a seta aberta na ponta, sim, é uma menssagem assíncrona, afinal quando cria um objeto não espera um retorno dizendo que o objeto foi criado. Caso haja argumentos, então a mensagem de criação do objeto pode ser acompanhada de uma palavra reservada create com os argumentos, por exemplo, create(argumento), como mostrado na Figura 1. Quando não houver argumentos, basta o usar estereótipo<>.
Em se tratando de chamadas de métodos normais, é informado o nome dele e os seus parâmetros, quando houver, conforme pode ser visto ainda na figura Figura 1.
Esse papo continua em outros posts.
A UML 2.0 se propõe a capturar mais do que somente relacionamentos estruturais entre os objetos. Ela tem a intenção de mostrar também processos e fluxos de eventos.
Com esse propósito existem uma serie de diagramas, os chamados diagramas de interação, que fundamentalmente exibem a comunicação entre os objetos.
Então os diagramas de interação foca em uma mensagem específica e em como essa mensagem vem a se tornar uma funcionalidade no sistema. Logo, esses diagramas se concentram no “COMO”.
Esse post representa as anotações da leitura dos livros UML 2 In Nutshell e UML Guia do Usuário.
INTERAÇÕES
Há diversas formas de se mostrar uma interação, entretanto os diagramas de seqüência são disparados o principal meio. Futuramente mostraremos aqui outros diagramas de interação. O diagrama de seqüencia foca na comunicação entre as linhas da vida
A figura 1, mostra um diagrama de seqüência padrão.

Figura 1
PARTICIPANTES
O diagrama é composto por um grande retângulo com um pentágono na canto superior esquerdo, tendo dentro a palavra reservada sd, que significa sequence diagram, obviamente, seguida do nome da interação. Authenticate User.
A interação é mostrada utilizando um retângulo, chamado linha da vida (lifeline), tem esse nome porque o objeto, ou a instancia do objeto, uma vez que esses dois termos são até considerados sinônimos nesse momento, existem enquanto a linha tracejada seguir na direção vertical de cima para baixo.
O nome dos elementos no retângulo segue o seguinte padrão de nome:
nome_objeto[ seletor ] : nome_classe ref decomposição
Onde:
nome_objeto
Nome da instância envolvida
Em Java seria algo como:
MinhaClasse nomeInstancia = new MinhaClasse();
Seletor
É opcional e está relacionado a identificação de elementos multivalorados, um array, por exemplo. Assim seletor seria a identificação de uma das instancias em particular.
nome_classe
É identificação da classe propriamente, no exemplo dado anteriormente seria MinhaClasse.
decomposição
É opcional também e quando aparece significa que esse digrama faz referencia a um outro diagrama de seqüência do sistema.
Para finalizar um diagrama pode se usar o símbolo stop, mas ele se tornou deprecated quando se envia uma mensagem com um estereótipo <

Figura 2
Os diagramas de sequencia podem inclusive exibir variáveis locais para capturar o cmportamento do sistemas com mais fidelidade. Variáveis locais podem retornar valores, informações de loop, ou somente dados que se precisa para o processamente.
MENSAGENS
A comunicação entre as linhas da vida pode se dar de diversas formas: chamando um métodos, enviando um sinal, criando uma instância, destruindo um objeto, etc. Todas essas ações são chamadas de mensagens, como bem sabemos uma mensagem precisa de um remetente e um receptor para ocorrer.
As mensagens podem ser da seguite forma:



Quando a messagem representa a criação de um objeto então é usada a linha potilhada com a seta aberta na ponta, sim, é uma menssagem assíncrona, afinal quando cria um objeto não espera um retorno dizendo que o objeto foi criado. Caso haja argumentos, então a mensagem de criação do objeto pode ser acompanhada de uma palavra reservada create com os argumentos, por exemplo, create(argumento), como mostrado na Figura 1. Quando não houver argumentos, basta o usar estereótipo<
Em se tratando de chamadas de métodos normais, é informado o nome dele e os seus parâmetros, quando houver, conforme pode ser visto ainda na figura Figura 1.
Esse papo continua em outros posts.
Assinando Applets
Dependendo do sistema a ser construido, web pode ser a melhor opção, java a linguagem escolhida e Applet a melhor estratégia. Até ai tudo muito que bem.
No entanto, no decorrer de um projeto desses, quando já se está naquele ponto que não tem mais volta, podemos descobrir que o nosso conhecido "sandbox" do Java funciona muito bem com Applet e que definitivamente, se ela não for assinada, não rola de acessar nada do sistema operacional. Ai bate o desepero, pois as vezes é imperativo que se pegue alguma informação do sistema operacional, como usuário logado, algum arquivo de configuração, etc.
Então depois de um bocado de trabalho a gente acaba vendo que a única saida é assinar digitalmente a famigerada Applet. Para fazer isso, proceda basicamente da segunte forma seguinte:
Em uma tela DOS e dentro da pasta do seu jar com a Applet que queira assinar prossiga com os comandos Java abaixo, os quais são nada mais que aplicativos que vem junto com JDK, logo você tem que ter o JDK devidamente configurado.
1º - Produzindo a requisição para um certificado digital, aqui será solicitado uma série de informações a seu respeito que irão compor a requisiçãoa. Um arquivo com o alias AppDownload é gerado:
C:\pastaDoProjeto>keytool -genkey -keyalg rsa -alias AppDownload
Enter keystore password: *********
What is your first and last name?
[Unknown]: Antonio Beltrano
What is the name of your organizational unit?
[Unknown]: Java Software
What is the name of your organization?
[Unknown]: Organization SA
What is the name of your City or Locality?
[Unknown]: Brasilia
What is the name of your State or Province?
[Unknown]: DF
What is the two-letter country code for this unit?
[Unknown]: BR
Is L=Cupertino, ST=CA, C=US> correct?
[no]: yes
Enter key password for
(RETURN if same as keystore password): *********
2º - Produzir o texto criptografado que passaremos para a certificadora, a qual irá gerar o certificado propriamente dito, a opção > c:\app.txt grava o retorno do comando em um txt chamado app.txt na raiz do c:\, conforme mostrado:
C:\pastaDoProjeto>keytool -certreq -alias AppDownload > c:\app.txt
Enter keystore password: *********
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIBtjCCAR8CAQAwdjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRIwE
AYDVQQHEwlDdXBlcnRpbm8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbX
MxFjAUBgNVBAsTDUphdmEgU29mdHdhcmUxEzARBgNVBAMTClN0YW5sZXk
gSG8wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALTgU8PovA4y59eb
oPjY65BwCSc/zPqtOZKJlaW4WP+UhmebE+T2Mho7P5zXjGf7elo3tV5uI
3vzgGfnhgpf73EoMow8EJhly4w/YsXKqeJEqqvNogzAD+qUv7Ld6dLOv0
CO5qvpmBAO6mfaI1XAgx/4xU/6009jVQe0TgIoocB5AgMBAAGgADANBgk
qhkiG9w0BAQQFAAOBgQAWmLrkifKiUYtd4ykhBtPWSwW/IKkgyfIuNMML
dF1DH8neSnXf3ZLI32f2yXvs7u3/xn6chnTXh4HYCJoGYOAbB3WNbAoQR
i6u6TLLOvgv9pMNUo6v1qB0xly1faizjimVYBwLhOenkA3Bw7S8UIVfdv
84cO9dFUGcr/Pfrl3GtQ==
-----END NEW CERTIFICATE REQUEST-----
3º - Acesse de alguma forma o site de uma certificadora local (da sua empresa ou caseira mesmo) ou uma oficial (Very Sign, CA, etc) que permite a produção do certificado. Em algum local do site dessa certificadora terá uma espécie de textarea para você colar o texto maluco gerado acima, o melhor é copiar do arquivo app.txt que geramos no c:\, lembra?? Pois esse na tela do DOS as vezes é truncado e perdemos informações fundamentais:
http://siteDaCertificadora.com/certrqxt.asp
4º - De alguma forma, seguindo os Next e Ok´s no passo 3 será produzido um arquivo .cer ou até .p7b, faça o download desse arquivo para a pasta do seu projeto. Vamos para o passo seguinte. Esse é o passo chamado de importação das chaves, proceda com os seguintes comando ainda no DOS:
C:\pastaDoProjeto>keytool -import -alias AppDownload -file chainDERcertnew.p7b
5º - Finalmente, se tudo foi feito corretamente o próximo passo é assinar o arquivo jar de fato, não se esqueça que AppDownload é o alias que escolhemos para o certifcado lá no passo 1:
C:\pastaDoProjeto>jarsigner DownloadApplet.jar AppDownload
Se houver algum interesse posso produzir algumas capturas de telas detalhando melhor o processo.
Links relacionados:
Tabalho de um cara chamado Paulo César Herrmann Wanner
Site da SUN Microsystems a respeito de segrança
Numa Boa
Um abraço a todos,
No entanto, no decorrer de um projeto desses, quando já se está naquele ponto que não tem mais volta, podemos descobrir que o nosso conhecido "sandbox" do Java funciona muito bem com Applet e que definitivamente, se ela não for assinada, não rola de acessar nada do sistema operacional. Ai bate o desepero, pois as vezes é imperativo que se pegue alguma informação do sistema operacional, como usuário logado, algum arquivo de configuração, etc.
Então depois de um bocado de trabalho a gente acaba vendo que a única saida é assinar digitalmente a famigerada Applet. Para fazer isso, proceda basicamente da segunte forma seguinte:
Em uma tela DOS e dentro da pasta do seu jar com a Applet que queira assinar prossiga com os comandos Java abaixo, os quais são nada mais que aplicativos que vem junto com JDK, logo você tem que ter o JDK devidamente configurado.
1º - Produzindo a requisição para um certificado digital, aqui será solicitado uma série de informações a seu respeito que irão compor a requisiçãoa. Um arquivo com o alias AppDownload é gerado:
C:\pastaDoProjeto>keytool -genkey -keyalg rsa -alias AppDownload
Enter keystore password: *********
What is your first and last name?
[Unknown]: Antonio Beltrano
What is the name of your organizational unit?
[Unknown]: Java Software
What is the name of your organization?
[Unknown]: Organization SA
What is the name of your City or Locality?
[Unknown]: Brasilia
What is the name of your State or Province?
[Unknown]: DF
What is the two-letter country code for this unit?
[Unknown]: BR
Is
[no]: yes
Enter key password for
(RETURN if same as keystore password):
2º - Produzir o texto criptografado que passaremos para a certificadora, a qual irá gerar o certificado propriamente dito, a opção > c:\app.txt grava o retorno do comando em um txt chamado app.txt na raiz do c:\, conforme mostrado:
C:\pastaDoProjeto>keytool -certreq -alias AppDownload > c:\app.txt
Enter keystore password: *********
-----BEGIN NEW CERTIFICATE REQUEST-----
MIIBtjCCAR8CAQAwdjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRIwE
AYDVQQHEwlDdXBlcnRpbm8xGTAXBgNVBAoTEFN1biBNaWNyb3N5c3RlbX
MxFjAUBgNVBAsTDUphdmEgU29mdHdhcmUxEzARBgNVBAMTClN0YW5sZXk
gSG8wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALTgU8PovA4y59eb
oPjY65BwCSc/zPqtOZKJlaW4WP+UhmebE+T2Mho7P5zXjGf7elo3tV5uI
3vzgGfnhgpf73EoMow8EJhly4w/YsXKqeJEqqvNogzAD+qUv7Ld6dLOv0
CO5qvpmBAO6mfaI1XAgx/4xU/6009jVQe0TgIoocB5AgMBAAGgADANBgk
qhkiG9w0BAQQFAAOBgQAWmLrkifKiUYtd4ykhBtPWSwW/IKkgyfIuNMML
dF1DH8neSnXf3ZLI32f2yXvs7u3/xn6chnTXh4HYCJoGYOAbB3WNbAoQR
i6u6TLLOvgv9pMNUo6v1qB0xly1faizjimVYBwLhOenkA3Bw7S8UIVfdv
84cO9dFUGcr/Pfrl3GtQ==
-----END NEW CERTIFICATE REQUEST-----
3º - Acesse de alguma forma o site de uma certificadora local (da sua empresa ou caseira mesmo) ou uma oficial (Very Sign, CA, etc) que permite a produção do certificado. Em algum local do site dessa certificadora terá uma espécie de textarea para você colar o texto maluco gerado acima, o melhor é copiar do arquivo app.txt que geramos no c:\, lembra?? Pois esse na tela do DOS as vezes é truncado e perdemos informações fundamentais:
http://siteDaCertificadora.com/certrqxt.asp
4º - De alguma forma, seguindo os Next e Ok´s no passo 3 será produzido um arquivo .cer ou até .p7b, faça o download desse arquivo para a pasta do seu projeto. Vamos para o passo seguinte. Esse é o passo chamado de importação das chaves, proceda com os seguintes comando ainda no DOS:
C:\pastaDoProjeto>keytool -import -alias AppDownload -file chainDERcertnew.p7b
5º - Finalmente, se tudo foi feito corretamente o próximo passo é assinar o arquivo jar de fato, não se esqueça que AppDownload é o alias que escolhemos para o certifcado lá no passo 1:
C:\pastaDoProjeto>jarsigner DownloadApplet.jar AppDownload
Se houver algum interesse posso produzir algumas capturas de telas detalhando melhor o processo.
Links relacionados:
Tabalho de um cara chamado Paulo César Herrmann Wanner
Site da SUN Microsystems a respeito de segrança
Numa Boa
Um abraço a todos,
Namespace
Estudando para à prova de UML me deparei com uma questão que falava a respeito de nomes de elementos em um namespace.
Bom, a princípio imaginei se tratar de um assunto complicado em se tratando de UML e coisa e tal, mas com um pouco de estudo descobri que prevalece a definição clássica e descomplicada para o termo namespace, a qual disserto em poucas palavras sem, no entanto, prejudicar o entendimento.
Namespace é como as pastas do nosso computador, ou seja, se temos um arquivo chamado teste.txt, no disco C e dentro da pasta augusto, então seu namespace seria algo como c:\augusto\teste.txt. Dessa forma podemos complicar um pouquinho e dizer que uma cópia desse arquivo dentro da pasta denominada carla, portanto, namespace c:\carla\teste.txt, pode ser tratado como sendo coisas absolutamente distintas e podem ser manipuladas sem acarretar qualquer conflito.
Outro exemplo interessante é quando separamos nossas classes Java ou C em pacotes. Há casos em que podemos ter em um mesmo sistema situações assim: br.com.augusto.MinhaClasse e br.com.carla.MinhaClasse, são classes diferentes do ponto de vista do nome completo, mesmo que sejam uma cópia da outra, pois seus namespaces não são iguais. Por isso que quando usamos o autocomplete da IDE para importar MinhaClasse será mostrado duas opções com o mesmo nome, tem que ficar atento e reparar no "nome e sobrenome".
Poderiamos alongar essa conversa para definições XML e coisas do tipo, mas é desnecessário, pois em todas as situações a ideia é sempre a mesma.
Links:
Namespace from Wikipedia
Espaço de Nomes do Wikipedia (Traduçãozinha fraca essa, viu.)
Bom, a princípio imaginei se tratar de um assunto complicado em se tratando de UML e coisa e tal, mas com um pouco de estudo descobri que prevalece a definição clássica e descomplicada para o termo namespace, a qual disserto em poucas palavras sem, no entanto, prejudicar o entendimento.
Namespace é como as pastas do nosso computador, ou seja, se temos um arquivo chamado teste.txt, no disco C e dentro da pasta augusto, então seu namespace seria algo como c:\augusto\teste.txt. Dessa forma podemos complicar um pouquinho e dizer que uma cópia desse arquivo dentro da pasta denominada carla, portanto, namespace c:\carla\teste.txt, pode ser tratado como sendo coisas absolutamente distintas e podem ser manipuladas sem acarretar qualquer conflito.
Outro exemplo interessante é quando separamos nossas classes Java ou C em pacotes. Há casos em que podemos ter em um mesmo sistema situações assim: br.com.augusto.MinhaClasse e br.com.carla.MinhaClasse, são classes diferentes do ponto de vista do nome completo, mesmo que sejam uma cópia da outra, pois seus namespaces não são iguais. Por isso que quando usamos o autocomplete da IDE para importar MinhaClasse será mostrado duas opções com o mesmo nome, tem que ficar atento e reparar no "nome e sobrenome".
Poderiamos alongar essa conversa para definições XML e coisas do tipo, mas é desnecessário, pois em todas as situações a ideia é sempre a mesma.
Links:
Namespace from Wikipedia
Espaço de Nomes do Wikipedia (Traduçãozinha fraca essa, viu.)
Certificação UML 2.0 OMG - Episódio 1
A prova de UML da OMG é dividida em 3 partes, Jack adoraria isso:
Fundamental:
Número do Exame:................... OMO-100
Duração:........................... 90 minutos (80 questões)
Escore Mínimo:..................... 46 (57%)
Preço:............................. US$200 (ou equivalente na moeda local)
Pré-Requisitos:.................... Nenhum
Intermediate:
Número do Exame:................... OMO-200
Duração:........................... 90 minutos (70 questões)
Escore Mínimo:..................... 31 (44%)
Preço:............................. US$200 (ou equivalente na moeda local)
Pré-Requisitos:.................... Aprovado na OMO-100
Advanced:
Número do Exame:................... OMO-300
Duração:........................... 90 minutos (58 questões)
Escore Mínimo:..................... 29 (50%)
Preço:............................. US$200 (ou equivalente na moeda local)
Pré-Requisitos:.................... Aprovado na OMO-100 e OMO-200
Para quem tiver interessado pode comprar o voucher e marcar a prova pelo site da Prometric
Links interessantes:
UML 2 Certification Guide Fundamental and Intermediate (Livraria Cultura)
UML 2 Certification Guide Fundamental and Intermediate (Amazon)
Java Ranch
Be continue...
Um abraço.
Fundamental:
Número do Exame:................... OMO-100
Duração:........................... 90 minutos (80 questões)
Escore Mínimo:..................... 46 (57%)
Preço:............................. US$200 (ou equivalente na moeda local)
Pré-Requisitos:.................... Nenhum
Intermediate:
Número do Exame:................... OMO-200
Duração:........................... 90 minutos (70 questões)
Escore Mínimo:..................... 31 (44%)
Preço:............................. US$200 (ou equivalente na moeda local)
Pré-Requisitos:.................... Aprovado na OMO-100
Advanced:
Número do Exame:................... OMO-300
Duração:........................... 90 minutos (58 questões)
Escore Mínimo:..................... 29 (50%)
Preço:............................. US$200 (ou equivalente na moeda local)
Pré-Requisitos:.................... Aprovado na OMO-100 e OMO-200
Para quem tiver interessado pode comprar o voucher e marcar a prova pelo site da Prometric
Links interessantes:
UML 2 Certification Guide Fundamental and Intermediate (Livraria Cultura)
UML 2 Certification Guide Fundamental and Intermediate (Amazon)
Java Ranch
Be continue...
Um abraço.
sexta-feira, 14 de março de 2008
begin
Introdução
Esse mundo louco de desenvolvimento de sistemas tem o poder de deixar a gente meio sem noção da realidade, de deixar a gente sempre leigo em algum assunto. Área mais "disgramada" essa.
Sempre que resolvo pesquisar a fundo um assunto no mundo da computação, fico estranhamente mais ignorante.
Proposta do Blog
Bom, então com o propósito de aprender constantemente esse blog foi criado. A intenção é fazer no mínimo um post por dia, mas será bem difícil, dado as outras tarefas que temos.
Espero que gostem, espero que o aprendizado seja mútuo.
No começo falaremos bastante sobre UML, pois estamos envolvidos no projeto pessoal de obtenção da certificação UML da OMG para breve. Futuramente trataremos dos mais variados assuntos relacionados a TI.
Contato
Se quiser entrar em contato, pode mandar um e-mail para contatoaugusto@gmail.com ou adicionar no MSN: prohgy@hotmail.com
Seria uma grande alegria receber propostas de post ou dúvidas que pudessem ser tiradas e então compartilhadas com todos que aqui vierem.
Futuro
Conforme o tempo passar o layout do blog irá mudando também, já temos albumas idèias interessantes para implementar. Bem, vamos aos artigos, links e bate papo em geral, afinal isso que interessa, para isso que estamos todos aqui.
Aquele abraço.
end
Esse mundo louco de desenvolvimento de sistemas tem o poder de deixar a gente meio sem noção da realidade, de deixar a gente sempre leigo em algum assunto. Área mais "disgramada" essa.
Sempre que resolvo pesquisar a fundo um assunto no mundo da computação, fico estranhamente mais ignorante.
Proposta do Blog
Bom, então com o propósito de aprender constantemente esse blog foi criado. A intenção é fazer no mínimo um post por dia, mas será bem difícil, dado as outras tarefas que temos.
Espero que gostem, espero que o aprendizado seja mútuo.
No começo falaremos bastante sobre UML, pois estamos envolvidos no projeto pessoal de obtenção da certificação UML da OMG para breve. Futuramente trataremos dos mais variados assuntos relacionados a TI.
Contato
Se quiser entrar em contato, pode mandar um e-mail para contatoaugusto@gmail.com ou adicionar no MSN: prohgy@hotmail.com
Seria uma grande alegria receber propostas de post ou dúvidas que pudessem ser tiradas e então compartilhadas com todos que aqui vierem.
Futuro
Conforme o tempo passar o layout do blog irá mudando também, já temos albumas idèias interessantes para implementar. Bem, vamos aos artigos, links e bate papo em geral, afinal isso que interessa, para isso que estamos todos aqui.
Aquele abraço.
end
terça-feira, 29 de janeiro de 2008
Acessando banco de dados apartir do Excel via VBA
Saudações aos meus 3 leitores, como diria o Zé na coluna Fala Zé do Cerreio Braziliense. :)
Estive há um bom tempo pesquisando em como popular uma combobox no Excel apartir dos dados vindos de um banco de dados SQL Server 2005 e, para complicar ainda mais, localizado em uma instancia em particular.
A princípio a gente pensa que por se tratar um banco mais robusto conectar nele seja igualmente mais complexo do que num Access da vida, arquivo de texto ou até mesmo outra planilha. Então tranqüilizo a todos os 3 ai que é absurdamente simples, depois que se decobre é sempre mais simples do que pensava. :)
Um exemplo vale mais que mil palavras... Primeiro em Access depois no SQL Server:

Sub carregarDadosAcces()
Sheets("Dados Pessoais").Select
Range("A192:E1500").Select
Selection.Clear
Range("A192").Select
StringConec = "ODBC;DSN=Banco de dados do MS Access;DBQ=C:/MeuBanco.mdb;DefaultDir=Worksheets("Dados Pessoais").Range("B6");DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;"
SQLConec = "SELECT * FROM TB_USUARIOS"
With ActiveSheet.QueryTables.Add(Connection:=StringConec, Destination:=Range("A192"))
.CommandText = Array(SQLConec)
.Name = "Consulta Access"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Sheets(1).Activate
Worksheets("Dados Pessoais").Range("C3").Activate
End Sub

Sub carregarDadosSQLServer()
Sheets("Dados Pessoais").Select
Range("A192:E1500").Select
Selection.Clear
Range("A192").Select
StringConec = "ODBC;Driver={SQL Native Client};Server=MeuServidor\MinhaInstacia;UID=meuUsuario;PWD=minhaSenha;APP=;WSID=;DATABASE=MeuBanco""
SQLConec = "SELECT * FROM TB_USUARIO ORDER BY NO_USUARIO"
With ActiveSheet.QueryTables.Add(Connection:=StringConec, Destination:=Range("A192"))
.CommandText = Array(SQLConec)
.Name = "Consulta Access"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Sheets(1).Activate
Worksheets("Dados Pessoais").Range("C3").Activate
End Sub
Qualquer dúvida postem nos coments que terei o maior prazer em ajudar.
Assinar:
Postagens (Atom)