ICC e Ifort: option ‘-cxxlib-gcc’ not supported

Julho 15, 2009 por Vinícius Alves Hax

Quando eu chamava ou o ifort ou o icc, mesmo sem passar como parâmetro ‘-cxxlib-gcc’ o seguinte erro era mostrado:

“icc: error #10149: option ‘-cxxlib-gcc’ not supported with the current installed GCC” (no caso do icc)

A causa do problema era simples: o g++ não estava instalado.

Então se você está tendo esse problema mesmo sem passar esse parâmetro verifique se o gcc e o g++ estão instalados. Também li uma dica dizendo para verificar se o gcc e o g++ estavam na mesma versão.

Para saber isso, digitem:

$ gcc –version

$ g++ –version

A primeira linha dos comandos devem retornar algo semelhante à:

“gcc (GCC) 4.1.2 20071124″ e “g++ (GCC) 4.1.2 20071124″. Note que a versão (4.1.2) é a mesma.

Link para vários elementos em Rails

Julho 11, 2009 por Vinícius Alves Hax

Fui olhar na API do Rails como se fazia um link para vários elementos, e vi que simplesmente é possível fazer:

<% link_to(@profile) do %>
<%= @profile.name %>
<% end %>

Estranhamente, tentava usar dessa maneira em uma aplicação usando Rails 2.1 e não consegui, até que achei o link do Blog do Rails que falava que a alteração foi feita em uma versão posterior do Rails 2.1.
Embora haja várias implementações dessa funcionalidade reescrevendo o helper, preferi atualizar para o Rails 2.3 mesmo para ficar atualizado em relação a versão mais estável do framework.

Aproveito e deixo o conselho de programar em Rails sempre com uma aba do navegador aberta na API. Ajuda bastante na hora de se lembrar métodos e parâmetros.

Dica: Descobrindo computadores ligados na rede local

Março 19, 2009 por Vinícius Alves Hax

Um programa útil para isso e para outros objetivos é o nmap.

Utilizando a opção -sP podemos descobrir informações sobre quais os computadores ligados na rede local.

Por exemplo, para o meu endereço de broadcast que é 192.168.2.255:

$ nmap -sP 192.168.2.*

Vai retornar os hosts que estão ligados e quantos estão ligados.

A saída é a seguinte:

Starting Nmap 4.53 ( http://insecure.org ) at 2009-03-19 10:51 BRT
Host 192.168.2.1 appears to be up.
Host 192.168.2.5 appears to be up.
Host 192.168.2.6 appears to be up.
Host 192.168.2.20 appears to be up.
Nmap done: 256 IP addresses (4 hosts up) scanned in 0.864 seconds

Onde podemos ver quais computadores estão ligados e seus ips.

Fonte: Under-linux

Bug #1 para o Ubuntu resolver

Fevereiro 27, 2009 por Vinícius Alves Hax

Ainda não tinha visto isso:
https://bugs.launchpad.net/ubuntu/+bug/1/+viewstatus

Realmente, esse é um bug difícil de resolver, mas eu acredito neles ;D

Dica: Encerrando um programa sem encerrar suas threads

Fevereiro 12, 2009 por Vinícius Alves Hax

Normalmente ao usar a biblioteca Pthreads quando a execução de um programa encerra, também encerram as threads que o programa estava executando.
Para evitar esse comportamento pode-se sair da main() utilizando a rotina pthread_exit(). Quando a rotina for chamada a “main” vai encerrar, mas as threads continuarão rodando até encerrarem sua execução.

Fonte: POSIX Threads Programming

Glossário: Linguagem de programação

Fevereiro 10, 2009 por Vinícius Alves Hax

Iniciando a seção glossário, onde irei falar sobre termos da computação para pessoas leigas.

Ou seja, computação para quem não estuda computação.

Um dos primeiros e mais frequentes termos é o de linguagem de programação.

Como todos sabemos, o computador não passa de um objeto inanimado, sem inteligência. Isso pode parecer incrível, ao ver o grande número de tarefas que o computador desenvolve: controle de processos industriais, cálculo de trajetórias de ônibus espaciais, simulações de tempestades, enfim, tarefas que são impossíveis para algumas pessoas, ou que na maioria das vezes levariam anos para serem feitas por um ser humano.

Então, qual é a resposta para este aparente impasse? A resposta, é que tudo que o computador faz, é obedecer ordens (ao menos na maioria do tempo) pré-estabelecidas por alguém. Por exemplo, a cada link que você clica na internet existe um computador que algum dia recebeu a ordem “quando alguém clicar nesse link, vá para algum determinado lugar”.

Essas ordens são expressas em um tipo especial de linguagem, a linguagem de programação, que então tem por função estabelecer uma comunicação entre o homem e o computador.

Mas assim como existem mais de uma linguagem falada (português, inglês, alemão, russo), existe mais de uma linguagem de programação, existem centenas na verdade, uma listagem pode ser vista em http://pt.wikipedia.org/wiki/Anexo:Lista_de_linguagens_de_programação.

Devido ao grande número de linguagens de programação existentes, elas possuem muitas diferenças entre si, mas na maioria das vezes são um subconjunto do inglês associado com alguns símbolos especiais (:,;.,{,},etc) que de acordo com a ordem em que aparecem tem um significado diferente para o computador.

Uma curiosidade sobre as linguagens de programação é que a primeira pessoa a programar um computador (isto é, escrever ordens em uma linguagem de programação) foi uma mulher: Ada Lovelace. Em sua homenagem foi criada uma linguagem de programação que leva o seu nome Ada.