Sei sei, o blog anda meio parado… desculpa aí!!!

Faz um tempo passei por um problema que na época não consegui contornar, não tive muito tempo pra isso também e depois não foi mais necessário… mas isso ficou matutando.

Esses dias conversando com o Cesar Vianna sobre shell script ele me deu a dica (o cara tá ficando bom em Shell), usar o sed pra mascarar a string.

O problema era o seguinte: varrer um diretório e realizar uma ação sobre cada linha da saída, ou seja, arquivos e diretórios internos ao primeiro.

Daí você pensa em algo no estilo:

for i in `ls -1`; do echo $i; done;

ou

ls -1 | xargs ls

Blz? Foi o que eu fiz e tudo funcionava na boa até que…

…até que algum diretório ou arquivo tenho espaços (” “) no seu nome, daí o script vai por agua abaixo… invés de considerar apenas a quebra de linha como divisor para a rotina seguinte, o espaço também entra na jogada e quebra tudo.

E aí que entra o sed, vamos então mascarar a string e realizar os comandos seguintes, dentro de um for por exemplo, sobre a string que realmente queremos:

for i in `ls -1| sed s/[” “]/”\*”/g`; do ls “$i”; done;

O sed nos dá a string que estamos procurando e as aspas não deixa margens ao erro quando lemos a variável $i.

É claro que o comando ls dentro do for não tem utiliade nenhuma é só pra exemplificar, mas anote essa linha, você ainda vai precisar dela!

Dê uma fuçada na documentação do sed (e aprenda expressões regulares, é claro!) e divirta-se, shell script é muito bom e oferece um leque muito grande de possibilidades para um administrador de rede!!!

Não é por que a gente é apaixonado por software livre que não pode aprender com a M$, hehehe. Tô fazendo um curso de .Net Framework/C# patrocinado pelo Centro de Inovação quem quiser conferir o material pode acessar esse link.

Existe um projeto muito interessante do Miguel Icaza chamado Mono, que é uma implementação Open Source do .Net Framework e disponibiliza toda uma suite de desenvolvimento e produção multi-plataforma, se você pensa em utilizar C# com Linux, confira.

cerebro.jpg<< Se você pensa que vou falar sobre associar arquivos a programas, está completamente enganado e se é isso que você está procurando, tente esse link. >>

Na hora do almoço ou voltando de ônibus para casa meu ouvido capta no ar muitas conversas (nem tantas assim, digamos, algumas conversas). Advinhem com o que tenho ficado pasmo? Muitas, muitas delas giram em torno de computadores e tecnologia, discutidas por técnicos, peritos ou mesmo leigos que usam seu PC pro “servicinho básico” (internet, editor de texto, mensagem instantâneas…). A tecnologia está definitivamente na mente de todos.

Atualmente qualquer um é um “Técnico em Informática” e tem suas “mãnhas” para fazer (ou não) as coisas funcionarem no computador. Existem muitos “Técnicos”. Você chuta uma árvore e caem 200 técnicos, mas… será mesmo hein???

Será mesmo que essas pessoas tem habilidades concretas para manejar uma máquina complexa como é um computador? Bom, eu acho que nenhum de nós tem habilidades realmente concretas em todos os campos por onde a informática circula.

Conhecer tecnologia é extremamente complexo, mas acredito que bons profissionais da área (desde técnicos de manutenção, administradores de redes, programadores e testers, gerentes de TI e de projetos…) precisam ter a capacidade de fazer associações. Só dessa forma é possível entender a tecnologia a acompanhá-la sem ser engolido pela imensa produção de informação que é gerada todos os dias.

É de suma importância observar o próprio trabalho, aprender com ele, aprimorá-lo e de maneira alguma passar muito tempo fazendo a mesma coisa, principalmente se for um trabalho repetitivo. Se isto acontece com você, você está estagnado tecnologiacamente e parou no tempo.

Associar tarefas à conceitos e teorias é importante para tranformá-las em conhecimento, ter ciência do que está fazendo e não seguir um script pronto é fundamental para o crescimento profissional e pessoal. Pense sobre isso!

