13 oct 2012

Cómo crear correctamente bucles o loops personalizados en WordPress

Cómo crear correctamente bucles o loops personalizados en WordPress:
En WordPress existen varias formas de realizar consultas personalizadas a la base de datos para traer algunos contenidos específicos y mostrarlos en las plantillas de tu theme o plugin:

  • pre_get_posts(): es un filtro, no una función de consulta a la BD. Para alterar el bucle principal.
  • query_posts(): ¿¿??
  • WP_Query(): para crear bucles alternativos o secundarios.
  • get_posts(): para crear bucles alternativos o secundarios.

Estos son los recursos principales que propone WordPress para modificar los bucles o crear bucles alternativos a los principales, para mostrar nuestros contenidos de diferentes formas en las plantillas. Y lógicamente, esto es algo que hay que hacer con cuidado y de la forma correcta para evitar errores y problemas de eficiencia.

Y ahora los explico un poco, :)

El bucle principal de WordPress


Antes de nada hay que explicar qué es el main loop o bucle principal de WordPress: es la forma que tiene el CMS para mostrar los posts que deben aparecer en esa página, procesarlos y disponerlos en la pantalla de la forma que se defina a través los diferentes Template Tags. La consulta principal a la base de datos y el procesado de la misma tiene lugar antes de la carga de la plantilla, basándose en la URL que se está visualizando.

En un theme de WordPress, cada plantilla tendrá probablemente un bucle principal. En el código, comienza de esta forma:


<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>


Y acaba normalmente así:

<?php endwhile; else: ?>
    <p><?php _e('Sorry, no posts matched your criteria.'); ?></p>
<?php endif; ?>


Los template tags que se incluyan en el código dentro de ese bucle, harán referencia a la consulta principal de WordPress.

pre_get_posts()


Si lo que se quiere es modificar directamente la consulta del bucle principal, pero no crear una nueva, entonces la recomendación es utilizar el filtro pre_get_posts(). Esta función nos permite alterar fácilmente los parámetros de la main query.

Por ejemplo: queremos modificar el número de posts mostrados en la portada de la página a sólo 4 y, además, que no aparezcan los posts de la categoría “7″. Lo haríamos fácilmente con las siguientes líneas de código:


function hmuda_modificar_main_query($query){
    //Primero asegurar que es la consulta principal y que es la home
    if( is_home() && $query->is_main_query() ){
        //Hacer la modificación que sea
        $query->set( 'posts_per_page', '4' );
        $query->set( 'cat', '-7' );
    }
}
add_action('pre_get_posts', 'hmuda_modificar_main_query');


Utilizando el método set() podemos pasarle todos los parámetros que deseemos a la main query para modificarla a nuestro gusto.

query_posts()


La función query_posts(), como bien explican en la primera frase del Codex, es la forma más sencilla de alterar la consulta principal de WordPress, pero no es la preferida ni la más eficiente. De hecho, algunos desarrolladores de renombre como Konstantin Kovshenin no dudan en afirmar que debería declararse como obsoleta.

Esta función “destruye” la consulta principal de WordPress sobreescribiendo la variable global que la contiene. Sí, la consulta que ya tenía cargada, procesada, limpita y maquillada para salir a la calle.

Se recomienda no utilizar esta función. Siempre que se quiera usar para modificar la consulta principal, probablemente sea una mejor idea utilizar pre_get_posts().

En cualquier caso, si por alguna extraña razón se usa, la forma recomendada para restaurar el bucle principal después de usar query_posts() es utilizar la función wp_reset_query().

WP_Query()


En caso de querer crear bucles alternativos en una plantilla de WordPress, esta es la forma recomendada. Con este método se crea una nueva instancia del objeto WP_Query sin alterar ni afectar a la consulta principal del gestor.

Ejemplo: un bucle alternativo para mostrar los títulos de los últimos 3 posts de la categoría “8″ pero saltándonos el primero:


//Definir los parámetros de la consulta a la base de datos
$args = array(
    'posts_per_page' => 3,
    'cat'  => 8,
    'offset' => 1
);
$loop_alternativo = new WP_Query($args);
if( $loop_alternativo->have_posts() ):
    while( $loop_alternativo->have_posts() ): $loop_alternativo->the_post();
       //Ya estamos en el bucle alternativo
       the_title();
    endwhile;
