How to set Chicago 16th Edition Style in Word 2010

Nota: Traducción al español de este artículo/Spanish translation of this article: https://franvelez.blogspot.com.es/2016/07/como-activar-el-estilo-chicago-16-en.html

Last week a user asked me for help, he wanted to use Chicago 16th Edition in Microsoft Word 2010. After loosing the whole day, finally I succeeded it and I'm going to tell you how you can do it.

How to install Chicago 16th Edition in Word 2010

Note: Although I haven't test it, this should work with Word 2007 too.


- Close any opened window of Microsoft Word 2010

- Download the bibliographic style Chicago 16th Edition from here.
Note: If you want to know the technical details about how I have created the file, go to the end of this post

- Open the Windows File Explorer and find the Style folder in the Office folder. The common path is: Local Disk C: --> Program Files --> Microsoft Office --> Office14 --> Bibliography --> Style
Note: This path may change from one computer to another depending on your configuration. It it possible that instead of the folder Office14 you have Office12 or similar, or maybe you need to look for the folder Style in both Program Files and Program Files (x86)

- Once in Style folder, find the file CHICAGO.XSL, change its name to CHICAGO.XSL.BCK and move it to the parent folder Bibliography.

- Open Word 2010, if you have been following the process correctly, the Chicago 15th Edition style must be missing from the bibliographic styles list.

- Close again World 2010, copy the file CHICAGO.XSL that you have already downloaded and paste it in Style folder.

- Finally, open Word 2010 again and you should see the Chicago 15th style again in the list. Don't worry to find a 15th instead 16th. Although Word thinks that you are using the 15th Edition, this is actually the 16th Edition.

If you want to check that it is working, you can download this Word document sample and create the bibliography with the Chicago Style. It should be similar to this screenshot:



Technical details about the creaton of the CHICAGO.XSL file

The XSL style files are written in a proprietary XML language from Microsoft. These files are written in plain text and can be modified with any text editor. What I have done it is to take the file CHICAGO.XLS from Microsoft Word 2016 and modify it to work with Word 2010. To do so, I replaced the following code (line 2114):
<xsl:choose>
    <xsl:when test="b:Version">
        <xsl:text>2012.10.26</xsl:text>
    </xsl:when>


    <xsl:when test="b:XslVersion">
        <xsl:text>16</xsl:text>
    </xsl:when>

for this one:
<xsl:choose>
    <xsl:when test="b:Version">
        <xsl:text>2006.5.07</xsl:text>
    </xsl:when>

In order to make it compatible with Word 2007/2010

Downloads & References: Chicago 16th Edition Style, Word document for testing, Create Custom Bibliography Styles (MSDN), Traducción al español de este artículo

Cómo activar el estilo Chicago 16ª en Word 2010

Note: English translation of this article/Traducción al inglés de este artículo: https://franvelez.blogspot.com.es/2016/07/how-to-set-chicago-16th-edition-style.html
 
El otro día acudieron a mí con un problema, un usuario quería usar Chicago 16ª Edición en Microsoft Word 2010. Tras perder el día buscando en Internet, finalmente lo logré y os cuento aquí cómo podéis hacerlo vosotros.

Tutorial para instalar Chicago 16ª Edición en Word 2010

Nota: Aunque no lo he probado, en Word 2007 debería funcionar. 

- Cerrar Microsoft Word 2010

- Descargar el estilo bibliográfico Chicago 16ª edición desde aquí
Nota: Si quieres detalles técnicos de cómo he generado el fichero, baja al final de esta entrada

- Abrir el Explorador de Archivos de Windows y buscar la carpeta Style de Office. El camino que normalmente hay que seguir es Unidad C: --> Archivos de programa --> Microsoft Office --> Office14 --> Bibliography --> Style
Nota: Esta ruta puede variar de un ordenador a otro según tu configuración. Puede ser que en vez de Office14 tengas Office12 o similar o que tengas que buscar tanto en Archivos de programa como en Archivos de programa (x86).

