quinta-feira, 28 de agosto de 2008

MiddleManagers podem salvar sua empresa

Estava lendo o blog do Joel on Software e me deparei com artigo que ele escreveu para a Inc.com.

O artigo, intitulado How Hard Could It Be?: How I Learned to Love Middle Managers mostra pela sua própria experiência que acreditar em tudo o que lê, e em todo o Hype sobre gerenciamento de projetos e empresas de software, pode ser desastroso. Ele empregou em sua empresa um modelo com o mínimo de hierarquia possível, pelo que entendi tem no máximo 3 níveis de hierarquia, e uma política de "portas abertas", e a equipe inteira é composta por profissionais com o título Member of Technical Staff.

Sobretudo, ele mostra que um modelo sem muita hierarquia é ótimo, porém este por sí só, não basta, é necessário empregar outras ferramentas para ajudar no gerenciamento, e uma delas é o MiddleManager.

Este "Middle Manager" pode ser interpretado como o "Homem do meio campo" =), que na verdade não vem a ser um gerente de projeto, mas aquela pessoa, eleita pela equipe ou pela gerência, como porta-voz, ou um meio de contato entre as duas partes, mas mesmo com isso, a possibilidade do nível mais baixo chegar direto para conversar com o nível mais alto existe, e é aplicada. Esta pessoa serve para falar coisas mais delicadas, ou para intermediar quando necessário pro alguém que não é muito bom com palavras.

Efim, é um artigo bem interessante e atual. Quem puder leia.

abraços.

domingo, 24 de agosto de 2008

Configuração WI-FI no Ubuntu BCM43xx (Broadcom)

Bom, outro post feito advindo da reinstalação do note esses dias atrás.

A configuração da rede Wireless é um saco neste note (Acer 5520-5142 - AMD 64 Dual-Core). Ele vem com uma placa wireless da Broadcom e utiliza o módulo bcm43xx. Ele até aparece na tela System -> Administration -> Hardware Drivers, mas você tenta habilitar ele, parece que habilita, baixa umas coisas da internet mas não funciona.Caso você não saiba se é este o seu caso, digite o comando "lshw" e procure por algo parecido com isso:

*-network
description: Network controller
product: BCM4311 802.11b/g WLAN
vendor: Broadcom Corporation
physical id: 0
bus info: pci@0000:05:00.0
version: 01
width: 32 bits
clock: 33MHz
capabilities: bus_master cap_list
configuration: driver=b43-pci-bridge latency=0 module=ssb
Eu achei várias soluções para isso, uma que compila um o ndiswrapper e instala o driver da placa pra windows, etc, etc. Mas a mais clean que eu achei foi a seguinte.
sudo apt-get install bcm43xx-fwcutter
sudo /usr/share/b43-fwcutter/install_bcm43xx_firmware.sh
Digite os comandos acima, ele instalará um aplicativo e executando ele, baixará o driver correto e compilará e pronto! Automagicamente sua wireless estará funcionando =)

Caso não funcione para você, poste um comentário aqui, que tento te ajudar com algumas outras possíveis soluções.

Abraços.

quinta-feira, 21 de agosto de 2008

Problemas aplicativos Java no Linux

Bom, esse é mais uma dica (lembrete) para mim, ou para quem mais achar interessante.
Bom, tive que reinstalar essa semana meu note com Ubuntu pq fiz uma cagada habilitando o repositório de desenvolvimento do Ubuntu para baixar o Subversion 1.5, e esqueci de comentá-lo novamente, e "sem querer" fiz um update =) Atualizou mais ou menos uns 800 pacotes!! Bem que achei meio estranho! =)

Enfim, devido a este fato, tive que reinstalar o ubuntu e reconfigurar os aplicativos todos, que já é um saco, principalmente por ser um AMD 64 bits.

Um dos aplicativos que uso é o SQLDeveloper da Oracle, e ele é feito em java. E não estava mais conseguindo iniciá-lo. Na verdade, ele iniciava, porém com uma "tela branca", parecia que não carregava os componentes. O erro que dava no console era esse:

