terça-feira, 24 de dezembro de 2013

Ano novo, vila velha!

Mais um ano vai passar!

E, por incrível que possa parecer, sobrevivi a tudo.

Sobrevivi as mudanças, as despedidas e as novidades. Sobrevivi de doenças, de dores, de tragédias e do stress do dia-a-dia. Sobrevivi e fiz novas amizades e, também, tive vários momentos felizes.

Decepcionei e também fui decepcionado...

Aprendi e continuo a aprender, erro e continuo a errar, esqueço e continuo a esquecer...

Mas sabe de uma coisa?


O negócio é beber um cachacinha (de preferência uma Vila Velha) e cair na farra! :P

O Ano Novo esta aí! :)

Feliz Natal e Próspero Ano Novo aos leitores de meu blog!

Obs.: Brincadeirinha. Quem me conhece sabe que eu não bebo (e nem posso...).

Até mais!

sábado, 21 de dezembro de 2013

Street Fighter versus Megaman e outros jogos de "graça"

Como não sou rico e ninguém me patrocina (como dizem uns amigos meus, #chateado :( ), neste Natal, a única maneira que achei de "dar presentes" aos meus leitores, é disponibilizar alguns links para jogos "antigos" gratuitos.

Então, vamos lá:

- Street Fighter vs Megaman:


Sabe Megaman? Sim, o jogo do robozinho que hoje é o mascote da Capcom.
Sabe Street Fighter II? Yep, o jogo que fez milhares de pessoas comprarem o Super NES.
Então, um fã destas séries criou um jogo que coloca os personagens de Street no Megaman original (sim, aquele do NES).
A Capcom, que não é boba nem nada, resolveu... ajudar o cara!
E disponibilizou a idéia em seu site:
http://www.capcom-unity.com/mega_man

Obs.: Pô SEGA, você podia ter feito a mesma coisa com os caras de Street of Rage Remake...

- Frets On Fire:


Gosta de Guitar Hero? Então, conheça o primo GPL dele:
http://fretsonfire.sourceforge.net/
Obs.: Para os amantes de programação -- é feito em Python com a biblioteca Pygame.

- Battle for Wesnoth:


Jogo de RPG/Estratégia Single/Multi-player baseado em turnos (um pouco parecido com Shinning Force):
http://www.wesnoth.org/

- Tremulous:


Shooting em primeira pessoa (o chamado FPS):
http://tremulous.net/

Estes são os meus "presentes" para este Natal.

Espero que curtam!

Até mais!

Alguém se lembra: O Mundo de Beakman?

Quando eu tinha uns 6 a 7 anos, assistia a programação da manhã na TV Cultura.

Vi muito Bambalalão:


E Catavento:


Com o tempo passando, meio que parei de assistir este tipo de programa (achava que era coisa de criança...).

Mas, em uma tarde de 1995, quando estava atoa nas férias da universidade, resolvi assistir televisão (claro que o período das 17:00 as 19:00 não passava muita coisa...).

Então, grata foi a minha surpresa em assistir um programa genial na mesma TV que eu pensava que era "para crianças".

O programa se chamava "O Mundo de Beakman"


Como era fantástica a idéia de ensinar física, geometria e outras ciências de uma maneira divertida e fácil (sem teoremas, explicações "infinitas" ou "decorebas").

Apesar de adolescente (quase um adulto), aprendi muito com as coisas que eles "ensinavam".

E, com certeza, muita gente também aprendeu! :)

Obrigado aos criadores e ao elenco todo que conferiu algo extraordinário e raro nas TVs: ensinar brincando.

Tomara que esse tipo de programa não desapareça (estamos precisando...). :P

Até mais!

quinta-feira, 19 de dezembro de 2013

Criando apps para iOS e Android em Python com Kivy!

Mais uma ferramenta/biblioteca para criações de aplicações cross-plataform (Windows, Linux, Android, OS X e iOS), só que agora para linguagem Python! :)


Se chama Kivy.

O legal dele é que a sua licença é livre e foi feito em cima do OpenGL (ou seja, trabalha melhor com a GPU, tornando alguns efeitos visuais "mais lisos" (sem travamentos)).

Interessou? Então, entre no site:
http://kivy.org/#home

Até mais!

Um bom presente para o Natal: Jogos de cartas/tabuleiro da Galapagos!

É quase Natal! Motivo de juntar a família, deixar o papo em dia e de dar presentes!

Já que "precisamos" ser mais sociáveis, que tal dar/comprar um jogo de cartas/tabuleiro de presente? (pelo menos, aquele primo chato não vai te ficar incomodando com aqueles papos monótonos sobre a vida, os mistérios e tudo mais... :P )

Ai vão minhas sugestões:


Munchkin: Famoso jogo de cartas que dá uma zoada nos tradicionais RPGs, com suas regras "absurdas".


Zombicide: Jogo de estratégia, onde os jogadores devem sobreviver a uma horda de zumbis! (sei lá, mas acho que foi uma sugestão de um colega meu, valeu Léo)


A Gerra dos Tronos: Card Game: Um jogo de cartas (dãã... :P ) baseado no famoso livro/série.

É isso ai! Boa diversão!

Obs.: Não, a Galapagos não me pagou nada para divulgar e não conheço os donos.

Até mais!

Alguém se lembra: Ioio Cream?

Essa é para uma colega minha. :)

Sabe aquelas coisas gostosas da infância que de vez em quando você se lembra?
Uma destas coisas que me vem na cabeça é Ioio Cream!


Como era bom quando, em vez de sua mãe comprar margarina, trazia Ioio Cream do supermercado para passar no pão.

Pasta de avelã sabor chocolate em um pão quentinho.... Huuuummm! :)

Que saudades!

Ainda bem que dá para matar ela, pois o produto existe até hoje (não é Tati? :P) !

Até mais!

domingo, 17 de novembro de 2013

CocoonJS - Alta Performance em Canvas no Mobile?

Qual web-developer não ficou furioso quando, ao trabalhar com canvas, fez aquela animação animal que roda "liso" em todos os navegadores de PC, porém, em dispositivos mobile, roda a 5 fps (frames por segundo)?

"P*ta que p*rui!" -- reclamaria.

Pois é, pensando em nós, a Ludei criou o CocoonJS!

O CocoonJS é uma ferramenta de desenvolvimento mobile para criação de jogos e apps para quem trabalha com HTML 5 e JS, focado na performance destes.


Pelos exemplos do vídeo acima, parece que o resultado é muito bom! :)

Que conhecer e testar a ferramenta? Então entre no site:

Até mais!

Ganhe $100.000,00 no Mobile Game Challenge!


Você é um desenvolvedor mobile de jogos? Tem criatividade e senso de humor? Sabe usar ou quer aprender as ferramentas livres do Havok?

Então, participe do "Project Anarchy Mobile Game Development Challenge", que se você ganhar, vai receber o prêmio de 100.000 dólares.

Só não se esqueça dos amigos (principalmente aqueles que deram ESTA dica ;) )!

Mais informações ou para participar da competição, entre no site:
http://www.projectanarchy.com/contest

Até mais e boa sorte para aqueles que irão competir!

Ferramentas de Desenvolvimento Mobile da IBM


Como não poderia deixar de ser, grandes empresas de informática estão investindo cada vez mais no setor de mobile, sabendo que este mercado esta em plena expansão.

Com a IBM não seria diferente:

O interessante desta vez, é que eles dividiram suas ferramentas para cada "etapa" de desenvolvimento de uma app (test, deploy, manage, etc.).

Legal, não? ;)

Obs.: A ferramenta de desenvolvimento é a cara do Eclipse (também pudera, foram eles que o criaram -- eu acho :P )!

Até mais!

Trepn Plug-in for Eclipse - Instruments para Android?


Trepn é quase isso. Não tem todas as features da ferramenta Instruments do XCode, mas dá para o gasto...

Trepn é um plug-in do Eclipse que exibe o status do hardware (no caso, dispositivos que usam Android) durante a execução de uma aplicação. Ele relata a quantidade de CPU, GPU e rede usadas além de outras coisas (como gastos de bateria).

Desenvolvido pela Quallcom, parece ser uma ótima ferramenta para medição de desempenho de uma app Android.

Quer mais informações? Entre no site:
https://developer.qualcomm.com/mobile-development/performance-tools/trepn-plugin-eclipse

Até mais!

The Union: Palestras e Lições

Uma compilação de palestras do "The Union" (maior evento de computação gráfica, efeitos visuais e arte digital da América Latina -- conforme é dito no site :P ), ocorrido em São Paulo nos dias 19 e 20 de Outubro de 2013, feita pela equipe do Omelete:


"Não tenha medo de se entregar e tentar o que você quer."
"Fique calmo. Ninguém gosta de quem grita. Não importa quão frustrante um trabalho ficar, não ajudará ninguém se você perder a calma."
"As pessoas vão tomar decisões estúpidas, só tenha certeza que não será você!" (boa :P).
"Você vai falhar... Mas não tenha medo, porque isso te fará uma pessoa melhor."
"Peça ajuda."
"Não persiga o dinheiro. Eu vi isso acontecer com pessoas e nunca deu certo."

Frases para refletir... (eu vou ao espelho e já volto! :) ).

Até mais!

Alguém tem nostalgia?

Pois é, eu, com certeza, tenho (é só ver os meus posts :P ).

E não só sou eu, um cara chamado Felipe Castanhari apostou nesta idéia e criou o canal "Nostalgia" no Youtube.


Ele fala sobre curiosidades e fatos interessantes que cercam os personagens de jogos "antigos", dos animes, das séries e de outras coisas da década passada e dos anos 90 e 80.

Como saudosista que sou, já virei fã do canal.

Curioso para saber mais sobre os Cavaleiros do Zodíaco, Samurai X, Sonic e Mário? Então acesse o link abaixo:
http://www.youtube.com/user/fecastanhari

Poxa, deu uma saudade de comer bolo de Coca-Cola (pena que não posso mais...) :P

Até mais!

domingo, 13 de outubro de 2013

Construindo aplicações multiplataformas com Intel XDK


Esta é mais uma ferramenta de desenvolvimento web/mobile, agora feita pela Intel:

Possui emuladores de dispositivos móveis, é integrado com os frameworks Cordova/PhoneGap, JQuery Mobile e JNode (back-end), tem uma ferramenta de designer do tipo "clique e arraste" e roda no MS-Windows. :)

Se vale a pena? Só vendo para crer... :P

Até mais!

sábado, 12 de outubro de 2013

Dica de Programação: Existe um Firebug para Android e iPhone?

Esta certo que um esta em beta e o outro tem que pagar (mas existe a versão "comunidade"), mas sim, parece que existe! :)


O iWebInspector é uma ferramenta de desenvolvimento feita para MacOS X, que depura e consegue trabalhar no código HTML/CSS/Javascript de uma página dentro do emulador de iPhone que vem instalado junto com o XCode.

Bem bacana, mas não sei se funciona direito (é de graça, mas sua versão ainda não é a final...). Veja mais em:


Já o jsHybugger é a mesma coisa, só que faz isso para Android:

Hum... Se eles funcionarem bem, posso dar adeus aos console.log e alert(s) :)

Até mais!

Dicas de Programação: Posso Retornar uma Função ou Receber esta como Paramêtro em Javascript?

Resposta: Sim! :)

Agora, só para não ficar só nisso, vamos ao exemplo:

//Declaração de função
function receberRetornarFuncao(func) {
        //Executa a função recebida como paramêtro
        func();
        //Retorna uma função
        return function() {
                alert('Retorno');
        };
}

//Variável recebe função retornada (executa a função receberRetornarFuncao)
var funcRet = receberRetornarFuncao(function() {
       alert('Paramêtro');
});
//Executa a função retornada
funcRet();

Obs.: Quando você faz "function nomeDaFuncao() {}" ou "var nomeDaFuncao = function() {}", você declara esta e mas não executa. Estes só executam quando é feita a chamada "nomeDaFuncao();".

Até mais!

Dicas de Programação: Como Reescrever um Método de um Único Objeto em Java?

Pela pergunta, parece muito difícil codificar... Mas, para fazer, até que é fácil! :)

A gente pode reescrever o método de um único objeto, codificando ele durante a instanciação deste (chamada do construtor). Exemplo:

...
List<String> listaStrings = new ArrayList<String>() {
      public String toString() {
               return "Reescrevi o método";
      }
};
listaStrings.add("Primeira String");
System.out.println(listaStrings);
...

Interessante, ele escreveu "Reescrevi o método" na tela!

Se você retirar as linhas de "reescrita":

...
List<String> listaStrings = new ArrayList<String>();
listaStrings.add("Primeira String");
System.out.println(listaStrings);
...

Ele escreve "[Primeira String]" (agora parece normal :P ).

Obs.: Isso só pode ser feito em objetos que não são de classes "final".

Até mais!

domingo, 29 de setembro de 2013

Alguém se lembra: Sonatinha?

Eu chamava de vitrolinha quando tinha 5 para 6 anos...


Para quem não sabe, Sonatinha é um toca-discos infantil (não sabe o que é um toca-discos? a Wikipédia explica :) ) feita pela empresa Sonata (eu acho...), que vinha com temas (desenhos no aparelho) como Mickey e a Turma da Mônica.

Dependendo do estado do LP, da agulha e do número de rotações (acho que a maioria era 33 1/2), o som chiava que era o diabo, mas era divertido.

Me lembro de tantas vezes que minha irmã mais velha ou amiguinha da escola me pedia emprestado para fazer bailinho (a gente era bem inocente naquele tempo...).

Para quem não tinha video-cassete (que era caro pra caramba, na época) era uma opção mais barata para a diversão da garotada. Até tinha uns disquinhos de histórias infantis que se vendia por aí (e os disquinhos eram todos coloridos :P ) :


Deixou saudades... (sei lá, mas acho que, antigamente, a gente tinha que ter "uma imaginação"...)

Até mais!

quinta-feira, 26 de setembro de 2013

Metro Photo Challenge 2013

Para aqueles que são fanáticos por fotografia:


Abriram as inscrições do Metro Photo Challenge 2013, um concurso de fotografia para as pessoas que estão começando a aprender a difícil arte de registrar um momento (ou seja, é para amadores :P ).

Quem quiser saber mais ou se inscrever, pode clicar nos links abaixo:

http://jornalmetro.com.br/nacional/photochallenge/metro-photo-challenge-2013-15836
http://www.metrophotochallenge.com/

Aos que participarem, boa sorte!

Até mais!

terça-feira, 24 de setembro de 2013

Dicas de Programação: Posso mudar o valor de um parâmetro em Java?

Resposta direta: Não! :P

Em Java, um parâmetro sempre é passado por valor (e não por referência). Ou seja, se eu fizer um código assim:

public class Main {
      public static void inc(int i) {
             i++;
      }
      public static void main(String args[]) {
            int a = 0;
            System.out.println("Valor de a : " + a);
            inc(a);
            System.out.println("Valor de a : " + a);
      }
}

O que será exibido na tela é:
Valor de a : 0
Valor de a : 0

O mesmo vale para uma String:

public class Main {
      public static void helloWorld(String str) {
             str += " - Hello World";
      }
      public static void main(String args[]) {
            String s = "Alo mundo";
            System.out.println(s);
            helloWorld(s);
            System.out.println(s);
      }
}

Tela:
Alo mundo
Alo mundo

Ou seja, o valor da variável passada por parametro não muda depois que você retorna para a função que o chamou...

Mas existe um jeito de contornar isso! :)

Podemos usar classes que possuem funções e/ou atributos que modificam o estado inicial de um objeto (hã, o que é isso???).

Para facilitar, vejamos o exemplo a seguir:

public class Main {
      public static void helloWorld(StringBuilder str) {
             str.append(" - Hello World");
      }
      public static void main(String args[]) {
            StringBuilder s = new StringBuilder("Alo mundo");
            System.out.println(s);
            helloWorld(s);
            System.out.println(s);
      }
}

Quando você executar, verá algo assim:
Alo mundo
Alo mundo - Hello World

A mesma coisa acontece se eu criar um atributo inteiro em uma classe:

class MutableInteger {
         public int i = 0;
         public String toString() {
                 return String.valueOf(i);
         }       
}

E incrementar este na função, passando um objeto instanciado desta: 

public class Main {
      public static void inc(MutableInteger b) {
             b.i++;
      }
      public static void main(String args[]) {
            MutableInteger a = new MutableInteger();
            System.out.println("Valor de a : " + a);
            inc(a);
            System.out.println("Valor de a : " + a);
      }
}

E o que será exibido é:
Valor de a : 0
Valor de a : 1

Uau! Que coisa estranha... :P

Até mais!

Alguém se lembra: PC Engine/TurboGrafx-16?

Nos tempos áureos da disputa entre a Sega e a Nintendo com seus consoles de 3a. geração (NES e Master System), a NEC meio que corria por fora, fabricando seu próprio video-game, o TurboGrafx-16.


Apesar de o nome ter o número 16, na verdade sua CPU principal era de 8 bits, ou seja, a mesma capacidade de processamento de seus rivais. Porém, como sua "GPU" era de 16, o console parecia realmente mais "poderoso".

Mesmo não tendo uma grande fama como as suas concorrentes (principalmente no ocidente), teve grandes jogos. Inclusive alguns da Sega, como Shinobi:


Da Capcom, Ghouls'n Ghosts:


E da Konami, Castlevania:


E foi uns dos primeiros consoles a usar CD como mídia de distribuição.

O video-game era graficamente superior a suas concorrentes, possuía jogos de qualidade e usava uma mídia inovadora para a época. Então, por que diabos ele não foi um sucesso???

Hum... (pensando) :P

Até mais!

domingo, 22 de setembro de 2013

Google em modo terminal!

Sabia que alguém fez um Google em modo terminal?

Pois é, não é que fizeram?


Isso sim que é saudades do BBS...

Quer acessar? Clique neste link http://elgoog.im/terminal/.

Até mais!

Alguém se lembra: Double Dragon no Master System?

Já disse que tive um Master System na infância? :P

Pois é, e um dos jogos mais inesquecíveis foi Double Dragon.


Double Dragon era um jogo de arcade muito famoso no começo da década de 80. Este contava a história dos irmãos Jimmy e Billy que juntos, tinham a missão de salvar Maria, a namorada de um deles (que não sei qual era...), das garras de uma gangue de malfeitores.

O legal era jogar de dois e socar todo mundo (inclusive seu amigo)! :)

Eu não tinha o jogo, mas um colega meu da escola tinha (nem sei se você lembra Jefferson, mas uma vez joguei o game em sua casa... -- hum... faz o que, uns 20 anos atrás? :P ).

Saudades daquele tempo em que a gente tinha por obrigação se divertir! :)

Até mais!

domingo, 15 de setembro de 2013

Curiosidade: Qual é o Primeiro Jogo Adventure de Video-Game?

O primeiro jogo de adventure de video-game foi criado em 1979 para o Atari 2600:


E se chama "Adventure"! :P

O conceito do jogo é bastante simples:
- Você é um cavaleiro (que é representado por um quadrado), que precisa obter um cálice que esta em um labirinto guardado por um dragão (que parece um pato), e devolve-lo para o castelo dourado.

Na época, como os jogos de Atari não vinham com manual (nem caixa tinha), a gente jogava na intuição mesmo. :P


Pesquisando um pouco, descobri que também é o primeiro jogo com "ovo de páscoa":
- Em certo ponto do labirinto, nos níveis de dificuldade 2 e 3, existe um ponto invisível, onde é possível atravessar para uma sala secreta. Nesta parte do jogo, aparece a seguinte frase na tela:

"Created by Warren Robinett"

É um jeito criativo de ser reconhecido, em uma época em que não se dava crédito aos programadores (pensando bem... ah, deixa pra lá! :P).

Até mais!

Papo & Yo: Jogo autobiográfico?

Dizem que toda a forma de expressão cultural (seja na forma de música, texto, pintura ou outros) representa, de certa maneira, uma parte da alma do autor.

Apesar da maioria dos jogos serem de enredo simples (salvar a princesa, salvar o mundo, etc.), um jogo me surpreendeu por ser algo mais do que isso...

Ele se chama Papo & Yo:


É um jogo conceitual indie, no estilo "adventure", feito pela Minority com base na engine "Unreal Engine 3".

Baseado na vida do designer do game Vander Caballero, o jogo conta a história de um menino chamado Quico que mora em uma favela do Brasil e vive com um pai alcoolatra e agressivo.

Para escapar das constantes agressões que recebe, ele parte para um mundo de aventuras junto com seu "amigo", o brinquedo chamado "Lula".


Para um jogo de baixo orçamento, possui belos gráficos e boa música.

Quem se interessou, é possível baixa-lo na PSN (Playstation 3) ou na Steam (PC):

"Grandes jogos não fazem com grandes orçamentos, mas sim, com grandes idéias!"

Até mais!

Idéias mirabolantes: Realidade "Imersiva"

Estava vendo um vídeo do canal zegraca3 de um grupo que teve uma idéia sensacional:



Putz, teve uma parte que me lembrou de uma época, onde a criançada só pensava em ser um dos "Cavaleiros de Zodíaco" (bem, agora provavelmente são adultos mas, daqui a um tempo, já podem realizar, pelo menos, este "sonho"). :P

"Cólera do Dragão!" -- como dizia, Shiryu de Dragão.

"Uau!" :P

Até mais!

terça-feira, 10 de setembro de 2013

Ducktales remasterizado e a cappella

Para os saudosistas de plantão que, assim como eu, sentem saudades das décadas de 80 e 90:

Uma vez eu disse que a Sega estava reeditando o famoso jogo Castle of Illusion (que foi sucesso aqui, pelo Master System) e que a Capcom também fazia a mesma coisa com DuckTales.

Pois é, agora os dois já foram lançados no Steam:
http://store.steampowered.com/app/237630/?l=portuguese (DuckTales)
http://store.steampowered.com/app/227600/?snr=1_7_15__13 (Castle of Illusion)

E, para lembrá-los dos bons tempos, que tal ouvir o tema em português, gravado originalmente por Luís Ricardo, a cappella?



Parabéns a "Ahsefordeu"! Você (ou vocês) me lembrou muito as tardes (ou seriam manhãs?) de Sábados. :)

Até mais!

quarta-feira, 4 de setembro de 2013

Curiosidade: Qual foi o primeiro jogo adulto de video-game?

Meninas e meninos menores de 18 anos, não leiam este post!

Eu sempre pensei que o primeiro jogo "adulto" fosse o X-MAN para Atari 2600:


Mas não é, parece que o primeiro título que se tem notícia é Beat 'Em & Eat 'Em:


Quem quiser ver estes jogos, o Youtube disponibiliza alguns vídeos (é só procurar "X-MAN Atari" e "Beat 'Em & Eat 'Em Atari").

Hum... Será que o pessoal de desenvolvimento de jogos daquela época era meio tarado? :P

Obs.1: Não, eu não vou colocar os vídeos aqui!
Obs.2: Ando meio sem assunto, ultimamente. :(

Até mais!

segunda-feira, 26 de agosto de 2013

Dicas para programação de sites mobile

Aqui vão as minhas dicas para quem esta iniciando neste maravilhoso e complicado mundo de site mobile:

- É possível implementar aplicações responsivas (onde a página se ajusta, através de folhas de estilos, conforme o tamanho da tela/navegador), porém é um pouco difícil de se fazer, se as telas de desktop e de mobile forem muito diferentes (Quer mais informações? Entre no site da wikipédia: http://pt.wikipedia.org/wiki/Web_Design_Responsivo).

- Evitem usar muitas imagens "pesadas" para web-mobile, para que o usuário não sinta uma "lentidão" no sistema.

- Efeitos visuais não são recomendáveis, pois alguns aparelhos de baixo processamento não suportam muito bem isso (travam, ficam lentos, etc.).

- Evitem usar tamanhos fixos no estilo e nos elementos, tentem usar o máximo possível de porcentagem ou "em".

- Se sua aplicação checar se o navegador é mobile via User-Agent (cabeçalho da página web onde pode-se identificar o navegador e sistema operacional que requisitou esta), vocês podem emular isso via plugins, como este:

 - Se necessário, não esqueçam da meta tag viewport:

- Se vocês não tiverem dispositivos para seus testes, pode-se emular alguns destes via web, através do site:
 http://www.mobilephoneemulator.com/ (Não é 100% confiável, mas é alguma coisa).
     
Obs.: Recomendação para esta ferramenta: para melhor emulação, abram esta url no Google Chrome (para testes no Android) e/ou no Safari (para testes no iPhone).

- Em testes finais, sempre usem dispositivos reais.

- Se for necessário implementar algum efeito visual, testem no pior dispositivo possível (com o menor processamento, tela pequena e pouca memória).

- Sei que isso vale mais para desenvolvimento nativo, mas sempre deem uma olhada nos guidelines disponíveis para Android (http://developer.android.com/design/index.html) e para iOS (https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/Introduction/Introduction.html), pois estes dão dicas legais para quem esta começando. :)

Espero que isso ajude alguém...

Até mais!

domingo, 25 de agosto de 2013

Eu, Ela e a Sofia (não, não sou eu :P)


Claro que ser prata da casa ajuda a ser notícia na TV (para quem não sabe, o cara se chama Reginaldo e ele trabalhou na rádio Educadora FM que faz parte do Grupo Bandeirantes de Comunicação). :P

Mas admiro a coragem deste dois (sair de empregos estáveis para viajar pelo Brasil não é uma coisa que muita gente faria...).



Vou ser sincero que, além da admiração, dá um pouquinho de inveja...

Espero que façam muitas amizades, que ouçam os bons conselhos e que evitem os maus. :)

Isso me lembrou um ditado oriental (para quem não percebeu: "Takemura" é um nome japonês :P ):

"O importante não é o destino final, mas o percurso que você faz para chegar até lá"

Boa viagem e boa sorte!

Até mais!

Jogo Brasileiro: Tormenta: O Desafio dos Deuses


Em um post mais antigo (sobre o mangá Holy Avenger, alguém se lembra?), falei de um pessoal que estava arrecadando dinheiro para elaboração de um jogo eletrônico baseado no cenário da revista (eles estavam precisando em torno de R$ 60.000,00).

Pois é, agora fui descobrir que eles conseguiram:
http://catarse.me/pt/tormentadesafio

Parabéns a todos que colaboraram nesta grande iniciativa (aos que pagaram, principalmente)! :)

Um video de "Game Test" feita por convidados esta disponível na Internet:


Obs.: Tomara que eles consigam terminar o jogo!

Boa sorte, pessoal! :)

Até mais!

Angry Video Game Nerd: The Movie - Official Trailer (HD)

Dica de seu Douglas Matoso (só para avisar as pessoas: esta em inglês):



"E.T., E.T., E.T.,..."

Sei lá, mas tenho a impressão de já ter visto esta expressão em algum lugar... (medo) :P

Até mais!

Aprenda a fazer jogos pelo youtube!


Uma vez eu disse que entrei em computação por querer fazer jogos e que, até certo momento em minha carreira, eu nunca tinha feito...

De certa maneira, não tenho muito tempo livre para começar um projeto deste tipo.

Mas também, eu nem sei como começar a programar (para os que não estão na área: por incrível que pareça, fazer sites para empresas é uma coisa totalmente diferente que fazer games)! :P

Porém, assistindo a um dos vídeos do canal do garotoverde no youtube, vi que ele citou uma pessoa que posta tutoriais de como criar jogos:

http://www.youtube.com/user/wemakeagame

Não sei como o cara tem tempo, mas a iniciativa é muito legal! :P

Valeu, agora vou tentar ver se começo a assistir e esboçar meu primeiro joguinho. ;)

Até mais!

Teste suas aplicações mobile com Appium


Appium é (mais) um framework de testes para aplicações mobile nativas ou híbridas que usa o protocolo WebDriver JSON Wire para executar seus scripts (não sabe o que é isso? Então clique aqui e aqui).

Pelos vídeos, parece legal (apesar que diz que pode ser programado em várias linguagens, os exemplos que vi estão em Python...).

O projeto atual é open-source e pode ser baixado (e também, para obter mais informações) no site:
http://appium.io/

Obs.: E sim, é mais um framework baseado em Selenium. :P

Até mais!

Alguém se lembra: E.T. para Atari 2600?


Dizem que uma crise ou mudança não ocorre por um único motivo específico e sim, por vários fatores.

Mas, em vários casos, sempre existe "o" fator principal, aquele que fica marcado como sendo "o" mais importante (como a Revolução Francesa, que culminou o início da era "Moderna").

Este tipo de coisa também ocorreu durante a história do video-game.

No final da década de 70 e começo da 80, a Atari havia se consolidado como "a" empresa de video-game. Porém, em 1982, com a abertura de desenvolvimento de jogos do console para terceiros e a falta de um controle de qualidade destes, a empresa viu seu império decaindo gradativamente (as pessoas estavam parando de comprar seus produtos).

Para dar uma reviravolta nesta situação, a companhia pensou num jeito fácil de tentar reviver seu principal produto: aproveitar o sucesso de crítica e de público do filme "E.T., o Extraterrestre" e criar um jogo baseado nele.

Parece uma boa estratégia, certo?

Talvez seria, se a empresa não desse um prazo de 5 semanas para que o jogo estivesse pronto (geralmente, o desenvolvimento de um bom jogo para Atari demorava em torno de 6 meses...).

