domingo, junho 22, 2014

Entrada e saída simples em modo gráfico com Java

Em Java, assim como no Visual C++/CLI, você tem o trabalho de criar seu formulário e todos os controles necessários (no caso, rótulos, caixas de texto e botões).  E da mesma forma, observe que o código, presente no método HandleButtons(), é praticamente o mesmo.  Embora atualmente vigore o Java 7, este código foi escrito em Java 1.  De fato, trata-se de uma applet que foi transformada em aplicação com a inclusão do método main().  O código não faz muita coisa, além de aceitar a entrada de dois strings nas caixas de texto rotuladas como Nome e Sobrenome, e concatená-los no rótulo e na caixa de texto da parte inferior do formulário.  Não é nada extraordinário, mas ilustra as operações básicas de entrada e saída das aplicações visuais tão comuns hoje em dia.  Até o momento nós pudemos comparar Visual Basic, Visual C#, Visual C++ e Java.  Veja o código e a janela que mostra o formulário. 
Java

terça-feira, junho 10, 2014

O direito à barriga não é privilégio da nossa mídia golpista

Há cerca de duas semanas a CNN matou o Pelé, vocês ficaram sabendo? Podem conferir em http://www.mediaite.com/online/cnn-kills-off-the-very-much-alive-pele-quickly-retracts/
Em termos de (para)jornalismo murdochiano, quem será que está ensinando e quem está aprendendo? A TV ianque ou a Falha de S.Paulo? Lembra quando a Falha, o jornal a serviço da ditabranda, matou o Tuma? Recordar é viver: http://www1.folha.uol.com.br/poder/804535-folhacom-errou-senador-romeu-tuma-nao-morreu-e-permanece-internado.shtml
E por falar em jornalismo de esgoto, esta é a "barriga" do século: http://www.novomilenio.inf.br/festas/1abril7.htm . Essa trapalhada ficou conhecida como “boimate”, quando a Veja-copia-e-cola caiu no conto de 1º de abril da revista inglesa News Science. Para saber mais do pasquim da famiglia Civita e da racista Naspers: https://sites.google.com/site/luisnassif02/
Não poderia finalizar sem incluir a nossa Vênus Platinada:

quinta-feira, junho 05, 2014

O mundo perfeito dos desinformados

Já que a nossa mídia fala tão mal do Brasil e dos brasileiros, dando a entender que somos inferiores, resolvi tentar descobrir como o Primeiro Mundo e Patópolis são tão perfeitos.  E fiquei desapontado. Eis o porquê:
Para quem não gosta de ler ou tem preguiça, este é o último parágrafo deste artigo da Piauí, do Estadão, porta-voz da direita:
“A verdade sobre a Itália está aqui, na Ikea”, diz Nando, balconista com diploma universitário. “Basta saber ler os números: a Pisa, foram enviados 28 mil currículos; a Pescara, 30 mil; em Catânia, 43 mil pessoas aspiravam a uma colocação. Todos jovens desempregados. Essa é a Weimar sem hiperinflação, isso é 1929. É a Eurozona. Mas ninguém ousa chamar o diabo pelo nome. Somos um país falido e nos engabelam com essa história de retomada. Não tenho mais nada a dizer.” E sai, empurrando mais um carrinho abandonado em direção ao corredor 22. 


  • Estados Unidos - Até o pasquim nazi-fasci-sionista que pertence à famiglia Civita e ao grupo racista sul-africano Naspers, guia de compras dos sacoleiros ávidos pelos espelhinhos e bugigangas de Patópolis, reconhece:
http://veja.abril.com.br/blog/ricardo-setti/vasto-mundo/impressionante-varias-grandes-cidades-dos-eua-tem-taxas-de-homicidios-muito-superiores-as-de-sao-paulo-e-mesmo-do-rio-new-orleans-chega-perto-de-honduras-o-pais-mais-violento-do-mundo-confiram-os/