Locking assertion failure. Backtrace:
#0 /usr/lib/libxcb-xlib.so.0 [0x7ff9fb8fa97c]
#1 /usr/lib/libxcb-xlib.so.0(xcb_xlib_unlock+0x24) [0x7ff9fb8faa84]
#2 /usr/lib/libX11.so.6(_XReply+0x10f) [0x7ff9fbd44f4f]
#3 /usr/lib/jvm/java-1.5.0-sun-1.5.0.15/jre/lib/amd64/xawt/libmawt.so [0x7ffa00283d7b]
#4 /usr/lib/jvm/java-1.5.0-sun-1.5.0.15/jre/lib/amd64/xawt/libmawt.so [0x7ffa00270e9c]
#5 /usr/lib/jvm/java-1.5.0-sun-1.5.0.15/jre/lib/amd64/xawt/libmawt.so [0x7ffa00270ffe]
#6 /usr/lib/jvm/java-1.5.0-sun-1.5.0.15/jre/lib/amd64/xawt/libmawt.so(Java_sun_awt_X11GraphicsEnvironment_initDisplay+0x9) [0x7ffa002711c9]
#7 [0x7ffa27350f7b]
O que fiz para resolver isso foi adicionar ao script de inicialização do aplicativo (sqldeveloper/sqldeveloper.sh), a seguinte variável:
export LIBXCB_ALLOW_SLOPPY_LOCK=1
O que essa variável quer dizer não tenho a menor idéia, muito menos o que ela faz, nem sequer fui atrás, a única coisa que sei é que ela resolveu o meu problema.

Talvez alguém saiba dizer o porque, ou tenha outra solução, ou quem sabe queira pesquisar pra saber o que essa variável faz. Comente ai!

abraços!

segunda-feira, 18 de agosto de 2008

Entendendo a JVM e Resolvendo problemas de Performance

Na verdade este post é apenas para elogiar os posts do pessoal do JavaBahia, mais especificamente o Alexandre M. Lima, quem foi que fez os posts.

Cada um tem informações muito úteis, segue os Links:
Parte 1
Parte 2
Parte 3
Parte 4

e apenas para linkar este post meu:

JVM Tuning

Valeu, abraços.

terça-feira, 12 de agosto de 2008

POP e SMTP com Autenticação via TELNET

Complementando um post antigo daqui.

Lendo email via Telnet.

telnet pop.meuservidor.com 110
USER meuemail@meuservidor.com
PASS minhaSenha

Pronto, vc já deverá estar conectado. Segue uns comandos úteis.
LIST - mostra quantos emails existem na sua caixa.
RETR [id] - mostra a mensagem com o ID digitado.
DELE [id]- apaga a mensagem com o ID digitado.
QUIT - Sai da caixa de email.

Enviando email via Telnet com Autenticação

Para autenticar você precisa transformar seu login e senha para base64. Para isso você pode usar este site.

telnet [smtp.meuservidor.com] 25
AUTH LOGIN [enter]
Y29tdWR57htUIo98t [enter] (usuario em base64)
MTIzNDU2
[enter] (senha em base64)
mail from: email@domain.com
[enter]
rcpt to: juliano.dc@gmail.com
[enter]
data
[enter]
[aqui vai o corpo do email]
. [enter]
quit


Pronto, mais uma vez, só pra eu ter isso em um lugar que eu ache depois =)

segunda-feira, 11 de agosto de 2008

C cedilha no Ubuntu

Bom, este post é só pra eu não precisar procurar novamente como configurar o Ubuntu para um teclado US International, para que ele apareça o ç ao invés de um C com acento.

Então para isso, edite o arquivo:
sudo vi /usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules

e na linha que começa com “cedilla” adicione ao final da linha a lingua en.
Fica mais ou menos assim:
"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en"

Pronto, problema resolvido. Basta restartar o XServer.

quinta-feira, 7 de agosto de 2008

Ubuntu Hardy + Subversion 1.5

Estava com problema para atualizar o subversion da minha máquina da versão 1.4.6 para a versão 1.5, pois ainda não está liberado nos repositórios padrões do Ubuntu.

Mas para minha felicidade achei este post, onde uma pessoa bacana mostrou o repositório para atualizar o subversion.

Para uma quick reference, o repositório é:

deb http://archive.ubuntu.com/ubuntu intrepid main restricted universe multiverse

Obrigado ;)

terça-feira, 29 de julho de 2008

Conhecimento vale mais que experiência

