hug me, I'm awesome!

  • -(id) redefined {
      id me = [[self alloc] init];

      [me setStatus:LITTLE_TIRED];
      [me autorelease];

      return me;
    }


    O código acima descrito nada mais é que uma versão de Pluto em Objective-C.
    Theme by Peter Vidani for Tumblr
  • (via ilovecharts)

I miss the orientation lock on my iPhone 3G.

    (via ilovecharts)

    I miss the orientation lock on my iPhone 3G.

    207
    Reblogged from I Love Charts
  • Java é conhecido pela incapacidade de fazer contas direito, graças a falta de um tipo Currency como em C#, e agora acabei de descobrir que nem aritmética inteira ele consegue fazer corretamente.

    Java é conhecido pela incapacidade de fazer contas direito, graças a falta de um tipo Currency como em C#, e agora acabei de descobrir que nem aritmética inteira ele consegue fazer corretamente.

    • — Poderia estar tirando a mochila?
    • — Não. — respondo, sem olhar para quem me fez a pergunta.
  • 2
    Reblogged from “o essencial é invisível aos olhos.”
  • CGFloat DegreesToRadians(CGFloat degrees) {return degrees * M_PI / 180;}; CGFloat RadiansToDegrees(CGFloat radians) {return radians * 180 / M_PI;};

  • HTTP 300

    Uma das coisas que aguardo ansiosamente é a “descoberta” do HTTP 300 pelos pseudo-webdesigers, SEOs e coisas do tipo. Para quem não leu especificação de HTTP e simplesmente aprende o que o Google diz que é certo, o código 300 indica que uma URI tem vários documentos que podem ser entregues utilizando aquele endereço. Exemplos de utilização :

    • Download de arquivos em múltiplos formatos : Imagine que você clique para baixar um arquivo qualquer. Caso você tenha Excel instalado, ele irá enviar um arquivo com extensão .xls, ou um CSV em caso contrário. Ou, preferencialmente mandar um arquivo compactado na seguinte ordem : 7z, rar, tar.bz2, zip, sem que você tenha que passar por perguntas como : “qual formato deseja?”;

    • HTML/CSS otimizados pra plataforma : Ao invés das soluções porcas de detecção de navegador e recursos do mesmo, seria muito mais simples o navegador ter opção de escolher qual documento renderizar. Assim, a migração de um mundo HTML pra HTML 5 seria mais tranquila, e sem maiores dores de cabeça pro usuário (nada de http://site e http://site/html5 só pra você dizer que sabe algo de HTML5);

    • Imagens: Talvez uma das aplicações mais interessantes. Não vivemos mais num mundo onde monitores tem 72dpi, principalmente com celulares com 300dpi (iPhone 4, na época de criação desse texto). Seria excelente ter imagens de maior resolução caso estivéssemos numa tela de maior densidade de pixels, ou uma imagem de qualidade menor caso a conexão de internet seja de baixa velocidade / alta latência. Além disso, o sistema poderia retornar gráficos SVG caso o UA suporte, ao invés de PNGs, GIFs ou JPEGs;

    • Vídeos: Com a tag video e a briga besta entre h.264, WebM e Adobe Flash, ao invés de um script para detectar qual codec o UA suporta, a negociação seria automática, sem necessidade de alterações nas páginas.

    Como pode notar, uma implementação correta de HTTP 300 resolveria alguns problemas de hoje sem necessidade de hacks em HTML/CSS/Javascript, simplificando a criação de páginas.

  • Where was life when it had a meaning
    — Theme song from “Ghost in the Shell: Standalone Complex”
  • A maior diferença entre o Twitter e o Tumblr não é o limite de caracteres, e sim o conteúdo de cada mensagem. Enquanto o Twitter foca-se na desgraça alheia, propaganda e lamentações, o Tumblr é uma plataforma recheada de esperança, humor e bem-estar.

    1
  • atualizações automáticas, meh

    Hoje em dia, qualquer aplicativo vem com um recurso que permite que o próprio software verifique se há uma versão mais recente dele mesmo disponível na web. É uma ideia interessante, infelizmente muito mal implementada pela maior parte dos sistemas operacionais e aplicativos existentes. Começarei pelos sistemas operacionais, depois aplicativos no geral.

    GNU/Linux

    Os sistemas baseados em GNU/Linux tem uma certa vantagem nesse ponto. Os repositórios (apt, rpm, port) normalmente contém versões estáveis dos aplicativos e o OS só notifica o usuário de atualizações, deixando a atualização a cargo do administrador do sistema. Os aplicativos de terceiros normalmente estão nesses mesmos repositórios, o que facilita manter sempre os softwares do PC com as mais recentes atualizações.

    Windows 7(1)

    As atualizações no Windows 7 são extremamente intrusivas nas configurações padrão. Atualizações são instaladas sem avisos e computadores são reiniciados automaticamente, o que frequentemente acarreta perda de dados, seja em downloads não completados, documentos não salvos perdidos, entre outras coisas. Há maneiras de impedir a reinicialização automática do computador, e infelizmente, o Windows Update não pode ser utilizado por softwares de terceiros, como o GNU/Linux faz.

    Mac OS X 10.6

    Semelhante ao Windows Update, o Software Update do OS X também não é uma solução para softwares de terceiros, só servindo para o fabricante do sistema operacional, mas diferentemente da solução da Microsoft, não existem reinicializações sem intervenção humana.

    Sparkle.framework (OS X)

    No OS X, existe um framework para reduzir o trabalho do desenvolvedor em implementar as atualizações automáticas no seu aplicativo. Infelizmente essas atualizações são extremamente irritantes, já que normalmente são feitas quando o software é inicializado, consumindo CPU e acessando internet quando não é necessário, como por exemplo, num café. Caso o aplicativo seja aberto várias vezes ao dia, várias atualizações são feitas, e o desenvolvedor pode armazenar essas informações para saber o quanto seu aplicativo é utilizado por um usuário específico. Tirando a paranóia de privacidade, caso o usuário mantenha o aplicativo aberto por dias ou raramente o utilize, pode ser que nunca fique sabendo de atualizações.

    Google autoupdate (OS X)

    Instala-se ao abrir qualquer aplicativo criado pela Google (Maps, App Engine, Chrome) e é executado automaticamente na inicialização do computador. Verifica atualizações sem intervenção humana, sugere novos aplicativos e só serve para softwares criados pela empresa. Se ao menos informasse ao usuário suas intenções e houvesse forma de remover sem ser mexendo em System Preferences, seria uma bom aplicativo. Como não é , só pode ser considerado como spyware, já que também envia informações de frequencia de uso dos aplicativos sem solicitar permissão.

    Uma ideia

    Uma solução para todos esses problemas, seria um aplicativo que gerenciasse essas atualizações, com horários específicos e regras simples, como por exemplo “computador usando bateria”, “conexão via bluetooth”, para evitar que atualizações sejam baixadas numa situação crítica.

  • Ainda prefiro email a tweets.