sexta-feira, 8 de abril de 2016

O Mundo Realmente Precisa de IoT?

Para quem trabalha com tecnologia de ponta é importante estar informado sobre o que está em desenvolvimento. E uma das tendências do momento é a Internet das Coisas ou IoT (Internet of Things). Nesse Report do cesar.org.br o autor Leonardo Lima faz a análise: existe a necessidade de nossos objetos poderem conversar entre si?

Vale a pena conferir.

quinta-feira, 2 de outubro de 2014

[Android] Obtendo Log via shell

Caso a aplicação use uma única TAG em todas as mensagens de log

Pode-se usar a seguinte linha:
adb logcat <TAG>:* *:S
Onde o :* indica todos os níveis de log e o *:S indica que todas as outras tags devem ser ignoradas.

No código isso pode ser feito, por exemplo, numa classe C com todas as constantes do projeto:
public class C {
  public static final String TAG = "MeuProjeto";
}

Usa-se essa constante em todas as classes:
public class MyActivity extends Activity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    Log.d(C.TAG, "MyActivity.onCreate");
  }
}

Caso a aplicação use uma TAG para cada classe/módulo

Primeiro é preciso identificar o PID (Process Identifier) da aplicação com:
adb logcat <alguma TAG da aplicação>:* *:S
o valor entre ( e ) é o PID.

Depois basta filtrar as mensagens de log com:
adb logcat | grep <PID>

Pode acontecer de o PID mudar. Por exemplo, após uma mensagem:
ActivityManager( 2941): No longer want <pacote da aplicação> (pid 17621) (adj 15) : empty #25
nesse caso executa-se o primeiro passo novamente.

No código cria-se uma constante em cada classe:
public class MyActivity extends Activity {
  public static final String TAG = "MyActivity";
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    Log.d(TAG, "onCreate");
  }
}

Referências

http://developer.android.com/tools/debugging/debugging-log.html

sexta-feira, 19 de outubro de 2012

6a Semente - Memória recuperada

Hoje aconteceu o Dia Geek no cesar de Recife e tive a oportunidade de jogar RPG na empresa. Abaixo segue o "roteiro" que usei:

Os personagens acordam em camas elevadas cobertos apenas por batas.
Não possuem memória.
A sala é toda branca, sem móveis nem janelas, existe uma porta em uma das paredes e acima dela uma luz vermelha.

Após se levantarem as camas se elevam revelando trajes completos.
Roupa emborrachada para o corpo todo, botas, luvas e capacete.
Caso os personagens se mostrem sem roupa uns para os outros eles fazem um teste para perceber a ausência de umbigo.
Após colocar o capacete o personagem consegue ver um display ao lado da porta - realidade aumentada.
O capacete permite que todos se comuniquem a qualquer distância - apenas áudio.

Quando todos estão com capacete um aviso indica que o fornecimento de oxigênio da sala foi interrompido.
Retirar o capacete pode causar a morte devido ao tempo necessário para repor o ar da sala.

Após sair da sala sentem um tremor rápido. A gravidade acaba.
Pelos capacetes uma seta virtual indica um caminho a seguir pela nave.
Após algumas curvas, escadas e tubos chegam numa sala com uma cadeira especial.
A orientação exibida no capacete é sentar na cadeira.
O magnetismo gruda a pessoa na cadeira e o capacete é conectado a um dispositivo.
Nesse momento começa a transferência de consciência. O personagem fica sem ação durante algum tempo.
! O jogador recebe um papel explicando quem ele é e qual é a missão: parágrafo iniciando com -- mais embaixo
Um novo alerta é emitido e o mapa da nave é exibido com uma área vermelha.
O casco está comprometido e a seção está sendo isolada para manter o oxigênio.

O buraco foi aberto por um meteorito e existem outros ao redor.
Com a memória recuperada é possível pilotar a nave.
Para se livrar do perigo é preciso ganhar/empatar três vezes seguidas no jo-ken-pô.
Três derrotas seguidas causam uma nova colisão.
Três colisões e a nave não pode mais ser controlada e sai dos asteróides.

É preciso consertar a nave, sem isso ela não poderá entrar na atmosfera íntegra.
Podem haver até quatro pontos de conserto dependendo do ponto anterior.
O jogador que recuperou sua memória sabe que existem braços na parte externa da nave. E uma porta para o espaço.
É preciso que alguém coloque uma segunda roupa e seja levado com um braço até o buraco com as ferramentas.
Para operar as ferramentas corretamente é preciso recuperar a memória.

Após um pouso bem sucedido novos corpos poderão ser criados com o material biológico do planeta.
Os jogadores decidirão o que fazer com esses novos clones.
? Apenas explicar de onde vieram?
? Trasnferir consciência para eles tambésm?
? Não explicar nada e deixar a humanidade reiniciar zerada?

