FISL 22/07/10: segundo dia de palestras

Neste segundo dia, mais palestras. Algumas muito boas, outras nem tanto. Abaixo segue os comentários sobre elas. Quanto a feira, andei um pouco por ela e ate o momento nao vi nada que valha a pena comentar, mas isso e mais uma coisa minha de nao gostar muito de feiras.

1. Ecossistema do desenvolvimento agil

Metodologias Ageis

– economia

– resultado

– eficiência

– “ suficiência” evitar desperdício

Contexto: a “historia” de cada um

metodo agil -> compartilhamento do contexto

esforço para unir o esforços

sem hierarquia

lembrar da necessidade de pedir ajuda

Software

-Intangivel

-criar ambiente favoravel a mudança

Feedback – o cliente observa e interage com o software; suas açoes sao observadas.

NO PRINCIPIO TEMOS O CLIENTE  E SEUS DESEJOS.

tempo x esforço

Estimativa
Tarefas visuais

Lembretes  e tarefas]

Reuniao diaria (em pe)

apos o fim do sprint, o fim da iteração.

Test-drive (pelo cliente)

Programação em par

-o conhecimento ocorre pela iteraçao entre sujeiro e objeto.

Modelagem visual

Baby Steps

-nao assumir que saiba alguma coisa – conferir tudo.

Nao se repita

Controle de versao

Testes automatizados

Integraçao

Uso do PostgreSql para soluçoes corporativas

caso de uso: caixa economica federal

por onde conmeçar a usar postgresql:

-tecnicamente, em qualquer projeto que necessite de um bd

mudança tecnologica:

visual studio -> sql server

netbeans (Java) -> postgresql

adaptaçoes:

-motivaçao da equipe

-aquisiçao de conhecimento (treinamentos, manuais, livros – alto custo)

-prospecçao de ferramentas

-estrategia de migraçao

limites do postgresql:

tam max bd ilimitado

tam max tabela 32TB

soluçoes com postgresql:

-SalaSegura

-Sistema de conta unica

-Sistema de autenticaçao biometrica

liçoes aprendidas na migraçao:

-padrao de nomenclatura dos objetos

–nomes em miniatura

-organizaçao dos databases

–integridade referencial entre multiplas databases

–datrabases departamentais – schemas

-campos tipo auto-incremento

–utilizaçao do objeto tipo sequence (nextval)

-string de conexao (tamanho)

–configurar varios aspectos

-strings sql

–algumas diferenças na conatruçao

-processo de backupo

–agendamento: script linux

-processo de limpeza e reindexaçao

–limpeza dos registros: VACUUM

-processo de tuning

–aprenda bem antes de realizar

Agile e Open Source – A experiência do framework demoiselle

manifesto agile:

estamos descobrindo melhores formas de desenvolver software

interaçoes individuais

software funcionando

colaboraçao com o cliente

resposta as mudanças

demoiselle – framework open-source para desenvolvimento java/web

-framework – parte principal

-wizard

-sample

-component

livro: “scum e xp direto das trincheiras”

livro “innovation happens elsewhere” – hybryd open source

GNU LibDWG – libertando arquivos CAD

area emergente (projetos livres)

-brl-cad (exerc americano)

-grass (osgeo foundation)

-opencascade (plataforma cad)

-freecad (python)

-archimedes (usp)

mercado proprietario:

-autocad

DWG

formato nativo do utocad, criado na decada de 70

dados armazenados no formto binario

maioria dos arquivos cad estao nesse formato

sem suporte via software livre

libDWG

libDWG derivada da libreDWG (em esperanto)

especificaçao open design alliance

fsf high priority projects list

pacote do projeto gnu

suporte r13, r14, r2000, r2004, r2007, r2010

escrita em C (e muitas macros)

como participar

-escrevendo codigo

–suporte a 3d (acis)

–leitura r2007 e r2010

–escrita dwg

–bindings para outras linguagens (python)

–suite de teste automatizada

–google summer of code 2011

-testando

–provedo arquivos dwg

–executando testes

-promovendo

–divulgue

–use em software livre

Empreendedorismo – como começar sua startup

começa com uma ideia

-mas como gerar uma ideia

-pense: o que mais te incomoda em algo

-o que mais gosta de fazer

-tem algo fora do pais

-voce consegue fazer melhor

-ouça a reclamaçao de outras pessoas

avaliando sua ideia

os 3 M’s

-market demand – demanda do mercado

-market size e structure – tamanho e estrutura do mercado – tem clientes suficientes; qual o tamanho da concorrencia.

-margin analysis – consegue produzir tendo lucro

alguns produtos exigem uma infra-estrutura

como voce vai ganhar dinheiro com seu produto – ads fail

tenha um plano b para ganhar dinheiro

o cliente nem sempre sabe o que quer, prototipo, demonstraçao

pesquise, mas saiba escolher sua amostra

se voce procurar por investidores…

procure emprendedores, entusiastas, socios, loucos…

vai achar gente pra construir sua ideia.

procure investidores, para descobri…

investidor nao investe em ideia.

dedicaçao

-combine tempo

-ajuste o tempo para algo que voce pode cumprir

-expectativas nao cumpridas frustam os envolvidos

-nao planeje em excesso

-se precisar melhore a equipe

prototipo

-nao precisa ser o software. precisa ser mais que a ideia.

-se precisar mude ou molde a ideia

-construa e re-construa o prototipo

-tenha um objetivo claro. quando o prototipo esta pronto.

-na ocorrencia de uma nova ideia, mantenha o foco.

procure investidores e parceiros

-agora voce nao tem apenas uma ideia

-o nao voce ja tem: aumento de salario

-o combinado antes nao sai caro

-muita gente quer fazer parceria, voce so precisa mostrar potencial no seu negocio e ter moeda de troca.

sem medo de ganhar dinheiro

-cubra os custos de venda

-alguem sempre praticara um preço mais barato que o seu.

QTestLib: criando unit tests inteligentes para projetos baseados em Qt

introduçao

o que eh o qt – framework multiplataforma para desenvolvimento de aplicaçoes

o que sao unit tests:

-caracteristicas

–testes de blocos individuais e independentes do codigo

–validaçao do comportamento esperado

–mensura a qualidade do codigo esperado

–testes podem ser automatizados

-beneficios

–simplifica a integraçao do codigo

–evita bugs de regressao

–detecçao rapida de bottenecks (partes do codigo comproblema de perfomance\0

ferramentas de teste do qt

framework QtTestLib

namespace QTest

–metodos publicos para benchmark, data driven testing, simulaçao de eventos, sleep/wait do loop de eventos, facitadores de output

–macros

–tipos: keyaction, mouseaction, testfailmode e outros

–classes: qsignalspy e qtoucheventsequence

escrevendo unit tests

o que e necessario:

-herdar de QObject

-implementar cada teste em separado como private slots

-4 slots especiais tratados como nao tesre:

initTestCase()

cleanupTestCase()

init()

cleanup()

Como escrever seu primeiro patch para o kernel

por que:

-dificil

-documentaçao

-muitas mudanças

-pensamento “you arte stupi if you can not figure it out”

o que aprenderera:

-baixar codigo

-navegar pelo codigo

-escrever um patch

-enviar o patch

desenvolvimento centralizado no linus torvalds

comunicaçao pelo Linux kernel mailing list (LKML)

ou em lista de subsistemas (netdev, powerpc, wireless, etc)

versao estavel (-stable)

desenvolvimento completamente dependente

git.kernel.org – contem todas as arvores de desenvolvimento do kernel

a arvore do linux e a oficial

cada subsistema tem uma ou mais arvores

cada arvore tem um mantenedor

mantenedores enviam o codigo para o mainline

linux-2.6/Documentation/CodingStyle

utilizar tab para identar

80 colunas

menos de 3 niveis de identaçao

chaves na mesma linha para if, while, etc

chavres na linha abaixo para funçoes

utilize i aoa inves de loop.counter

utilize count.active.users() ao inves de cntusr()

nao misture maisculas e minusculas

faça funçoes pequenas

use GoTo

comente e utilize o estilo kernel-doc

sempre use o checkpatch.pl

instalar git

instalar compilador

git clone <arvore>

instalar cscope

–apt-get install cscope

–make cscope