16/02/2012 - O estado de Nevada nos Estados Unidos regulamenta o uso de carros auto dirigidos

27/10/2011 - China desenvolve primeiro robô feito de grafeno.

18/08/2011 - Pesquisadores da IBM desenvolve chip que simula parcialmente cérebro humano.

04/11/2010 - Microsoft lança aparelho de baixo custo capaz de mapear movimentos em três dimensões.

21/04/2010 - Primeira célula sintética é obtida.

29/01/2009 - Exército americano é capaz de controlar remotamente besouro vivo de modo eletrônico.

19/09/2008 - RabbitHoles desenvolve processo holográfico que gera expectativa de 3D real(360) no futuro.

	
O que é JavaScript?

JavaScript fez sua primeira aparição no Netscape 2.0 cujo sucessor, hoje, é o Firefox, em 1995, com um nome LiveScript, a Netscape posteriormento para torna-lo mais comercial mudou seu nome para Javascript, pois com o lançamento da linguagem Java, Java era a palavra do momento. Mas o Javascript foi produzido baseado na própria linguagem Java e também baseado nas linguagem C, Perl, Python, Scheme e Self. Atualmente seu nome oficial é EcmaScript. Após a Netscape tornar a especificação do Javascript aberta e sob o controle da ECMA cuja sigla significa European Computer Manufacturers Association. Sua especificação pode ser encontrada sob o código 262 no site da ECMA. Para nosso propósito chamaremos o ECMAScript de Javascript pois é o nome mais utilizado na internet.

JavaScript é uma linguagem leve, a princípio sem tipagem, interpretada, com multiplos paradgmas(orientada a objetos, imperativa e funcional), e multi-plataforma. Foi incorporada em todos os grandes navegadores: Internet Explorer, Chrome, Firefox, Safari e Opera usados em desktop além dos alguns browsers usados em celulares, tais como, Iphone e Android.

O Javascript possibilita o uso dinâmico de páginas web, funcionando como qualquer outra linguagem de programação, inclusive o uso de placas gráficas de ultima geração para conteúdos em 3D. No client-side (navegador) temos algumas restrições de uso com relação a armazenamento de dados e acesso direto ao hardware, pois envolvem questões de segurança, afinal ninguém gostaria de entrar em uma página e ter seu computador desligado, ou seu disco rígido consumido inteiramente por terceiros. Mas essas restrições são contornadas usando tecnologias Server-side (servidor), tornando Javascript a linguagem mais poderosa do mercado, pois provê segurança, eficência e escalabilidade e redução de custos.

Segurança

A segurança é provida para os dois lados, o cliente e o servidor, para o cliente pois este pode analisar o código que está sendo executado em sua máquina se assim o desejar e para o servidor pois sem acesso direto ao hardware os dados de outros clientes estão seguro. Há muitos textos na internet dizendo que javascript é inseguro. Muito pelo contrário, a execução se códigos fechados fabricados por empresas terceirizadas, tem um potencial muito maior de destruição pois dificultam o acesso ao processo produtivo da informação.

Eficiência e escalabilidade

A eficiência e escalabilidade ocorre pois o código é executado nas máquinas dos usuários, ou seja, o processamento acontece de acordo com a demanda e de modo personalizado, podendo fazer uso do poder paralelo das placas gráficas ociosas durante a visualização de uma página web. Profissionais que valorizam demais certa tecnologia, acabam por divulgar que tal técnica demandada é impossivel de ser realizada sob tecnologia diferente a qual dominam, tornando o universo tecnológico um mar de mitos. Atualmente maioria das linguagens possibilitam realizar o que a imaginação permitir, mas apenas uma tem acesso ao equipamento dos clientes sem custos de implantação e essa linguagem é o Javascript.O navegador Internet Explorer incluído no Windows, o Safari incluído no iOS e o Firefox vem incluído ao Ubuntu, 30% dos usuários de internet tem a capacidade e efetivamente instalam o navegador Chrome do Google e todos esses navegadores possuem a capacidade de rodar Javascript sem nenhum adicional a ser instalado.

Redução de custos

A redução de custos se dá por dois fatores: estando o servidor separado do cliente, não precisamos instalar nada na máquina cliente assim evitando custos de manutenção e logistica; e por parte do servidor, a linguagem por ser interpretada pode ser escrita e modificada com o mínimo de recursos possiveis, um editor de texto tipo Notepad é o suficiente. São gastos bilhões de dólares em aquisição se softwares para edição de conteúdo e esse custo permanente pode ser reduzido a zero caso as empresas possuissem engenheiros capacitados a resolverem o problema da criação de ferramentas e treinamentos voltadas ao seu negócio, um diferencial importante pois as ferramentas em si não são úteis se não houver pessoas capacitadas a utilizá-las e personalizá-las de acordo com o negócio.

Ao longo deste curso iremos mostrar porque a tecnologia web para uso em computadores é a tecnologia final e que deve ser de sua escolha, assim como é do Google e Facebook.

