segunda-feira, dezembro 22, 2008

Sete maneiras de melhorar o desenvolvimento de software

A receita para equilibrar agilidade e documentação e estabelecer um ciclo de entregas regulares existe. Leia a opinião de especialistas

Para se concretizarem, os projetos de software exigem investimentos, apoio, cuidados, trabalho árduo e dedicação. Uma boa prática de gerenciamento de entrega garante que, depois de criado, o software possa ser implementado com êxito, atendendo às necessidades da área que o solicitou e, ainda, de outras unidades que queiram utilizá-lo no futuro.

Na lista de clientes que confirmam essa premissa está uma grande empresa britânica de telecomunicações. A companhia decidiu mudar de fornecedor na hora de realizar uma reengenharia dos sistemas para gestão da área de billing (bilhetagem) e da emissão de contas. A companhia tinha de implementar as mudanças em três meses ou poderia perder centenas de milhões de libras, inclusive com queda no valor das ações. Outra questão era que, na época, os processos para desenvolvimento de software eram ruins e o gerenciamento de entrega extremamente problemático.


A empresa de telecomunicações chamou uma empresa especializada para ajudá-la a entregar o software no prazo e recuperar um processo falho de gerenciamento das mudanças. Com isso, em três meses, fez os lançamentos pendentes e conseguiu realizar a reformulação de dois aplicativos. Mais importante, estabeleceu um processo de gerenciamento de entregas simples e direto para assegurar que futuras liberações aconteçam no devido tempo e com a qualidade exigida.

A seguir, segue um detalhamento de todo o processo, inclusive, com os erros cometidos.


1. Entender o estado atual do gerenciamento de entregas.
Você não pode começar a consertar alguma coisa sem entender o que ela é e qual o problema. O primeiro passo para aprimorar o sistema de gerenciamento das entregas do nosso cliente foi criar um panorama detalhado do processos antigos. Para começar, a empresa realizou várias sessões explanatórias com pessoas-chave envolvidas no processo de software.


Nas reuniões, o fornecedor descobriu que o ponto de partida era muito ruim: ainda havia software a espera de liberação, depois de dois meses em que ele estava pronto.
Os ambientes de teste eram limitados, sem gerenciamento e, portanto, desatualizados e impossíveis de usar. Pior ainda, melhorar novos ambientes e renovar os existentes era um processo relativamente lento.

Em média, um teste manual de software demorava três meses. E boa parte deles acabava sendo abandonado, o que reduzia a qualidade das soluções entregues.

De um modo geral, o engajamento da equipe de desenvolvimento era muito baixo. Como os profissionais nunca tinham sido ajudados a fornecer software de boa qualidade, regularmente, estavam desestimulados.


2. Estabelecer um ciclo regular de liberações.
Quando obtivemos um panorama geral do estado atual do processo, começamos a definir um ciclo regular de liberações.


Se a equipe de engenharia é o coração do projeto, o ciclo de liberações é seu batimento cardíaco. Para determinar a freqüência de liberações para produção, foi preciso descobrir de quanto teste não funcional precisaríamos e quanto tempo demoraria. Este projeto exigiu teste de regressão, desempenho e integração.
Estabelecer um ciclo de liberações é vital porque:


• Cria uma oportunidade de discutir a fundo os testes não funcionais de que o software possa precisar.


• Anuncia um cronograma de entrega das porções da funcionalidade que as partes interessadas poderão obter. Se elas souberem que haverá liberação de funcionalidade regularmente, podem continuar concordando em relação ao resultado final esperado.


• Cria uma rotina que todas as equipes podem seguir (inclusive marketing e engenharia).


• Dá aos clientes a confiança de que podem pedir algo e receber o que pediram.
O ciclo de liberações tem de ser o mais exato possível, não um número inatingível que você inventou durante o almoço. Antes de anunciá-lo, teste-o. Não há nada pior para um processo de liberações já falho do que mais datas ilusórias!


Sugerimos um ciclo semanal. Este plano, porém, mostrou-se inviável, já que o ambiente de banco de dados do cliente não podia ser renovado com suficiente rapidez. Então tentamos ciclos quinzenais. Não houve objeção imediata dos participantes, mas as duas primeiras tentativas fracassaram! Tornou-se viável depois que superamos alguns gargalos do ambiente e automatizamos alguns testes.


Por fim, estabelecemos um ciclo em que, a cada duas semanas, o código da equipe de engenharia, pronto para produção, era encaminhado para teste no sistema. Quinze dias depois, liberamos este código para produção.


Lembre-se: seu ciclo de liberações não diz respeito a quando seu cliente quer a liberação, mas quando você pode realizá-la com o nível desejado de qualidade. Nossos clientes apoiaram nosso ciclo de liberações porque nós os chamamos para ajudar a determiná-lo. A opinião dos clientes é apenas um dos fatores levados em conta para estabelecer a regularidade das liberações.


3. Adotar processos leves. Testá-los no início e revisá-los regularmente.
Se existe um princípio norteador da engenharia (ou reengenharia) de um processo, este princípio é desenvolver um pouco, analisar os resultados e fazer um pouco mais. Repita esta abordagem cíclica até alcançar os resultados desejados.


Processos leves são aqueles que não exigem aprovações longas e burocráticas ou reuniões intermináveis para obter consenso. Normalmente, demandam apenas o nível mínimo aceitável de inputs e outputs. O que lhes falta em volume e burocracia é compensado com resposta a mudanças e adoção popular!
Subjacente a esta abordagem há o problema espinhoso da documentação. Você precisa registrar o que fez e como fez. Do contrário, o que vai revisar e como vai melhorar?

Não é o tipo de documentação volumosa que ameaça as florestas tropicais ou dá sono nos leitores. É a documentação que as pessoas (técnicas ou não) podem ler e seguir.


