quarta-feira, 14 de junho de 2017

ASP.NET: ThreadAbortException

Olá. Vamos ao caso de hoje: em um projeto que trabalhei de um site em ASP.NET, existe uma página que é basicamente um relatório, contendo uns resumos dos dados de um mês, colocado em um monte de gráficos. Então, em um desses relatórios em que se tinha acumulado muito dados, começou a dar um erro estranho, um “Time Out [Internal Error]”. A princípio achei que era o banco de dados, que deveria ter muitos dados e deu Time Out, mas quando executei, tinha apenas um pouco menos de mil registros, logo não poderia acontecer.


terça-feira, 6 de junho de 2017

Uilidades: Web APIs gratuitos, mas que podem vir a calhar

Você está montando um aplicativo, site, qualquer outra coisa, e você quer testar a funcionalidade deste elemento que você está desenvolvendo, ou até mesmo, incluir dados interessantes. O problema é que as vezes, esses dados são numerosos, ou voláteis demais para manter no aplicativo, ou você só quer para testar, e acaba não valendo o esforço.
Mas não se preocupe, temos algumas soluções para você: vamos listar algumas Web API que podem ser bem úteis:

segunda-feira, 5 de junho de 2017

Utilidades: Ferramenta para Diagramas e Fluxogramas

Para quem precisa de uma ferramenta para criar diagramas e fluxogramas, mas não tem paciência para baixar, instalar, etc, recomendo a ferramenta Draw.io. Ele possui tudo o que um bom editor de diagramas precisa ter, com uma interface fácil de utilizar.

terça-feira, 4 de abril de 2017

Android: Como fazer um Toast

Toast são aquelas mensagens rápidas que o programa emite para notificar algo, mas que não precisa de confirmação ou interação, como por exemplo, uma conexão perdida. Para fazer um toast, segue o método estático makeText da classe Toast:

Toast t = Toast.makeText(context, message, duracao );

onde:

  • context: é o Contexto do aplicativo;
  • message: é a mensagem que deseja ser exibida;
  • duracao: é o tempo que deseja que seja exibida, podendo ser as constante: Toast.LENGTH_SHORT ou Toast.LENGTH_LONG;
Para exibir o Toast, invoque o método show(), e ele aparecerá na tela:

t.show();

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
}