Excelente explicação sobre joins

Excelente explicação sobre joins, veja:
http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

Radical Management - Heitor Roriz

Radical Management

Heitor Roriz

o que Steve Jobs fez pela Apple dificilmente o seu substituto conseguiria: introduzir a visão e a perspectiva do cliente em todos os ambientes da empresa. Isso não é tarefa fácil tendo em vista a situação econômica global, cada vez mais levando as empresas a reduzir e cortar custos, tendo como protagonista a famosa contabilidade de custos. É com base nisso que as empresas vêm medindo progresso.

Eliyahu Goldratt desenvolveu um conceito diferente, denominado contabilidade de eficiência, que conceitualmente procura aumentar a velocidade em que os produtos e serviços se movem através de uma organização eliminando os gargalos.

Steve Jobs conseguiu que a máxima "delight the customer" estivesse por toda a organização, nos levando a repensar os conceitos de liderança e inovação, o que Steve Denning chama em seu livro "The leader's guide to Radical Management" de Gerenciamento Radical, um conceito inovador, construído tendo como base os valores Agile!

"Delight your ears" ouvindo essa palestra!



"Diga 33!" Case de sucesso de um projeto puramente XP dentro da TIM-Sul

"Diga 33!"
Case de sucesso de um projeto puramente XP dentro da TIM-Sul


Tirando o código a limpo: um código de conduta para profissionais - Edson Yanaga

Tirando o código a limpo:
um código de conduta para profissionais - Edson Yanaga

Você é um desenvolvedor de software? Você é "ágil"? Você cola uns post-its na parede, faz umas reuniões em pé e acha que isso é suficiente? Você gosta de ser "ágil" pois permite que você documente menos, programe menos e se esforce menos? (Afinal, os méritos e as culpas são todos do "time".) Você gosta de estar na moda?

Nesta palestra vamos distinguir aqueles que programam daqueles que fingem. Vamos identificar os desenvolvedores profissionais e os que não merecem o nosso apreço. Vamos mostrar o que é necessário para que TODOS passem a respeitar essa profissão chamada "programador". De qual lado você está? De qual lado você quer permanecer?


"O Dilema" - Klaus Wuestefeld

"O Dilema" - Klaus Wuestefeld

Focar na qualidade do software ou na entrega imediata de novas funcionalidades?
A maioria das equipes de desenvolvimento ignora a qualidade, dia após dia, projeto após projeto, favorece a entrega imediata e detona sua própria produtividade já a partir do curto prazo. Por quê?
Nas palavras de Albus Dumbledore: "Logo, logo, Harry, todos teremos que escolher entre o que é certo... e o que é fácil."



Como melhorar eficientemente

Atualmente me divirto com um jogo chamado StarCraft II, procurando material para melhorar meu aprendizado e habilidades neste jogo, encontrei um texto muito interessante, do qual venho resaltar um trecho que vale para qualquer área da vida, fala sobre como se tornar um dos melhores de forma consistente, e resalta algumas limitações naturais que veem da forma tradicional de ensino.



"Eu já vi várias pessoas que parecem ter um problema particular em aprender; elas simplesmente não sabem aprender.É verdade que se uma pessoa aprende uma coisa sozinha, elas tendem a aprende-la 10 vezes melhor que se essa coisa fosse contada por qualquer outra pessoa.Você pode acreditar nisso?Eu usei isso várias vezes em minha vida, e agora, várias pessoas me consideram um faz-tudo; eu pareço ter talento em tudo o que eu faço.Honestamente, isto é porque eu descobri cedo na vida como descobrir coisas.Agora, ao invés de dizer que os melhores jogadores tem “talento natural”, considere que todos os melhores jogadores sabem como continuarem a aprender continuamente no SCII.Isso faz muito sentido.Grande parte das pessoas podem apenas aprender certo tanto antes de atingirem uma parece por que elas não desenvolveram a habilidade de aprender coisas complicadas.Eu acho que para uma pessoa fazer alguma coisa em um nível muito alto de competitividade em qualquer área, a habilidade de aprender constantemente é muito importante.