- Una vez en la carpeta Style localizamos el fichero CHICAGO.XSL, le cambiamos el nombre a CHICAGO.XSL.BCK y lo movemos a la carpeta padre Bibliography.

- Abrimos World 2010, si lo hemos hecho bien, ya NO estará el estilo Chicago 15ª Edición en al lista de estilos bibliográficos.

- Volvemos a cerrar Word 2010, copiamos el CHICAGO.XSL que hemos descargado y lo pegamos dentro de Style.

- Finalmente abrimos Word de nuevo y aparecerá el estilo Chicago 15ª Edición en la lista. No te preocupes si en la lista pone 15ª en vez de 16ª. Aunque Word cree que es la 15ª Edición, se trata en realidad de la 16ª Edición.

Si quieres probar que funciona correctamente, descarga este documento Word de ejemplo y genera la bibliografía con el estilo Chicago. Debería ser igual que la siguiente captura:


Detalles técnicos sobre la obtención del fichero CHICAGO.XSL

Los ficheros de estilos XSL están escritos en un lenguaje propietario XML de Microsoft. Estos ficheros están en texto plano y pueden ser modificados con cualquier editor de texto. Lo que yo hice fue tomar el fichero CHICAGO.XSL de Microsoft Word 2016 y adaptarlo para que funcionara en Word 2010. Para ello necesité modificar el siguiente fragmento de código (linea 2114):
<xsl:choose>
    <xsl:when test="b:Version">
        <xsl:text>2012.10.26</xsl:text>
    </xsl:when>


    <xsl:when test="b:XslVersion">
        <xsl:text>16</xsl:text>
    </xsl:when>

por el siguiente:
<xsl:choose>
    <xsl:when test="b:Version">
        <xsl:text>2006.5.07</xsl:text>
    </xsl:when>

Para hacerlo compatible con las versiones de Word 2007/2010

Descargas y referencias: Estilo Chicago 16ª Edición, Documento Word de prueba, Create Custom Bibliography Styles (MSDN), English translation of this article

Aplicación Web RB Citas / RB Conecta

RB Citas es la última aplicación que he desarrollado para el ecosistema RB Conecta. Esta aplicación permite a un negocio crear fácilmente un sistema personalizado de gestión de citas o reservas. Al estar integrado en el ecosistema RB Conecta, los clientes podrán pedir cita desde su móvil usando la app RB Conecta.

En este proyecto he trabajado en las siguientes áreas:
  • Configuración, mantenimiento y optimización de servidores: Apache, MySQL, BackupPC.
  • Diseño y desarrollo de la versión web de RB Citas (HTML5, SASS, JavaScript, PHP5 y MySQL).
  • Desarrollo de interfaz con vista de diseño adaptable (Responsive) con Bootstrap 4
  • Desarrollo de la API de conexión (PHP) entre servidor y aplicaciones web y móvil.
Capturas en pantallas grandes (1000x700):

Capturas en pantallas medianas (800x600):






Capturas en pantallas pequeñas (340x480):







 Enlaces: RB Citas

Cómo construir un sistema de plantillas con CSS y SASS para tu aplicación web

Un problema habitual de los diseñadores web es definir diferentes diseños o temas (tipografía, colores, tamaños) para que el usuario elija aquel que le resulte más confortable. El método tradicional consiste en crear un fichero CSS con todos los estilos para un tema y luego replicarlo a cada uno de los otros temas. Esto, que a priori puede ser la solución más rápida, a la larga supondrá graves problemas de mantenimiento, ya que un simple cambio como añadir algo nuevo a algún botón o cambiar el color del tema, puede resultar tedioso y llevarnos a cometer errores como olvidar actualizar uno de los temas.
Como nosotros somos programadores y nos gusta tratar de hacer las cosas bien, vamos a seguir otro enfoque usando SASS.

