terça-feira, 31 de dezembro de 2019

Feliz Ano Novo!

Quino - Todos os direitos reservados

Último dia do ano de 2019!

Que 2020 seja um ano par! (que ímpar ele não é!) :P

E que vocês, meu leitores, realizem seus sonhos e fiquem ricos!

E, se ficarem, me patrocinem, que só ganhei 20 dólares com este blog... :(

Até mais!

sexta-feira, 27 de dezembro de 2019

Jiraiya vs Power Rangers

Em uma luta, quem venceria? Jiraiya ou Power Rangers (Raiz ou Nutella)?


Nada contra os Power Rangers, mas Jiraya fez parte da minha infância! :)

Até mais!

terça-feira, 24 de dezembro de 2019

Feliz Natal!


Como posso dizer sobre este ano? Acho que é como a menina disse:


Não foi tão legal, nem tão empolgante... Mas foi bem "loco"! :P

Tomara que ano que vêm seja legal e empolgante... E menos "loco"! :)

Feliz Natal!

Até!

terça-feira, 17 de dezembro de 2019

Dicas de Programação: O que é o 'Z' na parte final de uma data?

Tinha um pessoal que perguntou sobre este formato de data em um JSON:

{
...
"date": "2019-01-31T23:01:00.231Z"
...
}

Bem, pela divisão, eu diria:

- Ano: 2019;
- Mês: 01;
- Dia: 31;
- Hora: 23;
- Minuto:01;
- Segundo: 00;
- Milissegundos: 231;
- Fuso horário: 'Z';

Mas que diabos é o fuso horário 'Z'?

Então, é o fuso horário Zulu, utilizado em alguns países da Africa, que corresponde ao meridiano de Greenwich (aquele, que representa 0 no fuso). Para mais informações (em inglês):
https://www.timeanddate.com/time/zones/z

Interessante, não?

Até mais!

domingo, 21 de julho de 2019

Alguém se lembra: Altered Beast (Mega Drive)?

Hum... Não era meu jogo preferido (afinal, era um dos primeiros jogos para Mega Drive), mas tem seus méritos.

Um port muito bem feito do Arcade, que conta a história de um gladiador que é ressuscitado por Zeus para salvar a deusa Atena das garras do vilão Neff (ou uma peça de teatro que conta tudo isso... -- entendedores, entenderão).

O mais legal, é quando se junta três (3) "bolinhas" de poder -- estes dado por ovelhas (???) -- e a personagem se transforma em um animal (literalmente):


O melhor das transformações, é o lobo-homem (lobisomen?). :P