Estava lendo um post que veio pela newsletter do javalobby, que achei muito interessante e me fez pensar em algumas coisas.
Resumindo, a conclusão principal do post é: "Não adianta ter anos de experiência em [coloque-aqui-o-que-quiser] da forma errada.", ou seja, muitas vezes os anos de experiência são substituidos pela teoria (sem a prática), esta qual pode ser adquirida de várias maneiras.

Meio confuso não?! Vou tentar explicar um pouco melhor. Nos post do Jurgen Appelo, ele cita a questão da Lobotomia, e cita as seguintes frases, que tentei achar no wikipedia em português, porém as descrições não eram tão boas quanto as em inglês, então traduzo abaixo:

A Lobotomia, ou Leucotomia, que envolve o corte das conexões do Cortex Frontal, foi usado em alguns milhares de pacientes por todo o mundo durante o século 20, o que ocasionava uma mudança de comportamento, com o intuito de "curar" pessoas com esquizofrenia, e depressão profunda. Hoje este procedimento é considerado como "um dos maiores e mais bárbaros erros praticados pela medicina"
Jurgen faz uma pergunta após isso: "Você ainda ficaria impressionado com médico com mais de 20 anos de experiência em Lobotomia?"

O que me chamou atencão neste post foi justamente nunca ter parado para pensar sobre isso, e nunca ter feito uma comparação deste tipo. Realmente, 20 anos fazendo a coisa da maneira errada, vale mais que 1 mês fazendo da maneira certa? Isso nos remete também aquele outro post sobre A Fábula dos Porcos Assados.

O que ele ressalta ainda no post, é que a sua experiência como desenvolvedor não importa muito quanto aplicar a técnica ou tecnologia certa para resolver o problema, agora faz mais sentido aquela analogia de "Para quem só tem um martelo, tudo parece prego."

Outra frase de grande impacto citada por Jurgen, é a seguinte:
"Professionals don't match problems with their experiences. They match them with their knowledge."
tradução livre:
"Profissionais não usam a experiência para resolver os problemas. Eles usam o conhecimento para resolver os problemas."

Isso não quer dizer que você deva ficar em casa lendo livros sobre tudo que você saberá fazer tudo, mas diz que a experiência não diz muita coisa, se junto com ela não vier o conhecimento, e principalmente o conhecimento do correto.

Sem dúvida uma opinião um pouco radical, mas sem dúvida cheia de verdades. O que acha você? Pronto para uma lobotomia? Conheço uma pessoa cheia de experiência! =)

Cuil - Fim do Google?

Calma... o google não vai acabar! Depois do susto, agora você pode voltar a respirar. =)

Eu estou falando de uma empresa que está tentando se levantar contra o google na hegemonia de Search Engines, uma empresa cheia de promessas chamada Cuil (lê-se cool).

Esta nova Engine promete ser melhor, e indexar mais páginas que o Google e que a engine da Microsoft, e com um diferencial, que uma engine de ranking de consultas, além de procurar o que vc digitou, ela tenta descobrir o que é mais relevante com context, etc etc... enfim, não há como saber exatamente o que tem de tão revolucionário nisso, porque também isso deve ser segredo de negócio.
Algumas notícias:
IOL
MindTree

Com alguns simples testes que fiz aqui, não fiquei nem um pouco contente com a search engine deles. Primeiro procurei por PortalJava e não achou o site do portal. Depois procurei por meu nome, e não achou as coisas que normalmente aparecem, como é o caso do portaljava deste blog e outras coisas. Enfim, se eles querem mesmo entrar nesta briga, estão deixando muito a desejar, ou melhor, precisam mostrar alguma coisa =)

Mas enfim, fico no mínimo contente de ver alguém se levantando contra uma gigante sem ser outra gigante como é o caso da Microsoft com sua engine de buscas que, temos que concordar, já nasceu morta.

Outra coisa importante é ver o quão dependente do Google estamos hoje, seja com o buscador, seja com email, google maps, google docs, chat, etc. Até por isso que derrubar o google não é uma tarefa tão fácil, sem contar nossos aplicativos (no caso dos desenvolvedores) que estão cada vez mais integrando serviços do google, o que realmente é o negócio deles hoje.

Será que estamos vendo mais uma vez um ciclo sendo completado? Hegemonia Microsoft, deu lugar ao Google, que deu lugar... (mais no próximo capítulo =] )

sexta-feira, 25 de julho de 2008

JVM Tuning

Buenas!

Devido ao longo tempo sem postar algo realmente decente e técnico, este post vai ser sobre o que estou fazendo atualmente, que é instalando e configurando os servidores de produção aqui da empresa juntamente com uma outra pessoa.

O nosso ambiente compreende um cluster de Tomcats fazendo Session Replication. Nossos servidores são de arquitetura Intel e do modelo QuadCore (apesar de uma plataforma Sun ser bem mais performática ainda mais com Java), então algumas configurações são específicas para isso e para o nosso modelo de aplicação e talvez não sejam as melhores para o seu caso, mas de qualquer forma gostaria de compartilhar um pouco das coisas que aprendi e que estamos utilizando.

JDK - Porque a versão 6?

Além de ser a última versão, ela é superior a versão 5 em questões de performance, as configurações default da vm já vem otimizadas para uma melhor performance de runtime e um garbage colector mais eficiente.

Esta versão, por ser mais recente, usa de uma maneira mais elevada o poder de multi-processadores ou multi-cores e da grande quantidade de memória existente. Exemplos disso são, o uso do GC em threads paralelas, podendo utilizar até 32 Threads (veja mais na tópico sobre Tuning), usa também do paralelismo para a promoção de objetos do Young para o Old (Permanent) conforme figura abaixo (caso queira aprender mais sobre como funciona o Heap Space do java leia este documento e este documento)JVM Tuning

Como muitos sabem, é possível mudar o comportamento da VM e parametrizar muitas coisas através das VM Options que são passadas na inicialização de um processo.
No nosso caso aqui, utilizamos alguns parâmetros, que vou listar abaixo com uma breve descrição:

[JVM Parameters]
-server - Para simplificar, este parâmetro te da uma melhor performance final do que inicial. Caso sua arquitetura seja 64bits, o server é o default, e para arquiteturas 32bits, o client é o default.
-XX:+UseLargePages - Se o seu SO permite Large Memory Pages habilite esta função e sete também outros parâmetros relacionados a isso. Para saber mais sobre LMP leia este documento.
-XX:+AggressiveOpts - Habilita algumas otimizações de código, que segundo a documentação, é pra estar habilitada como padrão nas versões futuras.
-XX:+UseFastAccessorMethods - Usa versões otimizadas para métodos get de tipos primitivos.
-XX:+UseParallelGC - Habilita o GC para abrir várias thread e atuar paralelamente.
-XX:ParallelGCThreads=6 - Número de thread que serão abertas para GC. Por default é aberto uma Thread para cada processador existente.
-XX:+UseParNewGC - Igual ao parâmetro UseParallelGC, porém para a área Young do Heap.
-XX:+UseTLAB - Usa Thread-Local para alocação de objetos

[MEMORY]
-Xms 512M - Parâmetro de memória que define o mínimo de memória para a aplicação.
-Xmx 8G - Parâmetro de memória que define o máximo de memória para a aplicação

[YOUNG]
-XX:NewSize=256M - Tamanho mínimo para a área Young do Heap.
-XX:MaxNewSize=1G - Tamanho máximo para a área Young do Heap.

[OLD]
-XX:PermSize=512M - Tamanho mínimo da área de objetos permanentes em memória.
-XX:MaxPermSize=2G - Tamanho máximo da área de objetos permanentes em memória.

Obs: não sete os valores máximos maiores que o -Xmx.

Para ver oturos parâmetros para VM veja esta página.
Para ver alguns exemplos de tuning de aplicações veja este link.
Leia também a FAQ sobre GC.

Ferramentas para Monitoramento de Aplicações

Segue abaixo algumas ferramentas que podem te ajudar a entender melhor sua aplicação e te ajudar a chegar a valores para os parâmetros. Existem muitas outras, outra hora comento sobre algumas mais específicas, mas comentei sobre essas apenas porque já vem com o próprio JDK, e vc as encontra em $JAVA_HOME/bin.

  • jps - Mostra os processos Java que estão rodando na máquina.
  • jinfo - Mostra informações sobre o processo java que está rodando, como bibliotecas que ele está usando, parametros de inicialização, parâmetros gerais da VM como aquelas que aparecem em System.getEnv().
  • jmap - Mostra informações sobre o uso de memória por uma aplicação, uso de cada divisão da Heap como a Young, Old, Tenure, Perm, etc.
  • jsadebugd - Este processo se junta ao processo passado como parâmetro e adiciona propriedades de debug ao processo em questão.
  • jconsole - JConsole é uma ferramenta visual que monitora e mostra várias informações sobre um processo, como uso de memória, número de threads, processamento, etc.
  • jstat - Coleta e loga informações estatísticas sobre performance.

Considerações

Conforme dito acima essas configurações são específicas para cada caso, então se precisar de ajuda sobre algumas configurações para um caso específico comente aqui, que responderei assim qeu possível.
Como tuning é um trabalho constante, a monitoração e o profiling são coisas extremamente importantes para que você consiga entender sua aplicação e definir o que usar e o que não usar.
Conforme for otimizando a nossa aplicação estarei fazendo update neste post, ou escrevendo novos posts se for o caso.
Enfim, espero que isso possa ajudar algumas pessoas, e com certeza vai me ajudar futuramente como documentação.

segunda-feira, 21 de julho de 2008

Eleições nos Estados Unidos [fun]

Pensando nas eleições dos estados unidos, eu achei um candidato impressionante, que vale muito a pena acompanharmos e até apoiarmos. Provavelmente você não ouviu falar muito dele, nem deve ter o visto, mas é um azarão que correndo por fora vem brigando pela preferência dos americanos nas eleições. Não se chama Barak Obama, muito menos Hillary Clinton, muito menos ainda John McCain, ele é simplesmente conhecido como Walter, e sempre acompanhado de seu "segurança" e fiel amigo Jeff Dunham.

Veja o lançamento de sua candidatura.
Veja seu último discurso.
Veja outros vídeos sobre Walter.

pbs: para meu amigo pepe este vídeo.

quarta-feira, 16 de julho de 2008

Nerd Test v2

Só para constar o que já havia feito num outro post, mas este aqui é um pouco abrangente e o resultado é mais detalhado.
Confira meu resultado, e faça o seu também poste aqui depois um comment para eu ver o seu também.

NerdTests.com says I'm a Dorky Nerd King.  What are you?  Click here!

sexta-feira, 4 de julho de 2008

Eclipse Ganymede - Server Start Timeout (Hint)

Just a Hint, para pessoas que como eu, precisam alterar o Start timeout do servidor dentro do Eclipse, e estava acostumado a fazer isso no Preferences, noGanymede mudou.
Agora esta configuração fica nas propriedades do Server. Então, abra o Server (clique duplo no servidor), e na parte superior direita existe um dropdown chamado Timeout, e ali você consegue alterar o timeout do seu Server. Conforme figura abaixo:

Eclipse Ganymede - First Impressions

Para quem ainda não sabe o Eclipse Ganymede, ou Eclipse 3.4 foi lançado há umas 2 ou 3 semanas atrás, com muitos bugfixes e novas features bem legais.
Para quem não sabe o porque do nome Ganymede, este nome vem de uma Lua (satélite) de Júpter, a maior delas. Para quem não sabia o porque dos nomes anteriores, Callisto e Europa, estas também são luas de júpter.

Depois desta histórinha, quero elogiar o pessoal do Eclipse por uma feature principal, um download específico para Linux AMD 64. Ieiii!
Outra coisinha bem legal e simples foi a alteração do arquivo eclipse.ini, coisinha simples e prática. A alteração dos parâmetros de memória, uma das coisas que sempre qeu baixava uma versão do eclipse tinha que alterar, agora não preciso mais =) ieeeiii².

Bom, esta é mais uma versão sem muita alteração na plataforma em sí, mas em correção de bugs e novas funcionalidades, e "embelezamento".

Bom, falando de coisas um pouco mais práticas e técnicas, o esquema de Install/Update do eclipse ficou um pouco diferente mas ficou melhor. Agora você consegue saber exatamente o que tem instalado no seu eclipse as versões e consegue fazer revert de instalações. Tá eu sei que isso já existia, mas era bem ruinzinho de se achar naquilo, hoje está bem melhor esta parte.

Você também consegue pesquisar dentro dos "update sites" configurados por plugins, apenas digitando uma palavra chave. Ficou bem bacana. Porém, eles bem que podiam integrar o Plugin do Subclipse nativamente já. SVN já deve ser o controlador de versão mais usado, mas o eclipse só vem nativamente com CVS, e acredito eu, que o Subclipse deva ser o plugin mais usado para isso, porém eles tem um projeto incubado que é um plugin para SVN, mas pelo jeito ainda não está pronto.