endif;
wp_reset_postdata(); 


Hay que acordarse de que este loop alternativo sobreescribirá la variable global $post (que es la que buscan las template tags), por lo que una vez terminado deberemos siempre restaurar su estado al de la consulta principal. En caso contrario, WP creerá que el post actual del bucle principal es el último post del bucle alternativo, lo que es incorrecto y dará lugar a errores. Puede resetearse fácilmente utilizando la función wp_reset_postdata().

get_posts()


Es una especie de envoltorio para WP_Query(), para crear nuevas instancias del objeto WP_Query. No es en realidad un bucle, sino que la función acaba devolviendo un array de objetos de tipo post. Por tanto, podemos guardar ese array en una variable e iterar sobre ella para crear nuestro propio bucle personalizado.

Ejemplo (el mismo de antes): un bucle alternativo para mostrar los títulos de los últimos 3 posts de la categoría “8″ pero saltándonos el primero:


//Definir los parámetros de la consulta a la base de datos
$args = array(
    'posts_per_page' => 3,
    'cat'  => 8,
    'offset' => 1
);
global $post;
$myposts = get_posts( $args );
foreach( $myposts as $post ) : 
    //Ya estamos en el bucle alternativo
    setup_postdata($post); 
    the_title();
endforeach;
wp_reset_postdata(); 


La función setup_postdata() es una función que prepara el objeto global $post para su utilización con los template tags dentro del bucle.

La forma recomendada para reiniciar el bucle principal después de usar get_posts() es utilizar la función wp_reset_postdata().

Más información


Para más información sobre este tema, recomiendo ver y tomar nota de esta conferencia de Andrew Nacin en la que explica el sistema de queries de WordPress:


Enlaces de interés:

6 abr 2012

Dropbox solucionará problemas de seguridad en iOS

Dropbox solucionará problemas de seguridad en iOS:

En el día de ayer, Dropbox y Facebook se vieron envueltos en un escándalo de seguridad que involucró a sus aplicaciones móviles. En esencia, este fallo permitía a los usuarios copiar un archivo de texto plano fuera de una cuenta, lo que daba acceso a cualquier usuario a todos nuestros datos dentro del teléfono. El bug se reportó tanto para Android como para iOS. Sin embargo, Dropbox ha salido a desmentir algunas cosas y a prometer soluciones para sus usuarios.
Primero, desde Dropbox afirmaron que la aplicación de Android no ha sido impactada porque guarda los tokens de acceso en una ubicación protegida. Pero en iOS la situación ha sido diferente, por lo que Dropbox está trabajando para actualizarla lo más rápido posible para que realice lo mismo. También han aclarado que para que se produzca el acceso a la información del usuario, el “actor malicioso”, como lo han definido, tiene que tener acceso físico al teléfono.
También aconsejaron no dar acceso físico al teléfono a otras personas, porque el usuario sería susceptible a cualquier tipo de amenazas. Este error fue descubierto por Gareth Wright, un investigador de seguridad móvil que también detectó el mismo problema en Facebook. Simplemente, una persona con el conocimiento mínimo puede copiar información importantísima de un dispositivo a otro sin que nos demos cuenta.
Los de The Next Web inmediatamente probaron la aplicación de Dropbox y descubrieron que se podía hacer lo mismo. Y aquí las cosas se vuelven más enmarañadas, porque no solamente la seguridad de los archivos alojados en la nube está siempre puesta en duda, sino además porque son cientas las empresas que han elegido Dropbox para poder almacenar información confidencial e importante.
Esto no solamente puede suceder si, dada la situación, nos roban el teléfono, sino que además también puede suceder que estemos conectados en una red pública e instalemos una aplicación. Los filtrajes de información no tienen una situación específica. Afortunadamente, tanto Facebook como Dropbox han puesto manos a la obra apenas se han enterado de la información, y la red social lo ha solucionado. Por su parte, Dropbox está en camino, lo que habla bien sobre sus tiempos de respuesta.




DARPA quiere una competición de robots humanoides autónomos para su próximo gran desafío

