Secrets of the JavaScript Ninja

John Resig está escrevendo um livro chamado Secrets of the JavaScript Ninja.  Você pode obtê-lo hoje por 50% do preço. Segundo o autor, esse será um livro mais completo e aprofundado que o seu anterior, Pro JavaScript Techniques. Fica a dica!

De: http://ejohn.org/blog/50-off-secrets-of-the-javascript-ninja/

Publicado em Geek life | Com a tag , , | Deixar um comentário

Vulnerabilidade do kernel do Linux já corrigida na Linode

A vulnerabilidade de segurança presente no kernel do Linux já há oito anos, etiquetada como CVE-2009-2692 já foi corrigida para os usuários do Linode. Basta atualizar o kernel e dar o reboot.

Linode é um dos VPS mais em conta hoje em dia: por 19 dólares c 95 centavos por mês você pega o plano básico: Linode 360, com 360 MB de RAM garantidos, 200 Giga de transferência e 16 Giga de espaço em disco. Não é barato como uma hospedagem na dreamhost, mas tem o conforto (e a responsabilidade) de você poder controlar tudo no sistema.

Para quem tiver interessado no Linode, meu referral link:

http://www.linode.com/?r=43a70f33c2a5d871f42eab59109c96c018edc2fc

Publicado em Geek life | Com a tag , , , , , , | Deixar um comentário

Um set de mandelbrot em SQL

Usando SQL e PostgreSQL 8.4

WITH RECURSIVE
x(i)
AS (
    VALUES(0)
UNION ALL
    SELECT i + 1 FROM x WHERE i < 101
),
Z(Ix, Iy, Cx, Cy, X, Y, I)
AS (
    SELECT Ix, Iy, X::float, Y::float, X::float, Y::float, 0
    FROM
        (SELECT -2.2 + 0.031 * i, i FROM x) AS xgen(x,ix)
    CROSS JOIN
        (SELECT -1.5 + 0.031 * i, i FROM x) AS ygen(y,iy)
    UNION ALL
    SELECT Ix, Iy, Cx, Cy, X * X - Y * Y + Cx AS X, Y * X * 2 + Cy, I + 1
    FROM Z
    WHERE X * X + Y * Y < 16.0
    AND I < 27
),
Zt (Ix, Iy, I) AS (
    SELECT Ix, Iy, MAX(I) AS I
    FROM Z
    GROUP BY Iy, Ix
    ORDER BY Iy, Ix
)
SELECT array_to_string(
    array_agg(
        SUBSTRING(
            ‘ .,,,—–++++%%%%@@@@#### ‘,
            GREATEST(I,1),
            1
        )
    ),
)
FROM Zt
GROUP BY Iy
ORDER BY Iy;
 

Visto em http://simonwillison.net/2009/Aug/13/mandelbrot/ . Veja o resultado em http://wiki.postgresql.org/wiki/Mandelbrot_set ou execute a query você mesmo!

Publicado em Geek life | Com a tag , | 1 comentário

Usando $PAGER no bzr e no mercurial

No git, quando a saída de um comando é muito grande para caber na tela de um terminal, ele é passado pelo comando definido em $PAGER (normalmente, o less).

Para fazer a mesma coisa com o bazaar, faça o seguinte:

mkdir -p ~/.bazaar/plugins && \
cd ~/.bazaar/plugins && \
bzr branch lp:bzr-pager pager

O mercurial já tem uma extensão pager built-in, ela apenas não vem habilitada. Para habilitá-la, edite o seu $HOME/.hgrc e adicione:

[extensions]
hgext.pager =

[pager]
pager = LESS='FSRX' less

A dica do bzr foi retirada de http://daniel.hahler.de/bzr-pager-plugin (Estou usando o bzr por conta do whissip)

 

Publicado em Geek life | Com a tag , , , | 1 comentário

Firefox 3.5 e _except_handler4_common no Windows XP

https://support.mozilla.com/tiki-view_forum_thread.php?comments_parentId=384699&forumId=1

Se você está se deparando com esse problema, a solução, simples, é apagar o arquivo DWMAPI.DLL da pasta C:\Windows\System32. Dica retirada de: https://support.mozilla.com/tiki-view_forum_thread.php?comments_parentId=384699&forumId=1

Publicado em Geek life | Com a tag , , , , | 5 comentários

PostgreSQL 8.4 Lançado

Anunciado agora a pouco por Josh Berkus na lista pgsql-announce. O lançamento, se não me engano, era pra coincidir com o FISL, mas bugs de última hora atrasaram-no por uns dias.

Segue uma tradução rápida:

O Grupo de Desenvolvimento Global do PostgreSQL lançou a versão 8.4, continuando o desenvolvimento rápido do banco de dados open source mais avançado do mundo.  Essa versão contém inúmeras melhorias que tornam a administração, consulta e programação de bancos de dados PostgreSQL mais fácil que nunca.  Nosso time de desenvolvimento gastou 16 meses adicionando cerca de duzentas melhorias em todos os aspectos das funcionalidades do banco de dados, ajudando cada usuário de PostgSQL de várias formas diferentes.

