Life isn't about finding yourself. Life is about creating yourself.
El celoso ama más, pero el que no lo es ama mejor. Moliere

Instalando Koha

2010-08-30 16:16:32-05

Linux

Koha

Koha es una manejador de bibliotecas potente y completo desarrollado en Perl. Tiene una zona de administración y otra zona pública conocida como OPAC. Esta es el proceso de instalación en Debian Squeeze.

El sistema más usado de catalogación en las biblotecas es el Dewey. Una de las grandes ventajas de Koha es que no es necesario capturar los libros, simplemente se busca en el index Z39 del congreso de los Estados Unidos y otras bibliotecas alrededor del mundo y la información se importa a través del estándard MARC21 (un formato XML) que ya incluye la catalogación Dewey.

Descargamos la última versión:

$ wget http://download.koha-community.org/koha-3.00.06.tar.gz

$ tar -zxvf koha-3.00.06.tar.gz

$ cd koha-3.00.06

Instalamos el paquete Perl locale y las librerías Z39 y YAML:

$ sudo apt-get install liblocale-po-perl libnet-z3950-zoom-perl libyaml-libyaml-perl

Instalamos las traducciones de español y francés:

$ cd misc/translator && perl install-code.pl fr-FR es-ES

Instalamos dselect:

$sudo apt-get install dselect

Cargamos los paquetes:

$ sudo dpkg --set-selections < install_misc/debian.packages

Ejecutamos:

$ sudo dselect

Elegir (I)install, luego (C)onfigure y (Q)uit.

Instalamos por CPAN las otras dependencias:

$ sudo cpan MARC::Record Class::Accessor MARC::Charset MARC::File::XML \ Net::Z3950::ZOOM HTML::Template::Pro MARC::Crosswalk::DublinCore \
PDF::Reuse PDF::Reuse::Barcode Data::ICal GD::Barcode::UPCE \
XML::RSS Algorithm::CheckDigits::M43_001 Biblio::EndnoteStyle POE \
Schedule::At DBD::SQLite GD SMS::Send HTTP::OAI IPC::Cmd Text::CSV::Encoded

Nos logeamos dentro de MySQL y creamos la base de datos:

$ mysql -u root -p

mysql> CREATE DATABASE DBKOHA CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql>quit;

Ejecutamos

$ perl Makefile.PL

Escoger los valores por omisión. El usuario y el grupo deben ser www-data para respetar el usuario Apache2 de Debian. Luego ejecutamos:

$ make
$ make test
$ sudo make install
$ sudo ln -s /etc/koha/koha-httpd.conf /etc/apache2/sites-available/koha
$ sudo emacs /etc/apache2/ports.conf

Y agregamos los puertos 80 y 8080. Si Apache ya está ocupando el puerto 80, se puede elegir el 8008 o el 8888.

$ sudo a2enmod rewrite
$ sudo a2ensite koha
$ sudo /etc/init.d/apache2 restart

Colócate en http://localhost y verás el inslador Web de Koha.

Si en lugar de eso ves el mensaje: production mode - trapped fatal error. Intenta instalar una versión más nueva de yaml por CPAN:

$sudo cpan
CPAN> install CGI::Session::Serialize:yaml

Se pueden ver los errores de Koha asi:

$ sudo tail -f /var/log/koha/koha-error_log

Una vez que veas el instalador web escribe el nombre y el password del usuario de Mysql y sigue los pasos. Cuando llegues a la pantalla Selecting Default Settings en las secciones Optional selecciona todos los valores pues después puedes borrarlos pero es bueno tener ejemplos. Ya puedes logearte a la zona de administración:

Ve a la sección Libraries and groups y agrega tu biblioteca.

A continuación ve a "Catloging" y busca por Z39 un ISBN, por ejemplo el ISBN 978-0-679-72316-5 e importalo como libro a tu biblioteca. El libro ya se puede buscar y pedir prestado en el OPAC de Koha.

Permalink: http://mononeurona.org/entries/view/aarkerio/2354


My desktop VIII-2010

2010-08-19 16:55:19-05

