sexta-feira, 9 de maio de 2008

Arnaldo Jabor

Os travestis são centauros urbanos, duas vidas num corpo só. Não confundir o travesti com a caricatura da drag-queen. O travesti tem orgulho de ser quem é. Ele não é uma decaída.

Ele é uma afirmação de identidade. Ele não é da área moral, ele é da área artística. Há algo de clone no travesti, pois eles nascem de dentro de si mesmos.Quem está nu ali na esquina, o homem ou a mulher nele?

O que oferece o travesti ao homem que o procura? A chance de ser a mulher de uma mulher.
O travesti não é simples e doce, há um lado 'criminal' no travesti. Ele tem coragem de ser duplo, do terror e glória no centro da madrugada.

O homem que se casa com a prostituta se acha um 'benfeitor', que humilha a mulher que salvou. O travesti nunca será grato a você. Você é que terá de lhe agradecer. O travesti não dá uma boa esposa, você é que poderá virar esposa dele: "Querida, já lavei sua minissaia de oncinha".

O travesti tem algo de caubói, corajoso como um John Wayne de biquíni 'fio dental'. Você passa no carro e o vê, uma Marilyn de botas no meio dos faróis e lá se vai o pai de família perdido de loucura. O travesti nos fascina porque assume a verdade de sua mentira.

terça-feira, 25 de março de 2008

O fim do mundo! Ou não!

Máquina do Tempo: O Primeiro Acelerador...

É assim que a pr imeira maquina do tempo pode ser!
Já ouviu falar
de buracos de minhoca(wormholes)?
Bom, em breve você poderá começar a ouvir falar deles, já que o mais poderoso acelerador de partículas do mundo irá se to
rnar funcional na primavera deste ano - libertando forças capazes não só de distorcer o espaço(assim como a gravidade distorce o espaço ao redor da terra) mas também o TEMPO!

O acelerador
de p artículas do CERN está definido para se tornar a primeira máquina do tempo da história.

De acordo com a pesquisa publicada por Irina Arefieva e Igor Volovich "na relatividade geral, uma curva no espaço tempo irá correr do passado para o futuro. Mas, em alguns espaço-tempos as curvas podem se encontrar gerando uma curva mais fechada, o que é interpretado como uma máquina do tempo- o que sugere a possibilidade de viagens no tempo "

Dois prótons viajam em direções opostas e colidem em quatro pontos ao longo do caminho - replicando as condições do Big Bang "do plasma cósmico", um misterioso estado, quase líquido, que ocorreu antes dos quarks esfriarem suficientemente para permitir que átomos se formassem. O acelerador de partículas vai forçar os quarks se separareme recriar o "plasma cósmico"original e reconstruir as condições do
Big Bang.

Aqui estão alguns fatos rápidos:

  • 20 anos de trabalhos em andamento
  • Uma equipe de 7000 físicos de mais de 80 nações
  • 27 km de circunferência, 175 metros no subsolo
  • Irá facilitar a colisão de prótons, viajando muito perto da velocidade da luz
  • Cada túnel é grande o suficiente para por um trem através dele.
  • Temperaturas geradas: mais de 1000.000 vezes mais quente que o núcleo do sol
  • Magnetos supercondutores são resfriados a uma temperatura mais fria que a do espaço profundo.

A coisa mais complicada que os seres humanos já construiram

Para melhor apreciar a enorme dimensão desta besta, considere que ela percorre 17 milhas através da fronteira de dois países, tem detectores em quatro localidades do tamanho de edifícios, aloja
dos em grandes cavernas - e se por ventura vocÊ estivesse dentro do túnel, enquanto ele estivesse em operação, você teria uma experiência. altamente radioativa e fatal.

Apenas um supercondutor solenóide, contém mais ferro do que a Torre Eiffel. Os custos de construção do acelerador de partículas foram tão elevados, que a América teve de pôr um fim ao seu próprio projeto de um acelerador de partículas em 1993 (apesar de 14 quilômetros de túneis já terem sido escavados no Texas), de modo que hoje, o CERN pode ser chamado de "a coisa mais complicada que os seres humanos já construíram.

A ideia é concentrar toda esta incrível energia no menor espaço possível. Como se costuma dizer, "quanto mais energia entrar, maiores serão as partículas que irão sair". Mas quão grandes? Que tal do tamanho de um mini buraco-negro?

Se o acelerador de partículas não produzir uma "viagem no tempo", outras coisas emocionantes que
ele pode produzir são:

O fim do mundo :D

Piadas à parte, os cientistas esperam coisas emocionantes, porém daquelas que podem ser contidas.
Todas as outras estranhas coisas que o acelerador de partículas pode produzir é um big-bang de média dimensão, ou um buraco negro, mas os cientistas do CERN estão calmos, eles garantem que "mesmo que buracos negros sejam produzidos, eles serão muito pequenos e durarão pouco para gerar uma forte força gravitacional ". Em outras palavras, Genebra não vai ter sugada para outra dimensão.

Ufa...que bom...

Enquanto isso, uns doidos conseguiram medir a aceleração da matéria em órbita de um buraco negro. Eles conseguiram detectar pequenas bolhas de gás quente, aproximadamente do tamanho do Sol, orbitando em uma órbita semelhante à de Júpiter. O detalhe é que Júpiter completa 1 volta a cada 12 anos terrestres, mas essas bolhas completam 1 volta em apenas 27 horas, numa velocidade de aproximadamente 30.000 Km/s - POR SEGUNDO. Pense numa velocidade! Pense na força de um buraco negro, que tem uma gravidade TÃO grande que não deixa nem a luz escapar! Existem buracos negros com massa estimada em 100 milhões de vezes a do nosso Sol, tendo apenas poucas vezes o seu diâmetro. Poucas mesmo, coisa de 2 ou 3 vezes.