A equipe de engenharia escolheu uma ferramenta comercial para documentar seu trabalho colaborativo. Os engenheiros usaram o software para elaborar uma documentação mínima, porém eficaz, do que estavam concordando em criar em cada ciclo de trabalho. Registraram o que e como tinham criado e o que era necessário para que entrasse em funcionamento. Vimos o valor desta abordagem e a implementamos -- assim como a ferramenta – para o restante dos envolvidos no processo.


Inicialmente, sugerimos uma seqüência de tarefas para liberar o software que recebemos das equipes de engenharia, abrangendo o modo como recebemos a entrega por parte do sistema de gerenciamento de controle de origem, que nomes os pacotes teriam e como cada elemento (código executável, scripts de banco de dados etc.) funcionaria em quais plataformas. Depois fizemos um teste simulado utilizando código fictício para cada elemento. Testamos nossa seqüência documentando o que e como fizemos. Isso formou a base das instruções de instalação.


Em seguida, as pessoas que iriam implementar o release real fizeram outro teste simulado usando apenas a nossa documentação. Elas estenderam, corrigiram e aprimoraram nossas instruções. O processo se tornou mais abrangente e todos colaboraram com a documentação. O processo foi adotado de maneira mais ampla e com mais qualidade, já que todos ajudaram a defini-lo.


Revisamos o processo depois de cada liberação. Examinamos a documentação e identificamos mudanças feitas durante a liberação. A cada vez, verificamos como a documentação poderia ser aprimorada e incorporamos os aprimoramentos ao processo.


4. Estabelecer uma infra-estrutura de liberações no início.
A infra-estrutura de liberações é tudo aquilo que precisa existir para que o software seja implementado e as pessoas possam utilizá-lo. Seu compromisso com o cliente não é somente criar um software excelente, mas que ele esteja disponível para ser acessado e utilizado.


Para obter um bom processo de liberação, é crucial que você descubra o que precisa estar implantando para disponibilizar ao cliente antes da equipe de engenharia acabar de criar o software.


A infra-estrutura de liberações cobre hardware, storage, conexões de rede, banda larga, licenças de software, perfis dos usuários e permissões de acesso. Recursos humanos e habilidades também fazem parte da infra-estrutura de liberações. Se você precisa que um software especializado seja instalado e configurado, por exemplo, não é uma atitude inteligente excluir do seu plano de infra-estrutura a disponibilidade das habilidades envolvidas ou o custo de obtê-las.


Quando estiver em busca do hardware necessários ou das habilidades que faltam (por exemplo, para configurar redes seguras), é vital descobrir gargalos ocultos o mais cedo possível. Você precisa resolvê-los antes que eles atrasem a entrega do software.


Não é coisa simples. Nós nos esforçamos para implantar nossa infra-estrutura de liberações assim que iniciamos o projeto. Depois de seis semanas, ainda estávamos esperando memória e hard drives especiais para os servidores de teste!


5. Automatizar e padronizar o máximo possível.
A automação permite que você execute tarefas repetitivas sem comprometer recursos humanos valiosos. A padronização garante que inputs e outputs da automação sejam consistentes o tempo todo.


Antes do nosso envolvimento com o projeto, as equipes de engenharia produziam manualmente um pacote implementável. Não havia garantia de que um novo pacote seria igual ao anterior. Na realidade, nem havia garantia de que era o software que as equipes andavam desenvolvendo e se funcionaria! Muitas vezes, a equipe técnica levava dias para criar um pacote com os recursos que estavam sendo entregues em uma estrutura que pudesse ser implementada.


Formulamos imediatamente uma estrutura e critérios de aceitação para o pacote implementável que as equipes estavam nos entregando e as ajudamos a padronizar o empacotamento. Isso ativou a implementação de processos automatizados para criar o software nesta estrutura consistente para cada ponto da liberação.


De repente, o empacotamento do software para liberação deixou de ser um problema. Sua executabilidade estava garantida, já que tínhamos automatizado a verificação dos critérios de aceitação — por exemplo, testar o código antes da entrega e implementar o teste para assegurar que a implementação real poderia ser feita. Como resultado, conseguimos empacotar, versionar, testar e implementar código acabado com um único comando em pouquíssimo tempo.


Mas a automação não parou por aí. A cada ciclo de desenvolvimento, tínhamos que fazer ainda mais testes de regressão. Os testes de regressão existentes levavam três semanas para serem executados manualmente e, por isso, as liberações nunca eram bem testadas.

No nosso recém-criado ciclo de liberações, tínhamos que realizar testes de regressão, desempenho e integração em duas semanas para podermos colocar em produção. Podíamos superar a questão de ter diferentes tipos de teste utilizando ambientes separados para cada um. Mas como encaixar três meses de testes de regressão em um período de duas semanas?!


Iniciamos um exercício de priorização. O cliente identificou os testes de regressão mais prioritários, o mínimo que aceitaria como prova de que a antiga funcionalidade ainda executava. Depois partimos para automatizar este conjunto. Testes de aceitação subseqüentes também se tornaram automatizados, assegurando que poderíamos fazer testes de regressão em cada liberação em algumas horas em vez de dias.


6. Estabelecer expectativas positivas.
Se a liberação de software é importante para você, não faça segredo disso. Nossas equipes reforçaram o compromisso de liberar o software quando sabiam que era importante.


Endossamos esta importância ao estabelecer que o gerente de liberações designado presumiria que o software estaria pronto na data que as equipes concordaram que ele estaria pronto. Fizemos o gerente de programa (na realidade, nosso cliente) explicar para as equipes por que esta liberação era importante. (No fim das contas, o motivo era não perder muito dinheiro!)


Pedimos que o software fornecido pelas equipes de engenharia seguisse um padrão (versionado, testado, documentado e empacotado). Estabelecemos que solicitaríamos este empacotamento padrão para cada ciclo de liberação. Tivemos de explicar por que queríamos o software desta maneira (nosso processo automatizado se tornava mais fácil e consistente) e incorporamos o feedback da equipe ao processo.