Muitas das mudanças no PostgreSQL são ferramentas de administração e monitoração novas e melhoradas e novos comandos.  Cada usuário tem suas características favotiras que irão tornar o seu trabalho cotidiano com o PostgreSQL ainda mais fácil e produtivo. Entre as melhorias mais populadres estão:

  • Restauração de Banco de Dados em paralelo
  • Aumento na velocidade de recuperação de backup em até 8 vezes
  • Permissões por coluna, de forma a garantir um controle bem granular do acesso aos dados
  • Suporte de Collation por banco de dados, tornando o PostgreSQL mais útil em ambientes multi-idioma
  • Atualizações in-place (sem necessidade de backup/restores), através do pg_migrator (beta), permitindo atualização do 8.3 para o 8.4 sem um tempo muito grande de downtime
  • Novas ferramentas para monitoração de consultras, dando aos administradores uma visão mais aguçada das atividades das consultas
  • Overhead do VACUUM grandemente reduzido, através do Visibility Map
  • Novas ferramentas de monitoramento for consultas executando, carga de consultas e deadlocks

A versão 8.4 também torna a análise de dados mais fácil através das cracterísticas avançadas do padrão SQL ANSI 2003 de windowing functions, common table expressions e consultas recursivas. Melhorias para procedimentos armazenados, como parâmetros padrão e parâmetros variáveis, tornam a programação do servidor de banco de dados mais simples e mais compacta. E é claro, também foram incluídas melhorias de performance nessa versão.

Baixe a versão 8.4 hoje e comece a usar e desfrutar do PostgreSQL ainda mais!

* Download PostgreSQL 8.4
http://www.postgresql.org/download/

* Release Notes
http://www.postgresql.org/docs/8.4/static/release-8-4.html

* List of 8.4 Features
http://www.postgresql.org/about/press/features84.html

* Press Release
http://www.postgresql.org/about/press/presskit84.html.br

Publicado em Bancos de Dados, PostgreSQL | Com a tag , | Deixar um comentário

Sourceforge usando turbogears?

A lot of new web frameworks don’t work that well scalability-wise. Many design decisions don’t work that well. Too small sql queries and so. Mostly because of something called the active record pattern. There’s a one-on-one mapping between objects and database tables. With the help of sqlalchemy, turbogears 2.0 uses a better mechanism: eager, lazy and dynamic object graphs. The data mapper pattern. Sourceforge is going to use/is already using turbogears for most of their pages!

Retirado de http://reinout.vanrees.org/weblog/2009/07/01/ep-turbogears.html, grifo meu.

Atualização em 17/07/2009: Mark Ramm publicou em seu blog alguns detalhes desta implementação em http://compoundthinking.com/blog/index.php/2009/07/16/turbogears-on-sourceforge/

Publicado em Geek life | Com a tag , , , | Deixar um comentário

Limite de arquivos no google appengine estendido para 3000

Conforme você pode ler no comentário 86 do bug 161 do google appengine, agora o limite é de 3000 arquivos.

O limite anterior (1000 arquivos), funcionava bem para quem usasse apenas o Django no appengine (que jé vem incluído). Para usuários de outros frameworks, a coisa complicava bastante. Uma instalação básica do Pylons batia esse limite facilmente.

Agora, o limite é de 3000 arquivos, 150 MB no código que você enviar, 10 MB no máximo para um arquivo e 1000 arquivos por diretório (sem contar os subdiretórios).

Publicado em Geek life, Google | Com a tag , , , , , , , | Deixar um comentário

Firefox Multiprocesso

http://blog.mozilla.com/cjones/2009/06/21/multi-process-firefox-coming-to-an-internets-near-you/

Chris Jones postou em seu blog um vídeo mostrando um protótipo inicial do firefox multiprocesso.

Na versão demonstrada, existem dois processos rodando: o firefox em si e o novo gecko-iframe, que é quem desenha as páginas na tela. Atualmente, o próprio executável do firefox faz todas as tarefas. Ele então dispara o temido kill -9 para o gecko-iframe, e o que acontece é que apenas a página some, a interface do firefox continua rodando, firme e forte. Um botão recover ajuda a recuperar a página desaparecida.

Segundo o post, os plugins já podem rodar em processos separados, mas a interface de usuário para isso ainda não funciona ;)

Parece promissor!

Publicado em Geek life, web 2.0 | Com a tag , , , , , | Deixar um comentário

Phusion Passenger 2.2.4

No dia 17 de junho a Phusion lançou a versão 2.2.3 do Passenger, que era uma versão focada na correção dos bugs que se tinha até ali. Mas nem tudo são flores, a “Bug Fix Edition” também tinha bugs: dois bugs importantes (sendo um deles um memory leak) que fizeram com que hoje fosse lançada a versão 2.2.4. Hora de atualizar!

Publicado em Geek life | Com a tag , , | Deixar um comentário