Quem sou eu

Minha foto
Programador por profissão, formação e opção! Interessado em tudo relacionado a computadores, menos manutenção de hardware! Linguagens (interesse e trabalho): Java, C#, C/C++, Python, Ruby, Haskell. Atualmente trabalhando como Desenvolvedor (maior parte do tempo em soluções ASP.NET)

domingo, 16 de agosto de 2009

Build da documentação do Flex 3 SDK

A tecnologia Flash sempre esteve distante dos programadores, pois seu publico alvo eram os designers das aplicações.

Porém com o avanço das aplicações RIA a Adobe decidiu trazer as vantagens da tecnologia Flash para os programadores, e assim, criou o Flex.

A partir da versão 3, a tecnologia Flex tornou-se Open Source.

Voce pode baixar o código fonte trunk ou então utilizar a branche mais estável, 3.3.0. Atualmente estou utilizando a branche 3.3.0.

Bom, após baixar o código-fonte você verá que a documentação não foi compilada e se você baixar a versão binária da SDK também verá que a documentação não está presente.

Porém ao rodar o build da documentação (lembre-se que estou utilizando a branche 3.3.0) o mesma não executa e acusa vários erros.

Pesquisei um pouco e acabei encontrado um link no issue tracker da Adobe que explicava como tentar solucionar, e é isto que vou mostrar para vocês agora.

Entre no diretório \asdoc\

Altere o arquivo build.properties da seguinte maneira:


frameworks.dir = ${basedir}/../frameworks
playerglobal.dir = ${basedir}/../modules/playerglobal/src

asdoc.options = \
-namespace http://www.adobe.com/2006/mxml ${basedir}/mxml-manifest.xml \
-doc-namespaces http://www.adobe.com/2006/mxml \
-doc-classes \
FrameworkClasses \
-source-path \
"${frameworks.dir}/projects/flex/src" \
"${frameworks.dir}/projects/framework/src" \
"${frameworks.dir}/projects/haloclassic/src" \
"${frameworks.dir}/projects/rpc/src" \
"${frameworks.dir}/projects/utilities/src" \



E depois altere o arquivo mxml-manifest.xml e comente todas as entradas referentes a biblioteca graphics. Deve ficar parecido com:



    <!-- graphics -->
<!--
<component id="BitmapFill" class="mx.graphics.BitmapFill"/>
<component id="GradientEntry" class="mx.graphics.GradientEntry"/>
<component id="LinearGradient" class="mx.graphics.LinearGradient"/>
<component id="LinearGradientStroke" class="mx.graphics.LinearGradientStroke"/>
<component id="RadialGradient" class="mx.graphics.RadialGradient"/>
<component id="SolidColor" class="mx.graphics.SolidColor"/>
<component id="Stroke" class="mx.graphics.Stroke"/>
<component id="BitmapGraphic" class="mx.graphics.BitmapGraphic"/>
<component id="CubicBezierSegment" class="mx.graphics.CubicBezierSegment"/>
<component id="Ellipse" class="mx.graphics.Ellipse"/>
-->



Feito isso basta acionar o ant que o build irá ocorrer.

Ah, para substituir os < e > no xml, usei o site: centricle

sábado, 15 de agosto de 2009

Buscando pacotes com o apt.

Provavelmente todos os usuários de distribuições derivadas do Debian já utilizaram alguma vez o comando apt-get para instalar ou remover um pacote.

Porém o apt não serve apenas para instalar os pacotes, você pode utilizá-lo para buscar um pacote no repositório.

Para fazer isso é simples, basta digitar:

apt-cache search

Por exemplo, para buscar todos os pacotes relacionados com VirtualBox (VM da Sun), basta digitar:

apt-cache search virtualbox

O resultado deve ser:

imvirt - detects several virtualizations
vboxgtk - simple GTK+ frontend for VirtualBox
virtualbox-ose - x86 virtualization solution - binaries
virtualbox-ose-dbg - x86 virtualization solution - debugging symbols
virtualbox-ose-guest-source - x86 virtualization solution - guest addition module source
virtualbox-ose-guest-utils - x86 virtualization solution - guest utilities
virtualbox-ose-source - x86 virtualization solution - kernel module source
virtualbox-2.2 - Sun VirtualBox
virtualbox-3.0 - Sun VirtualBox


Vale lembrar que a busca é feita nos dados armazenados localmente, sempre que possível execute um apt-get update para atualizar a lista de pacotes.

Informação recuperada em: Mike Kruckenberg

sexta-feira, 14 de agosto de 2009

Música para programar...

Uma boa forma de aumentar o rendimento na hora de programar é ouvir uma boa música (pelo menos para mim funciona).

Sempre que possível estou utilizando o ambiente Linux (mais precisamente Ubuntu 9.04) para realizar minhas atividades não relacionadas ao meu trabalho.


Apesar da Nullsoft disponibilizar uma versão do Winamp para Linux, prefiro utilizar as ferramentas que a comunidade recomenda. Sendo assim estou utilizando o Rhythmbox para ouvir minhas músicas.

Porém uma coisa que sinto falta é a grande variedade de rádios on-line que eu tenho disponível no Winamp. Sendo assim dei uma procurada no google e achei o link do Shoutcast (serviço que disponibiliza as rádios do winamp).

Para utilizar o Shoutcast no Rhythmbox basta navegar até o site da Shoutcast, encontrar sua rádio preferida e adicionar na lista de rádios do Rhythmbox.

Não é a mesma coisa que utilizar a integração do winamp, mas já ajuda a curtir boa música.

Abraço!

Manipulando arquivos .iso no Linux

Apesar deste blog ser voltado para programação, algumas dicas do ambiente Linux não podem ferir. :]

Bom, a primeira refere-se a como criar uma imagem de um cd/dvd para o seu sistema de arquivos. Basta escrever:

dd if=/dev/cdrom of=/endereco/onde/quer/salvar/oiso.iso

Este comando copia o disco byte a byte (e da maneira que está pode ser muito lento, porém você não tem problemas em setar tamanhos de blocos errados).

Depois de terminar a cópia do disco, você pode verificar a integridade do seu arquivo com:

isovfy /endereco/onde/salvou/oiso.iso

Agora o mais interessante do linux é que facilmente você pode pegar uma iso e utilizar como um diretório do seu computador, através do comando mount.

Digite o seguinte comando:

mount -o loop -t iso9660 /endereco/onde/salvou/oiso.iso /diretorio/de/destino

O comando mount recuperei deste site!

quarta-feira, 5 de agosto de 2009

Chamando métodos no servidor através de javascript.

Este post apresenta apenas dois links para a documentação do MSDN que indicam como implementar a chamada de métodos no lado server através de código javascript (sem utilizar diretamente o _doPostBack).

Depois faço um novo post com algum exemplo.

Documentação da interface ICallbackEventHandler
http://msdn.microsoft.com/en-us/library/system.web.ui.icallbackeventhandler.aspx

Exemplo de implementação da microsoft
http://msdn.microsoft.com/en-us/library/ms178210%28VS.80%29.aspx

terça-feira, 4 de agosto de 2009

Carregando arquivos embarcados - .Net

Muitas vezes precisamos carregar arquivos que são embarcados em nossas dlls ou executáveis.

Isso é muito comum com imagens de botões. Pois quando o seu executável é publicado, você não libera uma pasta cheia de imagens para seus usuários.

O trecho abaixo, mostra como carregar um arquivo embarcado em um assembly. É bem simples:


public class ResourceReader
{
public static System.IO.Stream OpenResource(string fullName)
{
/* Full name é o nome completo do recurso, ou seja
* o caminho onde você colocou o recurso na sua solução.
* Apenas substituindo o "/" por "."
* Supondo que eu tenha um xml colocado na pasta
* <raiz da solução>\Andre\Configuration\Network\config.xml
* eu acessaria o recuros com o seguinte endereço:
* Andre.Configuration.Network.config.xml
* */
/* Recuperei o objeto que representa a dll ou exe que contém
* o código corrente */
System.Reflection.Assembly meuAssembly = System.Reflection.Assembly.GetExecutingAssembly();
/* Retorna um stream para ler o conteudo que está embarcado em minha dll */
return meuAssembly.GetManifestResourceStream(fullName);
}
}
O código acima é bem simples e auto-explicativo. Com este recurso você pode ler qualquer coisa que possa ser manipulada através de Streams (imagens, vídeos, textos, xml, xsd, etc).