post, social, plural….

post, social, plural.

Gosta de escrever?

Mas, está cansado de usar blogs complicados, e ter pouca visibilidade pros seus textos?

Que tal experimentar algo diferente?

O Propost chega com uma nova proposta de rede social, o qual seu foco é em textos. Temos como objetivo criar um ambiente em que os usuários se vistam como autores, e seus textos sejam visualizados por outros atuores. A mesma estrutura de um blog. Mas em uma rede social.

Partimos do princípio que todos tem algo a ensinar, e todos também tem algo para aprender. E assim, trazemos de volta o prazer da escrita/leitura. Logo estas, que de tão importantes, acabaram sendo colocadas para escanteio nas redes sociais na atualidade.

Gostou?

Passa lá pra dar uma olhadinha!

www.propost.com.br

Escada acima: doutorado

Depois de voltar pra casa e passar alguns bons meses debaixo da sobra e água fresca, no sentido de moradia, mas trabalhando como nunca, decidi [re]testar minha maturidade longe da zona de conforto. Em 2011 me mudo novamente. Próximo destino? Recife. Ou melhor: UFPe. No caminho, visível somente o tapete de uma looonga estrada com uma caminhada prevista de quatro anos estudando aquilo que eu me adaptei a ouvir diariamente desde 2004, quando entrei na graduação.

De lá pra cá, muitas opções e idéias do que fazer e/ou qual profissão seguir. O mercado de TI anda bem aquecido de norte a sul do pais, e empregos não faltam pra quem é competente. Idéias pra abrir o meu próprio negócio já surgiram, mas nenhuma que me faça acreditar que vale a pena investir e, principalmente, que vai ser legal o efeito colateral de se ganhar preocupações com clientes que não pagam, e funcionários que não trabalham. Decidi investir em mim e colocar o último pilar formal da educação.

No final, mais de uma década estudando e criando computação. No meio disso, muito trabalho, escrita, leitura, implementação. Resumindo: Muito gás! Mas por enquanto, apenas a anciosidade..

Espero ainda manter esse blog pra contar parte dessa nova jornada🙂

Categorias:Doutorado

Longevidade para seu código

No inicio de dezembro, em um periodo próximo ao do JavaOne Brasil, aconteceu o já famoso BelJungle, encontro anual do grupo de usuário Javas do estado do Pará. E como eu andava meio, pra não dizer muito, afastado dos eventos e encontros por rasões obvias [3 mil km de distância faz disso obvio, não?] , resolvi dessa vez ajudar um pouco mais. Claro que toda a parte da divulgação e corrida por patricinio, colaboradores, não foi feito por mim. Mas aproveitei pra compartilhar algumas das experiências que eu andei vivenciando nesse meio tempo que eu passei programando.

Aproveitando a dica, coloco os slides a disposição. Eles estão bem intuitivos, mas qualquer duvida ou questionamento, só usar o blog🙂

ps: Caso os slides demorem mais que o habitual para carregar, talvez seja melhor baixar a apresentação neste link: http://bit.ly/hg6nB4. É seguro, prometo🙂

Categorias:Eventos, Java, TI Tags:, ,

spam real?

Você abre a sua caixa de mensagens, e lá está aquela mensagem dizendo: “Emagreça 10 kilos em uma semana”, ou “Tire agora o seu nome do serasa”. Seja qual for o fornecedor do seu email, um endereço novo ou antigo, sempre vai ter um spam na sua caixa de entrada.

Com o tempo, eles foram ficando mais elaborados. Agora não são mais enviados por qualquer adolescente que tenta passar um vírus por email para um usuário desavisado. Spams agora focam no conteúdo. Coisas do seu cotidiano vem escritas nas mensagens. Mas, como eles tiveram acesso a essa informação? Quem passou meu email?

Com a quantidade de serviços disponíveis na internet, qualquer cidadão que acessa a rede passa a ser monitorado. Pare agora e veja quantas abas do seu navegador estão abertas, e quantas delas são da mesma empresa? O monopólio dessa informação pessoal é controlada por uma única empresa. Location-Based Services é o termo usado por serviços focados em localização. Poucas pessoas usam ele atualmente, mas a previsão é que em 2012 sejam mais de 1 trilhão de dispositivos conectados ao LBS.

Revolução na maneira de se locomover, encontrar lojas, amigos e serviços físicos, tudo pelo celular. E de ser encontrado também. Agora supondo que essa empresa que detêm a maior parte das suas informações pessoais, adote também esse serviço. Ela sabe onde você esta e o que você procura. Tudo isso em tempo real.

Quanto surpreendente seria se você entrasse em um pub, ao invés de receber o menu do garçom, já recebesse um chopp escuro sem colarinho, da maneira que você gosta. Muito agradável, de fato. Mas basta estender esse pensamento para notar que as informações gravadas hoje, poderão ser facilmente utilizadas a favor de terceiros. Contratos garantem que, ao apagar sua conta na maioria dessas empresas, seus dados são apagados juntos. Mas até que ponto isso é verdade? E qual será esse impacto? A única certeza é das oportunidades de negócios que se abrem com o LBS.

Categorias:Informaticidade, TI Tags:,

Python Brasil chegando

Pessoal, pra quem não conhece, a Python Brasil é um dos maiores eventos sobre Python, e filiados, da América Latina, e nesse ano, como no ano passado, vai ser sediado em uma cidade mega fria: Curitiba. Sempre no fim do inverno, mas a tempo de aproveitar um bom vinho (isso pra aqueles que não são de lá, porque frio só é legal pra turista). Pra mim, uma pena, pois alguns poucos meses depois que eu voltei da terra das araucárias, o mesmo departamento que eu trabalhava vai receber e sediar o evento.

