Mientras trabajo en la creacion de un plugin me encontre con el siguiente error en la activacion del plugin:
"The plugin generated xxx characters of unexpected output during activation. If you notice “headers already sent” messages, problems with syndication feeds or other issues, try deactivating or removing this plugin."
Wodpress no es muy claro para decirnos el tipo de error que necesitamos corregir , por lo tanto
necesitamos encontrar una manera para saber cual es el error que ocurrio durante la activacion
del plugin , wordpres trabaja con algo llamado "hook" donde podemos ejecutar algun
metodo entonces escribimos en nuestro plugin la siguiente linea
function catchErrorPlugin()
{
file_put_contents('./wp_plugin_error.log', ob_get_contents());
}
add_action('activated_plugin', 'catchErrorPlugin');
Esto va crear un archivo con la descripcion exacta del error que necesitamos corregir .
No soy un experto.... pero me gusta compartir lo que aprendo leyendo de otras personas e internet.
viernes, 5 de julio de 2013
miércoles, 3 de julio de 2013
Wordpress: Creando plugin con WP_List_Table y undefined function convert_to_screen()
Trabajando en la creacion de un plugin para wordpress donde tengo que usar la clase " WP_List_Table " me encontre con el siguiente error en la parte del front-end cuando instancias la clase para crear la tabla.
undefined function convert_to_screen()
El problema con esto es que WP_List_Table no encuentra el metodo que se encuentra en "wp-admin/includes/template.php " buscando en interent fue todo un caos , algunos dicen que es un bug , otros dicen que pasa por que ese ese metodo solo accesible para el area de admin ya que ahi no pasa el error.
Bueno solo escribo aqui para postear como he solucionado el error tienes que agregar estas linea donde estas extendiendo la clase WP_List_Table.
if(!class_exists('WP_List_Table')){
require_once( ABSPATH .'wp-admin/includes/template.php');
require_once( ABSPATH .'wp-admin/includes/class-wp-list-table.php' );
}
Al agregar "template.php" WP_List_Table tendra acceso al metodo que necesita , estoy seguro que en terminos de seguridad no es correcto acceder a metodos admin en el front-end pero tenia que solucionar el problema.
undefined function convert_to_screen()
El problema con esto es que WP_List_Table no encuentra el metodo que se encuentra en "wp-admin/includes/template.php " buscando en interent fue todo un caos , algunos dicen que es un bug , otros dicen que pasa por que ese ese metodo solo accesible para el area de admin ya que ahi no pasa el error.
Bueno solo escribo aqui para postear como he solucionado el error tienes que agregar estas linea donde estas extendiendo la clase WP_List_Table.
if(!class_exists('WP_List_Table')){
require_once( ABSPATH .'wp-admin/includes/template.php');
require_once( ABSPATH .'wp-admin/includes/class-wp-list-table.php' );
}
Al agregar "template.php" WP_List_Table tendra acceso al metodo que necesita , estoy seguro que en terminos de seguridad no es correcto acceder a metodos admin en el front-end pero tenia que solucionar el problema.
martes, 2 de julio de 2013
Como mandar informacion secreta encriptada
Con todo el asunto que paso recientemente con el caso de PRISM el proyecto ultra secreto del EEUU donde nos espía a todos en el planeta y tiene acceso todos nuestros datos de google , facebook , twitter , yahoo , etc.
Viene la pregunta y ahora que hacemos ? como puedo enviar alguna información sin que el gobierno de EEUU tenga acceso a ellos , ya que si envías un sms , email o haces una llamada telefónica ten por seguro que el gobierno tiene esos datos por que la compañías no encriptan esa información en sus bases de datos.
Bueno con esto en mente hay una web que te permite enviar información de carácter ultra secreto encriptado y una vez que es leído destruye el mensaje todo esto de manera totalmente anónimo y gratuito , por ahora es lo seguro que se puede usar para enviar información , ya que si quieres enviar tu numero de tarjeta de crédito por correo es una mala idea . link del servicio abajo
link: https://www.noteshred.com/
lunes, 1 de julio de 2013
Para que sirve Underscore.js
En este post quiero hablar de underscore.js una libreria javascript que nos ofrece muchas utilidades que nos harán las vida mas fácil al trabajar con tipos de datos object y array , la razón por la que hago este post es para ofrecer ejemplos un poco mas prácticos de lo que puede hacer underscore.js.
Hace un tiempo atrás yo no conocía esta librería y por razones de trabajo tuve a revisar su pagina oficial para saber de que se trataba , la primera vez que leí la documentación y ver algunos ejemplos de la pagina no me termino de convencer y no le preste mucha atención a la librería e incluso pensé que era una perdida de tiempo , pero después varios amigos del trabajo me explicaron el uso de underscore.js aplicados con ejemplos reales en proyectos y hasta ese momento me di cuenta del potencial de esta librería.
Si nadie me hubiera explicado el uso de underscore.js con usos prácticos nunca me hubiera interesado en la librería , creo que los ejemplos de la pagina oficial no lograron transmitirme el verdadero potencial de esta librería por esta razon escribo este post para tratar transmitir a otros lo que yo no entendi en su momento.
Para los siguientes ejemplos puedes usar el modo consola de google chrome para ejecutarlos o puedes crear un proyecto pequeño en tu maquina , todas las instrucciones de como usar la librería están en la pagina oficial de underscore.js aqui solo veremos ejemplos practicos de algunos metodos.
Lo primero que necesitamos es un arreglo de objetos que nos simulen datos provenientes de una BD :
var json = [
{ "id": "18741DB9-B869-B378-8624-0B9F593F84BA", "name": "Ross", "email": "lobortis@arcuetpede.ca", "about": "nisl. Quisque fringilla euismod enim.", "title": "Mr." }, { "id": "E2D7A39E-4583-A27A-BC55-98489F062FB1", "name": "Bruno", "email": "egestas.nunc@eratvitaerisus.edu", "about": "Donec tincidunt. Donec vitae erat", "title": "Ms." }, { "id": "26CC1826-2BBA-5ABB-CB7E-D06AD96D1A23", "name": "Audra", "email": "tincidunt.vehicula.risus@tempus.com", "about": "Nullam suscipit, est ac facilisis", "title": "Mr." }, { "id": "4F0FCC7A-A715-4AC2-B64F-830AA3441995", "name": "Kelsey", "email": "sodales.at@quis.net", "about": "mi felis, adipiscing fringilla, porttitor", "title": "Mr." }, { "id": "8A3A6AF5-225D-D812-ABB0-3668D27F677F", "name": "Blaine", "email": "suscipit.est.ac@aclibero.ca", "about": "lorem eu metus. In lorem.", "title": "Mr." }, { "id": "8B7A6266-5CDD-AF5A-6C15-ECF6273A26FB", "name": "Brielle", "email": "Morbi.metus@nislQuisque.net", "about": "ullamcorper eu, euismod ac, fermentum", "title": "Dr." }, { "id": "3C1D2DF8-CB72-EF58-2B7D-DD266E54710A", "name": "Susan", "email": "rutrum@aliquet.org", "about": "mattis. Cras eget nisi dictum", "title": "Mrs." }, { "id": "1F391F0E-DE13-5089-7A92-8BA9B1264245", "name": "Brent", "email": "nibh.dolor@magna.edu", "about": "fringilla. Donec feugiat metus sit", "title": "" }, { "id": "340DCB7E-428E-EA04-E394-513893AE2E56", "name": "Cally", "email": "Cras.lorem@eunullaat.net", "about": "nunc. In at pede. Cras", "title": "" }, { "id": "C061F9A3-EC77-6B24-E0A4-218134EA240E", "name": "Edan", "email": "vel.mauris@sed.ca", "about": "sit amet orci. Ut sagittis", "title": "Ms." } ] ;
Con este ejemplo vamos comenzar nuestra practica. En la variable json estamos asignando un arreglo de objetos donde cada elemento del arreglo es un objecto con la siguiente estructura :
{
"id": "18741DB9-B869-B378-8624-0B9F593F84BA",
"name": "Ross",
"email": "lobortis@arcuetpede.ca",
"about": "nisl. Quisque fringilla euismod enim.",
"title": "Mr."
}
En total hay 10 elementos en nuestro arreglo , con la misma estructura pero con diferente datos a simple vista no puede parecer mucho pero ahora imagina este arreglo pero de 200 elementos que fueron devueltos de una consulta a alguna BD.
Ahora vamos a ver algunos métodos , no voy explicar las definiciones estas las puedes revisar en la pagina oficial solo comentare algunas ideas de como usarlos :
each : Puede usarse para realizar operaciones por cada elemento del arreglo ejemplo :
_.each( json , function(element){ console.log(element.title + element.name) });
El resultado de esto sera :
Mr.Ross Ms.Bruno Mr.Audra Mr.Kelsey Mr.Blaine Dr.Brielle Mrs.Susan Brent Cally Ms.Edan
Has notado lo simple que fue iterar en cada elemento del arreglo y concatenar 2 propiedades de el mismo en una sola linea de codigo ? Si no usaramos underscore.js para hacer esto tendríamos que usar un ciclo FOR que nos tomaría fácilmente mas de 4 lineas de código.
map: Lo podemos usar para para extraer solo las propiedades que nos interesan de cada uno de los elementos del arreglo . ejemplo:
_.map(json, function(element){ return {"name": element.name ,"email" : element.email } });
El resultado sera un arreglo de 10 elementos donde la estructura de cada elemento es la siguiente :
{
email: "lobortis@arcuetpede.ca"
name: "Ross"
}
Aquí solo hemos extraído los datos que necesitábamos de todo el conjunto original.
find : Podemos usarlo para encontrar un elemento en especifico que necesitemos . ejemplo :
_.find(json, function(element){ return element.id == "8A3A6AF5-225D-D812-ABB0-3668D27F677F" });
El resultado sera :
{
id: "8A3A6AF5-225D-D812-ABB0-3668D27F677F",
name: "Blaine",
email: "suscipit.est.ac@aclibero.ca",
about: "lorem eu metus. In lorem.",
title: "Mr."
}
filter : Se usa para filtrar los resultados según una condición , por ejemplo si queremos saber cuales son los elementos del arreglo que tienen "Mr ." en la propiedad title. ejemplo:
_.filter(json, function(element){ return element.title == "Mr."; });
El resultado sera un arreglo de 4 elementos donde cada elemento tiene "Mr.s" en la propiedad title.
some : podemos usarlo para saber si existe algun valor en especifico esta presente en los elemento , ya que este metodo devuelve true si es encontrado. ejemplo :
_.some(json, function(element){ return element.name == "Brent" })
El resultado sera : true.
every : puede ser usado para saber si todos los elementos del arreglo son del tipo "Mr." ejemplo :
_.every(json,function (element) { return element.title == "Mr." });
El resultado sera : false por que en nuestro arreglo tenemos "Mr." y "Ms." presentes.
groupBy : Usado para agrupar colecciones de objetos, ejemplo :
var data = ["a1", "a2", "a3", "a4", "a5", "a6", "a7", "a8", "a9", "a10", "a11", "a12", "a13"];
var n = 3;
var lists = _.groupBy(data, function(element , index) {
return Math.floor(index/n);
});
El resultado sera: Un arreglo donde cada elemento es una coleccion de 3 elementos.
sortBy : Usado para ordenar arreglos en order ascendente
_.sortBy([3, 2, 1, 4, 6, 5], function(num){
return num;
});
El resultado sera : [1, 2, 3, 4, 5, 6]
Si quieres hacerlo en order descendente solo tienes que usar metodo reverse del objecto array()
_.sortBy(that.currentSession.players, function(player){
return player.points;
}).reverse();
uniq : usado para remover objetos duplicados de un arreglo
var data = [{'name': 'Amir', 'surname': 'Rahnama'}, {'name': 'Amir', 'surname': 'Stevens'}];
_.uniq(data,false, function(element){ return element.name; });
Hasta aquí he cubierto el uso básico de Underscore.js , te recomiendo que leas la documentación para saber que otras cosas puedes hacer con el como usar los templates y encadenar métodos espero haber aclarado un poco el uso de esta libreria
Link : http://underscorejs.org/

Icon Fonts La nueva manera de insertar iconos en tu web
Icon Fonts es una idea genial para insertar iconos en tu web sin usar archivos de imágenes como lo hacemos normalmente , tiene muchas ventajas sobre la manera tradicional.
Iba a escribirlas aquí pero encontré un link muy bueno donde las describen mejorde lo que yo lo haria y para que reinventar la rueda verdad ? de todas formas me extraño que en mi blog no haya escrito nada sobre este tema , ya que tiene su buen rato esto de los Icon Fonts.
martes, 25 de junio de 2013
invoiceomatic.io Servicio web para enviar factura a tu cliente
Servicio web para enviar factura a tu cliente de manera facil y gratis , El servicio te permite llenar el contenido de tu factura seleccionar el tipo de moneda y sera enviado al correo que tu decidas en formato pdf . muy interesante para ocaciones que no tenemos una plantilla de factura y no queremos usar el word para esto.
Aunque el servicio no te permite guardar tu factura en su version gratuita cumple lo que promete.
link : http://invoiceomatic.io/
martes, 28 de mayo de 2013
Carrito de compra javascript opensource facil de intergrar de 8kb
Si alguna vez necesitas integrar un carrito de compra sencillo en algun proyecto SimpleCart es tu solucion. Esta libreria javascript pone a tu disposicion un sistema de carrito de compra del lado del navegador sencillo pero bonito con 4 tipos de sistema de pagos listo para usar.
Sin base datos , sin complicados codigos del lado del servidor , sin dolores de cabeza simplemente necesitas un JSON para alimentar el sistema y listo !!! en minutos tendra tu tienda online.
y lo mejor de todo que solo mide 8kb minificado.
link : http://simplecartjs.org/
Sin base datos , sin complicados codigos del lado del servidor , sin dolores de cabeza simplemente necesitas un JSON para alimentar el sistema y listo !!! en minutos tendra tu tienda online.
y lo mejor de todo que solo mide 8kb minificado.
link : http://simplecartjs.org/
Buenas practicas para escribir codigo CSS
He encontrado un articulo de Philip Walton muy interesante sobre buenas practicas en nuestro codigo CSS , consejos de como estructurarlo y como usar de manera optima los selectores , a mi parecer una lectura obligada para cualquier desarrollador web.
Lo unico malo aqui pues es que esta en ingles , pero si te dedicas a esto del desarrollo web ya estaras acostumbrado.
martes, 21 de mayo de 2013
Angular, Backbone, CanJS y Ember cual es el mejor MVC Javascript ?
Con la evolución de javascript desde hace tiempo tenemos a nuestra disposición una serie de frameworks MVC para usar en nuestro proyectos , aprender a usar uno de estos frameworks puede ser determinante al momento conseguir un empleo , ya que todo indica que el desarrollo de aplicaciones va por este camino.
Encontré una guia muy util donde se hace una comparacion sobre los distintos framework que existen en la actualidad , asi que si estas en el proceso de aprender algun framework MVC esta guia te ayudara mucho a decidir cual es el mejor para ti.
domingo, 12 de mayo de 2013
app-UI alternativa a Jquery Mobile
APP-UI es un proyecto open source para maquetacion de interfaces para dispositivos moviles algo parecido a Jquery Mobile. Según la web oficial puede trabajar en conjunto con otros frameworks tipo bootstrap de twitter , aqui les dejo el video de presentacion .
lunes, 15 de abril de 2013
Instrucciones en tu App tipo overlay
Una parte interesante cuando estas desarrollando alguna App es de que manera publicaras las instrucciones , por lo general están los vídeos o alguna pagina de FAQ. Hoy encontre un script Javascript que te permite poner instrucciones en tu App a manera de overlay muy elegante por cierto.
Se llama Chardin.js entren y hechen un vistazo a su demo.
Se llama Chardin.js entren y hechen un vistazo a su demo.
lunes, 8 de abril de 2013
37 cursos universitarios, online y gratuitos que inician en abril
He encontrado una web donde se han recopilando varios enlaces con cursos universitarios para cualquiera que le pueda interesar y todo gratuitos , creo que el único problema es que la mayoría están en ingles.
si quieren pueden dar una mirada en este link
jueves, 4 de abril de 2013
Google abandona el motor webkit
En el mundo de desarrollo web webkit es el motor de render de los navegadores
mas usado siendo google chrome el que mejor uso hace de el . El solo hecho de tener
multiples motores de render es un dolor de cabeza para nosotros los desarrolldores
siempre tenemos que adaptar nuestro codigo para cada uno.
Alguna vez pense que llegariamos a tener un solo motor de render unico , pero eso
ahora es historia ya que google ha anunciado que abandona el motor de render webkit por blink
las razones de esto segun google es ingenieria , habia mucho codigo anterior que habia
que darle mantenimiento y la otra es que ahora pueden implementar muchas cosas nuevas sin tener
muchos problemas.
Lo que sorprende mas es que Opera dara el salto a blink junto con google. Creo que veremos muchas
cosas buenas en el futuro con este motor. Por ahora google dice que con blink no necesitaremos poner
prefijos como lo hacemos anteriormente.
mas usado siendo google chrome el que mejor uso hace de el . El solo hecho de tener
multiples motores de render es un dolor de cabeza para nosotros los desarrolldores
siempre tenemos que adaptar nuestro codigo para cada uno.
Alguna vez pense que llegariamos a tener un solo motor de render unico , pero eso
ahora es historia ya que google ha anunciado que abandona el motor de render webkit por blink
las razones de esto segun google es ingenieria , habia mucho codigo anterior que habia
que darle mantenimiento y la otra es que ahora pueden implementar muchas cosas nuevas sin tener
muchos problemas.
Lo que sorprende mas es que Opera dara el salto a blink junto con google. Creo que veremos muchas
cosas buenas en el futuro con este motor. Por ahora google dice que con blink no necesitaremos poner
prefijos como lo hacemos anteriormente.
jueves, 21 de marzo de 2013
Aprende a usar las Devtool de google chrome
Si eres un desarrollador de aplicaciones web unas de las herramientas mas importantes que tienes que aprender a usar son las devtools de google chrome , son un set de herramientas muy poderosas para ayudarte a depurar tu aplicacion ya sea el HTML , CSS , JAVASCRIPT.
Esta es una de esas herramientas que nunca deben faltar para cualquier desarrollador de aplicaciones web y como siempre los chicos de google quieren enseñarnos a usarlas han creado una web donde tiene video de entrenamiento para que puedas aprender a utilizar esta herramienta.
Animo a cualquier que todavia no sepa usar esta herramienta a que descubra lo maravilloso de este mundo.
Etiquetas:
debuger,
devtool,
google chrome
martes, 12 de marzo de 2013
Tutorial sobre CSS Layout para maquetar
Un buen tutorial para comprender muy bien el uso de css layout para cuando estamos maquetando nuestros proyectos web.
Unos de los mejores que he visto
link : http://learnlayout.com
Unos de los mejores que he visto
link : http://learnlayout.com
miércoles, 6 de marzo de 2013
Consejos de como construir APPs javascript
Encontre una presentacion muy buena donde nos brindan conejos para desarrollar APPs javasccript de gran tamaño.
Link:https://speakerdeck.com/addyosmani/building-decoupled-large-scale-applications-using-javascript-and-jquery
Link:https://speakerdeck.com/addyosmani/building-decoupled-large-scale-applications-using-javascript-and-jquery
martes, 5 de marzo de 2013
Lectura obligada de como crear mejores landing page
He leido un articulo de como crear mejores landing page para nuestro sitio web. A veces cuando diseñamos una pagina tenemos muchos problemas al escoger que elementos son los apropiados para nuestra pagina y cuales llamaran mas la atención de nuestros usuario.
No solo basta con tener un diseño bonito también necesitamos resolver un problema que tenga nuestro usuario y tambien darle la solución. Nathan Barry ha escrito en su pagina una historia sobre como diseño su landing page en unos de sus proyectos y créanme cuando les digo que la lectura vale totalmente la pena , aprenderás muchas cosas del proceso y en que partes debes enfocarte mas cuando creas landing page.
Bueno todo bonito hasta ahora lo único malo aquí es que la pagina esta en ingles y si no puedes leer un poco de ingles te puedes ayudar con el traductor de google , de cualquier manera es una lectura que no puedes perderte.
Link : http://nathanbarry.com/step-by-step-landing-page-copywriting/
No solo basta con tener un diseño bonito también necesitamos resolver un problema que tenga nuestro usuario y tambien darle la solución. Nathan Barry ha escrito en su pagina una historia sobre como diseño su landing page en unos de sus proyectos y créanme cuando les digo que la lectura vale totalmente la pena , aprenderás muchas cosas del proceso y en que partes debes enfocarte mas cuando creas landing page.
Bueno todo bonito hasta ahora lo único malo aquí es que la pagina esta en ingles y si no puedes leer un poco de ingles te puedes ayudar con el traductor de google , de cualquier manera es una lectura que no puedes perderte.
Link : http://nathanbarry.com/step-by-step-landing-page-copywriting/
lunes, 4 de marzo de 2013
Aprende expresiones regulares de manera visual
En el campo de programación las expresiones regulares suelen ser las mas difíciles de entender , pero hoy he descubierto una herramienta donde puedes probar tus expresiones regulares de manera visual , esta herramienta es increíble para llegar a entender como funcionan las expresiones.
Link: http://www.debuggex.com/?re=&str=
Link: http://www.debuggex.com/?re=&str=
martes, 26 de febrero de 2013
Aprende a usar git en 15 minutos de forma interactiva
Si alguien por ahi quiere aprender a usar GIT he encontrado un link de una web donde de manera interactiva aprenderas a usarlo.
link: http://try.github.com/levels/1/challenges/1
tlk.io reviviendo los chat rooms desde el infierno
Necesitas una sala de chat rapido para compartir ideas con tu amigos ? tlk.io te crea una sala de chat rapido y facil que puedes compartir con una url.
Solo escribe el nombre de tu sala y despues compartes tu link nada mas facil que eso.
He visto muchos muchos proyectos de chat pero este es el mas facil , rapido y sobre todo muy elegante para usar. puedes insertarlo en tus paginas web para interactuar con tus usuarios .
Pense que los chat room estaban muertos pero este proyecto ha dado en el clavo para dejarlo morir..
link: http://tlk.io/
Suscribirse a:
Entradas (Atom)
