<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-25618624</id><updated>2012-01-20T03:03:06.641-08:00</updated><title type='text'>José Buscapé</title><subtitle type='html'>Porque resmungar é divertido!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-25618624.post-115929225486398493</id><published>2006-09-26T10:21:00.000-07:00</published><updated>2006-09-26T10:51:55.053-07:00</updated><title type='text'>Cadeia de felicidade</title><content type='html'>Esses dias atrás tivemos uma tremenda carga de trabalho aqui. Horas estressantes cheias de "não dá", "estamos perdidos" e outras frases que não dá pra publicar em um blog inocente.&lt;br /&gt;&lt;br /&gt;Passada a carga, sistema entregue, o cliente sorri de orelha a orelha. Então o gerente sorri e faz piada, aí eu sorrio e me sinto bem. Toda a pressão se foi, consigo até endireitar as costas na cadeira.&lt;br /&gt;&lt;br /&gt;Essa é mais uma das vezes que vejo esse efeito "cadeia de felicidade", cliente feliz, gerente feliz, desenvolvedor feliz. Não sei se é pelo alívio de pressão, se é pelo prazer de ouvir o cliente elogiar ou o quê. Ignoro a causa, mas percebo o efeito.&lt;br /&gt;&lt;br /&gt;Resultado, meu lema últimamente virou: "Mantenha o cliente feliz". Isso não tem nada de altruísta ou profissional, é completamente egoísta: EU sou o cara que fica feliz no fim dessa cadeia.&lt;br /&gt;&lt;br /&gt;Em tempo... o contrário também costuma verdadeiro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-115929225486398493?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/115929225486398493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=115929225486398493' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115929225486398493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115929225486398493'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/09/cadeia-de-felicidade.html' title='Cadeia de felicidade'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-115687644002443929</id><published>2006-08-29T11:02:00.000-07:00</published><updated>2006-08-29T11:41:13.330-07:00</updated><title type='text'>Custos</title><content type='html'>(pré-requisito: saber como funcionar o Planning Game do Extreme Programming)&lt;br /&gt;&lt;br /&gt;Problema que vejo frequentemente por aí: o sistema está indo razoavelmente bem, então o  cliente começa a pedir coisas e mais coisas. Algumas delas fazem sentido, outras são puramente cosméticas ou desnecessárias. O sistema começa a atrasar e o cliente fica bravo porque as funcionalidades agendadas não foram implementadas em tempo... Mas não conta que as coisas que ele pediu consumiram tempo.&lt;br /&gt;&lt;br /&gt;Moral da história: um pouco mais de má fama para o nosso lado.&lt;br /&gt;&lt;br /&gt;Caso 2: O cliente não tem a menor noção de quanto custa implementar uma funcionalidade.  E o pior, não sabemos como mostrar ao cliente esse custo.&lt;br /&gt;&lt;br /&gt;Moral da história: o cliente pede e não percebe que está pagando. Efeito colateral: a empresa de desenvolvimento é quem acaba pagando boa parte das funcionalidades. No mínimo, desgastando a equipe com horas extras que poderiam ser facilmente evitadas.&lt;br /&gt;&lt;br /&gt;E aí? Como resolver?&lt;br /&gt;&lt;br /&gt;Tirei uma boa experiência do XP nesse ponto. Como cada funcionalidade recebe uma estimativa em "unidades de tempo relativo". Bastou medir quantas dessas unidades a equipe fazia por mês e dividir o quanto o cliente pagava no período. Isso dá o custo por unidade. A partir desse momento, cada funcionalidade passa a ter automaticamente o custo assim que recebe a estimativa.&lt;br /&gt;&lt;br /&gt;Aí, é questão de receber a requisição, estimar e devolver para o cliente com o custo. Resolve bem:&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;Unidades mensais no projeto: 100.&lt;br /&gt;Pagamento mensal (ou parcela): 8.000,00&lt;br /&gt;&lt;br /&gt;Qto custa cada unidade? 8K / 100 = 80,00&lt;br /&gt;&lt;br /&gt;Chega uma requisição, estimamos ela em 3 unidades. Custo = 80,00 x 3 = 240,00. Uau! Caro!&lt;br /&gt;&lt;br /&gt;Simples demais pra servir pra algo? Talvez, mas a precisão é suficientemente boa para dar ao cliente uma noção de custo e simples o suficiente para eu não precisar implementar um processo somente para isso. Um bom custo benefício, diria eu.&lt;br /&gt;&lt;br /&gt;Se você pensar um pouco, consegue estrapolar a idéia, calculando seu custo por unidade ou então o custo por hora (baseado em unidades/hora). E, é óbvio, o melhor é que isso dá automaticamente o seu custo por projeto no momento em que a estimativa inicial fica pronta.&lt;br /&gt;&lt;br /&gt;Achou falhas na idéia? Ótimo, posta aí. Pra mim, anda funcionando particularmente bem. Posso ser simplório, mas acho que nossa área reclama de barriga cheia, é bastante simples calcular o custo de 90% das coisas que fazemos. O que dá um pouco de trabalho é o ROI, mas com um pouco mais de estimativas dá pra ter uma excelente noção.&lt;br /&gt;&lt;br /&gt;Mas aí é outro post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-115687644002443929?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/115687644002443929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=115687644002443929' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115687644002443929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115687644002443929'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/08/custos.html' title='Custos'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-115629696485053896</id><published>2006-08-22T18:04:00.000-07:00</published><updated>2006-08-22T18:36:04.883-07:00</updated><title type='text'>Dividir para conquistar</title><content type='html'>Qualquer especificação de sistema ("A especificação"), costuma ser grande e cheia de furos, faltando detalhes importantes, explicando parcialmente o processo, assumindo conhecimento comum em partes que somente um especialista de negócio saberia entre outros horrores.&lt;br /&gt;&lt;br /&gt;Particularmente, penso que o problema está no tamanho da coisa. É meio simplória a idéia, mas veja:&lt;br /&gt;1 - Qto maior, naturalmente mais complexo (senão é encheção de linguiça), portanto, mais difícil de estimar. É por isso que costumamos quebrar em funcionalidades primeiro.&lt;br /&gt;2 - Em uma massaroca de detalhes, é fácil deixar escapar alguns importantes, tb é fácil deixar de incluir algum importante inadvertidamente.&lt;br /&gt;3 - O mesmo texto frequentemente mistura overview do sistema com detalhes dos módulos, quando mal redigido (e frequentemente é), causa uma tremenda confusão. Já vi especificações que não seguiam uma linha de pensamento, descrevendo módulos e funcionalidades &lt;span style="font-style:italic;"&gt;ao léu&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Pois bem, parte do problema seria resolvido se a mesma pessoa que redige a especificação fosse um especialista no sistema E um bom escritor. Porém, mais frequentemente do que eu gostaria, é um analista de sistema que não é nem uma coisa, nem outra.&lt;br /&gt;&lt;br /&gt;Inspirado em User Stories e Use Cases, fico imaginando se "A" especificação não deveria na verdade ser toda picotada. Textos menores descrevendo casos de uso ou funcionalidades, mais um overview que juntasse as partes. Fica mais fácil avaliar e pensar em cada parte e verificar os detalhes, tudo porque um texto menor e mais focado é &lt;span style="font-style:italic;"&gt;menos em que se pensar&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Será que consigo fazer um teste com isso?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-115629696485053896?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/115629696485053896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=115629696485053896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115629696485053896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115629696485053896'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/08/dividir-para-conquistar.html' title='Dividir para conquistar'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-115513283741796718</id><published>2006-08-09T06:34:00.000-07:00</published><updated>2006-08-09T07:14:04.920-07:00</updated><title type='text'>Programming as a Theory Building</title><content type='html'>Sempre fiz parte daqueles que acham que o conceito de &lt;span style="font-style:italic;"&gt;"fábrica" de software&lt;/span&gt; segue um modelo pouco adequado, pra não dizer completamente sem noção. Software não se produz em linha de produção: "Entra requisito, sai programa". Tentativas de fazer isso, principalmente com o objetivo de baratear o "peão-programador", costumam dar muita dor de cabeça (ou não?).&lt;br /&gt;&lt;br /&gt;Acredito que, se fosse possível uma comparação, talvez a programação fosse o desenvolvimento do projeto do carro. A produção do carro em si, como tudo mais na informática, é compilação e cópia.&lt;br /&gt;&lt;br /&gt;Opinião pessoal: acho que software é o paraíso pra essas coisas. O problema é que a "produção" é tão simples que é difícil evitar que qualquer um faça. E &lt;span style="font-style:italic;"&gt;vive la piraterie&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;Bom, de volta ao assunto, ontem um colega apresentou um trabalho interessante e se baseou em um artigo de 1985 de Peter Naur (Turing-award 2005, é fraco?!) que expressa a mesma linha de raciocínio. &lt;br /&gt;&lt;br /&gt;Então eu fiquei feliz, além de outra meia dúzia de retardado mental com a mesma opinião, tem doutor que pensa a mesma coisa desde o tempo que microcomputador era um teclado conectado na televisão.&lt;br /&gt;&lt;br /&gt;O artigo chama-se "Programming as a Theory Building", achei várias referências ao seu conteúdo, mas nada de achar ele online. Finalmente, achei uma referência dizendo que o &lt;span style="font-style:italic;"&gt;Agile Software Development&lt;/span&gt; do &lt;span style="font-style:italic;"&gt;Alistair Cockburn&lt;/span&gt; tem uma cópia dele. Maravilha! Dureza é comprar um livro de US$38 + taxa de entrega por que você tem interesse real só em um artigo. Não que o livro seja ruim, deve ser bom, mas comprar ele ia ser efeito colateral do que eu quero.&lt;br /&gt;&lt;br /&gt;O ponto agora é tentar juntar todas as referências que eu puder sobre a mesma linha de pensamento e ver o que eu consigo montar. Vamos ver :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-115513283741796718?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/115513283741796718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=115513283741796718' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115513283741796718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115513283741796718'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/08/programming-as-theory-building.html' title='Programming as a Theory Building'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-115393171625640696</id><published>2006-07-26T06:38:00.000-07:00</published><updated>2006-07-26T09:35:16.346-07:00</updated><title type='text'>Contra as patéticas Universidades</title><content type='html'>Eu fico de cara no chão o quanto as universidades desse nosso Brasil querido são completamente ineficientes em formar profissionais da área de informática, especialmente programadores. Cursos que ninguém sabe sobre o que são, currículo "abrangente" que não abrange nada que interesssa. Vai mal.&lt;br /&gt;&lt;br /&gt;Temos curso de "Engenharia da Computação", o desgastado "Análise de Sistemas" e o antigo mas ainda com prestígio "Ciências da Computação", sem falar em uma infinidade de variantes novas como "Tecnologia da Informação" e sei lá mais qual nome andam inventando. Agora, se você perguntar a qualquer pré ou pós universitário qual a diferença entre um em outro você vai receber um tímido "não sei muito bem" bastante insípido de se engolir.&lt;br /&gt;&lt;br /&gt;Bonito né? Quer melhor, pergunte a alguns _professores_ do curso qual a diferença entre  os cursos e me diga quantos souberam responder certo e sem &lt;span style="font-style:italic;"&gt;embromation&lt;/span&gt;. O único cara que deve saber com certeza é o coordenador do seu curso.&lt;br /&gt;&lt;br /&gt;Agora vou pegar mais embaixo. Qual desses cursos ensina programação? Uh... todos...&lt;br /&gt;Jóia, então já dá pra entender porque as empresas todas colocam nos anúncios de emprego "curso superior em informática", sem especificar qual. Pra quê? Todos sabem informática e é tudo uma coisa só.&lt;br /&gt;&lt;br /&gt;E qual desses cursos forma "programadores" (é.. programador; não cientista, nem analista: eu disse "p r o g r a m a d o r")? Nenhum??? É... como eu desconfiava, pra programação não precisa estudo, é coisa de peão mesmo. Programador é igual pedreiro. (O que me lembra uma frase de um cara num concurso pra lixeiro: &lt;span style="font-style:italic;"&gt;"Não sei se é bendito ou maldito o país que exige pelo menos segundo grau para lixeiro mas não para Presidente da República"&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Ah... Cientista da Computação, Analista de Sistema e afins todos sabem programar, é o mínimo, não é? Correto... aprenderam técnicas de debug? Conseguem fazer um teste automatizado? Sabem pelo menos o que são idiomas, certo? Ahhh... não... mas sabem fazer um programinha. Esses tópicos são avançados, talvez mestrado. Ou talvez dia a dia no mercado de trabalho.&lt;br /&gt;&lt;br /&gt;Ops, esqueci. Universidade ensina teoria, e essas técnicas e conceitos não tem respaldo científico. Hmmm... será que RUP, XP ou qq dessas técnicas têm?&lt;br /&gt;&lt;br /&gt;Bom, então já sei, é que o mercado não precisa de programadores. Só de pessoas que saibam analisar a ordem de um algoritmo ou descobrir os casos de uso de um sistema. Ambos muito úteis, infelizmente só atacam um pedaço muito pequeno do que se faz numa empresa.&lt;br /&gt;&lt;br /&gt;Não adianta, programador é peão mesmo. Já entendi, segundo grau completo e boa. Se tiver um certificado melhor&lt;br /&gt;&lt;br /&gt;(Vixi... Isso ficou com cara de desabafo. Mas deixando a brincadeira do rabugento de lado, não é de hoje que as Universidades da área de TI formam pessoas completamente despreparadas para o mercado de trabalho. Depois reclamam que o mercado é "pouco seletivo" na hora de contratar pessoas na área, quer dizer, frequentemente não exigem ou aceitam qualquer curso superior)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-115393171625640696?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/115393171625640696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=115393171625640696' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115393171625640696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115393171625640696'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/07/contra-as-patticas-universidades.html' title='Contra as patéticas Universidades'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-115336222816286981</id><published>2006-07-19T19:12:00.000-07:00</published><updated>2006-07-20T08:16:38.626-07:00</updated><title type='text'>Software enterprise vs open source</title><content type='html'>Um colega no mestrado soltou uma que me fez pensar na última terça:&lt;br /&gt;&lt;br /&gt;"Mas o pessoal usa teste de unidade?"&lt;br /&gt;&lt;br /&gt;Bom... quem eu vejo usando teste de unidade? Quase todo projeto open source que se preze. Hoje ficou raro você ver bons projetos open source sem teste de unidade. Pelo menos para Java e Ruby. Só olhar no sourceforge e no rubyforge.&lt;br /&gt;&lt;br /&gt;E no ambiente corporativo (leia-se "enterprise software"), é muito raro, praticamente inexistente. A prática tem que ser "provada" para entrar em um ambiente enterprise :p&lt;br /&gt;&lt;br /&gt;Conclusão: Você paga caríssimo por um "software enterprise" e ele não tem o mínimo de qualidade que um open source (frequentemente gratuito) pode ter... :|&lt;br /&gt;&lt;br /&gt;Ah tem? Me mostrem seus testes então. :) Ahhhh... sei... QA, teste manual, claro, claro, muito confiável, completamente independente de falha humana, executado do começo ao fim sempre que existem alterações. É... como não pensei nisso, bobo eu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-115336222816286981?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/115336222816286981/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=115336222816286981' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115336222816286981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115336222816286981'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/07/software-enterprise-vs-open-source.html' title='Software enterprise vs open source'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-115072859496640879</id><published>2006-06-19T07:40:00.000-07:00</published><updated>2006-06-19T07:50:21.940-07:00</updated><title type='text'>Trabalho em paralelo</title><content type='html'>Engraçado, não sei o que passa na cabeça do pessoal de TI às vezes.&lt;br /&gt;&lt;br /&gt;Quantos de vocês trabalham eme paralelo? Quero dizer, fazem duas ou três coisas "ao mesmo tempo" ou trabalham em mais de um projeto ao mesmo tempo?&lt;br /&gt;&lt;br /&gt;Acho que a gente acostuma tanto que o computador consegue lidar com várias coisas ao mesmo tempo que a gente acha que consegue fazer o mesmo. Só que enquanto o processador de um micro fica a maior parte do tempo ocioso, não é nosso caso. Se vc pegar um computador que está trabalhando a 100% de CPU e colocar outra coisa pra rodar junto, ambos os serviços vão demorar o dobro do tempo (ou mais) para serem concluídos. O mesmo ocorre conosco porque, via de regra, não temos tempo "ocioso".&lt;br /&gt;&lt;br /&gt;Me lembra um caso que eu gosto de contar: Um antigo chefe meu me chamou na sala dele, me deu um escopo e disse:&lt;br /&gt;"Por alto, quanto tempo você acha que dá pra fazer isso?"...&lt;br /&gt;&lt;br /&gt;Perdi uns 15 minutos olhando e falei:&lt;br /&gt;"De um a dois meses".&lt;br /&gt;&lt;br /&gt;Ele:&lt;br /&gt;"E esse?"&lt;br /&gt;&lt;br /&gt;Gastei mais um tempo olhando e disse:&lt;br /&gt;"É parecido com o primeiro, deve levar mais ou menos o mesmo tempo".&lt;br /&gt;&lt;br /&gt;O olho dele brilhou:&lt;br /&gt;"Ótimo! Isso significa que no próximo mês temos tudo pronto, certo?"&lt;br /&gt;&lt;br /&gt;Eu:&lt;br /&gt;"???... Não... se cada projeto leva 1 a 2 meses, daqui 2 meses temos um pronto e daqui a 4 meses temos o segundo pronto!"&lt;br /&gt;&lt;br /&gt;Ele:&lt;br /&gt;"Mas e se você trabalhar nos dois ao mesmo tempo?"&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;Não sei o que passa na cabeça das pessoas pra conseguir formular uma lógica dessas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-115072859496640879?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/115072859496640879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=115072859496640879' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115072859496640879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/115072859496640879'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/06/trabalho-em-paralelo.html' title='Trabalho em paralelo'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-114977793324893769</id><published>2006-06-08T06:52:00.000-07:00</published><updated>2006-06-20T16:21:02.766-07:00</updated><title type='text'>Rules to live by</title><content type='html'>"Complaining don't fix things,&lt;br /&gt;Blaming just causes more trouble,&lt;br /&gt;We are trying to get things done here,&lt;br /&gt;If you can't help, at least get out of the way."&lt;br /&gt;&lt;br /&gt;"You're not able to tell me if that's easy or not,&lt;br /&gt;you're not able to tell me if that's fast to make of not.&lt;br /&gt;Unless you are the one who will do it."&lt;br /&gt;&lt;br /&gt;"I don't care about &lt;span style="FONT-STYLE: italic"&gt;the best&lt;/span&gt; way. I need a &lt;span style="FONT-STYLE: italic"&gt;good &lt;/span&gt;way that works."&lt;br /&gt;&lt;br /&gt;"Double things to do, double time. Triple things, triple time. That's basic arithmetic, right?"&lt;br /&gt;&lt;br /&gt;"If you can't put it in numbers, you don't really know about it"&lt;br /&gt;&lt;br /&gt;And the basic principles for any developer: K.I.S.S. and D.R.Y. (I would also add "C.O.C." - Conventions over Configurations, but that's a nice thing to have, not a must one)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-114977793324893769?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/114977793324893769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=114977793324893769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114977793324893769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114977793324893769'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/06/rules-to-live-by.html' title='Rules to live by'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-114963827630521045</id><published>2006-06-06T16:16:00.000-07:00</published><updated>2006-06-06T16:57:56.316-07:00</updated><title type='text'>As partes que precisam ser especificadas em um sistema web</title><content type='html'>A aparente simplicidade de sistemas web (tela -&gt; banco, banco -&gt; tela) faz com que a gente subestimar coisas e NÃO especificar nem pensar muito em algumas delas que são simplesmente essenciais.&lt;br /&gt;&lt;br /&gt;Aproveitando o tema da aula de hoje (teste de especificação), comecei a bolar um check list de coisas que deveriam ser especificadas para cada TELA em um sistem web.&lt;br /&gt;&lt;br /&gt;A lista é só um rascunho, mas acho que já é um bom começo.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Quais entidades e campos precisa para carregar a página?&lt;/li&gt;&lt;li&gt;Quais entidades e campos precisa pra gravar? São os mesmos para carregar a página?&lt;/li&gt;&lt;li&gt;Quais validações &lt;strong&gt;cada campo&lt;/strong&gt; precisa, estão todas especificadas individualmente?&lt;/li&gt;&lt;li&gt;Para poder gravar, alguma entidade tem que estar em algum estado específico? Tem que existir alguma outra entidade que não as que foram listadas nos dois primeiros itens?&lt;/li&gt;&lt;li&gt;O que acontece quando não é possível gravar?&lt;/li&gt;&lt;li&gt;A tela tem espaço para exibir os erros? Lembrando que ficar exibindo um erro de cada vez na gravação é muito chato para o usuário.&lt;/li&gt;&lt;li&gt;Se a tela grava em mais de uma entidade, é possível que ela seja um processo, não simplesmente um caso de tela -&gt; banco, banco -&gt; tela. Esse processo está descrito como tal? Possui validações? Você consegue buscar todas as entidades envolvidas com as campos que tem na tela? Os campos que tem na tela são suficientes para você alterar os estados das entidades de acordo?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Bom, acho que tem mais coisas na lista, mas vou melhorando aos poucos.&lt;/p&gt;&lt;p&gt;Deixei passar algo óbvio?&lt;/p&gt;&lt;ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-114963827630521045?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/114963827630521045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=114963827630521045' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114963827630521045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114963827630521045'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/06/as-partes-que-precisam-ser.html' title='As partes que precisam ser especificadas em um sistema web'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-114918333837675946</id><published>2006-06-01T10:09:00.000-07:00</published><updated>2006-06-01T10:35:38.386-07:00</updated><title type='text'>Tela, banco - banco, tela.</title><content type='html'>Tava pensando nas aplicações de hoje em dia. Todo mundo quer fazer elas pra web (quando não pr rodar em celular). Isso facilita muito as coisas.&lt;br /&gt;&lt;br /&gt;Dada a natureza "em lote" da web, as aplicações acabam ficando muito mais simples e desconectadas. Já que uma página não consegue se conectar com outra direito, e quando consegue é obrigada a passar um "pacote" de dados ao invés deles individualmente, você acaba criando (inadvertidamente) vário protocolos de comunicação entre elas :)&lt;br /&gt;&lt;br /&gt;No final das contas, as aplicações web viram um monte de páginas com a seguinte estrutura: "Da tela pro banco" ou "do banco pra tela", com algumas transformações no meio que o pessoal chama de lógica de negócio (e validações).&lt;br /&gt;&lt;br /&gt;Migrar uma aplicação dessas é bem mais simples. Alterar ela é BEEEEM mais simples. No final das contas, as limitações acabaram formando um ambiente mais saudável.&lt;br /&gt;&lt;br /&gt;Tá certo que tem uns Zé Ruelas que conseguem fazer a coisa tão complicada que os dados de um lado pro outro são passados meio por Session, meio por Request, e um pouco por banco. Fazer isso em partes diferentes da aplicação é normal, duro é quando de uma simples página pra outra vc recebe as coisas por mais de um lado :| tipo "bombardeio de dados"&lt;br /&gt;&lt;br /&gt;Agora, com AJAX (legal!!!) as aplicações estão ficando muito mais inteligente (finalmente!). Mas está abrindo brecha pra cada barbaridade :p&lt;br /&gt;&lt;br /&gt;Vai ser interessante, aguardemos e observemos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-114918333837675946?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/114918333837675946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=114918333837675946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114918333837675946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114918333837675946'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/06/tela-banco-banco-tela.html' title='Tela, banco - banco, tela.'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-114910322147920354</id><published>2006-05-31T12:09:00.000-07:00</published><updated>2006-05-31T12:20:21.486-07:00</updated><title type='text'>Nossa área sacaneia o cliente, não tem jeito!</title><content type='html'>Tava ouvindo um colega nosso agora há pouco entrevistando um cliente para saber como funciona um sistema. Que sacanagem! A gente complica o cliente.&lt;br /&gt;&lt;br /&gt;O cara tem uma idéia bem simples: "Olha, é um cadastrinho, o cara ganha um brinde se cadastrar 10 colegas".&lt;br /&gt;&lt;br /&gt;A gente explode a idéia simples em 10 segundos!&lt;br /&gt;&lt;br /&gt;- "Mas e se o cara cadastrar ele mesmo 10 vezes?"&lt;br /&gt;- "ahhh.... não sei... deixa ver... O sistema não permite e-mail duplicado"&lt;br /&gt;- "E se alguém se cadastrar com o e-mail de outra pessoa, essa pessoa não pode nunca mais entrar no sistema?"&lt;br /&gt;- "ahhh..... não sei, tem que poder cancelar, então."&lt;br /&gt;- "Então tem que ter uma área de administração pra poder cancelar?"&lt;br /&gt;- "Área de administração??? Não, não, é só um cadastrinho, só uma pagina simples resolve"&lt;br /&gt;- "Mas sem senha? Qualquer um pode entrar?"&lt;br /&gt;- "ahhhh.... er..."&lt;br /&gt;- "E se cancelar errado? Tem que ter como voltar?"&lt;br /&gt;&lt;br /&gt;Tenho dó dos clientes, a gente consegue fazer com que nenhuma idéia simples seja simples depois da primeira entrevista...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-114910322147920354?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/114910322147920354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=114910322147920354' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114910322147920354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114910322147920354'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/05/nossa-rea-sacaneia-o-cliente-no-tem.html' title='Nossa área sacaneia o cliente, não tem jeito!'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-114866126973234699</id><published>2006-05-26T09:21:00.000-07:00</published><updated>2006-06-06T13:24:14.226-07:00</updated><title type='text'>Desculpas boas para cancelar Speedy sem encheção de saco</title><content type='html'>Sabe que toda vez que se tem que tenta cancelar Speedy/Linha Telefônica/Serviços da Linha o coitado do atendente ainda tem que ficar tentando te vender alguma outra merda que você não quer, não precisa e não tem a menor intenção de adquirir.&lt;br /&gt;&lt;br /&gt;Quando o atendente perguntar porque você está cancelando o serviço, use alguma das desculpas abaixo para se livrar da encheção:&lt;br /&gt;&lt;br /&gt;"Por que o senhor gostaria de cancelar a linha?"&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Estou mudando de país...&lt;/li&gt;&lt;li&gt;Minha casa pegou fogo...&lt;/li&gt;&lt;li&gt;Estou indo preso e não vou mais precisar...&lt;/li&gt;&lt;li&gt;O diretor da prisão não deixa mais a gente usar speedy...&lt;/li&gt;&lt;li&gt;Minha religião não permite usar internet... Aliás, deixa eu te dizer como eu mudei, você deveria visitar minha igreja e conhecer meu pastor, deixa eu te falar... (garanto que o atendente pergunta "mais alguma coisa, senhor", no mesmo instante)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Perdi meu emprego hoje...&lt;/li&gt;&lt;li&gt;Sabe... é que eu fiquei cego...&lt;/li&gt;&lt;/ul&gt;Essa última é muuuuuito do mal (né, Bart, seu doente!!!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-114866126973234699?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/114866126973234699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=114866126973234699' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114866126973234699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114866126973234699'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/05/desculpas-boas-para-cancelar-speedy.html' title='Desculpas boas para cancelar Speedy sem encheção de saco'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-114855586633649322</id><published>2006-05-25T04:12:00.000-07:00</published><updated>2006-06-05T11:52:19.826-07:00</updated><title type='text'>Usando sua própria interface</title><content type='html'>Já ouviu falar daquela história de que, se todo político fosse obrigado a andar de transporte público, nós teríamos os melhores ônibus do mundo?&lt;br /&gt;&lt;br /&gt;Pois é,  ontem e hoje estou tendo que usar muito a interface do programa que estou fazendo. Conclusão? Percebi um monte de coisas que deveriam ser melhoradas. Nada grave, a maioria pequenos detalhes que custariam pouca programação e tornariam a vida bem mais divertida. Coisas como cores diferentes em situações diferentes, um texto explicativo aqui e ali. Essas coisas.&lt;br /&gt;&lt;br /&gt;A lição que tiro disso? A gente não costuma usar os programas que faz pelo simples fato de que fazemos eles para outras pessoas, mas um ou dois dias usando ele intensamente somente para pegar o "feeling" de usuário podem ser bem aproveitados.&lt;br /&gt;&lt;br /&gt;Ou não?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-114855586633649322?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/114855586633649322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=114855586633649322' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114855586633649322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114855586633649322'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/05/usando-sua-prpria-interface.html' title='Usando sua própria interface'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-114798463906532862</id><published>2006-05-18T11:34:00.000-07:00</published><updated>2006-05-18T13:41:54.110-07:00</updated><title type='text'>Projetos que eu gostaria de fazer</title><content type='html'>Projetos que eu gostaria de fazer:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;"JMiss" -&gt; Pequenas coisas úteis que o Java não tem. Tais como "join" para String, um File capaz de iterar o arquivo linha a linha, tipo de dados Fraction (Rational), etc e tal.&lt;/li&gt;&lt;li&gt;Um jogo web nos modelos do meteorus (&lt;a href="http://www.meteorus.com.br"&gt;www.meteorus.com.br&lt;/a&gt;) em Ruby on Rails com MUITO uso de Ajax, mas muito meeesmo... só pra ver como fica.&lt;/li&gt;&lt;li&gt;Um site para o comércios dos meus pais (já viu, né?! Casa de ferreiro...)&lt;/li&gt;&lt;li&gt;Um gerador de código para Java que crie a camada de persistência com o padrão ActiveRecord. Mesmo esquema do Rails, só que com código gerado ao invés de dinâmico. Provavelmente vou usar Groovy ou outra coisa pra gerar isso, porque mecanismo de template no Java é uma lástima (tá tá tá, Velocity, Tapestry, blah blah blah... qualquer dia eu olho isso)&lt;/li&gt;&lt;/ol&gt;Olha só... até q não tem muita coisa. Descontando que cada projeto desses eu demoraria mais ou menos um mês de trabalho contínuo, sozinho e no gás...&lt;br /&gt;&lt;br /&gt;Tá, okay, entendi... o "JMiss" deve ser mais fácil, uns poucos dias e eu tenho uma pacolada de coisas prontas fáceis.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-114798463906532862?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/114798463906532862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=114798463906532862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114798463906532862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114798463906532862'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/05/projetos-que-eu-gostaria-de-fazer.html' title='Projetos que eu gostaria de fazer'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-114488249520260105</id><published>2006-04-12T15:37:00.000-07:00</published><updated>2006-04-12T15:54:55.226-07:00</updated><title type='text'>Web Services: Teoria e Prática</title><content type='html'>(Da série: "Ceticismo de Mau Humor" ou "A Teoria na Prática é Uma Merda")&lt;br /&gt;&lt;br /&gt;Na teoria, Web Services são para integrar sistemas em diferentes linguagens. Você precisa do método, gerar WSDL para que a aplicação cliente gere stubs automaticamente, enviar e receber objetos inteiros usando XML, etc e tal.&lt;br /&gt;&lt;br /&gt;Na prática, são usados para sistemas .NET se comunicarem (cadê a integração?) entre si e volta e meia com um Java muito doido. Quanto você precisa de fato integrar seu sistema com algum outro, você cria uma página que recebe um post e fornece um XML que é muito mais simples e fácil.&lt;br /&gt;&lt;br /&gt;Na teoria, Web Service é popular porque é uma boa idéia para integrar negócios.&lt;br /&gt;&lt;br /&gt;Na prática, é popular porque a Microsoft bolou um jeito de fazer ele funcionar adicionando apenas uma linha de código. Se fosse qualquer outro protocolo por baixo, rodando na porta 80, ia ser igualmente popular.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-114488249520260105?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/114488249520260105/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=114488249520260105' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114488249520260105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114488249520260105'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/04/web-services-teoria-e-prtica.html' title='Web Services: Teoria e Prática'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-114478286722359818</id><published>2006-04-11T12:08:00.000-07:00</published><updated>2006-04-11T12:17:55.330-07:00</updated><title type='text'>Da série "Torne-se um Programador Profissional"</title><content type='html'>&lt;h3&gt;Método Philber para Debug&lt;/h3&gt;&lt;br /&gt;"Se há um erro na linha 10, remova a linha 10".&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Método Sokoban para Debug&lt;/h3&gt;&lt;br /&gt;(Lembra do joguinho "Sokoban"? Onde vc tinha q empurrar umas caixas?)&lt;br /&gt;&lt;br /&gt;"Se você aplicar o Método Philber e remover a linha 10, o erro vai para a linha 11. Aplique o Método Philber novamente e remova a linha 11 e assim por diante. Inadvertidamente, uma hora o programa vai ficar sem bugs".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-114478286722359818?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/114478286722359818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=114478286722359818' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114478286722359818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114478286722359818'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/04/da-srie-torne-se-um-programador.html' title='Da série &quot;Torne-se um Programador Profissional&quot;'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-25618624.post-114443519489754593</id><published>2006-04-07T11:33:00.000-07:00</published><updated>2006-04-07T11:39:54.906-07:00</updated><title type='text'>Por quê esse blog?</title><content type='html'>Meus colegas brincam que eu reclamo muito. E olhando meu outro blog ví que metade das coisas que eu posto é porque estou p* da vida com o Java, ou com algum software, ou com Java, ou com algum site, e também com o Java, ou com Engenharia de Software, ou então com Java. Então resolvi aposentar o outro blog e fazer esse aqui pra ficar mais "de acordo".&lt;br /&gt;&lt;br /&gt;Então é isso. Esse é o meu novo blog (é, tou aposentando o outro). Pelo menos vou ter um lugar certo pra resmungar :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/25618624-114443519489754593?l=josebuscape.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://josebuscape.blogspot.com/feeds/114443519489754593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=25618624&amp;postID=114443519489754593' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114443519489754593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/25618624/posts/default/114443519489754593'/><link rel='alternate' type='text/html' href='http://josebuscape.blogspot.com/2006/04/por-qu-esse-blog.html' title='Por quê esse blog?'/><author><name>Ronie Uliana</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh6.googleusercontent.com/-pkzYeJPV6-I/AAAAAAAAAAI/AAAAAAAAAAA/g-tPfAL9MIQ/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