Bom, mas se eu não vou, porque eu to fazendo propaganda? Simples, pelo empenho que eu tenho visto de todos da lista grupy-pr.  Não vou citar nomes (pois posso cair naquele velho problema de deixar alguém de fora), mas um precisa ser lembrado, que é  o Ramiro, que desde a candidatura, tem feito um excelente trabalho, tanto em levantamento de recursos, datas, locais, agências de viagens, palestrantes convidados, palestras iniciais, assim como foi o aquecimento pra Python Brasil, o PythOnCampus.

Pra todos, espero que tenham um grandioso evento, com muita troca de networking e de experiências, e é claro, não deixem de conhecer Curitiba, a tal da cidade modelo. Uma dica de passeio rápido e low cost é procurar o ônibus da linha turismo. É bem legal.

E, se der certo, ano que vem nos encontramos novamente, quem sabe ainda em uma terra um pouco mais quente🙂

Grails from scratch

Alimentando o já movimentado assunto sobre frameworks para desenvolvimento web, hoje eu apresento uma opção que, acredito eu, será realidade no mercado de software nos próximos anos: Grails. O motivo? Agilidade. Principalmente no presente momento em que todo mundo quer (leia-se precisa) ser ágil.

Em alguns cenários, o principal empecilho pra dar uma acelerada no processo de desenvolvimento/entrega de algum produto, está relacionado com a tecnologia em uso, além é claro de problemas como maturidade da equipe, elevada curva de aprendizado, etc. Quando se foca em tecnologia, algumas questões precisam ser respondidas, como: É possível elevar a produtividade sem, necessariamente, aumentar o esforço? Quais os ganhos eu terei, a curto prazo, com o framework x? Terei como utilizar o código legado com essa nova aplicação?

Em muitos casos, é capaz de você mesmo ter criado a sua solução from scratch para responder essas perguntas. Por outro lado, se você ainda está pesquisando quem poderia melhor sanar essas dificuldades, eu lhe indicaria fortemente o uso do Grails.

O porque de toda essa confiança vem nos próximos slides que apresentam um step-by-step bem básico pra criação do esqueleto de uma pequena aplicação, que utilizei em um minicurso na última semana. Aproveitando a deixa, fica pra quem também tiver interesse.

Lembrando que os exemplos foram todos retirados do livro Getting started with grails.

Dica em JSF: não coloque negócio nos métodos gets/sets

junho 16, 2010 1 comentário

Esse problema começa, primeiramente, com a péssima prática de criar gets/sets indiscriminadamente. Essa é uma cultura que vem de casa, ou melhor, das universidades que ensinam os alunos a criar os objetos sem comportamento, os POJO como são mais conhecidos. Até então não há nada de errado, até porque essa é uma das maneiras mais simples de entender a orientação a objetos. O problema só ocorre quando você leva esse conceito para objetos que não deveriam ser tratados como um POJO.

Vejamos um exemplo: Temos uma classe Estoque, com um atributo capacidadeTotal. Em que momento você usaria o método setCapacidadeTotal no dia-a-dia da aplicação? A não ser que o espaço físico tenha aumentado, é pouco provável que esse método seja invocado. É preciso restringir esse tipo de liberdade para não causar problemas futuros na implementação. A dica por hora é a seguinte: Só crie gets/sets que você tem certeza que serão utilizados no presente momento.

Esse é um problema que poucas pessoam encaram realmente como um problema, visto que não causa danos no código. E como esse é um caso que volta e meia aparece na lista de JSF, esse post serve como tentativa de eliminar esse mau cheiro de dentro do código. Agora mais especificamente no contexto de JSF, vejamos o exemplo do código a seguir:

<h:selectOneMenu required=”true” label=”Origem Recurso”
value=”#{linhaCreditoBean.idcidade}”>

<s:selectItems var=”cidade”
value=”#{linhaCreditoBean.cidades}”
noSelectionLabel=”Selecione” itemValue=”#{cidade.id}”
label=”#{cidade.siglacidade}” />

</h:selectOneMenu>

A maneira mais simples de se implementar o gerenciador desta página é com um atributo List de Cidade, e o método getCidade() com a consulta no banco. Bem claro e simples. Acontece que no decorrer do ciclo de vida do JSF os métodos get/sets são chamados várias vezes, dependendo do estado que o seu bean estiver atuando. O resultado é consultas indevidas e sobrecarga na aplicação.

Uma maneira simples de se resolver é criando um método somente para popular a lista. Além, é preciso avisar ao JSF que esse método deverá ser executado antes dos demais. Isso pode ser feito com a annotation @PostConstruct do JSF, ou a annotation @Create do JBoss Seam. Algo assim:

@Create
public void carregarCidades() {
cidades = dao.recuperarCidades();
}

Veja que é importante criar métodos com esse comportamento, pois no decorrer do ciclo de vida do JSF os métodos get/sets são chamados indiscriminadamente, dependendo do estado que o seu bean estiver atuando, o que gera consultas indevidas no projeto.

<h:selectOneMenu required=”true” label=”Origem Recurso”
value=”#{linhaCreditoBean.idcidade}” id=”cidade”>

<s:selectItems var=”cidade”
value=”#{linhaCreditoBean.cidades}”
noSelectionLabel=”Selecione” itemValue=”#{cidade.id}”
label=”#{cidade.siglacidade}” />

</h:selectOneMenu>