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

Windows 7 /ou: Resolvendo o problema do botão de desligar

Posted: 20 de out. de 2008 | . David Lojudice Sobrinho | tags: , , 0 comentários

Dentro do possível, parece que os métodos ágeis influenciaram o processo de desenvolvimento do Windows 7:

In Windows 7, senior management has been extremely supportive of the various development teams that have had to make the hard decisions to scale back features that were not going to be able to make the quality bar associated with a Windows release – and there absolutely are major features that have gone all the way through planning only to discover that there was too much work associated with the feature to complete it in the time available. In Vista it would have been much harder to convince senior management to abandon features. In Win7 senior management has stood behind the feature teams when they’ve had to make the tough decisions. One of the messages that management has consistently driven home to the teams is "cutting is shipping", and they’re right. If a feature isn’t coming together, it’s usually far better to decide NOT to deliver a particular feature then to have that feature jeopardize the ability to ship the whole system. In a typical Windows release there are thousands of features and it would be a real shame if one or two of those features ended up delaying the entire system because they really weren’t ready.

The process of building 7 has also been dramatically more transparent – even sitting at the bottom of the stack, I feel that I’ve got a good idea about how decisions are being made. And that increased transparency in turn means that as an individual contributor I’m able to make better decisions about scheduling. This transparency is actually a direct fallout of management’s decision to let the various feature teams make their own decisions – by letting the feature teams deeper inside the planning process, the teams naturally make better decisions.

Problemas com o botão de desligar, nunca mais!

Singularity /ou: 0135AC?

Posted: 11 de mar. de 2008 | . David Lojudice Sobrinho | tags: 1 comentários

  1. Fazer o OS compilar em modo full: 1.5 horas.


  2. Configurar placa de rede: 15min


  3. Configurar VM: 10min


  4. Rodar a VM, ver um monte de hexa e conseguir dar um único comando (DIR): não tem preço.





Singularity /ou: Finalmente!

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

A Microsoft liberou o source do Singularity!

Tudo bem... Não liberaram o uso dele nas empresas, pois é só para pesquisa. Mas mesmo assim já vale! Não é de hoje que eu estou esperando este momento!

