javascript

Comparativo de IDEs online de HTML5

IDEs para HTML5

Uma das formas mais bacanas de trabalhar com criação em HTML5 hoje em dia (pelo menos de iniciar projetos menores e utilitários) é usando um serviço de editor online. Neles, você pode editar código, testar a vontade e até salvar na própria ferramenta (ganhando uma URL impronunciável, mas com o seu código salvo "nela"). Aqui apresento algumas ferramentas interessantes para isso:

  • CodePen - Editor que oferece edição do HTML, CSS e JavaScript, exibindo o resultado abaixo das áreas de edição. Oferece um plano pago, que permite upload de arquivos, modo colaborativo e modo professor.
  • JS Bin - Cinco áreas disponíveis: HTML, CSS, JavaScript, Console e Output. O mais completo nesse aspecto. Ainda não o utilizei de fato.
  • jsdo.it - Seria uma excelente ferramenta, não fosse um bug muito inconveniente. Nele, você se cadastra e cria projetos. Um projeto pode referenciar outro projeto, o que é bastante útil quando lidamos com bibliotecas e aplicativos de forma separada. Permite também fazer upload, o que dá condições de fazermos jogos em HTML5, mandando imagens e sons para lá. Ele também faz verificação do código escrito, com um depurador JavaScript rodando no cliente deles. O bug de que falei entra justamente aí. A opção Salvar aparentemente não salva, salva apenas para efeito de teste. Nos meus testes, perdi dois dias de trabalho por confiar nessa opção Salvar...
  • jsfiddle - O mais popular. Divide a tela em 4 áreas: HTML, CSS, JavaScript e Result. Poderiam oferecer um modo de atualização automática do "Result", mas é uma excelente ferramenta. O grande diferencial é a disponibilidade de várias versões diferentes para as mesmas bibliotecas.
  • Liveweave - Divide a área em 4 como o jsfiddle, mas com a vantagem de atualização em tempo real, também com opção de desativar tal recurso. Considero um dos melhores.
  • Reloado - Área de JavaScript e de HTML. O usuário escolhe se quer visualizar o resultado em tempo real, a cada mudança, ou se prefere ficar clicando no botão Render. Dos melhores, na minha opinião.

Bem, agora o principal: um comparativo entre eles (adoro essas tabelas-comparison), considerando as bibliotecas oferecidas para fácil inclusão, por padrão, em cada um:

 

CodePen

jsbin

jsdo

jsfiddle

liveweave

reloado

Angular JS

 

1.2.1

1.1.5

1.0.7

1.0.3

1.2.1

1.1.1

1.0.7

 

Arctic JS

 

 

20120123

 

 

 

Backbone

 

latest

1.0.0

1.0

latest

0.9.1

Bootstrap

 

latest

2.3.2

3.0.0

2.2.2

 

latest

latest

Bonsai

 

0.4.latest

 

0.4.1

 

 

Brick

 

 

 

edge

 

 

CanJS

 

2.0.3

 

 

 

 

Cannon JS

 

 

0.4.3

 

 

 

Chart JS

 

 

 

 

0.2

 

CoffeScript

 

Não-identificada

 

 

 

Não-identificada

Create JS

 

 

2013-02-12

Não-identificada

latest

 

D3

 

3.x

 

3.0.4

3.0

 

Dojo

latest

latest

1.8.4

1.7.4

1.7.3

1.9.0

1.8.4

1.7.4

1.6

1.5

nightly

latest

1.6.0

Dijit

 

latest

1.8.4

1.7.4

 

 

 

 

Ember

 

1.0.0

 

 

1.1.2

 

Enchant.js

 

 

0.70

 

 

 

Enyo JS

 

latest

2.2.0

2.2.0

2.1

2.0.1

nightly

 

latest

 

ES5 shim

 

2.0.8

 

 

 

1.2.4

Ext-core

 

3.1.0

 

 

 

3.1.0

Ext JS

latest

 

4.0.2

4.2.0

4.1.1

4.1.0

3.4.0

3.1.0

3.0.0

4.2.0

 

Ext JS all

 

 

4.0.7

 

 

 

Fabric JS

 

 

 

1.4.0

1.2.0

0.9

1.3.0

 

Font Awesome

 

4.0.3

 

 

 

 

Foundation

 

5.0.3

 

 

 

 

Handlebars.js

 

1.0.0

 

 

 

 

HTML5 shiv

 

Não-identificada

 

 

 

 

jPlayer

 

 

2.2.0

 

 

 

Jquery

latest

2.x WIP

2.0.3

1.x WIP

1.10.2

1.9.1

1.8.3

2.0.3

1.10.2

1.8.3

2.x (edge)

2.0.2

1.x (edge)

1.9.1

1.8.3

1.7.2

1.6.4

1.10.1

latest

latest

WIP

1.7.2

1.6.4

Jquery Easing

 

 

1.3

 

 

 

Jquery UI

latest

WIP

1.10.4

1.9.2

1.10.3

1.10.3

latest

1.8.13

Jquery-migrate

 

1.2.1

 

1.2.1

 

 

Jquery Mobile

 

WIP

1.4.0

1.3.2

1.2.1

1.1.2

 

1.3.1

latest

latest

1.0.1

1.1.0rc1

Jquery Tools

 

 

 

 

1.2.7

 

JSDeferred

 

 

0.3.4

 

 

 

JsdoitController

 

 

Não-Identificada

 

 

 

JSX Transformer

 

 

 

0.4.0

 

 

Jtypes

 

 

 

2.1.0

 

 

Kendo UI

 

Q3

Q2

 

 

 

 

Kinetic JS

 

 

 

4.3.1

4.0.5

4.7.3

 

Knockout JS

 

2.2.1

2.1.0

3.0.0

2.3.0

2.2.1

2.1.0

2.0.0

3.0.0

 

Less

 

1.3.3

 

 

 

1.1.3

Lodash

 

1.2.1

 

2.2.1

 

 

Lungo

 

Não-identificada

 

 

 

 

Marionette JS

 

latest

 

 

 

 

Minified

 

 

 

1.0 Beta 1

 

 

Modernizr

 

2.6.2

 

 

latest

2.5.3

Moo Tools

latest

latest

1.4.5

1.4.2

1.4.5

1.3.2

nightly

latest

1.3.2

1.2.4

Moo Tools More

 

 

1.4.0.1

1.4.0.1

 

 

OrbiterMicro

 

 

1.1.0.514

 

 

 

Paper JS

 

 

 

0.22

0.9.9

 

Polymer

 

0.1.1

 

 

 

 

Power Tools

 

 

 

1.2.0

 

 

Prefixfree

 

1.0.7

 

 

 

 

Processing JS

 

1.4.1

1.4.0

1.4.1

1.3.6

1.2.3

1.4.1

1.2.3

Prototype JS

latest

latest

1.7.1

1.6.1.0

1.7

1.7.1

1.6.1.0

latest

latest

1.7.0.0

1.6.1.0

Pure CSS

 

 

 

 

0.30

 

Qooxdoo

 

 

 

2.1

2.0.3

3.0.1

 

Qunit

 

latest

 

 

 

 

Raphael JS

 

2.1.0

1.5.2

2.1.0

1.5.2

1.4

2.1.0

2.0.0

React

 

0.8.0

 

0.4.0

0.3.2

 

 

RightJS

 

 

 

2.3.1

2.1.1

 

 

Sammy

 

0.7.4

 

 

 

0.6.3

Script.aculo.us

 

latest

1.8.3

 

1.9

latest

1.8.3

Scripty

 

 

 

2.0b1

 

 

Sencha Touch

 

Não-identificada

2.0.0-gpl

 

 

Não-identificada

Shipyard

 

 

 

0.2

nightly

 

 

Snap SVG

 

 

 

 

latest

 

Socket.IO

 

 

0.8.7

 

 

 

SVG JS

 

 

 

0.x

latest

 

SWFObject

 

 

2.2

 

 

 

Thorax

 

 

 

2.0.0rc6

2.0.0rc3

 

 

Three JS

 

r58

r60

r54

latest

 

Tmlib JS

 

 

0.1.5

 

 

 

Traceur

 

Não-identificada

 

 

 

 

TwitterLib

 

Não-identificada

 

 

 

Não-identificada

Underscore JS

 

Não-identificada

1.4.4

1.4.4

1.4.3

1.3.3

latest

1.3.1

Web App Install

 

 

 

0.1

 

 

Web Font Loader

 

 

 

 

1.4.10

 

X Toolkit

 

 

 

edge

 

 

YUI

latest

3.10.0

2.9.0

3.3.0

3.8.0

3.7.3

3.6.0

3.5.0

3.4.1

3.14.0

3.10.1

2.8.0r4

3.13.0

3.3.0

2.8.2

Zepto

latest

latest

1.0

 

1.0rc1

latest

0.7

404 Quest 0.1, o começo de um RPG eletrônico

Meu xará há alguns dias twitou sobre um exemplo de jogo usando o elemento Canvas, do HTML5. Terminei aproveitando a ideia para fazer uma página de erro diferente para o meu site. É a 404 Quest.

Ao tentar acessar uma página que não exsite aqui no meu site, você será apresentado a esse jogo, que funcionará bem em navegadores web modernos.

Nesse jogo, você tem que coletar livros digitais. Uma vez coletados, aparecerá a saída (que joga na página principal do site).

Claro, isso é um jogo bem primitivo e sem objetivo. A ideia é ir melhorando a coisa com o tempo livre aos poucos. Acrescentar sistema de combate, missão mais elaborada...

Bom, basta acessar uma página inexistente para jogar ou baixar o código, que estou fornecendo agora, no anexo.

Seu próprio Blogroll usando Delicious

Antes de mais nada, blogroll é uma coleção de links para outros blogs. Este termo é como é conhecido internacionalmente, apesar de eu colocar em meu blog com o título Blogs amigos, tentando parecer mais amigável ao leigo (bom trocadilho, né?).

Já faz um bom tempo que mantenho esse Blogroll em meu blog. Para fazer esse blogroll antigo, eu usava dois serviços: o delicious com sua exportação para RSS e o módulo Drupal agregador de conteúdo, que é capaz de criar um bloco para um certo RSS.

Eu criei uma tag "blog" no Delicious e comecei a jogar lá todos os blogs que achava interessantes (freqüentemente, os blogs cujo RSS eu também assino). É daí que vêm minha lista de blogs amigos.

Mas havia alguns inconvenientes nessa estratégia, dentre os quais posso citar dois como principais: a dificuldade de personalizar o blogroll apenas, sem interferir em outros blocos gerados pelo mesmo esquema; e, o principal, a ordem em que aparecem os blogs ser a partir dos mais novos.

É interessante mostrar a partir dos mais novos, mas quando se trata de um blogroll com muitos blogs na fila, começa a ficar bem injusto, pois os blogs mais antigos terminam nunca mais aparecendo.

Como sera o ideal? Uma forma de pegar todos os blogs que cadastrei, escolher alguns deles (10, por exemplo) ao acaso e mostrá-los. Assim todos teriam chances iguais de aparecer.

Passei hoje no Delicious e descobri que ele oferece uma forma de manipular essas informações para apresentarmos da forma que quisermos. Sim, um arquivinho JavaScript com todo o conteúdo facilmente acessível.

A partir do exemplo que o Delicious apresenta, fiz um blogroll do jeitinho que eu queria, e mais: com o ícone de cada site!

Quem quiser usar essa idéia, fique à vontade! Aqui está o código, e você só precisa mudar o endereço http://del.icio.us/feeds/json/bardo/blog?count=100 no código, trocando bardo por seu login e blog pela tag que você usa, e definir em qtShow para a quantidade de blogs que você quer mostrar no seu blogroll. Claro que, desde que saibam o que estão fazendo, estão livres para mudar bem mais que isso no código...

<div id="myblogroll"></div>
<script type="text/javascript" src="http://del.icio.us/feeds/json/bardo/blog?count=100"></script>
<script type="text/javascript">
qtShow =13
function showImage(img){
return (function(){
img.style.display='inline'
})
}
function randOrd(a,b){
return (Math.round(Math.random()) -0.5)
}
ul =document.createElement('ul')
ul.style.listStyle ="none"
allp =new Array()
for (i in Delicious.posts){
allp.push(Delicious.posts[i])
}
allp.sort(randOrd)
last =(allp.length >qtShow) ?qtShow :allp.length -1
for(i =0; i <=last; i++){
post =allp[i]
li =document.createElement('li')
a =document.createElement('a')
a.style.marginLeft ='20px'
img =document.createElement('img')
img.style.position ='absolute'
img.style.display ='none'
img.height =img.width =16
img.src =post.u.split('/').splice(0,3).join('/')+ '/favicon.ico'
img.onload =showImage(img)
a.setAttribute('href',post.u)
a.appendChild(document.createTextNode(post.d))
li.appendChild(img)
li.appendChild(a)
ul.appendChild(li)
}
document.getElementById('myblogroll').appendChild(ul)
</script>

E pronto! É só colocar em um bloco no template do seu site e você tem o seu próprio blogroll, de facílima manutenção (é só adicionar links pelo Delicious).

Notas Anexas

Primeiro, o especialista em JavaScript aqui simplesmente não sabia que esta linguagem tinha uma estrutura de dados similar a Array (simplificado) sem usar a classe Array. Alguém sabe mais a respeito? Sabe um jeito mais prático de converter para Array ou contar seus elementos? Se alguém souber, eu agradeço!

Outra: se você tem um blog e tem acesso aos arquivos do blog, por favor coloque um favicon.ico na raiz do PATH do seu blog! Com isso, seu blog aparecerá com ícone nos blogs que usarem este código e te adicionarem.

Subscribe to RSS - javascript

Warning: PHP Startup: Unable to load dynamic library '/opt/php56/lib/php/extensions/no-debug-non-zts-20131226/pdo.so' - /opt/php56/lib/php/extensions/no-debug-non-zts-20131226/pdo.so: cannot open shared object file: No such file or directory in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/opt/php56/lib/php/extensions/no-debug-non-zts-20131226/pdo_mysql.so' - /opt/php56/lib/php/extensions/no-debug-non-zts-20131226/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/opt/php56/lib/php/extensions/no-debug-non-zts-20131226/php_pdo_odbc.dll' - /opt/php56/lib/php/extensions/no-debug-non-zts-20131226/php_pdo_odbc.dll: cannot open shared object file: No such file or directory in Unknown on line 0