Pensei nisso, se você cresceu toda a sua vida no sistema de escola pública(no nosso caso do brasil, é particular) ‘’recebendo’’ inteligencia ‘’na boca’’,o quão bom você acha que você vai ficar no StarCraft II se seus meios de melhorar estão muito ligados a outra pessoa?Imagine o quão ruim você será se você aprender dez vezes pior do que alguém que se ensina.
Agora há uma possivel contradição no que eu estou detalhando: como este manual pode lhe ensinar a melhorar no SCII de uma maneira efetiva se voce não pode se ensinar? Bem, eu gostaria de pensar neste manual como ferramenta.Esta ferramenta faz mais fácil para você como quem quer aprender sozinho.Lembra-se de como na introdução eu disse que a idéia deste manual não era focar-se em estratégias ou métodos?Eu não vou lhe ensinar a jogar melhor, eu vou tentar lhe ensinar a ensinar a você mesmo, te mostrando o caminho certo para começar sua jornada de melhora."


Fonte: http://us.battle.net/sc2/pt/forum/topic/3123368643

Carta do cacique Seathl – Seattle

A carta abaixo, do cacique Seathl – Seattle – mostra que, embora a Ecologia seja uma ciência nova, o raciocínio ecológico não foi criado pelos homens de hoje. Eis um trecho, no qual revela suas crenças, tradições e o apego a terra onde viviam e que provia seu sustento:

O grande chefe de Washington mandou dizer que quer comprar a nossa terra. O grande chefe assegurou-nos também de sua amizade e de sua benevolência. Isto é gentil de sua parte, pois sabemos que ele não precisa da nossa amizade. Vamos pensar em sua oferta. Se não pensarmos, o homem branco virá com armas e tomará nossa terra. O grande chefe em Washington pode acreditar no que chefe Seatlle diz, com a mesma certeza com que os nossos irmãos brancos podem confiar na mudança das estações do ano. Minha palavra é como as estrelas, elas não empalidecem. Como podes comprar ou vender o céu, o calor da terra? Tal idéia é estranha. Nós não somos donos da pureza do ar ou do brilho da água. Como podes então comprá-los de nós? Decidimos apenas sobre coisas de nosso tempo. Toda esta terra é sagrada para meu povo. Cada folha reluzente, todas as praias de areia, cada véu de neblina nas florestas escuras, cada clareira e todos os insetos a zumbir são sagrados nas tradições e na crença de meu povo. Sabemos que homem branco não compreende nosso modo de viver. Para ele, um pedaço de terra é igual a outro. Porque ele é um estranho que vem de noite e rouba da terra tudo quanto necessita. A terra não é sua irmã, é sua inimiga, e depois de a esgotar, ele vai embora. Deixa para trás a cova de seu pai, sem remorsos. Rouba a terra dos seus filhos. Nada respeita. Esquece o cemitério dos antepassados e o direito dos filhos. Sua ganância empobrece a terra e deixa atrás só desertos. Tuas cidades são um tormento para os olhos do homem vermelho. Talvez seja assim por ser o homem vermelho um selvagem que nada compreende. Se eu decidir a aceitar, imporei uma condição. O homem branco deve tratar os animais como se fossem irmãos. Sou um selvagem e não compreendo que possa ser certo de outra forma. Vi milhares de bisões apodrecendo nas pradarias, abandonados pelo homem branco que os abatia a tiros disparados do trem. Sou um selvagem e não compreendo como um fumegante cavalo de ferro possa ser mais valioso do que um bisão que nós, os índios, matamos apenas para sustentar a nossa própria vida. O que é o homem sem os animais? Se todos os animais desaparecessem, os homens morreriam de solidão espiritual, porque tudo quanto acontece aos animais pode também afetar os homens. Tudo está relacionado entre si. Tudo quanto fere a terra fere também os filhos da terra.
"Software é orgânico. Como as formas de vida baseada em carbono, o software cresce e evolui. Os recursos padecem. Novos recursos nascem. Os inúmeros lançamentos continuam crescendo como os galhos de uma árvore saudável."