Bom, pelo que vi no site do eclipse, houve grandes melhorias em Regex dentro da IDE, em todas as opções de busca, Import/Export de Launch Configurations. Se você possuia aquelas configurações bizarras para algumas aplicações, agora vc não precisa mais abrir os dois eclipses (o velho e o novo) e ficar copiando uma para a outra, basta exportar e importar =)

Outra feature bem bacaninha é o esquema de mostrar o caminho e pacote do arquivo que você está editando. Isso evita muitas merdas, principalmente se você é acostumado como eu a abrir arquivos através dos atalhos CTRL+SHIFT+R e CTRL+SHIFT+T. Bom, para abilitar esta feature use o atalho ALT+SHIFT+B.

Outra feature bem bacana, é a Format Edited Lines on Save, que se encontra nas preferences no menu Java > Editor > Save Actions. Bem útil isso ai. Sem contar as diversas melhorias no editor de código, code assists, etc. Tem features novas pra caramba, quem quiser saber mais de uma olhada no revision notes.

Infelizmente, apesar de existir já um download específico para Linux AMD 64bits, o velho problema conhecido desta plataforma com Java6 ainda existe, não sei bem de quem é a culpa, mas espero que isso se resolva no update 10 do JDK6 (que ainda está em Beta). Bom, não sei quantos sabem mas existe uma solução paleativa para isso que é adicionar um paramentro no arquivo eclipse.ini, logo abaixo do parâmetro -vmargs que é:
-XX:CompileCommand=exclude,org/eclipse/core/internal/dtree/DataTreeNode,forwardDeltaWith

Contudo, o que pude perceber mais uma vez, é que todo o processo de importação do antigo workspace continua bem clean. Bem bacana mesmo.

Gostaria também de parabenizar o desenvolvedores do Eclipse, os quais mais uma vez entregaram o projeto dentro do prazo e com alta qualidade. E isso como todos sabemos é difícil hein...

domingo, 15 de junho de 2008

Nerdson - Paródia de Eduardo e Mônica

Um site que realmente acho legal é o tal do nerdson, não sei porque mas me identifico com ele =)

Vejam esta tirinha!

sexta-feira, 9 de maio de 2008

Cansou da cor das divisórias da sua baia? Forre-as com Refcardz!!

Talvez alguem esteja se perguntando: WTF??!
Pronto, agora vc tem um monte de papelada de alta qualidade para colocar pregado nas paredes de sua baia, ou sala, ou o que for que vc use.

Então, estou falando dos novos, bonitos e práticos Refcardz!
A idéia, dos caras foi comprimir as informações em um pequeno manual, feitas por pessoas que entendem do assunto, layoutado por profissionais de diagramação, e publicados gratuitamente =) quer coisa melhor? Agora você não precisa mais daqueles manuaisinhos (ruins) que nem lembro o nome, mas vc encontra em todo o lugar.

Pra quem ainda não conhece, de uma olhada em www.refcardz.com.
Hoje, há apenas 4 tipos diferentes:
- Spring Configuration (excelente!!!!)
- Getting Started with Eclipse (porra por que não tinha um troço destes no meu tempo?!)
- GWT Style, Configuration e JSNI Reference (não cheguei a ver ainda)
- Getting started with ajax (um quick reference de diversas bibliotecas e frameworks para se trabalhar com ajax)
Apesar de começar com apenas 4 refcardz (começaram bem pra caraleo), existe já o cronograma pronto para diversos outros.

Então fique de olho, e vamos colorir nossas paredes! =)

sábado, 12 de abril de 2008

Continuation - WTF?!?

Neste post saberemos o que é essa tal de Continuation e pra que serve. Este post foi motivado por este post de javascript, e quando comecei a pesquisar se não havia mesmo alguma implementação para Thread, ou alguma coisa parecida, em JavaScript, e me lembrei desta tal de Continuation.

Mas afinal, o que é Continuation?

Uma boa definição, e de fácil entendimento eu achei no projeto Cocoon da Apache. Na documentação de pageflow eles dizem o seguinte:

"...Think of a continuation as an object that, for a given point in your program, contains a snapshot of the stack trace, including all the local variables, and the program counter. You can not only store these things in the continuation object, but also restore the execution of the program from a continuation object. This means that the stack trace and the program counter of the running program become the ones stored in a continuation."

quarta-feira, 26 de março de 2008

AJAX desapontando?

Segundo pesquisa feita pela Forrester Research, os aplicativos feitos em AJAX para substituir aplicativos "desktop" tem deixado muito a desejar. Segundo a pesquisa, o maior descontentamento dos usuários é com o tempo de resposta.
A pesquisa aponta também as tecnologias emergentes para RIA como é o caso do Silverlight da Microsoft, o Adobe Flex. Como era de se esperar o JavaFX não foi nem mencionado nesta lista, devido ao seu "respiro de vida" ainda.
Pelo visto, os tempos de "programadores WEB" está chegando ao fim mesmo =) O jeito é fazer como nosso amigo Erko e investir esforços nessas tecnologias emergentes. Quem sabe o Java Web Start não ganha uma sobrevida e seja trazido a tona novamente, embora, os esforços da Sun hoje concentrem-se no JavaFX.

Quem está apostando no que? Será que aplicações Web como conhecemos hoje realmente irão desaparecer? Daqui uns dias iremos ver engraçados cartezes de "Code JSP/ASP/PHP/HTML/JavaScript for Food"! =)

terça-feira, 25 de março de 2008

Regulamentar as profissões de Informática?

É isso que quer o Senador Expedito Júnior de Rondônia, em seu projeto de Lei apresentado. O projeto foi apresentado e aprovado pela CCT a duas semanas atrás.

Li um artigo que achei bem interessante e bem escrito: http://www.dicas-l.com.br/linha_de_data/linha_de_data_20080319.php

Estamos todos a perigo de sermos taxados como contraventores ou comprar nossa liberdade de exercer a profissão! Este projeto de Lei é totalmente NONSENSE!
O que vocês acham?

segunda-feira, 21 de janeiro de 2008

Projeto Semear - Leia por favor

Olá a todos, este é um post "beneficiente", então se puder tire 5 minutinhos e leia por favor.


HISTÓRICO DO PROJETO

O Projeto Semear nasceu no ano 2000, a partir da vontade e esforço de um grupo de pessoas de diferentes formações e experiências. Trabalhando inicialmente nas dependências da escola Municipal Grizelde Fischbom aos sábados, atendendo em média 100 crianças. No ano de 2003 formalizamos a Instituição com a elaboração do Estatuto e demais registros Em 2005 conquista um espaço próprio (Rua Cerejeiras, 800 – Jd. Ana Claudia) ainda que pagando aluguel. O número de crianças aumenta e o trabalho também, a luta para o pagamento das despesas é diária, mesmo contando com a colaboração dos parceiros e associados. O Registro de Utilidade Pública Federal é concedido em maio de 2006. Hoje atendendo em média 210 crianças que participam das oficinas de artes (dança, violão, teatro, percussão e coral), oficinas profissionalizantes (crochê e bordado manual), oficina esportiva (xadrez) e do curso "orientando para vida".
A instituição é mantida através de parcerias (empresas, Prefeitura Municipal) e trabalhos voluntários, mantém no bairro vínculos e ações conjuntas com escolas, posto de saúde, parceria com a faculdade (FACEMED e UTFPR) e outras instituições.
O resultado da produção da oficina de bordado manual e crochê, já está sendo comercializado, inclusive nos Estados Unidos, estamos qualificando nossa linha de produtos para receber o selo ÑANDEVA.
Este ano, com a parceria da comunidade Rotaract, equipamos uma biblioteca que será disponibilizada à população do bairro e especialmente às nossas "sementinhas".
Pretendemos ainda neste ano, implantar a oficina de bordado industrial, aproveitando a verba recebida do Criança Esperança.

Outras Informações:


Este projeto social, surgiu no princípio de uma idéia da minha mãe, porém só foi possível devido ao incentivo e a ajuda de muitas outras pessoas. Como todo o projeto social, e também para os que são da área de informática, sabemos que projetos sociais, tanto quanto projetos OpenSource, tem uma rotatividade enorme de pessoas, e apenas se mantém as pessoas chave, por isso, neste periodo de existência do projeto, muitas pessoas já passaram por ele.

Contudo, a intenção deste email é de pedir a ajuda de vocês para este ano, pois há grandes espectativas para o crescimento do projeto. No período de natal e fim de ano, todos ficam benevolentes, querem fazer doações, comprar presentinhos. Eu acho que podemos ajudar durante o ano todo na educação das crianças beneficiadas, o que é o mais importante. Ao meu ver, acredito ser mais importante "Ensinar a pescar", do que apenas "dar o peixe".

