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.

eBook Gratis sobre desenvolvimento no Mac OS X

Peguei essa dica no OS News: o CocoaLab distribui um eBook grátis para quem quiser se aventurar no desenvolvimento para Mac OS X. O livro é voltado para desenvolvimento no Leopard com Xcode 3 usando Objective C e Cocoa e está disponível aqui. Não usa o Leopard? Então baixe a versão para o Tiger aqui. O livro está, obviamente, em inglês, então se você não conhece o idioma de Shakespeare considere esse mais um bom motivo para aprender.

Fontes: OS News e Fun Script.

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]

Oracle: um pouco sobre PL/SQL

Continuando o último post sobre Oracle, agora falando sobre PL/SQL (Procedural Language/Structured Query Language). A PL/SQL é uma extensão, proprietária da Oracle, à linguagem SQL que adiciona construções comuns às linguagens procedurais, como por exemplo variáveis, condicionais, excessões, etc.

Se você nunca viu um código em PL/SQL ele é semelhante ao seguinte:

[code]set serveroutput ON size 2000 format WORD_WRAPPED;
DECLARE
v_hello VARCHAR(255);
BEGIN
SELECT ‘Hello World!’ INTO v_hello FROM DUAL;
DBMS_OUTPUT.PUT_LINE(v_hello);
END;
/
EXIT[/code]

Continue reading “Oracle: um pouco sobre PL/SQL”

Um pouco sobre Oracle

O Oracle é uma das ferramentas que eu tenho utilizado muito nos últimos anos, desde a minha pós-graduação onde tive o primeiro contato até o último ano, aonde utilizo-a profissionalmente.

Nesse pouco tempo que venho tendo contato com o Oracle eu consegui juntar alguns links que utilizo no dia-a-dia e que vou compartilhar aqui:

Referência do Oracle 9i.

Códigos de Erro do Oracle.

Convém lembrar que a Oracle Corporation disponibiliza uma versão gratuíta, para desenvolvimento, instalação e distribuição, do Oracle. Esta versão é conhecida como Oracle 10g Express e está disponível neste link aqui.

Fundamentos do desenvolvimento com Oracle 10g.

Pro*C/C++ User Guide 10g.

Referência do Oracle 10g.

Por fim, convém lembrar que ele roda em uma grande variedade de plataformas (mas não no Mac OS X, pelo o que eu sei), então é bastante provável que ele funcione no seu OS. Se quiser ir mais a fundo e conhecer mais, pode começar dando uma olhada nos links abaixo:

Biblioteca de Documentação.

Oracle Database na Wikipedia. Bom para conhecer um pouco da história e pegar mais links interessantes.

Oracle Corporation na Wikipedia. Igualmente bom pra conhecer a história do Oracle, da corporação, etc.

Escrevendo um sistema de arquivos

Neste link, existe um tutorial sobre como escrever um sistema de arquivos simples. Bastante interessante se você se interessa por desenvolvimento em baixo nível. Adicionalmente a este texto recomendo a leitura do Linux Kernel Development, escrito pelo Robert Love, engenheiro da Novel e figurinha conhecida no desenvolvimento do Linux.

Um pouco sobre Pro*C/C++

Pro*C/C++ é um pré-compilador da Oracle que permite ao usuário embutir cláusulas SQL diretamente no código-fonte em C/C++.
O Pro*C/C++ não é exatamente uma tecnologia revolucionária, interessante, confortável, ou qualquer coisa do tipo. Eu sequer gosto de trabalhar com ela, mas o Pro*C/C++ pode ser útil em alguns casos. Como tem pouco material sobre isso, em Português, tentarei escrever algum coisa (dependendo do meu humor de lidar com ela).

Frase genial da semana

Enterprises that consider developers “commodities and low level craftsman” are doomed to have (at best) average developers working for them.

(Empresas que consideram desenvolvedores como “commodities” e artesões de baixo nível estão condenadas a ter (na melhor das hipóteses) desenvolvedores medianos trabalhando para elas).

Fonte: Software By Rob & Coding Horror.