Nota: Lo bueno de SASS es que es totalmente compatible con código CSS estándar, así que si no conoces SASS, puedes empezar usando sólo las variables y los imports (que es lo que veremos aquí) y luego ir aprendiendo a añadir bucles o condiciones. Te recomiendo que aprendas a usarlo, porque simplificará enormemente tu código CSS y es muy sencillo de aprender. Puedes pasarte por este manual en español.

Ejemplo base en CSS

Supongamos que hemos creado una página en la que queremos tener varios temas con sus respectivos estilos para los títulos h2 y para dos tipos de botones: primario y secundario. El código en CSS sería:
h2 {
    font-family : "Times New Roman";
    font-size   : 2rem;
    color       : orange;
}

.boton-primario{
    background-color : orange;
    color            : marron;
    border           : 1px solid #444444;
}

.boton-secundario{
    background-color : purple;
    color            : white;
    border           : 1px solid #000000;
}
Este CSS lo tendríamos que replicar para cada una de las plantillas cambiando en cada apartado los elementos que varían.


Ejemplo con SASS

La estructura propuesta es la siguiente:
  • _paletas.scss
  • _tema-base.scss
  • tema-1.scss
  • tema-2.scss
  • tema-X.scss
Donde:
  • Se distingue con barra baja a los ficheros que son usados solo para inclusión.
  • Tendremos un fichero tema-X.scss por cada tema que queramos generar.

En _paletas.scss agregaremos las listas de colores, fuentes, etc. de todos los temas:
//Los nombres de variables se distinguen por llevar un $ delante. 
//Estas tres variables son "listas" 

$paletaTemasPrimario   : orange, blueViolet, limeGreen;
$paletaTemasSecundario : purple, coral, fireBrick;
$fuenteTemas           : "Times New Roman", Helvetica, Arial;

En _tema-base.scss agregamos nuestro código CSS pero cambiando los elementos que varían por variables (fíjate que el nombre es diferente a las variables definidas antes):
h2 {
    font-family : $fuente;
    font-size   : 2rem;
    color       : $color-primario;
}
.boton-primario{
    background-color : $color-primario;
    color            : white;
    border           : 1px solid #444444;
}
.boton-secundario{
    background-color : $color-secundario;
    color            : white;
    border           : 1px solid #000000;
}

Y finalmente agregamos a cada fichero tema-X.scss lo siguiente, teniendo en cuenta que debemos variar la variable $temaSeleccionado para que cada tema tome sus estilos correspondientes:
//En los import no es necesario agregar la barra baja ni la extensión
@import 'paletas'; 
//Cambiar el valor de esta variable en cada tema-X empezando desde 1
$temaSeleccionado : 1; 

//La función nth(lista, n) obtiene el enésimo elemento de la lista
$color-primario   : nth($paletaTemasPrimario,   $temaSeleccionado) !default;
$color-secundario : nth($paletaTemasSecundario, $temaSeleccionado) !default;
$fuente           : nth($fuenteTemas, $temaSeleccionado) !default;

@import 'tema-base';

Ya solo resta compilar nuestros ficheros tema-X.scss, para así obtener los CSS finales, cada uno separado en un fichero tema-X.css, listo para usar.

Conclusiones

Diseñar así las plantillas nos aporta varias ventajas:
  • Si se modifica un color de un tema o similar, basta con modificar el fichero de paletas y recompilar para tenerlo todo en orden
  • Si se añade un nuevo elemento como puede ser un cuadro flotante, solo tendremos que añadirlo a _tema-base.scss usando las variables oportunas para que, al recompilar, se nos genere cada plantilla con el elemento nuevo y su correspondiente estilo
  • Nos ahorrará en grado sumo el ir copiando-pegando elementos o reemplazando colores.
Referencias: Manual de SASS en español, página oficial de SASS

Cómo programar un script PHP recurrente y depurar su funcionamiento

Nota: El siguiente tutorial está probado con PHP5 en distribuciones estándar derivadas de Debian y Ubuntu.

Programar la tarea con cron 

 

En Linux, la forma más sencilla para que un script PHP se ejecute a intervalos regulares, suele ser con el uso de la herramienta cron (al final del artículo tienes varios tutoriales sobre el uso de cron y crontab)

Primero añadimos la tarea al fichero /etc/crontab. Así, si queremos ejecutar el fichero /var/www/test.php cada15 minutos:
sudo nano /etc/crontab
Y al final del fichero añadiremos:
15 * * * * usuario php -f /var/www/test.php
Si una vez pasada la hora programada, queremos comprobar que cron ha ejecutado el script, podemos ojear el log en el que registra los eventos. En él, debería haber una linea con la hora, el nombre "cron" y el nombre del script:
sudo cat /var/log/syslog

Debugging / Depuración del script 

 

Si es tu primer script programado, es posible que cometas errores de rutas relativas y permisos, ya que cron normalmente se ejecuta con un usuario distinto al del servidor web y, además, usará las rutas del sistema de ficheros en vez de las rutas del servidor web. Por tanto, si el script se ejecuta pero no hace lo que debe, querrás depurarlo para encontrar el error.


Depuración básica 

 

Para hacer una depuración a base de “echo” y “var_dump”, basta con modifiar la tarea programada en crontab a:
* * * * * usuario php -f /var/www/test.php >> /tmp/php_debug_log.txt
El motivo de poner cinco asteriscos es para que se ejecute cada minuto (sí, ya sé lo engorroso que es esto)


Depuración de errores 

 

Para ver los errores generados por el motor de PHP, tendremos que modificar el fichero de configuración php.ini para la linea de comandos (CLI). Nota: Este fichero es distinto al php.ini del servidor web
sudo nano /etc/php5/cli/php.ini

Buscamos la variable error_reporting para activar todos los errores y la variable error_log para escribir la ruta del fichero en el que queremos guardar los errores.  Por ejemplo:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT 
error_log = /tmp/php_error_log.txt

Guardamos el fichero de configuración y comenzamos la depuración. Los cambios se aplican inmediatamente porque es el fichero de configuración para la linea de comandos.

Referencias: tutorial de cron en GeekyTheory, ejemplos de cron en Wikipedia

Cómo realizar un UPDATE masivo en Oracle ignorando los errores

¿Cuántas veces has tratado de hacer un UPDATE masivo en Oracle y la consulta ha fallado porque hay elementos duplicados, nulos, etc.?
Ejecutar un UPDATE masivo que continúe e ignore las tuplas con error es posible en Oracle siguiendo el siguiente proceso:

Primero, creamos una tabla que vincule la tabla que vamos a actualizar con la que va a guardar los errores. Así podremos saber qué tuplas han fallado:
EXECUTE DBMS_ERRLOG.CREATE_ERROR_LOG('tabla1', 'tabla1_error_log');

Después, ejecutamos el UPDATE incluyendo al final de la consulta la llamada LOG ERRORS hacia la tabla log creada. Por ejemplo:
UPDATE tabla1 
  SET nombre="" 
  WHERE pais="es"
LOG ERRORS 
  INTO tabla1_error_log 
  ('UPDATE running at '||to_char(sysdate, 'yyyy-MM-dd HH24:MI:SS')) 
  REJECT LIMIT UNLIMITED;

Cuando termine el UPDATE, podremos consultar en tabla1_error_log la lista de errores y cuando no la necesitemos, la podemos borrar con el habitual DELETE


Detalles técnicos:
Lenguajes: Oracle 10
Referencias: Tutorial detallado de Oracle

Aplicación web DigiQ

DigiQ es una aplicación web desarrollada por Schneider-Electric para la creación y gestión de presupuestos y pedidos en las delegaciones de los países de categoría "C". Este proyecto hace uso de PHP5, Sencha Ext JS 2, SAP y Oracle y ya estaba en producción cuando me incorporé a él. Mis tareas consistieron en el desarrollo de alguna característica nueva y mantenimiento del producto.

Capturas de pantalla: