Mostrando postagens com marcador google. Mostrar todas as postagens
Mostrando postagens com marcador google. Mostrar todas as postagens

Por que cidades crescem, empresas e pessoas sempre morrem, e a vida fica mais rápida? /ou: It's complex (adaptive), baby...

Posted: 7 de jun. de 2011 | . David Lojudice Sobrinho | tags: , , , 2 comentários

"Melhor 51.22 minutos que eu gastei nos últimos bons tempos. OBRIGADO!" - Richard Saul Wurman (fundador das conferencias TED)

Normalmente não utilizo este blog para a simples divulgação de conteúdo, já que tenho outros meios de fazer isso (twitter, google reader, trunk.ly). Tento ao menos digerir algo para colocar aqui. Mas dessa vez, acho que vale quebrar a regra e simplesmente divulgar esse excelente vídeo, já que é sobre um assunto recorrente neste blog.

Geoffrey West, físico teórico, ex-presidente do Instituto Santa Fé (famoso instituto dedicado ao estudo de sistemas adaptativos complexos), mostra no vídeo abaixo os resultados dos seus mais recentes estudos no campo de sistemas complexos e problemas de escala (vindos da física). Mais informações no vídeo e no site:

Why Cities Keep Growing, Corporations and People Always Die, and Life Gets Faster
http://edge.org/conversation/geoffrey-west

Alguns pontos do vídeo (tirados do site):

... The great thing about cities, the thing that is amazing about cities is as they grow, so to speak, their dimensionality increases. That is, the space of opportunity, the space of functions, the space of jobs just continually increases. And the data shows that. If you look at job categories, it continually increases. I'll use the word "dimensionality." It opens up. And in fact, one of the great things about cities is that it supports crazy people. You walk down Fifth Avenue, you see crazy people. There are always crazy people. Well, that's good. Cities are tolerant of extraordinary diversity.

This is in complete contrast to companies. The Google boys in the back garage so to speak with ideas of the search engine, were no doubt promoting all kinds of crazy ideas and maybe having even crazy people around them.

Well, Google is a bit of an exception, because it still tolerates some of that. But most companies start out probably with some of that buzz. But the data indicates that at about 50 employees to a hundred that buzz starts to stop. A company that was more multi dimensional, more evolved, becomes uni dimensional. It closes down.

Indeed, if you go to General Motors or you go to American Airlines or you go to Goldman Sachs, you don't see crazy people. Crazy people are fired. Well, to speak of crazy people, is taking the extreme. But maverick people are often fired.

It's not surprising to learn that when manufacturing companies are on a down turn, they decrease research and development, and in fact in some cases, do actually get rid of it, thinking this is "oh, we can get that back in two years we'll be back on track."

Well, this kind of thinking kills them. This is part of the killing, and this is part of the change from superlinear to sublinear, namely companies allow themselves to be dominated by bureaucracy and administration over creativity and innovation, and unfortunately, it's necessary. You cannot run a company without administrative. Someone has got to take care of the taxes and the bills and the cleaning the floors and the maintenance of the building and all the rest of that stuff. You need it. And the question is, "can you do it without it dominating the company?" The data suggests that you can't.

The question is, as a scientist, can we take these ideas and do what we did in biology, at least based on networks and other ideas, and put this into a quantitative, mathematizable, predictive theory, so that we can understand the birth and death of companies, how that stimulates the economy? How it's related to cities? How does it affect global sustainability and have a predictive framework for an idealized system, so that we can understand how to deal with it and avoid it? If you're running a bigger company, you can recognize what the metrics are that are driving you to mortality, and possibly put it off, and hopefully even avoid it.

Otherwise we have a theory that tells you when Google and Microsoft will eventually die, and die might mean a merger with someone else.

Animais, cidades, empresas... a mesma coisa! Metáforas nunca estiveram tão próximas da realidade...

Cultura do Desperdício /ou: Desenvolvedores baratos!

Posted: 28 de mar. de 2008 | . David Lojudice Sobrinho | tags: , , 0 comentários

Lendo um post sobre como o pessoal do Google trabalha, me chamou a atenção o seguinte trecho:

