Spam

Codificar dirección de correo electrónico (email) para evitar spam

Cuando colocamos una dirección de correo en un sitio público y que puede ser leído por los spam bot (robots generadores de spam) nos arriesgamos justo a eso, a sufrir las consecuencias de entrar en sus listas y de esta forma coparnos la bandeja de correo no deseado.

Spam

Una solución es dejar de usar enlaces en sitios web del tipo mailto y colocar una imagen con la dirección. El problema de esta solución es que pierde interactividad, no podemos hacer clic directamente.

Una solución es transformar los caracteres en entidades HTML: el bot no lo reconoce tan fácilmente (tiene que estar programado para eso), pero la funcionalidad para nosotros sigue siendo la misma.

Existen soluciones del lado del servidor y del lado del cliente en diferentes tecnologías, pero ésta que os traigo hoy es para usarla directamente para casos puntuales: Email Adress Encoder.

Metes tu dirección y obtienes la codificada, así de fácil.

Wando 2.0 Lugosi

Wando 2.0 Lugosi, distribución que hace honor al actor Bela Lugosi el famoso actor de películas de terror, es una distribución del sistema operativo GNU/Linux originaria de Argentina y España basada en Debian GNU/Linux y Ubuntu. Ya está preparado en su pagina web para que cualquier persona se lo descargue, y pueda probar la gran belleza de esta distribución, aunque nueva, bastante innovadora y suficientemente estable para el uso de cualquier persona iniciada en linux. También para los que no son tan novatos y les gusta investigar a fondo el sistema operativo.

Wando 2.0 incluye numerosas características, como el kernel 3.2, el kernel más estable actualmente, firefox como navegador predeterminado y para los amantes de Google Chrome hemos incluido el navegador web chromium. También se incluye la suite informática LibreOffice en su ultima version  3,6,1.

El entorno de escritorio es un gran punto a seguir en cualquier distribución GNU/Linux, en este caso la distribución elegida es una propia, basada en Cairo-dock Shell, un escritorio parecido al de las MacOS pero en tonos mas oscuros y mas fácil de usar.

Esta distribución aun siendo bastante nueva, posee videotutoriales, para optimizar el uso del sistema. Se encuentran hechos por los mismos creadores de Wando Linux,

Los interesados por este sistema operativo pueden acceder a la pagina oficial de Wando Linux y también pueden acceder a la pagina de facebook oficial donde tendrán mas información, asistencia técnica a través de los foros de Wando.

Logo encuesta valoración software libre

Encuesta de valoración del Software Libre, edición 2012

Como cada año, la gente de PortalProgramas se pone manos a la obra con la encuesta más importante a nivel nacional sobre la valoración por parte de todos los internautas del Software Libre. Este año no podía ser menos y aquí os traemos la edición 2012 de esta encuesta.

Logo encuesta valoración software libre

El método es sencillo, entráis en este enlace y respondéis de forma rápida y cómoda a una serie de preguntas que son de mucho valor para conocer hasta qué punto ha llegado el Software Libre al gran público y conocer de primera mano cómo lo tienen considerado. Cada edición cuenta y poder comparar datos de varias ediciones es muy importante.

Os recomiendo visitar los datos de ediciones anteriores para que os hagáis una idea de lo importante que puede llegar a resultar vuestra colaboración:

Bloquear una dirección IP con PHP

Sea por comodidad, por manejo o porque no tenemos otra (e.g. no podemos editar la configuración nuestro servidor con htaccess) para bloquear una dirección IP podemos usar PHP con éste propósito.

Para ello, incluiremos dentro de nuestro archivo PHP el siguiente código. Lo ubicaremos en la parte superior, antes de realizar ningún retorno por la salida estándar.

<?
$bloqueo[0]="167.127.31.5";
$bloqueo[1]="167.127.31.5";
$bloqueo[2]="167.127.31.5";
// De esta manera con cuantas como deseemos

if (in_array($_SERVER['REMOTE_ADDR'],$bloqueo)) header("HTTP/1.1 403 Forbidden");
?>

Creo que, aun careciendo de más comentarios, el código habla por si sólo. Fácil y útil al mismo tiempo.

Espacio en blanco o Whitespace

A la hora de diseñar páginas web siempre debes tener en cuenta un concepto básico y muy importante: el espacio en blanco o whitespace.

El espacio en blanco o whitespace es la distancia entre los elementos de una composición. Este concepto es una parte de los principios de diseño web. No debes confundir el espacio en blanco con el uso del blanco en una composición.

El espacio en blanco tiene muchas ventajas. La principal es que la separación de los elementos entre ellos hacen que sean más relevantes y fáciles de interpretar. Para esto tienes dos opciones: aumentar el tamaño del espacio o eliminar un elemento si es prescindible.