A gente tem mais é que aproveitar intensamente a nossa estada aqui, nessa vida, porque ela é tão pequenininha, tão rapidinha, mas tão rapidinha, que não faz nem cosquinha na história do nosso planeta, que, por sua vez, não faz nem cosquinha na história do universo.

Êta complexo de inferioridade!




Por você!


Vou rasgar o céu das ilusões

Mover montanhas de preconceitos
Plantar simplicidade no dia-a-dia.


Por vc!

Vou me reinventar a todo instante
Me descobrir nos esconderijos da minha mente
Agir no impulso do meu coração.


Por vc!
Vou acordar o mundo
Redesenhar o absurdo
Tocar a música do infinito.


Por vc!
Construirei pontes sobre os medos
Estradas em meio às selvas dos desejos
Estarei presente no silêncio e na ausência.


Por vc!
Serei saudade e constância
Amor verdadeiro e entrega
Resignação e sublimação.


Por vc!
Encontrarei o pote de ouro no fim do arco-íris
Contemplarei Atlântida submergida
E mergulharei em Shambala no centro da vida.


Por vc!
Meu coração vai iluminar mais que o Sol
Enebriar mais que a Lua
Hipnotizar mais que o mar.


Por vc!
Vou renascer
Vou viver e vou sofrer
Porque já não posso mais fugir...
Nem de vc, nem de meu amor por vc!

dedico esse poema ao amor da minha vida, Marcela

segunda-feira, 24 de março de 2008

Da série: Aprendendo!

Programando em Ruby II - Tipos, Numeros, Strings e Array


Continuando os Artigos sobre Ruby…..

Hoje falaremos sobre Tipos, Numeros, Strings, Array

Antes de começarmos a falar propriamente da linguagem ruby, vamos pensar um pouco sobre algumas características de outras linguagens de programação. No fundo de qualquer linguagem de programação o objetivo é disponibilizar uma sintaxe e semantia que sejam capaz de escrever a solução de um problema que seja finito e bem delineado. Porém existem várias complicações nesse meio, ou seja, imagine qual seria a atribuição verdadeira de uma linguagem, podemos pensar de várias formas, mais vamos aos extremos:

Uma Linguagem tem que ser:

Uma Linguagem tem que ser completa, com todas as funções possiveis prontas, tem que ser rigida e formal o suficiente para que não leve o programador a errar, tem que ser formal o suficietne que transforme o ato de programar algo previsível e desenhavel como um processo de engenharia, onde antes de começar a ato de programar seja possível prever o resultado com grande garantia.

Bem essa seria a linguagem ideal, porém vamos aos detalhes. Uma linguagem que tenha todas as funções possiveis prontas e ja disponíveis seria ótimo pois ja teria tudo a mão durante a programação, porem o aprendizado de várias funções prontas seria mais demorado e complexo tornando mais dificil o aprendizado do linguagem. Uma libguagem que seja formal o suficiente para ão deixar o programador errar torna o resultado masi previsível, porém, torna o processo de programar algo mecanico e mata a possibilidade de criar metodos novos de resolvel algum problema de uma maneira diferente limitando a capacidade dos programadores. Tornar o processo de programar algo como um processo puramente de engenharia seria o ideal pois tornaria os software mais previsíveis, porém o ato de programar e um ato de arte não de pura matemática, sendo onde deve ser bem dosado o que será arte e o que será planejamento e previsão.

Ou uma linguagem deve ser simples, só com as funcionalidades indispesáveis, com alto poder de explansão, tem que ser totalmente flexivél e adaptavél para que libere a criatividade do programador, deve ser dinamica o suficiente para que o software seja algo perfieto e nada previsível.

Bem essa também seria a linguagem ideal porém vamos as detalhes: Uma liguagem simples que so contenas funços básicas seria muito simples de aprender, porem a toda nova necessidade seria necessário que seja escrito, onde tornar o ato de programar totalmente artístico en nada previsível torna o software mais sucessível a erros e falhas.

Bem isso são alguns pontos que são interessantes serem lembrados antes de começarmos a falar em ruby, pois ruby é uma linguagem que tende mais a segunda opção acima não tão extrema, mais algo perto. A linguagem ruby foi feito por um programador e visa a satisfação do programador, ela também e altamente expansível e adaptavel, e dinamica e simples.

Bem Vamos a Ruby!

TIPOS

Bem, em ruby nao tem tipos! Não da maneira que se tem em java, como primitivos, ou sej, numeros, caracteres, booleanos.

Em Ruby tudo é objeto, e sendo assim:

1 - é um Objeto da classe Fixnum

1231231.654645 - é um objeto da classe Float

“a” - é um objeto da classe String

true - é um objeto da classe TrueClass

false - é um objeto da classe FlaseClass

Sabendo que objetos tem métodos, quas são os métodos de um Fixnum ou do 1

irb(main):007:0> 1.methods

