O que torna os Gerentes de Projetos irritantes ?

Como gerentes de projeto, sempre estamos tentando fazer o melhor para o projeto. Ou não? Será que a visão de outros stakeholders não pode ser diferente, e estamos na realidade atrapalhando o trabalho dos demais? Obviamente isto parece um exagero, mas encontrei um artigo no site About.com, que fala sobre o que os desenvolvedores web odeiam nos gerentes de projeto.

O que torna os gerentes de projeto irritantes?
*) Quando assumem que podem fazer o trabalho da equipe

Gerentes de projeto não devem se meter a fazer o trabalho dos outros, mesmo que já tenham trabalhado nesta área antes. Trata-se de uma questão de foco, respeito e ética. Cabe ao gerente definir escopo, planejar prazos e deliverables e controlar custos, com o apoio da equipe. Também não há nada de errado em discutir diferentes técnicas e metodologias para chegar ao resultado.

O problema está quando o gerente começa a pisar na linha da arrogância e falta de respeito profissional, acreditando que pode fazer o trabalho do outro profissional melhor do que ele. Se o profissional não desempenha, há que substituí-lo, e não fazer o trabalho por ele.

*) Quando definem prazos ridículos

Definir uma meta de prazo insana não quer dizer que acontecerá. Este tipo de situação torna-se motivo de piada pela equipe, e o gerente perde credibilidade. No projeto, existem pressões naturais para redução de prazo, e o gerente precisa administrá-las para manter a bom senso nas estimativas, e não ceder cegamente ao que o patrocinador ou o cliente desejam.

*) Quando formalizam opiniões informais

Esta é ótima. Muitas vezes, especialmente em fases iniciais do projeto, o gerente quer obter algumas estimativas macro para seu planejamento. Ele insiste com a equipe que lhe passe alguns números de referência… e depois os formaliza como uma avaliação firme. Este é um “golpe baixo” que criará uma energia negativa da equipe em relação ao gerente de projeto. Pior ainda é quando, em uma reunião, ele pressiona para que se digam números em frente aos outros stakeholders, com o pretexto de que é “para ter uma idéia”. Especialmente quando quem está na reunião é o cliente, está criado o cenário para dificuldades de comunicação no projeto.

*) Quando estão mais preocupados com relatórios do que com resultados

Reportar atividades é fundamental nos projetos… mas bom senso também. O gerente de projeto deve saber dosar a necessidade de relatórios de status para que não se sobreponham às atividades em si. Mais ainda, deve ter o discernimento para compreender situações nas quais os relatórios devem ser simplesmente ignorados, para atender a necessidades críticas do projeto.

*) Quando não conhecem os detalhes do projeto

Os gerentes tem uma expectativa de que cada profissional que participa do projeto conheça muito bem sua área de atuação. No entanto, o mesmo é esperado da equipe… que o gerente saiba se comunicar adequadamente sobre o projeto e que tenha as informações chave que a equipe precisa para desempenhar bem suas atividades.
Luiz Paiva é Gerente de Projetos e mantenedor do Site http://www.ogerente.com

Fonte: http://www.projetizado.com.br/artigo.asp?sequencial=20

Agile Tour Belém 2011

Local: Auditório do Cesupa José Malcher

Investimento: R$ 20,00

Inscrições pelo site http://tasafo.org/atb2011/inscricao/

Agile Tour é atualmente a maior conferência sobre metodologias ágeis no mundo. Em sua terceira edição, em 2010, o evento foi realizado em mais de 30 cidades e em mais de 10 países.

Organizado pelas comunidades ágeis locais, é um evento sem fins lucrativos e tem como principal missão a de criar lideranças em ágil nas várias regiões do mundo. Com isso, tornará possível a promoção de uma comunicação em massa sobre ágil, compartilhamento de visões e casos de sucesso, e o incentivo à adoção de frameworks e metodologias ágeis por grupos e empresas.

Em 2010 o Agile Tour Brazil teve 5 cidades-sede e foi responsável por disseminar a cultura ágil a centenas de profissionais.

Em 2011, o evento terá uma expansão em número de cidades e estará presente em todas as regiões do Brasil. E Belém será uma das cidades que receberá essa turnê de grande sucesso!

Algumas atitudes que prejudicam sua carreira profissional

As pessoas no trabalho possuem uma conduta diferenciada, cada um tem jeito de agir e de ser diante de situações e no campo profissional. Se você pensa que vale tudo, como trabalhar depois do expediente, ficar provando a todos e ao chefe que é competente, bom tome cuidado, pois não funciona bem assim.
Foi se o tempo que puxar o saco do patrão, ficar trabalho horas depois se de seu expediente contava, o que realmente importa é cumprir com o que lhe foi designado e superar as expectativas creditas em você. Se tiver sendo sobrecarregado(a) de trabalho converse com seu chefe e ceguem a um acordo sobre o que é prioritário.
Tome cuidados com algumas atitudes que prejudicam sua carreira, algumas delas são:
Não ir contra a opinião da maioria dos seus colegas de trabalho, isso conta bastante para não gerar mal estar no ambiente de trabalho, mas não quer dizer que você deve concordar com tudo, troque experiências e exponha suas opiniões também, desde que sejam bem fundamentadas.
Se você acha que pedir ajuda é sinal de incompetência, esqueça isso, ninguém é suficiente para saber tudo e não posso pedir uma mãozinha para alguém.
Se você cometeu um erro, e já vai logo achando que será demitido (a), fique calmo, pois se o erro não por querer, não tem tantos motivos para achar isso, assumir o erro é bem importante, além de ser respeitado (a) por isso.
Vão achar que só sua amizade com o chefe é importante para manter sua carreia em pé, pois ter um bom relaciomentos com todos a sua volta é essencial.
Mais uma coisa, pensar que pelo fato de você trabalhar anos na empresa te trará alguma promoção é engano, pois o que te leva a um patamar mais alto é seu bom trabalho, reconhecimento e bons resultados apresentados na empresa!

Fonte: http://www.guiadicas.com/algumas-atitudes-que-prejudicam-sua-carreira-profissional/

Como remover pacotes inúteis do Linux

Fonte: http://meupinguim.com/como-remover-pacotes-inuteis-linux/
por Helbert Rocha no dia 04/jan/2011