Veamos un ejemplo:

¿Qué escritura es más fácil de leer? El de la derecha. ¿Por qué? Porque el uso del espacio entre los elementos, en este caso borde, párrafo y líneas hace que dichos elementos sean más relevantes y fáciles de visionar con el sacrificio de poner menos contenido. Los espacios en blanco se pueden extrapolar a todas las formas de diseño: interiores, ilustraciones, edificios, etc.

La aplicación del espacio en blanco no es fácil. La distancia entre los elementos no debe ser ni demasiado cerca ni demasiado lejos. El ensayo y error y la consulta de buenos diseños, en este caso de páginas web, son la única manera de mejorar el uso de los espacios en blanco. La experiencia es la medida para saber qué tan bueno es un diseñador en el uso de este principio.

Muchas veces la gente utiliza este principio de diseño inconscientemente. Así que os animo a utilizar este principio en tus composiciones y que lo tengas en mente.

Robar wifi

Cada vez que oigo hablar a alguien de robar wifi me imagino esta situación.

Paginación en WordPress no funciona

En alguna ocasión me he encontrado con algún cliente o un tema en un proyecto propio en el que los botones de paginación no funcionan, incluso usando paginación al estilo WP Page Navi. El problema es que siempre se presenta la primera página sea cuál sea la página que se pida (podemos ver la página que se pide en la URL: /page/2 o /page/3...).

Probablemente no sea un problema de WordPress sino un problema de vuestro tema que no trata las variables de paginación. ¿Cómo podemos verlo? Dirigiros a vuestro index.php o al fichero en el que esté implementado el loop.

  1. Buscad la zona donde se forme la consulta (WP_Query)
  2. Comprobad en sus parámetros si se trata la página, sería algo así: &paged=' . $paged
  3. En caso de que no se trate la variable, ahí tenéis el problema, si se trata tenéis que comprobar que la variable paged está siendo declarada y correctamente recogida de la URL: $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;

El código a buscar sería el que se encuentra alrededor de WP_Query y debería modificarse para que quedara como se indica a continuación:

// si no está declarada $paged, será 1 
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
// creamos la consulta
$wp_query = new WP_Query();
// le pasamos la página
$wp_query->query('posts_per_page='.get_option('posts_per_page').'&paged=' . $paged);

Además de la página, en este caso también estamos indicando el número de entradas por página que se está recogiendo de la base de datos en la tabla wp_options con get_option.

Tened en cuenta que en función de los parámetros propios de vuestro loop: categoría específica, autor en concreto o cualquier otra condición; los parámetros pueden cambiar pero en el fondo lo que es importante es que:

  1. Se recoja correctamente el número de página de la petición
  2. Se le indique a la consulta que debe usarlo

Configurar la interfaz de red por consola

El propósito de esta entrada es la de administrar la red de nuestro sistema sin necesidad de atender a ninguna interfaz gráfica. Os iré mostrando los puntos que he encontrado más relevantes para configurar la red por consola.

En los ejemplos mencionados estoy logueado como superusuario, de forma que para editar ficheros o realizar determinadas acciones no tenga que solicitar privilegios con otro usuario (e.g. mediante la aplicación sudo)

Mostrar la configuración actual

root@6581-Server:~# ifconfig -a

eth0 Link encap:Ethernet HWaddr 08:00:27:a4:07:e0
inet addr:192.168.1.134 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fea4:7e0/64 Scope:Link
[...]

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
[...]

Levantar o bajar una red

No os aconsejo ejecutar la siguiente línea esto si os encontráis conectados de forma remota por esta interfaz.

root@6581-Server:~# ifconfig eth0 down

Modificar la configuración

Existen otras vías, como por ejemplo: ifconfig eth0 192.168.1.134 netmask 255.255.255.0 up, pero prefiero hacerlo así ya que los cambios son permanentes.

Editamos el fichero de configuración

root@6581-Server:~# nano /etc/network/interfaces

Este tendrá la siguiente forma, dónde estamos indicando que la interfaz lo haga un loopback y la eth0 se levante de forma automática, sea estática, tenga esa IP, esa máscara y asignada esa puerta de enlace predeterminada. 

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.134
netmask 255.255.255.
gateway 192.168.1.1

Una vez realizados los cambios debemos de reiniciar el servicio, para ello podemos:

1. Pararlo y levantarlo completamente (recomendado):

root@6581-Server:~# /etc/init.d/networking stop
root@6581-Server:~# /etc/init.d/networking start

2. Reiniciarlo

root@6581-Server:~# /etc/init.d/networking restart

3. O apagar y encender la interfaz afectada:

root@6581-Server:~# ifdown eth0 && ifup eth0

Editar los servidores DNS