Ciencia

Gnome AWM

Debian Squeeze, Gnome 2.30, Compiz, AWM

Permalink: http://mononeurona.org/entries/view/aarkerio/2342


Koha

2010-08-19 10:35:07-05

Desarrollo

Un cliente me pide que lo apoye en la instalación de un sistema de gestión de biblioteca para su institución. Luego de buscar y estudiar soluciones de código abierto por algunos días, he decidido que el ganador es Koha.

Koha

Koha es una potente y completa solución de código abierto para manejar todo lo referente a centros de documentación y bibliotecas: adquisición, catalogación, usuarios, préstamos, rotación de los materiales, reportes. Es un proyecto que ya cuenta con una década pues la primera instalación data del año 2000, debido a ello Koha es muy estable y "full featured".

Koha sigue el estandard MARC21 que es el estandard a través del cual se almacena la bibliografía y asi diferentes bibliotecas pueden comunicarse entre sí e intercambiar información o migrar colecciones. Koha tiene una sección de administración y un portal de búsqueda para los usuarios que se conoce como OPAC. Para la indexación y localización de los materiales Koha usa el motor de búsqueda Zebra.

Todo esto ofrece una solución superprofesional y que sin duda dejará satisfecho a cualquier cliente exigente. Pero (siempre hay un pero!!) hay algunas cosas que no me gustan de Koha:

  • Está hecho con esa horrible cosa conocida como Perl
  • No usa ningún framework
  • No está orientado a objetos, no hay polimorfismo, ni interfaces
  • No tiene Database Abstraction Layer (DAL) de modo que está atada a MySQL y no puedo usar una BD superior como PostgreSQL.
  • No tiene Access Control Lists  (ACL), de modo que los permisos se asignan de manera individual, una hueva si tienes 40 miembros o más en tu staff
  • Las traducciones son engorrosas pues por alguna razón los CSS y los templates se deben duplicar por cada idioma que se agregue

Koha tiene un origen neozelandés, (en maorí koha significa "regalo" o "donación")  pero también hay empresas francesas, españolas, alemanas y gringas. Por esta razón los últimos dos años de Koha han sido un tanto turbulentos, según  entiendo la empresa LibLime desarrollo muchas cosas en Koha y llegó el momento donde empezaron a desarrollar cosas según sus necesidades y sin preguntarle  a la comunidad. Las cosas empeoraron cuando LibLime fue comprada por otra empresa más grande: PTFS, que no tiene ninguna tradición con el software libre. 

Todo ello llevo a un "fork" donde la parte de PTFS se quedó con el dominio koha.org y la comunidad abrió uno nuevo: koha-community.org,  cada sitio ofrece una versión un poco diferente de Koha para descargar e instalar. Yo uso la versión Community.

Koha es fácil de instalar en Debian dejando el OPAC en el puerto 8080. El código se puede descargar por git acá.

Permalink: http://mononeurona.org/entries/view/aarkerio/2341


Perdiendo la sesión de OpenSSH

2010-08-07 14:08:31-05

Ciencia

Desde hace algunos meses, desde que tengo de proveedor de internet a Cablevisión y no a Telmex tengo el problema de que pierdo la sesión SSH luego de unos 10 minutos de inactividad. En Telmex puedo irme al cine y regresar  y la sesión sigue abierta mientras que con Cablevisión se desconecta.

No es mucho problema por que tecleo un comando (un alias del bashrc) y ya estoy conectado otra vez, pero como sea es una pequeña lata. 

Una vez vi la opción "KeepAlive" en el archivo de configuración del SSH server y la activé pero eso no resolvió el problema.

Investigando por ahí leo que no resolvió el problema porque la perdida de conexión no tiene nada que ver con el server OpenSSH sino con el router de Cablevisión. Al parecer algunos routers están configurados para perder las conexiones que están inactivas por más de cierto tiempo. 

Cablevisión

Puedo buscar la opción para desactivarla en el router pero encontré una opción "low tech" (más bien medio "naca") pero arregla el pex: agregarle a emacs la opción de desplegar la hora.

 (setq display-time-day-and-date t
                display-time-24hr-format t)
  (display-time)

