Wordpress Dirección del Tema (bloginfo)

Los temas (o themes) en Wordpress están en un directorio algo complicado: /wp-content/themes/mi-tema/. Por lo general es algo tedioso estar poniendo todo esto en el url de, por ejemplo, una imagen que se quiera poner en el Header del sitio.

Para esto se puede usar la función bloginfo() que ofrece WordPress.

Por ejemplo si la imagen de su Header está en /wp-content/themes/mi-tema/images/header.jpg en vez de llamarla así:


<img src="http://www.example.com/wp-content/themes/mi-tema/images/header.jpg" />



Se puede hacer:


<img src="<?php bloginfo('template_url'); ?>/images/header.jpg"/>



Que es mucho más simple y genérico. El uso de bloginfo() recibe muchos otros parámetros y permite una estructura orientada hacia el uso de temas (por ejemplo mantener en el directorio del tema todas las imágenes, scripts, etc).

Visite http://codex.wordpress.org/Template_Tags/bloginfo para la documentación completa.

Cómo hacer diagramas de temporización en ubuntu / linux

Para hacer diagramas de temporización en ubuntu / linux se puede usar el programa drawtiming (timing diagrams en inglés).

Para instalarlo en Ubuntu:


$ sudo aptitude install drawtiming





Para hacer un diagrama se edita un archivo de texto. El diagrama de temporización de la figura anterior se hizo con el siguiente código (suponga que el archivo se llama instruccion.txt):


CLK=0,CB=0,CM=0,BUSDIR=" ",M=1,BUSDAT=" ",LE=1,ESTADO="XX".
CLK=1.
CLK=0,CB=1,CM=1,BUSDIR="$1234",BUSDAT="LDX",ESTADO="1".
CLK=1.
CLK=0,CB=0,CM=0,ESTADO="2".
CLK=1.
CLK=0,CM=1,BUSDIR="$1235",BUSDAT="$00",ESTADO="3".
CLK=1.
CLK=0,CM=0,ESTADO="4".
CLK=1.
CLK=0,CM=1,BUSDIR="$1236",BUSDAT="$DD",ESTADO="5".
CLK=1.
CLK=0,CM=0,ESTADO="6".
CLK=1.
CLK=0,CM=1,BUSDIR="$DD00",BUSDAT="$CC",ESTADO="7".
CLK=1.
CLK=0,CM=0,ESTADO="8".
CLK=1.
CLK=0,CM=1,BUSDIR="$DD01",BUSDAT="$CD",ESTADO="9".
CLK=1.
CLK=0,CM=0,ESTADO="0A".
CLK=1.
CLK=0,CB=1,CM=1,BUSDIR=" ",BUSDAT=" ",ESTADO="XX".



Para generar el diagrama de temporización en la imagen instruccion.png se ejecutó el comando drawtiming con algunos parámetros opcionales:


$ drawtiming --scale 1.2 --cell-height 20
--cell-width 24 --output instruccion.png instruccion.txt




Para aprender a usarlo se recomienda visitar el sitio web oficial DrawTiming Homepage o bien llamar el manual del programa:



$ man drawtiming

Cómo agregar un sudoer en linux / ubuntu

Se utiliza el comando visudo.


$ sudo visudo



Cuando se ejecuta este comando aparece un editor para hacer cambios en la lista de sudoers, note que en la lista root tiene los permisos definidos:


root ALL=(ALL) ALL



