segunda-feira, 24 de maio de 2010

[PHP] Programação Orientada a Objeto

Muitas pessoas tem dúvidas de como é o php orientado a objeto, alguns dizem que é um bichoo de sete cabeças, outros dizem que é uma maravilha.

Afinal o que é orientação a objeto e porque ele é importante?

A orientação a objetos é uma maneira de programar que trata de modelar os processos de programação de uma maneira próxima à linguagem humana: tratando componentes de um programa como um objeto com suas características e funcionalidades.

Programação Orientada a objetos (POO) é importante pela sua facilidade de se trabalhar com os códigos, por exemplo, se quisermos mudar algum código num determinado programa e ele usa esse mesmo código em varias paginas, isso te daria trabalho de ficar mudando tudo. Mas usando a POO podemos simplesmente alterar o código numa função que os demais se alteram também.

Uma outra coisa importante é que cada vez mais questões de POO estão sendo cobradas em provas de certificações, por isso se você pretende ser um profissional certificado é necessário aprender a programar orientado a objetos.

Para começar devemos saber conceitos essenciais de POO

Uma classe é basicamente um pedaço de software que contem:

Atributos (dados)

Métodos (funções)

class POO   Programação Orientada a Objeto com PHP

Um Objeto representa uma coisa física, tangível, uma idéia ou conceito. Um objeto é uma instância de uma classe. Exemplo:

classe POO   Programação Orientada a Objeto com PHP

Um objeto pode ser composto de outros objetos .

Um objeto pode pedir a colaboração de outro objeto enviando um mensagem, o que significa invocar um método do outro.

Exemplo de uma classe:

Captura de tela 2010 04 23 às 15.32.34 POO   Programação Orientada  a Objeto com PHP

O nome da classe, precedido da palavra reservada class e seguida de um par de chaves {} delimitará o código da classe.

Cada classe, no PHP, é um objeto, ou seja, uma coleção de métodos e propriedades.

O que são métodos e propriedades?

Propriedades nada mais são do que variáveis iternas de uma classe, ou seja funções que colocamos entre os {} da classe.

Captura de tela 2010 04 23 às 15.29.02 POO   Programação Orientada  a Objeto com PHP

Captura de tela 2010 04 23 às 15.35.04 POO   Programação Orientada  a Objeto com PHP

Um objeto da classe deve ser instanciado pelo operador new.
O operador permite referenciarmos atributos e métodos do objeto.

Captura de tela 2010 04 23 às 15.47.13 POO   Programação Orientada  a Objeto com PHP

Uma classe pode extender (extends) outra classe qualquer, isso é chamado Herança.
As classes que herdam incluem os métodos como as propriedades da classe a partir da qual estão definidos.
Todos os atributos e métodos estão disponíveis imediatamente, pela variável $this.

VARIÁVEL $this

Quando definimos uma classe, podemos usar a variável $this, que é o próprio objeto. Quando uma classe é instanciada em um objeto, e utilizamos a variável $this, essa variável se refere ao objeto que estamos utilizando.

Importante ressaltar também que o script da classe principal deve ser chamado pelo script da classe secundária (a classe que está recebendo a herança).

Captura de tela 2010 04 23 às 16.08.49 POO   Programação Orientada  a Objeto com PHP

A classe secundaria deve incluir a classe principal, use o comando include_once ou require_once para não ter problemas.

Vamos utilizar a classe secundária, para tal vamos criar um outro script em php que vai receber a classe principal que é ContaCorrente e a classe secundária que é ContaEspecial.

Captura de tela 2010 04 23 às 16.22.43 POO   Programação Orientada  a Objeto com PHP

Métodos podem ser chamados como um método de classe, isto é, sem que exista uma referência a instância da classe.
Para tal utilizamos o operador ::
Caso faça referência à variável $this o método de classe irá falhar.

Captura de tela 2010 04 23 às 16.50.34 POO   Programação Orientada  a Objeto com PHP

Utilizando um método de classe:

Captura de tela 2010 04 23 às 16.53.11 POO   Programação Orientada  a Objeto com PHP

Por hoje é só, nas próximas aulas eu monstro mais alguns exemplos de códigos e depois vamos criar tutoriais e video aulas monstrando passo a passo e explicando mais detalhadamente como se programa orientado a objetos.

Espero que tenham gostado e até a próxima.

por: Julio Cesar

em: Guia do PHP

[PHP] Gerenciamento e Upload de Arquivos

A maioria dos programadores que estão iniciando em alguma linguagem, seja ela de qualquer plataforma, em sua trajetória se depara sempre com alguma dificuldade. E neste artigo, venho relatar e explicar à vocês uma das minhas principais dificuldades quando estava no início da carreira de programador.

Sabemos que qualquer sistema web hoje em dia possui uma função bem importante com o nome de upload, seja ele de arquivos, músicas, fotos e etc. A uns 2 anos atrás tive uma dor de cabeça para aprender, mas hoje venho mostrar à vocês que isso não é um monstro como alguns dizem.


Upload de Arquivos em PHP

Primeiramente, para você realizar o upload de um arquivo, você terá que possuir um formulário preparado para receber um campo com a função de realizar o upload de arquivos. Abaixo mostro um exemplo de um formulário pronto para realizar upload, que chamaremos de form.php.

action=”valida.php” method=”post” enctype=”multipart/form-data”>
Arquivo: type=”file” name=”arquivo” id=”arquivo” />
ENVIAR

Atributos do Formulário:

-> action: Página de destino onde receberá o arquivo upado;
-> method: Tipo de método para envio das informações para o formulário. Tipos: Post e Get;
-> enctype=’multipart/form-data’: Este é o principal atributo que eu irei comentar, é ele que permite ao formulário realizar o upload de arquivos, sem esse atributo, mesmo contendo o campo input do tipo ‘file’, o upload não irá funcionar;

Atributos do Input

-> type=’file’: Atributo que permite ao input realizar upload de arquivos;

Agora já temos o formulário que irá realizar o upload de arquivos para a página valida.php
Variável Global $_FILES

Ao realizar o disparo do upload do arquivo para a página de destino, toda manipulação das informações desse arquivo serão manipuladas pela variável SuperGlobal $_FILES.
No formulário temos o campo ‘arquivo’, então nossa variável global $_FILES em seu primeiro parâmetro recebrá ‘arquivo’, pois o nome do campo input no formulário é ‘arquivo’.

Exemplo:
$_FILES['arquivo'] e consequentemente o parâmetro seguinte dependerá do que iremos manipular na variável.

Abaixo irei mostrar a aplicação dessa variável e seus principais atributos:

$_FILES["nome_do_arquivo"]["name"] – Retorna o nome do arquivo na máquina do usuário.
$_FILES["nome_do_arquivo"]["tmp_name"] – Retorna o nome temporário do arquivo armazenado no servidor.
$_FILES["nome_do_arquivo"]["size"] – Retorna o tamanho do arquivo em BYTES.
$_FILES["nome_do_arquivo"]["type"] – Retorna o tipo do arquivo.
$_FILES["nome_do_arquivo"]["errors"] – Retorna o código de erro associado a esse arquivo.

Com essas informações em mãos já podemos realizar diversos testes de validação e verificação para que nosso upload seja realizado com sucesso.

Para exibir as informações do arquivo passado para a página valida.php , coloque o seguinte código:


print_r($_FILES['arquivo']);
?>

Envie diversos arquivos da página form.php e veja a mudança na impressões das informações do arquivo irão mudar.
Verificar upload do arquivo ocorreu com sucesso:

Quando receber um arquivo que foi upado de alguma outra página devemos fazer diversos testes de segurança para manter a integridade de nosso sistema. E nosso primeiro teste será verificar se o arquivo teve um upload com sucesso. Para isso usamos a função is_uploaded_file().

Exemplo:


if (is_uploaded_file($_FILES["arquivo"]["tmp_name"])) {
print_r($_FILES["arquivo"]);
}
else {
echo “Erro”;
}
?>

Movendo um arquivo que foi upado:

Quando realizando o upload de um arquivo, o mesmo é movido para um diretório temporário (definino no PHP.INI). Para resgatar esse caminho temporário utilizamos a função $_FILES['arquivo']['tmp_name']. É preciso depois de realizar as principais verificações de segurança mover o arquivo para uma pasta de destino dentro do sistema e para isso utilizamos a função move_uploaded_file(), a qual recebe dois parâmetros o caminho de origem(neste caso o arquivo temporário) e o destino(pasta interna do sistema que receberá o arquivo upado).

Exemplo:

if (is_uploaded_file($_FILES["arquivo"]["tmp_name"])) {
if (move_uploaded_file($_FILES["arquivo"]["tmp_name"], “repositorio/user/”.$_FILES["arquivo"]["name"])) {
echo “Arquivo movido com sucesso”;
}
else {
echo “Não foi possível mover o arquivo”;
}
}
else {
echo “Erro”;
}
?>

Sistema de Upload Simples

Abaixo irei mostrar um exemplo que receberá arquivos upados de no máximo 2MB e só poderão ser upados imagens, caso contrário irá aprensentar mensagens de erro.
Veja como ficará o código:

if(is_uploaded_file($_FILES['arquivo']['tmp_name'])){
//AO ENTRAR NESTE BLOCO O ARQUIVO JÁ FOI UPADO COM SUCESSO.
if($_FILES["arquivo"]["size"] > 2100000){
//AO ENTRAR NESTE BLOCO O ARQUIVO JÁ POSSUI UM TAMANHO PERMITIDO PELO SISTEMA
if (!($_FILES["arquivo"]["type"] == “image/gif” || $_FILES["arquivo"]["type"] == “image/pjpeg” || $_FILES["arquivo"]["type"] == “image/jpeg” || $_FILES["arquivo"]["type"] == “image/png”)){
//AO ENTRAR NESTE BLOCO, O FORMATO DO ARQUIVO JÁ FOI AUTORIZADO PELO SISTEMA
if (move_uploaded_file($_FILES["arquivo"]["tmp_name"], “../repositorio/user/”.$_FILES["arquivo"]["name"])) {
echo “Arquivo enviado com sucesso.”;
}else {
echo “Erro ao enviar arquivo.”;
}
}else{
echo “ERRO. SOMENTE IMAGENS SÃO PERMITIDAS”;
}
}else{
echo “ARQUIVO EXCEDEU O LIMITE DE TAMANHO.”;
}
}else{
echo “ERRO DE UPLOAD DO ARQUIVO.”;
}
?>

E com isso finalizamos nosso sistema de upload de arquivos simples.
Espero que tenham gostado.
Boa sorte à todos.

Um forte abraço…

por: Pablo Garrido

em: Guia do PHP

[CSS] Posicionamento com Z-index

A cada dia que passa utilizamos novas técnicas com CSS para estilizar nossos projetos. Hoje venho trazer uma técnica bem legal para posicionamento de imagens. Para quem não conhece o atributo ‘Z-index’, ele é utilizado para posicionar objetos uns por cima dos outros.

Mas vamos com calma, que esse atributo ainda vai dar o que falar…



Atributo Z-index em CSS

Hoje em dia temos diversas técnicas para manipular o posicionar objetos e blocos em nossos projetos, sejam com o atributo float, position e z-index etc.

Para mehor enteder vou explicar cada item acima.

Float: Esse atributo é responsável pelo posicionamento das caixas de layout do projeto. Seus valores são: left, right, none;

Position: Com este atributo conseguimos atribuir um valor absolut (absolute) e relativo (relative) para os objetos e blocos do nosso site e/ou projeto. É muito utilizado objetos que não conseguimos estilizar com o atributo Float.

