Blog

  • w3Opacity – a simplicidade em efeitos de opacidade em elementos HTML

    Olá a todos. Desta vez apresento a vocês um novo
    recurso que desenvolvi (e continuarei aprimorando) afim de facilitar
    o trabalho com efeitos de opacidade em elementos HTML. A idéia é fazer
    isso de forma simples, rápida, fácil e prática.

    Então, com essa intenção criei o w3Opacity
    versão atual 1.0 – que, como falei anteriormente, são
    recursos em JavaScript para você trabalhar com efeitos
    de opacidade em elementos HTML.

    Com o w3Opacity você precisará apenas
    de uma linha de código para realizar efeitos como Fade
    Out, Fade In, Toggle de fade, definir opacidade e consultar a
    opacidade de elementos HTML.

    Para iniciar o trabalho com o w3Opacity,
    você precisará baixá-lo e
    inserí-lo em sua página como demonstrado abaixo:

    Faça o download do w3Opacity
    1.0

    Como você percebeu na imagem de exemplo acima, incluímos
    o arquivo JavaScript referente ao w3Opacity através
    da tag script e a inserimos dentro da tag head.

    Feito isso, poderemos ter acesso aos métodos oferecido
    pelo w3Opacity.
    Vamos conhecê-los:

    Nota: antes de conhecer os métodos disponíveis
    no w3Opacity, você poderá vê-los em ação
    na página
    de demonstração do w3Opacity
    .

    w3Opacity.fading()

    Através do método fading, poderemos realizar efeitos
    como Fade Out e Fade In em elementos HTML. Vejamos como proceder:

    Fade Out

    w3Opacity.fading(‘id_do_objeto’,100,0,500);

    Fade In

    w3Opacity.fading(‘id_do_objeto’,0,100,500);

    Os parâmetros do método fading são os seguintes:

    1. strObjId {string} – Nome do atributo ID
      do objeto que receberá o efeito;
    2. intOpacityStart {number} – Número
      inicial para o efeito;
    3. intOpacityEnd {number} – Número final
      para o efeito;
    4. intMillisecond {number} – Número
      (em milisegundos) para o tempo de duração do
      efeito
    5. fnOnFinish {} – Função a ser
      chamada quando o efeito terminar

    A diferença entre o Fade Out e o Fade In – ambos
    realizados através do método fading
    – consiste
    no número da opacidade inicial e final, ou seja, se
    a opacidade inicial for maior que a final, teremos um Fade
    Out, caso contrário um Fade In.

    Em ambos os exemplos acima, utilizamos apenas os quatro primeiros
    parâmetros do método fading. O quinto parâmetro é bem
    interessante e consiste no seguinte: ao informar esse parâmetro
    que deve ser o nome de uma função existente
    o método fading irá chamar uma função
    com o nome especificado no parâmetro quando o efeito – Fade
    Out ou Fade In
    – finalizar. Por exemplo:

    w3Opacity.fading(‘id_do_objeto’,0,100,500,fazer_alguma_coisa);

    A função fazer_alguma_coisa será chamada
    quando o Fade In (neste caso do exemplo) for concluído.

    w3Opacity.toggle()

    O método toggle é bem interessante, e consiste
    na realização de um Fade Out ou Fade in; dependendo
    do estado de opacidade do elemento HTML. Ele (método)
    saberá quando realizar um Fade Out ou Fade In. Como? Simples,
    ele consulta a opacidade do elemento, se tal elemento estiver
    invisível será realizado um Fade In, caso contrário
    um Fade Out.

    Para o método toggle são necessários apenas
    dois parâmetros:

    1. strObjId {string} – Nome do atributo ID do objeto que receberá o
      efeito;
    2. intMillisecond {number} – Número (em milisegundos)
      para o tempo de duração do efeito

    Um exemplo de uso:

    w3Opacity.toggle(‘id_do_objeto’,500);

    Nesse caso, o elemento HTML com o ID igual a id_do_objeto sofrerá um
    efeito de Fade Out ou Fade In; esse efeito terá uma duração
    de meio segundo. Visto que o tempo do efeito – o segundo
    parâmetro
    – é informado em milisegundos, então
    500/1000 é igual à 0,5.

    w3Opacity.set()

    Em alguns momentos, você precisará apenas definir
    a opacidade de um elemento e nada mais; para isso,utilize o método
    set. Assim:

    w3Opacity.set(‘id_do_objeto’,15);

    ou seja, o elemento HTML com o ID igual a id_do_objeto ficará com
    15% de opacidade.

    w3Opacity.get_opacity()

    Em dado momento será necessário a consulta de
    quanto de opacidade há em um elemento HTML, então,
    para conseguirmos essa informação, informamos apenas
    o ID do elemento HTML desejado ao método get_opacity e
    teremos o retorno. Observe:

    w3Opacity.get_opacity(‘id_do_objeto’);

    Bom, assim como o w3Opacity,
    estou envolvido em diversos outros recursos e todos eles com
    a mesma finalidade: codificar
    menos e viver mais
    . Então, se você quiser se
    envolver junto comigo, visite o Labs
    do Leandro Vieira Pinho
    e também o Fórum
    do Labs do Leandro Vieira Pinho
    onde discutiremos todas as
    dúvidas, sugestões, avisos sobre bugs, novos lançamentos,
    entre outros assuntos sobre esses recursos.

    Sempre quando crio algum recurso como este apresentado neste
    artigo, posto no meu Blog a
    respeito, mas de uma maneira superficial e rápida. Aqui
    no iMasters procuro detalhar
    melhor os recursos, então, fique atento quanto as outras
    novidades que estão no forno e que em breve serão
    estarão a disposição de todos vocês.

    Bom, espero que tenham gostado. Um forte abraço a todos
    e até o próximo.

  • Carros chipados

    Por determinação do Conselho
    Nacional de Transito (CONTRAN) foi publicada a portaria que cria
    o sistema nacional de identificação de veículos
    (SINAV).

    O SINAV deverá estar presente em todo o Brasil
    dentro dos próximos cinco anos. E, de forma pioneira,
    já começa
    a entrar em operação ano que vem na cidade de São
    Paulo. Nos chips existirão informações como
    placa do carro, renavan e o número do chassi.

    Estas informações
    serão interpretadas por
    uma cadeia de antenas que serão instaladas e espalhadas
    por toda a metrópole e se reportarão a uma central
    de processamento de dados.

    É claro que o sistema ajudará no
    que se refere à segurança
    e combate à violência urbana. Mas o que ainda não
    foi dito é que em paralelo a tudo isto se percebe um quê de
    George Orwell, escritor do clássico livro “1984” que
    aproximadamente 40 anos atrás já previa a presença
    do “big brother” que tudo sabe e tudo vê. O
    grande irmão.

    Bem, além da ajuda dada à segurança
    pública,
    também será fácil saber quando você está na
    rua dirigindo o seu automóvel, se o seu IPVA está pago
    em quais lugares você estacionou e também aonde
    você foi
    ou onde você está através do poderoso sistema.

    Sinal
    dos tempos… Mas em Londres a coisa vai mais além
    através de um vasto sistema de câmeras publicas
    que podem te achar na rua em até 10 minutos após
    a sua foto ser lida em uma central. O sistema varre os traços
    básicos dos rostos que estão nas ruas, nos metrôs,
    nos aeroportos e localiza onde estão os meros mortais.

    Pensem
    então em cruzar estas informações com
    chips implantados no seu corpo. Na mão, por exemplo, porque
    na testa fica feio. Isto já está em teste pelo
    menos a uns 5 anos nos EUA. Há 4 anos atrás recebi
    um desses e-mails que dão a volta ao mundo em 10 minutos
    e na apresentação
    anexa mostrava uma “tal” de Mondex (www.mondex.com)
    e mostrava uma nova tecnologia de pagamentos a crédito
    ou a débito via chips implantados na mão direita.
    Até mesmo
    de pessoa a pessoa. Será um pagamento através de
    um handshake?!?!

    E se as antenas lêem as informações
    dos chips dos carros,…, por quê não ler também
    as dos chips manuais?

    É possível desligar um chip?
    Então também
    saberão quando estivermos em casa, na praia, na Alemanha,
    na Lua, onde quer que seja.

    O mundo fica cada vez menor e mais
    globalizado e a privacidade alheia está acabando. Aguardemos
    então os nanobots que circularão em nossa
    corrente sanguínea fazendo downlodas e uploads a nos curar
    pelos glóbulos vermelhos. Quem viver verá.

  • Terreno no 3dsmax – Parte 01/03

    Olá Pessoal. Hoje estudaremos a criação
    de um terreno usando modificadores do 3dstudio. Nas próximas
    matérias desta série o foco será nos materiais
    do terreno e sua atmosfera

    1º Passo

    Vamos criar um plane com as seguintes proporções:
    lenght e widht de 500 , lengh segs e widht segs de 50.

    2º Passo

    Utilizando a tecla de atalho "M", abra o painel de
    materiais. No painel clique no botão get material e escolha
    o material Smoke.

    3º Passo

    No material Smoke, faça a seguinte configuração:

    Size: 80
    # Interactions: 2
    Exponent: 3

    5º Passo

    Feito isso, selecione o plane anteriormente criado e, no painel
    de modificadores, selecione o modificador Displace.

    Faça as seguintes configurações:

    Strenght: 180

    Abra novamente o painel de materiais (tecla "M"),
    selecione o material smoke que foi criado no passo anterior e
    arraste para a aba Image > Map.

    Pronto, já temos
    a base do nosso terreno.

    Na próxima matéria vamos aplicar os materiais
    do terreno. Até mais!

  • RadRails

    Hoje sabemos que
    desenvolver aplicações web
    utilizando ruby on rails já é produtivo por si
    só,
    seja usando qualquer editor de texto como o vi ou até mesmo
    o bloco de notas. A curva e tempo de aprendizado ainda é muito
    pequena, mas como se não bastasse, ainda existem formas
    de melhorar esta produtividade no desenvolvimento do dia dia
    usufruindo de  sintaxes highlight, auto complete code,
    debug´s e testes automatizados. “A ferramenta” assim
    tão completa chama-se RadRails que começou a
    ser desenvolvida em setembro de 2005 e é mantida por Marc,
    Kyl e Matt
    , que amam Rails e Eclipse, assim como eu.

    O
    RadRails é totalmente desenvolvido e baseado no Eclipse.
    Este ano o grupo ganhou o prêmio Eclipse Community Award,
    e para muitos desenvolvedores chegou até
    ser uma ironia já que um plugin Ruby fatura o prêmio
    em um evento de uma IDE primeiramente criada para Java. A cada
    dia que passa o RadRails vem se tornando um verdadeiro Ambiente
    de Desenvolvimento Integrado, porque une a técnica de
    RAD (Rapid Application Development), e consiste
    em permitir que os desenvolvedores obtenham um aproveitamento
    maior desenvolvendo código com maior rapidez e produtividade,
    pois ela engloba vários plugins como Subversion (subeclipse),
    RTD e com mais alguns que permitam até mesmo a comunicação
    com o banco de dados para executar querys.

    Com o RadRails não
    precisamos ir à linha de comando para usar os scripts
    do Rails, nem iniciar o servidor, seja ele o webrich, mongrel
    ou lighttpd, pois ele dá suporte a tudo isso e mais um
    pouco.

    Nesta matéria vamos aprender a instalar
    e configurar o RadRails, seguindo o mesmo padrão das
    outras matérias, sem filosofias, e sempre  práticas.
    Então, boa leitura!

    Instalação

    Estou partindo do princípio que você já tenha
    instalado o Ruby e o Rails. Caso ainda não tenha, visite
    meu blog http://www.blog.egenial.com.br e faça
    o download do pdf que ensina a instalação bem passo
    a passo. Tendo tudo instalado, o primeiro passo agora é realizar
    o download no seguinte endereço http://www.radrails.org.
    Até a
    data desta matéria, a versão mais
    recente é a
    0.7.1. Você irá encontrar versões para Windows,
    Linux e MAC OSX. Nesta matéria vamos usar como base o
    Windows XP. Os passos são praticamente os mesmos para
    outros sistemas operacionais, o que difere são somente
    os caminhos que definem os interpretadores e generators.

    Após
    escolher o arquivo para seu sistema operacional, você irá ser
    redirecionado para o sourceforge. Escolha um mirror e realize
    o download do arquivo compactado.

    Configuração

    Após o download, extraia
    o arquivo em uma pasta de fácil
    localização e execute o arquivo radrails.exe. Em
    seguida você deverá ver a seguinte tela.

    Nesta tela iremos definir em qual diretório
    serão
    salvos os projetos criados. Altere para um diretório de
    fácil localização. Em meu caso, usei C:\radrails\workspace.
    Marque o check box para que na próxima vez que você
    executar o radrails ele não volte a aparecer esta definição.

    Dê um Ok. A próxima tela  será o
    ambiente de desenvolvimento com a perspectiva Rails já aberta.



    Clique no menu Window > Preferences.

    Com as preferências aberta, clique no
    menu Ruby -> Installed Interpreters -> Add, como a imagem abaixo.

    Aqui definimos o caminho absoluto do interpretador
    Ruby. O default da instalação do Ruby no Windows é c:\ruby\bin.
    Então coloque o nome do interpretador e a sua localização
    c:\ruby\bin\ruby.exe, em seguida dê um ok.

    Ainda em preferências, logo abaixo de Installed
    Interpreters clique em Ri/Doc, vamos definir onde está instalado
    a ferramenta de documentação do Ruby. C caminho é o
    mesmo c:\ruby\bin\, então em Rdoc path coloque c:\ruby\bin\rdoc
    e para o Ri path coloque c:\ruby\bin\ri. Clique em Apply em
    seguida.

    Pronto. Agora já podemos usar o RadRails para trabalhar
    com Ruby. O próximo passo é configurar o Rails.

    Ainda
    em preferências, clique no menu Rails
    > Configuration
    , conforme imagem abaixo.

    Rails
    path tem o mesmo caminho que definimos acima para o ruby então
    em Rails path ficará c:\ruby\bin\rails,
    já o Rake path recebe um caminho diferente, o gerenciador
    de tarefas do Rails fica instalado dentro de:

    C:\ruby\lib\ruby\gems\1.8\gems\rake-0.7.1\bin\

    Então, dentro
    de Rake path, ficará:

    C:\ruby\lib\ruby\gems\1.8\gems\rake-0.7.1\bin\rake

    Em mongrel
    path receberá o caminho da instalação
    do servidor mongrel. Neste artigo não vamos abordar
    o mongrel servidor ainda, então deixe-o em branco (mas
    geralmente, após a instalação, o executável
    ficará dentro de C:\ruby\bin\), clique em Apply e dê um
    Ok em seguida. Pronto, já temos configurado todo o ambiente
    do RadRails para trabalhar com Ruby on Rails.

    Primeiro projeto

    Vamos criar o primeiro projeto para saber
    se a instalação e configuração esta
    correta, então no espírito do velho e útil
    hello world, clique no menu File -> New -> Escolha Rails
    -> Rails Project e em seguida avance clicando em Next, abaixo
    segue a próxima tela:



    Aqui
    definimos o nome do projeto, então
    em Project name digite hello, em Options ainda temos algumas
    definições.

    Generate Rails application skeleton: Tem
    por objetivo criar o projeto Rails com toda sua estrutura,
    quando não marcado somente cria o diretório com
    o nome do projeto.

    Create WebRich Server: Cria um atalho
    no ambiente da perspectiva Rails, com opções
    para estartar o servidor de desenvolvimento da aplicação.

    Create a mongrel server: Quando marcado cria também um atalho
    no ambiente da perspectiva Rails, com opções para estartar o
    servidor da aplicação seja ele em desenvolvimento, testes ou
    produção.

    Dizable table pluralization: Quando
    marcado desativa a pluralização dos nomes
    das tabelas e modelos do projeto.

    Vamos deixar default todas
    as opções,
    depois de digitar o nome da aplicação basta clicar
    em Finish e aguardar alguns segundos para o Rails criar o projeto
    e seu esqueleto.

    Pronto agora já temos nosso primeiro projeto, clique no
    nome do projeto do lado esquerdo conforme abaixo, você irá ver
    todo o esqueleto da aplicação.



    Ainda
    dentro do ambiente logo abaixo você irá
    ver algumas tabs clique na tab Servers conforme imagem.

    Clique
    em cima do nome do projeto/servidor(helloServer), e em seguida
    estarte a aplicação clicando no ícone




    . Aguarde alguns segundos até o servidor ficar com
    o Status marcado como Started. Abra o seu browser
    preferido e acesse http://localhost:3000,
    você verá a seguinte tela.




    Se estiver vendo a tela conforme imagem acima, é sinal
    que ocorreu tudo certo. Caso contrário, reveja todos os passos
    acima.

    Hello World

    Para finalizar nossa matéria, vamos criar
    um controller e renderizar um texto escrito “Hello world
    e-Genial”. Para isso, nas abas abaixo, clique em Generators.
    No combo da direita escolha controller. No campo ao lado digite
    teste e clique em Go.

    Aguarde
    alguns segundo até que o Rails crie o nosso controlador
    e toda sua estrutura como helpers, testes e fixtures. Após
    ter criado com sucesso, a seguinte mensagem será exibida
    na aba Console.



    Do
    lado direito, na estrutura do projeto, clique em app
    -> controllers
    e em seguida dê dois
    cliques no controlador teste_controller.rb.



    Com o controlador aberto, digite o seguinte código,
    que será a action que renderiza o texto “Hello world
    e-Genial”.

    Clique
    no ícone




     para salvar nossa alteração.

    Abra o browser novamente e digite http://localhost:3000/teste/hello

    O texto deve ser renderizado conforme criamos
    na action hello.



    Se
    tudo ocorreu certinho, você verá a
    tela acima. Caso contrário, revise todos os passos.

    Bom, por
    enquanto é isso. Nas próximas
    matérias iremos começar a criar aplicações
    reais e entender toda a estrutura interna do Rails.

    Qualquer
    dúvida envie-me um e-mail, pois
    terei grande satisfação ajudá-los. Grande
    abraço e até a próxima!

  • Informação não é conhecimento, e vice-versa

    Dentro
    dos corredores dessa feira moderna em que vivemos, onde o produto
    da moda é a informação, faz-se necessário
    estar atento aos males causados por tanta porcaria em forma de
    conteúdo que está sendo ofertada no ambiente digital
    e nos faz perder tempo precioso do dia. A começar por
    ter que ficar limpando a toda hora a caixa de e-mails de baboseiras
    sem fim nem tamanho. Quer dizer, algumas delas têm um tamanho
    tão grande que até nisso elas dificultam nossas
    vidas. Caso daqueles powerpoints de infinitos cliques,
    que não dizem nada, e ficam tocando umas musiquetas chatas
    que só elas. Para excluí-los é um custo.
    Até aí tudo bem.

    E quando as mensagens estão
    disfarçadas de algo muito interessante? Quando você vai
    ver é um texto sobre pessoas das menos às mais
    conhecidas que viram ‘notícia’ por nada – considero
    nada, por exemplo, essas brigas de casal ‘famoso’. Pra que eu
    preciso saber que ‘fulano de tal’, que nem sabe que eu existo,
    não está mais com ‘cicrana de tal’, que por sua
    vez, nunca me viu mais magro? Sinceramente não preciso.
    Então, delete! Declarações pífias
    que viram ‘notícia’. Delete! Qualquer acontecimento banal
    que vira ‘notícia’. Delete! Enfim, tudo que virou notícia
    rasa o negócio é sair apertando o delete! É agora
    ou nunca o momento de impor nossos próprios filtros e
    fazer cada vez mais uso desse botão que dará início
    na erradicação do problema. Exerça seu poder
    de escolha e jogue fora tudo o que não acumular contribuições
    positivas na sua bagagem.

    Com
    o advento tecnológico qualquer infeliz que tenha um celular
    na mão pode sair por aí filmando e clicando tudo
    o que tem e não tem direito. E publicando (ou ‘postando’)
    em segundos, tudo o que quiser sem o menor comprometimento com
    valores éticos ou morais. Cicarelli que o diga! Seja em
    blogs ou em meios digitais alternativos, o fato é que
    o papel da mídia acabou por perder, de certa forma, sua
    importância. Sites e revistas de grandes empresas de comunicação
    já incentivam o hábito da ‘contribuição’
    de textos, fotos e matérias às redações.
    Resguardados os cuidados pode ser um movimento interessante.
    Mas direta ou indiretamente implica na ocupação
    do espaço inerente ao profissional de comunicação
    por aqueles que não tem faculdades para tal. Não
    pretendo entrar, pelo menos por hora, nessa seara porque isso é motivo
    de outra discussão.

    Tratando-se
    de informação de qualidade, um motivo para ficar
    tranqüilo é que a imprensa brasileira é forte
    e conseguiu constituir seu prestígio e credibilidade ao
    longo de quase dois séculos de história. Por aqui
    ela tem exercido nos últimos tempos, principalmente, um
    papel decisivo e importante na defesa dos interesses sociais.
    Temos veículos sérios e comprometidos com a informação
    que realmente importa estar na primeira página do jornal,
    nas editorias ou nas nossas caixas de e-mail. Que respeitam suas
    fontes, que apuram o fato do início ao fim. Este processo
    de abertura de novos canais, é verdade, está longe
    de comprometê-la, mas de certa forma turva sua imagem.

    Por
    outro lado é inegável que o processo midiático
    está se transformando e deve acompanhar as novas tendências,
    ser contemporâneo, evoluir. Tudo bem, mas onde estão
    os critérios para que estejam no ar formatos de mídia
    cada vez mais abertos e pulverizados? No bom português,
    leis que realmente funcionem em favor da privacidade e do direito
    da pessoa no ambiente digital.

    O
    preocupante é que a sociedade em geral está tomada
    pelo consumo imediato, pela rapidez avassaladora, absorvendo
    tudo o que é perecível, descartável. Isto
    quer dizer que opinião, mais do que uma forma de expressar
    idéias, é o que você desenvolve com as experiências
    acumuladas daquilo que vê, lê ou escuta. Então, é simples
    como dois mais dois: se você vê, lê ou escuta
    o que não presta, qual será o seu nível
    de diálogo?

    Não
    basta ser informado, mais do que isso, é preciso ser bem-informado
    e interpretar tudo o que chega até você a fim de
    que consiga transformar informação, verdadeiramente,
    no que mais importa e vai estar presente para o resto da sua
    vida, conhecimento. E lembre-se: se não valer à pena,
    delete!

  • Fórmulas matemáticas para o VB6

    Neste artigo vou abordar alguns cálculos
    que utilizamos na matemática pura e aplicada. Esses cálculo
    são
    essenciais para a criação de sistema na área
    da engenharia. A idéia é transformar os cálculos
    mais conhecidos, em cálculos voltados para o VB6.

    Acho
    que todo mundo lembra um pouco das famosas fórmulas da
    trigonométrica que quebrava nossas cabeças no ensino
    médio e no superior para quem precisou.

    Como já abordei
    em outros artigos a respeito das funções
    internas do VB6, hoje não vai ser diferente! Teremos que
    aprender outros tipos de funções, que vão
    ser as funções matemáticas do VB6. Vamos
    ver algumas delas agora:

    Sin

    Finalidade: Calcula o seno de um número.
    Sintaxe: Sin(Número)

    Obs.: Número – Qualquer expressão numérica
    válida que expresse um ângulo em radianos.

    Exemplo:
    Msgbox Sin(1.25) ‘Teste = 0.948984619355586
    Msgbox Sin(.79) ‘Teste = 0.710353272417608

    Cos

    Finalidade: Calcula o cosseno de um ângulo.
    Sintaxe: Cos(Número)

    Obs.: Número – Pode ser qualquer expressão numérica
    válida que expresse um ângulo em radianos.

    Exemplo:

    Const PI = 3.14159265

    Msgbox Cos(PI) ‘Teste = -1
    Msgbox Cos(PI/2) ‘Teste = 1.79489651491878E-09

    Atn

    Finalidade: Calcula o Arco Tangente de um número.
    Sintaxe: Atn(Número)

    Obs.: A função Atn retorna
    o número de radianos referentes ao arco tangente do ângulo

    Exemplo:

    Msgbox Atn(30) ‘Teste = 1.53747533091665
    Msgbox Atn(45) ‘Teste = 1.54857776146818

    Tan

    Finalidade: Calcula a tangente de um número.
    Sintaxe: Tan(Número)

    Obs.: Número – Qualquer expressão numérica
    válida que expresse um ângulo em radianos note que
    utilizamos um ponto antes do numero para expressar esse valor
    que simboliza 0.79

    Exemplo:

    Msgbox Tan(.79) ‘Teste = 1.00924628838275

    Exp

    Finalidade: Retorna o valor de e (base de um logaritmo natural)
    elevado a uma potência qualquer.
    Sintaxe: Exp(Número)

    Obs.: Número – Qualquer expressão numérica
    válida.

    Exemplo:

    Msgbox Exp(1) ‘Teste = 2.71828182845905
    Msgbox Exp(2) ‘Teste = 7.38905609893065
    Msgbox Exp(-2) ‘Teste = 0.13533528323661

    O valor é aproximadamente 2,718282. Se o valor do número
    for superior a 709,782712893, ocorrerá um erro de overflow.

    Log

    Finalidade: Calcula o logaritmo natural de um número.
    Sintaxe: Log(Número)

    Obs.: Número – Qualquer expressão numérica
    válida maior que zero.

    Exemplo:

    Msgbox Log(0) ‘Teste = 1
    Msgbox Log(5) ‘Teste = 1.6094379124341

    Sqr

    Finalidade: Calcula a raiz quadrada de um número.
    Sintaxe: Sqr(Número)

    Obs.: Qualquer
    expressão numérica válida
    maior ou igual a zero.

    Exemplo:

    Msgbox Sqr(16) ‘Teste = 4

    Fix

    Finalidade: Retorna a parte inteira de um número.
    Sintaxe: Fix(Número)

    Obs.: Número – Qualquer expressão numérica
    válida. Se número contém Null, o valor de
    retorno será Null também.

    Exemplo:

    Msgbox Fix(12.556) ‘Teste = 12
    Msgbox Fix(-12.556) ‘Teste = -12
    Msgbox Fix(1.6) ‘Teste = 1

    Int

    Finalidade: Retorna a parte inteira de um número.
    Sintaxe: Int(Número)

    Obs.: Número – Qualquer expressão numérica
    válida. Se número contém Null, o valor de
    retorno será Null também.

    Exemplo:

    Esta função opera de forma idêntica à função
    Fix.

    Rnd

    Finalidade: Retorna um número aleatório (randômico).
    Sintaxe: Rnd[(Número)]

    Obs.: Número – Qualquer expressão numérica
    válida.

    Esta função retorna um valor menor que 1 e maior
    ou igual a zero.

    Exemplo:

    Msgbox Rnd

    Sgn

    Finalidade: Retorna um inteiro conforme o sinal do número.
    Sintaxe: Sgn(Número)

    Obs.: Número – Qualquer expressão numérica
    válida.

    Ajustes:

    Se Número: Sgn Retorna:

    Maior que zero 1
    Igual a zero 0
    menor que zero -1

    Exemplo:

    Msgbox Sgn(12) ‘ Teste = 1
    Msgbox Sgn(-2.4) ‘ Teste = -1
    Msgbox Sgn(0) ‘ Teste = 0

    Agora com essas funções que acabamos de aprender,
    iremos criar para o VB6 as fórmulas matemáticas
    em questão. Vamos começar?

    Secante

    Sintaxe: Sec(X) = 1 / Cos(X)

    Fórmula:

    Dim X, Sec
    X = 45
    Sec = 1 / Cos(X)
    MsgBox Sec ‘1,9035….

    Cosecante

    Sintaxe: Cosec(X) = 1 / Sin(X)

    Fórmula:

    Dim X, Cosec
    X = 45
    Cosec = 1 / sin(X)
    MsgBox Cosec ‘1,1752….

    Cotangente

    Sintaxe: Cotan(X) = 1 / Tan(X)

    Fórmula:

    Dim X, Cotan
    X = 45
    Cotan = 1 / Tan(X)
    MsgBox Cotan ‘1,6173….

    Arcoseno

    Sintaxe: Arcsin(X) = Atn(X / Sqr(-X * X + 1))

    Fórmula:

    Dim X, Arcsin
    X = 0.45
    Arcsin = Atn(X / Sqr(-X * X + 1))
    MsgBox Arcsin ‘0,4667…

    Arcocoseno

    Sintaxe: Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)

    Fórmula:

    Dim X, Arccos
    X = 0.35
    Arccos = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
    MsgBox Arccos ‘1,21….

    Não se assustem, mas as fórmulas estão
    aumentando mesmo!

    Arcosecante

    Sintaxe: Arcsec(X) = Atn(X / Sqr(X * X – 1)) + Sgn((X)
    -1) * (2 * Atn(1))

    Fórmula:

    Dim X, Arcsec
    X = 90
    Arcsec = Atn(X / Sqr(X * X – 1)) + Sgn((X) – 1) * (2 * Atn(1))
    MsgBox Arcsec ‘2,35…

    Arcocosecante

    Sintaxe: Arccosec(X) = Atn(X / Sqr(X * X – 1)) + (Sgn(X) – 1)
    * (2 * Atn(1))

    Fórmula:

    Dim X, Arccosec
    X = 60
    Arccosec = Atn(X / Sqr(X * X – 1)) + (Sgn(X) – 1) * (2 * Atn(1))
    MsgBox Arccosec ‘0,7854…

    Arcocotangente

    Sintaxe: Arccotan(X) = Atn(X) + 2 * Atn(1)

    Fórmula:

    Dim X, Arccotan
    X = 36
    Arccotan = Atn(X) + 2 * Atn(1)
    MsgBox Arccotan ‘3,11…

    Seno Hiperbólico

    Sintaxe: HSin(X) = (Exp(X) – Exp(-X)) / 2

    Fórmula:

    Dim X, HSin
    X = 75
    HSin = (Exp(X) – Exp(-X)) / 2
    MsgBox HSin ‘1,86…

    Coseno Hiperbólico

    Sintaxe: Hcos(X) = (Exp(X) + Exp(-X)) / 2

    Fórmula:

    Dim X, Hcos
    X = 45
    Hcos = (Exp(X) – Exp(-X)) / 2
    MsgBox Hcos ‘1,74…

    Tangente Hiperbólica

    Sintaxe: Htan(X) = (Exp(X) – Exp(-X)) / (Exp(X) + Exp(-X))

    Fórmula:

    Dim X, Htan
    X = 45
    Htan = (Exp(X) – Exp(-X)) / (Exp(X) + Exp(-X))
    MsgBox Htan ‘1

    Secante Hiperbólica

    Sintaxe: HSec(X) = 2 / (Exp(X) + Exp(-X))

    Fórmula:

    Dim X, HSec
    X = 45
    HSec = 2 / (Exp(X) + Exp(-X))
    MsgBox HSec ‘5,72…

    Cosecante Hiperbólica

    Sintaxe: Hcosec(X) = 2 / (Exp(X) – Exp(-X))

    Fórmula:

    Dim X, Hcosec
    X = 75
    Hcosec = 2 / (Exp(X) – Exp(-X))
    MsgBox Hcosec ‘5,35…

    Cotangente Hiperbólica

    Sintaxe: Hcotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) – Exp(-X))

    Fórmula:

    Dim X, Hcotan
    X = 0.9
    Hcotan = (Exp(X) + Exp(-X)) / (Exp(X) – Exp(-X))
    MsgBox Hcotan ‘1,39…

    Arcoseno Hiperbólico

    Sintaxe: Harcsin(X) = Log(X + Sqr(X * X + 1))

    Fórmula:

    Dim X, Harcsin
    X = 10
    Harcsin = Log(X + Sqr(X * X + 1))
    MsgBox Harcsin ‘2,99…

    Arcocoseno Hiperbólico

    Sintaxe: Harccos(X) = Log(X + Sqr(X * X – 1))

    Fórmula:

    Dim X, Harccos
    X = 20
    Harccos = Log(X + Sqr(X * X – 1))
    MsgBox Harccos ‘3,68…

    Arcotangente Hiperbólica

    Sintaxe: Harctan(X) = Log((1 + X) / (1 – X)) / 2

    Fórmula:

    Dim X, Harctan
    X = 0.35
    Harctan = Log((1 + X) / (1 – X)) / 2
    MsgBox Harctan ‘0,36…

    Arcosecante Hiperbólica

    Sintaxe: Harcsec(X) = Log((Sqr(-X * X + 1) + 1) / X)

    Fórmula:

    Dim X, Harcsec
    X = 0.75
    Harcsec = Log((Sqr(-X * X + 1) + 1) / X)
    MsgBox Harcsec ‘0,79…

    Arcocosecante Hiperbólica

    Sintaxe: Harccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) +1) / X)

    Fórmula:

    Dim X, Harccosec
    X = 1
    Harccosec = Log((Sgn(X) * Sqr(X * X + 1) + 1) / X)
    MsgBox Harccosec ‘0,88…

    Arcocotangente Hiperbólica

    Sintaxe: Harccotan(X) = Log((X + 1) / (X – 1)) / 2

    Fórmula:

    Dim X, Harccotan
    X = 45
    Harccotan = Log((X + 1) / (X – 1)) / 2
    MsgBox Harccotan ‘0,22… 

    Logaritmo em base N

    Sintaxe: LogN(X) = Log(X) / Log(N)

    Fórmula:

    Dim X, N, LogN
    X = 1
    N = 10
    LogN = Log(X) / Log(N)
    MsgBox LogN ‘0

    Então é isso! Essas fórmula foram todas
    testadas, mas caso fique alguma dúvida, por favor entre
    em contato. Espero que essas fórmulas sejam bem-vindas
    para quem está precisando programar cálculos matemático
    no VB6. O VB6 é FASCINANTE.

    Até a próxima com certeza!

  • Você cozinha? O software Livre pode te ajudar.

    Nas horas vagas você gosta de cozinhar para relaxar? Fazer
    aqueles pratos sofisticados e outros  nem tanto, só para
    ter um motivo para chamar os amigos e ficar batendo aquele papo?
    Bem, o que tem a culinária a ver com Software Livre? Você deve
    estar achando que errou de coluna ou que eu errei de tema. Não é bem
    assim.

    Todo cozinheiro sabe que ter suas receitas organizadas é um
    excelente começo para escolher o prato correto para o
    momento. Muitos livros de receita são considerados verdadeiros
    tesouros. Até aqui está tudo certo, mas o que o
    Software Livre tem a ver com isto?

    Pois o Gourmet Recipe Manager ou grecipe-manager (http://grecipe-manager.sourceforge.net/)
    para os íntimos vai te ajudar a manter as suas receitas
    em ordem e fáceis de serem localizadas.

    Esta é uma aplicação simples de usar mas
    bastante poderosa. Com o grecipe-manager você vai poder
    digitar, pesquisar e organizar seus pratos preferidos. Uma característica
    bem interessante é possibilidade da criação
    automática de listas de compras baseadas nas receitas
    escolhidas por você. Assim, basta escolher o menu, imprimir
    o que comprar e ir até o supermercado ou feira mais próxima.

    O grecipe-manager também pode calcular e informar as
    dados nutricionais de cada prato. Bom para quem está com
    um olho na panela e outro na balança.

    No site do utilitário você tem acesso a toda documentação
    de instalação e uso, fóruns e dicas, além
    da possibilidade de ficar atualizado quanto a novas versões
    e atualizações.

    O grecipe-manager é compatível com o ambiente
    gnome mas funciona em qualquer plataforma que suporte gtk ou
    Windows.

    Agora é escolher o prato, reservar os ingredientes e
    chamar os amigos para a confraternização.

    E lembre-se, não use software pirata. Além de
    ser ilegal ele pode trazer vírus ou spywares para seu
    computador.

    Um forte abraço e bom apetite para você.

  • Dublês virtuais lançam desafios ao mercado de animação

    Imagine-se um diretor de cinema, trabalhando em um filme
    de ação.
    A cena que abre o filme é uma sequência perigosa,
    que começa em uma perseguição de carros e
    termina em uma grande explosão. Para um diretor de filme
    a dor de cabeça pode começar exatamente aí.
    Os custos de uma cena como essa são muito altos, e além
    de oferecer riscos para a equipe envolvida, podem levar dias na
    preparação e execução da cena.

    Na contramão desses problemas surge a computação
    gráfica, que tem se tornado cada vez mais presente, e com
    os mais variados propósitos. A tecnologia, que já foi
    utilizada para criar movimentos ou cenas inimagináveis,
    agora tem sido utilizada para substituir os atores em cenas de
    ação, criando verdadeiros dublês
    virtuais
    .
    Afinal, pra quê fazer atores pularem de carros em chamas,
    se atirarem contra janelas de prédios, ou arriscar-se em
    arranhas-céus? Tudo bem que Tobey Maguire foi Homem Aranha
    por um dia, mas pra quê fazer o moço se cansar tanto?

    Quanto à modelagem, não é novidade, em 1995 vimos dinossauros
    tridimensionais impressionantes no cinema, e nos dias de hoje cada vez mais os
    dublês virtuais vão tomando conta das cenas que fisicamente são
    mais arriscadas, ou complicadas, de serem desempenhadas pelos atores. O recurso
    virtual, além de evitar riscos físicos à equipe de um filme,
    torna mais fácil a realização de cenas de difícil
    execução. Seja para criar a chuva de flechas do filme “Herói” ou
    tornar preciso os ataques da bola de espinhos de Go Go Yubari em “Kill
    Bill vol. 1”, a computação gráfica
    se faz presente.

    Tarefas desafiadoras em 3D, como,
    por exemplo, gerar penas em pássaros ou produzir um fio de azeite ou o
    efeito de água, tornam-se possíveis graças ao desenvolvimento
    de plug-ins proprietários, que se tornam ferramentas poderosas
    para resolver
    tarefas que seriam  inviáveis de outra forma.

    Antigamente, os filmes que usavam recursos digitais eram vistos
    com fortes preconceitos e críticas. Mas o que antes era considerado de mal gosto, hoje está cada
    vez mais marcado pela qualidade. O sistema de inteligência artificial que
    controla os corpos dos dublês virtuais faz com que eles
    caiam, corram, movam e reajam de forma natural, como pessoas
    de verdade.

    “Uma peculiaridade
    do mercado é que hoje em dia se confunde animação com manipulação
    de programas de computação. Ou seja, com o fácil acesso
    a programas de computação sofisticados, muitas pessoas podem animar.
    Mas na verdade, animação é uma arte que se aprimora com
    a experiência e é esse nosso diferencial. A sutileza imperceptível
    de um movimento traz credibilidade à cena. E é isso que a OCA busca
    trazer a cada projeto”, afirma Ana Paula Catarino, produtora executiva
    da OCA Filmes.

  • Servidor de Horas

    Vamos aprender como configurar um servidor de
    horas, quando teremos um servidor que atualiza a hora
    em um servidor externo. Geralmente um servidor confiável.
    Depois vamos configurar os outros servidores para atualizar a
    partir do nosso. Vamos aprender a fazer isso em servidores Linux
    e Microsoft e em estações Windows.

    Os servidores e estações de sua corporação devem estar com os seus servidores de horas atualizados, pois os sistemas usados, geralmente, usam a configuração da hora do servidor ou ás vezes da estação.

    Para um administrador, a importância é na gerência dos logs dos servidores. Ou seja, ficaria difícil analisar os eventos nos servidores com seus relógios desatualizados.

    Usando o NTP

    Para que possamos configurar sincronização dos horários nos computadores, em rede usaremos o protocolo NTP (Network Time Protocol).

    Como funciona o NTP?

    Primeiro você configura um computador com o Linux ou Windows para ser o servidor de horas. Este servidor atualizar de um computador confiável. Geralmente, configuramos para um servidor atômico. Já nos outros computadores fazemos com que elas sincronizem com o nosso servidor local.

    É possível configurar um Linux, Windows 2000 Server, Windows Server 2003, roteadores CISCO e CYCLADES para atuarem como servidor de horas.

    Por que ter um servidor de horas local?

    Basicamente para diminuir o tráfego com a Internet. E é bem mais rápido e confiável o acesso local. Existem corporações que possuem milhares de computadores.

    PARTE 1 – SERVIDOR Linux como servidor de horas

    Instalando o pacote

    No Mandriva, digite:

    urpmi install ntp

    Veja a ilustração:

    Após instalar os pacotes, vamos configurar um Linux para ser um servidor de horas que é bem mais simples do que parece. Vamos usar o servidor do Observatório Nacional. Execute o comando:

    ntpdate pcdsh05.on.br

    Observe o resultado:
    Looking for host pcdsh05.on.br and service ntp
    host found : pcdsh05.on.br
     4 Jul 10:22:56 ntpdate[4305]: adjust time server 200.20.186.75 offset 0.016506 sec 

    Obs.: A máquina tem que está sendo configurada como servidor de horas deve está liberada no firewall da sua empresa para poder atualizar com o servidor externo.

    Digite date. A data e horários
    já estarão atualizados.

    Configurando o agendamento automático

    Edite o arquivo /etc/crontab
    Inserir a linha abaixo:
    0 0 * * * /usr/sbin/ntpdate pcdsh05.on.br

    Veja a ilustração:

    Incializar o daemon do ntpd automático

    Vamos configurar para que o daemon do NTP seja
    inicializado automaticamente caso o Linux venha a ser reiniciado
    ou desligado. No Mandriva, use drakxservices:

    drakxservices

    Marque ntpd. Veja a ilustração:

    A parte do servidor está configurada.

    PARTE II – NAS ESTAÇÕES LINUX

    Nas estações, o processo é bem
    simples. Vamos apenas informar a elas que o servidor de horas
    será o seu Linux configurado anteriormente.

    urpmi ntp-client
    ntpdate IP_DO_SERVIDOR_LOCAL ##
    O que é o server. Onde você configurou ntpdate pcdsh05.on.br

    Configurando o agendamento automático 

    Edite o arquivo /etc/crontab
    Inserir a linha abaixo:
    0 0 * * * /usr/sbin/ntpdate pcdsh05.on.br

    Agora as estações estão sincronizadas.

    Configurando no Windows 2000 e 2003 Server

    Este é bem fácil. Faça assim:

    01. Abra um prompt de comando.

    02. Digite: net time /setsntp:IP_DO_SERVIDOR_LINUX

    ou net time /setsntp:pcdsh05.on.br

    03. Agora digite net stop w32time e net start w32time

    Para visualizar quem é seu servidor de horas, digite net time /querysntp.

    Obs.: As estações Windows, por default se estiverem no domínio atualizam a hora automaticamente no servidor Windows Server.

    Estações Windows XP e Windows 2000 Professional

    Também é possível criar um script para forçar que elas realmente atualizem do servidor. Veja como é simples:

    01. Abra algum script que você já tem por padrão no seu domínio ou crie um.

    02. Digite net time \\ip_do_servidor /set /yes.

    03. Este
    scritp sera executado quando as estações se logarem
    no Windows Server ou no seu servidor com o Samba.

    Bem, a configuração é esta. Basicamente igual em outras distribuições Linux. Se você quer fazer isto no Red Hat, Debian e Conectiva. Faça os passos abaixo:

    Configurando no Red Hat, CONECTIVA E DEBIAN

    PARTE 1 – SERVIDOR

    O processo e a teoria são os mesmos. O que muda é a forma como você vai instalar os pacotes. No Conectiva, Debian use o apt para instalar. No Red Hat/Fedora, use ou rpm ou o yum. A parte de configuração do Cron e do servidor é a mesma.

    Instalando o pacote no Conectiva 10 e Debian

    01. Digite este comando numa console ou terminal do Linux:

    apt-get install ntp

    Configurando o teu servidor para ser um servidor de horas

    ntpdate pcdsh05.on.br  ##pode ser qualquer um.

    Configurando o agendamento automático

    Edite o arquivo /etc/crontab
    Inserir a linha abaixo:
    0 0 * * * /usr/sbin/ntpdate pcdsh05.on.br

    Incializar o daemon do ntpd automático no Conectiva e Red Hat

    O comando ntsysv é o equivalente ao drakxservices do Mandriva.

    ntsysv

    Marque ntpd.

    Instalando no Red Hat

    Instale usando ou rpm –ivh ntp ou yum install ntp

    PARTE 2 – NAS ESTAÇÕES
    LINUX

    ntpdate IP_DO_SERVIDOR_LOCAL ## O que é o server, ou seja o teu Linux. Onde você configurou ntpdate pcdsh05.on.br

    Configurando o agendamento automático

    crontab -e
    0 0 * * * /usr/sbin/ntpdate pcdsh05.on.br

    Agora as estações ou servidores estão sincronizados.

    Links:

    www.ntp.org
    www.on.br

    Grande abraço.