E isso culminou em um dos maiores fracassos da indústria de video-game de todos os tempos (dizem que a Atari teve que alugar um terreno para enterrar milhares de cartuchos encalhados...) e determinou o que os especialistas chamam de a "Crise de 1983".

A partir daí, a empresa nunca mais se consolidou no mercado...

O que será que deu de errado?

Até mais!

Alguém se lembra: Caverna do Dragão?


Acho que a pergunta deveria ser ao contrário (Quem não se lembra??? :P).

A série animada conta a epopéia de seis (6) jovens que, por coincidência da vida (sempre ela....), foram transportados para um mundo de magia e cheio de mistérios, onde participam de muitas aventuras para encontrar o caminho que levem eles de volta para casa.

Não vou explicar mais, pois eu acho que pelo menos 95% de meus "leitores" já sabe desta história! :P

O problema deste desenho é que nunca foi criado um episódio final...

Mas um roteiro, criado por Michael Reaves, foi elaborado.

E, vendo isso, Reinaldo Rocha elaborou uma HQ baseado neste.

Muito bacana a iniciativa! :)

Se alguém se interessar, pode-se baixar um PDF desta, através deste link:
http://bit.ly/1dtV5Op

Obs.: Por favor, se alguém exigir direitos autorais, me diga, que eu retiro o post (não tenho dinheiro para pagar processos...). :P

Até mais!

quarta-feira, 21 de agosto de 2013

Os destemidos programadores open source

Dois colegas que tiveram a coragem (e não a preguiça, como eu :P ) de divulgar seus projetos, distribui-los gratuitamente e ainda deixar o código-fonte aberto (aplausos! :) ):

O Marcelo Costa esta desenvolvendo um jogo que mistura tetris com "palavras cruzadas" (atualmente esta bem simples -- pelo que entendi, ele dá um bônus quando forma a palavra LIST -- mas o conceito é interessante) chamado Lettres. Quem estiver interessado e quiser ver o código-fonte (em Java), o projeto esta disponível no SourceForge:
http://sourceforge.net/projects/neoclassics/

O Felipe Rayel e sua equipe desenvolveram um Xadrez On-line em PHP (sou suspeito de falar, mas xadrez sempre é divertido de se jogar! :P ) e outros projetos open source que também são bacanas de dar uma olhada:
http://www.rayel.org/softwares

Obs.: O legal dessas coisas é que dar para aprender a programar se divertindo! :)

Até mais!

quarta-feira, 7 de agosto de 2013

Alguém se lembra: Golden Axe?

Essa é para a turma do Zimbão. :)

No fim da década de 80, eu e minha turma de colégio nos reuníamos para fazer os "trabalhos" escolares no apartamento dos meus pais.

Claro que, nem sempre, a gente fazia os trabalhos...

De vez em quando, a gente brincava de esconde-esconde (sim, dentro do apartamento, imagina a confusão), de jogos de tabuleiro e de outras coisas (que eu nem me lembro...).

Mas o tempo passou, a gente cresceu e a moda na adolescência era jogar video-game.

E meu irmão, que era fanático por fliperama, conseguiu comprar um Mega Drive.

Assim, logo que o console entrou na minha casa, passou a ser a diversão da minha "turma" (e, claro, da "turma" do meu irmão).

Mas tinha um jogo, em especial, que todos nós curtíamos muito naquela época (e não era Street Fighter II...):


O famoso (e agora, saudoso) "Golden Axe".

"Golden Axe" era um jogo do tipo beat'em up (ou briga de rua, estilo "Double Dragon") ambientado em um mundo medieval (a la Caverna do Dragão) para um ou dois jogadores, onde esses podiam escolher entre um guerreiro (que possuia habilidades medianas), um anão (forte fisicamente, mas fraco em magia) e uma amazona (com pouca força física, mas com as melhores e poderosas magias).

A gente se divertia muito (para mim, o mais divertido do game era pegar o dragão de "bola de fogo" do inimigo, e soltar esse poder para tudo que é lado).

Putz, quantos inimigos (e aliados, desculpem pessoal... :P ) já matei com ele.

Saudades daquele tempo...

Até mais!

terça-feira, 6 de agosto de 2013

Sikuli Script: Automatização de Teste Gráfico



Sikuli Script é uma aplicação multiplataforma (GNU/Linux, MacOS X e MS-Windows) para automatização visual de eventos e ações para qualquer sistema.

Ele usa a linguagem Python para criação dos scripts.

Pelo que testei aqui, é muito fácil de se usar (muito legal ver ele procurando pela parte da imagem! ). :)

Mais informações, no site:
http://www.sikuli.org/

Até mais!

domingo, 28 de julho de 2013

Dicas de Programação: Que diabos são as operações "<<" e ">>" no Javascript?

São operadores de bit a bit. :)

Hum... Melhor ir as explicações:

- O operador "<<" desloca o valor bit a bit de uma variável, da direita para esquerda. Exemplo:

var inteiro = 1; //(64 bits) -> ...00000001 (1)
alert("Número original: " + inteiro);
inteiro = inteiro << 1; //descola uma "casa" para a esquerda (64 bits) -> ...00000010 (2)
alert("Número deslocado uma casa para a esquerda: " + inteiro);

- E o operador ">>" descola o valor bit a bit de uma variável, da esquerda para direita. Exemplo:

var inteiro = 4; //(64 bits) -> ...00000100 (4)
alert("Número original: " + inteiro);
inteiro = inteiro >> 2; //descola duas "casas" para a direita (64 bits) -> ...00000001 (1)
alert("Número deslocado duas casas para a direita: " + inteiro);

Se formos pensar bem, estes operadores "multiplicam" ("<<") ou "dividem" (">>") o número por dois. Isso acontece por causa que os computadores trabalham com números binários ("bi" igual a "dois", entendeu? :P )

Até mais!

Alguém se lembra: O Enigma da Pirâmide?

Um dos primeiros filmes que assisti no cinema (acho que foi no Cine Jequitiba, que nem existe mais...) era "O Enigma da Pirâmide".