Sabe aqueles pacotes inúteis que acabam ficando como sobra de algum upgrade entre uma atualização de sistema ou outra? Não, não sabe. Acredito que você nem saiba que eles estão aí no seu sistema como verdadeiros parasitas sem a menor utilidade. São pacotes órfãos. Pacotes que deixaram de ser utilizados pois se tornaram obsoletos ou suas tarefas foram submetidas a outros pacotes mais novos. Tome conhecimento deles e os remova sem dó nem piedade agora, manolo.

Deborphan

O comando “deborphan” vai identificar e remover esses pacotes órfãos que o APT deixou no seu sistema. De maneira simples, basta executar os seguintes comandos abaixo. O primeiro é para instalar o Deborphan. O segundo é para o Deborphan identificar os pacotes inúteis e o terceiro é para remover os pacotes inúteis.

$ sudo apt-get install deborphan
$ deborphan
$ sudo deborphan | xargs sudo apt-get -y remove --purge

Observações

Em alguns casos, que são raros, alguns pacotes aparecerão nesta listagem porém eles não são inúteis. Têm funcionalidades e são usados pelo sistema. Saiba identificá-los antes de executar os comandos acima pois os procedimentos aqui apresentados são de sua própria responsabilidade e risco.

Ignorando pacotes não-órfãos

Devido a observação acima, para fazer o Deborphan ignorar algum pacote e não removê-lo, basta executar o comando abaixo:

$ sudo deborphan -A pacote_a_ser_ignorado

OpenProj – Uma solução aberta para o gerenciamento de projetos

Fonte: http://agerenciaagradece.wordpress.com/2010/12/07/openproj-uma-solucao-aberta-para-o-gerenciamento-de-projetos/

O OpenProj é uma aplicação gratuita de gestão de projetos. Esta ferramenta substitui plenamente o Microsoft Project e outras aplicações similares. Mais de 1 milhão utilizadores certificam a qualidade deste gestor de projetos, assim, tornando-se um dos maiores e mais conhecidos softwares open source. O OpenProj é disponibilizado para Linux, Mac e Windows em vários idiomas, incluindo o português.

O OpenProj é composto pelas scheduling engines mais avançadas do mercado, permitindo o uso de gráficos Gantt, diagramas de rede PERT, gráficos WBS e RBS, gráficos de custos e de valor e várias outras funcionalidades.

 