Como cada minuto cambia, la conexión se mantiene abierta, jejeje.

Permalink: http://mononeurona.org/entries/view/aarkerio/2336


ObserveField in CakePHP 1.3

2010-06-24 16:49:12-05

Ciencia

Dado que el Ajax helper de CakePHP 1.3 está en deprecated estoy cambiando todo el ajax al Js helper.

Una de las cosas que cambie son las cortinas pero no había podido agregarles la imagen gif del ajax. Estas imágenes son importantes porque le dan feedback al usuario y si no aparecen como que se sacan de onda de que la página no está cargando.
Todo se resuelve si nos aseguramos que el método $this->Js->get() de la cortina sea el último en ejecutarse.
  1. echo $this->Form->create();
  2. echo $this->Form->hidden('Vclassroom.id'array('value'=>$vclassroom_id));
  3.  
  4. $types = array(' '=>' ',__('Quizz Test'True), __('Webquest'True), __('Scavenger Hunt'True), __('Gap filling'True),  'SCORM');
  5.  
  6. echo $this->Form->input('Vclassroom.type'array('options'=>$types'between'=>': '));
  7.  
  8. echo '</form>';
  9. $before   =  $gags->ajaxBefore('active');
  10. $complete =  $gags->ajaxComplete('active','loading''fadeOut''slideDown');
  11.  
  12. $this->Js->get('#VclassroomType')->event('change',
  13.       $this->Js->request('/admin/vclassrooms/type/',
  14.         array('update'         =>'#activ',
  15.               'dataExpression' => True,
  16.               'evalScripts'    => True,
  17.               'before'         => $before,
  18.               'complete'       => $complete,                                     
  19.               'method'         => 'post',
  20.               'data'           => $this->Js->serializeForm(array('isForm' => False'inline' => True))
  21.         )));
  22.  
  23. echo $gags->ajaxDiv('activ').$gags->divEnd('activ');
  24.  
  25. This code works fine,  to select.
 
Ya con eso la imagen jala. Estoy usando mi GagsHelper para ahorrarme código.

Permalink: http://mononeurona.org/entries/view/aarkerio/2291


My new Desktop

2010-06-19 11:15:51-05

Ciencia

OpenBSD 4.7

Ya estuvo!!, OpenBSD 4.7. Instale Gnash, ejecuta los banners bien pero no las peliculas de Youtube, no se si es porque estoy en WM y necesita algun demonio de Gnome.

Noto a OpenBSD algo lenton, no se si es porque mi RAM no tiene paridad, le voy a comprar el otro banco de memoria para ver si asi jala rapido.

Permalink: http://mononeurona.org/entries/view/aarkerio/2285


I miss this show

2010-06-09 15:22:53-05

Ciencia

