Notícia recorrente

<small>
photo credit: Lauri Väin</small>
V8 x Tracemonkey
Ok, depois de compilar o v8, eu pensei: e agora? Após ler sobre o tracemonkey, minha idéia caiu no seguinte: eu compilo o tracemonkey e faço testes com ambos.
Eu adaptei o shell script que roda o benchmark do tracemonkey para rodar o mesmo benchmark, só que usando o v8.
Sobre as duas VMS:
No geral, o tempo total dos testes foi menor para o tracemonkey, embora comparando os quadros, não teve uma máquina virtual que tenha vencido em todos os testes.
Os testes foram feitos usando a revisão 110 do v8 (disponível em http://v8.googlecode.com/svn/trunk) e a revisão db4260e7ee13 do tracemonkey (disponível em http://hg.mozilla.org/tracemonkey/), e foi usado o próprio benchmark do tracemonkey para testar as duas VMs.
Agora a pouco, eu refiz os testes com as últimas versões das máquinas virtuais, e os resultados se alteraram um pouco:
Diferente do teste do Brendan Eich, foi testado apenas VM e não o desempenho dela dentro do navegador, mas no geral, os resultados do meu teste aqui condizem com o dele.
Mais sobre o v8 e assuntos relacionados
Google Chrome - download e código fonte
Finalmente, as URLs para o Google Chrome começam a aparecer.
Você pode entrar em http://www.google.com/chrome/eula.html para fazer o download, somente para windows. Ou pode fazer o download do binário direto em http://www.google.com/chrome/eula.html (e tentar rodar no wine, sei lá).
O código fonte você encontra em http://dev.chromium.org/developers/how-tos/getting-started.
A engine de Javascript V8 você pode baixar no Google Code. O scons (um tipo de make em python) é necessário para a compilação. Eu tive problemas para compilá-la com o gcc 4.3. Fiz algumas correções, mas antes mesmo que eu tivesse tempo de postar o patch, Seo Sanghyeon postou o patch necessário na lista v8-dev. A licença, como era esperado, é a BSD.
Mais links:
2 Sep 2008 (updated 3 Sep 2008 at 00:06 UTC) »
Google Chrome
http://googleblog.blogspot.com/2008/09/fresh-take-on-browser.html
O google agora começa a tocar na peça fundamental para a web, que está bem diante dos seus olhos: o navegador. A divulgação, feita pelo blog oficial do google, aponta para um quadrinho (publicado no google books).
Usando componentes do Webkit e do Mozilla Firefox, juntando a uma interface própria e uma nova engine de JavaScript, V8. Por enquanto, disponível apenas para windows, mas o anúncio diz que em breve sairão versões para Linux e Mac.
O que mais falta agora?
A nota de lançamento pode ser vista em português no blog go google em português.
Syndicated 2008-09-02 03:16:55 (Updated 2008-09-02 13:48:03) from devlog
ECMA 4: vá com Deus (ou que o diabo te carregue!)
E a batata quente, quente, quente, queimou. Após o encontro do ECMA (Ecma's Technical
Committee 39) em Oslo, em julho, a especificação ES4 foi deixada (temporariamente) de lado. Brendan Eich fez o anúncio. O foco, por enquanto era o ES3.1 (Baseado no ECMA-262 Edição 3). Packages, namespaces e early binding, por enquanto, ficam de fora.
Podem até dizer que é conspiração da Microsoft (o Brendan Eich nega). O fato é que, ao menos pra mim, as coisas ficaram como sempre deveriam estar. Por enquanto.
Syndicated 2008-08-26 18:55:28 (Updated 2008-08-26 18:55:58) from devlog
Wordpress 2.6, TinyMCE
Usando o wordpress 2.6, que vem com o TinyMCE 3.1.1 (que a propósito, não é bem um 3.1.1), mesmo depois deu ter conseguido habilitar o plugin para tabelas do TinyMCE (ei, elas podem ser úteis e necessárias em alguns contextos), a tela ficava como no screenshot abaixo.
Após ler alguns posts, eu consegui 'resolver' (vulgo, usar um tipo leve de POG) para fazer funcionar. Segue os passos!
Verifique também se não existe um cache do javascript do tiny_mce. Ele fica em /wp-content/uploads/js_cache. Você pode precisar apagá-lo para que suas configurações do plugin sejam lidas. Adicionalmente, você pode desabilitar o cache em wp-includes/js/tinymce/tiny_mce_config.php .
Se tudo correu bem até aqui, o seu editor de tabelas no tinyMCE deverá estar funcionando como o meu.
Segundo um comentário no fórum do tinymce, a chamada (!tinymce.ScriptLoader.isDone(u)) na função requireLangPack nunca retornava verdadeiro. Como Javascript nos permite fazer alterar um método dinamicamente, podemos aplicar um pequeno hack no table.js, logo no início do arquivo, antes da chamana a requireLangPack:
Basicamente, estamos fazendo um HACK MALIGNO, dizendo que o script nunca está carregado, portanto, sempre o carregue. Se você estiver usando o locale pt_BR no wordpress, vai precisar criar um arquivo pt_dlg.js na pasta langs do plugin table.
Curioso para saber o que eu ando fazendo com wordpress? Dá uma olhada no site da China 2008!
Syndicated 2008-08-11 20:57:14 (Updated 2008-08-11 21:22:55) from devlog
PHP4 na hora da morte!
http://www.php.net/archive/2007.php
De acordo com a notícia no php.net, e como já foi anunciado em alguns blogs por aí, hoje é o dia da morte do PHP 4. Ainda bem que se foi (embora ainda continue muito vivo mum servidor perto de você, ou, infelizmente, de mim!)
Dr. Project
Apesar da recente popularização de sistemas de controles de versão distribuídos como o git ou o mercurial, o svn ainda é a ferramenta mais popular para controle de versões. E junto com ele, quase sempre está o trac, que adiciona ao repositório um wiki, tickets e outras ferramentas para gerenciar o desenvolvimento.
Porém, a maior questão dos usuários com o trac é ter de subir uma instalação do trac para cada repositório. Não é uma tarefa muito difícil, mas convenhamos, podia ser mais fácil.
Pensando nisso, a Universidade de Toronto fez um fork do trac, adicionando a capacidade de múltiplos projetos. Entre as facilidades oferecidas, podemos citar, por exemplo, que criar um projeto no DrProject já cria o respectivo repositório. <h2>Comparação</h2>
O DrProject era originalmente um fork do portal open source leve chamado Trac. Essa é a comparação dos dois hoje:
| DrProject | Trac | |
| Múltiplos projetos por portal | sim | não |
| Listas de e-mails integradas | sim | não |
| Controle de Acesso baseado em Roles | sim | não |
| Contas de Usuários externas | sim | por plugins de terceiros |
| Camada de banco de dados | Elixir/SQLAlchemy | SQL manual |
| Navegador de repositório Subversion | sim | sim |
| Support a Perforce, BZR, etc. | não | por plugins de terceiros |
| Busca Cross-Component | sim | sim |
| Administração baseada em Web | sim | parcial |
| Sintaxe do Wiki | Markdown | custom |
| Milestones | Sim | Sim |
| Tagging | yes | by third-party plugin |
| Remote Scripting API | yes | no |
| Client-Side Javascript | Dojo | handwritten Javascript |
| RSS Feeds | yes | yes |
| Custom Ticket Views | no | yes |
| Integração ao Eclipse | não | por plugins de terceiros |
Segundo Jeff Balogh, o trunk dele é estável, com o desenvolvimento feito nos branches.
O projeto foi originalmente desenvolvido para uso no ensino. Numa troca de e-mail rápida com os desenvolvedores, perguntei no que isso se fazia presente no projeto. David Wolever me disse que o sistema de permissões é um reflexo disso, já que num projeto open source o acesso ao código não precisa ser restrito. Greg Wilson me falou a respeito das listas de e-mail integradas, e das operações em lote, como criar vários projetos com nomes sequenciais - que são úteis dentro de um ambiente de ensino.
A instalação do projeto foi parecida com a do trac, com a exceção que o DrProject espera que os repositórios estejam dentro dele, já que ele os administra. Numa tentativa de atualização, o meu banco de dados (sqlite) teve algum problema, mas logo depois o problema desapareceu. Sinais de que o projeto ainda tem muito o que andar, mas é uma boa pedida pra adicionar na lista de coisas a testar.
2+2 = 5
Se tem uma coisa que me irrita, é quando as pessoas dão nomes as coisas de uma forma não condizente.
Por exemplo, trabalhando com o Plone e categorização de objetos. Você já imagina que para procurar objetos por categorias você irá esbarrar em categories, category, até um possível tag. Mas dentro do Plone, você busca por Subject.
Mas em um outro caso, é o Plone que me salva. Se você vai adicionar uma informação geográfica a um objeto, você logo pensa em location. Ao menos é o que a tela de edição do Plone mostra. E é o que o Dublin Core chama de coverage.
Vocês podem achar que eu estou sendo excessivamente chato com isso, mas lembre-se que você sempre terá de gastar alguns segundos para associar a palavra ao seu significado específico dentro daquele contexto onde ela tem um significado alienígena
Syndicated 2008-07-17 21:12:11 (Updated 2008-07-17 21:13:15) from devlog
Escreva para quem vai dar manutenção!
Do C2 Wiki, através do Coding Horror: "Sempre codifique como se a pessoa que vai dar manutenção no seu código fosse um psicopata violento que sabe onde você mora."
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
Keep up with the latest Advogato features by reading the Advogato status blog.
If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!