[”%”, “inspect”, “<<”, “singleton_method_added”, “&”, “clone”, “>>”, “round”, “method”, “public_methods”, “instance_variable_defined?”, “divmod”, “equal?”, “freeze”, “integer?”, “chr”, “*”, “+”, “to_i”, “methods”, “respond_to?”, “-”, “upto”, “between?”, “prec”, “truncate”, “/”, “dup”, “instance_variables”, “__id__”, “modulo”, “succ”, “|”, “eql?”, “object_id”, “zero?”, “~”, “id”, “to_f”, “singleton_methods”, “send”, “prec_i”, “taint”, “step”, “to_int”, “frozen?”, “instance_variable_get”, “^”, “__send__”, “instance_of?”, “remainder”, “to_a”, “+@”, “nonzero?”, “-@”, “type”, “**”, “floor”, “<”, “protected_methods”, “<=>”, “instance_eval”, “display”, “==”, “prec_f”, “quo”, “>”, “===”, “downto”, “id2name”, “size”, “instance_variable_set”, “kind_of?”, “abs”, “extend”, “>=”, “next”, “to_s”, “<=”, “coerce”, “hash”, “ceil”, “class”, “tainted?”, “=~”, “private_methods”, “div”, “nil?”, “untaint”, “times”, “to_sym”, “[]”, “is_a?”]

Notem que o Objeto 1 tem todos os metodos necessários para ser auto-suficiente, ou seja, o objeto 1 é capas de se somar, subtrair, multiplicar, dividir e muitas outras ações usando os métodos. Legal isso sendo assim a linguagem ruby não tem nada a ver com soma, isso e responsabilidade dos objetos.

Bem parece que a linguagem ruby realmente e bem simples, ela nao faz quase nada, nem mesmo operações matemáticas básicas, etão o quela realmetne faz.

Bem uma coisa interessante da linguagem ruby e o “sintax sugar”, e como e chamado alguns recursos de ajuda ao programador, coisas que tornam algo complicado de ser lido ou escrito em açucar sintatico para o programdor.

Olhem esse exemplor - a = 10 + 20

Bem para se chamar um método de um objeto escreve-se assim “Objeto.Metodo”

Então ja que em Ruby o 10 e um Objeto Fixnum e + é um metodo do objeto ficaria ssim:

a.=(10.+(20))

ai entra o sintax sugar em açao e deixa voe escrever assim:

a = 10 + 20

Isso nao mudou nada o 10 continua sendo objeto e + um metodo do objeto 10, porem a sintaxe ficou açucarada e bem mais legível, legal isso.

A função de sintax sugar é muito usada em ruby, sempre que ruby puder tornar as coisas mais legíes e simples ele as tornará.

Funções avançadas em numeros

Voltando as números, talvez voce tenha notado que apesar de a Classe Fixnum ter bastantes métodos ela nao contem métodos muto avançados de matemática, isso fic a cargo de um módulo chamado Math

Raiz Quadrada de 25 ficaria assim em ruby

Math.sqrt(25)

Metodos do módulo Math

[”inspect”, “cos”, “log10″, “private_class_method”, “const_missing”, “clone”, “method”, “public_methods”, “atan”, “public_instance_methods”, “instance_variable_defined?”, “erf”, “method_defined?”, “equal?”, “freeze”, “included_modules”, “const_get”, “asinh”, “methods”, “respond_to?”, “sin”, “module_eval”, “class_variables”, “sqrt”, “dup”, “protected_instance_methods”, “cosh”, “instance_variables”, “public_method_defined?”, “erfc”, “__id__”, “eql?”, “object_id”, “const_set”, “atanh”, “id”, “singleton_methods”, “tan”, “send”, “frexp”, “class_eval”, “taint”, “frozen?”, “instance_variable_get”, “sinh”, “include?”, “private_instance_methods”, “__send__”, “instance_of?”, “private_method_defined?”, “to_a”, “name”, “exp”, “autoload”, “type”, “<”, “protected_methods”, “instance_eval”, “<=>”, “acos”, “display”, “==”, “>”, “ldexp”, “===”, “instance_method”, “instance_variable_set”, “tanh”, “kind_of?”, “extend”, “protected_method_defined?”, “const_defined?”, “>=”, “ancestors”, “atan2″, “to_s”, “<=”, “public_class_method”, “log”, “hash”, “class”, “tainted?”, “instance_methods”, “asin”, “=~”, “private_methods”, “class_variable_defined?”, “hypot”, “nil?”, “untaint”, “constants”, “acosh”, “is_a?”, “autoload?”]

Conversão de numeros

Felizmente a classes Numericas possuem métodos de conversão, ficando assim:

1.to_i - Converte para inteiro

1.to_s - Converte para String

1.to_f - Converte para Float

1.chr - Converte na tabela Ascii

Tem muito mais conversoes possível que voce pode ver na documentação

STRING

Bem agora vamos falr um pouco sobre String

String é uma cadeia de Caracteres, em ruby não, String é um objeto da Classe String.

“Ola eu sou uma String” ou ‘Ola eu sou uma String’

A diferença entre scrings com Aspas dupla e Simples e que Strings com Aspas duplas aceita caractere de formatacao, tipo quebra de linha e outros.

Vamos dar uma olhada nos métodos diponíveis em Strings

“Ola eu sou uma String”.methods

