Reflexões sobre minhas leituras

The Velocity Manifesto de Scott Klososky

Velocity Manifesto
Encontrei este livro numa publicação bimestral da Oracle Magazine. Klososky já trabalhou para grandes empresas como IBM, AOL, HP além de outras, e traz neste livro um conteúdo bem interessante sobre como reagir em frente a tantas tecnologias e como tirar proveito delas na sua empresa. Como estar à frente dos demais e disseminar a tecnologia em sua empresa? Navega no mundo empresarial e fala sobre liderança também. A parte três do livro é a mais interessante, na minha opnião, e discorre sobre como criar uma “cultura de velocidade”. Nos dias atuais, não basta apenas ser criativo e ter uma boa idéia. É importante saber como transformar rapidamente esta idéia em produto, e lançar no mercado. Muitos têm a mesma “boa idéia” simultaneamente.

Java Concurrency in Pratice, Tim Peierls, Joshua Block and Others

Java Concurrency in Pratice
Este livro é um must read, definitivamente, para programadores/analistas de sistemas. Dá uma visão do mundo concorrente, paralelo, multi-núcleo, dos processadores atuais, que chegou para ficar devido as limitações de aquecimento dos chips com 3/4 Ghz. A maioria dos sistemas ERPs atuais não tiram proveito de processadores multi-núcleos. Isto vai mudar em um futuro breve, e é uma oportunidade de sair à frente da concorrência. Cada dia que passa, a quantidade de informações que necessita ser processada para tomar decisões estratégicas aumenta, e existem empresas informatizadas a muitos anos com bases de dados gigantes, das quais não são extraídas nenhuma ou quase nenhuma informação relevante. A base é apenas um registro da empresa ao longo do tempo. Mesmo que você não goste de Java, deve se esforçar para ler e implementar os exercícios.
Nota: os programadores sendo formados hoje em muitas universidades já cursam Introdução à Programação com linguagens paralelas. Não vai querer ficar pra trás, vai?

O Universo numa Casca de Noz, Stephen Hawking

O Universo numa Casca de Noz
Não necessita de muitos comentários. A única recomendação é sobre o Inglês. Tem que estar apurado, senão compre a edição em português. Acredite, ela já é difícil para nativos brasileiros :). Mas a leitura é bem interessante. Prepare-se para ler o mesmo parágrafo 3 ou 4 vezes.

Agro Distribuidor, Matheus Alberto Cônsoli e outros

Agrodistribuidor
Este é da seção “ossos do ofício”. Está sendo uma leitura muito agradável, com várias previsões para o futuro da distribuição de insumos no Brasil, integração das cadeias de distribuição, enfim, assuntos que para quem trabalha com Agronegócio são indispensáveis. Principalmente na área de tecnologia, que precisa conhecer o negócio em que vai atuar nos anos vindouros, e como este negócio está se movimentando. É um livro escrito pelas principais pessoas envolvidas no Agronegócio, consultores das principais empresas de consultoria do país, como Markestrat e MPrado. Tem um capítulo sobre ERP no Agronegócio, escrito pelo Sr. Carlos Barbosa, diretor presidente da Siagri, e que foi revisado pelo Rômulo e eu, sócios da Implanta IT.

Motivação 3.0, Daniel Pink

Motivação 3.0
Ainda estou lendo o livro e gostando muito. Este livro é resultado de um estudo bem interessante que o Daniel Pink tem realizado sobre motivação, sobre porque o modelo tradicional de motivar pessoas não funciona como se espera. Conheci o livro através da animação do vídeo abaixo (Este pessoal da RSA é show! Só me irita o barulho do pincel no início, rs. Range os dentes!). Há também a palestra do Daniel no TED neste endereço. O site dele também tem muito material interessante.

Anúncios

Até onde o acaso me leva? Ao concerto do Reginaldo Pinheiro!

Há dias monótonos, que não trazem nenhuma novidade. Mas também existem dias cheios de acasos. Foi o que aconteceu na minha última terça-feira. Acompanhe só.

Terça-feira. Vou à UFG. Um dia como outro qualquer, se não fossem alguns “acasos”. Entrei na sala do mestrado e deixei meu notebook no armário como sempre faço. Por acaso, não haveria aula de Seminários, logo fiquei sabendo. Como tinha que resolver um pequeno problema no Banco do Brasil, lá fui.

Quando voltei, por outro acaso descobri: trocaram o cadeado da sala do mestrado! Lá estava eu sem meu “passatempo” até a hora da próxima aula.