DARPA quiere una competición de robots humanoides autónomos para su próximo gran desafío:
Filed under:
Los famosos desafíos DARPA han servido para impulsar el desarrollo de vehículos autónomos capaces de conducirse sin ayuda humana primero en el desierto y después en entornos urbanos, pero ahora que los coches sin conductor ya se encuentran en plena adolescencia, la Agencia de Investigación de Proyectos Avanzados de Defensa ha decidido poner sus miras en otro tipo de retos. La rama de I+D del ejército de los Estados Unidos se ha propuesto ahora avanzar en el campo de los robots, y más concretamente, en modelos humanoides capaces de caminar a través de terrenos difíciles, conducir un vehículo o manipular herramientas convencionales como las que podrían utilizarse en una zona afectada por un desastre industrial (si piensas en Fukushima, posiblemente no andas muy desencaminado).



DARPA no se ha fijado por ahora un calendario ni ha hecho pública la recompensa que piensa ofrecer al ganador de su próximo desafío, pero sí ha indicado que cualquier compañía, fundación o universidad interesada deberá desarrollar máquinas capaces de realizar estas operaciones de forma "semi-autónoma", limitando la interacción humana a funciones de "teleoperación" con fines de supervisión. Teóricamente dentro de unas semanas tendremos más detalles sobre esta competición robótica, así que no te distraigas.



[Fotos: Petman/Boston Dynamics]
Read | Permalink | Email this | Comments

26 mar 2012

La visita de Joseph Ratzinger a México


No puedo dejar pasar este momento histórico que se vivió el pasado fin de semana en el país a consecuencia de la visita de Joseph Ratzinger, principal representante del Vaticano y por ende de la Iglesia Católica, Apostólica y Romana.

1.- Hablar de religión en el país, cuando más un gran porcentaje de la población es católica o cuando el cristianismo u otras religiones empiezan a ser parte en la cultura de muchas familias mexicanas, es crear polémica o sacar a relucir las divergencias culturales que existen en los pueblos. En este caso el pueblo mexicano, que desde el siglo XVI ha sido obligado a formar parte de la Iglesia Católica, pueblos enteros fueron masacrados al no aceptar la evangelización, esa evangelización que aún no ha terminado y sigue causando muertes, principalmente en el sur del país.

2.- Los pueblos de América han sido y siguen siendo sumamente religiosos, su fe, sus fiestas y tradiciones culturales se basan en sus creencias religiosas, así sean mezcolanza de diversas culturas, prehispánica-católica, principalmente, o grupos indígenas que mantienen sus tradiciones culturales basadas en su religión sin injerencia católica, cristiana o de otra índole.

3.- Algunos “grupos religiosos”, en este caso hablamos del Vaticano, mediante la Iglesia Católica ha usado la fe de los pueblos de América para saquear sus tierras, sus riquezas y vejar a mujeres y niños. Con el único de fin de “Poder” y lo que conlleva tenerlo, tras las revoluciones del siglo XVIII, XIX y XX, la Iglesia Católica pierde fuerza a nivel mundial y ahora es el Capitalismo-Imperialismo y sus potencias las que realizan esa labor, pero siguen usando a la Religión como parte de mantener “alienados, sumisos y carentes de conocimiento” a los pueblos, y así seguir saqueando sus riquezas, quitándoles sus tierras y sus recursos naturales, sin ninguna objeción, por que “así lo quiere Dios”.

4.- Joseph Ratzinger anuncia que la Inquisición es un Progreso, no es raro en él ni en el Vaticano estas palabras, sabemos la posición de la Iglesia a través de la historia, formando parte del Fascismo en el siglo XIX y XX, asesinando trabajadores, campesinos y masacrando poblaciones enteras en Europa y hace lo mismo en América Latina y Sudamérica en el siglo XX.

5.- La “Santa Inquisición” lo que hizo fue aniquilar y asesinar a todo aquél o aquella que se interpusiera a las creencias religiosas, es decir, todo aquél o aquella que pensara, estudiara o hiciera Ciencia, y por ende echara abajo todas las teorías y concepciones religiosas. La Biblia, la supuesta palabra de Dios, es muestra clara de las vejaciones que la Iglesia hace contra la gente. Los hombres y mujeres de ciencia son acusados de herejes, las mujeres que no se someten al poder del hombre o leyes de Dios y se rebelan son acusadas de Brujas y quemadas vivas, incluso niños, niñas y homosexuales son asesinados en plazas públicas por tumultos de fanáticos religiosos, dirigidos por la Iglesia y el “Santo Papa”, y todo esto, porque las Santas escrituras así lo dictan.

