ImageOptim otimize images

ImageOptim optimizes images — so they take up less disk space and load faster — by finding best compression parameters and by removing unnecessary comments and color profiles. It handles PNG, JPEG and GIF animations.

ImageOptim provides GUI for various optimisation tools: AdvPNG from AdvanceCOMP, OptiPNG, Pngcrush, JpegOptim, jpegtran from libjpeg, Gifsicle and optionally PNGOUT.

It's excellent for publishing images on the web (easily shrinks images “Saved for Web” in Photoshop) and also useful for making Mac and iPhone applications smaller.

Download

The Surprising Path Of Artificial Intelligence

A.I. touches our lives in the form of chess computers that are better than most humans, computers beating the best humans at Jeopardy, intelligent ad targeting, Microsoft Kinect recognizing human motion and even amazingly, Google’s self-driving car that drove itself from San Francisco to Los Angeles. Intelligent systems can even do transactions involving judgment like investing on Wall Street (a former MIT mathematician is now a hero on Wall Street with one of the best performing investment funds for many years in this judgment-based domain) and of course Siri’s conversational interface that does what you ask (mostly—think of Gen 1.0 as a high-IQ three-year old getting better with each passing year). Computer Jeopardy champions, self-driving cars and Siri-like conversational interfaces would have seemed very hard a few years ago.

Read more.

Sizzle: CSS 3 Selectors do Javascript

No Javascript dos navegadores modernos existem metodos seletores de elementos que aceitam CSS 3:

Retorna um item: document.querySelector('li.new');
Retorna um array: document.querySelectorAll('li.new');

Mas navegadores como o IE6, IE7, Firefox 2 e outros não tão modernos implementam pouco CSS3 e não implementam os metodos querySelector e querySelectorAll.

Para disponibilizar aos desenvolvedores esse recurso em qualquer navegador você pode utilizar a Sizzle, que implementa esses metodos em JavaScript puro.

Sizzle - A pure-JavaScript CSS selector engine


  • Pesa 4KB minified+gzipped
  • Competitiva nos testes
  • É utilizada por frameworks (jQuery, Dojo e outros)

Como utilizar Encrypted Google no Chrome

Em alguns motores de busca, quando você faz uma busca e clica em um link, os termos da sua pesquisa são enviados para o site que você clicou (HTTP referrer).

Por exemplo, quando você procura algo privado, você está compartilhando sua pesquisa não só com o motor de busca, mas também com todos sites que você clicou.

Em alguns motores de busca, você pode usar uma versão encriptada (HTTPS), que não costuma enviar os termos da sua pesquisa para os sites. No entanto, se em seguida você clicar em um site que também usa HTTPS, a pesquisa será enviada. A versão criptografada também protege sua busca de ser interceptada.

Para utilizar a versão criptografada do Google (HTTPS Google) como padrão no Chrome siga os passos abaixo:

Abra a janela de preferencias:

Selecione Manage Search Engines (Gerenciar) nas configurações de buscador padrão:

Adicione as informações
Name: Google (Encrypted)
Keyword: google
URL: https://encrypted.google.com/search?q=%s

E clique no label Mark Default (selecionar como padrão):

Pronto, agora suas próximas buscas serão protegidas:

Novo blog

Há tempos meu blog merecia um tratamento visual, mas fiz um pouco mais do que a interface.

Alterei o nome e dominio e agora utilizo um sistema de publicação em Python que me permite hospedado-lo na infra-estrutura do Google App Engine.

Migrei todos os posts, comentarios e imagens do antigo WordPress, espero que todos aproveitem o conteúdo :)

PaintbrushJS - manipulação de imagens em JavaScript

Utilizando a tag canvas é possivel manipular pixel por pixel da imagem, essa bilbioteca executa funções comuns em manipulação de imagem.

PaintbrushJS

Veja também:
Pixastic - Processamento de imagens em JavaScript

Senhas são como roupa intima - password anti-pattern

Permitir ao usuário importar uma lista de amigos de outro serviço é útil. Porém os meios precisam justificar o fim. Dar o poder para o usuário importar dados através de uma camada de autentificação como oAuth é o caminho correto para exportar dados. Por outro lado, pedir ao usuário seus e-mails e senhas de outro serviço como GMail ou Yahoo Mail é completamente inaceitável. Aqui está por que:

Isso ensina as pessoas como cair no golpe (phishing).

Enquanto não podemos proteger as pessoas delas mesmas, nós desenvolvedores temos o dever de não engana-las a pensar que jogar senhas como confete é um comportamento aceitável.

Para nós desenvolvedores essa é uma questão moral. O projeto que você está trabalhando pode não ter nenhuma intenção ruim e o próximo site pode falar que é seguro, mas ao longo do tempo estamos criando um clima propício ao cultivo de fraudes.

Será que não seguimos cegamente às ordens de clientes que procuram "agregar valor" em seus aplicativos, mesmo quando sabemos que o efeito a longo prazo é corrosivo?

Eu não acho que deveriamos. Nós podemos fazer uma escolha em ...

Closure Library, MooTools, YUI 3, Dojo Toolkit

Closure Library - Google Labs, Apache License 2.0
MooTools - Valerio Proietti, MIT license
YUI 3 - Yahoo!, BSD-licensed
Dojo Toolkit - Dojo Foundation, Dojo license

jQuery - The jQuery Project, MIT and GPL licenses

Jisp - Implementação de Lisp em JavaScript

Lisp foi na época de sua criação um grande avanço nas linguagens de computador. Diversos recursos disponíveis nas linguagens recentes foram criados na Lisp.

Uma característica que acho interessante no Lisp é a forma de representação de um programa ser do mesmo tipo de estrutura que é utilizado para os dados. Hoje em dia, toda linguagem possui uma certa analogia na forma de sua escrita (representação do programa) e a estrutura de dados.

Jisp é uma implementação de Lisp em JavaScript. Para quem curte JS, é absurdamente interessante.

Eu realizei que JavaScript é tão parecido com Lisp que poderia ser fácil escrever um Lisp baseado em JavaScript que utiliza o parser de JavaScript do navegador em vez de escrever meu próprio parser. Brian Morearty, criador do Jisp.

http://www.ducklet.com/jisp/

PubNub - JavaScript Push API para apps real-time

PubNub é um serviço que facilita a criação de aplicativos que atualizam constantemente os dados. Além de ofecer infra-estrutura "na cloud" eles oferecem um "client" JavaScript que utiliza de todas capacidades possíveis para entregar os dados rapidamente e com menos overhead.

Se o usuário suportar, até Web Sockets será utilizado.

http://www.pubnub.com/

About Me