Simplemente editamos el fichero /etc/resolv.conf y añadimos, por ejemplo, los DNS de Google:

root@6581-Server:~# nano /etc/resolv.conf

nameserver 8.8.8.8
nameserver 8.8.4.4

Bien, creo que cómo guía básica es suficiente. Si quieres aportar algún dato extra o tienes alguna duda no dudes en escribirnos.

Tutorial Mono - Programación en C#

Curso-Tutoriales en PDF de C# mono

Saludos a toda la comunidad.

Tenéis a vuestra disposición una serie de tutoriales de C# con mono, actualmente hay 6 temas pero iré publicando más. Los temas están en formato pdf para más comodidad y portabilidad ; )

Tutorial Mono - Programación en C#

http://stringinarray.wordpress.com/category/tutorial-csharp-mono/

Puntos tratados en los 6 temas:

Tema 1 – Introducción a tecnología NET con Mono y fundamentos de C#

  • ¿Qué es C# y NET?
  • ¿Qué es Mono?
  • Instalación del entorno Mono y el IDE MonoDevelop
  • Primera toma de contacto con el entorno de desarrollo MonoDevelop
  • Compilar y ejecutar
  • Espacios de nombres NAMESPACE
  • Controlar el ámbito con namespace
  • Comentarios
  • Documentación estructurada y generación en XML
  • Trabajar con variables
  • Tipos de datos fundamentales
  • Constantes
  • Conversiones de tipo de datos
  • La Clase Convert
  • Operadores
  • Control de flujo de ejecución
  • Condicionales
  • Operadores lógicos
  • Sentencia switch
  • Bucles
  • Las sentencias break y continue
  • Actividades

Tema 2 – Clases y objetos

  • ¿Qué es una clase?
  • Cómo declarar una clase
  • Modificadores de acceso
  • Instanciación
  • Constantes de una clase
  • Variables estáticas
  • Los métodos
  • Métodos estáticos
  • Retornar valores
  • Uso de parámetros
  • Paso por valor
  • Paso por referencia
  • Parámetros de salida
  • El método constructor
  • Constructor de copia
  • Destrucción de objetos
  • Estructuras
  • Zona de Datos
  • Stack
  • Heap
  • Como interactúan el Heap y el Stack
  • Relación con el GC Garbage Collector
  • Actividades

Tema 3 – Encapsulamiento, herencia y polimorfismo

  • Herencia
  • Redefinir métodos en clases heredadas
  • Uso de modificadores de acceso en herencia
  • Declaración de propiedades (get y set)
  • Invocar constructores en herencia
  • Invocar destructores en herencia
  • Composición
  • Composición frente a herencia
  • Polimorfismo
  • Sobrecarga de métodos
  • Sobrecarga de operadores
  • Métodos virtuales
  • Interfaces
  • Clases abstractas
  • Diferencia entre clase abstracta e interface.
  • Actividades

Tema 4 – Colecciones y Enumeraciones

  • Arrays
  • Inicializando elementos de arrays
  • Array que contiene diferentes tipos de de datos
  • Recorriendo arrays
  • Métodos y propiedades de la clase Array
  • Arrays como parámetros de métodos
  • Valores predeterminados en un array
  • El modificador params
  • Arrays multidimensionales
  • Arrays de arrays
  • Indexadores también llamados indizadores
  • Indexadores para acceder a arrays de dos dimensiones
  • Interfaces para colecciones
  • IEnumerable y Ienumerator
  • ICollection
  • IComparable
  • IList
  • Clases para colecciones
  • Clase genérica Collection
  • La clase ArrayList
  • Diccionarios
  • La clase Hashtable
  • Las Colecciones Stack & Queue
  • Colecciones Genéricas
  • Enumeraciones
  • La clase System.Enum
  • Actividades

Tema 5 – Delegados y eventos

  • Delegados
  • Declaración de delegados
  • Delegados compuestos
  • Métodos anónimos
  • Encapsular varios métodos en un objeto delegado
  • Covarianza y contravarianza en los delegados
  • Eventos
  • Definir eventos
  • Asociar eventos con un método
  • Desasociar eventos
  • Detectar cuándo se añade o se elimina un delegado de un evento
  • El delegado EventHandler
  • Eventos y herencia
  • Eventos en interfaces
  • El delegado genérico EventHandler
  • Parámetros por referencia en eventos
  • Usando clases como parámetro de eventos
  • Actividades

Tema 6 – Manejo de excepciones

  • Tratamiento de errores
  • Controlar las excepciones
  • Bloque finally
  • Clases de excepciones
  • La clase System.Exception
  • Excepciones predefinidas comunes
  • Lanzamiento de excepciones. Instrucción throw
  • Overthrowing: número excesivo de excepciones.
  • Overcatching: recoger más tipos de excepción que lo que interesa.
  • Log de errores
  • Control de errores en aplicación con interfaz
  • Crear excepciones definidas por el usuario
  • Actividades

 Los siguientes temas tratarán de GTK#, Ficheros, Acceso a datos y linq, etc..

