quarta-feira, 14 de novembro de 2007

Leitura no Escuro

Para algumas pessoas o silêncio e a tranqüilidade da noite são ideais para fazer uma leitura. Em outras palavras, é muito bom ler na cama. Só que isso pode incomodar outras pessoas, como esposas sensíveis à luz, pois é necessário manter a luz acesa...

Hoje vi na Internet algo que parece uma solução para esse problema. Alguém teve a idéia de criar um marcador de texto que se ilumina no escuro! Uma invensão simples que nos deixa a questionar: por que ninguem pensou nisso antes?

O objeto é um plastico no formato de um marcador de texto que contém dentro dele diodos feitos de uma substância orgânica que emite luz. A tecnologia é chamada FOLED, do inglês: diodos orgânicos flexiveis que emitem luz =p

Essa idéia ganhou um prêmio de melhor conceito em designe este ano. E provavelmente estará disponível no mercado.

É uma boa dica para quem gosta de ler. Não atrapalha ninguém e ainda economiza energia!

Leia mais sobre a invenção AQUI.

quarta-feira, 7 de novembro de 2007

Instalando o JDK no Linux

Este artigo pretende ajudar quem tem dificuldades de instalar o Kit de Desenvolvimento Java no Linux. Vamos sem rodeios aos passos:

Baixe a mais nova versão do JDK no site da Sun. Escolha a versão que mais se adequa ao seu sistema. Basicamente tem duas: i586 e AMD64. Neste artigo escolhi a JDK 6 para PCs i586. Usaremos o pacote JDK 6 Update 3: jdk-6u3-linux-i586.bin

Link de download AQUI.

Extraia os arquivos dentro do pacote bin.

./jdk-6u3-linux-i586.bin

Como resultado da extração desse pacote, surgirá no mesmo diretório uma pasta de nome "jdk1.6.0_03".

Copie a pasta "jdk1.6.0_03" criada para dentro do caminho "/usr/lib". Na linha de comando fica assim:

cp -r jdk1.6.0_03 /usr/lib/jdk1.6.0_03

Depois disso a pasta do JDK estará no seu lugar correto. Só que ela continua invisível para o sistema. Para que possamos utilizar a instalação nova, precisamos criar ligações (links) dentro da pasta "/usr/bin" do sistema linux. Sem essas ligações o sistema não reconheceria os comandos java.

Criando ligações simbólicas:

ln -s /usr/lib/jdk1.6.0_03/bin/java /usr/bin/java

Este comando cria uma ligação para o executável java para dentro da pasta de executáveis do sistema "/usr/bin". Caso já exista uma ligação nesta pasta, delete-a com o comando rm /usr/bin/java e repita o comando acima.

Se a istalação tiver tido exito, o sistema irá reconhecer o java. Para testar digite o comando abaixo para ver qual é a versão atual java instalada. Se for 1.6.0-03 então Funcionou!

java -version

É preferível que sejam criados links para outros executáveis java como o seu compilador (javac). O comando apropriado é esse abaixo:

ln -s /usr/lib/jdk1.6.0_03/bin/javac /usr/bin/javac

Alguns passos mostrados nesta postagem são bem genéricos. Os programas em linux geralmente têm seus diretórios instalados dentro da pasta "/usr/lib". Depois dessa "instalação" basta fazer um link para o executável principal e colocar esse link dentro de "/usr/bin". Este post descreve especificamente a instalação do Java, mas alguns passos aqui também podem ser usados para outros programas como o Mozilla Firefox, por exemplo. Depois de todos esses passos se o usuário quiser fazer um serviço mais completo pode incluir o programa no seu menu iniciar, usando o gerenciador de menus que veio com sua distribuição.

domingo, 4 de novembro de 2007

Manipulação de Vídeo com FFMpeg

O FFMpeg é um software OpenSource desenvolvido especialmente para manipulação, edição e conversão de vídeo. Ele tem versões tanto para Win quanto para Lin. Sua interface é baseada em linha de comandos, fato que pode assustar usuários Window$ e mesmo Linuxers iniciantes. Apesar sua forma de interagir com o usuário não agrade quem não está acostumado, o software se mostra bastante eficiente, batendo vários programinhas que tem por aí que se dizem conversores de vídeo.

Além do mais os parâmetros passados para processamento são bastante simples. Somente é necessário que o usuário conheça algumas coisas básicas sobre arquivos de vídeo, como por exemplo: formatos, taxa de bits, taxa de frames etc.