Z-index: Este atributo é utilizado quando queremos manipular a exibição de objetos uns por cima dos outros. Os valores para esse atributo são atribuidos através de números.

Como posicionar um bloco com Z-index

Para que o atributo Z-index funcione temos que utilizar nos dois objetos que estamos formatando o atributo ‘position’, então temos com isso total liberdade de utilizar o atributo Z-index.

Para melhor entender veja a imagem abaixo a qual ilustrei com a demonstração do uso do atributo Z-index.

zindex1 Posicionamento com Z index em CSS

E com isso conseguimos um grande avanço em nossa diagramação em CSS, pois temos a possibilidade de dispor objetos uns por cima dos outros, sem afetar a nossa semâtica de desenvolvimento.

Não deixem de me seguir no twitter, estou sempre postando coisas novas por lá.

www.twitter.com/devpablogp

@devpablogp

Qualquer dúvida entrem em contato por e-mail: contato@pablogp.com

por: Pablo Garrido

em: Guia do PHP


[PHP] Tipos de Dados


A utilização da tipagem de dados no PHP é um assunto que poucos conhecem, irei mostrar neste artigo que existem diversas funções poderosas com a capacidade de identificar os tipos de dados de uma variável. Isso irá ajudar na otimização, segurança e flexibilidade do sistema.

Funções e Métodos para Tipos de Dados no PHP

A classificação e disposição dos tipos de dados é uma prática primordial em qualquer liguagem de programação. No PHP esta classificação tem que ser tratada com mais cuidado pois a tipagem dos dados não é de grande qualidade, exemplo, uma hora a variável recebe um valor inteiro, outra uma string e assim sucessivamente.

A tipagem fraca, no PHP não deve ser encarada como um defeito ou desvantagem da linguagem, isso acontece porque o PHP em relação a declaração e tipagem de variáveis exerce um papel mais flexível tornando a programação simples e mais flexível. Testes com a variável é de suma importância para saber se o tipo de dado dela é o mesmo com o valor atribuído.

Abaixo segue algumas funções para verificar a tipagem dos dados no php. Exemplo, para confirmar se uma variável é inteira usamos a função is_int() .

Exemplo:

if(is_int($variavel)){

echo “Variável é Inteira”;

}else{

echo “Variável não é Inteira”;

}

O resultado da função is_int() é um número booleano. Para o valor true que será retornado quando a variável se encontrar no tipo inteiro e false, se a variável não for do tipo inteiro.

Existem outras funções para designar a tipagem dos dados. Segue abaixo uma pequena listagem.

FUNÇÃO – DESCRIÇÃO

isset – Informa se a variável foi iniciada

is_array – Verifica se a variável é um array

is_bool – Verifica se a variável é um número booleano

is_float – Informa se a variável é um float

is_int - Informa se a variável é um inteiro

is_null - Informa se a variável é NULL

is_numeric – Informa se a variável é um número ou uma string numérica

is_object – Informa se a variável é um objeto

is_resource – Informa se a variável é um resource

is_escalar – Informa se é uma variável escalar

is_string – Informa se a variável é uma string

Função gettype

Esta função é de grande importância para os desenvolvedores, é ela que utilizamos para saber o tipo de uma variável. Veja um exemplo prático abaixo.

$variavel = ‘Olá Mundo’;

echo gettype($variavel);

Essa função irá retornar uma string com o tipo da variável. Esse resultado só poderá se encaixar dentre os valores: boolean, integer, double, string, array, object, resource, NULL e unknown type.

A tipagem dos dados atualmente é utiliza para a segurança de projetos, o que torna um código flexível e com menos possibilidade de erros finais para os usuários.

por: Pablo Garrido

em: Guia do PHP

domingo, 18 de abril de 2010

[INFORMAÇÃO] Cloud Print


A computação em nuvem ainda está em fase inicial de utilização, mas a Google já visualizou o potencial que essa nova tecnologia pode proporcionar, e uma demonstração do interesse em explorar esse “novo” nicho de mercado é o Google Cloud Print. Essa ferramenta foi anunciada pela própria Google no blog do projeto Chromium no dia 15, e permitiria a impressão de documentos de qualquer aplicativo instalado em qualquer dispositivo (computadores, smartphones, notebooks e netbooks) em qualquer impressora conectada à Internet.
Impressão a partir da nuvem. Reprodução/Google

O Google Chrome OS, sistema operacional para netbooks que foi mostrado em novembro passado, não usará drivers de impressoras por contar exclusivamente com o Google Cloud Print, e a proposta para outros sistemas operacionais é a mesma: levar o status da impressão como uma tarefa local para a nuvem, “libertando” assim os usuários dos drivers proprietários. Claro que com esse sistema, é imperativo que o usuário esteja conectado à Internet para poder imprimir, mas para quem já tem uma impressora, pode torná-la ponto de acesso do Google Cloud Print (via proxy) e permitir que documentos de amigos, colegas e funcionários sejam impressos sem o download do arquivo.

Já está em desenvolvimento, prioritariamente, um proxy para Windows; e em segundo plano ficam Linux e Mac OS. Uma interface web será necessária para visualização e ajustes pré-impressão, bem como API’s para gerenciar todo o processo.

São descritos dois modos de uso do Google Cloud Print:
-Primeiramente, tanto o dispositivo quanto a impressora teriam de estar conectados à Internet e com um proxy (pequeno software encarregado de fazer a interconexão entre um e outro) instalado no dispositivo onde a impresora estaria conectada;
-Em uma segunda maneira, o serviço seria feito por impressoras dedicadas e adaptadas para interagirem diretamente com a nuvem sem computadores intermediários; tal modelo ainda não existe – comercialmente falando, mas a Google aposta na criação de dispositivos dessa natureza para o uso total da nuvem em favor da Cloud Print.

E para quem já está interessado em saber mais sobre a ferramenta e desenvolver soluções para a Cloud Print, siga por aqui para ter acesso à documentação e ao código disponibilizado.