6.- Retomando la película “Agora”, donde muestran la vida de Hipatia de Alejandría, nos quieren mostrar una mujer mártir que muere por amor, cuando en realidad ella muere de la forma más cruel, un tumulto de fanáticos religiosos le da muerte con piedras, palos y arrancándole la carne aún con vida, la consecuencia, pensar, conocer y no acatar las leyes de la Iglesia.

7.- En este último punto pongo ese ejemplo, ya que al ver las manifestaciones en Guanajuato, es triste ver como el fanatismo religioso, cubre gran parte de la población mexicana. Nos muestra un pueblo sumido en la miseria cultural y científica, un pueblo sometido a los dictados de “leyes divinas” y leyes extranjeras, un pueblo sometido y sumiso, no sólo a las Religiones, sino a las grandes corporaciones, un pueblo que sigue entregando sus riquezas naturales y culturales, un pueblo que le cree más a aquél que lo veja, que lo corrompe, que lo asesina, un pueblo que sigue y seguirá creyendo en sus dirigentes, en sus representantes, en aquellos que se han enriquecido a costillas de él, un pueblo que olvida su historia y le abre sus puertas y da de comer a aquél que a vejado a sus hijos y patea, escupe y golpea a aquél que defiende a su país, a su gente y no está dispuesta a seguir siendo vejada.

8.- La visita del Papa es importante, porque desenmascara a los políticos, sean del color que sean se someten, se humillan, muestran que quieren ser los siguientes sirvientes del Vaticano y las grandes corporaciones, ya que no quieren dejar la tajada que les toca por estar en el poder, al ser parte de la corrupción mundial.  

3 mar 2012

Consumo preferente Vs Fecha de caducidad ¿Existen diferencias?

Consumo preferente Vs Fecha de caducidad ¿Existen diferencias?:

preferente

Hasta hace pocas semanas, la Agencia de Seguridad Alimentaria del Reino Unido (FSA) recomendaba que no se consumieran huevos después de su fecha de consumo preferente.

Ahora, en cambio, opinan que se pueden utilizar durante uno o dos días después de esa fecha, siempre que estén bien cocinados.

La fecha de consumo preferente de un alimento indica que, si se conserva en las condiciones adecuadas, mantendrá su calidad hasta ese momento (su aroma, textura, gusto y apariencia).

La mayoría de los alimentos están etiquetados con este tipo de fecha.

Si se supera, el consumo del alimento debería ser seguro, pero su calidad no será óptima. Por tanto, no hay razón para tirar indiscriminadamente a la basura cualquier producto que haya superado su fecha de consumo preferente, una costumbre que está provocando un enorme despilfarro de alimentos.

Antes de tirarlos, pruébelos: pueden estar perfectamente comestibles.

Las fechas de caducidad, en cambio, se utilizan sólo en alimentos muy perecederos y están relacionadas con la seguridad.

Superada la fecha de caducidad, el consumo de esos alimentos pueden entrañar un riesgo de intoxicación alimentaria. Conviene respetarlas siempre.

Vía | OCU



Un algoritmo permite identificar los nodos más influyentes de una red

Un algoritmo permite identificar los nodos más influyentes de una red: La metodología, desarrollada por investigadores del CSIC, funciona en sistemas muy diversos: sociales, biológicos, informáticos, económicos, etc. La estructura de la red y su dinámica determinan el “éxito” y la importancia de cada nodo. El método, similar al que utilizan los buscadores de Internet, analiza y elige las entradas más relevantes de cada tema.

Un algoritmo permite identificar los nodos más influyentes de una red


Un estudio en el que ha participado el Consejo Superior de Investigaciones Científicas (CSIC) ha desarrollado una metodología que permite clasificar los elementos de una red en función de su importancia para el funcionamiento del sistema.





Combinando los datos correspondientes a la dinámica de la red y estructura, un logaritmo matemático señala los nodos más “influyentes”, aquellos cuya actividad determina el éxito del sistema. El artículo ha sido publicado en el último número de la revista [Scientiti...


Tendencias 21 (Madrid). ISSN 2174-6850

A diferencia de los chimpancés, los niños cooperan para resolver problemas

A diferencia de los chimpancés, los niños cooperan para resolver problemas:

La mayoría de animales aprenden unos de otros, pero los humanos, además, son capaces de acumular conocimiento y compartirlo. Un estudio internacional plantea las condiciones sociales y capacidades cognitivas necesarias para su transmisión. Los resultados destacan la importancia de las instrucciones verbales, la imitación y la ‘prosocialidad’ en el aprendizaje.



Fuente : http://www.agenciasinc.es/Noticias/A-diferencia-de...


Tendencias 21 (Madrid). ISSN 2174-6850

¿Somos lo que comemos?: La pregunta de la semana

¿Somos lo que comemos?: La pregunta de la semana:

promo

Como cada Jueves, en La pregunta de la Semana, os hacemos pensar un poco para que nos deis vuestra más sincera opinión. Esta semana se nos ha ocurrido preguntar:

¿Somos lo que comemos?

A muchos os puede parecer una pregunta simplona y fácil de responder pero no creo que así sea. Bien es cierto que la alimentación influye mucho en nuestro cuerpo pero ¿tanto para decir que somos de una manera o de otra?

Recordad que los comentarios deben ir a su correspondiente pregunta de la sección respuestas. La próxima semana publicaremos la mejor de todas las respuestas.

La pregunta de la semana pasada

La semana pasada os preguntábamos ¿Qué animal os parece el más peligroso? La respuesta que habéis votado más ha sido la de Ashley Lesnie, que respondió:

¿Qué animal puede llegar a matar a millones de los suyos en un tiempo muy corto? El ser humano.

Somos el ser más peligroso de la tierra. Más incluso que el animal más venenoso.

En Xataka Ciencia | Todas La pregunta de la semana



La depresión afecta más a los países ricos... y a los cerebros hiperactivos

La depresión afecta más a los países ricos... y a los cerebros hiperactivos:

Una de cada cuatro personas padecerá algún problema de salud mental en algún momento de su vida. Los trastornos mentales (depresión, ansiedad, esquizofrenia, trastorno bipolar, etc.) afectan cada vez a más personas en el mundo, a cualquier grupo de edad. Entre ellos, la depresión, la cuarta enfermedad más común en el mundo. En todo el mundo, unos 121 millones de personas sufren de depresión. La depresión grave puede llevar al suicidio, y provoca 850.000 muertes cada año.

Si vivís en un país rico, entonces puestas probabilidades de desarrollar depresión se incrementan. En 10 de los países considerados como “ricos”, un 15% de los participantes dijeron haber sufrido de depresión en algún momento de sus vidas, según una investigación publicada en la revistaAmerican Journal BMC Medicine que analizaba los resultados de una serie de entrevistas con cerca de 90.000 personas de 18 países diferentes, utilizando un examen estándar de la Organización Mundial de la Salud (OMS) para determinar si una persona sufre de depresión.

Las mujeres tienen el doble de probabilidades que los hombres de sufrir de depresión, y el mayor factor contribuyente fue la pérdida de la pareja por muerte, divorcio o separación.

Evelyn Bromet, de la Universidad Estatal de Nueva York:

Hemos mostrado que la depresión es una importante preocupación de salud mental en todas las regiones del mundo, y que se relaciona firmemente con las condiciones sociales. Comprender los patrones y causas de la depresión puede ayudar en las iniciativas globales para reducir el impacto de la depresión en las vidas de los individuos y para reducir la carga social.

Los 10 países con la población más deprimida:

1. Francia con 21%

2. Estados Unidos con 19.2%

3. Brasil con 18.4%

4. Holanda con 17.9%

5. Nueva Zelanda con 17.8%

6. Ucrania con 14.6%

7. Bélgica con 14.1%

8. Colombia con 13.3%

9. Líbano con 10.9%

10. España con 10.6%

Según los expertos, esta tendencia podría deberse a que en los países ricos hay una mayor desigualdad económica en la población y a que sufren de mayores índices de estrés. Un informe de Psychology Today sobre la búsqueda del origen genético de la depresión afirma: “Los datos epidemiológicos disponibles sobre las principales enfermedades mentales dejan claro que las causas no son únicamente genéticas”. El informe da el siguiente ejemplo: “De los estadounidenses nacidos antes de 1905, el 1% padecía depresión a los 75 años de edad. De los que nacieron medio siglo después, un 6% padecía depresión a los 24 años de edad”

Y es que recientemente la revista Nature Neuroscience ha publicado una revisión que demuestra que, aunque muchos trastornos mentales se diagnostiquen en la edad adulta, los primeros síntomas aparecen en la infancia y en la adolescencia y, lo que es aún más importante, los problemas del neurodesarrollo que acaban produciendo esos síntomas se producen muy tempranamente. Según la OMS, estas enfermedades constituyen un problema de salud pública «mucho más importante» que los accidentes de tráfico o algunas enfermedades infecciosas como el VIH o la malaria.

Asimismo, investigadores de la Universidad de California en Los Ángeles (UCLA) han publicado en la revista PLoS One demostrado que los individuos que sufren depresión tienen mayor número de conexiones en todo el cerebro. Según concluye Andrew Leuchter, investigador del Instituto de Neurociencia y Comportamiento Humano de UCLA y coautor de un estudio que implicó a 121 adultos con depresión severa:

el cerebro sano debe ser capaz de sincronizar, primero, y desincronizar, después, distintas áreas para reaccionar ante lo que nos sucede, regular el ánimo, aprender y resolver problemas.

Pero el cerebro hiperconectado del depresivo forma conexiones pero es incapaz de “apagarlas”. En particular, el área del cerebro que presentaba mayor número de conexiones anormales era la corteza prefrontal, implicada en la regulación del estado de ánimo, tomar decisiones y resolver situaciones problemáticas.

Vía | ABC / Altonivel



¿Qué son los fractales y cómo se construyen?

¿Qué son los fractales y cómo se construyen?:

Conjunto Julia

Un fractal es un objeto cuya estructura se repite a diferentes escalas. Es decir, por mucho que nos acerquemos o alejemos del objeto, observaremos siempre la misma estructura. De hecho, somos incapaces de afirmar a qué distancia nos encontramos del objecto, ya que siempre lo veremos de la misma forma.

El termino fractal (del Latín fractus) fue propuesto por el matemático Benoît Mandelbrot en 1975. En la naturaleza encontramos muchas estructuras con geometría fractal, como por ejemplo, en el romanescu

Existen muchísimos fractales, ya que como veremos, son muy fáciles de construir. Los ejemplos más populares son el conjunto “Mandelbrot” o el triángulo “Sierpinski”. Este último se realiza de una forma muy sencilla: dibujamos un triángulo grande, colocamos otros tres triángulos en su interior a partir de sus esquinas, repetimos el último paso.

Sirpinski Triangle

Otro sencillo ejemplo lo constituye la alfombra de Sierpinski:

Sierpinski Carpet

Como puede verse, la estrategia más sencilla para conseguir un fractal, es coger una figura y reproducirla en versiones más pequeñas. Sin embargo, se pueden conseguir objetos muchos más complejos.

El conjunto de Mandelbrot fue propuesto en los años setenta, pero no fue hasta una década más tarde cuando pudo representarse gráficamente con un ordenador. Este conjunto se define a partir de un número “c” cualquiera, que define la siguiente sucesión:

Manderbolt ec

Para diferentes valores de “c”, obtenemos diferentes sucesiones. Si la sucesión es acotada, “c” pertenece al conjunto de Mandelbrot, y si no, queda excluido. Por ejemplo, para c=1 se obtiene: 0, 1, 2, 5, 26, 677, etc.(0, 1=02+1, 2=12+1, 5=22+1, etc.) Para c=-0.5 obtenemos 0, -0.5, -0.25, -0.4375, -0.30859375, -0.404769897, etc. De esta forma, c=-0.5 pertenece al conjunto y c=1 no.

Si además consideramos números complejos, obtenemos la siguiente figura:

MandelSet

Otro fractal interesante es ‘La Curva del Dragon

A continuación os dejo un interesante vídeo sobre fractales y una interesante web de matemáticas aplicadas:

Más información | http://vihart.com/doodling
Imágenes obtenidas de la Wikipedia