O programa também se mostra ágil para extração de áudio. É possível extraír o som inteiro de um arquivo de DVD. Que tal transformar aquele DVD de sua banda favorita em um CD gravado ao vivo? Com FFMpegdá para separa o som do vídeo.

As funções que esse potente software possui são muitas. Encontrei umas referências muito boas ensinando a usar o software. Uma delas é um manual escrito em português cujo link se encontra AQUI. Outra é um arquivo PDF super completo sobre o programa, com seu link bem AQUI.

Se você se interessa por edição, conversão, extração de audio e vídeo, como eu. Então vale a pena dar uma olhada nesse programa.

sábado, 3 de novembro de 2007

Passeio por Springfield

Entrei no site do filme dos Simpsons por curiosidade e encontrei um bocado de coisa inúteis lá. Tão inúteis que chegava a ser engraçado. Nele tem uns jogos em flash legais. Logo na tela principal do site aparecia o Bart Simpson num joguinho tentanto matar passaros com uma baladeira. Consegui acertar uma sequência de 20 tiros!

O site permite que os visitantes criem seu próprio avatar. É bem intuitivo. Eu criei e coloquei aqui em baixo.

O site é bem legal. Não precisa nem ser fã dos simpsons. Não agrega em nada, mas vale a pane dar uma passadinha nele.

Permissões de Acesso em Linux

Nesta postagem será mostrado como funciona o sistema de permissões em Linux. O esquema de segurança de acesso vem de seus ancestrais Unix, sendo uma forma de evitar que usuários ou grupos tenham acesso indevido a arquivos, diretórios ou aplicativos.

Os tipos de arquivo mais conhecidos são os do tipo diretório e arquivo propriamente dito. Existem outros tipos de arquivo como archive, bloco, soquet etc. Mas nós falaremos apenas dos dois anteriores.

Os diretórios são representados por um 'd', enquanto os arquivos comuns são representados por um traço '-'.

Existem em Linux três níveis de acesso: leitura, gravação e execução. Eles são representados respectivamente pelas letras 'r' (Read), 'w' (Write) e 'x' (eXecute). Essas três letras podem formar até oito combinações diferentes. Cada combinação define o "poder de acesso" que um usuário ou grupo tem sobre um arquivo ou diretório.

Esses níveis de acesso são dados a três tipos de entidade: usuário, grupo, outros. Quando um administrador de sistema vai explicitar as permissões de um arquivo ele deve fornecer o nível de acesso para todas três entidades. Cada entidade vai receber uma combinação de r, w e x.

O comando que é usado para verificação das restrições e permissões dos arquivos de um diretório é: ls -l.

Já o comando que se usa para determinar restrições e permissões de acesso é o chmod, que significa change mode. Esse comando necessita de pelo menos dois argumentos: uma string que descreve o nível de acesso desejado e o nome do arquivo do qual se quer mudar as permissões.

Vejamos um exemplo de listagem de permissões. Foi dado um comando ls -l e o resultado foi o que está abaixo:

Permissões Itens Dono Grupo Tamanho Data Nome
-rwxr--r-- 1 josé cozinha 654 Sep7 12:00 receita_de_bolo.txt
-rw-rw-rw- 1 josé cozinha 245 Sep8 11:45 receita_de_macarronada.txt
drw-rw---- 5 josé cozinha 4895 Sep15 14:25 receitas_reunidas

Na primeira linha temos o seguinte para o arquivo "receita_de_bolo.txt":

  • -rwxr--r--: string que descreve o nível de acesso desejado para cada entidade usuária.
  • '-': O arquivo é do tipo arquivo comum;
  • 'rwx': O usuário dono tem acesso total ao arquivo de receita_de_bolo.txt para ler, escrever e executar(se possível);
  • 'r--': O grupo do dono tem acesso para apenas ler a receita de bolo;
  • 'r--': Os outros usuários têm acesso para apenas ler também.

Iremos nos deter um pouco na string de acesso. É importante saber o que cada caractere diz. O esquema da string é explicado abaixo:

Primeiro caractere (caractere 0):

  • Se for diretório, usa-se 'd';
  • Se for arquivo comum, usa-se '-'.
  • No caso acima trata-se de um arquivo comum, por isso foi usado um traço;

Primeiro grupo de tês caracteres (caracteres de 1 a 3):

  • Define as permissões do usuário dono do arquivo.
  • No caso acima: rwx (leitura, gravação e execução)

Segundo grupo de três caracteres (caracteres de 4 a 6):

  • Define as permissões do grupo de usuários que o dono faz parte.
  • No caso: r-- (somente leitura). As outras posições são preenchidas com traços.

