goncin@wordpress.com:~$ _

Linux, programação e toda sorte de nerdices

Arquivos de tags: humor

Gerador da letra da musiquinha do elefante em PHP

Divirtam-se! 😛

<?php

echo "1 elefante incomoda muita gente\n";

for($i = 2; $i <= PHP_INT_MAX; ++$i) {

	echo "$i elefantes ";

	for($j = 0; $j < $i; ++$j)
		echo 'incomodam ';

	echo "muito mais\n";

	++$i;

	echo "$i elefantes incomodam muita gente\n";

}
Anúncios

Grandes canções da (des)humanidade (em PHP, é lógico!)

Se analisarmos as letras de algumas das canções mais famosas que já surgiram, seja em solo nacional ou no resto do mundo, verificaremos que um estranho (porém constante) fenômeno assola os compositores: a falta de criatividade (em alguns casos, o excesso dela). Na maior parte das vezes, esse problema se traduz na repetição de versos, palavras, sílabas ou – na pior das hipóteses – vogais por toda a letra da música “afetada”.

Sabedor de que os computadores são ótimos com repetições, por que não implementar algum código para poupar os pobres compositores do trabalho entediante de escrever partes repetidas? Pensando nisso, e atendendo à sugestão do companheiro #SouDev Francisco Prado, achei por bem rascunhar algumas linhas de exemplo no velho e bom PHP, referentes a algumas músicas que me ocorreram. Divirtam-se, com moderação 8) .

<?php

  class GeradorLetraMusica {

    /********************************************************************************
     * Música: Era um Garoto que Como Eu Amava os Beatles e os Rolling Stones
     * Banda: Engenheiros do Hawaii
     */
    static public function refraoEraUmGarotoQueComoEu() {
      // Aqui tive de cortar um pouco o nome do método. Apesar de o PHP não ter um
      // erro do tipo "identifier too long", isso aqui não é Java, p*rra!
      for($i = 0; $i < 7; ++$i)
        echo 'Ratatata ';
    }

    /********************************************************************************
     * Música: Patience
     * Banda: Guns N' Roses
     */
    static public function introPatience() {
      global $boca;

      while(! $boca->lingua->estaDormente())
        $boca->assobiar();
    }

    /********************************************************************************
     * Música: Mmm Mmm Mmm Mmm
     * Banda: Crash Test Dummies
     */
    static public function refraoMmmMmmMmmMmm() {
      // Nem compensa fazer loop...
      echo 1 1 1 1 1 1 1 1;
    }

    /********************************************************************************
     * Música: Rebolation
     * Banda (?!): Parangolé
     */
    static public function refraoRebolation() {
      global $sujeito;
      do {
        echo 'Rebolation, tion, tion ';
      } while ($sujeito->consegueEsquecer());
    }

    /********************************************************************************
     * Música: Galopeira
     * Intérprete: Donizete
     */
    static public function refraoGalopeira($folego = 60 /* Você aguenta? */) {
      echo 'Galop';
      for($i = $folego - 2; $i >=0; --$i)
        echo 'e';

      // O laço "for" acima não acaba com o fôlego
      // porque tem de sobrar um pouquinho para o final
      echo 'ira, nunca mais te esquecereeeei';
    }

    /********************************************************************************
     * Música: Trolololo
     * Intérprete: Homem do Trolololo
     */
    static public function refraoTrolololo() {
      setlocale(LC_ALL, 'ru');
      while(true) {
        echo 'Трололололололололололо ';
      }
    }

  }

Vídeos no Youtube para quem quiser conferir as canções:

Ditados populares em PHP (parte 3): a batelada final

Depois da parte 1 e da parte 2, eis o encerramento da trilogia. Vocês ainda riem disso? 😛

<?php

  /*********************************************/

  if (count($andorinhas) > 1)
    $verao = new Verao();

  /*********************************************/

  do
    $gado->comer($gado->getOwner()->getOlhos());
  while (! $gado->isGordo());

  /*********************************************/

  //$dinheiro->trazer($felicidade);
  $dinheiro->mandarBuscar($felicidade);

  /*********************************************/

  if ($santo->getOrigem() !== $this->getCasa())
    $santo->fazerMilagre();

  /*********************************************/

  if($ladrao->getVitima() instanceof Ladrao)
    $ladrao->setPena(-100);

  /*********************************************/

  while($alegria)
    if ($sujeito->getCondicaoEconomica() == CondicaoEconomica::POBRE)
      break;

  /*********************************************/

  while($this->estaCantando())
    --$this->males;

  /*********************************************/

  switch($this->getCasa()->getTelhado()->getMaterial()) {
    case Material::CERAMICA:
    case Material::MADEIRA:
    //case Material::VIDRO:
    case Material::FIBROCIMENTO:
    case Material::PLASTICO:
      $this->atirarPedra($vizinho->getCasa()->getTelhado());
      break;
    case Material::PALHA:
      throw new Exception('ERRO: Esta é a casa do Cícero, o porquinho preguiçoso. Não resiste a nada.');
  }

  /*********************************************/

  foreach($palheiro as $objeto)
    if ($objeto instanceof Agulha)
      break;

  /*********************************************/

  if($terra->getOwner() === 'saci')
    foreach($rasteiras as $rasteira)
      $rasteira = Golpe::VOADORA;

  /*********************************************/

  while ($sujeito->getEstado() == BEBADO)
    $sujeito->getAnus()->setOwner(null);

Top 5 – Pérolas das buscas que chegam a este blog

Pois é, tem gente que chega aqui procurando por cada coisa… Mas algumas são realmente sem noção, e merecem ser mencionadas nos anais da comédia. Lá vai:

5. “qual a aparencia grafica do ubuntu”

O sujeito que procurou por isso ou acabou de ouvir falar do Ubuntu ou (o mais provável) não conhece o Google Images.

4. “ditado da batatinha do olho”

Está certo que a cultura popular é pródiga em criar ditados populares (veja alguns deles aqui e ali também – numa nova roupagem 😉 ), mas esse ditado da “batatinha do olho” nem o Grande Oráculo me esclareceu o que seria.

3. “fazer um programa que recebe um numero e”

Sobrinhagem típica. Acho que eu deveria dar um header('location:http://www.zemoleza.com.br'); nessa busca.

2. “onde entra o html na orientação a objeto”

Alguém precisa avisar o(a) garoto(a) aí de que HTML é uma linguagem de marcação, e não de programação.

1.”diferenca jquery javascript”

Alguém se habilita a explicar? É tão filosoficamente profundo que eu não conseguiria. 😀

E se as linguagens de programação fossem jogadores de futebol?

Java

Zagueiro das antigas, pesadão. Chegou a ser cogitado para ser o capitão do time, mas só para dirigir uma palavrinha ao juiz ele precisava declarar uma classe pública, um método estático main() para só então dizer alguma coisa via System.out.println(). Nenhum árbitro teria a paciência de esperar tanto.

Pascal

Bom jogador, disciplinado taticamente, desde que expliquem para ele em detalhes, durante a preleção (interface), o que deve fazer durante o jogo (implementation). Como podem deduzir, improviso não é com ele.

Delphi

Irmão mais novo do Pascal, mais bonitinho (segundo as marias-chuteiras), só que, por outro lado, bem mais pesado.

C

Rápido e pequeno (baixinho), mas com um grande defeito de caráter: colocar toda a responsabilidade pelos seus erros nas mãos do técnico.

C++

Irmão do meio do C. Vive se gabando de ter herdado suas características de jogo de duas escolas ao mesmo tempo. (Update) Vive atazanando o mano mais velho chamando-o de “sem-classe”.

C#

Irmão mais novo do C e do C++, o mais educado da família. Mas só joga na presença do seu empresário, um tal de Dotinéti.

PHP

Jogador versátil, atua tanto na linha (de comando) quanto nas redes. É o garoto de recados do técnico (apesar de sua cara de interrogação), echoando as instruções dos técnicos para os colegas. Alguns o consideram um mercenário, por ostentar inúmeros $.

Ruby

Atleta surpreendente, tem sempre uma jogada nova. Pena que muitos técnicos não lhe dão o devido valor, talvez porque não consigam compreendê-lo muito bem. Rende melhor calçando as chuteiras OnRailsTM.

Python

Elegante, joga pelas laterais, mas costuma deixar muito espaço à esquerda, o que faz a alegria do ataque adversário.

Perl

Jogador estrangeiro e um tanto quanto mercenário ($), tem a fama de jogar bem. O difícil é falar a língua dele…

ASP/VBScript

Limitado tecnicamente e já em fim de carreira. Fez muito sucesso no passado, só continua jogando porque alguns treinadores o consideram “insubstituível”. Vive brigando pela posição com o PHP. Também faz parte da turma dos mercenários, preocupado com a percentagem (%) do bicho em caso de vitória da equipe.

Flex/ActionScript

Bom jogador, é bonitão (não vive sem um Flash), mas também polêmico. É um dos poucos atletas a ter um hate club, liderado pela Maçãzinha (da turma da Moranguinho).

Ditados populares em PHP (parte 2)

Depois do sucesso de público e de crítica da primeira parte dos ditados populares em PHP, deixo vocês com a parte 2. Divirtam-se! 😀

<?php

  /*********************************************/

  if($vaca->getLocation() == 'brejo')
    die();

  /*********************************************/

  $dono = $coisa->getOwner();
  if($dono == 'César' || $dono == 'Deus')
    $coisa->entregarPara($dono);

  /*********************************************/

  $x = count($canoa->getPaus());
  echo "Esta canoa foi feita com $x paus.";

  /*********************************************/

  if(date('H:i:s') > '19:00:00')
    foreach($gatos as $gato)
      $gato->setColor('#330000');

  /*********************************************/

  function curiosidade() {
    return shell_exec('kill $(pgrep gato)');
  }

  /*********************************************/

  $outro->setFocinho($um->getCara());

  /*********************************************/

  if(empty($mente))
    Diabo::setOficina($mente);

  /*********************************************/

  while (isVida())
    $esperanca = true;
  $esperanca = NULL;

  /*********************************************/

  if(! in_array('padrinho', $parentada))
    die('pagão');

  /*********************************************/

  define('MAE_COUNT', 1);

  /*********************************************/

  $boi->setDestination($vaca->getDestination());

  /*********************************************/

  if(! empty($saco))
    $saco->ficarEmPe();
  else
    throw new Exception("Encha o $saco.");

  /*********************************************/

  if ($desgraca < 3)
    $desgraca = 'bobagem';

  /*********************************************/

  if(count($remedios) == 0)
    $remediado = true;

  /*********************************************/

  if($terra->getOwner() == 'cego' && count($pessoa->getOlhos()) == 1)
    $terra->coroarComoRei($pessoa);

  /*********************************************/

  array_reverse($pessoas);

  /*********************************************/

  $passaroNaMao->setValue(($passaroVoando->getValue() * 2) + 1);

  /*********************************************/

  switch($cavalo->getModoAquisicao()) {
    case COMPRADO:
    case NASCIDO_NA_FAZENDA:
    case ACHADO:
    case ROUBADO:
    //case DADO:
      $cavalo->verificarDentes();
      break;
  }

  /*********************************************/

  echo 'Com quem andas?';
  $amigo = fgets(STDIN);
  echo "Tu és $nome_pessoa";

  /*********************************************/

Ditados populares em PHP

Faz algum tempo, comecei, meio de farra, uma série de twits “traduzindo” ditados populares para PHP. A coisa foi crescendo e fui recebendo feedbacks positivos de gente se divertindo com eles, e de outros que dizem até estar aprendendo PHP com meus ditados 😛 .

Para quem ainda não viu, para quem quer ver de novo, e para servir também como arquivo, resolvi reuni-los neste post. Alguns deles foram até, digamos, “refatorados“.

UPDATE: não deixe de conferir também a parte 2. 😉

