Arquivo do autor:Yoshio

Operador Ternário

programacao

Se você precisa trabalhar com condições simples no seu código talvez fosse interessante utilizar operadores ternários para deixar o código mais enxuto.

Como você implementa a operação ternária depende da linguagem de programação. Nos meus exemplos vou utilizar a linguagem C/C++, porém acredito que todas as linguagens com sintaxe semelhante ao do C/C++ façam este tipo de operação, como o Java, Javascript, C# e PHP. Tem também em Python, mas a sintaxe é diferente.

variavel = condicao ? valor_verdadeiro : valor_falso;

Isto é equivalente a isto:

if (condicao)
    variavel = valor_verdadeiro;
else
    variavel = valor_falso;

Alguns exemplos:

// Se op for 'x' será retonado 1, caso contrário 2 em option.
option = op == 'x' ? 1 : 2;

// Se a primeira letra de name for "a" será retonado "A" para
// capitalizar, senão retorna a primeira letra mesmo.
// No caso falso houve uma atribuição desnecessária já que foi
// atribuído name[0] ao próprio name[0].
name[0] = name[0] == 'a' ? 'A' : name[0];

// Aqui se number for 1 ele será incrementado, senão decrementado.
// Repare que não é feita atribuição em uma variável.
number == 1 ? number++ : number--;

Agora um exemplo de um programa usando o operador ternário. O programa conta a quantidade de letras “a” na frase digitada pelo usuário.

#include<stdio.h>
#include<string.h>

int main () {
    char frase[50];
    int i;
    int a = 0;
    printf("Informe uma frase: ");
    gets(frase);
    for(i = 0; i < strlen(frase); i++)
        a += frase[i] == 'a' ? 1 : 0;
    printf("A frase possui %d \"A\"s\n", a);
    return 0;
}

Simples não? Mas pra quem está começando no mundo da programação normalmente vai torcer o nariz pra este tipo de coisa.

"Porque utilizar esse "troço" se posso fazer com um IF?"

A minha única resposta é porque o código fica mais enxuto e simples. Os meus exemplos são bobos e só demonstram a utilização e não a melhor utilização dos operadores ternários. Se há alguma diferença de performance isso eu já não sei, mas se tiver deve ser tão pequena que poderia ser irrelevante.

Lembrando que essa sintaxe funciona em Java, Javascript, C#, Ruby e PHP.

Python

Em especial vou mostrar como se faz em Python.

    variavel = valor_verdadeiro if condicao else valor_falso

Exemplo:

    blog = 'blog.qualquer.com'
    score = 10 if blog == 'blog.wektabyte.com' else 5
    print score # exibe 5

Algumas linguagens não possuem um operador ternário real, como é o caso do VB que usa o IIF. O IIF é na verdade uma função e não um operador.

Converter objetos Java em JSON e vice-versa com Gson

google-gson

Quebrei um pouco a cabeça para mapear atributos de um JSON para objetos em Java, mas finalmente achei uma lib salvadora, o Gson. Tão boa que resolvi fazer esse artigo sobre ela. Espero que seja útil para todos.

Gson é uma biblioteca que converte objetos Java em JSON e vice-versa. Como bom programador você já deve ter percebido isso só de ver o título (assim espero).

Outra coisa que você deve ter percebido também é que esta biblioteca é do Google e isto normalmente quer dizer que é lib da boa.

O Gson é absurdamente simples de usar. Você deve criar uma classe em Java que represente os campos do JSON, tanto para serializar(Java para JSON) quanto para deserializar(JSON para JAVA).

Para demonstrar vamos criar uma classe User com 2 atributos e 4 métodos getters e setters dos atributos.
Continue lendo

Escolhendo um microfone para gravar um jogo ou um vlog

audacity

Ontem fiz alguns testes para gravar minha belíssima voz em alguns vídeos jogando Minecraft, mas a gravação da voz não ficou muito boa.

Nos testes utilizei um Wireless Stereo Headset 7.1 da Sony para PS3. Porém o volume da voz ficou baixo e com um pouco de chiado, mesmo com algumas edições no Audacity.

O microfone desse headset é bom para uma conferência ou para xingar alguém do time adversário, mas para gravar uma narração não. Então comecei a pesquisar para saber qual seria o melhor microfone para o meu propósito.

Acabei encontrando o vídeo abaixo do canal InternetVideosBR que era justamente o que eu queria. Ele demonstra de forma audível as diferenças entre os microfones direcional, cardióide, de lapela e até de um headset de R$10,00.
Continue lendo

O que é WektaByte?

google-storage

WektaByte é o nome deste blog. Fato.

Na verdade, algumas lendas na internet dizem que Wektabyte é uma nomenclatura para dados de base dois assim como o KB e MB, onde 1 WektaByte equivale a 2^100 Bytes.

  • Byte: 8 bits
  • Quilobyte: 1.024 Bytes
  • Megabyte: 1.048.576 Bytes
  • Gigabyte: 1.073.741.824 Bytes
  • Terabyte: 1.099.511.627.776 Bytes
  • Petabyte: 1.125.899.906.842.624 Bytes
  • Exabyte: 1.152.921.504.606.846.976 Bytes
  • Zettabyte: 1.180.591.620.717.411.303.424 Bytes
  • Yottabyte: 208.925.819.614.629.174.706.176 Bytes
  • Xentabyte: 1.237.940.039.285.380.274.899.124.224 Bytes
  • Wektabyte: 1.267.650.600.228.229.401.496.703.205.376 Bytes

Como você pode ver, 1 WB é um número absurdamente grande. Vai levar vários anos para que o próprio Google chegue um pouquinho perto de atingir essa quantidade de dados.

Se o nome é oficial eu não sei, só sei que eu gosto desse nome e já uso faz tempo.

:D