Suscribirse al Feed
26Jul

Sacar provecho a los campos personalizados [Wordpress]

Existen muchas características en Wordpress que muchas veces no usamos y que nos podrían resultar útiles. Tal es el caso de los campos personalizados, que incluso muchos no saben cómo usarlos. Si te interesa el tema, ¡este artículo podría ayudarte!

¿Qué son los campos personalizados?

Son pares clave-valor (nombre/datos), que podemos asignarle a cada entrada que creemos, con lo cual podemos agregarles metadatos. Podemos crear cuantos nombres de clave necesitemos y asignarles cualquier tipo de datos.

Pero... ¿para qué podría utilizarlo?

Existen muchos usos disponibles para los campos personalizados. Por ejemplo, en este blog los uso para mostrar cierto "Aviso legal" cuando publico información que procede de terceros. Pero lo mejor es mostrarles un ejemplo...

Creando campos personalizados...

En el siguiente ejemplo vamos a usarlos para mostrar la información de Autor y Fuente de las entradas que son traducidas de otros idiomas, como es el caso de la que escribí ayer: 10 maneras de acelerar el arranque en Linux.

Al momento de escribir una entrada, podemos añadir campos personalizados usando un formulario que aparece en la parte de abajo. En mi caso añadiré estos cuatro campos:

Para añadir un campo nuevo basta con escribir el nombre en la caja de texto Clave, introducir el valor del mismo en la caja Valor y hacer clic en Añadir un Campo Personalizado.

Usando campos personalizados...

Para usar los campos creados, podemos usar el método get_post_meta incluido con Wordpress, el cual recibe tres argumentos: get_post_meta($post_id, $key, $single); $post_id es el ID de la variable equivalente a cada post que se lista en el blog; $key es el nombre de la clave a recuperar; y $single recibe un valor booleano (true o false): si el argumento es true devuelve solo un dato para $key, si el argumento es false devuelve un arreglo con los datos que tengan las claves $key.

Siendo así, el código para este ejemplo en particular es el siguiente:


<?php
//Esto lo tienen casi todas las plantillas de Wordpress
//Y lo que hace es permitir el uso de la variable $post
//que contiene la información de cada post individualmente
if (have_posts()) : while (have_posts()) : the_post(); ?>
   //Por lo general, en esta parte está el código
   //que genera el HTML de las entradas del blog
/** Esta es la parte donde usamos los campos personalizados **/
//Mirar si es una traducción
$tipo = get_post_meta($post->ID, "tipo", true);
if( $tipo == "traduccion"){
 echo "<div class='aviso'>Esta entrada es una traducción libre del artículo";
 echo "de <strong>".get_post_meta($post->ID, "autor", true);
 echo "</strong>: <a href='".get_post_meta($post->ID, "link", true)"
 echo "'>".get_post_meta($post->ID, "nombre", true)."</a>.";
 echo "Todo crédito es para el autor de dicho artículo.</div>";
}
/** Aquí termina el uso de los campos personalizados **/
//Por lo general, así termina el ciclo que imprime los posts
<php endwhile; ?>

Recuerda que la manipulación de los campos la debes poner dentro del ciclo while que la mayoría de plantillas utilizan. El resultado en mi caso sería:

resultado campos personalizados wordpress

Como en el ejemplo anterior, es buena idea mostrar los mensajes dentro de etiquetas div que pertenezcan a alguna clase de nuestro CSS, de tal manera que podamos aplicar estilo sin mucho esfuerzo.

25Jul

