Há um tempo atrás, participei de um projeto para resolver problemas de rede de um cliente, envolvendo vulnerabilidades, correção de configuração de serviços de rede, entre outras atividades. Um dos principais problemas relatados pelo cliente, era com relação ao serviço de e-mail, em que os seus clientes e parceiros reclamavam constantemente que recebiam mensagem de erro após algum tempo de envio. A princípio, imaginei que era somente o serviço de correios contratado que era muito ruim, mas me deparei com uma informação valiosa no relatório inicial: “Não foi encontrado o registro SOA no DNS do domínio.”. Isso me intrigou, porque eu sabia que esse registro existia e em testes com nslookup ele era retornado. Após algum tempo de testes, reparei que a resolução de nomes para registros na raíz do domínio (root domain, zone apex ou ainda naked domain) estava instável, ora resolvia, ora não (sim, esse “ora” é sem H). Investigando então os registros, achei o causador do problema. Onde deveria haver um registro A na raíz do domínio, apontando para o servidor, na verdade tinha um registro do tipo CNAME, apontando para um nome, onde este então possuía o IP de destino. Pronto, na hora corrigi e logo os serviços estabilizaram.

Leia o resto deste post »

Muitas vezes, vejo pessoas fazendo diagnósticos de resolução de nomes utilizando o comando “ping”. Não que esteja errado, mas não é o procedimento mais indicado, já que o “ping” faz a resolução de nomes somente no intuito de obter o IP de destino para o diagnóstico utilizando o protocolo ICMP, limitando-se então à resolução de registros A ou CNAME.

Uma Zona DNS é composta por vários tipos de registros (A, CNAME, MX, TXT, HINFO, SOA etc.), como meu objetivo aqui não ensinar como funciona um servidor DNS e pra que serve cada tipo de registro, mas sim explicar como diagnosticar problemas na resolução de nomes, segue abaixo alguns bons artigos sobre o assunto:

Deives Michellis “thefallen” – Uma breve introdução à DNS
http://www.unitednerds.org/thefallen/docs/?area=DNS&tuto=SlackwareShow

Júlio Battisti – Tutorial de TCP/IP – Parte 24 – Tipos de Registros no DNS
http://www.juliobattisti.com.br/artigos/windows/tcpip_p24.asp

Suporte Google – Entender os registros MX
http://support.google.com/a/bin/answer.py?hl=pt-BR&answer=33352

Para realizar o diagnóstico completo de uma zona, você deve utilizar ferramentas para este fim, como o nslookup ou dig. Vou abordar aqui o nslookup com alguns exemplos básicos.

Diagnóstico básico (Hosts A/CNAME/PTR)

Você acabou de criar um registro DNS, digamos que através de um Plesk em um site que você tenha hospedado, suponhamos que seja o endereço host1.meudominio.com e está apontando para o endereço 200.200.200.1, através de um registro A. Você quer simplesmente ver se o apontamento está OK, então basta utilizar o comando abaixo:

nslookup host1.meudominio.com

Digamos que o resultado não foi o esperado, a resolução apontou um endereço anterior (caso o endereço já existia e apontava para outro IP) ou simplesmente disse que o endereço não existe. No comando acima, você utilizou o seu endereço DNS padrão (para conferir qual é, no Windows utilize o comando “ipconfig /all”, no Linux utilize o comando “cat /etc/resolv.conf”), digamos que você está em uma rede com Active Directory e este endereço esteja em cache, você pode então especificar um outro servidor DNS para realizar esta consulta, como abaixo:

nslookup host1.meudominio.com 8.8.8.8

Você pode utilizar no lugar de 8.8.8.8 qualquer endereço de servidores DNS, sendo os mais comuns 8.8.8.8 /8.8.4.4 (Google), 4.2.2.2/4.2.2.3/…/4.2.2.6 (Level3), 200.221.11.100/200.221.11.101 (UOL), 208.67.222.222/208.67.220.220 (OpenDNS). O motivo de fazer isso, é você ver se o seu cache ainda não foi atualizado ou mesmo acompanhar como está a propagação da informação pela Internet. Quando você criar um novo endereço, teoricamente não há porque a resolução estar desatualizada, já que como nunca houve propagação daquele endereço, seu servidor DNS irá fazer a pesquisa no servidor DNS responsável por aquela zona e trazer na hora as informações do endereço recentemente criado.
Para resolução inversa, é necessário que haja uma zona de pesquisa inversa criada em seu servidor DNS, com seus respectivos registros PTR. Basta então utilizar o comando abaixo para obter o nome relativo a um IP:

nslookup 192.168.0.1

Levando em consideração que esta seja sua classe de rede e o IP 192.168.0.1 seja um IP relativo a um host em sua rede.

Diagnóstico de registros específicos

Com o nslookup, também é possível verificar registros de todos os demais tipos, bastando especificar qual o tipo desejado. Caso a gente queira verificar quais são os registros MX de um domínio, basta utilizar o parâmetro –q recebendo o tipo de registro como argumento, para especificar o tipo de consulta (query).

nslookup –q=mx meudominio.com

Este parâmetro é extremamente útil quando você está migrando uma plataforma de e-mail e precisa acompanhar a propagação de registros MX e/ou TXT.

Diagnóstico geral

Caso você queira saber todos os registros DNS de um domínio, você pode fazer uma consulta do tipo “todos” (all), conforme abaixo:

nslookup –q=all meudominio.com

Como este comando está recebendo a raiz do seu domínio, você não terá como retorno os registros A ou CNAME de subdomínios (www, ftp, webmail etc.).

Finalizando, o objetivo deste post é apenas mostrar alguns exemplos básicos que possam ajudar a gerar mais dúvidas e inspirar mais pesquisas e estudos.

__
Rafael Puga

Recentemente, através de uma indicação da App Store do meu iPad2, instalei o Evernote para ver do que se tratava. Fiquei mais curioso após instalar e criar minha conta e instalei também o aplicativo no meu Windows do notebook. Tentei instalar ele também no Linux, mas não existe nenhum cliente nativo para Linux, porém existe um plugin para o Google Chrome que te facilita o acesso pela Web.

Como os clients para os diversos sistemas não passam de um front-end para um serviço em nuvem, não pude deixar de assimilar (e não fui o único) que este serviço nada mais é do que o que o descontinuado Google Wave fazia (edição de notas com multimídia e compartilhamento com outros usuários). De uma certa forma fiquei muito feliz, pois sempre adorei o Google Wave e fiquei muito triste com seu “falecimento”, ainda mais por ser um serviço integrado ao Google Apps, de forma que iniciei seu uso em conjunto com a equipe da minha empresa, já que utilizamos (e somos Google Apps Authorized Reseller).

O único problema é que para se manter, o Evernote é parcialmente gratuito. Por enquanto não tive a necessidade de contratá-lo, mas se eu passar a utilizá-lo mais intensamente, talvez seja necessário. Além disso, por enquanto não estou com ele integrado com a minha equipe, assim como fazia com o Google Wave, na verdade acho que isso nem vai acontecer, pois já substituímos essa ferramenta com outras e com isso, por enquanto, não convém trocar.

Enfim, gostaria apenas de compartilhar essa experiência com este aplicativo, além de tirar a poeira do meu blog, já que tem MUITO tempo que não posto nada.

PS: este artigo foi produzido diretamente no Evernote:)

Apesar de amar Linux, últimamente tenho usado muito mais Windows (no desktop), por variados motivos. Como de costume, sempre utilizei o Microsoft Office como suíte office, por um bom tempo, muito mais pelo Microsoft Outlook (que não há nada que o substitua). Porém, em alguns locais onde não costumo usar o MS Outlook, quis utilizar alguma outra suíte que fosse gratuita e a primeira coisa que vem em mente, com certeza, é o BrOffice.org , porém não gosto muito dele, acho muito pesado e feio. Diante desta situação, decidi ver se conseguia encontrar outras alternativas, e logo encontrei =)

O Lotus Symphony é uma suíte office desenvolvida e mantida pela IBM e pode ser encontrada em http://symphony.lotus.com. Sua licença é gratuita, mas ainda não sei dizer se é de código aberto (ainda não encontrei nada que dissesse sobre isso no site). O sistema é compativel com Windows, Linux e Mac OS X (pode ser que rode em outros Unices, não sei dizer) e suporta arquivos do tipo OpenDocument (.odt, .ods etc), MS Office (.doc, .xls etc) e OpenXML (.docx, .xlsx etc), mas trabalha nativamente com o padrão OpenDocument mesmo (assim como o BrOffice.org).

Com base nesses aspectos decidi testar e para minha própria surpresa, acabei adorando (apesar de alguns detalhes que ainda deixam a desejar). Baixei o arquivo de instalação no idioma Português brasileiro, porém a base de dados para o corretor ortográfico precisa ser baixada (na mesma página de download) e instalada a parte, por isso vou mostrar os passos para instalação do pacote de correção ortográfica. Os passos para instalação do software em si podem ser encontrados no em http://symphony.lotus.com/software/lotus/symphony/help.nsf/InstallGuide.


Instalação do pacote de correção ortográfica:

  1. Instale o IBM Lotus Symphony em seu computador.
  2. Baixe o pacote “updateSite_pt_BR.zip” na mesma página de onde baixou o instalador do IBM Lotus Symphony.
  3. Carregue o programa a partir do atalho criado pelo processo de instalação.

    Lotus Symphony

    Lotus Symphony

  4. Vá em “Arquivo” > “Aplicativo” > “Instalar”. Irá abrir uma nova janela de instalação e atualização de aplicativos.
  5. Seleciona a opcao “Procurar novos recursos e instalar” e clique em “Avançar”.
  6. No lado direito da janela, clique em “Incluir Local do Zip/Jar…”, selecione o arquivo “updateSite_pt_BR.zip” na pasta na qual ele esteja, clique em “OK” e depois em “Concluir”.
  7. Abrirá a janela “Resultados da procura”, selecione o checkbox que foi carregado e depois clique em “Avançar”.
  8. Aceite os termos de contrato da licença e avance a instalação, clique em “Concluir”, aguarde finalizar a operação de provisão e mande reiniciar o Lotus Symphony.

Pronto, agora você já pode desfrutar dos recursos de correção ortográfica em seu Lotus Symphony, porém podemos notar que este corretor possui as seguintes falhas:

  • Ele não possui uma base de palavras tão grande como a do BrOffice.org.
  • Não possui verificação de concordância verbal e nominal, que no Microsoft Office é um recurso bem maduro.
  • Possui um “bugzinho” que não exibe as sugestões de correções em palavras que estejam em fim de frases, seguidas de um ponto final.

Para finalizar, segue abaixo uma foto de tela do software em uso. Note um dos recursos que eu mais gosto, o suporte a abas, que traz um alivio na barra de tarefas quando editando vários documentos ao mesmo tempo.

Lotus Symphony

Lotus Symphony

That’s all folks!!

Depois de muito tempo sem desenvolver nada muito complexo, que não passasse de pequenos scripts para gerenciamento de processos ou rotinas variadas no Linux, comecei a desenvolver um sistema em PHP para a minha empresa. Muito e muito tempo sem usar SQL, mas ainda com algumas lembranças de conceitos aprendidos na faculdade (tendo prática com MS SQL Server), com a cara e a coragem, fui à modelagem do banco de dados.

Criei algumas tabelas e seus campos (ou colunas) e comecei a relembrar dos conceitos de relacionamentos entre as tabelas (1:1, 1:N e M:N) e como usar o conceito de chaves estrangeiras para relacionar tabelas. Para quem ainda não estudou ou trabalhou com isso, o conceito é muito simples, vou tentar exemplificar usando o conceito de uma relação 1:N (um para N).

Digamos que temos uma tabela para cadastro de faturas de uma empresa composta basicamente pelo nome do cliente, data de emissão, data de vencimento, serviços prestados, valor unitário e valor total. Bom, imagine que a quantidade de serviços prestados e o valor unitário de cada um deles são variáveis para cada fatura, ou seja, em uma fatura você pode ter um serviço apenas ou vinte serviços distintos, sendo assim, como lidar com isso no banco de dados? Criar uma quantidade máxima possível de serviços para uma fatura e criar essa quantidade de campos na tabela do banco? Algo como servico_1, servico_2, …, servico_N? Bom, se você cadastrar apenas um serviço haverão N-1 registros nulos na sua tabela, sendo algo extremamente lusitano, hehehe.

Resolvemos isso da seguinte forma, pegamos os campos que não possuem quantidades variáveis (nome do cliente, data de emissão, data de vencimento e valor total) e colocamos em uma primeira tabela e pegamos os campos que possuem quantidades variáveis (serviços prestados e valor unitário) e colocamos em uma segunda tabela. Neste caso, a primeira tabela será a tabela pai e a segunda tabela será a tabela filha, onde para cada tabela pai, posso ter várias tabelas filhas, ou seja, para cada fatura, posso ter vários serviços (e respectivos valores), por isso este é um exemplo 1:N. Visualmente, ficaria algo como ilustra a figura a seguir:

Tabelas de exemplo.

Tabelas de exemplo.

Podemos notar que a tabela fatura_servicos possui uma chave primária a mais (fatura_id), o que significa que, além da sua própria chave primária (id), ela possui outra coluna onde ficará registrado o id da tabela pai a que ela pertence. Sendo assim, se eu tiver uma fatura com o id “1”, todas as faturas_servicos que tiverem o valor “1” na coluna fatura_id, serão pertencentes à fatura “1”, ou seja, esta chave identifica a qual tabela pai ela pertence.

Na prática seria algo como:

Tabela fatura:

Field Type Null Key Default Extra
id int(10) unsigned NO PRI auto_increment
nome_cliente varchar(45) NO (null) (null) (null)
data_emissao datetime NO (null) (null) (null)
data_vencimento datetime NO (null) (null) (null)
valor_total float NO (null) (null) (null)

Tabela fatura_servicos:

Field Type Null Key Default Extra
id int(10) unsigned NO PRI auto_increment
servicos varchar(45) NO (null) (null) (null)
valor_unitario float NO (null) (null) (null)
fatura_id int(10) unsigned NO PRI (null) (null)

Realizamos uma inserção na tabela fatura através do comando:

INSERT INTO fatura (nome_cliente, data_emissao, data_vencimento, valor_total) VALUES (‘Rafael Puga’, ‘2009-01-01’, ‘2009-01-06’, ‘200,00’);

Pegamos o ID da ultima inserção feita no banco de dados e salvamos na variável @last;

SELECT @last := LAST_INSERT_ID();

 

Inserimos serviços na tabela “fatura_servicos”, registrando sua tabela pai com a variável @last:

INSERT INTO fatura_servicos (servicos, valor_unitario, fatura_id) VALUES (‘Manutencao de micro-computador’, ‘50,00’, @last);

 

INSERT INTO fatura_servicos (servicos, valor_unitario, fatura_id) VALUES (‘Manutencao de notebook’, ‘150,00’, @last);

 

Pronto, nossos dados foram inseridos no banco e já estão devidamente relacionados. Para constatar isso fazendo alguns SELECT’s:

SELECT * FROM fatura WHERE id=@last;

 

SELECT * FROM fatura_servicos WHERE fatura_id=@last;

 

Poderíamos usar um JOIN para relacionar os resultados de ambas as tabelas em apenas em uma consulta, porém não vou abordar isso no momento.

Como pôde ser visto, o uso de chaves estrangeiras é apenas um conceito que pode ser trabalhado sem necessidade de alguma configuração especifica na tabela, porém em alguns bancos de dados, como o MySQL, podemos dizer ao banco que aquilo é uma chave estrangeira, tendo como vantagem um controle maior do banco que vai ajudar a evitar inconsistência de dados. Por exemplo, neste caso, se criamos uma fatura e cadastramos três serviços nela e excluirmos a entrada na tabela registro (pai), teremos entradas órfãs em fatura_servicos, causando então a inconsistência de dados.

O que fazemos neste caso então é definir quem é a chave estrangeira para o banco de dados com a seguinte sintaxe:

[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, …)
REFERENCES tbl_name (index_col_name,…)
[ON DELETE
[ON UPDATE
reference_option:
RESTRICT | CASCADE | SET NULL | NO ACTION

É importante sabermos que o uso de FOREIGN KEYS só é suportado pelo engine InnoDB do MySQL (geralmente é usado o MyISAM por padrão, devendo ser explicitamente definido então). No caso dos bancos de dados utilizados aqui como exemplo, a criação das tabelas e chaves estrangeiras seria da seguinte forma:

— —————————————————–
— Tabela `mydb`.`fatura`
— —————————————————–
DROP TABLE IF EXISTS `mydb`.`fatura` ;
CREATE  TABLE IF NOT EXISTS `mydb`.`fatura` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`nome_cliente` VARCHAR(45) NOT NULL ,
`data_emissao` DATETIME NOT NULL ,
`data_vencimento` DATETIME NOT NULL ,
`valor_total` FLOAT NOT NULL ,
PRIMARY KEY (`id`) )
ENGINE = InnoDB;

——————————————————-
— Tabela `mydb`.`fatura_servicos`
— —————————————————–
DROP TABLE IF EXISTS `mydb`.`fatura_servicos` ;
CREATE  TABLE IF NOT EXISTS `mydb`.`fatura_servicos` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT ,
`servicos` VARCHAR(45) NOT NULL ,
`valor_unitario` FLOAT NOT NULL ,
`fatura_id` INT UNSIGNED NOT NULL ,
PRIMARY KEY (`id`, `fatura_id`) ,
INDEX `fk_fatura_servicos_fatura` (`fatura_id` ASC) ,
CONSTRAINT `fk_fatura_servicos_fatura`
FOREIGN KEY (`fatura_id` )
REFERENCES `mydb`.`fatura` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;

Note que no final das configurações dos campos da tabela, definimos o tipo no banco (InnoDB). Na tabela “fatura_servicos”, podemos ver a definição da chave estrangeira conforme a sintaxe padrão previamente comentada. Outra coisa importante de notarmos são as duas opções de ações no fim da criação “tabela_faturas”. Vemos as ações ON DELETE e ON UPDATE que podem ser configuradas com as opções RESTRICT, CASCADE, SET NULL, NO ACTION, que significam:

CASCADE: Se houver um DELETE da tabela pai, as tabelas filhas também serão deletadas, evitando inconsistência de dados. Se houver um UPDATE na chave primária da tabela pai, as chaves estrangeiras das tabelas filhas também serão atualizadas.

SET NULL: Caso uma a tabela pai seja deletada ou sua chave primária seja alterada, as tabelas filhas terão as suas chaves estrangeiras setadas para NULL (exceto quando forem criadas com o parâmetro NOT NULL).

NO ACTION: A tentativa de deletar ou atualizar uma tabela pai será ignorada caso ela tenha tabelas filhas.

RESTRICT: O mesmo que NO ACTION.

Apesar de a explicação ter sido baseada nas duas condições (DELETE e UPDATE), elas podem receber configurações individuais, como por exemplo, setar que ao deletar a ação será um CASCADE e ao atualizar um NO ACTION.

A partir de configurado, podemos usar normalmente as tabelas para fazer nossas query’s e mais tranquilos com a ajuda do próprio banco no gerenciamento dos relacionamentos. É basicamente isso, espero que seja útil a muitos!

Fontes:

http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html
http://dev.mysql.com/doc/refman/5.0/en/example-foreign-keys.html

———————

UPDATE 2014-04-14

Depois de alguns anos que fiz este post, recebi uma citação no blog do Jorge Ferrari referente a este post, com um estudo de caso onde ele prova a eficiência do uso de chaves estrangeiras em grandes queries. Vale a pena dar uma olhada, não somente no post Otimização de Banco de Dados, como também em todo o conteúdo do blog.

———————

Há uns tempos atrás, um amigo me indicou um site de relacionamentos parecido com o Orkut, porém que possui um fim mais interessante, o LiveMocha. O propósito deste site é fazer com que as pessoas aprendam novas línguas de forma colaborativa, ou seja, as pessoas se ajudam ensinando as línguas que falam nativamente ou fluentemente para os que desejam aprender.

Atualmente o site possui aulas das seguintes línguas: alemão, espanhol, francês, híndi, inglês, islandês, italiano, japonês, mandarim, português (Brasil) e russo. Infelizmente não possui a língua de meu interesse, o sueco, mas creio que em breve terá.

Para começar o seu curso, basta se inscrever no site e escolher as aulas desejadas, que são em forma de slides onde as pessoas aprendem os sustantivos, verbos, adjetivos etc. através de figuras (acho eu que isso seria uma técnica mnemônica) e depois disso, são feitos exercícios de escrita e pronúncia os quais seus amigos ao redor do mundo irão avaliar e opinar sobre seu desempenho.

Fica aí a dica, espero que seja útil a muitos😉

Recebi agora há pouco um e-mail muito bom da Naty (minha melhor amiga) e decidi postá-lo por ser algo bem presente no cotidiano de pessoas nerds como eu😉

Um especialista foi chamado para solucionar um problema com computador de
grande porte e altamente complexo… um computador que vale 12 milhões de
dólares.

Sentado em frente ao monitor, pressionou algumas teclas, balançou a cabeça,
murmurou algo para si mesmo e desligou o computador. Tirou uma chave de
fenda de seu bolso e deu volta e meia em um minúsculo parafuso. Então ligou
o computador e verificou que tudo estava funcionando perfeitamente.

O presidente da empresa se mostrou surpreendido e ofereceu pagar a conta no
mesmo instante.

– Quanto lhe devo? – perguntou.

– São mil dólares, por favor.

– Mil dólares? Mil dólares por alguns minutos de trabalho? Mil dólares por
apertar um parafuso? Eu sei que meu computador vale 12 Milhões de dólares,
mas mil dólares é um valor absurdo! Pagarei somente se recebo uma nota
fiscal com todos os detalhes que justifique tal valor.

O especialista balançou a cabeça e saiu. Na manhã seguinte, o presidente
recebeu a nota fiscal, leu com cuidado, balançou acabeça e saiu para pagá-la
no mesmo instante sem reclamar.

A nota fiscal dizia:

Serviços prestados:

Apertar um parafuso………………… $1,00.
Saber qual parafuso apertar………. $999,00.

PS: Não referencio o autor por não saber quem é. Thanks Naty:)

Recentemente resolvi testar o OpenSolaris, o sistema operacional livre da Sun Microsystems. Assim como o Ubuntu Linux (e derivados), existe um site de cadastro para que você peça o LiveCD gratuitamente e o receba em sua casa:) O meu demorou aproximadamente um mês e meio para chegar e apesar da demora, valeu a pena esperar.

O carregamento do sistema foi um tanto quanto lento, mas eu não poderia exigir muito, pois a minha máquina não é lá aquelas coisas:

Processador: Athlon XP 1700+
Placa-mãe: A7V8X-X
Memória: 768MB
Placa de vídeo: GeForce FX 5200

Depois de carregado, até que estava “bem rápido” e eu estava encantado com o artwork mais lindo que eu já vi para o Gnome. Mandei ele instalar no disco e abriu um instalador muito intuitivo que não me deu nenhuma dor de cabeça com as partições que eu já tinha.
Depois de instalado, estava eu esperando por um boot mais rápido, porém acabei sendo decepcionado, mas mais uma vez, depois de carregado o sistema ficou muito (agora sim) muito rápido😀

OpenSolaris Desktop

OpenSolaris Desktop

Comecei a fuçar pelo Gnome todo feliz, atrás de novas ferramentas e acabei me deparando com algo já conhecido, o NVidia X Server Settings, e fiquei surpreso pelo fato de o sistema ter reconhecido minha placa de vídeo e ter automaticamente configurado e subido o módulo correspondente, desenvolvido pela NVidia. Para muitos Winusers isso é normal, porém não é algo de se esperar de um sistema Unix-like, pois geeks adoram fazer essas coisas na unha😀