<?php

  /*********************************************/

  if (Tempo::getEstado() == Tempo::CHUVOSO)
    $cavalinho->recolher();

  /*********************************************/

  try {
    $this->vencer($eles);
  }
  catch(Exception $e) {
    $this->juntarSeA($eles);
  }

  /*********************************************/

  if (! in_array ($cachorro, $this->meusAnimais))
    $this->cacarCom($gato);

  /*********************************************/

  if ($casa->getOwner() == 'ferreiro')
    $espeto = new Espeto('pau');

  /*********************************************/

  foreach($macacos as $macaco) {
    $galho = new Galho();
    $galho->receber($macaco);
  }

  /*********************************************/

  if ($seguro->idade >= 80) die();

  /*********************************************/

  if ($filho->getParent() == 'peixe')
    $filho->setType('peixinho');

  /*********************************************/

  if (in_array('piranha', $rio->getPeixes()))
    $jacare->setEstiloNadar(NADO_COSTAS);

  /*********************************************/

  if ($olhos->getOwner() != $this) {
    $refresco = $pimenta;
    $refresco->colocarEm($olhos);
  }

  /*********************************************/

  if($homem->isPrevenido())
    $homem->setValor($homem->getValor() * 2);

  /*********************************************/

  if ($pessoa->horaAcordou < strtotime('7:00'))
    DEUS::ajudar($pessoa); // Deus é SINGLETON!

  /*********************************************/

  if ($pessoa->temBoca())
    goto Roma;
  // Milhares de linhas de código depois...
  :Roma
    echo ('Parabéns, você chegou a Roma');

  /*********************************************/

  $numGraos = 0;
  do {
    $numGraos++;
    $galinha->getPapo()->setNumGraos($numGraos);
  } while (! $galinha->getPapo()->isPapoCheio());

  /*********************************************/

  if ($macaco->getIdade() >= 60 && $macaco->getMao()->getOndeEsta() == 'cumbuca')
    throw new Exception('Tire a mão daí!!!');

  /*********************************************/

  $agua->setConsistencia('mole');
  $pedra->setConsistencia('dura');
  while(! $pedra->estaFurada())
    $agua->bater($pedra);

<?php

/*********************************************/

if (Tempo::getEstado() == Tempo::CHUVOSO)
$cavalinho->recolher();

/*********************************************/

try {
$this->vencer($eles);
}
catch(Exception $e) {
$this->juntarSeA($eles);
}

/*********************************************/

if (! in_array ($cachorro, $this->meusAnimais))
$this->cacarCom($gato);

/*********************************************/

if ($casa->getOwner() == ‘ferreiro’)
$espeto = new Espeto(‘pau’);

/*********************************************/

foreach($macacos as $macaco) {
$galho = new Galho();
$galho->receber($macaco);
}

/*********************************************/

if ($seguro->idade >= 80) die();

/*********************************************/

if ($filho->getParent() == ‘peixe’)
$filho->setType(‘peixinho’);

/*********************************************/

if (in_array(‘piranha’, $rio->getPeixes()))
$jacare->setEstiloNadar(NADO_COSTAS);

/*********************************************/

if ($olhos->getOwner() != $this) {
$refresco = $pimenta;
$refresco->colocarEm($olhos);
}

/*********************************************/

if($homem->isPrevenido())
$homem->setValor($homem->getValor() * 2);

/*********************************************/

if ($pessoa->horaAcordou < strtotime(‘7:00’))
DEUS::ajudar($pessoa); // Deus é SINGLETON!

/*********************************************/

if ($pessoa->temBoca())
goto Roma;
// Milhares de linhas de código depois…
:Roma
echo (‘Parabéns, você chegou a Roma’);

/*********************************************/

$numGraos = 0;
do {
$numGraos++;
$galinha->getPapo()->setNumGraos($numGraos);
} while (! $galinha->getPapo()->isPapoCheio());

/*********************************************/

if ($macaco->getIdade() >= 60 && $macaco->getMao()->getOndeEsta() == ‘cumbuca’)
throw new Exception(‘Tire a mão daí!!!’);

/*********************************************/

$agua->setConsistencia(‘mole’);
$pedra->setConsistencia(‘dura’);
while(! $pedra->estaFurada())
$agua->bater($pedra);

The Aspira Linux Foundation

Aspira Linux

Pois é. Já são quase dois seis meses (em junho de 2010) e ainda estamos aguardando um release do Aspira Linux. Visto que o próprio Nerdson admitiu problemas  com o cronograma de lançamento da distro, usurpei o cargo de palpiteiro-mor da The Aspira Linux Foundation, para sugerir (impor?) o que segue:

  • O tema padrão, obviamente, não pode ser preto (porque aspira não é caveira). No máximo, cáqui-camuflagem;
  • O Aspira Linux era para ser baseado no Várzea Linux, por sua vez honroso descendente do Slackware, e teria o E17 (o melhor gerenciador de janelas que [quase] ninguém usa) como padrão. Mas, já que o prazo está apertado, que seja baseado no Satux com GNOME mesmo;
  • Como grande e original inovação, o Aspira Linux teria quatro releases anuais, conforme as estações do ano (aqui no Brasil): Mormaço, Enchente, Calorão e Seca.

Agora vai! 😛

%d blogueiros gostam disto: