quarta-feira, 30 de dezembro de 2009

Exército... Vou?! Não Vou??!

É o que vou descobrir semana que vem! :D



Desejo um excelente 2010 para todos e deixo um papel de parede de presente!


Download em 1024×768, 1280×1024, 1440x900, 1600x1200, 2560x1600

Boas festas para todos!!

terça-feira, 8 de dezembro de 2009

Criando/Baixando/Listando/Apagando Arquivos no Delphi ASP.NET

Olá pessoal!

Hoje vou mostrar como criar arquivos .txt ou .sql com Delphi ASP.NET em tempo de execução a partir de uma string qualquer, gravar estes arquivos no servidor e descer para o usuário, também vou mostrar como listar os arquivos gerados, apagar e ler os dados de cada arquivo, recomendo a leitura do artigo Trabalhando com Diretórios e Arquivos do Blog Geeks .NET, lá o meu colega Mateus Chies já demonstrou algumas dessas funções da classe System.IO.

Bom, neste exemplo temos uma página que executa SQL diretamente no banco e exibe os resultados em uma gridView, após isso temos uma função que pega estes dados e gera um arquivo SQL com comandos para inserir (INSERT INTO ...) e disponibiliza o arquivo .SQL pra download, vamos primeiramente fazer a procedure que gera a SQL a partir de um dataset e grava o arquivo no servidor.