[”%”, “select”, “[]=”, “inspect”, “<<”, “each_byte”, “clone”, “method”, “gsub”, “casecmp”, “public_methods”, “to_str”, “partition”, “tr_s”, “empty?”, “instance_variable_defined?”, “tr!”, “equal?”, “freeze”, “rstrip”, “*”, “match”, “grep”, “chomp!”, “+”, “next!”, “swapcase”, “ljust”, “to_i”, “swapcase!”, “methods”, “respond_to?”, “upto”, “between?”, “reject”, “sum”, “hex”, “dup”, “insert”, “reverse!”, “chop”, “instance_variables”, “delete”, “dump”, “__id__”, “tr_s!”, “concat”, “member?”, “object_id”, “succ”, “find”, “eql?”, “each_with_index”, “strip!”, “id”, “rjust”, “to_f”, “singleton_methods”, “send”, “index”, “collect”, “oct”, “all?”, “slice”, “taint”, “length”, “entries”, “chomp”, “frozen?”, “instance_variable_get”, “upcase”, “sub!”, “squeeze”, “include?”, “__send__”, “instance_of?”, “upcase!”, “crypt”, “delete!”, “detect”, “unpack”, “to_a”, “zip”, “lstrip!”, “type”, “center”, “<”, “protected_methods”, “instance_eval”, “map”, “<=>”, “rindex”, “display”, “any?”, “==”, “>”, “split”, “===”, “strip”, “size”, “sort”, “instance_variable_set”, “gsub!”, “count”, “succ!”, “downcase”, “min”, “kind_of?”, “extend”, “squeeze!”, “downcase!”, “intern”, “>=”, “next”, “find_all”, “to_s”, “<=”, “each_line”, “each”, “rstrip!”, “class”, “slice!”, “hash”, “sub”, “tainted?”, “private_methods”, “replace”, “inject”, “=~”, “tr”, “reverse”, “nil?”, “untaint”, “sort_by”, “lstrip”, “to_sym”, “capitalize”, “max”, “chop!”, “is_a?”, “capitalize!”, “scan”, “[]”]

Com certeza uma das atribuiçoes mais importantes de uma linguagem de programaçao e manipular bem strings ou textos, e ruby com certeza da conta do recado, trabalhar com String e ruby e buito facil e produtivo.

Manipulação de String

a = “bom” => “bom”

a * 3 => “bombombom”

a + ” dia” => “Bom Dia”

a << ” Hacker” => “Bom dia Hacker”, a diference de + e <<>

a.upcase => “BOM DIA HACKER”

a.downcase => “bom dia hacker”

a.capitalize => “Bom dia hacker”

Percorrendo e Alterando uma String

a = “Estudando Ruby” => “Estudando Ruby”
a[0] = “e” => “estudando Ruby”

a[10] => 82, codigo da tabela ascii

a.delete(”R”) => “estudando uby”

a.insert(9,”R”) => “estudando Ruby”

a.reverse => “ybuR odnadutse”

Bem temos em ruby uma maneira simples de concatenar textos

Exite a notação “#{}”

Imagine escrever o texto assim

a = “nome do usuario”

“Bom dia”+ a => “Bom dia nome do usuario”

“Bom dia #{a}” => “Bom dia nome do usuario”

Tem muito mais coisas legais sobre String, mais veremos mais adiante em outro artigo.

ARRAY

Agora vamos ver um pouco sobre Array

Array é um capitulo aparte em Ruby, aqui e que ruby mostra seus diferenciais e torna tudo mais interessante, algo que com certeza voce vai se beneficiar.

a = [] => Cria um array vazio

a = [1,2,3,4,5] => cria e ja popula uma array

Vamos dar uma olha nos methos da classe array

a.methods

[”select”, “[]=”, “inspect”, “<<”, “compact”, “&”, “clone”, “last”, “method”, “public_methods”, “partition”, “delete_if”, “empty?”, “instance_variable_defined?”, “equal?”, “freeze”, “each_index”, “*”, “grep”, “sort!”, “assoc”, “+”, “to_ary”, “methods”, “respond_to?”, “-”, “reject”, “insert”, “reverse!”, “dup”, “push”, “delete”, “instance_variables”, “concat”, “member?”, “__id__”, “|”, “find”, “eql?”, “pack”, “join”, “reverse_each”, “object_id”, “each_with_index”, “collect!”, “rassoc”, “id”, “at”, “compact!”, “singleton_methods”, “index”, “collect”, “send”, “all?”, “reject!”, “flatten”, “slice”, “taint”, “length”, “entries”, “pop”, “instance_variable_get”, “frozen?”, “transpose”, “include?”, “__send__”, “instance_of?”, “detect”, “to_a”, “indexes”, “zip”, “map!”, “uniq”, “type”, “fetch”, “protected_methods”, “instance_eval”, “map”, “<=>”, “values_at”, “rindex”, “display”, “any?”, “==”, “===”, “shift”, “size”, “sort”, “instance_variable_set”, “clear”, “min”, “kind_of?”, “extend”, “find_all”, “to_s”, “indices”, “each”, “class”, “flatten!”, “slice!”, “hash”, “first”, “tainted?”, “replace”, “inject”, “=~”, “private_methods”, “delete_at”, “reverse”, “nitems”, “nil?”, “untaint”, “sort_by”, “unshift”, “max”, “fill”, “is_a?”, “[]”, “uniq!”]

Algumas funções básicas sobre arrays

a = Array.new ou a=[]

a << “Joaquim” => [”Joaquim”]

a.insert(1,”Silva”) => [”Joaquim”,”Silva”]

a.first => “Joaquim”

a.last => “Silva”

a.empty? => false

Bem na verdade a classe array tem muitos métodos, e com certeza tem u que supra sua necessidades, vamos ver um ouco csobre interaçao com array.

a = [4,5,6,7,8,9,10]

a.each {|i| puts i} => 4,5,6,7,8,9,10

Bem existem várias variaçoes de interadores em array, mais acredito que ainda falaremos muito sobre esse assunto, que certamente sera aborado em soutros temas, sendo assuim, ficamos por aqui!

