segunda-feira, 3 de abril de 2017

Android: Usando o Log

Log provavelmente é uma das coisas mais importante a fazer em um programa, ao mesmo tempo que é um dos mais negligenciados. Um sistema de Log bem feito permite você saber o que aconteceu, onde aconteceu e até como aconteceu. No Android, já existe a classe Log, onde você pode utilizar e o melhor, ainda poderá analisar nas próprias ferramentas de desenvolvimento.

No Android, temos os seguintes níveis de log:

  • WTF: significa "What a Terrible Failure", serve para criar um log com informação de erros que nunca deveria ocorrer durante a execução. Executando esse tipo de log, o programa será encerrado. Pode ser executado pelo método estático Log.wtf(string tag, string message)
  • Error: Indica um erro. Pode ser executado pelo método estático Log.e(string tag, string message);
  • Warn: Indica um aviso. Pode ser executado pelo método estático Log.w(string tag, string message);
  • Info: Indica uma informação. Pode ser executado pelo método estático Log.i(string tag, string message);
  • Debug: Indica uma informação de depuração. Pode ser executado pelo método estático Log.d(string tag, string message);
  • Verbose: Usado quando precisa de dados muito pontuais. Pode ser executado pelo método estático Log.v(string tag, string message);
Mais informações, ver a documentação.

quinta-feira, 30 de março de 2017

JQuery e Checkbox

Dos tipos que a tag "<input>" pode assumir, um dos mais excêntricos é o Checkbox. Não importa se usa PHP, .NET, Javascript e é claro que no JQuery não foi diferente. Usar o método "val" não vai verificar se ele foi selecionado nem alterar o estado dele. Enfim, como tratar esses dados?

Para verificar se o checkbox está checkado ou não:
$("#checkboxX").is(':checked')

Para mudar a seleção do checkbox:
 $("#checkboxX").prop('checked', true);
 $("#checkboxX").prop('checked', false);

quarta-feira, 29 de março de 2017

JQuery: Verificando se o elemento existe

Estava eu, trabalhando com um formulário dinâmico quando deparo na seguinte situação: precisava iterar por uma série de elementos, mas não tinha como saber de antemão quantos elementos tem. Como os ids eram gerados num padrão, é fácil mapear, mas eu precisava achar um ponto de parada. Aí que a coisa complicou: o JQuery não retorna um null, false, ou algo que identifique que tal elemento não existe.

Pesquisando, encontrei uma gambiarra para isso, já que o JQuery não diz diretamente se o elemento existe, mas você ainda pode tentar acessar o elemento ou alguma propriedade, estas sim vão retornar um null ou undefined ou qualquer valor equivalente ao false numa condicional.

O código que verifica se um elemento JQuery existe ou não é o seguinte:

if($("#elementoX")[0]){
  //O elemento existe
}else{
  //O elemento não existe
}

terça-feira, 14 de fevereiro de 2017

Guia Rápido: CSV

O que é CSV?
Comma-Separated Values (Valores Separado por Vírgula) é um formato de texto utilizado para representar planilhas. É muito utilizada principalmente para importação/exportação de dados entre um aplicativo de planilha eletrônica e algum outro aplicativo.

Estrutura
Cada linha do arquivo de texto é uma linha da planilha. Os valores de cada coluna da linha são separadas por um caractere separador. Apesar do nome CSV dar a entender que o separador é uma vírgula, qualquer caractere pode ser usado como separador.

Exemplo:
Um arquivo CSV com 4 colunas e 5 linhas.

E-mail,Nome,Sobrenome,Ramal
machado@autorbrasileiro.com.br,Machado,Assis,123
clarisse@autorbrasileiro.com.br,Clarisse,Linspector, 124
amado@autorbrasileiro.com.br,Jorge,Amado,125
coelho@autorbrasileiro.com.br,Paulo,Coelho,126

sexta-feira, 6 de janeiro de 2017

DataTables: Modificar cabeçalho de uma coluna

Olá, pessoas! Mais uma dica de programação, hoje para quem utiliza o plugin DataTables para JQuery, Existe alguns tipos de tabelas que me deparei em que o cabeçalho dele muda de acordo com algum parâmetros. Por exemplo, quero ver dados de um período de 3 meses a partir do mês X, e depois quero ver os mesmos dados só que a partir do mês Y. O fato é que para atualizar os dados é fácil, entretanto, o plugin não atualiza o cabeçalho da tabela, sendo que isso precisa fazer manualmente. Bem, para isso achei um algoritmo fácil que resolve o problema.

segunda-feira, 26 de dezembro de 2016

Gamemaker: Guia Rápido de termos ao usar a engine física e o que influencia

Bem, vamos deixar simples para quem já sabe mexer na engine física, mas vive esquecendo os termos.

  • Density (densidade): Define a massa de um objeto. Um círculo de 10 pixel de raio com uma densidade alta vai ter mais massa do que um círculo do mesmo tamanho. Assim como dois círculos de tamanho diferentes, mas com a mesma densidade, o maior vai ter mais massa do que o menor. E quanto mais massa, mais difícil é aplicar alguma aceleração, seja para aumentar a velocidade, seja para frear a velocidade;
  • Restitution (Restituição): Define o quanto de energia é perdido em uma colisão. Para os leigos, pense na capacidade da bola "quicar". Um valor baixo de restituição, a bola quica baixo, sendo que no caso do 0, ela nem quica. No valor 1, indica que não há perda de energia, ou seja, a bola vai quicar na mesma altura na qual ela foi solta. Valores acima de 1, a bola vai ganhar energia, ou seja, é como se ela ganhasse um impulso quando colidiu com outra coisa;
  • Collision Group (Grupo de colisão): Usado para agrupar os elementos que podem colidir entre si. O Grupo 0, a colisão ocorrerá somente se houver um evento especificando a colisão. Se um grupo é positivo, todos que tiver o mesmo grupo colidirão entre si, mesmo não havendo especificação. Se o grupo é negativo, o elemento nunca colidirá, mesmo havendo evento especificando a colisão;
  • Linear Damping (Amortecimento Linear): Ok, amortecimento não é a melhor tradução, mas também não encontrei melhor. Seria algo como o atrito no chão: pense que um cubo de gelo vai deslizando numa superfície: conforme vai movendo, vai perdendo a velocidade. Essa taxa é o Linear damping;
  • Angular Damping (Amortecimento Angular): O mesmo para o linear, só que para objetos que giram. Uma manivela pode ser girado rapidamente e continuar girando quando solta, mas com o tempo, ela para de girar;
  • Friction (Atrito): É a perda de momento causada pela colisão. Quanto mais alto o valor, mais perda de energia ocorre. 

terça-feira, 20 de dezembro de 2016