As associações são muito importantes. Perceber que determinada atividade que você está realizando agora tem a ver com o que você estudou há anos atrás, ter a capacidade de ampliar esse conhecimento que estava escondido entre neurônios pouco utilizados e conseguir perceber que algo que você está estudando agora pode ajudá-lo em questões pontuais (e saber quais serão elas) futuramente é decisivo para formar uma INTELIGÊNCIA TECNOLÓGICA.

É esta inteligência que está em falta. Técnicos com baixa formação e profissionais que sabem apenas reproduzir passos existem aos montes e eles tem o seu lugar, a carência de profissionais que tenham uma inteligência tecnológica é grande.

Se você não está entendendo nada do que eu estou falando, ou se eu não fui suficientemente claro, poste um comentário e vamos continuar conversando.

Abraços.


Cada vez mais eu me impressiono com as funcionalidades que o Google vem criando no seu “Web Desktop”. Sem sombra de dúvida a tendência da WEB é passar a centralizar todas as aplicações computacionais, sejam elas quais forem, para qualquer tipo de ambiente, arquitetura ou sistema operacional, tudo está indo pra WEB e o mais incrível, a vida de uma pessoa da sociedade de hoje está toda indo para a WEB, e o pior, estamos curtindo isso.

É claro que existe o perigo do Big Brother atrás destas questões e ainda muitas outras questões morais que afligem nosso milênio relacionado a este novo comportamento, mas não temos como fugir disso.

Deixando a divagação de lado não deixem de conferir as ferramentas que o Google disponibiliza gratuitamente na internet e quem sabe não liberam sob código aberto mais tarde… ;-)

Estas ferramentas tem me impressionado muito, tanto pelo design e facilidade de uso quanto pela performance e qualidade - tudo isso via WEB, é incrível. Dêem uma atenção especial para o Google Docs e Spreadsheet sem deixar de lado o Google Notebooks, Reader… ahhh, olhem todos!!

https://www.google.com/accounts/ManageAccount

Você vai precisar de uma conta do google para acessar as ferramentas, mas quem é que não tem? Bom, se não tiver, nesta mesma página você conseguirá criar a sua. ;-)

Essa eu vi hoje, não testei por completo ainda, mas tô apostanto.

E uma extensão pra firefox que compartilha arquivos e pastas com usuários pré-definidos num estilo “Instant Messengers”, o que eu achei legal é que a tranferência é feita a lá bittorrent: quanto mais gente baixar, mais rápido e não precisa de nenhum server no meio do caminho, a interface é intuitiva e abusa dos drag-and-drops…

https://addons.mozilla.org/en-US/firefox/addon/3234

Obs.: Tive problemas com a extensão no meu notebook, depois de fechar o firefox, ele simplesmente não levantava tive que remover o diretório da extensão para o FF voltar a funcionar…Estava tentando testar o software com o Gilson e ele não conseguia nem enviar o formulário de cadastro… tô achando que as coisas estão meio cruas ainda… mas eu espero, achei a idéia muito boa.

Já conhecia esse site, mas resolvi voltar lá para ler alguns artigos e aprender mais um pouco sobre desenvolvimento WEB.

O site é muito bom e tem muito conteúdo para quem quer aprender desenvolvimento direcionado para web. Muitos desenvolvedores se preocupam muito com o código em si e não gostam de nada relacionado a interface com o usuário, principalmente em sistemas WEB (que não é nada simplório esse trabalho de interface) e muitas vezes fica devendo uma boa ferramenta pra isso.

Entretanto, se você não tem um webdesigner ao seu inteiro dispor e quer que suas aplicações fiquem atraentes mas sem perder muito tempo com isso, é bom seguir algumas regras básicas de semantica e padrões de desenvolvimento WEB. Tudo que você precisa saber sobre essas questões, o tableless.com.br responde.

Bah, minhas aulas vão começar justo na semana do FISL, é a vida.

Não me animei muito com as palestras dos primeiros dias, com algumas exceções (a palestra sobre virtualização que falei no post anterior, por exemplo). Entretanto sábado parece um dia bem interessante, deêm uma olhada na programação. A seguir, algumas palestras que me chamaram a atenção:

  • Web 2.0 na prática com Java, Faces, EJB, JPA / Hibernate e AJAX
  • Samba3 ou Samba4? Tudo bem se você não souber dançar!
  • JBoss Rules: Processando Regras de Negócio de Forma Dinamica e em Português.
  • Nos trilhos com Rails
  • LDAP: já era hora de por a casa em ordem.

E, como não poderia deixar de fora, uma palestra do John “Maddog” Hall (gosto muito das palestras dele ;-), vou ficar com a de sábado, 19:00 - Thin Clients, FAT results - mas a de VoIP parece muito interessante também.

Eu sei, eu sei, tá devagar, poucas postagens, mas tb não quero postar qualquer coisa. Com o tempo vou tomando jeito…

Depois de escrever o artigo sobre o VMWare dei uma olhada no Virtual Box, a proposta desse software é a mesma, tem uma interface legal é intuitivo mas ainda precisa amadurecer um pouco, erros simples mas críticos ainda ocorrem, mas o software promete.

A GRANDE diferença deste é que além de gratuito, é open source e é disso que gostamos. O VMware é muito bom, mas o código é fechado.

Quem quiser conferir:

http://www.virtualbox.org/

Postem suas impressões sobre o software…

Ainda sobre esse tema, não percam a palestra do Leonardo Rodrigues de Mello no FISL, ela promete:
Consolidação de Serviços: Alta Disponibilidade e Balanceamento de Carga em Máquinas Virtuais

Recentemente tive algumas experiências interessantes administrando uma máquina Linux.

Numa precisava descobrir quais arquivos de configuração eram alterados por uma determinada ferramenta e não tinha idéia de como fazer isso.

Em outra situação queria fazer um script que listasse todos os arquivos de vários diretórios que formavam uma árvore complexa e um “ls -R” não atendia minha necessidade. Se prestarem atenção este comando retorna todos os arquivos, mas seria preciso um trabalho grande para interpretar a localização destes pois o retorno do comando não informa o caminho completo de cada arquivo em todas as linhas, um simples grep concatenado nesse comando colocaria tudo a perder.

O que estas duas situações diferentes tem em comum? Resolvi ambas com o comando find.

Para quem não o conhece ou ainda não gastou alguns minutos lendo páginas do “man” ou artigos a respeito, eis a dica. Ele é um canivete suiço e problemas complexos podem ser resolvidos rapidamente se você conhecer alguns parâmetros.

Os parâmetros mtime e ctime podem ser usados para monitorar datas de alterações nos arquivos e, se você ficar monitorando o diretório /etc, saberá de todas as alterações feitas em arquivos de configuração, no mínimo interessante, não?

Outra funcionalidade boa é a que diz respeito justamente ao que se proprõe o comando a primeira vista, encontrar arquivos e o legal, ele retornará um arquivo por linha contendo o caminho completo deste, resolvi aquele problema fácilmente e sem precisar fazer nenhum teste com if ou colocar laços complexos no script para fazer o que precisava. Numa árvore complexa com diversos subdiretórios e poucos arquivos em cada um simplesmente rodei dois comandos e meu problema acabou:

# find /Tomcat/webapps/resources -name “*.sh” | xargs dos2unix -a

# find /Tomcat/webapps/resources -name “*.cmd” | xargs unix2dos -a

Simples! :-)

Se você quiser mais informações sobre o find, dê uma olhada nestes links:

http://unixhelp.ed.ac.uk/CGI/man-cgi?find -> lembre-se o man é sempre útil

http://tldp.org/LDP/abs/html/moreadv.html -> também fala sobre o xargs que você viu acima

http://www-128.ibm.com/developerworks/aix/library/au-unix-find.html -> artigo escrito por Bill Zimmerly, IBM.

Não estava engrenando, mas agora foi.

Escrevi um pequeno artigo sobre um conceito que está muito em voga. Ele se detem numa pequena, mas importante, fatia deste assunto, poderíamos falar muito, MUITO, mais sobre isso, até mesmo dentro desta pequena fatia.

Podemos ir incrementando este artigo conforme for interessante, mas já é um começo.

Bom, leia e sinta-se a vontade para comentar.

Em breve volto com outros “micro-artigos” que acredito serem interessantes para todos que trabalham com tecnologia.

Next Page »