sábado, 22 de março de 2008

Da série: Aprendendo!

Programando em Rub I - Orientação a Objeto

Tudo no Paradigma de Programação a Orientada a Objetos resume-se em:

  1. Classes
  2. Atributos
  3. Metodos

Na construção de uma Classe, observamos:

  1. Herança
  2. Abstração
  3. Encapsulamento
  4. Polimorfismo

E por fim tudo Acaba em Objeto.

Ou seja, Objetos são Instancias de Classes que forma construídas observado Heranças, Encapsulamento, Polimorfismo e abstração.

Bem! Voce pode estar se perguntando, isso eu ja sabia! Porem vale apena lembrar antes de entrarmos no assunto, pois em alguns momentos esses conseitos serão importantes para esclarecer dúvidas sobre as várias implementações do Paradigma.

Para entendermos melhor vamos analizar a função seguir:

a = 10 + 20

Vamos Ver o que é cada um dos membros dessa função.

“a” - é uma variável

“=” - é um operador

“10″ - é um número

“+” - é um operador

“20″ - é um número

Na primeira olhada na funçao podemos identificar facilmente as partes que a compoem. E bem claro que a função e composta de variáveis, operadores e números.

Bem voltemos então as bases da Orientação a Objetos(no começo do artigo), procure por variáveis, operadores e números. Isso mesmo não existe variáveis, operadores e números, na Orientação a Objetos só existem, Objetos compostos de atributos e metodos.

Vamos rever a função, agora Orientado a Objetos

a = 10 + 20

“a” - é um objeto

“=” - é um método do objeto “a”

“10″ - é um objeto

“+” - é um método do objeto “10″

“20″ - é um objeto

Poderia ser escrito assim:

a.=(10.+(20))

Ou seja, tudo em uma linguagem Orientada a Objetos são objetos.

É assim que Ruby implementa a Orientação a Objetos, tudo que é manipulado em um Programa segue a seguinte ordem, Palavra Reservada, Objeto ou Método, não existe nada além disso.

Isso simplifica muito o aprendizado da linguagem, pois aprendendo as palavras reservadas, o resto é tudo objetos, e quando voce precisa fazer alguma coisa com um objeto basta chamar seus métodos e pronto, simples assim.

Vejamos um exemplo de um objeto em ruby

“eu sou um objeto”

Voce deve estar olhando e vendo que isso é uma String, isso mesmo, e também e um objeto, e tem um monte de métodos

Vamos fazer o texto ficar todo em maiúsculo

“eu sou um objeto”.upcase

“EU SOU UM OBJETO”

Notem, nós chamamos o métodos “upcase” diretamente na String. O Objeto é auto-suficiente, contém todos os métodos pertinentes a sí, isso é muito importante, pois libera a linguagem dessas obrigações.

Vejamos os numeros

10

Isso também é um objeto e tem seus métodos por exemplo, o + é um métodos do objeto 10.

10.+(20)

ou 10 + 20

Um pouco mais de filosofia sobre Orientação a Objetos!

Bem voce deve estar pensando, “bem se o + e um método do objeto 10, eu poderia sobrescreve-lo, e fazer o + realizar qualquer coisa!”, Sim isso mesmo voce pode sobrescrever qualquer método e modifica-lo de acordo com suas necessidade.

Ficaria assim:

class MeuNumero < Fixnum
def +(numero)
42
end
end

numero = MeuNumero.new(1)
# Repare como um operador de soma é um método em ruby, ao contrário de outras linguagens
puts numero+2 # 1+2 = 42 ??? Sim, sobrescrevemos o método de soma para retornar 42 sempre.

Bem mais isso não e perigoso, imagine um método que chama + e que realiza uma divisao, poderia confundir o programador. Isso é verdade, porém da muita flexibilidade, e deixa tudo Orientado a Objetos.

Muitas linguagens como o Java deixam os operadores dentro da própria linguagem e nao como um método do objeto numero, e os númentos também são primitivos e não objetos, com isso se diminui a possibilidade de uso errado das coisas, porém deixa a linguagem muito suja e complexa, pois nao sabe quando deve-se chamar um método ou quando deve-se chamar uma função da linguagem, e também deixa o conseito de Orientação a Objetos errado, por isso que java é PseudoOrientada a Objetos, em alguns pontos ela e totalmente procedural, ou seja:

a = 10 + 20

Isso é totalmente procedural pois:

“10″ - é um número(primitivo)

“+” - é uma função da linguagem java

“20″ - é um número(primitivo)

Essa função em java não é nada orientado a objeto.

Bem essa era a parte filosófoca do nosso artigo, mais era importante saber e relembrar as bases do Conseito de Orientação a Objetos, pois serão muito úteis no aprendizado da linguagem Ruby.

No proximo artigo veremos mais a fundo na Linguagem Ruby (Tipos, Numeros, Strins e Array).

Aprendendo!

O que é a Linguagem de programação Ruby?

Segundo Yukihiro Matsumoto, ou “Matz”, o criador da linguagem Ruby: Mats

“Ruby é uma Linguagem de script interpretada para programação orienteada a objetos, de modo fácil e rápido. Ela tem vários recuros para processar arquivos de texto e para fazer tarefas de gerenciamento de sistemas. Ela é simples, direta ao ponto, extensível e portável. Oh, preciso mensionar, é totalmente livre, o que significa não só livre de precisar pagar para usá-la, mais também a liberdade de usar, copiar, modificar e distribuí-la”

Pensamentos de Mats:
“Para mim o propósito da vida é parcialmente em ter prazer. Programadores às vezes sentem prazer quando podem se concentrar na parte criativa da programação. Então Ruby foi projetado para fazer programadores felizes”

Matz começou a trabalhar no Ruby em 24 de fevereiro de 1993, a primeira versão alpha ficou pronta em dezembro de 1994. Até 1996, ele trabalhou sozinho, quando começou a se formar uma comunidade ao redor da linguagem. A partir daí, apesar de ainda fazer a maior parte do desenvolvimento sozinho, Matz passou a receber fixes e patches da comunidade.

Características da Linguagem

  1. Principio da Menor Surpresa
  2. Orientada a Objetos “de verdade” (nao como java “pseudoorientada”)
  3. Tipagem Dinamica
  4. Fortemente Tipada
  5. Mixins
  6. Clousures ou Blocos
  7. Continuations
  8. Bindings

Porque usar Ruby?

“Você quer aproveitar a vida, não quer? Se conseguir terminar seu trabalho mais rápido e seu trabalho for divertido, isso é bom, não é? Esse é o propósito da vida, em parte. Sua vida é melhor.Quero solucionar problemas que encontro no cotidiano usando computadores, então preciso escrever programas. Usando Ruby, quero me concentrar nas coisas que faço, não nas regras mágicas da linguagem, como começar com public void alguma coisa alguma coisa para dizer “print hello world”. Apenas quero dizer “print this!”. Não quero todas as diversas palavras mágicas. Quero me concentrar na tarefa. Essa é a idéia básica. Por isso tenho tentado fazer o código Ruby conciso e suscinto.” Mats

A Linguagem Ruby e com certeza uma excelente ferramenta para se fazer um bom programa, ela traz em si, um aglomerados de boas coisas de vária Linguagens, tais como Lisp, Perl, Python, Ada, Smaltalk, Eiffel, e muitas outras. Traz em sim o poder das linguagens Dinamicas, o poder da Orientaçao a Objetos, O Poder dos Mixins, O Poder dos Blocos, O poder dos Continuations e Binfings.

Se vocês esta lendo este artigo é muito provavelmente que ja tenha ouvido falar na linguagem Ruby, talvez esteja se preguntando, “Será que devo estudar e aprender esta linguagem”, com toda certeza o meu conselho é que você estude, mesmo que não tenha nenhuma pretenção de usá-la brevemente. A linguagem Ruby traz em si a proposta de tornar a ato de programar algo prazeroso e agradavél, contexto esses abandonado e despresado pelas outras linguagens, só isso ja bastaria para usá-la, porém, alem de tudo ela traz consigo uma comunidade forte de pensadores, não de somente usários e sim de críticos que tornar o simples processo de aprender Ruby ainda mais edificador e agradável.

Nos proximos Artigos abordaremos as características Tecnicas da Linguagens

Fontes:

www.rubyonbr.org

www.akitaonrails.com

www.ruby-lang.org

simplesideias.com.br

Gostaria de creditar esse texto ao meu tio I. Guerra, que me introduzio no mundo do ruby!

O Grande ditador


“Todos nós desejamos ajudar uns aos outros. Os seres humanos são assim. Desejamos viver para a felicidade do próximo - não para o seu infortúnio. Por que havemos de odiar e desprezar uns aos outros? Neste mundo há espaço para todos. A terra, que é boa e rica, pode prover a todas as nossas necessidades.

O caminho da vida pode ser o da liberdade e da beleza, porém nos extraviamos. A cobiça envenenou a alma dos homens, levantou no mundo as muralhas do ódio e tem-nos feito marchar a passo de ganso para a miséria e os morticínios. Criamos a épo

liberade_de_expressao

ca da velocidade, mas nos sentimos enclausurados dentro dela. A máquina, que produz abundância, tem-nos deixado em penúria. Nossos conhecimentos fizeram-nos céticos; nossa inteligência, empedernidos e cruéis. Pensamos em demasia e sentimos bem pouco. Mais do que de máquinas, precisamos de humanidade. Mais do que de inteligência, precisamos de afeição e doçura. Sem essas virtudes, a vida será de violência e tudo será perdido.

A aviação e o rádio nos aproximou. A própria natureza dessas coisas é um apelo eloqüente à bondade do homem, um apelo à fraternidade universal, a união de todos nós. Neste mesmo instante a minha voz chega a milhares de pessoas pelo mundo afora. Milhões de desesperados: homens, mulheres, criancinhas, vítimas de um sistema que tortura seres humanos e encarcera inocentes. Aos que podem me ouvir eu digo: não desespereis! A desgraça que tem caído sobre nós não é mais do que o produto da cobiça em agonia, da amargura de homens que temem o avanço do progresso humano. Os homens que odeiam desaparecerão, os ditadores sucumbem e o poder que do povo arrebataram há de retornar ao povo. E assim, enquanto morrem homens, a liberdade nunca perecerá.

Soldados! Não vos entregueis a esses brutais, que vos desprezam, que vos escravizam, que arregimentam vossas vidas, que ditam os vossos atos, as vossas idéias e os vossos sentimentos. Que vos fazem marchar no mesmo passo, que vos submetem a uma alimentação regrada, que vos tratam como gado humano e que vos utilizam como bucha de canhão. Não sois máquina. Homens é que sois. E com o amor da humanidade em vossas almas. Não odieis. Só odeiam os que não se fazem amar, os que não se fazem amar e os inumanos.

Soldados! Não batalheis pela escravidão. Lutai pela liberdade. No décimo sétimo capítulo de São Lucas está escrito que o reino de Deus está dentro do homem - não de um só homem ou grupo de homens, mas de todos os homens. Está em vós. Vós, o povo, tendes o poder - o poder de criar máquinas; o poder de criar felicidade. Vós o povo tendes o poder de tornar esta vida livre e bela, de fazê-la uma aventura maravilhosa. Portanto - em nome da democracia - usemos desse poder, unamo-nos todos nós. Lutemos por um mundo novo, um mundo bom que a todos assegure o ensejo de trabalho, que dê futuro à mocidade e segurança à velhice.

É pela promessa de tais coisas que desalmados têm subido ao poder. Mas, só mistificam. Não cumprem o que prometem. Jamais o cumprirão. Os ditadores liberam-se, porém escravizam o povo. Lutemos agora para libertar o mundo, abater as fronteiras nacionais, dar fim à ganância, ao ódio e a prepotência. Lutemos por um mundo de razão, um mundo em que a ciência e o progresso conduzam à ventura de todos nós. Soldados, em nome da democracia, unamo-nos.

Hannah, estás me ouvindo? Onde te encontrares, levanta os olhos. Vês, Hannah? O sol vai rompendo as nuvens que se dispersam. Estamos saindo da treva para a luz. Vamos entrando num mundo novo - um mundo melhor, em que os homens estarão acima da cobiça, do ódio e da brutalidade. Ergue os olhos, Hannah. A alma do homem ganhou asas e afinal começa a voar. Voa para o arco-íris, para a luz da esperança. Ergue os olhos, Hannah. Ergue os olhos.”


Por: C. Chaplin

quinta-feira, 20 de março de 2008

Da série: Viva a imbecilidade!

Dois caras, um coração de cão

O cara pardo estava pregado no sofá, diante da tevê
. É quase sempre assim à hora do
jornal nacional.

Adentrei à sala numa noite boa e de estrelas e de sem calor. E ainda melhor: leve como pluma, sem o pejo da culpa de pecado da cultura judaico-cristã. É preciso, às vezes ser um grego antigo, ser um pagão, ser um cão!

O cabelo um pouco crescido e desgrenhado, fora do habitual, denunciava ainda mais suas cãs. Pensei em troçar dele. Iria dizer: Aí “véio”, está parecendo com uma raposa velha, hein?! Não está na hora de fazer uma bainha nesse coco não?! Segurei a “onda”. Venceu a reflexão. Eu não sabia se estava ali dentro daquele homem, um anjo de candura, como de costume ou o demônio do mau humor que boiava, volta e meia.

Também chafurdei-me no sofá. Havia o mundão de Colatina e adjacências a meu dispor, naquele noite tropical, mas quis ficar. Sabia que não havia nada apeteciável no mundinho da televisão, principalmente, nas notícias do telejornal.

O Willian Bonner com sua mecha prateada e a Fátima Bernardes com melenas caprichadas pela chapinha japonesa, para mim eram porta-vozes de um mundo cão: ocupação ocidental no
Iraque, homens bombas, mensalão, terremoto no Paquistão, o Vasco despencando na tabela. E o velho todo olhos e ouvidos, sem se aborrecer.

Ali do meu lado estava anos da minha vida. Um carola cristão no papel e alma pagã no dia-a-dia. Assim como a ele, quase nada me afetava. Mas o casal da tevê narra o fato do menino iraquiano
Ali Ismail Abbas que havia amputado os braços. Estava no lugar errado (num alvo civil atingido por engano pela coalizão anglo-americana). Uma criança muçulmana que perdera, além dos braços, parte da família, incluindo pai e mãe, para nos sacanear, gesticulando com o seu coto de braço. Kriptonita! Tentei olhar para meu pai. Ele não poderia me ver com olhos marejando. Deus me livre se ele me visse assim! Ainda bem que um sono súbito o acometeu. Ele se esticou no sofá, pôs uma almofada na cara e não mais viu o telejornal e nada mais. E eu: Para o alto e avante!

por: Cap. Paciencia!

quarta-feira, 19 de março de 2008

Da série: Téquinologia!

Moleque magnético trava computadores

magneto1.jpgZapeando pelas notícias matinais, li uma matéria interessante sobre um garoto estadunidense (nunca use o termo americano ou eles acharão que são os donos do continente) que consegue travar computadores apenas chegando perto deles. Logo vão começar a chamar o moleque de Windows Boy.

No mínimo ele dever ser sobrinho do Magneto, inimigo dos X-Men:

Um estudante de 12 anos da cidade de Richland, no Estado de Nova York, consegue travar os computadores de sua escola, aparentemente devido ao excesso de eletricidade estática em seu corpo.

Joseph Falciatano começou a se chamar de “Homem Magnético” em 2007 depois que seus professores concluíram que sua presença em algumas salas poderia travar os computadores da escola, segundo o jornal local The Post-Standard.

“Outro estudante podia usar um computador e tudo ficava normal. Mas se Joe (Falciatano) estava ao computador, coisas estranhas aconteciam. Acho que há alguma coisa na química de seu corpo que causa a confusão nos computadores”, disse Marie Yerdon, professora da escola onde Falciatano estuda.

O estudante americano afirma que quase não passou em uma das matérias do currículo escolar em 2007, pois teve problemas para concluir seu trabalho, que requeria o uso de Power Point.

“Nós desligávamos (o computador), reiniciávamos e ele trabalharia por um tempo, mas em seguida ele começava a ter problemas. Então eu o levava para um computador diferente, que outro estudante usava sem problemas, mas não adiantava”, disse Yerdon.

A professora então colocou um forro embaixo do computador que funcionava como um fio-terra e também colocou uma pulseira antiestática no braço de Falciatano.

Yerdon afirma que a escola comprou estes equipamentos para proteger estudantes que tivessem um marcapasso de qualquer oscilação da eletricidade, enquanto usassem o computador. Neste caso, o equipamento foi usado para proteger o computador. E funcionou.

Quando o pai de Falciatano, também chamado Joseph Falciatano, recebeu um bilhete da escola comunicando o problema, não levou a sério.

“Pensei que era piada. Mandei um email de volta falando ‘É, ele sempre quis ser um super-herói’”, disse. Em casa, o estudante só teve problemas com seu videogame Xbox, que travava toda vez que ele tentava jogar.

Kelly Robinson, especialista de uma empresa de Rochester que resolve problemas elétricos e eletrostáticos tentou medir a eletricidade estática no corpo de Joseph Falciatano, mas os resultados foram todos normais.

Mesmo assim, Robinson, afirmou que o problema do estudante é uma “questão de estática”. “Nosso corpo é formado, em grande parte, por água, com um pouco de sal e minerais. Isto faz com que o corpo humano seja um ótimo condutor de eletricidade.E, mesmo que existam variações de pessoa para pessoa, a condutividade ainda é muito alta”, disse.

O especialista acrescentou que muitos fatores podem desencadear este tipo de problema e gerar as variações na eletricidade estática: o tipo de roupa que as pessoas usam, se usam calçados com solas isolantes, se esfregam os pés no tapete ou carpete ou se trabalham em salas com baixa umidade.

Para o início do novo ano letivo, a escola de Joseph Falciatano mudou o estudante de sala e os problemas parecem ter acabado. O estudante nem precisou usar a pulseira antiestática. Mas tem usado menos o computador da escola.

Fonte: BBC Brasil

segunda-feira, 17 de março de 2008

Téquinologia!

A verdadeira razão para usarmos Linux

Nós dizemos as pessoas que usamos Linux porque ele é seguro. Porque é livre, ou talvez porque ele é customizável. Quem sabe até porque é grátis, ou porque tem um excelente suporte da comunidade…
Mas tudo isso é apenas bobagem de marketing. Nós dizemos isso aos que não são usuários de Linux simplesmente porque eles não compreenderiam a verdadeira razão. E quando repetimos o bastante todos esses falsos motivos, nós somos quase levados a acreditar neles também.

Ora, bem lá no fundo a verdadeira razão continua sendo mesmo:
Nós usamos Linux porque é divertido!

É divertido poder mexer no seu sistema. É divertido modificar todas as configurações, quebrar o sistemas e então precisar entrar no modo de recuperação só para consertá-lo. É divertido ter a disposição centenas de distribuições para escolher. É divertido usar a linha de comando.
Deixe-me dizer isso novamente. É divertido usar a linha de comando.
E não me admira aqueles que não são usuários do Linux não saberem disso.
O negócio é o seguinte, nós que somos fãs do Linux, usamos o sistema para o nosso próprio prazer. Ok, nós gostamos de ser produtivos. Sim, nós gostamos de ficar seguros contra vírus. Sim, nós gostamos de enconomizar uma boa grana. Mas estes são apenas os benefícios secundários. O que gostamos realmente é de poder brincar com o sistema, de fuçar em tudo e descobrir coisas completamente insuspeitas e ainda assim totalmente fascinantes sobre ele.

  1. Linux proporciona controle total
    Você já tentou encerrar um processo no Windows e o sistema simplesmente não permitiu? Já tentou excluir um arquivo - e não conseguiu? Mesmo você possuindo todos os direitos de administrador?
    Linux permite que você faça qualquer coisa. Esse é principal benefício de sempre se logar como usuário comum. Se você logar como root o sistema assume que você sabe exatamente o que está fazendo. Assim que você se torna o root, tudo é permitido.
  2. Linux não está amplamente disseminado
    Aqui está um paradoxo. Nós sempre reclamamos que o Linux poderia ser mais amplamente utilizado. Mas aqui está uma das razões porque nós usamos esse sistema. Ele nos dá uma sensação de que somos especiais. É mais ou menos como se fôssemos “melhores do que a massa ignorante”.
    Se o Linux torna-se completamente disseminado, nós provavelmente mudaremos para alguma outra coisa. Ou no mínimo desenvolveremos alguma distro obscura e somente nós a usaremos. Porque - precisamos encarar - nós queremos nos sentir especiais.
  3. Linux é livre (como em liberdade/discurso)
    Temos acesso ao código fonte de todas as nossas aplicações. Se desejarmos saber como determinada parte do sistema funciona, isso é possível. É algo que nos permite ajustar e brincar com todo o sistema. Nós realmente a-do-ra-mos mexer em nossos sistemas.
    Mas é claro que não podemos simplesmente dizer para todo mundo que usamos Linux porque é divertido - certamente seríamos jogados em algum sanatório para loucos mais rápido do que você pode falar “inconformadamentedesestabilizadores”. Por isso tantas afirmações falsas, porém plausíveis, sobre o porquê de usarmos Linux.

Só que bem lá no fundo, todos nós sabemos qual é a verdadeira razão.
Então talvez, apenas talvez, da próxima vez que alguém me perguntar por que eu uso Linux… vou abrir um enorme sorriso e responder: “Porque usar Linux é divertido!”