Mudando a página inicial padrão no Grails

30.janeiro.2009
Ao se criar uma aplicação padrão em Grails, a página inicial é o index.gsp, que fica na pasta web-app.

Por algum motivo que não interessa para o momento, a minha aplicação estava ficando torta com essa configuração. Comecei a misturar página estática com gambiarra para suprir a ausência de um controller.

Como a gambiarra é um bumerangue, e para não fugir do MVC, é possível resolver isso alterando o arquivo grails-app/conf/UrlMappings.groovy, da forma abaixo:

class UrlMappings {
  static mappings = {
    "/$controller/$action?/$id?"{
      constraints {
        // apply constraints here
      }
    }
    "500"(view:'/error')
    "/" {
      controller = "app"
      action = "login"
    }
  }
}

O controller app, que é onde eu centralizo o fluxo da aplicação, fica da seguinte maneira:

class AppController {
  def login = {
    render (view: 'login')
  }
}

Aí você pergunta: ‘mas para que tanta complicação se a action apenas renderiza uma view?’

De fato, é apenas esforço inútil. Porém, se eu quiser que o usuário, devidamente autenticado, seja redirecionado para a tela principal da aplicação sem ter que passar novamente pelo login, posso alterar o código para que a action resolva isso:

  def login = {
    if(session.user)
      render (view: 'telaInicial')
    else
      render (view: 'login')
  }

Fica ao gosto do freguês, claro.


On the road

28.janeiro.2009
Acho que a parte mais difícil de se viajar a trabalho, profissionalmente falando, é o choque cultural com os nativos do lugar.

O ritmo invariavelmente vai ser outro, a velocidade de execução, e muitas vezes até mesmo o comprometimento vai ser motivo para perder a calma.

Não se pode mudar o mundo, afinal. Quem me garante que são eles os errados?


Aprenda a falar

27.janeiro.2009
Não é randômico, seu imbecil. É aleatório.

ASCII não se pronuncia ASK-DOIS, sua mula, mas sim ASKI.

Você não imputa dados, sua besta. Você insere, digita, informa. Imputar é atribuir culpa ou delito a algo ou alguém.

Sua máquina não tem dois gigas, mas sim dois giga, ou dois gigabytes, criatura.

Aprenda a falar, bicho burro. Pelo bem dos meus ouvidos, que não são penico.


Comunicação é tudo e mais um pouco

26.janeiro.2009
Imagine que você receba a seguinte especificação:

Pegue uma folha de papel A4. Sob a mesa, dobre-a ao meio. Coloque a folha dobrada sobre a mesa.

A especificação parece clara e simples, mas aposto que dobramos as folhas de forma diferente, obtendo resultados diferentes. Eu dobrei a minha folha verticalmente, enquanto provavelmente você dobrou horizontalmente, obtendo uma forma próxima de um quadrado.

Qual foi o problema?

Eu criei uma especificação tendo em mente exatamente o que eu queria. E eu acreditei que aquilo era mais do que suficiente.

Você pegou uma especificação, aparentemente muito simples, e sem questionar seguiu os passos que julgou corretos.

Não houve comunicação, cada parte presumiu coisas e o resultado final não foi o esperado.

O grande diferencial das ditas metodologia ágeis é exatamente permitir a comunicação rápida, clara e sem ruídos entre todos os membros da equipe. Isso não tem nada a ver com post-its, gráficos ou ferramentas na Internet. É por isso que estamos vendo-as falhar, e é por isso que o seu projeto, e o meu, também estão falhando.

É por isso que relacionamentos chegam a níveis insuportáveis de convivência, casamentos terminam, empregos viram um inferno. É por isso que ocorrem desencontros, é por isso que clientes recebem algo que não pediram e que não os atendem.

É por isso também que não consegui comprar um mísero pão doce quando estive fora do país.

Comunicação é, na minha opinião, o fator mais importante, e o menos valorizado. É tudo isso que eu falei, e mais um pouco.


Falar é fácil…

23.janeiro.2009
Num mundo perfeito, a vida profissional serve para dar condições de termos uma vida pessoal decente e, por que não, divertida.

A menos que você seja chamado para trabalhar nas ilhas Cook, não é o que acaba acontecendo.

Bom fim de semana.


The Shark Jumper

22.janeiro.2009

“Zed Shaw (…) is the author the Mongrel web server, creator of the Utu project, recent Factor convert, and absolutely hates Ruby even though he makes money on it.”

Sujeito ganhou ponto comigo depois dessa.


Obama

20.janeiro.2009
ObamisEstava pensando aqui, enquanto a aplicação compila e me veio uma associação meio torta: seria Obama o novo Ruby na presidência americana?

O Ruby foi (e por alguns ainda é) tido como a grande salvação do desenvolvimento de software. É fácil de utilizar, fácil de entender e faz com que você pareça cool, ao contrário do paquidérmico, verboso e velho Java.

Por outro lado, é uma linguagem que eu não consigo levar a sério. Tanto pelo hype, quanto pela imaturidade. Trouxe excelentes “novas” idéias, ótimas soluções para problemas que a maioria das pessoas fazia de conta que não estavam lá, mas corporativamente continua com o status de ‘brinquedo’.

Honestamente, espero que ele (o Obama) faça um excelente trabalho, deixe muita coisa boa para as futuras gerações, mas não acho que ele seja o novo Messias, como está sendo propagandeado por aí.

Nem ele, nem qualquer outra linguagem da moda.