[Objective-C] – Human readable date diff

Sometimes you have to express date differences in a human readable way: “2 hours ago”, “yesterday”, etc. How to do this in Objective-C?

Here’s a nice solution

    - (NSString *) dateToName:(NSDate*)dt withSec:(BOOL)sec {
 
        NSLocale *locale = [NSLocale currentLocale];
        NSTimeInterval tI = [[NSDate date] timeIntervalSinceDate:dt];
        if (tI < 60) {
          if (sec == NO) {
               return NSLocalizedString(@"just now", @"");
           }
           return [NSString stringWithFormat:
                     NSLocalizedString(@"%d seconds ago", @""),(int)tI];
         }
         if (tI < 3600) {
           return [NSString stringWithFormat:
                     NSLocalizedString(@"%d minutes ago", @""),(int)(tI/60)];
         }
         if (tI < 86400) {
          return [NSString stringWithFormat:
                     NSLocalizedString(@"%d hours ago", @""),(int)tI/3600];
         }
 
         NSDateFormatter *relativeDateFormatter = [[NSDateFormatter alloc] init];
         [relativeDateFormatter setTimeStyle:NSDateFormatterNoStyle];
         [relativeDateFormatter setDateStyle:NSDateFormatterMediumStyle];
         [relativeDateFormatter setDoesRelativeDateFormatting:YES];
         [relativeDateFormatter setLocale:locale];
 
         NSString * relativeFormattedString = 
                [relativeDateFormatter stringForObjectValue:dt];
         return relativeFormattedString;
    }

Tim, Claro e Oi proibidas de vender chips – Faltou a Vivo …

Já falamos inúmeras vezes da situação das Telecomunicações no Brasil. Inclusive fornecemos um método de resolver o problema.

Hoje 3 operadoras foram suspensas. Faltou a Vivo, que anda um lixo também. Mas no fundo a pergunta que não quer calar é: não seriam os verdadeiros culpados a Anatel e os habitantes do Palácio do Planalto desde 2003?

Quer uma sugestão? Inspire-se aqui:Um Dia de Fúria

Os 10 melhores Jogos para iOS

Algumas vezes, perdido em meio a inúmeras opções, o pobre leitor, não sabe qual jogo escolher no seu iPhone/iPod Touch/iPad. Jogo este que pode ser jogado na fila do banco, na espera do dentista, no ônibus interestadual, no avião, até …. bom você já sabe.

Aqui vai uma compilação dos meus 10 mais. Para evitar conflitos de interesse não estou indicando nenhum dos nossos jogos.

1) Angry Birds, Angry Birds Seasons, Angry Birds Rio e Angry Birds Space – Dispensam comentários. Se não jogou, precisa conhecer. Recomendo os 4, e para não saturar a lista agrupei eles num só.

2) Tiny Wings – Já era um grande jogo. Ficou mais legal ainda na versão 2.0. Além disso o desenvolvedor é tão legal que não cobrou nada pelo Tiny Wings 2.

3) Peggle – Um jogo que lembra vagamente um pinball, é extremamente criativo e muito divertido. Vale a pena conhecer.

4) Plants vs Zombies – Um classico da Popcap. Muito bem feito, muito divertido, e nota 10 em criatividade. Vale a pena conhecer só pelo personagem do vizinho seu no jogo.

5) Where is my Water – O simpático jacarezinho da Disney que quer tomar banho e precisa da sua ajuda proporciona muitas horas de passatempo. Usando um modelo físico de partículas para simular água, é um jogo que consome bastante bateria, mas é muito dinâmico.

6) Abelhas Estressadas – Feito por um brasileiro, assíduo frequentador deste blog, o Abelhas Estressadas mostra um novo conceito de puzzle. Eu pelo menos nunca havia visto nada similar. Muito divertido mesmo.

7) Temple Run – Simplesmente genial. Já não diria o mesmo da continuação que a Disney fez para ele chamado Temple Run: Brave.

8) Tower Defense Lost World – Os três últimos da lista são do gênero Tower Defense, embora este chame exatamente Tower Defense. Objetivo, impedir que os alienígenas invadam sua base. Gráficos e sons bem decentes, exige bastante estratégia.

9) Stick Wars – Feito com bonequinhos tipo XKCD, este jogo é uma batalha medieval, onde você não pode deixar que os stick inimigos invadam seu castelo.

10) Kingdom Rush – Só tem para iPad pois precisa de uma tela grande para um dos melhores jogos de tower defense e estratégia. Além disso é bem divertido. As batalhas são longas (15 min) portanto não é um jogo tão casual assim. Recomendo muito!

Acho que qualquer um destes 10 é um bom investimento para uma ou duas moedinhas de um dólar.

Kingdom Rush Gameplay - Fase difícil
Kingdom Rush Gameplay

 

Aproveite os comentários para nos dar dicas de novos jogos que você curtiu!

Tiny Wings 2 – Dia 12 de Julho

Andreas Illiger é um alemão que até então era conhecido apenas por um jogo: Tiny Wings. Pouca gente sabe bem quem ele é, quantos anos tem ou o que pensa. O fato é que Tiny Wings foi um sucesso que teve 10 milhões de cópias vendidas a US$0,99.

Andreas foi competente, mas pode-se dizer que acertou o jackpot, apesar disto segue vivendo no mesmo apartamento e não tirou a carteira de motorista nem tem carro. E quando pensávamos que ele não faria mais nada, eis que anuncia o Tiny Wings 2 e lança um trailer simpático.

Confira abaixo. Tiny Wings estará disponível dia 12/7 na AppStore.

 

A noite em o mundo Linux caiu

Ontem o mundo perdeu um segundo. Isto acontece algumas vezes para regular os relógios. Como vocês sabem, os anos de 366 dias são uma forma de acertar os ponteiros. Na verdade eles acontecem em anos múltiplos de 4 quando não são múltiplos de 100 a menos que sejam também múltiplos de 400 a não ser que sejam múltiplos de 1600. E por aí vai

Tudo isto para falar que ontem este avanço de 1 segundo para acertar os relógios fez com que muitas maquinas Linux crasharem. Não há relatos de servidores Windows ou FreeBSD que tenham crashado. O preju foi razoável.

Ainda bem que não sou fã do Linux…

20120701-104418.jpg