With 70 people the odds that two people are working on the same thing are probably pretty low. With 17,000, it’s almost a 100% that two or three people will be working on the same idea, or at least very similar ideas, at different parts of the organization. I think there is a certain amount of cost to just coordinating that activity. I’ve been really impressed with how Google has been able to scale, but inherently it has to change – just because there’s that coordination cost.

Caro amigo, não percebe? Ninguém vai parar para ver se estão fazendo projetos duplicados....

O sujeito é um ex-funcionário do Google, mas acho que ele não entendeu a idéia. Talvez por ter uma visão de dentro pra fora. Tudo bem. A gente explica.

Quanto custa um desenvolvedor para sua empresa?

Pensando em termos relativos, e não absolutos, poderíamos pensar em uma métrica onde o custo de um desenvolvedor é seu custo absoluto dividido pelo número de usuários que ele atende. Ex:

Custo Médio do Desenvolvedor (CD): 1000,00 Reais / Mês
Número de Desenvolvedores (D): 5
Número de Usuários (U): 50

Usando o cálculo [CD / (U / D)] teríamos nesse caso um custo de 100 Reais / Mês por Usuário, ou $100/Usr.

Quanto seria o custo $/Usr do Google?

CD = 10.000,00 Dólares/ Mês [chute]
D = 17.000 [segundo nosso amigo lá em cima]
U = aprox. 500 Mi [info daqui e daqui]

CD / (U / D) = $0.238/Usr

Usando e abusando da lógica descrita pelo Chris Anderson, quando algum recurso fica muito barato, podemos desperdiçá-lo:
Forty years ago, Caltech professor Carver Mead identified the corollary to
Moore's law of ever-increasing computing power. Every 18 months, Mead observed, the price of a transistor would halve. And so it did, going from tens of dollars in the 1960s to approximately 0.000001 cent today for each of the transistors in Intel's latest quad-core. This, Mead realized, meant that we should start to "waste" transistors.
Com o passar do tempo, o custo do desenvolvedor não vai variar muito, mas com certeza o número de usuários que ele serve vai aumentar. Com certeza? Sim! Pois quanto mais desenvolvedores, mais aplicações serão entregues, ocupando mais espaço na janela de tempo que o usuário passa navegando na internet. Além disso, ainda existe um número de pessoas que não usam internet. Com o XO atingindo a África e outros paises em desenvolvimento (inclusive o Brasil), esse número só tende a crescer.

Usando nossa métrica, o $/Usr tende a se aproximar do zero.

Isso explica porque o Google contrata descontroladamente. O custo por usuário é muito baixo. E por isso, voltando ao início do post, eles não vão controlar o que esta sendo feito, mesmo que acabem fazendo duas vezes o mesmo trabalho. É a cultura do desperdício. A mesma lógica que foi usada para o uso dos transistores e bytes de armazenamento foi usada para contratar os desenvolvedores. Acumule quanto puder e distribua de graça. Afinal, é baratim...

Mais uma informação: sabe quanto é o custo médio de um clique no Ad Words? 0.15 cents. Ou seja, vá agora à página do Google e clique em dois anúncios, aqueles que aparecem do lado esquerdo da pesquisa. Clicou? Pronto! Você acabou de empregar por mais um mês um desenvolvedor no Google.

Cloud Computing /ou: Monopolizando a nuvem

Posted: 27 de mar. de 2008 | . David Lojudice Sobrinho | tags: , , 0 comentários

Você começa a perceber que esse negócio de nuvem é verdade quando, mesmo sem navegar, seu browser é a aplicação que fica aberta mais tempo.

Mas, apesar da liberdade de escolha que o tal nuvem poderia dar, parece que ela já foi monopolizada.... pelo menos aqui:

Blog do Google /ou: Falso ativismo?

Posted: 18 de dez. de 2007 | . David Lojudice Sobrinho | tags: 0 comentários

Sabe aquele seu amigo vegetariano chato, ativista infantil de idéias utópicas? Ele deve estar adorando o blog do Google. Só falta um post exaltando o Comunismo, mas isso eu não espero ver por lá.

Grid computing /ou: Ok, por enquanto.

Posted: 10 de set. de 2007 | . David Lojudice Sobrinho | tags: , , , 0 comentários

