jaws
- 25 January, 11:32pm |
- jaws
- vida
This happens when someone with french accent says bad words in spanish.
Nicolas A.: chinga tu madré
Pablo: jaja
Nicolas A. Bérard: is that how you say it Y?

Pablo: yeah
Pablo: without the é
Nicolas A.: yes indeed
Nicolas A.: but it's pronounced madré
..
- 17 January, 11:24pm |
- jaws
- código
- vida
3 months coding full time (well, 80%) in Python and I'm really enjoying it!.. maybe cause I work @ a *pythonized* company?
- 14 April, 12:31pm |
- jaws
- código
Pues para que no les digan y no les cuenten, les comento que Jaws ha sido aceptado dentro del Google Code Summer of Code 2007 (gsoc2007).
En un principio se había propuesto agregar a Jaws como una organización y que los nuevos gadgets/features fueran parte de distintos proyectos, pero por decisión de Google y que algunas personas en la lista de correo no veíamos con buenos ojos no fue así y se prefirió apoyar a que Jaws fuera agregado como un proyecto per se a PHP.net.
Fue así que le propusimos a PHP a que Jaws fuera de las primeras aplicaciones web escritas en PHP6, La idea fue aceptada por muchos dentro de la comunidad de PHP y PEAR.
... [Read more...]
- 19 March, 6:36pm |
- jaws
- vida
El día de hoy me dí a la tarea de dedicarle un poco de cariño a mi blog y al código de Jaws. Así que junto con Ali y Helgi me dediqué a cerrar unos bugs de la versión 0.7.0 para así liberar la 0.7.1.
Luego de haber liberado (y no al topo precisamente
) me dije a mi mismo: "mi mismo.. ¿cambiamos el diseño del sitio?", y a lo que yo mismo respondí: vale. Así que me puse a buscar algún diseño en Open Source Web Design y me encontré con el tema de nonzero y lo sencillo que sería portarlo a Jaws.
El tema no lo publico pues lo pueden bajar de donde yo mismo lo bajé y adaptarlo a Jaws, ¿darles la adaptación a Jaws?, no le veo ninguna razón pues es para MI sitio
.
Tiene unos días de mi último post y diablos, como he tenido trabajo. La semana pasada sí estuvo algo cruel.. pero el día de hoy he estado tan tranquilo que me puedo tomar unos minutos para hacer un pequeño post 
Comentaba en mi post anterior que había ido al BarCamp en México (osea, en donde vivo
), entre los temas/ideas/proyectos que llegaron a salir:
... [Read more...]
Ayer fui al BarCamp en México, salieron pláticas divertidas. ion dio una plática de Jaws y surgieron algunas preguntas e ideas interesantes que espero escribir al final del día de hoy.
Sobre hoy, nada mas que termine de hacer unas cosas en mi casa y espero lanzarme al BarCamp de nuevo.
Ando en un proyecto que tiene que ver con facturas electrónicas del SAT y he estado usando dos lenguajes (Perl y PHP). Lo siguiente pasa cuando uno trabaja mucho tiempo:
$ perl validar-sat.php
Unterminated <> operator at validar-sat.php line 1.
Me tomó como 5 minutos encontrar el error: estaba tratando de ejecutar un test class en Perl
.
Ah por cierto, anuncio para la perrada: ha salido la primera beta de Jaws 0.7, bajenla, pruebenla y disfrutenla (aunque suene a albur).
I've been working (developing gadgets) for a company and one of the requirements was to make Jaws run in Internet Explorer without loosing the layout/design.
Today I finished the task and I'm very glad to see Jaws & IE running very nice
.
Now I just need some free time to port my changes to trunk so IE users can enjoy the power of Jaws!
- 20 September, 2:08pm |
- jaws
Wow, my last post was August 1st and I can see that I've been so busy
. I've been so busy at school and Jaws. But today I feel a bit inspired and I have some time to write something..
We have been working very hard on Jaws, specially Helgi. Currently I'm ajaxing some gadgets and my goal is to ajax all the gadgets before we start releasing the RC (Release Candidates).. that we think it will happen next week.
New features:
- Use of PEAR, the reason is that we just want to focus on Jaws.
- Use of MDB2 (Database Abstraction Layer), so we can support other DBMS (like PostgreSQL, SQLServer, etc..), however we are only testing Jaws on MySQL... we are looking for beta-testers.
- Faq has some nice effects (from script.aculo.us) to order categories.
- Jaws is faster, loads faster, less memory and proc.
- Antispam features (captchas, filter -bayes-, etc).
- FastUrls, so one can read the posts of the Foobar category by just going to: index.php?Category/Foobar. Also, users can create their own 'FastUrl', so this post can be: index.php?Dont_Stop_Questioning.
- A new gadget (Jms): to install/uninstall/manage gadgets and plugins.
- New gadgets: Emblems and Block.
And much more!
At this time I'm just seeing numbers and name of Bayes everywhere in my house. The reason is that I've been coding many different stuff for Jaws 0.6, one of the last hacks is about a Spam Filter.
Yes, many of us have been attacked by spam in our comments and chatbox, the most common spam message is about a 'Casino', you can see many of this spam messages in some entries of ion's blog (here's one). So I decided one month ago to write/implement some existant filter for Jaws and I decided to use one that is based on the Bayes theorem (or in spanish).
... [Read more...]
I've been hacking these days in the items we would like to have in next Jaws (0.6).
Today we have 98% of code documented in PHPDoc, we have the licenses for Core (LGPL) and for gadgets (GPL) in their php documentation. Also ion created a new gadget named Blocks that he says it will surprise users
, it was Friday (the only day he surprise us with his hacks
) so I think it will be great
.
In the other side I finished the URL map stuff, now users can 'access' their gadgets (and actions) in easy and short urls.
... [Read more...]
Many people have asked to Jaws developers about how they can help the project (Jaws). Well, ion and me started writing the Jaws Bounties.
What are these Jaws Bounties about?. The Jaws Bounties are tasks that any user can start working and submit their task and get credits.
Why I said that any user can participate? Well, any user with any skills or language can start working with a task, these tasks can go from a simple document that describes something or a simple copy & paste to writing a PHP class that might be usefull to Jaws (and if class is nice we can push it to the PEAR packages).
Please give me ideas of tasks you would like to work on.
Español
*
Jaws 0.5 ha sido liberado, después de nueve meses de embarazo y un parto difícil ¡por fin ha nacido!. Aquí pueden ver las notas de liberación, y aquí lo pueden bajar.
English
*
After nine months of pregnancy, Jaws has been released, it was not an easy childbirth. You can read the release notes or you can download it.
Pues luego de un largo tiempo de espera, Jaws ha sido liberado.
Unicamente hay una diferencia, la versión que hemos liberado es una versión beta, vamos a liberar tres (3) beta's y luego la final (aprox. el 12-13 de abril).
En estas betas se busca:
- Usuarios que la quieran probar y buscarle bugs (no nuevos features).
- Traducciones. Actualmente hay gente trabajando para Alemán, Italiano y Español. Si se la quieren aventar en otro idioma pues adelante
.
Algunas recomendaciones:
- Hacerle todo tipo de pruebas a todos los gadgets
- Jaws no funciona en Internet Explorer, bueno, si funciona pero se ve bastante pitero, asi que no es considerado como bug
.
- No lo usen en producción, es decir, si tienen un sitio grande y famoso como Lawaloca no lo usen aún, mejor esperar a la versión estable (12-13 de Abril).
- Contamos con un instalador, pero también tenemos un script de Upgrade en SQL. Este no fue probado totalmente (nos lo acabamos de aventar
). Así que nos gustaría probar el upgrade también, pero haganlo en un respaldo no en su Base de Datos original.
Más información por acá
Un poco de Jaws
El día de hoy me dedique a cerrar algunos //bugs// de Jaws para su próxima liberación, de hecho no fueron bugs los de hoy, sino una serie de cosas que platicamos ion, imcsk8 y yo en el Consol 2005, en una plática //express// .
Para aquellos que quieran probar Jaws, pensamos liberar la versión beta dentro de dos o tres semanas y la final una o dos semanas después. La razón por la que no vamos a liberar la versión final de golpe es para que reporten los errores y se hagan las traducciones necesarias, ya que si no lo hacen.. pues la próxima versión sería hasta el siguiente año
, no, no se crean, pensamos que después de la versión 0.5, las otras versiones saldrán cada dos meses para que tengamos Jaws 1.0 poquito antes o después del Consol 2006.
Los cambios que faltan son mínimos, que es darle una 'pasadita' al gadget //Menu// y ion quiere hacerle unos cambios al gadget de //Faq// (nuevo).
Entre las monerias que tiene Jaws y algunos nos han pedido es la autentificación de usuarios, ahora contamos con unas cositas que se llaman: //AuthScripts// , que no son mas que archivos de una sola función que validan el usuario y password de distintas formas, por ejemplo en el ITESM Santa Fe usamos Jaws en la Dirección de Informática, actualmente estoy desarrollando una serie de gadgets (+-6) para administrar cositas de Cisco con el uso de SNMP. Y para validar a los usuarios usamos LDAP y no la base de datos, lo único que importa de los AuthScripts es que regresen true o false
.
Otro de esos //features// es el uso de Omni (nuestro manejador de Sesiones, hecho por imcsk8) para manejar el //LastResponse// , es decir, cada cosa que se hace en el gadget se puede guardar y luego extraerla, es útil, ya que por ejemplo en la versión anterior (0.4) cuando agregabamos una entrada al //Blog// y le dabamos //reload// (F5) en el browser nos volvía a hacer el //request// , con LastResponse ya no sucede pues guardamos la respuesta y luego usamos la función //header// .. así podemos recuperar la respuesta sin cualquier bronca.
Ahora pueden ver que la espera de un año vale la pena
. Incluso, le comentaba a ion y a otras personas que yo ya no considero a Jaws un sistema para 'Blogs', pues hemos estado desarrollando Jaws para necesidades generales, así que Jaws pues pasa de ser un sistema de blogs a un //framework// para hacer gadgets de cualquier tipo (administrativos, diversión, entretenimiento, etc) y usar todas las ventajas que Jaws da:
- Manejo de sesiones compartido (web, webservices, celulares)
- Un registry muy al estilo de gconf
- Instalación y UI amigable con el usuario, uno se tiene que dedicar únicamente a desarrollar su gadget y el 'motor' de Jaws lo hará bonito y todo sea con el uso del mouse.
- Autentificación de usuarios de distintas maneras (Base de Datos, LDAP, POP3, etc.)
- Y la facilidad que piwi da para el manejo de Widgets sencillos (botones, cajas de texto) o vanzados (hbox, vbox, grids, forms, validadores, fieldsets, etc).
De hecho yo ya consideraría estable a Jaws, pero nos faltan detallitos que hemos ido dejado por el tiempo. Vamos a necesitar unos cuantos beta testers por una o dos semanas para que usen Jaws y estar arreglando los bugs (no nuevos features) que salgan.
Tantos features que sólo falta que alguien nos suelte una lana para hacer Jaws en ASP.NET
.
Por cierto, mientras le daba commit a todos mis cambios, creo que el script de SourceForge para la lista de commits 'tronó', pues cuando iba por el commit del archivo #23...
Mailing jaws-project-commits_at_lists_dot_sourceforge_dot_net_dotdotdot_
Generating notification message...
Traceback (most recent call last):
File "/cvsroot/sitedocs/CVSROOT/cvstools/syncmail", line 433, in ?
main()
File "/cvsroot/sitedocs/CVSROOT/cvstools/syncmail", line 426, in main
contextlines, fromhost, replyto)
File "/cvsroot/sitedocs/CVSROOT/cvstools/syncmail", line 253, in blast_mail
resp = conn.sendmail(address, people, s.getvalue())
File "/usr/lib/python2.2/smtplib.py", line 654, in sendmail
if not (200 <= self.ehlo()[0] <= 299):
File "/usr/lib/python2.2/smtplib.py", line 384, in ehlo
(code,msg)=self.getreply()
File "/usr/lib/python2.2/smtplib.py", line 335, in getreply
raise SMTPServerDisconnected("Connection unexpectedly closed")
Y casi nada de Debian
El día de ayer por fin encontramos un Debian Developer que estuviera dispuesto a ayudarnos a subir los paquetes mientras que Eduard Bloch termina sus estudios
.
El día de ayer subimos XSP a unstable (versión 1.0.5, y la última 1.0.x) y en la semana le toca a libapache-mod-mono y prj2make-sharp, que son los paquetes que mantengo.
De hecho es la última versión que subimos de la saga 1.0.x de Mono. Miguel nos convenció y comentó que la saga 1.1.x es mucho más estable y con más features que la 1.0.x. Así que las siguientes versiones serán de la saga 1.1.x
, aparte de hacernos sugerencias y recomendaciones sobre nuestros paquetes y fallas que les ha encontrado.
Me gustó mucho que se haya tomado esa decisión, pues yo no creía que fuera a ser posible pues gran cantidad de debianeros tienen la idea que ellos son perfectos en su trabajo y de cabeza cuadrada
, así que ya voy a poder probar otras versiones de Mono
- 11 February, 12:43am |
- jaws
Últimamente en Jaws hemos estado haciendo 'algunos' cambios para la nueva versión (de la cual aún no tenemos fecha
).
Algunos cambios importantes son:
- Mover todo a una nueva estructura de directorios, con la única finalidad de hacer más sencilla la instalación de gadgets nuevos.
- Así mismo estuve jugando con GetText para el manejo de traducciones y definitivamente no vamos a usar archivos .mo para la traducción. Vamos a seguir usando nuestros horribles 'defines' pero en una nueva estructura de directorios, es decir, cada gadget va a tener sus 'idiomas' (al contrario de antes, que los idiomas se encontraban en directorios algo raros). La razón por la cual no vamos a usar GetText es obvia: GetText depende de las locales que se encuentren instaladas en el sistema, creo que a excepción de las distribuciones 'comerciales' (Suse, N. Desktop, Fedora) las locales tienen que ser instaladas por el administrador. ¿Entonces que caso tiene tener la traducción a Koreano o Italiano para los visitantes si no contamos con esas locales en el sistema?.. Sí ya sabemos que hay un 'truco' para leer un archivo .mo y forzarlo, pero es como... comprar un Mustang y correrlo a 60 kilometros...
- Hemos creado una nueva 'parte' que va a ser necesaria para los gadgets, va a ser la información del gadget, su nombre va a ser: NombredelgadgetInfo, por ejemplo: BlogInfo.php que se encontrará en el directorio donde el gadget Blog va a estar (en caso de ser blog, sino en friends, phoo, etc). Lo que va a decir ese archivo es el nombre del gadget, descripción, versión, servicios que va a ofrecer (wsdl, ws, xmlrpc, etc) y sus 'depends' (se ve que mis preferencias en Debian no tuvieron mucho efecto aquí en los depends
). Y claro, cuando el usuario entre al Info del gadget se le va a mostrar una bonita pantalla al estilo PHP en phpinfo () con la información del gadget.
Aparte he creado un artículo sobre la siguiente versión, la versión en español la pueden ver aquí, mientras que la versión en inglés la pueden ver acá.
Si leen el artículo verán que puede ser algo 'molesto' para aquellos que no entienden ni jota de hacer clases, pero su gran ventaja es la instalación de gadgets, ya no se tienen que preocupar por poner un INSTALL donde digan que se debe crear una nueva entrada en el registro y bla bla bla.... de eso nos encargamos nosotros
.. Vaya, todo parece tan bien (digo, es obvio, llevamos desarrollando el nuevo Jaws desde Septiembre) que hasta dan ganas de empezar a hacer un 'port' a ASP.NET (sí sí, aunque a muchos 'gnus' les salgan ronchas y les pasen cosas inexplicables por sus mentes)
.
If you don't speak spanish, I will tell you fast: If you are interested in 'What is coming in next Jaws' you should read this doc to get an idea of some of the big changes coming.
- 20 September, 6:10pm |
- jaws
He creado otro interesante Widget
.
Al widget lo he bautizado como DataGrid (ion, si se te ocurre otro nombre.. dilo
). Qu hace?.... pues como todo lo que yo hago: magia.
Para los que han usado Jaws posiblemente me entiendan. Han visto que en la administracin de Jaws manejamos tablas para desplegar informacin, que tienen accciones (editar, borrar, etc) y cada fila tiene un color diferente.. bien pues eso es un JawsDataGrid.
Pero entonces qu hace el mentado Widget?.. pues de nuevo: Magia. Pueden crear la lista con un objeto, agregarle encabezados, propiedad de hidden a las columnas, sort a cualquier columna y claro todo el trique de diseo para una tabla.
Veamos...
$model =
new BlogModel
();
$datagrid = new JWDataGrid ("50%", $_REQUEST["orderby"], $_REQUEST["ordertype"]);
Lo que hacemos es crear el modelo (en jaws-mvc van a entender...
) y creamos un DataGrid que va a tener un tamao de 50%, va a recibir el argumento de orderby (para ver si se tiene que ordenar con respecto a una columna) y que tipo de ordenacin (ASC, DESC).
Bien... ahora veamos:
$datagrid->AddColumn ("Username", "username", true, false, "", "?unacosa=pablo");
$datagrid->AddColumn ("Category", "category", true, false, "", "?otracosa=124");
$datagrid->AddColumn ("ID", "id", true, true);
Lo que hacemos es agregar tres columnas, los argumentos son como siguen: Nombre de la columna (va a aparecer a la hora de renderear el html, el campo que corresponde a un arreglo -indexeado-, se le indica si puede ser 'ordenable' (osea.. ASC, DESC), se le indica si es hidden (osea.. que nadie lo vea
), se le agrega el estilo a la columna (me di cuenta que en Jaws tenemos estilos para cada tipo de columna.. asi que se me hizo buena idea) y el otro argumento es la url.. como ven la url tiene un formato chistoso: 124, qu son esas etiquetas?.. ah pues le indicamos que esa va a ser la url, pero el valor de 'otracosa' va a ser el 'id'. De esta manera la url se va generando automticamente.
Las urls, no son las acciones propiamente.. sino 'propiedades' en forma de link para cada campo.
Los nicos campos requeridos son: el ttulo de la columna y el dato que va a cargar, los dems son valores que se pueden tomar por default.
Bien.. ahora vienen las acciones:
$datagrid->AddAction ("Delete", "http://www.google.com.mx");
$datagrid->AddAction ("Edit", "index.php?variable=pablo&variable2={category}&id=124");
Y as se manejan, van a ir en una columna especial llamada: Actions, que bsicamente es el Nombre de la accin, su url y su imagen (opcional, pero si se agrega se usa la imagen y no el nombre).
Y finalmente.. los datos!
$datagrid->AddData ($model->GetEntries());
Que no es mas que un array indexeado 
Y listo, para mostrarlo pues
Ahora podemos hacer listas en un dos-por-tres. Qu me traj a todo esto?.. pues me estaba aburriendo de hacer listitas para una aplicacin del Tec
.
A New Machine - Pink Floyd
- 19 September, 4:25pm |
- jaws
Bueno.. pues ya termino el puente (si que puente para mi, desde el martes me lo tome
).
He estado descansando y viendo una que otra movie, la que les recomiendo es: Les Triplettes de Belleville (Las Trillizas de Belleville), es una película francesa.. sin títulos ni nada.. vas.. te sientas y disfrutas de un excelente película dejando volar tu imaginación
. Excelente película!. Luego fui a ver la de Fahrenheit 9/11, realmente fui por morbo más que para verla.. digamos que es una película buena, y la trama es la que muchos conocemos (por obvias razones), pero pasan datos chidos y te das cuenta que la mayoría de los gringos andan algo tapados del cerebro
, bueno que puedo decir de nosotros.. pero creo que ellos nos ganan en el asunto de Septiembre 11.
Jaws
Actualmente ando terminando un sistemita para manejar todo el asunto de telefonía del Tec y para ahorrar mucho código pues ando usando gran parte de jaws-mvc, claro editando cosas.. hay cosas que no uso y otras que si y le faltan.
Ayer que estaba trabajando en la parte final, en los formularios de cada sección me dio harta flojera y traté de jugar con Pof que te permite hacer los formularios en un dos-por-tres. Pero maneja tantos.. tantos arreglos la cosa esa que a la hora de usar el ident de emacs ya le perdías el bonito diseño... llegaban momentos en que un array te quedaba en otro lado..
¿Qué me puse a hacer?, pues mejor me puse a trabajar en Jaws MVC, en un nuevo widget: JWForm, es un simple widget que va a permitir crear formularios de una manera rápida y te agrega validadores para los campos, es decir, podemos usar lo siguiente:
$entry = new JWEntry ("nombre", "");
$entry->Required = true;
$entry->Title = "First Name";
Que nos va a crear un input en HTML con el nombre: nombre y le indicamos que es requerido, el Title es un feature que le agregué a los Widgets para usar los formularios, que es agregarle en el lado izquierdo una etiqueta que traiga el Title.. vamos.. como cualquier formulario.
Incluso podemos agregar JWEntries de:
$entry = new JWEntry ("nombre", "");
$entry->Required = true;
$entry->Title = "First Name";
$entry->SpecialType = VALID_EMAIL;
Lo que hara es lo mismo, pero aparte va a validar el campo para que sea de tipo EMAIL, si el campo no se encuentra en el formato correcto pues manda un warning, de esta manera te aseguras que tus datos van a llegar como los quieres y te ahorras validaciones en el PHP.
El Forms?.
$form = new JWForm ("formulario", "Formulario", "index.php", "POST");
$form->Space = 5;
Creamos un formulario que va a tener el nombre: formulario, con el nombre: Formulario, su action y su method. Y así, para agregar cualquier widget al formulario se hace:
$entry =
new JWEntry
("nombre",
"");
$entry->
Required =
true;
$entry->
Title =
"First Name";
$entry->
SpecialType = VALID_EMAIL;
$form = new JWForm ("formulario", "Formulario", "index.php", "POST");
$form->Space = 5;
$form->AddItem ($entry);
O si queremos agregar un botón (los submits y esos triques), pues:
$form =
new JWForm
("formulario",
"Formulario",
"index.php",
"POST");
$form->
Space =
5;
$submit = new JWButton ("aceptar", "Aceptar");
$submit->IsSubmit = true;
$form->AddButton ($submit);
Y cuando damos el Get al JWForm pues nos imprime un formulario tabulado y nos agrega un onSubmit al formulario con su validadores (creando una función en JavaScript).
Aparte agregué un JWComment, que fue un feature que le vi a Pof, que es el agregar 'comentarios' a los campos, es decir, podemos crear un Entry y agregarle un comentario de tipo: "Recuerda que debes escribir algo en X formato".
Así nos ahorramos mucho código HTML (tan molesto para los no-diseñadores) y todo lo vamos creando en objetos.
En fin... eso es todo 
Pink Floyd - Works - Fearless
Bueno, el día de hoy (bueno.. de ayer) lo he dedicado a descansar de toda la semana, de trabajitos del servicio social, trabajitos de la familia y del entrenamiento.
Así que hoy mientras estaba viendo una película muy chida en Fox me dediqué a hacer los directorios virtuales de jaws para el filebrowser.
Pero que rayos son los directorios virtuales de Jaws? (conocidos como JawsVirtualDirs). Pues es una idea que se me ha ocurrido para los webservices que va a traer jaws (la versión anterior la dediqué al uso de plugins y XML, la voy a dedicar totalmente a webservices de CADA gadget).... bueno bueno. Imaginemos lo siguiente: Vamos a nuestro gadget filebrowser y vemos que tenemos un directorio: foo, así que pues le damos click. Dentro del directorio foo tenemos un archivo que se llama: .jaws_filebrowser. Dentro de este archivo tenemos la siguiente información:
jaws_host=http://ion.gluch.org.mx
jaws_dir=pable
¿Qué quiere decir el archivo .jaws_filebrowser?. Pues simplemente cuando el gadget trate de leerlo, lo primero que debe leer es .jaws_filebrowser, que le indica que haga una conexión al blog de ion y nos muestre su directorio (localizado en data/files/) que tiene como nombre: pable. Así que lanza un cliente WebService para 'consumir' el webservice filebrowser y pedirle los archivos. El servidor le va a regresar el contenido de ese directorio (junto con los nombres de directorios que este tenga) con cierta información (tamaño, nombre, si es un directorio, icono, url al archivo/directorio, etc, etc).
De esta manera ya podemos crear (en la versión CVS) directorios virtuales, así que si me interesa un directorio de cierto amigo que usa jaws.
Igual, como es un webservice se puede usar en Mono, Perl, Java o lo que queramos. Un simple ejemplo?
Supongamos que ya tenemos nuestro ProxyClient en nuestra máquina, así que podemos hacer lo siguiente:
JawsAdminWS cliente = new JawsAdminWS
();
foreach (JawsFile jfile in cliente.GetFiles ("pablo")) {
Console.WriteLine (jfile.date + " con el nombre de " + jfile.filename);
}
Con esto le pedimos los JawsFile's (File ya existía, así que tuve que crear otro nombre
), del directorio pablo (que se encuentra en files).. pero que tenemos en pablo?
pablo]$ ls -a
. .. .jaws_filebrowser yaka
Ohhh.. tenemos un .jaws_filebrowser.. que puede tener?..
pablo]$ cat .jaws_filebrowser
jaws_host=http://localhost/jaws/
jaws_dir=pable
Bien!, nos dice que es jaws_host (donde tengo el blog) es http://localhost/jaws/ y el directorio que le pedimos es pable (ES DIFERENTE a pablo, el que le pedimos originalmente).
Y veamos.. que tiene el directorio pable (que YA es un directorio remoto, que se encuentra en http://localhost/jaws/).
$ ls -a
. .. 1280_liz.jpg adios adios.png hola
Bien, nos dice que el directorio virtual pable tiene esos archivos.. uhm, entonces en total son cinco archivos, cierto?, los mios (el de yaka) y los remotos (1280, adios, adios.png y hola)..
Entonces...
$ mono Admin.exe
18/07/2004 0:11:30 con el nombre de hola
18/07/2004 0:11:31 con el nombre de adios
18/07/2004 0:29:24 con el nombre de adios.png
18/07/2004 1:47:35 con el nombre de 1280_liz.jpg
18/07/2004 0:01:28 con el nombre de yaka
Bien!!!, ya muestra todos, aunque sean virtuales!. Lo que falta es crear el webservice de filebrowser (probando estoy usando el de admin, pero solo es copy & paste a webservices/filebrowser.php, cosa de cinco minutos).
Inspirado en: Painted Black, de Rolling Stones (bueno en la versión de Mephisto)
I see the gods walk by dressed in their summer clothes
I have to turn my head until the darkness goes
Como muchos ya saben, hemos liberado la versión 0.4 de Jaws, la cual tiene por 'alias': Well Its True That We Love One Another (una canción que estaba escuchando mientras buscabamos un nombre).. medio cursi el nombre
.
Bueno, Jaws 0.4 ha sido la admiración de muchos por todas las cosas que trae ahora.. sin embargo se ha ganado el repudio por forzar el encoding.
En mi caso no tengo ningún problema, pero ya he probado en blogs que tienen el problema y creo que tenemos la solución, posiblemente liberemos un Jaws 0.4.1 (con un nombre MAS cursi) que va a tener todos los fixes
.
El problema es 'sencillo', bueno no es uno.. son tres:
* He encontrado que la librería classTextile (que se encuentra en php) forza el encoding, sin importar si el usuario lo necesita o no. Una solución es el comentar la linea
$text = $this->encodeEntities($text);
* Otro problema es el encoding que las páginas tienen y que ion ha forzado a aplicarlo en los temas (te dije ion!
). Es decir, ahora usamos un 'encoding' en el registry, el cual el usuario puede configurar. La bronca es que ese encoding se 'pega' en el theme que el usuario este usando. Es decir, si el usuario anda usando un template que dice: UTF-8, pues ya se la pelo, porque SOLO le va a funcionar con UTF-8. Bueno no es tanta bronca esto si se quita del layout.html del template el encoding. Si se lo quitamos el browser/apache se pueden hace cargo (el browser lo puede configurar el cliente y el apache puede ser CAPAZ de forzar el encoding o poner uno por default, el DefaultCharSet).
* Ahora, que si aparte de usar un encoding 'forzado' en nuestro html, le aplicamos a que guarde texto en la BD 'forzando' de nuevo al encoding pues ya se imaginan.. seria como un 'doble encoding'. Me he dado cuenta que cuando mandas un texto por POST, el texto va a ir en el encodign que este configurado el HTML, asi que si le aplicas de nuevo el 'encoding' pues se hace: basura. La solución es hacer como era en Jaws 0.3: no usar htmlentities ni htmlspecialchars, no preocuparnos por el encoding, que el browser y el apache se preocupen por el. Claro, muchos van a brincar: "como carajos piensas dejar a X usuario a que escriba un comentario sin htmlentities".. calma, calma, para eso tenemos el str_replace y strip_tags.. para quitar esos 'malevolos' tags.
Las soluciones ya las tenemos y probadas, ahora falta aplicarlas a todos los temas y .php's.
Ahora ando escuchando Primus, Sugarcubes y Björk:
Primus - The Family and the Fishing Net