Devido a esses fatores, é de vital importância ter a tecnologia da informação das empresas com foco em web. Mesmo porque web, não significa que o sistema necessite rodar apenas em um computador conectado a internet, e sim que o sistema rode em um navegador, conectado ou não a internet, pois a conectivade em sistemas web é opcional. Tentaremos ser os mais transparentes possíveis, pois acreditamos que para fornecer tecnologia:

- é preciso que o cliente saiba porquê e para que querem a tecnologia.
- é preciso acreditar que o cliente está investindo recursos monetários pois possui um outro tipo de negócio em que seu tempo aprendizado é mais eficiente.
- é preciso ter pessoas capacitadas para entregá-la.
- é preciso que haja uma comunicação efetiva e eficiente entre as partes.
- é preciso criar parceiros de negócio pois toda tecnologia produz mais oportunidades de negócio para os que realmente aprendem a utilizá-la.

#REFERENCIAS

http://en.wikipedia.org/wiki/JavaScript
http://www.ecma-international.org/publications/standards/Ecma-262.htm
Começando a programar:

Para programar em outra linguagem que não o Javascript, normalmente seria necessário no mínimo dois passos, instalar o compilador ou interpretador, compilar o código e executá-lo. Em Javascript você pode começar a aprender a partir desta página, mas seguindo nossa política de transparência iremos ensinar também a programar sem a utilização de nossos serviços, para isso basta abrir alguns dos editores de texto, instalados em sua máquina, por exemplo, Notepad(windows), Vi(linux), .

Para prosseguir no aprendizado de Javascript é necessário o prévio conhecimento do funcionamento básico de alguma versão do HTML.

Quando codificamos em Javascript em client-side(usado no navegador) a tag script deve ser incluída ou referenciada por um documento HTML dentro da tag head.

<html>
	<head>
		<script>
		</script>
	</head>
	<body>
	</body>
</html>
Com esse código temos uma página HTML em branco rodando. É importante que você verifique a ordem dos tags. Se você estiver com dificuldades de compreender o código acima, sugiro uma revisão sobre HTML.

A seguir apresentamos como fazer uma página exibir um caixa de mensagem para o usuário.

<html>
	<head>
		<script>
		alert("Bem vindo ao mundo Javascript.");
		</script>
	</head>
	<body>
	</body>
</html>
Para testar o código acima clique aqui. Após ter clicado você reparou que uma caixa de mensagem apareceu, exibindo a mensagem "Bem vindo ao mundo Javascript.", agora para fixar o conhecimento, tente criar a página por si, mesmo e executá-la. Para isso redigite o código acima no seu editor de texto favorito, salve o arquivo com a exstensão .html e abra o arquivo no seu navegador favorito. Sempre frisando que é importante repetir os passos para que sejam aprendidos, pois o computador é uma maquina e como toda maquina em seu uso mais simples, não aceita erros.

Imagine um carro, o carro é uma máquina, ou seja, não entende como nós as pessoas, o mundo a sua volta, então se você estiver dirigindo e avistar uma pessoa em seu caminho, o carro prosseguirá se você não realizar alguma ação que faça com que a máquina haja de modo diferente. No caso, a ação de desligar a chave do contato faria com que o carro parasse, mas não faria com que parasse no tempo adequado, ou seja, não seria uma boa opção pois os freios dos carros são hidráulicos e dependem de que a máquina esteja ligada para operar. No computador é a mesma coisa, podemos realizar diversas ações, ações que tem uma funcionalidade, mas cada ação que a máquina executa foi criada para alcançar um determinado objetivo especifico, então por mais que você queira que uma determinada ação sobre a máquina faça algo, a maquina agirá de acordo como foi criada. E por isso você está aprendendo Javascript, para entender como funciona o controle desta máquina através da web.

Se redigitar o código na caixa de texto abaixo e aperta o botão "Rodar", você verá a mesma coisa acontecer em uma janela separada. Nos próximos exemplos forneceremos uma caixa de testes para ser usada e agilizar o processo de aprendizagem.



O texto entre aspas "Bem vindo ao mundo Javascript", é uma string (do inglês : corda), e provém do conceito de listas ligadas em computação, um conceito um pouco mais dificil mas que veremos em aulas posteriores. Mas na prática, toda string é um pedaço de texto entre aspas, que armazenada em alguma memória do computador (memória ram neste caso), pode ser utilizada e/ou modificada. Neste exemplo apenas utilizamos a string para executar uma função, a função alert. Neste código o que está entre aspas pode ser modificado, que é a mensagem e o seu uso, a impressão da mensagem, se manterá inalterado. Experimente imprimir outras mensagems.