Bom, sei que muitos de vocês não conhecem este projeto em si, nem conhecem a minha cidade (onde nasci e onde moram meus pais) Medianeira - PR, porém, caso aceitem fazer a doação mensal, saibam que o dinheiro está indo para um lugar onde ele será bem empregado. E hoje eu realmente entendo aquela frase "o mínimo que você possa contribuir, já é o suficiente" (e você entenderá também logo abaixo).

O projeto, não precisa apenas de dinheiro, existem vários outros meios de se ajudar um projeto social, muitas pessoas não tem tempo disponível, ou sendo bem sincero, não tem muito saco para trabalhar num projeto social, existem vários perfis de pessoas. Algumas podem ajudar com o trabalho de diversas maneiras, (tem muita coisa que precisa ser feita), outras podem ajudar com doações de material, ou doações financeiras. Caso o seu perfil não seja o de ajudar com o trabalho, ou talvez a distância o impeça de tal ato, ajude financeiramente. Cada pessoa sabe com quanto pode ajudar todo mês.

Agora, vejam alguns números, e entendam o porquê qualquer ajuda financeira é de muita grande valia.
O projeto conta com apenas 36% de custos pagos mensalmente, que são frutos de parcerias fixas, com empresas e prefeitura. E isso representa apenas R$ 900,00. Ou seja, 64% que equivalem a mais ou menos R$ 1800,00 mensais, são oriundos de parcerias eventuais, doações eventuais, vendas de produtos produzidos pelas oficinas do projeto, campanhas, etc. Ou seja, as pessoas do projeto, precisam correr todos os meses atrás de recursos para sobreviver durante o ano, e continuar com o seu trabalho.
Agora vamos há algumas contas: Se 30 pessoas, puderem doar R$ 10,00 (dez reais) mensais, em débito automático, isso gerará uma receita de 10% do valor necessário mensalmente. Parece mentira né? Pois é, eu também fiquei pasmo com esses números. Por que, sinceramente o valor total de custos que há é pouco, e os parceiros conseguirem dar tão pouco dinheiro é vergonhoso. Mas, não posso criticar, porque eu até hoje não dava nada. Mas vou começar agora, então por favor, quem puder ajudar com qualquer quantia, sei que tem pessoas que podem dar mais, outras não podem dar, então por favor, quem puder ajude. Você viu que realmente qualquer quantia faz uma enorme diferença.

Estaremos reformulando o site deste projeto, e em breve ele terá um domínio próprio, e será atualizado constantemente. Para isso preciso de pessoas que possam ajudar voluntariamente nisso, não é muita coisa. O projeto já faz através de uma oficina de bordado, materiais para vender, como colchas, e muitas outras coisinhas, porém este ano com a compra de equipamento este trabalho ficará mais rápido, pois antes era tudo manual. Este material, será vendido no site, e encontraremos outros meios de vendê-lo também, mas eu gostaria de saber se tem alguém que conhece, ou estaria interessado também em procurar lojas que comprem este material, ou até mesmo conheça quem venda tais produtos e esteja interessado em ajudar. Bom, além destas coisas, existem muitas outras formas de se ajudar. Caso haja interesse me mande um email que estarei repassando para as pessoas responsáveis.

Obrigado pela atenção de todos, desculpa o texto longo, e se quiser repassar para alguém que também possa ajudar, faça este favor. Repassamos tanta besteira por email, perdemos tanto tempo lendo coisas inúteis, ou aqueles textos bonitinhos que quando terminamos de ler, nem lembramos mais de nada.

Sobretudo o mais importante, são as contas que podem ser usadas para débito automático em suas contas. Caso queira doar ligue no seu banco e peça para cadastrar a conta para débito automático em sua conta, ou agende uma transferência mensal. Lembre-se, qualquer valor é de grande ajuda.

SICREDI Ag: 710 C/C: 25.102-0
BANCO DO BRASIL Ag: 0735.8 C/C: 27.581-6
CAIXA ECONOMICA Ag: 0956 C/C: 013.66.375.1

Me coloco a disposição para qualquer dúvida que possa haver. E peço para quem puder, que copie e encaminhe este email para divulgar. Muito Obrigado.