Terceiro grupo de três caracteres (caracteres de 7 a 9):

  • Define as permissões para os todos os outros usuários.
  • No caso: r-- (também somente leitura). Preenchimento com traços para os espaços vasios.

Outros exemplos:

-rw-rw-rw- receita_de_macarronada.txt
  • -: O arquivo é um arquivo comum.
  • rw-: O usuário dono poderá ler e escrever, mas não poderá executar (pra quê?).
  • rw-: O grupo do dono também podera ler e escrever.
  • rw-: Qualquer outro usuário também poderá ler e escrever.

drw-rw---- receitas_reunidas

  • d: O arquivo é um diretório;
  • rw-: O usuário dono poderá ler e escrever, mas não poderá executar (pra quê?).
  • rw-: O grupo do dono também podera ler e escrever.
  • ---: Os outros usuários não poderão nem ao menos ler.

É possível atribuir acesso de duas maneiras. A mais simples na minha opinião é a que usa o conceito de adicionar e subtrair. Se você quer dar poder de escrita para um grupo de usuários por ,exemplo, o comando é este: chmode g+w receitas_reunidas. Se pelo contrário, você quiser tirar o acesso de gravação, basta dar um chmode g-w receitas_reunidas, com sinal de menos no meio de g e w. É importante agora decorar mais umas letrinhas:

  • u: usuário;
  • g: grupo;
  • o: outros;
  • a: todos;

Exemplos de configuração de permissão:

  • chmod u+x => dá ao usuário acesso a execução;
  • chmod u-w => tira do usuário o acesso a escrita;
  • chmod u-rwx => tira todo o acesso do usuário;
  • chmod g+rwx => dá acesso total ao grupo;
  • chmod ug+rwx => dá acesso total ao usuario e seu grupo;
  • chmod go-wx => tira acesso de escrita e execução do grupo e de outros usuários;
  • chmod a+rwx => libera acesso total para todo mundo.

Outra maneira de configurar acesso é utilizando números para simbolizar o nível de acesso de cada entidade usuária. Os níveis vão de 0 (proibição total) a 7 (permissão total). A tabela abaixo descreve cada nível numérico de acesso.

0 [ --- ] proibição total
1 [ --x ] apenas execução
2 [ -w- ] apenas Escrita
3 [ -wx ] escrita e execução
4 [ r-- ] apenas leitura
5 [ r-x ] leitura e execução
6 [ rw- ] leitura e escrita
7 [ rwx ] permissão total

O mesmo chmod é utilizado, com a diferença que não se precisa expecificar a entidade usuária. Como parâmetro é passado uma string de três números de 0 a 7. O primeiro número se refere ao usuário; o segundo, ao grupo; o terceiro aos outros usuários. Exemplos:

  • chmod 777 receitas_reunidas => dá acesso tota a todos os usuários;
  • chmod 700 receitas_reunidas => proíbe totalmente o acesso de outros que não sejam o dono;
  • chmod 660 receitas_reunidas => dá acesso de leitura e escrita para o dono e seu grupo;

Concluímos que não é difícil realizar operações que envolvam restrições de acessos de usuários. Tudo que é exigido do administrador é saber para que serve o chmod e lembrar de algumas letrinhas usadas como argumento para o mesmo.

quinta-feira, 1 de novembro de 2007

Flash Player no Linux AMD64

Muitos usuários de linux e amd64 se queixam de não existir uma versão do flash player para a arquiterura Linux x86-64. A Adobe disponibiliza em seu site apenas três versões do flash para usuários Linux, e todas para x86. Não se sabe as rasões da Adobe não compilar uma versão para processadores 64 bits. Será por motivos mercadológicos para favorecer a Intel, que não teve tanto sucesso com seus processadores 64 bits quanto os da AMD?

Mas indo ao que interessa. É possível, sim, instalar o flash em um computador que roda Linux e usa processador AMD64. E não é difícil. Como sabemos, a linha de processadores 64 da AMD mantém instruções do tipo 32 bits e pode muito bem funcionar em modo 32, como se fosse um x86. Dessa forma o que vai influenciar mais talvez não seja nem o processador, mas sim o sistema operacional. Eu fiz aqui um simples teste que funcionou. E vou repassar o que fiz aqui em meu PC.

A distribuição que estou testando atualmente é o OpenSuSE. O navegador sempre uso é o Firefox. Não gosto do Konqueror. Em relação a hardware, resumidamente grosseiramente, meu PC tem um processador Athlon 64 e 1 GB de memória.

Para instalar o Flash fiz o seguinte:

Baixei o plugin do site da Adobe, AQUI;

Link do site da Adobe: http://www.adobe.com/br/

Descompactei o arquivo baixado usando estas dicas, AQUI;

Comando para descompactar:
tar -vzxf install_flash_player_9_linux.tar.gz

Editei o arquivo "flashplayer-installer";

Na verdade, o que impede o flash de ser instalado é só uma linha de comando shell dentro do arquivo "flashplayer-installer". Esse comando, que é uma estrutura de controle CASE aninhada num SWITCH, faz uma checagem do tipo de arquitetura de processador existente no PC. Se a plataforma não for do tipo x86, ele vai chiar e não vai deixar instalar o flash. Para burlar isso, basta mudar uma linha do arquivo como mostrado embaixo:

# check architecture
TEMPARCH=`uname -m`
case $TEMPARCH in
#i[3456]86) Linha Original. Basta comentar esta linha usando um '#'.
x86_64) # Linha Mudada. Basta adicionar esta linha.
ARCH=i386
;;
*)
exit_cpu $TEMPARCH
;;
esac

E digitei os comandos necessários para instalação;

Como o arquivo script de instalação foi alterado, o flash será instalado sem problemas no computador! Depois a sequencia de passos que usei para instalar foi essa:

  1. Executei o script de instalação em shell: ./flashplayer-installer
  2. Indiquei o caminho da pasta do Firefox:/usr/lib/firefox
  3. Confirmei que queria instalar: y
  4. Respondi que não queria fazer outra instalação: n

Resumindo, basta editar o arquivo de instalação. Ele é a única coisa que impede a instalação do Flash Player em computadores Linux AMD64. Depois que fiz essas coisas o flash funcionou direitinho no Firefox.

terça-feira, 30 de outubro de 2007

O Plano Mestre da Google

Recentemente a Google anunciou que está entrando no mercado da comunicação móvel. Dentro de algumas semanas a empresa lançará um sistema operacional voltado para celulares e smartphones que tem acesso a vários serviços da empresa.

Como não bastasse o poderio da empresa atualmente, ela quer estar até no celular das pessoas!

Este vídeo descreve bem o que pensam alguns sobre a empresa. Abaixo dele coloquei sua tradução. Parece um disparate usar o blogger para falar assim do Google. Mas fazer o que...

Google é o mecanismo de busca mais poderoso da Terra. Hoje, bilhões de usuários utilizam o Google para encontrar qualquer tipo de informação. E agora, é ele quem manda na rede mundial de computadores.

Em 1997, Larry Page e Sergey Brim desenvolveram um ranking de paginas circular, uma algorítmo matemático complexo que avança pelos sites. Essa invensão revolucionária poderia encontrar e transformar o acesso à informação. Depois daí o Google rapidamente se tornou a escolha numero um em sites de busca.

Isso era apenas o começo...

Nos dias de hoje, a Google arrecada lucros enormes por dominar o mercado de anúncios em websites. Este caminho a levou a se tornar a empresa mais lucrativa no marketing mundial.

Mas isso é só por dinheiro?...

Seus fundadores possuem uma grande visão: o "Plano Mestre do Google".

Qualquer tipo de informação será acessível para qualquer pessoa, controlada pelo próprio Google. Com o princípio "não seja mau".

Tudo isso de graça?...

Você não se importa com sua privacidade?

Uma combinação perfeita de software e hardware, o googleware, dá à empresa mais poder computacional que qualquer outra. O Google armazena toda a internet conhecida em sua base de dados gigantesca. E tem mais. O Gmail, de vários gigabites de armazenamento grátis, não é tão secreto. Todos os E-mails, inclusive os que você recebeu de seus amigos, são escaneados. O Google coleta informações pessoais de diversas outras formas, usando cookies e informações de contas de usuários.

Será que é para oferecer anuncios relevantes?...

O Google poderia criar dossiers completos sobre qualquer um de nós. Muito antes da CIA pedir cooperação da empresa para ajudar nas investigações em favor do governo americano.

A aparência de simplesmente querer o melhor para os seus usuários permitiu que o Google começasse a expandir sua dominação online.

Controle total! E não apenas na Internet...

A Google está conduzindo pesquisas nos campos da biologia molecular e da genética.

E se a Google tivesse um arquivo sobre você, no qual incluisse suas informações genéticas? Cada ser humano se tornaria completamente transparente. O que você acha?

Será que a Google realmente liga para sua privacidade?

Codecs de Audio e Vídeo no Linux

A biblioteca do Xine dos maiores mecanismos multimidia do mundo open source. O Xine é um tocador de mídia cujos direitos são regidos pela GNU GPL. De posse dessa biblioteca instalada o utilizador poderá reproduzir CD, DVD e VCD. Além de arquivos de audio e vídeo armazenados no computador pessoal, como MP3, Wav, MPEG, OGG-Vorbis etc. Seu pacote de codecs e sua interface de programação é a base para o desenvolvimento de diversos players consagrados, dentre eles: Kaffeine, Totem, XMMS, Amarok dentre outros.

Este artigo será útil apenas para os que têm problemas em reproduzir certos formatos de audio ou vídeo.

Algumas distribuições simplesmente não tocam alguns dos formatos mais populares, como o MP3, especialmente aquelas que são incentivadas por empresas exploram o open source. A Red Hat e a SuSE são exemplos de empresas que limitam os recursos multimídia de suas distribuições para evitar problemas com direitos autorais e de patentes. Como sabemos, o formato MP3 é patenteado...

Para contornar essa limitação, é possível para os usuários Linux fazer uma instalação do pacote de codecs do Xine. Descreveremos neste artigo como instalar essa biblioteca. Não descreveremos como instalar o Xine em si porque segue basicamente o mesmo processo. Até porque em relação a tocadores o linux é geralmente bem servido, sendo dispensada a instalação de mais um aplicativo. Além do mais em muitas distribuições já tem o Xine instalado, embora limitado.

Primeiro, baixe o pacote:

XineLib, AQUI!

Segundo, descompacte o seu conteúdo:

Como descompactar arquivos em Linux, AQUI!

Terceiro, configure:

Digite no terminal, dentro da pasta do XineLib: ./configure

Quarto, compile:

Digite no terminal, dentro da pasta do XineLib: make

Por último, instale:

Digite no terminal, dentro da pasta do XineLib: make install

Para testar se a instalação foi feita corretamente, reinicie o sistema e abra um player para tocar algum arquivo que antes não estava funcionando. Se o player conseguir reproduzir, a instalação foi bem sucedida.

Obrigado por ler este artigo. Leia também este artigo AQUI da INFO-Online.

segunda-feira, 29 de outubro de 2007

Compactando e Descompatando em Linux

Quem mexe com linux frequentemente precisa fazer compactação ou descompactação de arquivos. É bastante comum em atividades de administração do sistema Linux o manuseio de arquivos compactados. Hoje em dia isso não é problema, pois basta um ou dois cliques para descompactar quase qualquer formato. No entanto, o conhecimento de maneiras Unix-like de resolver os problemas em Linux é obrigatório. São necessários conhecimentos básicos sobre comandos shell e sobre aplicativos em terminal.

A compactação ou a descompactação de arquivos em terminais Linux não é difícil. Basta saber que tipo de arquivo vai ser descompactado e digitar seu comando apropriado. Seguem abaixo alguns comandos comuns em ambientes de prompt de comando Linux:

Comandos para compactação de arquivos em terminal Linux
FormatoComando
ZIPzip -9 nome_arquivo.zip lista_arquivos
GZIPgzip nome_arquivo.gz lista_de_arquivos
TARtar -cvf nome_arquivo.tar lista_arquivos
TAR.GZtar -czvf nome_arquivo.tar.gz lista_arquivos
TAR.BZ2tar -cjvf nome_arquivo.tar.bz2 lista_arquivos

Comandos para descompactação de arquivos em terminal Linux
FormatoComando
ZIPunzip arquivo.zip
RARunrar x arquivo.rar
TARgzip arquivo.tar
TAR.GZtar -vzxf arquivo.tar.gz
TAR.BZ2tar -vxjpf arquivo.tar.bz2
7z7z x arquivo.7z
RPMrpm -i arquivo.rpm

Estas são duas tabelas bem suscintas, mas podem ser útil no dia-a-dia.

sexta-feira, 26 de outubro de 2007

Converter arquivos ACT para WAV

Recentemente usei meu MP4 como gravador pela primeira vez e quando foi passar para computador constatei que o aparelho utilizava um formato ACT. Nunca havia ouvido falar nesse tipo de arquivo. Ele nem era reconhecido pelo sistema operacional. E olha que eu costumo instalar vários codecs tanto no Windows quanto no Linux. Esse formato deve ser adaptado às características limitadas de memória e processamento do dispositivo.

Depois de procurar um pouco, encontrei um software que parece servir só para isso. Estou postando aqui o link porque funcionou para mim. Espero assim ajudar alguem que tenha a necessidade de passar as suas gravações para o computador. O programa é bem pequeno mas cumpre o que promete: converte arquivos ACT para WAV.

Com arquivo convertido para WAV basta editar, converter para MP3, ou o que mais desejar.

O nome do programa é Sound Convert Tool. Ele vem junto com um pacote de software chamado MP3 Player Utilities e pode ser baixado neste link BEM AQUI.

quinta-feira, 25 de outubro de 2007

Linguagens de Programação

Pesquisando na Internet pelo assunto "Linguagens de Programação" encontrei uma referência a um livro nacional entitulado: Linguagens de Programação - Conceitos e Técnicas. E o nome de seu autor é Flávio Miguel Varejão.

No livro são expostas as características de várias linguagens, dentre elas C, C++ e Java. Como sabemos as LPs não são iguais. Cada qual com suas especificidades que as tornam unicas.

O autor cita diversas propriedades desejáveis nas linguagens de programação, dentre elas:

  • Legibilidade: facilidade de entendimento e aprendizagem em uma linguagem;
  • Redigibilidade: facilidade em codificar numa linguagem;
  • Confiabilidade: tratamento de erros em tempo de execução ou compilação;
  • Eficiência: desempenho da linguagem versus recursos consumidos;
  • Facilidade de Aprendizado: sintaxe simples e enxuta e boa tipação;
  • Ortogonabilidade: combinação de características sem efeitos indesejados;
  • Reusabilidade: facilidade de usar novamente um código em outra aplicação;
  • Modificabilidade: facilidade de adaptar o código para novos usos;
  • Portabilidade: capacidade de utilização em diferentes plataformas ou S.O.s.

No site pessoal do autor está disponível um link para Slides dos capítulos de seu livro.

Também encontrei um resumo interessante sobre esse livro que inclui alguns conceitos de linguagens como Visual Basic.

Antes de entrarmos em discussões acaloradas sobre "qual é a melhor linguagem" deveriamos levar em consideração a diversidade de LPs. Dizer simplesmente que uma linguagem é melhor que outra, sem argumentar demonstra imaturidade e desconhecimento. Além que quanto maior o leque de linguagens o programador dominar, maior será seu diferencial no mercado.

Javascript NÃO é Java

Muitas pessoas inesperientes nas duas linguagens acham que Java e Javascript são a mesma coisa...

Java é uma linguagem procedural e ao mesmo tempo orientada a objetos, que roda em uma máquina virtual, a JMV. Para rodar o código escrito em Java precisa ser COMPILADO, sendo transformando dessa forma em bytecodes que serão posteriormente interpretados em tempo de execução pela JVM.

Javascript é uma linguagem de Script, portanto, NÃO COMPILADA, que foi criada pela empresa Netscape. O nome JavaScript foi sugerido por que a linguagem tinha uma sintaxe bem parecida com Java, ou também porque java estava na moda à epoca (199*), como linguagem do "futuro" para a internet.

Atualmente a linguagem é padronizada por um grupo europeu chamado ECMA. E não se estranhem quando ouvirem falar em ECMAScript. Que leia-se "JavaScript".

Apesar da tentativa de padronização da linguagem, cada navegador implementa sua própria versão da ECMAScript. Há códigos que não funcionam no Firefox, por exemplo. E há vários que não tem nem chance de rodar no IE.

Aqui tem uns links referência para as duas linguagens:

Java: http://java.sun.com

EcmaScript: http://www.ecma-international.org

Só pra relembrar: JavaScript é uma coisa. Java é outra totalmente diferente.

domingo, 21 de outubro de 2007

Site sobre Finanças Pessoais

Enquanto pesquisava na Internet sobre cálculo financeiro, encontrei um sítio especializado em Finanças Pessoais.

O nome do website é Finanças Práticas. Ele foi criado como um programa de responsabilidade social liderado pela Visa Internacional. Esse programa de educação financeira conta com a parceria de diversas instituições, desde as de defesa ao consimidor até empresas do mercado financeiro.

O site está disponível em diversos países, dentre eles México, Colômbia e Brasil. Para cada versão nacional, o site se adapta às características mercadológicas, culturais, econômicas e de legislação.

O que me chamou atenção no site foi a quantidade de conteúdo e a divisão dos assuntos por áreas das finanças pessoais.

As pessoas que se interessam por controlar sua renda e suas despesas devem consultar esse sítio. Linque abaixo:

Finanças Práticas http://www.finanzaspracticas.com/br/site/home/index.php

Estou colocando este linque na sessão de sites externos deste blog.

Espero que esta indicação sirva para ajudar alguém.