10 maneras de acelerar el arranque en Linux

  • Deshabilitar servicios innecesarios. Dependiendo del uso que le des a tu sistema, algunos servicios no son necesarios. ¿Usas Linux para el escritorio? Entonces no necesitas servicios como sendmail, httpd, etc. Por ejemplo, Ubuntu viene con los servicios para manipular dispositivos Bluetooth, pero personalmente no utilizo dispositivos de ese tipo; así que si es tu caso, puedes ir al menú Administración, seleccionar Servicios, y deshabilitar todos aquellos que no uses.
  • Deshabilitar módulos del kernel innecesarios. Si tu computador solamente se conectar a internet usando una conexión cableada Ethernet, no necesitas tener cargado el módulo Wireless del kernel. Claro, esto ya es un poco más difícil puesto que es necesario recompilar el kernel, seleccionando sólo los módulos que necesitas.
    La mejor manera de saber cuales son los módulos que actualmente están siendo cargados en tu sistema es instalar Bootchart. Este programa genera información acerca de lo que pasa cuando inicia tu sistema, los módulos que se cargan, con gráficos y todo XD.
  • Usar un entorno de escritorio liviano en vez de GNOME o KDE. Sobre todo si tenemos máquinas viejas o lentas; Además, en vez de esperar 30 o 60 segundos extra mientras inician GNOME o KDE, ¿porqué no esperar 10 segundos por Enlightenment o XFCE? No solo te ahorrará tiempo al inciar el sistema, sino mientras lo estás usando.
  • Usar un sistema de logueo basado en texto en vez de uno gráfico. La mayoría de mis máquinas Linux inician en el run level 3 en vez del run level 5. Esto hará que se detenga en el sistema de logueo basado en texto, donde solo tengo que poner mi usuario y password y ejecutar startx para iniciar mi entorno de escritorio. Los sistemas gráficos de logins son bonitos, pero incrementan el tiempo de carga y producen dolores de cabeza intentando recuperarse en caso de un fallo con las X.
  • Usa una distribución ligera. En vez de cargar una pesada Fedora, Ubuntu o openSuse, ¿porqué no intentar Gentoo, Arch o Puppy Linux? El tiempo de inicio es considerablemente menor con éstas.
  • Usar un OpenBIOS. Si eres lo suficientemente experto como para actualizar tu firmware, podrías considerar migrar a una BIOS open source. Una de las cosas por las que es recomendable usar un firmware open source es que permite a Linux inicializar el hardware una vez encendido el PC (en vez de que lo haga la BIOS). Aún así, si no te aventuras a hacer tal cosa, podrías considerar configurar tu BIOS para que, por ejemplo, no busque una unidad de disquete que no existe o que bootee directamente del disco duro (en vez de buscar en la unidad de CD primero).
  • Evitar el DHCP. Si estás en una red casera o empresa pequeña, las direcciones IPs no suelen dar muchos problemas. Considera entonces poner una IP fija a tu PC. Esto hará que al inciar no sea necesario conectarse al servidor DHCP para obtener una IP. Si haces esto, asegúrate de configurar el archivo /etc/resolve.conf para que seleccione adecuadamente los servidores DNS.
  • Si es posible, deshaste de hotplug. Hotplug es el sistema que te permite conectar nuevos dispositivos y usarlos inmediatamente. Si no necesitas esta característica, bórralo. Esto reducirá el tiempo de carga de tu sistema. En muchos sistemas, hotplug consume muchos recuersos al momento de iniciar el sistema. NOTA: udev ha reemplazado a hotplug en su mayoría; pero si usas una distribución antigua te podría resultar muy útil hacerlo.
  • Si eres realmente osado, podrías intentar initng. El sistema initng sirve como reemplazo para el sistema sysvinit y promete ser decrementar el tiempo de carga de sistemas basados en UNIX. Si quieres ver a initng en acción, puedes probar el LiveCD Pingwinek.
  • Usar un hack en Debian. Si usas Debian, existe un hack muy simple que puedes usar para inciar tus startup scripts en paralelo. Si le echas un vistazo al script /etc/init.d/rc, verás algo como CONCURRENCY=none más o menos en la línea 24. Cambia esto por CONCURRENCY=shell y deberías ver una reducción en el tiempo que tarda el sistema en iniciar.
25Jul

Lista de ganadores de los premios Sourceforge 2008

Hoy era el día programado para anunciar la lista de ganadores de los Sourceforge 2008 Community Choice Awards, los premios otorgados por la comunidad del famoso portal de software libre a los mejores y más importantes proyectos del año.

Como podrán ver, el gran ganador es sin duda OpenOffice.org. La lista de ganadores es la siguiente:

  • Mejor proyecto: OpenOffice.org
  • Mejor proyecto para la empresa: OpenOffice.org
  • Mejor proyecto para educación: OpenOffice.org
  • Proyecto que probablemente será la próxima adquisición millonaria: phpMyAdmin
  • Mejor proyecto para multimedia: VLC
  • Mejor proyecto para jugones: XBMC
  • Proyecto que probablemente vaya a cambiar el mundo: Linux
  • Mejor nuevo proyecto: Magento
  • Proyecto que probablemente vaya a ser acusado ambiguamente de infringimiento de patentes: WINE
  • Proyecto que probablemente conseguirá que sus usuarios sean demandados: eMule
  • Mejor herramienta o utilidad para administradores: phpMyAdmin
  • Mejor herramienta o utilidad para desarrolladores: Notepad++

Fuente | Genbeta

24Jul

Números aleatorios en C#

La generación de números aleatoreos es una de las prácticas más importantes en cualquier lenguaje de programación, sobre todo cuando deseamos desarrollar juegos, por ejemplo. Para usar números aleatorios en C# podemos utilizar la clase Random del namespace System, de la siguiente manera:


Random objeto = new Random();
int numero = objeto.Next();

El método Next de la clase Random genera y devuelve un número aleatorio entre 0 y la constante Int32.MaxValue (2,147,483,647). El número es generado después de (como decía mi profesora de matemáticas) complejos procesos matemáticos, y como en casi todos los lenguajes necesitan de una semilla (seed) para ser generados, que por defecto es la hora del sistema.