por: Augusto Pais
em: Guanabara.Info

sábado, 17 de abril de 2010

[EVENTO] Encontro de GeoTecnologia 2010

Neste evento abordaremos assuntos ligados a Tecnologia, TI Verde,Lixo Eletrônico, Reciclagem, Sustentabilidade, Geomática e Geoprocessamento.


Entrada Gratuita!
Coleta de Lixo Eletrônico!


Local: Faculdades Integradas Simonsen - Rio de Janeiro/RJ

sábado, 10 de abril de 2010

[INFORMAÇÃO] Coleta de lixo eletrônico

Palestra sobre as consequencias do descarte do lixo tecnológico sem tratamento.

Coleta de material pela ECOTRONIC, cujo negócio é a manufatura reversa de lixo eletrônico, na palestra explicamos as destinações e maneira como tratamos esse material.

Em um evento que com certeza tratará de assuntos

de interesse de todos nós: nosso planeta!

visite nosso site www.ecotronicbr.com em sua nova versão.

Cordialmente

Leonardo Oliveira
Diretor
Ecotronic Comércio a Manufatura Reversa Ltda
www.ecotronicbr.com

Entrada Gratuita - Inscrições serão feitas pelo site www.simonsen.br/geotecnologia.
Data do Evento: 04 e 05 de maio. (manhã, tarde e noite) aberto ao público.
Local: Faculdades Integradas Simonsen - Rio de Janeiro/RJ.

sexta-feira, 2 de abril de 2010

[INFORMAÇÃO] Criador do Altair, Ed Robers morre aos 68 anos

Se você gosta da história da computação moderna, com certeza sabe quem é Henry Edward Roberts, o criador do primeiro computador pessoal da história, o Altair 8800.

Ed Roberts, criador do Altair 8800

Ed Roberts, como era mais conhecido, fundou a Micro Instrumentation and Telemetry Systems (MITS), empresa que vendia kits para quem gostava de eletrônica. Quando Roberts anunciou o lançamento do Altair 8800 em 1976, dois jovens se interessaram em desenvolver uma versão da linguagem Basic para o computador, seus nomes eram Paul Allen e Bill Gates, que ao ficarem sabendo do falecimento de Ed, declararam:

"Estamos profundamente entristecidos com o falecimento do nosso amigo e primeiro mentor (…) O dia em que nosso primeiro software ainda não testado funcionou no Altair foi o início de uma série de grandes coisas. Nós sempre temos muitas lembranças boas de trabalhar com Ed em Albuquerque, no escritório do MITS na Rota 66."

Fonte: [IDG Now via FelipeDeMoraes]

por: Gustavo Guanabara
em: Guanabara.Info

[APOSTILA] Aulas 7 a 9 - Rodrigo Neves





domingo, 21 de março de 2010

[JAVA] Aulas JAVA 1 a 3 - Aline Rosa






por: Aline Rosa

[INFORMAÇÃO] Professor de design de games emprega sistema utilizado em RPG para avaliar alunos


Com a demanda de soluções para os impasses criados na relação das instituições de ensino e os estudantes da “geração videogame“, um professor americano parece ter dado um grande passo na busca de alternativas para estimular os alunos a irem ao encontro do conhecimento.

Lee Sheldon, professor da Bloomington’s Indiana University, na matéria de design de games, estabeleceu um sistema de avaliação de alunos, no mínimo, curiosa: “emprestou” o sistema de experiência (XP) típico de jogos de RPG e MMORPGs, e assinalou para cada aluno um avatar, que começa suas aulas com nível 1.

Para ganhar pontos de experiência, o estudante deve completar atividades camufladas na forma de “quests“, “crafting” e outros termos que os maníacos por este tipo de jogo estão mais que familiarizados. Na vida real, os alunos estão fazendo apresentações, trabalhos e todo tipo de atividades tradicionais, mas ganham XP por fazerem isso. Os estudantes são agrupados em Guildas (Guilds), que desenvolvem as atividades das quests em conjunto.

Perguntado se o sistema funciona, o professor diz achar que sim, dado que o feedback recebido depois da adoção desse esquema é bem mais animador que o do método “normal”. Sheldon disse que, de uma classe de 40 alunos, apenas 2 não se envolveram com tal sistemática, alegando que o problema desses dois dissidentes vai muito além de sua aula, ou seja, vão mal em tudo.

As declarações de Lee são impulsionadas por um artigo da revista ITNews que trata da entrada da “geração videogame” no mercado de trabalho. A matéria sugere que empregadores têm utilizado técnicas de desenvolvimento de jogos para motivar seus empregados, tais como definição clara de objetivo e recompensas crescentes, que aumentam o nível de comprometimento do funcionário.

E, pelo jeito, está funcionando.

Via Tom’s Guide

Agradecimentos ao leitor Felipe “Hupiscratch” Andrade.

por: PoLLar

em: Jovem Nerd

sexta-feira, 12 de março de 2010

[EVENTO] EDTED - Encontro de Design e Tecnologia Digital



O 15º EDTED será no dia 20/03, das 9 às 18h, no Centro de Convenções SulAmérica. A primeira edição deste ano está chegando recheada de novidades, como, por exemplo, os espaços Minicursos/Desconferências, Startups e Lightning Talkings! Mobile Taggings, Magento, Django, Joomla, design, cores e tendências serão alguns dos temas tratados.
Aproveite que hoje é o último dia de desconto e faça a sua inscrição! Ingressos a partir de 24 reais. Caso não seja assinante das revistas da Arteccom, clique aqui e imprima o seu flyer promocional. Inscrições e mais informações, acesse:

segunda-feira, 22 de fevereiro de 2010

[INFORMAÇÃO] CP Labs e Campus Party Europa‏

CP Labs e Campus Party Europa‏

Caro/a campuseiro/a,