NVidia X Server Settings

NVidia X Server Settings

Voltando à minha busca por novas ferramentas, encontrei Device Driver Utility, que nada mais é que um “Gerenciador de dispositivos” que estamos habituados a ver no Window$. Para minha decepção ele não reconheceu três dispositivos: minha placa de som, minha placa de rede e uma porta de jogo(?). Não sei o que foi pior, ver que o sistema não reconheceu uma placa de som da Creative super simples, ou saber que a Internet estava fora do meu alcance😦 consequentemente dificultando a pesquisa e resolução de problemas.

Device Driver Utility

Device Driver Utility

Brincando mais um pouco com o sistema, fui tentar abrir um video que estava no meu pendrive (que foi reconhecido e montado automaticamente) e novamente mais uma decepção: o sistema não vem com nenhum codec para MPEG e sem Internet para instalá-lo, fiquei chupando o dedo:/

Totem

Totem

Finalmente, para minha alegria, me deparei com o compiz no menu do Gnome e, como sempre, não esperava que fosse funcionar tão fácil, bastou mandar ativar e pronto! Lá estava eu utilizando o OpenSolaris com todos os efeitos 3D que estamos cansados de ver no Linux, mas que sempre é extasiante vê-lo rodando e brincar um pouco😀

Compiz

Compiz

Compiz

Compiz

Infelizmente, não pude tirar maiores conclusões, explorar e estudar mais, pois sem Internet para pesquisar como resolver os problemas, como usar ou até mesmo como fazer surgir problemas (para todo bom nerd), fica dificil ser feliz😛

Minha próxima meta é instalar o sistema no meu computador da empresa, pois já rodei o sistema na máquina e reconheceu todos os dispositivos e subiu seus respectivos módulos, ou seja, terei a Internet e o MUNDO disponíveis😀 e com isso vou atrás de maiores informações para explorar melhor o sistema e poder usá-lo por um longo periodo, analisando a usabilidade do mesmo.

Site oficial do sistema: http://www.opensolaris.org/os/

Bom, venho em meu primeiro post falar sobre um problema que muitas pessoas passam por falta de experiência e excesso de confiança. Recentemente, alguns amigos estavam interessados em comprar notebooks e foram atrás de alternativas mais baratas do que lojas. Um deles tinha o contato, havia alguns anos, do MSN de um rapaz que supostamente possuia um comércio eletrônico, pelo qual a compra sairia em um preço mais em conta devido ao fato de trazerem o produto diretamente do Paraguai. Muitas pessoas fazem compras assim sem problema algum, porém através de pessoas as quais já possuem alguma confiança maior por algum motivo (uma compra de um amigo, por exemplo). O que houve foi que acabaram efetuando a compra, depositaram o dinheiro antecipadamente e acabaram não recebendo o produto. Depois de perceber que havia sido um golpe, pesquisaram melhor na Internet sobre esta empresa e acabaram descobrindo que não foram os únicos prejudicados.

Bom, essa é a estória bem resumida e a conto para chegar no seguinte ponto, antes de efetuar qualquer compra desse gênero:

  • Procure pesquisar na Internet sobre a empresa;
  • verifique pelos mecanismos de buscas se o endereço bate com o especificado;
  • verifique se a linha telefônica é válida, pois atualmente é muito fácil conseguir uma conta VoIP, de forma a dificultar a rastreabilidade da empresa;
  • verifique nos orgãos de defesa ao consumidor se não há alguma queixa contra a empresa.

Estes são alguns meios de evitar que esse tipo de fraude ocorra.

O endereço da empresa citada neste post é http://www.foxcompy.com/, estou divulgando-o para que as pessoas evitem fazer compras por ele.

Outra coisa importante de se divulgar, é a Cartilha de Segurança para Internet do CERT (Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil), que não fala especificamente sobre isso, mas sim sobre várias fraudes cometidas com o uso da Internet. O endereço da Cartilha é http://cartilha.cert.br/, vale a pena dar uma lida😉

Att,

Rafael Puga

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.