Quando precisamos adicionar um comentário ou deixar parte do código temporariamente desativado, usamos o recurso de comentários das linguagens de programação. Em Javascript, os comentários seguem o estilo de C e Java. São comentários de uma linha, tudo que contiver na linha seguido de duas barras // e também podemos usar comentários de muitas linhas iniciando o comentário com barra, asterisco /* e terminando o comentário com asterisco barra */. Veja o exemplo abaixo:
<html>
	<head>
		<script>
		/* 
		isto é um comentário de muitas
		linhas que não será exibido e
		também não irá atrapalhar o fluxo
		do programa.
		*/
		// alert("Isto é um comentário de uma linha.");
		alert("Exemplos de comentários.");
		</script>
	</head>
	<body>
	</body>
</html>

Variáveis e Escopo

Toda linguagem de programação, exceto linguagens de montagem, possuem TIPOS de dados. Estes TIPO podem armazenar valores ou referências, e são classificados em tipos primitivos ou não primitivos. JavaScript permite que você trabalhe com cinco TIPOS de dados primitivos: numeros, strings, binarios, nulos e indefinidos. Além dos tipos primitivos existem os TIPOS de dados complexos e/ou compostos, que seriam as listas, objetos, datas, expressões regulares, funções e objetos fornecidos pela implementação atual do navegador ou aplicativo.

JavaScript representa números usando o formato 64-bit de ponto flutuante definido pelo padrão IEEE 754.

Variáveis são como recipientes, podem ser imaginadas como caixas, pacotes, pallets, containers e ou cargueiros. Parece um exagero mas é possivel armazenar uma imensa quantidade de informações em uma variável, seja ela primitiva ou não primitiva.

O conceito de variável está intimamente ligado ao conceito de escopo, ou esfera de ação da variável. Neste capítulo vamos nos ater ao escopo privado, que é o imediato do contexto em que se programa.

Antes de utilizar uma variável em um programa em Javascript, é necessário declará-la e isso pode ser feito da seguinte forma:

<script>
	var variavel;
	var pacote;
	var caixa;
	var pallet;
	var container;
	var cargueiro;
</script>

Declaramos dentro da tag script do documento javascript cinco variáveis de escopo privado ( escopo privado também assume o nome de escopo local em javascript ). Este programa ainda faz basicamente nada. Apenas cria as variáveis locais que não são utilizadas em nenhum lugar.

Dito isto apresentamos abaixo, declarações seguidas de definições.

<script>
	var variavel;
	var pacote;
	var caixa;
	var pallet;
	var container;
	var cargueiro;
	var nome_qualquer;
	variavel = "A";
	pacote = "AB";
	caixa = "ABC";
	pallet = "ABCD";
	cargueiro = "ABCDEF";
	nome_qualquer = "ABCDEFG";
</script>

No exemplo acima declaramos as variáveis e em seguida armazenamos valores de strings em cada variável. Veja que depois da palavra-chave var e um espaço podemos criar um nome de nossa preferência seguido de ponto e virgula.

Mais um exemplo:

<script>
	var variavel = "A";
	var pacote;
	var caixa = "ABC", pallet = "ABCD";
	var container;
	var cargueiro, nome_qualquer;
	pacote = "AB";
	cargueiro = "ABCDEF";
	nome_qualquer = "ABCDEFG";
</script>

Neste exemplo acima apresentamos sinônimos para se ter um script que realiza exatamente as mesmas coisas que o exemplo anterior, a principal diferença está no fato que podemos armazenar o valor necessário na mesma linha que a declaração, por exemplo para as variáveis: variavel, caixa e pallet. Podemos declarar resumidamente duas variáveis privadas separadas por virgula sendo que apenas a primeira necessita que a palavra-chave var seja inserida, veja o caso das variáveis caixa, pallet, cargueiro e nome_qualquer. Podemos também apenas declarar muitas variáveis em uma mesma linha sem a necessidade de armazenar valores iniciais, como no caso das variáveis cargueiro e nome_qualquer.

Você pode notar que em cada exemplo separado, nunca repetimos o mesmo nome para variáveis. Isso se deve ao fato do nome precisar ser não ambíguo dentro de um escopo. Veremos mais tarde que podemos ter o mesmo nome em diferentes escopos, mas dentro de um escopo apenas uma variável estará ativa por vez.

Javascript possui TIPOS de dados, mas não possui TIPOS de variáveis. Pode parecer confuso para quem está aprendendo a programar, mas basicamente se trata de não precisar escrever um nome pré-definido especifíco ao declarar uma variável. Em javascript, todas as variáveis locais são declaradas com a palavra-chave var.

Para os nomes das variáveis existem muitas combinações possíveis e algumas impossíveis. As combinações impossíveis, ou possíveis em algumas implementações(mas não todas). Considere as combinações impossíveis como sendo impossíveis em todas as linguagens, são palavras-chave as combinações impossíveis. Uma combinação de caracteres possível é todo nome de variável que comece com letra ou os caracteres _ e $, seguido ou não de outras letras, numeros ou os caracteres _ e $. Por exemplo, é possivel criar variáveis de nomes: $123_123, _$_AA, $001, entre outros nomes estranhos, mas possíveis.