Desde o passado mês de julho está funcionando CP Labs (cplabs.me), nossa plataforma de desafios globais. Desde seu lançamento, mais de dez campuseiros já foram premiados com uma quantia superior aos €80.000. Você pode ser um dos próximos ganhadores.

Para participar a única coisa que deve fazer é entrar no site de CP Labs, acessar a sua Ficha de Usuário, selecionar a opção "Tags" e preencher a informação solicitada etiquetando o seu talento. Nos próximos meses vamos lançar novos desafios segmentados por especialidade com mais de €200.000 em prêmios para os ganhadores, e para poder receber informações sobre os desafios você deve ter preenchido seus Tags previamente. Desta forma, a notificação chegará somente àqueles desafios nos que você estiver interessado (programação, design, usabilidade, etc).

Aproveitamos também para lhe lembrar que o nosso próximo evento será Campus Party Europa, uma edição especial de Campus Party que será celebrada em Madrid durante o mês de abril dentro da agenda oficial da Presidência Espanhola da União Europeia. Entre no site oficial (www.campus-party.eu) e se informe de como prosseguir para assistir ao evento.

Um abraço,

Organização Campus Party Brasil

domingo, 14 de fevereiro de 2010

[INFORMAÇÃO] Desenvolver solução diferenciada ou morrer tentando


A Guerra da Microsoft contra o Software Livre. Clique para ver em tamanho maior.

Sou só eu ou vocês também tem a impressão de que a Microsoft perdeu o bonde da história? Explico melhor aí embaixo. O texto é longo, mas acho que vale a pena.

Todos nós conhecemos a Microsoft, grande corporação de marketing software que temos hoje em dia, uma das maiores empresas do mundo, etc e tal. Quem ouve o Retrocomputaria, já vai sabendo que no futuro teremos um episódio falando do início dos PCs, da Micro-soft (sim, tinha hífen) e como tudo começou. Se você tiver interesse, também recomendo assistir o documentário “O Triunfo dos Nerds“, apresentado pelo Robert X. Cringely.

Todo mundo sabe também que não morro de amores pela Microsoft. No meu blog, existem vários comentários que fiz à MS, e a maioria não foram elogios. Sim, eu uso Windows no trabalho, e já tive muitos problemas com software mal-educado para rodar em usuários não-privilegiados no sistema da Microsoft. Ironicamente, um dos piores… Era um software da própria Microsoft, o Visual Basic. Afinal, alguém pode me explicar porque o VB quer mexer numa DLL dentro de C:WINDOWSSYSTEM32? Ou por que o Organograma do Word quer criar um arquivo temporário no C:WINDOWSSYSTEM, e você tem que descobrir qual é o arquivo para não liberar o diretório todo, e isso afetar toda a segurança do sistema? Logo, já falei mal dela várias vezes, e o pior: eles me dão motivo. Desde 1995, na saudosa Esquina das Listas, eu li o nome de uma lista que tive que assinar: “Odeio Windows mas sou obrigado a usar“. Na época, sem alternativas. Ou era Microsoft, ou nada.

De lá para cá, todo mundo sabe, muita coisa mudou. O crescimento de alternativas tem sido perceptível, até para os high-monkeys microservos, o que tem deixado-os preocupados. Uma empresa que não está acostumada a ter concorrência (vide o caso dessa que todos nós conhecemos), quando começa a ter, se apavora. Concorrência, até um nível aceitável, é algo saudável: Vide a briga Intel x AMD: Por mais que a Intel seja muito maior do que a AMD no mercado de processadores, precisou a segunda jogar com valores bem baixos no mercado para que a primeira corresse atrás do prejuízo com os Core 2 Duo. A segunda fez cortes drásticos de preço, fazendo os Athlon 64 X2 custarem metade do preço em pouco menos de dois meses. E isso aqui no Brasil. Imagina nos Estados Unidos…

Mesma coisa no mercado de software: A Microsoft teve que se render. A aliança com a Novell, por mais que seja abominável pelos olhos da maioria da comunidade do software livre, prova uma coisa: A Microsoft admitiu que o Software Livre é uma realidade e pior, uma ameaça. Você já pode se dar ao luxo de montar um escritório todo rodando em cima de softwares livres. Vi reportagens em revistas, onde o autor instala tudo com alternativas livres, ou até coloca o Windows XP, e todo o resto é software livre: BrOffice.org, Inkscape, VLC, Pidgin, etc. Muito interessante.

Ao mesmo tempo, a Microsoft começa a se atrapalhar no seu gigantismo. Ela está tão grande, tão grande… Que perdeu a agilidade. A Microsoft é hoje o que a IBM foi há 30 anos. IBM que, aliás, hoje em dia aprendeu a lição: Vendeu a fábrica de HDs para a Hitachi, emancipou a fábrica de impressoras (Lexmark), os desktops e os notebooks foram para a Lenovo, e 50% da sua renda vem hoje de serviços, principalmente terceirização de TI. Conheço gente que trabalha com desenvolvimento e está na IBM hoje em dia. A Big Blue se reinventou para os novos tempos. E não deixou de inovar: Está aí o POWER 7 que não me deixa mentir.