O processo de instalação é extremamente simples, solicitando apenas a confirmação do caminho de instalação do software. Ao término da instalação você tem a opção de já executar o OpenProj. Iniciando o OpenProj pela primeira vez, você verá o termo de aceite da licença de uso do software ( Common Public Attribution License Version 1.0 (CPAL). Em seguida você pode registrar seu e-mail para receber novidades sobre o produto e então começar a utilizar o produto. O OpenProj apresenta uma interface de fácil utilização e na instalação reconhece automaticamente o idioma utilizado.

Interassado no OpenProj? Basta clicar aqui para fazer o download para seu desktop, ou acesse o site para maiores informações.

Reduza o tamanho dos seus pdf’s!

Autor: Cláudio Novais

Fonte: http://ubuntued.info/reduza-o-tamanho-dos-seus-pdfs

Este artigo tem o objectivo de adicionar a funcionalidade de comprimir os pdf’s no Ubuntu, sem perda de qualidade! Esta funcionalidade de compressão dos pdf’s é possível através de um script criado por Ricardo Ferreira chamado “Compress PDF“. Actualmente o script integra-se na funcionalidade de scripts do Nautilus (o explorador de ficheiros do Ubuntu) e por isso está sempre presente de uma forma muito rápida para que sempre que precise de reduzir o tamanho de um pdf não perca tempo.

Ficheiro com compressão e ficheiro sem compressão!

 

Este artigo foi escrito a pedido do próprio autor, o Ricardo Ferreira, para dar a conhecer esta funcionalidade que certamente muitos utilizadores a acharão muito importante. Aliás, esta funcionalidade, o Compress PDF, é considerada tão importante que em breve será adicionada ao excelente programa Ubuntu Tweak.

Modo de execução do CompressPDF

Actualmente, e infelizmente, apesar do script estar hospedado no site Launchpad, ele não tem o método de instalação comum do Ubuntu: através de repositórios. Por isso, para já, o utilizador não terá acesso a um instalador do script que o mantenha sempre na última versão. Terá assim, de instalar manualmente o script e, se precisar de actualizar, posteriormente, terá de o fazer manualmente.

CompressPDF em funcionamento

O script faz uso de umas bibliotecas de janelas de diálogo, chamadas Zenity e por isso mesmo tem algumas dependências que deverão ser satisfeitas antes de instalar o script. Para além disso, deve-se salientar que este excelente script está já disponível em várias línguas, actualmente 8,  nomeadamente a portuguesa!

Ficheiro com compressão e ficheiro sem compressão!

Por fim resta dizer que pelos testes que fiz (ver vídeo no final do artigo), a compressão é realmente uma mais valia. Por exemplo imprimi em PDF o artigo “Como instalar o Ubuntu Maverick Meerkat” que resultou num ficheiro de 477KB, depois comprimi e resultou num ficheiro exactamente igual mas com o tamanho de 135KB!

 

Instalação

Tal como referido acima, a instalação terá de ser feita manualmente, por isso, deverá seguir este procedimento de uma forma sequencial não saltando nenhum passo!

Satisfaça as dependências

Para ter acesso às funcionalidades deste script, antes de o instalar, precisa de ter satisfeitas algumas dependências de certos pacotes. Para tal, abra o terminal e escreva o seguinte:

sudo apt-get install ghostscript zenity

Zenity é o pacote que proporcionará as janelas de diálogo e o pacote ghostscript permitirá a compressão dos pdf’s.

 

Instale o Compress PDF

Após a instalação das dependências, já poderá instalar o Compress PDF. Actualmente a versão do Compress PDF vai na versão 1.4, por isso, este procedimento serve para essa versão. No caso de este artigo se tornar desactualizado agradecemos que indique nos comentários para actualizar para a nova versão.

Para começar abra o terminal. De seguida deverá escrever o seguinte no terminal que fará download do Compress PDF para a sua Pasta Pessoal:

 

Depois de concluída a transferência, deverá copiar o seguinte para o terminal para descomprimir o ficheiro transferido para a pasta correcta, a pasta dos scripts do Nautilus:

tar zxvf Compress-PDF-1.4.tar.gz -C ~/.gnome2/nautilus-scripts/

 

Após este último passo, o Compress PDF ficará logo disponível para o utilizar. No entanto, antes de utilizar, recomendo que elimine o ficheiro que fez download, pois não precisará mais dele. Ele está na sua Pasta Pessoal com o nome de “Compress-PDF-1.4.tar.gz“.

Levar trabalho para casa faz mal à saúde

Levar trabalho para casa é uma prática polêmica. A maioria torce o nariz só de pensar nesta hipótese, outros não se importam, mas hoje em dia parece que poucos conseguem escapar do hábito. “Respiro, vivo o sindicato. Minha mulher até pediu para eu trazer a cama para cá”, afirma Wanderley Milton Alexandre, assessor do Sindicato dos Trabalhadores da Construção Civil, que trabalha até aos domingos. Quando não vai ao sindicato, ele leva trabalho para casa.

Alexandre conta que trabalha há 34 anos na entidade. Ele diz: “gosto de trabalhar, mas não sei por que faço isso. Vi derrubarem a sede velha e a construção da nova. Raras vezes passeio ou tiro férias. Os filhos me cobram porque não acompanhei o crescimento deles. Eles não são muito ligados a mim e me arrependo. Casei com 21 anos. O tempo foi passando e não vi”, lamenta.

A assessora técnica Andréa Isaias leva trabalho para casa. Ela explica que faz isso só quando o trabalho está atrasado e tem prazo para entregar. “Nem sempre levar trabalho para casa significa falta de organização minha. Não depende apenas do meu empenho. Outras pessoas estão envolvidas”, diz.
Izilda Alves Álvares, que trabalha na área de recursos humanos, faz o trabalho no ônibus porque mora em Campinas e trabalha em São Paulo. “Como viajo todos os dias, aproveito as 2h30 de viagem e coloco tudo em dia”, declara.

A secretária Vera Lúcia de Godói conta que levou trabalho para casa durante 10 anos, numa época em que desenvolvia muitas atividades. Fazia assessoria bancária, degravação de fitas e produzia boletins. De acordo com ela, era uma vida sem descanso. Mas a secretária diz não se arrepender, pois ficava feliz quando o trabalho terminava.

Brigas em casa e problemas de saúde
A assessora de imprensa Janaína Bastos conta que cansou de levar tarefas do trabalho para fazer em casa. Revisão e redação de textos, materiais para leitura, preparação de atividades. “Eram noites e finais de semana sem fim. Na segunda-feira de manhã, já estava cansada, mas era incapaz de dizer que não terminaria uma tarefa”, relata. “O resultado é que ganhava mais trabalho a cada dia, mas ainda assim achava que tinha que dar conta de tudo”.

Aos poucos o hábito começou a gerar problemas em casa. Janaína deixou de fazer programas com o marido e o filho e tiveram início as cobranças familiares. As brigas tornaram-se corriqueiras. “Meu marido começou a ficar sem falar comigo durante longos períodos. Foi muito ruim. Passei então a dedicar mais momentos aos dois, mas, mesmo nessas horas, estava sempre pensando nas tarefas que deixava de lado. E aí era uma culpa terrível por dar atenção à família e deixar o trabalho ou por trabalhar e deixar a família”, conta.

De acordo com Janaína, o hábito só foi abandonado quando ela começou a ter várias indisposições que a levaram repetidas vezes para o pronto-socorro. “Os médicos sempre atribuíam o problema ao estresse e à falta de descanso, mesmo sem que eu relatasse que trabalhava à noite e no final de semana. Eles diziam que era preciso dormir bem, ter lazer para não adoecer”, lembra.

Passados os sustos, ela diz que, de vez em quando, ainda leva algum trabalho para casa. “Mas só toco nele quando é absolutamente imprescindível. Fora dessas situações, acabo esquecendo que o levei. A tarefa fica lá, numa bolsa ou num envelope, até eu voltar para o trabalho no dia seguinte ou na segunda-feira. Estou mais saudável e em paz com minha família”, comemora.

Riscos para a saúde
“Quem leva trabalho para casa, além do realizado na empresa, agride a própria saúde e pode ainda ameaçar a da família”, adverte o professor adjunto do Departamento de Medicina Preventiva e Social da Faculdade de Medicina da Universidade Federal da Bahia, Paulo Gilvane Lopes Pena. Para ele, “a residência é um espaço fundamental para a melhora da qualidade de vida” e a realização de tarefas do trabalho em casa, além de agredir a saúde, traz riscos de “desestruturação familiar e prejudica a realização das atividades domésticas.”

Pena diz que as mudanças ocorridas nas empresas são as razões que influenciam a prática de levar trabalho para casa. A exigência do trabalhador polivalente – uma pessoa que acumula várias funções diferentes – é uma delas. Também as revoluções tecnológicas, que se acentuam e exigem formação permanente, requerem esforço extra, quase nunca considerado pela empresa. “O processo de aprendizado é iniciativa do trabalhador, o que causa uma sobrecarga psíquica do trabalho e força a condução de atividades para serem realizadas na residência”.

De acordo com Pena, os problemas de saúde gerados pela sobrecarga de tarefas podem ser graves. O estresse do trabalho pode levar a distúrbios psíquicos variados, doenças cardiovasculares, gastrointestinais, entre outras. O professor ressalva também que cada um pode reagir de um jeito: “Os efeitos são cumulativos sobre o organismo e, geralmente, não há sintomas precoces para alertar os trabalhadores. Quando as manifestações clínicas ocorrem, as patologias se encontram instaladas e, não raramente, em situações de risco de morte, como infartos e acidentes vasculares cerebrais”, ele explica.

É possível acabar com a prática de levar trabalho para casa? Pena diz que não há respostas prontas para isso:

“São processos complexos relacionados às transformações estruturais do capitalismo e situações conjunturais referentes às diversas políticas sociais e trabalhistas. A construção de saídas envolve práticas que são essenciais, como a conscientização dos trabalhadores nas lutas contra formas antigas e modernas de exploração do trabalho. Estudos e pesquisas podem ajudar a demonstrar os efeitos nocivos à saúde dos trabalhadores resultantes do trabalho deslocado da empresa para a moradia e conferir aos sindicatos mais instrumentos de luta para alcançar novos direitos ou, ao menos, preservar os existentes. De toda forma, o fortalecimento dos sindicatos representa a perspectiva segura na construção coletiva da ruptura com essa velha/nova imposição desse ‘hábito’ no mundo do trabalho. O tempo fora do trabalho deve ser destinado ao lazer, às atividades lúdicas e culturais, à família, que favorecem a recomposição do desgaste psicofísico do trabalho. O sobretrabalho realizado em casa, como uma constante e resultante de organizações nocivas do trabalho, é um retrocesso nessa tendência histórica de conquistas sociais”, ensina.

Fonte: http://meusalario.uol.com.br/main/saude/levar-trabalho-para-casa-faz-mal-a-saude-1

Criando layouts no Photoshop Parte 2

E ai galera, com o novo portal a gente se empolga e começa a escrever sem parar. Quero retomar um artigo que foi feito o ano passado, faz mais de um ano que foi ao ar mas que não foi finalizado. Peço desculpas pela demora, mas agora vamos retomar o trabalho.

Este era o link do artigo: http://www.mxstudio.com.br/photoshop/criando_layouts_no_photoshop_parte_1/

A primeira parte do layout terminou desta maneira:

layout

Agora vamos recomeçar o trabalho criando o conteúdo do corpo para após fazer a exportação.

Bom para começar peguei uma imagem qualquer da internet.

Após criei um retângulo com o mesmo tamanho da imagem, utilizando o rounded rectangle tool, e com cantos arredondados com radius 5px.

Vamos aplicar o efeito para colar a imagem dentro do retângulo e deixar ela com os cantos arredondados, para isso precisamos colocar a layer da imagem sobre a layer do retângulo.

Agora vamos clicar com o botão direito sobre a imagem e aplicar a máscara.

Pronto, o resultado da imagem é este:

Agora vamos inserir um texto no lado, para criar o texto, utilizei o site www.lipsum.com

Criamos um título e inserimos o texto, assim preenchemos uma parte de nosso layout.

Agora vamos para parte final antes de exportarmos nosso layout. Vamos criar algo para a parte de baixo do site, simplesmente vou inserir três imagens e colocar um texto de serviços nelas.

Bom, o primeiro passo foi inserir uma das imagens, após eu criei um retângulo azul no topo e escrevi um dos textos, também criei um retângulo na base pois a imagem ficou meio solta. No topo da imagem eu coloque o canto arredondado para acompanhar o layout.

Agora vou inserir as outras imagens, colocar no mesmo tamanho mudando somente o texto. No final o resultado será este:

Pronto, o layout tá pronto, não ficou muito bonito, mas a idéia do artigo é mostrar a exportação para o Dreamweaver.
Então vamos lá.

Primeiro vamos pegar a ferramenta Slice Tool
Vamos começar a fatiar de acordo com o layout do site, procure fatias as partes do site de maneira uniforme, respeitando todos os aspectos do site.

Veja na imagem que cuidei para fatiar a parte do logotipo e todos os menus individualmente assim faremos com toda a estrutura do layout.

Finalizando o fatiamento, ele ficará assim:

Agora vamos a exportação. Primeiro vamos em file/save for web:

Na tela nova que abriu temos todas as definições de otimização do site, podemos por exemplo pegar determinados slices e escolher se eles serão exportados como GIF ou JPG, podemos também aumentar a qualidade de imagem de determinados slices e diminuir os que não tem tanta importância.


Repare na imagem que selecionei somente o logotipo.


Conseguimos assim editar o que vai ser GIF e o que vai ser JPG bem como a qualidade.

Agora antes de exportar vamos configurar algumas coisas, não deixe nada selecionado e clique na seta que se encontra no canto direito.

Clicando na seta vá em edit output settings.
Irá abrir uma outra tela onde vamos fazer umas configurações para facilitar o trabalho do site. Vamos conseguir já padronizar com estilos e trabalhar com DIVS ao invés de tabelas! Isso mesmo, fica tudo pronto para facilitar nossa edição em um editor de html.


Nesta primeira tela vamos marcar output XHTML e indent: none.

Na segunda tela vamos marcar para gerar um CSS por ID, no editor de html isso será muito útil para edição.

Nesta terceira tela, seria somente para inserir um background no layout, o que não é nosso caso, então vamos passar para próxima tela.

Na tela de cima, podemos criar um nome para os arquivos de imagens que vão ser exportados. Neste caso, não vou dar nome.
Pronto, agora é só dar um ok e salvar.

Não esqueça de marcar para salvar html e imagens, o Photoshop criará uma pasta para as imagens e um arquivo html.

Algumas considerações:
É interessante tirar os nomes dos botões e todos os textos e colocar eles no editor de html com as imagens como background. Fazendo todas as edições de texto no editor de html.
Abrindo o editor de html, vocês verão que o Photoshop criou todas as divs e ids para elas, com um css interno no html. O aconselhável é transforma em css externo e trabalhar com ele em todas as páginas.

Arquivo do tutorial para download.

Bom, espero que tenham gostado do artigo, nos próximos estarei mostrando alguns outros efeitos do Photoshop para otimizar a criação de layouts.

Abraços

Juliano Haussen
Administrador e colunista do Portal MXSTUDIO.
Dúvidas, acessem nosso fórum.

SunTechDays 2009

O evento será nos dias 4 e 5 de dezembro no Auditório Central do Centro Universitário do Pará (José Malcher)

Este ano contaremos com o palestrante Internacional Sang Shin (www.javapassion.com) da Sun Microsystems com a palestra sobre Java EE 6.

O investimento é:

R$ 20,00 Estudante
R$ 30,00 Profissional

Mais detalhes no site do evento e inscrições: http://beljungle.blogspot.com

Segue a agenda e o banner de divulgação

04/Sexta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

14:00 – 14:40 – Credenciamento
14:40 – 15:00 – Abertura do VI Beljungle
15:00 – 15:50 – Scripting in Java with Groovy (José Yoshiriro – TJ-PA)
16:00 – 17:50 – Java EE 6: Next Generation Enterprise Application Platform (Sang Shin – Sun Microsystems)
17:50 – 18:30 – Intervalo
18:30 – 19:20 – Desenvolvendo JME com LWUIT – Tranqueira Project (Elói Júnior – Eloi Software)
19:30 – 20:20 – GWT – Um Ajax Mais Rápido do Que Você Poderia Programar (Daniel “Monstro” Alencar – Fóton-DF)
20:20 – 21:10 – O Caminho das Pedras Para Conseguir a Certificação SCJP 6 (José Yoshiriro – TJ-PA)

05/Sábado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

09:00 – 09:50 – Aumentando a Produtividade em Aplicações Web com JBoss Seam (Ewertton Bravo e Yuri Cavalcante – Fabsoft-PA)
10:00 – 10:50 – Enriquecendo interfaces Web com Richfaces (Edson Koiti – Fabsoft-PA)
11:00 – 11:50 – Interatividade na Tela com JavaTV (Cândido Areas – Faculdade Ideal-PA)
11:50 – 14:00 – Intervalo
14:00 – 14:50 – Clusterização com Apache Tomcat (Alexandre Ferreira – PD-Case-MG)
15:00 – 15:50 – Desenvolvimento Orientado a Testes com Ferramentas Java (Paulo Igor Godinho – Pródiga Sistemas-PA)
16:00 – 16:50 – Desenvolvendo Jogos em Java (Ricardo Casseb – CESUPA-PA)
17:00 – 17:50 – Boteco Java – Veja como funciona
18:00 – 18:30 – Encerramento e Distribuição de Brindes e Certificados

 

Maré de Agilidade em Belém

Nos dias 26, 27 e 28 de novembro será realizado o Maré de Agilidade aqui em Belém, um evento que fala de técnicas de desenvolvimento de software, práticas de engenharia de software, gerência de projetos, tecnologias de desenvolvimento de software, design de interface, tudo isso dentro do contexto das metodologias ágeis, com todos os valores e técnicas que vem sendo discutido no Brasil e no mundo todo.
Membros de grupos de discussões e estudantes tem desconto, e quem se inscrever terá automaticamente a sua inscrição para o Beljungle/Sun Tech Days, eventos da comunidade Java, com uma parceria feita com o grupo Sou Java Belém.
Pacotes promocionais para empresas, entrem em contato!
Entre no site e confira a programação, quem são os palestrantes e outras informações. Participe!

Como assinar um applet

Como assinar um applet

Fonte: http://insonix.blogspot.com/2009/04/como-assinar-um-applet.html

Se você estiver se perguntando, para que precisa assinar meu applet, ai vai a resposta.
Existem várias questões de segurança envolvendo a chamada de arquivos e aplicações externas de dentro do navegador, e para executar alguma função mais específica, ou até mesmo rodar executáveis do sistema operacional a partir do seu applet, você precisa criar uma assinatura digital para ele.
Até mesmo para identificar que este applet é assinado pela empresa ou site cujo ele está sendo executado.

Vamos ao que interessa.

Como exemplo, eu criei um applet Exemplo.java que gerou o binário Exemplo.class.

1 – Criar um JAR
Criar um JAR com a classe envolvida, pois a assinatura será feita em cima do jar.
Na linha de comando, vá até a pasta em que o .class de sua classe está e digite:

jar cvf Exemplo.jar Exemplo.class

Neste momento foi criado um jar chamado Exemplo.jar.

2 – Criar o par de chaves (chave pública e privada)
Na linha de comando digite:

keytool -genkey -dname “cn=Exemplo, ou=Laboratorio, o=Empresa, c=BR” -alias exemplo -storepass 123456 -validity 3655

Detalhes do comando

-dname = dados da organização/empresa/site
-alias = nome da chave criada, no caso “exemplo”
-storepass = pass da chave, quando for assinar um jar com esta chave por exemplo, será necessário digitar este pass
– validity = quantidade de dias de validade da assinatura digital

Esta chave fica guardada na pasta home do usuário, e você poderá utilizar apenas o alias dela quando for assinar o JAR.

3 – Assinar o JAR do applet
Assinar o JAR do applet, criado no passo 1.

Na linha de comando digite:

jarsigner -storepass 123456 Exemplo.jar exemplo

Detalhes do comando

-storepass = pass da chave, conforme explicado no passo 2
Exemplo.jar = arquivo jar criado no passo 1
exemplo = alias da chave, criada no passo 2.

Pronto, é só jogar o seu JAR para sua aplicação, e agora caso você em seu applet, chamava um .class, é só chamar o .JAR.

Seu applet já está assinado.

Bugtracker – Como é possível não usar?

Fonte: http://inospito.com/2007/11/01/bugtracker-como-e-possivel-nao-usar/

Uma das ferramentas básicas para o desenvolvimento de software com qualidade é o bugtracker. Tal como um bom IDE, o bugtracker é uma das ferramentas das quais não prescindo de maneira nenhuma, e considero a sua utilização como um requisito obrigatório se queremos desenvolver software com qualidade.

Infelizmente, os cursos de Engenharia Informática em Portugal não abordam este assunto, pelo que (já) não me surpreende que tenha encontrado tantos programadores ao longo dos anos que não usam nem fazem ideia da sua utilidade. Para quem não sabe, um bugtracker é simplesmente uma ferramenta onde se introduzem os bugs que encontramos numa aplicação e onde podemos depois acompanhar e controlar a evolução de cada bug: se está a ser corrigido, se já foi corrigido, em que versão foi corrigido, etc. Claro que as ferramentas de bugtracking fazem uma miríade de outras coisas, como relatórios, envio de mails de notificação ou pesquisas, mas o que realmente interessa é permitir acompanhar/controlar a evolução de um bug. Como é que uma ferramenta tão simples pode ter um papel tão importante?

Quando não usamos um bugtracker, temos o seguinte possível cenário (imaginem dois developers X e Y):

  1. X recebe um telefonema de um cliente, desesperado com um comportamento estranho da aplicação quando se clica duas vezes no quadrado vermelho que pisca
  2. X já imagina qual a linha de código que estragou a coisa e começa a corrigir
  3. Y que não está junto de X, recebe um telefonema de outro cliente com o mesmo problema. Claro que nós (leitores) sabemos que é o mesmo problema, mas o cliente não sabe e muito menos Y. Ainda por cima, Y nem imagina onde esteja o bug, porque ele não desenvolveu essa parte da aplicação.
  4. Y começa a tentar descobrir onde está o bug
  5. X já quase resolveu o bug, mas está a demorar imenso tempo porque está permanentemente a ser interrompido por telefones e mails de clientes a refilar por causa do bug.
  6. X resolve o bug e faz uma nova versão da aplicação. Claro que a nova versão não tem só a correcção do quadrado vermelho que pisca. Tem outras correcções que foram feitas recentemente. Ele tem que compilar a lista de correcções: ver os mails trocados entre os developers, telefonar aos outros developers, etc.
  7. Y já encontrou o sítio onde está o bug mas entretanto recebe um telefonema de X, perguntando que correcções foram feitas recentemente. Y diz-lhe que está a resolver o problema do quadrado vermelho que pisca. X responde-lhe que já foi resolvido. Y desespera. Os clientes continuam a telefonar.

Se usassem um bugtracker, o cenário poderia ser algo diferente:

  1. X recebe um telefonema de um cliente, desesperado com um comportamento estranho da aplicação quando se clica duas vezes no quadrado vermelho que pisca
  2. X introduz no bugtracker a descrição do bug e comunica ao cliente o identificador do bug, para que o cliente possa acompanhar a evolução do mesmo através da web (outra hipótese seria o próprio cliente introduzir o bug no bugtracker).
  3. X já imagina qual a linha de código que estragou a coisa e começa a corrigir, mas primeiro marca esse bug como “Em Correcção” na ferramenta
  4. Y que não está junto de X, recebe um telefonema de outro cliente com o mesmo problema. Claro que nós (leitores) sabemos que é o mesmo problema e Y, após pesquisar no bugtracker, também sabe.
  5. X resolveu o bug rapidamente porque a maioria dos clientes, antes de telefonarem ou enviarem email a refilar, pesquisaram no bugtracker e viram que o bug estava em correcção.
  6. X faz uma nova versão da aplicação e consegue saber todas as correcções incluídas na versão com uma simples pesquisa “Bugs resolvidos na versão XXX”

Existem imensos bugtrackers no mercado, muitos deles open-source. E não existe razão nenhuma para não se usar um bugtracker. Claro que podemos usá-los de muitas formas, algumas mais correctas do que outra. Espero falar disso num futuro post. Mas uma coisa vos garanto. Quem já trabalhou com um bugtracker, nem se imagina a trabalhar um dia sem um.

Nunca minta

Prazo é um ponto crítico mas o gerente de projetos não deve tentar enganar a equipe, por melhores que sejam suas intenções.

Por Handerson Ferreira Gomes

O Rodolpho Ramirez publicou um artigo com três dicas para gerenciar um projeto interativo. As dicas 1 e 2 são ótimas, mas descordo totalmente em relação a terceira dica, por vários motivos.

Quanto mais informações temos disponíveis, melhores são nossas decisões. Uma dessas informações é o tempo disponível para executar o projeto. Com menos tempo disponível o time de desenvolvimento vai ter que fazer cortes na qualidade e/ou funcionalidade. A melhor forma de desestimular um desenvolver é tirar dele a chance de escrever código de qualidade e de usar sua criatividade.

A ideia de que há dois prazos – um real e um fictício – simplesmente significa que não há confiança entre a gerência do projeto e o time de desenvolvimento. Este tipo de comportamento mostra falta de maturidade em projetos web e de software.

Em qualquer relacionamento, confiança é um dos aspectos mais importantes para o sucesso. Desenvolvedores, como o Ramirez mesmo disse, são espertos e a grande maioria deles se esforça para fazer um ótimo trabalho. Mentindo para um time é uma péssima forma de incentivar e valorizar o trabalho de uma equipe. Confie em mim, já participei de vários projetos onde todos os desenvolvedores sabiam que a data alvo era fictícia.

Inclusive escrevi sobre esse cenário em outro artigo aqui no Webinsider.

Está provado que as estimativas são mais acuradas quando feitas pelos responsáveis pela execução das tarefas.

Estimativas de software devem ser feitas pelo time de desenvolvimento e se há datas fixas para release do produto, o que é comum, então funcionalidades e escopo precisam ser negociadas e acompanhadas ao longo do projeto. Devemos focar nossos esforços em colaboração e desenvolvimento mútuo entre todos as pessoas envolvidas no projeto.

Meu conselho é exatamente o contrário. O prazo de entrega do projeto deve ser claro e todos devem entender porque (o que deve ser óbvio) é importante entregar no prazo.

Envolva o time de desenvolvimento na estimativa das tarefas que ele é responsável. Envolva também o cliente, ele precisa entender que toda e qualquer funcionalidade tem um custo (tempo, qualidade, recursos) e infelizmente seria mais fácil prometer que “tudo é possível” mas a realidade é diferente e no final todos saem ganhando quando a conversa é sincera.

Construa um time onde há confiança mútua, onde todos trabalham para o sucesso do projeto e que todos são honestos com suas estimativas e horas alocadas no trabalho.

Existem técnicas e metodologias muito mais eficientes que a mentira para lidar com membros/equipes que não estão comprometidos com o sucesso do projeto. [Webinsider]

Fonte: http://webinsider.uol.com.br/index.php/2009/06/30/nunca-minta/

Criando arquivos .jar

//
// Olá a todos, em primeiro lugar gostaria mais uma vez agradecer o apoio, comentários e críticas de todos vocês.
Nem sempre consigo responder todos os emails e comentários, mas quero que saibam que todos são lidos e são de grande importância para mim, por tanto muito obrigado.

Muitas pessoas tem me perguntado sobre como trabalhar com arquivos compactados .jar, pois na maior parte das vezes a nossa aplicação java não se resume apenas a um arquivo .java, e sim, são compostas de vários arquivos, então como fazer para tornar a vida mais fácil na hora de um “deploy” ou mesmo no manuseio dos mesmo? A forma mais fácil é criar um arquivo .jar contendo todos os arquivos do nosso projeto, hoje veremos como fazer isso utilizando o comando “jar” para criar um pacote “executável” com os arquivos da nossa aplicação.

Gostaria de dedicar esse artigo ao meus amigos que tem me perguntado sobre arquivos .jar em especial ao Adriano, foi por causa de suas perguntas que escrevi esse artigo.

Agora sem mais demora vamos ao que interessa. Para esse artigo iremos precisar de alguns códigos .java para que possamos gerar o pacote da nossa aplicação, como o intuito é explicar como gerar o arquivo .jar, os códigos não serão comentados, são apenas dois códigos simples que escrevi para esta demonstração.

Vamos criar um diretório qualquer para o nosso projeto, eu criei um diretorio chamado “jarfiles”, (que de agora em diante será chamado de diretório RAIZ) e dentro dele criaremos mais alguns diretórios:
src – diretório onde colocaremos nossos arquivos fonte
bin – diretório onde colocaremos os arquivos compilados

E dentro do diretorio “src” criaremos mais um diretório chamado “init”, é um nome qualquer apenas para mostrar como fazer para rodar um arquivo que estará dentro dele, e para demostrar que é possível criar diversos diretórios e colocá-los todos no nosso .jar.

Agora que já temos os diretórios iremos criar duas classes dentro do diretório “src/init”, são elas:

OlaMundo.java

package init;

/**
* @author Dayvid Lima
*/

public class OlaMundo {
public void falaOla(){
System.out.println(“Olá mundo cruel!”);
}
}

UsaOlaMundo.java

package init;

/**
* @author Dayvid Lima
*/

public class UsaOlaMundo {

public static void main(String[] args){
OlaMundo om = new OlaMundo();
om.falaOla();
}
}

Prontinho, agora vamos compilar nossos códigos java para dentro do diretório bin, para isso uma vez estando dentro do diretório RAIZ no prompt do DOS ou em um terminal qualquer, vamos digitar:
javac src/init/*.java -d bin/

Isso fará com que os arquivos .java que estão em /src/init/ sejam compilados e colocados em /bin/init/.

Para ver se está tudo ok iremos rodar nossa aplicação, primeiro entramos no diretório “bin”, e então executamos nossa aplicação com o comando:
java init.UsaOlaMundo

Se tudo der certo veremos a mensagem “Olá mundo cruel!” na tela.

Bom agora que tudo está ok chegou a hora do que realmente interessa, compactar todos esses arquivos em um único arquivo .jar e rodar a aplicação a partir dele.

Para criar o arquivo .jar iremos fazer uso do comando “jar”, existem diversas opções que podemos passar para o comando jar, iremos nesse artigo fazer uso das seguintes:
c – cria um novo arquivo
v – modo “verbose”, mostra na tela o que está acontecendo
f ARQUIVO_JAR – especifica o nome que queremos para o arquivo .jar
m ARQUIVO_DE_MANIFESTO – inclue o arquivo informado como arquivo de manifesto (veremos isso na segunda parte da explicação)

Ainda dentro do diretório bin, tudo que temos que fazer para criar nosso .jar é executar o comando:
jar cvf Ola.jar init/*

Pronto, com isso temos nossa aplicação agora dentro do arquivo Ola.jar, vamos então executá-la, para fazer isso devemos informar no classpath onde está nossa aplicação (no caso a classe init.UsaOlaMundo),
Podemos tanto colocar o arquivo Ola.jar no nosso classpath quanto informar esse parâmetro no momento da execução como no comando abaixo:
java -classpath Ola.jar init.UsaOlaMundo

Muito bom, meus parabéns, agora você tem a sua aplicação toda em um arquivo só, pois bem, vamos facilitar um pouco mais as coisas.

Se olharem dentro do arquivo Ola.jar (abram ele com um compactador qualquer como Winzip ou Winrar, pois ele é apenas um arquivo compactado sem utilizar compressão, isso mesmo, você poderia ter simplesmente criado um arquivo .zip ou .rar com o seu compactador preferido informando a ele para não utilizar compactação, apenas adicionar os arquivos e depois renomear o mesmo para .jar que ainda assim funcionaria.

Enfim, voltando a aplicação, veja que dentro dele temos um diretório META-INF contendo o arquivo MANIFEST.MF, pois bem, esse arquivo contém informações sobre a nossa aplicação, como não criamos esse arquivo, ele tem apenas algumas informações básica, vamos então criar o nosso MANIFEST.MF e ver em que ele pode nos ajudar.

Quando executamos nossa aplicação vocês se lembram que tivemos que infomar no classpath o arquivo Ola.jar para que fosse possível rodar a classe “init.UsaOlaMundo”, agora iremos criar um arquivo de manifesto para que seja possível rodar nossa aplicação informando apenas o arquivo Ola.jar e não mais o nome da classe e pacote (init.UsaOlaMundo).

Para isso criaremos o nosso próprio MANIFEST.MF, salvem o código abaixo em um arquivo chamado MANIFEST.MT dentro do diretório “bin”.

Manifest-Version: 1.0
Created-By: Dayvid Lima
Main-Class: init.UsaOlaMundo

O mais importante aqui é a última linha “Main-Class: init.OlaMundo”, aqui eu digo qual classe será chamada quando o arquivo Ola.jar for executado.

Arquivo salvo, estamos prontos para continuar. Dentro do diretório bin vamos apagar o nosso antigo Ola.jar e criar um novo, agora informando qual arquivo de manifesto que iremos utilizar,
Para isso basta mudar um pouco nosso comando jar como no exemplo abaixo:
jar cvfm Ola.jar MANIFEST.MF init/*

Agora para rodar nossa aplicação precisamos apenas do comando abaixo:
java -jar Ola.jar

E o arquivo MANIFEST.MF se encarrega de dizer a virtual machine qual a classe que queremos que seja executada.

Anexo deixo para download o arquivo jarfiles.zip, contendo os arquivos citados nesse artigo para facilitar o trabalho de todos, mais uma vez espero que este artigo tenha sido satisfatório e que venha a ajudar, até o próximo.

Fonte: http://www.plugmasters.com.br/sys/materias/793/1/Criando-arquivos-.jar

Dayvid Lima Desenvolvedor Java há mais de 5 anos, atualmente consultor java em empresa multinacional utilizando recursos avançados da tecnologia J2EE com servidores de aplicação em plataforma Solaris para gerenciamento de redes e integração de sistemas.

Informação não é poder! Veja como a falta de clareza causa o fracasso do líder

A reclamação número um de profissionais é a falta de clareza com relação às suas metas. Isto significa que todos sabem o que precisam fazer hoje, mas poucos sabem ao certo o porquê e aonde a empresa pretende chegar. Como consequência, os funcionários se empenham menos e, com o tempo, acabam desmotivados.

A verdade é que ninguém gosta de ser um mero “robô”. Participar da tomada de decisões, bem como saber o sentido do seu trabalho, é essencial. Uma pesquisa realizada pelo PMI (Project Management Institute), com 400 empresas, corrobora com esses pressupostos. Uma pergunta foi feita aos profissionais participantes: “Quais habilidades faltam a seus gestores?”. A resposta mais dada foi: “a habilidade de se comunicar”.

Como a empresa perde tempo [e dinheiro]

“Se os funcionários não conhecem os objetivos maiores da empresa e as estratégias adotadas, eles não fazem mais do que olhar para o próprio umbigo, de forma que agregam pouco à organização. Esta, por sua vez, perde tempo e dinheiro, ao não disseminar informações importantes”, explica o coordenador da pesquisa de Benchmarking do PMI, Américo Pinto.

Quando falta clareza ao profissional com relação a suas próprias metas, os projetos não dão certo, ou o resultado obtido não é o esperado pela direção da empresa. E não é uma questão de incompetência. Ao desconhecer seus objetivos de longo prazo, o funcionário pode muito bem andar para a direção oposta para a qual estão caminhando os gestores. Enquanto uns vão para a direita, outros escolhem ir para a esquerda. A empresa não é bem-sucedida e perde recursos. Situações como a descrita não são raras.

“Os atuais gestores não atendem mais àquilo que as empresas precisam, que é clareza e capacidade de se comunicar, antes de mais nada. Muitos deles retêm informações, porque acreditam que informação é poder. No final, acabam se prejudicando, porque seus subordinados não trabalham o todo, não realizam suas atividades dentro de um contexto”, explica o diretor executivo do Insadi, Dieter Kelber.

“O pior é que há líderes que gostam de ter funcionários robôs, que cumprem ordens sem pensar muito. São gestores à moda antiga, atrasados no novo cenário de competitividade acirrada entre as empresas”, acrescenta.

Falha começa na alta gestão

É possível que, em uma empresa na qual a retenção de informações é parte da cultura corporativa, a culpa seja da média gerência, que não quer dar espaço para ninguém crescer. “O que esse tipo de gestor não entende é que, se seus subordinados não crescerem, ele próprio nunca sairá do mesmo lugar”, diz Kelber.

Porém, para Américo Pinto, do PMI, a principal responsabilidade pela comunicação da empresa é a alta gerência. “Se o principal gestor não faz questão de disseminar informações estratégicas, a comunicação não flui para as demais partes da pirâmide. O resultado é que cada um acaba fazendo o que bem entende”, diz.

Mas ele acrescenta que isso é mais comum em médias e pequenas empresas, porque as grandes já estão avançadas no quesito comunicação. “Boa parte das grandes utilizam ferramentas tecnológicas, como softwares criados justamente para isso e intranet, para que a comunicação flua tanto verticalmente (do gestor para os subordinados) quanto horizontalmente (entre departamentos, de forma que estes trabalhem juntos em torno de um mesmo objetivo)”.

Reunião não é perda de tempo!

Algumas empresas evitam ao máximo as reuniões, por conta do clichê disseminado no mundo corporativo de que elas são perda de tempo. A verdade, entretanto, é que reuniões são necessárias e é possível torná-las produtivas. “Porque alguns profissionais se utilizam desse canal de comunicação [a reunião] de forma equivocada, muitos desmoralizaram o papel desses encontros”, diz o coordenador da pesquisa do PMI. “Mas, muitas vezes, as reuniões são absolutamente necessárias”.

Ele lembra ainda que as reuniões não são a única forma de a empresa se comunicar com seus funcionários. “É possível promover algumas discussões por e-mail, por exemplo”.

Por que gestores retêm informações?

Alguns dos motivos para a retenção de informações são: a ilusão de poder que elas proporcionam; o medo de os subordinados crescerem; a insegurança, por parte do gestor de médio escalão, de que os subordinados utilizem aquelas informações melhor do que ele próprio; a dificuldade de se comunicar com clareza, o que é uma competência ao mesmo tempo técnica e comportamental cada vez mais essencial aos líderes; e a facilidade de manipular funcionários “robôs”, que não pensam.

Porém, a transparência nas empresas é importante porque: a rádio peão é muito mais rápida (o problema é que, muitas vezes, as informações divulgadas no corredor são completamente equivocadas); ao saber aonde a empresa quer chegar, o funcionário se dedica muito mais e os projetos têm mais chances de serem bem-sucedidos; os diversos departamentos podem tornar-se aliados, no lugar de inimigos, como costuma acontecer; a satisfação do público atendido aumenta; e a liderança informal é enfraquecida.

“É bom promover conversas e debates com os funcionários sistematicamente, de forma que informações úteis sejam disseminadas no dia a dia do trabalho. Assim, os profissionais vestem a camisa da empresa e do cliente”, finaliza Kelber.

Por Karin Sato – InfoMoney

Fonte:http://artesdosul.wordpress.com/2009/05/21/informacao-nao-e-poder-veja-como-a-falta-de-clareza-causa-o-fracasso-do-lider/

Permitindo acesso remoto num servidor MySQL

O Mysql por padrão ao ser instalado numa máquina, não está configurado para permitir acesso remoto, somente local, por parte do usuário, então para habilitar seu uso seja de qual for a máquina, faz-se os seguintes procedimentos:

Como root no terminal do linux digite:

nano /etc/mysql/my.cnf

Agora altere a seguinte linha..

bind-address = 127.0.0.1

..para..

bind-address = 0.0.0.0

Agora reinicie o serviço mysql com:

/etc/init.d/mysql restart

Entre no prompt do mysql com:

mysql –user=root –password=suasenha

Então digite o seguinte comando:

GRANT ALL ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘suasenha‘;

Esse comando é bem explicativo, ele garante (GRANT) todos (ALL) os privilégios de acesso a todos (*.*) os databases do banco, ao (TO) usuário (’root’) em todas as máquinas (’%’) usando a senha do usuário root (IDENTIFIED BY ’suasenha’). Traduzindo em miúdos, você acessa tudo no banco com o usuário root em qualquer máquina remota.

Obs: Se quiser dar acesso somente a uma maquina específica troque ‘%’ pelo ip da máquina, por exemplo, dar acesso somente a máquina 192.168.0.2, ficaria assim o comando:

GRANT ALL ON *.* TO ‘root’@’192.168.0.2′ IDENTIFIED BY ‘suasenha‘;

Obs2: Onde estiver escrito suasenha, troque pela senha do usuário root.

Agora pode testar conectar-se ao banco de outra máquina que você terá acesso.

Abraços!

Fonte:http://darkstrikerd.wordpress.com/2008/02/14/linux-permitindo-acesso-remoto-num-servidor-mysql/