dimarts, 12 de juny del 2007

Manuals + Més bugs per variar

Ja he fet els manuals bonics i els he traduït a tots els idiomes que sé, el d'anglès fa por por por.

Per variar també he arreglat un bug amb la exportació/importació d'imatges ja que no processava bé la etiqueta [[Image:]] de la NWiki, un problema menys.

Ara toca a posar-se fer la memòria volant i de pressa ja que el temps s'acaba!!!

Demà hi ha reunió una altra vegada que aprofitaré per a preguntar quins requisits ha de tenir la memòria :P

Etiquetes de comentaris:

dilluns, 11 de juny del 2007

Importing + Bugs

Després d'una bona patum bastant intensa (jojoojjo) us comento el que he fet els últims dies:

Les importacions d'imatges ja funcionen correctament, ara ja es pot importar un document, modificar-lo, etc i al tornar a guardar-lo a la wiki es conserven les imatges que hi havia, etc.

L'entorn de les proves ha estat el següent:

  • Windows XP - OpenOffice 2.2
  • Linux (Debian) - OpenOffice 2.2.1

Amb altres versions d'OO hauria de funcionar però qui sap... s'haurien de fer més proves i si no funciona fer un workaround amb doble tirabuixó.

També he corregit uns quants bugs:
  • El wikiid i courseiid només agafen números de 1 digit
  • Les imatges al exportar/importar no es guardaven
  • Si a un document hi havia imatges en altres directoris no s'importaven/exportaven bé
  • Arreglat alguns problemes amb la transformació xsl sobre l'html (l'OO no genera els headings de nivell 1 bé, bug bug bug)
  • La transformació xsl també fallava amb els links (l'OO tampoc els generava bé!)
  • Problemes amb windows/linux a l'escriure fitxers binaris (el contingut de les imatges)
Ara em dedicaré a fer els manuals macos macos macos i testejar amb altres versions d'OO.

Etiquetes de comentaris:

dimecres, 6 de juny del 2007

Importing Images

Doncs més o menys ja ho tinc fet però hi ha uns quants problemes, com sempre.

La qüestió és que la NWiki em retorna un HTML de la pàgina, que vol dir això?

Doncs que no em retorna el contingut de les imatges i els headings estan limitats a 6 nivells!

Situació actual:

Mitjançant un codi brut i lleig aconsegueixo llegir les imatges que hi ha a la NWiki i les guardo a un directori temporal.

Agafo el codi HTML de la pàgina i el mostro a l'OpenOffice en format Writer, però la limitació dels 6 nivells hi és....

Les imatges es mostren correctament, però a l'hora de tornar a guardar el fitxer no es pugen ja que no estan dins el .odt de OpenOffice sino que estan linkades directaments a fitxers del disc dur.


Solucions:

  • Arreglar això de que no es pugin les imatges amb una mica de paciència es pot arreglar
  • Els headings limitats a 6 nivells és una limitació del HTML, ni idea de com arreglar-lo
  • Fer un parser nou de NWiki <-> OpenOffice i que et generi un .odt vàlid amb les imatges a dins encapsulades -> problema, no hi ha gaire temps!!!

Etiquetes de comentaris:

Windows Capable

Faré un copy paste del post al fòrum.....

Afortunadament (sic!) ja funciona per windows la OOwiki.

Es pot baixar del cvs de sf.

Què no va encara?

L'importació d'imatges encara se'm resisteix però ja està bastant avançat, aquest cap de setmana estarà acabat.

Què falta?

Falten els manuals en castellà i anglès, ja que estic fent el de català i fins que no estigui maco i bé no el replicaré a altres idiomes. De moment hi ha això.

Arreglar bugs, que ja en tinc localitzats un parell :P

Com s'instal·la?

Doncs per la extensió només s'ha de seguir el manual anterior.

Pel webservice s'ha de copiar la carpeta wsimport del cvs i posar-la xxx/mod/wiki/

PD: Avui la reunió és virtual via fòrum

Etiquetes de comentaris:

dilluns, 4 de juny del 2007

Zlib & OpenOffice & Windows

Gràcies al fet que OpenOffice no suporti la zlib a windows m'ha complicat molt la vida. El fet és que enlloc diu que no ho suporti.... però fent una cerca exhaustiva a google....:

Task Description Main 'challenges'
Add support zlib library (and more ...) Currently, OOo's python comes without these libraries which are missed a lot by python users. Ideally, they should reuse the versions of zlib, which are already in the OOo source tree. OOo build knowledge, continue to maintain the build for both Windows and Unix platforms


Conclusió un codi que només hauria de fer 4 línies:

zip = zipfile.ZipFile(postdump.name, 'r')
for filename in zip.namelist():
if filename=="content.xml":
lines.append(zip.read(filename))
if filename.startswith("Pictures"):
lines.append(filename)
lines.append(zip.read(filename))
zip.close


Ara s'ha convertit en un monstre de 36 línies fent servir el packet que incorpora OpenOffice per a comprimir/descomprimir arxius.

Consulteu "com.sun.star.packages.Package" per a més informació.

Com sempre, la documentació d'OpenOffice sobre la api és molt maca i tal, però intentar fer qualsevol funció en que no hi hagui cap codi d'exemple és un autèntic malson!!!!!!

PD: Ara descansaré i miraré si finalment el codi va per windows, horror!!!!

Etiquetes de comentaris:

diumenge, 3 de juny del 2007

Bugs II & Windows fa pudor

Aquests dies he estat arreglant més bugs:

  • No creava el directori de la wiki si no hi era (si no hi ha el directori creat i intento penjar imatges a un subdirectori d'aquest... doncs pum pum pum)
  • Permisos de l'admin sobre els cursos (com que els admins no estan inscrits a cap curs, ni els hi cal, doncs els admins no podien inserir cap document enlloc)
  • Només es podien pujar imatges si hi havia les caselles de student can attach&&upload, ara els teachers, admins o qui tingui permis pot fer-ho també

Problemes amb windows..... és per això que fa pudor, com sempre:

  • La versió per windows de python no suporta la llibreria zlib, que vol dir això?
Traceback (most recent call last):
File "c:\zip.py", line 9, in ?
print zip.read(file)
File "C:\Archivos de programa\OpenOffice.org 2.2\program\python-core-2.3.4
\lib
\zipfile.py", line 353, in read
raise RuntimeError, \
RuntimeError: De-compression requires the (missing) zlib module

Conclusió, que hauré de trobar/inventar-me alguna cosa per descomprimir zip's a windows o no funcionarà l'aplicació ni de broma....

És una bona putada i tocada de collons això de la zlib.

En fi, vaig a mirar solucions!

PD: Ja sento el tabal uuuuuuuuuuuuuu

Etiquetes de comentaris:

divendres, 1 de juny del 2007

Bugs & Manual

He corregit uns quants bugs de l'aplicació:
  • No es veien els accents al menú de l'OOWiki
  • L'admin no podia accedir a cap curs
  • El wikibook no s'inseria bé
I per fi ja hi ha el manual d'usuari de l'aplicació a la wiki!!!!

El TODO del cap de setmana és:
  • Importació de les imatges -> Encara no he decidit com
  • Windows -> Encara no va
  • Permisos -> Mirar bé tots els permisos!!!! (rols,admins,guests) em sembla que algun lloc no ho fa del tot bé
  • Manuals en altres idiomes
  • Bug's que vaiguin sortint....

Etiquetes de comentaris:

dijous, 31 de maig del 2007

11º Reunió

Alguns us preguntareu.... i la 10º reunió on és???? Doncs va morir en el cyberespai abans que l'escrigués....

Que vam comentar aquesta vegada?

Doncs en principi hem de començar a tancar tot el que estiguem desenvolupant i centrar-nos a arreglar els nostres propis bugs.

Demà o ves a saber quan hi haurà una release de la nwiki amb unes quantes coses noves que hem fet, o sigui que ens hem de posar les piles per a la recta final.

Jo de moment continuo amb el OOwiki ja que al importar, el tema de les imatges és una mica complicat...

Entra avui i demà intentaré corregir el màxim d'errors possibles per la release en qüestió!

En fi, a pencar.

PD: CLICKEU ELS MEUS ANUNCIS!!!!! FEU-ME RIC!!!!!!!

Etiquetes de comentaris:

diumenge, 27 de maig del 2007

Locales

He estat jugant una mica més amb les locales del OO.

EL que feia fins ara era agafar les locales del document que estaves escrivint i per tant posar el menú segons aquest idioma, no era la millor forma de fer-ho però funcionava.....

L'exemple aquí mateix:
def getLocale(ctx): smgr = ctx.ServiceManager desktop = smgr.createInstanceWithContext( "com.sun.star.frame.Desktop",ctx) model = desktop.getCurrentComponent() text = model.Text cursor = text.createTextCursor() locale = cursor.getPropertyValue("CharLocale") lang = locale.Language print lang

Ara he trobat una altra forma que és agafar directament el llenguatge que estàs fent servir a l'OpenOffice, el que fa es mirar el document de l'OO openoffice.org2/user/registry/data/org/openoffice/Setup.xcu el valor de ooLocale.

El contingut del fitxer és el següent:

tup" oor:package="org.openoffice"> ca

.....

I el codi:

def getOOoSetupValue(ctx,sNodePath,sValue):
sProvider = "com.sun.star.configuration.ConfigurationProvider"
sAccess = "com.sun.star.configuration.ConfigurationAccess"
aConfigProvider = ctx.ServiceManager.createInstance(sProvider)
prop = uno.createUnoStruct('com.sun.star.beans.PropertyValue')
prop.Name = "nodepath"
prop.Value = sNodePath
aSettings = aConfigProvider.createInstanceWithArguments(sAccess,(prop,))
return aSettings.getByName(sValue)

def getLocale(ctx):
ooLocale = getOOoSetupValue(ctx,"/org.openoffice.Setup/L10N","ooLocale")
print ooLocale

Com es pot veure fer les coses amb Python és _MOLT FÀCIL_ però l'OpenOffice és _MOLT PUTA_

Unes captures de pantalla:

LC_ALL=ca_AD.utf8 oowriter




LC_ALL=es_ES.utf8 oowriter



LC_ALL=en_US.utf8 oowriter



PD: Minor bugfixes with UTF-8 JO!JO!JO!

PD2: Jo ja he votat per botar l'alcalde, i tu?

Etiquetes de comentaris:

dissabte, 26 de maig del 2007

Perfilant....

Doncs aquests dies he fet poca cosa però tinc una excusa molt bona..... estava malalt.

Demà espero estar al 100% i tornar a l'atac.

Que he fet de nou?

  • Doncs ara l'aplicació és i18n compatible, en llenguatge planer, que suporta uns quants idiomes, de moment:
  • Anglès
  • Català
  • Castellà
Tants els menús de l'OpenOffice com els de l'extensió estan traduits (excepte els que m'hagi descuidat :P)

Com ho suporta? Doncs de manera molt cutre res de gettext() ni coses per l'estil, si algú mira el codi que no s'espanti!!!!

  • També he arreglat uns quants bug's que mostraven per pantalla merdereta.....
  • He afegit al XSL unes directives per a que m'ignori les TOC's dels documents i..... crec que això és tot.

Demà em centraré en la importació dels documents de manera correcta si no tinc gaire febre....

Queda pendent fer la acta de la última reunió.

I pel dilluns+dimarts toca fer el supermanual d'usuari de tot aquest merderum, buffff!!!!

Etiquetes de comentaris:

diumenge, 20 de maig del 2007

Subdivisions! Fet!

Tinc el gran honor de presentar-vos al senyor de les subdivisons.

D'una vegada per totes ja funcionen les subdivisions de la OOwiki, ara talla a trossets tot el text que vulguis i més sempre i quan hi hagi headings.

Funciona més bé que els ganivets aquells de la teletienda que no s'han d'esmolar en tres vides i tallen llaunes, congelats i parides vàries i diverses.

Ara només toca acabar d'arreglar el WikiBook ja que no em funciona del tot bé i continuar amb les TODO anteriors!

Feina feina feina feina!

Etiquetes de comentaris:

divendres, 18 de maig del 2007

9ª Reunió

Aquesta vegada la reunió ha estat molt interessant, feina pels descosits i la memòria a la foguera, qui vol començar-la a fer? uuuuuuuuu

Així és que la meva TODO list és la següent:
  • Arreglar els bug's de la OOWiki -> N'hi ha uns quants on et surt merdereta per pantalla, uh horror!
  • Arreglar les taules del filtre xsl -> S'ha canviat el format del parser de la NWiki!
  • Fer les subdivisions de la OOWiki per inserir les pàgines a la NWiki
  • Un cop fetes les subdivision implementar-ho amb el WikiBook de l'Albert
  • Fer que funcioni per Windows -> una vegada més postergat fins al final
  • Fer unes quantes proves per mirar que funcioni tot, no????
I ara la TODO hardcore:
  • Arreglar el plugin de Tiddlywiki finalment pel moodle 1.8 -> pànic!
  • Poder importar un document de la NWiki cap al OpenOffice -> de moment ho veig difícil, però no impossible, el problema no és enviar informació, si no com formataré la informació un cop l'importi a l'OpenOffice, en fi, hi ha tema per investigar.
  • Arreglar que _TOT_ s'exporti en PDF -> què és tot? Doncs ara no me'n recordo.... pero tot tot i tot!
I de moment és tot!

Avui Campionat ultrafreak de Bridge.

Stayman o Mort!

Etiquetes de comentaris:

dimarts, 15 de maig del 2007

OOWiki exporting

Avui he estat fent proves exportant un document d'OpenOffice a la NWiki.

EL resultat ha estat el següent:

Primer de tot tenim un fitxer d'OpenOffice molt bonic amb molts headings, imatges, llistes, etc etc etc



Després d'això apretem el fantàstic botó de save del menú de la Wiki i tralarà:



Ja tenim una fantàstica wiki creada amb l'OpenOffice. Genial!

Que queda per fer? Doncs la meva TODO list és la següent:

  • Fer el "subnivelling" segons els headers dels document, de moment hi ha dues opcions (encara s'han d'estudiar els avantages/inconvenients):
    • Manualment
    • Amb la wikiBook
  • Fer que funcioni tot correctament per WinKK
  • Arreglar el parser per a que funcionin les taules altra vegada
  • I finalment, arreglar petits bug's de la interfície gràfica tal com:
    • si selecciones un webservice erroni i selecciones el curs/wiki peta peta peta
    • si no poses cap url o una cosa inventada com 21381279213sajkdaasd peta peta peta
De moment no em deixo res, després a l'hora de la veritat suposa que ja aniran sortint coses a fer.....

Etiquetes de comentaris:

dissabte, 12 de maig del 2007

XML-RPC -> faultCode faultString

ALERT: NO sé com postejar codi XML, algú m'ajuda???

Se suposa que quan fas una cirda xml-rpc pots retornar una missatge d'error en cas de que no s'obtingui el resultat adequat o els paràmetres de la crida no siguin els que hagin de ser, en fi, que pot retornar errors.
ALERT!!!: NO sé com postejar codi XML si algú ho sap que m'avisi!!!


És per això que es retorna un XML format expressament amb dos paràmetres especials: faultCode i faultString

El format del XML és el següent:






faultCode

2002



faultString

courseList: Login Error







< values =" array('faultCode'"> $number,'faultString' => $string);
return xmlrpc_encode_request(NULL,$values);

I evidentment CAGADA PASTORET:

Al rebre el resultat veia el mateix resultat que a dalt, però el parser rebia el següent:





faultCode 2002 faultString courseList: Login Error





Un XML dintre un altre XML, o sigui que no podia veure on estava el problema ja que la sortida era la mateixa però la resposta del servidor no......

La solució? Doncs ben fàcil:

$values = array('faultCode' => $number,'faultString' => $string);
return $values;

El que passa és que un altre cop he perdut molt de temps per una tonteria on no podia identificar el que passava, cada dia els errors són més obscurs i google, com ja vaig dir uns posts dies endarrere ja no és el que era, i no m'ajuda a trobar documentació per descobrir les possibles errades que cometo.

És per això que he arribat a la següent conclusió: GOOGLE IS EVIL

Etiquetes de comentaris: , ,

divendres, 11 de maig del 2007

Dos dies perduts...

Dos dies perduts....

Fa dos dies que estava intentant integrar la API amb el server xml-rpc, no hi havia manera.....

El que fa uns dies em funcionava no anava ni a la de tres.

Avui he arribat a la conclusió, que alguna cosa no anava del tot bé, ja que no era normal.

Evidentment tot té una explicació, un maleit BUG del PHP!!!!!


http://bugs.php.net/bug.php?id=41293&edit=1


#41293 HTTP_RAW_POST_DATA fails to ever be set

La solució:

if (!isset($HTTP_RAW_POST_DATA)){
$HTTP_RAW_POST_DATA = file_get_contents('php://input');
}


Qui en té la culpa?

La Debian Sid ja que més o menys la tinc actualitzada dia a dia. Feia temps que no petava res important a la inestable, apart del fglrx l'altre dia....

Etiquetes de comentaris: , , ,

dijous, 10 de maig del 2007

8º Reunió

(En teoria és la 9º però com que estava de vacances no la compto :P)

La reunió ha anat com sempre, hem parlat de la nova API que s'està desenvolupant i els problemes que han sorgit, és per això que finalment continuarem amb la API que estàvem fent nosaltres i més tard, si l'altre API ja està del tot implementada ja farem el canvi.

O sigui que la feina per fer és integrar la API al servidor xml-rpc que he estat fent fins ara. De moment la cosa no rutlla del tot fi però temps al temps.

Un cop ja estigui fet, em tornaré a posar a fer feina amb la extensió i recuperar els temes pendents aparcats com ara la subdivisions de pàgines i la inserció d'imatges.

Vinga, a fer feina.

Etiquetes de comentaris:

dissabte, 5 de maig del 2007

XML-RPC++

A la espera de la API he començat a investigar una mica més sobre el XML-RPC, de moment, apart de l'exemple, he reutilitzat un codi de php.net i ara quedarà tot molt més bonic.

Les crides al xml-rpc s'emmagatzemaran a un directori plugins i el servidor les processarà i les registrarà com a crides xml-rpc sense haver de tocar cap línia de codi. Mola!

Així el servidor serà una mica més genèric i encara sortirà alguna cosa bona :P

També he implementat una nova funció per a que et llisti tots els mètodes disponibles del servidor, quina utilitat té? Doncs encara no ho sé... però segur que serà molt útil!


Per una altra banda he intentat registrar una compte d'adsense per treure'm uns cèntims de dolar al mes gràcies a l'adsense però....vet aquí el problema....

Hello Marc,

Thanks for your feedback.

Unfortunately, we don't provide support for Catalan at this time. Right
now, we're only able to offer language support and ad targeting for the
languages listed here:
https://www.google.com/support/adsense/bin/answer.py?answer=9727 . You
will notice that Spanish is among the languages that AdSense currently
supports.
While we look forward to supporting your particular language, we
don't yet have a date as to when AdSense will be available for you.

If you'd like to stay up-to-date with the languages we support, please
feel free to check back with us at the link provided above. Thanks for
your patience as we expand our program.

Sincerely,

Mel
The Google AdSense Team

Conclusió, m'estan incitant a que escrigui en castellà, cada dia que passa google s'està transformant en el diable, segur que el seu fundador en la intimitat era pèl roig i esquerrà (fet inequívoc de ser fill del diable).

Etiquetes de comentaris:

dilluns, 30 d’abril del 2007

XML-RPC

Ja he investigat una mica sobre com fer anar el XML-RPC sobre php i python.


Primer de tot farem una mica d'introducció de que és el XML-RPC, com que tampoc és una cosa molt difícil d'entendre el millor que podeu fer és anar a la següent web i llegir una mica.

Anem a la xixa, sobre php farem ús de la llibreria xml-rpc que inclou php5. Aquesta llibreria es basa en una de C, per a més informació podeu consultar la seva web.

He fet un petit exemple de com seria un servidor/client de xml-rpc, en php tindria aquesta pinta:

server.php


function coursesList($method, $params) {
//params[0]
$reply=array("CURS1","CURS2","CURS3","CURS4");
return $reply;
}

$server = xmlrpc_server_create();
xmlrpc_server_register_method($server, "coursesList", "coursesList");

$request = $HTTP_RAW_POST_DATA;

$options = array('output_type' => 'xml',
'verbosity' => 'pretty',
'escaping' => array('markup', 'non-ascii', 'non-print'),
'version' => 'xmlrpc',
'encoding' => 'utf-8');
xmlrpc_server_call_method($server, $request, $response, $options);
if ($response = xmlrpc_server_call_method($server, $request, $response, $options)){
header('Content-Type: text/xml');
echo $response;
}
xmlrpc_server_destroy($server);
?>


client.php



function do_call($host, $port, $request, $path, $agent) {
$fp = fsockopen($host, $port, $errno, $errstr);
$query = "POST ".$path." HTTP/1.0\n User_Agent: ".$agent."\nHost: ".$host."\nContent-Type: text/xml\nContent-Length: ".strlen($request)."\n\n".$request."\n";

if (!fputs($fp, $query, strlen($query))) {
$errstr = "Write error";
return 0;
}

$contents = '';
while (!feof($fp)) {
$contents .= fgets($fp);
}

fclose($fp);
return $contents;
}
$host = 'kuduk.no-ip.org';
$port = 80;
$path = '/xml-rpc/server.php';
$agent = 'OOwiki';
$request = xmlrpc_encode_request('coursesList', 'egg2');
$response = do_call($host, $port, $request, $path, $agent);
$xml=(substr($response, strpos($response, "\r\n\r\n")+4));
$result = xmlrpc_decode ($xml,'utf-8');
print_r($result);
?>
El que faria el client és fer una crida al servidor per a que retornes una llista de cursos ( a falta de tenir la nova API feta doncs ho hardcodejo com un campió) i el client rep la resposta i la transforma en un variable de php.

Ara bé, el client del servidor xml-rpc haurà de ser en python, és per això que també he hagut de cercar informació de com programar xml-rpc sobre pyhton. El resultat ha estat el següent: hi ha una llibreria que també ens facilita molt les coses.

I evidentment el codi del client és una delícia!

client.py

import xmlrpclib

server = xmlrpclib.ServerProxy("http://kuduk.no-ip.org/xml-rpc/server.php")
courses = server.coursesList()
print courses

Conclusió, ara falta que la API estigui enllestida i mirar de si funciona la xmlrpclib amb el pyuno d'OpenOffice.

Aviam amb quins problemes ens trobarem......

Etiquetes de comentaris: ,

diumenge, 29 d’abril del 2007

Filtre acabat!!!

Per fi, ja era hora! Visca!

El filtre ja el dono per enllestit, només canviaré els possibles bugs que sorgeixin un cop faci proves amb uns quants documents. Ara bé, que suporta? Doncs aquí teniu la llista:
  • Headings de l'1 al 10
  • Format:
    • Negreta
    • Subratllat
    • Negreta + subratllat
  • Paràgrafs
  • Links
  • Imatges
  • Llistes
    • Ordenades
    • No ordenades
  • Taules
Si m'he descuidat alguna cosa per fer doncs ja l'afegiré! Però l'important és que per fi és funcional!

Etiquetes de comentaris:

divendres, 27 d’abril del 2007

7º Reunió

Avui hem fet una reunió secreta amb informació confidencial.... així que no puc explicar gaires coses (tampoc en tinc ganes).

Hem parlat de la API de la wiki i finalment la feina que havíem fet fins ara no ens servirà de molt ja que l'API serà implementada per unes altres persones :P

Quina serà la nostra funció llavors? Doncs dir quines funcions volem que ens implementin per tenir operatiu el webservice.

Ens han dit que tindrem les funcions implementades en 48 hores a partir de que les demanem via mail..... algú si vol jugar unes volls? jojojojojo

Una altra cosa en tenir en compte és que el webservice l'haurem de modificar una mica per a que realitzi peticions a través de XML-RPC o sigui que ja tenim més feina per fer.....

A més a més , com a apoteosi final l'autenticació dels usuaris també canviarà i ho haurem de tenir en compte....

Conclusió: feina feina feina feina feina feina per fer.

Etiquetes de comentaris: