Posts Tagged “ubuntu”

Seguindo a idéia do post anterior sobre C, hoje abordaremos a compilação de programas em Pascal no Linux. Os códigos em Pascal são compilados com o GPC, o Compilador de Pascal da GNU, um primo do GCC. Para instalá-lo no Ubuntu, clique aqui ou entre com o seguinte comando num terminal: sudo apt-get install build-essential gpc

Veja um exemplo de programa em Pascal, o clássico “Olá Mundo”:

program olamundo;
begin
	writeln('Olá mundo');
end.

Salvando como olamundo.pas, compila-se com: gpc -o olamundo olamundo.pas, e executamos o binário gerado com ./olamundo.

Muitos cursos de Pascal são focados na utilização do Borland Pascal ou DevPascal do Windows, que já vem com algumas bibliotecas que por padrão não vêm junto do gpc. Por exemplo, se o seu programa usa a biblioteca “crt” e, ao compilar, você obtém a seguinte mensagem:

programa.pas:2: erro: module/unit interface `crt' could not be imported

isto acontece porque a biblioteca que trabalha com interfaces de terminal, a CRT, não está instalada. Instale-a com sudo apt-get install libncurses2-dev e compile com a flag --automake (gpc --automake -o programa programa.pas).

Tags: , , , ,

Comments Nenhum comentário »

Este passo a passo é uma atualização do meu post anterior Fone de ouvido bluetooth no Ubuntu e Amarok. Antes da utilização do PulseAudio (que vem instalado por padrão no Ubuntu 8.04 Hardy), era necessário configurar cada aplicativo para a utilização com um fone bluetooth. Agora, configuramos apenas para funcionar com o PulseAudio e todos os aplicativos que trabalham com ele (o Amarok também!) podem rotear o som para fone. Assim, o guia anterior torna-se obsoleto, embora aquela maneira ainda funcione.

  1. Este passo a passo parte do princípio que o PulseAudio está funcionando completamente, o que não acontece na instalação padrão do Ubuntu. Siga o passo a passo do link: Ubuntu Forums - HOWTO: PulseAudio Fixes & System-Wide Equalizer Support (Hardy Heron).
  2. Descubra o MAC Address do seu fone bluetooth, colocando-o no modo discovery e entrando o seguinte comando num terminal (Aplicações > Acessórios > Terminal ou Console): hcitool scan. Anote-o ou copie-o para algum lugar.
  3. Crie ou edite o arquivo /etc/default/hcid.conf (sudo gedit /etc/default/hcid.conf) e adicione as seguintes linhas, trocando os XX pelo MAC Address do seu fone, o nome pelo nome do fone (opcional) e o passkey (senha) caso seja diferente de 0000:
    device XX:XX:XX:XX:XX:XX {
    	name "Nome do seu fone bluetooth";
    	auth enable;
    	lm master;
    	passkey "0000";
    }
  4. Agora configuramos o perfil do ALSA. O nome pcm.bluetooth pode ser substituído por pcm.qualquercoisa, desde que seja o mesmo em todos os arquivos de configuração. No meu computador, coloquei pcm.nokiabh501:
    pcm.bluetooth {
    	type bluetooth
    	device XX:XX:XX:XX:XX:XX
    	profile "hifi"
    }
  5. Para realizar o pareamento, vamos iniciar manualmente uma conexão bluetooth para gravar a senha. Instale o mplayer (sudo apt-get install mplayer) e abra um arquivo (se você mudou o pcm.bluetooth, mude também o device=bluetooth): mplayer -ao alsa:device=bluetooth algum-arquivo.mp3. Uma janelinha de autenticação do bluetooth irá aparecer, insira a senha (geralmente 0000) e pronto, o pareamento agora será realizado de forma automática.
  6. Agora vamos carregar os módulos bluetooth do PulseAudio. Edite o arquivo ~/.pulse/default.pa (gedit ~/.pulse/default.pa) e adicione as seguintes linhas (novamente, altere o device caso tenha alterado-o nos passos anteriores):
    # Load Bluetooth
    load-module module-alsa-sink device=bluetooth
    load-module module-alsa-source device=bluetooth
    

    Para não ter de reiniciar o computador, vamos carregar os módulos agora, entrando os seguintes comandos no terminal:

    pactl load-module module-alsa-sink device=bluetooth
    pactl load-module module-alsa-source device=bluetooth
    
  7. Agora basta abrir o Controle de Volume do PulseAudio (com o comando pavucontrol ou indo em Aplicações > Som & Vídeo > PulseAudio Device Chooser, clicando no ícone que se abriu ao lado do relógio e escolhendo Volume Control), abrir uma fonte qualquer de áudio (o Amarok por exemplo), clicar com o botão direito e escolher que quer que o som saia através do bluetooth.

Fonte: Sharpee’s Space - Bluetooth Stereo Headset A2DP Pairing in Ubuntu 8.04 Hardy

Tags: , , , ,

Comments Nenhum comentário »

Para quem quer começar a aprender a criar seus próprios programas no computador, uma das opções é a clássica linguagem C. Não entrarei no mérito de qual linguagem é melhor, ou aonde você poderá encontrar os melhores guias, tutoriais ou livros. Tenho aqui os slides das aulas em duas partes: TP1 Parte 1 (odp, pdf, ppt) e Parte 2 (odp, pdf, ppt). Os códigos abaixo são de minha autoria e livres para qualquer uso.

Você poderá criar seus programas em qualquer editor de texto simples (o gedit e o Kate são boas opções, pois já incluem destaque de sintaxe, isto é, o código fica colorido como os exemplos abaixo). Eu prefiro o Kate pois ele já inclui um terminal incluso:

Para compilar os seus programas, você precisará de um compilador; usaremos o compilador C da GNU, o GCC. Para instalá-lo no Ubuntu, clique aqui ou entre com o seguinte comando num terminal: sudo apt-get install build-essential.

A estrutura básica de um programa em C é a seguinte (código fonte, binário i386):

#include<stdio.h>
 
int main() {
	return 0;
}

Vejamos um Olá Mundo (código fonte, binário i386):

#include<stdio.h>
 
int main() {
	printf("Olá Mundo\n");
	return 0;
}

Salvando o arquivo como olamundo.c, podemos compilá-lo com gcc -o olamundo olamundo.c e depois executá-lo com ./olamundo.

Segue alguns exemplos de códigos que fiz enquanto revisava a matéria:

Conversor de centímetros para pés e polegadas (código fonte, binário i386):

#include<stdio.h>
/* Ilustra printfs e defines. */
 
#define FT 30.48
#define POL 2.54
 
int main() {
	int f;
	float p, h;
 
	printf("Entre com a sua altura em centímetros: ");
	scanf("%f", &h);
 
	f = (int) (h / FT);
	p = (h - f * FT) / POL;
 
	printf("Sua altura é: %dft %.1fpol\n", f, p);
	return 0;
}

Fatorial (código fonte, binário i386):

#include<stdio.h>
/* Calcula fatorial, ilustrando o uso de for. */
 
int main() {
	int n, f, i;
 
	do {
		printf("Entre com um número inteiro positivo: ");
		scanf("%d", &n);
	} while (n<0);
 
	for(f=n, i=f-1; i>0; i--) f *= i;
 
	printf("%d! = %d\n", n, f);
	return 0;
}

Seqüência de números pares (código fonte, binário i386):

#include<stdio.h>
/* Exemplifica o uso de continue dentro de um loop. */
 
int main() {
	int n, i;
 
	do {
		printf("Entre com um número inteiro positivo: ");
		scanf("%d", &n);
	} while (n<0);
 
	printf("De 0 a %d os números pares são:", n);
	for (i=0; i<=n; i++) {
		if (i%2 == 1) continue;
		printf(" %d", i);
	}
	printf(".\n");
	return 0;
}

Calculadora simples (código fonte, binário i386):

#include<stdio.h>
/* Exemplifica o uso do switch. */
int main() {
	int n1, n2;
	char op;
 
	printf("Entre com uma conta no formato \"número operador número\" (n [=-*/] n): ");
	scanf("%d %c %d", &n1, &op, &n2);
 
	switch (op) {
		case '+': printf("%d %c %d = %d\n", n1, op, n2, n1+n2); break;
		case '-': printf("%d %c %d = %d\n", n1, op, n2, n1-n2); break;
		case '*': printf("%d %c %d = %d\n", n1, op, n2, n1*n2); break;
		case '/': printf("%d %c %d = %f\n", n1, op, n2, ((float)n1/(float)n2)); break;
		default:
			printf(" Operador Inválido!\n");
		break;
	}
 
	return 0;
}
Tags: , , , ,

Comments 1 comentário »

UPnP ou Universal Plug and Play é uma tecnologia criada para conectar ponto-a-ponto dispositivos diversos sobre redes locais (com ou sem fio) e fazer roteamento de portas e NAT (Network Address Translation) de forma automática, para que softwares que utilizem portas não-padrões (como BitTorrent, jogos etc.) possam ter as portas roteadas sem a necessidade da configuração manual na interface web do roteador. Com o UPnP, é possível também ter um computador ou disco rígido NAS (Network-attached Storage) com músicas e vídeos e tocá-los em dispositivos como outros computadores, videogames, celulares e sistemas de som e vídeo que suportem a tecnologia. Para mais detalhes, veja o artigo na Wikipédia.

Hoje, veremos como utilizar um computador rodando Ubuntu como servidor UPnP (isto é, o dispositivo que serve os arquivos à serem tocados) e cliente UPnP (isto é, o dispositivo que toca os arquivos guardados remotamente). As duas configurações são independentes.

Antes de mais nada, é necessário ativar o UPnP no roteador, já que nem sempre ele estará ativado por padrão. Para isto, basta acessar o roteador pela interface web (geralmente, através do endereço 192.168.1.1 ou similar) e conferir se ele está ativado.

Utilizando o Ubuntu como servidor UPnP

Utilizando o computador como servidor UPnP, é possível tocar músicas e vídeos em outros dispositivos que sejam clientes UPnP, tais como: outros computadores (após configuração), Playstation 3, Xbox 360, Nokia N95 etc.

Existem diversos programas servidores UPnP. Algumas opções (da mais simples para a mais completa) são: gmediaserver, ushare e mediatomb.

Primeiro, criaremos uma pasta de compartilhamento. Os programas podem compartilhar apenas uma pasta, então caso queiramos compartilhar mais de uma pasta (por exemplo, músicas e vídeos) o ideal é criar um link para estas pastas ao invés de compartilhar a que contém tudo (por exemplo, a pasta pessoal), o que poderia ser um risco de segurança já que o UPnP daria acesso a seus arquivos a qualquer um que se conecte na rede local. Então vamos lá, abra um terminal (Aplicações > Acessórios > Terminal (ou Consola) e entre com os seguintes passos:

  • mkdir MidiaCompartilhada - utilize o nome que quiser, preferencialmente sem espaços para facilitar a configuração;
  • cd MidiaCompartilhada - entre na pasta criada;
  • ln -s ../Música . - aqui, criamos o link da pasta /home/usuario/Música para a pasta /home/usuario/MidiaCompartilhada/Música. Faça o mesmo para a pasta Vídeos ou para HDs externos, por exemplo: ln -s /media/disk/Músicas MusicasDoHdExterno.
  • sudo apt-get install ushare - instalando o GeeXboX uShare, software que compartilha os arquivos via UPnP
  • sudo dpkg-reconfigure ushare - agora vamos a configuração dele:
  • O primeiro passo é definir o nome do compartilhamento, eu escolhi “Nighto”;
  • Passo seguinte, a escolha da interface: você pode escolher se quer compartilhar pela placa de rede com fios (eth0) ou pela rede sem fio (geralmente eth1, ath0, ra0 ou wlan0, dependendo do modelo. Para saber qual é o seu caso, abra um outro terminal e entre o comando ifconfig). No meu caso, como estou utilizando o laptop que é sempre utilizado na rede sem fio, escolhi a opção correspondente, wlan0;
  • Agora escolhemos a pasta compartilhada, no meu caso, /home/nighto/MidiaCompartilhada;
  • Starting uShare UPnP A/V & DLNA Media Server: ushare. É isso aí!

Agora que temos um servidor UPnP rodando na rede, podemos ativar os clientes. Não tenho (ainda! :)) um PlayStation 3 nem um Xbox 360, mas a configuração no N95 é assim: Ferramentas, Conectividade, Mídia local, Procurar rede local.

Para quem se interessar, no Windows XP é assim (pode ser necessário ter em mãos o CD de instalação do mesmo):

  1. Iniciar > [Configurações] > Painel de Controle;
  2. Adicionar ou remover programas;
  3. Adicionar/remover componentes do Windows;
  4. Clique em Serviços de Rede (no nome, não na caixa) e clique no botão Detalhes;
  5. Marque a caixa Interface de Usuário Plug and Play Universal e clique em OK.
  6. Clique em Avançar e depois em Concluir.

Agora, ele pode ser acessado através do ícone “Meus locais de rede”.

Utilizando o Ubuntu como cliente UPnP

Já o caminho inverso, a utilização do Ubuntu como cliente UPnP, também é possível, montando o compartilhamento UPnP como um sistema de arquivos utilizando o programa djmount.

O procedimento é o seguinte:

  • sudo mkdir /media/upnp ; sudo chmod 777 /media/upnp - Criamos uma pasta para montar o UPnP, isto é, onde os arquivos serão acessados;
  • wget http://circodigital.org.br/repositorio/hardy32/djmount_0.71-1_i386.deb ; sudo dpkg -i djmount_0.71-1_i386.deb ; rm djmount_0.71-1_i386.deb - Baixamos e instalamos o pacote do djmount. Caso você execute a versão 64 bits, terá de compilar o pacote.
  • sudo modprobe -l -t /media/upnp fuse ; sudo djmount /media/upnp - Montamos a pasta. Se quiser que isso aconteça automaticamente, vá em Sistema > Preferências > Sessões e Adicione um ítem UPnP DjMount com o comando sleep 20 && modprobe -l -t /media/upnp fuse && djmount /media/upnp

Agora podemos acessar o conteúdo de servidores UPnP no Ubuntu, bastando abrir a pasta /media/upnp. No N95, para servir os arquivos, vá na opção Ferramentas, Conectividade, Mídia local e escolha os ítens que quer compartilhar.

Referências:

Tags: , , , , , , , , ,

Comments Nenhum comentário »

Nessa semana, dei palestras sobre Linux para os alunos da Escola Técnica do Arsenal da Marinha (ETAM). O que é software livre, sua história, mostrando uma distribuição (no caso, o Ubuntu), essas coisas.

O combinado era que tivesse Internet no local, mas a rede era uma bizarra combinação de IP estático, Proxies e Rede Novell, então não consegui conectar na rede deles.

O que “salvou a pátria” foi o JoikuSpot, aplicativo para celulares Symbian que possuam wifi que transforma o aparelho num hotspot, isto é, roteia a conexão EDGE ou 3G para quaisquer outros aparelhos que utilizem rede wifi.
Ele permite que você entre na Internet com dispositivos que tenham wifi mas não 3G (como tablets N8×0, PSP, iPod Touch ou iPhone 1a geração) utilizando o fluxo de dados do celular.
O funcionamento é muito simples. Você instala o programa, dá um nome para a rede, escolhe se quiser uma encriptação WEP ou WPA (para terceiros não utilizarem a sua rede) e pronto.

O JoikuSpot pode ser também uma alternativa para utilização com notebooks, como fiz. Não dá para utilizá-lo por muito tempo, pois ele drena a bateria, mas pode ser uma alternativa aos modems 3G USB, já que hipoteticamente a bateria do notebook duraria menos do que a bateria do celular (ou seja, carregando os dois ao mesmo tempo, poderia-se utilizar por períodos indeterminados).

E sobre as bicicletas? Vários trabalhadores na ilha se deslocando com o veículo mais energeticamente eficiente e que não polui, já que a ilha é enorme. Legal, né?

Obviamente, fui para lá de bicicleta. Lá chegando, soube que não, não poderia entrar com ela. Não há bicicletário, e não pode prender nos postes do lado de fora (!). Não, não há exceções para palestrantes, que estão fazendo um favor à “hora do Brasil”. Naturalmente, não estava disposto a deixar minha bicicletinha na rua longe do Distrito Naval, pois a chance de perdê-la seria considerável. Quando estava quase me dirigindo ao Estacionamento Subterrâneo da Cinelândia, veio a solução mais simples, embora longe do ideal - para entrar na ilha, dobrei a bicicleta e deixei a no veículo grande, pesado e poluente do Sargento que me pediu as palestras.

Quanto ao assunto da palestra, o papo foi esse:

  • Contando um pouco de história: do ENIAC aos mainframes rodando UNIX na década de 70; salto para os IBM PC na década de 80
  • O que é esse tal de Linux? O Projeto GNU, kernel Linux, explosão com Internet. Idéia de distribuição Linux associada a um conjunto de peças Lego.
  • Idéia de software livre. Associação com o Firefox. Software livre não é gratuito, comparar com o Internet Explorer.
  • Ubuntu. Apresentação do ambiente GNOME, comparando com o Windows. Mostrar alguns programas, como o BrOffice.org e o GIMP.
  • Apresentar a interface do Ubuntu. Momento “Oh!” com compiz ativado etc.
  • Mas e os meus programas de Windows, como o AutoCAD? Apresentar o Wine e o VirtualBox.
  • Dúvidas?
Tags: , , , , , ,

Comments Nenhum comentário »