Voce sabia que o Google usa uma mega ultra estrutura de computacao em Grid de forma que o processamento e o armazenamento dos dados eh totalmente distribuida? Eles chamam essa estrutura de "cloud" (nuvem). Diz a lenda que eh formado por um monte (milhares) de desktop barato, onde ateh a BIOS das maquinas eh alterada para conseguir melhor desempenho em Grid. Parece que se troca centenas de "nodes" por dia. (Mais informacoes use a nuvem do google e procure por MapReduce e BigTable)


Nao seria otimo ter esse poder de escalabilidade? Compra-se um monte de desktop a dois mil reais cada um, cada um com um incrivel poder de processamento (2 x 2.5GHz) e armazenamento (200Gb) e com doze mil reais voce tem um mini-super-computador. (Dois mil e seissentos reais na Sta. Efigenia, com 2Gb de Ram.)


Como Microsoftinianos, o que podemos fazer para obter tal escalabilidade por um preco tao acessivel? Infelizmente, caro colega desenvolvedor, nao muito.


Como bons desenvolvedores .Net, recorreremos primeiramente a propria Microsoft para nos dar a solucao. O que encontramos eh um tal de Windows Computer Cluster Server que nao eh bem o que procuramos. O Cluster Sever ainda pensa que super computadores é coisa pra gente grande. Ou seja, se voce trabalha na Petrobras e quer fazer aqueles calculos ziper complicados que demoram uma decada para encontrar onde extrair petroleo, o Cluster Server seria uma solucao. APIs em C/C++, soh roda em hardware licenciado, etc. Mas sera que precisa de tudo isso? Sera que o nosso mini-super-computer nao seria tambem uma solucao?


Antes de responder, vamos dar uma olhada do outro lado do muro e ver o que nossos amigos do mundo Java andam fazendo. Aqui a coisa parece bem mais evoluida, com diferentes solucoes para diferentes gostos.


Java Parallel Processing Framework - http://www.jppf.org/index.php - Framework que permite distribuir o processamento em varios nodes no cluster. Seria o fusca do Grids - O basico, mas funciona.


Terracotta - http://www.terracotta.org/ - Virtualiza o JVM, ou seja, os objetos moram na Grid e nao mais em apenas um computador/node. Ex: um lock num objeto é um lock no objeto na GRID e nao apenas no computador local. Grid de processamento e de armazenamento, com failover e tudo mais. Fantastico. Vale perder 3 min vendo a apresentacao no site.


Hadoop - http://lucene.apache.org/hadoop/ - Aqui a coisa fica preta. Os caras querem implementar o MapReduce e o BigTable do Google, sendo possivel processar e armazenar pentabytes apenas colocando mais nodes ao cluster sem medo. Os caras agora sao patrocinados pelo Yahoo.


Tenho certeza que existe outros projetos em Java para o mesmo proposito, mas esses aqui ja dao uma dimensao de como nossos amigos do mundo Java ja contam com possibilidades (e a custo zero, pois todos os projetos sao free).


Voltando ao mundo .Net, encontramos alguns projetos interessantes:


Alchemi - http://www.alchemi.net/ - Parecido com o JPPF. Basicamente um framework que facilita a distribuicao e divisao de processamento em varios nodes. Open e Free.


Digipede - http://www.digipede.net/ - A ideia identica ao Alchemi, mas pago.


O Alchemi é interessante, mas ainda muito cru perto dos outros projetos em Java que mostrei.


O potencial da computacao distribuida esta muito mal aproveitada no mundo Microsoft. Ou seja, voce pode comprar um monte de computador barato, mas nao vai conseguir faze-los trabalhar em conjunto. Se voce quiser fazer isso em .Net, nao existe uma camada de abstracao que esconde os detalhes do Grid (nodes, masters, etc) para o desenvolvedor.


Mas voce, meu caro colega desenvolvedor, compraria ou recomendaria para sua empresa um monte de hardware barato (porem extremamente poderoso) sem um software para lhe dar suporte? Se nao, vai ver que por essa razao o lobby das empresas de hardware faz com que a MS nao crie produtos para atender essa necessidade. Enquanto o hardware vai virando commodity, vamos vendo o mundo Java usando esse recurso da melhor maneira possivel. E nos, .Net developers, preocupados em montar Web Farms!


Mas tudo bem. Ninguem precisa disso por enquanto. Por enquanto!