Voltando à Microsoft: Notaram como ela não tem conseguido se dar bem em novos mercados? Vejamos:

  1. Em mobilidade, a Microsoft tem o Windows Mobile, que tem fãs ardorosos, alguns inclusive formadores de opinião (por infelicidade geral). Vejamos os concorrentes:
    • O Symbian é o que tem a maior penetração no mercado. Basta ter o apoio da Nokia, o maior fabricante de celulares do mundo (pouco mais de 1 bilhão de celulares vendidos). 42% do mercado mundial.
    • Por mais que os trombeteiros do apocalipse alardeiem, a Palm não morreu, e o Pre está aí, tornando-a novamente relevante para o mercado. Já falam em licenciamento do WebOS para outras plataformas.
    • Os Blackberrys, da RIM, que viciam, também são uma mania entre os americanos. E convenhamos, são uma graça, e funcionam muito bem. Quase 20% do mercado.
    • Precisa falar do iPhone? O celular mais hypado da história (e que eu tenho uma opinião bem particular a respeito), e a Apple está nadando de braçada nesse mercado. Terceiro lugar no ranking dos sistemas operacionais para portáteis, atrás dos Symbian e dos Blackberry.
    • Android, crescendo a olhos vistos… Eu mesmo falei por aqui de que quase todos os fabricantes de celulares irão usar o Android. Falam até na Nokia…
    • Ah, antes que eu me esqueça… Linux em celulares, com outras alternativas: os Linux customizados da Motorola, LiMo Foundation… Pois é.
  2. Qual seria a resposta óbvia da Microsoft? Windows Mobile 7. E cadê o dito cujo? Nada. Atraso de mais de um ano. Falam em meados de 2010, agora. Será que ele se tornará relevante para o mercado? Note que não estou dizendo que o Windows Mobile é ruim. O Windows Mobile pode até ser bom, mas tem muita concorrência – que não está parada. No mercado corporativo, a RIM leva de lavada; a Symbian tem apelo com o market-share e ferramentas como acesso a servidores Exchange (da própria Microsoft), assim como iPhone e Android. E no mercado dos tech freaks, os “amantes da tecnologia”? Alguém aqui quer um celular com WM? A maioria quer iPhone… E tem mais uma coisa: As inovações que o Windows Mobile 7 trará, já existem no iPhone, no Android e em breve no Symbian (ainda mais depois do código ser aberto).

  3. No campo dos videogames, ela parece que agora acertou a mão. Sejamos francos, o Xbox (o primeiro) é um PC castrado. Basta você hackear a BIOS e ele é um PC, e teve muita gente fazendo dele servidor por aí. Agora, com o 360, ela está com um aparelho muito bom, e parece que acertou a mão com a Xbox Live. A rede é realmente empolgante pelo que dizem. Mas… E os concorrentes?
    • A Sony ainda tem o videogame mais vendido da história, o Playstation 2. No PS3, ela apostou em fazer dele um player de Blu-Ray (como fez com o PS2 como um DVD-player), só que o custo alto e o alto consumo de energia tornaram-se entraves. No Brasil, lamentavelmente, com jogos custando R$ 200 (Mortal Kombat x DC Universe, eu perguntei o preço!), ele não se populariza pela falta de cópias não-autorizadas de jogos sendo vendidos por preços mais em conta. Se bem que o custo dele caiu (dumping da própria empresa), e o desbloqueio dele farão o PS3 se popularizar (um conhecido já recebeu 5 encomendas de PS3 no dia seguinte ao anúncio do desbloqueio).
    • A Nintendo ressurgiu das cinzas: O Wii é hoje o queridinho do mercado e vende horrores, mesmo com o preço alto que cobram por ele aqui em terra brasilis não fazer jus ao seu hardware embarcado, inferior ao Xbox 360 e o PS3. Numa rápida olhada em um site de pesquisa de preços, vi o PS3 a R$ 1192, o Xbox 360 a R$ 1025, e o Wii a R$ 850 (preços de 4/7/09). Para um equipamento razoavelmente inferior, a diferença de preço é de 17% para o 360 e 29% para o PS3. Só que o Wii não vale isso tudo, o hype em torno dele mantém o preço dele alto. E todo mundo que-não-é-jogador quer um Wii.
    • Qual foi a resposta da Microsoft? Project Natal, que é fantástico. Mas não é inovador. Quero dizer, é inovador sim, mas quem lançou a idéia de “jogar com o corpo” foi a Nintendo, não a Microsoft. E todos irão lembrar-se disso.

    Ou seja, está bem, mas tem dificuldade. No Japão, por exemplo, a penetração é pequena. No Brasil… PS2 ainda domina. EUA… O Wii vendeu mais, tendo sido lançado 1 ano depois do X360. E por aí vai.

  4. Na Web então, a Microsoft tem algumas boas iniciativas (como o Bing!), mas está tomando uma lavada do Google. 79% contra 8% em buscadores é quase uma covardia. E francamente, alguém faz busca em outro site que não seja o Google?
  5. Aliás, vocês já viram que ela sempre corre atrás do Google? O Google soltou o Google Maps e o Google Earth, ela solta o Virtual Earth 3D. O Google faz o Google Docs, ela anuncia o Office 2010 online (mas pago). O Google tem uma área para desenvolvedores, e a Microsoft lança o Codeplex. E por aí vai.
  6. No mercado de navegadores, o Firefox está crescendo mais e mais, sem contar com o Chrome subindo no horizonte… Temos o Safari, mas o seu crescimento está vinculado ao crescimento do Mac OS X (e iPhone OS), não conheço quem prefira o Safari em execução numa plataforma Windows. E o Internet Explorer, que ficou parado por anos, deu uma revigorada, mas mesmo assim está paulatinamente perdendo mercado. O melhor exemplo que tive foi quando estava numa oficina mecânica, e o computador do escritório deles tinha o Firefox instalado. Virei para a esposa do dono, e perguntei sobre o navegador, ao que ela respondeu: “Ah, mas ele é muito melhor!” Se alguém que não é da área diz isso, o que diremos nós, que somos?
  7. E em música? A Apple, com o iPod, está lá na frente, mesmo vendendo um produto com acesso limitado (através do iTunes apenas – oficialmente falando), sem contar a iTunes Music Store. Para vocês terem uma idéia, acabo de ver essa na MacMagazine: “Apple dará um Gift Card de US$10.000 para quem baixar a 10.000.000.000ª música na iTunes Store“. A música número 10 BILHÕES. É coisa para caramba. E o que a Microsoft fez? O Zune. Conhecem alguém (além do @Johnnyken) que goste do Zune? Eu nunca nem vi um… E a loja? Havia conflito de DRM na loja, música adquirida para o Zune não tocava no micro, os DRMs não eram compatíveis… #EPICFAIL.
  8. Em linguagem de programação, quais são as mais usadas? Segundo o relatório da TIOBE de janeiro de 2010: Java, C e PHP. Java, em particular, cresceu MUITO e foi certamente a principal motivação da Oracle comprar a Sun (ou você acha que Deus Larry Ellison comprou a Sun porque gosta do Solaris?). O que a Microsoft fez? O .Net, que era apenas um press-release e demorou a tomar forma… E é uma extensão dos conceitos do Java. Não é inovador, me desculpem quem programa em *.Net, mas não é inovador. Java sim, foi. O .Net não é, e nem tem tanta penetração assim no mercado (VB em quinto lugar, C# em sexto), o C tem mais penetração do que eles dois somados. Se somar ao C++ (que é o quarto), então…
  9. Em design na Web e documentos, ela resolveu soltar um concorrente para o quase onipresente Flash, que foi o Silverlight. E os grandes acontecimentos do Silverlight foi transmitir a pose do Presidente Barack Obama, e uma coleção da Playboy acessível via Web. No caso da suite de Web da Adobe, ela pretendia soltar um concorrente, não sei no que deu (se souber, avisa aí embaixo). Ela chegou a bolar um concorrente para o padrão PDF, da Adobe e queria meter goela abaixo no Windows Vista. A Adobe chiou (na Justiça), e ela recuou.
  10. O mercado cativo da Microsoft é o Windows e o Office, que correspondem a 60% do faturamento da empresa. Nessa área ela reina, mas começa a ter mais pluraridade: Linux no desktop, apesar de pequeno, tem crescido rapidamente. Além disso, o Mac OS X tem aumentado sua penetração: iPod e iPhone acabam trazendo novos usuários para o Mac. Isso significa que eles não podem mais ignorar esse mercado. E lembrem-se: O OpenOffice.org está presente em 21% dos computadores PC alemães…
  11. No mercado de servidores então, chega a ser humilhação: 33,8% do mercado, contra 7,9% do mercado para a Microsoft.
  12. Em em supercomputação? 436 dos 500 supercomputadores mais rápidos do mundo rodam Linux. Windows? 5. CINCO. Só!
  13. Aliás, uma coisa que a Microsoft sempre foi muito boa foi impor seu formato aos outros. Quer ver a lista?
  14. Algumas curiosidades a respeito da Microsoft:
    • Ela é a única empresa que ainda VENDE o sistema operacional. Sim, eu sei que a Apple também vende. Mas o foco da Apple não é vender sistemas operacionais, é vender hardware. E para ela, software é acessório. Por isso eles vendem o Snow Leopard a US$ 29. A mentalidade é diferente, não melhor nem pior, só diferente. Além do Windows e do Mac OS X, existe uma miríade de sistemas operacionais, fechados e abertos, mas todos são distribuídos de graça.
    • A Microsoft não trabalha com rentabilidade advinda de serviços. A IBM trabalha em cima desse modelo novo e enxugou onde pode. Isso deu agilidade a ela. A Microsoft continua no esquema de caixinha de software, serviço é com outra empresa.
    • É inegável a capacidade da Microsoft de se reinventar. Em 1996, ela se reinventou toda, pois para ela, valia a pena investir na rede MSN, que seria uma “internet em miniatura”, como o AOL, o Compuserve, entre outros. Para ela, a Internet não iria pegar, ou seria uma moda passageira. A história comprova o contrário, e a MIcrosoft soube se reinventar, abandonando idéias como o servidor de streaming Tiger, por exemplo.Ela é capaz de mudar rapidamente de foco.

E aí vem a motivação para publicar esse artigão, que dividi em duas partes: Recentemente, no The New York Times, Dick Brass, antigo vice-presidente da Microsoft, soltou um artigo com a sua opinião que muitos de nós já perceberam, mas não falávamos em voz alta para não sermos recriminados pelos (pouquíssimos) Windows fanboys: a Microsoft traz nenhuma inovação há tempos. E o mais assustador: Quem escreveu isso foi um ex-vice-presidente da empresa, alguém que já esteve lá dentro. E, creio eu, torce para o sucesso da empresa.

Repare que eu listei um monte de coisas no post anterior: Xbox 360, Zune, Project Natal, Windows Mobile, Google Docs… Mas perceba também que nenhum deles é realmente uma inovação, ao contrário, apenas uma compensação: Alguém faz sucesso, e a Microsoft corre atrás, copiando e melhorando – um pouco, tirando proveito do seu tamanho para impor a sua modificação. Quer ver?

  • O Xbox e o Xbox 360 surgiram e pegaram carona no sucesso dos Playstation 2 e 3.
  • O Zune foi uma tentativa de chegar no iPod, sem sucesso.
  • O Windows Mobile foi uma tentativa (bem-sucedida) de pegar os Palm, mas ultrapassou (por um tempo) mais por incompetência da concorrente. Hoje em dia, iPhone é o queridinho do mercado, e um dia será o Android (Afinal, estatísticas do Gartner Group apontam para o Android ultrapassando o iPhone em 2012).
  • O Office 2010 “online” é uma resposta ao Google Docs, assim como o Virtual World 3D é uma resposta ao Google Earth, e o MSN Spaces é uma resposta ao Orkut.
  • O .Net é uma resposta ao Java, como falei anteriormente.
  • O Bing foi uma resposta ao Google, mas… Você conhece alguém que trocou de um para outro?
  • Até o Project Natal, que é fantástico, não é uma mudança de paradigma: A Nintendo fez a mesma coisa com o Wii.
  • E o Courier? Alguém já ouviu falar? Sim, é o iPad-killer da Microsoft… Mas é puro vaporware, até agora nada. Enquanto sair, não vai passar de uma especulação do Gizmodo e um verbete na Wikipédia.

Por que então a Microsoft, que tem um centro de pesquisas super-bacana, patina tanto na frente dos concorrentes e somente os segue? Segundo o ex-vice-presidente: “Ao contrário de outras companhias, a Microsoft nunca teve um sistema real de inovação. Alguns de meus colegas comentam que ela na verdade desenvolveu um sistema para minar a inovação”.

Ele citou dois exemplos e eu acrescento mais alguns:

  1. Alguém conhece o ClearType? Ele é uma idéia interessante: Um sistema de suavização de fontes, que facilita a leitura em telas LCD. O objetivo era, a longo prazo, alavancar o mercado de ebooks, e estimular os tablets. Mas o sistema passou tempos sem ver a luz do dia simplesmente porque outras equipes de dentro da Microsoft se sentiram ameaçadas pelo sucesso dele. Parece piada, mas o que Brass disse que aconteceu foi:
  2. Engenheiros no grupo do Windows alegaram falsamente que [o ClearType] faria a tela entrar em curto quando certas cores fossem usadas. O chefe da divisão de produtos do Office disse que o recurso deixava tudo desfocado e dava dor de cabeça. O vice-presidente de produtos portáteis foi mais direto: ele apoiaria o ClearType e o usaria, mas só se eu transferisse o programa e os programadores para o controle dele. Como resultado, apesar de ter sido aclamado publicamente, ter tido promoção interna e garantido patentes, uma década se passou até que uma versão totalmente operacional do ClearType chegasse ao Windows.

  3. E o Tablet PC? Eu lembro desse, em 2001 a Microsoft falou em tablets, com interface na tela… Uma extensão dos Palms que dominavam o mercado na época. Mas, segundo Brass:

    o vice-presidente a cargo do Office decidiu que não gostava do conceito e por isso não daria andamento ao projeto de adaptar os programas da suíte para uso com touchscreens.

  4. (spoiler: Brass pediu 20 engenheiros para dar andamento ao projeto e só recebeu 6).

  5. Outra coisa é o timing dela que é horroroso: O primeiro iPod foi lançado em 2001. E o Zune? Final de 2006 (14/11/2006, para ser exato). Quase SEIS anos. E o Windows XP, que saiu em 2001 e só foi (mal) substituído pelo Vista em 2007? Nesse intervalo surgiram 5 versões do Ubuntu (isso porque ele foi lançado no final de 2004), 6 versões do Fedora (que surgiu em 2003), e 5 versões do Mac OS X (que foi lançado junto com o XP, em 2001).
  6. Acrescente aí os atrasos de produto: O Windows 95 saiu quase em 1996, e o Windows 98 foi adiado também. Há outros casos de adiamentos, mas o Vista foi o pior deles: Ele era para ter sido lançado em 2004, e não 2007.
  7. Vale lembrar que nem tudo é culpa de rinhas internas, porém a Microsoft se calca por demais no desenvolvimento de softwares com margens de lucro grandes, e não quer correr riscos com a criação de software e hardware inovadores. Isso é o que o ex-vice-presidente também fala.

E a Microsoft com tudo isso? Bem, depois da humilhação pública a que foi submetida em pleno NYT, a empresa se manifestou: Frank Shaw declarou em um post no The Official Microsoft Blog que “medimos nosso trabalho pelo impacto amplo dele”, acrescentando que “inovamos em escala, não em velocidade” (demorou, mas hoje o ClearType está em cerca de um bilhão de PCs ao redor do mundo). Mas… Nada do que o ex-vice-presidente falou foi negado. Ele simplesmente passou em branco, o que dá a margem de pensar que o que ele disse foi tudo verdade.

E a inovação continua estagnada: O produto que foi apresentado na CES desse ano foi o HP Slate, que é da… HP. Além disso, sai em… 2010. Quando? Não sabemos. O iPad, mesmo com todas as limitações, estará disponível em breve (e a Apple pode ter vários defeitos, mas cumpre a maioria dos seus prazos).

Quanto a ofuturo, acho que a Microsoft será em breve o que foi a IBM, que precisou reinventar-se para não quebrar. E há diferenças entre as empresas:

  • A Microsoft, até o fim da era “Bill Gates”, tinha uma direção extremamente personalista – Bill Gates encarava os ataques à M$ como algo pessoal, e não à empresa q ele criou. Pensamento monopolista demais. Ele não é a empresa, e pelo visto percebeu isso, com a Fundação Bill e Melinda Gates (que tem feito muita coisa bacana por aí).
  • IBM era um monopólio nos mainframes, mas também existiam a Digital, Burroughs (hoje Unisys), a Control Data… Entre tantos outras empresas. A M$ quer que exista SÓ ela. O sonho dela é ser a Apple, só que de todos os PCs.

E quanto à liderança… O Ballmer? Ah, o Monkeyboy já deveria ter se aposentado. Para o bem (?!) da Microsoft, poderiam passar a presidência para o Ray Ozzie, por exemplo, que tem uma cabeça mais aberta e não lança bravatas. Ele é um dos executivos que entendeu que o mercado é plural, e que deve conviver com isso.

por: Ricardo Pinheiro

em: Guanabara.info

O Curso

O Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas das Faculdades Integradas Simonsen - FIS, é um curso presencial, reconhecido pela Portaria 1.003 de 12.07.1993 (D.O.U. 13.07.1993), com carga horária mínima de 2.334 horas, que poderão ser cumpridas em no mínimo 03 anos (06 semestres letivos) e foi recentemente aditado pela Portaria nº 281, 29 de setembro de 2009, publicada no D.O.U nº 188, de 01 de outubro de 2009, Seção 1, página 19.
Os graduados nos Cursos Superiores de Tecnologia denominam-se tecnólogos, são profissionais de nível superior com formação para a produção, inovação científico-tecnológica e para a gestão de processos de produção de bens e serviços.

Faculdades Integradas Simonsen