Resolvi então ir a biblioteca, procurar novidades. Só pra ficar olhando as prateleiras, sem rumo certo. Fico a procura dos livros que estão com as folhas mais brancas e capas mais conservadas. Estão neles as novidades! Encontrei Refactoring to Patters, agora na seção “O que estou lendo?”. Nem é tão novo assim, mas só foi emprestado uma vez, está branquinho ainda!

Eis que ocorre outro acaso! O sistema da biblioteca estava fora do ar. Encostei no balcão um pouco distante dos computadores dos funcionários à espera. Não haveria chance alguma de encostar ali se não fosse o sistema. Olha só o que encontrei: Um convite para o Concertos na Cidade. O último que estava sobre o balcão. Peguei-o meio desconfiado, pensando que tivesse dono.

Era neste convite que estava minha diversão de quarta. É de lá que acabo de chegar. Um recital de canto e piano. Foi muito bom! Um espetáculo. Conheci um Villa Lobos que não havia ouvido antes com a “Iara”. A interpretação do Reginaldo Pinheiro e da Guida Borghoff foi excepcional.

Desde a primeira vez que ouvi o Reginaldo num programa da Rádio Cultura FM de São Paulo, há uns dois ou três anos atrás fiquei a imaginar que exemplo de Brasileiro de sucesso. Pois hoje tive a oportunidade de confirmar o quanto ele canta bem, logo alí, à minha frente.

Parabéns a professora Ana Flávia Frazão e ao SESC, além dos demais da organização. Estão fazendo um trabalho de primeira qualidade! Continuem nos proporcionando estes bons momentos de boa música.

Ao demais, continuem trocando os cadeados das salas e “derrubando” os sistemas da biblioteca! Façam o necessário para me fazer ficar sabendo destes eventos, ou, simplesmente, deixem o acaso agir por si próprio!

Desde o último post

Muita coisa aconteceu desde o dia do último post: 23/03/2006. A graduação acabou! Agora sou casado, a mais de ano! Veja só como isso também passou rápido.

Profissionalmente ainda trabalho na mesma empresa, Siagri. Mas agora estou em Goiânia, também a mais de ano.

Neste meio tempo sem publicações por aqui, andei publicando na revista Active Delphi, uma série de artigos sobre DBX4. Também criei dois driver DBX4 para Firebird e PostgreSQL.

Já cursei a metade do mestrado! Já passei por todas as disciplinas obrigatórias. A pesquisa está bem avançada. É em sistemas distribuídos, mais especificamente R-Trees distribuídas e como fazer Joins nessas estruturas com Hadoop.

Vem comigo nesta nova fase? Publicarei sobre assuntos do mestrado e novidades em geral. Meus interesses continuam os mesmos, exceto por ter expandido bastante eles.

Agora não são mais duas linguagens, são várias como C++, C#, Delphi, Java, Python. Em banco de dados, estive estudando Oracle este tempo todo, e não é por nada, mas já consegui aprender alguma coisa.

A viagem viva e os fantasmas

É do senso comum que viagem é algo abstrato, sem vida. Pois bem, a minha nâo foi. Estava viva e tinha vontade própria! Acredita?

Manhã de Terça-feira, tudo planejado e agendado. Passagens, hotel, sistema pra homologar. Iria ser tudo feito de terça à sexta, inclusive o retorno. Iria!

A viagem de ida a São Paulo foi um sucesso, exceto por um desvio de mau tempo. Porém quando chegamos no hotel a primeira decepção não tardou em se precipitar. Se algum dia você for se hospedar na rede Ibis, desita! São hotéis padrão norte-americano. Nem suas malas são levadas para o quarto! O frigobar nâo tem nada. Se quiser, você mesmo compra e leva pra lá. Passar roupa? Leve! É tem mais, somente das sete às dez da manhã! Resumindo, tudo o que quiser, faça você mesmo! A internet também não funcionou no primeiro dia.

Na manhã seguinte (Quarta) seguimos pra homologação das bandeiras Visa e Amex. Nenhum problema no software além de um pequeno bloqueio de teclado. Foi tudo tranquilo e no fim de uma bateria de mais de sessenta teste conseguimos terminar o roteiro. Fiquei até animado pois o homologador era bastante gente boa e pouco “cri-cri”.

A noite fomos (o chefe e eu) à melhor casa de massas da cidade (de acordo com a revista veja) por nome Esperanza. Foi impecável, desde o atendimento até a comida. Acredite, não é nem parecido com a pizza que se costuma comer por aqui. São receitas tradicionalíssimas vindas da Itália. O lugar é um casarão do início do século passado não muito grande.

O que mais chamou a atenção é que eles não primam pelo tamanho. Poderiam fazer a maior pizzaria da cidade já que possuem o título de melhor, mas primam pela qualidade. Tem funcionado assim a mais de cinquenta anos. Talvez seja este o segredo.

Estava tudo bem demais, até que pela manhã (Quinta) apareceu o primeiro fantasma da viagem! Era baixo, cabelos arrupiados, enjoado, cri-cri, aparentemente carioca e inexperiente! Me fez mudar quase todo o software. Sem dúvida um dos piores dias de minha pequena vida. Enquanto não começei a “dar o bolo” nele o processo não foi pra frente. Pelo menos, no fim da tarde terminamos o Redecard.

Os planos já tinham furado neste momento. Final do segundo dia e ainda faltava a última bandeira (Tecban). Não daria tempo se a sorte não tivesse do nosso lado. Conseguimos prorrogar a homologação para o dia seguinte e isso implicou em remarcar as passagens de volta para o sábado. Este foi o primeiro sintoma de vida da viagem.

Por um lado foi bom. Consegui ir pela primeira vez a um teatro. Mas não qualquer teatro, foi no Teatro Abril. Quando chegamos lá o segundo fantasma apareceu!

O Fantasma da Ópera! Uma das melhores coisas que já apareceram para mim! Que espetáculo! Emocionante, vibrante, de cortar o fôlego. O único detalhe foi o preço (R$ 180), mas para plateia VIP, na terceira fila, bem embaixo do lustre (peça que flutuou durante o espetáculo). Apesar do preço valeu a pena. Acredito que de longe não teria a mesma emoção de ver a expressão na face dos atores, a garganta dos tenores, o cenário se modificando impressionantemente rápido à nossa frente, os dezoito músicos logo abaixo do palco, etc.

Não dá pra explicar com palavras. Não poderia ser mais perfeito. Pra quem assistiu “Amadeus” – a apresentação das óperas – pode ter uma idéia. Mas não é o mesmo que estar ao vivo, nem de longe. Pra quem canta em coral então, nem se fala. A dinâmica das vozes é perfeita. Aquelas sopraninas chegando até as “grimpas”, longe do alcançe de nós, pobres mortais. Junto com os tenores conseguiam fazer o som parecer que estava sendo emitido atrás de uma parede, ecoando num rio, e por aí vai. Gente com talento nato, diria. Resumindo, assista quando puder. A peça está em cartaz a mais de cinco anos em Londres e sendo exibida em apenas cinco cidades do mundo. Se não gostar me cobre que pago sua entrada. Até demorei dormir quando cheguei no hotel, estava “ligadão”!

Manhã de sexta, homologação da bandeira Tecban. O primeiro fantasma foi embora, mandaram outra pessoa em seu lugar. Era uma moça muito experiente que até me falou qual era o problema do dia anterior. Depois que ajustei foi extremamente rápido. Os teste restantes foram feitos e antes do fim da tarde estava tudo concluído. Terminamos até que enfim e ainda sobrara uma noite!

Imagine só o que estava rolando? A Bienal do livro! Se fui? Mas é claro! Pegamos o metrô e após algumas estações uma vam (gratuíta) que levava pro Anhembi, onde acontecia a feira.

A entrada em comparação ao teatro foi bem mais barata (R$ 10) e o preço foi convertido em descontos na compra de livros. Um real de desconto para cada dez em livros. A loja Americanas estava massacrando todo mundo. Quase tudo com preço mais baixo. Não deixei de comprar um: O badalado “Freakonomics”. A predominância é de livros literários. Informática é tema pouco abordado, só os principais mesmo na loja da Pearson, Siciliano e da livraria Érica. Pra ter idéia, não encontrei um livro sobre DB2 que precisava. Andamos até cansar. A feira é enorme!

Hoje, sábado, levantei de manhã, tomei café e desci pra Santa Efigênia. As lojas abrem tarde, enrolei pra comprar, mas de tanto pexinchar consegui um bom preço.

Quando terminei de comprar é que a correria começou. Corre até achar a entrada do metrô. Sobe umas dez estações até chegar perto de Congonhas, pega um táxi e… dez minutos de atrazo! Perdi o vôo! Este foi o segundo sintoma de vida da viagem. Meu companheiro se foi e agora estou aqui, esperando chegar dezesseis horas para embarcar. Sorte que achei vaga no mesmo dia, porém tive que esperar sentado por cinco looongas horas.

Aconteceu algo interessante durante este tempo. Uma moça me parou dentro da livraria (onde comprei a caneta que escreve neste momento no manual de uma placa mãe de computador aproveitando o espaço em branco) e sem perguntar nada disse: “Você precisa tomar vitamina E para que não apareça mais terçol no olho!”. Fiquei sem saber o que dizer. Nem o médico que fui disse isso e alí estava alguém que nem me conhece querendo ajudar. Agradeci bastante ela, prometendo cumprir a dica.

Tudo aqui onde ficamos é caro. Cada lanche não fica menos de oito reais. Cada táxi não menos que quinze e por aí vai. Mas em síntese foi uma ótima viagem, apesar dos imprevistos. Consegui aproveitar bastante.

Bom, agora vou indo embarcar, porque senão perco o vôo novamente! Se você leu até aqui é um grande sinal de persistencia, então veja aqui as mais de cento e trinta fotos que tirei de toda a viagem!

Resumão do ano passado

Estava lendo o resumo do ano passado e percebi o quanto o tempo passa rápido. Este ano que passou não deu pra fazer muito coisa. Mais uma vez aquela fala do professor Márcio (Eletrônica) se concretiza: “Passa rápido porque observamos muito pouco o que acontece ao nosso redor”.

Mas não dá pra mudar muito né?! Pra quem trabalha fechado numa sala olhando pra um monitor o dia todo há muito pouca coisa pra observar. Dá vontade é que chegue logo a hora de ir embora 🙂 .

Mas mesmo assim, alguma coisa aconteceu. Mais uma vez vou fazer o resumão do ano na faculdade:

Começando com minha lingua afiada, no primeiro semestre Economia e Custos foi muito sem futuro, nenhum conteúdo muito útil, mas pelo menos a professora não pegava no pé. Média 10.

Se tem uma matéria que achei legal foi Linguagens formais. O Pelágio sabia muito bem o que falava. É meu estilo de professor também, bastante metódico.

Sistemas operacionais foi legal, bastante coisa nova. Se precisar fazer um SO qualquer dia desses já tenho por onde começar. Pena que o Fabian atropela os alunos com a matéria.

Em arquitetura até que houve alguma coisa nova, mas não sou muito chegado no esquemão do Miguel de dar aula. Ele vai muito na conversa dos alunos e esquece da aula. Também não gosto de copiar este tipo de matéria do quadro porque enrola demais.

Banco de dados II foi um pouco complicado. A professora não tinha muito domínio do assunto e a matéria é bastante complicada de abordar da forma que ela queria. Na minha opnião valeria mais aprender a trabalhar com otimização de SGBD’s, já que a base de criar tabelas nós já conheciamos. Uma parte legal foi o projeto que ela pediu pra fazer. Se alguem necessitar, pode pedir que disponibilizo. É um catalogador de periódicos em geral (revistas, etc).

No segundo semestre a batalha começou. Ô semetre complicado, sinceramente foi o semestre “nada”.

Em sistemas operacionais II o bicho pegou. Sinceramente, aprender VALE4 foi horrível. Sem falar que não vou utilizar vale4 no dia a dia a não ser se resolver ser professor de SO. Poderia explicar como fazer aquilo tudo em um framework real como ele tentou no final com MPI. Mas não adianta falar “façam!” e ficar esperando. Professor tem que ensinar, não dizer o que você tem que aprender.

Em redes não houve muita novidade. Apenas algumas formalidades a mais e a definição correta de cada coisa (protocolos, camadas, etc).

Em compiladores e complexidade de algoritmos o bichou pegou novamente. O professor podia ter seguido algum livro. A materia que ele explicou ficou sem sequencia, sem relacionamentos. O cérebro só aprende relacionando problema com solução, novidade com conhecimento pré-adquirido.

Gostei de pesquisa operacional. Matemática é minha praia e a professora sabia o que falava. A matéria foca-se em “como resolver problemas do dia a dia” e isso é muito útil.

Em resumo na faculdade não foi muito legal, mas dos males o menor pois agora só faltam TRÊS períodos!

Agora, se houve algo que gostei de ter começado a fazer foi estudar violão clássico. Vocês puderam ver algumas gravações aqui. Em breve disponibilizarei outras. Gosto muito de fazer isso. Este foi o primeiro ano de estudo, acredito que vários outros estão por vir!

Comecei a namorar novamente e estou apreciando muito, quem sabe não dá festa de doces daqui algum tempo? 😀

Também troquei de moto e viajei pra São Paulo, na Borcon. Foi muito legal e proveitoso. Bastante novidade, gente nova que só conhecia por nome em revista. São estes eventos e este conhecimento que soma na vida.

Devo estar esquecendo de muita coisa, mas em resumo é isso. Desejo a todos um novo ano repleto de realizações! Mas não fique esperando acontecer, faça algo se realizar!

Ensino sequencial, é tão difícil assim?