Obs.: Para quem tinha o jogo: O que você entendia quando Zeus falava a você (primeira frase do jogo)?
Obs. 2: Só para constar, eu entendia: "Uia, mata o gay" (#pelamordeus, nada contra, eu só ouvia isso -- cabeça de criança é uma b*sta :P ).

Abaixo, uma jogatina feita pelo canal ralphdouglas:




Até mais!

quinta-feira, 6 de junho de 2019

Alguém se lembra: Battletoads do NES/Mega Drive?

Sabe aquele jogo que é legal, mas não dá vontade de terminar por que é muito difícil...

Então... Este é Battletoads:


Battletoads é um jogo estilo "briga de rua" (tipo Double Dragon), aonde os protagonistas são sapos (???) que precisam salvar seus companheiros (que, também, são sapos) da terrivel Dark Queen (que, acreditem, NÃO é um sapo, mas uma mulher gostosa pra c...aramba).

É legal? É... até perceber que não tão fácil quanto parece. A primeira fase é muito de boa, mas depois, meu amigo, a coisa só piora (e demais, diga-se de passagem).

Dá um pouco de raiva (para não falar outra coisa).

Mas vale pela jogatina... Falando em jogatina, assista uma feita pelo canal Medieval Games BR:



Até mais!

Dicas de Programação: Qual é a diferença entre agregação e composição?

No final, em um diagrama de classes (UML), agregação e composição são a referência que uma classe tem com a outra (uma classe contém uma propriedade de outra classe).

A diferença entre elas, esta no "valor" que uma classe representa para a outra.

Como exemplo, vamos pegar a classe Carro e dizer que ela tem as propriedades arCondicionado e motor (com suas respectivas classes):

public class Carro {
        [Nullable]
        public ArCondicionado arCondicionado { get; set; }
        [NotNull]
        public Motor motor { get; set; }
}

Se um carro comum não tiver arCondicionado, ele ainda funciona, certo?

Se o arCondicionado só "agrega" um valor ao carro (fica mais valorizado, mas o carro não deixa de funcionar), então dizemos que é uma agregação.

Mas se um carro não tem motor, ele não funciona mais, correto? (só se for carro fantasma :P)

Assim, podemos afirmar que um motor "compõe" o carro (sem ele, o carro não funciona), então dizemos que é uma composição.

Bem, espero que a explicação seja útil para alguém... (pelo menos, para mim foi) :P

Até mais!

Dicas de Programação: Como gravar um objeto em um arquivo no C#?

Fácil, é só deixar ele serializavel:

using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;

public class Program
{
        //Classe que representa dados de uma pessoa
        [Serializable()]
        public class Pessoa {
                public string Nome { get; set; }
                public int Idade {get; set; }
public static explicit operator String(Pessoa p)
{
return String.Format("Nome: {0} Idade: {1}", p.Nome, p.Idade);
}
        }

public static void Main()
{
          //Se arquivo Data.bin existe...
if (File.Exists("Data.bin"))
{
                  //Leio os dados gravados nele e transformo em um objeto do tipo Pessoa
Stream stream = File.OpenRead("Data.bin");
BinaryFormatter binary = new BinaryFormatter();
Pessoa p = (Pessoa) binary.Deserialize(stream);
stream.Close();
Console.WriteLine(String.Format("Lendo - {0}", (String)p));
}
          //Se o arquivo não existe...
else
{
                  //Crio os dados do objeto do tipo Pessoa e gravo ele no arquivo Data.bin
Pessoa p = new Pessoa();
p.Nome = "Me";
p.Idade = 18;
Stream stream = File.Create("Data.bin");
BinaryFormatter binary = new BinaryFormatter();
binary.Serialize(stream, p);
stream.Close();
Console.WriteLine(String.Format("Escrevendo - {0}", (String)p));
}
}
}

Obs.: Sempre que um objeto precisa ser "gravado"/"transportado", seja na rede ou no arquivo (binário, xml ou json), ele precisa ser serializado.

Até mais!

terça-feira, 21 de maio de 2019

Dicas de programação: Qual é a diferença entre aspas simples (') e aspas duplas (") em PHP?

Para o pessoal que vai trabalhar com PHP:

A diferença entre criar uma string, no PHP, com aspas simples (') e aspas duplas (") é, em geral, em termos de performance... Se criar uma string simples (sem concatenação ou caracteres especiais), o mais performático é usar as aspas simples:

$str = 'Minha frase simples';

Se for necessário concatenar com uma variável ou utilizar caracteres especiais, é mais performático usar as aspas duplas ("):

$str2 = 'composta';
$str = "Minha frase $str2\n";

Mas se for uma concatenação complicada e precisar utilizar o ponto (.) para isso - para quem não sabe, o ponto é o operador de concatenação em PHP (igual ao + do Java/C#) -, é melhor usar as aspas simples ('):

$i = 0;
$str = 'Minha frase';
if ($i == 0) {
    $str = $str . ' simples';
} else {
    $str = $str . ' composta';
}

Mas se precisar concatenar com variáveis e tem um texto enorme, o mais correto é usar o operador <<<:

$str = <<<EOF
texto...
texto...
texto...
EOF;

Complicado? E quem disse que PHP é fácil? :P

Até mais!

segunda-feira, 6 de maio de 2019

Conseqüências


Todo ato tem uma conseqüência e, geralmente, ela não afeta somente a pessoa que a cometeu, ela pode afetar outras pessoas e, talvez, uma sociedade inteira...

Então, antes de:

- Escrever, pense (algumas vezes, palavras são mais perigosas que uma arma -- elas podem começar até uma guerra...);

- Falar, ouça (ser visto como um bom ouvinte é dez vezes melhor do que ser visto como um fofoqueiro, ideologista, fanático ou reclamão);

- Condenar, pondere (poderia ser perdoar, poderia... mas acho muito difícil! Portanto, tente, pelo menos, aconselhar as pessoas);

- Criticar, elogie (ninguém é perfeito, todo mundo sabe disso, mas ninguém, também, é imperfeito, portanto sempre existe algo para se elogiar);

- Estressar, ria (se você acha tudo muito absurdo, ria da situação, afinal, perdido por perdido, pelo menos você esta se divertindo... :P );

- Agir, reflita (vá no espelho do banheiro, veja você no lugar do outro e depois volte -- acredite, algumas vezes dá certo);

- Criar um blog, pense que você pode não ficar rico com isso (pois eu não fiquei :P );

Até mais!

A Guerra e a Justiça

(c) Alla Vasilyeva

Uma vez, em um momento qualquer das eras, a Justiça encontrou a Guerra e, sem ter o que dizer, indagou a ela:

- Guerra, você não se sente cansada de ser odiada pelos humanos? Os mesmos que a clamam, quando as coisas parecem mais calmas e pacíficas?

- Não sou eu que sou chamada, cara Justiça -- respondeu Guerra, urrando como grandes cornetas -- sou apenas a conseqüência dos pecados deles!!!

- Como assim? -- perguntou Justiça, com uma certa cara de espanto.

- Simples, Justiça. Veja como os mortais defendem os ideais de outros mortais, só por pura inveja, vaidade, raiva ou luxúria. Deixam seu lado mais "egoísta" e "cruel" exposto, demonstrando seu ódio e atraindo mais ódio pelos que defendem o "outro lado".

- Um ciclo vicioso, como diria os mortais! -- conclui Justiça, tentando parecer sábia.

- Sim, com certeza! E você, minha filha, já sabe como isso termina...

Assim, percebendo a verdade, Justiça simplesmente calou-se e, antes que Guerra volta-se seus olhos para ela, esta partiu para seus afazeres diários...

segunda-feira, 25 de março de 2019

Cronosfera: Não, não é um canal científico do Youtube

Sabe aquelas coisas que você não entende por que é coisa de japonês?

Então, tem um cara, que possui um canal no Youtube, que tenta entender o mundo estranho/maravilhoso dos animes.

Este cara se chama Guto e o canal dele é a Cronosfera.

É interessante como ele faz a gente pensar sobre as coisas, que não pescamos quando assistimos a esse tipo de animação...

Tipo, o seguinte episódio de One Piece:


Legal, né? Faz a gente refletir se anime é, realmente, coisa de criança...

Até mais!

terça-feira, 26 de fevereiro de 2019

Alguém se lembra: World Games para Master System?

Sabe quando você fica empolgado com "Jogos de Verão" para Master System e sai um jogo parecido da mesma produtora?

Pois é, isso me aconteceu com World Games:


É divertido? É... mas é mais curto e parece menos legal que "Jogos de Verão" (sei lá, vai ver me acostumei tanto com este, que queria coisa melhor :P ).

Abaixo, uma jogatina feita pelo canal Retrospilling.no:


Obs.: Ultimamente, ando meio exigente... Hum... Acho que tenho que mudar minhas atitudes. :P

Até mais!

quinta-feira, 31 de janeiro de 2019

Dicas de Programação: Chamada de método "dinâmico" em PHP

Faz um tempo que não mexo em PHP (desde 2008), então, como voltei faz pouco tempo, resolvi postar alguma coisa. :)

Para fazer uma chamada "dinâmica" em PHP é bem fácil, basta criar uma variável que tem o nome do método e chamá-la como se fosse uma função:

class UserService {

function login() {
echo "Login";
}

function logout() {
echo "Logout";
}

}

$service = new UserService();
$method = 'undefined';

if  (isset($_GET['method'])) {
    $method = $_GET['method'];
}

if  (method_exists($service, $method)) {
    $service->$method();
}

Simples, não?

Até mais!

domingo, 27 de janeiro de 2019

Alguém se lembra: Time Soldiers para Master System?

Sabe MERCS?

Não? Então, eu escrevo sobre ele neste link aqui.

Sei que até existe uma versão dele para Master System, mas tem um jogo muito parecido neste console, e que, o melhor, dá para jogar com 2 jogadores!

Ele se chama Time Soldiers:


Time Soldiers é um jogo de tiro que conta a história de dois viajantes do tempo (???), que precisam resgatar seus companheiros das forças malignas de um vilão que quer dominar o mundo (e o tempo).

Premissa batida? Sim. Final "Shinobi"? Sim (Não entendeu? Então, jogue Shinobi, para Master System, que você vai entender...). Mas o jogo conta com uma bela jogabilidade, o que garante a diversão.

Obs.: Joguinho para um final de tarde, aonde você não esta fazendo nada mesmo. :P

Abaixo, uma jogatina do canal World of Longplays:


Até mais!

terça-feira, 15 de janeiro de 2019

Alguém se lembra: Atomic Runner (Mega Drive)?

Gosta de Contra (do jogo, não de ser contra em tudo)?

Se gosta, então tenho um jogo ideal para você. Ele se chama Atomic Runner.




Atomic Runner é um jogo de tiro/plataforma feito pela Data East. Não faço a menor idéia da história, mas eu achava, quando criança, que era um jogo da Formiga-Atômica (o protagonista era tão pequeno, que mal o via na tela...).


Bem, apesar disso, é um jogo bem legal! :)

Abaixo, uma jogatina feita pelo canal World of Longplays:



Até mais!

segunda-feira, 14 de janeiro de 2019

Dicas de Programação: Métodos públicos e privados em Javascript (1.2)?

Muitos discordam que o antigo Javacript é orientado a objetos (afinal, não tem "class" e tudo é "function").

Bem, não vou entrar na discussão, mas uma das prerrogativas é que ela não tem distinção de "permissões de métodos" e que todos os métodos declarados são públicos.

Mas, por incrível que pareça, existe algo parecido para fazer alguns métodos ficarem restritos internamente a classe/objeto:

var Classe = function() { 
       var privada =  function() {
               document.write("Privada");
       };
      return {
             publica: function() {
                     document.write("Publica");
             },
             acessandoPrivada: function() {
                     document.write("Acessando ");
                     privada();
             }     
      }
};

var objeto  =  new Classe();
if (typeof(objeto.privada)!="undefined") {     
        objeto.privada();
}
if (typeof(objeto.publica)!="undefined") {
        objeto.publica();
}
if (typeof(objeto.acessandoPrivada)!="undefined") {
        objeto.acessandoPrivada();
}

Legal, né? :)

Até mais!

Aviões e Músicas



Tem um colega meu que é aficionado por aviões, e me mandou uns vídeos bem legais sobre a VASP, Varig e Transbrasil.

E, descobri então, que o bichinho dos que gostam de aviação me picou (no bom sentido, é claro :P).

E que todos esses vídeos são do Canal Aviões e Músicas:


E que o Lito (apresentador) parece alguém que gosta, realmente, do que faz (o que faz a gente empolgar com isso -- principalmente, um leigo como eu).

Obs.: Eu coloquei o vídeo acima, pois me lembrou de um filme muito antigo que assisti chamado "Apertem os cintos, o piloto sumiu". (saudades, sabe como que é... :P).

Obs.2: Obrigado ao Jonatan, pela dica!

Até mais!