Já baixei... encontrei arquivo .ASM, .CPP. Ou seja, não é 100% managed. Mas o resto é tudo .CS e .SG (Singularity? ou Spec#?).

E pelo jeito vai ser casca fazer rodar. Mas desistir, jamais!

Depois eu escrevo mais sobre o que encontrei. Por enquanto, fica a dica ao deleite.

Planejamento Estratégico de TI /ou: Resmungo de um desenvolvedor

Posted: 28 de nov. de 2007 | . David Lojudice Sobrinho | tags: , , 0 comentários

Você, leitor deste blog, pode pensar que tenho algum problema com a Microsoft, pois o conteúdo dos últimos posts sempre tem criticas a nossa querida MS. Caro colega desenvolvedor, você esta parcialmente certo. Tenho problemas com a Microsoft sim, mas eles só apareceram nos últimos anos.


Para começar, quero deixar claro que não tenho problema algum com o fato de ser uma empresa bilionária e de fazer dinheiro com software. Na verdade, tenho grande admiração pela Microsoft justamente por fazer isso. Acho que a computação voltada ao negócio e/ou usuário final deve ser pago. Resumindo: No geral, programadores não ouvem os usuários, logo precisam de empresas entre eles para direcionar os programadores a fonte da renda: o usuário. E este, feliz com suas necessidades atendidas, paga por isso. Nada mais simples.


(Aproveitando o tema para um desabafo: o ufanismo pró-Free-Software é burro. Burro por acreditar em valores mentirosos. Mentiras contadas por bons contadores de mentiras. Alias, todas as vezes que você falar mais alto o nome de uma empresa, movimento, organização, produto, etc., desconfie. Você pode estar sendo usado. Mas isso fica para outro post.)


Voltando a Microsoft...


Meu problema com a Microsoft começa quando eu, gestor de TI que utiliza as ferramentas desta empresa, começo a perceber que tenho pouco a acrescentar a minha empresa como diferencial competitivo, pois diferencial em TI é só um: inovação continua. O resto é commodity.


Se o seu setor de TI não pode, não quer ou não precisa acrescentar diferencial a empresa onde você trabalha, pare de ler esse post agora.


Nicholas G. Carr - IT Doesn't Matter: “…the article argues is that we're at the point where any technological improvement in the management of information will be quickly and broadly copied, rendering it meaningless for competitive advantage.” http://www.nicholasgcarr.com/articles/matter.html


O que tenho percebido que o mundo fora da Microsoft corre mais rápido. Não que a Microsoft antigamente saia na frente. Pelo contrário, ela sempre foi uma empresa “mainstream”, preocupada em entregar tecnologias que acreditava que iriam fazer alguma diferença, mas para isso deixava as tecnologias novas, recém saídas das universidades ou inicialmente usadas apenas por apenas earlier-adopters, “decantarem” um pouco para poder entregar isso de forma mais amigável ao publico dela.


O problema está nessa demora. Ultimamente, tecnologias decantadas, filtradas e destiladas demoram a chegar ao mundo Microsoft. Ou, numa quebra de padrão ao qual a Microsoft está acostumada, as tecnologias não tem tempo para decantar, pois o meu (ou o seu) concorrente não esperou para usá-la. Exemplos:


Test Unit – li hoje (*) também que a Microsoft está colocando o teste unitário nas outras versões do VS 2008, mão só no Team System. Uso NUnit a 4 anos! Programinha bobo, mas extremamente útil que poderia ter sido aprimorado e melhor integrado no VS a tempos. http://www.codeproject.com/lounge.asp?msg=2317383#xx2317383xx


Model-view-controller – li hoje que a Microsoft esta criando um MVC Framework para ASP.NET. MVC? Sim, o velho e bom MVC de 10 anos atrás. A Lib é até interessante, mas já não tem mais diferencial. http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx


Grid / Parallel Computing – li hoje também (sim, hoje também!) um paper da Microsoft: “Microsoft Parallel Computing Initiative Ushers Computing into the Next Era”. Já escrevi aqui sobre isso. Pense comigo: Será que o Gartner Group não previu que a quantidade de dados ia crescer mais que uma única CPU poderia processar? De novo, atrasada. http://www.microsoft.com/downloads/details.aspx?FamilyId=633F9F08-AAD9-46C4-8CAE-B204472838E1&displaylang=en


AJAX – O ASP.NET AJAX Framework demorou ou não? Esse Framework é composto de várias partes que poderiam ter sido entregues em pedaços menores e ir evoluindo com entregas regulares.


ORM – Enquanto o mundo Java usa ORM a séculos, o pobre desenvolvedor .Net ainda constrói 100% do seu acesso ao DB na mão. E o LINQ não vai melhorar isso.


Sem falar na lavada que a Microsoft está tomando no mundo Web. Acho que o SilverLight 1.1 (com CLR) vai melhorar sua penetração nas aplicativos mistos, puxando a briga para o desktop, e com isso trazer inovações para seu domínio. Mas só não pode demorar muito!


E quando não está atrasada, não tem diferencial:


DLR (IronPython, IronRuby) – Não posso culpar a Microsoft por seguir o buzz, mas não dá para dizer que linguagens script-like, não tipada, tem diferencial. O que melhorou desde o VB3? Mas tem sempre um louco tentando te convencer que Ruby é uma revolução colocando um pato no meio da história. Inacreditável! http://blogs.msdn.com/hugunin/archive/2007/04/30/a-dynamic-language-runtime-dlr.aspx


F# - Se você é acadêmico e usa programação funcional, você não usa produtos Microsoft. Se você é do mundo dos negócios não usa programação funcional. Então F#@%!http://research.microsoft.com/fsharp/fsharp.aspx


Minha primeira dica para a empresa bilionária é: Não Espere Tanto. Se a inovação é parte do diferencial da empresa que dependem de TI, não posso esperar todos os meus concorrentes usarem a tecnologia para eu começar a usar.


A outra é: Quebre Paradigmas. Me lembro que a Microsoft ditava a direção dos avanços tecnológicos nas empresas e nas mesas dos usuários domésticos, criando muitas vezes a necessidade, antes mesmo da tecnologia. Hoje, a Microsoft deixou esse papel para o Google. Por exemplo: nesse momento eu quero colocar um grid computing na minha empresa. Preciso? Lógico que não! O modelo três camadas (UIs -> BS -> DB) atende muito bem, logo a Microsoft atende. Mas o Google me mostrou que eu poderia guardar muito mais informações que eu armazeno hoje, criando posteriormente possibilidades para BI, por um custo relativamente baixo. Infelizmente não tenho como, pois meu stack é Microsoft e não tenho a tecnologia para isso. Maldito Google: além de me deixar angustiado, ainda faz com que eu me vire contra meu principal fornecedor de software! Genial se não fosse trágico. (Ok, não tão trágico assim...)


Uma outra estratégia seria: Não queira fazer tudo e incentive os parceiros. Como já disse aqui (até demais), uso um ORM que compramos a parte. Por que não trazer na instalação do Visual Studio dois ou três ORMs? Assim como o Crystal Reports vem junto com o VS, com licença básica, outras tecnologias poderiam acompanhar o pacote. Mas pelo jeito essa não pega, pois até o Criytal Reports foi deixado de lado para dar lugar ao SQL Reporting Services.


Agora quero ver se o tio Bill passa por aqui, como é de costume, e muda esse cenário. Eu, desenvolvedor Microsoft, espero que mude.


(*) - hoje = 5 dias atrás. Este site (thespoke) ficou fora por dias. Quem é o responsável?

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!