Extraño Ponchivisión ;-(  Era la neta.

Permalink: http://mononeurona.org/entries/view/aarkerio/2271


Google Map Recomendar un lugar

2010-05-25 17:15:34-05

Ciencia

En http://maps.google.com seleccionar el icono verde y Activar LatLng Marker para que nos muestre la longitud y latitud de los lugares:
 

Google maps

Luego seleccionar en el mapa el lugar que queremos recomendar  y con botón derecho seleccionar "Drop LatLng Marker" y copiar las coordenadas Ctrl+c.  

Ir a New Marker y agregar los datos. Ver el resultado en la vista.

Estoy viendo como conectar el Google Map a la MonoNeurona directamente con jQuery para que cargue las coordenadas con un click.

Permalink: http://mononeurona.org/entries/view/aarkerio/2250


Manejo de periodos en Karamelo

2010-05-14 11:19:31-05

Ciencia

Karamelo

Me hablaron una escuela para preguntar sobre Karamelo, una de sus dudas era como se podían capturar las calificaciones en cada periodo. Les dije que --en parte-- no se debían capturar pues las propias actividades de los alumnos en el salón virtual van creando las calificaciones automáticamente.  

Pero me quedé pensando en cómo dividir el curso en periodos para mantener las calificaciones "congeladas" en una fecha específica.

Creo que la  manera más sencilla de hacerlo es agregar un modelo Record con la relación "Record->belongsTo->Vclassroom" y agregar un botón en la pantalla principal del Virtual Classroom que haga un "corte" de todas las calificaciones de los alumnos en ese momento para guardarlas con la fecha y asi "finalizar" el periodo.

La otra manera es generar un reporte de calificaciones del grupo seleccionando dos fechas para que sólo se sumen las actividades del alumno entre esas fechas. Eso estaría chido y es fácil de hacer.

De cualquier manera el profesor puede exportar a una hoja de cáculo las calificaciones del grupo siempre que lo necesite.

Lo otro que está pendiente es el API de Google Calendar para que el maestro pueda editar las fechas y horas de las actividades en un iframe dentro del salón virtual. 

Espero tenerlo para la versión 0.8 "Skwinkles" que debe estar lista para el primero de diciembre.

Permalink: http://mononeurona.org/entries/view/aarkerio/2229


Ajax en CakePHP 1.3

2010-05-09 10:53:23-05

Ciencia

La mayoría de los cambios en CakePHP 1.3 son en "background", es decir que hay mejor diseño y rendimiento pero los desarrolladores no lo "vemos" y no nos afecta. 

Quizás el cambio mas notorio está en los nuevos Helpers, pues en la versión 1.3 de CakePHP se incluye una especie de "Ajax Abstraction Layer", es decir que CakePHP deja de estar centrado en Prototype/Scriptaculous y ahora tiene un manejador "neutro" para cargar el framework javascript de nuestra preferencia: Prototype, jQuery o Mootools. 

Esto implica que los helpers Ajax y Javascript que usamos un chingo en Centauro y Karamelo están en deprecated y en su lugar se debe usar el nuevo JsHelper. Los métodos $ajax->div()  y $ajax->divEnd() que son muy útiles, los he pasado a mi querido GagsHelper para poder seguir usándolos.

Dado que en el pasado hemos tenido problemas de colisión de frameworks Javascript y además jQuery parece ser el framework más utilizado y tiene muchos plugins chidos he decidido eliminar Prototype de Karamelo y pasarlo todo a jQuery. 

Ejemplo de Ajax en CakePHP 1.3:

  1. # Cargo my framework en el Helper Js
  2. pubic $helpers = array('Js' => array('Jquery'));
  3.  
  4. # Para cargar las librerías En lugar de
  5. $javascript->script(array('jquery-min'));
  6.  
  7. #Ahora es
  8. $this->Html->script(array('jquery-min'));
  9.  
  10.  
  11. # En lugar de esto
  12. echo  $html->div('sidemenu').__('Subjects'True)$ajax->link($html->image('static/arrow_down.png',
  13. array('alt'=>__('Display Subjects'True)'title'=>__('Display Subject'True)))'/subjects/display',
  14.         array('update' => 'qn',
  15.               'loading'=>"Element.show('loading3');",
  16.               'complete'=>"Element.hide('loading3');Effect.Appear('qn')"),
  17.                Null,
  18.                False
  19.              );
  20.      echo '</div>';
  21.  
  22. echo $gags->imgLoad('loading3');
  23. echo $ajax->div('qn'array('style'=>'padding:3px')).$ajax->divEnd('qn');
  24.  
  25. #Ahora es
  26. echo $this->Html->div('sidemenu', __('Subjects'True)$this->Js->link($this->Html->image('static/arrow_down.png',
  27. array('alt'=>__('Display Subjects'True)'title'=>__('Display Subject'True)))'/subjects/display',
  28.          array('update'      => '#qn',
  29.                'evalScripts' => True,
  30.                'before'      => $this->Js->get('#loading3')->effect('fadeIn'array('buffer' => False)),
  31.                'complete'    => $this->Js->get('#loading3')->effect('fadeOut'array('buffer' => False)),
  32.                'escape'      => False
  33.                )));
  34. echo $gags->imgLoad('loading3');
  35. echo $gags->ajaxDiv('qn').$gags->divEnd('qn');
  36.  
  37. echo $this->Js->writeBuffer()# Write cached scripts

El método $this->Js->writeBuffer(); imprime las llamadas cacheadas de ajax y siempre va al final de la página. 
 

Para aplicar varios efectos a varios DIVs sólo se concatenan en la llamada, por ejemplo:

'before' => $this->Js->get('#loadImg')->effect('fadeIn', array('buffer' => False))  .
                   $this->Js->get('#list')->effect('fadeOut', array('buffer' => False))

Por último en CakePHP 1.3 los métodos Model->del() y Session->del() se eliminarons y ahora  son delete(), pero eso se cambia de volada usando M-x find-named-dir en Emacs.

Permalink: http://mononeurona.org/entries/view/aarkerio/2223


«Previous
1 of 22
Login




Join us!
Forgot your password?
aarkerio
Manuel Montoya estudió neuropsicología en la facultad y en el Instituto de Biomédicas de la UNAM. Trabajó en Compaq de México como diseñador de software, tiene diez años de experiencia en Java, Python, PHP y SQL. Le interesan muchas cosas y neciamente le da por escribir sobre todas ellas.

Actualmente trabaja en Chipotle Software, desarrollando Karamelo, una herramienta de e-Learning. Emacs y WindowMaker son su editor y escritorio favoritos.
Powered by
Despabilando la MonoNeurona.org
Livechat
<-Nombre

aarkerio wrote:
Dorota: I sent you a message
2 weeks ago

Dorota wrote:
te propongo que publiques en revistalinux.net. que piensas en eso? contactame: dorota.kulawik[at]software.com.pl
on 13/7/10

aarkerio wrote:
auto testing !!
on 20/5/10

er wrote:
daadff
on 16/4/10

aarkerio wrote:
done!
on 29/1/10

mandrake wrote:
aarkerio puedes mandarme los datos de mi cuenta a luis.pcexpress gmail.com por fa
on 6/1/10

diana wrote:
a aprender ingenieria social me inresa mucho pero la verdad eske no se nada asi ke si alguien me puede ayudar lo agradecere mucho
on 26/10/09

diana wrote:
hola!! amm no te conosco pero me parece que eres un jacker o no? aam yo solo kiero ke alguien me pueda ayudar
on 26/10/09

diana wrote:
mi korreo es :maria_bonita_baby@hotmail.com se los dejo a ver si me pueden ayudar gracias bye*
on 25/10/09

vendaval wrote:
me referia a como crear el ecourse en karamelo, etc. si hace falta me dices y escribimos uno.
on 4/9/09


No!!! creo que la traen desde Panamá. La ventaja de Dell es que la armas a tu gusto, pero se tarda.
3 hours, 46 minutes ago
el pex es que salen como chipotle-software.com, no sé como hacr el virtual domain en Postfix ;-(
1 day, 5 hours ago
@azimov si quieres te creo una cuenta de shell en el server y asi tienes una cuenta, enviame un correo
1 day, 10 hours ago
Mi laptop no llega ;-(, parezco novia olvidada, me asomo y me asomo a la ventana.
2 days, 10 hours ago
@rnstuc ternurita!!
1 week ago
Pues si no hay nada más instalado Gimp es una buena opción para ver un PDF.
1 week, 2 days ago
Yeaaa!! Estoy esperando una XPS 16, Intel i7 4ML2, 6 GB DDR3, pero llega hasta el viernes!!
1 week, 5 days ago
Nunca compren un equipo Dell en línea: en línea 18,100 varos, por teléfono el mismo equipo 16,959. WTF?
1 week, 6 days ago
que alguien de una clasesita de Rails!! un miniblog en rails
2 weeks ago
La chora de ayer: /files/podcast s/aarkerio_19.mp3
2 weeks, 6 days ago
Mis Albums
FirefoxjEdit.orgGimpOpenOffice.orgHacker
Top
Colectivo MonoNeurona.org © 2002-2010.