Quando estudei linguagens formais com o professor Marcelo Pelágio fiquei muito entusiasmado e ancioso pra colocar logo a mão na massa e utilizar ferramentas construídas com base nos problemas já conhecidos na contrução de compiladores (lex, yacc). A maior vontade era ver um autômato daquele virar código fonte de compilador. A maioria da turma aprendeu a matéria muito bem.

Existe algo chocante na troca de professor. Seria muito interessante se houvesse uma continuação. Pra que vai servir aquela matéria agora? Você se esforça, pergunta, tenta compreender, enfim, pra que? Você podia estar muito bem testando seu compilador, na linguagem que você inventou, ao invés de ficar lendo este artigo aqui agora ou pior ainda, estar aprendendo a programar na aula de compiladores.

Nada contra aprender programar, pelo contrário. Só acredito que a aula de compiladores não seja o lugar ideal. Na verdade penso que deviamos estar implementando um compilador de linguagem, usando autômatos, follow, first, e tudo mais. Porém, esta questão é polêmica e vou deixar de lado.

Bom, vou fazer uso daquele conteúdo neste artigo, mais precisamente da parte de recursão à esquerda, embora de uma forma pouco usual.

O último exercício pedido na disciplina de Compiladores foi o reconhecimento de uma expressão algébrica. Minha dúvida tentava fazer o professor perceber que aquela regra de produção está com recursão a esquerda, e por isso está tão difícil perceber como validar a sintaxe.

O “livro do dragão” explica muito bem isso. Bater o olho e perceber o que é reconhecido pela regra de produção fica bem mais fácil se eliminarmos a recursão. Lembra-se que o professor Pelágio dizia que não é possível implementar uma regra com recursão à esquerda?

Veja a regra com recursão:

  <soma>  -> <soma> <sinal> <termo> | <termo>
  <sinal> -> + | -
  <termo> -> 0|1|2|3|4|5|6|7|8|9

Agora sem recursão (alfa e beta, se lembra?):

  <soma>  -> <termo> <soma2>
  <soma2> -> <sinal> <termo> <soma2> | E
  <sinal> -> + | -
  <termo> -> 0|1|2|3|4|5|6|7|8|9

Ou mais simples ainda:

  <soma>  -> <termo> <soma> | + <termo> <soma> | - <termo> <soma> | E
  <termo> -> 0|1|2|3|4|5|6|7|8|9

Derivando isso, observamos que sempre teremos as seguintes combinações:

  <termo>
  <termo> + <termo>
  <termo> + <termo> - <termo> ...
  <termo> - <termo>
  <termo> - <termo> - <termo> + <termo> ...

Ou seja, “um só termo” ou “um termo e sequências de sinal seguido de termo”.

Desta forma fica mais fácil desenvolver o algorítimo.

Vamos desenvolver um protótipo. Para cada item da regra de produção defina uma função. Crie também uma função chamada “erro” que quando executada mostra a mensagem “erro de sintaxe” e sai do programa. Veja abaixo os exemplos. Observe os comentários antes de cada função.

  void erro() {
    printf("Erro de sintaxe!n");
    exit(1);
  }
	
  /* Sai do programa se a palavra recebida como argumento não for
   * o sinal de adição ou o sinal de subtração
   */
  void sinal(char *palavra) {
    if (*palavra != '+' && *palavra != '-')
      erro();
  }
  /* Sai do programa se a palavra recebida como argumento não for
   * um número
   */
  void termo(char *palavra) {
    se (!isdigit(*palavra))
      erro();
  }

  /* A regra de produção em si. "Um termo"
   * ou "um termo e sequencias de sinal e termo"
   *
   * A função proxPalavra retorna a próxima palavra do 
   * arquivo que foi lido no inicio do programa, está em anexo no final.
   *
   */
  void soma(char *textoDoArquivo) {
    char *palavra;
    palavra = (char*)malloc(sizeof(char)256);

    proxPalavra(palavra, &textoDoArquivo);
    termo(palavra);
      while(1) { /* infinitamente (a recursão da regra de produção é esta) */
      proxPalavra(palavra, &textoDoArquivo);
      sinal();
      proxPalavra(palavra, &textoDoArquivo);
      termo();
    }
  }

Depois que você abrir o arquivo e carregar seu conteúdo, chame a função soma passando a variável com o conteúdo do arquivo.

Em resumo, não mudou nada. Derivar a regra de produção é a forma mais fácil de saber por onde começar, como era em Linguagens Formais.

Baixe o arquivo com a função proxPalavra()

Tenho também a função que lê todo o arquivo e armazena em uma variável. Se estiver interessado é só me pedir por e-mail.