EJB 3 in action

Dan Pink e a surpreendente ciência da motivação

Dan Pink e a surpreendente ciência da motivação

Analista de carreira Dan Pink examina o quebra-cabeça da motivação, começando pelo fato que cientistas sociais sabem mas a maioria dos gerentes não: recompensas tradicionais não são tão eficientes quanto pensamos. Escute histórias iluminadoras -- e talvez, um caminho a trilhar.

Agilidade, Qualidade e Futuro

O video que indico hoje fala sobre qualide de software, e o porque o modelo cascata nunca deveria ter sido estudado nas faculdades, afinal. Fala sobre qualidade e como consegui-la.



Agilidade, Qualidade e Futuro from Fabio Akita on Vimeo.

Machucando Código por Diversão e Lucro - Ryan Davis

Video fala sobre qualidade de software e como conseguir um código limpo, legivel e manutenível...

"A obrigação do desenvolvedor é garantir que o código sendo escrito mostre da maneira mais clara sobre como a solução foi entendida no momento em que foi escrito".
Ward Cunningham, c2.com



Machucando Código por Diversão e Lucro - Ryan Davis from Fabio Akita on Vimeo.

Hoje tive tempo de assistir este video... muito bom... recomendo a todos que querem se tornar uma pessoa melhor, e até entender porque e como se explica o fenômeno de "muitos terem pouco e poucos terem muito".

Fala sobre o porque ser uma pessoa que esta na média é algo ruim, utiliza algumas teorias para dar fundamento, como: Pareto e Gaus.


Matando a Média - Gauss vs Pareto from Fabio Akita on Vimeo.

RESTful Web Services em Java

REST é um estilo de arquitetura de software que possibilita o desenvolvimento simples e rapido de servicos para Web e Web 2.0 Esta palestra apresenta os conceitos de REST, a API padrão para desenvolvimento na plataforma Java e a API Jersey para desenvolvimento de clientes REST. Serão criados exemplos para geração de RSS Feeds e XML.


Oque todos devemos entender sobre as metodologias?

Cada metologia nasce dentro em um determinado escopo, normalmente atrelado a um tipo de industria e necessidade bem específica, logo, é natural que uma sirva para um modelo de negócio, mas não sirva para outro, também é natural que parte dela sirva, e outra não, sendo necessário adaptar e refinar.

Gosto muito da ideia de utilizarmos várias metologias a fim de agrupar as melhores práticas de cada uma. Sei que muitos dizem que isto é ruim, que desta forma criamos um Frankeistein. A estes questiono:
- “Existe alguma metologia que serve 100% a sua empresa/realidade?”.
Se a reposta é sim, ótimo, isto significa que provavelmente a area de atuação de sua empresa é muito próxima ou a mesma daquela que tornou realidade o nascimento da metologia da qual você está aderente.
Se a resposta é não, oque fazer? Mudar a empresa, ou adaptar o processo?

Fazendo uma analogia:
- “É o sistema que deve se adaptar as necessidades do cliente ou o cliente que deve se adaptar ao cliente?”
Normalmente, o cliente não quer mudar, quer algo que se adeque perfeitamente a suas necessidades, entendo que as vezes não é possível, pois o cliente tem um processo bagunçado ou nem tem processo, sendo necessário primeiro “ajeitar a casa”.

Em meu entendimento, se uma empresa possuí processos que a tornam lucrativa, não há motivo de muda-la e sim, adaptar e agregar melhores práticas a suas necessidades a fim de potencializa-la e refinar cada vez mais o seu método de trabalho.

