Provendo informações uteis na linha de comando

Hoje estava conversando com um amigo sobre como prover informações úteis e ajuda decente para programas de linha de comando (aqui, preciso fazer um adendo: embora pareça arcaico pra algumas pessoas, isso é realidade para muita gente, em especial aquelas desenvolvendo pra UNIX e Linux).

Continue reading “Provendo informações uteis na linha de comando”

Dica: Corrigindo erro da user32.lib no CMake com NMake Makefiles

No CMake, quando se usa o gerador NMake Makefiles ele costuma dar o erro:

LINK : fatal error LNK1104: cannot open file 'user32.lib'
LINK Pass 1 failed.  with 2
NMAKE : fatal error U1077: '"C:\Arquivos de programas\CMake
2.6\bin\cmake.exe"' : return code '0xffffffff'
Stop.
NMAKE : fatal error U1077: '"C:\Arquivos de programas\Microsoft Visual
Studio 8\VC\BIN\nmake.exe"' : return code '0x2'
Stop.

Mesmo que você tenha o Microsoft Platform SDK, isso ocorre porque o linker não consegue encontrar a user32.lib. Para projetos que usam o gerador do Visual Studio você pode configurar isso seguindo as recomendações da configuração do SDK, mas para resolver este problema em projetos que usam a NMake, você precisa adicionar o path da user32.lib na variável de ambiente LIB. Você pode fazer isso na mão, após iniciar o prompt de comando do Visual Studio:

set LIB=%LIB%;"C:\Arquivos de programas\Microsoft Platform SDK\Lib"

Ou então adicionar o path nas variáveis de ambiente do sistema através da aba “Avançado” nas propriedades do sistema.

IDE online

Meu amigo Diego me passou a dica sobre o CodeIDE. Segundo ele, é um site onde pode executar códigos, suporta várias linguagens como Pascal, C++, Perl, JavaScript, HTML, e outras. Você digita o código, e mandar executar, já ve o resultado na página mesmo. O site também oferece suporte a chat e grupos, o que possibilita vc explicar o código para alguém, discutir sobre um código, etc, etc. Aqui tem um artigo sobre o site
http://blog.cidandrade.pro.br/technology/interface-online-para-ensino-de-programacao-codeide/

Eu achei o site uma grande mão na roda pra quando você quer mostrar alguma técnica ou explicar algo para alguém. Além disso, ele tem um recurso de realce de sintaxe (syntax highlight) que melhora a percepção do código.

Dica: sobre a conversão de vídeos pro Nokia 5310

Conforme eu falei no tópico abaixo da sugestão de programa para Mac OS X, o MPEG StreamClip permite converter arquivos de vídeo para o Nokia 5310 Xpress Music. Note porém que este celular tem requisitos específicos para o formato de vídeo, conforme específicado aqui. Em todo caso, para o MPEG StreamClip e para evitar experimentações eu recomendo usar H.264 com tamanho de vídeo 174×144 a 15fps confome mostra a imagem abaixo.

Configuração do mpeg stream clip

Mac OS X: Sugestão de Programa

Essa semana recebi um novo celular, um Nokia 5310, e uma das funcionalidades presentes nele é a possibilidade de ver vídeos nele. Então, procurando um programinha para Mac OS X que fizesse o serviço de maneira simples e sem complicação encontrei o MPEG StreamClip, da Squared 5. Esse programinha freeware permite converter diversos formatos de audio/video, inclusive os utilizados no celular.

Já que o assunto é programas, convém conferir esse tópico do MeioBit que trata exatamente de programas pra Mac OS X.

Dica: XPath

O XPath é uma linguagem para seleção de nós em um documento XML. Entre outas coisas, é bastante utilizada quando se trabalha com XSLT. Como ela também é suportada em diversas bibliotecas ela é comumente utilizada com C (libxml2), C++ (xalan, xerces, etc), Java (jaxp, etc), Python, e muitas outras linguagens
Hoje, precisei fazer uma expressão para obter um nó somente quando o nó pai fosse igual a um determinado valor e tivesse algum atributo específico.

<paises continente=”Europa”/>
<pais nome=”Portugal”/>
<pais nome=”França” />
</paises>
<paises continente=”Africa” />
<pais nome=”Angola”/>
</paises>

Vamos supor que você quisesse obter o nó referente a Angola. Você poderia faze-lo através da seguinte expressão:

[code]
//paises[@continente=’Africa’]/pais[@nome=’Angola’]
[/code]

No caso a expressão // representa os nós descendentes ou o próprio e a expressão @ representa um atributo. A expressão completa representa um caminho para o nó (de modo análogo /usr/share ou C:/windows representam um caminho no disco rígido).
Mais sobre XPath neste excelente tutorial.

VI minimamente utilizável

Antes de começar, um aviso: eu não sou fã do VI. Eu gosto do VIM (e só para algumas tarefas). Meu editores preferidos são o Notepad++ (Windows), TextWrangler (Mac OS X) e o Gedit (Linux – mas ando querendo testar o Geany).

Essa dica é para aqueles que como eu tem que, eventualmente, enfrentar um sistema Unix sem acesso ao VIM ou qualquer outro editor que não exige um manual de dezenas de páginas para ser utilizado e só tem disponível o VI. Aqui vão algumas configurações que você pode colocar no seu $HOME/.exrc para deixar o VI um pouco menos irritante:

[code]#Mostra em qual modo está
set showmode
# Quando em modo de procura, se torna insensível ao caso
set ic
# Mostra o número das linhas
set number
# Set o tamanho do tab para 4
set tabstop=4
# Mapeamento de teclas (use Ctrl+V depois pressione
# a tecla que vc quer mapear – ex:
# insert, delete, etc. Isso vai produzir algo do
# tipo ^[[2~, etc)
map ^[[2~ i
map ^[[1~ 0
map ^[[4~ $
map ^[[3~ x
map ^H X[/code]