A tabela abaixo apresenta nomes de que são palavras-chave em javascript. Não se preocupe em decorá-las agora, apenas, esteja ciente de que existem palavras que não podem ser usadas como nomes de variáveis.

abstractelseinstanceofswitch
booleanenumintsynchronized
breakexportinterfacethis
byteextendslongthrow
casefalsenativethrows
catchfinalnewtransient
charfinallynulltru
classfloatpackagetry
constforprivatetypeof
continuefunctionprotectedvar
debuggergotopublicvoid
defaultifreturnvolatile
deleteimplementsshortwhile
doimportstaticwith
doubleinsuper


Podemos atribuir numeros às variáveis. Veja o exemplo a seguir:
<script>
	var variavel = 1;
	var pacote = 100000;
	var caixa = 1e10, pallet = -0.8;
	var container = -3.546e-4;
	var cargueiro = 0, nome_qualquer;
</script>

Quem já programou em outras linguagens percebeu que javascript tem a capacidade de armazenar qualquer tipo de numero sem a necessidade de TIPOS durante a declaração. Essa é uma imensa vantagem em termos de produtividade para programação.

Agora iremos entender um pouco do que se trata o escopo de uma variável. Para isso criaremos um escopo artificial, no exemplo a seguir:
<script>
	var a = 1;
	var b = 2;
	{
		var a = 2;
		var b = 3;
	}
	var c = 4;
</script>

A primeira variável a declarada assume o valor 1, até que as chaves que declaram um bloco, ou um escopo artificial, seja definido. E continua com o valor 1 após o término do escopo do bloco. Dentro do escopo do bloco a variável a, tem valor 2, e permanece com o valor 2 até que o bloco tenha terminado com o caracter de fechar chaves }.

Podemos criar blocos encapsulados, veja no exemplo:
<script>
	var a = 1;
	var b = 2;
	{
		var a = 2;
		var b = 3;
		{
			var b = 4;
			{
				var a = 4;
				var b = 5;
			}
			{
				var a = 5;
				var b = 6;
			}
		}
		
	}
	var c = 4;
	{
		var a = 6;
		var b = 7;
	}
</script>

Dentro de cada bloco as variáveis a e b possuem valores distintos pois o computador não consegue enxergar outros nome ambiguos. Um fato interessante é que o nome mais próximo ao escopo é utilizado, por exemplo, no bloco em que está definido b com valor 4, se utilizássemos o valor de a, obteríamos 2 que é a declaração de a precedente mais próxima do escopo onde b está definido com valor 4. Um bom padrão de tabulação do código facilita a vizualização de escopos, mas não é necessário que este padrão seja seguido. No exemplo a seguir, temos o mesmo código anterior com um padrão que economiza caracteres de tabulação e novas linhas.

<script>
	var a=1;var b=2;{var a=2;var b=3;{var b=4;{var a=4;var b=5;}
	{var a=5;var b=6;}}}var c=4;{var a=6;var b=7;}
</script>

Podemos ver que o código torna-se difícil de se ler, mas essencialmente realiza a mesma coisa que o código anterior. Existem outras estruturas de linguagem além dos blocos que criam escopos, veremos como tratá-los em outras lições, mas em termos de escopo privado funcionam de modo similar.

Veremos agora o escopo público. No escopo publico ou global, podemos criar diretamente uma variável sem ter que adicionar a palavra-chave var. Veja:
<script>
	a = 1;
	b = 2;
</script>

Mas, afinal, porque o escopo privado foi visto antes do escopo público? Veja o exemplo abaixo:
<script>
	a = 1;
	b = 2;
	{
		a = 2;
		a = 3;
	}
	alert(a);
</script>

O valor de a ser mostrado na mensagem será 2 e não 1, diferentemente do escopo privado. Pois o escopo publico lida com variáveis que podem interagir em qualquer parte do programa e este é o escopo público. Nos navegadores, as variáveis públicas sáo adicionadas ao objeto window, que trataremos em capítulos posteriores.

As confusões mais frequêntes de escopos de variáveis acontecem quando misturamos os dois conceitos, veja:
<script>
	a = 1;
	b = 2;
	{
		var a = 2;
		a = 3;
	}
	alert(a);
</script>

O valor a ser mostrado na mensagem será 2, pois a variável a é uma variável de escopo público, não sendo possível redeclará-la de escopo privado. Último exemplo:
<script>
	{
		var a = 10;
		{
			window.a = 20;
			{
				alert(a);
			}
			a = 30;
			alert(a);
		}
		alert(a);
	}
	alert(a);
</script>

