artigo

12 mar 2013

Qual a sua anestesia?

Submitted by bardo

Hoje todos nós vivemos sob controle, escravos de um sistema terrível. Um sistema que gira em torno de lucros cada vez maiores e que nos obriga cada vez mais a participar de uma corrida desenfreada por nada. Custo de vida aumentando cada vez mais. Pessoas que sempre viveram da natureza veem suas terras sendo destruídas e se veem obrigados a trabalhar em indústrias. Leis cada vez mais rígidas para manter lucros de grandes empresas e cada vez menos eficazes para o bem estar social.

Quem governa o mundo não é o Legislativo, nem o Executivo, nem o Judiciário: é o Lucro.

Nada disso é novidade e nada disso é facilmente contornável. Nada bom. Como confrontar poderes econômicos? Que outros poderes podem ser fortes o bastante e ainda não foram corrompidos pelo poder? Séculos atrás o controle era feito pela Religião. Hoje, quando a Religião não é tão eficaz assim, o controle é feito pela fé no Lucro.

Mergulhar nesse mundo nos traz cada vez mais revelações terríveis. Que seria possível acabar a Fome no mundo se “eles” quisessem. Que 1% da população mundial detinha 40% de todos os recursos do mundo. Que 11 de setembro foi uma farsa. Que os governos não são democráticos: são executores a serviço de quem tem o “verdadeiro poder que move o mundo”.

Por isso há tantas formas de alienação:

  • Religiões alienantes têm se expandido assustadoramente nas últimas décadas, e giram em torno de Dinheiro

  • Profissões exigem cada vez mais especialização e a cada passo em uma especialização temos forte chance de perder a percepção do todo. Além disso, as exigências do mercado roubam nosso tempo e nos impedem de pensar, exigindo foco em nossas carreiras.

  • Livros são substituídos por filmes

  • A Televisão se torna o novo Livro Sagrado dessa religião monetária. Pessoas não pensam nem leem, simplesmente aceitam o que veem no quadro mágico.

  • Consumo e comércio de drogas crescem assustadoramente mundo afora e os governos não parecem muito interessados em combater isso.

  • A Indústria do Entretenimento cresce cada vez mais. Jogos eletrônicos pela Internet, nos celulares...

Quantos já falaram sobre isso? Quantas pistas? Matrix, por exemplo, foi das mais explícitas, mas as pessoas não conseguem mais enxergar nada além de efeitos especiais. Nada além de sombras. Estamos caindo em um abismo, numa viagem irreversível.

Ver os males do mundo e perceber todas essas coisas fere os nossos olhos. Qual a sua anestesia?

P. S.: Imagem do post: Xeringues, de rofi

Special: 
28 fev 2013

Foi necessário instalar um software em um dos computadores daqui da instituição. O problema: o Windows Vista e as dependências OCX.

De início, a instalação funcionou corretamente, mas apenas no usuário Administrador. Ao executar como usuário sem privilégios, o programa reclamava do registro de uma biblioteca OCX. Tentei várias soluções e cheguei finalmente à resposta. Para resolver essa dependência, pelo menos o que funcionou comigo, basta:

  1. Copiar o arquivo OCX da pasta Windows\System32 para a pasta do programa que está tentando executar
  2. Desregistrar o OCX com o comando regsvr32 /u ARQUIVO.OCX
  3. Abrir o programa como administrador

Ao fazer isso, o programa continuou sem funcionar como usuário normal, mas pedia outra dependência OCX. Assim, bastou repetir esse procedimento para cada OCX que ele pediu e chegou um momento em que o programa simplesmente funcionou!

Bibliotecas são uma coisa muito boa, mas têm suas desvantagens. Por isso é tão bom viver sob um Sistema Operacional com um controle de dependências eficiente e prático como Debian e derivados. :-)

Special: 
26 fev 2013

Quem é usuário avançado de computadores (administradores de sistemas, analistas, programadores esporádicos) sempre precisam de um bom editor de código-fonte. Bom e simples, leve e funcional. Quem programa profissionalmente certamente preferirá IDEs, mas mesmo entre esses ainda há quem aprecie um editor menos carregado.

Por isso o CyanPack inclui um editor de textos simples, voltado para código-fonte. Já houve época em que incluiu até mais de um. Hoje o software que atende a essa função é o Geany.

Geany em ação

Segundo o site do projeto, Geany é uma IDE pequena e leve, desenvolvida para ser rápida, tendo pouca dependência de outros pacotes. Outro objetivo é ser tão independente quanto possível de um ambiente Desktop como o KDE ou GNOME, sendo feita com uso apenas das bibliotecas GTK2 padrão.

Mesmo assim, ainda consegue apresentar características muito interessantes:

  • Destaque sintático
  • Ocultar/exibir blocos de código
  • Autocompletar de palavras-chave
  • Autofechamento de tags HTML e XML
  • Suporte às linguagens: Abc, ActionScript, Ada, ASM, C, C#, C++, CAML, CMake, Conf, CSS, D, Diff, Docbook, F77, Ferite, Fortran, FreeBasic, GLSL, Genie, HTML, Haskell, Haxe, Java, Javascript, LaTeX, Lua, Make, Markdown, Matlab, NSIS, Pascal, Perl, PHP, Po, Python, R, reStructuredText, Ruby, Sh, SQL, Tcl, Txt2tags, Vala, Verilog, VHDL, XML e YAML
  • Lista de símbolos
  • Navegador de código
  • Sistema de compilação e execução do código
  • Gerenciamento simples de projeto
  • Emulador de terminal embutido
  • Plugins
  • Traduzido para vários idiomas (incluindo Português)
  • Versões para Linux, FreeBSD, NetBSD, OpenBSD, MacOS X, AIX 5.3, Solaris Express e Windows (e provavelmente qualquer plataforma que disponha de um compilador C e suporte as bibliotecas GTK)
  • Escrito em C, lançado sob a licença GNU GPL

Geany está no CyanPack tanto na forma de um instalador para Windows, como fazendo parte do Trisquel personalizado que vem no DVD (no menu Desenvolvimento). É, pelo jeito o Geany não é só um "editor simples de código-fonte", mas não deixa de ser bem útil e leve!

Special: 
15 fev 2013

Ovos de cobra

Se você não tem nada a ver com programação, nem tem interesse no assunto, simplesmente ignore este artigo.


Mike Driscoll tem um blog dedicado a Python chamado The Mouse vs. the Python e eventualmente há excelentes artigos por lá.
Esta é uma tradução livre do artigo Python 101: esay_install or how to create eggs e modifiquei sutilmente algumas coisas, incluindo os exemplos. Agradeço ao Mike pelos excelentes artigos e me desculpo pelas liberdades que tomei na tradução (incluindo a mudança no nome do artigo). Vamos lá então!


Hoje daremos uma olhada no controverso método easy_install de instalar módulos e pacotes Python. Também aprenderemos como criar nossos próprios arquivos *.egg. Você precisará do pacote Setup Tools para fazer isso tudo. Esse pacote não suporta Python 3.x, assim se você precisar dessa versão do Python, veja pip. Haverá artigos desses projetos no futuro. Por ora, começaremos com o SetupTools e o easy_install.

Por que é controverso? Não estou de todo certo, mas as pessoas não parecem felizes com a forma como se pacotes instalam pela metade quando elas não esperam o download terminar. Pra completar, o autor não parece lá muito interessado em atualizar o pacote ou permitir que alguém o faça. Veja o artigo de Ziade no fim deste post.

SetupTools é o método principal e original de baixar e instalar pacotes Python pelo PyPI e outras fontes via linha de comando, tipo um apt-get para Python. Quando você instala o SetupTools, ele instala um script ou executável chamado easy_install, que você invocará na linha de comando para instalar ou atualizar pacotes. Ele também fornece uma forma de criar ovos de Python. Vamos gastar mais um tempinho para entender melhor essa funcionalidade.

Usando easy_install para instalar Pacotes

Uma vez que você tenha SetupTools instalado, você deve tê-lo no seu caminho. Isso quer dizer que você tem que estar pronto para abrir um terminal (Linux) ou linha de comando (Windows) e simplesmente executar easy_install. Um exemplo de invocação:

easy_install sqlalchemy

Isso pedirá ao PyPI que tente baixar o SQLAlchemy mais recente do repositório dele ou de qualquer outro para o qual o pacote PyPI aponte. O easy_install o instalará. Um

Um problema comumente criticado do easy_install é que ele pode tentar instalar o pacote antes mesmo de concluir seu download, o que leva a problemas e instalações defeituosas. O legla é que se você configurar corretamente o seu setup.py, o easy_install vai baixar também todas as dependências necessárias, instalando-as também. Assim, se você instalar algo complexo, como o TurboGears, você verá o easy_install instalar um bocado de pacotes. Essa é uma razão pela qual você pode querer usar virtualenv para ter certeza de que gosta de todos esses pacotes e de que eles funcionam a contento. Se não funcionarem, você simplesmente apaga a pasta virtualenv. De outro modo, você terá que ir na sua própria pasta do Python e cavar por ali para tentar "desinstalar" (ou seja, deletar pastas) por sua conta. A outra coisa legal que o easy_install faz quando instala os ovos é que ele adiciona o ovo a um arquivo easy_install.pth em site-packages, de modo que quando você o desinstalar, precise editar esse arquivo também. Felizmente, você pode usar pip para desinstalá-lo se você não tiver criado as pastas sozinho. Há um comando -uninstall (-u), mas eu já ouvi relatos contraditórios sobre seu funcionamento.

Você pode instalar um pacote passando uma url diretamente ao easy_install. Outro recurso maneiro é que você pode dizer ao easy_install qual versão você quer e ele tentará instalá-la. Finalmente, easy_install pode instalar tanto a partir de arquivos de código-fonte quanto de ovos (arquivos .egg). Para uma lista completa dos comandos, você deve ler a documentação.

Criando um ovo

Um arquivo egg é um formato de distribuição para pacotes Python. É uma alternativa à distribuição de fontes ou executáveis do Windows, mas perceba que módulos em Python puro são multiplatafroma! Daremos uma olhada em como criar nosso próprio ovo usando o pacote que criamos no tutorial sobre criação de módulos (que ainda não traduzi :-( ). Crie uma nova pasta e coloque a pasta mymath dentro dela. Crie um arquivo setup.py no diretório pai do mymath com o seguinte conteúdo:

from setuptools import setup, find_packages
 
setup(
    name = "mymath",
    version = "0.1",
    packages = find_packages()
    )

Perceba que ao invés de usar a função setup do distutils, usamos o setup do setuptools. Também usamos a função find_packages do setuptoos, que procurará automaticamente por pacotes no diretório corrente e os adicionará ao ovo. Para criar o tal do ovo, você só precisa digitar essa linha de comando:

python setup.py bdist_egg

Isso gera um monte de saída, mas quando tudo estiver ok você vai ver três novas pastas: build, dist e mymath.egg-info. A única que nos interessa é a pasta dist, onde você achará o ovo, mymath-0.1-py2.6.egg. Note que na minha máquina, ele faz referência ao meu Python padrão, que era o 2.6, e cria o ovo para essa versão do Python. O ovo em si é basicamente um arquivo zip. Se você mudar sua extensão para "zip", poderá fuçar por dentro dele e ver que ele tem duas pastas: mymath e EGG-INFO. A partir daqui, você já pode apontar com o easy_install para o seu ovo no sistema de arquivos e assim instalar seu pacote.

Se quiser, vocêm pode usar o easy_install para enviar seu ovo ou fonte diretamente para o Python Package Index (PyPI), usando o seguinte comando (copiado da documentação):

setup.py bdist_egg upload # cria um ovo e o envia
setup.py sdist upload # cria uma distribuição de fonte e a envia
setup.py sdist bdist_egg upload # cria ambos e os envia

Conclusão

Agora você está apto a usar o easy_install ou sabe o suficiente para tentar uma das alternativas. Pessoalmente, tive alguns problemas com ele e não pretendo usá-lo. Porém, daremos uma olhada no pip e sobre distribuição em breve, em artigo futuro. Por enquanto, dê uma chance ao easy_install e veja o que conclusão você tira, ou me conte suas histórias de terror nos comentários!

Leia também (em Inglês)

P. S.: Foto usada no post: 1st Batch Corn Hatching, de Viper76

14 fev 2013

Academy of Champions (Wii)

Submitted by bardo

Academy of Champions

Não gosto de jogos de futebol. Pode parecer estranho, mas não gosto de jogos de futebol nem no sentido esportivo nem no sentido eletrônico. Não quero dizer que eu não entendo das regras, só que não gosto. Não quero também fazer crítica nem ao esporte, tão popular no Brasil, nem aos jogos eletrônicos, que tem seu público fiel.

Bem, mas terminei comprando dois jogos de futebol para Wii (estavam a preço bastante convidativo). Um deles foi o Pro Evolution Soccer 2009 (que comecei o tutorial e abandonei, fazer o quê?) e o Academy of Champions. Este sim, pra mim, valeu a compra.

O jogo tem um estilo cartunesco e tem um quê de fantasia em tudo. Você é uma criança que sonha em se tornar grande no Futebol. Vai para uma academia especial, dirigida por Pelé e Mia Hamm (essa eu não conheço, mas dizem que é famosa :-P). Lá tem que cumprir etapas de treinamento, desafios, procurar jogadores para montar um bom time, comprar equipamentos... E vencer jogos importantes! A evolução dos personagens é um ponto bacana. Outro ainda mais legal são os especiais.

Eu lembro que havia um jogo de futebol para Super Nintendo onde se jogava com a turma do Megaman. Eles tinham chutes especiais, com poder. É tipo o robô de gelo ter um chute que congela em quem a bola bate. Pois bem, o Academy of Champions tem também esse lance de especial. E é bem divertido.

Os times são formados por cinco jogadores, incluindo o goleiro. Não há juiz, nem lateral ou escanteio: a bola está em campo o tempo todo. Os personagens são bem diferenciados, e há mistura de sexo. Você vai encontrar a meio-campista baixinha e gasguita, o goleiro brutamontes, o defensor magrela e altão... E há acessórios. Dá pra jogar com bandana, chapéu mexicano e até um chapéu do Rayman.

Bem, mas vamos voltar às atividades. O roteiro é dividido em trimestres. Cada trimestre é composto por quatro semanas (?), de cinco dias cada (??). Cada dia pode ter de uma a três atividades que precisam ser executadas. Boa parte das vezes podemos esconher entre duas ou três opções de atividade. A cada cinco dias nos deparamos com um jogo que não podemos perder. Se perdermos, a semana é zerada e voltamos ao seu começo. Por exemplo, se perder o desafio do 15º dia, você volta para o 11º.

Pra finalizar, achei o jogo muito criativo e divertido, apesar dos altos tempos de loading. Nem disse, mas a Ubisoft ainda preparou uma surpresa, colocando alguns personagens de jogos consagrados dela dentro desse jogo de futebol (por exemplo, o Altair, de Assassin's Creed).

Special: 
12 fev 2013

HTML Unifier

Submitted by bardo

HTML Unifier

Hoje eu passarei para vocês um conhecimento proibido. Um conhecimento milenar e obscuro dos programadores web,  Uma técnica capaz de reverter o que na maioria dos casos são consideradas boas práticas no desenvolvimento web. Estou falando de Data URI.

Se você já criou alguma página web em HTML você sabe como imagens são adicionadas. Não só imagens, mas muitos arquivos são necessários para ajudar o HTML a compor a página que vemos. Folhas de estilo, javascript, videos... O Data URI Scheme foi criado para permitir embutir diretamente no código HTML um conteúdo que deveria estar separado em seu próprio arquivo.

Como assim? No normal, voocê tem uma imagem praia.jpg. Com Data URI nessa imagem, o arquivo não é mais necessário. A imagem é convertida para ASCII e incluida dentro do HTML, na tag que faz a imagem.

Andei vasculhando os editores de HTML livres e não achei nenhum que permitisse incluir uma imagem nesse modo. Nem Nvu/Kompozer/BlueGriphon, nem LibreOffice, nem os editores de código... Como disse no começo, a técnica é "proibida". Se você adiciona imagens diretamente no arquivo da página, toda aquela modularidade vai pro saco. O cache não poderá ser feito de maneira adequada, por exemplo.

Bom, então por que você quis fazer isso? Simples: precisei preparar email em HTML com imagens, de uma maneira legal, através de um serviço que não aceita anexos. E imagens hospedadas geralmente não são lidas por alguns clientes de email, que temem que haja fraudes ou sei lá o quê. Solução? Data URI.

Pesquisei e não encontrei uma solução para isso. Terminei tendo que criar uma. Assim, apresento o HTMLunifier, que escrevi em PHP CLI, usando DOM e DataURI. Claro que você sabia que o PHP pode ser usado pra fazer script que rode no shell, não é?

O que o HTMLunifier faz basicamente é abrir um arquivo HTML e substituir todas as imagens por Data URI. Por segurança, ele não substitui o arquivo, mas cria um novo com terminação -u.html.

Convertendo a imagem para Data URI

Este código eu peguei na página do criador da biblioteca DataURI para PHP, que utilizei. Claro, com algumas melhorias.

function image_to_html($imagefile) {
	if (preg_match("/.jp(e?)g$/i", $imagefile)) {
		$filetype = "image/jpg";
	} elseif (preg_match("/.png$/i", $imagefile)) {
		$filetype = "image/png";
	} else {
		return $imagefile;
	}
	$fileContents = file_get_contents($imagefile);

	if($fileContents != false) {
		$dataUri = new DataUri(
			$filetype,
			$fileContents,
			DataUri::ENCODING_BASE64
	);

	return $dataUri->toString();
}

O processo unificador

Já temos o método que converte imagem em Data URI. Agora precisamos varrer o HTML procurando pelas tags img. Isso é feito com o seguinte código:

function unify($f) {
	$fpath = dirname(realpath($f));
	$dom = new DomDocument();
	$dom->loadHTML(file_get_contents($f));
	$dom->preserveWhiteSpace = false; 
	$images = $dom->getElementsByTagName('img'); 
	foreach ($images as $img) {    
		$imgfile = $img->getAttribute('src');
		if (preg_match("/^http(s?):/i", $imgfile)) {
			$img->setAttribute('src', image_to_html($imgfile));
		} elseif (preg_match("/^file:/", $imgfile)) {
			$rimgfile = preg_replace('/^file:(\/+)/', '/', $imgfile);
			$img->setAttribute('src', image_to_html($rimgfile));
		} else {
			$rimgfile = "$fpath/$imgfile";
			$img->setAttribute('src', image_to_html($rimgfile));
		}
    } 
    $f2 = $fpath . "/" . basename($f, ".html") . "-u.html";
    $dom->save($f2);
}

Se o arquivo está com protocolor http, https ou file, o tratamento é diferente do endereçamento relativo. No fim, o novo arquivo é gerado.

O programa em si

Claro, temos as funções, agora é hora de escrever o programa que as use. Isso é simples e curto:

for ($i = 1; $i < sizeof($argv); $i++) {
	$f = $argv[$i];
	if (file_exists($f)) {
		print "I will transform $f.\n";
		unify($f);
	} else {
		print "File $f don't exists.\n";
	}
}

Corrigindo o Doctype

Isso por si já deve funcionar, mas "vai que"... Então também fiz um método-gambiarra que corrige o Doctype do arquivo novo:

function fix_doctype($f) {
	$af = file($f);
	print "fix\n";
	$sf = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n" .
		"<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">";
	foreach ($af as $s) {
		if (preg_match("/^\<\?xml/i", $s)) {
			print "achei xml\n";
		} elseif (preg_match("/^\<\!DOCTYPE/i", $s)) {
			print "achei doctype\n";
		} else {
			$sf .= "\n$s";
		}
	}
	file_put_contents($f, $sf);
}

Concluindo

Enfim, é isso. Espero que isso seja útil para você. Estou anexando neste artigo o código. Como não posso enviar PHP, estou enviando o código em TXT. Basta salvar renomeando o arquivo para tirar o ".txt" ou selecionar, copiar e colar num editor de textos. O arquivo precisa ser marcado como executável.

E lembre-se: você precisará do php5-cli (ou talvez não), do php-xml-algumacoisa (na dúvida dei apt-get install php-xml-*) e do DataURI.php (coloquei na mesma pasta do HTMLunifier). Muita sabedoria para usá-lo e bom proveito!

Special: 
5 fev 2013

Este artigo começou como uma tradução do artigo Customizing a Trisquel iso, disponível na página do próprio Trisquel. Este artigo foi expandido com algumas informações do Live CD Customization, do Ubuntu, além de informações próprias.


Primeiramente, uma ISO é uma imagem de um CD ou DVD. Você pode pegar um CD ou DVD e transformar todo o seu conteúdo em um arquivo, para depois copiá-lo para outro CD ou DVD, tendo duas mídias exatamente iguais. Esse arquivo é que é o iso. Para gravar um iso você deve escolher a opção que fala de "Escrever imagem no disco" ou algo parecido, no seu programa de gravação de CD e DVD.

O CD e o DVD do Trisquel (assim como o do Ubuntu, do Mint e de outros, o que inclui o DVD do CyanPack) traz o sistema operacional de modo que funcionará a partir da mídia, sem precisar instalar. Adicionalmente, permitirá instalação. É algo bem bacana e que quem é usuário de software livre já conhece há alguns anos.

O bom é que você pode personalizar esse arquivo iso, para que venha com os programas que você quer. É o que eu faço para criar a versão modificada do Trisquel, que é distribuída no CyanPack em DVD. E neste artigo, vou mostrar pra você  como fazer isso.

Pré-requisitos

Primeiro você precisa de espaço em disco. Há dois estágios na criação do arquivo iso. Além da iso original, você precisará colocar todo o conteúdo dela em uma pasta, depois replicar o maior arquivo dela para uma outra pasta. E precisa do espaço que usará para a nova iso. Para a iso internacional do Trisquel, por exemplo, para mudanças pequenas, é seguro ter pelo menos 10G livres (sem contar a iso original).

Você precisa da iso na mesma arquitetura que você está usando. Vai poder customizar uma iso de 64 bits se estiver rodando o sistema atual em 64 bits. As imagens de mídia do Trisquel você encontra na página de Downloads do site da distribuição.

Ah, claro, você precisa de uma dessas distribuições instaladas para servir de ambiente de trabalho. Trisquel, Mint, Ubuntu... Ou alguma igualmente compatível. Nela, você precisa instalar os pacotes squashfs-tools e genisoimage.

sudo apt-get install squashfs-tools genisoimage

Desempacotando

Bom, você já tem o iso? Então vamos começar.

Abra um terminal. Os comandos todos deverão ser executados como usuário root. Para isso você pode digitar

sudo bash

Agora, você precisará de um diretório vazio. Se você não mexeu muito na sua instalação, provavelmente o diretório /mnt estará disponível. Se tiver dúvidas, crie e utilize um outro. Eu geralmente utilizo o /mnt mesmo e comigo funciona.

mount -o loop trisquel-original.iso /mnt
cp -a /mnt trisquel-midia
umount /mnt

Pronto, você tem o conteúdo da imagem todo em uma pasta (trisquel-midia). Vamos então pegar o conteúdo do sistema efetivamente, que fica no arquivo squashfs:

mount -o loop trisquel-midia/casper/filesystem.squashfs /mnt
cp -a /mnt trisquel-sistema
umount /mnt

A pasta trisquel-sistema é onde vamos trabalhar.

O arquivo Preseed

O Trisquel vem com um arquivo que permite a preleitura de valores para o banco debconf. Você pode achá-lo em src/preseed/trisquel.seed. O arquivo contém exemplos comentados do que você pode fazer, como mudar o idioma padrão, configurar rede estática ou instalar automagicamente um conjunto extra de pacotes antes de o processo de instalação do live-CD ser concluído (nesse caso você precisará de internet durante a instalação).

Se as mudanças e adaptações de que você precisa puderem ser feitas smplesmente alterando este arquivo, você não precisará seguir o próximo passo.

Bom, pessoalmente não usei ainda esse arquivo, mas #ficadica.

Modificando

Vamos começar a festa. O ambiente ainda não está 100% pronto, pois vamos completá-lo:

cp /etc/resolv.conf trisquel-sistema/etc
mount --bind /dev trisquel-sistema/dev
chroot trisquel-sistema
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts

Pronto! Agora sim podemos brincar pra valer! Comece com apt-get update e apt-get upgrade. Depois você instala tudo o que você precisar, com apt-get, e pode fazer as personalizações que achar necessárias (claro, tudo em linha de comando).

Quando encerrar tudo, você precisa executar

apt-get clean
echo "" > /etc/resolv.conf
umount /dev/pts
umount /sys
umount /proc || umount -lf /proc
exit
umount trisquel-sistema/dev

Caso você tenha substituido o kernel ou os scripts de boot, copie os arquivos do kernel e initrd dessaforma:

cp trisquel-sistema/boot/vmlinuz-custom trisquel-midia/isolinux/vmlinuz
cp trisquel-sistema/boot/initrd.img-custom trisquel-midia/isolinux/initrd

Reempacotando

Depois de as mudanças serem feitas, você precisa reconstruir o squashfs e o arquivo .iso.

Comprima o sistema em um arquivo squashfs, apagando o original:

rm trisquel-midia/casper/filesystem.squashfs
mksquashfs trisquel-sistema trisquel-midia/casper/filesystem.squashfs

Pra terminar, crie o arquivo de imagem:

mkisofs -D -r -V "Meu Trisquel personalizado" -cache-inodes \
-J -l -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot \
-boot-load-size 4 -boot-info-table -o trisquel-personalizado.iso trisquel-midia

Deixe claro para todos que a versão que você está distribuindo não é uma imagem .iso oficial.

Por fim, no caso de personalizar o Trisquel eles pedem: se qualquer software não livre foi incluído, por favor renomeie seu projeto e não use o nosso logotipo.

P. S.: Foto do post: CDs Dangling, de Bernzilla

Special: 
26 jan 2013

Super Smash Bros Brawl

Submitted by bardo

Existem jogos que revolucionam, que criam tendência. A Nintendo é fera nisso. Se você analisar bem, mesmo o Nintendo 64 não tendo sido o sucesso que poderia (a velha história dos Cartuchos X CDs, da entrada da Sony, etc), ele deixou um legado que não tem preço. Um exemplo é a mecânica de aventura tridimensional de The Legend of Zelda: Ocarina of Time. Outro é Super Smash Bros.

A ideia foi bem infantil: vamos juntar os personagens da Nintendo - de diversos jogos - em um só jogo de pancadaria! Por que infantil? Porque uma criança normal não se importa que o Mario, o Ben 10, o Batman e Bob Esponja não existam em um mesmo mundo. Se ela tem bonequinho dos quatro, ela brinca de boa com os quatro numa história só! Então no Super Smash Bros temos personagens tão distantes quanto Mario, Pikachu e Link, lutando em cenários dos vários jogos de seus próprios mundos.

Como algo infantil, o jogo teria que trazer uma mecânica bacana, se levando menos a sério do que os jogos de luta habituais. Tinha que ser divertido. Então vamos rever os golpes. Pra que aquelas combinações malucas de girar o direcional até a morte e apertar vários botões? De que controles um jogo de luta precisa? Resposta: movimento, pulo, agachar, agarrar, defesa, golpe simples e golpe especial. Só. Em Super Smash Bros, há dois botões de golpes: um para golpe simples outro para especial. Se o botão é apertado quando o personagem está no ar ou em combinação com alguma direção (direcional para baixo, para frente ou para cima), um novo golpe aparece. Todos os personagens funcionam assim, mudando apenas os golpes (principalmente os especiais). Isso simplifica muito as coisas.

Uma das coisas mais divertidas em jogos como Mario são as famosas Power-ups, os itens. Então por que não botá-los no jogo também? Feito! Você encontra desde cogumelos até pistolas laser e sabres de luz, além da temível marreta (aquela que o Mario usava no Donkey Kong, lembra?). Ah, e tem o globo com o símbolo do jogo, a smash ball, que quando é quebrado libera um super-especial.

Não é divertido o bastante? Ah, então vamos colocar quatro lutadores de uma vez na tela, na maior pancadaria! Bagunçado e divertido! Ah, mas quando a gente perder vai ter que esperar a luta acabar pra jogar de novo... Não! A contagem não é feita com uma barra de vida como nos jogos de luta tradicionais, mas com uma porcentagem que aumenta a cada golpe recebido (é como se fosse a chance de você voar/perder-uma-vida em um único golpe). Quando você perde, você é arremessado para longe do cenário e reaparece no centro. Ganha quem arrancou mais vidas de adversários. Simples e sem filas de espera.

Parece bacana? E se eu disser que esses elementos estavam no primeiro Super Smash Bros, ainda para Nitnendo 64?

O Super Smash Bros Brawl, terceiro jogo da franquia, consegue ser ainda mais incrível. Além do visual excelente (Wii não é full-HD, mas o jogo é muito bonito), há muitos lutadores e muitos troféus e prêmios na forma de músicas de trilha sonora de uma infinidade de jogos. Temos o treinador pokémon, que joga com Bulbasauro, Wartortle e Charizard; temos os lutadores Pikachu e Lucario; temos Fox e Falcon do Starfox; Zelda, Link, Olimar (Pikimin)... Temos o divertidíssimo Mr Game & Watch! E os convidados especiais Snake (Metal Gear Solid) e Sonic! Esqueci algum? Com certeza! A lista de lutadores é enorme.

Tá, mas ainda não acabou! No Brawl, a Nintendo provou que sua mecânica de combates funciona muito bem no estilo Beat 'em up. O modo história do jogo é bem longo e, como todo o restante, divertido pra caramba! Permite dois jogadores nesse modo. A história é intercalada por cutscenes curtas, narrando muito bem a história sem qualquer diálogo! Nenhum texto. Bastam expressões corporais e gestos dos personagens para ficarmos por dentro de todos os acontecimentos e vibrarmos com o enredo feito por Kazushige Nojima, escritor da série Final Fantasy.

É, não preciso dizer que esse jogo é indispensável para quem tem um Wii. Enquanto a Sony mais uma vez copia a Nintendo, com seu All Star Battle Royale, acredito que todos os que jogaram o Super Smash Bros Brawl estão ansiosos para ver o que a empresa do Mario está aprontando para trazer a franquia pro 3DS e o Wii U. Resta aguardar.

O jogo está por 29.50 dólares no eStarland.

Special: 
25 jan 2013

O Firefox (ou Abrowser ou Iceweasel ou...) é um navegador legal, mas há uma coisa nele que me incomoda um pouco: o lance de abrir novas abas ao lado da atual. Isso tem suas vantagens, por agrupar melhor as abas por assunto, mas eu me acostumei a trabalhar com "filas de abas" ao invés disso.

Oh, e agora quem poderá nos defender? O about:config!

Se você tem esse mesmo "problema", a solução é bem simples:

  1. Abra uma nova aba, digite about:config e dê Enter;
  2. Diga ao Firefox que você sabe o que está fazendo e que não vai fazer nenhuma besteira (e é bom não fazer mesmo);
  3. Na opção de procura da tela que vai abrir digite browser.tabs.insertRelatedAfterCurrent
  4. Basta dar um duplo clique na opção com esse nome que você procurou e ela vai verter de True para False.
  5. Pronto! Abra novas abas à vontade  a partir de links para testar! Comigo funcionou.

Foto usada no post: Magician, de - luz -.

Special: 

Páginas

Subscribe to RSS - artigo