Creio que são leituras que deveríamos recomendar para pessoas desinformadas ou mal informadas e portadores de complexo de vira-lata, especialmente os coxinhas do Facebook que agem como mulas ao espalhar boatos e contrainformação.
Dizem que o mal do século, a ignorância, não tem cura.  No entanto, um dos mais eficazes remédios (para remediá-la) é a leitura.

domingo, junho 01, 2014

A Pequena Loja da Rua Principal

É um filme tcheco de 1965 dirigido pelo húngaro Ján Kadár e pelo tcheco Elmar Klos.  Ambos nasceram ainda na época do Império Austro-Húngaro, que englobava entre outros países e regiões, as atuais República Tcheca e a Eslováquia.  E dirigiram juntos “O Acusado” (Obzalovany, 1965) e “Desire Called Anada” ou “Adrift” (Touha zvaná Anada,1970), além de “A Pequena Loja da Rua Principal” (Obchod na korze).

Não vou contar o filme, mas farei um pequeno resumo.  Nazistas de ocupação estavam nacionalizando todas as empresas dos judeus, quando um carpinteiro eslovaco ficou encarregado como “controlador ariano” de uma loja de botões, cuja gerente era uma velha judia.  Já meio surda, ela não entendia nada, nem que uma guerra estava acontecendo.  A comunidade judia achou melhor pagar o eslovaco para que ele fosse o assistente dela, para que ela não fosse enviada para o extermínio.  O drama vira suspense quando os nazistas decidiram exterminar todos os judeus.  Bem, o fim deste filme é, ao mesmo tempo, triste e surpreendente.  E, apesar da temática, destoa bastante daqueles clichês hollywoodianos, como “O Menino do Pijama Listrado” (Mark Herman, 2008) e “A Menina que Roubava Livros” (Brian Percival, 2013).

Menos aclamados do que o compatriota Milos Forman, de “Um Estranho no Ninho” (1975) e “Amadeus” (1984), que também foi vítima do nazismo, Kadár e Klos têm uma obra impressionante.  Recomendo, e muito.  Mas só para quem curte cinema como arte.
Veja o trailer no YouTube

Entrada e saída simples em modo gráfico com Visual C++/CLI

Enquanto que no Visual Basic e no Visual C# você tem o conforto de apenas entrar algumas linhas de código para ver sua aplicação funcionar, no Visual C++/CLI você tem o trabalho de criar seu formulário e todos os controles necessários (no caso, rótulos, caixas de texto e botões).  Mas observe que o código, presente nos métodos AcionaBotao, é praticamente o mesmo.

#pragma once
using namespace System;
using namespace System::Windows::Forms;
using namespace System::Drawing;

