Grep para Windows

Deixe um comentário

Sempre tive a necessidade fazer uma busca em arquivos do Windows semelhante ao grep do Unix, pois a busca do Windows Explorer não contempla algumas extensões principalmente logs e códigos fonte.

Então um colega de trabalho me indicou o software Baregrep, da Bare Metal Software, existem versões gratuita e paga. A versão gratuita atende bem as necessidades, ele é muito rápido e eficiente, vale apena utiliza-lo.

Baregrep: http://www.baremetalsoft.com/baregrep/index.php

Busca de conteúdo em lista de arquivos

Deixe um comentário

É muito comum descobrir em qual arquivo esta uma determinada palavra ou frase. Eu frequentemente utilizo para fazer buscas em logs.

$for i in `ls -l | grep 'Mar 24' | grep Dispatcher | awk -F" " '{ print $9 }'`; do grep "1778621024" $i; done > /tmp/resultado.txt

onde:

é realizado um for com o resultado do ‘ls -l’, filtra-os pela data (24/mar), filtra novamente pelo nome ‘Dispacther’, sobre o que restou exibe apenas a nona coluna separada por vírgula, busca em cada arquivo ‘$1′ pelo valor ’1778621024′ e grava o resultado no arquivo texto /tmp/resultado.txt

Vamos entender isso melhor:

ls -l | grep ‘Mar 24′ -> A partir do resultado do ls, mostra apenas os arquivos de 24/Mar

ls -l | grep ‘Mar 24′ | grep Dispatcher -> A partir do resultado do ls, mostra apenas os arquivos de 24/mar e apenas os que tem Dispatcher no nome.

ls -l | grep ‘Mar 24′ | grep Dispatcher | awk -F” ” ‘{ print $9 }‘ -> A partir do resultado do ls, mostra apenas os arquivos de 24/mar e mostra apenas os que tem Dispatcher e trará como resultado somente a nona coluna do ‘ls -l’ as colunas são separadas por ” “.

É possível também utilizar o comando find para uma busca mais aperfeiçoada, para isso é necessário utilizar:

find . -name *.pdf -exec ls -l {} \;

isso substitui o ‘ls -l’ do for. Outra forma é:

find . -name *.pdf -ls

Como opção coloque ‘-l’ no último grep para mostrar o nome do arquivo ao invés do conteúdo.

Trabalho em Telecom

Deixe um comentário

Há quatro meses estou trabalhando na área de Telecom, fazendo algo totalmente diferente do que já fiz em toda na minha vida profissional. Esta sendo uma experiência incrível além de trabalhar em uma empresa de grande porte, coisa que também é novidade, o fato de não desenvolver é uma experiência totalmente diferente.

Em toda minha vida profissional minhas metas sempre foram o crescimento profissional dentro da área de desenvolvimento e sinceramente nunca havia olhado para outras áreas de TI. De repente tudo virou de cabeça para baixo nesses últimos meses, não desenvolvo mais. Hoje em dia gerencio algumas aplicações  sugerindo melhorias, acompanhando a evolução e reportando bugs, como se elas fossem filhos.

No principio estava bem receoso mas também com a certeza de que estava evoluindo, e foi justamente o que ocorreu. Desde que estou nessa função descobri uma quantidade enorme de coisas, algumas delas que só existem em empresas grandes e outras que são relacionadas a gestão de TI. Estou fascinado!

Agradeço a Deus pelo presente que ele me deu!

Adentrando ao Facelets

Deixe um comentário

Trabalho com o Facelets a mais de um ano e a partir de hoje posso me considerar um usuário avançado, ao começar a estender suas classes para manipular UIViewRoot do JSF.

Vamos iniciar explicando melhor o que é Facelets e o UIViewRoot:

- Facelets, é um ótimo framework para ser usado com o JSF, que além de facilitar em muito o desenvolvimento das páginas pois utiliza páginas XTHML ao invés do JSP e tem um esquema de renderização das páginas diferenciado o que as deixa mais rápidas.
- UIViewRoot - trocando em miúdos – é a classe que representa, em objetos do tipo UIComponents, a árvore DOM que será exibida no browser.

Mas o que me fez escrever esse post foi eu estar trabalhando, e portanto, tendo que entender todo o “core” do Facelets. É preciso ressaltar a importância de três classes, a primeira é a FaceletViewHandler que em seu método buildView é onde “tudo” acontece, ou seja, é feita transformação de um arquivo XHTML com tags nativas, as tags do JSF e de outras bibliotecas de componentes em uma instância do UIViewRoot que será utilizado pelo engine do JSF para montar o resultado para o browser.
No método buildView são utilizados as outras duas classes que são importantes. A classe Facelet é responsável por popular a UIVIewRoot com os UIComponents em seu método apply. Ela é criada pela FaceletFactory que é quem pega o arquivo XHTML do disco e faz um parse dela para o Java.
Depois de tudo isso ficou bem fácil estender a FaceletViewHandler e fazer a manipulação do UIViewRoot criada. Isso ficou muito bom e é muito útil, vale apena todos os desenvolvedores JSF terem esse conhecimento.

Referências:
https://facelets.dev.java.net/nonav/docs/dev/docbook.html - Tutorial oficial do Facelets.
http://java.sun.com/javaee/5/docs/api/index.html – API do JavaEE com as classes do JSF.
http://delicious.com/sergiopantano, tags jsf e facelets.

Scrum-master

Deixe um comentário

