/* 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(); El artista que habla con el movimiento - Artículos, Misceláneas - Revista ASIA SUR

El artista que habla con el movimiento

Iván Sikic

Escribe: César Ochoa / Foto: Liam Cullinane
Hay muchas formas de hacer crítica social con el arte: desde grafitis hasta historietas. Pero lo que Iván Sikic ha elegido es el performance. ¿Qué quiere decirnos alguien que invita al público a verlo trabajar como empleada doméstica o que sube y baja escaleras durante cuatro horas en una calle de Australia?
ivan1

Un hombre descalzo, con el torso desnudo y un mechón de flores amarillas en la cabeza sube y baja unos cuarenta escalones de un patio de Federation Square, un centro de edificios de la zona financiera de Melbourne, en Australia. Son casi las siete de la noche, cae una ligera llovizna y corre un viento helado. El hombre ha estado así durante las últimas cuatro horas y la escena termina cuando se va a bordo de un taxi que ha venido a recogerlo. El misterioso sujeto es peruano, se llama Iván Sikic y es un artista que usa el performance como modo de expresión, y en el que, generalmente, su cuerpo es el protagonista.

Con I Live in The Lucky Country and I Love It!, realizado en agosto de este año, Sikic quiso ponerse en el pellejo de todos los inmigrantes que –como una suerte de Sísifo, ese personaje mitológico condenado a empujar por siempre una roca montaña arriba solo para que volviera a caer– tienen que empezar de cero una y otra vez en ese afán por integrarse a ese nuevo país. Luego de su performance, Sikic abordó un taxi hacia el aeropuerto, donde tomó un vuelo rumbo al Perú. «Esa acción representó la necesidad de reconexión con mi lugar de origen. Y es que creo que, al final, un inmigrante no llega a integrarse del todo a otro país». Así es Sikic: directo, fuera de serie y atrevido.

Si alguien tuviera la necesidad de encasillar a Sikic, bien podría ubicarlo como un artista que está entre Banksy, ese prolífico artista del street art británico que utiliza el grafiti para criticar a la sociedad; y la yugoslava Marina Abramović, esa artista del performance que ha tenido la osadía de exponerse durante seis horas a todo lo que la gente quisiera hacer con ella usando 72 objetos que iban desde látigos hasta pistolas cargadas. Sucede que este limeño de treinta años que se mudó a Australia hace diez para estudiar artes creativas y escénicas, prefiere dar una respuesta corporal a la hora de dar a conocer su postura frente a distintos temas socioculturales que le preocupan. Así lo hizo en Lima Linda 1.0, un performance que duró setenta horas, lapso en el cual convivió, en silencio total, con el artista Félix Méndez [a quien conoció por primera vez al inicio del trabajo]. Sikic, vestido de empleada doméstica; su compañero, vestido de mujer.

ivan2

Iván Sikic es un artista que ha saltado de la mirada convencional. Como si se hubiera quitado una venda de los ojos, reacciona ante lo que le parece injusto. «El cuerpo tiene una potencia distinta: una energía ante la cual hay que estar presente para entenderla»

Con Lima Linda 1.0, Sikic hizo las veces de empleada ‘cama adentro’ y su labor consistía en acatar las órdenes que Méndez dejaba escritas en un espejo. Para empezar, Sikic se sometió a un rapado de cabeza y hasta tuvo que lavar los pies de su jefa. Con esta convivencia que se desarrolló en el teatro El Galpón de Pueblo Libre a fines de setiembre, Sikic criticó lo que, según él, es una forma de esclavitud silenciosa socialmente aceptada, que está grabada en nuestra idiosincrasia como país. «Lo vi cuando vivía en Lima. Luego de vivir fuera del país pude notar que, en los casos más extremos, es una situación lamentable en la cual entran en cuestionamiento nuestros valores y los derechos de los trabajadores».

Ivan3

Sikic es un artista que ha saltado de la mirada convencional, y, como si se hubiera quitado alguna venda de los ojos, reacciona ante lo que le parece injusto. «El cuerpo tiene una potencia distinta: una energía ante la cual hay que estar presente para entenderla», dice. Para él, aunque sólo le llegan noticias de que el Perú ha crecido económicamente, muchas cosas siguen siendo iguales. «Muchos artistas dan una respuesta estética a los temas que les llaman la atención. Yo, a través de acciones simples, busco dar una respuesta empírica», dice. No busca dar un punto de vista totalizador: exige que cada espectador saque sus propias conclusiones. «Mi trabajo termina cuando el espectador me ve: él es quien debe forjarse una respuesta».