Aún así, muchas veces necesitamos que el número sea generado en un rango específico de valores. Por ejemplo, para una aplicación que simule el lanzamiento de un dado de seis caras necesitamos generar números entre 1 y 6. Para lograr esto, el método Next puede recibir además un entero que indica el rango máximo del número aleatorio. Por ejemplo, el código:

Random objeto = new Random();
int numero = objeto.Next(6);

generaría un número aleatorio entre 0 y 7 (pero no 6), es decir, seis posibles números. Pero, si desearamos algún rango más exacto, podríamos hacer algo como:

Random objeto = new Random();
int numero = objeto.Next(1, 7);

lo que generaría números entre 1 y 7 (pero no 7), de nuevo seis números posibles.

Ejemplo completo...

En el siguiente ejemplo se utilizará la clase Random para generar una serie de números aleatorios cada vez que se presiona un botón:

pantallazo numero aleatorio

El código lo pongo para su descarga abajo, ya que lo hice con Gtk# usando MonoDevelop, y sería engorroso poner todo el código. Así que solo pondré la parte del código que nos interesa:

    private Random obj = new Random();
    //Método ejecutado al presionar el botón
    protected virtual void generar_Click (object sender, System.EventArgs e)
    {
        etiqueta.Text = "";
        for(int i = 0; i < 4 ; i++)
        {
            for(int j = 0; j < 4 ; j++)
                etiqueta.Text += obj.Next(1, 10) +"\t\t";
            etiqueta.Text += "\n\n";
        }
    }

Enlaces y descargas

24Jul

Juego: Aguanta el balón [by Burnhack]

Un ejercicio en Java que me regala mi amigo Burnhack, y se trata de un juego llamado "Aguanta el balon", bastante bueno y divertido. Y como no, se ofrece el código fuente para su estudio y disfrute. Nos comenta Burnhack:

Juego: Aguanta el balon
Programado por: Burnhack
Lenguaje: Java

juego futbol java

Descripción y Manejo: Pues jugar a este juego es muy simple, el juego comienza cuando haces click en el balón situado en el centro y sin soltar el ratón debes de arrastrarlo evitando el contacto con los otros y los laterales. A medida que avanza el tiempo también sube su velocidad así que el juego se ira complicando.

Como parte de su descripción he nombrado dos clases: Una llamada balon donde controlé las colisiones, y la otra llamada Fútbol y controle el resto de cosas: Movimiento de balones,Velocidad, Los paneles...

Fallos:

  • Los balones no llegan a chocar pero es culpa del dibujo de los balones y no me dedique a hacerlos mejor porque bastante me costo hacer esto jajaja aunque sea cutre
  • El timer si hay lo descarga que me diga si cree que es correcto porque le agregue un timer y nose si mide del todo bien el tiempo...ya que creo que depende un poco tambien del pc, de todas formas nose hacerlo mejor.
  • La interfaz es la misma cutrecilla...donde se podia poner una barra de desplazamiento para que simule el aumento de la velocidad de los balones y un boton de reinicio ..pero soy muy vago y si funciona asi..pues creo que no hace falta mucho mas.

Y a favor del juego...que te picas muy facilmente y pa echar un rato esta bien.

Descargar código fuente y ejecutables

Gracias por la colaboración, Burnhack!

23Jul

Programación C++ sobre Linux

Nota: este es un artículo que escribí hace mucho tiempo, y que decidí rescatar y actualizar un poco. Si se dan cuenta habla sobre RCS y CVS en vez de SVN y GIT, pero bueno, a alguien le servirá. Pueden descargar la versión PDF con todos los artículos incluidos.

Este artículo pretende orientar un poco acerca de lo que es la programación en C++ sobre linux. Esto NO es un tutorial de referencia de C++, si lo que buscas es eso puedes buscar en el google que hay bastantes. Posiblemente ya hayas programado en C++ sobre Windows, y has utilizado algún compilador como el C++ Builder de Borland, el Visual Studio de Microsoft o en el mejor de los casos DevC++.

Ok, esto es un buen comienzo. Pero lo que aquí vamos a ver es: qué nos proporciona Linux para programar en C++. Como sabes en Linux las cosas ya no son tan fáciles, pero tampoco difíciles; de hecho C++ es famoso gracias a Linux, son como uña y mugre. La cuestión es que nos centraremos en la programación desde la consola. Si lo tuyo no es la consola puedes echarle un vistazo a la sección que trata sobre Anjuta, que es un IDE para C++ en Linux, pero te recomiendo que leas todo el artículo, te aseguro que te servirá.

Vamos a tratar los siguientes temas (y talvez algunos más):

Esta es realmente la base de la programación en C++: cruda, sin vestimentos, tal como es.

Descargar el tutorial completo en PDF

© 2007 - 2008 Dezinerfolio. Todos los derechos reservados.
Powered by Wordpress. Entradas RSS