Hoje gostaria de falar sobre o Imediato da nossa nave. É ele quem gerencia todas as etapas do sprint Scrum. É o Scrum-Master, que faz as reuniões com o PO para juntos criarem o Backlog, filtrando as necessidades de acordo com as limitações e possibilidades existentes e repassando isso para a equipe, ao mesmo tempo levando as dúvidas de volta ao PO. Isso parece ser uma missão fácil, mas imagine-se ouvindo um dono de empresa ou diretor com um monte de ideias dizendo que o sistema deve resolver todos seus problemas, diminuir e agilizar os processos e reduzindo custos operacionais da empresa, tudo isso com interfaces amigáveis e ao menor preço possível. Chegando à empresa repassando isso para a equipe que tem transformar todas esses “desejos” em realidade. É sem dúvida uma tarefa de um super-homem.

Nesse momento aparece a primeira reunião, a de Planning, onde o Scrum-Master explica em detalhes o que vai ser feito na atividade e a equipe o a quebra em tarefas com suas horas.

Durante o sprint o nosso Imediato tem que ser o mediador do Daily-meeting, que é uma reunião diária que dura aproximadamente 15 minutos onde a equipe fala do status atual das tarefas e suas atribuições para o dia.

Depois do último dia de Sprint, tendo realizado ou não as tarefas que estavam planejadas, vem novamente nosso Scrum-master e coordena a reunião de Retrospective onde são discutidos os pontos positivos e negativos  que ocorreram durante o ciclo.

Para finalizar nosso master tem a última tarefa da missão, fazer a reunião de Review com o PO para demonstrar o que foi feito, justificar o que não foi feito e discutir sobre os próximos itens do Backlog, lembrando-se que itens novos podem ser incluídos nessa reunião. E aí começa mais um ciclo…

Uma nova missão…

Deixe um comentário

Essa semana estamos terminando um sprint e imediatamente iniciando outro, viva o Scrum!!!!

Depois que escrevi a frase acima me vieram algumas questões na cabeça: E quem não sabe o que é ou nunca teve contato com metodologia ágil e/ou Scrum? Para isso eu colocarei ao final desse post alguns link’s específicos que podem falar bastante do assunto.

Bem, agora que todos têm uma idéia do assunto eu gostaria de falar sobre alguns momentos especiais do sprint e do papel que é mais importante nesses momentos. Os momentos são: a reuniões de Review, Retrospective e Planning. E para gerenciar tudo isso vem o Scrum-Master que além de ser o juiz dessas reuniões é o Imediato da nossa nave.

Todos sabemos que o desenvolvimento de softwares nunca tem fim, mesmo dando por encerrado um produto, vem sempre um novo produto ou versão para substituí-lo. Chegamos à conclusão de que o processo é cíclico, isto é, primeiro temos a lista das necessidades ou desejos do cliente – o qual o Scrum chama de Product Owner ou somente PO – que são organizadas pela sua prioridade chamado de BackLog, em seguida pontuamos essas necessidades, de acordo com a Fibonacci, para podermos identificar o “peso” delas, depois, a dividimos em pequenas tarefas com a quantidade de horas que elas levarão para ficarem prontas e por último somar as horas até poderem completar a quantidades de horas totais do sprint e assim iniciado uma nova missão.

Em outra oportunidade vou explicar melhor a fases e reuniões do Scrum.

Maiores informações:
- http://en.wikipedia.org/wiki/Agile_software_development

- http://visaoagil.wordpress.com/

- http://pt.wikipedia.org/wiki/Scrum

Construção de um Single Sign-On

Deixe um comentário

A algum tempo procuro por uma especificação “ideal” de SSO, nos últimos 7 dias só penso, procuro na web e desenvolvo isso, e isso pela terceira vez. Como tudo que fazemos há momentos de euforia e eureca e momentos de total frustração. Desde o começo eu gostaria de ter o nosso produto o mais independente possível, mas pelo que vejo a saída mais viável é a mesma utilizada por outros inúmeros produtos, aí vem aquele pensamento de não “reinventar a roda”, então ao invés de criar tudo do zero preciso compreender o funcionamento e a arquitetura desses produtos para decidir qual a melhor para nós.
O candidato mais forte até agora é o JOSSO, que é um sistema open-source de SSO para Java, direcionado a JEE e Spring, parece ser um produto bem maduro, plugável, aceito pela comunidade e o mais importante, é bem integrado a várias tecnologias, dentre elas o Jboss Seam que estou utilizando.
Os outros candidatos são o Jboss-SSO e o OpenSSO.
A boa notícia de tudo isso foi a descoberta de que todos os sistemas de SSO do mercado utilizam alguns padrões e protocolos.
O grande “gargalo” das aplicações web em Java é o fato de que, de acordo com o a especificação, não existe um ponto comum entre sessões e contextos dos sites. Então a única coisa que pode guardar alguma informação, no lado do cliente, é o cookie. Esse foi um dos maiores desafios porque é se o browser do cliente não aceita cookie, então com isso em mente eu iniciei uma verdadeira cruzada em busca da arquitetura perfeita. Mas infelizmente concluí que dentro das nossas possibilidades atuais a única solução que temos além do cookie é utilizando algum proxy de rede ao qual o cliente já esta conectado como por exemplo o AD da Microsoft.
Isso tudo teve um lado bom, descobri o SAML que é um protocolo de arquitetura, estudei mais a fundo o uso de Valve e Realm no Tomcat e me interei mais sobre o conceito de serviços do servidor de aplicações utilizando MBean e JMX.
Estou batalhando nisso ainda, nos próximos dias quero manter esse blog atualizado com as próximas aventuras.

Até lá…

Entradas mais Recentes

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.