Paco Aragón Mesa

Lo mejor de mi RSS del 10 al 16 de septiembre

Lo mejor de mi timeline del 8 al 14 de septiembre

https://twitter.com/fainfoscienza/status/244402246463401984

https://twitter.com/cometelasopa/status/245520120435335168

https://twitter.com/es_engadget/status/246643228223356929


https://twitter.com/emsLinux/status/245262395902156800

https://twitter.com/pablofmorales/status/244445426659508224

Nuevo fondo de pantalla para Ubuntu 12.10

Ya tenemos el nuevo fondo de pantalla que aparecerá para Ubuntu 12.10. Como se observa, en este fondo de pantalla los degradados son muchos más suaves. Puedes descargarlo pulsando aquí.

Si quieres más fondos de pantalla realizados por la comunidad para Ubuntu 12.10 puedes descargarlos desde esta página.

Linux Hispano en Botize

¿Botize? Sí, no es una red social, ni un foro, tampoco un blog... es un sistema de automatización de procesos. Como su nombre indica Botize "robotiza" nuestro contenido (o contenido externo) sobre Twitter, Facebook, Google Drive, Dropbox, Instagram, feeds RSS.

En Linux Hispano aun no nos hemos hecho con una cuenta premium, pero no dudamos en hacerlo en un futuro. Básicamente el uso que le hemos dado está relacionado con la red de Twitter, y con la cuenta gratuita se pueden realizar hasta tres acciones. En la siguiente imagen podéis ver un ejemplo de las acciones que realizamos aquí:

  • Nos hemos propuesto marcar como favorito los tweets en español con hashtag #Linux
  • Al seguirnos, tachán! te seguiremos...
  • Y los tweets con nuestro hashtag (#LinuxHispano) será retuiteados

Si os mueve alguno de estos aspectos u os intriga, os animo a probar esta herramienta, pienso que merece la pena.

Tux Info número 51: Tor, invisibilidad en la red

Otro mes más os anunciamos en estas líneas las aparición de un nuevo número de la revista Tux Info libre, gratuita y en línea. Tenéis la revista en línea en este enlace y si preferís descargar el PDF en este otro.

El índice de este mes es:

  • TOR: Invisibilidad en la red
  • GVFX: Creando simples transiciones para video
  • Samsung Galaxy S3: El gigante al desnudo
  • LPS (Lightweight Portable Security)
  • Zorin OS: Distro para principiantes
  • Zorin OS: La facilidad más lograda
  • Sony Ericsson Xperia Neo V: Poderoso el chiquitín
  • Hackers: ¿Piratas informáticos?
  • Apache™ Bloodhound
  • Migración de aplicaciones a software libre
  • Dafiti: Una tienda de moda online con software libre en su núcleo
  • Spring: 1944: ¡Estrategia en la Segunda Guerra Mundial!
  • XIII Congreso de Estudiantes de Ingeniería IEEE - UNEFA
  • systemd: Adios a SysV, empezando a usar systemd

La revista lista para leer a continuación:

[Whois .es] Información de dominios .es, datos del titular y dominios DNS

Muchos estaréis acostumbrados a consultar tanto la disponibilidad como los datos del propietario o servidores DNS a través de servicios tipo whois como whois.cominternic.net o whois.net.

Para el caso de los dominios .es la consulta de la disponibilidad es pública, mientras que los datos del titular del domino y los servidores DNS no son identificables por estos medios. Tenemos que atender a nic.es (la entidad responsable de gestión del registro de nombres de dominio de Internet bajo el código de país .es) para realizar la consulta.

Así, si queremos obtener información de, por ejemplo, google.es, nos dirigimos a nic.es/sgnd/dominio/publicInformacionDominios.action, introducimos el dominio (en este caso google.es), luego clicamos sobre éste en ver datos y, finalmente, introducimos los caracteres del captcha. El resultado, el que esperábamos:

DATOS DEL TITULAR
Nombre del Dominio google.es
Estado Activado
Identificador GI1137-ESNIC-F4
Titular GOOGLE INC.
Fecha de Alta 16-09-2003
Fecha de Caducidad 16-09-2013
Agente Registrador MARKMONITOR
PERSONA DE CONTACTO ADMINISTRATIVO
wedge
Identificador TT624-ESNIC-F4
PERSONA DE CONTACTO TECNICO
wedge
Identificador TT624-ESNIC-F4
SERVIDORES DNS
Nombre Servidor IPv4 IPv6
 ns2.google.com
 ns1.google.com

1 2 68 69 70 164 165