Foi visto que o objeto window em navegadores armazena as variáveis publicas, no exemplo acima, utilizamos para definir uma variável a de escopo público com valor 20, sendo que no escopo a variável a de escopo privado, já possuia o valor 10. Podemos deduzir pelo exemplo anterior que: a primeira mensagem será exibido o valor 10 pois o escopo privado tem vantagem sobre o escopo público. Depois é impresso o valor 30 pois esta vantagem permanece. Na terceira mensagem é impresso o valor 30 ainda, mas veja que a distância para se verificar qual o escopo da variável a, aumenta, em códigos normais, caso não tenha isso armazenado em qual escopo está em alguma parte da sua memória, terá de verificar isso manualmente procurando o lugar onde foi declarada a variável. Na ultima mensagem é impresso o valor 20, que é o valor da variável a de escopo publico definida em escopos internos. Nota-se que o uso de variáveis de escopo público deve ser utilizado juntamente com boas práticas de programação para que não se torne difícil modificar o código posteriormente (a experiência lhe dirá o que são boas práticas, em geral, nos tutoriais que você encontra pela internet, apenas te dizem o que você deveria ou não fazer, mas não resolvem seu problema, boas práticas não precisam ser democráticas se funcionam com você ou com alguma pessoa que possa contribuir para a solução do problema).


Numeros

No capítulo anterior aprendemos o que são variáveis e o funcionamento de escopo das variáveis. Neste capítulo iremos aprender como lidar com numeros em Javascript. Tradicionalmente Javascript não é uma linguagem com o objetivo especifico de realizar computações numéricas mas uma linguagem para lidar com o controles de interface de usuário. O porque de aprender a manipular números em Javascript, está no próprio fato de ser uma linguagem para lidar com controles de interface de usuário. A medida que os sistemas se tornam complexos, desenhar controles de usuário para realizar qualquer tipo de tarefa se torna uma tarefa longa e mesmo que seja desejável utilizar computação numérica intensiva, é viável aprender Javascript para controlar via interface gráfica os parâmetros de um programa que use computação numérica de modo intensivo, principalmente nos dias de hoje em que a maior parte da pesquisa em estágio inicial tem que ser feita em máquinas potentes, mas comuns, já que o custo de horas de super computadores são e sempre serão proibitivos. Outro fator que nos faz querer aprender bastante sobre numeros em Javascript é o fato de navegadores novos possuirem acesso à placas de video, ou seja, computação em GPU array. Enfim, vamos ao que interessa.

Pode-se atribuir números a uma variável genérica em Javascript e operar sobre as variáveis, veja:
<script>
	var a = 10;
	var b = 100;
	var c = a + b;
	alert(c);
</script>

No código acima, definimos a variável a com valor 10, a variável b com valor 100, a variavel c como a soma de a e b e mostramos uma mensagem com o valor de c. Do mesmo modo que somamos, podemos subtrair, multiplicar e dividir, ou seja, realizar operações aritméticas comuns. Existe operações não muito conhecidas entre os não programadores que são as operações de deslocamento, módulo e operações lógicas.

Operações de módulo representado pelo simbolo %, representam o resto das divisões. Ou seja, se dividirmos 5 por 2 teríamos como resultado 2 e resto 1. Quando estamos interessados no resto das divisões, utilizamos o operador de módulo. Veja:
<script>
	var a = 100;
	var b = 13;
	var c = a % b;
	alert(c);
</script>

Façamos um exercicio mental para saber qual o valor será mostrado na mensagem. 100 % 13 = 100 - 13*x. Se x for 6 teríamos como resultado 100-78=22 que é um numero maior que 13, se x for 7 teríamos 100-91=9, que é um resultado menor que 13, logo se nossas contas estiverem certas o resultado será 9. Verifique clicando
aqui.

Outra operação não muito conhecida é a operação de deslocamento. Operações de deslocamento envolvem uma conta um pouco mais complexa. Normalmente os números que costumamos utilizar seguem uma base decimal, ou seja, 123 é o mesmo que 1*10*10 + 2*10 + 3*0, que em palavras 123 é um vezes dez elevado a segunda potência mais dois vezes dez elevado a primeira potência mais três vezes dez elevado a potência zero. Essa é a base decimal. O números no computador são armazenados com base binária e podem ser representados com os simbolos 0 e 1. Esse fato é feito de modo a facilitar o projeto de computadores, que inicialmente eram mecânicos e zeros e uns eram conceitos mecânicos como engrenagem travada ou destravada. Para nosso uso, temos de nos acostumar com o processo de conversão binário-decimal e o jeito mais facil de fazer isso inicialmente é decorando algumas potências de 2.

Abaixo uma tabela com potências de 2:
20 = 1
21 = 2
22 = 4
23 = 8
24 = 16
25 = 32
26 = 64
27 = 128

1990:

