Problema com PyEnv no OSX Sierra

Pyenv é um gerenciador de instalações do Python, permite a instalação de várias versões do interpretador em paralelo, incluindo pypy, jython stackless etc.

Após instalar o OSX Sierra tive um problema que me impedia de instalar o python 3.5.2:

zipimport.ZipImportError: can't decompress data; zlib not available

Por alguma razão, no Sierra a biblioteca zlib não vem instalado por padrão para uso no stack unix padrão, para resolver isso fiz o seguinte:

xcode-select --install

Com isso uma caixa de diálogo vai se oferecer para instalar o XCode inteiro ou apenas as ferramentas de console. Instalei as ferramentas de console e o problema foi resolvido 🙂

Hackintoshs em Netbooks

Uma tabelinha interessante com os principais netbooks do mercado e sua compatibilidade com os OSX modificados que existem por ai. O MSI Wind roda muito bem, vi um funcionando na Starbucks parece um macbook mini 😉

tabela de compatibilidade hackintosh com netbooks

Prato cheio pra quem quer usar OSX e não quer um hardware apple.

perdi a fonte 🙁

Hackintosh, no meu PC novo ?

Já faz mais de um ano que desmontei meu último hackintosh… nem lembro mais dos travamentos com a USB, a emoção de aditar plists, de compilar módulos, alterar DVDs de instalação etc…

Mas meu AMD 64 esta dando sinais de que vai parar, então estou pesquisando qual vai ser meu próximo PC, e claro ele vai ter que rodar OSX.

Meu próximo PC vai resolver um problema antigo que tenho aqui em casa, 400 DVDs de dados e filmes que entulham minha sala , e sem falar da frutração de precisar de um arquivo e o DVD não funciona mais isso acontece sempre. Então o forte dessa máquina será armazenamento, e minha idéia é colocar 3 HDs de 750 Gb, melhor custo benefício atual, em RAIDZ … RAIDZ ? RAID Z é um RAID configuravel via ZFS, que tem vários benefícios quando comparado com o RAID-5, principalmente baixo custo.

Como o ZFS é a minha escolha para storage, só me restam 3 alternativas de sistema operacional OpenSolaris, FreeBSD e OSX. O linux tem um suporte pra lá de porco, que não é estável, nem rápido, nem prático e não da pra usar. O OpenSolaris tem graves problemas de suporte , documentação, e compatibilidade com hardware, ele será minha primeira opção, se falhar vou de FreeBSD e por Último vou de OSX.

Pesquisando em fóruns descobri que o fabuloso HMTB vai encerrar suas atividades então pretendo criar e manter um fórum especializado no assunto afinal fui eu quem lançou a primeira comunidade no Orkut sobre o assunto 😛 e fui um dos primeiros hackintoshers do Brasil.

Enquanto pesquiso o hardware que vou usar já estou baixando o DVD do OSX para Hackintoshs, se interessar :


iATKOS 4va (AMD)

http://rapidshare.com/files/137727738/macos.part01.rar
http://rapidshare.com/files/137732595/macos.part02.rar
http://rapidshare.com/files/137736011/macos.part03.rar
http://rapidshare.com/files/137742262/macos.part04.rar
http://rapidshare.com/files/137746900/macos.part05.rar
http://rapidshare.com/files/137751590/macos.part06.rar
http://rapidshare.com/files/137756333/macos.part07.rar
http://rapidshare.com/files/137760501/macos.part08.rar
http://rapidshare.com/files/137765032/macos.part09.rar
http://rapidshare.com/files/137767849/macos.part10.rar
http://rapidshare.com/files/137772611/macos.part11.rar
http://rapidshare.com/files/137774443/macos.part12.rar

Arkanoid de pobre em Flash pt1

Defensores radicais do software livre, pulem o post pois esse blog está mergulhando no mundo imundo do software proprietário fechado barbudo e mal.

Disse em algum post atrás que estava me interessando cada vez mais pela produção de jogos, bobos e simples, e de preferência portateis… Já fiz um game ou outro, a maioria em BASIC pro antigo MSX 2.0 e um outro em C/SDL pro linux, mas game casual que é game casual tem que rodar em qualquer micro, em qualquer sistema, e nada melhor que Flash para isso.

A proposta é criar um clone do Arkanoid, sem todo seu glamour, coisa simples sem muita firula, nem mesmo som 😛

Eu sei que é possível desenvolver maravilhas com puro ActionScript+Javascript mas eu não tenho a manha, então vou de Flash CS3 mesmo. Alias, vou usar o Flash CS3 no OSX Leopard, se você usa windows os screenshots vão ser diferentes mais ainda assim parecidos.

Primeiro passo, abra um novo “Flash File (ActionScript 2.0)”, se quiser mude as propriedades do fundo da tela e seu tamanho em “Modify > Document…”.

Agora vamos desenhar a bola, use a ferramenta para criar circunferências e crie uma bola em algum canto da tela. Selecione a bola e converta para Símbolo em “Modify > Convert to Symbol” , marque a caixa “Type” como “Movie Clip”. Marque a caixa “Linkage to ActionScript” também:


tutorial flash

Agora clique com o botão direito em cima da bola e vá em “Actions”, e cole o seguinte código :


// Função carregada no início do jogo
onClipEvent(load) {

	// A cada loop incrementa em 10 a posição da bola 
	// na direção horizontal
	xspeed =10;
	// A cada loop incrementa em 10 a posição da bola 
	// na direção vertical
	yspeed =10;
	// Tamanho da tela horizontal (width) e vertical (height)
	stageWidth=400;
	stageHeight=300;
	
}
// Carregado quando o jogo entra nesse frame
onClipEvent(enterFrame) {
	//Incrementa as velocidades em x e em y a cada loop
	this._x += xspeed;
	this._y += yspeed;
	
	// Detecta se a bola atingiu a parede o teto e inverte sua velocidade
	if ((this._x <= 0) || (this._x >= stageWidth)) {
		xspeed = -xspeed;
	}
	if (this._y <= 0 || (_root.barra.hitTest(this))) {
		yspeed = -yspeed;
	}
	
	// Caso a bola caia no chão ela será restaurada no meio da tela
	if (this._y > stageHeight) {
		_x = stageWidth/2 ;
		_y = stageHeight/2;
		xspeed=10;
		yspeed=10;
	}
	
}

Agora vamos adicionar a “barra”, da mesma forma que adicionamos a bola, posicionando na tela convertendo para símbolo e identificando como “barra”. Clique em cima da barra, e vá em “Actions”, em seguida entre com o código :


onClipEvent(enterFrame) {

	// Tamanho da tela, usado para calcular os limites de movimento da barra	
	stageWidth=400;
	stageHeight=300;
	
	// Se pressionado o botão direito soma 10 na posição da barra
	if(Key.isDown(Key.RIGHT)) {
		// Verifica se  a barra já chegou a extremidade
		if(this._x <= stageWidth - this._width) {
			this._x += 10
		}
	}
	// Se pressionado o botão direito subtrai 10 na posição da barra

	if(Key.isDown(Key.LEFT)) {
	// Verifica se  a barra já chegou a extremidade

		if(this._x >= 0) {
			this._x -= 10;
		}
	}
}

Uma dica muito, mas muito importante é instancear os objetos que usamos, para isso selecione um dos objetos e na janela de propriedades dê o nome da instância do objeto, “bola” no caso da bola e “barra” no caso da barra. Sem isso a bola vai passar direto quando atingir a barra. Veja figura abaixo :


instancia no flash

Se você chegou até o fim do tutorial seu game deve ser parecido com o abaixo :




Levando o macbook pro aos limites !

Um belo dia encontrei no google uma referência ao meu artigo sobre o Xslimmer /Ditto no blog macmagazine desde então passei a participar do fórum e do blog. Então encontrei esse post que mostra um vídeo de um macmini rodando 50 aplicativos ao mesmo tempo… Não me contive e em uma chuvosa manhã de sábado fiz o mesmo, mas com mais de 100 aplicativos, seguem os screenshots :




Ok, a máquina ficou por volta de 30 minutos sem responder, o HD do macbook pro é muuuuito lerdo PQP ! Mas não travou 🙂 E ainda consegui trabalhar nela por algumas horas… depois de fechar todos os apps, a memória voltou ao normal, sem memory leaks, um feito !

Alternativa ao xslimmer

Quem conheceu o OSX na era Intel não deve perceber, mas quem veio do mundo PPC notou que os binários universais são monstruosamente grandes com o dobro ou até mesmo o triplo de um binário dedicado.
Com a morte do meu powerbook peguei um mac intel portatil, com hd de 100 Gb que não da pra nada, e agora sofro com problemas de espaço em disco… Então encontrei um software chamado xslimmer que faz uma lipo nos binários gordos retirando o código PPC deixando apenas código intel 🙂 Uma maravilha se o excelente programa não fosse um shareware 🙁

Mac como um bom macmaniaco com conhecimentos Unix, não me conformei e fui buscar uma solução caseira, e encontrei o ditto, uma ferramenta para gerenciar os aplicativos do OSX, com ele é possível customizar, configurações, línguas, ícones e também a arquitetura dos binários , saca só o comando :


ditto --rsrc --arch i386 /Applications/RealPlayer.app /Applications/RealPlayer-intel.app

Então após se certificar que o novo app está funcionando basta apagar o antigo. Só pra se ter uma idéia da economia, eu usei o ditto no Pages e o binário de 700 mb caiu pra 200 mb… Em outros casos a economia foi ainda maior chegando a 4 vezes, não me pergunte porque.

Pra mim é assustador como o mercado de pequenos aplicativos para o OSX se sustenta em cima de frontends para softwares de linha de comando, são vários exemplos, tem desde rsyncs e wgets até tweaks em configurações de arquivos xml, é impressionante a quantidade de grana que você pode economizar por dominar meia dúzia de comandinhos do terminal.