As metodologias modernas nasceram em empresas com necessidades específicas e ainda não documentas, e com o tempo, são cada vez mais refinadas para atingir o maior número de problemas, saindo de uma necessidade específica para tornar-se uma provedora genérica.

Devemos entender que as metodologias modernas (PMBOK, Ageis) não se propõem resolver todos os problemas, mas sim, documentam e descrevem as suas melhores práticas. Oque precisamos é nos tornarmos adaptáveis e produtivos, mesmo que isto signifique mudanças. Todos necessitamos do “jeitinho brasileiro” e entender que o equilíbrio normalmente é a melhor opção.


"Nada é permanente, salvo a mudança." (Heráclito)
"A mudança em todas as coisas é desejável." (Aristóteles)
"A mudança é o progresso através do qual o futuro invade nossas vidas."
(Alvin Toffler)
"É impossível haver progresso sem mudanças, e quem não consegue mudar a si mesmo não muda coisa alguma." (George Bernard Shaw)
"Nada é tão duradouro como a mudança." (Ludwig Borne)
“Graças, existem pessoas que se arriscam e inovam, caso contrário, o mundo seria um tédio.” (Clayton K. N. Pasos)

Arquitetura....

A algum tempo estudo sobre arquitetura de software, estou lendo muito, e visualizo uma grama de divergências típica de um tema novo e ainda mal definido e mal compreendido.

Fazendo uma reflexão, conciliando as leituras com as experiências já obtidas, percebi que arquitetura puramente orientada a tecnologia pode ser um desastre ao cliente e ao modelo de negócios, não atendendo as necessidades da forma esperada e no prazo esperado, trazendo maior custo de desenvolvimento e manutenção.

Com esta percepção, acredito que o arquiteto antes de pensar em tecnologia deve conhecer o modelo de negócios e os processos de seu cliente, também é desejável conhecer os processos comumente aplicados por seus órgãos reguladores.

Como atualmente trabalho em uma empresa da área de Telecom, resolvi “garimpar” na iInternet, e encontrei o eTOM (enhanced Telecom Operations Map), que é um padrão para processos de negócio para a indústria de telecomunicações. Ele descreve o escopo completo dos processos de negócios requeridos por um provedor de serviço, definindo os elementos chave e a interação entre eles.

Muito interessante, recomendo a todos que possuem o mesmo interesse.


Referência:
eTOM (enhanced Telecom Operations Map)

eTOM (enhanced Telecom Operations Map)

eTOM: um guia para as operadoras

O que é
Quadro Conceitual Global
Visão a nível do CEO
Contexto da Operadora
Considerações Finais

MultiComparator

Quando você escreve um SQL para retornar informações do banco de dados de forma ordenada por vários campos, você escreve algo mais ou menos assim:

ORDER BY nome, idade, codigo

E em Java como você reproduz esta funcionaliade?

Eu faço assim ó :D





/**
* You can easily combine the results from several Comparators for an object
* class into one Comparator.
*


*
* You have the multi-comparator, and individual comparators for all the fields,
* you can create a comparator that has any properties you want. For example, to
* sort on EmployeeID, Name, and Age, in that order, you would do this:
*


*
*


* MultiComparator mc = new MultiComparator();
* mc.add(new EmployeeIdComparator(MyENum.ASC));
* mc.add(new EmployeeNameComparator(MyENum.ASC));
* mc.add(new EmployeeAgeComparator(MyENum.DESC));
* Collections.sort(list, mc);
*

*/
public class MultiComparator implements Comparator < book > {
private List<comparator < book > comparatorList;

public MultiComparator() {
comparatorList = new ArrayList<comparator<book>>();
}

public void addComparator(Comparator<book> c) {
comparatorList.add(c);
}

public void removeComparator(Comparator<object> c) {
comparatorList.remove(c);
}

public int compare(Book obj1, Book obj2) {
int result = 0;
for (Comparator<book> c : comparatorList) {
result = c.compare(obj1, obj2);

if (result != 0) {
break;
}
}
return result;
}
}