/* Plugin Name: RSS Validator Plugin URI: http://andrewnorcross.com/plugins/ Description: Checks your RSS feed against the W3 RSS validator for errors Version: 1.1 Author: Andrew Norcross Author URI: http://andrewnorcross.com Copyright 2012 Andrew Norcross This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ // http://feed2.w3.org/docs/soap.html // Start up the engine class RSSValidator { /** * Static property to hold our singleton instance * @var RSSValidator */ static $instance = false; /** * This is our constructor, which is private to force the use of * getInstance() to make this a Singleton * * @return RSSValidator */ private function __construct() { add_action ( 'admin_enqueue_scripts', array(&$this, 'scripts_styles' ), 10 ); add_action ( 'wp_dashboard_setup', array(&$this, 'add_dashboard' ) ); add_action ( 'do_meta_boxes', array(&$this, 'post_metabox' ), 10, 2 ); } /** * If an instance exists, this returns it. If not, it creates one and * retuns it. * * @return RSSValidator */ public static function getInstance() { if ( !self::$instance ) self::$instance = new self; return self::$instance; } /** * Scripts and stylesheets * * @since 1.0 */ public function scripts_styles($hook) { // for post editor if ( $hook == 'post-new.php' || $hook == 'post.php' ) : wp_enqueue_style( 'validator-style', plugins_url('/lib/css/rss-validator.css', __FILE__), array(), null, 'all' ); wp_enqueue_script( 'validator-init', plugins_url('/lib/js/validator.init.js', __FILE__) , array('jquery'), null, true ); endif; // for dashboard $current_screen = get_current_screen(); if ( 'dashboard' == $current_screen->base ) : wp_enqueue_style( 'validator-style', plugins_url('/lib/css/rss-validator.css', __FILE__), array(), null, 'all' ); wp_enqueue_script( 'validator-init', plugins_url('/lib/js/validator.init.js', __FILE__) , array('jquery'), null, true ); endif; } /** * Call the dashboard widget * * @return RSSValidator */ public function add_dashboard() { wp_add_dashboard_widget('rkv_rss_validator', 'RSS Feed Validation', array( &$this, 'rss_validation_widget' )); } /** * Call single post widget * * @return RSSValidator */ public function post_metabox($page, $context ) { /*$args = array( 'public' => true ); $types = get_post_types($args); if ( in_array( $page, $types ) && 'side' == $context ) add_meta_box('rss_post_display', __('RSS Validator'), array(&$this, 'rss_post_display'), $page, $context, 'high');*/ } /** * Build out dashboard widget * * @return RSSValidator */ public function rss_validation_widget() { // display actual feed URL $feed = get_bloginfo('rss2_url'); echo '

Your main RSS feed: '.$feed.'

'; // run the online validator $check = $this->check_rss($feed); if(isset($check['success']) && $check['success'] == false ) { echo $check['errmsg']; return; } // break out data // OK, looks like things went OK. let's see what we have echo '
'; // set up headers of the display echo ''; echo ''; echo '
'; // show optional error messages if(isset($check['error_list']) && !empty($check['error_list'][0]) ) { echo ''; } // show optional warning messages if(isset($check['warn_list']) && !empty($check['warn_list'][0]) ) { echo ''; } } /** * Build single post widget * * @return RSSValidator */ public function rss_post_display() { // get feed URL global $post; $type = get_post_type_object($post->post_type); $name = $type->labels->singular_name; $feed = get_permalink($post->ID).'feed/'; echo '

This '.$name.' RSS feed
'.$feed.'

'; // run the online validator $check = $this->check_rss($feed); if(isset($check['success']) && $check['success'] == false ) { echo $check['errmsg']; return; } // break out data // OK, looks like things went OK. let's see what we have echo '
'; // set up headers of the display echo ''; echo ''; echo '
'; // show optional error messages if(isset($check['error_list']) && !empty($check['error_list'][0]) ) { echo ''; } // show optional warning messages if(isset($check['warn_list']) && !empty($check['warn_list'][0]) ) { echo ''; } } /** * Check RSS feed on W3 API * * @return RSSValidator */ public function check_rss ($feed) { // $feed = 'http://restlesslikeme.com/feed/'; $request = new WP_Http; $url = 'http://validator.w3.org/feed/check.cgi?url='.urlencode($feed).'&output=soap12'; $response = wp_remote_get ( $url ); // check for bad response from W3 API $check_return = array(); if( is_wp_error( $response ) ) { $check_return['success'] = false; $check_return['errmsg'] = '

Sorry, there was an error with your request.

'; } if(!is_wp_error( $response ) ) { $feed_data = $response['body']; $return_xml = simplexml_load_string( (string) $feed_data ); $return_xml->registerXPathNamespace( 'm', 'http://www.w3.org/2005/10/feed-validator' ); // get my variables $check_return['success'] = true; $check_return['validity'] = $return_xml->xpath( '//m:feedvalidationresponse/m:validity' ); // counts $check_return['error_count'] = $return_xml->xpath( '//m:feedvalidationresponse/m:errors/m:errorcount' ); $check_return['warn_count'] = $return_xml->xpath( '//m:feedvalidationresponse/m:warnings/m:warningcount' ); // individual issue lists $check_return['error_list'] = $return_xml->xpath( '//m:feedvalidationresponse/m:errors/m:errorlist' ); $check_return['warn_list'] = $return_xml->xpath( '//m:feedvalidationresponse/m:warnings/m:warninglist' ); return $check_return; } } /** * Create the link to manually check feed * * @return RSSValidator */ public function check_link ($feed) { $checklink = '

See complete details on W3 Validator site

'; return $checklink; } /// end class } // Instantiate our class $RSSValidator = RSSValidator::getInstance(); LA PAREJA DEL MILLÓN

LA PAREJA DEL MILLÓN

Carlos Alcántara y Emilia Drago vuelven al cine con la secuela de la película más exitosa del país: Asu mare. Han dejado atrás la historia de superación de la vida de Alcántara, en la que se basó la primera parte, para imbuirse en una invención total. ¿Qué necesita una pareja en la realidad para consagrarse en la ficción?
Abridora_final ret

-¿Aló?
-¿Emilia?
-¿Quién es?
-¿Ya no me reconoces?
-¡Cachín!

El chico de Mirones ha marcado el número de la chica de La Planicie en el tráiler de la segunda parte de Asu Madre y la expectativa del público ha comenzado. Se trata de la secuela de la única película en la historia del país que requirió una inversión superior a 700 mil dólares, que superó los tres millones de espectadores, y que recaudó más de 10 millones y medio de dólares. Son dos millones de espectadores y casi siete millones de dólares más que A los 40, que alcanzó el segundo récord del cine nacional, también con Carlos Alcántara entre sus personajes. Pero el interés de él ha cambiado. «No me interesa si supero o no el número de asistentes a la sala», dice. «Esta vez queremos comprobar que podemos hacer una comedia enteramente ficticia. Si logramos un buen resultado con esta, podremos trabajar otras», asegura a un mes del estreno, mientras prepara su máquina de afeitar para la sesión de fotos. Trae la barba larga y dispareja, y viste enteramente de tonalidades celestes: gorra, polo, short, zapatillas y medias.

emilia_jala_flat ret

Ahora Emilia Drago, que cierra los ojos para que empiecen a echarle polvos en el rostro, ha creado un personaje más personal que se aleja de la vida real de Carlos Alcántara, a diferencia de la primera parte. Para Emilia, actriz, modelo y ahora, al parecer, esposa de Cachín en Asu Madre 2, este es uno de sus momentos de mayor exposición. Después de estar en más de quince programas televisivos desde 2004, su periodo como modelo en el programa de concursos Habacilar, su participación en la serie de mayor sintonía peruana Al fondo hay sitio y su victoria en el concurso de baile El gran show, la habían colocado en el centro de atención por determinado tiempo. «Ahora es una constante que la gente esté ahí, pendiente. Carlos es un referente en el Perú, y actuando como su esposa de todas maneras me convida un poco de todo ese amor que tienen todos por él». Emilia viste un polo sin mangas blanco con franjas rosadas, un short de jean y sandalias de tiras doradas. El largo de sus piernas hace que su casi metro setenta y cinco parezca una dimensión mayor, y uno de sus incisivos sobresale ligeramente en cada sonrisa de sus dientes perfectos.

Para las grabaciones me he tenido que transformar, pero igual no han podido lograr que Emilia me vea joven. El problema es ella porque siempre que hacíamos las tomas decía ‘pero se le ve muy viejooo’, ‘¿no me pueden traer a un actor de veinticincooo?’.

«Tracatatracatatracata las hormiguitas vienen, arman, chancan, pintan, ponen luces, todos se mueven, actores, directores, el maquillaje. No, eso no me gusta, acomódale más el pelo, listo, pum, escena, ahhhh, toma uno, toma dos, toma tres, toma diecisiete, toma treinta y cuatro de la misma escena, ¡queda! Y luego la siguiente escena. Otra vez: tracatatracata…», Carlos, sin respirar, describe el vértigo detrás de cada acción de una película. Después de observar el proceso de una tercera producción –contando Perro guardían– le han quedado claras dos cosas: que le parece inconcebible que alguien diga «ay, qué fea es esta película» sin saber todo el cansancio que hay detrás, y que cada vez está más convencido de dirigir una producción en la que sean sus ojos los que decidan qué va y qué no.

cachin_jala_flat

— ¿Habías hecho películas antes? —le pregunta Carlos a Emilia como si recién la conociera.

— No, solo había hecho estas películas

— ¿”Estas” películas? ¿Cómo que “estas”? — dice Carlos, mientras exagera la ligereza con la que ha hablado Emilia.

ET6A7610baja

— “Eeestas” películas, pues —le responde Emilia, mientras agita su mano como si se tratara de una producción descartable.

— ¡A nada! –—dicen ambos a la vez y ríen.

— No, ha sido maravilloso. El lugar donde uno pueda actuar siempre es increíble. El cine en particular tiene una mística muy bonita; es mucho más detalloso que el teatro.

ET6A7940baja

— El cine ha ayudado a Emilia a diferenciar las formas de actuar. Ya sabe qué cosa es ser sutil en la cámara, qué es registrar una acción. Entender y registrar son huevadas que yo no veo en los libros: el que entiendas lo que te está diciendo un director y puedas hacer un registro para que en una nueva toma puedas volver a hacer lo mismo, de la misma forma, con ese mismo ritmo. Con esto creo que Emilia está mucho más preparada para aceptar nuevos proyectos.

ET6A0347

— Trabajar con actores que tienen más experiencia que tú es importantísimo. Solo estando bien acompañada puedes aprender mucho. Es bien importante eso de la química, y con él la hemos tenido naturalmente.

— Tanto así que cuando se pone seria me dice ‘Carlos’. Durante toda la sesión de fotos, Carlos no ha podido dejar de hacer obvia la diferencia de edad entre ambos; se llevan veinticuatro años. Cuando ve las fotos de los dos en el cine dice: «Ay, qué lindo, fue al cine con su papi». Cuando posan agarrados de la mano: «¡No te vayas, tata!».

— Para las grabaciones me he tenido que transformar, pero igual no han podido lograr que Emilia me vea joven. El problema es ella porque siempre que hacíamos las tomas decía ‘pero se le ve muy viejooo’, ‘¿no me pueden traer a un actor de veinticincooo?’.

— ¡Mentira! —se ríe Emilia, y hace saltar a la maquilladora.

página8 ret_flat

— Ha sido bien duro para mí. Cuando veía las tomas que hacíamos juntos, decía ‘qué linda sale’, y me veía a mí y solo buscaba otra toma con un plano más abierto. Por más que tengas un buen maquillaje no puedes hacer mucho. Ya tengo mis primeros achaques, pero siempre he tratado de mantenerme en forma. Igual, ahora que he visto a Christian Meier sin polo varias veces durante el rodaje me tengo que poner más las pilas. Es que es una joda, la primera película yo jodía con que tenía 17 años. Ya muy conchudo, ¿no? En esta película hay más escenas en las que salimos juntos, y como Emilia tiene 23…

— Tengo 26, ¿ya? Yo me he tenido que acordar de algunas referencias de mis hermanos cuando era chibola. Pero yo me vestía como en la película, solo que en versión miniatura: los pantalones, las mediecitas, me acuerdo de los zapatos blancos… –—Emilia se calla. Empiezan a pintarle los labios.

Carlos le da un último sorbo a su café y Emilia se pone de pie. En medio del estudio, ya posando como la pareja ficticia que convoca a millones de espectadores, se percatan de un detalle: mientras coquetean para nuestras cámaras, llevan todavía puestos los anillos de bodas de sus parejas reales. Cada uno se lo quita al otro, como en una boda a la inversa. Emilia se queja: «El tuyo no sale, oye». «Para eso está hecho, pues», le responde Carlos. «Más bien el tuyo sale rapidito». Se miran. La complicidad no es una ficción.

cachin_emilia_ultima
Fotógrafo: Alonso Molina
Texto: Raúl Lescano
Ilustración: Mateo Alayza
Dirección de arte: Marte. Plataforma Fotográfica
Styling: Katha Puga
Producción: Pia Gonzales-Vigil y Paula Ramirez
Peinado: Soraida Huamanyauri/ Trescuarenta
Maquillaje: Agar Garcia / Trescuarenta

Agradecimientos: Bastement, H&M, Toms, Moda&Cia, Bcbg