Textos categorizados 'javascript'

[Programação]: Parse em strings JSON com Javascript

Estava fazendo um upload de arquivos via flash, utilizando o SWFUpload, intercambiando com o jQuery, até ai tudo bem, o problema vinha com o retorno do upload. ;S

Quando terminava o upload, a aplicação retorna um código JSON, só que o jQuery infelizmente não tem nenhuma utilidade de conveter uma String representada para JSON. Só que ai veio uma idéia: vou utilizar um antigo e quase esquecido amigo do Javascript, o eval(). Então simplsmente fiz assim:

Código retornado pelo PHP (string representada):
{"filename":"file.ext","size":"2516582","location":"\/path\/to\/file\/file.ext"}

Solução em Javascript:
var response = eval( '(' + jsonString + ')' );

Só tomem cuidado com o tamanho da string em JSON que irão retornar, o eval() é bom, mas tem que saber utilizar ele. Esta função é uma das mais básicas, porém essenciais numa linguagem de programação. ;D

Apreciem com moderação. ;)

[Programação]: As melhores invenções das Ciências da Computação

coding horrorJeff Atwood do Codding Horror resolveu fazer um levantamento do que para ele são as grandes invenções das ciências da computação, fazendo recomendações aos bons programadores que sempre procurem reusar e refinar seus códigos e polir como diamentes, para mostrar o potencial dos mesmos.

Veja aqui o que ele considerou:

  1. Perl (1987)
  2. Python (1991)
  3. Erlang (1991)
  4. Ruby (1993)
  5. Java (1995)
  6. JavaScript (1995)
  7. PHP (1995)

Lógico que tem o C, Fortran e até mesmo a LISP, que em minha opinião foi mesmo uma grande revolução na programação matemática com dados elementares. :)

Notem que Ruby existia muito antes do PHP, mas por que só agora começa a se falar muito dele? PHP por ser de fácil aprendizado e baixo custo ganhou mais espaço no mundo da programação? Eu considero que sim. Graças ao RoR o Ruby virou um hype no ano passado e esse ano notei que foi o Django (sério, notei mesmo)

Engraçado ver que antes existia uma “elite” de programadores que se orgulhavam de saber programar em python/perl, agora por advento da tecnologia começou a ser mais difundidos (com bons frameworks lógico) e a tendência é ser mais difundido pelo mundo. O que se espera é não ocorrer uma banalização, como ocorreu com o PHP (qualquer sobrinho seu de 14 anos faz POGS)

Mais informações: The Greatest Invention in Computer Science - Coding Horror

Aproveitando: Javascript - The World’s Most Misunderstood Programming Language :P

Programação: CSS Child Selector Performance

Utilizando jQuery, sempre quando quero pegar algumas classes ou ids, eu sempre dou quase o caminho DOM completo do que quero.

$('div#destaque div#categoria ul li.first')

Para quê? Simples, pelo motivo de ficar bem organizado, de eu prevenir que caso tenha outro elemento utilizando a mesma classe não dê problemas. :)

Lendo hoje no Ajaxian, me deparei com isto: CSS Child Selector Performance

No artigo, Jim Barraud chegou a conclusão que selecionar os nós tem maior performance, tanto que fez uma sequência de testes e chegou na seguinte tabela:

Performance CSS

Claro que são inconclusivos realmente os testes, mas já é uma boa base para começar a desenvolver uma boa programação, informando sempre o máximo do caminho possível. ;)

Artigo: Unobtrusive JavaScript com o jQuery

Vendo meus Feeds no Bloglines, me deparei com um artigo muito bom do Ajaxian: Unobtrusive JavaScript with jQuery.

Simon Willison falou na XTech de 2008 sobre o uso não-obstrusivo de Javascript, mostrando o jQuery como instrumento demonstrativo e porque ele é uma boa escolha. Ele disponibilizou uma apresentação online de Slides para os mais interessados.

Javascript não-obstrusivo é um assunto muito falado nos dias de hoje, devido a vários fatores como interoperabilidade e manutenção facilitada.

Achei legal uma função que ele utilizou para verificar no PHP por requisições em Ajax, vou implementa-la em meus projetos. :P

NetBeans agora com suporte Javascript

O pessoal da Netbeans decidiu sair um pouco do desenvolvimento para suportar Ruby (pretendo aprender) para um suporte muito mais sólido para JavaScript.

Reza a lenda que há uma tonelada de implementações, pode até fazer coisas como compatibilidade de navegadores. :)

Desenvolvimento javascript no netbeans
Exemplo de desenvolvimento de função para manipular css.

Bom, particularmente nunca gostei do NetBeans para desenvolvimento java, ele sempre bloqueava a edição de código de seus JFrames, o que era um saco. =x

Parece que isto será o futuro de grandes IDEs, oferecer o máximo de compatibilidade para qualquer linguagem de programação (caso do VisualStudio)

Para mais detalhes: NetBeans + JavaScript = True! - Tor Norbye’s Weblog

Via Ajaxian

PHP - Limpando String de formulários via $_POST

Quando eu submeto alguns formulários, passando por Ajax, eu gosto de sempre limpar as strings vindas, afim de evitar ataques de injection neles, por isso fiz essas duas pequenas funções abaixo, para facilicar isso, já que eu manipulo os dados direto via $_POST.

 /**
* Função que descodifica dados no formato encodado de url de uma array.
* Bom para uso de dados que vem via javascript.
* @author Julio Luiz
* @license   http://creativecommons.org/licenses/by-sa/3.0
* @param Array $arr
* @return Array
*/
public static function rawurldecode_array($arr) {
foreach($arr as $key => $val) {
if (!is_array($val))
$arr[$key] = rawurldecode($val);
else
$arr[$key] = self::rawurldecode_array($val);
}
return $arr;
}
/**
* Função que aplica alguns filtros de limpeza, para evitar qualquer injection na strings.
* Bom para uso de dados que vem via javascript.
* @author Julio Luiz
* @license   http://creativecommons.org/licenses/by-sa/3.0
* @param Array $data
* @param Boolean $rawurldecode Se precisa descodificar os dados de url
* @return Array
*/
public static function limpaArrayRequest($data, $rawurldecode = false) {
foreach($data as $key => $val) {
if (!is_array($val))
$data[$key] = nl2br(strip_tags($val));
else
$data[$key] = self::limpaArrayRequest($val, $rawurldecode);
}
return ($rawurldecode) ? self::rawurldecode_array($data): $data;
}

Uso

$data = limpaArrayRequest($_POST, true); //Caso queira converter as strings codificadas no formato url

Qualquer dúvida, utilizem o fórum WMOnline ;)

ps: maldito wp, tiro a Identação, desculpe :~