procedure TExemplo.GerarSQLInsert(ds:dataset);
var
C,R: Integer;
sql: StringBuilder;
caminho, arquivo:string;
arq: System.IO.FileInfo;
dir: System.IO.Directory;
stream: System.IO.StreamWriter;
begin
{$REGION 'Cria SQL Insert'}
sql := StringBuilder.Create;
// Inicia transação na banco
sql.appendLine('BEGIN TRANSACTION');
sql.appendLine('GO');
sql.AppendLine('');
// Registros Encontrados
for R := 0 to ds.Tables[0].Rows.Count - 1 do
begin
// Inicia comando Insert com Nome da Tabela
sql.AppendLine('INSERT INTO '+txbNomeTabela.Text+' (');
// Recupera Campos/Atributos
for C := 0 to ds.Tables[0].Columns.Count - 1 do
begin
// Se não for última coluna precisa vírgula
if C <> ds.Tables[0].Columns.Count -1 then
sql.AppendLine(ds.Tables[0].Columns.Item[C].ColumnName+', ')
else
sql.AppendLine(ds.Tables[0].Columns.Item[C].ColumnName);
end;
// Fecha Atributos
sql.AppendLine(') ');
// Dado de cada Atributo
sql.AppendLine('VALUES (');
for C := 0 to ds.Tables[0].Columns.Count - 1 do
begin
// Se não for última coluna precisa vírgula
if C <> ds.Tables[0].Columns.Count -1 then
begin
if ds.Tables[0].Rows.Item[r].Item[c].ToString().TRIM <> '' then
begin
// Verifica se o tipo é double
if NumeroValido(ds.Tables[0].Rows.Item[r].Item[c].ToString().TRIM) then
sql.AppendLine(ds.Tables[0].Rows.Item[r].Item[c].ToString().TRIM+', ')
else // Se não deve ser string e precisa aspas
sql.AppendLine(' '''+ds.Tables[0].Rows.Item[r].Item[c].ToString().TRIM+''', ');
end
else
sql.AppendLine('NULL, ');
end
else
begin
// Verifica se tem valor
if ds.Tables[0].Rows.Item[r].Item[c].ToString().TRIM <> '' then
begin
// Verifica se o tipo é double
if NumeroValido(ds.Tables[0].Rows.Item[r].Item[c].ToString().TRIM) then
sql.AppendLine(ds.Tables[0].Rows.Item[r].Item[c].ToString().TRIM)
else // Se não deve ser string e precisa aspas
sql.AppendLine(' '''+ds.Tables[0].Rows.Item[r].Item[c].ToString().TRIM+''' ');
end
else
sql.AppendLine('NULL');
end;
end;
// Fecha Dados
sql.AppendLine(')');
sql.AppendLine('GO');
sql.AppendLine('');
end;
sql.AppendLine('');
// Encerra transação e grava registros
sql.appendLine('COMMIT');
sql.appendLine('GO');
{$ENDREGION}
// Exibe
// lblScript.Text := sql.ToString;
{$REGION 'Cria Arquivo SQL Insert e Desce para o Usuário'}
try
caminho := Server.MapPath('.')+'\SQL\';
arquivo := 'SQL_INSERT_'+txbNomeTabela.Text+'.sql';
// verifica / cria diretório se não existe
if dir.Exists(caminho) = False then
dir.CreateDirectory(caminho);
// cria arquivo
arq := System.IO.FileInfo.Create(caminho+arquivo);
// Insere SQL no arquivo
stream := System.IO.StreamWriter.Create(caminho+arquivo);
stream.WriteLine(sql.ToString);
stream.Close();
// download do arquivo
ScriptManager.RegisterStartupScript(Page, Page.GetType(), Guid.NewGuid().ToString(),'window.open("/SQL/'+arquivo+'","downsql","menubar=no,scrollbars=no,WIDTH=15,HEIGHT=15");', true);
except on ex:exception do
response.write('Erro durante criação do arquivo.
Detalhes: '+ex.message);
end;
{$ENDREGION}
end;

// Função que verifica se o número é válido (é um número ou não)

function TExemplo.NumeroValido(Numero: String): Boolean;
Var
N: Double;
begin
Result := False;
try
N := Convert.ToDouble(Numero);
Result := True;
Except
Result := False;
end;
end;


Bom, no código acima ficou bem comentado o que cada parte faz, então vamos para o próximo passo, exibir os arquivos gerados em uma grid e também ter a opção de exibir o conteúdo dos arquivos em um textBox, excluir os arquivos ou fazer o download novamente.

Exibir os arquivos de um diretório é fácil como você já viu no post od Geeks .NET, mas aquele exemplo temos um problema, ele exibe o caminho completo do arquivo no servidor mas nós queremos ver apenas os nomes dos arquivos, então veja como ficou a procedure abaixo:


procedure TExemplo.ListarArquivos;
var
caminho, na:string;
lista: ArrayList;
i: integer;
begin
caminho := Server.MapPath('.');
lista := ArrayList.Create;
gvSQL.DataSource := System.IO.Directory.Getfiles(caminho+'\sql');
gvSQL.databind();
for I := 0 to gvSQL.rows.Count - 1 do
begin
na := gvSQL.Rows.item[i].cells[3].Text;
// Substitui o caminho até o diretório dos arquivos por '' -> nada
na := na.replace(caminho+'\sql\','');
lista.add(na);
end;
gvSQL.DataSource := lista;
gvSQL.databind();
end;


Ok, você pode notar que jogamos os nomes dos arquivos dos diretórios na coluna (Cells) 3 da grid, isto porque já temos as funções de ler, excluir e baixar nas três primeiras colunas da grid, veja o código da grid, tire os espaços nas tags.


< asp:gridview backcolor="White" bordercolor="#999999" borderstyle="Solid" borderwidth="1px" cellpadding="3" font-size="Small" forecolor="Black" gridlines="Vertical" id="gvSQL" runat="server">
< columns>
< asp:buttonfield commandname="LER" text="Carregar">< /asp:buttonfield>
< asp:buttonfield commandname="DOWNLOAD" text="Download">< /asp:buttonfield>
< asp:buttonfield commandname="EXCLUIR" imageurl="~/imagens/exc.gif" text="Excluir">< /asp:buttonfield>
< /columns>
< footerstyle backcolor="#CCCCCC">< /footerstyle>
< pagerstyle backcolor="#999999" forecolor="Black" horizontalalign="Center">< /pagerstyle>
< selectedrowstyle backcolor="#000099" font-bold="True" forecolor="White">< /selectedrowstyle>
< headerstyle backcolor="Black" font-bold="True" forecolor="White">< /headerstyle>
< alternatingrowstyle backcolor="#CCCCCC">< /alternatingrowstyle>
< /asp:gridview>


Agora já sabemos criar os arquivos, exibir eles em uma grid, vamos a parte de ler e e excluir os arquvos existentes, para isso vamos implementar as funções para cada botão da grid, fazemos isto no evento RowCommand, veja código abaixo:


procedure TExemplo.gvSQL_RowCommand(sender: TObject; e: System.Web.UI.WebControls.GridViewCommandEventArgs);
var
caminho,arquivo:string;
arq: System.IO.FileInfo;
reader: System.IO.StreamReader;
begin
// Se o comando é EXCLUIR
if e.commandname = 'EXCLUIR' then
begin
// Pega o caminho até o diretório
caminho := Server.MapPath('.')+'\SQL\';
// o Nome do arquivo SQL
arquivo := GVSQL.Rows.Item[convert.ToInt32(e.commandargument)].Cells[3].Text;
// Cria arquivo
arq := System.IO.FileInfo.Create(caminho+arquivo);
// Se arquivo existe -> com certeza existe
if arq.Exists then
arq.Delete; // Deleta
// Atualiza Lista dos Arquivos
ListarArquivos;
end;
// Se o comando é para baixar o arquivo -> DOWNLOAD
if e.commandname = 'DOWNLOAD' then
begin
// Pega nome arquivo
arquivo := GVSQL.Rows.Item[convert.ToInt32(e.commandargument)].Cells[3].Text;
// Redireciona usuário para endereço do arquivo, vai pedir pra baixar...
Response.redirect('/SQL/'+arquivo);
end;
// Se for pra ler -> exibir na textbox conteúdo do arquivo
if e.commandname = 'LER' then
begin
caminho := Server.MapPath('.')+'\SQL\';
arquivo := GVSQL.Rows.Item[convert.ToInt32(e.commandargument)].Cells[3].Text;
reader := StreamReader.Create(caminho+arquivo);
// Lê arquivo até o fim e joga string para textbox
txbSQL.text := reader.ReadToEnd;
reader.Close();
end;
end;


Bom pessoal, basicamente é isto ai, não mostrei como faz .txt né, é só trocar o final do nome do arquivo (Extensão) de .sql para .txt e pronto. Espero que seja útil, hoje também fiz um post no Geeks mostrando como exportar dados de uma grid para o Excel, pode ser muito útil em alguns casos, normalmente o usuário pede também...

Agradecimentos ao Tiago Pasieka que começou a página que me motivou fazer estas funções, valeuu!!

Até!

quarta-feira, 25 de novembro de 2009

Witricity: Eletricidade sem fio

Em 2007 vi no Inovação Tecnológica uma matéria sobre eletricidade sem fio, achei muito legal mas desconfiei dos problemas que isso poderia gerar, hoje vi um vídeo demonstrando que não existe risco algum utilizar esta tecnologia, finalmente vamos nos livrar dos fios, eu espero! :D




Encontrei por aqui.

segunda-feira, 23 de novembro de 2009

Como se tornar um Hacker

Olá pessoal, recebi a dica do Helton e resolvi compartilhar aqui uma leitura básica pra quem tem interesse em desenvolvimento de softwares, a tradução do manual dos hackers de Eric Steven Raymond. Lá você encontrará alguns conceitos muito importantes para seguir nessa nossa vida louca, veja alguns trechos.

--------------------------------------------------
Existe uma comunidade, uma cultura compartilhada, de programadores experts e magos de redes que traçam sua história desde décadas atrás nos primeiros mini-computadores de tempo compartilhado e nos mais remotos experimentos da ARPAnet. Os membros dessa comunidade originaram o termo 'hacker'. Hackers construiram a Internet. hackers criaram o sistema operacional Unix da forma como ele é hoje. Hackers rodam a Usenet. Hackers fizeram a World Wide Web funcionar. Se você é parte dessa cultura, se você contribuiu para isso e outras pessoas nisto o chamam de hacker, então você é um hacker.
--
Há um outro grupo de pessoas que ruidosamente se auto-entitulam hackers, mas não são. Essas são pessoas (em grande parte adolescentes do sexo masculino) que possuem uma atração por entrar em computadores a força e por burlar o sistema telefônico. Verdadeiros hackers chamam essas pessoas de 'crackers' e não têm nada a ver com eles. Hackers verdadeiros em grande parte pensam que crackers são preguiçosos, irresponsáveis e não tão brilhantes, e sustentam que ser capaz de quebrar segurança não faz de você um hacker mais do que ser capaz de fazer ligação direta em um carro faz de você um engenheiro automotivo. Infelizmente, muitos jornalistas e escritores têm usado enganosamente a palavra 'hacker' para descrever crackers; isso irrita profundamente os verdadeiros hackers.
--
A diferença básica é esta: hackers constroem coisas, crackers as quebram.
--
Para seguir o caminho:
olhe para o mestre,
siga o mestre,
ande com o mestre,
olhe através do mestre,
torne-se o mestre.

--
Para se comportar como um hacker, você tem que acreditar que o tempo de pensamento de outros hackers é precioso — tanto que é quase um dever moral para você compartilhar informação, resolver problemas e dar as soluções de graça apenas para que outros hackers possam resolver novos problemas ao invés de terem que se dedicar perpetuamente a resolver os velhos.
--
C é muito eficiente, e faz uso parco dos recursos da sua máquina. Infelizmente, C obtém essa eficiência requerendo de você a realização de muito gerenciamento de baixo nível de recursos (como memória) manualmente. Todo este código de baixo nível é complexo e propenso a erros, e irá absorver enormes quantidades do seu tempo na depuração. Com as máquinas de hoje tão poderosas como estão, isso geralmente é uma troca ruim - é mais inteligente usar uma linguagem que usa o tempo da máquina de forma menos eficiente, mas seu tempo de forma muito mais eficiente. Sendo assim, Python.
É melhor, na verdade, aprender todos os cinco de Python, C/C++, Java, Perl e LISP. Além de serem as linguagens mais importantes para hackear, elas representam abordagens muito diferentes de programação, e cada uma vai educá-lo de maneiras importantes.
--
Peter Norvig, que é um dos melhores hackers do Google e co-autor do livro mais amplamente usado em I.A., escreveu um excelente ensaio chamado Ensine Você a Programar em Dez Anos. Sua "receita para o sucesso com a programação" merece atenção especial.
--
Ser um falante nativo de Inglês não garante que você tenha conhecimentos linguísticos suficientes para atuar como um hacker. Se a sua escrita é semi-analfabeta, com erros gramaticais, e cheia de erros ortográficos, muitos hackers (inclusive eu) tenderão a ignorá-lo. Escrita malfeita não invariavelmente significa pensar desleixado, nós geralmente achamos que tal correlação seja forte - e nós não temos uso para os pensadores desleixados. Se você ainda não pode escrever com competência, aprenda.
--
Especificamente, a cultura hacker é o que os antropólogos chamam de cultura de doação. Você ganha status e reputação não por dominar outras pessoas, nem por ser bonito, nem por ter coisas que outras pessoas querem, mas sim por doar coisas. Especificamente, por doar seu tempo, sua criatividade, e os resultados de sua habilidade.
--
..muitos hackers adotaram o rótulo de "geek" como um símbolo de orgulho - é um modo de declarar sua independência de expectativas sociais normais (assim como um gosto por outras coisas como ficção científica e jogos de estratégia que muitas vezes vêm junto com ser um hacker). O termo "nerd" costumava ser usado dessa forma no passado na década de 1990, na época "nerd" era ligeira pejorativa e 'geek' mais descolado, algum tempo depois de 2000 eles trocaram de lugares, pelo menos na cultura popular dos E.U., e agora há até mesmo uma cultura significante de orgulho geek entre as pessoas que não são técnicas.
--
Finalmente, algumas coisas para não fazer.

  • Não use uma identificação de usuário ou pseudônimo idiota e enorme.
  • Não entre em discussões sem sentido na Usenet (ou em qualquer outro lugar).
  • Não se defina como um "cyberpunk", e não perca seu tempo com ninguém que o faça.
  • Não publicar ou enviar e-mail cuja escrita esteja cheia de erros de ortografia e gramática ruim.
--------------------------------------------------

Bom, tem mais coisas legais lá, peguei alguns dos trechos que considerei mais importantes, mas todos são, recomendo a leitura completa.

Como se tornar um Hacker

quinta-feira, 19 de novembro de 2009

Novas Funcionalidades do Tradutor da Google

A Google lançou recentemente algumas melhorias no seu serviço de tradução, veja as novidades:

-> Novo layout
-> Tradução automática: ele traduz os textos automaticamente sem precisar clicar no velho botão "Traduzir"
-> Escrita fonética de idiomas não latinos, como o chinês, o árabe ou o persa: facilita muito quem quer aprender a falar outro idioma
-> Escrever em idiomas não latinos pela sonoridade das palavras: ele converte nos caracteres do idioma selecionado
-> Nas traduções para o inglês também é possível ouvir o trecho traduzido

Bom, acredito que este seja agora o melhor tradutor online, ele já conta com 51 línguas que correspondem a cerca de 98% da Internet e continua adicoinando novas línguas. Confira as novidades no vídeo abaixo ou acesse http://translate.google.com.



Via Geek e Google Blog

quarta-feira, 18 de novembro de 2009

CSS não carrega com login ASP.NET

Olá pessoal, esta semana tive um pequeno problema durante o desenvolvimento de um sistema web no VS 2008 SP1 com dotNET 3.5, fiz uma master page com CSS e um diretório com imagens do modelo, criei um novo web form baseado na master page e configurei a web.config para somente permitir visualizar as páginas quem já fez login, conforme código abaixo, após isso as páginas somente carregavam os estilos após o usuário ter feito login.



Após muita pesquisa na Internet consegui resolver o problema adicionando permissão de acesso para todos os usuários nos diretórios das imagens e do CSS, veja código abaixo.



Meu arquivo Web.config completo.



A estrutura dos diretórios e páginas do meu Web Site.


Se alguém passou por uma situacão parecida e encontrou uma outra solução gostaria que postasse nos comentários, abaixo estou anexando o livro onde encontrei esta dica.
Apontamentos ASP Net
Até.

quarta-feira, 28 de outubro de 2009

Diferenças no Pensamento entre Ricos, Classe Média e Pobres

Olá a todos!!

Comecei a ler esta semana o livro "Independência Financeira. O Guia do Pai Rico", e achei logo no início uma coisa muito interessante, a diferença no pensamento entre ricos e pobres, acho que vale a pena compartilhar aqui para refletirmos e começarmos a pensarmos como ricos, ou não.


P/CM – Diz: “Nunca vou ficar rico”.
R – Diz: “Sou um homem rico”. E mesmo se estiver quebrado, pois diz: ‘Há uma diferença entre ser pobre e estar quebrado. Estar quebrado é algo temporário; ser pobre é eterno”.
P/CM – Não ligo para dinheiro, ou O dinheiro não é importante. 


R – O dinheiro é poder.
P/CM – Trabalha por dinheiro.
R – O dinheiro trabalha para mim.

P/CM – Adquirem obrigações pensando que são ativos.
R – Adquirem ativos.

P/CM – Compram primeiro artigos de luxo (casas grandes, carros maiores, diamantes, peles, jóias ou barcos).
R – Compram os artigos de luxo por último.

P/CM – O amor ao dinheiro é a raiz de todo mal.
R – A falta de dinheiro é a raiz de todo mal.

P/CM – Não dá para comprar isso.
R – O que posso fazer para comprar isso?
R – Meu cérebro fica mais forte a cada dia porque eu o exercito. Quanto mais forte fica, mais dinheiro ganho.

P/CM – Tem o hábito de colocar o cérebro para dormir quando o assunto é dinheiro. Evita o assunto.
R – Tem o costume de exercitar seu cérebro quando o assunto é dinheiro.

P/CM – Que os ricos deviam pagar mais impostos para atender os menos afortunados.
R –Que os impostos punem os que produzem e recompensam os que não produzem.

P/CM – Estude arduamente, forme-se, para poder arrumar emprego numa boa empresa.
R – Estude arduamente, forme-se, para ficar rico, para entender como funciona o dinheiro e para aprender a faze-lo trabalhar para você, para ser independente financeiramente.

P/CM – Não sou rico porque tenho filhos.
R – Tenho que ser rico por causa de vocês, meus filhos.

P/CM – Proíbe que se fale de negócios durante as refeições.
R – Inventiva as conversas sobre dinheiro e negócios na hora do jantar.

P/CM – Em questões de dinheiro seja cuidadoso, não se arrisque.
R – Aprenda a administrar o risco. Conhecendo a operação, o risco diminui.

P/CM – Nossa casa é nosso maior investimento e nosso maior patrimônio.
R – Minha casa é uma dívida e se sua casa for seu maior investimento, você terá problemas.

P/CM – Paga suas contas no prazo, em primeiro lugar.
R - Paga suas contas no prazo, deixando para a última hora. Primeiro paga a si mesmo.

P/CM – Acredita que a empresa ou o governo deveria cuidar de você e de suas necessidades.
R – Acredita na auto-suficiência financeira, se manifestando contra a mentalidade ‘dos direitos’ e fala que isso cria pessoas fracas e financeiramente necessitadas.

P/CM – Luta para poupar uns poucos reais.
R – Cria investimentos.

P/CM – Ensina a escrever um currículo impressionante para encontrar um bom emprego.
R – Ensina a fazer sólidos planos financeiros e de negócios de modo que possa criar empregos.

segunda-feira, 26 de outubro de 2009

Juros Compostos no Lázarus

Olá pessoal!

Depois de algumas aula de matemática financeira, resolvi testar meus conhecimentos e fazer um programa pra cálculos de juros compostos. A idéia é que o usuário veja os campos com os dados necessários para o cálculo e deixe em branco aquele que ele deseja descobrir, por exemplo, pra calcular o montante, informa o capital inicial, taxa e tempo, clica em calcular, o programa verifica que foi deixado em branco o campo Montante e então calcula e exibe o resultado naquele campo.

Como tenho instalado no meu note Ubuntu 9.04 e Lázarus, resolvi fazer nele, já mostrei como instalar ele neste post.



Primeiramente, abra o Lázarus e crie um novo projeto (Aplication) e adicione 5 Labels, 5 Edits e 1 Button de forma que fique parecido com a imagem abaixo.





Altere a propriedade name dos Edits para EdtCapital, EdtTaxa, EdtTempo, EdtMontante e EdtJuros. O Button para btnCalcular e as labels tanto faz se renomear ou não.

Feito isso, de um duplo clique no botão BtnCalcular e adicione o seguinte código para fazer os cálculos de juros compostos, eles estão comentados e são auto explicativos.



procedure TfrmJurosComposto.CalcularClick(Sender: TObject);
var
// Declara variaveis
Taxa,Tempo,Capital,Montante:Double;
begin
// Inicia variaveis com valor 0
Taxa:=0;
Tempo:=0;
Capital:=0;
Montante:=0;
try
// Variaveis armazenam valores informados se foi informado algum valor
if (EdtTaxa.Text <> '') then
Taxa := StrToFloat(EdtTaxa.Text);
if (EdtTempo.Text <> '') then
Tempo := StrToFloat(EdtTempo.Text);
if (EdtCapital.Text <> '') then
Capital := StrToFloat(EdtCapital.Text);
if (EdtMontante.Text <> '') then
Montante := StrToFloat(EdtMontante.Text);
// Verifica se eh calculo do montante
if EdtMontante.Text = '' then
begin
// Calcula Montante
//---> exp(ln(x)*y) ==> x elevado a y
Montante:=Capital*(exp(ln((1+(Taxa/100)))*Tempo));
// Exibe Resultado
EdtMontante.Text := FloatToStr(Montante);
end;
// Verifica se eh calculo do capital
if EdtCapital.Text = '' then
begin
// Calcula Capital Inicial
Capital := Montante / (exp(ln((1+(Taxa/100)))*Tempo));
// Exibe Resultado
EdtCapital.Text := FloatToStr(Capital);
end;
// Verifica se eh calculo de tempo
if EdtTempo.Text = '' then
begin
// Calcula Tempo
Tempo := ((ln(Capital/Montante))/(ln((1+(Taxa/100)))))*-1;
// Exibe Resultado
EdtTempo.Text := FloatToStr(Tempo);
end;
// Verifica se eh calculo de taxa
if EdtTaxa.Text = '' then
begin
// Calcula Taxa
Taxa := 100*((exp(ln(Montante / Capital)*(1/Tempo)))-1);
// Exibe Resultado
EdtTaxa.Text := FloatToStr(Taxa);
end;
// Calcula Juros e Exibe na tela
EdtJuros.Text := FloatToStr(Montante-Capital);
// Se der algum erro exibe um alerta com a mensagem
except on e:exception do
ShowMessage(E.Message);
end;
end;


Salve o projeto e pressione F9 para compilar e executar.

De teste, segui os mesmos passos no Delphi e funcionou também, adicionei os campos com os mesmos nomes, CTRL+C CTRL+V no código, compilei e funcionou, então se você quiser fazer no Delphi sinta-se a vontade, a linguagem é a mesma e o Lázarus é muito semelhante ao Delphi 7, eu testei no 2007 que já muda um pouco a posição dos componentes.

Até.

sábado, 24 de outubro de 2009

Criação de um Sistema para Controle de Viagens no Delphi com Firebird

Olá pessoal, este é um resumo/tutorial da criação de um sistema para controle de Viagens feito durante as aulas de Programação Comercial do prof. Fauzi Shubeita, durante o desenvolvimento serão usados as ferramentas Case Studio 2.25, IB Expert, Delphi 2007 e o Banco de Dados Firebird 1.5, ele está dividido em duas partes, nesta primeira vamos modelar e criar o banco de dados, na segunda parte será o desenvolvimento no Delphi, talvez não tudo, mas o principal.

Sobre as ferramentas utilizadas:

Case Studio: utilizado principalmente para modelagem de banco de dados, permite a criação de Diagramas de Fluxo de Dados e Diagramas de Entidades e Relacionamentos, tem suporte aos principais banco de dados relacionais. Mais Informações.

IB Expert: segundo Wikipedia, "O IB Expert é um poderoso gerenciador de banco de dados que permite realizar todas as tarefas necessárias para o suporte e manutenção do banco tanto local como remotamente. Com ele é possível administrar o banco criando tabelas, modificando campos, índices, executando scripts SQL e outras funções. O IB Expert realiza a geração do modelo de entidade relacionamento para bancos de dados Interbase e Firebird.". Mais informações e link para download da versão Costumer.

Delphi: segundo próprio site do desenvolvedor, Embarcadero: "Delphi é um dos mais respeitados e amplamente utilizado ambiente Rapid Application Development (RAD). Mais de 1,7 milhões de desenvolvedores em todo o mundo escolheram o Delphi sobre outras ferramentas porque Delphi muda radicalmente as velocidades de trabalho em desktop, workstation, touch, kiosk, e desenvolvimento de aplicações Web sem sacrificar muito tempo de programação ou controle. Os aplicativos criados com o Delphi são rápidos, compacto, fornecem interfaces (UIs) ricas e podem conectar-se a praticamente qualquer fonte de dados ou dados "out-of-the-box". Atualmente já temos a versão 2010, mas neste tutorial estaremos utilizando a 2007.

Firebird: é um banco de dados relacional muito utilizado por ser leve, rápido e de fácil utilização, também roda no Linux, Windows e plataformas Unix. Mais Informações, download Baixaki.

Obs.: Neste resumo não mostrarei passos de como instalar os softwares, apenas utilizar.


REQUISITOS FUNCIONAIS

1- Cadastro de Passageiros
2- Cadastro de Cidades
3- Cadastro de Locais Turísticos por Cidade
4- Cadastro de Veículos (onibus,van...)
5- Cadastro de Guias
6- Cadastro Viagem - data saída, chegada, dias.
7- Cadastro de Pasageiros por viagem.

REQUISITOS NÃO FUNCIONAIS

1- Cálculo de totais pagos por passageiro por viagem
2- Cálculo de tempo em dias
3- Pesquisar por nome de passageiro


Primeiramente faremos a modelagem do banco no Case Studio, ao abrir, selecione Banco Firebird, seguindo os requisitos chegamos ao seguinte diagrama ER no Case Studio. Clique nas imagens para visualizar melhor, se precisar.



Com o DER pronto, vamos gerar o Script SQL, para isso, pressione a tecla F9 para abrir uma janela pedindo onde você quer salvar o arquivo e o que pretende gerar, o ideal é que você crie um diretório com o nome "viagem", por exemplo, e coloque ali tudo que for referente a este sistema, começando com este diagrama, veja imagem abaixo.



Ele deve ter gerado algo parecido com isso.
/*
Created 6/10/2009
Modified 24/10/2009
Project
Model
Company
Author
Version
Database Firebird
*/


Create Table "PASSAGEIROS" (
"IDENTIDADE" Char(10) NOT NULL,
"NOME" Varchar(100),
"DTANASC" Date,
Primary Key ("IDENTIDADE")
);

Create Table "CIDADES" (
"CIDADE" Integer NOT NULL,
"CEP" Char(8) NOT NULL,
"NOME" Varchar(50),
"UF" Char(2),
Primary Key ("CIDADE")
);

Create Table "PONTOSTURISTICOS" (
"PONTO" Integer NOT NULL,
"CIDADE" Integer NOT NULL,
"DESCRICAO" Varchar(300),
"VALOR" Decimal(5,2),
Primary Key ("PONTO")
);

Create Table "VEICULOS" (
"PLACA" Char(7) NOT NULL,
"DESCRICAO" Varchar(50),
"NLUGARES" Integer,
"ESTRELAS" Integer,
Primary Key ("PLACA")
);

Create Table "GUIAS" (
"GUIA" Integer NOT NULL,
"NOME" Varchar(50),
Primary Key ("GUIA")
);

Create Table "VIAGENS" (
"VIAGEM" Integer NOT NULL,
"DTASAIDA" Date,
"DTACHEGADA" Date,
"NDIAS" Integer,
"VALOR" Decimal(5,2),
Primary Key ("VIAGEM")
);

Create Table "PASSAGEIROSVIAGEM" (
"IDENTIDADE" Char(10) NOT NULL,
"VIAGEM" Integer NOT NULL,
"STATUSPAGTO" Char(3),
Primary Key ("IDENTIDADE","VIAGEM")
);

Create Table "LOCAISVIAGEM" (
"VIAGEM" Integer NOT NULL,
"PONTO" Integer NOT NULL,
"DTAVISITA" Date,
Primary Key ("VIAGEM","PONTO")
);

Create Table "GUIASVIAGEM" (
"GUIA" Integer NOT NULL,
"VIAGEM" Integer NOT NULL,
Primary Key ("GUIA","VIAGEM")
);

Create Table "VIAGEMVEICULOS" (
"VIAGEM" Integer NOT NULL,
"PLACA" Char(7) NOT NULL,
Primary Key ("VIAGEM","PLACA")
);


Alter Table "PASSAGEIROSVIAGEM" add Foreign Key ("IDENTIDADE") references "PASSAGEIROS" ("IDENTIDADE") on update no action on delete no action ;
Alter Table "PONTOSTURISTICOS" add Foreign Key ("CIDADE") references "CIDADES" ("CIDADE") on update no action on delete no action ;
Alter Table "LOCAISVIAGEM" add Foreign Key ("PONTO") references "PONTOSTURISTICOS" ("PONTO") on update no action on delete no action ;
Alter Table "VIAGEMVEICULOS" add Foreign Key ("PLACA") references "VEICULOS" ("PLACA") on update no action on delete no action ;
Alter Table "GUIASVIAGEM" add Foreign Key ("GUIA") references "GUIAS" ("GUIA") on update no action on delete no action ;
Alter Table "PASSAGEIROSVIAGEM" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;
Alter Table "LOCAISVIAGEM" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;
Alter Table "GUIASVIAGEM" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;
Alter Table "VIAGEMVEICULOS" add Foreign Key ("VIAGEM") references "VIAGENS" ("VIAGEM") on update no action on delete no action ;

Bom, agora vamos verificar se o Firebird está instalado e rodando, para isso vá até o Painel de Controle e procure por "Firebird 1.5 Server Manager", de um duplo clique sobre e verifique, conforme imagem abaixo, se não estiver instalado já sabe -> instale ele.



Com o script SQL pronto e o Firebird rodando, vamos efetivamente criar o banco de dados, abra o IB Expert e no menu "DataBase", clique em "Create DataBase" para criarmos e registramos nosso banco neste excelente gerenciador :D.

Na janela que abriu, selecione que o servidor é local, na parte de DataBase selecione o diretório em que deseja criar o banco de dados, pode ser o mesmo que está o DER, de um nome para o banco, pode ser "bdViagem" e selecione o tipo .gdb, veja imagem abaixo.



Nesta mesma janela configuramos o Username é SYSDBA e senha é masterkey, selecione dialeto 3 no SQL Dialect. O Page size é o tamanho máximo que cada tabela poderá suportar, segundo professor Fauzi 4096 fica em torno de 1 GB, no Charset selecione WIN1252 para ter suporte a acentuação, mais imagens para ilustrar e ninguém se perder.



Clique em OK, ele abrirá uma nova janela onde selecionaremos a versão do Servidor, nosso caso Firebird 1.5, e preencheremos o Alias como "VIAGEM".



Clique em Register para registrar e pronto, se clicar duas vezes sobre o banco que apareceu na aba databases no lado esquerdo, ele vai conectar ao BD. Agora temos que executar o Script que geramos antes, para isso abra o SQL Editor no menu Tools e cole parte por parte do Script SQL gerado no Case Studio ou então use o Script Executive (CTRL+F12) para executar tudo de uma vez, é preciso marcar a opção Use current connect, depois F9 para executar.



Pronto, temos nossa base de dados Firebird rodando, para testar pode inserir alguns registros nela através do IB Expert, abra alguma tabela e procure por uma aba chamada Data (Dados) e cadastre.

Agradeço ao Gustavo Klaus que me encaminhou os requisitos, valeu!

Link para segunda parte, tela de manutenção no Delphi.

Até!!

quarta-feira, 30 de setembro de 2009

Mudanças chegando!

Olá pessoal!!

Nos últimos dias não estava postando praticamente nada pois ando muito ocupado com as práticas (projetos) da faculdade nas horas vagas, além de um sistema novo para uso pessoal, em breve conto aqui mais detalhes sobre isso.

Bom, nos próximos dias estarei testando alguns layouts novos para o blog, o antigo estava muito pesado na minha opinião. Também pretendo manter o número de posts em 1 ou 2 por semana, mas que sejam úteis para alguém, ou seja, diminuir quantidade e aumentar a qualidade.

Até mais!

quarta-feira, 23 de setembro de 2009

Problemas no Desenvolvimento de Software


Clique na imagem para visualizar melhor.
Vi no quarto universitário...

sexta-feira, 18 de setembro de 2009

Cultura inútil

Você sabia que...?

Se você gritar 8 anos, 7 meses e seis dias produzirá energia sonora suficiente para esquentar uma xícara de café.
(Acho que não vale a pena!)

Se você soltar pum durante 6 anos e 9 meses, produzirá gás suficiente para criar a energia de uma bomba atômica.
(Agora sim!)

A pressão produzida pelo coração humano ao bater é suficiente para espirrar sangue a uma distância de 9 metros.
(Como será q isso foi descoberto?)

O orgasmo de um porco dura 30 minutos.
(Na próxima encarnação quero ser um porco!)

Bater com a cabeça contra a parede consome 150 calorias por hora.
(Ainda não consegui esquecer aquele lance do porco!)

Os humanos e os golfinhos são as únicas espécies que copulam por prazer.
(É por isso que o Flipper está sempre sorrindo?) (E porque o porco não está incluído nessa lista???)

De um modo geral, as pessoas tem mais medo de aranhas do que da morte.

O músculo mais forte do corpo é a língua.
(Hummmmmmmmmmmm....)

O crocodilo não consegue mostrar a língua.

A formiga consegue levantar 50 vezes o seu peso, puxar 30 vezes o seu peso e sempre cai para o lado direito quando intoxicada.

Os ursos polares são canhotos.
(Quem descobriu isso?)

A pulga consegue pular a uma distância correspondente a 350 vezes o comprimento do seu corpo. É como se um ser humano pulasse a distância de um campo de futebol.

A barata consegue sobreviver por nove dias sem a cabeça antes de morrer de fome.
(Arghhhh!!!)

O louva-deus macho não consegue copular com a cabeça presa ao corpo. A fêmea inicia o ritual de acasalamento arrancando fora a cabeça do macho.
(solução interessante...)

Alguns leões copulam mais de 50 vezes por dia.
(Na próxima encarnação, eu... continuo querendo ser um porco... Prefiro qualidade a quantidade) (Mas se não puder ser um porco quero ser um leão.)

O paladar das borboletas está nos pés.
(Eu, hein!!)

Os elefantes são os únicos animais que não conseguem pular.
(Graças a Deus!)

O olho de um avestruz é maior do que o seu cérebro.
(Conheço algumas pessoas assim...)

Estrelas do mar não tem cérebro.
(Conheço algumas pessoas assim também!)

Putz! Não consigo esquecer do porco....

Do blog não clique aqui.

quarta-feira, 16 de setembro de 2009

Domínio Grátis e Configurado em 5 Minutos

Encontrei no Como Fazer Web, muito boa a dica.

terça-feira, 15 de setembro de 2009

Criando Cadastro Rapidamente no Delphi

Aula de Programação Comercial hoje, primeiro exemplo, cadastro de pessoas... segue os passos para criar um cadastro básico no DELPHI, usando Client Data Set e DBNavigator, é muito simples basta seguir os passos:

1 – Criar novo projeto
2 – Adicionar um data Module
3 – Adicionar um Client Data Set da paleta DataAccess no Data Module.
4 – Renomear Data Module para DM
5 – Renomear Client Data Set para CDSPessoas
6 – Clicar com botão direito no CDSPessoas e abrir Field Editor
7 – Criar New Fields -> Campos
8 – Após criar todos os campos, configurar a propriedade "File Name" do CDSPessoas, colocar o nome do arquivo XML para armazenar os dados, pode ser PESSOAS.XML
9 – Clicar botão direito sobre o CDSPessoas e selecionar "Create DataSet"
10 – Manter o Field Editor Aberto e voltar para o Forulário Principal
11 – Selecionar todos os campos do field editor e arrastar sobre formulário.
12 – Adicionar o componente DBNavigator da paleta Data Controls e configurar a propriedade "Data Source" do mesmo, selecione o DataSource1 que foi criado automaticamente quando foram arrastados os campos sobre o formulário.
13 – Salve o Projeto e execute.

Até.

segunda-feira, 14 de setembro de 2009

Personas para o Firefox

Hoje tive uma atualização do Firefox para a versão 3.5.3, ao abrir o site do Firefox ele sugeriu testar o Personas para o Firefox, achei legal, o complemento é bem leve e deixa o navegador com alguns estilos mais bonitos, fica a dica pra quem quiser testar.

Link da página do complemento: http://www.getpersonas.com/

Até.

quinta-feira, 3 de setembro de 2009

Habilitando uso de Proxy no Internet Explorer 8

A nova versão do navegador da Microsoft, Internet Explorer 8, não funciona em redes com proxy. É necessário alterar um configuração para que ele venha a funcionar nestas condições, segue os passos:

1. Iniciar->Executar-> secpol.msc
2. Navegue até: Local Policies->Security Options->Network Security: LAN Manager authentication level
Configuracoes de seguranca local
3. Dê um duplo clique sobre ele e selecione a opção: Send LM & NTLM – use NTLMv2 session security if negotiated
Configuracoes de seguranca rede
4. Clique em OK, feche a outra janela, abra o IE8, configure o proxy e pronto.

--- Update 20-08-12 ----- Exemplo com Windows em Portugues ---


 
Até.

segunda-feira, 31 de agosto de 2009

Como se tornar um expert em informática: o guia definitivo!

Apenas siga este fluxograma e você será considerado "o cara" da informática, muito simples.

fluxograma: aprenda ser um expert de informatica


XKCD -> Gizmodo -> NSN

sábado, 29 de agosto de 2009

Eu ia lhe chamar e Michael

quinta-feira, 27 de agosto de 2009

Instalando Lázarus no Ubuntu 9.04

Olá pessoal, como programo em Delphi atualmente e gosto de usar Linux nas horas vagas, a um tempo queria testar o Lázarus, uma IDE muito semelhante ao Delphi mas que roda em Linux, Windows, Mac... e utiliza o FPC (Free Pascal Compiler) pra compilar os códigos em pascal. Hoje instalei ele e fiz um programa bem simples para testar, foi tranquilo. Segue os três comandos pra instalar.

1. Como sempre...

sudo apt-get update/upgrade
2. Instalar FPC
sudo apt-get install fpc
3. Instalar IDE -> Lazarus
sudo apt-get install lazarus

Agora já pode acessar o programa pelo menu Aplicativos->Programação->Lazarus, o ambiente é muito semelhante ao Delphi 7 mas é bem fácil de usar, para testar pode simplesmente pressionar F9 (compila e executa o programa).


Até.

quarta-feira, 26 de agosto de 2009

Editor de códigos online

Olá pessoal, este mes anda meio complicado de sair algum post mais decente então deixo aqui algumas dicas de editores de código online, o primeiro é o Ecoder. Trata-se de um editor de código online de código aberto (http://sourceforge.net/projects/ecoder), ele permite trabalhar com arquivos php, txt, js, html e css, ao criar um novo arquivo ele já monta a estrutura básica dependendo da escolha do formato do arquivo/linguagem, possui também opção de Syntax highlighting (colore as tags), salvar, desfazer, buscar, ir para linha entre outras coisas.

Outro editor online muito bom que conheço é o PasteBin, nele é possível editar códigos em várias linguagens e salvar eles por determinado período de tempo ou então para sempre, feito isso ele cria uma página que você pode compartilhar com seus amigos ou professores (enviar o link) para tentar resolver algum bug ou outros casos que você possa imaginar.

Até.

2 Girls, 1 Bike

Sports Videos, News, Blogs

quinta-feira, 13 de agosto de 2009

Profissão mais Velha do Mundo


Informatica, no inicio era o caos


E-mail do Helton... Valeu!!

Lançada edição n. 5 da Revista Espírito Livre

Revista Espírito Livre - Ed. #005 - Agosto 2009

Revista Espírito Livre - Ed. n #005 - Agosto 2009

quarta-feira, 12 de agosto de 2009

Microsoft Proibida de Vender o Word

É isso ai, a notícia saiu em vários sites, veja os links:

Microsoft terá que pagar quase US$ 300 milhões por infringir patente

A Microsoft está proibida de vender o Word

Microsoft proibida de vender o Word nos EUA

Microsoft é proibida de vender Word

Na minha opinião o Office é uma das poucas coisas muito bem feitas pela Microsoft, ainda assim acontece essas coisas... Acredito que vão recorrer do resultado do processo e provavelmente firmar uma parceria com a empresa i4i, pois ela depende do sucesso da Microsoft para continuar bem no mercado pois seus produtos baseiam-se principalmente no Word.

quarta-feira, 5 de agosto de 2009

Conceito de Marketing

Uma das melhores explicações, na prática é isso aí:

1. Você vê um cara numa festa. Você vai até ele e diz: "Eu sou
muito boa de cama." Isto é Marketing Direto.
2. Você está numa festa com um grupo de amigas e vê um cara. Uma
delas vai até ele e, apontando para você, ela diz: "Ela é
fantástica na cama!" Isto é Publicidade.
3. Você vê um cara numa festa. Você vai até ele e consegue o seu
telefone. Você liga no dia seguinte e diz: "Oi! Eu sou ótima de
cama! Isto é Telemarketing.
4. Você vê um cara numa festa. Você se levanta, ajeita o vestido,
vai até ele e diz: "Com licença.." e ajeita a gravata dele, roçando
de leve no seu braço e conclui: "A propósito, eu sou muito boa de
cama." Isto é Relações Públicas.
5. Você está numa festa. Um cara se aproxima de você e diz; "Me
disseram que você é maravilhosa na cama." Isto é Reconhecimento de
Marca.
6. Você está numa festa e vê um cara. Você o convence a ir para
casa com a sua melhor amiga. Isto é Representação de Vendas.
7. Sua amiga não o satisfaz e ele liga para você. Isto é Suporte
Técnico.
8. Você está indo a uma festa quando você se dá conta que poderia
haver um monte de caras em cada uma das casas pelas quais você está
passando. Você sai do carro e do meio da rua grita bem alto: "EU SOU
FANTÁSTICA NA CAMA!" Não faça isso: Isto é Spam.

Recebi por e-mail do Edinei Steffen.

segunda-feira, 3 de agosto de 2009

Desabilitando Teclas com Javascript

Depois de muita pesquisa, teste e adaptação de vários códigos encontrados na Internet, consegui resolver meu problema. Ao pressionar a tecla F1 preciso chamar uma função específica do ASP.NET e não exibir a ajuda padrão dos navegadores, segue o código:



Apenas modificando esta função é possível desabilitar a função de qualquer tecla, basta trocar o código ASCII na variável “tecla” ou ainda pode desabilitar do F1 ao F12, trocando a condição que verifica a tecla pressionada por esta:

if(oEvent.keyCode >= 112 && oEvent.keyCode <= 123) { bRet = false; }

quinta-feira, 30 de julho de 2009

Estagiário demitido por justa causa

CONFISSÃO DE UM ESTAGIÁRIO...

Fui demitido. Justa causa.

Como estagiário, aprendi milhões de coisas e fui muito bem sucedido nas minhas funções. Juro que não entendo o porquê de me demitirem...
Eu tinha várias funções que fazia com excelência, entre elas:

1. Tirar xerox. 3.1 segundos por página.

2. Passar café.

3. Comprar cigarro e pão. 1 minuto e 27 segundos. Ida e volta.

4. Fazer jogos na Mega-Sena, Dupla-Sena, Lotofácil, Loteria Esportiva...

Eu era muito bom. Mesmo. Fazia tudo certinho, até que peguei uma certa confiança com o pessoal e resolvi fazer uma brincadeirinha inocente.

É impressionante o nível de stress em um ambiente de trabalho.
Quis dar uma amenizada na galera, deixar o povo feliz e fui recompensado com uma bela de uma demissão por justa causa. !@#$%& sacanagem!

Vou contar toda minha rotina desse dia catastrófico.

Era quinta-feira, 26 de março, quando cheguei ao trabalho.

Nesse dia, passei na padaria no meio do caminho. Demonstrando muita proatividade, comprei pão e 3 Marlboro. Já queria ter na mão sem nem mesmo me pedirem. Quando abri a agência (sim, me deixam com a chave porque o pessoal só começa a chegar lá pelas 11h), já vi uma montanha de folhas para eu xerocar na minha mesa. Xeroquei tudo, fiz café e deixei tudo nos trinques (minha mãe que usa essa gíria rs).
Como tinha saído um pouco mais cedo no outro dia, deixaram um recado na minha mesa: "pegar o resultado da mega-sena na lotérica".
Como tinha adiantado tudo, fui buscar o resultado. No meio do caminho, tive a ideia mais genial da minha vida e, consequentemente, a mais estúpida.

Peguei o resultado do jogo: 01/12/14/16/37/45. E o que fiz?
Malandro que sou, peguei uns trocados e fiz uma aposta igual a essa. Joguei nos mesmos números, porque, na minha cabeça claro, minha brilhante ideia renderia boas risadas. Levei os 2 papeizinhos (o resultado do sorteio e minha aposta) para a agência novamente.
Ainda ninguém tinha dado as caras. Como sabia onde o pessoal guardava os papeis das apostas, coloquei o jogo que fiz no meio do bolinho e deixei o papel do resultado à parte.

O pessoal foi chegando e quase ninguém deu bola pros jogos. Da minha mesa, eu ficava observando tudo, até que um cara, o Daniel, começou a conferir.
Como eu realmente queria deixar o cara feliz, coloquei a aposta que fiz naquele dia por último do bolinho, que deveria ter umas 40 apostas.
Coitado, a cada volante que ele passava, eu notava a cara de desolação dele. Foi quando ele chegou ao último papel.
Já quase dormindo em cima do papel, vi ele riscando 1, 2, 3, 4, 5, 6 números. Ele deu um pulo e conferiu de novo.
Esfregou os olhos e conferiu de novo, hahahaha. Tava ridículo, mas eu tava me divertindo.
Deu um toque no cara do lado, o Rogério, pra conferir também.
Ele olhou, conferiu e gritou:
-"!@#$%& QUE PARRRRRRRRIUUUUUUUUUU, TAMO RICO, P*RRA". Subiu na mesa, abaixou as calças e começou a fazer girocóptero com o pau.

Óbvio que isso gerou um burburinho em toda a agência e todo mundo veio ver o que estava acontecendo.
Uns 20 caras faziam esse esquema de apostar conjuntamente. Oito deles, logo que souberam, não hesitaram: correram para o chefe e mandaram ele tomar bem no olho do C* e enfiar todas as planilhas do Excel na !@#$%& da arrombada da mulher dele.
No meu canto, eu ria que nem um filho da !@#$%& Todos parabenizando os ganhadores (leia-se: falsidade reinando, quero um pouco do seu dinheiro), com uns correndo pelados pela agência e outros sendo levados pela ambulância para o hospital devido às fortes dores no coração que sentiram com a notícia.

Como eu não conseguia parar de rir, uma vaquinha veio perguntar do que eu ria tanto. Eu disse:
- !@#$%& esse jogo que ele conferiu eu fiz hoje de manhã.
A vaca me fuzilou com os olhos e gritou que nem uma louca:
- PAREEEEEEEEEEM TUDO, ESSE JOGO FOI UMA MENTIRA. UMA BRINCADEIRA DE MAU GOSTO DO ESTAGIÁÁÁÁÁÁÁRIO.
Todos realmente pararam olhando pra ela. Alguns com cara de "quê?" e outros com cara de "ela tá brincando".
O cara que tava no bilhete na mão, cujo nome desconheço, olhou o papel e viu que a data do jogo era de 27/03.
O silêncio tava absurdo e só eu continuava rindo. Ele só disse bem baixo:
- É...é de hoje.
Nesse momento, parei de rir, porque as expressões de felicidade mudaram para expressões de ''vou te matar''.
Corri... corri tanto que nem quando eu estive com a maior caganeira do mundo eu consegui chegar tão rápido ao banheiro.
Me tranquei por lá ao som de "estagiário filho da !@#$%& vou te matar" e "vou comer teu c* aqui mesmo". Essa última foi do peladão!

Eu realmente tinha conseguido o feito de deixar aquelas pessoas com corações vazios, cheios de nada, se sentirem feliz uma vez na vida.
Deveriam me dar uma medalha por eu conseguir aquele feito inédito. Mas não... só tentaram me linxar e colocaram um carimbo gigante na minha carteira de trabalho de demissão por justa causa. Belos companheiros!

Pelo menos levei mais oito neguinho comigo! Quem manda serem mal-educados com o chefe. Eu não tive culpa alguma na demissão deles.
Pena que agora eles me juraram de morte...agora tô rindo de nervoso.
Falei aqui em casa que fui demitido por corte de verba (consegui justificar dizendo que mandaram mais oito embora, rs) e que as ligações que tenho recebido são meus amigos da faculdade passando trote.
Eu supero isso, tenho certeza.

É, amigos, descobri com isso que não se pode brincar em serviço mesmo...

Enviado pelo leitor Adelio Cunha para o nao clique aqui.

terça-feira, 28 de julho de 2009

Resolvendo problema som/áudio Ubuntu 9.04

Comprei um notebook HP Pavilion dv3 recentemente que veio com Vista Home Premium, não aguentei muito tempo, pequei o cd do Ubuntu 9.04 e instalei ele. Logo vi que não tinha jeito de fazer funcionar o som, pesquisando no google encontrei algumas soluções e como sempre, deixo aqui a que funcionou pra mim.


1. Abra o terminal
2. Digite
sudo -s
e informe sua senha para ficar como root
3. Execute:
gedit /etc/modprobe.d/alsa-base.conf 
4. Adicione a seguinte linha no final do arquivo
options snd-hda-intel model=hp-m4 enable_msi=1
5. Salve, feche e reinicie.

Pra mim funcionou beleza, sites em que encontrei as dicas:
1. http://ubuntuforums.org/showpost.php?p=7198547&postcount=5
2. http://ubuntuforum-br.org/index.php?PHPSESSID=lpm7p8nqsn4n73ddlsvdtmo7n0&topic=50761.0

APACHE, MYSQL, PHP, PHPMYADMIN e ECLIPSE NO UBUNTU

Breve tutorial da instalação e configuração do Ubuntu para programar com PHP, realizando estes simples passos já é possível iniciar a programar.

1. Atualizar o sistema operacional
apt-get update
apt-get upgrade

2. Instalar Apache/Mysql/PHP
aptitude install apache2 mysql-server-5.0 php5 php5-mysql php5-cli -y
--durante a instalação será necessário definir uma senha para o Mysql.

3. Ir ao diretório virtual
cd /var/www/

4. Criar pagina de teste
vi teste.php

5. Pressione 'i' para poder digitar no vi e adicione o seguinte código
< ? php
phpinfo();
? >

6. Pressione ESC e digite ':wq' para salvar e fechar o vi

7. Instalar PhpMyAdmin
aptitude install phpmyadmin

8. Copiar o diretório do phpmyadmin para dentro de /var/www
cp -r /usr/share/phpmyadmin/ /var/www/phpmyadmin
8. Para acessar no seguinte endereço, http://localhost/phpmyadmin, precisa fazer o seguinte:
sudo gedit /etc/apache2/apache2.conf
add esta linha no final do arquivo ou onde desejar
Include /etc/phpmyadmin/apache.conf
e então reiniciar o apache.
/etc/init.d/apache2 restart
Fonte: http://askubuntu.com/questions/19127/how-to-access-phpmyadmin-after-installation


9. Reinicie

10. Abra o navegador e acesse 'http://localhost/' para verificar o funcionamento do apache, depois 'http://localhost/teste.php' para ver as configurações do PHP e depois 'http://localhost/phpmyadmin' para gerenciar facilmente suas bases de dados no Mysql.

11. Baixe o eclipse aqui.

12. Descompacte ele dentro de algum diretório, recomendo /usr/local/

13. Crie um atalho para o Eclipse na Área de Trabalho:
13.1 Clique com o botão direito do mouse e escolha Criar lançador…;
13.2 No campo Nome, digite: Eclipse;
13.3 no campo Comando, digite: /usr/local/eclipse/eclipse
13.4 Clique em OK;

14. Duplo clique no atalho para abrir.

Obs.: É necessário ter JVM instalado para rodar o Eclipse.

Até.

Dicas daqui e daqui.

Recuperar GRUB Ubuntu após Windows

Esta semana tive que restaurar o Windows Vista Home Premium e como sempre, adeus qualquer outro SO que você tenha em sua máquina. Deixo aqui os passos que funcionaram pra restaurar o GRUB (GRand Unified Bootloader) no Ubuntu 9.04, ou seja, voltar a pedir pra escolher o sistema operacional que você deseja carregar ao invés de carregar direto o windows.

Selecionar SO

–--Entrar com o Live CD do Ubuntu e digitar no terminal:
1- sudo grub
2- find /boot/grub/stage1
3- root (hd?,?)
–--(onde ?,? é o que aparece no 2 – (hd0,1) por exemplo)
4- setup (hd0)
5- quit
–--reiniciar e está normal.

Encontrei aqui: http://ubuntuforum-pt.org/index.php/topic,14614.0.html

segunda-feira, 20 de julho de 2009

Diferenças da gripe comum para gripe A

quarta-feira, 15 de julho de 2009

Falha de Segurança e Malware

Olá! Hoje de manhã cedo lendo as notícias encontrei duas que acredito serem importantes compartilhar, a primeira é sobre uma falha crítica de segurança encontrada esta semana no navegador Firefox 3.5 e a segunda é referente a um malware que afeta tando Firefox como IE.

A vulnerabilidade no Firefox 3.5 pode ser explorada por um atacante através de uma página Web contendo códigos maliciosos. Ela pode ser atenuada desativando o JIT no motor de JavaScript, o que deixa o Firefox um pouco mais lento mas dificulta a exploração até que o bug seja corrigido. Mais detalhes neste link (inglês), veja a imagem abaixo tirada daqui uma forma de se proteger temporariamente.

Desativar JIT Firefox

Já o malware que comentei no início é capaz de alterar configurações de proxy dos navegadores, permitindo que todo o tráfego seja capturado, principalmente logins e senhas de bancos e outros serviços online, mais detalhes de como saber se você está infectado e como se proteger na página do Renato S. Yamane.

Até a próxima.

terça-feira, 14 de julho de 2009

Jovernal, o ladrão profissional

segunda-feira, 13 de julho de 2009

13 de julho - Dia Internacional do Rock

Ethiopia, as its borders were in 1985.Image via Wikipedia

Mas porque 13 de julho? Foi no dia 13 de julho de 1985 que um cara chamado Bob Geldof, vocalista da banda Boomtown Rats, organizou aquele que foi sem dúvida o maior show de rock da Terra, o Live Aid - uma perfeita combinação de artistas lendários da história da pop music e do rock mundial.

Além de contar com nomes de peso da música internacional, o Live Aid tinha um teor mais elevado, que era a tentativa nobre de conseguir fundos para que a miséria e a fome na África pudessem ser pelo menos minimizadas. Dois shows foram realizados, sendo um no lendário Wembley Stadium de Londres (Inglaterra) e outro no não menos lendário JFK Stadium na Filadélfia (EUA).

A música rock (ou simplesmente rock) é um termo abrangente para definir gênero musical popular que se desenvolveu durante e após a década de 1960. Suas raízes se encontram no rock and roll e no rockabilly que emergiu e se definiu nos Estados Unidos da América no final dos anos quarenta e início dos cinqüenta, que evoluiu do blues, da música country e do rhythm and blues, entre outras influências musicais que ainda incluem o folk, o gospel, o jazz e a música clássica. Todas estas influências combinadas em uma simples estrutura musical baseada no blues que era "rápida, dançável e pegajosa".

No final dos década de 1960 e início dos anos setenta, o rock desenvolveu diferentes subgêneros. Quando foi misturado com a folk music ou com o blues ou com o jazz, nasceram o folk rock, o blues-rock e o jazz-rock respectivamente. Na década de 1970, o rock incorporou influências de gêneros como a soul music, o funk e de diversos ritmos de países latino-americanos. Ainda naquela década, o rock gerou uma série de outros subgêneros, tais como o soft rock, o glam rock, o heavy metal, o hard rock, o rock progressivo e o punk rock. Já nos anos oitenta, os subgêneros que surgiram foram a New Wave, o punk hardcore e rock alternativo. E na década de 1990, os sub-gêneros criados foram o grunge, o britpop, o indie rock e o nu metal.

The Rolling Stones in the 1960s. From left: Ja...Image via Wikipedia

O som do rock muitas vezes gira em torno da guitarra elétrica ou do violão e utiliza um forte backbeat (contratempo) estabelecido pelo ritmo do baixo elétrico, da bateria, do teclado, e outros instrumentos como órgão, piano, ou, desde a década de 1970, sintetizadores digitais. Junto com a guitarra ou teclado, o saxofone e a gaita (estilo blues) são por vezes utilizados como instrumentos solo. Em sua "forma pura", o rock "tem três acordes, um forte e insistente contratempo e uma melodia cativante".

A maioria dos grupos de rock são constituídos por um vocalista, um guitarrista, um baixista e um baterista, formando um quarteto. Alguns grupos omitem uma ou mais destas funções e/ou utilizam um vocalista que toca um instrumento enquanto canta, às vezes formando um trio ou duo; outros ainda adicionam outros músicos, como um ou dois guitarristas e/ou tecladista. Mais raramente, os grupos também utilizam saxofonistas ou trompetistas e até instrumentos como violinos com cordas ou cellos.

Fontes: Wikipedia, Portal do Rock.


Diferenças no Nível de Ensino

QUANDO SE TEM DOUTORADO
O dissacarídeo de fórmula C12H22O11, obtido através da fervura e da evaporação de H2O do líquido resultante da prensagem do caule da gramínea Saccharus officinarum, (Linneu, 1758) isento de qualquer outro tipo de processamento suplementar que elimine suas impurezas, quando apresentado sob a forma geométrica de sólidos de reduzidas dimensões e restas retilíneas, configurando pirâmides truncadas de base oblonga e pequena altura, uma vez submetido a um toque no órgão do paladar de quem se disponha a um teste organoléptico, impressiona favoravelmente as papilas gustativas, sugerindo impressão sensorial equivalente provocada pelo mesmo dissacarídeo em estado bruto, que ocorre no líquido nutritivo da alta viscosidade, produzindo nos órgãos especiais existentes na Apismellifera. (Linneu, 1758) No entanto, é possível comprovar experimentalmente que esse dissacarídeo, no estado físico-químico descrito e apresentado sob aquela forma geométrica, apresenta considerável resistência a modificar apreciavelmente suas dimensões quando submetido a tensões mecânicas de compressão ao longo do seu eixo em conseqüência da pequena capacidade de deformação que lhe é peculiar.

QUANDO SE TEM MESTRADO
A sacarose extraída da cana de açúcar, que ainda não tenha passado pelo processo de purificação e refino, apresentando- se sob a forma de pequenos sólidos tronco-piramidais de base retangular, impressiona agradavelmente o paladar, lembrando a sensação provocada pela mesma sacarose produzida pelas abelhas em um peculiar líquido espesso e nutritivo. Entretanto, não altera suas dimensões lineares ou suas proporções quando submetida a uma tensão axial em conseqüência da aplicação de compressões equivalentes e opostas.

QUANDO SE TEM GRADUAÇÃO
O açúcar, quando ainda não submetido à refinação e, apresentando- se em blocos sólidos de pequenas dimensões e forma tronco-piramidal, tem sabor deleitável da secreção alimentar das abelhas; todavia não muda suas proporções quando sujeito à compressão.

QUANDO SE TEM ENSINO MÉDIO
Açúcar não refinado, sob a forma de pequenos blocos, tem o sabor agradável do mel, porém não muda de forma quando pressionado.

QUANDO SE TEM ENSINO FUNDAMENTAL
Açúcar mascavo em tijolinhos tem o sabor adocicado, mas não é macio ou flexível.

QUANDO NÃO SE TEM ESTUDO
Rapadura é doce, mas não é mole !

Acadêmicos Mackenzie x Café Pilão

Pedido dos Alunos do Mackenzie ao Café Pilão:
Prezados Srs., gostaria de verificar a possibilidade da realização de uma entrevista com o responsável pela Área de Marketing a respeito do mercado de café tipo exportação no Brasil. Eu e meus colegas somos alunos do curso de Administração/Comércio Exterior da Universidade Mackenzie e temos como tema do trabalho de conclusão de curso a influência do selo 'tipo exportação' no consumo de café no Brasil. A idéia é estudarmos os efeitos do produto exportável no
Mercado doméstico e por isso selecionamos profissionais do mercado de café cuja opinião nos seria de algum valor. A entrevista seria agendada conforme a disponibilidade da sua empresa e não levaria mais do que 1h.
Aguardo um retorno, e desde já agradeço.

Resposta do Café Pilão:

Agradecemos o seu contato e o seu interesse no nosso Café Pilão.Informamos que nós, do Café Pilão, possuíamos uma política para divulgação das informações sobre os nossos produtos e sobre a nossa empresa.Desta forma, disponibilizamos o site para que o estudante tenha acesso às informações sobre a marca do produto e a empresa
possíveis de serem divulgadas. Você poderá acessar nossa página pelo endereço: <http://www.cafepilao.com.br/ > Esperamos que você possa apreciar o site do Café Pilão, pois ele foi especialmente desenvolvido com todo carinho para você! Mais uma vez agradecemos o seu contato e
colocamos o Serviço de Atendimento ao Consumidor a sua disposição.
Um abraç sf o, Gledes de Souza.
Serviço de Atendimento ao Consumidor.

Réplica dos alunos:
Prezado Sr. Gledes de Souza, somos alunos do último semestre do curso de Administração/COMEX da Universidade Mackenzie. Embora o nosso curso seja meia-boca, Vsa. seja meia-boca e essa água suja que vocês chamam de café seja meia-boca, nós não o somos e a nossa paciência se esgotou. Como Vsa. não deve saber o que é stress, pois a sua existência medíocre não prevê a transposição de limites, prazos,
etc,eu gostaria de, em poucas linhas, escrever que é muito foda ralarmos para pagar a facu, mantermos nossos empregos, tentarmos minimamente concluir os trabalhos que sempre deixamos atrasar e ainda termos que aturar respostas imbecis como a que Vsa. nos mandou. Para tentar fazê-lo perceber o quão estúpida foi a sua atitude, segue um
silogismo bem didático, com a seqüência de raciocínio que o seu cérebro de amendoim deveria ter feito:
1. a minha mensagem chegou por meio do site do Café Pilão, portanto eu tenho acesso à Internet
2. a mensagem foi escrita, logo eu sei escrever
3. se eu sei escrever, muito provavelmente eu saiba ler
4. se eu sei ler, tenho acesso à Internet e acessei o site do CaféPilão p/ escrever a mensagem, eu vi o que havia escrito lá
5. se eu me dei ao trabalho de escrever uma merda de mensagem para uma banca de idiotas do serviço de atendimento, é porque eu preciso de algo ALÉM do que está no site.
Ficou claro? Portanto, meu amigo, eu penso sinceramente que pessoas como Vsa. deveriam ser esterilizadas ao nascer, pois assim pouparíamos as futuras gerações do
convívio desgastante que hoje somos obrigados a manter, em nome dos direitos humanos e da civilidade. Por fim, segue um conselho e um pedido. O conselho é que Vsa. se mate o mais rápido possível, e o pedido é que, antes de se matar, você vá tomar no CÚ.

Tréplica do Diretor de Marketing do Café Pilão
Prezados Formandos:Como vocês já devem ter percebido, cometeram vários erros na sua solicitação, imperdoáveis em alunos que estão saindo dos bancos de uma universidade para o mercado de trabalho.
Erro 1 Vocês tentaram estabelecer contato com uma grande empresa usando o canal de
comunicação errado, ou seja, o SAC, Serviço de Atendimento ao Consumidor. Se vocês já tivessem recebido a graça de um estágio numa empresa medianamente organizada, este fato, além de transformá-los em alvo de piada, jamais lhes renderia um emprego na alta administração,nem menos no telemarketing que é onde as empresas atendem idiotas iguais a vocês.
Erro 2 Vocês também revelaram grande amadorismo em fazer este tipo de contato por e-mail, como se em alguma empresa houvesse profissionais prontos para responder pedidos de filhinhos de papai que deixam os seus trabalhos de aula para a última
hora, porque ficam fumando maconha,comendo gatinhas e torrando a grana da família nos botecos da vida.Existe um equipamento chamado telefone, que é atendido por uma profissional chamada telefonista. Aqui na Pilão, casualmente, a telefonista é uma diplomada em Administração pela Mackenzie, com ênfase em Comércio Exterior ,que, por suas raízes, certamente abriria as portas para vocês.
Erro 3 O trabalho proposto por vocês é de uma inutilidade espantosa, uma prova de total incompetência para quem está obtendo um diploma de bacharel em administração. Na verdade, é uma pesquisa estúpida e imbecil, pois utiliza uma metodologia completamente errada -'entrevistas com profissionais do café ' para' estudar os efeitos do produto exportável no mercado doméstico'. Garotos, este tema já foi pesquisado há 10 anos atrás e não tem mais a mínima importância depois que Collor de Mello abriu as fronteiras do Brasil. Naquele tempo, aliás, os jovens, além de estudiosos, também eram politizados. Vocês já ouviram falar dos 'caras pintadas' ou acham que isso é apenas um apelido para palhaços Como vocês? Espero, com esta resposta, estar contribuindo para a formação de vocês. Mas, se esta resposta não lhes servir como uma pequena lição,fiquem tranqüilos. Entrem novamente em nosso site e conheçam os nossos projetos sociais, destinados a recuperar jovens drogados, a fazer inclusão digital (ensina inclusive a usar a internet) e a tratar problemas sexuais em jovens estudantes. Ah, antes que esqueça, abriu uma oportunidade de estágio para formandos em Comércio Exterior aqui na empresa: na Namíbia. Sabemos que é no cú do mundo, mas como vocês merecem tomar no cú, é um bom lugar.

Atenciosamente.Jairo Soares Diretor de Marketing

sexta-feira, 10 de julho de 2009

Delphi Grátis

Olá pessoal, lendo meus feed/RSS hoje vi um artigo interessante sobre licenças e alguns links interessantes, como programo atualmente com Delphi for ASP.NET na empresa, cliquei em um que me chamou a atenção, Delphi Grátis, verifiquei e realmente existe mas o software vem com algumas limitações, ainda assim é possível desenvolver muitas coisas legais. Mais detalhes no site da Code Gear - Turbo e tutoriais na Turbo Explorer.

Pesquisando outras alternativas ao software pirata para quem está habituado com o Delphi encontrei o Lazarus (Win32), que roda em Linux, FreeBSD, MacOSX e Windows, também temos o Free Pascal e o Kylix. Segundo meus colegas Sipmann e Allan, o Lazarus funcionou muito bem no Ubuntu 9.04 e eles recomedaram o uso do mesmo já que o Kylix está descontinuado.

Bom, concluí com esta breve consulta ao oráculo que existem muitas alternativas ao uso de software pirata e que vale a pena utilizálos para garantir a segurança do seu computador e do seu bolso, até.

Visão de Obama

Obama olhando a bunda da ruiva!
Olhem o video com a reportagem, muito pedó estes presidentes...

quinta-feira, 9 de julho de 2009

Flagra Surpreendente

quarta-feira, 8 de julho de 2009

Claim Blog in Technorati

Bom, estou tentando adicionar o blog no Technorati, se entendi direito é preciso fazer um post com um código (h6vmwp2es4). Se colocar em um link para lá notei que vai direto pro meu perfil, vamos ver no que dá.

Bom, funcionou, recomendo o tutorial How to Claim Blogs on Technorati pra quem quiser adicionar seu blog no Technorati.

My Technorati Profile

terça-feira, 7 de julho de 2009

25 Formas de Orgasmo Feminino


1 - Asmática...........: Uhh.. Uhhh... uhhh...
2 - Geográfica........... : Aqui, aqui, aqui, aqui...
3 - Matemática........: Mais, mais, mais, mais...
4 - Religiosa.............: Ai meu Deus, ai meu Deus....
5 - Suicida .............: Eu vou morrer, eu vou morrer...
6 - Homicida...........: Se você parar agora, eu te maaatooo!!!
7 - Sorvete............. : Ai Kibon, ai Kibon, ai Kibon...
8 - Zootecnista............: Vem, meu macho!! Vem, meu macho!!!
9 - Torcedora............: Vai, vai, vai...
10 - Professora de Inglês...: Ohhh!!! YES!!! Ohhh, God!!!
11 - Margarina.........: Que Delícia, que Delícia...
12 - Negativa............. : Não. Não... Nãoooooo...
13 - Positiva............: Sim. Sim...Simmmmmm...
14 - Pornográfica..........: Puta que o Pariu! Vem filho da puta!
15 - Serpente Indiana........: Ssssssssss...Ssssssssss...
16 - Professora...........: Sim... isso.. por aí, exato...
17 - Sensitiva............ : Tô sentindo.... tô sentindo.
18 - Desinformada......: O que é isso? O que é isso?
19 - Degustadora.......: Ai gostoso... gostoso... gostoso...
20 - Cozinheira............: Mexe... Mexe... Mexe...
21 - Coveira...............: Mais fundo...mais fundo...
22- Gulosa..............: Põe tudo...põe tudo
23- Informática............: Enter+, enter+...
24- Evangélica..............: Jesus...Jesus...
25- Casada..............: Olha só, a empregada não limpou o lustre!

Meninas Maldosas!

Qual é o sexo do seu cérebro?

O cérebro humano pode ser feminino ou masculino independentemente do sexo biológico de uma pessoa. “O sexo do cérebro é determinado pela quantidade de testosterona [hormônio masculino] a que o feto fica exposto no útero. Em geral, homens recebem doses maiores do que as mulheres. Mas isso varia e nós ainda não sabemos exatamente por quê”, diz a ÉPOCA a neuropsicologista Anne Moir, da Universidade de Oxford, na Inglaterra. Faça o teste e saiba se o seu cérebro tem o mesmo sexo que seu corpo.



Moir (vai saber) acredita que a diferença de sexo entre cérebro e corpo pode estar ligada às causas do homossexualismo. “Se a concentração de testosterona no útero está mais baixa do que o padrão para os homens, então o 'centro sexual' do cérebro será feminino e esse homem sentirá atração por outros homens. Se a concentração desse hormônio estiver alta, o 'centro sexual' será masculino e ele sentirá atração por mulheres”, diz Moir.

Além do teste, outro fator que pode mostrar o sexo do cérebro de uma pessoa, segundo os estudos de Moir, é a medida dos dedos das mãos. Segundo os estudos da inglesa, geralmente, quem tem cérebro masculino tem o dedo indicador menor que o anelar (olhando para a mão de frente para a palma). Já cérebros femininos são associados a dedos indicadores do mesmo comprimento que os anelares.



Bom, pra mim o resultado foi 3, e você, tem coragem de fazer o teste? Clique aqui.

segunda-feira, 6 de julho de 2009

Alta Tecnologia


Especial pros meus colegas de SI!

Murphy era Otimista! Novas Leis Descobertas

1 - LEIS BÁSICAS DA CIÊNCIA MODERNA:
1. Se mexer, pertence à Biologia.
2. Se feder, pertence à Química.
3. Se não funciona, pertence à Física.
4. Se ninguém entende, é Matemática.
5. Se não faz sentido, é Economia ou Psicologia.
6. Se mexer, feder, não funcionar, ninguém entender não fizer sentido, é informática..

2 - LEI DA PROCURA INDIRETA:
1. O modo mais rápido de encontrar uma coisa é procurar outra.
2. Você sempre encontra aquilo que não está procurando.

3 - LEI DA TELEFONIA:
1. Quando te ligam: se você tem caneta, não tem papel. Se tiver
papel, não tem caneta. Se tiver ambos, ninguém liga.
2. Quando você liga para números errados de telefone, eles nunca estão ocupados.
Parágrafo único: Todo corpo mergulhado numa banheira ou debaixo do
chuveiro faz tocar o telefone.

4 - LEI DAS UNIDADES DE MEDIDA:
Se estiver escrito ‘Tamanho Único’, é porque não serve em ninguém,
muito menos em você…

5 - LEI DA GRAVIDADE:
Se você consegue manter a cabeça enquanto à sua volta todos estão
perdendo, provavelmente você não está entendendo a gravidade da
situação.

6 - LEI DOS CURSOS, PROVAS E AFINS:
80% da prova final será baseada na única aula a que você não
compareceu e os outros 20% será baseada no único livro que você não
leu.

7 - LEI DA QUEDA LIVRE:
1. Qualquer esforço para agarrar um objeto em queda provoca mais
destruição do que se o deixássemos cair naturalmente.
2. A probabilidade de o pão cair com o lado da manteiga virado para
baixo é proporcional ao valor do carpete.

8 - LEI DAS FILAS E DOS ENGARRAFAMENTOS:
A fila do lado sempre anda mais rápido.
Parágrafo único: Não adianta mudar de fila. A outra é sempre mais rápida.

9 - LEI DA RELATIVIDADE DOCUMENTADA:
Nada é tão fácil quanto parece, nem tão difícil quanto a explicação do manual.

10 - LEI DO ESPARADRAPO:
Existem dois tipos de esparadrapo: o que não gruda e o que não sai.

11 - LEI DA VIDA:
1. Uma pessoa saudável é aquela que não foi suficientemente examinada.
2. Tudo que é bom na vida é ilegal, imoral, engorda ou engravida.

12 - LEI DA ATRAÇÃO DE PARTÍCULAS:
Toda partícula que voa sempre encontra um olho aberto.

13 - LEIS DA ATRAÇÃO(COISAS QUE SE ATRAEM SEM ESFORÇO NENHUM):
Olhos e bunda
Pobre e funk
Mulher e vitrines
Homem e cerveja
Chifre e dupla sertaneja
Carro de bêbado e poste
Tampa de caneta e orelha
Moeda e carteira de pobre
Tornozelo e pedal de bicicleta
Leite fervendo e fogão limpinho
Político e dinheiro público
Dedinho do pé e ponta de móveis
Camisa branca e molho de tomate
Tampa de creme dental e ralo de pia
Café preto e toalha branca na mesa
Dezembro na Globo e Roberto Carlos
Show do KLB e controle remoto (Para mudar de canal)
Chuva e carro trancado com a chave dentro
Dor de barriga e final de rolo de papel higiênico
Bebedeira e mulher feia
Sábado e chuva
Segunda-feira e dor de cabeça
Feriado e carteira vazia

Vi aqui, e aqui e outros lugares também.