Projeto Finanx FX12C-0.0.6

Saiu hoje mais uma versão do Finanx FX12C. Foram introduzidas várias modificações desde a anterior. Algumas funções foram acrescentadas, outras melhoradas, outras corrigidas. A apresentação dos valores no mostrador também recebeu tratamento. Agora os números podem ser inseridos continuamente até um limite de 1.0E100, exclusive. Quando a quantidade de digitos de um valor ultrapassa a capacidade do mostrador, esse número é formatado para modo de apresentação exponencial da HP12C. Os próximos passos do projeto serão finalizar as funções financeiras e implementar um interpretador para dar suporte à programação na calculadora. Caso seja encontrados bugs no software, favor comunicar.

segunda-feira, 8 de outubro de 2007

Serviço de busca de verbetes

Hoje achei um serviço interessante prestado pelo Google. Trata-se de um mecanismo adicional que faz busca de verbetes, retornando uma relação de significados e de fontes.

Para fazer uma busca de definição para um verbete basta digitar antes da palavra em questão a expressão "define:". É só isso e dar enter. Como resultado aparecerá na tela do browser, não apenas uma lista de links, mas de definições e de fontes de pesquisa.

Exemplo: define: ciência

Vou utilizar esse serviço de agora em diante quando quiser dar acesso ao significado de alguma expressão particular.

Gostaria de entender como é que o google faz isso. Como os sites fazem a marcação da dupla verbete-definição para que o google interprete dessa maneira. Sei que em HTML 4, bem como em XHTML existem tags específicas para fazer a marcação. Mas creio nem sempre elas são usadas. Acho interessante a área da web semântica (semantic web). Ela vem se desenvolvendo bastante e a Google está tomando vantagem desse desenvolvimento.

quinta-feira, 20 de setembro de 2007

Finanx - FX12C-0.0.4

Foi lançada hoje à noite mais uma versão pré-teste da calculadora financeira.

Neste release a interface gráfica foi totalmente modificada. Anteriormente, a GUI era a padrão da biblioteca gráfica de Java, o Swing. Agora a calculadora tem uma aparência semelhante à calculadora financeira de maior sucesso de vendas. Foram adicionados aos botões movimentos suaves para o usuário ter a impressão de estar pressionando de verdade as teclas da calculadora virtual.

O projeto, como dito em postagem anterior, se encontra hospedado no portal Source Forge. E o link dele se encontra no quadro "Páginas do Fábio" ao lado [--->].

Link direto para download AQUI.

terça-feira, 11 de setembro de 2007

Projeto Finanx

Foi lançado hoje o primeiro release do Projeto Finanx.

O projeto visa disponibilizar um sistema de aplicativos de gestão de finanças pessoais. Dentre os aplicativos que o projeto pretende lançar está a FX12C, uma calculadora financeira nos moldes da famosa HP12C.

A linguagem utilizada no projeto é Java, o que o torna multiplataforma. O idioma em que estão escritos os nomes das classes, interfaces, dos objetos, variáveis, métodos é o português para facilitar a assimilação dos programadores brasileiros que queiram contribuir ou estudar o código. Estamos construindo a calculadora financeira com base no padrão MVP, Model-View-Presenter. Isso porque achamos mais adequado e mais adaptável que o MVC, Model-View-Controll.

O Finanx está hospedado no Source Forge, um portal voltado para o desenvolvedor opensource.

Ao lado tem um link para o site do projeto. Lá será possível baixar o FX12C para testá-lo. O programa está dentro de um pacote Jar. Para executá-lo basta digitar no prompt de comando ou no terminal:

  • java -jar /caminhocompleto/fx12c-0.0.1.jar

O projeto está apenas começando, portanto poderá apresentar bugs. A ajuda de pessoas interessadas em testar será inestimável. Para dúvidas e sugestões estou às ordens.

Link para o Finanx bem AQUI

sexta-feira, 7 de setembro de 2007

Firewall

Firewall é um sistema de proteção que tem por função controlar o tráfego de informação entre uma rede e outra, geralmente a Internet. Esse mecanismo de defesa atua no controle de acesso ao sistema, utilizando regras de filtragem de dados. As informações que passam pelo firewall devem passar por de validações baseadas nessas regras para angariarem o direito de trafegar na rede.

“O firewall é um conjunto de componentes (hardware, software) que restringem o acesso entre uma rede protegida e a internet ou outros conjuntos de rede.”

[ Chapman & Zwicky 95]

Dada sua importância, o firewall é a primeira solução proposta por profissionais de segurança de redes que querem implantar algum projeto ou política de segurança. Em grandes corporações, as regras geralmente são definidas em reuniões com os gerentes para discutir questões sobre políticas de segurança, estrutura física da rede dentre outras questões atinentes à segurança da informação.

Um firewall pode ser implementado utilizando equipamentos dedicados como firewall, ou aproveitando recursos disponíveis em roteadores dedicados, ou ainda configurando um servidor de Internet como roteador e firewall.

O termo firewall faz alusão à parede corta-fogo que tem a função de impedir que um incêndio se alastre pelo prédio.

Categorias de Firewalls

Firewall Filtro de Pacotes

Analisam os pacotes individualmente baseados em regras definidas previamente. Tem a desvantegem a falta de controle de estado de pacote, possibilitando a simulação de pacotes maliciosos.

Firewall Proxy

Trabalha recebendo uma requisição e tomando-a como sua responsabilidade (conceito de procuração). A resposta é analisada antes de ser repassada ao host que originou tal requisição. Como desvantagens estão a perda de desempenho ocasionada pelo duplo processamento da requisição (conceito de retrabalho) e a necessidade de configurações e correções adequadas para manter a segurança da rede.

Firewall de Estado de Sessão

O firewall inspeciona o trafego para evitar pacotes ilegítimos. Para isso observam e mantém armazenados os estados das últimas transações efetuadas. Sua instalação e manutenção são supostamente mais eficientes por se concentrar no modelo conceitual do TCP/IP.

Firewall de Aplicação

Nasceu do esforço em se analisar protocolos especiais como o HTTP. O Firewall de Aplicação Web (Web Proxy) é frequentemente instalado junto com a plataforma onde está instalado o serviço http. Tem a vantegem de cobrir as vulnerabilidades dos outros tipos de firewall. As desvantagens são a exigência de grande poder computacional e possíveis inconpatibilidades no padrão das transações trocadas.

Como Funciona um Firewall

  • Os firewalls podem ser implementados de diversas maneiras: hardware, software ou combinação de ambos.
  • Podem ainda operar de várias formas: filtro de pacotes, NAT, mascaramento, PAT, Proxy.
  • Também podem se constituir de diferentes arquiteturas: Dual Homed Hosts, Screened Host e Screened Subnet.

Filtragem de Pacotes

Sistema que faz a passagem de pacotes vindos de uma rede externa para uma interna de forma seletiva. É um trabalho comum em roteadores chamados screening routers.

Para filtrar os pacotes o sistema utiliza alguns parâmetros básicos como: endereço de origem, endereço de destino, protocolo usado, porta de origem, porta de destino, interface de entrada, interface de saída e flags TCP.

Tradução de Endereços de Rede – NAT

É o serviço de mudança de endereço de origem e de destino. Esse processo possibilita que sejam trocados em uma tabela de roteamento os endereços de origem dos pacotes que saem e os endereços de destino dos pacotes que entram. Isso permite que as máquinas internas possam permanecer de certa forma inacessíveis diretamente para máquinas externas à rede.

Mascaramento - Masquerade

É o serviço que soluciona possíveis problemas originados da utilização de NAT em com a intenção de prover acesso de uma rede falsa (RFC 1918) à rede mundial. Ele se faz necessário porque os endereços reservados não são roteáveis. Esta tradução é feita em qualquer troca de informações estabelecida entre hosts internos e externos.

Basicamente o roteador/firewall vai trocar o endereço de origem de uma requisição interna e trocar pelo seu. Quando a resposta chegar ele vai direcioná-la para o endereço reservado que originou a requisição.

Tradução de Portas – PAT

A tradução de portas é feita quando existe a necessidade de redirecionamento de pacotes e serviços de uma determinada máquina para outra. Ela possibilita a existência de casos em que um IP pode ser usado em diversas máquinas provedoras de serviços, bastando especificar a porta de determinado serviço.

A tradução de portas também é usada para balanceamento de serviços, dividindo as tarefas entre os servidores quando a quantidade de requisições está elevada.

Serviço de Procuração - Proxy

É um serviço de acesso indireto à Internet, que conta com o intermédio de um Servidor Proxy. O serviço de procuração é utilizado em soluções que visam a segurança como forma de firewall. O funcionamento do servidor procurador é transparente tanto para servidor real quanto para o cliente. Todas as requisições dos clientes são direcionadas para o proxy, que por sua vez solicita dados ao servidor real e as repassa de volta para o cliente. Geralmente mantém um cachê onde podem ser armazenadas as informações mais requisitadas, economizando assim em trafego externo.