La importancia del inglés en el ámbito de la programación

El inglés es muy importante, no solo por ser el idioma más hablado en el mundo, sino porque en comprobaciones hechas, la iniciación en el desarrollo de tecnologías informáticas y computación por lo general provienen de países de donde el idioma dominante es el inglés, el vocabulario técnico en el área de informática es en su mayoría inglés, por esto la importancia del idioma en esta área. Los profesores de inglés nos ayudaran ampliamente a comprender este tipo de programaciones.

Entrar al mundo de la informática

Dentro del mundo de la programación debemos primeramente saber que fue iniciado en países donde su idioma principal es el inglés, para nuestro buen desarrollo en esta área el aprendizaje se debe ir a la par con el idioma y esto nos lo facilita porque existen los profesores de inglés online y con estos podremos aprenderlo. read more

Leer más » 1 Comentario

Latino – Nuevo lenguaje de programación con sintaxis en español

Hola les hago una invitación a todos los desarrolladores y al público en general para la creación de un nuevo lenguaje de programción con sintaxis en español y que sea lo más natural posible.

Este proyecto nace de la necesidad de incrementar la educación de nivel básico (primaria y secundaria) debido a que los niños tienen la capacidad de entender la lógica a muy temprana edad y es en esta edad cuando más aprenden, esto motivará a los niños y jovenes por interesarse en el mundo del desarrollo de aplicaciones. read more

Leer más » 15 Comentarios

Julia, un prometedor lenguaje de programación

julia

A la hora de programar cálculo científico existen los famosos lenguajes de programación como MATLAB/Octave, R o incluso Python. Sin embargo, estos lenguajes pecan en varios aspectos como eficiencia, paralelización, etc. Últimamente está creciendo en popularidad un nuevo lenguaje que corrige estas deficiencias. Se llama Julia y éstas son algunas de sus principales características:

· Sintaxis sencilla y elegante al estilo MATLAB/Octave.
· Compilador JIT que ofrece una alta eficiencia.
· Diseñado para programar fácilmente sistemas distribuidos y/o paralelos.
· La licencia de Julia es de código abierto, exactamente la MIT. read more

Leer más » 2 Comentarios

Navegar dentro de una misma página HTML

AnclaAunque la navegación dentro de un mismo documento web es algo que lleva mucho tiempo funcionando dentro de las tecnologías web, a día de hoy, a vuelto a estar de moda gracias a los themes que aprovechan la navegación vertical sin cambio de URL. ¿Cómo funciona esta forma de navegar? Creo que todos conocéis la siguiente forma: read more

Leer más » 1 Comentario

wp_kses() o cómo limpiar cadenas HTML en WordPress para evitar ataques XSS

Cuando desarrollo plugins y themes para WordPress en CODECTION siempre procuro mirar por la seguridad, “sanitizando” variables tanto para evitar ataques vía inyección SQL como para evitar ataques XSS. Es muy frecuente, que si recibes peticiones y luego las devuelves por pantalla, las variables que manejes, si las maneja el usuario de alguna manera, puedan terminar siendo el origen de una ataque XSS.

Algo tan sencillo como pasar una etiqueta script o iframe en un sitio conveniente y además de un ataque XSS, eres una fuente de phising para el resto de la red. Por fortuna, WordPress facilita mucho la vida al desarrollador al respecto y para evitar este tipo de ataques nos ofrece una función que además es extensible en su funcionamiento vía parámetros.

La función en cuestión es wp_kses() y aunque es similar a strip_tags(), una función nativa de PHP, suele recomendarse para cuestiones de seguridad.

wp_kses-vs-strip_tags

¿Para qué usamos wp_kses?

Básicamente deciros que sirve para limpiar una cadena de elementos HTML indeseados (imaginad otros usos que no sea el de seguridad, se me viene a la cabeza un uso de “limpieza” de una cadena proveniente de Microsft Word o LibreOffice Write).

Tiene esta forma:

wp_kses($string, $allowed_html, $allowed_protocols);

Y los parámetros que recibe indican exactamente:

  • $string: cadena a filtrar
  • $allowed_html: etiquetas HTML que se permitirán y que no se limpiaran
  • $allowed_protocols: protocolos permitidos, por defecto vienen unos pocos y siempre se asegura que no va a permitirse etiquetas ni invocaciones a ficheros JavaScript

La función devolverá el código HTML totalmente limpiado.

El segundo parámetro es interesante, porque podemos definir también qué atributos pasarán de cada etiqueta, un ejemplo curioso:

array(
    'a' => array(
        'href' => array(),
        'title' => array()
    ),
    'br' => array(),
    'em' => array(),
    'strong' => array(),
);

Ejemplo

El ejemplo es original de Simon Wheatly. Tenemos de entrada:

Wisi <a href=”#” style=”color: red;”>defui nunc</a> dignissim <strong class=”weird”>transverbero ideo vel</strong> utinam blandit, iaceo meus epulae enim amet nibh sed brevitas. Pala consequat <script type=”text/javascript” src=”http://example.com/certainly/do/not/want/this.js”></script> capio sino regula typicus <small>luptatum</small> olim ullamcorper uxor in verto.

Vamos a dejar sólo:

  • La etiqueta ‘a’ y sus atributos ‘href’, ‘title’ y ‘target’
  • Y las etiquetas ’em’ y ‘strong’ => array()

El código sería este:

$entrada = 'Wisi <a href="#" style="color: red;">defui nunc</a> dignissim <strong class="weird">transverbero ideo vel</strong> utinam blandit, iaceo meus epulae enim amet nibh sed brevitas. Pala consequat <script type="text/javascript" src="http://example.com/certainly/do/not/want/this.js"></script> capio sino regula typicus <small>luptatum</small> olim ullamcorper uxor in verto.'; $etiquetas_permitidas = array( 'a' => array( 'href' => array(), 'title' => array(), 'target' => array() ), 'em' => array(), 'strong' => array(), ); $salida= wp_kses( $entrada, $etiquetas_permitidas ); echo $salida; read more

Leer más » 1 Comentario

Lo mejor de mi RSS del 30 de junio al 6 de julio de 2014

Más de uno nos leerá ya desde la playa, estamos ya en julio y en este fresco verano andaluz (fresco lo digo sin ironía alguna, extrañamente fresco por ahora) os traigo lo mejor que he leído esta semana en mi lector de RSS favorito, Feedly:

He usado en algún sitio como este para CODECTION el efecto zoom para las imágenes pero no conocía este de pasar a ventana completa, muy interesante para implementar en tiendas online:  

Zoom y navegación de imágenes a pantalla completa – Kabytes read more

Leer más » 1 Comentario

Manejo básico del búfer en PHP

Logo PHPSiempre que manejamos PHP, existe la problemática de mezclar la vista y funcionalidad. Este problema se da a varios niveles y es más complejo y da más quebraderos de cabeza cuanto más se enrevesan código y funcionalidad, el caso típico es cuando guardamos parte de la vista en una cadena y la devolvemos o la imprimimos. Al meter la vista dentro de la cadena, el código se vuelve poco legible y además hay ocasiones en las que este métodos llega a ser inoperable. read more

Leer más » 1 Comentario

Cómo obtener la dirección URL actual en WordPress

Hay muchas formas de hacerlo, pero las que pasan por usar directamente $_SERVER como la vía que se muestra en este ejemplo no me convencen para nada.

Así que ya que usamos WordPress, vamos a ayudarnos de éste para hacerlo.

Lo primero es entender qué significa obtener la dirección URL actual, en resumidas palabras obtener lo que tenemos en la barra de direcciones (si no hemos modificado su contenido previamente, de cajón 😉 ) Con la función add_query_arg, si no le pasamos ningún elemento (array()) obtendremos la ruta actual de la forma /página/subpágina/ pero si lo que deseamos es la dirección completa tendremos que usar home_url. Así, si introducimos lo siguiente: read more

Leer más » 1 Comentario

PHP Fatal error: Class ‘Imagick’ not found

imagemagickSi manejáis PHP y sois usuarios de Linux sabréis que una de las mejores librerías que existen para manejar imágenes, con operaciones a todos los niveles, es imagemagick.

En caso de que la estéis usando y obtengáis un error 500 del servidor, si activáis los errores, es posible que tengáis algo así:

PHP Fatal error:  Class ‘Imagick’ not found 

El error se debe a que no tenéis instalada la librería correctamente, la solución es simple:

apt-get install imagemagick php5-imagick read more

Leer más » 1 Comentario

Obtener nombre, dirección y otros detalles de un blog dentro una red de blogs WordPress

Las redes de blogs WordPress, los antiguos WordPress Multisite, son una alternativa muy funcional para poder mantener multitud de sitios, en una sola instalación. No tienen por qué ser blogs, ni formar parte de una red como tal, sino pertenecer a una misma instalación para ahorrar en recursos y en mantenimiento. read more

Leer más » 2 Comentarios

Ordenando consultas con valores NULL en MySQL

MySQL logoCuando trabajamos con bases de datos, normalmente tendremos casos en los que existan valores nulos tanto en nuestras tablas como en el resultado de nuestras consultas. Sin embargo, esta realidad, también provoca que algunas acciones como las ordenaciones sean problemáticas. Para poder superar estas dificultades disponemos de funciones como coalesce() (buscad dentro del enlace).

La función coalesce()

¿Qué hace esta función? Recibe una serie de parámetros y devuelve el primero que no es nulo. read more

Leer más » 3 Comentarios

Listar todas las tablas de una base de datos en MySQL

Siempre que trabajamos con MySQL o con cualquier otro sistema gestor de bases de datos relacional tenemos la costumbre de hacer operaciones sobre las tablas y no sobre las bases de datos en sí. Básicamente lo único que hacemos es:

 USE mi_base_de_datos

O con el lenguaje que estemos usando la elegimos y trabajamos sobre ella o como mucho haciendo consultas entre varias bases de datos.

Logo MySQL

Sin embargo, hoy trabajando en un proyecto que estoy haciendo para un cliente de CODECTION, he tenido la necesidad de listar y operar sobre los nombres de las tablas de una base de datos. ¿Cómo lo he hecho? read more

Leer más » 13 Comentarios

Comprobar en WordPress si el usuario actual es administrador

WordPress utiliza un mecanismo sencillo y potente para redirigir el flujo en función de varias circunstancias, son las llamadas Conditional Tags y nos sirven por ejemplo para definir en un fichero diferentes comportamientos en función de:

  • el tipo de URL visualizada si es de archivo, del loop principal, si es un post, si es una página
  • el ID de la página o post que estamos viendo
  • si pertenece a una categoría u a otra o a una categoría u otra

Una consulta frecuente que me hacen y que veo en Internet mucho (además de que yo mismo caí en su día, son muchos años desarrollando con WordPressç) es cómo distinguir si estamos ante un usuario administrador o de otro tipo. read more

Leer más » 2 Comentarios

Obtener una lista HTML de todas las categorías en WordPress

Como todos sabréis si usáis WordPress, toda la información que el sistema maneja: las entradas, las páginas, o cualquier otro tipo de dato que hayáis creado (los llamados Custom Post Type), se estructura en base una taxonomía. read more

Leer más » 1 Comentario

Enviar Mails con Java

Algunas de las aplicaciones que realizamos como programadores tienen la necesidad de Enviar Correos Electronicos por muchas razones, aqui veremos como realizarlo con JavaMail. JavaMail es una expansion de Java (no viene incluida, es un paquete externo) que facilita la Gestion de Correos Electronicos desde Java, se encarga de las tareas de conexion, autentificacion, seguridad y encriptacion para facilitar la tarea de los programadores. En este Ejemplo veremos como enviar mails con java utilizando una cuenta de Gmail a la que JavaMail se conectara, veamos como hacerlo…

Leer más » 4 Comentarios