Lo que se necesita es agregar en este archivo una línea igual pero con el usuario al que se le quiere dar permisos de sudoer. Puede inclusive poner un comentario en el archivo para documentar el cambio (los comentarios se anteceden con #).


# cambio hecho por xugular. 24nov2009.
usuario ALL=(ALL) ALL



Una vez listo, puede presionar CTRL + X para salir y cuando le pregunte si quiere grabar (Save) presione Y.

Python - Cómo hacer que python encuentre un módulo en un directorio no estándar

Para hacerlo se debe modificar el path para que tome un directorio no estándar.

La variable sys.path determina el directorio en donde el intérprete buscará por módulos. Es inicializada por la variable de entorno PYTHONPATH si existe. Se puede modificar como sigue:


#!/usr/bin/python
# coding: utf-8

import sys

# Modifica el path para importar módulos
sys.path.append('/home/xugular/lib/python')

# Se asume que el módulo "ejemplo" en el archivo "ejemplo.py"
# está en el directorio "/home/xugular/lib/python"
import ejemplo

# Suponga que ejemplo tiene definida "funcion()"
ejemplo.funcion()



Fuente: Python Tutorial - 6. Modules

Links de login y logout en WordPress

=== WordPress Login Url ===

Aún se puede usar el link estático:


http://www.example.com/wordpress/wp-login.php



O generarlo mediante php:


<a href="<?php echo wp_login_url(); ?>" title="Login">Login</a>



Referencia en el Codex: wp login url


=== WordPress Logout Url ===

Las nuevas versiones de WordPress no tienen un link estático para el logout o cierre de sesión.


<a href="<?php echo wp_logout_url(); ?>" title="Logout">Logout</a>



Referencia en el Codex: wp logout url



=== Panel de Administracioń (Wordpress Dashbourd Url) ===

El link estático es suficiente.


<a href="http://www.example.com/wordpress/wp-admin/" title="Panel de Administración">Panel de Administración</a>





=== Ejemplo ===

Para usar los widgets de la barra lateral se recomienda tener instalado el plugin PHP Code Widget para poder insertar código PHP en la barra lateral de su blog utilizando los widgets.

Utiliza la función is user logged in.



<?php if ( is_user_logged_in() ) {

echo '<p><strong><a href="http://www.example.com/wordpress/wp-admin/" title="Panel de Administracioń" >Panel de Administración</a></strong></p>';

echo '<p><strong><a href="' . wp_logout_url() . '" title="Cerrar Sesión">Cerrar Sesión</a></strong></p>';

}else{

echo '<p><strong><a href="' . wp_login_url() . '" title="Iniciar Sesión">Iniciar Sesión</a></strong></p>';

}; ?>

Configuración de Grub 2 en Ubuntu 9.10

El recién llegado Ubuntu 9.10 Karmic Koala usa un nuevo manejador de arranque llamado Grub 2 que reemplaza al anterior Grub.

Siempre me ha incomodado en las versiones de Ubuntu anteriores al 9.10 que cuando un nuevo kernel se instala, el menú del Grub despliega automáticamente las nuevas versiones pero también las viejas versiones. La solución a esto la había encontrado editando el archivo de configuración de Grub legacy, en /boot/grub/menu.lst editando la línea:

# howmany=all

y cambiándola para que solo despliegue el kernel más reciente:

# howmany=1

El manual del Grub original se encuentra en GNU GRUB Manual 0.97 (inglés).

Ahora, volviendo a Grub 2, éste tiene un archivo de configuración diferente que se encuentra en /boot/grub/grub.cfg, pero ATENCIÓN éste no se debe editar ya que no está hecho para eso.

Un archivo que si se puede editar en Grub 2 es /etc/default/grub, y tiene lo que se encontraba en la primera sección del archivo del Grub legacy /boot/grub/menu.lst. Opciones relacionadas con la pantalla de entrada, como la opción por defecto (GRUB_DEFAULT), el tiempo de espera (GRUB_TIMEOUT).

Una vez que finalice de editar este archivo corra update-grub para que se importen los nuevos cambios.

¿Como hacer que se muestre sólo el kernel más reciente con GRUB 2?

Para hacer esto en el nuevo Ubuntu 9.10 recomiendo leer Grub 2 (Removing Entries from Grub 2) en el wiki oficial de Ubuntu.

Cómo redirigir en PHP

Redirigir a una página es muy fácil en php. Pon este código al principio del archivo ".php" que estás trabajando.

El ejemplo redirige a http://www.example.com/.


<?php header("Location: http://www.example.com/"); ?>



Simple :)

Fuente: http://php.net/manual/en/function.header.php

Java - Cómo redirigir un archivo a la entrada estándar

La explicación a continuación sirve para que un programa escrito en el lenguaje de programación Java, diseñado para leer de la entrada estándar pueda tomar los datos de un archivo.

El comando en la terminal se muestra a continuación, en donde Programa es el programa en Java y entrada.txt contiene los datos de entrada.

$ java Programa < entrada.txt

De esta forma el contenido del archivo es redirigido a la entrada estándar.

¿Qué pasa si el archivo tiene muchas líneas? ¿Cómo leer cada una de ellas?

Suponga que el archivo entrada.txt contiene estas líneas:


1
2
3
4
5



Un programa Programa.java que lee cada una de estas líneas del archivo (como si fueran de la entrada estándar) y las imprime se muestra a continuación. Usa el método ready() de la clase BufferedReader.


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;

public class Programa{

public static void main(String[] args) throws java.io.IOException {

BufferedReader in;
PrintSream out;

in = new BufferedReader( new InputStreamReader( System.in) );
out = System.out;

// Lee el archivo linea por linea
while( in.ready() ){

String linea = in.readLine();

// Imprime a la salida estandar
out.println( linea );

}

}

}



En el caso que también se quisiera redirigir la salida estándar a un archivo:

$ java Programa < entrada.txt > salida.txt