Estabelecer expectativas positivas é uma ótima maneira de empoderar todos os envolvidos no processo. Não nos foi delegada nenhuma autoridade executiva e, portanto, não receávamos sansões ou demissões. Tínhamos o poder da expectativa positiva para fazer as pessoas aderirem e nos ajudarem a melhorar o processo de liberação. Elas tomaram decisões-chave (que nunca tinham se sentido capazes de tomar antes) porque "Mike e Tym precisam deste software na quinta-feira e nós dissemos que o entregaríamos”.


7. Investir em pessoas.
Não importa o quanto você gaste em hardware, software e processos imaginativos -- sem o comprometimento dos membros da equipe você não alcançará um sucesso sustentável na liberação do seu software.Talvez você nem mesmo tenha um software para liberar!


Provavelmente você pensou que falaríamos em arregimentar as pessoas certas e recompensá-las bem ou que discorreríamos sobre as ferramentas e qualificações necessárias para o trabalho. A verdade é que você sabe que precisa ter as pessoas certas nas equipes (a definição de "certas" varia de uma empresa para outra), você deve recompensá-las adequadamente pelo valor que agregam e, sim, você deve assegurar que elas tenham as ferramentas e qualificações necessárias.


Nossa pressuposição básica é de que as pessoas estão inerentemente interessadas em fazer um bom trabalho. Se você quiser que os membros das suas equipes se importem com seu produto e com a realização de um bom trabalho, antes você precisa demonstrar que se importa com o que é importante para elas. Desde o começo do projeto, criamos um ótimo relacionamento com todos os membros das equipes, baseado em compreensão e respeito mútuo. Demonstramos que éramos flexíveis em termos de desafios pessoais e fizemos o que estava ao nosso alcance para ajudar. Comprar almoço, pegar alguma coisa para beber, organizar treinamento, aconselhar, ouvir problemas, fazer o papel do advogado do diabo... fizemos o que era necessário para que cada indivíduo se sentisse valorizado e um elemento vital do processo.


No nosso primeiro contato com o projeto, detectamos um sentimento geral de apatia. Alguns funcionários fixos mais antigos estavam simplesmente à espera de um pacote de dispensa de pessoal; outros não eram chamados para nada porque nunca tinham feito nada certo. Nos dedicamos a criar um bom relacionamento e despertar um auto-julgamento positivo para que as pessoas voltassem a se importar em adicionar valor pessoal ao processo.


O gerenciamento de liberações é uma parte muito importante de qualquer projeto de software e, freqüentemente, não recebe a atenção que merece. Poderíamos compartilhar muitas outras dicas e observações excelentes sobre nossa experiência de fortalecer o processo de liberações desta empresa de telecomunicações de médio porte. Mas estas são as sete mais importantes para nós neste caso específico, embora suponhamos que sejam idéias muito boas para qualquer situação.
Um bom gerenciamento de liberações exige trabalho árduo, determinação e ótima comunicação. Mas o mais importante é a habilidade de revisar, aprender e adaptar melhorias.


Boa sorte!


Mike Sutton era um menino programador prodígio. Hoje, depois de 15 anos de atuação, deixou de ser tão menino mas é prodigioso em ajudar as equipes de programação a se tornarem fornecedoras de soluções vencedoras utilizando metodologias ágeis e abordagens pragmáticas como as descritas neste artigo. CEO da Wizewerx, é consultor de TI independente especializado em soluções de desenvolvimento Java high-end e coaching e mentoring para métodos ágeis e já trabalhou para empresas de primeira linha no Reino Unido e na Europa.
Tym Moore estava ocupado demais ajudando seus clientes e não conseguiu enviar a tempo sua biografia de autor.



copiado de

segunda-feira, dezembro 08, 2008

Inglês na Faixa

HI,

Um dia ainda aprendo inglês para poder assistir filmes sem legendas, hehehe. Última vez que tentei, faltou força de vontade. Comprei a coleção BBC English Plus que vinha na revista EPOCA. isso foi em 2006. Estudei uns 5 livros e depois parei.

Vou ver se converto os DVDs para avi e estudar no smartphone, hehehe. Um dia faço isso.

Mas antes de tentar concluir esse curso, vou estudar outros.

No momento estou baixando o Curso Completo em Áudio e Apostila - Inglês Profissional. São 650mb de conteúdo. Vai do básico ao nível profissional.

Antes eu tinha baixado o Curso Básico de Inglês. Aprenda Inglês em apenas 30 dias.

Para ajudar nessa tarefa, também é bom usar o serviço de gratis de alguns sites:

English Experts - guia para quem estuda inglês por contra própria usando a internt.
Tecla SAP - dicas de inglês.
Inglês Curso - curso grátis de inlgês
Audiobooks Gratuitos em Inglês - livros em audio.
BBC Learning English - estude inglês no site da BBC.


Se alguém tiver alguma dica ae, é só dizer que atualizo este post.

domingo, novembro 09, 2008

Quebra Cabeça 16 peças em Delphi

HI,

Tem mais de uma ano que fiz esse joguinho. Estava esquecido aqui em meu HD. Resolvi disponibilizar os fontes por causa de um pedido de um jogo desse em meu antigo Blog.

O código num tá muito comentando, hehehe. Se alguém tiver alguma dúvida do funcionamento é só deixar um comentário.

Um outro joguinho que fiz foi o da Senha. Esse tá disponibilizado no Baixaki e no SuperDownload (nesse foi publicado por outra pessoa).

Tela do quebra cabeça de 16 peças. Esse é com números. Tem que colocar as peças na sequencia.



Fontes
http://www.4shared.com/file/70420729/f4cb56b9/Fonte_QCabeca16.html

Até a próxima

sábado, novembro 08, 2008

Momentun Relax #2

HI,

Hoje é dia especial para mim e para outros, claro.

Estou executando a versão 3.2, hehehe. Vai ter bolo e guaraná. Enquanto espero esse momento - antes vou lá no shopping - tou aqui catando uns vídeos novos no youtube. Procurando por novas esperiências musicais. Muita coisa que estou descobrindo vem lá da Croácia, Servia e França.

Esse segundo Momentum Relax será para compartilhar esse conteúdo

Maksim - Nostradamus


Não conhecia Maksim. Lembrei logo da Vanessa Mae, só que ele é um mestre no Piano.


Karma - Amore mio


Karma. Achei sem querer, estava procurando no Youtube pelo termo Amore Mio.


Danijel Djokic - Amore Mio


Danijel Djokic. Outro que descobri pesquisando pelo termo Amore Mio. Gostei tanto que virou toque do meu celular.


E para encerrar, dois vídeos que encontrei sem querer, querendo, hehehe

IL DIVO - Regresa a mi


Il Divo. Esse foi sem querer mesmo. Tava assistindo aos vídeos relacionados ao Amore Mio e acabei encontrando esse vídeo com outro título, nos comentários e que tinha o nome desse quarteto.


Alizee - Laisla Bonita


Alizee. Encontrei com outro título também. Nos comentários tinha o nome Alizee.


Até a Próxima

segunda-feira, novembro 03, 2008

Java ou C#?

Qual linguagem o profissional deve aprender para ganhar mais? Por Nivaldo Foresti.

Java ou C#? Qual a linguagem que devo aprender para ganhar mais? Essa é pergunta que mais me fazem por onde ando. Deve valer milhões de reais, pois ela é feita em reuniões, para indicar ao filho do amigo, para uma reportagem etc. Enfim, todos querem saber que linguagem será mais lucrativa para um profissional.

Minha resposta? Qualquer uma delas. Vale a pena saber a linguagem da moda? Claro! Mais oportunidades de emprego aparecem, os salários são maiores, mas é isso mesmo o que mais importa? Acredito que não. O que mais importa, no final, é ter conceitos sólidos de algoritmos, na programação orientada a objetos, em sintaxe SQL, na arquitetura em multicamada e, em pelo menos, uma linguagem de programação.

Na atualidade, com a internet, alguns outros conceitos são importantes, como estas sopas de letras HTML, XML, CSS, XAML, SOAP. Não esqueça de acrescentar Javascript, Ajax e Actionscript (este vindo do Flash) e um pouco de Photoshop. Além disso, mesmo conhecendo tudo isso seu trabalho pode demandar freqüentemente o conhecimento de uma nova linguagem com pouco tempo de estudo. Como fazer isso?

A primeira dica é buscar, entre diversos tutoriais na internet, aquele que mais se adapta a seu objetivo, já que uma linguagem serve a inúmeras aplicações. Eis aqui uma pequena receita, que pode servir como exemplo. Leia o manual com o tutorial da linguagem. Geralmente ele é pequeno e rápido de se fazer. Mantenha o manual de referência da sintaxe à mão, entenda como funciona o compilador, suas opções e, se houver, seu ambiente de desenvolvimento (IDE), comece com um programa simples, como imprimir uma linha no navegador. Compile-o e use as funcionalidades básicas de debugging como break points, inspeção de variáveis etc.

Depois, crie uma lista, como essa abaixo, para entrar na maioria dos recursos da linguagem e entender como el funciona. Comece, por exemplo, por aumentar a complexidade do seu programa básico em uma ordem como esta:

1) Mostre uma série de números em um looping infinito usando uma tecla especifica para parar o programa;

2) Crie um programa com uma série Fibonacci, encontre o máximo e o mínimo em uma lista de números;

3) Aceite caracteres ou números do teclado e ordene a lista em ordem ascendente e descendente;

4) Crie um programa para calcular um número Reynolds. Ele deve aceitar os valores necessários em suas unidades apropriadas. Se o número for menor que 2100 mostre a mensagem Fluxo Laminar, se estiver entre 2100 e 4000 mostre a mensagem Fluxo Transiente, se foi maior que 4000, mostre a mensagem Fluxo Turbulento. Você irá usar os desvios If, else, then etc.;

5) Modifique o programa para perguntar se deseja calcular de novo. Com a resposta S, pergunte novamente pelos parâmetros, com a resposta N saia do programa (Do while loop). Informe números que podem dar erro no cálculo. Exemplo: coloque um=0, ele dá um erro de DIVIDE BY ZERO? Como a linguagem trata essa situação? Existe tratamento de exceção? (exception handling)

6) Faça cálculos científicos, tais como raiz quadrada, fatorial, seno, coseno etc.;

7) Imprima o resultado em diferente formatos, com casas decimais, truncando após a terceira casa, colocando zeros à esquerda ou direita, justificando etc. (operações com strings);

8) Abra um arquivo texto e o converta em HTML;

9) Pegue a data e hora do sistema e o converta em outro formato;

10) Crie arquivos com a data e hora no nome do arquivo;

11) Pegue uma tabela HTML e grave um arquivo separado por vírgulas;

12) Extraia palavras em maiúsculas ou palavras únicas de um arquivo;

13) Implemente quebra de linha automática conforme o tamanho da janela mostrada (veja o programa Notepad do Windows);

14) Adicione ou remova itens no começo, meio ou fim de um array;

15) Verifique, por fim, se esses recursos são suportados na sua linguagem: funções virtuais, referencias, pointers? Existem coisas como namespace, package, module, estude então o assunto name mangling.

Java ou C#? Você responde.

Nivaldo Foresti é programador há 30 anos, desde a jurássica era do mainframe. Foi consultor e desenvolvedor de produtos na internet como o BOL e hoje tem uma empresa de webcasting, com software nacional. Neste espaço, o colunista revela o que os desenvolvedores podem esperar da profissão, além de analisar as novas eras tecnológicas que se aproximam. E-mail: nforesti@yahoo.com .

Copiado de: idgnow

sábado, novembro 01, 2008

Microsoft Small Basic

HI,

Estava lendo o blog de download da Info e dei de cara com uma nova linguagem de programação da microsoft destinada ao aprendizado de lógica de programação. Trata-se do Small Basic, mais uma encarnação do velho Basic (que, na empresa de Bill Gates, equivale à moeda número 1 do Tio Patinhas).

Instalei e já executei o tradicional Hello World, hehehe.

Gostei do que vi. Quando você coloca o cursor em uma função da linguagem por exemplo, na barra localizada do lado direito exibe um texto descrevendo seu funcionamento.

Tem até o LOGO, hehehe. Minhas primeiras aulas de algoritmo usando um computador (386) foram com ele. Fazia altas figuras.

Alguém aí lembra dessa tartaruga ? hehehe




Vou procurar alguns algoritmos e implementar. Verificar se é bom mesmo para quem está iniciando.

Achei aqui
Conheça a nova linguagem Small Basic



Até a Próxima

sexta-feira, outubro 31, 2008

Erro executando Procedure - "unknown ISC error 0"

HI,

Ontem me deparei com o erro "unknown ISC error 0". Depois de muito procurar no google não encontrei uma solução, talvez não tenha me dedicado, hehehe.

Mas ficava lembrando que a única que vez que tive problema com uma procedure no Firebird utilizando Delphi 7, foi por causa do tamanho do nome. Se não me engano o erro indicava que o problema era o tamanho, não me recordo muito bem.

Desconfiei que poderia ser esse o motivo, mas continuei no google. Estava desconfiado por que no Windows Vista as mensagens de erro nem sempre indicam o verdadeiro motivo, hehehe. Sem falar que as outras procedures estavam ok.

Foi só apagar a procedure e criá-la de novo com um nome menor que deu certo. Deveria ter tentado isso logo, hehehe.

A procedure é bem simples, serve para pegar o próximo valor de um Generator. Por isso sabia que o erro num era nela, hehehe.

Até a próxima.

terça-feira, outubro 28, 2008

Divulgue seus vídeos de dicas

HI,

Quel tal um site para divulgar as suas vídeo aulas ? Seus vídeos de dicas sobre os mais variados assuntos ?

Cadastre-se no site tipsinaction.com e utilize a opção de sugerir um vídeo.

Realizando o cadastro você também terá acesso aos comentários e descrições dos vídeos. Aproveite atmbém para indicar vídeos que acha que será útil para outras pessoas. Compartilhe seus conhecimentos.

No momento o site só trabalha com vídeos que estão no youtube.



Até a Próxima.

Dicas sobre Currículo Vitae e Entrevista de Emprego

HI,

Segue alguns vídeos que encontrei sobre currículo vitae.

Ainda lembro do primeiro que fiz. Não tinha nenhum a experiência profissional. Tinha apenas trabalhado como monitor de biologia no primeiro ano de curso.

Falei sobre os trabalhos envolvendo programação. Um dele foi para uma feira de informática do colégio, foi em Delphi 2, era um sistema para clínica odontológica. Isso foi em 96. Nosso professor que fez tudo, hehehe. Só tinhamos visto pascal até o momento. Mas ficavamos prestando atenção nas explicações. Lembro das tabela sendo criadas no Database Desktop, em piradox, hehehe.

Outro trabalho foi o de conclusão do cusro na materia de introdução a analise de sistemas, em 97. Eram grupos de quatro alunos. Em nossa equipe o professor colocou os melhores. Era um sistema de controle escolar. Pena que não tenho os fontes. Um dos módulos que fiz foi a grade de horário das turmas. Da alocação do professor em cada horário.

Também coloquei a pretenção salarial. Coisa que não se deve fazer mais. Coloquei como se fosse uma SQL, hehehe. Salário Between XXXX and XXXX. Lembro dos valores, mas não vem ao caso. O importante é que fui contratado e depois de 10 anos voltei a trabalhar para a pessoa que entreguei esse currículo vitae, hehehe. Depois disso foi só na base do QI, não precisei criar mais nenhum.


Depois do Momentum Nostalgia, vamos aos vídeos, hehehe.

Consultoria - Montando um currículo

Como hacer un Curriculum Vitae exitoso en 5 minutos

Como Conquistar o Primeiro Emprego

Dicas de como se comportar em entrevistas de emprego


O primeiro vídeo é muito bom. Recomendo a todos.

Até mais.

domingo, outubro 26, 2008

Momentun Relax #1

HI,

Tempão que num publico nada aqui. Não é falta de assunto, é de tempo mesmo.

Vou começar a escrever sobre outros assuntos. Nem só de programação é que vive o homo sapiens.

Ontem li uma materia sobre o Joost. Antes não usava o programa, não tinha conexão para isso. Mas agora já é possível assistir os canais diretamente no browser. E agora tenho uma conexão descente, hehehe.

Pena que num tem muitos canais brasileiros. Tou curtindo alguns clipes do Brazilian Hits. Biquine cavadão para ser mais preciso. Também já assistir alguns filmes do Buster Keaton, o palhaço que nunca ri. Os vídeos possuem boa qualidade e o tempo não segue o padrão de 1o minutos do youtube.

Até a próxima.

sexta-feira, agosto 29, 2008

Problema com Firebird, Database shutdown.

HI,

Recebi de um cliente o backup da base de dados de um sistema que possuo. Procedi com o Restore do bkp (a base fica em um servidor linux, eu uso windows) utilizando o IB Express. Ok, até aí tudo bem.

Fui executar o programa e deu um erro dizendo que a base estava shutdown. Pensei que o serviço do firebird estava parado, mas estava tudo normal.

Abri normalmente outra base no ib expert. Então fui a caça da solução no google e encontrei uma página com os comando do gfix. Vi lá que tinha um parametro para deixar a base on-line.

Executei o seguinte comando:
gfix -o -user sysdba -password masterkey base.gdb, e ficou tudo OK.

Tela de erro do IB Expert



Utilização do GFIX
http://www.destructor.de/firebird/gfix.htm



Até a Próxima

domingo, agosto 24, 2008

Deixe seu programa mais bonito e interessante

HI,

Estou para fazer um novo programa e gostaria que ele tivesse uma aparência mais sofisticada.

Fui a procura de um componente de skin para Delphi e achei o VclSkin. Instalei no meu delphi 7 e criei um pequeno exemplo que vou disponibilizar aqui.





Esse exemplo tem o recurso de trocar a skin em tempo de execução e de carregar o último skin selecionado.

Download dos Fontes

Download do executável


Qualquer dúvida é só dizer

Até a próxima

Cursos Gratuitos

HI,

Dica de cursos gratuitos de HTML, PHP Básico e Linux Ubuntu.

IPED
http://www.iped.com.br/site/gratis/

Até a Próxima.

Time Trab - Vídeo

HI,

Fiz um vídeo do programa que criaei para controlar o tempo gasto em um projeto.

Esse vídeo já é da nova versão. Fazia muito tempo que não atualizava o programa. Incluir um recurso que foi bastante solicitado, para informar diretamente o valor da hora, antes o valor só era obtido informando o salário e as horas dispensadas no projeto por dia.

Essa nova versão tembém é compatível com o windows vista.

Depois faço um vídeo com áudio.



Até a próxima.

sábado, junho 21, 2008

Pascal para iniciantes, o vídeo

HI,

Acabei de assistir esse vídeo e tou com dificuldade até agora para respirar. É muito hilário, hehehe.

Vejam o quanto é complicado determinar se um número é primo ou não.





Até a próxima.

domingo, junho 08, 2008

Configurando o ActiveSync para Sincronizar com o Emulador

HI,

Pesquisando sobre como criar um arquivo de instalação para pocket pc, acabei aprendendo como configurar o ActiveSync para sincronizar com o emulador. Antes quando não sabia e precisei capturar as telas de um exemplo que fiz que utiliza o sql server mobile, tive que colocar um código para criar o banco de dados e uma tabela, já que não conseguir copiar o banco de dados no emulador.


Configurando o ActiveSync

Acesse a opção "Configurações de conexão" e marque a opção "Permitir conexões com um dos seguintes itens" e em seguida escolha o item "DMA". Clique em OK para confirmar.




Usando o Emulador

No Visual Studio, em Tools, escolha a opção "Device Emulator Manager...".



Clique com o botão direito do mouse em uma opção de Emulador e clique em Connect.



Para sincronizar o emulador com o ActiveSync, clique novamente com o botão direito sobre o tipo de emulador escolhido e clique em Cradle.




Em seguida será iniciado o processo de sincronia.





Caso tenha algum problema, dê um shutdown no emulador, depois vá nas configurações do ActiveSync e desmarque a opção de "Permitir conexões com um dos seguintes itens" e clique em OK. Em seguida ative novamente o emulador, clique em connect e depois em cradle. Acesse novamente as configurações do ActiveSync e marque a opção "Permitir conexões com um dos seguintes itens". Esse procedimento deve iniciar o processo de sincronia.


Qualquer dúvida é só perguntar.

Até a Próxima.



Fonte:

http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=3958
http://msdn.microsoft.com/pt-br/library/ms228714.aspx

domingo, junho 01, 2008

Desenvolvendo um Cliente FTP para Pocket PC

HI,

Agora estou na etapa de criar um cliente ftp para Pocket PC.

Achei um cliente de ftp em C# e fui tentar usar o código em um projeto Smart Device e não funcionou. Algumas classes não existem no Compact FrameWork. Ainda tentei achar uma solução no google para esse código e não tive êxito.

Nessa busca cheguei a encontrar o OpenNETCF Community, mas não consegui utilizá-lo. Trata-se de um conjunto de classes para diversas finalidades, uma delas é para implementar um cliente de ftp.


Tela do Cliente de FTP para windows em c#.




Na continuidade de minha busca, encontrei um código para um cliente de ftp que consegui implementar no programa para pocket pc.

Deu um pouco de trabalho devido a uma função da classe Char para converter uma string para um valor do tipo char que não existe no compact framework (utilizei o 2.0, não testei no 3.5).

Tive que encontrar uma alternativa para a função Char.Parse.

A solução que encontrei foi essa: de char ch = Char.Parse(ipData.Substring(i, 1)); para char ch = ipData[i];.

Deu trabalho por que eu tinha pego o código e tranformado em uma DDL. Utilizei a dll no programa e deu esse erro do Char.Parse. Descobri que o compact framework não suportava por que resolvi utilizar o código diretamente no projeto, aí o visual acusou que não existia a função Char.Parse.


Criei uma cópia da tela do ftp para windows.



Cheguei a testar as funções de listar o conteúdo de uma pasta e para fazer o download de um arquivo. Funcionou. Depois eu termino de implementar esse exemplo.

Download do código para criar um cliente de ftp para Pocket PC.
classe_cliente_ftp_windows_mobile.txt

Até a próxima.

domingo, maio 25, 2008

Desenvolvendo uma agenda de contatos para Pocket PC

HI,

Depois do Hello Wolrd, chegou a hora de dominar o mundo, hehehe. Um passo de cada vez, claro.

Como tinha dito antes, estou no processo de aprendizado para criar programas para Pocket PC e acabei de elaborar um exemplo demonstrando como incluir, atualizar e excluir usando o Sql Server Mobile com C#. E nada melhor para treinar isso do que fazer uma agenda de contatos, hehehe.

Esse programinha é resultado de quatro artigos que encontrei, e claro, de minha experiência, hehehe. Não foi fácil fazer esse exemplo. Três artigos não são para principiantes e são incompletos. Vou explicar na descrição de cada artigo.

Artigos

1 - Desenvolvendo Aplicações para Pocket PC – Parte III

Pensei que ia fazer a agenda usando somente esse artigo, mas falta o código para editar o registro e a parte de excluir não funciona. Descobri que não excluía porque estava faltando o código do DeleteCommand no SqlCeDataAdapter na rotina CarregaDataAdapter. Por que eu coloquei um "Delete from tabela" e funcionou, mas aí excluiu tudo, hehehe.

Não consegui implementar a rotina de editar desse exemplo.


2 - SQL Server Compact Edition: Criando um framework para acesso a dados em dispositivos móveis

Já tinha esse em meus favoritos. Lembrei dele por que se eu fosse passar o comando de Excluir com o código do registro corrente para a rotina CarregaDataAdapter, era melhor usa SQL para tudo. Para Inserir, Alterar e Excluir.

Mas nesse exemplo as classes para manipular o banco não são estáticas. Do primeiro são. Fiz essa alteração nas classes do segundo exemplo.

E do primeiro exemplo dispensei o uso do BindingSource.


3 - Controle de Estoque no Pocket PC: do eVB ao VB .NET

Desse artigo aproveitei os comandos para criar as colunas do DataGrid e definir seus tamanhos.


4 - Introdução ao SQL Server CE

Tinha encontrado artigo de tarde quando estava pesquisando sobre o DataGrid. Quando foi agora de noite para executar o programa no emulador, lembrei dele. É que tava dando erro, não tava encontrando banco de dados e não conseguir fazer uma sincronização com o emulador para carregar o banco de dados. Foi aí que resolvir incluir o comando de criar o banco de dados e de criar a tabela, para conseguir usar o programa no emulador. Antes estava testando no meu qtek.


Telas do Programa








Códigos que incluir

São códigos que não existem nos artigos. Alguns tive que implementar por não está mais usando o BindingSource. Que automaticamnete exibiar o registro corrente na tela.

- Pegar o registro e exibi-lo na tela.
- Ao escolher um registro na tela de pesquisa e retornar, exibir na tela.
- Controle de estado dos botões.
- Os códigos nos botões para se trabalhar com as classes do Framework do segundo artigo.
- Rotina para limpar os campos da tela.
- Uma imagem na tela principal.
- etc, hehehe.


Download

Código fonte de uma agenda de contatos para pocket pc feita no VS2008 Framework 2.0 usando C# com SQL Server Mobile.

http://www.4shared.com/file/60269901/50c39bca/AgendaFontes.html


Espero está ajudando com esse programa. Depois tem mais. Ainda falta um exemplo para trabalhar com WebService e outro para enviar/receber um arquivo por ftp.

Até a próxima.

domingo, maio 04, 2008

Hello World no Windows Mobile

Nossa!!! Tempão que não pronunciava essa celebre frase. Consegui pronunciá-la - para WM - graças a um blog que descobri ontem sobre desenvolvimento para dispositivos móveis.

Graças ao artigo Como desenvolver sua primeira aplicação Olá Mundo para Windows Mobile coloquei um pé no ambiente de desenvolvimento para windows mobile.

Agora é só dá continuidade no aprendizado e portar o programa de força de vendas para Palm OS que tenho com um amigo.

Pretendo criar vários aplicativos nesse aprendizado, tipo uma agenda, um programa para enviar um cadastro para um servidor, um programa para receber e enviar arquivos, etc.

Quem quiser juntar-se nessa empreitada¹ é só deixar um recado.


Telas do programa

No Visual Studio 2008

Tela1


Tela2



Usando o emulador

Tela1


Tela2



Esse programa envia o texto digitado na tela1 para a tela2.

Também testei no meu QTEK A9100. Muito emocionante, hehehe.


Download dos fontes
http://www.4shared.com/file/60270387/3c86571b/HelloWorld.html


¹ - Para aprender a programa para WM e não para desenvolver a aplicação de força de vendas.

quarta-feira, fevereiro 13, 2008

Popup com parâmetros em Asp.net

Chega de tanto blá, blá, blá. Vamos ao que interessa. O código santo de cada dia, hehehe.

Em um trabalho envolvendo Asp.net, precisei exibir alguns dados em um GridView. Mas eu não queria exibir na mesma página e nem chamar outra página utilizando link. Fixei a idéia que deveria utilizar uma janela popup para exibir esse Grid. A consulta utilizada por ele recebia dois parâmetros informado pelo usuário. Data inicial e final.

Pensei que poderia passar os parâmetros pelo lado do servidor.

< id="Button1" runat="server" text="Popup usando JavaScript" onclientclick="popitup('Popup.aspx?texto="<% Response.Write(TextBox1.Text); %> /> < / asp : button >

Mas eu recebi essa linda mensagem de erro:

Parser Error Message: Server tags cannot contain <% ... %> constructs.


Eu sabia que poderia pegar o valor do controle utilizando JavaScript. Arrumei um exemplo para refrescar a memória no bom e velho Google e montei meu código.

Também tinha achado um exemplo para criar o código do Script do lado do servidor usando o método RegisterStartupScript. Esse método coloca o script na base da página - depois que o navegador receber todas as tags e antes da tag </form>.

Hoje de noite preparei um exemplo com essas duas formas de se chamar um Popup quando se trabalha com Asp.net


Tela da página ChamaPopup.aspx





Tela do Popup.aspx





Usando a opção de JavaScript, acrescentei um "return false" no evento para evitar que o postBack do botão seja acionado. Dessa maneira se o usuário clicar no botão de voltar do navegador, vai voltar para a página anterior e não "voltar" para a mesma página.

Quando estava preparando esse exemplo, pesquisei sobre o método RegisterStartupScript e achei dois excelentes artigos sobre o tema abordado aqui.

São eles:


Download do exemplo

http://www.4shared.com/file/60270705/1d5814e3/ChamaPopup.html

terça-feira, fevereiro 12, 2008

Meu primeiro MSDN WebCasts

Hoje participei do MSDN Webcasts sobre Visual Studio 2008, foi o meu primeiro. Estou começando a conhecer muita coisa da Microsoft que eu fazia questão de desconhecer. Quebrando paradigmas (sim, eu li o Monge e o Executivo, hehehe).

Tema de hoje.

Dicas e Truques do Visual Studio .NET 2008

Idioma(s): Português.
Produto(s): Visual Studio 2008 Professional,Visual Studio 2008 Standard.
Público(s): Desenvolvedores.
Mercado Relacionado: Serviços Profissionais.
Duração: 60 Minutos
Data de Início: terça-feira, 12 de fevereiro de 2008 20:00 Brasília

Visão Geral do Evento

Palestrantes: Renato Haddad e Alexsandro Antunes.

Neste Webcast, Renato e Alex irão abordar as dicas e truques do VS 2008 usados no dia a dia do desenvolvedor, explorando a ferramenta com produtividade. Veja como instalar o VS 2008, criar projetos em multi-plataformas, usar C# e VB.NET na mesma aplicação, aplicar CSS no ASP.NET 3.5, como adicionar Ajax em controles, Master-page encadeadas, exportar templates do ASP.NET 3.5, gerenciamento de Using/Imports, usar o Intellisense adequadamente, refactor, criar propriedades automáticas, extrair Interface de uma classe, criar um diagrama de classe, usar o Debug visualizer, uso de generics em coleções, novas facilidades do Class View, trocar a plataforma de aplicações móveis no Windows Mobile 6 e como criar um Code Snippet. Desta forma, você poderá explorar as principais funcionalidades do VS 2008.



Gostei do que vi. Dicas que tornam ainda mais fácil o trabalho no VS 2008.

Única parte que não gostei, foi por que não ganhei uma das 5 camisas sorteadas, hehehe.

Esses são os eventos que me inscrevi



Para acompanhá-los é preciso o Live Meeting. É possível participar de enquetes e enviar perguntas para os apresentadores.

segunda-feira, fevereiro 11, 2008

Sou Ágil e não conhecia o Ágil

Ano passado tomei conhecido do Desenvolvimento Ágil. Trata-se de um conjunto de metodologias de desenvolvimento de software.

Estava pesquisando sobre as metodologias existentes, já que caiu no meu colo a responsabilidade de ser um Analista de Sistemas Sênior (deve ser a idade. e o nome desse blog já existia, era do tempo que eu ainda era só um programador ).

Li o material que encontrei na wikipédia sobre o Desenvolvimento Ágil e Extreme Programming (XP), que é umas das metodologias. Captei algumas idéias sobre XP. Coloquei em prática a regra de sempre liberar uma release, de sempre está mostrando o que está sendo feito. Outras eu já praticava há anos. Pegava a idéia com o cliente, aprendia sobre o que ele estava solicitando e já começava a escrever o código. Também só fazia no começo o que era necessário para deixar o programa funcionando, depois é que eu ia incrementando. Sempre procurei implementar de maneira simples, sem muitas frescuras, sem muitos enfeites e bem objetivo. O que eu pecava mesmo era na comunicação com o Cliente, nos testes e na quantidade de bugs. Trabalhava sozinho e em casa, mas agora estou numa equipe, tentarei por em prática a programação em pares.

Por conta da correria no trabalho, acabei esquecendo de me aprofundar no assunto. Na verdade tinha até esquecido. Mas ontem eu achei sem querer um link sobre o assunto. Tava procurando material sobre C# e Asp.Net. Foi um artigo que encontrei no Linha de Código, e ele é recente. Identifiquei-me bastante com o artigo. Pretendo me aprofundar mais no tema e adotar o XP como metodologia a seguir. Ontem comprei até um livro no site da Americanas.

Também tomei conhecimento do Manifesto Ágil. Depois vou assiná-lo.

Amanhã publico um post com o material que achei sobre o que abordei aqui.

Problema na conexão Pc / Pocket PC

Andei enfrentando uns probleminhas no sincronismo entre o Micro e o Pocket PC. O PPC não estava sendo reconhecido e ainda aparecia uma mensagem na tela dele dizendo que não foi possível obter um endereço IP.

Executei uma rotina do ActiveSync para analisar a conexão. Foram encontrados dois problemas e para cada um deles foi indicando uma url para tentar solucionar o problema.

Sobre o problema do IP.
If the DHCP Client Service on the Computer is Not Running

Sobre o problema de não ser reconhecido.
If ActiveSync Cannot Receive Data Through Port 990

Ainda continuo com o problema do IP. O serviço DHCP já estava rodando. E o interessante é que o Firewall estava desativado, já que o roteador wi-fi tem um. Ativei o firewall do windows e adicionei a porta, fiz o mesmo no firewall do roteador. Depois disso sincronizou que foi uma beleza. Exceto a parte do Windows Media Player. Ainda falta concluir a atualização dele no PC.


quarta-feira, fevereiro 06, 2008

Transforme seu Pocket PC em um iPod

Agora você pode transformar seu Pocket Pc/SmartPhone em um iPod. Basta instalar o programa pPod.



Ele tem o visual do iPod da terceira geração.



Assista uma demonstração do programa em funcionamento.

Já instalei no meu Qtek A9100. Agora "ouvo" meus mp3s com estilo, hehehe.

Download do pPod
http://brokenzero.com/2007/09/11/turn-your-pocket-pc-into-an-ipod/

terça-feira, fevereiro 05, 2008

Amanhã começa o Ano

Quem nunca disse que o ano só começa depois do carnaval ou nunca presenciou alguém dizendo, que atire o primeiro comentário, hehehe.

Na verdade estou aproveitando para retornar as atividades desse meu blog. Por que este ano para mim, começou ano passado.

Faz um tempão que num publico nada aqui. Depois que mudei para outro Estado e me fixei em uma empresa, complicou mais ainda meu tempo livre. Antes eu acordava umas 11 da manhã e ficava no computador até de madrugada, trabalhava em casa. Agora trabalho em uma empresa e em casa, hehehe. Acordo às 06:30 em vou dormir às 00:30.

E nesse retorno ao blog o que num vai faltar é assunto. Tou trabalhando com Oracle, Asp.Net e Windows Mobile. E ainda continuo com o Delphi, Firebird e NSBAsic. Não pretendo mais trabalhar com PHP, o Visual Studio é baum d+, hehehe. No VS tou usando o C# para programar. Ainda pretendo manter distância do Visual Basic, hehehe, mesmo ele sendo .net.

É isso aí. Amanhã estou aqui trazendo conteúdo. Tentando ser útil. Retribuindo o que aprendi durante todos esses anos.

PS: Ainda bem que o expediente amanhã no trabalho só começa depois do almoço, hehehe.