A Web é creditada à Tim Berners-Lee e Robert Cailliau que em implementaram a primeira comunicação bem sucedida HTTP e especificou a primeira versão do HTML, uma linguagem baseada em SGML, uma padronização, que por sua vez foi baseada em GML uma linguagem desenvolvida nos anos 60 por três pesquisadores da IBM: Charles Goldfarb, Edward Mosher and Raymond Lorie. Inicialmente tratava-se de texto puro com uma simples e contundente característica, parte do texto poderia funcionar como um botão para acessar rapidamente o conteúdo referido pelo texto e obter maiores explicações.

1991:

Linus Torvalds cria o kernel do Linux, sistema operacional que se popularizaria depois de 1994 com o lançamento da linguagem de programação PHP, usada em conjunto com o banco de dados MySQL, devido ao custo zero de aquisição.

1992:

Desenvolvido pela NCSA, o Mosaic foi o navegador web que iniciou o processo de popularização da Web e consequentemente da Internet, isso foi devido ao fato de ser a primeira implementação que apresentava imagens juntamente com o texto. Em 1994, a Netscape Communications lançou seu browser o Netscape que agregou valor ao conteúdo web ao acrescentar a linguagem de scripts Javascript desenvolvida por Brendan Eich baseada em C, Java, Python, Perl, Scheme e Self, trazendo ao conteúdo publica dinamicidade e interatividade. A Netscape fornecia o browser gratuíto e vendia servidores web. Nesse mesmo ano o Yahoo foi fundado. O formato JPEG é definido pelo Joint Photographic Experts Group.

1993:

O formato PDF é criado pela Adobe Systems, baseado em Postscript e compactação para uso na Web, atualmente o formato mais popular para documentos finalizados. Muito utilizado em livros, teses e contratos.

1994:

PHP foi desenvolvido por Rasmus Lerdorf. O formato MP3 de audio é criado pela Fraunhofer Society. MySQL é criado por Michael Widenius e David Axmark. Navegador Opera é rejeitado pela Telenor então Jon Stephenson von Tetzchner e Geir Ivarsøy fundam a Opera Software.O Geocities, um serviço de hospedagem de paginas web estáticas é fundado por David Bohnett e John Rezner. Em troca da gratuidade do serviço o usuário do Geocities permitia que fossem inseridas propagandas controladas pela Geocities.

1995:

A Sun criou um adicionou que podia ser instalado ao Netscape, o Java Applet, era o único sistema capaz de interagir graficamente com o usuário pelo navegador em que se podia armazenar dados em um servidor remoto. Mas naquela época os computadores eram lentos demais para que se pudesse executar um software baseado em máquina virtual. Por isso os applets não se tornaram o padrão de desenvolvimento de sistemas Web para navegadores. No entanto a linguagem Java obteve e ainda obtem grande sucesso em servidores Web. Netscape lançou o TLS, na época chamado de SSL, um protocolo de segurança baseado em chaves publicas que permite usuários se comunicarem com certo grau de segurança através da internet, popularmente conhecido como HTTPS. Em 1996 as pessoas foram surpreendidas com a idéia de uma universitária. Jennifer Kaye Ringley, tornou sua vida privada, publica, através de uma camera digital em seu site JenniCam que atualizava fotos de seu dormitório a cada 3 segundos. Nesse mesmo ano foi publicado no ITU o protocolo H.323 um dos primeiros protocolos de comunicação VOIP, época em que se desenvolvia o SIP, atualmente, um dos protocolos VOIP mais utilizados. Ebay, empresa de leilões web, fundada por Pierre_Omidyar começa a operar.Amazon empresa de comércio web começa a operar fundada por Jeff Bezos. RSS é criado por Ramanathan V. Guha na Apple.

1996:

Por meio de Jonathan Gay a FutureWave desenvolveu o sistema de animações SmartSketch para o sistema operacional PenPoint. Quando a FutureWave percebeu que o sistema operacional PenPoint não teria sucesso no mercado, portaram o SmartSketch para MacOS e Windows. Ano em que o Google fundado por Larry Page e Sergey Brin, inicia suas operações.ICQ é desenvolvido pela Mirabilis. No fim de 1996 a Macromedia adiquiriu a FutureWave e re-lançou o SmartSketch com o nome de Flash. O formato PNG para arquivos é desenvolvido por PNG Development Group. Redes NAT se tornam populares. Alexa é fundada por Brewster Kahle e Bruce Gilliat.

1997:

A plataforma base Gecko é construida para uso no Netscape. Deep Blue da IBM vence campeão mundial de xadrez Gary Kasparov.

1998:

O padrão VML para desenhos vetoriais na Web foi proposto ao W3C pelo grupo de empresas formado pela Autodesk, Hewlett-Packard, Macromedia, Microsoft, e Visio. O VML passou a fazer parte do Internet Explorer. Neste mesmo ano o W3C propôs o MathML. A Microsoft lança sua plataforma de desenvolvimento em servidores web, o ASP. A inclusão do Internet Explorer ao sistema operacional Windows 98 passaria a ser um problema grave para o dominio do Nestscape que detinha 90% do mercado de navegadores neste ano. DivX é inventado por Jerome Rota. Formato de arquivos de texto djvu é criado por Yann LeCun, Léon Bottou, Patrick Haffner e Paul G. Howard na AT&T Labs.

1999:

O W3C publicou o SVG uma padronização entre o PGML da Adobe e o VML proposto no ano anterior. Fato que possivelmente teria incentivado a Microsoft a não seguir mais os conselhos do W3C nas versões seguintes do Internet Explorer. Criação do JBoss de Marc Fleury pela Sun. A Microsoft percebeu o potencial do ICQ e lançou o Messenger. Napster é criado por Shawn Fanning, John Fanning e Sean Parke. O formato de audio VQF é desenvolvido pela Nippon Telegraph and Telephone Corporation. Blogger é criado Evan Williams e Meg Hourihan fundadores da Pyra Labs.

2000:

A Microsoft lança sua ofensiva com foco na internet através do .Net Framework e patenteia a tecnologia Ajax, tecnologia que originaria o termo Web 2.0, provendo a interação entre o navegador e o servidor web do mesmo modo que aplicativos isolados(stand-alone), ou seja, sem um processo de carregamento com interrupções na visão que o usuário tem da interface gráfica da aplicação. PayPal, empresa de serviços financeiros virtual, começa a operar. Crise de empresas de internet.

// serviços SAN se tornam populares

2001:

BitTorrent é criado por Bram Cohen. Wikipedia é criado por Jimmy Walles e Larry Sanger. Apple lança iPod.

2002:

O Firefox um descendente do Gecko, foi lançado com o nome Phoenix mas teve que deixar o nome pois este nome estava registrado em posse de outra empresa. Começou como um projeto experimental de Dave Hyatt, Joe Hewitt e Blake Ross. Neste ano Microsoft implementou o CSS uma sub linguagem destinada exclusivamente a definir a disposição dos componentes das páginas Web mas que já usada sem um nome definido na época em que se usava o SGML. O Internet Explorer chegou a ter 95% do mercado de navegadores em 2002. Após algumas batalhas judiciais e a entrada do Firefox no mercado, o Internet Explorer começou a perder sua popularidade. Rapidshare criado Christian Schmid começa a operar. Microsoft lança XBox Live Network.

2003:

Apple lança seu próprio navegador, o Safari. Android Inc. é fundada por Andy Rubin. Google compra Pyra Labs. Skype é fundada por Janus Friis e Niklas Zennström, mas foi desenvolvido por Ahti Heinla, Priit Kasesalu and Jaan Tallinn também criadores do Kazaa.

2004:

Orkut é criado por Orkut Büyükkökten e ganha rapidamente popularidade tanto por ter o selo do Google, como pelo fato de ser a primeira rede social. Uma grande curiosidade para todos que estavam de fora pois inicialmente apenas convidados de convidados podiam acessar o sistema. Quando o Orkut ganhou escala e deixou de ser uma rede restrita ao publico universitário norte-americano, muitas pessoas começaram a levantar questões sobre a privacidade de seus dados. Facebook é criado por Mark Zuckerberg. Google oferece GMail gratuitamente para convidados.

2005:

//Macromedia foi comprada pela Adobe. Youtube é criado por três ex-funcionarios do PayPal: Steve Chen, Chad Hurley, Jawed Karim. Megaupload fundada por Kim Schmitz começa a operar. Google compra Android Inc. e relança com sua marca. Writely é criado por Upstartle. Sony lança PlayStation Network.

2006:

Web móvel começa a se popularizar com o aumento na venda de celular e o processo de miniaturiação do hardware. Google compra Upstartle e integra o produto no Google Docs, lançando no mesmo ano o Google Finance. Amazon lança Amazon Web Service, o primeiro serviço de Cloud Computing.

2007:

Apple lança iPhone.

2008:

Google lança seu navegador Chrome. Crise hipotecária americana. Apple lança a App Store, utilizada exclusivamente através de seu produto, o iPhone. // Microsoft oferece U$44bi pelo yahoo

2010:

//Oracle compra a Sun.
Apple lança iPad.

2011:

// Yahoo é cotado a U$22bi
Watson da IBM vence o maior vencedor de jogos de Quiz de todos os tempos Brad Rutler. WebGL é especificado pelo W3C. Google compra Motorola. Microsoft compra Skype. HP fecha divisão webOS.

2012:

SOPA um projeto de lei norte-americano propõe regras para regulamentar e coibir a pirataria de conteudo na internet, o projeto falha após grandes sites da internet manifestarem sua oposição ao projeto.


Autor: Flavio S. H. Kodama
Data: 17 de fevereiro de 2012 @ 14:09
Licença: Creative Commons


#REFERÊNCIAS
http://en.wikipedia.org/wiki/IBM_Generalized_Markup_Language http://en.wikipedia.org/wiki/SGML http://en.wikipedia.org/wiki/Tim_Berners-Lee http://en.wikipedia.org/wiki/Robert_Cailliau http://en.wikipedia.org/wiki/HTML http://en.wikipedia.org/wiki/Mosaic_(web_browser) http://en.wikipedia.org/wiki/Linux_kernel http://en.wikipedia.org/wiki/Netscape http://en.wikipedia.org/wiki/Yahoo! http://en.wikipedia.org/wiki/JPEG http://en.wikipedia.org/wiki/JavaScript http://en.wikipedia.org/wiki/Brendan_Eich http://en.wikipedia.org/wiki/Portable_Document_Format http://en.wikipedia.org/wiki/PHP http://en.wikipedia.org/wiki/MySQL http://en.wikipedia.org/wiki/GeoCities http://en.wikipedia.org/wiki/Opera_(web_browser) http://en.wikipedia.org/wiki/Opera_Software http://en.wikipedia.org/wiki/MP3 http://en.wikipedia.org/wiki/Rasmus_Lerdorf http://en.wikipedia.org/wiki/Java_(programming_language) http://en.wikipedia.org/wiki/James_Gosling http://en.wikipedia.org/wiki/Java_applet http://en.wikipedia.org/wiki/Google http://en.wikipedia.org/wiki/RSS http://en.wikipedia.org/wiki/PenPoint_OS http://en.wikipedia.org/wiki/FutureWave_Software http://en.wikipedia.org/wiki/Jonathan_Gay http://en.wikipedia.org/wiki/EBay http://en.wikipedia.org/wiki/Amazon.com http://en.wikipedia.org/wiki/Pierre_Omidyar http://en.wikipedia.org/wiki/Google http://en.wikipedia.org/wiki/Macromedia http://en.wikipedia.org/wiki/Adobe_Flash http://en.wikipedia.org/wiki/Jennifer_Ringley http://en.wikipedia.org/wiki/Portable_Network_Graphics http://en.wikipedia.org/wiki/Network_address_translation http://en.wikipedia.org/wiki/H.323 http://en.wikipedia.org/wiki/Session_Initiation_Protocol http://en.wikipedia.org/wiki/W3C http://en.wikipedia.org/wiki/MathML http://en.wikipedia.org/wiki/Alexa_Internet http://en.wikipedia.org/wiki/Vector_Markup_Language http://en.wikipedia.org/wiki/Precision_Graphics_Markup_Language http://en.wikipedia.org/wiki/Scalable_Vector_Graphics http://en.wikipedia.org/wiki/DivX http://en.wikipedia.org/wiki/Jerome_Rota http://en.wikipedia.org/wiki/JBoss_application_server http://en.wikipedia.org/wiki/Napster http://en.wikipedia.org/wiki/Active_Server_Pages http://en.wikipedia.org/wiki/DjVu http://en.wikipedia.org/wiki/Internet_Explorer http://en.wikipedia.org/wiki/TwinVQ http://en.wikipedia.org/wiki/.NET_Framework http://en.wikipedia.org/wiki/PayPal http://en.wikipedia.org/wiki/Ajax_(programming) http://en.wikipedia.org/wiki/Storage_area_network http://en.wikipedia.org/wiki/BitTorrent_(software) http://en.wikipedia.org/wiki/Bram_Cohen http://en.wikipedia.org/wiki/Wikipedia http://en.wikipedia.org/wiki/Firefox http://en.wikipedia.org/wiki/Gecko_(layout_engine) http://en.wikipedia.org/wiki/Dave_Hyatt http://en.wikipedia.org/wiki/Joe_Hewitt_(programmer) http://en.wikipedia.org/wiki/Blake_Ross http://en.wikipedia.org/wiki/Cascading_Style_Sheets http://en.wikipedia.org/wiki/Safari_(web_browser) http://en.wikipedia.org/wiki/Pyra_Labs http://en.wikipedia.org/wiki/Google_Finance http://en.wikipedia.org/wiki/Facebook http://en.wikipedia.org/wiki/Mark_Zuckerberg http://en.wikipedia.org/wiki/Skype_Limited#History http://en.wikipedia.org/wiki/YouTube http://en.wikipedia.org/wiki/Megaupload http://en.wikipedia.org/wiki/Mobile_Web http://en.wikipedia.org/wiki/Gmail http://en.wikipedia.org/wiki/Google_Chrome http://en.wikipedia.org/wiki/RapidShare http://en.wikipedia.org/wiki/WebGL http://en.wikipedia.org/wiki/App_Store_(iOS) http://en.wikipedia.org/wiki/IPad http://en.wikipedia.org/wiki/IPhone http://en.wikipedia.org/wiki/Watson_(computer) http://en.wikipedia.org/wiki/IPod http://en.wikipedia.org/wiki/PlayStation_Network http://en.wikipedia.org/wiki/Xbox_Live http://en.wikipedia.org/wiki/Cloud_computing http://en.wikipedia.org/wiki/Stop_Online_Piracy_Act