O filme conta a história de um jovem Sherlock Holmes que, com seu mais "novo amigo" Watson, tentam desvendar os mistérios que estão acontecendo na escola em que cursam...

O enredo não tem nada "muito inteligente", mas é divertido. :)

E tinha a marca de Steven Spielberg (que estava em sua melhor "fase", com grandes filmes como "Indiana Jones" e "E.T.").

É um bom filme para a "Sessão da Tarde". :P

Até mais!

Alguém se lembra: Where in the world is Carmen Sandiego?


Joguei este game no Mega Drive em português (acho que graças a Tec Toy, que deve ter traduzido...), no tempo em que a caixa do cartucho era de papel.

O jogo é bem simples, tipo "Detetive", no qual o jogador coleta informações durante determinado tempo, para descobrir onde esta e quem roubou o artefato do caso.

Tudo muito textual, sem qualquer grande animação ou belos gráficos...

Mas que fez um grande sucesso! (tanto que foi criado um game-show e um desenho-animado baseado nele)

O que será que fez este jogo famoso, se não era "tecnologicamente" avançado para a época? :P

Até mais!

domingo, 30 de junho de 2013

Dicas de Programação: Qual é a diferença entre métodos public, protected, private e "default" no Java?

Dúvida de um pessoal aqui, que vou tentar (eu disse "tentar" :P ) explicar.

No Java, existem quatro tipos de "permissões" de acesso a métodos (isso também vale para classes e propriedades, com algumas exceções...) que, dependendo de sua escolha, parte do seu código-fonte vai ou não "enxerga-la" durante a execução/compilação deste. São elas:

- public : A mais fácil de explicar, pois todo código tem acesso a ela! :)
Exemplo:

Arquivo: Util.java

package teste.util;


public class Util {
           public void nothing() {
                    System.out.printf("Estou fazendo %s\n","Nada");
           }
}

Arquivo: Main.java

package teste.main;

import teste.util.Util;

public class Main {
           public static void main(String... args) {
                      Util util = new Util();
                      util.nothing();
           }
}

- private : A mais restrita das quatro, onde somente a classe que a declarou tem acesso:

Arquivo: Util.java

package teste.util;

public class Util {
            //Este método é chamado somente dentro desta classe
           private void privateNothing() {
                    System.out.printf("Estou fazendo %s\n","Nada");
           }

           public void publicNothing() {
                    System.out.println("Será que chamo?");
                    this.privateNothing();
           }
}

Arquivo: Main.java

package teste.main;

import teste.util.Util;

public class Main {
           public static void main(String... args) {
                      Util util = new Util();
                      //util.privateNothing(); //NÃO FUNCIONA
                      util.publicNothing();
           }
}

(Até aqui, foi bem simples explicar. Mas a partir de agora que vem o problema... :P)

- protected : Este "acesso" é meio estranho, mas vamos lá: a classe que declarou, as classes que estão no mesmo pacote e a classe que herdou desta, tem acesso a ela.
Putz... Confuso não? Melhor pedir ajuda ao exemplo. (universitários? nem pensar!) :P

Arquivo: Util.java

package teste.util;

public class Util {
           protected void protectedNothing() {
                    System.out.printf("Estou fazendo %s\n","Nada");
           }
}

Arquivo: Inutil.java

package teste.util;

//Não herdou mas esta no mesmo pacote (isto funciona!)
public class Inutil {
           public void nothing() {
                   Util util = new Util();
                   util.protectedNothing();
           }
}

Arquivo: HerancaUtil.java

package teste.heranca;
import teste.util.Util;

//Herdou, mas não esta no mesmo pacote (isto funciona!)
public class HerancaUtil extends Util {
           public void nothing() {
                   super.protectedNothing();
           }
}

Arquivo: Main.java

package teste.main;

import teste.heranca.HerancaUtil;
import teste.util.Inutil;
import teste.util.Util;

public class Main {
           public static void main(String... args) {
                      Util util = new Util();
                      //util.protectedNothing(); //NÃO FUNCIONA
                      Inutil inutil = new Inutil();
                      inutil.nothing();
                      HerancaUtil herancaUtil = new HerancaUtil();
                      herancaUtil.nothing();
           }
}

(Só falta uma... :) )

- default : O acesso é restrito as classes que estão no mesmo pacote, ou seja, classes que não estejam no mesmo pacote, mesmo as que herdam da que declarou o método, não o acessam.

Arquivo: Util.java

package teste.util;

public class Util {
           void defaultNothing() {
                    System.out.printf("Estou fazendo %s\n","Nada");
           }
}

Arquivo: Inutil.java

package teste.util;

//Não herdou mas esta no mesmo pacote (isto funciona!)
public class Inutil {
           public void nothing() {
                   Util util = new Util();
                   util.defaultNothing();
           }
}

Arquivo: HerancaUtil.java

package teste.heranca;
import teste.util.Util;

//Herdou, mas não esta no mesmo pacote (NÃO funciona!)
public class HerancaUtil extends Util {
           public void nothing() {
                   //super.defaultNothing(); //NÃO FUNCIONA
           }
}

Arquivo: Main.java

package teste.main;

import teste.heranca.HerancaUtil;
import teste.util.Inutil;
import teste.util.Util;

public class Main {
           public static void main(String... args) {
                      Util util = new Util();
                      //util.defaultNothing(); //NÃO FUNCIONA
                      Inutil inutil = new Inutil();
                      inutil.nothing();
           }
}

(Ufa, terminou! :) )

Espero que alguém compreenda o que esta escrito... :P

Até mais!

domingo, 23 de junho de 2013

Dragon Quest Caboclo

Quem já jogou Dragon Quest? E quem já ouviu Faroeste Caboclo de Renato Russo?

Se você já jogou e já ouviu e gosta dos dois, que tal ver um amálgama (mistura) feita por Marcos Castro  e seu irmão:



Bem bacana! Mas precisa ter paciência, pois é tão comprido quanto o som original. :P

Putz... Deu uma saudade de jogar um RPG...

Parabéns aos dois! E muito obrigado. :)

Até mais!

terça-feira, 18 de junho de 2013

Alguém se lembra: Programa Enigma?

Quando eu era adolescente (tinha uns 11 anos, eu acho...), o único programa de auditório que assistia na TV, era um que passava no Sábado, ás 19:00hs., na TV Cultura.


Ele se chamava Enigma.

Não sei o porque, mas aquele programa, com aquele cenário temático do Antigo Egito, mais aquela música tema de Indiana Jones, me encantavam de uma maneira muito especial (vai ver, por que eu era muito fã do filme :P ).

Tão especial que, o que sei de "História Antiga", devo muito a este "Game Show". 

"Eu os desafio a descobrirem o meu Enigma. E não se esqueçam: A morte virá com asas ligeiras, para aquele que perturbar o sono do faraó"

Humm... Pensando bem, várias crianças devem ter tido pesadelo ao assisti-lo... :P

Até mais! 

segunda-feira, 17 de junho de 2013

Alguém se lembra: Alex Kidd in Shinobi World?

Não sei se eu disse isso, mas tive a primeira versão do Master System da Tec Toy. :P

Joguei muito Hang-On, Safari Hunt (aquele, que usava a pistola Light Phaser), Keisenden, Shinobi e Alex Kidd in Miracle World...

Falando nesses dois últimos, sabia que tinha um game que fazia "merge" (mesclava, em tradução livre do informatiquês para português) do mundo de Shinobi e dos personagens de Alex Kidd.

O jogo se chamava "Alex Kidd in Shinobi World"


Eu achava o jogo muito mais legal e ágil que o Shinobi original do Master System, mas sentia falta das fases de bônus (aquele onde a gente atirava shurikens).


Porém, o mais interessante, é que o chefe da primeira fase, nas primeiras versões do jogo, tinha a cara do Mário.


Hum... Por que será? :P

Até mais!

domingo, 16 de junho de 2013

OpenCola - Coca-Cola Open Source

Todo mundo sabe que o que vai na Coca-Cola é um dos maiores segredos industriais no mundo.

Mas o que poucos sabem, é que existe um refrigerante de Cola que possui a fórmula distribuída para quem quiser obte-la.

Ele se chama "OpenCola".


Bacana, não? :)

Se quiser saber mais sobre esta bebida e/ou pegar sua receita, entre no Wikipédia:
http://en.wikipedia.org/wiki/OpenCola_(drink)

Pena que as informações estão em inglês (mas nada que o "Google Translate" não possa resolver...).

Obs.: Se alguém resolver executar a receita, não me chame (afinal, sou muito "jovem" para morrer envenenado...) -- brincadeira, pessoal. :P

Até mais!

Alguém se lembra: Mandiopã?

Quando eu tinha 7 anos (faz o quê, uns 29 anos atrás...), eu comia uma coisa frita e muita gordurosa chamada Mandiopã.


Mandiopã é um salgadinho feito basicamente de mandioca (daí o nome :) ) que era frito na hora, antes de comer. Muito parecido com "Baconzitos" da Elma Chips, só que não tinha tanto sal/tempero quanto esta (ou seja, era meio sem gosto...).

Minha vó sabia fazer... Pena que o tempo é um pouco cruel...

Saudades daquela época...  :)

Obs.: Acabei de me lembrar que tinha sabores de "Bacon", "Camarão" e outros. Mas para mim, tinha tudo o mesmo gosto de "Isopor" e, mesmo assim, era um delícia! :P

Até mais!

Dicas de Programação: Exibindo/Escondendo uma DIV em Javascript

Poxa, desculpa pessoal, mas andei meio ocupado aqui no trabalho (normal, eu acho... :P ).

Como estou meio sem assunto, vou postar um dica bem simples de Javascript. :)

<div id="teste">Visivel</div>

Existem duas maneiras de exibir/esconder uma div:

- A primeira é usar a propriedade "visibility" do style de um elemento:

<script>
//Torna a div invisível
document.getElementById("teste").style.visibility = "hidden";
</script>

<script>
//Torna a div visível
document.getElementById("teste").style.visibility = "visible";
</script>

- A segunda é usar a propriedade "display" da mesma:

<script>
//Torna a div invisível
document.getElementById("teste").style.display = "none";
</script>

<script>
//Torna a div visível
document.getElementById("teste").style.display = "block";
</script>

Agora você deve perguntar: qual é a diferença entre os dois?

A propriedade "visibility" só deixa o elemento visível ou invisível, mas deixa o espaço que ele ocupa na tela.

A propriedade "display" faz com que o elemento desapareça, retirando-o inclusive (ou seja, o espaço que ocupa também "desaparece").

É isso aí, estou realmente sem assunto... 

Até mais!

segunda-feira, 6 de maio de 2013

Organizações Tabajara apresenta: Hacker Typer (for developers only)


"O Scrum Master pega no pé por que você fica no Facebook o dia inteiro e não escreve uma linha de código?"

"O Tester fica reclamando que você só enrola e não entrega nada?"

"O Estagiário fica de olho em sua vaga, pensando que trabalha mais que você?"

"O Arquiteto acha que você fica vendo muitos vídeos no YouTube e que nunca ajuda a sua equipe?"

"Se esta é a sua situação, então seus problemas acabaram!"

"Utilize o nosso maravilhoso aplicativo Hacker Typer!"

http://www.hackertyper.com/

Hacker Typer é uma poderosa ferramenta que gera código-fonte aleatório em C a cada tecla pressionada. O que este aplicativo escreve pode não fazer o menor sentido (ou pode?), mas vai impressionar sua equipe e, principalmente, o seu chefe!

"Usei o Hacker Typer e hoje as pessoas me admiram!" -- Piu Gueites (Presidente da Maicrosulfite).

"Só estou onde estou, por causa desta ótima ferramenta!" -- Estive Jobs, não estou mais (Creative Director da Eipou).

Obs.: Brincadeira pessoal! (sou pobre, não me processem, please :( )

Até mais!