Daniel’s weblog

Forever trust in who we are

Organizarea fotografiilor digitale

By daniel at 10:32 pm on Octombrie 23, 2008 | No comments

Mi s-a intamplat de mai multe ori, dupa intoarcerea din concediu, sa simt nevoia unei aplicatii software de gestiune a “amintirilor” digitale. S-a intamplat mai demult si la momentul respectiv am ales Picasa. Vara acesta dupa ce m-am intors din concediu am vrut sa folosesc din nou Picasa – nu mi-a mai placut. Am ales in schimb Windows Live Photo Gallery. Motivul principal? Pentru ca informatiile editate cu aceasta aplicatie sunt salvate in fisierul imagine. De atunci incerc sa folosesc aceasta aplicatie ca si manager al fotografiilor mele. Un lucru am simtit eu ca lipsea – posibilitatea scrierii unor plugin-uri pentru publicarea fotografiilor pe diferite site-uri web. Nu zic ca WLPG e mai bun decat Picasa, zic doar ca mie (in momentul de fata) imi place mai mult WLPG. Am primit o confirmare ca am ales bine atunci cand am aflat ca urmatoarea versiune (acum in stadiu beta) suporta Publishing API. Interoperabilitatea – o caracteristica care cred ca influenteaza mult succesul unei applicatii software.

Înscris în: Software Leave A Comment »

“May All Your Names Resolve Successfully!”

By daniel at 10:13 pm on Octombrie 19, 2008 | No comments

Am avut mai multe incercari de-a lungul timpului sa editez documente folosind DocBook dar de fiecare data am ramas cu impresia ca este o metoda buna de “authoring” dar dificil de folosit. Cred ca documentatia in acest domeniu este foarte buna deorece este scrisa de oameni cu inclinare dar si care cunosc conceptele. Cu toate aceste este dificil pentru un incepator sa fie atras de aceasta modalitate de authoring pentru ca instalarea este relativ complicata, sunt multe versiuni, documentatia vasta. Si uneori mai apar si probleme de ordin tehnic!

Zilele acestea m-am confruntat din nou cu problema rezolvarii resurselor publice. Am inceput prin a scrie un articol folosind DocBook. XML-ul rezultat avea ca preambul urmatoarele:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML 5.0//EN"
"http://docbook.org/xml/5.0/dtd/docbook.dtd">

iar XSLT-ul folosit pentru generarea codului HTML incepea asa:

<?xml version="1.0" encoding="ASCII"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
version="1.0">
<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl"/>

Dupa cum se vede cel putin urmatoarele resurse web trebuiesc rezolvate:

http://docbook.org/xml/5.0/dtd/docbook.dtd
http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl

Sigur, acest lucru se poate face simplu prin accesarea din Internet a acestor resurse. Atunci cand nu avem Internet sau dorim ca acest lucru sa se intample rapid este indicat ca aceste resurse sa fie disponibile local iar rezolvarea lor sa se faca local. Exista Entity Resolution care defineste un format XML pentru asocierea resurselor referite la alte resurse (inclusiv resurse locale). Aceste fisiere XML sunt numite “catalog” care permit gestiunea a doua tipuri de asocieri:

  • asociaza o entitate externa la URI-ul unei resurse;
  • asociaza URI-ul unei resurse la un alt URI;

Exemplu de fisier catlog:

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="public">
<public publicId="-//OASIS//DTD DocBook XML 5.0//EN" uri="dtd/docbook.dtd"/>
<system systemId="http://docbook.org/xml/5.0/dtd/docbook.dtd" uri="dtd/docbook.dtd"/>
</catalog>

Pentru Java exista biblioteca Resolver care permite rezolvarea resurselor. Mai jos doua exemple:

daniel>java org.apache.xml.resolver.apps.resolver -d 99 -c d:/authoring/docbook-5.0/catalog.xml -p "-//OASIS//DTD DocBook XML 5.0//EN" public
Resolve PUBLIC (publicid, systemid):
public id: -//OASIS//DTD DocBook XML 5.0//EN
Result: file:d:/authoring/docbook-5.0/dtd/docbook.dtd

daniel>java org.apache.xml.resolver.apps.resolver -d 99 -c d:/authoring/docbook-5.0/catalog.xml -s "http://docbook.org/xml/5.0/dtd/docbook.dtd" system
Resolve SYSTEM (systemid):
system id: http://docbook.org/xml/5.0/dtd/docbook.dtd
Result: file:d:/authoring/docbook-5.0/dtd/docbook.dtd

Problema a inceput atunci cand am incercat sa folosesc aceasta biblioteca din ant. Exista elementul xmlcatalog care permite definirea unui catalog nou sau referirea unuia existent. Cand se refera un catalog extern este nevoie ca biblioteca resolver sa fie disponibila. Acest lucru este documentat:

In addition, external catalog files may be specified in a nested catalogpath, but they will be ignored unless the resolver library from xml-commons is available in the system classpath.

Deci important este ca resolver.jar sa fie in system classpath altfel obtinem o notificare de genul:

Warning: XML resolver not found; external catalogs will be ignored

Inchei cu urarea “May All Your Names Resolve Successfully!

Înscris în: Authoring, Languages Leave A Comment »
 

© 2008-2010 Olivian Daniel Tofan This work is licensed under a Creative Commons License