-- A vida do corpo humano já pode ser prolongada até pouco mais de 200 anos, claro, para os mais privilegiados que tem acesso a remédios e tratamento caríssimos.
Além disso a consciência de uma pessoa pode ser transferida para um clone seu.
Naves com pequenas equipes foram lançadas ao espaço em direção a planetas habitáveis (confirmados por sondas) de estrelas próximas.
Foram batizadas de Sementes. Essa nave é a sexta semente.
Ao se aproximar do planeta a nave deveria criar um clone e transferir a consciência para ele.
Você é um desses clones.
O processo não foi feito na sala onde você acordou para que o corpo fosse testado primeiro.
Ter chegado a essa cadeira e receber essas informações é ter sido bem sucedido.
Defina um nome para seu personagem, a partir desse momento você deve se apresentar para os outros com esse nome.

Resultado, levantamos vários cenários onde a morte se torna opcional, desde que se tenha backup e clones.
Até quando uma pessoa iria querer continuar vivendo?
Quando uma pessoa decide morrer definitivamente, outras tem o direito de trazê-la de volta?

segunda-feira, 1 de outubro de 2012

PC vai significar apenas Pocket Computer

Quando a Motorola lançou o Atrix e seu Lapdock eu acreditei que esse é o futuro da computação: dispositivos móveis (inicialmente chamados de celulares), com tanto poder computacional e gráfico, que substituirão os computadores e notebooks, sendo o único, ou pelo menos o principal, aparelho para usarmos no dia a dia.
O bom é que já vemos outras iniciativas como o Asus PadFone e alguns aparelhos, como o Samsung Galaxy S2, que até já possuem adaptador hdmi.
Mas o que motivou a escrever hoje foi ter lido o seguinte no Coding Horror:

Our phones are now so damn fast and capable as personal computers that I'm starting to wonder why I don't just use the thing I always have in my pocket as my "laptop", plugging it into a keyboard and display as necessary.

Por tudo isso acho que, num futuro não muito distante, a sigla PC vai significar apenas Pocket Computer.

segunda-feira, 17 de setembro de 2012

Tem conserto?

Meu PC começou a mostrar mensagens de erro durante a inicialização e o relógio da máquina estava sempre reiniciando. Depois de pesquisar na internet li que o problema poderia ser apenas a bateria da placa mãe. Pesquisei o preço e achei que R$ 5,00 valia o risco. Troquei e tudo voltou a funcionar bem.
O que mais me impressionou, no entanto, foi a dificuldade em encontrar a bateria. Grandes redes como Nagem, InfoBox e InfoHouse não tinham a peça e a única solução que eles podiam dar era trocar a placa.
Essa história reforçou duas crenças que tenho: pesquisar bem ajuda muito e a Internet pode sim ser considerada uma fonte confiável de informações.

sexta-feira, 17 de agosto de 2012

É Bronze!

Muito do que aprendi sobre programação depois da Universidade (Java Web, JavaME, Android, etc) foi por causa da internet. Não só por causa dos sites oficiais das tecnologias, mas também pelos foruns, blogs, listas de email e o stackOverflow. Esse post é sobre esse último.
A forma como as perguntas e respostas são organizadas pela comunidade usando votos já é boa. Ir abrindo mais funcionalidades de acordo com a reputação da pessoa no site é melhor ainda!
A cinco meses atrás comecei a responder perguntas sobre a tecnologia que mais trabalhei no cesar até agora. Foi uma forma diferente de devolver para a internet parte do conhecimento que recebi. Outra forma que já vinha fazendo é o blog Small and Adaptive.
Hoje pela manhã recebi uma 'medalha' de bronze na tag de java-me: Earned 100 upvotes for at least 20 answers in the java-me tag. Traduzindo... pelo menos 20 respostas minhas receberam 100 votos positivos na tag java-me.
Estou muito orgulhoso, para dizer o mínimo! :)

terça-feira, 17 de julho de 2012

Um milhão de downloads

Demorou cinco anos, mas finalmente aconteceu! Julho de 2012 foi o mês em que meu tabuleiro de xadrez chegou a UM MILHÃO de downloads!!
A primeira versão foi ao ar em 16 de Julho de 2007. Com ela fui aprendendo como criar um interface gráfica que se adapta ao tamanho de tela e fui registrando meus achados no blog smallandadaptive.blogspot.com
Até agora não ganhei nem um centavo com a aplicação (e nem com o blog), mas o orgulho é grande mesmo assim!
Se você tem um celular que roda Java, instale e veja o que outro MILHÃO de pessoas já viram. ;)
http://www.getjar.com/mobile/11226/Chess