namespace EntradaSaida
{
public ref class Tela: public Form
{
private:
Label^ lblNome;
Label^ lblSaida;
Label^ lblSobreNome;
Button^ cmdSair;
Button^ cmdEntrar;
Button^ cmdConcatenar;
Button^ cmdLimpar;
TextBox^ txtNome;
TextBox^ txtSobreNome;
TextBox^ txtSaida;
void CriaRotulo1();
void CriaRotulo2();
void CriaRotulo3();
void CriaBotao1();
void CriaBotao2();
void CriaBotao3();
void CriaBotao4();
void CriaTexto1();
void CriaTexto2();
void CriaTexto3();
void AcionaBotao1(Object^ obj, EventArgs^ ea);
void AcionaBotao2(Object^ obj, EventArgs^ ea);
void AcionaBotao3(Object^ obj, EventArgs^ ea);
void AcionaBotao4(Object^ obj, EventArgs^ ea);

public:
Tela()
{
lblNome = gcnew Label;
lblSobreNome = gcnew Label;
lblSaida = gcnew Label;
cmdEntrar = gcnew Button;
cmdConcatenar = gcnew Button;
cmdLimpar = gcnew Button;
cmdSair = gcnew Button;
txtNome = gcnew TextBox;
txtSobreNome = gcnew TextBox;
txtSaida = gcnew TextBox;

Text = "Entrada e Saída Simples";
Size = ::Size(310, 350);
FormBorderStyle = ::FormBorderStyle::Fixed3D;
StartPosition = FormStartPosition::WindowsDefaultLocation;
MaximizeBox = false;
MinimizeBox = false;

CriaRotulo1();
CriaRotulo2();
CriaRotulo3();
CriaBotao1();
CriaBotao2();
CriaBotao3();
CriaBotao4();
CriaTexto1();
CriaTexto2();
CriaTexto3();
return;
}
};
void Tela::CriaRotulo1()
{
lblNome->AutoSize = true;
lblNome->Text = "Nome :";
lblNome->Location = ::Point(20,20);
Controls->Add(lblNome);
return;
}
void Tela::CriaRotulo2()
{
lblSobreNome->AutoSize = true;
lblSobreNome->Text = "Sobrenome :";
lblSobreNome->Location = ::Point(20, 50);
Controls->Add(lblSobreNome);
return;
}
void Tela::CriaRotulo3()
{
lblSaida->AutoSize = true;
lblSaida->Text = "";
lblSaida->Location = ::Point(20,150);
Controls->Add(lblSaida);
return;
}
void Tela::CriaTexto1()
{
txtNome->Size = ::Size(100, 25);
txtNome->Location = ::Point(100, 20);
Controls->Add(txtNome);
return;
}
void Tela::CriaTexto2()
{
txtSobreNome->Size = ::Size(100, 25);
txtSobreNome->Location = ::Point(100, 50);
Controls->Add(txtSobreNome);
return;
}
void Tela::CriaTexto3()
{
txtSaida->Size = ::Size(200, 25);
txtSaida->Location = ::Point(20,200);
Controls->Add(txtSaida);
return;
}
void Tela::CriaBotao1()
{
cmdEntrar->Text = "Entrar";
cmdEntrar->Height = 25;
cmdEntrar->Width = 75;
cmdEntrar->Location = ::Point(20,80);
cmdEntrar->Click += gcnew EventHandler(this, &Tela::AcionaBotao1);
Controls->Add(cmdEntrar);
return;
}
void Tela::AcionaBotao1(Object^ obj, EventArgs^ ea)
{
lblSaida->Text = txtNome->Text + txtSobreNome->Text;
txtSaida->Text = txtNome->Text + txtSobreNome->Text;
txtNome->Focus();
return;
}
void Tela::CriaBotao2()
{
cmdConcatenar->Text = "Concatenar";
cmdConcatenar->Height = 25;
cmdConcatenar->Width = 75;
cmdConcatenar->Location = ::Point(110,80);
cmdConcatenar->Click += gcnew EventHandler(this, &Tela::AcionaBotao2);
Controls->Add(cmdConcatenar);
return;
}
void Tela::AcionaBotao2(Object^ obj, EventArgs^ ea)
{
lblSaida->Text = txtNome->Text + " " + txtSobreNome->Text;
txtSaida->Text = txtNome->Text + " " + txtSobreNome->Text;
txtNome->Focus();
return;
}
void Tela::CriaBotao3()
{
cmdLimpar->Text = "Limpar";
cmdLimpar->Height = 25;
cmdLimpar->Width = 75;
cmdLimpar->Location = ::Point(200,80);
cmdLimpar->Click += gcnew EventHandler(this, &Tela::AcionaBotao3);
Controls->Add(cmdLimpar);
return;
}
void Tela::AcionaBotao3(Object^ obj, EventArgs^ ea)
{
lblSaida->Text = "";
txtSaida->Text = "";
txtNome->Clear();
txtSobreNome->Clear();
txtNome->Focus();
return;
}
void Tela::CriaBotao4()
{
cmdSair->Text = "Sair";
cmdSair->Height = 25;
cmdSair->Width = 60;
cmdSair->Location = ::Point(200,250);
cmdSair->Click += gcnew EventHandler(this, &Tela::AcionaBotao4);
Controls->Add(cmdSair);
return;
}
void Tela::AcionaBotao4(Object^ obj, EventArgs^ ea)
{
Application::Exit();
return;
}
}

Mídia golpista hoje

Domingo é dia de folhear os jornalões e tentar entender o que a máfia dos barões da mídia está querendo que a gente acredite. O Globo, en...